');\n div.append(self2.control_input);\n self2.dropdown.insertBefore(div, self2.dropdown.firstChild);\n const placeholder = getDom('
');\n placeholder.placeholder = self2.settings.placeholder || \"\";\n self2.control.append(placeholder);\n });\n self2.on(\"initialize\", () => {\n self2.control_input.addEventListener(\"keydown\", (evt) => {\n switch (evt.keyCode) {\n case KEY_ESC:\n if (self2.isOpen) {\n preventDefault(evt, true);\n self2.close();\n }\n self2.clearActiveItems();\n return;\n case KEY_TAB:\n self2.focus_node.tabIndex = -1;\n break;\n }\n return self2.onKeyDown.call(self2, evt);\n });\n self2.on(\"blur\", () => {\n self2.focus_node.tabIndex = self2.isDisabled ? -1 : self2.tabIndex;\n });\n self2.on(\"dropdown_open\", () => {\n self2.control_input.focus();\n });\n const orig_onBlur = self2.onBlur;\n self2.hook(\"instead\", \"onBlur\", (evt) => {\n if (evt && evt.relatedTarget == self2.control_input) return;\n return orig_onBlur.call(self2);\n });\n addEvent(self2.control_input, \"blur\", () => self2.onBlur());\n self2.hook(\"before\", \"close\", () => {\n if (!self2.isOpen) return;\n self2.focus_node.focus({\n preventScroll: true\n });\n });\n });\n }\n function input_autogrow() {\n var self2 = this;\n self2.on(\"initialize\", () => {\n var test_input = document.createElement(\"span\");\n var control = self2.control_input;\n test_input.style.cssText = \"position:absolute; top:-99999px; left:-99999px; width:auto; padding:0; white-space:pre; \";\n self2.wrapper.appendChild(test_input);\n var transfer_styles = [\"letterSpacing\", \"fontSize\", \"fontFamily\", \"fontWeight\", \"textTransform\"];\n for (const style_name of transfer_styles) {\n test_input.style[style_name] = control.style[style_name];\n }\n var resize = () => {\n test_input.textContent = control.value;\n control.style.width = test_input.clientWidth + \"px\";\n };\n resize();\n self2.on(\"update item_add item_remove\", resize);\n addEvent(control, \"input\", resize);\n addEvent(control, \"keyup\", resize);\n addEvent(control, \"blur\", resize);\n addEvent(control, \"update\", resize);\n });\n }\n function no_backspace_delete() {\n var self2 = this;\n var orig_deleteSelection = self2.deleteSelection;\n this.hook(\"instead\", \"deleteSelection\", (evt) => {\n if (self2.activeItems.length) {\n return orig_deleteSelection.call(self2, evt);\n }\n return false;\n });\n }\n function no_active_items() {\n this.hook(\"instead\", \"setActiveItem\", () => {\n });\n this.hook(\"instead\", \"selectAll\", () => {\n });\n }\n function optgroup_columns() {\n var self2 = this;\n var orig_keydown = self2.onKeyDown;\n self2.hook(\"instead\", \"onKeyDown\", (evt) => {\n var index, option, options, optgroup;\n if (!self2.isOpen || !(evt.keyCode === KEY_LEFT || evt.keyCode === KEY_RIGHT)) {\n return orig_keydown.call(self2, evt);\n }\n self2.ignoreHover = true;\n optgroup = parentMatch(self2.activeOption, \"[data-group]\");\n index = nodeIndex(self2.activeOption, \"[data-selectable]\");\n if (!optgroup) {\n return;\n }\n if (evt.keyCode === KEY_LEFT) {\n optgroup = optgroup.previousSibling;\n } else {\n optgroup = optgroup.nextSibling;\n }\n if (!optgroup) {\n return;\n }\n options = optgroup.querySelectorAll(\"[data-selectable]\");\n option = options[Math.min(options.length - 1, index)];\n if (option) {\n self2.setActiveOption(option);\n }\n });\n }\n function remove_button(userOptions) {\n const options = Object.assign({\n label: \"×\",\n title: \"Remove\",\n className: \"remove\",\n append: true\n }, userOptions);\n var self2 = this;\n if (!options.append) {\n return;\n }\n var html = '
' + options.label + \" \";\n self2.hook(\"after\", \"setupTemplates\", () => {\n var orig_render_item = self2.settings.render.item;\n self2.settings.render.item = (data, escape) => {\n var item = getDom(orig_render_item.call(self2, data, escape));\n var close_button = getDom(html);\n item.appendChild(close_button);\n addEvent(close_button, \"mousedown\", (evt) => {\n preventDefault(evt, true);\n });\n addEvent(close_button, \"click\", (evt) => {\n if (self2.isLocked) return;\n preventDefault(evt, true);\n if (self2.isLocked) return;\n if (!self2.shouldDelete([item], evt)) return;\n self2.removeItem(item);\n self2.refreshOptions(false);\n self2.inputState();\n });\n return item;\n };\n });\n }\n function restore_on_backspace(userOptions) {\n const self2 = this;\n const options = Object.assign({\n text: (option) => {\n return option[self2.settings.labelField];\n }\n }, userOptions);\n self2.on(\"item_remove\", function(value) {\n if (!self2.isFocused) {\n return;\n }\n if (self2.control_input.value.trim() === \"\") {\n var option = self2.options[value];\n if (option) {\n self2.setTextboxValue(options.text.call(self2, option));\n }\n }\n });\n }\n function virtual_scroll() {\n const self2 = this;\n const orig_canLoad = self2.canLoad;\n const orig_clearActiveOption = self2.clearActiveOption;\n const orig_loadCallback = self2.loadCallback;\n var pagination = {};\n var dropdown_content;\n var loading_more = false;\n var load_more_opt;\n var default_values = [];\n if (!self2.settings.shouldLoadMore) {\n self2.settings.shouldLoadMore = () => {\n const scroll_percent = dropdown_content.clientHeight / (dropdown_content.scrollHeight - dropdown_content.scrollTop);\n if (scroll_percent > 0.9) {\n return true;\n }\n if (self2.activeOption) {\n var selectable = self2.selectable();\n var index = Array.from(selectable).indexOf(self2.activeOption);\n if (index >= selectable.length - 2) {\n return true;\n }\n }\n return false;\n };\n }\n if (!self2.settings.firstUrl) {\n throw \"virtual_scroll plugin requires a firstUrl() method\";\n }\n self2.settings.sortField = [{\n field: \"$order\"\n }, {\n field: \"$score\"\n }];\n const canLoadMore = (query) => {\n if (typeof self2.settings.maxOptions === \"number\" && dropdown_content.children.length >= self2.settings.maxOptions) {\n return false;\n }\n if (query in pagination && pagination[query]) {\n return true;\n }\n return false;\n };\n const clearFilter = (option, value) => {\n if (self2.items.indexOf(value) >= 0 || default_values.indexOf(value) >= 0) {\n return true;\n }\n return false;\n };\n self2.setNextUrl = (value, next_url) => {\n pagination[value] = next_url;\n };\n self2.getUrl = (query) => {\n if (query in pagination) {\n const next_url = pagination[query];\n pagination[query] = false;\n return next_url;\n }\n self2.clearPagination();\n return self2.settings.firstUrl.call(self2, query);\n };\n self2.clearPagination = () => {\n pagination = {};\n };\n self2.hook(\"instead\", \"clearActiveOption\", () => {\n if (loading_more) {\n return;\n }\n return orig_clearActiveOption.call(self2);\n });\n self2.hook(\"instead\", \"canLoad\", (query) => {\n if (!(query in pagination)) {\n return orig_canLoad.call(self2, query);\n }\n return canLoadMore(query);\n });\n self2.hook(\"instead\", \"loadCallback\", (options, optgroups) => {\n if (!loading_more) {\n self2.clearOptions(clearFilter);\n } else if (load_more_opt) {\n const first_option = options[0];\n if (first_option !== void 0) {\n load_more_opt.dataset.value = first_option[self2.settings.valueField];\n }\n }\n orig_loadCallback.call(self2, options, optgroups);\n loading_more = false;\n });\n self2.hook(\"after\", \"refreshOptions\", () => {\n const query = self2.lastValue;\n var option;\n if (canLoadMore(query)) {\n option = self2.render(\"loading_more\", {\n query\n });\n if (option) {\n option.setAttribute(\"data-selectable\", \"\");\n load_more_opt = option;\n }\n } else if (query in pagination && !dropdown_content.querySelector(\".no-results\")) {\n option = self2.render(\"no_more_results\", {\n query\n });\n }\n if (option) {\n addClasses(option, self2.settings.optionClass);\n dropdown_content.append(option);\n }\n });\n self2.on(\"initialize\", () => {\n default_values = Object.keys(self2.options);\n dropdown_content = self2.dropdown_content;\n self2.settings.render = Object.assign({}, {\n loading_more: () => {\n return `
Loading more results ...
`;\n },\n no_more_results: () => {\n return `
No more results
`;\n }\n }, self2.settings.render);\n dropdown_content.addEventListener(\"scroll\", () => {\n if (!self2.settings.shouldLoadMore.call(self2)) {\n return;\n }\n if (!canLoadMore(self2.lastValue)) {\n return;\n }\n if (loading_more) return;\n loading_more = true;\n self2.load.call(self2, self2.lastValue);\n });\n });\n }\n TomSelect3.define(\"change_listener\", change_listener);\n TomSelect3.define(\"checkbox_options\", checkbox_options);\n TomSelect3.define(\"clear_button\", clear_button);\n TomSelect3.define(\"drag_drop\", drag_drop);\n TomSelect3.define(\"dropdown_header\", dropdown_header);\n TomSelect3.define(\"caret_position\", caret_position);\n TomSelect3.define(\"dropdown_input\", dropdown_input);\n TomSelect3.define(\"input_autogrow\", input_autogrow);\n TomSelect3.define(\"no_backspace_delete\", no_backspace_delete);\n TomSelect3.define(\"no_active_items\", no_active_items);\n TomSelect3.define(\"optgroup_columns\", optgroup_columns);\n TomSelect3.define(\"remove_button\", remove_button);\n TomSelect3.define(\"restore_on_backspace\", restore_on_backspace);\n TomSelect3.define(\"virtual_scroll\", virtual_scroll);\n return TomSelect3;\n });\n }\n});\n\n// src/components/jb-select/jb-select.ts\nvar import_tom_select = __toESM(require_tom_select_complete(), 1);\nvar JbSelect = class extends Initiable(FormElement(h)) {\n constructor() {\n super(...arguments);\n this.inverted = false;\n this._isFocused = false;\n }\n connectedCallback() {\n super.connectedCallback();\n applyStyles(this, jb_select_default);\n }\n update(changedProperties) {\n super.update(changedProperties);\n if (changedProperties.has(\"options\") && changedProperties.get(\"options\")) {\n if (this.disabled) {\n this._tomSelect.disable();\n } else {\n this._tomSelect.enable();\n }\n this._tomSelect.setValue(\"\");\n this._tomSelect.clearOptions();\n this._tomSelect.addOptions(this.options.map((option) => ({ value: option.value, text: option.label })));\n if (this.value) {\n this._tomSelect.setValue(this.value);\n }\n if (this.options.length > 0 && !this.value) {\n this._tomSelect.setValue(this.options[0].value);\n }\n }\n }\n createRenderRoot() {\n return this;\n }\n firstUpdated() {\n const settings = {\n options: this.options.map((option) => ({ value: option.value, text: option.label })),\n maxItems: 1,\n maxOptions: null,\n items: [this.value || this.placeholder || this.options[0]?.value],\n onChange: (newValue) => {\n this.value = newValue;\n this.dispatchEvent(\n new CustomEvent(\"jb-select:changed\", {\n detail: {\n id: this.id,\n newValue,\n label: this._tomSelect.activeOption.innerText\n },\n bubbles: true,\n composed: true\n })\n );\n },\n onFocus: () => {\n this._isFocused = true;\n },\n onBlur: () => {\n this._isFocused = false;\n },\n onType: () => {\n this._tomSelect.setValue(\"\");\n },\n placeholder: this.placeholder,\n create: false,\n render: {\n option(data, escape) {\n return `
${escape(data.text)}
`;\n }\n }\n };\n if (this.type === \"isregionselect\") {\n settings.controlInput = null;\n }\n if (this.type === \"iseservices\") {\n settings.controlInput = '
';\n }\n this._tomSelect = new import_tom_select.default(this.input, settings);\n let storedData = localStorage.getItem(\"savedFormData\");\n if (storedData === null) {\n return;\n }\n storedData = JSON.parse(storedData);\n if (this.frontendRenderingIdentifier && storedData && this.frontendRenderingIdentifier in storedData) {\n this._tomSelect.setValue(storedData[this.frontendRenderingIdentifier]);\n }\n if (this.disabled) {\n this._tomSelect.disable();\n } else {\n this._tomSelect.enable();\n }\n }\n setValue(value) {\n this.value = value;\n this._tomSelect.setValue(value, true);\n return value;\n }\n render() {\n return ke`\n
\n ${this.label ? ke`
${this.label}${this.requiredText ? \"*\" : \"\"} ` : D}\n
\n ${this.showError ? ke`
${this.requiredText}
` : D}\n ${this.errorText ? ke`
${this.errorText}
` : D}\n
\n `;\n }\n};\nJbSelect.styles = r(jb_select_default);\n__decorateClass([\n n()\n], JbSelect.prototype, \"autocomplete\", 2);\n__decorateClass([\n e(\"input\")\n], JbSelect.prototype, \"input\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbSelect.prototype, \"inverted\", 2);\n__decorateClass([\n n({ type: Array })\n], JbSelect.prototype, \"options\", 2);\n__decorateClass([\n n()\n], JbSelect.prototype, \"placeholder\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbSelect.prototype, \"showLabel\", 2);\n__decorateClass([\n n()\n], JbSelect.prototype, \"type\", 2);\n__decorateClass([\n r2()\n], JbSelect.prototype, \"_isFocused\", 2);\nJbSelect = __decorateClass([\n customElement(\"jb-select\")\n], JbSelect);\n\nexport {\n JbSelect\n};\n/*! Bundled license information:\n\ntom-select/dist/js/tom-select.complete.js:\n (*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) *)\n (*! sifter.js | https://github.com/orchidjs/sifter.js | Apache License (v2) *)\n*/\n", "import {\n e,\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/mixins/ButtonElement.ts\nvar ButtonElementEvents = class {\n constructor() {\n this[\"jb-button:clicked\"] = void 0;\n }\n};\nfunction ButtonElement(baseClass) {\n class ButtonElementMixin extends baseClass {\n async firstUpdated(_changedProperties) {\n super.firstUpdated(_changedProperties);\n this.addEventListener(\"click\", (e2) => {\n this._click(e2);\n });\n }\n getTextContent() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n if (!slot) {\n return null;\n }\n const nodes = slot.assignedNodes();\n if (nodes.length === 0) {\n return null;\n }\n const textNode = nodes[0];\n if (!textNode.textContent) {\n return null;\n }\n return textNode.textContent.trim();\n }\n triggerClick() {\n this._link?.click();\n }\n _click(clickEvent) {\n if (!this.name || this.disabled || this.inactive) {\n return;\n }\n clickEvent.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(\"jb-button:clicked\", {\n detail: { name: this.name, clickEvent },\n bubbles: true,\n composed: true\n })\n );\n }\n }\n __decorateClass([\n n({ type: Boolean })\n ], ButtonElementMixin.prototype, \"disabled\", 2);\n __decorateClass([\n n({ type: Boolean })\n ], ButtonElementMixin.prototype, \"forceHover\", 2);\n __decorateClass([\n n({ type: Boolean })\n ], ButtonElementMixin.prototype, \"inactive\", 2);\n __decorateClass([\n n()\n ], ButtonElementMixin.prototype, \"name\", 2);\n __decorateClass([\n e(\"a\")\n ], ButtonElementMixin.prototype, \"_link\", 2);\n return ButtonElementMixin;\n}\n\nexport {\n ButtonElementEvents,\n ButtonElement\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n Linkable\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ButtonElement\n} from \"./chunk.7PRSKJZQ.js\";\nimport {\n Oe,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-button-tertiary/jb-button-tertiary.scss?inline\nvar jb_button_tertiary_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\na,\nbutton {\n font-family: var(--theme-font-black-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-black-weight, 900);\n}\n\na,\nbutton {\n font-size: var(--theme-typo-uppercase-900-fontsize, 0.688rem);\n letter-spacing: var(--theme-typo-uppercase-900-letterspacing, 0.125rem);\n line-height: var(--theme-typo-uppercase-900-lineheight, 1rem);\n text-transform: uppercase;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n min-block-size: 20px;\n --_button-text-color: 20, 30, 85;\n}\n\na,\nbutton {\n align-items: center;\n background-color: transparent;\n border: none;\n color: rgba(var(--_button-text-color), 1);\n cursor: pointer;\n display: inline-flex;\n gap: var(--spacing-3xs);\n inline-size: 100%;\n padding-inline: 0;\n text-align: start;\n text-decoration: none;\n}\na span,\nbutton span {\n align-items: center;\n display: inline-flex;\n inset-block-start: 5px;\n position: relative;\n}\na svg,\nbutton svg {\n display: inline-block;\n flex-basis: 19px;\n flex-shrink: 0;\n position: relative;\n transition: transform 0.3s ease-out 0s;\n vertical-align: bottom;\n}\na.hover svg, a:hover svg,\nbutton.hover svg,\nbutton:hover svg {\n transform: translateX(8px);\n}\na.up svg,\nbutton.up svg {\n transform: rotate(-90deg);\n}\na.up.hover svg, a.up:hover svg,\nbutton.up.hover svg,\nbutton.up:hover svg {\n transform: rotate(-90deg) translateX(3px);\n}\na.down svg,\nbutton.down svg {\n transform: rotate(90deg);\n}\na.down.hover svg, a.down:hover svg,\nbutton.down.hover svg,\nbutton.down:hover svg {\n transform: rotate(90deg) translateX(3px);\n}\na.inverted,\nbutton.inverted {\n --_button-text-color: 255, 255, 255;\n}\na:active,\nbutton:active {\n transform: scale(0.99);\n}\n\n.inactive {\n opacity: 0.4;\n pointer-events: none;\n}`;\n\n// src/components/jb-button-tertiary/jb-button-tertiary.ts\nvar JbButtonTertiary = class extends Initiable(ButtonElement(Linkable(h))) {\n constructor() {\n super(...arguments);\n this._arrowIcon = Oe`
`;\n }\n render() {\n const classes = {\n inactive: !!this.inactive,\n inverted: !!this.inverted,\n hover: !!this.forceHover,\n [`${this.arrowDirection}`]: !!this.arrowDirection\n };\n return this.link?.href ? ke`
\n ${this._arrowIcon}\n ` : ke`
\n ${this._arrowIcon}\n `;\n }\n};\nJbButtonTertiary.styles = r(jb_button_tertiary_default);\n__decorateClass([\n n()\n], JbButtonTertiary.prototype, \"arrowDirection\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonTertiary.prototype, \"forceHover\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonTertiary.prototype, \"inactive\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonTertiary.prototype, \"inverted\", 2);\n__decorateClass([\n n()\n], JbButtonTertiary.prototype, \"name\", 2);\nJbButtonTertiary = __decorateClass([\n customElement(\"jb-button-tertiary\")\n], JbButtonTertiary);\n\nexport {\n JbButtonTertiary\n};\n", "import {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/mixins/Filterable.ts\nfunction Filterable(baseClass) {\n class FilterableMixin extends baseClass {\n markAsDisabled() {\n this.setAttribute(\"data-disabled-by-filter\", \"\");\n }\n markAsEnabled() {\n this.removeAttribute(\"data-disabled-by-filter\");\n }\n matchesFilterValue(filterValueToCompareTo) {\n return !!this.filterValues?.find(\n (filterValue) => filterValue.filterAspect === filterValueToCompareTo.filterAspect && filterValue.value === filterValueToCompareTo.value\n );\n }\n }\n __decorateClass([\n n({ type: Array })\n ], FilterableMixin.prototype, \"filterValues\", 2);\n return FilterableMixin;\n}\n\nexport {\n Filterable\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-internal-icon/jb-internal-icon.scss?inline\nvar jb_internal_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n height: var(--icon-size, 18px);\n width: var(--icon-size, 18px);\n}\n\nsvg {\n fill: rgb(var(--rgb-primary, 20, 30, 85));\n transition: var(--icon-transition, none);\n}`;\n\n// src/components/icons/jb-internal-icon/jb-internal-icon.ts\nvar JbInternalIcon = class extends h {\n render() {\n return ke`\n
\n \n \n \n \n \n \n \n \n `;\n }\n};\nJbInternalIcon.styles = r(jb_internal_icon_default);\nJbInternalIcon = __decorateClass([\n customElement(\"jb-internal-icon\")\n], JbInternalIcon);\n\nexport {\n JbInternalIcon\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-in-page-icon/jb-in-page-icon.scss?inline\nvar jb_in_page_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n height: var(--icon-size, 18px);\n width: var(--icon-size, 18px);\n}\n\nsvg {\n fill: var(--icon-color, rgb(var(--rgb-primary, 20, 30, 85)));\n}`;\n\n// src/components/icons/jb-in-page-icon/jb-in-page-icon.ts\nvar JbInPageIcon = class extends h {\n render() {\n return ke`\n
\n \n \n \n \n \n \n \n \n `;\n }\n};\nJbInPageIcon.styles = r(jb_in_page_icon_default);\nJbInPageIcon = __decorateClass([\n customElement(\"jb-in-page-icon\")\n], JbInPageIcon);\n\nexport {\n JbInPageIcon\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-download-icon/jb-download-icon.scss?inline\nvar jb_download_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n height: var(--icon-size, 18px);\n width: var(--icon-size, 18px);\n}\n\nsvg {\n fill: rgb(var(--rgb-primary, 20, 30, 85));\n transition: var(--icon-transition, none);\n}`;\n\n// src/components/icons/jb-download-icon/jb-download-icon.ts\nvar JbDownloadIcon = class extends h {\n render() {\n return ke`\n
\n \n \n \n `;\n }\n};\nJbDownloadIcon.styles = r(jb_download_icon_default);\nJbDownloadIcon = __decorateClass([\n customElement(\"jb-download-icon\")\n], JbDownloadIcon);\n\nexport {\n JbDownloadIcon\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-external-icon/jb-external-icon.scss?inline\nvar jb_external_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n height: var(--icon-size, 18px);\n width: var(--icon-size, 18px);\n}\n\nsvg {\n fill: rgb(var(--rgb-primary, 20, 30, 85));\n}`;\n\n// src/components/icons/jb-external-icon/jb-external-icon.ts\nvar JbExternalIcon = class extends h {\n render() {\n return ke`\n
\n \n \n \n \n `;\n }\n};\nJbExternalIcon.styles = r(jb_external_icon_default);\nJbExternalIcon = __decorateClass([\n customElement(\"jb-external-icon\")\n], JbExternalIcon);\n\nexport {\n JbExternalIcon\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-mail-icon/jb-mail-icon.scss?inline\nvar jb_mail_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n height: var(--icon-size, 18px);\n width: var(--icon-size, 18px);\n}\n\nsvg {\n fill: var(--icon-color, rgb(var(--rgb-primary, 20, 30, 85)));\n height: var(--icon-height, 18px);\n transition: var(--icon-transition, none);\n width: var(--icon-width, 18px);\n}`;\n\n// src/components/icons/jb-mail-icon/jb-mail-icon.ts\nvar JbMailIcon = class extends h {\n render() {\n return ke`
\n \n `;\n }\n};\nJbMailIcon.styles = r(jb_mail_icon_default);\nJbMailIcon = __decorateClass([\n customElement(\"jb-mail-icon\")\n], JbMailIcon);\n\nexport {\n JbMailIcon\n};\n", "import {\n JbEServiceOverlay\n} from \"../../chunks/chunk.JVL4FYYT.js\";\nimport \"../../chunks/chunk.OUQ73RZJ.js\";\nimport \"../../chunks/chunk.I2ELSNII.js\";\nimport \"../../chunks/chunk.NLEHAJ2S.js\";\nimport \"../../chunks/chunk.UTVDNTSP.js\";\nimport \"../../chunks/chunk.G3SZKTQJ.js\";\nimport \"../../chunks/chunk.YTEMICXC.js\";\nimport \"../../chunks/chunk.LTAMHVKK.js\";\nimport \"../../chunks/chunk.OZEBCGEZ.js\";\nimport \"../../chunks/chunk.TOSSI7AO.js\";\nimport \"../../chunks/chunk.6DHNIVN5.js\";\nimport \"../../chunks/chunk.ABOYTYJO.js\";\nimport \"../../chunks/chunk.7ZO5ST7S.js\";\nimport \"../../chunks/chunk.EELGOWGJ.js\";\nimport \"../../chunks/chunk.WEV4VAJB.js\";\nimport \"../../chunks/chunk.NQ4JNTZU.js\";\nimport \"../../chunks/chunk.KR4IFKAA.js\";\nimport \"../../chunks/chunk.QAGUCU4C.js\";\nimport \"../../chunks/chunk.A4SFXC3I.js\";\nimport \"../../chunks/chunk.KZGIJPE3.js\";\nimport \"../../chunks/chunk.VRR2P3PQ.js\";\nimport \"../../chunks/chunk.7PRSKJZQ.js\";\nimport \"../../chunks/chunk.7ANACPIR.js\";\nimport \"../../chunks/chunk.WXNWU2SV.js\";\nimport \"../../chunks/chunk.FCKNEYTX.js\";\nimport \"../../chunks/chunk.BBN2ZB42.js\";\nimport \"../../chunks/chunk.FAJKIEWS.js\";\nimport \"../../chunks/chunk.I4IFG4JG.js\";\nexport {\n JbEServiceOverlay\n};\n", "import {\n JbRegionSelectOverlay\n} from \"../../chunks/chunk.VZ6THPUN.js\";\nimport \"../../chunks/chunk.SE5MQEAG.js\";\nimport \"../../chunks/chunk.G3SZKTQJ.js\";\nimport \"../../chunks/chunk.YTEMICXC.js\";\nimport \"../../chunks/chunk.LTAMHVKK.js\";\nimport \"../../chunks/chunk.OZEBCGEZ.js\";\nimport \"../../chunks/chunk.TOSSI7AO.js\";\nimport \"../../chunks/chunk.6DHNIVN5.js\";\nimport \"../../chunks/chunk.ABOYTYJO.js\";\nimport \"../../chunks/chunk.7ZO5ST7S.js\";\nimport \"../../chunks/chunk.EELGOWGJ.js\";\nimport \"../../chunks/chunk.WEV4VAJB.js\";\nimport \"../../chunks/chunk.NQ4JNTZU.js\";\nimport \"../../chunks/chunk.KR4IFKAA.js\";\nimport \"../../chunks/chunk.QAGUCU4C.js\";\nimport \"../../chunks/chunk.A4SFXC3I.js\";\nimport \"../../chunks/chunk.KZGIJPE3.js\";\nimport \"../../chunks/chunk.VRR2P3PQ.js\";\nimport \"../../chunks/chunk.7PRSKJZQ.js\";\nimport \"../../chunks/chunk.7ANACPIR.js\";\nimport \"../../chunks/chunk.WXNWU2SV.js\";\nimport \"../../chunks/chunk.FCKNEYTX.js\";\nimport \"../../chunks/chunk.BBN2ZB42.js\";\nimport \"../../chunks/chunk.FAJKIEWS.js\";\nimport \"../../chunks/chunk.I4IFG4JG.js\";\nexport {\n JbRegionSelectOverlay\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-search-icon/jb-search-icon.scss?inline\nvar jb_search_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nspan {\n cursor: pointer;\n display: var(--display, block);\n height: 25px;\n margin-right: var(--margin-right, 0);\n width: 25px;\n}\n\nsvg {\n fill: var(--fill-color, black);\n height: 25px;\n transform: rotate(0);\n transition: transform 0.5s ease-in-out 0s;\n width: 25px;\n}\nspan:hover svg {\n transform: rotate(75deg);\n}`;\n\n// src/components/icons/jb-search-icon/jb-search-icon.ts\nvar JbSearchIcon = class extends h {\n firstUpdated() {\n this.addEventListener(\"click\", (e) => {\n e.preventDefault();\n this.dispatchEvent(new CustomEvent(\"search-icon:clicked\", { bubbles: true, composed: true }));\n });\n }\n render() {\n return ke`\n
\n \n \n \n \n \n \n \n \n `;\n }\n};\nJbSearchIcon.styles = r(jb_search_icon_default);\nJbSearchIcon = __decorateClass([\n customElement(\"jb-search-icon\")\n], JbSearchIcon);\n\nexport {\n JbSearchIcon\n};\n", "import {\n JbSearchOverlay\n} from \"../../chunks/chunk.77CS2EJF.js\";\nimport \"../../chunks/chunk.RTAXJRGK.js\";\nimport \"../../chunks/chunk.JBQASJWR.js\";\nimport \"../../chunks/chunk.SHZV3OKI.js\";\nimport \"../../chunks/chunk.UTVDNTSP.js\";\nimport \"../../chunks/chunk.G3SZKTQJ.js\";\nimport \"../../chunks/chunk.YTEMICXC.js\";\nimport \"../../chunks/chunk.LTAMHVKK.js\";\nimport \"../../chunks/chunk.OZEBCGEZ.js\";\nimport \"../../chunks/chunk.TOSSI7AO.js\";\nimport \"../../chunks/chunk.6DHNIVN5.js\";\nimport \"../../chunks/chunk.ABOYTYJO.js\";\nimport \"../../chunks/chunk.7ZO5ST7S.js\";\nimport \"../../chunks/chunk.EELGOWGJ.js\";\nimport \"../../chunks/chunk.WEV4VAJB.js\";\nimport \"../../chunks/chunk.NQ4JNTZU.js\";\nimport \"../../chunks/chunk.KR4IFKAA.js\";\nimport \"../../chunks/chunk.QAGUCU4C.js\";\nimport \"../../chunks/chunk.A4SFXC3I.js\";\nimport \"../../chunks/chunk.KZGIJPE3.js\";\nimport \"../../chunks/chunk.VRR2P3PQ.js\";\nimport \"../../chunks/chunk.7PRSKJZQ.js\";\nimport \"../../chunks/chunk.7ANACPIR.js\";\nimport \"../../chunks/chunk.WXNWU2SV.js\";\nimport \"../../chunks/chunk.FCKNEYTX.js\";\nimport \"../../chunks/chunk.BBN2ZB42.js\";\nimport \"../../chunks/chunk.FAJKIEWS.js\";\nimport \"../../chunks/chunk.I4IFG4JG.js\";\nexport {\n JbSearchOverlay\n};\n", "// src/assets/scripts/Client.ts\nfunction getViewport() {\n return {\n height: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),\n width: Math.max(document.documentElement.clientWidth, window.innerWidth || 0)\n };\n}\nfunction isMobileVP() {\n return window.matchMedia(\"(max-width: 599px)\").matches;\n}\nfunction isTabletVP() {\n return window.matchMedia(\"(min-width: 600px) and (max-width: 959px)\").matches;\n}\nfunction isSizeMdDown() {\n return window.matchMedia(\"(max-width: 1280px)\").matches;\n}\nfunction isSizeSmUp() {\n return window.matchMedia(\"(min-width: 600px)\").matches;\n}\nfunction isTouchDevice() {\n return window.matchMedia(\"(hover: none)\").matches;\n}\nfunction isMobile() {\n return isSizeMdDown() || isTouchDevice();\n}\nfunction getScrollPosition() {\n return document.body.scrollTop || document.documentElement.scrollTop;\n}\nfunction isInViewport(element) {\n if (!element) return false;\n const rect = element.getBoundingClientRect();\n return rect.top >= -1;\n}\n\nexport {\n getViewport,\n isMobileVP,\n isTabletVP,\n isSizeMdDown,\n isSizeSmUp,\n isTouchDevice,\n isMobile,\n getScrollPosition,\n isInViewport\n};\n", "import {\n isMobile\n} from \"./chunk.YDQDJZUC.js\";\nimport {\n debounce\n} from \"./chunk.WXNWU2SV.js\";\n\n// src/components/jb-menu/jb-menu-utils.ts\nvar menu = {\n primaryMenuHoverGraceAnimation: null,\n secondaryDesktopMenu: null,\n secondaryMenuHoverAnimation: null,\n secondaryMenuVisibilityAnimation: null,\n lastVisible2ndLevelMenu: null,\n conditionalDispatchFadeOutEvent: null\n};\nfunction activateSecondaryMenuItem(menuItem) {\n menuItem.classList.add(\"active\");\n}\nfunction bindDesktopEvents(renderRoot) {\n const primaryDesktopMenuItems = renderRoot.querySelectorAll(\n \".primary-wrapper jb-menu-item\"\n );\n const secondaryMenuLists = renderRoot.querySelectorAll(\n \".secondary-wrapper jb-secondary-menu-list\"\n );\n primaryDesktopMenuItems.forEach((menuItem) => {\n menuItem.addEventListener(\"mouseenter\", () => {\n clearSecondaryDesktopMenuAnimations();\n menu.secondaryMenuHoverAnimation = setTimeout(() => {\n const selectedSubmenu = menuItem.submenu;\n if (selectedSubmenu) {\n clearActivePrimaryMenuItemDesktop(renderRoot);\n menuItem.shadowRoot?.querySelector(\"li\")?.classList.add(\"active\");\n menuItem.classList.add(\"active\");\n fadeInSecondaryMenuDesktop(renderRoot, selectedSubmenu);\n }\n }, 400);\n });\n menuItem.addEventListener(\"mouseleave\", () => {\n initiateFadeOutSecondaryMenuDesktop(renderRoot, menuItem);\n });\n });\n menu.secondaryDesktopMenu = renderRoot.querySelector(\".secondary-wrapper\");\n menu.secondaryDesktopMenu?.addEventListener(\"mouseenter\", () => {\n clearPrimaryDesktopMenuGraceAnimations();\n const activeSecondaryMenu = renderRoot.querySelector(\".secondary-wrapper .active\");\n if (activeSecondaryMenu) {\n clearSecondaryDesktopMenuAnimations();\n }\n });\n menu.secondaryDesktopMenu?.addEventListener(\"mouseleave\", () => {\n const activePrimaryMenuItem = renderRoot.querySelector(\".primary-wrapper .active\");\n initiateFadeOutSecondaryMenuDesktop(renderRoot, activePrimaryMenuItem);\n });\n setTimeout(() => {\n secondaryMenuLists.forEach((list) => {\n const secondaryDesktopMenuItems = list.shadowRoot?.querySelectorAll(\"ul jb-menu-item\");\n secondaryDesktopMenuItems?.forEach((menuItem) => {\n menuItem.addEventListener(\"mouseenter\", () => {\n activateSecondaryMenuItem(menuItem);\n });\n menuItem.addEventListener(\"mouseleave\", () => deactivateSecondaryMenuItem(renderRoot));\n });\n });\n }, 100);\n}\nfunction bindEvents(renderRoot) {\n if (isMobile()) {\n bindMobileEvents(renderRoot);\n } else {\n bindDesktopEvents(renderRoot);\n }\n bindSharedEvents(renderRoot);\n}\nfunction bindMobileEvents(renderRoot) {\n const primaryMenuItems = renderRoot.querySelectorAll(\".primary-wrapper jb-menu-item\");\n primaryMenuItems.forEach((menuItem) => {\n menuItem.addEventListener(\"click\", (e) => {\n const selectedSubmenu = menuItem.submenu;\n const secondaryMobileMenuItemList = renderRoot.querySelector(\n `jb-secondary-menu-list[data-belongs=\"${selectedSubmenu}\"`\n );\n e.preventDefault();\n if (selectedSubmenu && secondaryMobileMenuItemList) {\n openSecondaryMenuMobile(renderRoot, selectedSubmenu);\n } else {\n window.location.href = menuItem.link.href ? menuItem.link.href : \"#\";\n }\n });\n });\n const backBtn = renderRoot.querySelector(\".secondary-wrapper .submenu-header jb-button-back\");\n backBtn?.addEventListener(\"click\", (e) => {\n e.preventDefault();\n closeSecondaryMenuMobile(renderRoot);\n });\n}\nfunction bindSharedEvents(renderRoot) {\n document.addEventListener(\"jbNavigationOpen\", (e) => openMenu(renderRoot, e));\n document.addEventListener(\"jbMenuStartFadeOut\", () => startMenuFadeOut(renderRoot));\n document.addEventListener(\"jbMenuFullFadeOut\", (e) => closeMenu(renderRoot, e));\n window.addEventListener(\n \"resize\",\n debounce(() => {\n dispatchEvent(new Event(\"close\"));\n }, 10)\n );\n}\nfunction clearActivePrimaryMenuItemDesktop(renderRoot) {\n const primaryMenuItem = renderRoot.querySelectorAll(\".primary-wrapper .primary jb-menu-item\");\n primaryMenuItem.forEach((item) => {\n item.shadowRoot?.querySelector(\".active\")?.classList.remove(\"active\");\n });\n}\nfunction clearPrimaryDesktopMenuGraceAnimations() {\n if (menu.primaryMenuHoverGraceAnimation) {\n clearTimeout(menu.primaryMenuHoverGraceAnimation);\n }\n}\nfunction clearSecondaryDesktopMenuAnimations() {\n if (menu.secondaryMenuHoverAnimation) {\n clearTimeout(menu.secondaryMenuHoverAnimation);\n }\n}\nfunction closeMenu(renderRoot, e) {\n e.preventDefault();\n if (isMobile()) {\n const mobileMenuSecondaryWrapper = renderRoot.querySelector(\".secondary-wrapper\");\n const activeSecondaryMenuItemList = mobileMenuSecondaryWrapper?.querySelector(\".active\");\n if (activeSecondaryMenuItemList) {\n const parentMenu = activeSecondaryMenuItemList.dataset.belongs;\n const allMenuItems = renderRoot.querySelectorAll(\n \".primary-wrapper .primary jb-menu-item\"\n );\n allMenuItems.forEach((menuItem) => {\n if (menuItem.submenu === parentMenu) {\n menuItem.classList.add(\"hidden\");\n }\n });\n }\n removeTransitionalMenuItemEvent(renderRoot.querySelector(\".primary-wrapper\"));\n removeTransitionalMenuItemEvent(renderRoot.querySelector(\".secondary-wrapper\"));\n mobileMenuSecondaryWrapper?.removeEventListener(\"transitionend\", menu.conditionalDispatchFadeOutEvent);\n renderRoot.querySelector(\"nav\")?.classList.remove(\"active\");\n } else {\n removeTransitionalMenuItemEvent(renderRoot.querySelector(\".primary-wrapper\"));\n renderRoot.querySelector(\"nav\")?.classList.remove(\"active\");\n }\n}\nfunction closeSecondaryMenuMobile(renderRoot) {\n const activeSecondaryMenuItemList = renderRoot.querySelector(\n \".secondary-wrapper jb-secondary-menu-list.active\"\n );\n activeSecondaryMenuItemList.classList.add(\"fade-out\");\n renderRoot.querySelector(\"ul.primary\")?.classList.remove(\"animating\");\n activeSecondaryMenuItemList.classList.remove(\"active\");\n renderRoot.querySelector(\".secondary-wrapper\")?.classList.remove(\"active\");\n resetPositionPrimaryMenuItemTitle(renderRoot, activeSecondaryMenuItemList.dataset.belongs);\n renderRoot.querySelector(\".primary-wrapper\")?.classList.remove(\"hidden\");\n resetPrimaryMobileMenuItems(renderRoot, activeSecondaryMenuItemList.dataset.belongs);\n fadeOutSecondaryMenuItems(activeSecondaryMenuItemList);\n setTimeout(() => {\n renderRoot.querySelector(\"ul.primary\")?.classList.add(\"initial-animations\");\n }, 400);\n}\nfunction conditionalDispatchFadeOutEvent(renderRoot, e) {\n const mobileMenuSecondaryWrapper = renderRoot.querySelector(\".secondary-wrapper\");\n if (e.target === mobileMenuSecondaryWrapper) {\n dispatchFadeOutEvent();\n }\n}\nfunction deactivateSecondaryMenuItem(renderRoot) {\n const activeSecondaryMenuItem = renderRoot.querySelector(\".secondary-wrapper\")?.querySelector(\"ul.secondary.active\");\n activeSecondaryMenuItem?.classList.remove(\"active\");\n}\nfunction dispatchFadeOutEvent() {\n document.dispatchEvent(new CustomEvent(\"jbMenuFullFadeOut\"));\n dispatchTransitionCompleteEvent();\n}\nfunction dispatchTransitionCompleteEvent() {\n document.dispatchEvent(new CustomEvent(\"jbMenuTransitionComplete\", { bubbles: true }));\n}\nfunction fadeInPrimaryMenuItems(renderRoot, activeMenu) {\n if (activeMenu) {\n const menuItems = activeMenu.querySelectorAll(\"jb-menu-item\");\n menuItems.forEach((primMenuItem) => {\n primMenuItem.classList.remove(\"hidden\");\n });\n const serviceItemWrapper = renderRoot.querySelector(\n \".primary-wrapper jb-service-navigation\"\n );\n if (serviceItemWrapper) {\n serviceItemWrapper.classList.remove(\"hidden\");\n }\n }\n}\nfunction fadeInSecondaryMenuDesktop(renderRoot, selectedSubmenu) {\n const secondaryDesktopMenuItemList = renderRoot.querySelector(\n `.secondary-wrapper jb-secondary-menu-list[data-belongs=\"${selectedSubmenu}\"`\n );\n if (!secondaryDesktopMenuItemList) return;\n if (secondaryDesktopMenuItemList === menu.lastVisible2ndLevelMenu) {\n clearTimeout(menu.secondaryMenuVisibilityAnimation);\n }\n fadeOutSecondaryMenuDesktop(renderRoot);\n secondaryDesktopMenuItemList.classList.add(\"active\");\n secondaryDesktopMenuItemList.classList.add(\"visible\");\n fadeInSecondaryMenuItems(secondaryDesktopMenuItemList);\n menu.lastVisible2ndLevelMenu = secondaryDesktopMenuItemList;\n}\nfunction fadeInSecondaryMenuItems(activeSubmenu) {\n if (activeSubmenu) {\n const menuItems = activeSubmenu.shadowRoot?.querySelectorAll(\"jb-menu-item\");\n menuItems?.forEach((primMenuItem) => {\n primMenuItem.classList.remove(\"hidden\");\n });\n }\n}\nfunction fadeOutPrimaryMenuItems(renderRoot, activeMenu) {\n if (activeMenu) {\n const primaryMenuItems = [].slice.call(activeMenu.querySelectorAll(\"jb-menu-item\"));\n primaryMenuItems.reverse().forEach((primMenuItem, index) => {\n primMenuItem.classList.add(\"hidden\");\n if (index + 1 >= primaryMenuItems.length) {\n primMenuItem.addEventListener(\"transitionend\", dispatchFadeOutEvent);\n }\n });\n const serviceItemWrapper = renderRoot.querySelector(\n \".primary-wrapper jb-service-navigation\"\n );\n if (serviceItemWrapper) {\n serviceItemWrapper?.classList.add(\"hidden\");\n }\n }\n}\nfunction fadeOutPrimaryMobileMenuItemsWithException(renderRoot, activeMenu) {\n if (renderRoot.querySelector(\".primary-wrapper\")) {\n const menuItems = renderRoot.querySelectorAll(\".primary-wrapper jb-menu-item\");\n menuItems.forEach((item) => {\n if (item.submenu === activeMenu) {\n const activeMenuItem = item;\n const activeMenuItemArrow = activeMenuItem.shadowRoot?.querySelector(\"jb-arrow-forward-icon\");\n const serviceItemWrapper = renderRoot.querySelector(\".primary-wrapper jb-service-navigation\");\n menuItems.forEach((primMenuItem) => {\n if (primMenuItem !== activeMenuItem) {\n primMenuItem.setAttribute(\"hidden\", \"\");\n } else {\n activeMenuItemArrow.classList.add(\"hidden\");\n }\n });\n if (serviceItemWrapper) {\n serviceItemWrapper.classList.add(\"hidden\");\n }\n }\n });\n }\n}\nfunction fadeOutSecondaryMenuDesktop(renderRoot) {\n const activeSecondaryWrapper = renderRoot.querySelector(\".secondary-wrapper .active\");\n const activeSecondaryItemList = activeSecondaryWrapper?.shadowRoot?.querySelector(\".secondary\");\n const activeSecondaryMenuItem = activeSecondaryItemList?.shadowRoot?.querySelector(\".active\");\n if (activeSecondaryWrapper && !activeSecondaryMenuItem) {\n activeSecondaryItemList?.classList.remove(\"active\");\n activeSecondaryWrapper.classList.remove(\"active\");\n fadeOutSecondaryMenuItems(activeSecondaryWrapper);\n menu.secondaryMenuVisibilityAnimation = setTimeout(() => {\n activeSecondaryWrapper.classList.remove(\"visible\");\n }, 300);\n }\n}\nfunction removeTransitionalMenuItemEvent(activeMenu) {\n const menuItems = activeMenu?.querySelectorAll(\"jb-menu-item\");\n menuItems?.forEach((primMenuItem) => {\n primMenuItem.removeEventListener(\"transitionend\", dispatchFadeOutEvent);\n });\n}\nfunction fadeOutSecondaryMenuItems(activeSubmenu) {\n if (activeSubmenu) {\n const menuItems = activeSubmenu.shadowRoot?.querySelectorAll(\"jb-menu-item\");\n menuItems?.forEach((primMenuItem) => {\n primMenuItem.classList.add(\"hidden\");\n });\n }\n}\nfunction fadeOutSecondaryMenuWrapperMobile(renderRoot) {\n const mobileMenuSecondaryWrapper = renderRoot.querySelector(\".wrapper .secondary-wrapper\");\n if (mobileMenuSecondaryWrapper) {\n if (mobileMenuSecondaryWrapper.classList.contains(\"active\")) {\n mobileMenuSecondaryWrapper.classList.add(\"fade-out\");\n mobileMenuSecondaryWrapper.addEventListener(\"transitionend\", menu.conditionalDispatchFadeOutEvent);\n }\n }\n}\nfunction initiateFadeOutSecondaryMenuDesktop(renderRoot, activePrimaryMenuItem) {\n clearPrimaryDesktopMenuGraceAnimations();\n menu.primaryMenuHoverGraceAnimation = setTimeout(() => {\n activePrimaryMenuItem?.shadowRoot?.querySelector(\".active\")?.classList.remove(\"active\");\n activePrimaryMenuItem?.classList.remove(\"active\");\n fadeOutSecondaryMenuDesktop(renderRoot);\n menu.primaryMenuHoverGraceAnimation = null;\n }, 400);\n}\nfunction openMenu(renderRoot, e) {\n e.preventDefault();\n if (isMobile()) {\n const activeSecondaryMenuItemList = renderRoot.querySelector(\".secondary-wrapper .active\");\n setPrimaryMobileMenuToDefaultState(renderRoot);\n if (activeSecondaryMenuItemList) {\n const parentMenu = activeSecondaryMenuItemList.dataset.belongs;\n closeSecondaryMenuMobile(renderRoot);\n const fadeoutSecondaryMenuItemList = renderRoot.querySelector(\".secondary-wrapper .fade-out\");\n resetPositionPrimaryMenuItemTitle(renderRoot, parentMenu);\n fadeoutSecondaryMenuItemList.classList.remove(\"fade-out\");\n }\n fadeInPrimaryMenuItems(renderRoot, renderRoot.querySelector(\".primary-wrapper\"));\n renderRoot.querySelector(\"nav\")?.classList.add(\"active\");\n } else {\n fadeInPrimaryMenuItems(renderRoot, renderRoot.querySelector(\".primary-wrapper\"));\n renderRoot.querySelector(\"nav\")?.classList.add(\"active\");\n }\n}\nfunction openSecondaryMenuMobile(renderRoot, selectedSubmenu) {\n const secondaryMobileMenuItemList = renderRoot.querySelector(\n `jb-secondary-menu-list[data-belongs=\"${selectedSubmenu}\"`\n );\n if (!secondaryMobileMenuItemList) return;\n renderRoot.querySelector(\"ul.primary\")?.classList.remove(\"initial-animations\");\n fadeOutPrimaryMobileMenuItemsWithException(renderRoot, selectedSubmenu);\n repositionActivePrimaryMenuItemTitle(renderRoot, selectedSubmenu);\n renderRoot.querySelector(\"ul.primary\")?.classList.add(\"animating\");\n setTimeout(() => {\n renderRoot.querySelector(\".primary-wrapper\")?.classList.add(\"hidden\");\n renderRoot.querySelector(\".secondary-wrapper\")?.classList.add(\"active\");\n secondaryMobileMenuItemList?.classList.add(\"active\");\n fadeInSecondaryMenuItems(secondaryMobileMenuItemList);\n }, 500);\n}\nfunction resetPrimaryMobileMenuItems(renderRoot, activeMenu) {\n if (renderRoot.querySelector(\".primary-wrapper\")) {\n const menuItems = renderRoot.querySelectorAll(\".primary-wrapper jb-menu-item\");\n const activeMenuItems = renderRoot.querySelectorAll(\n \".primary-wrapper .primary jb-menu-item\"\n );\n activeMenuItems.forEach((item) => {\n if (item.submenu === activeMenu) {\n const activeMenuItemArrow = item.shadowRoot?.querySelector(\"jb-arrow-forward-icon\");\n menuItems.forEach((primMenuItem) => {\n if (primMenuItem !== item) {\n primMenuItem.removeAttribute(\"hidden\");\n } else {\n activeMenuItemArrow?.classList.remove(\"hidden\");\n }\n });\n }\n });\n const serviceItemWrapper = renderRoot.querySelector(\".primary-wrapper jb-service-navigation\");\n if (serviceItemWrapper) {\n serviceItemWrapper.classList.remove(\"hidden\");\n }\n }\n}\nfunction setPrimaryMobileMenuToDefaultState(renderRoot) {\n if (renderRoot.querySelector(\".primary-wrapper\")) {\n const mobileMenuWrapper = renderRoot.querySelector(\".secondary-wrapper .fade-out\");\n const menuItems = renderRoot.querySelectorAll(\".primary-wrapper jb-menu-item\");\n menuItems.forEach((primMenuItem) => {\n primMenuItem.classList.add(\"hidden\");\n });\n mobileMenuWrapper?.classList.remove(\"fade-out\");\n renderRoot.querySelector(\"ul.primary\")?.classList.add(\"initial-animations\");\n }\n}\nfunction repositionActivePrimaryMenuItemTitle(renderRoot, activeMenu) {\n const backBtn = renderRoot.querySelector(\".secondary-wrapper jb-button-back\");\n const submenuTitle = renderRoot.querySelector(\".secondary-wrapper .title\");\n const submenuTag = renderRoot.querySelector(\".secondary-wrapper .tag\");\n const menuItems = renderRoot.querySelectorAll(\".primary-wrapper jb-menu-item\");\n menuItems.forEach((item) => {\n if (item.submenu === activeMenu) {\n const selectedMenuItem = item;\n const menuTitle = selectedMenuItem.shadowRoot?.querySelector(\"span\");\n const menuTag = selectedMenuItem.shadowRoot?.querySelector(\"p\");\n const selectedMenuListItem = selectedMenuItem.shadowRoot?.querySelector(\"li\");\n if (selectedMenuListItem) {\n const distance = backBtn.getBoundingClientRect().bottom - selectedMenuListItem.getBoundingClientRect().top - 5;\n selectedMenuListItem.style.transform = \"translateY(\" + distance + \"px)\";\n submenuTitle.innerHTML = menuTitle.innerHTML;\n if (menuTag) {\n submenuTag.innerHTML = menuTag.innerHTML;\n } else {\n submenuTag.classList.add(\"no-value\");\n }\n }\n }\n });\n}\nfunction resetPositionPrimaryMenuItemTitle(renderRoot, activeMenu) {\n const submenuTitle = renderRoot.querySelector(\".secondary-wrapper\")?.querySelector(\".title\");\n const submenuTag = renderRoot.querySelector(\".secondary-wrapper\")?.querySelector(\".tag\");\n const a = renderRoot.querySelectorAll(`.primary-wrapper jb-menu-item`);\n a.forEach((item) => {\n if (item.submenu === activeMenu) {\n const selectedMenuItem = item?.shadowRoot?.querySelector(`li`);\n selectedMenuItem.style.transform = \"translateY(0px)\";\n }\n });\n submenuTitle.innerHTML = \"\";\n submenuTag.innerHTML = \"\";\n submenuTag.classList.remove(\"no-value\");\n}\nfunction startMenuFadeOut(renderRoot) {\n if (isMobile() && renderRoot.querySelector(\".secondary-wrapper .active\")) {\n fadeOutSecondaryMenuWrapperMobile(renderRoot);\n } else {\n fadeOutPrimaryMenuItems(renderRoot, renderRoot.querySelector(\".primary-wrapper\"));\n }\n}\n\nexport {\n activateSecondaryMenuItem,\n bindDesktopEvents,\n bindEvents,\n bindMobileEvents,\n bindSharedEvents,\n clearActivePrimaryMenuItemDesktop,\n clearPrimaryDesktopMenuGraceAnimations,\n clearSecondaryDesktopMenuAnimations,\n closeMenu,\n closeSecondaryMenuMobile,\n conditionalDispatchFadeOutEvent,\n deactivateSecondaryMenuItem,\n dispatchFadeOutEvent,\n dispatchTransitionCompleteEvent,\n fadeInPrimaryMenuItems,\n fadeInSecondaryMenuDesktop,\n fadeInSecondaryMenuItems,\n fadeOutPrimaryMenuItems,\n fadeOutPrimaryMobileMenuItemsWithException,\n fadeOutSecondaryMenuDesktop,\n removeTransitionalMenuItemEvent,\n fadeOutSecondaryMenuItems,\n fadeOutSecondaryMenuWrapperMobile,\n initiateFadeOutSecondaryMenuDesktop,\n openMenu,\n openSecondaryMenuMobile,\n resetPrimaryMobileMenuItems,\n setPrimaryMobileMenuToDefaultState,\n repositionActivePrimaryMenuItemTitle,\n resetPositionPrimaryMenuItemTitle,\n startMenuFadeOut\n};\n", "import {\n bindEvents,\n closeSecondaryMenuMobile,\n fadeInPrimaryMenuItems\n} from \"./chunk.OOINLVPA.js\";\nimport {\n isMobile\n} from \"./chunk.YDQDJZUC.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n Animatable\n} from \"./chunk.VRR2P3PQ.js\";\nimport {\n JBCookie,\n debounce,\n getEventElement\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-menu/jb-menu.scss?inline\nvar jb_menu_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.mobile-menu .secondary-wrapper .submenu-header .tag {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n.mobile-menu .secondary-wrapper .submenu-header .title {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n background-color: #141e55;\n display: block;\n height: 100%;\n height: calc(100vh - 60px);\n transform-origin: top center;\n width: 100%;\n}\n@media (min-width: 600px) {\n :host {\n height: calc(100vh - 90px);\n }\n}\n@media (min-width: 1281px) {\n :host {\n height: calc(100vh - 100px);\n }\n}\n\n.desktop-menu {\n --menu-padding-top: 70px;\n height: 100%;\n overflow: hidden;\n padding-top: var(--menu-padding-top);\n transition: transform 0.5s ease-out, padding-top 0.2s linear;\n width: 100%;\n z-index: 201;\n}\n.desktop-menu div {\n display: flex;\n height: 100%;\n padding-left: 6.955vw;\n}\n@media (min-width: 1437px) and (hover: hover) {\n .desktop-menu div {\n padding-left: calc((100vw - var(--row-max-width, 1436px)) / 2);\n }\n}\n.desktop-menu div .primary-wrapper,\n.desktop-menu div .secondary-wrapper {\n box-sizing: border-box;\n flex-basis: 33.3333333333%;\n max-width: 33.3333333333%;\n padding: 0 20px;\n width: 33.3333333333%;\n margin-left: 16.6666666667%;\n}\n.desktop-menu div .primary-wrapper {\n flex-basis: calc(86.09vw * 0.3333);\n margin-left: calc(86.09vw * 0.1667);\n max-width: calc(86.09vw * 0.3333);\n overflow-y: auto;\n width: calc(86.09vw * 0.3333);\n}\n.desktop-menu div .primary-wrapper jb-menu-item,\n.desktop-menu div .primary-wrapper jb-service-navigation {\n opacity: 0;\n}\n.desktop-menu div .primary-wrapper::-webkit-scrollbar {\n background-color: #f1f2f2;\n width: 5px;\n}\n.desktop-menu div .primary-wrapper::-webkit-scrollbar-track {\n background-clip: content-box;\n background-color: #141e55;\n}\n.desktop-menu div .primary-wrapper::-webkit-scrollbar-thumb {\n background-color: #f1f2f2;\n border-radius: 4px;\n width: 180px;\n}\n@media (min-width: 1437px) and (hover: hover) {\n .desktop-menu div .primary-wrapper {\n flex-basis: calc(var(--row-max-width, 1436px) * 0.3333);\n margin-left: calc(var(--row-max-width, 1436px) * 0.1667);\n max-width: calc(var(--row-max-width, 1436px) * 0.3333);\n width: calc(var(--row-max-width, 1436px) * 0.3333);\n }\n}\n.desktop-menu div .primary-wrapper.hidden {\n opacity: 0;\n z-index: -1;\n}\n.desktop-menu div .primary-wrapper jb-service-navigation {\n display: none;\n}\n.desktop-menu div .primary-wrapper .primary {\n flex-basis: 100%;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(1) {\n transition: opacity 0.5s ease-in-out 0s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(2) {\n transition: opacity 0.5s ease-in-out 0.2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(3) {\n transition: opacity 0.5s ease-in-out 0.4s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(4) {\n transition: opacity 0.5s ease-in-out 0.6s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(5) {\n transition: opacity 0.5s ease-in-out 0.8s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(6) {\n transition: opacity 0.5s ease-in-out 1s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(7) {\n transition: opacity 0.5s ease-in-out 1.2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(8) {\n transition: opacity 0.5s ease-in-out 1.4s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(9) {\n transition: opacity 0.5s ease-in-out 1.6s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(10) {\n transition: opacity 0.5s ease-in-out 1.8s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(11) {\n transition: opacity 0.5s ease-in-out 2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(12) {\n transition: opacity 0.5s ease-in-out 2.2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(13) {\n transition: opacity 0.5s ease-in-out 2.4s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(14) {\n transition: opacity 0.5s ease-in-out 2.6s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(15) {\n transition: opacity 0.5s ease-in-out 2.8s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(16) {\n transition: opacity 0.5s ease-in-out 3s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(17) {\n transition: opacity 0.5s ease-in-out 3.2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(18) {\n transition: opacity 0.5s ease-in-out 3.4s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(19) {\n transition: opacity 0.5s ease-in-out 3.6s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(20) {\n transition: opacity 0.5s ease-in-out 3.8s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden {\n opacity: 0;\n z-index: -1;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(1) {\n transition: opacity 0.5s ease-in-out 1s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(2) {\n transition: opacity 0.5s ease-in-out 0.8s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(3) {\n transition: opacity 0.5s ease-in-out 0.6s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(4) {\n transition: opacity 0.5s ease-in-out 0.4s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(5) {\n transition: opacity 0.5s ease-in-out 0.2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(6) {\n transition: opacity 0.5s ease-in-out 0s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(7) {\n transition: opacity 0.5s ease-in-out -0.2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(8) {\n transition: opacity 0.5s ease-in-out -0.4s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(9) {\n transition: opacity 0.5s ease-in-out -0.6s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(10) {\n transition: opacity 0.5s ease-in-out -0.8s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(11) {\n transition: opacity 0.5s ease-in-out -1s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(12) {\n transition: opacity 0.5s ease-in-out -1.2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(13) {\n transition: opacity 0.5s ease-in-out -1.4s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(14) {\n transition: opacity 0.5s ease-in-out -1.6s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(15) {\n transition: opacity 0.5s ease-in-out -1.8s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(16) {\n transition: opacity 0.5s ease-in-out -2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(17) {\n transition: opacity 0.5s ease-in-out -2.2s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(18) {\n transition: opacity 0.5s ease-in-out -2.4s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(19) {\n transition: opacity 0.5s ease-in-out -2.6s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item.hidden:nth-child(20) {\n transition: opacity 0.5s ease-in-out -2.8s;\n}\n.desktop-menu div .primary-wrapper .primary jb-menu-item:nth-child(1) {\n --padding-top: 10px;\n}\n@media (min-width: 1281px) {\n .desktop-menu div .primary-wrapper .primary jb-menu-item {\n --padding-top: 25px;\n }\n}\n.desktop-menu div .secondary-wrapper {\n margin-left: 0%;\n flex-grow: 1;\n max-width: none;\n overflow: hidden auto;\n -webkit-overflow-scrolling: touch;\n padding-right: 0;\n position: relative;\n}\n.desktop-menu div .secondary-wrapper::-webkit-scrollbar {\n background-color: #f1f2f2;\n width: 5px;\n}\n.desktop-menu div .secondary-wrapper::-webkit-scrollbar-track {\n background-clip: content-box;\n background-color: #141e55;\n}\n.desktop-menu div .secondary-wrapper::-webkit-scrollbar-thumb {\n background-color: #f1f2f2;\n border-radius: 4px;\n width: 180px;\n}\n.desktop-menu div .secondary-wrapper .submenu-header.hidden {\n display: none;\n}\n.desktop-menu div .secondary-wrapper .secondary {\n transition: opacity 0.4s;\n z-index: -1;\n}\n.desktop-menu div .secondary-wrapper .secondary .desktop-menu__item.hidden {\n transition: opacity 0.5s ease-in-out, height 0s 0.5s;\n}\n.desktop-menu div .secondary-wrapper .secondary .desktop-menu__item:last-child {\n padding-bottom: 150px;\n}\n.desktop-menu a {\n display: inline-block;\n}\n.desktop-menu jb-secondary-menu-list {\n opacity: 0;\n transition: opacity 0.4s ease-in-out;\n}\n.desktop-menu jb-secondary-menu-list.active {\n opacity: 1;\n z-index: 99;\n}\n\n.mobile-menu {\n overflow: hidden;\n padding-bottom: 112px;\n padding-top: 30px;\n transition: transform 0.5s ease-out, padding-top 0.2s linear;\n width: 100%;\n z-index: 201;\n}\n@media (min-width: 600px) {\n .mobile-menu {\n padding-top: 50px;\n }\n}\n@media (min-width: 960px) {\n .mobile-menu {\n padding-top: 70px;\n }\n}\n.mobile-menu .wrapper {\n display: flex;\n padding-left: 0;\n}\n.mobile-menu jb-service-navigation {\n display: block;\n margin-top: 40px;\n opacity: 1;\n text-align: center;\n transition: opacity 0.35s ease-in-out 0.1s;\n}\n.mobile-menu jb-service-navigation.hidden {\n opacity: 0;\n}\n.mobile-menu .primary-wrapper {\n position: relative;\n}\n.mobile-menu .primary-wrapper jb-menu-item,\n.mobile-menu .primary-wrapper jb-service-navigation {\n opacity: 0;\n}\n.mobile-menu .primary-wrapper.hidden {\n opacity: 0;\n z-index: -1;\n}\n.mobile-menu .primary-wrapper jb-menu-item {\n --padding-bottom: 16px;\n --padding-top: 25px;\n}\n.mobile-menu .primary-wrapper jb-menu-item:nth-child(1) {\n --padding-top: 0;\n}\n@media (min-width: 600px) {\n .mobile-menu .primary-wrapper jb-menu-item {\n --padding-top: 21px;\n }\n}\n@media (hover: none) and (min-width: 600px) {\n .mobile-menu .primary-wrapper jb-menu-item {\n --padding-top: 24px;\n }\n}\n.mobile-menu .primary-wrapper jb-menu-item.hidden {\n opacity: 0;\n z-index: -1;\n}\n.mobile-menu .primary-wrapper .primary {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n display: block;\n margin-left: var(--row-small-margin, 6.68%);\n margin-right: auto;\n}\n@media (min-width: 600px) and (max-width: 959px) {\n .mobile-menu .primary-wrapper .primary {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 1437px) {\n .mobile-menu .primary-wrapper .primary {\n max-width: var(--row-max-width, 1436px);\n }\n .mobile-menu .primary-wrapper .primary:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1436px) {\n .mobile-menu .primary-wrapper .primary {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}\n@media (min-width: 600px) {\n .mobile-menu .primary-wrapper .primary {\n margin-left: 30vw;\n width: 40vw;\n }\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(1) {\n transition: opacity 0.5s ease-in-out 0s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(2) {\n transition: opacity 0.5s ease-in-out 0.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(3) {\n transition: opacity 0.5s ease-in-out 0.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(4) {\n transition: opacity 0.5s ease-in-out 0.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(5) {\n transition: opacity 0.5s ease-in-out 0.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(6) {\n transition: opacity 0.5s ease-in-out 1s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(7) {\n transition: opacity 0.5s ease-in-out 1.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(8) {\n transition: opacity 0.5s ease-in-out 1.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(9) {\n transition: opacity 0.5s ease-in-out 1.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(10) {\n transition: opacity 0.5s ease-in-out 1.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(11) {\n transition: opacity 0.5s ease-in-out 2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(12) {\n transition: opacity 0.5s ease-in-out 2.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(13) {\n transition: opacity 0.5s ease-in-out 2.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(14) {\n transition: opacity 0.5s ease-in-out 2.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(15) {\n transition: opacity 0.5s ease-in-out 2.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(16) {\n transition: opacity 0.5s ease-in-out 3s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(17) {\n transition: opacity 0.5s ease-in-out 3.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(18) {\n transition: opacity 0.5s ease-in-out 3.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(19) {\n transition: opacity 0.5s ease-in-out 3.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item:nth-child(20) {\n transition: opacity 0.5s ease-in-out 3.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(1) {\n transition: opacity 0.5s ease-in-out 1s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(2) {\n transition: opacity 0.5s ease-in-out 0.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(3) {\n transition: opacity 0.5s ease-in-out 0.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(4) {\n transition: opacity 0.5s ease-in-out 0.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(5) {\n transition: opacity 0.5s ease-in-out 0.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(6) {\n transition: opacity 0.5s ease-in-out 0s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(7) {\n transition: opacity 0.5s ease-in-out -0.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(8) {\n transition: opacity 0.5s ease-in-out -0.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(9) {\n transition: opacity 0.5s ease-in-out -0.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(10) {\n transition: opacity 0.5s ease-in-out -0.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(11) {\n transition: opacity 0.5s ease-in-out -1s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(12) {\n transition: opacity 0.5s ease-in-out -1.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(13) {\n transition: opacity 0.5s ease-in-out -1.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(14) {\n transition: opacity 0.5s ease-in-out -1.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(15) {\n transition: opacity 0.5s ease-in-out -1.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(16) {\n transition: opacity 0.5s ease-in-out -2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(17) {\n transition: opacity 0.5s ease-in-out -2.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(18) {\n transition: opacity 0.5s ease-in-out -2.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(19) {\n transition: opacity 0.5s ease-in-out -2.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.hidden:nth-child(20) {\n transition: opacity 0.5s ease-in-out -2.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(1) {\n transition: opacity 0.5s ease-in-out 0s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(2) {\n transition: opacity 0.5s ease-in-out 0.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(3) {\n transition: opacity 0.5s ease-in-out 0.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(4) {\n transition: opacity 0.5s ease-in-out 0.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(5) {\n transition: opacity 0.5s ease-in-out 0.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(6) {\n transition: opacity 0.5s ease-in-out 1s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(7) {\n transition: opacity 0.5s ease-in-out 1.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(8) {\n transition: opacity 0.5s ease-in-out 1.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(9) {\n transition: opacity 0.5s ease-in-out 1.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(10) {\n transition: opacity 0.5s ease-in-out 1.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(11) {\n transition: opacity 0.5s ease-in-out 2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(12) {\n transition: opacity 0.5s ease-in-out 2.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(13) {\n transition: opacity 0.5s ease-in-out 2.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(14) {\n transition: opacity 0.5s ease-in-out 2.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(15) {\n transition: opacity 0.5s ease-in-out 2.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(16) {\n transition: opacity 0.5s ease-in-out 3s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(17) {\n transition: opacity 0.5s ease-in-out 3.2s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(18) {\n transition: opacity 0.5s ease-in-out 3.4s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(19) {\n transition: opacity 0.5s ease-in-out 3.6s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(20) {\n transition: opacity 0.5s ease-in-out 3.8s;\n}\n.mobile-menu .primary-wrapper .primary.initial-animations jb-menu-item.secondary:nth-child(21) {\n transition: opacity 0.5s ease-in-out 4s;\n}\n.mobile-menu .primary-wrapper,\n.mobile-menu .secondary-wrapper {\n overflow: hidden auto;\n -webkit-overflow-scrolling: touch;\n width: 100%;\n}\n.mobile-menu .primary-wrapper::-webkit-scrollbar,\n.mobile-menu .secondary-wrapper::-webkit-scrollbar {\n background-color: #f1f2f2;\n width: 5px;\n}\n.mobile-menu .primary-wrapper::-webkit-scrollbar-track,\n.mobile-menu .secondary-wrapper::-webkit-scrollbar-track {\n background-clip: content-box;\n background-color: #141e55;\n}\n.mobile-menu .primary-wrapper::-webkit-scrollbar-thumb,\n.mobile-menu .secondary-wrapper::-webkit-scrollbar-thumb {\n background-color: #f1f2f2;\n border-radius: 4px;\n width: 180px;\n}\n.mobile-menu .secondary-wrapper {\n left: 0;\n opacity: 0;\n padding-top: 16px;\n pointer-events: none;\n position: absolute;\n right: 0;\n z-index: -1;\n}\n.mobile-menu .secondary-wrapper jb-button-back {\n cursor: pointer;\n display: block;\n margin-bottom: 20px;\n opacity: 0;\n transform: translateX(20px);\n transition: opacity 0.35s ease-in, transform 0.35s ease-in-out;\n z-index: 10;\n}\n.mobile-menu .secondary-wrapper.active {\n height: calc(100vh - 90px);\n opacity: 1;\n pointer-events: all;\n z-index: 1;\n}\n@media (min-width: 600px) {\n .mobile-menu .secondary-wrapper.active {\n height: calc(100vh - 140px);\n }\n}\n@media (min-width: 960px) {\n .mobile-menu .secondary-wrapper.active {\n height: calc(100vh - 160px);\n }\n}\n.mobile-menu .secondary-wrapper.active jb-button-back {\n opacity: 1;\n transform: translateX(0);\n}\n.mobile-menu .secondary-wrapper.fade-out {\n opacity: 0;\n transition: opacity 0.5s ease-in-out;\n}\n.mobile-menu .secondary-wrapper .submenu-header {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n display: block;\n margin-bottom: 26px;\n}\n@media (min-width: 600px) and (max-width: 959px) {\n .mobile-menu .secondary-wrapper .submenu-header {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 1437px) {\n .mobile-menu .secondary-wrapper .submenu-header {\n max-width: var(--row-max-width, 1436px);\n }\n .mobile-menu .secondary-wrapper .submenu-header:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1436px) {\n .mobile-menu .secondary-wrapper .submenu-header {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}\n@media (min-width: 600px) {\n .mobile-menu .secondary-wrapper .submenu-header {\n margin-bottom: 40px;\n margin-left: 30vw;\n width: 40vw;\n }\n}\n.mobile-menu .secondary-wrapper .submenu-header .title {\n font-size: 26px;\n font-size: 1.625rem;\n line-height: 35px;\n line-height: 2.1875rem;\n color: #fff;\n}\n.mobile-menu .secondary-wrapper .submenu-header .tag {\n font-size: 11px;\n font-size: 0.6875rem;\n line-height: 16px;\n line-height: 1rem;\n letter-spacing: 1px;\n letter-spacing: 0.0625rem;\n border-left: none;\n color: #fff;\n text-transform: uppercase;\n}\n.mobile-menu .secondary-wrapper .submenu-header .tag .no-value {\n display: none;\n}\n.mobile-menu .secondary-wrapper jb-secondary-menu-list {\n max-height: 0;\n}\n.mobile-menu .secondary-wrapper jb-secondary-menu-list.active {\n display: unset;\n max-height: 200vh;\n}\n.mobile-menu .secondary-wrapper jb-menu-item.span {\n font-size: 21px;\n font-size: 1.3125rem;\n}\n.mobile-menu .secondary-wrapper jb-menu-item:first-of-type {\n padding-top: 0;\n}`;\n\n// src/components/jb-menu/jb-menu.ts\nvar JbMenu = class extends Initiable(Animatable(h)) {\n constructor() {\n super(...arguments);\n this._isMobileMenu = false;\n this._market = \"\";\n }\n firstUpdated() {\n this._market = JBCookie.getI18nCookieData().market;\n this._isMobileMenu = isMobile();\n bindEvents(this.renderRoot);\n if (this.active) fadeInPrimaryMenuItems(this.renderRoot, this.renderRoot.querySelector(\".primary-wrapper\"));\n window.addEventListener(\n \"resize\",\n debounce(() => {\n this._isMobileMenu = isMobile();\n bindEvents(this.renderRoot);\n this.dispatchEvent(new CustomEvent(\"jbMenuFullFadeOut\"));\n const isSecondaryMenuActive = this.renderRoot.querySelector(\".secondary-wrapper.active\");\n if (isSecondaryMenuActive) {\n closeSecondaryMenuMobile(this.renderRoot);\n }\n }, 100)\n );\n }\n _getItemMarketTag(item) {\n const matchingSubmenu = this.submenus?.find((sm) => sm.parent === item.submenu);\n const matchingMarketRedirect = matchingSubmenu?.marketRedirects?.find((mr) => mr.marketId === this._market);\n if (!matchingMarketRedirect) {\n return void 0;\n }\n return matchingMarketRedirect.marketName;\n }\n _getSubitems(submenu) {\n if (!submenu.marketRedirects) {\n return submenu.subitems;\n }\n const matchingMarketRedirect = submenu.marketRedirects?.find((mr) => mr.marketId === this._market);\n if (!matchingMarketRedirect) {\n return submenu.subitems;\n }\n return matchingMarketRedirect.subpages.map((sp) => ({ link: { href: sp.url }, text: sp.linktext }));\n }\n _sendTrackingClick(texts, url, e) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e, {\n component_name: \"header\",\n interaction_effect: url ? \"navigation\" : \"open\",\n interaction_element: texts[texts.length - 1],\n interaction_result: url ?? \"overlay\",\n interaction_text: `hamburger__${texts.join(\"__\")}`,\n interaction_type: \"click\"\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n _trackMenu(evt) {\n evt.stopPropagation();\n const menuItem = getEventElement(evt, \"JB-MENU-ITEM\");\n const hasSubmenus = this.submenus?.some((e) => e.parent === menuItem.submenu);\n if (this._isMobileMenu && hasSubmenus) {\n return;\n }\n this._sendTrackingClick([menuItem.text.replace(/\\s+/g, \"-\").toLowerCase()], menuItem.link.href, evt);\n }\n _trackServiceNavigation(evt) {\n const serviceNavigationItem = getEventElement(evt, \"JB-SERVICE-NAVIGATION-ITEM\");\n const serviceNavigationItemUrl = serviceNavigationItem.link?.data?.action ? void 0 : serviceNavigationItem.link?.href;\n this._sendTrackingClick(\n [serviceNavigationItem.text.replace(/\\s+/g, \"-\").toLowerCase()],\n serviceNavigationItemUrl,\n evt\n );\n }\n _trackSubMenu(evt) {\n evt.stopPropagation();\n const secondaryMenuList = getEventElement(evt, \"JB-SECONDARY-MENU-LIST\");\n const menuItem = getEventElement(evt, \"JB-MENU-ITEM\");\n const subMenuItemText = menuItem.text.replace(/\\s+/g, \"-\").toLowerCase();\n const menuItemText = this.items.find((item) => item.submenu === secondaryMenuList.dataset.belongs).text.replace(/\\s+/g, \"-\").toLowerCase();\n this._sendTrackingClick([menuItemText, subMenuItemText], menuItem.link.href, evt);\n }\n render() {\n return ke`
\n \n
\n
\n ${this.items.map(\n (item) => ke` `\n )}\n \n ${this.serviceNavigationItems && ke`\n
\n ${this.serviceNavigationItems.map(\n (item) => ke` `\n )}\n \n `}\n
\n\n ${this.submenus && ke`\n
\n
\n\n ${this.submenus.map(\n (submenu) => ke`
`\n )}\n
\n `}\n
\n `;\n }\n};\nJbMenu.styles = r(jb_menu_default);\n__decorateClass([\n n({ type: Boolean })\n], JbMenu.prototype, \"active\", 2);\n__decorateClass([\n n()\n], JbMenu.prototype, \"backLabel\", 2);\n__decorateClass([\n n({ type: Array })\n], JbMenu.prototype, \"items\", 2);\n__decorateClass([\n n({ type: Array })\n], JbMenu.prototype, \"serviceNavigationItems\", 2);\n__decorateClass([\n n({ type: Array })\n], JbMenu.prototype, \"submenus\", 2);\n__decorateClass([\n r2()\n], JbMenu.prototype, \"_isMobileMenu\", 2);\n__decorateClass([\n r2()\n], JbMenu.prototype, \"_market\", 2);\nJbMenu = __decorateClass([\n customElement(\"jb-menu\")\n], JbMenu);\n\nexport {\n JbMenu\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-service-navigation/jb-service-navigation.scss?inline\nvar jb_service_navigation_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n.service-navigation {\n align-self: center;\n display: var(--display);\n font-size: 0;\n opacity: 1;\n text-decoration: none;\n transition: opacity 0.35s ease-in-out 0.1s;\n}\n.service-navigation__bottom-links {\n margin-bottom: 90px;\n margin-top: 40px;\n text-align: center;\n}\n@media (orientation: landscape) {\n .service-navigation__bottom-links--second-level {\n margin-bottom: 70px;\n }\n}\n.service-navigation--hidden {\n opacity: 0;\n}\n.service-navigation--hide-all-except-first ::slotted(jb-service-navigation-item:nth-child(n+2)) {\n display: none;\n}\n.service-navigation--hide-first ::slotted(jb-service-navigation-item:first-child) {\n display: none;\n}\n.service-navigation--hide-all ::slotted(jb-service-navigation-item) {\n display: none;\n}`;\n\n// src/components/jb-service-navigation/jb-service-navigation.ts\nvar JbServiceNavigation = class extends h {\n render() {\n return ke`\n
\n `;\n }\n};\nJbServiceNavigation.styles = r(jb_service_navigation_default);\n__decorateClass([\n n()\n], JbServiceNavigation.prototype, \"hideItems\", 2);\nJbServiceNavigation = __decorateClass([\n customElement(\"jb-service-navigation\")\n], JbServiceNavigation);\n\nexport {\n JbServiceNavigation\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Linkable\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-service-navigation-item/jb-service-navigation-item.scss?inline\nvar jb_service_navigation_item_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.service-navigation-item__text {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n.service-navigation-item__text {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n}\n\n.service-navigation-item {\n -moz-osx-font-smoothing: grayscale;\n overflow: hidden;\n position: relative;\n transform: translateZ(0);\n list-style: none;\n position: relative;\n}\n.service-navigation-item::before {\n animation-direction: reverse;\n background-color: rgba(var(--rgb-primary, 255, 255, 255), 0.2);\n bottom: 0;\n content: \"\";\n height: 30px;\n left: 0;\n position: absolute;\n transition: height 0.3s ease 0.2s;\n width: 1px;\n}\n.service-navigation-item::after {\n background: rgba(var(--rgb-primary, 255, 255, 255), 0.2);\n bottom: 0;\n content: \"\";\n height: 1px;\n left: 0;\n position: absolute;\n right: 100%;\n transition: right 0.3s ease-in-out 0.2s;\n}\n.service-navigation-item:hover::before {\n height: 0;\n}\n.service-navigation-item:hover::after {\n right: 10%;\n}\n.service-navigation-item--animate-left::before {\n height: 33px;\n}\n.service-navigation-item--animate-left:hover::after {\n right: 27px;\n transition-delay: 0.2s;\n transition-duration: 0.3s;\n transition-timing-function: ease-in-out;\n}\n.service-navigation-item--animate-left:hover::before {\n height: 0;\n}\n.service-navigation-item__text {\n color: rgb(var(--rgb-primary, 255, 255, 255));\n display: block;\n line-height: 2.25rem;\n padding: 0 27px 0 19px;\n text-decoration: none;\n text-transform: uppercase;\n}\n@media (min-width: 1281px) {\n .service-navigation-item__text {\n padding: 0 27px 0 18px;\n }\n}\n.service-navigation-item.mobile-menu {\n margin-left: 24px;\n}\n.service-navigation-item.mobile-menu.first-element {\n margin-left: 0;\n}\n.service-navigation-item.mobile-menu .service-navigation-item__text {\n line-height: 1rem;\n padding: 0 0 9px;\n}\n.service-navigation-item.mobile-menu::before {\n content: none;\n}\n.service-navigation-item.mobile-menu::after {\n background-color: rgba(255, 255, 255, 0.2);\n width: 100%;\n}`;\n\n// src/components/jb-service-navigation-item/jb-service-navigation-item.ts\nvar JbServiceNavigationItem = class extends Linkable(h) {\n render() {\n return ke`\n
\n ${this.text} \n \n `;\n }\n};\nJbServiceNavigationItem.styles = r(jb_service_navigation_item_default);\n__decorateClass([\n n()\n], JbServiceNavigationItem.prototype, \"text\", 2);\nJbServiceNavigationItem = __decorateClass([\n customElement(\"jb-service-navigation-item\")\n], JbServiceNavigationItem);\n\nexport {\n JbServiceNavigationItem\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n Animatable\n} from \"./chunk.VRR2P3PQ.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-secondary-menu-list/jb-secondary-menu-list.scss?inline\nvar jb_secondary_menu_list_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\n.secondary {\n font-size: 0;\n font-size: 0;\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n display: block;\n height: auto;\n margin-left: var(--row-small-margin, 6.68%);\n margin-right: auto;\n margin-top: -11px;\n overflow: hidden;\n position: absolute;\n transition: opacity 0s 0s, transform 0s 0s, height 0s 0s;\n width: calc(100% - var(--row-small-margin, 6.68%) * 2);\n}\n@media (min-width: 600px) and (max-width: 959px) {\n .secondary {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 1437px) {\n .secondary {\n max-width: var(--row-max-width, 1436px);\n }\n .secondary:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1436px) {\n .secondary {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}\n@media (min-width: 600px) {\n .secondary {\n margin-left: 30vw;\n margin-top: -24px;\n transition: opacity 0.4s, max-height 0.4s ease-in-out;\n transition-delay: 0s, 0.6s;\n width: 40vw;\n }\n}\n@media (min-width: 1281px) {\n .secondary {\n margin-top: -11px;\n }\n}\n@media (min-width: 1281px) and (hover: hover) {\n .secondary {\n margin-left: 0;\n }\n}\n@media (hover: none) and (width >= 600px) {\n .secondary {\n transition: opacity 0s, transform 0s, height 0s;\n transition-delay: 0s, 0s, 0s, 0s;\n }\n}\n.secondary jb-menu-item {\n max-height: 100vh;\n}\n.secondary jb-menu-item:nth-child(1) {\n transition: opacity 0.5s ease-in-out 0s;\n}\n.secondary jb-menu-item:nth-child(2) {\n transition: opacity 0.5s ease-in-out 0.1s;\n}\n.secondary jb-menu-item:nth-child(3) {\n transition: opacity 0.5s ease-in-out 0.2s;\n}\n.secondary jb-menu-item:nth-child(4) {\n transition: opacity 0.5s ease-in-out 0.3s;\n}\n.secondary jb-menu-item:nth-child(5) {\n transition: opacity 0.5s ease-in-out 0.4s;\n}\n.secondary jb-menu-item:nth-child(6) {\n transition: opacity 0.5s ease-in-out 0.5s;\n}\n.secondary jb-menu-item:nth-child(7) {\n transition: opacity 0.5s ease-in-out 0.6s;\n}\n.secondary jb-menu-item:nth-child(8) {\n transition: opacity 0.5s ease-in-out 0.7s;\n}\n.secondary jb-menu-item:nth-child(9) {\n transition: opacity 0.5s ease-in-out 0.8s;\n}\n.secondary jb-menu-item:nth-child(10) {\n transition: opacity 0.5s ease-in-out 0.9s;\n}\n.secondary jb-menu-item:nth-child(11) {\n transition: opacity 0.5s ease-in-out 1s;\n}\n.secondary jb-menu-item:nth-child(12) {\n transition: opacity 0.5s ease-in-out 1.1s;\n}\n.secondary jb-menu-item:nth-child(13) {\n transition: opacity 0.5s ease-in-out 1.2s;\n}\n.secondary jb-menu-item:nth-child(14) {\n transition: opacity 0.5s ease-in-out 1.3s;\n}\n.secondary jb-menu-item:nth-child(15) {\n transition: opacity 0.5s ease-in-out 1.4s;\n}\n.secondary jb-menu-item:nth-child(16) {\n transition: opacity 0.5s ease-in-out 1.5s;\n}\n.secondary jb-menu-item:nth-child(17) {\n transition: opacity 0.5s ease-in-out 1.6s;\n}\n.secondary jb-menu-item:nth-child(18) {\n transition: opacity 0.5s ease-in-out 1.7s;\n}\n.secondary jb-menu-item:nth-child(19) {\n transition: opacity 0.5s ease-in-out 1.8s;\n}\n.secondary jb-menu-item:nth-child(20) {\n transition: opacity 0.5s ease-in-out 1.9s;\n}\n.secondary jb-menu-item:nth-child(21) {\n transition: opacity 0.5s ease-in-out 2s;\n}\n.secondary jb-menu-item:nth-child(22) {\n transition: opacity 0.5s ease-in-out 2.1s;\n}\n.secondary jb-menu-item:nth-child(23) {\n transition: opacity 0.5s ease-in-out 2.2s;\n}\n.secondary jb-menu-item:nth-child(24) {\n transition: opacity 0.5s ease-in-out 2.3s;\n}\n.secondary jb-menu-item:nth-child(25) {\n transition: opacity 0.5s ease-in-out 2.4s;\n}\n.secondary jb-menu-item:nth-child(26) {\n transition: opacity 0.5s ease-in-out 2.5s;\n}\n.secondary jb-menu-item:nth-child(27) {\n transition: opacity 0.5s ease-in-out 2.6s;\n}\n.secondary jb-menu-item:nth-child(28) {\n transition: opacity 0.5s ease-in-out 2.7s;\n}\n.secondary jb-menu-item:nth-child(29) {\n transition: opacity 0.5s ease-in-out 2.8s;\n}\n.secondary jb-menu-item:nth-child(30) {\n transition: opacity 0.5s ease-in-out 2.9s;\n}\n.secondary jb-menu-item:nth-child(31) {\n transition: opacity 0.5s ease-in-out 3s;\n}\n.secondary jb-menu-item:nth-child(32) {\n transition: opacity 0.5s ease-in-out 3.1s;\n}\n.secondary jb-menu-item:nth-child(33) {\n transition: opacity 0.5s ease-in-out 3.2s;\n}\n.secondary jb-menu-item:nth-child(34) {\n transition: opacity 0.5s ease-in-out 3.3s;\n}\n.secondary jb-menu-item:nth-child(35) {\n transition: opacity 0.5s ease-in-out 3.4s;\n}\n.secondary jb-menu-item:nth-child(36) {\n transition: opacity 0.5s ease-in-out 3.5s;\n}\n.secondary jb-menu-item:nth-child(37) {\n transition: opacity 0.5s ease-in-out 3.6s;\n}\n.secondary jb-menu-item:nth-child(38) {\n transition: opacity 0.5s ease-in-out 3.7s;\n}\n.secondary jb-menu-item:nth-child(39) {\n transition: opacity 0.5s ease-in-out 3.8s;\n}\n.secondary jb-menu-item:nth-child(40) {\n transition: opacity 0.5s ease-in-out 3.9s;\n}\n.secondary jb-menu-item:nth-child(41) {\n transition: opacity 0.5s ease-in-out 4s;\n}\n.secondary jb-menu-item.hidden {\n max-height: 0;\n opacity: 0 !important;\n overflow: hidden;\n transition: opacity 0.5s ease-in-out, max-height 0s 0.5s;\n z-index: -1 !important;\n}\n.secondary jb-menu-item:first-of-type {\n --padding-top: 0;\n}\n@media (min-width: 600px) {\n .secondary jb-menu-item:first-of-type {\n margin-top: 20px;\n }\n}\n@media (min-width: 1281px) and (hover: hover) {\n .secondary jb-menu-item:first-of-type {\n --padding-top: 10px;\n margin-top: 0;\n }\n}\n.secondary jb-menu-item:last-of-type {\n margin-bottom: 90px;\n}`;\n\n// src/components/jb-secondary-menu-list/jb-secondary-menu-list.ts\nvar JbSecondaryMenuList = class extends Animatable(h) {\n constructor() {\n super(...arguments);\n this.market = \"\";\n }\n _renderMenuItem(item) {\n return ke`
${item.text}
\n
`;\n }\n render() {\n return ke`\n
\n ${this.staticItem && ke` `}\n ${this.menuItems.map((item) => this._renderMenuItem(item))}\n \n `;\n }\n};\nJbSecondaryMenuList.styles = r(jb_secondary_menu_list_default);\n__decorateClass([\n n()\n], JbSecondaryMenuList.prototype, \"market\", 2);\n__decorateClass([\n n({ type: Array })\n], JbSecondaryMenuList.prototype, \"menuItems\", 2);\n__decorateClass([\n n({ type: Object })\n], JbSecondaryMenuList.prototype, \"staticItem\", 2);\nJbSecondaryMenuList = __decorateClass([\n customElement(\"jb-secondary-menu-list\")\n], JbSecondaryMenuList);\n\nexport {\n JbSecondaryMenuList\n};\n", "import {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n Linkable\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-menu-item/jb-menu-item.scss?inline\nvar jb_menu_item_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\na {\n -moz-osx-font-smoothing: grayscale;\n overflow: hidden;\n position: relative;\n transform: translateZ(0);\n}\na::before {\n background: #fff;\n bottom: 5px;\n content: \"\";\n height: 0%;\n position: absolute;\n right: 0;\n transition: height 0.4s ease-out 0s;\n width: 1px;\n}\na::after {\n background-color: rgba(241, 242, 242, 0.3);\n bottom: 5px;\n content: \"\";\n height: 1px;\n left: 0;\n position: absolute;\n transition: all 0.3s ease-in-out 0.4s;\n width: 10%;\n}\na:hover::before {\n height: 50%;\n transition: height 0.6s ease-out 0.5s;\n}\na:hover::after {\n transition: width 0.5s ease-out 0s;\n width: 100%;\n}\n\n/* stylelint-disable */\n/* stylelint-enable */\np {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n.secondary span, span {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n --padding-bottom: var(--padding-bottom);\n --padding-top: var(--padding-top);\n display: block;\n}\n\nli {\n list-style-type: none;\n opacity: 1;\n padding-top: var(--padding-top, 10px);\n position: relative;\n transition: opacity 0.2s ease-in, transform 0.35s ease-in-out;\n z-index: 100;\n}\nli.secondary {\n --padding-top: 25px;\n}\n@media (min-width: 600px) {\n li.secondary {\n --padding-top: 24px;\n }\n}\n@media (min-width: 1281px) and (hover: hover) {\n li.secondary {\n --padding-top: 21px;\n }\n}\nli.hidden {\n opacity: 0;\n}\n\nli:hover,\nli.active {\n cursor: pointer;\n}\nli:hover a::before,\nli.active a::before {\n bottom: 0;\n height: 0;\n}\nli:hover a::after,\nli.active a::after {\n background-color: rgba(241, 242, 242, 0.3);\n bottom: 0;\n left: 0;\n width: fit;\n}\n@media (min-width: 1281px) {\n li:hover a::after,\n li.active a::after {\n background-color: #fff;\n transition: width 0.3s ease-out 0s;\n width: 100%;\n }\n li:hover a::before,\n li.active a::before {\n height: 20px;\n transition: height 0.25s ease-out 0.35s;\n }\n}\n@media (hover: none) and (min-width: 600px) {\n li:hover a::after,\n li.active a::after {\n background-color: rgba(241, 242, 242, 0.3);\n bottom: 0;\n left: 0;\n width: 40px;\n }\n li:hover a::before,\n li.active a::before {\n bottom: 0;\n height: 0;\n }\n}\n\na {\n color: #fff;\n display: block;\n overflow: hidden;\n padding: 0 20px 7px 0;\n padding-bottom: var(--padding-bottom, 7px);\n position: relative;\n text-decoration: none;\n transition: none;\n width: 100%;\n z-index: 1;\n}\n@media (min-width: 600px) {\n a {\n padding-bottom: var(--padding-bottom, 10px);\n }\n}\n@media (min-width: 1281px) and (hover: hover) {\n a {\n transition: padding-left 0.3s ease-in-out 0s;\n width: fit-content;\n }\n}\n@media (hover: none) and (width >= 600px) {\n a {\n transition: none;\n }\n}\n\na:hover::before {\n height: 0;\n}\n\na:hover::after {\n width: 40px;\n}\n\na::after {\n background-color: rgba(204, 208, 209, 0.2);\n bottom: 0;\n content: \"\";\n left: 0;\n transition: all 0.2s ease-in-out 0.35s;\n width: 40px;\n}\n\na::before {\n bottom: 0;\n height: 0;\n}\n\nspan {\n font-size: 26px;\n font-size: 1.625rem;\n line-height: 35px;\n line-height: 2.1875rem;\n letter-spacing: 0;\n letter-spacing: 0;\n color: #fff;\n position: relative;\n z-index: 1;\n}\n@media (min-width: 1281px) {\n span {\n line-height: 43px;\n line-height: 2.6875rem;\n letter-spacing: normal;\n }\n}\n@media (min-width: 1281px) and (hover: hover) {\n span {\n font-size: 33px;\n font-size: 2.0625rem;\n }\n}\n\n.secondary {\n opacity: 1;\n position: relative;\n transition: opacity 0.35s ease-in;\n}\n.secondary span {\n font-size: 21px;\n font-size: 1.3125rem;\n line-height: 30px;\n line-height: 1.875rem;\n color: #fff;\n}\n@media (min-width: 1281px) and (hover: hover) {\n .secondary span {\n font-size: 22px;\n font-size: 1.375rem;\n }\n}\n.secondary a {\n margin-right: auto;\n padding-bottom: 10px;\n}\n.secondary jb-arrow-forward-icon {\n display: none;\n}\n\np {\n font-size: 11px;\n font-size: 0.6875rem;\n line-height: 16px;\n line-height: 1rem;\n letter-spacing: 1px;\n letter-spacing: 0.0625rem;\n border-left: none;\n color: #fff;\n text-transform: uppercase;\n}\n\njb-arrow-forward-icon {\n fill: #fff;\n height: 27px;\n padding-top: 11px;\n position: absolute;\n right: 8px;\n}\njb-arrow-forward-icon.hidden {\n opacity: 0 !important;\n z-index: -1 !important;\n}\n@media (min-width: 1281px) and (hover: hover) {\n jb-arrow-forward-icon {\n display: none;\n }\n}`;\n\n// src/components/jb-menu-item/jb-menu-item.ts\nvar JbMenuItem = class extends Initiable(Linkable(h)) {\n constructor() {\n super(...arguments);\n this.hidden = false;\n this.type = \"primary\";\n }\n render() {\n return ke`
\n \n ${this.text} \n ${this.submenu && ke` `} ${this.tag && ke`${this.tag}
`}\n \n `;\n }\n};\nJbMenuItem.styles = r(jb_menu_item_default);\n__decorateClass([\n n({ type: Boolean })\n], JbMenuItem.prototype, \"hidden\", 2);\n__decorateClass([\n n({ type: Object })\n], JbMenuItem.prototype, \"link\", 2);\n__decorateClass([\n n()\n], JbMenuItem.prototype, \"submenu\", 2);\n__decorateClass([\n n()\n], JbMenuItem.prototype, \"tag\", 2);\n__decorateClass([\n n()\n], JbMenuItem.prototype, \"text\", 2);\n__decorateClass([\n n()\n], JbMenuItem.prototype, \"type\", 2);\nJbMenuItem = __decorateClass([\n customElement(\"jb-menu-item\")\n], JbMenuItem);\n\nexport {\n JbMenuItem\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-arrow-forward-icon/jb-arrow-forward-icon.scss?inline\nvar jb_arrow_forward_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n height: 16px;\n width: 11px;\n}`;\n\n// src/components/icons/jb-arrow-forward-icon/jb-arrow-forward-icon.ts\nvar JbArrowForwardIcon = class extends h {\n render() {\n return ke`\n
\n \n \n `;\n }\n};\nJbArrowForwardIcon.styles = r(jb_arrow_forward_icon_default);\nJbArrowForwardIcon = __decorateClass([\n customElement(\"jb-arrow-forward-icon\")\n], JbArrowForwardIcon);\n\nexport {\n JbArrowForwardIcon\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-button-back/jb-button-back.scss?inline\nvar jb_button_back_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nspan span {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nspan span {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nspan {\n align-items: center;\n block-size: 15px;\n cursor: pointer;\n display: flex;\n gap: 18px;\n inline-size: fit-content;\n}\nspan jb-arrow-icon {\n fill: #141e55;\n}\nspan span {\n color: #141e55;\n text-transform: uppercase;\n}\nspan.white jb-arrow-back-icon {\n --stroke-color: #fff;\n}\nspan.white span {\n color: #fff;\n}`;\n\n// src/components/jb-button-back/jb-button-back.ts\nvar JbButtonBack = class extends h {\n render() {\n return ke`\n
\n \n ${this.text} \n \n `;\n }\n};\nJbButtonBack.styles = r(jb_button_back_default);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonBack.prototype, \"isWhite\", 2);\n__decorateClass([\n n()\n], JbButtonBack.prototype, \"text\", 2);\nJbButtonBack = __decorateClass([\n customElement(\"jb-button-back\")\n], JbButtonBack);\n\nexport {\n JbButtonBack\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-arrow-back-icon/jb-arrow-back-icon.scss?inline\nvar jb_arrow_back_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n height: 15px;\n}\n\nsvg {\n fill: var(--stroke-color, #141e55);\n}`;\n\n// src/components/icons/jb-arrow-back-icon/jb-arrow-back-icon.ts\nvar JbArrowBackIcon = class extends h {\n render() {\n return ke`\n
\n \n \n `;\n }\n};\nJbArrowBackIcon.styles = r(jb_arrow_back_icon_default);\nJbArrowBackIcon = __decorateClass([\n customElement(\"jb-arrow-back-icon\")\n], JbArrowBackIcon);\n\nexport {\n JbArrowBackIcon\n};\n", "import {\n JbMenu\n} from \"../../chunks/chunk.4MWPCD76.js\";\nimport \"../../chunks/chunk.IK4GS6MF.js\";\nimport \"../../chunks/chunk.VQTQWDQ7.js\";\nimport \"../../chunks/chunk.YHFXFDOO.js\";\nimport \"../../chunks/chunk.OOINLVPA.js\";\nimport \"../../chunks/chunk.BLHU75DH.js\";\nimport \"../../chunks/chunk.JEMJHKRF.js\";\nimport \"../../chunks/chunk.JSKV525N.js\";\nimport \"../../chunks/chunk.UMYVKK54.js\";\nimport \"../../chunks/chunk.YDQDJZUC.js\";\nimport \"../../chunks/chunk.G3SZKTQJ.js\";\nimport \"../../chunks/chunk.YTEMICXC.js\";\nimport \"../../chunks/chunk.LTAMHVKK.js\";\nimport \"../../chunks/chunk.OZEBCGEZ.js\";\nimport \"../../chunks/chunk.TOSSI7AO.js\";\nimport \"../../chunks/chunk.6DHNIVN5.js\";\nimport \"../../chunks/chunk.ABOYTYJO.js\";\nimport \"../../chunks/chunk.7ZO5ST7S.js\";\nimport \"../../chunks/chunk.EELGOWGJ.js\";\nimport \"../../chunks/chunk.WEV4VAJB.js\";\nimport \"../../chunks/chunk.NQ4JNTZU.js\";\nimport \"../../chunks/chunk.KR4IFKAA.js\";\nimport \"../../chunks/chunk.QAGUCU4C.js\";\nimport \"../../chunks/chunk.A4SFXC3I.js\";\nimport \"../../chunks/chunk.KZGIJPE3.js\";\nimport \"../../chunks/chunk.VRR2P3PQ.js\";\nimport \"../../chunks/chunk.7PRSKJZQ.js\";\nimport \"../../chunks/chunk.7ANACPIR.js\";\nimport \"../../chunks/chunk.WXNWU2SV.js\";\nimport \"../../chunks/chunk.FCKNEYTX.js\";\nimport \"../../chunks/chunk.BBN2ZB42.js\";\nimport \"../../chunks/chunk.FAJKIEWS.js\";\nimport \"../../chunks/chunk.I4IFG4JG.js\";\nexport {\n JbMenu\n};\n", "// node_modules/ssr-window/ssr-window.esm.js\nfunction isObject(obj) {\n return obj !== null && typeof obj === \"object\" && \"constructor\" in obj && obj.constructor === Object;\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === \"undefined\")\n target[key] = src[key];\n else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nvar ssrDocument = {\n body: {},\n addEventListener() {\n },\n removeEventListener() {\n },\n activeElement: {\n blur() {\n },\n nodeName: \"\"\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {\n }\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {\n },\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n }\n};\nfunction getDocument() {\n const doc = typeof document !== \"undefined\" ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: \"\"\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n },\n history: {\n replaceState() {\n },\n pushState() {\n },\n go() {\n },\n back() {\n }\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {\n },\n removeEventListener() {\n },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return \"\";\n }\n };\n },\n Image() {\n },\n Date() {\n },\n screen: {},\n setTimeout() {\n },\n clearTimeout() {\n },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === \"undefined\") {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === \"undefined\") {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== \"undefined\" ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\n// node_modules/dom7/dom7.esm.js\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, \"__proto__\", {\n get() {\n return proto;\n },\n set(value) {\n proto.__proto__ = value;\n }\n });\n}\nvar Dom7 = class extends Array {\n constructor(items) {\n if (typeof items === \"number\") {\n super(items);\n } else {\n super(...items || []);\n makeReactive(this);\n }\n }\n};\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach((el) => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction qsa(selector, context) {\n if (typeof selector !== \"string\") {\n return [selector];\n }\n const a = [];\n const res = context.querySelectorAll(selector);\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n return a;\n}\nfunction $(selector, context) {\n const window2 = getWindow();\n const document2 = getDocument();\n let arr = [];\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n if (!selector) {\n return new Dom7(arr);\n }\n if (typeof selector === \"string\") {\n const html2 = selector.trim();\n if (html2.indexOf(\"<\") >= 0 && html2.indexOf(\">\") >= 0) {\n let toCreate = \"div\";\n if (html2.indexOf(\"
c.split(\" \")));\n this.forEach((el) => {\n el.classList.add(...classNames);\n });\n return this;\n}\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map((c) => c.split(\" \")));\n this.forEach((el) => {\n el.classList.remove(...classNames);\n });\n return this;\n}\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map((c) => c.split(\" \")));\n this.forEach((el) => {\n classNames.forEach((className) => {\n el.classList.toggle(className);\n });\n });\n}\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map((c) => c.split(\" \")));\n return arrayFilter(this, (el) => {\n return classNames.filter((className) => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === \"string\") {\n if (this[0]) return this[0].getAttribute(attrs);\n return void 0;\n }\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n this[i].setAttribute(attrs, value);\n } else {\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\nfunction removeAttr(attr2) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr2);\n }\n return this;\n}\nfunction transform(transform2) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform2;\n }\n return this;\n}\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== \"string\" ? `${duration}ms` : duration;\n }\n return this;\n}\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === \"function\") {\n [eventType, listener, capture] = args;\n targetSelector = void 0;\n }\n if (!capture) capture = false;\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents2 = $(target).parents();\n for (let k = 0; k < parents2.length; k += 1) {\n if ($(parents2[k]).is(targetSelector)) listener.apply(parents2[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events2 = eventType.split(\" \");\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events2.length; j += 1) {\n const event2 = events2[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event2]) el.dom7Listeners[event2] = [];\n el.dom7Listeners[event2].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event2, handleEvent, capture);\n }\n } else {\n for (j = 0; j < events2.length; j += 1) {\n const event2 = events2[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event2]) el.dom7LiveListeners[event2] = [];\n el.dom7LiveListeners[event2].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event2, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === \"function\") {\n [eventType, listener, capture] = args;\n targetSelector = void 0;\n }\n if (!capture) capture = false;\n const events2 = eventType.split(\" \");\n for (let i = 0; i < events2.length; i += 1) {\n const event2 = events2[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event2];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event2];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event2, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event2, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event2, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction trigger(...args) {\n const window2 = getWindow();\n const events2 = args[0].split(\" \");\n const eventData = args[1];\n for (let i = 0; i < events2.length; i += 1) {\n const event2 = events2[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n if (window2.CustomEvent) {\n const evt = new window2.CustomEvent(event2, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const dom = this;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off(\"transitionend\", fireCallBack);\n }\n if (callback) {\n dom.on(\"transitionend\", fireCallBack);\n }\n return this;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles2 = this.styles();\n return this[0].offsetWidth + parseFloat(styles2.getPropertyValue(\"margin-right\")) + parseFloat(styles2.getPropertyValue(\"margin-left\"));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles2 = this.styles();\n return this[0].offsetHeight + parseFloat(styles2.getPropertyValue(\"margin-top\")) + parseFloat(styles2.getPropertyValue(\"margin-bottom\"));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const window2 = getWindow();\n const document2 = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document2.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window2 ? window2.scrollY : el.scrollTop;\n const scrollLeft = el === window2 ? window2.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n return null;\n}\nfunction styles() {\n const window2 = getWindow();\n if (this[0]) return window2.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n const window2 = getWindow();\n let i;\n if (arguments.length === 1) {\n if (typeof props === \"string\") {\n if (this[0]) return window2.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === \"string\") {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index2) => {\n callback.apply(el, [el, index2]);\n });\n return this;\n}\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\nfunction html(html2) {\n if (typeof html2 === \"undefined\") {\n return this[0] ? this[0].innerHTML : null;\n }\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html2;\n }\n return this;\n}\nfunction text(text2) {\n if (typeof text2 === \"undefined\") {\n return this[0] ? this[0].textContent.trim() : null;\n }\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text2;\n }\n return this;\n}\nfunction is(selector) {\n const window2 = getWindow();\n const document2 = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === \"undefined\") return false;\n if (typeof selector === \"string\") {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n if (selector === document2) {\n return el === document2;\n }\n if (selector === window2) {\n return el === window2;\n }\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return void 0;\n}\nfunction eq(index2) {\n if (typeof index2 === \"undefined\") return this;\n const length = this.length;\n if (index2 > length - 1) {\n return $([]);\n }\n if (index2 < 0) {\n const returnIndex = length + index2;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n return $([this[index2]]);\n}\nfunction append(...els) {\n let newChild;\n const document2 = getDocument();\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === \"string\") {\n const tempDiv = document2.createElement(\"div\");\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n return this;\n}\nfunction prepend(newChild) {\n const document2 = getDocument();\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === \"string\") {\n const tempDiv = document2.createElement(\"div\");\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n return $([]);\n }\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n return $([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n while (el.nextElementSibling) {\n const next2 = el.nextElementSibling;\n if (selector) {\n if ($(next2).is(selector)) nextEls.push(next2);\n } else nextEls.push(next2);\n el = next2;\n }\n return $(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n return $([]);\n }\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n return $([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n while (el.previousElementSibling) {\n const prev2 = el.previousElementSibling;\n if (selector) {\n if ($(prev2).is(selector)) prevEls.push(prev2);\n } else prevEls.push(prev2);\n el = prev2;\n }\n return $(prevEls);\n}\nfunction parent(selector) {\n const parents2 = [];\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents2.push(this[i].parentNode);\n } else {\n parents2.push(this[i].parentNode);\n }\n }\n }\n return $(parents2);\n}\nfunction parents(selector) {\n const parents2 = [];\n for (let i = 0; i < this.length; i += 1) {\n let parent2 = this[i].parentNode;\n while (parent2) {\n if (selector) {\n if ($(parent2).is(selector)) parents2.push(parent2);\n } else {\n parents2.push(parent2);\n }\n parent2 = parent2.parentNode;\n }\n }\n return $(parents2);\n}\nfunction closest(selector) {\n let closest2 = this;\n if (typeof selector === \"undefined\") {\n return $([]);\n }\n if (!closest2.is(selector)) {\n closest2 = closest2.parents(selector).eq(0);\n }\n return closest2;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return $(foundElements);\n}\nfunction children(selector) {\n const children2 = [];\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children2.push(childNodes[j]);\n }\n }\n }\n return $(children2);\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nvar noTrigger = \"resize scroll\".split(\" \");\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === \"undefined\") {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n }\n return eventHandler;\n}\nvar click = shortcut(\"click\");\nvar blur = shortcut(\"blur\");\nvar focus = shortcut(\"focus\");\nvar focusin = shortcut(\"focusin\");\nvar focusout = shortcut(\"focusout\");\nvar keyup = shortcut(\"keyup\");\nvar keydown = shortcut(\"keydown\");\nvar keypress = shortcut(\"keypress\");\nvar submit = shortcut(\"submit\");\nvar change = shortcut(\"change\");\nvar mousedown = shortcut(\"mousedown\");\nvar mousemove = shortcut(\"mousemove\");\nvar mouseup = shortcut(\"mouseup\");\nvar mouseenter = shortcut(\"mouseenter\");\nvar mouseleave = shortcut(\"mouseleave\");\nvar mouseout = shortcut(\"mouseout\");\nvar mouseover = shortcut(\"mouseover\");\nvar touchstart = shortcut(\"touchstart\");\nvar touchend = shortcut(\"touchend\");\nvar touchmove = shortcut(\"touchmove\");\nvar resize = shortcut(\"resize\");\nvar scroll = shortcut(\"scroll\");\n\n// node_modules/swiper/shared/dom.js\nvar Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach((methodName) => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nvar dom_default = $;\n\n// node_modules/swiper/shared/utils.js\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n }\n try {\n delete object[key];\n } catch (e) {\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle2(el) {\n const window2 = getWindow();\n let style;\n if (window2.getComputedStyle) {\n style = window2.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis = \"x\") {\n const window2 = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle2(el, null);\n if (window2.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(\",\").length > 6) {\n curTransform = curTransform.split(\", \").map((a) => a.replace(\",\", \".\")).join(\", \");\n }\n transformMatrix = new window2.WebKitCSSMatrix(curTransform === \"none\" ? \"\" : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue(\"transform\").replace(\"translate(\", \"matrix(1, 0, 0, 1,\");\n matrix = transformMatrix.toString().split(\",\");\n }\n if (axis === \"x\") {\n if (window2.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === \"y\") {\n if (window2.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject2(o) {\n return typeof o === \"object\" && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === \"Object\";\n}\nfunction isNode(node) {\n if (typeof window !== \"undefined\" && typeof window.HTMLElement !== \"undefined\") {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend2(...args) {\n const to = Object(args[0]);\n const noExtend = [\"__proto__\", \"constructor\", \"prototype\"];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== void 0 && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter((key) => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== void 0 && desc.enumerable) {\n if (isObject2(to[nextKey]) && isObject2(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend2(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject2(to[nextKey]) && isObject2(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend2(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window2 = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = \"none\";\n window2.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? \"next\" : \"prev\";\n const isOutOfBound = (current, target) => {\n return dir === \"next\" && current >= target || dir === \"prev\" && current <= target;\n };\n const animate = () => {\n time = (/* @__PURE__ */ new Date()).getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = \"hidden\";\n swiper.wrapperEl.style.scrollSnapType = \"\";\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = \"\";\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window2.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window2.requestAnimationFrame(animate);\n };\n animate();\n}\n\n// node_modules/swiper/shared/get-support.js\nvar support;\nfunction calcSupport() {\n const window2 = getWindow();\n const document2 = getDocument();\n return {\n smoothScroll: document2.documentElement && \"scrollBehavior\" in document2.documentElement.style,\n touch: !!(\"ontouchstart\" in window2 || window2.DocumentTouch && document2 instanceof window2.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, \"passive\", {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n });\n window2.addEventListener(\"testPassiveListener\", null, opts);\n } catch (e) {\n }\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return \"ongesturestart\" in window2;\n }()\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\n// node_modules/swiper/shared/get-device.js\nvar deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\n const support2 = getSupport();\n const window2 = getWindow();\n const platform = window2.navigator.platform;\n const ua = userAgent || window2.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window2.screen.width;\n const screenHeight = window2.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === \"Win32\";\n let macos = platform === \"MacIntel\";\n const iPadScreens = [\"1024x1366\", \"1366x1024\", \"834x1194\", \"1194x834\", \"834x1112\", \"1112x834\", \"768x1024\", \"1024x768\", \"820x1180\", \"1180x820\", \"810x1080\", \"1080x810\"];\n if (!ipad && macos && support2.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, \"13_0_0\"];\n macos = false;\n }\n if (android && !windows) {\n device.os = \"android\";\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = \"ios\";\n device.ios = true;\n }\n return device;\n}\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\n// node_modules/swiper/shared/get-browser.js\nvar browser;\nfunction calcBrowser() {\n const window2 = getWindow();\n function isSafari() {\n const ua = window2.navigator.userAgent.toLowerCase();\n return ua.indexOf(\"safari\") >= 0 && ua.indexOf(\"chrome\") < 0 && ua.indexOf(\"android\") < 0;\n }\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window2.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\n// node_modules/swiper/core/modules/resize/resize.js\nfunction Resize({\n swiper,\n on: on2,\n emit\n}) {\n const window2 = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit(\"beforeResize\");\n emit(\"resize\");\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver((entries) => {\n animationFrame = window2.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window2.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit(\"orientationchange\");\n };\n on2(\"init\", () => {\n if (swiper.params.resizeObserver && typeof window2.ResizeObserver !== \"undefined\") {\n createObserver();\n return;\n }\n window2.addEventListener(\"resize\", resizeHandler);\n window2.addEventListener(\"orientationchange\", orientationChangeHandler);\n });\n on2(\"destroy\", () => {\n removeObserver();\n window2.removeEventListener(\"resize\", resizeHandler);\n window2.removeEventListener(\"orientationchange\", orientationChangeHandler);\n });\n}\n\n// node_modules/swiper/core/modules/observer/observer.js\nfunction Observer({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n const observers = [];\n const window2 = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window2.MutationObserver || window2.WebkitMutationObserver;\n const observer = new ObserverFunc((mutations) => {\n if (mutations.length === 1) {\n emit(\"observerUpdate\", mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate2() {\n emit(\"observerUpdate\", mutations[0]);\n };\n if (window2.requestAnimationFrame) {\n window2.requestAnimationFrame(observerUpdate);\n } else {\n window2.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === \"undefined\" ? true : options.attributes,\n childList: typeof options.childList === \"undefined\" ? true : options.childList,\n characterData: typeof options.characterData === \"undefined\" ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n });\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach((observer) => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on2(\"init\", init);\n on2(\"destroy\", destroy);\n}\n\n// node_modules/swiper/core/events-emitter.js\nvar events_emitter_default = {\n on(events2, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== \"function\") return self;\n const method = priority ? \"unshift\" : \"push\";\n events2.split(\" \").forEach((event2) => {\n if (!self.eventsListeners[event2]) self.eventsListeners[event2] = [];\n self.eventsListeners[event2][method](handler);\n });\n return self;\n },\n once(events2, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== \"function\") return self;\n function onceHandler(...args) {\n self.off(events2, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events2, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== \"function\") return self;\n const method = priority ? \"unshift\" : \"push\";\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index2 = self.eventsAnyListeners.indexOf(handler);\n if (index2 >= 0) {\n self.eventsAnyListeners.splice(index2, 1);\n }\n return self;\n },\n off(events2, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events2.split(\" \").forEach((event2) => {\n if (typeof handler === \"undefined\") {\n self.eventsListeners[event2] = [];\n } else if (self.eventsListeners[event2]) {\n self.eventsListeners[event2].forEach((eventHandler, index2) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event2].splice(index2, 1);\n }\n });\n }\n });\n return self;\n },\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events2;\n let data;\n let context;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n events2 = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events2 = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events2) ? events2 : events2.split(\" \");\n eventsArray.forEach((event2) => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach((eventHandler) => {\n eventHandler.apply(context, [event2, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event2]) {\n self.eventsListeners[event2].forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\n// node_modules/swiper/core/update/updateSize.js\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== \"undefined\" && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== \"undefined\" && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n width = width - parseInt($el.css(\"padding-left\") || 0, 10) - parseInt($el.css(\"padding-right\") || 0, 10);\n height = height - parseInt($el.css(\"padding-top\") || 0, 10) - parseInt($el.css(\"padding-bottom\") || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\n// node_modules/swiper/core/update/updateSlides.js\nfunction updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n return {\n \"width\": \"height\",\n \"margin-top\": \"margin-left\",\n \"margin-bottom \": \"margin-right\",\n \"margin-left\": \"margin-top\",\n \"margin-right\": \"margin-bottom\",\n \"padding-left\": \"padding-top\",\n \"padding-right\": \"padding-bottom\",\n \"marginRight\": \"marginBottom\"\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === \"function\") {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === \"function\") {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index2 = 0;\n if (typeof swiperSize === \"undefined\") {\n return;\n }\n if (typeof spaceBetween === \"string\" && spaceBetween.indexOf(\"%\") >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace(\"%\", \"\")) / 100 * swiperSize;\n }\n swiper.virtualSize = -spaceBetween;\n if (rtl) slides.css({\n marginLeft: \"\",\n marginBottom: \"\",\n marginTop: \"\"\n });\n else slides.css({\n marginRight: \"\",\n marginBottom: \"\",\n marginTop: \"\"\n });\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, \"--swiper-centered-offset-before\", \"\");\n setCSSProperty(swiper.wrapperEl, \"--swiper-centered-offset-after\", \"\");\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === \"auto\" && params.breakpoints && Object.keys(params.breakpoints).filter((key) => {\n return typeof params.breakpoints[key].slidesPerView !== \"undefined\";\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slide.css(\"display\") === \"none\") continue;\n if (params.slidesPerView === \"auto\") {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel(\"width\")] = ``;\n }\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = \"none\";\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = \"none\";\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n const width = getDirectionPropertyValue(slideStyles, \"width\");\n const paddingLeft = getDirectionPropertyValue(slideStyles, \"padding-left\");\n const paddingRight = getDirectionPropertyValue(slideStyles, \"padding-right\");\n const marginLeft = getDirectionPropertyValue(slideStyles, \"margin-left\");\n const marginRight = getDirectionPropertyValue(slideStyles, \"margin-right\");\n const boxSizing = slideStyles.getPropertyValue(\"box-sizing\");\n if (boxSizing && boxSizing === \"border-box\") {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel(\"width\")] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1e3) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index2 % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index2 - Math.min(swiper.params.slidesPerGroupSkip, index2)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index2 += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === \"slide\" || params.effect === \"coverflow\")) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel(\"width\")]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? \"marginLeft\" : getDirectionLabel(\"marginRight\");\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map((snap) => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, \"--swiper-centered-offset-before\", `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, \"--swiper-centered-offset-after\", `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map((v) => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map((v) => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit(\"slidesLengthChange\");\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit(\"snapGridLengthChange\");\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit(\"slidesGridLengthChange\");\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === \"slide\" || params.effect === \"fade\")) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}\n\n// node_modules/swiper/core/update/updateAutoHeight.js\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === \"number\") {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = (index2) => {\n if (isVirtual) {\n return swiper.slides.filter((el) => parseInt(el.getAttribute(\"data-swiper-slide-index\"), 10) === index2)[0];\n }\n return swiper.slides.eq(index2)[0];\n };\n if (swiper.params.slidesPerView !== \"auto\" && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || dom_default([])).each((slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index2 = swiper.activeIndex + i;\n if (index2 > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index2));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== \"undefined\") {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css(\"height\", `${newHeight}px`);\n}\n\n// node_modules/swiper/core/update/updateSlidesOffset.js\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\n// node_modules/swiper/core/update/updateSlidesProgress.js\nfunction updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === \"undefined\") swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n swiper.visibleSlides = dom_default(swiper.visibleSlides);\n}\n\n// node_modules/swiper/core/update/updateProgress.js\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === \"undefined\") {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit(\"reachBeginning toEdge\");\n }\n if (isEnd && !wasEnd) {\n swiper.emit(\"reachEnd toEdge\");\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit(\"fromEdge\");\n }\n swiper.emit(\"progress\", progress);\n}\n\n// node_modules/swiper/core/update/updateSlidesClasses.js\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n activeSlide.addClass(params.slideActiveClass);\n if (params.loop) {\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n }\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr(\"data-swiper-slide-index\")}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr(\"data-swiper-slide-index\")}\"]`).addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr(\"data-swiper-slide-index\")}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr(\"data-swiper-slide-index\")}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}\n\n// node_modules/swiper/core/update/updateActiveIndex.js\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === \"undefined\") {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== \"undefined\") {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === \"undefined\") activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit(\"snapIndexChange\");\n }\n return;\n }\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr(\"data-swiper-slide-index\") || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit(\"activeIndexChange\");\n swiper.emit(\"snapIndexChange\");\n if (previousRealIndex !== realIndex) {\n swiper.emit(\"realIndexChange\");\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit(\"slideChange\");\n }\n}\n\n// node_modules/swiper/core/update/updateClickedSlide.js\nfunction updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = dom_default(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(dom_default(slide).attr(\"data-swiper-slide-index\"), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = void 0;\n swiper.clickedIndex = void 0;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== void 0 && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\n// node_modules/swiper/core/update/index.js\nvar update_default = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\n// node_modules/swiper/core/translate/getTranslate.js\nfunction getSwiperTranslate(axis = this.isHorizontal() ? \"x\" : \"y\") {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\n// node_modules/swiper/core/translate/setTranslate.js\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? \"scrollLeft\" : \"scrollTop\"] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit(\"setTranslate\", swiper.translate, byController);\n}\n\n// node_modules/swiper/core/translate/minTranslate.js\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\n// node_modules/swiper/core/translate/maxTranslate.js\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\n// node_modules/swiper/core/translate/translateTo.js\nfunction translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate2 = swiper.minTranslate();\n const maxTranslate2 = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate2) newTranslate = minTranslate2;\n else if (translateBounds && translate < maxTranslate2) newTranslate = maxTranslate2;\n else newTranslate = translate;\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? \"scrollLeft\" : \"scrollTop\"] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? \"left\" : \"top\"\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? \"left\" : \"top\"]: -newTranslate,\n behavior: \"smooth\"\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit(\"beforeTransitionStart\", speed, internal);\n swiper.emit(\"transitionEnd\");\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit(\"beforeTransitionStart\", speed, internal);\n swiper.emit(\"transitionStart\");\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd3(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener(\"transitionend\", swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener(\"webkitTransitionEnd\", swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit(\"transitionEnd\");\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener(\"transitionend\", swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener(\"webkitTransitionEnd\", swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\n// node_modules/swiper/core/translate/index.js\nvar translate_default = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\n// node_modules/swiper/core/transition/setTransition.js\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n swiper.emit(\"setTransition\", duration, byController);\n}\n\n// node_modules/swiper/core/transition/transitionEmit.js\nfunction transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = \"next\";\n else if (activeIndex < previousIndex) dir = \"prev\";\n else dir = \"reset\";\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === \"reset\") {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === \"next\") {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\n// node_modules/swiper/core/transition/transitionStart.js\nfunction transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: \"Start\"\n });\n}\n\n// node_modules/swiper/core/transition/transitionEnd.js\nfunction transitionEnd2(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: \"End\"\n });\n}\n\n// node_modules/swiper/core/transition/index.js\nvar transition_default = {\n setTransition,\n transitionStart,\n transitionEnd: transitionEnd2\n};\n\n// node_modules/swiper/core/slide/slideTo.js\nfunction slideTo(index2 = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index2 !== \"number\" && typeof index2 !== \"string\") {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index2}] given.`);\n }\n if (typeof index2 === \"string\") {\n const indexAsNumber = parseInt(index2, 10);\n const isValidNumber = isFinite(indexAsNumber);\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index2}] given.`);\n }\n index2 = indexAsNumber;\n }\n const swiper = this;\n let slideIndex = index2;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== \"undefined\") {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit(\"beforeSlideChangeStart\");\n }\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = \"next\";\n else if (slideIndex < activeIndex) direction = \"prev\";\n else direction = \"reset\";\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== \"slide\") {\n swiper.setTranslate(translate);\n }\n if (direction !== \"reset\") {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = \"none\";\n swiper._immediateVirtual = true;\n }\n wrapperEl[isH ? \"scrollLeft\" : \"scrollTop\"] = t;\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = \"\";\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? \"left\" : \"top\"\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? \"left\" : \"top\"]: t,\n behavior: \"smooth\"\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit(\"beforeTransitionStart\", speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd3(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener(\"transitionend\", swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener(\"webkitTransitionEnd\", swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener(\"transitionend\", swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener(\"webkitTransitionEnd\", swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\n// node_modules/swiper/core/slide/slideToLoop.js\nfunction slideToLoop(index2 = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index2 === \"string\") {\n const indexAsNumber = parseInt(index2, 10);\n const isValidNumber = isFinite(indexAsNumber);\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index2}] given.`);\n }\n index2 = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index2;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n// node_modules/swiper/core/slide/slideNext.js\nfunction slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === \"auto\" && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic(\"current\", true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix();\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n// node_modules/swiper/core/slide/slidePrev.js\nfunction slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix();\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === \"undefined\" && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== \"undefined\") {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== \"undefined\") {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === \"auto\" && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic(\"previous\", true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n// node_modules/swiper/core/slide/slideReset.js\nfunction slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n// node_modules/swiper/core/slide/slideToClosest.js\nfunction slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index2 = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index2);\n const snapIndex = skip + Math.floor((index2 - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index2 += swiper.params.slidesPerGroup;\n }\n } else {\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index2 -= swiper.params.slidesPerGroup;\n }\n }\n index2 = Math.max(index2, 0);\n index2 = Math.min(index2, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index2, speed, runCallbacks, internal);\n}\n\n// node_modules/swiper/core/slide/slideToClickedSlide.js\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === \"auto\" ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(dom_default(swiper.clickedSlide).attr(\"data-swiper-slide-index\"), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\n// node_modules/swiper/core/slide/index.js\nvar slide_default = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\n// node_modules/swiper/core/loop/loopCreate.js\nfunction loopCreate() {\n const swiper = this;\n const document2 = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper;\n const $selector = $wrapperEl.children().length > 0 ? dom_default($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = dom_default(document2.createElement(\"div\")).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n if (params.slidesPerView === \"auto\" && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index2) => {\n const slide = dom_default(el);\n slide.attr(\"data-swiper-slide-index\", index2);\n });\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index2 = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index2)[0]);\n prependSlides.unshift(slides.eq(slides.length - index2 - 1)[0]);\n }\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append(dom_default(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend(dom_default(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\n// node_modules/swiper/core/loop/loopFix.js\nfunction loopFix() {\n const swiper = this;\n swiper.emit(\"beforeLoopFix\");\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit(\"loopFix\");\n}\n\n// node_modules/swiper/core/loop/loopDestroy.js\nfunction loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr(\"data-swiper-slide-index\");\n}\n\n// node_modules/swiper/core/loop/index.js\nvar loop_default = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\n// node_modules/swiper/core/grab-cursor/setGrabCursor.js\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === \"container\" ? swiper.el : swiper.wrapperEl;\n el.style.cursor = \"move\";\n el.style.cursor = moving ? \"grabbing\" : \"grab\";\n}\n\n// node_modules/swiper/core/grab-cursor/unsetGrabCursor.js\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n swiper[swiper.params.touchEventsTarget === \"container\" ? \"el\" : \"wrapperEl\"].style.cursor = \"\";\n}\n\n// node_modules/swiper/core/grab-cursor/index.js\nvar grab_cursor_default = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// node_modules/swiper/core/events/onTouchStart.js\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction onTouchStart(event2) {\n const swiper = this;\n const document2 = getDocument();\n const window2 = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event2;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = dom_default(e.target);\n if (params.touchEventsTarget === \"wrapper\") {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === \"touchstart\";\n if (!data.isTouchEvent && \"which\" in e && e.which === 3) return;\n if (!data.isTouchEvent && \"button\" in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== \"\";\n const eventPath = event2.composedPath ? event2.composedPath() : event2.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = dom_default(eventPath[0]);\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n touches.currentX = e.type === \"touchstart\" ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === \"touchstart\" ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window2.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === \"prevent\") {\n event2.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: void 0,\n startMoving: void 0\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = void 0;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== \"touchstart\") {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n if ($targetEl[0].nodeName === \"SELECT\") {\n data.isTouched = false;\n }\n }\n if (document2.activeElement && dom_default(document2.activeElement).is(data.focusableElements) && document2.activeElement !== $targetEl[0]) {\n document2.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit(\"touchStart\", e);\n}\n\n// node_modules/swiper/core/events/onTouchMove.js\nfunction onTouchMove(event2) {\n const document2 = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event2;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit(\"touchMoveOpposite\", e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== \"touchmove\") return;\n const targetTouch = e.type === \"touchmove\" && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === \"touchmove\" ? targetTouch.pageX : e.pageX;\n const pageY = e.type === \"touchmove\" ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!dom_default(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (data.isTouchEvent && document2.activeElement) {\n if (e.target === document2.activeElement && dom_default(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit(\"touchMove\", e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === \"undefined\") {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit(\"touchMoveOpposite\", e);\n }\n if (typeof data.startMoving === \"undefined\") {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger(\"webkitTransitionEnd transitionend\");\n }\n data.allowMomentumBounce = false;\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit(\"sliderFirstMove\", e);\n }\n swiper.emit(\"sliderMove\", e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? \"prev\" : \"next\";\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n if (!swiper.allowSlideNext && swiper.swipeDirection === \"next\" && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === \"prev\" && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n swiper.updateProgress(data.currentTranslate);\n swiper.setTranslate(data.currentTranslate);\n}\n\n// node_modules/swiper/core/events/onTouchEnd.js\nfunction onTouchEnd(event2) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event2;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit(\"touchEnd\", e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit(\"tap click\", e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit(\"doubleTap doubleClick\", e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment2 = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment2] !== \"undefined\") {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment2]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment2] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === \"next\") {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === \"prev\") {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === \"next\") {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === \"prev\") {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\n// node_modules/swiper/core/events/onResize.js\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === \"auto\" || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\n// node_modules/swiper/core/events/onClick.js\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\n// node_modules/swiper/core/events/onScroll.js\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit(\"setTranslate\", swiper.translate, false);\n}\n\n// node_modules/swiper/core/events/index.js\nvar dummyEventAttached = false;\nfunction dummyEventListener() {\n}\nvar events = (swiper, method) => {\n const document2 = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support: support2\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === \"on\" ? \"addEventListener\" : \"removeEventListener\";\n const swiperMethod = method;\n if (!support2.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document2[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document2[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === \"touchstart\" && support2.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support2.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod](\"click\", swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod](\"scroll\", swiper.onScroll);\n }\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? \"resize orientationchange observerUpdate\" : \"resize observerUpdate\", onResize, true);\n } else {\n swiper[swiperMethod](\"observerUpdate\", onResize, true);\n }\n};\nfunction attachEvents() {\n const swiper = this;\n const document2 = getDocument();\n const {\n params,\n support: support2\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n if (support2.touch && !dummyEventAttached) {\n document2.addEventListener(\"touchstart\", dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, \"on\");\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, \"off\");\n}\nvar events_default = {\n attachEvents,\n detachEvents\n};\n\n// node_modules/swiper/core/breakpoints/setBreakpoint.js\nvar isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : void 0;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === \"column\" || !breakpointParams.grid.fill && params.grid.fill === \"column\") {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n [\"navigation\", \"pagination\", \"scrollbar\"].forEach((prop) => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend2(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit(\"_beforeBreakpoint\", breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n swiper.emit(\"breakpoint\", breakpointParams);\n}\n\n// node_modules/swiper/core/breakpoints/getBreakpoint.js\nfunction getBreakpoint(breakpoints, base = \"window\", containerEl) {\n if (!breakpoints || base === \"container\" && !containerEl) return void 0;\n let breakpoint = false;\n const window2 = getWindow();\n const currentHeight = base === \"window\" ? window2.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map((point) => {\n if (typeof point === \"string\" && point.indexOf(\"@\") === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === \"window\") {\n if (window2.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || \"max\";\n}\n\n// node_modules/swiper/core/breakpoints/index.js\nvar breakpoints_default = {\n setBreakpoint,\n getBreakpoint\n};\n\n// node_modules/swiper/core/classes/addClasses.js\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach((item) => {\n if (typeof item === \"object\") {\n Object.keys(item).forEach((classNames) => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === \"string\") {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support: support2\n } = swiper;\n const suffixes = prepareClasses([\"initialized\", params.direction, {\n \"pointer-events\": !support2.touch\n }, {\n \"free-mode\": swiper.params.freeMode && params.freeMode.enabled\n }, {\n \"autoheight\": params.autoHeight\n }, {\n \"rtl\": rtl\n }, {\n \"grid\": params.grid && params.grid.rows > 1\n }, {\n \"grid-column\": params.grid && params.grid.rows > 1 && params.grid.fill === \"column\"\n }, {\n \"android\": device.android\n }, {\n \"ios\": device.ios\n }, {\n \"css-mode\": params.cssMode\n }, {\n \"centered\": params.cssMode && params.centeredSlides\n }, {\n \"watch-progress\": params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(\" \"));\n swiper.emitContainerClasses();\n}\n\n// node_modules/swiper/core/classes/removeClasses.js\nfunction removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(\" \"));\n swiper.emitContainerClasses();\n}\n\n// node_modules/swiper/core/classes/index.js\nvar classes_default = {\n addClasses,\n removeClasses\n};\n\n// node_modules/swiper/core/images/loadImage.js\nfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window2 = getWindow();\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = dom_default(imageEl).parent(\"picture\")[0];\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window2.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n onReady();\n }\n}\n\n// node_modules/swiper/core/images/preloadImages.js\nfunction preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find(\"img\");\n function onReady() {\n if (typeof swiper === \"undefined\" || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== void 0) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit(\"imagesReady\");\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute(\"src\"), imageEl.srcset || imageEl.getAttribute(\"srcset\"), imageEl.sizes || imageEl.getAttribute(\"sizes\"), true, onReady);\n }\n}\n\n// node_modules/swiper/core/images/index.js\nvar images_default = {\n loadImage,\n preloadImages\n};\n\n// node_modules/swiper/core/check-overflow/index.js\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? \"lock\" : \"unlock\");\n }\n}\nvar check_overflow_default = {\n checkOverflow\n};\n\n// node_modules/swiper/core/defaults.js\nvar defaults_default = {\n init: true,\n direction: \"horizontal\",\n touchEventsTarget: \"wrapper\",\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: \"input, select, option, textarea, button, video, label\",\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: \"slide\",\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: void 0,\n breakpointsBase: \"window\",\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: \"swiper-no-swiping\",\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: \"swiper-\",\n // NEW\n slideClass: \"swiper-slide\",\n slideBlankClass: \"swiper-slide-invisible-blank\",\n slideActiveClass: \"swiper-slide-active\",\n slideDuplicateActiveClass: \"swiper-slide-duplicate-active\",\n slideVisibleClass: \"swiper-slide-visible\",\n slideDuplicateClass: \"swiper-slide-duplicate\",\n slideNextClass: \"swiper-slide-next\",\n slideDuplicateNextClass: \"swiper-slide-duplicate-next\",\n slidePrevClass: \"swiper-slide-prev\",\n slideDuplicatePrevClass: \"swiper-slide-duplicate-prev\",\n wrapperClass: \"swiper-wrapper\",\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\n// node_modules/swiper/core/moduleExtendParams.js\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== \"object\" || moduleParams === null) {\n extend2(allModulesParams, obj);\n return;\n }\n if ([\"navigation\", \"pagination\", \"scrollbar\"].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && \"enabled\" in moduleParams)) {\n extend2(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === \"object\" && !(\"enabled\" in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend2(allModulesParams, obj);\n };\n}\n\n// node_modules/swiper/core/core.js\nvar prototypes = {\n eventsEmitter: events_emitter_default,\n update: update_default,\n translate: translate_default,\n transition: transition_default,\n slide: slide_default,\n loop: loop_default,\n grabCursor: grab_cursor_default,\n events: events_default,\n breakpoints: breakpoints_default,\n checkOverflow: check_overflow_default,\n classes: classes_default,\n images: images_default\n};\nvar extendedDefaults = {};\nvar Swiper = class _Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === \"Object\") {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend2({}, params);\n if (el && !params.el) params.el = el;\n if (params.el && dom_default(params.el).length > 1) {\n const swipers = [];\n dom_default(params.el).each((containerEl) => {\n const newParams = extend2({}, params, {\n el: containerEl\n });\n swipers.push(new _Swiper(newParams));\n });\n return swipers;\n }\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach((mod) => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n const swiperParams = extend2({}, defaults_default, allModulesParams);\n swiper.params = extend2({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend2({}, swiper.params);\n swiper.passedParams = extend2({}, params);\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach((eventName) => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n swiper.$ = dom_default;\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: dom_default(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === \"horizontal\";\n },\n isVertical() {\n return swiper.params.direction === \"vertical\";\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = [\"touchstart\", \"touchmove\", \"touchend\", \"touchcancel\"];\n const desktop = [\"pointerdown\", \"pointermove\", \"pointerup\"];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: void 0,\n isMoved: void 0,\n allowTouchCallbacks: void 0,\n touchStartTime: void 0,\n isScrolling: void 0,\n currentTranslate: void 0,\n startTranslate: void 0,\n allowThresholdMove: void 0,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: void 0,\n // Velocities\n velocities: [],\n allowMomentumBounce: void 0,\n isTouchEvent: void 0,\n startMoving: void 0\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit(\"_swiper\");\n if (swiper.params.init) {\n swiper.init();\n }\n return swiper;\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit(\"enable\");\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit(\"disable\");\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === \"undefined\" ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(\" \").filter((className) => {\n return className.indexOf(\"swiper\") === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit(\"_containerClasses\", cls.join(\" \"));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return \"\";\n return slideEl.className.split(\" \").filter((className) => {\n return className.indexOf(\"swiper-slide\") === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(\" \");\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each((slideEl) => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit(\"_slideClass\", slideEl, classNames);\n });\n swiper.emit(\"_slideClasses\", updates);\n }\n slidesPerViewDynamic(view = \"current\", exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n if (view === \"current\") {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate2() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate2();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === \"auto\" || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate2();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit(\"update\");\n }\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n newDirection = currentDirection === \"horizontal\" ? \"vertical\" : \"horizontal\";\n }\n if (newDirection === currentDirection || newDirection !== \"horizontal\" && newDirection !== \"vertical\") {\n return swiper;\n }\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each((slideEl) => {\n if (newDirection === \"vertical\") {\n slideEl.style.width = \"\";\n } else {\n slideEl.style.height = \"\";\n }\n });\n swiper.emit(\"changeDirection\");\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === \"rtl\" || !swiper.rtl && direction === \"ltr\") return;\n swiper.rtl = direction === \"rtl\";\n swiper.rtlTranslate = swiper.params.direction === \"horizontal\" && swiper.rtl;\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = \"rtl\";\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = \"ltr\";\n }\n swiper.update();\n }\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true;\n const $el = dom_default(el || swiper.params.el);\n el = $el[0];\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || \"\").trim().split(\" \").join(\".\")}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = dom_default(el.shadowRoot.querySelector(getWrapperSelector()));\n res.children = (options) => $el.children(options);\n return res;\n }\n if (!$el.children) {\n return dom_default($el).children(getWrapperSelector());\n }\n return $el.children(getWrapperSelector());\n };\n let $wrapperEl = getWrapper();\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document2 = getDocument();\n const wrapper = document2.createElement(\"div\");\n $wrapperEl = dom_default(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each((slideEl) => {\n $wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === \"rtl\" || $el.css(\"direction\") === \"rtl\",\n rtlTranslate: swiper.params.direction === \"horizontal\" && (el.dir.toLowerCase() === \"rtl\" || $el.css(\"direction\") === \"rtl\"),\n wrongRTL: $wrapperEl.css(\"display\") === \"-webkit-box\"\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit(\"beforeInit\");\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.addClasses();\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n swiper.updateSize();\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n swiper.attachEvents();\n swiper.initialized = true;\n swiper.emit(\"init\");\n swiper.emit(\"afterInit\");\n return swiper;\n }\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === \"undefined\" || swiper.destroyed) {\n return null;\n }\n swiper.emit(\"beforeDestroy\");\n swiper.initialized = false;\n swiper.detachEvents();\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr(\"style\");\n $wrapperEl.removeAttr(\"style\");\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(\" \")).removeAttr(\"style\").removeAttr(\"data-swiper-slide-index\");\n }\n }\n swiper.emit(\"destroy\");\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend2(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults_default;\n }\n static installModule(mod) {\n if (!_Swiper.prototype.__modules__) _Swiper.prototype.__modules__ = [];\n const modules = _Swiper.prototype.__modules__;\n if (typeof mod === \"function\" && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach((m) => _Swiper.installModule(m));\n return _Swiper;\n }\n _Swiper.installModule(module);\n return _Swiper;\n }\n};\nObject.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nvar core_default = Swiper;\n\n// node_modules/swiper/modules/virtual/virtual.js\nfunction Virtual({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: void 0,\n to: void 0,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n function renderSlide(slide, index2) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index2]) {\n return swiper.virtual.cache[index2];\n }\n const $slideEl = params.renderSlide ? dom_default(params.renderSlide.call(swiper, slide, index2)) : dom_default(`${slide}
`);\n if (!$slideEl.attr(\"data-swiper-slide-index\")) $slideEl.attr(\"data-swiper-slide-index\", index2);\n if (params.cache) swiper.virtual.cache[index2] = $slideEl;\n return $slideEl;\n }\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = \"right\";\n else offsetProp = swiper.isHorizontal() ? \"left\" : \"top\";\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset2 = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from,\n to,\n offset: offset2,\n slidesGrid: swiper.slidesGrid\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n emit(\"virtualUpdate\");\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset2 !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset2}px`);\n }\n swiper.updateProgress();\n emit(\"virtualUpdate\");\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset2,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit(\"virtualUpdate\");\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === \"undefined\" || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index2) => {\n swiper.$wrapperEl.append(renderSlide(slides[index2], index2));\n });\n prependIndexes.sort((a, b) => b - a).forEach((index2) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index2], index2));\n });\n swiper.$wrapperEl.children(\".swiper-slide\").css(offsetProp, `${offset2}px`);\n onRendered();\n }\n function appendSlide2(slides) {\n if (typeof slides === \"object\" && \"length\" in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide2(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr(\"data-swiper-slide-index\");\n if (cachedElIndex) {\n $cachedEl.attr(\"data-swiper-slide-index\", parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide2(slidesIndexes) {\n if (typeof slidesIndexes === \"undefined\" || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides2() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on2(\"beforeInit\", () => {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on2(\"setTranslate\", () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on2(\"init update resize\", () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, \"--swiper-virtual-size\", `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide: appendSlide2,\n prependSlide: prependSlide2,\n removeSlide: removeSlide2,\n removeAllSlides: removeAllSlides2,\n update\n });\n}\n\n// node_modules/swiper/modules/keyboard/keyboard.js\nfunction Keyboard({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n const document2 = getDocument();\n const window2 = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event2) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event2;\n if (e.originalEvent) e = e.originalEvent;\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return void 0;\n }\n if (document2.activeElement && document2.activeElement.nodeName && (document2.activeElement.nodeName.toLowerCase() === \"input\" || document2.activeElement.nodeName.toLowerCase() === \"textarea\")) {\n return void 0;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return void 0;\n }\n const $el = swiper.$el;\n const swiperWidth = $el[0].clientWidth;\n const swiperHeight = $el[0].clientHeight;\n const windowWidth = window2.innerWidth;\n const windowHeight = window2.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue;\n inView = true;\n }\n }\n if (!inView) return void 0;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit(\"keyPress\", kc);\n return void 0;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n dom_default(document2).on(\"keydown\", handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n dom_default(document2).off(\"keydown\", handle);\n swiper.keyboard.enabled = false;\n }\n on2(\"init\", () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on2(\"destroy\", () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\n// node_modules/swiper/modules/mousewheel/mousewheel.js\nfunction Mousewheel({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n const window2 = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: \"container\",\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0;\n let pX = 0;\n let pY = 0;\n if (\"detail\" in e) {\n sY = e.detail;\n }\n if (\"wheelDelta\" in e) {\n sY = -e.wheelDelta / 120;\n }\n if (\"wheelDeltaY\" in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if (\"wheelDeltaX\" in e) {\n sX = -e.wheelDeltaX / 120;\n }\n if (\"axis\" in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if (\"deltaY\" in e) {\n pY = e.deltaY;\n }\n if (\"deltaX\" in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n return false;\n }\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n return true;\n }\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit(\"scroll\", newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit(\"scroll\", newEvent.raw);\n }\n lastScrollTime = new window2.Date().getTime();\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n return true;\n }\n return false;\n }\n function handle(event2) {\n let e = event2;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== \"container\") {\n target = dom_default(swiper.params.mousewheel.eventsTarget);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent;\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event2\n };\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift();\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : void 0;\n recentWheelEvents.push(newEvent);\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = void 0;\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeMode.sticky) {\n clearTimeout(timeout);\n timeout = void 0;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift();\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : void 0;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, void 0, snapToThreshold);\n }, 0);\n }\n if (!timeout) {\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, void 0, snapToThreshold);\n }, 500);\n }\n }\n if (!ignoreWheelEvents) emit(\"scroll\", e);\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n }\n function events2(method) {\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== \"container\") {\n target = dom_default(swiper.params.mousewheel.eventsTarget);\n }\n target[method](\"mouseenter\", handleMouseEnter);\n target[method](\"mouseleave\", handleMouseLeave);\n target[method](\"wheel\", handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(\"wheel\", handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events2(\"on\");\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events2(\"off\");\n swiper.mousewheel.enabled = false;\n return true;\n }\n on2(\"init\", () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on2(\"destroy\", () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\n// node_modules/swiper/shared/create-element-if-not-defined.js\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document2 = getDocument();\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach((key) => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n if (!element) {\n element = document2.createElement(\"div\");\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\n// node_modules/swiper/modules/navigation/navigation.js\nfunction Navigation({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: \"swiper-button-disabled\",\n hiddenClass: \"swiper-button-hidden\",\n lockClass: \"swiper-button-lock\",\n navigationDisabledClass: \"swiper-navigation-disabled\"\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n function getEl(el) {\n let $el;\n if (el) {\n $el = dom_default(el);\n if (swiper.params.uniqueNavElements && typeof el === \"string\" && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n return $el;\n }\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n if ($el && $el.length > 0) {\n $el[disabled ? \"addClass\" : \"removeClass\"](params.disabledClass);\n if ($el[0] && $el[0].tagName === \"BUTTON\") $el[0].disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? \"addClass\" : \"removeClass\"](params.lockClass);\n }\n }\n }\n function update() {\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit(\"navigationPrev\");\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit(\"navigationNext\");\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: \"swiper-button-next\",\n prevEl: \"swiper-button-prev\"\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on(\"click\", onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on(\"click\", onPrevClick);\n }\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off(\"click\", onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off(\"click\", onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n on2(\"init\", () => {\n if (swiper.params.navigation.enabled === false) {\n disable();\n } else {\n init();\n update();\n }\n });\n on2(\"toEdge fromEdge lock unlock\", () => {\n update();\n });\n on2(\"destroy\", () => {\n destroy();\n });\n on2(\"enable disable\", () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n if ($nextEl) {\n $nextEl[swiper.enabled ? \"removeClass\" : \"addClass\"](swiper.params.navigation.lockClass);\n }\n if ($prevEl) {\n $prevEl[swiper.enabled ? \"removeClass\" : \"addClass\"](swiper.params.navigation.lockClass);\n }\n });\n on2(\"click\", (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !dom_default(targetEl).is($prevEl) && !dom_default(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit(\"navigationShow\");\n } else {\n emit(\"navigationHide\");\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\n// node_modules/swiper/shared/classes-to-selector.js\nfunction classesToSelector(classes = \"\") {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, \"\\\\$1\").replace(/ /g, \".\")}`;\n}\n\n// node_modules/swiper/modules/pagination/pagination.js\nfunction Pagination({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n const pfx = \"swiper-pagination\";\n extendParams({\n pagination: {\n el: null,\n bulletElement: \"span\",\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: \"bullets\",\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n function update() {\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== \"bullets\") current = total + current;\n } else if (typeof swiper.snapIndex !== \"undefined\") {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n if (params.type === \"bullets\" && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? \"outerWidth\" : \"outerHeight\"](true);\n $el.css(swiper.isHorizontal() ? \"width\" : \"height\", `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== void 0) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass([\"\", \"-next\", \"-next-next\", \"-prev\", \"-prev-prev\", \"-main\"].map((suffix) => `${params.bulletActiveClass}${suffix}`).join(\" \"));\n if ($el.length > 1) {\n bullets.each((bullet) => {\n const $bullet = dom_default(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, \"prev\");\n }\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, \"next\");\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, \"prev\");\n setSideBullets($lastDisplayedBullet, \"next\");\n }\n } else {\n setSideBullets($firstDisplayedBullet, \"prev\");\n setSideBullets($lastDisplayedBullet, \"next\");\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? \"right\" : \"left\";\n bullets.css(swiper.isHorizontal() ? offsetProp : \"top\", `${bulletsOffset}px`);\n }\n }\n if (params.type === \"fraction\") {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n if (params.type === \"progressbar\") {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? \"vertical\" : \"horizontal\";\n } else {\n progressbarDirection = swiper.isHorizontal() ? \"horizontal\" : \"vertical\";\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === \"horizontal\") {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === \"custom\" && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit(\"paginationRender\", $el[0]);\n } else {\n emit(\"paginationUpdate\", $el[0]);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? \"addClass\" : \"removeClass\"](params.lockClass);\n }\n }\n function render() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = \"\";\n if (params.type === \"bullets\") {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">${params.bulletElement}>`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n if (params.type === \"fraction\") {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = ` / `;\n }\n $el.html(paginationHTML);\n }\n if (params.type === \"progressbar\") {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ` `;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== \"custom\") {\n emit(\"paginationRender\", swiper.pagination.$el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: \"swiper-pagination\"\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = dom_default(params.el);\n if ($el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === \"string\" && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n if ($el.length > 1) {\n $el = $el.filter((el) => {\n if (dom_default(el).parents(\".swiper\")[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n if (params.type === \"bullets\" && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === \"bullets\" && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === \"progressbar\" && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n $el.on(\"click\", classesToSelector(params.bulletClass), function onClick2(e) {\n e.preventDefault();\n let index2 = dom_default(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index2 += swiper.loopedSlides;\n swiper.slideTo(index2);\n });\n }\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off(\"click\", classesToSelector(params.bulletClass));\n }\n }\n on2(\"init\", () => {\n if (swiper.params.pagination.enabled === false) {\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on2(\"activeIndexChange\", () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === \"undefined\") {\n update();\n }\n });\n on2(\"snapIndexChange\", () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on2(\"slidesLengthChange\", () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on2(\"snapGridLengthChange\", () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on2(\"destroy\", () => {\n destroy();\n });\n on2(\"enable disable\", () => {\n const {\n $el\n } = swiper.pagination;\n if ($el) {\n $el[swiper.enabled ? \"removeClass\" : \"addClass\"](swiper.params.pagination.lockClass);\n }\n });\n on2(\"lock unlock\", () => {\n update();\n });\n on2(\"click\", (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !dom_default(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit(\"paginationShow\");\n } else {\n emit(\"paginationHide\");\n }\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\n// node_modules/swiper/modules/scrollbar/scrollbar.js\nfunction Scrollbar({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n const document2 = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: \"auto\",\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: \"swiper-scrollbar-lock\",\n dragClass: \"swiper-scrollbar-drag\",\n scrollbarDisabledClass: \"swiper-scrollbar-disabled\",\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n function setTranslate2() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1e3);\n }\n }\n function setTransition2(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n function updateSize2() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = \"\";\n $dragEl[0].style.height = \"\";\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === \"auto\") {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n $el[0].style.display = \"none\";\n } else {\n $el[0].style.display = \"\";\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? \"addClass\" : \"removeClass\"](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === \"touchstart\" || e.type === \"touchmove\" ? e.targetTouches[0].clientX : e.clientX;\n }\n return e.type === \"touchstart\" || e.type === \"touchmove\" ? e.targetTouches[0].clientY : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? \"left\" : \"top\"] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? \"left\" : \"top\"] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n if (params.hide) {\n $el.css(\"opacity\", 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css(\"scroll-snap-type\", \"none\");\n }\n emit(\"scrollbarDragStart\", e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit(\"scrollbarDragMove\", e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css(\"scroll-snap-type\", \"\");\n $wrapperEl.transition(\"\");\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n $el.css(\"opacity\", 0);\n $el.transition(400);\n }, 1e3);\n }\n emit(\"scrollbarDragEnd\", e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events2(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support: support2\n } = swiper;\n const $el = scrollbar.$el;\n if (!$el) return;\n const target = $el[0];\n const activeListener = support2.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support2.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === \"on\" ? \"addEventListener\" : \"removeEventListener\";\n if (!support2.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document2[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document2[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events2(\"on\");\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events2(\"off\");\n }\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: \"swiper-scrollbar\"\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $el = dom_default(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === \"string\" && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = dom_default(`
`);\n $el.append($dragEl);\n }\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n if (params.draggable) {\n enableDraggable();\n }\n if ($el) {\n $el[swiper.enabled ? \"removeClass\" : \"addClass\"](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const $el = swiper.scrollbar.$el;\n if ($el) {\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n disableDraggable();\n }\n on2(\"init\", () => {\n if (swiper.params.scrollbar.enabled === false) {\n disable();\n } else {\n init();\n updateSize2();\n setTranslate2();\n }\n });\n on2(\"update resize observerUpdate lock unlock\", () => {\n updateSize2();\n });\n on2(\"setTranslate\", () => {\n setTranslate2();\n });\n on2(\"setTransition\", (_s, duration) => {\n setTransition2(duration);\n });\n on2(\"enable disable\", () => {\n const {\n $el\n } = swiper.scrollbar;\n if ($el) {\n $el[swiper.enabled ? \"removeClass\" : \"addClass\"](swiper.params.scrollbar.lockClass);\n }\n });\n on2(\"destroy\", () => {\n destroy();\n });\n const enable = () => {\n swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize2();\n setTranslate2();\n };\n const disable = () => {\n swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize: updateSize2,\n setTranslate: setTranslate2,\n init,\n destroy\n });\n}\n\n// node_modules/swiper/modules/parallax/parallax.js\nfunction Parallax({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const $el = dom_default(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr(\"data-swiper-parallax\") || \"0\";\n let x = $el.attr(\"data-swiper-parallax-x\");\n let y = $el.attr(\"data-swiper-parallax-y\");\n const scale = $el.attr(\"data-swiper-parallax-scale\");\n const opacity = $el.attr(\"data-swiper-parallax-opacity\");\n if (x || y) {\n x = x || \"0\";\n y = y || \"0\";\n } else if (swiper.isHorizontal()) {\n x = p;\n y = \"0\";\n } else {\n y = p;\n x = \"0\";\n }\n if (x.indexOf(\"%\") >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf(\"%\") >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== \"undefined\" && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === \"undefined\" || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n };\n const setTranslate2 = () => {\n const {\n $el,\n slides,\n progress,\n snapGrid\n } = swiper;\n $el.children(\"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]\").each((el) => {\n setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== \"auto\") {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n dom_default(slideEl).find(\"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]\").each((el) => {\n setTransform(el, slideProgress);\n });\n });\n };\n const setTransition2 = (duration = swiper.params.speed) => {\n const {\n $el\n } = swiper;\n $el.find(\"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]\").each((parallaxEl) => {\n const $parallaxEl = dom_default(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr(\"data-swiper-parallax-duration\"), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n on2(\"beforeInit\", () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on2(\"init\", () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate2();\n });\n on2(\"setTranslate\", () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate2();\n });\n on2(\"setTransition\", (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition2(duration);\n });\n}\n\n// node_modules/swiper/modules/zoom/zoom.js\nfunction Zoom({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n const window2 = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: \"swiper-zoom-container\",\n zoomedSlideClass: \"swiper-slide-zoomed\"\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let gesturesEnabled;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const gesture = {\n $slideEl: void 0,\n slideWidth: void 0,\n slideHeight: void 0,\n $imageEl: void 0,\n $imageWrapEl: void 0,\n maxRatio: 3\n };\n const image = {\n isTouched: void 0,\n isMoved: void 0,\n currentX: void 0,\n currentY: void 0,\n minX: void 0,\n minY: void 0,\n maxX: void 0,\n maxY: void 0,\n width: void 0,\n height: void 0,\n startX: void 0,\n startY: void 0,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: void 0,\n y: void 0,\n prevPositionX: void 0,\n prevPositionY: void 0,\n prevTime: void 0\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, \"scale\", {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : void 0;\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : void 0;\n emit(\"zoomChange\", value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function onGestureStart(e) {\n const support2 = swiper.support;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!support2.gestures) {\n if (e.type !== \"touchstart\" || e.type === \"touchstart\" && e.targetTouches.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = dom_default(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find(\"picture, img, svg, canvas, .swiper-zoom-target\").eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr(\"data-swiper-zoom\") || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = void 0;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n const support2 = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n if (!support2.gestures) {\n if (e.type !== \"touchmove\" || e.type === \"touchmove\" && e.targetTouches.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === \"gesturechange\") onGestureStart(e);\n return;\n }\n if (support2.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n function onGestureEnd(e) {\n const device = swiper.device;\n const support2 = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n if (!support2.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n if (e.type !== \"touchend\" || e.type === \"touchend\" && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = void 0;\n }\n function onTouchStart2(e) {\n const device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === \"touchstart\" ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === \"touchstart\" ? e.targetTouches[0].pageY : e.pageY;\n }\n function onTouchMove2(e) {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], \"x\") || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], \"y\") || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n }\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === \"touchmove\" ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === \"touchmove\" ? e.targetTouches[0].pageY : e.pageY;\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n function onTouchEnd2() {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(1)\");\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform(\"translate3d(0,0,0)\");\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = void 0;\n gesture.$imageEl = void 0;\n gesture.$imageWrapEl = void 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = dom_default(e.target).closest(`.${swiper.params.slideClass}`);\n }\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find(\"picture, img, svg, canvas, .swiper-zoom-target\").eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = \"hidden\";\n swiper.wrapperEl.style.touchAction = \"none\";\n }\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === \"undefined\" && e) {\n touchX = e.type === \"touchend\" ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === \"touchend\" ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n zoom.scale = gesture.$imageWrapEl.attr(\"data-swiper-zoom\") || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr(\"data-swiper-zoom\") || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window2.scrollX;\n offsetY = gesture.$slideEl.offset().top + window2.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find(\"picture, img, svg, canvas, .swiper-zoom-target\").eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = \"\";\n swiper.wrapperEl.style.touchAction = \"\";\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(0,0,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(1)\");\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = void 0;\n }\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n zoomOut();\n } else {\n zoomIn(e);\n }\n }\n function getListeners() {\n const support2 = swiper.support;\n const passiveListener = swiper.touchEvents.start === \"touchstart\" && support2.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = support2.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n function getSlideSelector() {\n return `.${swiper.params.slideClass}`;\n }\n function toggleGestures(method) {\n const {\n passiveListener\n } = getListeners();\n const slideSelector = getSlideSelector();\n swiper.$wrapperEl[method](\"gesturestart\", slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method](\"gesturechange\", slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method](\"gestureend\", slideSelector, onGestureEnd, passiveListener);\n }\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures(\"on\");\n }\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures(\"off\");\n }\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const support2 = swiper.support;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector();\n if (support2.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === \"touchstart\") {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n }\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove2, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support2 = swiper.support;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector();\n if (support2.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === \"touchstart\") {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n }\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove2, activeListenerWithCapture);\n }\n on2(\"init\", () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on2(\"destroy\", () => {\n disable();\n });\n on2(\"touchStart\", (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart2(e);\n });\n on2(\"touchEnd\", (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd2(e);\n });\n on2(\"doubleTap\", (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on2(\"transitionEnd\", () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on2(\"slideChange\", () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\n// node_modules/swiper/modules/lazy/lazy.js\nfunction Lazy({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: \"\",\n elementClass: \"swiper-lazy\",\n loadingClass: \"swiper-lazy-loading\",\n loadedClass: \"swiper-lazy-loaded\",\n preloaderClass: \"swiper-lazy-preloader\"\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n function loadInSlide(index2, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index2 === \"undefined\") return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index2}\"]`) : swiper.slides.eq(index2);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n if ($images.length === 0) return;\n $images.each((imageEl) => {\n const $imageEl = dom_default(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr(\"data-background\");\n const src = $imageEl.attr(\"data-src\");\n const srcset = $imageEl.attr(\"data-srcset\");\n const sizes = $imageEl.attr(\"data-sizes\");\n const $pictureEl = $imageEl.parent(\"picture\");\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === \"undefined\" || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n if (background) {\n $imageEl.css(\"background-image\", `url(\"${background}\")`);\n $imageEl.removeAttr(\"data-background\");\n } else {\n if (srcset) {\n $imageEl.attr(\"srcset\", srcset);\n $imageEl.removeAttr(\"data-srcset\");\n }\n if (sizes) {\n $imageEl.attr(\"sizes\", sizes);\n $imageEl.removeAttr(\"data-sizes\");\n }\n if ($pictureEl.length) {\n $pictureEl.children(\"source\").each((sourceEl) => {\n const $source = dom_default(sourceEl);\n if ($source.attr(\"data-srcset\")) {\n $source.attr(\"srcset\", $source.attr(\"data-srcset\"));\n $source.removeAttr(\"data-srcset\");\n }\n });\n }\n if (src) {\n $imageEl.attr(\"src\", src);\n $imageEl.removeAttr(\"data-src\");\n }\n }\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr(\"data-swiper-slide-index\");\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n emit(\"lazyImageReady\", $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit(\"lazyImageLoad\", $slideEl[0], $imageEl[0]);\n });\n }\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === \"auto\") {\n slidesPerView = 0;\n }\n function slideExist(index2) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index2}\"]`).length) {\n return true;\n }\n } else if (slides[index2]) return true;\n return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return dom_default(slideEl).attr(\"data-swiper-slide-index\");\n }\n return dom_default(slideEl).index();\n }\n if (!initialImageLoaded) initialImageLoaded = true;\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((slideEl) => {\n const index2 = isVirtual ? dom_default(slideEl).attr(\"data-swiper-slide-index\") : dom_default(slideEl).index();\n loadInSlide(index2);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = Math.ceil(slidesPerView);\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n for (let i = activeIndex + spv; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n function checkInViewOnLoad() {\n const window2 = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? dom_default(swiper.params.lazy.scrollingElement) : dom_default(window2);\n const isWindow = $scrollElement[0] === window2;\n const scrollElementWidth = isWindow ? window2.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window2.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue;\n inView = true;\n }\n }\n const passiveListener = swiper.touchEvents.start === \"touchstart\" && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (inView) {\n load();\n $scrollElement.off(\"scroll\", checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on(\"scroll\", checkInViewOnLoad, passiveListener);\n }\n }\n on2(\"beforeInit\", () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on2(\"init\", () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on2(\"scroll\", () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on2(\"scrollbarDragMove resize _freeModeNoMomentumRelease\", () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on2(\"transitionStart\", () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on2(\"transitionEnd\", () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on2(\"slideChange\", () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n on2(\"destroy\", () => {\n if (!swiper.$el) return;\n swiper.$el.find(`.${swiper.params.lazy.loadingClass}`).removeClass(swiper.params.lazy.loadingClass);\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}\n\n// node_modules/swiper/modules/controller/controller.js\nfunction Controller({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n controller: {\n control: void 0,\n inverse: false,\n by: \"slide\"\n // or 'container'\n }\n });\n swiper.controller = {\n control: void 0\n };\n function LinearSpline(x, y) {\n const binarySearch = /* @__PURE__ */ function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n function setTranslate2(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper2 = swiper.constructor;\n function setControlledTranslate(c) {\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === \"slide\") {\n getInterpolateFunction(c);\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === \"container\") {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper2) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper2 && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition2(duration, byController) {\n const Swiper2 = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === \"slide\") {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper2) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper2 && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = void 0;\n delete swiper.controller.spline;\n }\n }\n on2(\"beforeInit\", () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on2(\"update\", () => {\n removeSpline();\n });\n on2(\"resize\", () => {\n removeSpline();\n });\n on2(\"observerUpdate\", () => {\n removeSpline();\n });\n on2(\"setTranslate\", (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on2(\"setTransition\", (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate: setTranslate2,\n setTransition: setTransition2\n });\n}\n\n// node_modules/swiper/modules/a11y/a11y.js\nfunction A11y({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: \"swiper-notification\",\n prevSlideMessage: \"Previous slide\",\n nextSlideMessage: \"Next slide\",\n firstSlideMessage: \"This is the first slide\",\n lastSlideMessage: \"This is the last slide\",\n paginationBulletMessage: \"Go to slide {{index}}\",\n slideLabelMessage: \"{{index}} / {{slidesLength}}\",\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: \"group\",\n id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html(\"\");\n notification.html(message);\n }\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return \"x\".repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable($el) {\n $el.attr(\"tabIndex\", \"0\");\n }\n function makeElNotFocusable($el) {\n $el.attr(\"tabIndex\", \"-1\");\n }\n function addElRole($el, role) {\n $el.attr(\"role\", role);\n }\n function addElRoleDescription($el, description) {\n $el.attr(\"aria-roledescription\", description);\n }\n function addElControls($el, controls) {\n $el.attr(\"aria-controls\", controls);\n }\n function addElLabel($el, label) {\n $el.attr(\"aria-label\", label);\n }\n function addElId($el, id) {\n $el.attr(\"id\", id);\n }\n function addElLive($el, live) {\n $el.attr(\"aria-live\", live);\n }\n function disableEl($el) {\n $el.attr(\"aria-disabled\", true);\n }\n function enableEl($el) {\n $el.attr(\"aria-disabled\", false);\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = dom_default(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each((bulletEl) => {\n const $bulletEl = dom_default(bulletEl);\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, \"button\");\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n $bulletEl.attr(\"aria-current\", \"true\");\n } else {\n $bulletEl.removeAttr(\"aria-current\");\n }\n });\n }\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n if ($el[0].tagName !== \"BUTTON\") {\n addElRole($el, \"button\");\n $el.on(\"keydown\", onEnterOrSpaceKey);\n }\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const handleFocus = (e) => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(dom_default(swiper.slides), params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(dom_default(swiper.slides), params.slideRole);\n }\n const slidesLength = swiper.params.loop ? swiper.slides.filter((el) => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.each((slideEl, index2) => {\n const $slideEl = dom_default(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr(\"data-swiper-slide-index\"), 10) : index2;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion);\n const $containerEl = swiper.$el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n }\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = params.id || $wrapperEl.attr(\"id\") || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? \"off\" : \"polite\";\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live);\n initSlides();\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n }\n if (hasClickablePagination()) {\n swiper.pagination.$el.on(\"keydown\", classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n swiper.$el.on(\"focus\", handleFocus, true);\n swiper.$el.on(\"pointerdown\", handlePointerDown, true);\n swiper.$el.on(\"pointerup\", handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off(\"keydown\", onEnterOrSpaceKey);\n }\n if ($prevEl) {\n $prevEl.off(\"keydown\", onEnterOrSpaceKey);\n }\n if (hasClickablePagination()) {\n swiper.pagination.$el.off(\"keydown\", classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n swiper.$el.off(\"focus\", handleFocus, true);\n swiper.$el.off(\"pointerdown\", handlePointerDown, true);\n swiper.$el.off(\"pointerup\", handlePointerUp, true);\n }\n on2(\"beforeInit\", () => {\n liveRegion = dom_default(` `);\n });\n on2(\"afterInit\", () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on2(\"slidesLengthChange snapGridLengthChange slidesGridLengthChange\", () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on2(\"fromEdge toEdge afterInit lock unlock\", () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on2(\"paginationUpdate\", () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on2(\"destroy\", () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\n// node_modules/swiper/modules/history/history.js\nfunction History({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n history: {\n enabled: false,\n root: \"\",\n replaceState: false,\n key: \"slides\",\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = (text2) => {\n return text2.toString().replace(/\\s+/g, \"-\").replace(/[^\\w-]+/g, \"\").replace(/--+/g, \"-\").replace(/^-+/, \"\").replace(/-+$/, \"\");\n };\n const getPathValues = (urlOverride) => {\n const window2 = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window2.location;\n }\n const pathArray = location.pathname.slice(1).split(\"/\").filter((part) => part !== \"\");\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index2) => {\n const window2 = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window2.location;\n }\n const slide = swiper.slides.eq(index2);\n let value = slugify(slide.attr(\"data-history\"));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === \"/\") root = root.slice(0, root.length - 1);\n value = `${root}/${key}/${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window2.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window2.history.replaceState({\n value\n }, null, value);\n } else {\n window2.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = slugify(slide.attr(\"data-history\"));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index2 = slide.index();\n swiper.slideTo(index2, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window2 = getWindow();\n if (!swiper.params.history) return;\n if (!window2.history || !window2.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window2.addEventListener(\"popstate\", setHistoryPopState);\n }\n };\n const destroy = () => {\n const window2 = getWindow();\n if (!swiper.params.history.replaceState) {\n window2.removeEventListener(\"popstate\", setHistoryPopState);\n }\n };\n on2(\"init\", () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on2(\"destroy\", () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on2(\"transitionEnd _freeModeNoMomentumRelease\", () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on2(\"slideChange\", () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\n// node_modules/swiper/modules/hash-navigation/hash-navigation.js\nfunction HashNavigation({\n swiper,\n extendParams,\n emit,\n on: on2\n}) {\n let initialized = false;\n const document2 = getDocument();\n const window2 = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n const onHashChange = () => {\n emit(\"hashChange\");\n const newHash = document2.location.hash.replace(\"#\", \"\");\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr(\"data-hash\");\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === \"undefined\") return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window2.history && window2.history.replaceState) {\n window2.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr(\"data-hash\")}` || \"\");\n emit(\"hashSet\");\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr(\"data-hash\") || slide.attr(\"data-history\");\n document2.location.hash = hash || \"\";\n emit(\"hashSet\");\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document2.location.hash.replace(\"#\", \"\");\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr(\"data-hash\") || slide.attr(\"data-history\");\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index2 = slide.index();\n swiper.slideTo(index2, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n dom_default(window2).on(\"hashchange\", onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n dom_default(window2).off(\"hashchange\", onHashChange);\n }\n };\n on2(\"init\", () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on2(\"destroy\", () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on2(\"transitionEnd _freeModeNoMomentumRelease\", () => {\n if (initialized) {\n setHash();\n }\n });\n on2(\"slideChange\", () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\n// node_modules/swiper/modules/autoplay/autoplay.js\nfunction Autoplay({\n swiper,\n extendParams,\n on: on2,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3e3,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n function run() {\n if (!swiper.size) {\n swiper.autoplay.running = false;\n swiper.autoplay.paused = false;\n return;\n }\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr(\"data-swiper-autoplay\")) {\n delay = $activeSlideEl.attr(\"data-swiper-autoplay\") || swiper.params.autoplay.delay;\n }\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit(\"autoplay\");\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit(\"autoplay\");\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit(\"autoplay\");\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit(\"autoplay\");\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit(\"autoplay\");\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit(\"autoplay\");\n } else {\n stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) run();\n else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n function start() {\n if (typeof timeout !== \"undefined\") return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit(\"autoplayStart\");\n run();\n return true;\n }\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === \"undefined\") return false;\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n swiper.autoplay.running = false;\n emit(\"autoplayStop\");\n return true;\n }\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n [\"transitionend\", \"webkitTransitionEnd\"].forEach((event2) => {\n swiper.$wrapperEl[0].addEventListener(event2, onTransitionEnd);\n });\n }\n }\n function onVisibilityChange() {\n const document2 = getDocument();\n if (document2.visibilityState === \"hidden\" && swiper.autoplay.running) {\n pause();\n }\n if (document2.visibilityState === \"visible\" && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n [\"transitionend\", \"webkitTransitionEnd\"].forEach((event2) => {\n swiper.$wrapperEl[0].removeEventListener(event2, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit(\"autoplayPause\");\n pause();\n }\n [\"transitionend\", \"webkitTransitionEnd\"].forEach((event2) => {\n swiper.$wrapperEl[0].removeEventListener(event2, onTransitionEnd);\n });\n }\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n swiper.autoplay.paused = false;\n emit(\"autoplayResume\");\n run();\n }\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on(\"mouseenter\", onMouseEnter);\n swiper.$el.on(\"mouseleave\", onMouseLeave);\n }\n }\n function detachMouseEvents() {\n swiper.$el.off(\"mouseenter\", onMouseEnter);\n swiper.$el.off(\"mouseleave\", onMouseLeave);\n }\n on2(\"init\", () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document2 = getDocument();\n document2.addEventListener(\"visibilitychange\", onVisibilityChange);\n attachMouseEvents();\n }\n });\n on2(\"beforeTransitionStart\", (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on2(\"sliderFirstMove\", () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on2(\"touchEnd\", () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on2(\"destroy\", () => {\n detachMouseEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n const document2 = getDocument();\n document2.removeEventListener(\"visibilitychange\", onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}\n\n// node_modules/swiper/modules/thumbs/thumbs.js\nfunction Thumb({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: \"swiper-slide-thumb-active\",\n thumbsContainerClass: \"swiper-thumbs\"\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && dom_default(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === \"undefined\" || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(dom_default(thumbsSwiper.clickedSlide).attr(\"data-swiper-slide-index\"), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === \"undefined\") slideToIndex = nextIndex;\n else if (typeof nextIndex === \"undefined\") slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject2(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on(\"tap\", onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === \"auto\" ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n if (typeof prevThumbsIndex === \"undefined\") {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === \"undefined\") {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n direction = swiper.activeIndex > swiper.previousIndex ? \"next\" : \"prev\";\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? \"next\" : \"prev\";\n }\n if (useOffset) {\n newThumbsIndex += direction === \"next\" ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : void 0);\n }\n }\n }\n on2(\"beforeInit\", () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on2(\"slideChange update resize observerUpdate\", () => {\n update();\n });\n on2(\"setTransition\", (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on2(\"beforeDestroy\", () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\n// node_modules/swiper/modules/free-mode/free-mode.js\nfunction freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart2() {\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove2() {\n const {\n touchEventsData: data,\n touches\n } = swiper;\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? \"startX\" : \"startY\"],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? \"currentX\" : \"currentY\"],\n time: now()\n });\n }\n function onTouchEnd2({\n currentPos\n }) {\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1e3 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === \"next\") {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once(\"transitionEnd\", () => {\n swiper.loopFix();\n });\n }\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit(\"momentumBounce\");\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit(\"_freeModeNoMomentumRelease\");\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit(\"_freeModeNoMomentumRelease\");\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart: onTouchStart2,\n onTouchMove: onTouchMove2,\n onTouchEnd: onTouchEnd2\n }\n });\n}\n\n// node_modules/swiper/modules/grid/grid.js\nfunction Grid({\n swiper,\n extendParams\n}) {\n extendParams({\n grid: {\n rows: 1,\n fill: \"column\"\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n const initSlides = (slidesLength) => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== \"auto\" && fill === \"row\") {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup,\n spaceBetween\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === \"row\" && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n \"-webkit-order\": newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === \"column\") {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.css(getDirectionLabel(\"margin-top\"), row !== 0 ? spaceBetween && `${spaceBetween}px` : \"\");\n };\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n spaceBetween,\n centeredSlides,\n roundLengths\n } = swiper.params;\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css({\n [getDirectionLabel(\"width\")]: `${swiper.virtualSize + spaceBetween}px`\n });\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.push(...newSlidesGrid);\n }\n };\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\n// node_modules/swiper/modules/manipulation/methods/appendSlide.js\nfunction appendSlide(slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === \"object\" && \"length\" in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer) {\n swiper.update();\n }\n}\n\n// node_modules/swiper/modules/manipulation/methods/prependSlide.js\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === \"object\" && \"length\" in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\n// node_modules/swiper/modules/manipulation/methods/addSlide.js\nfunction addSlide(index2, slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index2 <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index2 >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index2 ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index2; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === \"object\" && \"length\" in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index2 ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\n// node_modules/swiper/modules/manipulation/methods/removeSlide.js\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === \"object\" && \"length\" in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\n// node_modules/swiper/modules/manipulation/methods/removeAllSlides.js\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\n// node_modules/swiper/modules/manipulation/manipulation.js\nfunction Manipulation({\n swiper\n}) {\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\n// node_modules/swiper/shared/effect-init.js\nfunction effectInit(params) {\n const {\n effect,\n swiper,\n on: on2,\n setTranslate: setTranslate2,\n setTransition: setTransition2,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on2(\"beforeInit\", () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on2(\"setTranslate\", () => {\n if (swiper.params.effect !== effect) return;\n setTranslate2();\n });\n on2(\"setTransition\", (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition2(duration);\n });\n on2(\"transitionEnd\", () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n swiper.slides.each((slideEl) => {\n const $slideEl = swiper.$(slideEl);\n $slideEl.find(\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\").remove();\n });\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on2(\"virtualUpdate\", () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate2();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\n// node_modules/swiper/shared/effect-target.js\nfunction effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n \"backface-visibility\": \"hidden\",\n \"-webkit-backface-visibility\": \"hidden\"\n });\n }\n return $slideEl;\n}\n\n// node_modules/swiper/shared/effect-virtual-transition-end.js\nfunction effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides\n}) {\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = [\"webkitTransitionEnd\", \"transitionend\"];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}\n\n// node_modules/swiper/modules/effect-fade/effect-fade.js\nfunction EffectFade({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n const setTranslate2 = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset2 = $slideEl[0].swiperSlideOffset;\n let tx = -offset2;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n const setTransition2 = (duration) => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n effectInit({\n effect: \"fade\",\n swiper,\n on: on2,\n setTranslate: setTranslate2,\n setTransition: setTransition2,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\n// node_modules/swiper/modules/effect-cube/effect-cube.js\nfunction EffectCube({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = ($slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? $slideEl.find(\".swiper-slide-shadow-left\") : $slideEl.find(\".swiper-slide-shadow-top\");\n let shadowAfter = isHorizontal ? $slideEl.find(\".swiper-slide-shadow-right\") : $slideEl.find(\".swiper-slide-shadow-bottom\");\n if (shadowBefore.length === 0) {\n shadowBefore = dom_default(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = dom_default(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.each((slideEl) => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(dom_default(slideEl), progress, isHorizontal);\n });\n };\n const setTranslate2 = () => {\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser: browser2\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find(\".swiper-cube-shadow\");\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = dom_default('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({\n height: `${swiperWidth}px`\n });\n } else {\n $cubeShadowEl = $el.find(\".swiper-cube-shadow\");\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = dom_default('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr(\"data-swiper-slide-index\"), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform2 = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n $slideEl.transform(transform2);\n if (params.slideShadows) {\n createSlideShadows($slideEl, progress, isHorizontal);\n }\n }\n $wrapperEl.css({\n \"-webkit-transform-origin\": `50% 50% -${swiperSize / 2}px`,\n \"transform-origin\": `50% 50% -${swiperSize / 2}px`\n });\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset2 = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset2}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = browser2.isSafari || browser2.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n $wrapperEl[0].style.setProperty(\"--swiper-cube-translate-z\", `${zFactor}px`);\n };\n const setTransition2 = (duration) => {\n const {\n $el,\n slides\n } = swiper;\n slides.transition(duration).find(\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\").transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find(\".swiper-cube-shadow\").transition(duration);\n }\n };\n effectInit({\n effect: \"cube\",\n swiper,\n on: on2,\n setTranslate: setTranslate2,\n setTransition: setTransition2,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\n// node_modules/swiper/shared/create-shadow.js\nfunction createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : \"\"}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n if (!$shadowEl.length) {\n $shadowEl = dom_default(`
`);\n $shadowContainer.append($shadowEl);\n }\n return $shadowEl;\n}\n\n// node_modules/swiper/modules/effect-flip/effect-flip.js\nfunction EffectFlip({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n const createSlideShadows = ($slideEl, progress, params) => {\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find(\".swiper-slide-shadow-left\") : $slideEl.find(\".swiper-slide-shadow-top\");\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find(\".swiper-slide-shadow-right\") : $slideEl.find(\".swiper-slide-shadow-bottom\");\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? \"left\" : \"top\");\n }\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? \"right\" : \"bottom\");\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n const params = swiper.params.flipEffect;\n swiper.slides.each((slideEl) => {\n const $slideEl = dom_default(slideEl);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows($slideEl, progress, params);\n });\n };\n const setTranslate2 = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset2 = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset2 - swiper.translate : -offset2;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows($slideEl, progress, params);\n }\n const transform2 = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform2);\n }\n };\n const setTransition2 = (duration) => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find(\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\").transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n effectInit({\n effect: \"flip\",\n swiper,\n on: on2,\n setTranslate: setTranslate2,\n setTransition: setTransition2,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\n// node_modules/swiper/modules/effect-coverflow/effect-coverflow.js\nfunction EffectCoverflow({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n const setTranslate2 = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform2 = swiper.translate;\n const center = isHorizontal ? -transform2 + swiperWidth / 2 : -transform2 + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === \"function\" ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n if (typeof stretch === \"string\" && stretch.indexOf(\"%\") !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n if (Math.abs(translateX) < 1e-3) translateX = 0;\n if (Math.abs(translateY) < 1e-3) translateY = 0;\n if (Math.abs(translateZ) < 1e-3) translateZ = 0;\n if (Math.abs(rotateY) < 1e-3) rotateY = 0;\n if (Math.abs(rotateX) < 1e-3) rotateX = 0;\n if (Math.abs(scale) < 1e-3) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n let $shadowBeforeEl = isHorizontal ? $slideEl.find(\".swiper-slide-shadow-left\") : $slideEl.find(\".swiper-slide-shadow-top\");\n let $shadowAfterEl = isHorizontal ? $slideEl.find(\".swiper-slide-shadow-right\") : $slideEl.find(\".swiper-slide-shadow-bottom\");\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? \"left\" : \"top\");\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? \"right\" : \"bottom\");\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition2 = (duration) => {\n const {\n transformEl\n } = swiper.params.coverflowEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find(\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\").transition(duration);\n };\n effectInit({\n effect: \"coverflow\",\n swiper,\n on: on2,\n setTranslate: setTranslate2,\n setTransition: setTransition2,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\n// node_modules/swiper/modules/effect-creative/effect-creative.js\nfunction EffectCreative({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = (value) => {\n if (typeof value === \"string\") return value;\n return `${value}px`;\n };\n const setTranslate2 = () => {\n const {\n slides,\n $wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset2 = $slideEl[0].swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset2 - swiper.translate : -offset2, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n t.forEach((value, index2) => {\n t[index2] = `calc(${value}px + (${getTranslateValue(data.translate[index2])} * ${Math.abs(progress * multiplier)}))`;\n });\n r.forEach((value, index2) => {\n r[index2] = data.rotate[index2] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(\", \");\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform2 = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n if (custom && data.shadow || !custom) {\n let $shadowEl = $slideEl.children(\".swiper-slide-shadow\");\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n if ($shadowEl.length) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform2).css({\n opacity: opacityString\n });\n if (data.origin) {\n $targetEl.css(\"transform-origin\", data.origin);\n }\n }\n };\n const setTransition2 = (duration) => {\n const {\n transformEl\n } = swiper.params.creativeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find(\".swiper-slide-shadow\").transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n effectInit({\n effect: \"creative\",\n swiper,\n on: on2,\n setTranslate: setTranslate2,\n setTransition: setTransition2,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\n// node_modules/swiper/modules/effect-cards/effect-cards.js\nfunction EffectCards({\n swiper,\n extendParams,\n on: on2\n}) {\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate2 = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset2 = $slideEl[0].swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset2 -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset2 - swiper.translate : -offset2;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform2 = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rotate : 0}deg)\n scale(${scaleString})\n `;\n if (params.slideShadows) {\n let $shadowEl = $slideEl.find(\".swiper-slide-shadow\");\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform2);\n }\n };\n const setTransition2 = (duration) => {\n const {\n transformEl\n } = swiper.params.cardsEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find(\".swiper-slide-shadow\").transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n effectInit({\n effect: \"cards\",\n swiper,\n on: on2,\n setTranslate: setTranslate2,\n setTransition: setTransition2,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport {\n core_default,\n Virtual,\n Keyboard,\n Mousewheel,\n Navigation,\n Pagination,\n Scrollbar,\n Parallax,\n Zoom,\n Lazy,\n Controller,\n A11y,\n History,\n HashNavigation,\n Autoplay,\n Thumb,\n freeMode,\n Grid,\n Manipulation,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n EffectCreative,\n EffectCards\n};\n", "import {\n A11y,\n Autoplay,\n Controller,\n EffectCards,\n EffectCoverflow,\n EffectCreative,\n EffectCube,\n EffectFade,\n EffectFlip,\n Grid,\n HashNavigation,\n History,\n Keyboard,\n Lazy,\n Manipulation,\n Mousewheel,\n Navigation,\n Pagination,\n Parallax,\n Scrollbar,\n Thumb,\n Virtual,\n Zoom,\n core_default,\n freeMode\n} from \"./chunk.VVD5NVY2.js\";\nimport \"./chunk.I4IFG4JG.js\";\nexport {\n A11y,\n Autoplay,\n Controller,\n EffectCards,\n EffectCoverflow,\n EffectCreative,\n EffectCube,\n EffectFade,\n EffectFlip,\n freeMode as FreeMode,\n Grid,\n HashNavigation,\n History,\n Keyboard,\n Lazy,\n Manipulation,\n Mousewheel,\n Navigation,\n Pagination,\n Parallax,\n Scrollbar,\n core_default as Swiper,\n Thumb as Thumbs,\n Virtual,\n Zoom,\n core_default as default\n};\n", "import {\n Linkable\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-language-item/jb-language-item.scss?inline\nvar jb_language_item_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\na {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\na {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n}\n\nli {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n list-style-type: none;\n font-size: 0;\n font-size: 0;\n}\n\na {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n opacity: var(--text-opacity, 0.4);\n text-decoration: none;\n text-transform: uppercase;\n transition: opacity 0.2s ease-in-out;\n}\na:hover {\n opacity: 1;\n}`;\n\n// src/components/jb-language-item/jb-language-item.ts\nvar JbLanguageItem = class extends Linkable(h) {\n render() {\n return ke` ${this.text} `;\n }\n};\nJbLanguageItem.styles = r(jb_language_item_default);\n__decorateClass([\n n()\n], JbLanguageItem.prototype, \"text\", 2);\nJbLanguageItem = __decorateClass([\n customElement(\"jb-language-item\")\n], JbLanguageItem);\n\nexport {\n JbLanguageItem\n};\n", "import {\n Filterable\n} from \"./chunk.TOSSI7AO.js\";\nimport {\n Linkable\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-news-list-item/jb-news-list-item.scss?inline\nvar jb_news_list_item_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\nsection {\n position: relative;\n}\nsection::before, section::after {\n bottom: 0;\n content: \"\";\n height: 1px;\n position: absolute;\n width: 100%;\n z-index: 101;\n}\nsection::before {\n background: rgba(20, 30, 85, 0.2);\n}\nsection::after {\n background: #141e55;\n transform: scaleX(0);\n transform-origin: left;\n transition: transform 0.8s ease-in-out;\n}\nsection:hover::after {\n transform: scaleX(1);\n transition-duration: 0.5s;\n}\n\n/* stylelint-disable */\n/* stylelint-enable */\na {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\na {\n color: rgba(var(--rgb-primary, 20, 30, 85), var(--text-opacity, var(--theme-opacity-80, 0.8)));\n font-size: 1rem;\n line-height: 1.625rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\nsection {\n --text-opacity: 1;\n padding-bottom: 12px;\n}\n\na {\n display: block;\n margin-bottom: 16px;\n text-decoration: none;\n}\na:not([href]) {\n color: rgba(0, 0, 0, 0.2);\n}\n\n.meta {\n display: flex;\n}\n\njb-date {\n margin-right: 20px;\n}\n\njb-language-item {\n --text-opacity: 0.4;\n padding: 0 15px;\n position: relative;\n}\njb-language-item:first-of-type {\n padding-left: 0;\n}\njb-language-item::after {\n background-color: rgb(var(--rgb-primary, 20, 30, 85));\n border-radius: 100%;\n content: \"\";\n height: 3px;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3px;\n}\njb-language-item:last-of-type::after {\n content: none;\n}`;\n\n// src/components/jb-news-list-item/jb-news-list-item.ts\nvar JbNewsListItem = class extends Filterable(Linkable(h)) {\n render() {\n return ke`\n
\n `;\n }\n};\nJbNewsListItem.styles = r(jb_news_list_item_default);\n__decorateClass([\n n()\n], JbNewsListItem.prototype, \"date\", 2);\n__decorateClass([\n n({ type: Array })\n], JbNewsListItem.prototype, \"languages\", 2);\n__decorateClass([\n n()\n], JbNewsListItem.prototype, \"newsTitle\", 2);\nJbNewsListItem = __decorateClass([\n customElement(\"jb-news-list-item\")\n], JbNewsListItem);\n\nexport {\n JbNewsListItem\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-date/jb-date.scss?inline\nvar jb_date_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\ntime {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\ntime {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n display: flex;\n font-size: var(--font-size, 0.688rem);\n font-weight: var(--font-weight, 700);\n gap: var(--gap, 4px);\n letter-spacing: var(--letter-spacing, 0.063rem);\n line-height: var(--line-height, 1rem);\n opacity: var(--text-opacity, 1);\n}`;\n\n// src/components/jb-date/jb-date.ts\nvar JbDate = class extends h {\n render() {\n return ke`
${this.date} ${this.time ? ke` ${this.time} ` : D}`;\n }\n};\nJbDate.styles = r(jb_date_default);\n__decorateClass([\n n()\n], JbDate.prototype, \"date\", 2);\n__decorateClass([\n n()\n], JbDate.prototype, \"time\", 2);\nJbDate = __decorateClass([\n customElement(\"jb-date\")\n], JbDate);\n\nexport {\n JbDate\n};\n", "import {\n JbNewsListItem\n} from \"../../chunks/chunk.KDMPIGAU.js\";\nimport \"../../chunks/chunk.CANFYQQ7.js\";\nimport \"../../chunks/chunk.G64OMJ2S.js\";\nimport \"../../chunks/chunk.G3SZKTQJ.js\";\nimport \"../../chunks/chunk.YTEMICXC.js\";\nimport \"../../chunks/chunk.LTAMHVKK.js\";\nimport \"../../chunks/chunk.OZEBCGEZ.js\";\nimport \"../../chunks/chunk.TOSSI7AO.js\";\nimport \"../../chunks/chunk.6DHNIVN5.js\";\nimport \"../../chunks/chunk.ABOYTYJO.js\";\nimport \"../../chunks/chunk.7ZO5ST7S.js\";\nimport \"../../chunks/chunk.EELGOWGJ.js\";\nimport \"../../chunks/chunk.WEV4VAJB.js\";\nimport \"../../chunks/chunk.NQ4JNTZU.js\";\nimport \"../../chunks/chunk.KR4IFKAA.js\";\nimport \"../../chunks/chunk.QAGUCU4C.js\";\nimport \"../../chunks/chunk.A4SFXC3I.js\";\nimport \"../../chunks/chunk.KZGIJPE3.js\";\nimport \"../../chunks/chunk.VRR2P3PQ.js\";\nimport \"../../chunks/chunk.7PRSKJZQ.js\";\nimport \"../../chunks/chunk.7ANACPIR.js\";\nimport \"../../chunks/chunk.WXNWU2SV.js\";\nimport \"../../chunks/chunk.FCKNEYTX.js\";\nimport \"../../chunks/chunk.BBN2ZB42.js\";\nimport \"../../chunks/chunk.FAJKIEWS.js\";\nimport \"../../chunks/chunk.I4IFG4JG.js\";\nexport {\n JbNewsListItem\n};\n", "import {\n Filterable\n} from \"./chunk.TOSSI7AO.js\";\nimport {\n Linkable,\n getLinkIcon\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-event-list-item/jb-event-list-item.scss?inline\nvar jb_event_list_item_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\nsection {\n position: relative;\n}\nsection::before, section::after {\n bottom: 0;\n content: \"\";\n height: 1px;\n position: absolute;\n width: 100%;\n z-index: 101;\n}\nsection::before {\n background: rgba(20, 30, 85, 0.2);\n}\nsection::after {\n background: #141e55;\n transform: scaleX(0);\n transform-origin: left;\n transition: transform 0.8s ease-in-out;\n}\nsection:hover::after {\n transform: scaleX(1);\n transition-duration: 0.5s;\n}\n\n/* stylelint-disable */\n/* stylelint-enable */\n.ics-download span, .title a, section {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.title a, section {\n color: rgba(var(--rgb-primary, 20, 30, 85), var(--text-opacity, var(--theme-opacity-80, 0.8)));\n font-size: 1rem;\n line-height: 1.625rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\nsection {\n --text-opacity: 1;\n padding-bottom: 12px;\n position: relative;\n}\n\n.title {\n display: block;\n margin-bottom: 6px;\n}\n.title a {\n text-decoration: none;\n}\n\n.meta {\n align-items: end;\n color: rgba(20, 30, 85, var(--theme-opacity-70, 0.7));\n display: flex;\n}\n.meta a {\n text-decoration: none;\n}\n\n.title,\n.meta {\n max-width: 90%;\n}\n\njb-date {\n --font-size: 1rem;\n --font-weight: 300;\n --line-height: 1.625rem;\n --gap: 17px;\n --rgb-primary: 20, 30, 85, var(--theme-opacity-70, 0.7);\n}\n\n.ics-download {\n align-items: center;\n cursor: pointer;\n display: flex;\n}\n.ics-download span {\n display: inline-block;\n font-size: 0.813rem;\n line-height: 1.25rem;\n margin-left: 8px;\n opacity: 0;\n padding-top: 2px;\n transition: opacity 0.25s ease-in-out;\n}\n.ics-download:hover span {\n opacity: 1;\n}\n\n.location:not(:first-child)::before,\n.ics-download:not(:first-child)::before {\n color: rgba(20, 30, 85, var(--theme-opacity-20, 0.2));\n content: \"|\";\n margin: 0 12px;\n}\n\n.link-icon {\n margin-top: -4px;\n position: absolute;\n right: 3px;\n top: 50%;\n transform: translateY(-50%);\n}`;\n\n// src/components/jb-event-list-item/jb-event-list-item.ts\nvar JbEventListItem = class extends Filterable(Linkable(h)) {\n render() {\n return ke`\n
\n \n \n ${this.link ? ke`` : D}\n \n `;\n }\n};\nJbEventListItem.styles = r(jb_event_list_item_default);\n__decorateClass([\n n()\n], JbEventListItem.prototype, \"addToCalendarLabel\", 2);\n__decorateClass([\n n()\n], JbEventListItem.prototype, \"date\", 2);\n__decorateClass([\n n()\n], JbEventListItem.prototype, \"icsLink\", 2);\n__decorateClass([\n n()\n], JbEventListItem.prototype, \"location\", 2);\n__decorateClass([\n n()\n], JbEventListItem.prototype, \"text\", 2);\n__decorateClass([\n n()\n], JbEventListItem.prototype, \"time\", 2);\nJbEventListItem = __decorateClass([\n customElement(\"jb-event-list-item\")\n], JbEventListItem);\n\nexport {\n JbEventListItem\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-calendar-icon/jb-calendar-icon.scss?inline\nvar jb_calendar_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n height: var(--icon-size, 18px);\n width: var(--icon-size, 18px);\n}\n\nsvg {\n fill: rgb(var(--rgb-primary, 20, 30, 85));\n}`;\n\n// src/components/icons/jb-calendar-icon/jb-calendar-icon.ts\nvar JbCalendarIcon = class extends h {\n render() {\n return ke`\n
\n \n \n `;\n }\n};\nJbCalendarIcon.styles = r(jb_calendar_icon_default);\nJbCalendarIcon = __decorateClass([\n customElement(\"jb-calendar-icon\")\n], JbCalendarIcon);\n\nexport {\n JbCalendarIcon\n};\n", "import {\n JbEventListItem\n} from \"../../chunks/chunk.N3VILVCR.js\";\nimport \"../../chunks/chunk.OE6UAQWN.js\";\nimport \"../../chunks/chunk.G64OMJ2S.js\";\nimport \"../../chunks/chunk.G3SZKTQJ.js\";\nimport \"../../chunks/chunk.YTEMICXC.js\";\nimport \"../../chunks/chunk.LTAMHVKK.js\";\nimport \"../../chunks/chunk.OZEBCGEZ.js\";\nimport \"../../chunks/chunk.TOSSI7AO.js\";\nimport \"../../chunks/chunk.6DHNIVN5.js\";\nimport \"../../chunks/chunk.ABOYTYJO.js\";\nimport \"../../chunks/chunk.7ZO5ST7S.js\";\nimport \"../../chunks/chunk.EELGOWGJ.js\";\nimport \"../../chunks/chunk.WEV4VAJB.js\";\nimport \"../../chunks/chunk.NQ4JNTZU.js\";\nimport \"../../chunks/chunk.KR4IFKAA.js\";\nimport \"../../chunks/chunk.QAGUCU4C.js\";\nimport \"../../chunks/chunk.A4SFXC3I.js\";\nimport \"../../chunks/chunk.KZGIJPE3.js\";\nimport \"../../chunks/chunk.VRR2P3PQ.js\";\nimport \"../../chunks/chunk.7PRSKJZQ.js\";\nimport \"../../chunks/chunk.7ANACPIR.js\";\nimport \"../../chunks/chunk.WXNWU2SV.js\";\nimport \"../../chunks/chunk.FCKNEYTX.js\";\nimport \"../../chunks/chunk.BBN2ZB42.js\";\nimport \"../../chunks/chunk.FAJKIEWS.js\";\nimport \"../../chunks/chunk.I4IFG4JG.js\";\nexport {\n JbEventListItem\n};\n", "import \"./chunk.I4IFG4JG.js\";\n\n// node_modules/@lottiefiles/lottie-player/dist/lottie-player.esm.js\nfunction _asyncIterator(t2) {\n var e2, r2, i2, s2 = 2;\n for (\"undefined\" != typeof Symbol && (r2 = Symbol.asyncIterator, i2 = Symbol.iterator); s2--; ) {\n if (r2 && null != (e2 = t2[r2])) return e2.call(t2);\n if (i2 && null != (e2 = t2[i2])) return new AsyncFromSyncIterator(e2.call(t2));\n r2 = \"@@asyncIterator\", i2 = \"@@iterator\";\n }\n throw new TypeError(\"Object is not async iterable\");\n}\nfunction AsyncFromSyncIterator(t2) {\n function e2(t3) {\n if (Object(t3) !== t3) return Promise.reject(new TypeError(t3 + \" is not an object.\"));\n var e3 = t3.done;\n return Promise.resolve(t3.value).then(function(t4) {\n return { value: t4, done: e3 };\n });\n }\n return AsyncFromSyncIterator = function(t3) {\n this.s = t3, this.n = t3.next;\n }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function() {\n return e2(this.n.apply(this.s, arguments));\n }, return: function(t3) {\n var r2 = this.s.return;\n return void 0 === r2 ? Promise.resolve({ value: t3, done: true }) : e2(r2.apply(this.s, arguments));\n }, throw: function(t3) {\n var r2 = this.s.return;\n return void 0 === r2 ? Promise.reject(t3) : e2(r2.apply(this.s, arguments));\n } }, new AsyncFromSyncIterator(t2);\n}\nvar REACT_ELEMENT_TYPE;\nfunction _jsx(t2, e2, r2, i2) {\n REACT_ELEMENT_TYPE || (REACT_ELEMENT_TYPE = \"function\" == typeof Symbol && Symbol.for && Symbol.for(\"react.element\") || 60103);\n var s2 = t2 && t2.defaultProps, a2 = arguments.length - 3;\n if (e2 || 0 === a2 || (e2 = { children: void 0 }), 1 === a2) e2.children = i2;\n else if (a2 > 1) {\n for (var n2 = new Array(a2), o2 = 0; o2 < a2; o2++) n2[o2] = arguments[o2 + 3];\n e2.children = n2;\n }\n if (e2 && s2) for (var h2 in s2) void 0 === e2[h2] && (e2[h2] = s2[h2]);\n else e2 || (e2 = s2 || {});\n return { $$typeof: REACT_ELEMENT_TYPE, type: t2, key: void 0 === r2 ? null : \"\" + r2, ref: null, props: e2, _owner: null };\n}\nfunction ownKeys(t2, e2) {\n var r2 = Object.keys(t2);\n if (Object.getOwnPropertySymbols) {\n var i2 = Object.getOwnPropertySymbols(t2);\n e2 && (i2 = i2.filter(function(e3) {\n return Object.getOwnPropertyDescriptor(t2, e3).enumerable;\n })), r2.push.apply(r2, i2);\n }\n return r2;\n}\nfunction _objectSpread2(t2) {\n for (var e2 = 1; e2 < arguments.length; e2++) {\n var r2 = null != arguments[e2] ? arguments[e2] : {};\n e2 % 2 ? ownKeys(Object(r2), true).forEach(function(e3) {\n _defineProperty(t2, e3, r2[e3]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t2, Object.getOwnPropertyDescriptors(r2)) : ownKeys(Object(r2)).forEach(function(e3) {\n Object.defineProperty(t2, e3, Object.getOwnPropertyDescriptor(r2, e3));\n });\n }\n return t2;\n}\nfunction _typeof2(t2) {\n return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n }, _typeof2(t2);\n}\nfunction _wrapRegExp() {\n _wrapRegExp = function(t3, e3) {\n return new r2(t3, void 0, e3);\n };\n var t2 = RegExp.prototype, e2 = /* @__PURE__ */ new WeakMap();\n function r2(t3, i3, s2) {\n var a2 = new RegExp(t3, i3);\n return e2.set(a2, s2 || e2.get(t3)), _setPrototypeOf(a2, r2.prototype);\n }\n function i2(t3, r3) {\n var i3 = e2.get(r3);\n return Object.keys(i3).reduce(function(e3, r4) {\n return e3[r4] = t3[i3[r4]], e3;\n }, /* @__PURE__ */ Object.create(null));\n }\n return _inherits(r2, RegExp), r2.prototype.exec = function(e3) {\n var r3 = t2.exec.call(this, e3);\n return r3 && (r3.groups = i2(r3, this)), r3;\n }, r2.prototype[Symbol.replace] = function(r3, s2) {\n if (\"string\" == typeof s2) {\n var a2 = e2.get(this);\n return t2[Symbol.replace].call(this, r3, s2.replace(/\\$<([^>]+)>/g, function(t3, e3) {\n return \"$\" + a2[e3];\n }));\n }\n if (\"function\" == typeof s2) {\n var n2 = this;\n return t2[Symbol.replace].call(this, r3, function() {\n var t3 = arguments;\n return \"object\" != typeof t3[t3.length - 1] && (t3 = [].slice.call(t3)).push(i2(t3, n2)), s2.apply(this, t3);\n });\n }\n return t2[Symbol.replace].call(this, r3, s2);\n }, _wrapRegExp.apply(this, arguments);\n}\nfunction _AwaitValue(t2) {\n this.wrapped = t2;\n}\nfunction _AsyncGenerator(t2) {\n var e2, r2;\n function i2(e3, r3) {\n try {\n var a2 = t2[e3](r3), n2 = a2.value, o2 = n2 instanceof _AwaitValue;\n Promise.resolve(o2 ? n2.wrapped : n2).then(function(t3) {\n o2 ? i2(\"return\" === e3 ? \"return\" : \"next\", t3) : s2(a2.done ? \"return\" : \"normal\", t3);\n }, function(t3) {\n i2(\"throw\", t3);\n });\n } catch (t3) {\n s2(\"throw\", t3);\n }\n }\n function s2(t3, s3) {\n switch (t3) {\n case \"return\":\n e2.resolve({ value: s3, done: true });\n break;\n case \"throw\":\n e2.reject(s3);\n break;\n default:\n e2.resolve({ value: s3, done: false });\n }\n (e2 = e2.next) ? i2(e2.key, e2.arg) : r2 = null;\n }\n this._invoke = function(t3, s3) {\n return new Promise(function(a2, n2) {\n var o2 = { key: t3, arg: s3, resolve: a2, reject: n2, next: null };\n r2 ? r2 = r2.next = o2 : (e2 = r2 = o2, i2(t3, s3));\n });\n }, \"function\" != typeof t2.return && (this.return = void 0);\n}\nfunction _wrapAsyncGenerator(t2) {\n return function() {\n return new _AsyncGenerator(t2.apply(this, arguments));\n };\n}\nfunction _awaitAsyncGenerator(t2) {\n return new _AwaitValue(t2);\n}\nfunction _asyncGeneratorDelegate(t2, e2) {\n var r2 = {}, i2 = false;\n function s2(r3, s3) {\n return i2 = true, s3 = new Promise(function(e3) {\n e3(t2[r3](s3));\n }), { done: false, value: e2(s3) };\n }\n return r2[\"undefined\" != typeof Symbol && Symbol.iterator || \"@@iterator\"] = function() {\n return this;\n }, r2.next = function(t3) {\n return i2 ? (i2 = false, t3) : s2(\"next\", t3);\n }, \"function\" == typeof t2.throw && (r2.throw = function(t3) {\n if (i2) throw i2 = false, t3;\n return s2(\"throw\", t3);\n }), \"function\" == typeof t2.return && (r2.return = function(t3) {\n return i2 ? (i2 = false, t3) : s2(\"return\", t3);\n }), r2;\n}\nfunction asyncGeneratorStep(t2, e2, r2, i2, s2, a2, n2) {\n try {\n var o2 = t2[a2](n2), h2 = o2.value;\n } catch (t3) {\n return void r2(t3);\n }\n o2.done ? e2(h2) : Promise.resolve(h2).then(i2, s2);\n}\nfunction _asyncToGenerator(t2) {\n return function() {\n var e2 = this, r2 = arguments;\n return new Promise(function(i2, s2) {\n var a2 = t2.apply(e2, r2);\n function n2(t3) {\n asyncGeneratorStep(a2, i2, s2, n2, o2, \"next\", t3);\n }\n function o2(t3) {\n asyncGeneratorStep(a2, i2, s2, n2, o2, \"throw\", t3);\n }\n n2(void 0);\n });\n };\n}\nfunction _classCallCheck(t2, e2) {\n if (!(t2 instanceof e2)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(t2, e2) {\n for (var r2 = 0; r2 < e2.length; r2++) {\n var i2 = e2[r2];\n i2.enumerable = i2.enumerable || false, i2.configurable = true, \"value\" in i2 && (i2.writable = true), Object.defineProperty(t2, i2.key, i2);\n }\n}\nfunction _createClass(t2, e2, r2) {\n return e2 && _defineProperties(t2.prototype, e2), r2 && _defineProperties(t2, r2), Object.defineProperty(t2, \"prototype\", { writable: false }), t2;\n}\nfunction _defineEnumerableProperties(t2, e2) {\n for (var r2 in e2) {\n (a2 = e2[r2]).configurable = a2.enumerable = true, \"value\" in a2 && (a2.writable = true), Object.defineProperty(t2, r2, a2);\n }\n if (Object.getOwnPropertySymbols) for (var i2 = Object.getOwnPropertySymbols(e2), s2 = 0; s2 < i2.length; s2++) {\n var a2, n2 = i2[s2];\n (a2 = e2[n2]).configurable = a2.enumerable = true, \"value\" in a2 && (a2.writable = true), Object.defineProperty(t2, n2, a2);\n }\n return t2;\n}\nfunction _defaults(t2, e2) {\n for (var r2 = Object.getOwnPropertyNames(e2), i2 = 0; i2 < r2.length; i2++) {\n var s2 = r2[i2], a2 = Object.getOwnPropertyDescriptor(e2, s2);\n a2 && a2.configurable && void 0 === t2[s2] && Object.defineProperty(t2, s2, a2);\n }\n return t2;\n}\nfunction _defineProperty(t2, e2, r2) {\n return e2 in t2 ? Object.defineProperty(t2, e2, { value: r2, enumerable: true, configurable: true, writable: true }) : t2[e2] = r2, t2;\n}\nfunction _extends() {\n return _extends = Object.assign || function(t2) {\n for (var e2 = 1; e2 < arguments.length; e2++) {\n var r2 = arguments[e2];\n for (var i2 in r2) Object.prototype.hasOwnProperty.call(r2, i2) && (t2[i2] = r2[i2]);\n }\n return t2;\n }, _extends.apply(this, arguments);\n}\nfunction _objectSpread(t2) {\n for (var e2 = 1; e2 < arguments.length; e2++) {\n var r2 = null != arguments[e2] ? Object(arguments[e2]) : {}, i2 = Object.keys(r2);\n \"function\" == typeof Object.getOwnPropertySymbols && i2.push.apply(i2, Object.getOwnPropertySymbols(r2).filter(function(t3) {\n return Object.getOwnPropertyDescriptor(r2, t3).enumerable;\n })), i2.forEach(function(e3) {\n _defineProperty(t2, e3, r2[e3]);\n });\n }\n return t2;\n}\nfunction _inherits(t2, e2) {\n if (\"function\" != typeof e2 && null !== e2) throw new TypeError(\"Super expression must either be null or a function\");\n t2.prototype = Object.create(e2 && e2.prototype, { constructor: { value: t2, writable: true, configurable: true } }), Object.defineProperty(t2, \"prototype\", { writable: false }), e2 && _setPrototypeOf(t2, e2);\n}\nfunction _inheritsLoose(t2, e2) {\n t2.prototype = Object.create(e2.prototype), t2.prototype.constructor = t2, _setPrototypeOf(t2, e2);\n}\nfunction _getPrototypeOf(t2) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(t3) {\n return t3.__proto__ || Object.getPrototypeOf(t3);\n }, _getPrototypeOf(t2);\n}\nfunction _setPrototypeOf(t2, e2) {\n return _setPrototypeOf = Object.setPrototypeOf || function(t3, e3) {\n return t3.__proto__ = e3, t3;\n }, _setPrototypeOf(t2, e2);\n}\nfunction _isNativeReflectConstruct() {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (\"function\" == typeof Proxy) return true;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n })), true;\n } catch (t2) {\n return false;\n }\n}\nfunction _construct(t2, e2, r2) {\n return _construct = _isNativeReflectConstruct() ? Reflect.construct : function(t3, e3, r3) {\n var i2 = [null];\n i2.push.apply(i2, e3);\n var s2 = new (Function.bind.apply(t3, i2))();\n return r3 && _setPrototypeOf(s2, r3.prototype), s2;\n }, _construct.apply(null, arguments);\n}\nfunction _isNativeFunction(t2) {\n return -1 !== Function.toString.call(t2).indexOf(\"[native code]\");\n}\nfunction _wrapNativeSuper(t2) {\n var e2 = \"function\" == typeof Map ? /* @__PURE__ */ new Map() : void 0;\n return _wrapNativeSuper = function(t3) {\n if (null === t3 || !_isNativeFunction(t3)) return t3;\n if (\"function\" != typeof t3) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== e2) {\n if (e2.has(t3)) return e2.get(t3);\n e2.set(t3, r2);\n }\n function r2() {\n return _construct(t3, arguments, _getPrototypeOf(this).constructor);\n }\n return r2.prototype = Object.create(t3.prototype, { constructor: { value: r2, enumerable: false, writable: true, configurable: true } }), _setPrototypeOf(r2, t3);\n }, _wrapNativeSuper(t2);\n}\nfunction _instanceof(t2, e2) {\n return null != e2 && \"undefined\" != typeof Symbol && e2[Symbol.hasInstance] ? !!e2[Symbol.hasInstance](t2) : t2 instanceof e2;\n}\nfunction _interopRequireDefault(t2) {\n return t2 && t2.__esModule ? t2 : { default: t2 };\n}\nfunction _getRequireWildcardCache(t2) {\n if (\"function\" != typeof WeakMap) return null;\n var e2 = /* @__PURE__ */ new WeakMap(), r2 = /* @__PURE__ */ new WeakMap();\n return (_getRequireWildcardCache = function(t3) {\n return t3 ? r2 : e2;\n })(t2);\n}\nfunction _interopRequireWildcard(t2, e2) {\n if (!e2 && t2 && t2.__esModule) return t2;\n if (null === t2 || \"object\" != typeof t2 && \"function\" != typeof t2) return { default: t2 };\n var r2 = _getRequireWildcardCache(e2);\n if (r2 && r2.has(t2)) return r2.get(t2);\n var i2 = {}, s2 = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var a2 in t2) if (\"default\" !== a2 && Object.prototype.hasOwnProperty.call(t2, a2)) {\n var n2 = s2 ? Object.getOwnPropertyDescriptor(t2, a2) : null;\n n2 && (n2.get || n2.set) ? Object.defineProperty(i2, a2, n2) : i2[a2] = t2[a2];\n }\n return i2.default = t2, r2 && r2.set(t2, i2), i2;\n}\nfunction _newArrowCheck(t2, e2) {\n if (t2 !== e2) throw new TypeError(\"Cannot instantiate an arrow function\");\n}\nfunction _objectDestructuringEmpty(t2) {\n if (null == t2) throw new TypeError(\"Cannot destructure undefined\");\n}\nfunction _objectWithoutPropertiesLoose(t2, e2) {\n if (null == t2) return {};\n var r2, i2, s2 = {}, a2 = Object.keys(t2);\n for (i2 = 0; i2 < a2.length; i2++) r2 = a2[i2], e2.indexOf(r2) >= 0 || (s2[r2] = t2[r2]);\n return s2;\n}\nfunction _objectWithoutProperties(t2, e2) {\n if (null == t2) return {};\n var r2, i2, s2 = _objectWithoutPropertiesLoose(t2, e2);\n if (Object.getOwnPropertySymbols) {\n var a2 = Object.getOwnPropertySymbols(t2);\n for (i2 = 0; i2 < a2.length; i2++) r2 = a2[i2], e2.indexOf(r2) >= 0 || Object.prototype.propertyIsEnumerable.call(t2, r2) && (s2[r2] = t2[r2]);\n }\n return s2;\n}\nfunction _assertThisInitialized(t2) {\n if (void 0 === t2) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return t2;\n}\nfunction _possibleConstructorReturn(t2, e2) {\n if (e2 && (\"object\" == typeof e2 || \"function\" == typeof e2)) return e2;\n if (void 0 !== e2) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return _assertThisInitialized(t2);\n}\nfunction _createSuper(t2) {\n var e2 = _isNativeReflectConstruct();\n return function() {\n var r2, i2 = _getPrototypeOf(t2);\n if (e2) {\n var s2 = _getPrototypeOf(this).constructor;\n r2 = Reflect.construct(i2, arguments, s2);\n } else r2 = i2.apply(this, arguments);\n return _possibleConstructorReturn(this, r2);\n };\n}\nfunction _superPropBase(t2, e2) {\n for (; !Object.prototype.hasOwnProperty.call(t2, e2) && null !== (t2 = _getPrototypeOf(t2)); ) ;\n return t2;\n}\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get : function(t2, e2, r2) {\n var i2 = _superPropBase(t2, e2);\n if (i2) {\n var s2 = Object.getOwnPropertyDescriptor(i2, e2);\n return s2.get ? s2.get.call(arguments.length < 3 ? t2 : r2) : s2.value;\n }\n }, _get.apply(this, arguments);\n}\nfunction set(t2, e2, r2, i2) {\n return set = \"undefined\" != typeof Reflect && Reflect.set ? Reflect.set : function(t3, e3, r3, i3) {\n var s2, a2 = _superPropBase(t3, e3);\n if (a2) {\n if ((s2 = Object.getOwnPropertyDescriptor(a2, e3)).set) return s2.set.call(i3, r3), true;\n if (!s2.writable) return false;\n }\n if (s2 = Object.getOwnPropertyDescriptor(i3, e3)) {\n if (!s2.writable) return false;\n s2.value = r3, Object.defineProperty(i3, e3, s2);\n } else _defineProperty(i3, e3, r3);\n return true;\n }, set(t2, e2, r2, i2);\n}\nfunction _set(t2, e2, r2, i2, s2) {\n if (!set(t2, e2, r2, i2 || t2) && s2) throw new Error(\"failed to set property\");\n return r2;\n}\nfunction _taggedTemplateLiteral(t2, e2) {\n return e2 || (e2 = t2.slice(0)), Object.freeze(Object.defineProperties(t2, { raw: { value: Object.freeze(e2) } }));\n}\nfunction _taggedTemplateLiteralLoose(t2, e2) {\n return e2 || (e2 = t2.slice(0)), t2.raw = e2, t2;\n}\nfunction _readOnlyError(t2) {\n throw new TypeError('\"' + t2 + '\" is read-only');\n}\nfunction _writeOnlyError(t2) {\n throw new TypeError('\"' + t2 + '\" is write-only');\n}\nfunction _classNameTDZError(t2) {\n throw new Error('Class \"' + t2 + '\" cannot be referenced in computed property keys.');\n}\nfunction _temporalUndefined() {\n}\nfunction _tdz(t2) {\n throw new ReferenceError(t2 + \" is not defined - temporal dead zone\");\n}\nfunction _temporalRef(t2, e2) {\n return t2 === _temporalUndefined ? _tdz(e2) : t2;\n}\nfunction _slicedToArray(t2, e2) {\n return _arrayWithHoles(t2) || _iterableToArrayLimit(t2, e2) || _unsupportedIterableToArray(t2, e2) || _nonIterableRest();\n}\nfunction _slicedToArrayLoose(t2, e2) {\n return _arrayWithHoles(t2) || _iterableToArrayLimitLoose(t2, e2) || _unsupportedIterableToArray(t2, e2) || _nonIterableRest();\n}\nfunction _toArray(t2) {\n return _arrayWithHoles(t2) || _iterableToArray(t2) || _unsupportedIterableToArray(t2) || _nonIterableRest();\n}\nfunction _toConsumableArray(t2) {\n return _arrayWithoutHoles(t2) || _iterableToArray(t2) || _unsupportedIterableToArray(t2) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(t2) {\n if (Array.isArray(t2)) return _arrayLikeToArray(t2);\n}\nfunction _arrayWithHoles(t2) {\n if (Array.isArray(t2)) return t2;\n}\nfunction _maybeArrayLike(t2, e2, r2) {\n if (e2 && !Array.isArray(e2) && \"number\" == typeof e2.length) {\n var i2 = e2.length;\n return _arrayLikeToArray(e2, void 0 !== r2 && r2 < i2 ? r2 : i2);\n }\n return t2(e2, r2);\n}\nfunction _iterableToArray(t2) {\n if (\"undefined\" != typeof Symbol && null != t2[Symbol.iterator] || null != t2[\"@@iterator\"]) return Array.from(t2);\n}\nfunction _iterableToArrayLimit(t2, e2) {\n var r2 = null == t2 ? null : \"undefined\" != typeof Symbol && t2[Symbol.iterator] || t2[\"@@iterator\"];\n if (null != r2) {\n var i2, s2, a2 = [], n2 = true, o2 = false;\n try {\n for (r2 = r2.call(t2); !(n2 = (i2 = r2.next()).done) && (a2.push(i2.value), !e2 || a2.length !== e2); n2 = true) ;\n } catch (t3) {\n o2 = true, s2 = t3;\n } finally {\n try {\n n2 || null == r2.return || r2.return();\n } finally {\n if (o2) throw s2;\n }\n }\n return a2;\n }\n}\nfunction _iterableToArrayLimitLoose(t2, e2) {\n var r2 = t2 && (\"undefined\" != typeof Symbol && t2[Symbol.iterator] || t2[\"@@iterator\"]);\n if (null != r2) {\n var i2 = [];\n for (r2 = r2.call(t2), _step; !(_step = r2.next()).done && (i2.push(_step.value), !e2 || i2.length !== e2); ) ;\n return i2;\n }\n}\nfunction _unsupportedIterableToArray(t2, e2) {\n if (t2) {\n if (\"string\" == typeof t2) return _arrayLikeToArray(t2, e2);\n var r2 = Object.prototype.toString.call(t2).slice(8, -1);\n return \"Object\" === r2 && t2.constructor && (r2 = t2.constructor.name), \"Map\" === r2 || \"Set\" === r2 ? Array.from(t2) : \"Arguments\" === r2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r2) ? _arrayLikeToArray(t2, e2) : void 0;\n }\n}\nfunction _arrayLikeToArray(t2, e2) {\n (null == e2 || e2 > t2.length) && (e2 = t2.length);\n for (var r2 = 0, i2 = new Array(e2); r2 < e2; r2++) i2[r2] = t2[r2];\n return i2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _createForOfIteratorHelper(t2, e2) {\n var r2 = \"undefined\" != typeof Symbol && t2[Symbol.iterator] || t2[\"@@iterator\"];\n if (!r2) {\n if (Array.isArray(t2) || (r2 = _unsupportedIterableToArray(t2)) || e2 && t2 && \"number\" == typeof t2.length) {\n r2 && (t2 = r2);\n var i2 = 0, s2 = function() {\n };\n return { s: s2, n: function() {\n return i2 >= t2.length ? { done: true } : { done: false, value: t2[i2++] };\n }, e: function(t3) {\n throw t3;\n }, f: s2 };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var a2, n2 = true, o2 = false;\n return { s: function() {\n r2 = r2.call(t2);\n }, n: function() {\n var t3 = r2.next();\n return n2 = t3.done, t3;\n }, e: function(t3) {\n o2 = true, a2 = t3;\n }, f: function() {\n try {\n n2 || null == r2.return || r2.return();\n } finally {\n if (o2) throw a2;\n }\n } };\n}\nfunction _createForOfIteratorHelperLoose(t2, e2) {\n var r2 = \"undefined\" != typeof Symbol && t2[Symbol.iterator] || t2[\"@@iterator\"];\n if (r2) return (r2 = r2.call(t2)).next.bind(r2);\n if (Array.isArray(t2) || (r2 = _unsupportedIterableToArray(t2)) || e2 && t2 && \"number\" == typeof t2.length) {\n r2 && (t2 = r2);\n var i2 = 0;\n return function() {\n return i2 >= t2.length ? { done: true } : { done: false, value: t2[i2++] };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _skipFirstGeneratorNext(t2) {\n return function() {\n var e2 = t2.apply(this, arguments);\n return e2.next(), e2;\n };\n}\nfunction _toPrimitive(t2, e2) {\n if (\"object\" != typeof t2 || null === t2) return t2;\n var r2 = t2[Symbol.toPrimitive];\n if (void 0 !== r2) {\n var i2 = r2.call(t2, e2 || \"default\");\n if (\"object\" != typeof i2) return i2;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === e2 ? String : Number)(t2);\n}\nfunction _toPropertyKey(t2) {\n var e2 = _toPrimitive(t2, \"string\");\n return \"symbol\" == typeof e2 ? e2 : String(e2);\n}\nfunction _initializerWarningHelper(t2, e2) {\n throw new Error(\"Decorating class property failed. Please ensure that proposal-class-properties is enabled and runs after the decorators transform.\");\n}\nfunction _initializerDefineProperty(t2, e2, r2, i2) {\n r2 && Object.defineProperty(t2, e2, { enumerable: r2.enumerable, configurable: r2.configurable, writable: r2.writable, value: r2.initializer ? r2.initializer.call(i2) : void 0 });\n}\nfunction _applyDecoratedDescriptor(t2, e2, r2, i2, s2) {\n var a2 = {};\n return Object.keys(i2).forEach(function(t3) {\n a2[t3] = i2[t3];\n }), a2.enumerable = !!a2.enumerable, a2.configurable = !!a2.configurable, (\"value\" in a2 || a2.initializer) && (a2.writable = true), a2 = r2.slice().reverse().reduce(function(r3, i3) {\n return i3(t2, e2, r3) || r3;\n }, a2), s2 && void 0 !== a2.initializer && (a2.value = a2.initializer ? a2.initializer.call(s2) : void 0, a2.initializer = void 0), void 0 === a2.initializer && (Object.defineProperty(t2, e2, a2), a2 = null), a2;\n}\n_AsyncGenerator.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function() {\n return this;\n}, _AsyncGenerator.prototype.next = function(t2) {\n return this._invoke(\"next\", t2);\n}, _AsyncGenerator.prototype.throw = function(t2) {\n return this._invoke(\"throw\", t2);\n}, _AsyncGenerator.prototype.return = function(t2) {\n return this._invoke(\"return\", t2);\n};\nvar id = 0;\nfunction _classPrivateFieldLooseKey(t2) {\n return \"__private_\" + id++ + \"_\" + t2;\n}\nfunction _classPrivateFieldLooseBase(t2, e2) {\n if (!Object.prototype.hasOwnProperty.call(t2, e2)) throw new TypeError(\"attempted to use private field on non-instance\");\n return t2;\n}\nfunction _classPrivateFieldGet(t2, e2) {\n return _classApplyDescriptorGet(t2, _classExtractFieldDescriptor(t2, e2, \"get\"));\n}\nfunction _classPrivateFieldSet(t2, e2, r2) {\n return _classApplyDescriptorSet(t2, _classExtractFieldDescriptor(t2, e2, \"set\"), r2), r2;\n}\nfunction _classPrivateFieldDestructureSet(t2, e2) {\n return _classApplyDescriptorDestructureSet(t2, _classExtractFieldDescriptor(t2, e2, \"set\"));\n}\nfunction _classExtractFieldDescriptor(t2, e2, r2) {\n if (!e2.has(t2)) throw new TypeError(\"attempted to \" + r2 + \" private field on non-instance\");\n return e2.get(t2);\n}\nfunction _classStaticPrivateFieldSpecGet(t2, e2, r2) {\n return _classCheckPrivateStaticAccess(t2, e2), _classCheckPrivateStaticFieldDescriptor(r2, \"get\"), _classApplyDescriptorGet(t2, r2);\n}\nfunction _classStaticPrivateFieldSpecSet(t2, e2, r2, i2) {\n return _classCheckPrivateStaticAccess(t2, e2), _classCheckPrivateStaticFieldDescriptor(r2, \"set\"), _classApplyDescriptorSet(t2, r2, i2), i2;\n}\nfunction _classStaticPrivateMethodGet(t2, e2, r2) {\n return _classCheckPrivateStaticAccess(t2, e2), r2;\n}\nfunction _classStaticPrivateMethodSet() {\n throw new TypeError(\"attempted to set read only static private field\");\n}\nfunction _classApplyDescriptorGet(t2, e2) {\n return e2.get ? e2.get.call(t2) : e2.value;\n}\nfunction _classApplyDescriptorSet(t2, e2, r2) {\n if (e2.set) e2.set.call(t2, r2);\n else {\n if (!e2.writable) throw new TypeError(\"attempted to set read only private field\");\n e2.value = r2;\n }\n}\nfunction _classApplyDescriptorDestructureSet(t2, e2) {\n if (e2.set) return \"__destrObj\" in e2 || (e2.__destrObj = { set value(r2) {\n e2.set.call(t2, r2);\n } }), e2.__destrObj;\n if (!e2.writable) throw new TypeError(\"attempted to set read only private field\");\n return e2;\n}\nfunction _classStaticPrivateFieldDestructureSet(t2, e2, r2) {\n return _classCheckPrivateStaticAccess(t2, e2), _classCheckPrivateStaticFieldDescriptor(r2, \"set\"), _classApplyDescriptorDestructureSet(t2, r2);\n}\nfunction _classCheckPrivateStaticAccess(t2, e2) {\n if (t2 !== e2) throw new TypeError(\"Private static access of wrong provenance\");\n}\nfunction _classCheckPrivateStaticFieldDescriptor(t2, e2) {\n if (void 0 === t2) throw new TypeError(\"attempted to \" + e2 + \" private static field before its declaration\");\n}\nfunction _decorate(t2, e2, r2, i2) {\n var s2 = _getDecoratorsApi();\n if (i2) for (var a2 = 0; a2 < i2.length; a2++) s2 = i2[a2](s2);\n var n2 = e2(function(t3) {\n s2.initializeInstanceElements(t3, o2.elements);\n }, r2), o2 = s2.decorateClass(_coalesceClassElements(n2.d.map(_createElementDescriptor)), t2);\n return s2.initializeClassElements(n2.F, o2.elements), s2.runClassFinishers(n2.F, o2.finishers);\n}\nfunction _getDecoratorsApi() {\n _getDecoratorsApi = function() {\n return t2;\n };\n var t2 = { elementsDefinitionOrder: [[\"method\"], [\"field\"]], initializeInstanceElements: function(t3, e2) {\n [\"method\", \"field\"].forEach(function(r2) {\n e2.forEach(function(e3) {\n e3.kind === r2 && \"own\" === e3.placement && this.defineClassElement(t3, e3);\n }, this);\n }, this);\n }, initializeClassElements: function(t3, e2) {\n var r2 = t3.prototype;\n [\"method\", \"field\"].forEach(function(i2) {\n e2.forEach(function(e3) {\n var s2 = e3.placement;\n if (e3.kind === i2 && (\"static\" === s2 || \"prototype\" === s2)) {\n var a2 = \"static\" === s2 ? t3 : r2;\n this.defineClassElement(a2, e3);\n }\n }, this);\n }, this);\n }, defineClassElement: function(t3, e2) {\n var r2 = e2.descriptor;\n if (\"field\" === e2.kind) {\n var i2 = e2.initializer;\n r2 = { enumerable: r2.enumerable, writable: r2.writable, configurable: r2.configurable, value: void 0 === i2 ? void 0 : i2.call(t3) };\n }\n Object.defineProperty(t3, e2.key, r2);\n }, decorateClass: function(t3, e2) {\n var r2 = [], i2 = [], s2 = { static: [], prototype: [], own: [] };\n if (t3.forEach(function(t4) {\n this.addElementPlacement(t4, s2);\n }, this), t3.forEach(function(t4) {\n if (!_hasDecorators(t4)) return r2.push(t4);\n var e3 = this.decorateElement(t4, s2);\n r2.push(e3.element), r2.push.apply(r2, e3.extras), i2.push.apply(i2, e3.finishers);\n }, this), !e2) return { elements: r2, finishers: i2 };\n var a2 = this.decorateConstructor(r2, e2);\n return i2.push.apply(i2, a2.finishers), a2.finishers = i2, a2;\n }, addElementPlacement: function(t3, e2, r2) {\n var i2 = e2[t3.placement];\n if (!r2 && -1 !== i2.indexOf(t3.key)) throw new TypeError(\"Duplicated element (\" + t3.key + \")\");\n i2.push(t3.key);\n }, decorateElement: function(t3, e2) {\n for (var r2 = [], i2 = [], s2 = t3.decorators, a2 = s2.length - 1; a2 >= 0; a2--) {\n var n2 = e2[t3.placement];\n n2.splice(n2.indexOf(t3.key), 1);\n var o2 = this.fromElementDescriptor(t3), h2 = this.toElementFinisherExtras((0, s2[a2])(o2) || o2);\n t3 = h2.element, this.addElementPlacement(t3, e2), h2.finisher && i2.push(h2.finisher);\n var l2 = h2.extras;\n if (l2) {\n for (var p2 = 0; p2 < l2.length; p2++) this.addElementPlacement(l2[p2], e2);\n r2.push.apply(r2, l2);\n }\n }\n return { element: t3, finishers: i2, extras: r2 };\n }, decorateConstructor: function(t3, e2) {\n for (var r2 = [], i2 = e2.length - 1; i2 >= 0; i2--) {\n var s2 = this.fromClassDescriptor(t3), a2 = this.toClassDescriptor((0, e2[i2])(s2) || s2);\n if (void 0 !== a2.finisher && r2.push(a2.finisher), void 0 !== a2.elements) {\n t3 = a2.elements;\n for (var n2 = 0; n2 < t3.length - 1; n2++) for (var o2 = n2 + 1; o2 < t3.length; o2++) if (t3[n2].key === t3[o2].key && t3[n2].placement === t3[o2].placement) throw new TypeError(\"Duplicated element (\" + t3[n2].key + \")\");\n }\n }\n return { elements: t3, finishers: r2 };\n }, fromElementDescriptor: function(t3) {\n var e2 = { kind: t3.kind, key: t3.key, placement: t3.placement, descriptor: t3.descriptor };\n return Object.defineProperty(e2, Symbol.toStringTag, { value: \"Descriptor\", configurable: true }), \"field\" === t3.kind && (e2.initializer = t3.initializer), e2;\n }, toElementDescriptors: function(t3) {\n if (void 0 !== t3) return _toArray(t3).map(function(t4) {\n var e2 = this.toElementDescriptor(t4);\n return this.disallowProperty(t4, \"finisher\", \"An element descriptor\"), this.disallowProperty(t4, \"extras\", \"An element descriptor\"), e2;\n }, this);\n }, toElementDescriptor: function(t3) {\n var e2 = String(t3.kind);\n if (\"method\" !== e2 && \"field\" !== e2) throw new TypeError(`An element descriptor's .kind property must be either \"method\" or \"field\", but a decorator created an element descriptor with .kind \"` + e2 + '\"');\n var r2 = _toPropertyKey(t3.key), i2 = String(t3.placement);\n if (\"static\" !== i2 && \"prototype\" !== i2 && \"own\" !== i2) throw new TypeError(`An element descriptor's .placement property must be one of \"static\", \"prototype\" or \"own\", but a decorator created an element descriptor with .placement \"` + i2 + '\"');\n var s2 = t3.descriptor;\n this.disallowProperty(t3, \"elements\", \"An element descriptor\");\n var a2 = { kind: e2, key: r2, placement: i2, descriptor: Object.assign({}, s2) };\n return \"field\" !== e2 ? this.disallowProperty(t3, \"initializer\", \"A method descriptor\") : (this.disallowProperty(s2, \"get\", \"The property descriptor of a field descriptor\"), this.disallowProperty(s2, \"set\", \"The property descriptor of a field descriptor\"), this.disallowProperty(s2, \"value\", \"The property descriptor of a field descriptor\"), a2.initializer = t3.initializer), a2;\n }, toElementFinisherExtras: function(t3) {\n return { element: this.toElementDescriptor(t3), finisher: _optionalCallableProperty(t3, \"finisher\"), extras: this.toElementDescriptors(t3.extras) };\n }, fromClassDescriptor: function(t3) {\n var e2 = { kind: \"class\", elements: t3.map(this.fromElementDescriptor, this) };\n return Object.defineProperty(e2, Symbol.toStringTag, { value: \"Descriptor\", configurable: true }), e2;\n }, toClassDescriptor: function(t3) {\n var e2 = String(t3.kind);\n if (\"class\" !== e2) throw new TypeError(`A class descriptor's .kind property must be \"class\", but a decorator created a class descriptor with .kind \"` + e2 + '\"');\n this.disallowProperty(t3, \"key\", \"A class descriptor\"), this.disallowProperty(t3, \"placement\", \"A class descriptor\"), this.disallowProperty(t3, \"descriptor\", \"A class descriptor\"), this.disallowProperty(t3, \"initializer\", \"A class descriptor\"), this.disallowProperty(t3, \"extras\", \"A class descriptor\");\n var r2 = _optionalCallableProperty(t3, \"finisher\");\n return { elements: this.toElementDescriptors(t3.elements), finisher: r2 };\n }, runClassFinishers: function(t3, e2) {\n for (var r2 = 0; r2 < e2.length; r2++) {\n var i2 = (0, e2[r2])(t3);\n if (void 0 !== i2) {\n if (\"function\" != typeof i2) throw new TypeError(\"Finishers must return a constructor.\");\n t3 = i2;\n }\n }\n return t3;\n }, disallowProperty: function(t3, e2, r2) {\n if (void 0 !== t3[e2]) throw new TypeError(r2 + \" can't have a .\" + e2 + \" property.\");\n } };\n return t2;\n}\nfunction _createElementDescriptor(t2) {\n var e2, r2 = _toPropertyKey(t2.key);\n \"method\" === t2.kind ? e2 = { value: t2.value, writable: true, configurable: true, enumerable: false } : \"get\" === t2.kind ? e2 = { get: t2.value, configurable: true, enumerable: false } : \"set\" === t2.kind ? e2 = { set: t2.value, configurable: true, enumerable: false } : \"field\" === t2.kind && (e2 = { configurable: true, writable: true, enumerable: true });\n var i2 = { kind: \"field\" === t2.kind ? \"field\" : \"method\", key: r2, placement: t2.static ? \"static\" : \"field\" === t2.kind ? \"own\" : \"prototype\", descriptor: e2 };\n return t2.decorators && (i2.decorators = t2.decorators), \"field\" === t2.kind && (i2.initializer = t2.value), i2;\n}\nfunction _coalesceGetterSetter(t2, e2) {\n void 0 !== t2.descriptor.get ? e2.descriptor.get = t2.descriptor.get : e2.descriptor.set = t2.descriptor.set;\n}\nfunction _coalesceClassElements(t2) {\n for (var e2 = [], r2 = function(t3) {\n return \"method\" === t3.kind && t3.key === a2.key && t3.placement === a2.placement;\n }, i2 = 0; i2 < t2.length; i2++) {\n var s2, a2 = t2[i2];\n if (\"method\" === a2.kind && (s2 = e2.find(r2))) if (_isDataDescriptor(a2.descriptor) || _isDataDescriptor(s2.descriptor)) {\n if (_hasDecorators(a2) || _hasDecorators(s2)) throw new ReferenceError(\"Duplicated methods (\" + a2.key + \") can't be decorated.\");\n s2.descriptor = a2.descriptor;\n } else {\n if (_hasDecorators(a2)) {\n if (_hasDecorators(s2)) throw new ReferenceError(\"Decorators can't be placed on different accessors with for the same property (\" + a2.key + \").\");\n s2.decorators = a2.decorators;\n }\n _coalesceGetterSetter(a2, s2);\n }\n else e2.push(a2);\n }\n return e2;\n}\nfunction _hasDecorators(t2) {\n return t2.decorators && t2.decorators.length;\n}\nfunction _isDataDescriptor(t2) {\n return void 0 !== t2 && !(void 0 === t2.value && void 0 === t2.writable);\n}\nfunction _optionalCallableProperty(t2, e2) {\n var r2 = t2[e2];\n if (void 0 !== r2 && \"function\" != typeof r2) throw new TypeError(\"Expected '\" + e2 + \"' to be a function\");\n return r2;\n}\nfunction _classPrivateMethodGet(t2, e2, r2) {\n if (!e2.has(t2)) throw new TypeError(\"attempted to get private field on non-instance\");\n return r2;\n}\nfunction _checkPrivateRedeclaration(t2, e2) {\n if (e2.has(t2)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nfunction _classPrivateFieldInitSpec(t2, e2, r2) {\n _checkPrivateRedeclaration(t2, e2), e2.set(t2, r2);\n}\nfunction _classPrivateMethodInitSpec(t2, e2) {\n _checkPrivateRedeclaration(t2, e2), e2.add(t2);\n}\nfunction _classPrivateMethodSet() {\n throw new TypeError(\"attempted to reassign private method\");\n}\nvar _extendStatics = function(t2, e2) {\n return _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t3, e3) {\n t3.__proto__ = e3;\n } || function(t3, e3) {\n for (var r2 in e3) Object.prototype.hasOwnProperty.call(e3, r2) && (t3[r2] = e3[r2]);\n }, _extendStatics(t2, e2);\n};\nfunction __extends(t2, e2) {\n if (\"function\" != typeof e2 && null !== e2) throw new TypeError(\"Class extends value \" + String(e2) + \" is not a constructor or null\");\n function r2() {\n this.constructor = t2;\n }\n _extendStatics(t2, e2), t2.prototype = null === e2 ? Object.create(e2) : (r2.prototype = e2.prototype, new r2());\n}\nvar _assign = function() {\n return _assign = Object.assign || function(t2) {\n for (var e2, r2 = 1, i2 = arguments.length; r2 < i2; r2++) for (var s2 in e2 = arguments[r2]) Object.prototype.hasOwnProperty.call(e2, s2) && (t2[s2] = e2[s2]);\n return t2;\n }, _assign.apply(this, arguments);\n};\nfunction __rest(t2, e2) {\n var r2 = {};\n for (var i2 in t2) Object.prototype.hasOwnProperty.call(t2, i2) && e2.indexOf(i2) < 0 && (r2[i2] = t2[i2]);\n if (null != t2 && \"function\" == typeof Object.getOwnPropertySymbols) {\n var s2 = 0;\n for (i2 = Object.getOwnPropertySymbols(t2); s2 < i2.length; s2++) e2.indexOf(i2[s2]) < 0 && Object.prototype.propertyIsEnumerable.call(t2, i2[s2]) && (r2[i2[s2]] = t2[i2[s2]]);\n }\n return r2;\n}\nfunction __decorate(t2, e2, r2, i2) {\n var s2, a2 = arguments.length, n2 = a2 < 3 ? e2 : null === i2 ? i2 = Object.getOwnPropertyDescriptor(e2, r2) : i2;\n if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) n2 = Reflect.decorate(t2, e2, r2, i2);\n else for (var o2 = t2.length - 1; o2 >= 0; o2--) (s2 = t2[o2]) && (n2 = (a2 < 3 ? s2(n2) : a2 > 3 ? s2(e2, r2, n2) : s2(e2, r2)) || n2);\n return a2 > 3 && n2 && Object.defineProperty(e2, r2, n2), n2;\n}\nfunction __param(t2, e2) {\n return function(r2, i2) {\n e2(r2, i2, t2);\n };\n}\nfunction __metadata(t2, e2) {\n if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.metadata) return Reflect.metadata(t2, e2);\n}\nfunction __awaiter(t2, e2, r2, i2) {\n return new (r2 || (r2 = Promise))(function(s2, a2) {\n function n2(t3) {\n try {\n h2(i2.next(t3));\n } catch (t4) {\n a2(t4);\n }\n }\n function o2(t3) {\n try {\n h2(i2.throw(t3));\n } catch (t4) {\n a2(t4);\n }\n }\n function h2(t3) {\n var e3;\n t3.done ? s2(t3.value) : (e3 = t3.value, e3 instanceof r2 ? e3 : new r2(function(t4) {\n t4(e3);\n })).then(n2, o2);\n }\n h2((i2 = i2.apply(t2, e2 || [])).next());\n });\n}\nfunction __generator(t2, e2) {\n var r2, i2, s2, a2, n2 = { label: 0, sent: function() {\n if (1 & s2[0]) throw s2[1];\n return s2[1];\n }, trys: [], ops: [] };\n return a2 = { next: o2(0), throw: o2(1), return: o2(2) }, \"function\" == typeof Symbol && (a2[Symbol.iterator] = function() {\n return this;\n }), a2;\n function o2(a3) {\n return function(o3) {\n return function(a4) {\n if (r2) throw new TypeError(\"Generator is already executing.\");\n for (; n2; ) try {\n if (r2 = 1, i2 && (s2 = 2 & a4[0] ? i2.return : a4[0] ? i2.throw || ((s2 = i2.return) && s2.call(i2), 0) : i2.next) && !(s2 = s2.call(i2, a4[1])).done) return s2;\n switch (i2 = 0, s2 && (a4 = [2 & a4[0], s2.value]), a4[0]) {\n case 0:\n case 1:\n s2 = a4;\n break;\n case 4:\n return n2.label++, { value: a4[1], done: false };\n case 5:\n n2.label++, i2 = a4[1], a4 = [0];\n continue;\n case 7:\n a4 = n2.ops.pop(), n2.trys.pop();\n continue;\n default:\n if (!(s2 = n2.trys, (s2 = s2.length > 0 && s2[s2.length - 1]) || 6 !== a4[0] && 2 !== a4[0])) {\n n2 = 0;\n continue;\n }\n if (3 === a4[0] && (!s2 || a4[1] > s2[0] && a4[1] < s2[3])) {\n n2.label = a4[1];\n break;\n }\n if (6 === a4[0] && n2.label < s2[1]) {\n n2.label = s2[1], s2 = a4;\n break;\n }\n if (s2 && n2.label < s2[2]) {\n n2.label = s2[2], n2.ops.push(a4);\n break;\n }\n s2[2] && n2.ops.pop(), n2.trys.pop();\n continue;\n }\n a4 = e2.call(t2, n2);\n } catch (t3) {\n a4 = [6, t3], i2 = 0;\n } finally {\n r2 = s2 = 0;\n }\n if (5 & a4[0]) throw a4[1];\n return { value: a4[0] ? a4[1] : void 0, done: true };\n }([a3, o3]);\n };\n }\n}\nvar __createBinding = Object.create ? function(t2, e2, r2, i2) {\n void 0 === i2 && (i2 = r2), Object.defineProperty(t2, i2, { enumerable: true, get: function() {\n return e2[r2];\n } });\n} : function(t2, e2, r2, i2) {\n void 0 === i2 && (i2 = r2), t2[i2] = e2[r2];\n};\nfunction __exportStar(t2, e2) {\n for (var r2 in t2) \"default\" === r2 || Object.prototype.hasOwnProperty.call(e2, r2) || __createBinding(e2, t2, r2);\n}\nfunction __values(t2) {\n var e2 = \"function\" == typeof Symbol && Symbol.iterator, r2 = e2 && t2[e2], i2 = 0;\n if (r2) return r2.call(t2);\n if (t2 && \"number\" == typeof t2.length) return { next: function() {\n return t2 && i2 >= t2.length && (t2 = void 0), { value: t2 && t2[i2++], done: !t2 };\n } };\n throw new TypeError(e2 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction __read(t2, e2) {\n var r2 = \"function\" == typeof Symbol && t2[Symbol.iterator];\n if (!r2) return t2;\n var i2, s2, a2 = r2.call(t2), n2 = [];\n try {\n for (; (void 0 === e2 || e2-- > 0) && !(i2 = a2.next()).done; ) n2.push(i2.value);\n } catch (t3) {\n s2 = { error: t3 };\n } finally {\n try {\n i2 && !i2.done && (r2 = a2.return) && r2.call(a2);\n } finally {\n if (s2) throw s2.error;\n }\n }\n return n2;\n}\nfunction __spread() {\n for (var t2 = [], e2 = 0; e2 < arguments.length; e2++) t2 = t2.concat(__read(arguments[e2]));\n return t2;\n}\nfunction __spreadArrays() {\n for (var t2 = 0, e2 = 0, r2 = arguments.length; e2 < r2; e2++) t2 += arguments[e2].length;\n var i2 = Array(t2), s2 = 0;\n for (e2 = 0; e2 < r2; e2++) for (var a2 = arguments[e2], n2 = 0, o2 = a2.length; n2 < o2; n2++, s2++) i2[s2] = a2[n2];\n return i2;\n}\nfunction __spreadArray(t2, e2, r2) {\n if (r2 || 2 === arguments.length) for (var i2, s2 = 0, a2 = e2.length; s2 < a2; s2++) !i2 && s2 in e2 || (i2 || (i2 = Array.prototype.slice.call(e2, 0, s2)), i2[s2] = e2[s2]);\n return t2.concat(i2 || Array.prototype.slice.call(e2));\n}\nfunction __await(t2) {\n return this instanceof __await ? (this.v = t2, this) : new __await(t2);\n}\nfunction __asyncGenerator(t2, e2, r2) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var i2, s2 = r2.apply(t2, e2 || []), a2 = [];\n return i2 = {}, n2(\"next\"), n2(\"throw\"), n2(\"return\"), i2[Symbol.asyncIterator] = function() {\n return this;\n }, i2;\n function n2(t3) {\n s2[t3] && (i2[t3] = function(e3) {\n return new Promise(function(r3, i3) {\n a2.push([t3, e3, r3, i3]) > 1 || o2(t3, e3);\n });\n });\n }\n function o2(t3, e3) {\n try {\n !function(t4) {\n t4.value instanceof __await ? Promise.resolve(t4.value.v).then(h2, l2) : p2(a2[0][2], t4);\n }(s2[t3](e3));\n } catch (t4) {\n p2(a2[0][3], t4);\n }\n }\n function h2(t3) {\n o2(\"next\", t3);\n }\n function l2(t3) {\n o2(\"throw\", t3);\n }\n function p2(t3, e3) {\n t3(e3), a2.shift(), a2.length && o2(a2[0][0], a2[0][1]);\n }\n}\nfunction __asyncDelegator(t2) {\n var e2, r2;\n return e2 = {}, i2(\"next\"), i2(\"throw\", function(t3) {\n throw t3;\n }), i2(\"return\"), e2[Symbol.iterator] = function() {\n return this;\n }, e2;\n function i2(i3, s2) {\n e2[i3] = t2[i3] ? function(e3) {\n return (r2 = !r2) ? { value: __await(t2[i3](e3)), done: \"return\" === i3 } : s2 ? s2(e3) : e3;\n } : s2;\n }\n}\nfunction __asyncValues(t2) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var e2, r2 = t2[Symbol.asyncIterator];\n return r2 ? r2.call(t2) : (t2 = \"function\" == typeof __values ? __values(t2) : t2[Symbol.iterator](), e2 = {}, i2(\"next\"), i2(\"throw\"), i2(\"return\"), e2[Symbol.asyncIterator] = function() {\n return this;\n }, e2);\n function i2(r3) {\n e2[r3] = t2[r3] && function(e3) {\n return new Promise(function(i3, s2) {\n (function(t3, e4, r4, i4) {\n Promise.resolve(i4).then(function(e5) {\n t3({ value: e5, done: r4 });\n }, e4);\n })(i3, s2, (e3 = t2[r3](e3)).done, e3.value);\n });\n };\n }\n}\nfunction __makeTemplateObject(t2, e2) {\n return Object.defineProperty ? Object.defineProperty(t2, \"raw\", { value: e2 }) : t2.raw = e2, t2;\n}\nvar __setModuleDefault = Object.create ? function(t2, e2) {\n Object.defineProperty(t2, \"default\", { enumerable: true, value: e2 });\n} : function(t2, e2) {\n t2.default = e2;\n};\nfunction __importStar(t2) {\n if (t2 && t2.__esModule) return t2;\n var e2 = {};\n if (null != t2) for (var r2 in t2) \"default\" !== r2 && Object.prototype.hasOwnProperty.call(t2, r2) && __createBinding(e2, t2, r2);\n return __setModuleDefault(e2, t2), e2;\n}\nfunction __importDefault(t2) {\n return t2 && t2.__esModule ? t2 : { default: t2 };\n}\nfunction __classPrivateFieldGet(t2, e2, r2, i2) {\n if (\"a\" === r2 && !i2) throw new TypeError(\"Private accessor was defined without a getter\");\n if (\"function\" == typeof e2 ? t2 !== e2 || !i2 : !e2.has(t2)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return \"m\" === r2 ? i2 : \"a\" === r2 ? i2.call(t2) : i2 ? i2.value : e2.get(t2);\n}\nfunction __classPrivateFieldSet(t2, e2, r2, i2, s2) {\n if (\"m\" === i2) throw new TypeError(\"Private method is not writable\");\n if (\"a\" === i2 && !s2) throw new TypeError(\"Private accessor was defined without a setter\");\n if (\"function\" == typeof e2 ? t2 !== e2 || !s2 : !e2.has(t2)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return \"a\" === i2 ? s2.call(t2, r2) : s2 ? s2.value = r2 : e2.set(t2, r2), r2;\n}\nvar t$3 = window.ShadowRoot && (void 0 === window.ShadyCSS || window.ShadyCSS.nativeShadow) && \"adoptedStyleSheets\" in Document.prototype && \"replace\" in CSSStyleSheet.prototype;\nvar e$8 = Symbol();\nvar n$5 = /* @__PURE__ */ new Map();\nvar s$3 = class {\n constructor(t2, e2) {\n if (this._$cssResult$ = true, e2 !== e$8) throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");\n this.cssText = t2;\n }\n get styleSheet() {\n var t2 = n$5.get(this.cssText);\n return t$3 && void 0 === t2 && (n$5.set(this.cssText, t2 = new CSSStyleSheet()), t2.replaceSync(this.cssText)), t2;\n }\n toString() {\n return this.cssText;\n }\n};\nvar o$5 = (t2) => new s$3(\"string\" == typeof t2 ? t2 : t2 + \"\", e$8);\nvar r$3 = function(t2) {\n for (var e2 = arguments.length, r2 = new Array(e2 > 1 ? e2 - 1 : 0), i2 = 1; i2 < e2; i2++) r2[i2 - 1] = arguments[i2];\n var s2 = 1 === t2.length ? t2[0] : r2.reduce((e3, r3, i3) => e3 + ((t3) => {\n if (true === t3._$cssResult$) return t3.cssText;\n if (\"number\" == typeof t3) return t3;\n throw Error(\"Value passed to 'css' function must be a 'css' function result: \" + t3 + \". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\");\n })(r3) + t2[i3 + 1], t2[0]);\n return new s$3(s2, e$8);\n};\nvar i$3 = (t2, e2) => {\n t$3 ? t2.adoptedStyleSheets = e2.map((t3) => t3 instanceof CSSStyleSheet ? t3 : t3.styleSheet) : e2.forEach((e3) => {\n var r2 = document.createElement(\"style\"), i2 = window.litNonce;\n void 0 !== i2 && r2.setAttribute(\"nonce\", i2), r2.textContent = e3.cssText, t2.appendChild(r2);\n });\n};\nvar S$1 = t$3 ? (t2) => t2 : (t2) => t2 instanceof CSSStyleSheet ? ((t3) => {\n var e2 = \"\";\n for (var r2 of t3.cssRules) e2 += r2.cssText;\n return o$5(e2);\n})(t2) : t2;\nvar s$2;\nvar e$7 = window.trustedTypes;\nvar r$2 = e$7 ? e$7.emptyScript : \"\";\nvar h$2 = window.reactiveElementPolyfillSupport;\nvar o$4 = { toAttribute(t2, e2) {\n switch (e2) {\n case Boolean:\n t2 = t2 ? r$2 : null;\n break;\n case Object:\n case Array:\n t2 = null == t2 ? t2 : JSON.stringify(t2);\n }\n return t2;\n}, fromAttribute(t2, e2) {\n var r2 = t2;\n switch (e2) {\n case Boolean:\n r2 = null !== t2;\n break;\n case Number:\n r2 = null === t2 ? null : Number(t2);\n break;\n case Object:\n case Array:\n try {\n r2 = JSON.parse(t2);\n } catch (t3) {\n r2 = null;\n }\n }\n return r2;\n} };\nvar n$4 = (t2, e2) => e2 !== t2 && (e2 == e2 || t2 == t2);\nvar l$3 = { attribute: true, type: String, converter: o$4, reflect: false, hasChanged: n$4 };\nvar t$2;\nvar a$1 = class extends HTMLElement {\n constructor() {\n super(), this._$Et = /* @__PURE__ */ new Map(), this.isUpdatePending = false, this.hasUpdated = false, this._$Ei = null, this.o();\n }\n static addInitializer(t2) {\n var e2;\n null !== (e2 = this.l) && void 0 !== e2 || (this.l = []), this.l.push(t2);\n }\n static get observedAttributes() {\n this.finalize();\n var t2 = [];\n return this.elementProperties.forEach((e2, r2) => {\n var i2 = this._$Eh(r2, e2);\n void 0 !== i2 && (this._$Eu.set(i2, r2), t2.push(i2));\n }), t2;\n }\n static createProperty(t2) {\n var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : l$3;\n if (e2.state && (e2.attribute = false), this.finalize(), this.elementProperties.set(t2, e2), !e2.noAccessor && !this.prototype.hasOwnProperty(t2)) {\n var r2 = \"symbol\" == typeof t2 ? Symbol() : \"__\" + t2, i2 = this.getPropertyDescriptor(t2, r2, e2);\n void 0 !== i2 && Object.defineProperty(this.prototype, t2, i2);\n }\n }\n static getPropertyDescriptor(t2, e2, r2) {\n return { get() {\n return this[e2];\n }, set(i2) {\n var s2 = this[t2];\n this[e2] = i2, this.requestUpdate(t2, s2, r2);\n }, configurable: true, enumerable: true };\n }\n static getPropertyOptions(t2) {\n return this.elementProperties.get(t2) || l$3;\n }\n static finalize() {\n if (this.hasOwnProperty(\"finalized\")) return false;\n this.finalized = true;\n var t2 = Object.getPrototypeOf(this);\n if (t2.finalize(), this.elementProperties = new Map(t2.elementProperties), this._$Eu = /* @__PURE__ */ new Map(), this.hasOwnProperty(\"properties\")) {\n var e2 = this.properties, r2 = [...Object.getOwnPropertyNames(e2), ...Object.getOwnPropertySymbols(e2)];\n for (var i2 of r2) this.createProperty(i2, e2[i2]);\n }\n return this.elementStyles = this.finalizeStyles(this.styles), true;\n }\n static finalizeStyles(t2) {\n var e2 = [];\n if (Array.isArray(t2)) {\n var r2 = new Set(t2.flat(1 / 0).reverse());\n for (var i2 of r2) e2.unshift(S$1(i2));\n } else void 0 !== t2 && e2.push(S$1(t2));\n return e2;\n }\n static _$Eh(t2, e2) {\n var r2 = e2.attribute;\n return false === r2 ? void 0 : \"string\" == typeof r2 ? r2 : \"string\" == typeof t2 ? t2.toLowerCase() : void 0;\n }\n o() {\n var t2;\n this._$Ep = new Promise((t3) => this.enableUpdating = t3), this._$AL = /* @__PURE__ */ new Map(), this._$Em(), this.requestUpdate(), null === (t2 = this.constructor.l) || void 0 === t2 || t2.forEach((t3) => t3(this));\n }\n addController(t2) {\n var e2, r2;\n (null !== (e2 = this._$Eg) && void 0 !== e2 ? e2 : this._$Eg = []).push(t2), void 0 !== this.renderRoot && this.isConnected && (null === (r2 = t2.hostConnected) || void 0 === r2 || r2.call(t2));\n }\n removeController(t2) {\n var e2;\n null === (e2 = this._$Eg) || void 0 === e2 || e2.splice(this._$Eg.indexOf(t2) >>> 0, 1);\n }\n _$Em() {\n this.constructor.elementProperties.forEach((t2, e2) => {\n this.hasOwnProperty(e2) && (this._$Et.set(e2, this[e2]), delete this[e2]);\n });\n }\n createRenderRoot() {\n var t2, e2 = null !== (t2 = this.shadowRoot) && void 0 !== t2 ? t2 : this.attachShadow(this.constructor.shadowRootOptions);\n return i$3(e2, this.constructor.elementStyles), e2;\n }\n connectedCallback() {\n var t2;\n void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(true), null === (t2 = this._$Eg) || void 0 === t2 || t2.forEach((t3) => {\n var e2;\n return null === (e2 = t3.hostConnected) || void 0 === e2 ? void 0 : e2.call(t3);\n });\n }\n enableUpdating(t2) {\n }\n disconnectedCallback() {\n var t2;\n null === (t2 = this._$Eg) || void 0 === t2 || t2.forEach((t3) => {\n var e2;\n return null === (e2 = t3.hostDisconnected) || void 0 === e2 ? void 0 : e2.call(t3);\n });\n }\n attributeChangedCallback(t2, e2, r2) {\n this._$AK(t2, r2);\n }\n _$ES(t2, e2) {\n var r2, i2, s2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : l$3, a2 = this.constructor._$Eh(t2, s2);\n if (void 0 !== a2 && true === s2.reflect) {\n var n2 = (null !== (i2 = null === (r2 = s2.converter) || void 0 === r2 ? void 0 : r2.toAttribute) && void 0 !== i2 ? i2 : o$4.toAttribute)(e2, s2.type);\n this._$Ei = t2, null == n2 ? this.removeAttribute(a2) : this.setAttribute(a2, n2), this._$Ei = null;\n }\n }\n _$AK(t2, e2) {\n var r2, i2, s2, a2 = this.constructor, n2 = a2._$Eu.get(t2);\n if (void 0 !== n2 && this._$Ei !== n2) {\n var o2 = a2.getPropertyOptions(n2), h2 = o2.converter, l2 = null !== (s2 = null !== (i2 = null === (r2 = h2) || void 0 === r2 ? void 0 : r2.fromAttribute) && void 0 !== i2 ? i2 : \"function\" == typeof h2 ? h2 : null) && void 0 !== s2 ? s2 : o$4.fromAttribute;\n this._$Ei = n2, this[n2] = l2(e2, o2.type), this._$Ei = null;\n }\n }\n requestUpdate(t2, e2, r2) {\n var i2 = true;\n void 0 !== t2 && (((r2 = r2 || this.constructor.getPropertyOptions(t2)).hasChanged || n$4)(this[t2], e2) ? (this._$AL.has(t2) || this._$AL.set(t2, e2), true === r2.reflect && this._$Ei !== t2 && (void 0 === this._$E_ && (this._$E_ = /* @__PURE__ */ new Map()), this._$E_.set(t2, r2))) : i2 = false), !this.isUpdatePending && i2 && (this._$Ep = this._$EC());\n }\n _$EC() {\n var t2 = this;\n return _asyncToGenerator(function* () {\n t2.isUpdatePending = true;\n try {\n yield t2._$Ep;\n } catch (e3) {\n Promise.reject(e3);\n }\n var e2 = t2.scheduleUpdate();\n return null != e2 && (yield e2), !t2.isUpdatePending;\n })();\n }\n scheduleUpdate() {\n return this.performUpdate();\n }\n performUpdate() {\n var t2;\n if (this.isUpdatePending) {\n this.hasUpdated, this._$Et && (this._$Et.forEach((t3, e3) => this[e3] = t3), this._$Et = void 0);\n var e2 = false, r2 = this._$AL;\n try {\n (e2 = this.shouldUpdate(r2)) ? (this.willUpdate(r2), null === (t2 = this._$Eg) || void 0 === t2 || t2.forEach((t3) => {\n var e3;\n return null === (e3 = t3.hostUpdate) || void 0 === e3 ? void 0 : e3.call(t3);\n }), this.update(r2)) : this._$EU();\n } catch (t3) {\n throw e2 = false, this._$EU(), t3;\n }\n e2 && this._$AE(r2);\n }\n }\n willUpdate(t2) {\n }\n _$AE(t2) {\n var e2;\n null === (e2 = this._$Eg) || void 0 === e2 || e2.forEach((t3) => {\n var e3;\n return null === (e3 = t3.hostUpdated) || void 0 === e3 ? void 0 : e3.call(t3);\n }), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t2)), this.updated(t2);\n }\n _$EU() {\n this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;\n }\n get updateComplete() {\n return this.getUpdateComplete();\n }\n getUpdateComplete() {\n return this._$Ep;\n }\n shouldUpdate(t2) {\n return true;\n }\n update(t2) {\n void 0 !== this._$E_ && (this._$E_.forEach((t3, e2) => this._$ES(e2, this[e2], t3)), this._$E_ = void 0), this._$EU();\n }\n updated(t2) {\n }\n firstUpdated(t2) {\n }\n};\na$1.finalized = true, a$1.elementProperties = /* @__PURE__ */ new Map(), a$1.elementStyles = [], a$1.shadowRootOptions = { mode: \"open\" }, null == h$2 || h$2({ ReactiveElement: a$1 }), (null !== (s$2 = globalThis.reactiveElementVersions) && void 0 !== s$2 ? s$2 : globalThis.reactiveElementVersions = []).push(\"1.2.1\");\nvar i$2 = globalThis.trustedTypes;\nvar s$1 = i$2 ? i$2.createPolicy(\"lit-html\", { createHTML: (t2) => t2 }) : void 0;\nvar e$6 = \"lit$\".concat((Math.random() + \"\").slice(9), \"$\");\nvar o$3 = \"?\" + e$6;\nvar n$3 = \"<\".concat(o$3, \">\");\nvar l$2 = document;\nvar h$1 = function() {\n var t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n return l$2.createComment(t2);\n};\nvar r$1 = (t2) => null === t2 || \"object\" != typeof t2 && \"function\" != typeof t2;\nvar d = Array.isArray;\nvar u = (t2) => {\n var e2;\n return d(t2) || \"function\" == typeof (null === (e2 = t2) || void 0 === e2 ? void 0 : e2[Symbol.iterator]);\n};\nvar c = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g;\nvar v = /-->/g;\nvar a = />/g;\nvar f = />|[ \t\\n\f\\r](?:([^\\s\"'>=/]+)([ \t\\n\f\\r]*=[ \t\\n\f\\r]*(?:[^ \t\\n\f\\r\"'`<>=]|(\"|')|))|$)/g;\nvar _ = /'/g;\nvar m = /\"/g;\nvar g = /^(?:script|style|textarea)$/i;\nvar p = (t2) => function(e2) {\n for (var r2 = arguments.length, i2 = new Array(r2 > 1 ? r2 - 1 : 0), s2 = 1; s2 < r2; s2++) i2[s2 - 1] = arguments[s2];\n return { _$litType$: t2, strings: e2, values: i2 };\n};\nvar $ = p(1);\nvar y = p(2);\nvar b = Symbol.for(\"lit-noChange\");\nvar w = Symbol.for(\"lit-nothing\");\nvar T = /* @__PURE__ */ new WeakMap();\nvar x = (t2, e2, r2) => {\n var i2, s2, a2 = null !== (i2 = null == r2 ? void 0 : r2.renderBefore) && void 0 !== i2 ? i2 : e2, n2 = a2._$litPart$;\n if (void 0 === n2) {\n var o2 = null !== (s2 = null == r2 ? void 0 : r2.renderBefore) && void 0 !== s2 ? s2 : null;\n a2._$litPart$ = n2 = new N(e2.insertBefore(h$1(), o2), o2, void 0, null != r2 ? r2 : {});\n }\n return n2._$AI(t2), n2;\n};\nvar A = l$2.createTreeWalker(l$2, 129, null, false);\nvar C = (t2, e2) => {\n for (var r2, i2 = t2.length - 1, s2 = [], n2 = 2 === e2 ? \"
\" : \"\", o2 = c, h2 = 0; h2 < i2; h2++) {\n for (var l2 = t2[h2], p2 = void 0, u2 = void 0, d2 = -1, y2 = 0; y2 < l2.length && (o2.lastIndex = y2, null !== (u2 = o2.exec(l2))); ) y2 = o2.lastIndex, o2 === c ? \"!--\" === u2[1] ? o2 = v : void 0 !== u2[1] ? o2 = a : void 0 !== u2[2] ? (g.test(u2[2]) && (r2 = RegExp(\"\" + u2[2], \"g\")), o2 = f) : void 0 !== u2[3] && (o2 = f) : o2 === f ? \">\" === u2[0] ? (o2 = null != r2 ? r2 : c, d2 = -1) : void 0 === u2[1] ? d2 = -2 : (d2 = o2.lastIndex - u2[2].length, p2 = u2[1], o2 = void 0 === u2[3] ? f : '\"' === u2[3] ? m : _) : o2 === m || o2 === _ ? o2 = f : o2 === v || o2 === a ? o2 = c : (o2 = f, r2 = void 0);\n var b2 = o2 === f && t2[h2 + 1].startsWith(\"/>\") ? \" \" : \"\";\n n2 += o2 === c ? l2 + n$3 : d2 >= 0 ? (s2.push(p2), l2.slice(0, d2) + \"$lit$\" + l2.slice(d2) + e$6 + b2) : l2 + e$6 + (-2 === d2 ? (s2.push(void 0), h2) : b2);\n }\n var P2 = n2 + (t2[i2] || \">\") + (2 === e2 ? \" \" : \"\");\n if (!Array.isArray(t2) || !t2.hasOwnProperty(\"raw\")) throw Error(\"invalid template strings array\");\n return [void 0 !== s$1 ? s$1.createHTML(P2) : P2, s2];\n};\nvar E = class _E {\n constructor(t2, e2) {\n var r2, { strings: i2, _$litType$: s2 } = t2;\n this.parts = [];\n var a2 = 0, n2 = 0, o2 = i2.length - 1, h2 = this.parts, [l2, p2] = C(i2, s2);\n if (this.el = _E.createElement(l2, e2), A.currentNode = this.el.content, 2 === s2) {\n var c2 = this.el.content, f2 = c2.firstChild;\n f2.remove(), c2.append(...f2.childNodes);\n }\n for (; null !== (r2 = A.nextNode()) && h2.length < o2; ) {\n if (1 === r2.nodeType) {\n if (r2.hasAttributes()) {\n var u2 = [];\n for (var d2 of r2.getAttributeNames()) if (d2.endsWith(\"$lit$\") || d2.startsWith(e$6)) {\n var m2 = p2[n2++];\n if (u2.push(d2), void 0 !== m2) {\n var y2 = r2.getAttribute(m2.toLowerCase() + \"$lit$\").split(e$6), v2 = /([.?@])?(.*)/.exec(m2);\n h2.push({ type: 1, index: a2, name: v2[2], strings: y2, ctor: \".\" === v2[1] ? M : \"?\" === v2[1] ? H : \"@\" === v2[1] ? I : S });\n } else h2.push({ type: 6, index: a2 });\n }\n for (var b2 of u2) r2.removeAttribute(b2);\n }\n if (g.test(r2.tagName)) {\n var _2 = r2.textContent.split(e$6), P2 = _2.length - 1;\n if (P2 > 0) {\n r2.textContent = i$2 ? i$2.emptyScript : \"\";\n for (var x2 = 0; x2 < P2; x2++) r2.append(_2[x2], h$1()), A.nextNode(), h2.push({ type: 2, index: ++a2 });\n r2.append(_2[P2], h$1());\n }\n }\n } else if (8 === r2.nodeType) if (r2.data === o$3) h2.push({ type: 2, index: a2 });\n else for (var w2 = -1; -1 !== (w2 = r2.data.indexOf(e$6, w2 + 1)); ) h2.push({ type: 7, index: a2 }), w2 += e$6.length - 1;\n a2++;\n }\n }\n static createElement(t2, e2) {\n var r2 = l$2.createElement(\"template\");\n return r2.innerHTML = t2, r2;\n }\n};\nfunction P(t2, e2) {\n var r2, i2, s2, a2, n2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t2, o2 = arguments.length > 3 ? arguments[3] : void 0;\n if (e2 === b) return e2;\n var h2 = void 0 !== o2 ? null === (r2 = n2._$Cl) || void 0 === r2 ? void 0 : r2[o2] : n2._$Cu, l2 = r$1(e2) ? void 0 : e2._$litDirective$;\n return (null == h2 ? void 0 : h2.constructor) !== l2 && (null === (i2 = null == h2 ? void 0 : h2._$AO) || void 0 === i2 || i2.call(h2, false), void 0 === l2 ? h2 = void 0 : (h2 = new l2(t2))._$AT(t2, n2, o2), void 0 !== o2 ? (null !== (s2 = (a2 = n2)._$Cl) && void 0 !== s2 ? s2 : a2._$Cl = [])[o2] = h2 : n2._$Cu = h2), void 0 !== h2 && (e2 = P(t2, h2._$AS(t2, e2.values), h2, o2)), e2;\n}\nvar V = class {\n constructor(t2, e2) {\n this.v = [], this._$AN = void 0, this._$AD = t2, this._$AM = e2;\n }\n get parentNode() {\n return this._$AM.parentNode;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n p(t2) {\n var e2, { el: { content: r2 }, parts: i2 } = this._$AD, s2 = (null !== (e2 = null == t2 ? void 0 : t2.creationScope) && void 0 !== e2 ? e2 : l$2).importNode(r2, true);\n A.currentNode = s2;\n for (var a2 = A.nextNode(), n2 = 0, o2 = 0, h2 = i2[0]; void 0 !== h2; ) {\n if (n2 === h2.index) {\n var l2 = void 0;\n 2 === h2.type ? l2 = new N(a2, a2.nextSibling, this, t2) : 1 === h2.type ? l2 = new h2.ctor(a2, h2.name, h2.strings, this, t2) : 6 === h2.type && (l2 = new L(a2, this, t2)), this.v.push(l2), h2 = i2[++o2];\n }\n n2 !== (null == h2 ? void 0 : h2.index) && (a2 = A.nextNode(), n2++);\n }\n return s2;\n }\n m(t2) {\n var e2 = 0;\n for (var r2 of this.v) void 0 !== r2 && (void 0 !== r2.strings ? (r2._$AI(t2, r2, e2), e2 += r2.strings.length - 2) : r2._$AI(t2[e2])), e2++;\n }\n};\nvar N = class _N {\n constructor(t2, e2, r2, i2) {\n var s2;\n this.type = 2, this._$AH = w, this._$AN = void 0, this._$AA = t2, this._$AB = e2, this._$AM = r2, this.options = i2, this._$Cg = null === (s2 = null == i2 ? void 0 : i2.isConnected) || void 0 === s2 || s2;\n }\n get _$AU() {\n var t2, e2;\n return null !== (e2 = null === (t2 = this._$AM) || void 0 === t2 ? void 0 : t2._$AU) && void 0 !== e2 ? e2 : this._$Cg;\n }\n get parentNode() {\n var t2 = this._$AA.parentNode, e2 = this._$AM;\n return void 0 !== e2 && 11 === t2.nodeType && (t2 = e2.parentNode), t2;\n }\n get startNode() {\n return this._$AA;\n }\n get endNode() {\n return this._$AB;\n }\n _$AI(t2) {\n t2 = P(this, t2, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this), r$1(t2) ? t2 === w || null == t2 || \"\" === t2 ? (this._$AH !== w && this._$AR(), this._$AH = w) : t2 !== this._$AH && t2 !== b && this.$(t2) : void 0 !== t2._$litType$ ? this.T(t2) : void 0 !== t2.nodeType ? this.S(t2) : u(t2) ? this.A(t2) : this.$(t2);\n }\n M(t2) {\n var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this._$AB;\n return this._$AA.parentNode.insertBefore(t2, e2);\n }\n S(t2) {\n this._$AH !== t2 && (this._$AR(), this._$AH = this.M(t2));\n }\n $(t2) {\n this._$AH !== w && r$1(this._$AH) ? this._$AA.nextSibling.data = t2 : this.S(l$2.createTextNode(t2)), this._$AH = t2;\n }\n T(t2) {\n var e2, { values: r2, _$litType$: i2 } = t2, s2 = \"number\" == typeof i2 ? this._$AC(t2) : (void 0 === i2.el && (i2.el = E.createElement(i2.h, this.options)), i2);\n if ((null === (e2 = this._$AH) || void 0 === e2 ? void 0 : e2._$AD) === s2) this._$AH.m(r2);\n else {\n var a2 = new V(s2, this), n2 = a2.p(this.options);\n a2.m(r2), this.S(n2), this._$AH = a2;\n }\n }\n _$AC(t2) {\n var e2 = T.get(t2.strings);\n return void 0 === e2 && T.set(t2.strings, e2 = new E(t2)), e2;\n }\n A(t2) {\n d(this._$AH) || (this._$AH = [], this._$AR());\n var e2, r2 = this._$AH, i2 = 0;\n for (var s2 of t2) i2 === r2.length ? r2.push(e2 = new _N(this.M(h$1()), this.M(h$1()), this, this.options)) : e2 = r2[i2], e2._$AI(s2), i2++;\n i2 < r2.length && (this._$AR(e2 && e2._$AB.nextSibling, i2), r2.length = i2);\n }\n _$AR() {\n var t2, e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._$AA.nextSibling, r2 = arguments.length > 1 ? arguments[1] : void 0;\n for (null === (t2 = this._$AP) || void 0 === t2 || t2.call(this, false, true, r2); e2 && e2 !== this._$AB; ) {\n var i2 = e2.nextSibling;\n e2.remove(), e2 = i2;\n }\n }\n setConnected(t2) {\n var e2;\n void 0 === this._$AM && (this._$Cg = t2, null === (e2 = this._$AP) || void 0 === e2 || e2.call(this, t2));\n }\n};\nvar S = class {\n constructor(t2, e2, r2, i2, s2) {\n this.type = 1, this._$AH = w, this._$AN = void 0, this.element = t2, this.name = e2, this._$AM = i2, this.options = s2, r2.length > 2 || \"\" !== r2[0] || \"\" !== r2[1] ? (this._$AH = Array(r2.length - 1).fill(new String()), this.strings = r2) : this._$AH = w;\n }\n get tagName() {\n return this.element.tagName;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n _$AI(t2) {\n var e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this, r2 = arguments.length > 2 ? arguments[2] : void 0, i2 = arguments.length > 3 ? arguments[3] : void 0, s2 = this.strings, a2 = false;\n if (void 0 === s2) t2 = P(this, t2, e2, 0), (a2 = !r$1(t2) || t2 !== this._$AH && t2 !== b) && (this._$AH = t2);\n else {\n var n2, o2, h2 = t2;\n for (t2 = s2[0], n2 = 0; n2 < s2.length - 1; n2++) (o2 = P(this, h2[r2 + n2], e2, n2)) === b && (o2 = this._$AH[n2]), a2 || (a2 = !r$1(o2) || o2 !== this._$AH[n2]), o2 === w ? t2 = w : t2 !== w && (t2 += (null != o2 ? o2 : \"\") + s2[n2 + 1]), this._$AH[n2] = o2;\n }\n a2 && !i2 && this.k(t2);\n }\n k(t2) {\n t2 === w ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, null != t2 ? t2 : \"\");\n }\n};\nvar M = class extends S {\n constructor() {\n super(...arguments), this.type = 3;\n }\n k(t2) {\n this.element[this.name] = t2 === w ? void 0 : t2;\n }\n};\nvar k = i$2 ? i$2.emptyScript : \"\";\nvar H = class extends S {\n constructor() {\n super(...arguments), this.type = 4;\n }\n k(t2) {\n t2 && t2 !== w ? this.element.setAttribute(this.name, k) : this.element.removeAttribute(this.name);\n }\n};\nvar I = class extends S {\n constructor(t2, e2, r2, i2, s2) {\n super(t2, e2, r2, i2, s2), this.type = 5;\n }\n _$AI(t2) {\n var e2;\n if ((t2 = null !== (e2 = P(this, t2, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this, 0)) && void 0 !== e2 ? e2 : w) !== b) {\n var r2 = this._$AH, i2 = t2 === w && r2 !== w || t2.capture !== r2.capture || t2.once !== r2.once || t2.passive !== r2.passive, s2 = t2 !== w && (r2 === w || i2);\n i2 && this.element.removeEventListener(this.name, this, r2), s2 && this.element.addEventListener(this.name, this, t2), this._$AH = t2;\n }\n }\n handleEvent(t2) {\n var e2, r2;\n \"function\" == typeof this._$AH ? this._$AH.call(null !== (r2 = null === (e2 = this.options) || void 0 === e2 ? void 0 : e2.host) && void 0 !== r2 ? r2 : this.element, t2) : this._$AH.handleEvent(t2);\n }\n};\nvar L = class {\n constructor(t2, e2, r2) {\n this.element = t2, this.type = 6, this._$AN = void 0, this._$AM = e2, this.options = r2;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n _$AI(t2) {\n P(this, t2);\n }\n};\nvar R = { P: \"$lit$\", V: e$6, L: o$3, I: 1, N: C, R: V, D: u, j: P, H: N, O: S, F: H, B: I, W: M, Z: L };\nvar z = window.litHtmlPolyfillSupport;\nvar l$1;\nvar o$2;\nnull == z || z(E, N), (null !== (t$2 = globalThis.litHtmlVersions) && void 0 !== t$2 ? t$2 : globalThis.litHtmlVersions = []).push(\"2.1.2\");\nvar r = a$1;\nvar s = class extends a$1 {\n constructor() {\n super(...arguments), this.renderOptions = { host: this }, this._$Dt = void 0;\n }\n createRenderRoot() {\n var t2, e2, r2 = super.createRenderRoot();\n return null !== (t2 = (e2 = this.renderOptions).renderBefore) && void 0 !== t2 || (e2.renderBefore = r2.firstChild), r2;\n }\n update(t2) {\n var e2 = this.render();\n this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t2), this._$Dt = x(e2, this.renderRoot, this.renderOptions);\n }\n connectedCallback() {\n var t2;\n super.connectedCallback(), null === (t2 = this._$Dt) || void 0 === t2 || t2.setConnected(true);\n }\n disconnectedCallback() {\n var t2;\n super.disconnectedCallback(), null === (t2 = this._$Dt) || void 0 === t2 || t2.setConnected(false);\n }\n render() {\n return b;\n }\n};\ns.finalized = true, s._$litElement$ = true, null === (l$1 = globalThis.litElementHydrateSupport) || void 0 === l$1 || l$1.call(globalThis, { LitElement: s });\nvar n$2 = globalThis.litElementPolyfillSupport;\nnull == n$2 || n$2({ LitElement: s });\nvar h = { _$AK: (t2, e2, r2) => {\n t2._$AK(e2, r2);\n}, _$AL: (t2) => t2._$AL };\n(null !== (o$2 = globalThis.litElementVersions) && void 0 !== o$2 ? o$2 : globalThis.litElementVersions = []).push(\"3.1.2\");\nvar n$1 = (t2) => (e2) => \"function\" == typeof e2 ? ((t3, e3) => (window.customElements.define(t3, e3), e3))(t2, e2) : ((t3, e3) => {\n var { kind: r2, elements: i2 } = e3;\n return { kind: r2, elements: i2, finisher(e4) {\n window.customElements.define(t3, e4);\n } };\n})(t2, e2);\nvar i$1 = (t2, e2) => \"method\" === e2.kind && e2.descriptor && !(\"value\" in e2.descriptor) ? _objectSpread2(_objectSpread2({}, e2), {}, { finisher(r2) {\n r2.createProperty(e2.key, t2);\n} }) : { kind: \"field\", key: Symbol(), placement: \"own\", descriptor: {}, originalKey: e2.key, initializer() {\n \"function\" == typeof e2.initializer && (this[e2.key] = e2.initializer.call(this));\n}, finisher(r2) {\n r2.createProperty(e2.key, t2);\n} };\nfunction e$5(t2) {\n return (e2, r2) => void 0 !== r2 ? ((t3, e3, r3) => {\n e3.constructor.createProperty(r3, t3);\n })(t2, e2, r2) : i$1(t2, e2);\n}\nfunction t$1(t2) {\n return e$5(_objectSpread2(_objectSpread2({}, t2), {}, { state: true }));\n}\nvar e$4 = (t2, e2, r2) => {\n Object.defineProperty(e2, r2, t2);\n};\nvar t = (t2, e2) => ({ kind: \"method\", placement: \"prototype\", key: e2.key, descriptor: t2 });\nvar o$1 = (t2) => {\n var { finisher: e2, descriptor: r2 } = t2;\n return (t3, i2) => {\n var s2;\n if (void 0 === i2) {\n var a2 = null !== (s2 = t3.originalKey) && void 0 !== s2 ? s2 : t3.key, n2 = null != r2 ? { kind: \"method\", placement: \"prototype\", key: a2, descriptor: r2(t3.key) } : _objectSpread2(_objectSpread2({}, t3), {}, { key: a2 });\n return null != e2 && (n2.finisher = function(t4) {\n e2(t4, a2);\n }), n2;\n }\n var o2 = t3.constructor;\n void 0 !== r2 && Object.defineProperty(t3, i2, r2(i2)), null == e2 || e2(o2, i2);\n };\n};\nvar n;\nfunction e$3(t2) {\n return o$1({ finisher: (e2, r2) => {\n Object.assign(e2.prototype[r2], t2);\n } });\n}\nfunction i(t2, e2) {\n return o$1({ descriptor: (r2) => {\n var i2 = { get() {\n var e3, r3;\n return null !== (r3 = null === (e3 = this.renderRoot) || void 0 === e3 ? void 0 : e3.querySelector(t2)) && void 0 !== r3 ? r3 : null;\n }, enumerable: true, configurable: true };\n if (e2) {\n var s2 = \"symbol\" == typeof r2 ? Symbol() : \"__\" + r2;\n i2.get = function() {\n var e3, r3;\n return void 0 === this[s2] && (this[s2] = null !== (r3 = null === (e3 = this.renderRoot) || void 0 === e3 ? void 0 : e3.querySelector(t2)) && void 0 !== r3 ? r3 : null), this[s2];\n };\n }\n return i2;\n } });\n}\nfunction e$2(t2) {\n return o$1({ descriptor: (e2) => ({ get() {\n var e3, r2;\n return null !== (r2 = null === (e3 = this.renderRoot) || void 0 === e3 ? void 0 : e3.querySelectorAll(t2)) && void 0 !== r2 ? r2 : [];\n }, enumerable: true, configurable: true }) });\n}\nfunction e$1(t2) {\n return o$1({ descriptor: (e2) => ({ get() {\n var e3 = this;\n return _asyncToGenerator(function* () {\n var r2;\n return yield e3.updateComplete, null === (r2 = e3.renderRoot) || void 0 === r2 ? void 0 : r2.querySelector(t2);\n })();\n }, enumerable: true, configurable: true }) });\n}\nvar e = null != (null === (n = window.HTMLSlotElement) || void 0 === n ? void 0 : n.prototype.assignedElements) ? (t2, e2) => t2.assignedElements(e2) : (t2, e2) => t2.assignedNodes(e2).filter((t3) => t3.nodeType === Node.ELEMENT_NODE);\nfunction l(t2) {\n var { slot: r2, selector: i2 } = null != t2 ? t2 : {};\n return o$1({ descriptor: (s2) => ({ get() {\n var s3, a2 = \"slot\" + (r2 ? \"[name=\".concat(r2, \"]\") : \":not([name])\"), n2 = null === (s3 = this.renderRoot) || void 0 === s3 ? void 0 : s3.querySelector(a2), o2 = null != n2 ? e(n2, t2) : [];\n return i2 ? o2.filter((t3) => t3.matches(i2)) : o2;\n }, enumerable: true, configurable: true }) });\n}\nfunction o(t2, e2, r2) {\n var i2, s2 = t2;\n return \"object\" == typeof t2 ? (s2 = t2.slot, i2 = t2) : i2 = { flatten: e2 }, r2 ? l({ slot: s2, flatten: e2, selector: r2 }) : o$1({ descriptor: (t3) => ({ get() {\n var t4, e3, r3 = \"slot\" + (s2 ? \"[name=\".concat(s2, \"]\") : \":not([name])\"), a2 = null === (t4 = this.renderRoot) || void 0 === t4 ? void 0 : t4.querySelector(r3);\n return null !== (e3 = null == a2 ? void 0 : a2.assignedNodes(i2)) && void 0 !== e3 ? e3 : [];\n }, enumerable: true, configurable: true }) });\n}\nvar commonjsGlobal = \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {};\nfunction getDefaultExportFromCjs(t2) {\n return t2 && t2.__esModule && Object.prototype.hasOwnProperty.call(t2, \"default\") ? t2.default : t2;\n}\nfunction getDefaultExportFromNamespaceIfPresent(t2) {\n return t2 && Object.prototype.hasOwnProperty.call(t2, \"default\") ? t2.default : t2;\n}\nfunction getDefaultExportFromNamespaceIfNotNamed(t2) {\n return t2 && Object.prototype.hasOwnProperty.call(t2, \"default\") && 1 === Object.keys(t2).length ? t2.default : t2;\n}\nfunction getAugmentedNamespace(t2) {\n if (t2.__esModule) return t2;\n var e2 = Object.defineProperty({}, \"__esModule\", { value: true });\n return Object.keys(t2).forEach(function(r2) {\n var i2 = Object.getOwnPropertyDescriptor(t2, r2);\n Object.defineProperty(e2, r2, i2.get ? i2 : { enumerable: true, get: function() {\n return t2[r2];\n } });\n }), e2;\n}\nfunction commonjsRequire(t2) {\n throw new Error('Could not dynamically require \"' + t2 + '\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');\n}\nvar lottie$1 = { exports: {} };\n(function(module, exports) {\n var factory;\n \"undefined\" != typeof navigator && (factory = function() {\n var svgNS = \"http://www.w3.org/2000/svg\", locationHref = \"\", _useWebWorker = false, initialDefaultFrame = -999999, setWebWorker = function(t2) {\n _useWebWorker = !!t2;\n }, getWebWorker = function() {\n return _useWebWorker;\n }, setLocationHref = function(t2) {\n locationHref = t2;\n }, getLocationHref = function() {\n return locationHref;\n };\n function createTag(t2) {\n return document.createElement(t2);\n }\n function extendPrototype(t2, e2) {\n var r2, i2, s2 = t2.length;\n for (r2 = 0; r2 < s2; r2 += 1) for (var a2 in i2 = t2[r2].prototype) Object.prototype.hasOwnProperty.call(i2, a2) && (e2.prototype[a2] = i2[a2]);\n }\n function getDescriptor(t2, e2) {\n return Object.getOwnPropertyDescriptor(t2, e2);\n }\n function createProxyFunction(t2) {\n function e2() {\n }\n return e2.prototype = t2, e2;\n }\n var audioControllerFactory = function() {\n function t2(t3) {\n this.audios = [], this.audioFactory = t3, this._volume = 1, this._isMuted = false;\n }\n return t2.prototype = { addAudio: function(t3) {\n this.audios.push(t3);\n }, pause: function() {\n var t3, e2 = this.audios.length;\n for (t3 = 0; t3 < e2; t3 += 1) this.audios[t3].pause();\n }, resume: function() {\n var t3, e2 = this.audios.length;\n for (t3 = 0; t3 < e2; t3 += 1) this.audios[t3].resume();\n }, setRate: function(t3) {\n var e2, r2 = this.audios.length;\n for (e2 = 0; e2 < r2; e2 += 1) this.audios[e2].setRate(t3);\n }, createAudio: function(t3) {\n return this.audioFactory ? this.audioFactory(t3) : window.Howl ? new window.Howl({ src: [t3] }) : { isPlaying: false, play: function() {\n this.isPlaying = true;\n }, seek: function() {\n this.isPlaying = false;\n }, playing: function() {\n }, rate: function() {\n }, setVolume: function() {\n } };\n }, setAudioFactory: function(t3) {\n this.audioFactory = t3;\n }, setVolume: function(t3) {\n this._volume = t3, this._updateVolume();\n }, mute: function() {\n this._isMuted = true, this._updateVolume();\n }, unmute: function() {\n this._isMuted = false, this._updateVolume();\n }, getVolume: function() {\n return this._volume;\n }, _updateVolume: function() {\n var t3, e2 = this.audios.length;\n for (t3 = 0; t3 < e2; t3 += 1) this.audios[t3].volume(this._volume * (this._isMuted ? 0 : 1));\n } }, function() {\n return new t2();\n };\n }(), createTypedArray = /* @__PURE__ */ function() {\n function t2(t3, e2) {\n var r2, i2 = 0, s2 = [];\n switch (t3) {\n case \"int16\":\n case \"uint8c\":\n r2 = 1;\n break;\n default:\n r2 = 1.1;\n }\n for (i2 = 0; i2 < e2; i2 += 1) s2.push(r2);\n return s2;\n }\n return \"function\" == typeof Uint8ClampedArray && \"function\" == typeof Float32Array ? function(e2, r2) {\n return \"float32\" === e2 ? new Float32Array(r2) : \"int16\" === e2 ? new Int16Array(r2) : \"uint8c\" === e2 ? new Uint8ClampedArray(r2) : t2(e2, r2);\n } : t2;\n }();\n function createSizedArray(t2) {\n return Array.apply(null, { length: t2 });\n }\n function _typeof$6(t2) {\n return _typeof$6 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n }, _typeof$6(t2);\n }\n var subframeEnabled = true, expressionsPlugin = null, expressionsInterfaces = null, idPrefix$1 = \"\", isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent), _shouldRoundValues = false, bmPow = Math.pow, bmSqrt = Math.sqrt, bmFloor = Math.floor, bmMax = Math.max, bmMin = Math.min, BMMath = {};\n function ProjectInterface$1() {\n return {};\n }\n !function() {\n var t2, e2 = [\"abs\", \"acos\", \"acosh\", \"asin\", \"asinh\", \"atan\", \"atanh\", \"atan2\", \"ceil\", \"cbrt\", \"expm1\", \"clz32\", \"cos\", \"cosh\", \"exp\", \"floor\", \"fround\", \"hypot\", \"imul\", \"log\", \"log1p\", \"log2\", \"log10\", \"max\", \"min\", \"pow\", \"random\", \"round\", \"sign\", \"sin\", \"sinh\", \"sqrt\", \"tan\", \"tanh\", \"trunc\", \"E\", \"LN10\", \"LN2\", \"LOG10E\", \"LOG2E\", \"PI\", \"SQRT1_2\", \"SQRT2\"], r2 = e2.length;\n for (t2 = 0; t2 < r2; t2 += 1) BMMath[e2[t2]] = Math[e2[t2]];\n }(), BMMath.random = Math.random, BMMath.abs = function(t2) {\n if (\"object\" === _typeof$6(t2) && t2.length) {\n var e2, r2 = createSizedArray(t2.length), i2 = t2.length;\n for (e2 = 0; e2 < i2; e2 += 1) r2[e2] = Math.abs(t2[e2]);\n return r2;\n }\n return Math.abs(t2);\n };\n var defaultCurveSegments = 150, degToRads = Math.PI / 180, roundCorner = 0.5519;\n function roundValues(t2) {\n _shouldRoundValues = !!t2;\n }\n function bmRnd(t2) {\n return _shouldRoundValues ? Math.round(t2) : t2;\n }\n function styleDiv(t2) {\n t2.style.position = \"absolute\", t2.style.top = 0, t2.style.left = 0, t2.style.display = \"block\", t2.style.transformOrigin = \"0 0\", t2.style.webkitTransformOrigin = \"0 0\", t2.style.backfaceVisibility = \"visible\", t2.style.webkitBackfaceVisibility = \"visible\", t2.style.transformStyle = \"preserve-3d\", t2.style.webkitTransformStyle = \"preserve-3d\", t2.style.mozTransformStyle = \"preserve-3d\";\n }\n function BMEnterFrameEvent(t2, e2, r2, i2) {\n this.type = t2, this.currentTime = e2, this.totalTime = r2, this.direction = i2 < 0 ? -1 : 1;\n }\n function BMCompleteEvent(t2, e2) {\n this.type = t2, this.direction = e2 < 0 ? -1 : 1;\n }\n function BMCompleteLoopEvent(t2, e2, r2, i2) {\n this.type = t2, this.currentLoop = r2, this.totalLoops = e2, this.direction = i2 < 0 ? -1 : 1;\n }\n function BMSegmentStartEvent(t2, e2, r2) {\n this.type = t2, this.firstFrame = e2, this.totalFrames = r2;\n }\n function BMDestroyEvent(t2, e2) {\n this.type = t2, this.target = e2;\n }\n function BMRenderFrameErrorEvent(t2, e2) {\n this.type = \"renderFrameError\", this.nativeError = t2, this.currentTime = e2;\n }\n function BMConfigErrorEvent(t2) {\n this.type = \"configError\", this.nativeError = t2;\n }\n function BMAnimationConfigErrorEvent(t2, e2) {\n this.type = t2, this.nativeError = e2;\n }\n var createElementID = (_count = 0, function() {\n return idPrefix$1 + \"__lottie_element_\" + (_count += 1);\n }), _count;\n function HSVtoRGB(t2, e2, r2) {\n var i2, s2, a2, n2, o2, h2, l2, p2;\n switch (h2 = r2 * (1 - e2), l2 = r2 * (1 - (o2 = 6 * t2 - (n2 = Math.floor(6 * t2))) * e2), p2 = r2 * (1 - (1 - o2) * e2), n2 % 6) {\n case 0:\n i2 = r2, s2 = p2, a2 = h2;\n break;\n case 1:\n i2 = l2, s2 = r2, a2 = h2;\n break;\n case 2:\n i2 = h2, s2 = r2, a2 = p2;\n break;\n case 3:\n i2 = h2, s2 = l2, a2 = r2;\n break;\n case 4:\n i2 = p2, s2 = h2, a2 = r2;\n break;\n case 5:\n i2 = r2, s2 = h2, a2 = l2;\n }\n return [i2, s2, a2];\n }\n function RGBtoHSV(t2, e2, r2) {\n var i2, s2 = Math.max(t2, e2, r2), a2 = Math.min(t2, e2, r2), n2 = s2 - a2, o2 = 0 === s2 ? 0 : n2 / s2, h2 = s2 / 255;\n switch (s2) {\n case a2:\n i2 = 0;\n break;\n case t2:\n i2 = e2 - r2 + n2 * (e2 < r2 ? 6 : 0), i2 /= 6 * n2;\n break;\n case e2:\n i2 = r2 - t2 + 2 * n2, i2 /= 6 * n2;\n break;\n case r2:\n i2 = t2 - e2 + 4 * n2, i2 /= 6 * n2;\n }\n return [i2, o2, h2];\n }\n function addSaturationToRGB(t2, e2) {\n var r2 = RGBtoHSV(255 * t2[0], 255 * t2[1], 255 * t2[2]);\n return r2[1] += e2, r2[1] > 1 ? r2[1] = 1 : r2[1] <= 0 && (r2[1] = 0), HSVtoRGB(r2[0], r2[1], r2[2]);\n }\n function addBrightnessToRGB(t2, e2) {\n var r2 = RGBtoHSV(255 * t2[0], 255 * t2[1], 255 * t2[2]);\n return r2[2] += e2, r2[2] > 1 ? r2[2] = 1 : r2[2] < 0 && (r2[2] = 0), HSVtoRGB(r2[0], r2[1], r2[2]);\n }\n function addHueToRGB(t2, e2) {\n var r2 = RGBtoHSV(255 * t2[0], 255 * t2[1], 255 * t2[2]);\n return r2[0] += e2 / 360, r2[0] > 1 ? r2[0] -= 1 : r2[0] < 0 && (r2[0] += 1), HSVtoRGB(r2[0], r2[1], r2[2]);\n }\n var rgbToHex = function() {\n var t2, e2, r2 = [];\n for (t2 = 0; t2 < 256; t2 += 1) e2 = t2.toString(16), r2[t2] = 1 === e2.length ? \"0\" + e2 : e2;\n return function(t3, e3, i2) {\n return t3 < 0 && (t3 = 0), e3 < 0 && (e3 = 0), i2 < 0 && (i2 = 0), \"#\" + r2[t3] + r2[e3] + r2[i2];\n };\n }(), setSubframeEnabled = function(t2) {\n subframeEnabled = !!t2;\n }, getSubframeEnabled = function() {\n return subframeEnabled;\n }, setExpressionsPlugin = function(t2) {\n expressionsPlugin = t2;\n }, getExpressionsPlugin = function() {\n return expressionsPlugin;\n }, setExpressionInterfaces = function(t2) {\n expressionsInterfaces = t2;\n }, getExpressionInterfaces = function() {\n return expressionsInterfaces;\n }, setDefaultCurveSegments = function(t2) {\n defaultCurveSegments = t2;\n }, getDefaultCurveSegments = function() {\n return defaultCurveSegments;\n }, setIdPrefix = function(t2) {\n idPrefix$1 = t2;\n }, getIdPrefix = function() {\n return idPrefix$1;\n };\n function createNS(t2) {\n return document.createElementNS(svgNS, t2);\n }\n function _typeof$5(t2) {\n return _typeof$5 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n }, _typeof$5(t2);\n }\n var dataManager = /* @__PURE__ */ function() {\n var t2, e2, r2 = 1, i2 = [], s2 = { onmessage: function() {\n }, postMessage: function(e3) {\n t2({ data: e3 });\n } }, _workerSelf = { postMessage: function(t3) {\n s2.onmessage({ data: t3 });\n } };\n function a2() {\n e2 || (e2 = function(e3) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var r3 = new Blob([\"var _workerSelf = self; self.onmessage = \", e3.toString()], { type: \"text/javascript\" }), i3 = URL.createObjectURL(r3);\n return new Worker(i3);\n }\n return t2 = e3, s2;\n }(function(t3) {\n if (_workerSelf.dataManager || (_workerSelf.dataManager = function() {\n function t4(s4, a4) {\n var n4, o3, h3, l3, p3, f3, u2 = s4.length;\n for (o3 = 0; o3 < u2; o3 += 1) if (\"ks\" in (n4 = s4[o3]) && !n4.completed) {\n if (n4.completed = true, n4.hasMask) {\n var d2 = n4.masksProperties;\n for (l3 = d2.length, h3 = 0; h3 < l3; h3 += 1) if (d2[h3].pt.k.i) i3(d2[h3].pt.k);\n else for (f3 = d2[h3].pt.k.length, p3 = 0; p3 < f3; p3 += 1) d2[h3].pt.k[p3].s && i3(d2[h3].pt.k[p3].s[0]), d2[h3].pt.k[p3].e && i3(d2[h3].pt.k[p3].e[0]);\n }\n 0 === n4.ty ? (n4.layers = e4(n4.refId, a4), t4(n4.layers, a4)) : 4 === n4.ty ? r3(n4.shapes) : 5 === n4.ty && c2(n4);\n }\n }\n function e4(t5, e5) {\n var r4 = function(t6, e6) {\n for (var r5 = 0, i4 = e6.length; r5 < i4; ) {\n if (e6[r5].id === t6) return e6[r5];\n r5 += 1;\n }\n return null;\n }(t5, e5);\n return r4 ? r4.layers.__used ? JSON.parse(JSON.stringify(r4.layers)) : (r4.layers.__used = true, r4.layers) : null;\n }\n function r3(t5) {\n var e5, s4, a4;\n for (e5 = t5.length - 1; e5 >= 0; e5 -= 1) if (\"sh\" === t5[e5].ty) if (t5[e5].ks.k.i) i3(t5[e5].ks.k);\n else for (a4 = t5[e5].ks.k.length, s4 = 0; s4 < a4; s4 += 1) t5[e5].ks.k[s4].s && i3(t5[e5].ks.k[s4].s[0]), t5[e5].ks.k[s4].e && i3(t5[e5].ks.k[s4].e[0]);\n else \"gr\" === t5[e5].ty && r3(t5[e5].it);\n }\n function i3(t5) {\n var e5, r4 = t5.i.length;\n for (e5 = 0; e5 < r4; e5 += 1) t5.i[e5][0] += t5.v[e5][0], t5.i[e5][1] += t5.v[e5][1], t5.o[e5][0] += t5.v[e5][0], t5.o[e5][1] += t5.v[e5][1];\n }\n function s3(t5, e5) {\n var r4 = e5 ? e5.split(\".\") : [100, 100, 100];\n return t5[0] > r4[0] || !(r4[0] > t5[0]) && (t5[1] > r4[1] || !(r4[1] > t5[1]) && (t5[2] > r4[2] || !(r4[2] > t5[2]) && null));\n }\n var a3, n3 = /* @__PURE__ */ function() {\n var t5 = [4, 4, 14];\n function e5(t6) {\n var e6, r4, i4, s4 = t6.length;\n for (e6 = 0; e6 < s4; e6 += 1) 5 === t6[e6].ty && (i4 = void 0, i4 = (r4 = t6[e6]).t.d, r4.t.d = { k: [{ s: i4, t: 0 }] });\n }\n return function(r4) {\n if (s3(t5, r4.v) && (e5(r4.layers), r4.assets)) {\n var i4, a4 = r4.assets.length;\n for (i4 = 0; i4 < a4; i4 += 1) r4.assets[i4].layers && e5(r4.assets[i4].layers);\n }\n };\n }(), o2 = (a3 = [4, 7, 99], function(t5) {\n if (t5.chars && !s3(a3, t5.v)) {\n var e5, i4 = t5.chars.length;\n for (e5 = 0; e5 < i4; e5 += 1) {\n var n4 = t5.chars[e5];\n n4.data && n4.data.shapes && (r3(n4.data.shapes), n4.data.ip = 0, n4.data.op = 99999, n4.data.st = 0, n4.data.sr = 1, n4.data.ks = { p: { k: [0, 0], a: 0 }, s: { k: [100, 100], a: 0 }, a: { k: [0, 0], a: 0 }, r: { k: 0, a: 0 }, o: { k: 100, a: 0 } }, t5.chars[e5].t || (n4.data.shapes.push({ ty: \"no\" }), n4.data.shapes[0].it.push({ p: { k: [0, 0], a: 0 }, s: { k: [100, 100], a: 0 }, a: { k: [0, 0], a: 0 }, r: { k: 0, a: 0 }, o: { k: 100, a: 0 }, sk: { k: 0, a: 0 }, sa: { k: 0, a: 0 }, ty: \"tr\" })));\n }\n }\n }), h2 = /* @__PURE__ */ function() {\n var t5 = [5, 7, 15];\n function e5(t6) {\n var e6, r4, i4 = t6.length;\n for (e6 = 0; e6 < i4; e6 += 1) 5 === t6[e6].ty && (r4 = void 0, \"number\" == typeof (r4 = t6[e6].t.p).a && (r4.a = { a: 0, k: r4.a }), \"number\" == typeof r4.p && (r4.p = { a: 0, k: r4.p }), \"number\" == typeof r4.r && (r4.r = { a: 0, k: r4.r }));\n }\n return function(r4) {\n if (s3(t5, r4.v) && (e5(r4.layers), r4.assets)) {\n var i4, a4 = r4.assets.length;\n for (i4 = 0; i4 < a4; i4 += 1) r4.assets[i4].layers && e5(r4.assets[i4].layers);\n }\n };\n }(), l2 = /* @__PURE__ */ function() {\n var t5 = [4, 1, 9];\n function e5(t6) {\n var r5, i4, s4, a4 = t6.length;\n for (r5 = 0; r5 < a4; r5 += 1) if (\"gr\" === t6[r5].ty) e5(t6[r5].it);\n else if (\"fl\" === t6[r5].ty || \"st\" === t6[r5].ty) if (t6[r5].c.k && t6[r5].c.k[0].i) for (s4 = t6[r5].c.k.length, i4 = 0; i4 < s4; i4 += 1) t6[r5].c.k[i4].s && (t6[r5].c.k[i4].s[0] /= 255, t6[r5].c.k[i4].s[1] /= 255, t6[r5].c.k[i4].s[2] /= 255, t6[r5].c.k[i4].s[3] /= 255), t6[r5].c.k[i4].e && (t6[r5].c.k[i4].e[0] /= 255, t6[r5].c.k[i4].e[1] /= 255, t6[r5].c.k[i4].e[2] /= 255, t6[r5].c.k[i4].e[3] /= 255);\n else t6[r5].c.k[0] /= 255, t6[r5].c.k[1] /= 255, t6[r5].c.k[2] /= 255, t6[r5].c.k[3] /= 255;\n }\n function r4(t6) {\n var r5, i4 = t6.length;\n for (r5 = 0; r5 < i4; r5 += 1) 4 === t6[r5].ty && e5(t6[r5].shapes);\n }\n return function(e6) {\n if (s3(t5, e6.v) && (r4(e6.layers), e6.assets)) {\n var i4, a4 = e6.assets.length;\n for (i4 = 0; i4 < a4; i4 += 1) e6.assets[i4].layers && r4(e6.assets[i4].layers);\n }\n };\n }(), p2 = /* @__PURE__ */ function() {\n var t5 = [4, 4, 18];\n function e5(t6) {\n var r5, i4, s4;\n for (r5 = t6.length - 1; r5 >= 0; r5 -= 1) if (\"sh\" === t6[r5].ty) if (t6[r5].ks.k.i) t6[r5].ks.k.c = t6[r5].closed;\n else for (s4 = t6[r5].ks.k.length, i4 = 0; i4 < s4; i4 += 1) t6[r5].ks.k[i4].s && (t6[r5].ks.k[i4].s[0].c = t6[r5].closed), t6[r5].ks.k[i4].e && (t6[r5].ks.k[i4].e[0].c = t6[r5].closed);\n else \"gr\" === t6[r5].ty && e5(t6[r5].it);\n }\n function r4(t6) {\n var r5, i4, s4, a4, n4, o3, h3 = t6.length;\n for (i4 = 0; i4 < h3; i4 += 1) {\n if ((r5 = t6[i4]).hasMask) {\n var l3 = r5.masksProperties;\n for (a4 = l3.length, s4 = 0; s4 < a4; s4 += 1) if (l3[s4].pt.k.i) l3[s4].pt.k.c = l3[s4].cl;\n else for (o3 = l3[s4].pt.k.length, n4 = 0; n4 < o3; n4 += 1) l3[s4].pt.k[n4].s && (l3[s4].pt.k[n4].s[0].c = l3[s4].cl), l3[s4].pt.k[n4].e && (l3[s4].pt.k[n4].e[0].c = l3[s4].cl);\n }\n 4 === r5.ty && e5(r5.shapes);\n }\n }\n return function(e6) {\n if (s3(t5, e6.v) && (r4(e6.layers), e6.assets)) {\n var i4, a4 = e6.assets.length;\n for (i4 = 0; i4 < a4; i4 += 1) e6.assets[i4].layers && r4(e6.assets[i4].layers);\n }\n };\n }();\n function c2(t5) {\n 0 === t5.t.a.length && t5.t.p;\n }\n var f2 = { completeData: function(r4) {\n r4.__complete || (l2(r4), n3(r4), o2(r4), h2(r4), p2(r4), t4(r4.layers, r4.assets), function(r5, i4) {\n if (r5) {\n var s4 = 0, a4 = r5.length;\n for (s4 = 0; s4 < a4; s4 += 1) 1 === r5[s4].t && (r5[s4].data.layers = e4(r5[s4].data.refId, i4), t4(r5[s4].data.layers, i4));\n }\n }(r4.chars, r4.assets), r4.__complete = true);\n } };\n return f2.checkColors = l2, f2.checkChars = o2, f2.checkPathProperties = h2, f2.checkShapes = p2, f2.completeLayers = t4, f2;\n }()), _workerSelf.assetLoader || (_workerSelf.assetLoader = /* @__PURE__ */ function() {\n function t4(t5) {\n var e4 = t5.getResponseHeader(\"content-type\");\n return e4 && \"json\" === t5.responseType && -1 !== e4.indexOf(\"json\") || t5.response && \"object\" === _typeof$5(t5.response) ? t5.response : t5.response && \"string\" == typeof t5.response ? JSON.parse(t5.response) : t5.responseText ? JSON.parse(t5.responseText) : null;\n }\n return { load: function(e4, r3, i3, s3) {\n var a3, n3 = new XMLHttpRequest();\n try {\n n3.responseType = \"json\";\n } catch (t5) {\n }\n n3.onreadystatechange = function() {\n if (4 === n3.readyState) if (200 === n3.status) a3 = t4(n3), i3(a3);\n else try {\n a3 = t4(n3), i3(a3);\n } catch (t5) {\n s3 && s3(t5);\n }\n };\n try {\n n3.open([\"G\", \"E\", \"T\"].join(\"\"), e4, true);\n } catch (t5) {\n n3.open([\"G\", \"E\", \"T\"].join(\"\"), r3 + \"/\" + e4, true);\n }\n n3.send();\n } };\n }()), \"loadAnimation\" === t3.data.type) _workerSelf.assetLoader.load(t3.data.path, t3.data.fullPath, function(e4) {\n _workerSelf.dataManager.completeData(e4), _workerSelf.postMessage({ id: t3.data.id, payload: e4, status: \"success\" });\n }, function() {\n _workerSelf.postMessage({ id: t3.data.id, status: \"error\" });\n });\n else if (\"complete\" === t3.data.type) {\n var e3 = t3.data.animation;\n _workerSelf.dataManager.completeData(e3), _workerSelf.postMessage({ id: t3.data.id, payload: e3, status: \"success\" });\n } else \"loadData\" === t3.data.type && _workerSelf.assetLoader.load(t3.data.path, t3.data.fullPath, function(e4) {\n _workerSelf.postMessage({ id: t3.data.id, payload: e4, status: \"success\" });\n }, function() {\n _workerSelf.postMessage({ id: t3.data.id, status: \"error\" });\n });\n }), e2.onmessage = function(t3) {\n var e3 = t3.data, r3 = e3.id, s3 = i2[r3];\n i2[r3] = null, \"success\" === e3.status ? s3.onComplete(e3.payload) : s3.onError && s3.onError();\n });\n }\n function n2(t3, e3) {\n var s3 = \"processId_\" + (r2 += 1);\n return i2[s3] = { onComplete: t3, onError: e3 }, s3;\n }\n return { loadAnimation: function(t3, r3, i3) {\n a2();\n var s3 = n2(r3, i3);\n e2.postMessage({ type: \"loadAnimation\", path: t3, fullPath: window.location.origin + window.location.pathname, id: s3 });\n }, loadData: function(t3, r3, i3) {\n a2();\n var s3 = n2(r3, i3);\n e2.postMessage({ type: \"loadData\", path: t3, fullPath: window.location.origin + window.location.pathname, id: s3 });\n }, completeAnimation: function(t3, r3, i3) {\n a2();\n var s3 = n2(r3, i3);\n e2.postMessage({ type: \"complete\", animation: t3, id: s3 });\n } };\n }(), ImagePreloader = function() {\n var t2 = function() {\n var t3 = createTag(\"canvas\");\n t3.width = 1, t3.height = 1;\n var e3 = t3.getContext(\"2d\");\n return e3.fillStyle = \"rgba(0,0,0,0)\", e3.fillRect(0, 0, 1, 1), t3;\n }();\n function e2() {\n this.loadedAssets += 1, this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages && this.imagesLoadedCb && this.imagesLoadedCb(null);\n }\n function r2() {\n this.loadedFootagesCount += 1, this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages && this.imagesLoadedCb && this.imagesLoadedCb(null);\n }\n function i2(t3, e3, r3) {\n var i3 = \"\";\n if (t3.e) i3 = t3.p;\n else if (e3) {\n var s3 = t3.p;\n -1 !== s3.indexOf(\"images/\") && (s3 = s3.split(\"/\")[1]), i3 = e3 + s3;\n } else i3 = r3, i3 += t3.u ? t3.u : \"\", i3 += t3.p;\n return i3;\n }\n function s2(t3) {\n var e3 = 0, r3 = setInterval(function() {\n (t3.getBBox().width || e3 > 500) && (this._imageLoaded(), clearInterval(r3)), e3 += 1;\n }.bind(this), 50);\n }\n function a2(t3) {\n var e3 = { assetData: t3 }, r3 = i2(t3, this.assetsPath, this.path);\n return dataManager.loadData(r3, function(t4) {\n e3.img = t4, this._footageLoaded();\n }.bind(this), function() {\n e3.img = {}, this._footageLoaded();\n }.bind(this)), e3;\n }\n function n2() {\n this._imageLoaded = e2.bind(this), this._footageLoaded = r2.bind(this), this.testImageLoaded = s2.bind(this), this.createFootageData = a2.bind(this), this.assetsPath = \"\", this.path = \"\", this.totalImages = 0, this.totalFootages = 0, this.loadedAssets = 0, this.loadedFootagesCount = 0, this.imagesLoadedCb = null, this.images = [];\n }\n return n2.prototype = { loadAssets: function(t3, e3) {\n var r3;\n this.imagesLoadedCb = e3;\n var i3 = t3.length;\n for (r3 = 0; r3 < i3; r3 += 1) t3[r3].layers || (t3[r3].t && \"seq\" !== t3[r3].t ? 3 === t3[r3].t && (this.totalFootages += 1, this.images.push(this.createFootageData(t3[r3]))) : (this.totalImages += 1, this.images.push(this._createImageData(t3[r3]))));\n }, setAssetsPath: function(t3) {\n this.assetsPath = t3 || \"\";\n }, setPath: function(t3) {\n this.path = t3 || \"\";\n }, loadedImages: function() {\n return this.totalImages === this.loadedAssets;\n }, loadedFootages: function() {\n return this.totalFootages === this.loadedFootagesCount;\n }, destroy: function() {\n this.imagesLoadedCb = null, this.images.length = 0;\n }, getAsset: function(t3) {\n for (var e3 = 0, r3 = this.images.length; e3 < r3; ) {\n if (this.images[e3].assetData === t3) return this.images[e3].img;\n e3 += 1;\n }\n return null;\n }, createImgData: function(e3) {\n var r3 = i2(e3, this.assetsPath, this.path), s3 = createTag(\"img\");\n s3.crossOrigin = \"anonymous\", s3.addEventListener(\"load\", this._imageLoaded, false), s3.addEventListener(\"error\", function() {\n a3.img = t2, this._imageLoaded();\n }.bind(this), false), s3.src = r3;\n var a3 = { img: s3, assetData: e3 };\n return a3;\n }, createImageData: function(e3) {\n var r3 = i2(e3, this.assetsPath, this.path), s3 = createNS(\"image\");\n isSafari ? this.testImageLoaded(s3) : s3.addEventListener(\"load\", this._imageLoaded, false), s3.addEventListener(\"error\", function() {\n a3.img = t2, this._imageLoaded();\n }.bind(this), false), s3.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", r3), this._elementHelper.append ? this._elementHelper.append(s3) : this._elementHelper.appendChild(s3);\n var a3 = { img: s3, assetData: e3 };\n return a3;\n }, imageLoaded: e2, footageLoaded: r2, setCacheType: function(t3, e3) {\n \"svg\" === t3 ? (this._elementHelper = e3, this._createImageData = this.createImageData.bind(this)) : this._createImageData = this.createImgData.bind(this);\n } }, n2;\n }();\n function BaseEvent() {\n }\n BaseEvent.prototype = { triggerEvent: function(t2, e2) {\n if (this._cbs[t2]) for (var r2 = this._cbs[t2], i2 = 0; i2 < r2.length; i2 += 1) r2[i2](e2);\n }, addEventListener: function(t2, e2) {\n return this._cbs[t2] || (this._cbs[t2] = []), this._cbs[t2].push(e2), function() {\n this.removeEventListener(t2, e2);\n }.bind(this);\n }, removeEventListener: function(t2, e2) {\n if (e2) {\n if (this._cbs[t2]) {\n for (var r2 = 0, i2 = this._cbs[t2].length; r2 < i2; ) this._cbs[t2][r2] === e2 && (this._cbs[t2].splice(r2, 1), r2 -= 1, i2 -= 1), r2 += 1;\n this._cbs[t2].length || (this._cbs[t2] = null);\n }\n } else this._cbs[t2] = null;\n } };\n var markerParser = /* @__PURE__ */ function() {\n function t2(t3) {\n for (var e2, r2 = t3.split(\"\\r\\n\"), i2 = {}, s2 = 0, a2 = 0; a2 < r2.length; a2 += 1) 2 === (e2 = r2[a2].split(\":\")).length && (i2[e2[0]] = e2[1].trim(), s2 += 1);\n if (0 === s2) throw new Error();\n return i2;\n }\n return function(e2) {\n for (var r2 = [], i2 = 0; i2 < e2.length; i2 += 1) {\n var s2 = e2[i2], a2 = { time: s2.tm, duration: s2.dr };\n try {\n a2.payload = JSON.parse(e2[i2].cm);\n } catch (r3) {\n try {\n a2.payload = t2(e2[i2].cm);\n } catch (t3) {\n a2.payload = { name: e2[i2].cm };\n }\n }\n r2.push(a2);\n }\n return r2;\n };\n }(), ProjectInterface = /* @__PURE__ */ function() {\n function t2(t3) {\n this.compositions.push(t3);\n }\n return function() {\n function e2(t3) {\n for (var e3 = 0, r2 = this.compositions.length; e3 < r2; ) {\n if (this.compositions[e3].data && this.compositions[e3].data.nm === t3) return this.compositions[e3].prepareFrame && this.compositions[e3].data.xt && this.compositions[e3].prepareFrame(this.currentFrame), this.compositions[e3].compInterface;\n e3 += 1;\n }\n return null;\n }\n return e2.compositions = [], e2.currentFrame = 0, e2.registerComposition = t2, e2;\n };\n }(), renderers = {}, registerRenderer = function(t2, e2) {\n renderers[t2] = e2;\n };\n function getRenderer(t2) {\n return renderers[t2];\n }\n function getRegisteredRenderer() {\n if (renderers.canvas) return \"canvas\";\n for (var t2 in renderers) if (renderers[t2]) return t2;\n return \"\";\n }\n function _typeof$4(t2) {\n return _typeof$4 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n }, _typeof$4(t2);\n }\n var AnimationItem = function() {\n this._cbs = [], this.name = \"\", this.path = \"\", this.isLoaded = false, this.currentFrame = 0, this.currentRawFrame = 0, this.firstFrame = 0, this.totalFrames = 0, this.frameRate = 0, this.frameMult = 0, this.playSpeed = 1, this.playDirection = 1, this.playCount = 0, this.animationData = {}, this.assets = [], this.isPaused = true, this.autoplay = false, this.loop = true, this.renderer = null, this.animationID = createElementID(), this.assetsPath = \"\", this.timeCompleted = 0, this.segmentPos = 0, this.isSubframeEnabled = getSubframeEnabled(), this.segments = [], this._idle = true, this._completedLoop = false, this.projectInterface = ProjectInterface(), this.imagePreloader = new ImagePreloader(), this.audioController = audioControllerFactory(), this.markers = [], this.configAnimation = this.configAnimation.bind(this), this.onSetupError = this.onSetupError.bind(this), this.onSegmentComplete = this.onSegmentComplete.bind(this), this.drawnFrameEvent = new BMEnterFrameEvent(\"drawnFrame\", 0, 0, 0), this.expressionsPlugin = getExpressionsPlugin();\n };\n extendPrototype([BaseEvent], AnimationItem), AnimationItem.prototype.setParams = function(t2) {\n (t2.wrapper || t2.container) && (this.wrapper = t2.wrapper || t2.container);\n var e2 = \"svg\";\n t2.animType ? e2 = t2.animType : t2.renderer && (e2 = t2.renderer);\n var r2 = getRenderer(e2);\n this.renderer = new r2(this, t2.rendererSettings), this.imagePreloader.setCacheType(e2, this.renderer.globalData.defs), this.renderer.setProjectInterface(this.projectInterface), this.animType = e2, \"\" === t2.loop || null === t2.loop || void 0 === t2.loop || true === t2.loop ? this.loop = true : false === t2.loop ? this.loop = false : this.loop = parseInt(t2.loop, 10), this.autoplay = !(\"autoplay\" in t2) || t2.autoplay, this.name = t2.name ? t2.name : \"\", this.autoloadSegments = !Object.prototype.hasOwnProperty.call(t2, \"autoloadSegments\") || t2.autoloadSegments, this.assetsPath = t2.assetsPath, this.initialSegment = t2.initialSegment, t2.audioFactory && this.audioController.setAudioFactory(t2.audioFactory), t2.animationData ? this.setupAnimation(t2.animationData) : t2.path && (-1 !== t2.path.lastIndexOf(\"\\\\\") ? this.path = t2.path.substr(0, t2.path.lastIndexOf(\"\\\\\") + 1) : this.path = t2.path.substr(0, t2.path.lastIndexOf(\"/\") + 1), this.fileName = t2.path.substr(t2.path.lastIndexOf(\"/\") + 1), this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf(\".json\")), dataManager.loadAnimation(t2.path, this.configAnimation, this.onSetupError));\n }, AnimationItem.prototype.onSetupError = function() {\n this.trigger(\"data_failed\");\n }, AnimationItem.prototype.setupAnimation = function(t2) {\n dataManager.completeAnimation(t2, this.configAnimation);\n }, AnimationItem.prototype.setData = function(t2, e2) {\n e2 && \"object\" !== _typeof$4(e2) && (e2 = JSON.parse(e2));\n var r2 = { wrapper: t2, animationData: e2 }, i2 = t2.attributes;\n r2.path = i2.getNamedItem(\"data-animation-path\") ? i2.getNamedItem(\"data-animation-path\").value : i2.getNamedItem(\"data-bm-path\") ? i2.getNamedItem(\"data-bm-path\").value : i2.getNamedItem(\"bm-path\") ? i2.getNamedItem(\"bm-path\").value : \"\", r2.animType = i2.getNamedItem(\"data-anim-type\") ? i2.getNamedItem(\"data-anim-type\").value : i2.getNamedItem(\"data-bm-type\") ? i2.getNamedItem(\"data-bm-type\").value : i2.getNamedItem(\"bm-type\") ? i2.getNamedItem(\"bm-type\").value : i2.getNamedItem(\"data-bm-renderer\") ? i2.getNamedItem(\"data-bm-renderer\").value : i2.getNamedItem(\"bm-renderer\") ? i2.getNamedItem(\"bm-renderer\").value : getRegisteredRenderer() || \"canvas\";\n var s2 = i2.getNamedItem(\"data-anim-loop\") ? i2.getNamedItem(\"data-anim-loop\").value : i2.getNamedItem(\"data-bm-loop\") ? i2.getNamedItem(\"data-bm-loop\").value : i2.getNamedItem(\"bm-loop\") ? i2.getNamedItem(\"bm-loop\").value : \"\";\n \"false\" === s2 ? r2.loop = false : \"true\" === s2 ? r2.loop = true : \"\" !== s2 && (r2.loop = parseInt(s2, 10));\n var a2 = i2.getNamedItem(\"data-anim-autoplay\") ? i2.getNamedItem(\"data-anim-autoplay\").value : i2.getNamedItem(\"data-bm-autoplay\") ? i2.getNamedItem(\"data-bm-autoplay\").value : !i2.getNamedItem(\"bm-autoplay\") || i2.getNamedItem(\"bm-autoplay\").value;\n r2.autoplay = \"false\" !== a2, r2.name = i2.getNamedItem(\"data-name\") ? i2.getNamedItem(\"data-name\").value : i2.getNamedItem(\"data-bm-name\") ? i2.getNamedItem(\"data-bm-name\").value : i2.getNamedItem(\"bm-name\") ? i2.getNamedItem(\"bm-name\").value : \"\", \"false\" === (i2.getNamedItem(\"data-anim-prerender\") ? i2.getNamedItem(\"data-anim-prerender\").value : i2.getNamedItem(\"data-bm-prerender\") ? i2.getNamedItem(\"data-bm-prerender\").value : i2.getNamedItem(\"bm-prerender\") ? i2.getNamedItem(\"bm-prerender\").value : \"\") && (r2.prerender = false), r2.path ? this.setParams(r2) : this.trigger(\"destroy\");\n }, AnimationItem.prototype.includeLayers = function(t2) {\n t2.op > this.animationData.op && (this.animationData.op = t2.op, this.totalFrames = Math.floor(t2.op - this.animationData.ip));\n var e2, r2, i2 = this.animationData.layers, s2 = i2.length, a2 = t2.layers, n2 = a2.length;\n for (r2 = 0; r2 < n2; r2 += 1) for (e2 = 0; e2 < s2; ) {\n if (i2[e2].id === a2[r2].id) {\n i2[e2] = a2[r2];\n break;\n }\n e2 += 1;\n }\n if ((t2.chars || t2.fonts) && (this.renderer.globalData.fontManager.addChars(t2.chars), this.renderer.globalData.fontManager.addFonts(t2.fonts, this.renderer.globalData.defs)), t2.assets) for (s2 = t2.assets.length, e2 = 0; e2 < s2; e2 += 1) this.animationData.assets.push(t2.assets[e2]);\n this.animationData.__complete = false, dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n }, AnimationItem.prototype.onSegmentComplete = function(t2) {\n this.animationData = t2;\n var e2 = getExpressionsPlugin();\n e2 && e2.initExpressions(this), this.loadNextSegment();\n }, AnimationItem.prototype.loadNextSegment = function() {\n var t2 = this.animationData.segments;\n if (!t2 || 0 === t2.length || !this.autoloadSegments) return this.trigger(\"data_ready\"), void (this.timeCompleted = this.totalFrames);\n var e2 = t2.shift();\n this.timeCompleted = e2.time * this.frameRate;\n var r2 = this.path + this.fileName + \"_\" + this.segmentPos + \".json\";\n this.segmentPos += 1, dataManager.loadData(r2, this.includeLayers.bind(this), function() {\n this.trigger(\"data_failed\");\n }.bind(this));\n }, AnimationItem.prototype.loadSegments = function() {\n this.animationData.segments || (this.timeCompleted = this.totalFrames), this.loadNextSegment();\n }, AnimationItem.prototype.imagesLoaded = function() {\n this.trigger(\"loaded_images\"), this.checkLoaded();\n }, AnimationItem.prototype.preloadImages = function() {\n this.imagePreloader.setAssetsPath(this.assetsPath), this.imagePreloader.setPath(this.path), this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n }, AnimationItem.prototype.configAnimation = function(t2) {\n if (this.renderer) try {\n this.animationData = t2, this.initialSegment ? (this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]), this.firstFrame = Math.round(this.initialSegment[0])) : (this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip), this.firstFrame = Math.round(this.animationData.ip)), this.renderer.configAnimation(t2), t2.assets || (t2.assets = []), this.assets = this.animationData.assets, this.frameRate = this.animationData.fr, this.frameMult = this.animationData.fr / 1e3, this.renderer.searchExtraCompositions(t2.assets), this.markers = markerParser(t2.markers || []), this.trigger(\"config_ready\"), this.preloadImages(), this.loadSegments(), this.updaFrameModifier(), this.waitForFontsLoaded(), this.isPaused && this.audioController.pause();\n } catch (t3) {\n this.triggerConfigError(t3);\n }\n }, AnimationItem.prototype.waitForFontsLoaded = function() {\n this.renderer && (this.renderer.globalData.fontManager.isLoaded ? this.checkLoaded() : setTimeout(this.waitForFontsLoaded.bind(this), 20));\n }, AnimationItem.prototype.checkLoaded = function() {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || \"canvas\" !== this.renderer.rendererType) && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var t2 = getExpressionsPlugin();\n t2 && t2.initExpressions(this), this.renderer.initItems(), setTimeout(function() {\n this.trigger(\"DOMLoaded\");\n }.bind(this), 0), this.gotoFrame(), this.autoplay && this.play();\n }\n }, AnimationItem.prototype.resize = function(t2, e2) {\n var r2 = \"number\" == typeof t2 ? t2 : void 0, i2 = \"number\" == typeof e2 ? e2 : void 0;\n this.renderer.updateContainerSize(r2, i2);\n }, AnimationItem.prototype.setSubframe = function(t2) {\n this.isSubframeEnabled = !!t2;\n }, AnimationItem.prototype.gotoFrame = function() {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame, this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted && (this.currentFrame = this.timeCompleted), this.trigger(\"enterFrame\"), this.renderFrame(), this.trigger(\"drawnFrame\");\n }, AnimationItem.prototype.renderFrame = function() {\n if (false !== this.isLoaded && this.renderer) try {\n this.expressionsPlugin && this.expressionsPlugin.resetFrame(), this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (t2) {\n this.triggerRenderFrameError(t2);\n }\n }, AnimationItem.prototype.play = function(t2) {\n t2 && this.name !== t2 || true === this.isPaused && (this.isPaused = false, this.trigger(\"_play\"), this.audioController.resume(), this._idle && (this._idle = false, this.trigger(\"_active\")));\n }, AnimationItem.prototype.pause = function(t2) {\n t2 && this.name !== t2 || false === this.isPaused && (this.isPaused = true, this.trigger(\"_pause\"), this._idle = true, this.trigger(\"_idle\"), this.audioController.pause());\n }, AnimationItem.prototype.togglePause = function(t2) {\n t2 && this.name !== t2 || (true === this.isPaused ? this.play() : this.pause());\n }, AnimationItem.prototype.stop = function(t2) {\n t2 && this.name !== t2 || (this.pause(), this.playCount = 0, this._completedLoop = false, this.setCurrentRawFrameValue(0));\n }, AnimationItem.prototype.getMarkerData = function(t2) {\n for (var e2, r2 = 0; r2 < this.markers.length; r2 += 1) if ((e2 = this.markers[r2]).payload && e2.payload.name === t2) return e2;\n return null;\n }, AnimationItem.prototype.goToAndStop = function(t2, e2, r2) {\n if (!r2 || this.name === r2) {\n var i2 = Number(t2);\n if (isNaN(i2)) {\n var s2 = this.getMarkerData(t2);\n s2 && this.goToAndStop(s2.time, true);\n } else e2 ? this.setCurrentRawFrameValue(t2) : this.setCurrentRawFrameValue(t2 * this.frameModifier);\n this.pause();\n }\n }, AnimationItem.prototype.goToAndPlay = function(t2, e2, r2) {\n if (!r2 || this.name === r2) {\n var i2 = Number(t2);\n if (isNaN(i2)) {\n var s2 = this.getMarkerData(t2);\n s2 && (s2.duration ? this.playSegments([s2.time, s2.time + s2.duration], true) : this.goToAndStop(s2.time, true));\n } else this.goToAndStop(i2, e2, r2);\n this.play();\n }\n }, AnimationItem.prototype.advanceTime = function(t2) {\n if (true !== this.isPaused && false !== this.isLoaded) {\n var e2 = this.currentRawFrame + t2 * this.frameModifier, r2 = false;\n e2 >= this.totalFrames - 1 && this.frameModifier > 0 ? this.loop && this.playCount !== this.loop ? e2 >= this.totalFrames ? (this.playCount += 1, this.checkSegments(e2 % this.totalFrames) || (this.setCurrentRawFrameValue(e2 % this.totalFrames), this._completedLoop = true, this.trigger(\"loopComplete\"))) : this.setCurrentRawFrameValue(e2) : this.checkSegments(e2 > this.totalFrames ? e2 % this.totalFrames : 0) || (r2 = true, e2 = this.totalFrames - 1) : e2 < 0 ? this.checkSegments(e2 % this.totalFrames) || (!this.loop || this.playCount-- <= 0 && true !== this.loop ? (r2 = true, e2 = 0) : (this.setCurrentRawFrameValue(this.totalFrames + e2 % this.totalFrames), this._completedLoop ? this.trigger(\"loopComplete\") : this._completedLoop = true)) : this.setCurrentRawFrameValue(e2), r2 && (this.setCurrentRawFrameValue(e2), this.pause(), this.trigger(\"complete\"));\n }\n }, AnimationItem.prototype.adjustSegment = function(t2, e2) {\n this.playCount = 0, t2[1] < t2[0] ? (this.frameModifier > 0 && (this.playSpeed < 0 ? this.setSpeed(-this.playSpeed) : this.setDirection(-1)), this.totalFrames = t2[0] - t2[1], this.timeCompleted = this.totalFrames, this.firstFrame = t2[1], this.setCurrentRawFrameValue(this.totalFrames - 1e-3 - e2)) : t2[1] > t2[0] && (this.frameModifier < 0 && (this.playSpeed < 0 ? this.setSpeed(-this.playSpeed) : this.setDirection(1)), this.totalFrames = t2[1] - t2[0], this.timeCompleted = this.totalFrames, this.firstFrame = t2[0], this.setCurrentRawFrameValue(1e-3 + e2)), this.trigger(\"segmentStart\");\n }, AnimationItem.prototype.setSegment = function(t2, e2) {\n var r2 = -1;\n this.isPaused && (this.currentRawFrame + this.firstFrame < t2 ? r2 = t2 : this.currentRawFrame + this.firstFrame > e2 && (r2 = e2 - t2)), this.firstFrame = t2, this.totalFrames = e2 - t2, this.timeCompleted = this.totalFrames, -1 !== r2 && this.goToAndStop(r2, true);\n }, AnimationItem.prototype.playSegments = function(t2, e2) {\n if (e2 && (this.segments.length = 0), \"object\" === _typeof$4(t2[0])) {\n var r2, i2 = t2.length;\n for (r2 = 0; r2 < i2; r2 += 1) this.segments.push(t2[r2]);\n } else this.segments.push(t2);\n this.segments.length && e2 && this.adjustSegment(this.segments.shift(), 0), this.isPaused && this.play();\n }, AnimationItem.prototype.resetSegments = function(t2) {\n this.segments.length = 0, this.segments.push([this.animationData.ip, this.animationData.op]), t2 && this.checkSegments(0);\n }, AnimationItem.prototype.checkSegments = function(t2) {\n return !!this.segments.length && (this.adjustSegment(this.segments.shift(), t2), true);\n }, AnimationItem.prototype.destroy = function(t2) {\n t2 && this.name !== t2 || !this.renderer || (this.renderer.destroy(), this.imagePreloader.destroy(), this.trigger(\"destroy\"), this._cbs = null, this.onEnterFrame = null, this.onLoopComplete = null, this.onComplete = null, this.onSegmentStart = null, this.onDestroy = null, this.renderer = null, this.expressionsPlugin = null, this.imagePreloader = null, this.projectInterface = null);\n }, AnimationItem.prototype.setCurrentRawFrameValue = function(t2) {\n this.currentRawFrame = t2, this.gotoFrame();\n }, AnimationItem.prototype.setSpeed = function(t2) {\n this.playSpeed = t2, this.updaFrameModifier();\n }, AnimationItem.prototype.setDirection = function(t2) {\n this.playDirection = t2 < 0 ? -1 : 1, this.updaFrameModifier();\n }, AnimationItem.prototype.setLoop = function(t2) {\n this.loop = t2;\n }, AnimationItem.prototype.setVolume = function(t2, e2) {\n e2 && this.name !== e2 || this.audioController.setVolume(t2);\n }, AnimationItem.prototype.getVolume = function() {\n return this.audioController.getVolume();\n }, AnimationItem.prototype.mute = function(t2) {\n t2 && this.name !== t2 || this.audioController.mute();\n }, AnimationItem.prototype.unmute = function(t2) {\n t2 && this.name !== t2 || this.audioController.unmute();\n }, AnimationItem.prototype.updaFrameModifier = function() {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection, this.audioController.setRate(this.playSpeed * this.playDirection);\n }, AnimationItem.prototype.getPath = function() {\n return this.path;\n }, AnimationItem.prototype.getAssetsPath = function(t2) {\n var e2 = \"\";\n if (t2.e) e2 = t2.p;\n else if (this.assetsPath) {\n var r2 = t2.p;\n -1 !== r2.indexOf(\"images/\") && (r2 = r2.split(\"/\")[1]), e2 = this.assetsPath + r2;\n } else e2 = this.path, e2 += t2.u ? t2.u : \"\", e2 += t2.p;\n return e2;\n }, AnimationItem.prototype.getAssetData = function(t2) {\n for (var e2 = 0, r2 = this.assets.length; e2 < r2; ) {\n if (t2 === this.assets[e2].id) return this.assets[e2];\n e2 += 1;\n }\n return null;\n }, AnimationItem.prototype.hide = function() {\n this.renderer.hide();\n }, AnimationItem.prototype.show = function() {\n this.renderer.show();\n }, AnimationItem.prototype.getDuration = function(t2) {\n return t2 ? this.totalFrames : this.totalFrames / this.frameRate;\n }, AnimationItem.prototype.updateDocumentData = function(t2, e2, r2) {\n try {\n this.renderer.getElementByPath(t2).updateDocumentData(e2, r2);\n } catch (t3) {\n }\n }, AnimationItem.prototype.trigger = function(t2) {\n if (this._cbs && this._cbs[t2]) switch (t2) {\n case \"enterFrame\":\n this.triggerEvent(t2, new BMEnterFrameEvent(t2, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n case \"drawnFrame\":\n this.drawnFrameEvent.currentTime = this.currentFrame, this.drawnFrameEvent.totalTime = this.totalFrames, this.drawnFrameEvent.direction = this.frameModifier, this.triggerEvent(t2, this.drawnFrameEvent);\n break;\n case \"loopComplete\":\n this.triggerEvent(t2, new BMCompleteLoopEvent(t2, this.loop, this.playCount, this.frameMult));\n break;\n case \"complete\":\n this.triggerEvent(t2, new BMCompleteEvent(t2, this.frameMult));\n break;\n case \"segmentStart\":\n this.triggerEvent(t2, new BMSegmentStartEvent(t2, this.firstFrame, this.totalFrames));\n break;\n case \"destroy\":\n this.triggerEvent(t2, new BMDestroyEvent(t2, this));\n break;\n default:\n this.triggerEvent(t2);\n }\n \"enterFrame\" === t2 && this.onEnterFrame && this.onEnterFrame.call(this, new BMEnterFrameEvent(t2, this.currentFrame, this.totalFrames, this.frameMult)), \"loopComplete\" === t2 && this.onLoopComplete && this.onLoopComplete.call(this, new BMCompleteLoopEvent(t2, this.loop, this.playCount, this.frameMult)), \"complete\" === t2 && this.onComplete && this.onComplete.call(this, new BMCompleteEvent(t2, this.frameMult)), \"segmentStart\" === t2 && this.onSegmentStart && this.onSegmentStart.call(this, new BMSegmentStartEvent(t2, this.firstFrame, this.totalFrames)), \"destroy\" === t2 && this.onDestroy && this.onDestroy.call(this, new BMDestroyEvent(t2, this));\n }, AnimationItem.prototype.triggerRenderFrameError = function(t2) {\n var e2 = new BMRenderFrameErrorEvent(t2, this.currentFrame);\n this.triggerEvent(\"error\", e2), this.onError && this.onError.call(this, e2);\n }, AnimationItem.prototype.triggerConfigError = function(t2) {\n var e2 = new BMConfigErrorEvent(t2, this.currentFrame);\n this.triggerEvent(\"error\", e2), this.onError && this.onError.call(this, e2);\n };\n var animationManager = function() {\n var t2 = {}, e2 = [], r2 = 0, i2 = 0, s2 = 0, a2 = true, n2 = false;\n function o2(t3) {\n for (var r3 = 0, s3 = t3.target; r3 < i2; ) e2[r3].animation === s3 && (e2.splice(r3, 1), r3 -= 1, i2 -= 1, s3.isPaused || p2()), r3 += 1;\n }\n function h2(t3, r3) {\n if (!t3) return null;\n for (var s3 = 0; s3 < i2; ) {\n if (e2[s3].elem === t3 && null !== e2[s3].elem) return e2[s3].animation;\n s3 += 1;\n }\n var a3 = new AnimationItem();\n return c2(a3, t3), a3.setData(t3, r3), a3;\n }\n function l2() {\n s2 += 1, d2();\n }\n function p2() {\n s2 -= 1;\n }\n function c2(t3, r3) {\n t3.addEventListener(\"destroy\", o2), t3.addEventListener(\"_active\", l2), t3.addEventListener(\"_idle\", p2), e2.push({ elem: r3, animation: t3 }), i2 += 1;\n }\n function f2(t3) {\n var o3, h3 = t3 - r2;\n for (o3 = 0; o3 < i2; o3 += 1) e2[o3].animation.advanceTime(h3);\n r2 = t3, s2 && !n2 ? window.requestAnimationFrame(f2) : a2 = true;\n }\n function u2(t3) {\n r2 = t3, window.requestAnimationFrame(f2);\n }\n function d2() {\n !n2 && s2 && a2 && (window.requestAnimationFrame(u2), a2 = false);\n }\n return t2.registerAnimation = h2, t2.loadAnimation = function(t3) {\n var e3 = new AnimationItem();\n return c2(e3, null), e3.setParams(t3), e3;\n }, t2.setSpeed = function(t3, r3) {\n var s3;\n for (s3 = 0; s3 < i2; s3 += 1) e2[s3].animation.setSpeed(t3, r3);\n }, t2.setDirection = function(t3, r3) {\n var s3;\n for (s3 = 0; s3 < i2; s3 += 1) e2[s3].animation.setDirection(t3, r3);\n }, t2.play = function(t3) {\n var r3;\n for (r3 = 0; r3 < i2; r3 += 1) e2[r3].animation.play(t3);\n }, t2.pause = function(t3) {\n var r3;\n for (r3 = 0; r3 < i2; r3 += 1) e2[r3].animation.pause(t3);\n }, t2.stop = function(t3) {\n var r3;\n for (r3 = 0; r3 < i2; r3 += 1) e2[r3].animation.stop(t3);\n }, t2.togglePause = function(t3) {\n var r3;\n for (r3 = 0; r3 < i2; r3 += 1) e2[r3].animation.togglePause(t3);\n }, t2.searchAnimations = function(t3, e3, r3) {\n var i3, s3 = [].concat([].slice.call(document.getElementsByClassName(\"lottie\")), [].slice.call(document.getElementsByClassName(\"bodymovin\"))), a3 = s3.length;\n for (i3 = 0; i3 < a3; i3 += 1) r3 && s3[i3].setAttribute(\"data-bm-type\", r3), h2(s3[i3], t3);\n if (e3 && 0 === a3) {\n r3 || (r3 = \"svg\");\n var n3 = document.getElementsByTagName(\"body\")[0];\n n3.innerText = \"\";\n var o3 = createTag(\"div\");\n o3.style.width = \"100%\", o3.style.height = \"100%\", o3.setAttribute(\"data-bm-type\", r3), n3.appendChild(o3), h2(o3, t3);\n }\n }, t2.resize = function() {\n var t3;\n for (t3 = 0; t3 < i2; t3 += 1) e2[t3].animation.resize();\n }, t2.goToAndStop = function(t3, r3, s3) {\n var a3;\n for (a3 = 0; a3 < i2; a3 += 1) e2[a3].animation.goToAndStop(t3, r3, s3);\n }, t2.destroy = function(t3) {\n var r3;\n for (r3 = i2 - 1; r3 >= 0; r3 -= 1) e2[r3].animation.destroy(t3);\n }, t2.freeze = function() {\n n2 = true;\n }, t2.unfreeze = function() {\n n2 = false, d2();\n }, t2.setVolume = function(t3, r3) {\n var s3;\n for (s3 = 0; s3 < i2; s3 += 1) e2[s3].animation.setVolume(t3, r3);\n }, t2.mute = function(t3) {\n var r3;\n for (r3 = 0; r3 < i2; r3 += 1) e2[r3].animation.mute(t3);\n }, t2.unmute = function(t3) {\n var r3;\n for (r3 = 0; r3 < i2; r3 += 1) e2[r3].animation.unmute(t3);\n }, t2.getRegisteredAnimations = function() {\n var t3, r3 = e2.length, i3 = [];\n for (t3 = 0; t3 < r3; t3 += 1) i3.push(e2[t3].animation);\n return i3;\n }, t2;\n }(), BezierFactory = function() {\n var t2 = { getBezierEasing: function(t3, r3, i3, s3, a3) {\n var n3 = a3 || (\"bez_\" + t3 + \"_\" + r3 + \"_\" + i3 + \"_\" + s3).replace(/\\./g, \"p\");\n if (e2[n3]) return e2[n3];\n var o3 = new l2([t3, r3, i3, s3]);\n return e2[n3] = o3, o3;\n } }, e2 = {}, r2 = 0.1, i2 = \"function\" == typeof Float32Array;\n function s2(t3, e3) {\n return 1 - 3 * e3 + 3 * t3;\n }\n function a2(t3, e3) {\n return 3 * e3 - 6 * t3;\n }\n function n2(t3) {\n return 3 * t3;\n }\n function o2(t3, e3, r3) {\n return ((s2(e3, r3) * t3 + a2(e3, r3)) * t3 + n2(e3)) * t3;\n }\n function h2(t3, e3, r3) {\n return 3 * s2(e3, r3) * t3 * t3 + 2 * a2(e3, r3) * t3 + n2(e3);\n }\n function l2(t3) {\n this._p = t3, this._mSampleValues = i2 ? new Float32Array(11) : new Array(11), this._precomputed = false, this.get = this.get.bind(this);\n }\n return l2.prototype = { get: function(t3) {\n var e3 = this._p[0], r3 = this._p[1], i3 = this._p[2], s3 = this._p[3];\n return this._precomputed || this._precompute(), e3 === r3 && i3 === s3 ? t3 : 0 === t3 ? 0 : 1 === t3 ? 1 : o2(this._getTForX(t3), r3, s3);\n }, _precompute: function() {\n var t3 = this._p[0], e3 = this._p[1], r3 = this._p[2], i3 = this._p[3];\n this._precomputed = true, t3 === e3 && r3 === i3 || this._calcSampleValues();\n }, _calcSampleValues: function() {\n for (var t3 = this._p[0], e3 = this._p[2], i3 = 0; i3 < 11; ++i3) this._mSampleValues[i3] = o2(i3 * r2, t3, e3);\n }, _getTForX: function(t3) {\n for (var e3 = this._p[0], i3 = this._p[2], s3 = this._mSampleValues, a3 = 0, n3 = 1; 10 !== n3 && s3[n3] <= t3; ++n3) a3 += r2;\n var l3 = a3 + (t3 - s3[--n3]) / (s3[n3 + 1] - s3[n3]) * r2, p2 = h2(l3, e3, i3);\n return p2 >= 1e-3 ? function(t4, e4, r3, i4) {\n for (var s4 = 0; s4 < 4; ++s4) {\n var a4 = h2(e4, r3, i4);\n if (0 === a4) return e4;\n e4 -= (o2(e4, r3, i4) - t4) / a4;\n }\n return e4;\n }(t3, l3, e3, i3) : 0 === p2 ? l3 : function(t4, e4, r3, i4, s4) {\n var a4, n4, h3 = 0;\n do {\n (a4 = o2(n4 = e4 + (r3 - e4) / 2, i4, s4) - t4) > 0 ? r3 = n4 : e4 = n4;\n } while (Math.abs(a4) > 1e-7 && ++h3 < 10);\n return n4;\n }(t3, a3, a3 + r2, e3, i3);\n } }, t2;\n }(), pooling = { double: function(t2) {\n return t2.concat(createSizedArray(t2.length));\n } }, poolFactory = function(t2, e2, r2) {\n var i2 = 0, s2 = t2, a2 = createSizedArray(s2);\n return { newElement: function() {\n return i2 ? a2[i2 -= 1] : e2();\n }, release: function(t3) {\n i2 === s2 && (a2 = pooling.double(a2), s2 *= 2), r2 && r2(t3), a2[i2] = t3, i2 += 1;\n } };\n }, bezierLengthPool = poolFactory(8, function() {\n return { addedLength: 0, percents: createTypedArray(\"float32\", getDefaultCurveSegments()), lengths: createTypedArray(\"float32\", getDefaultCurveSegments()) };\n }), segmentsLengthPool = poolFactory(8, function() {\n return { lengths: [], totalLength: 0 };\n }, function(t2) {\n var e2, r2 = t2.lengths.length;\n for (e2 = 0; e2 < r2; e2 += 1) bezierLengthPool.release(t2.lengths[e2]);\n t2.lengths.length = 0;\n });\n function bezFunction() {\n var t2 = Math;\n function e2(t3, e3, r3, i3, s3, a3) {\n var n3 = t3 * i3 + e3 * s3 + r3 * a3 - s3 * i3 - a3 * t3 - r3 * e3;\n return n3 > -1e-3 && n3 < 1e-3;\n }\n var r2 = function(t3, e3, r3, i3) {\n var s3, a3, n3, o3, h3, l2, p2 = getDefaultCurveSegments(), c2 = 0, f2 = [], u2 = [], d2 = bezierLengthPool.newElement();\n for (n3 = r3.length, s3 = 0; s3 < p2; s3 += 1) {\n for (h3 = s3 / (p2 - 1), l2 = 0, a3 = 0; a3 < n3; a3 += 1) o3 = bmPow(1 - h3, 3) * t3[a3] + 3 * bmPow(1 - h3, 2) * h3 * r3[a3] + 3 * (1 - h3) * bmPow(h3, 2) * i3[a3] + bmPow(h3, 3) * e3[a3], f2[a3] = o3, null !== u2[a3] && (l2 += bmPow(f2[a3] - u2[a3], 2)), u2[a3] = f2[a3];\n l2 && (c2 += l2 = bmSqrt(l2)), d2.percents[s3] = h3, d2.lengths[s3] = c2;\n }\n return d2.addedLength = c2, d2;\n };\n function i2(t3) {\n this.segmentLength = 0, this.points = new Array(t3);\n }\n function s2(t3, e3) {\n this.partialLength = t3, this.point = e3;\n }\n var a2, n2 = (a2 = {}, function(t3, r3, n3, o3) {\n var h3 = (t3[0] + \"_\" + t3[1] + \"_\" + r3[0] + \"_\" + r3[1] + \"_\" + n3[0] + \"_\" + n3[1] + \"_\" + o3[0] + \"_\" + o3[1]).replace(/\\./g, \"p\");\n if (!a2[h3]) {\n var l2, p2, c2, f2, u2, d2, m2, y2 = getDefaultCurveSegments(), g2 = 0, v2 = null;\n 2 === t3.length && (t3[0] !== r3[0] || t3[1] !== r3[1]) && e2(t3[0], t3[1], r3[0], r3[1], t3[0] + n3[0], t3[1] + n3[1]) && e2(t3[0], t3[1], r3[0], r3[1], r3[0] + o3[0], r3[1] + o3[1]) && (y2 = 2);\n var b2 = new i2(y2);\n for (c2 = n3.length, l2 = 0; l2 < y2; l2 += 1) {\n for (m2 = createSizedArray(c2), u2 = l2 / (y2 - 1), d2 = 0, p2 = 0; p2 < c2; p2 += 1) f2 = bmPow(1 - u2, 3) * t3[p2] + 3 * bmPow(1 - u2, 2) * u2 * (t3[p2] + n3[p2]) + 3 * (1 - u2) * bmPow(u2, 2) * (r3[p2] + o3[p2]) + bmPow(u2, 3) * r3[p2], m2[p2] = f2, null !== v2 && (d2 += bmPow(m2[p2] - v2[p2], 2));\n g2 += d2 = bmSqrt(d2), b2.points[l2] = new s2(d2, m2), v2 = m2;\n }\n b2.segmentLength = g2, a2[h3] = b2;\n }\n return a2[h3];\n });\n function o2(t3, e3) {\n var r3 = e3.percents, i3 = e3.lengths, s3 = r3.length, a3 = bmFloor((s3 - 1) * t3), n3 = t3 * e3.addedLength, o3 = 0;\n if (a3 === s3 - 1 || 0 === a3 || n3 === i3[a3]) return r3[a3];\n for (var h3 = i3[a3] > n3 ? -1 : 1, l2 = true; l2; ) if (i3[a3] <= n3 && i3[a3 + 1] > n3 ? (o3 = (n3 - i3[a3]) / (i3[a3 + 1] - i3[a3]), l2 = false) : a3 += h3, a3 < 0 || a3 >= s3 - 1) {\n if (a3 === s3 - 1) return r3[a3];\n l2 = false;\n }\n return r3[a3] + (r3[a3 + 1] - r3[a3]) * o3;\n }\n var h2 = createTypedArray(\"float32\", 8);\n return { getSegmentsLength: function(t3) {\n var e3, i3 = segmentsLengthPool.newElement(), s3 = t3.c, a3 = t3.v, n3 = t3.o, o3 = t3.i, h3 = t3._length, l2 = i3.lengths, p2 = 0;\n for (e3 = 0; e3 < h3 - 1; e3 += 1) l2[e3] = r2(a3[e3], a3[e3 + 1], n3[e3], o3[e3 + 1]), p2 += l2[e3].addedLength;\n return s3 && h3 && (l2[e3] = r2(a3[e3], a3[0], n3[e3], o3[0]), p2 += l2[e3].addedLength), i3.totalLength = p2, i3;\n }, getNewSegment: function(e3, r3, i3, s3, a3, n3, l2) {\n a3 < 0 ? a3 = 0 : a3 > 1 && (a3 = 1);\n var p2, c2 = o2(a3, l2), f2 = o2(n3 = n3 > 1 ? 1 : n3, l2), u2 = e3.length, d2 = 1 - c2, m2 = 1 - f2, y2 = d2 * d2 * d2, g2 = c2 * d2 * d2 * 3, v2 = c2 * c2 * d2 * 3, b2 = c2 * c2 * c2, _2 = d2 * d2 * m2, P2 = c2 * d2 * m2 + d2 * c2 * m2 + d2 * d2 * f2, S2 = c2 * c2 * m2 + d2 * c2 * f2 + c2 * d2 * f2, E2 = c2 * c2 * f2, x2 = d2 * m2 * m2, C2 = c2 * m2 * m2 + d2 * f2 * m2 + d2 * m2 * f2, A2 = c2 * f2 * m2 + d2 * f2 * f2 + c2 * m2 * f2, w2 = c2 * f2 * f2, k2 = m2 * m2 * m2, T2 = f2 * m2 * m2 + m2 * f2 * m2 + m2 * m2 * f2, M2 = f2 * f2 * m2 + m2 * f2 * f2 + f2 * m2 * f2, D = f2 * f2 * f2;\n for (p2 = 0; p2 < u2; p2 += 1) h2[4 * p2] = t2.round(1e3 * (y2 * e3[p2] + g2 * i3[p2] + v2 * s3[p2] + b2 * r3[p2])) / 1e3, h2[4 * p2 + 1] = t2.round(1e3 * (_2 * e3[p2] + P2 * i3[p2] + S2 * s3[p2] + E2 * r3[p2])) / 1e3, h2[4 * p2 + 2] = t2.round(1e3 * (x2 * e3[p2] + C2 * i3[p2] + A2 * s3[p2] + w2 * r3[p2])) / 1e3, h2[4 * p2 + 3] = t2.round(1e3 * (k2 * e3[p2] + T2 * i3[p2] + M2 * s3[p2] + D * r3[p2])) / 1e3;\n return h2;\n }, getPointInSegment: function(e3, r3, i3, s3, a3, n3) {\n var h3 = o2(a3, n3), l2 = 1 - h3;\n return [t2.round(1e3 * (l2 * l2 * l2 * e3[0] + (h3 * l2 * l2 + l2 * h3 * l2 + l2 * l2 * h3) * i3[0] + (h3 * h3 * l2 + l2 * h3 * h3 + h3 * l2 * h3) * s3[0] + h3 * h3 * h3 * r3[0])) / 1e3, t2.round(1e3 * (l2 * l2 * l2 * e3[1] + (h3 * l2 * l2 + l2 * h3 * l2 + l2 * l2 * h3) * i3[1] + (h3 * h3 * l2 + l2 * h3 * h3 + h3 * l2 * h3) * s3[1] + h3 * h3 * h3 * r3[1])) / 1e3];\n }, buildBezierData: n2, pointOnLine2D: e2, pointOnLine3D: function(r3, i3, s3, a3, n3, o3, h3, l2, p2) {\n if (0 === s3 && 0 === o3 && 0 === p2) return e2(r3, i3, a3, n3, h3, l2);\n var c2, f2 = t2.sqrt(t2.pow(a3 - r3, 2) + t2.pow(n3 - i3, 2) + t2.pow(o3 - s3, 2)), u2 = t2.sqrt(t2.pow(h3 - r3, 2) + t2.pow(l2 - i3, 2) + t2.pow(p2 - s3, 2)), d2 = t2.sqrt(t2.pow(h3 - a3, 2) + t2.pow(l2 - n3, 2) + t2.pow(p2 - o3, 2));\n return (c2 = f2 > u2 ? f2 > d2 ? f2 - u2 - d2 : d2 - u2 - f2 : d2 > u2 ? d2 - u2 - f2 : u2 - f2 - d2) > -1e-4 && c2 < 1e-4;\n } };\n }\n var bez = bezFunction(), initFrame = initialDefaultFrame, mathAbs = Math.abs;\n function interpolateValue(t2, e2) {\n var r2, i2 = this.offsetTime;\n \"multidimensional\" === this.propType && (r2 = createTypedArray(\"float32\", this.pv.length));\n for (var s2, a2, n2, o2, h2, l2, p2, c2, f2, u2 = e2.lastIndex, d2 = u2, m2 = this.keyframes.length - 1, y2 = true; y2; ) {\n if (s2 = this.keyframes[d2], a2 = this.keyframes[d2 + 1], d2 === m2 - 1 && t2 >= a2.t - i2) {\n s2.h && (s2 = a2), u2 = 0;\n break;\n }\n if (a2.t - i2 > t2) {\n u2 = d2;\n break;\n }\n d2 < m2 - 1 ? d2 += 1 : (u2 = 0, y2 = false);\n }\n n2 = this.keyframesMetadata[d2] || {};\n var g2, v2 = a2.t - i2, b2 = s2.t - i2;\n if (s2.to) {\n n2.bezierData || (n2.bezierData = bez.buildBezierData(s2.s, a2.s || s2.e, s2.to, s2.ti));\n var _2 = n2.bezierData;\n if (t2 >= v2 || t2 < b2) {\n var P2 = t2 >= v2 ? _2.points.length - 1 : 0;\n for (h2 = _2.points[P2].point.length, o2 = 0; o2 < h2; o2 += 1) r2[o2] = _2.points[P2].point[o2];\n } else {\n n2.__fnct ? f2 = n2.__fnct : (f2 = BezierFactory.getBezierEasing(s2.o.x, s2.o.y, s2.i.x, s2.i.y, s2.n).get, n2.__fnct = f2), l2 = f2((t2 - b2) / (v2 - b2));\n var S2, E2 = _2.segmentLength * l2, x2 = e2.lastFrame < t2 && e2._lastKeyframeIndex === d2 ? e2._lastAddedLength : 0;\n for (c2 = e2.lastFrame < t2 && e2._lastKeyframeIndex === d2 ? e2._lastPoint : 0, y2 = true, p2 = _2.points.length; y2; ) {\n if (x2 += _2.points[c2].partialLength, 0 === E2 || 0 === l2 || c2 === _2.points.length - 1) {\n for (h2 = _2.points[c2].point.length, o2 = 0; o2 < h2; o2 += 1) r2[o2] = _2.points[c2].point[o2];\n break;\n }\n if (E2 >= x2 && E2 < x2 + _2.points[c2 + 1].partialLength) {\n for (S2 = (E2 - x2) / _2.points[c2 + 1].partialLength, h2 = _2.points[c2].point.length, o2 = 0; o2 < h2; o2 += 1) r2[o2] = _2.points[c2].point[o2] + (_2.points[c2 + 1].point[o2] - _2.points[c2].point[o2]) * S2;\n break;\n }\n c2 < p2 - 1 ? c2 += 1 : y2 = false;\n }\n e2._lastPoint = c2, e2._lastAddedLength = x2 - _2.points[c2].partialLength, e2._lastKeyframeIndex = d2;\n }\n } else {\n var C2, A2, w2, k2, T2;\n if (m2 = s2.s.length, g2 = a2.s || s2.e, this.sh && 1 !== s2.h) t2 >= v2 ? (r2[0] = g2[0], r2[1] = g2[1], r2[2] = g2[2]) : t2 <= b2 ? (r2[0] = s2.s[0], r2[1] = s2.s[1], r2[2] = s2.s[2]) : quaternionToEuler(r2, slerp(createQuaternion(s2.s), createQuaternion(g2), (t2 - b2) / (v2 - b2)));\n else for (d2 = 0; d2 < m2; d2 += 1) 1 !== s2.h && (t2 >= v2 ? l2 = 1 : t2 < b2 ? l2 = 0 : (s2.o.x.constructor === Array ? (n2.__fnct || (n2.__fnct = []), n2.__fnct[d2] ? f2 = n2.__fnct[d2] : (C2 = void 0 === s2.o.x[d2] ? s2.o.x[0] : s2.o.x[d2], A2 = void 0 === s2.o.y[d2] ? s2.o.y[0] : s2.o.y[d2], w2 = void 0 === s2.i.x[d2] ? s2.i.x[0] : s2.i.x[d2], k2 = void 0 === s2.i.y[d2] ? s2.i.y[0] : s2.i.y[d2], f2 = BezierFactory.getBezierEasing(C2, A2, w2, k2).get, n2.__fnct[d2] = f2)) : n2.__fnct ? f2 = n2.__fnct : (C2 = s2.o.x, A2 = s2.o.y, w2 = s2.i.x, k2 = s2.i.y, f2 = BezierFactory.getBezierEasing(C2, A2, w2, k2).get, s2.keyframeMetadata = f2), l2 = f2((t2 - b2) / (v2 - b2)))), g2 = a2.s || s2.e, T2 = 1 === s2.h ? s2.s[d2] : s2.s[d2] + (g2[d2] - s2.s[d2]) * l2, \"multidimensional\" === this.propType ? r2[d2] = T2 : r2 = T2;\n }\n return e2.lastIndex = u2, r2;\n }\n function slerp(t2, e2, r2) {\n var i2, s2, a2, n2, o2, h2 = [], l2 = t2[0], p2 = t2[1], c2 = t2[2], f2 = t2[3], u2 = e2[0], d2 = e2[1], m2 = e2[2], y2 = e2[3];\n return (s2 = l2 * u2 + p2 * d2 + c2 * m2 + f2 * y2) < 0 && (s2 = -s2, u2 = -u2, d2 = -d2, m2 = -m2, y2 = -y2), 1 - s2 > 1e-6 ? (i2 = Math.acos(s2), a2 = Math.sin(i2), n2 = Math.sin((1 - r2) * i2) / a2, o2 = Math.sin(r2 * i2) / a2) : (n2 = 1 - r2, o2 = r2), h2[0] = n2 * l2 + o2 * u2, h2[1] = n2 * p2 + o2 * d2, h2[2] = n2 * c2 + o2 * m2, h2[3] = n2 * f2 + o2 * y2, h2;\n }\n function quaternionToEuler(t2, e2) {\n var r2 = e2[0], i2 = e2[1], s2 = e2[2], a2 = e2[3], n2 = Math.atan2(2 * i2 * a2 - 2 * r2 * s2, 1 - 2 * i2 * i2 - 2 * s2 * s2), o2 = Math.asin(2 * r2 * i2 + 2 * s2 * a2), h2 = Math.atan2(2 * r2 * a2 - 2 * i2 * s2, 1 - 2 * r2 * r2 - 2 * s2 * s2);\n t2[0] = n2 / degToRads, t2[1] = o2 / degToRads, t2[2] = h2 / degToRads;\n }\n function createQuaternion(t2) {\n var e2 = t2[0] * degToRads, r2 = t2[1] * degToRads, i2 = t2[2] * degToRads, s2 = Math.cos(e2 / 2), a2 = Math.cos(r2 / 2), n2 = Math.cos(i2 / 2), o2 = Math.sin(e2 / 2), h2 = Math.sin(r2 / 2), l2 = Math.sin(i2 / 2);\n return [o2 * h2 * n2 + s2 * a2 * l2, o2 * a2 * n2 + s2 * h2 * l2, s2 * h2 * n2 - o2 * a2 * l2, s2 * a2 * n2 - o2 * h2 * l2];\n }\n function getValueAtCurrentTime() {\n var t2 = this.comp.renderedFrame - this.offsetTime, e2 = this.keyframes[0].t - this.offsetTime, r2 = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n if (!(t2 === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= r2 && t2 >= r2 || this._caching.lastFrame < e2 && t2 < e2))) {\n this._caching.lastFrame >= t2 && (this._caching._lastKeyframeIndex = -1, this._caching.lastIndex = 0);\n var i2 = this.interpolateValue(t2, this._caching);\n this.pv = i2;\n }\n return this._caching.lastFrame = t2, this.pv;\n }\n function setVValue(t2) {\n var e2;\n if (\"unidimensional\" === this.propType) e2 = t2 * this.mult, mathAbs(this.v - e2) > 1e-5 && (this.v = e2, this._mdf = true);\n else for (var r2 = 0, i2 = this.v.length; r2 < i2; ) e2 = t2[r2] * this.mult, mathAbs(this.v[r2] - e2) > 1e-5 && (this.v[r2] = e2, this._mdf = true), r2 += 1;\n }\n function processEffectsSequence() {\n if (this.elem.globalData.frameId !== this.frameId && this.effectsSequence.length) if (this.lock) this.setVValue(this.pv);\n else {\n var t2;\n this.lock = true, this._mdf = this._isFirstFrame;\n var e2 = this.effectsSequence.length, r2 = this.kf ? this.pv : this.data.k;\n for (t2 = 0; t2 < e2; t2 += 1) r2 = this.effectsSequence[t2](r2);\n this.setVValue(r2), this._isFirstFrame = false, this.lock = false, this.frameId = this.elem.globalData.frameId;\n }\n }\n function addEffect(t2) {\n this.effectsSequence.push(t2), this.container.addDynamicProperty(this);\n }\n function ValueProperty(t2, e2, r2, i2) {\n this.propType = \"unidimensional\", this.mult = r2 || 1, this.data = e2, this.v = r2 ? e2.k * r2 : e2.k, this.pv = e2.k, this._mdf = false, this.elem = t2, this.container = i2, this.comp = t2.comp, this.k = false, this.kf = false, this.vel = 0, this.effectsSequence = [], this._isFirstFrame = true, this.getValue = processEffectsSequence, this.setVValue = setVValue, this.addEffect = addEffect;\n }\n function MultiDimensionalProperty(t2, e2, r2, i2) {\n var s2;\n this.propType = \"multidimensional\", this.mult = r2 || 1, this.data = e2, this._mdf = false, this.elem = t2, this.container = i2, this.comp = t2.comp, this.k = false, this.kf = false, this.frameId = -1;\n var a2 = e2.k.length;\n for (this.v = createTypedArray(\"float32\", a2), this.pv = createTypedArray(\"float32\", a2), this.vel = createTypedArray(\"float32\", a2), s2 = 0; s2 < a2; s2 += 1) this.v[s2] = e2.k[s2] * this.mult, this.pv[s2] = e2.k[s2];\n this._isFirstFrame = true, this.effectsSequence = [], this.getValue = processEffectsSequence, this.setVValue = setVValue, this.addEffect = addEffect;\n }\n function KeyframedValueProperty(t2, e2, r2, i2) {\n this.propType = \"unidimensional\", this.keyframes = e2.k, this.keyframesMetadata = [], this.offsetTime = t2.data.st, this.frameId = -1, this._caching = { lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1 }, this.k = true, this.kf = true, this.data = e2, this.mult = r2 || 1, this.elem = t2, this.container = i2, this.comp = t2.comp, this.v = initFrame, this.pv = initFrame, this._isFirstFrame = true, this.getValue = processEffectsSequence, this.setVValue = setVValue, this.interpolateValue = interpolateValue, this.effectsSequence = [getValueAtCurrentTime.bind(this)], this.addEffect = addEffect;\n }\n function KeyframedMultidimensionalProperty(t2, e2, r2, i2) {\n var s2;\n this.propType = \"multidimensional\";\n var a2, n2, o2, h2, l2 = e2.k.length;\n for (s2 = 0; s2 < l2 - 1; s2 += 1) e2.k[s2].to && e2.k[s2].s && e2.k[s2 + 1] && e2.k[s2 + 1].s && (a2 = e2.k[s2].s, n2 = e2.k[s2 + 1].s, o2 = e2.k[s2].to, h2 = e2.k[s2].ti, (2 === a2.length && (a2[0] !== n2[0] || a2[1] !== n2[1]) && bez.pointOnLine2D(a2[0], a2[1], n2[0], n2[1], a2[0] + o2[0], a2[1] + o2[1]) && bez.pointOnLine2D(a2[0], a2[1], n2[0], n2[1], n2[0] + h2[0], n2[1] + h2[1]) || 3 === a2.length && (a2[0] !== n2[0] || a2[1] !== n2[1] || a2[2] !== n2[2]) && bez.pointOnLine3D(a2[0], a2[1], a2[2], n2[0], n2[1], n2[2], a2[0] + o2[0], a2[1] + o2[1], a2[2] + o2[2]) && bez.pointOnLine3D(a2[0], a2[1], a2[2], n2[0], n2[1], n2[2], n2[0] + h2[0], n2[1] + h2[1], n2[2] + h2[2])) && (e2.k[s2].to = null, e2.k[s2].ti = null), a2[0] === n2[0] && a2[1] === n2[1] && 0 === o2[0] && 0 === o2[1] && 0 === h2[0] && 0 === h2[1] && (2 === a2.length || a2[2] === n2[2] && 0 === o2[2] && 0 === h2[2]) && (e2.k[s2].to = null, e2.k[s2].ti = null));\n this.effectsSequence = [getValueAtCurrentTime.bind(this)], this.data = e2, this.keyframes = e2.k, this.keyframesMetadata = [], this.offsetTime = t2.data.st, this.k = true, this.kf = true, this._isFirstFrame = true, this.mult = r2 || 1, this.elem = t2, this.container = i2, this.comp = t2.comp, this.getValue = processEffectsSequence, this.setVValue = setVValue, this.interpolateValue = interpolateValue, this.frameId = -1;\n var p2 = e2.k[0].s.length;\n for (this.v = createTypedArray(\"float32\", p2), this.pv = createTypedArray(\"float32\", p2), s2 = 0; s2 < p2; s2 += 1) this.v[s2] = initFrame, this.pv[s2] = initFrame;\n this._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray(\"float32\", p2) }, this.addEffect = addEffect;\n }\n var PropertyFactory = (ob = { getProp: function(t2, e2, r2, i2, s2) {\n var a2;\n if (e2.sid && (e2 = t2.globalData.slotManager.getProp(e2)), e2.k.length) if (\"number\" == typeof e2.k[0]) a2 = new MultiDimensionalProperty(t2, e2, i2, s2);\n else switch (r2) {\n case 0:\n a2 = new KeyframedValueProperty(t2, e2, i2, s2);\n break;\n case 1:\n a2 = new KeyframedMultidimensionalProperty(t2, e2, i2, s2);\n }\n else a2 = new ValueProperty(t2, e2, i2, s2);\n return a2.effectsSequence.length && s2.addDynamicProperty(a2), a2;\n } }, ob), ob;\n function DynamicPropertyContainer() {\n }\n DynamicPropertyContainer.prototype = { addDynamicProperty: function(t2) {\n -1 === this.dynamicProperties.indexOf(t2) && (this.dynamicProperties.push(t2), this.container.addDynamicProperty(this), this._isAnimated = true);\n }, iterateDynamicProperties: function() {\n var t2;\n this._mdf = false;\n var e2 = this.dynamicProperties.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.dynamicProperties[t2].getValue(), this.dynamicProperties[t2]._mdf && (this._mdf = true);\n }, initDynamicPropertyContainer: function(t2) {\n this.container = t2, this.dynamicProperties = [], this._mdf = false, this._isAnimated = false;\n } };\n var pointPool = poolFactory(8, function() {\n return createTypedArray(\"float32\", 2);\n });\n function ShapePath() {\n this.c = false, this._length = 0, this._maxLength = 8, this.v = createSizedArray(this._maxLength), this.o = createSizedArray(this._maxLength), this.i = createSizedArray(this._maxLength);\n }\n ShapePath.prototype.setPathData = function(t2, e2) {\n this.c = t2, this.setLength(e2);\n for (var r2 = 0; r2 < e2; ) this.v[r2] = pointPool.newElement(), this.o[r2] = pointPool.newElement(), this.i[r2] = pointPool.newElement(), r2 += 1;\n }, ShapePath.prototype.setLength = function(t2) {\n for (; this._maxLength < t2; ) this.doubleArrayLength();\n this._length = t2;\n }, ShapePath.prototype.doubleArrayLength = function() {\n this.v = this.v.concat(createSizedArray(this._maxLength)), this.i = this.i.concat(createSizedArray(this._maxLength)), this.o = this.o.concat(createSizedArray(this._maxLength)), this._maxLength *= 2;\n }, ShapePath.prototype.setXYAt = function(t2, e2, r2, i2, s2) {\n var a2;\n switch (this._length = Math.max(this._length, i2 + 1), this._length >= this._maxLength && this.doubleArrayLength(), r2) {\n case \"v\":\n a2 = this.v;\n break;\n case \"i\":\n a2 = this.i;\n break;\n case \"o\":\n a2 = this.o;\n break;\n default:\n a2 = [];\n }\n (!a2[i2] || a2[i2] && !s2) && (a2[i2] = pointPool.newElement()), a2[i2][0] = t2, a2[i2][1] = e2;\n }, ShapePath.prototype.setTripleAt = function(t2, e2, r2, i2, s2, a2, n2, o2) {\n this.setXYAt(t2, e2, \"v\", n2, o2), this.setXYAt(r2, i2, \"o\", n2, o2), this.setXYAt(s2, a2, \"i\", n2, o2);\n }, ShapePath.prototype.reverse = function() {\n var t2 = new ShapePath();\n t2.setPathData(this.c, this._length);\n var e2 = this.v, r2 = this.o, i2 = this.i, s2 = 0;\n this.c && (t2.setTripleAt(e2[0][0], e2[0][1], i2[0][0], i2[0][1], r2[0][0], r2[0][1], 0, false), s2 = 1);\n var a2, n2 = this._length - 1, o2 = this._length;\n for (a2 = s2; a2 < o2; a2 += 1) t2.setTripleAt(e2[n2][0], e2[n2][1], i2[n2][0], i2[n2][1], r2[n2][0], r2[n2][1], a2, false), n2 -= 1;\n return t2;\n }, ShapePath.prototype.length = function() {\n return this._length;\n };\n var shapePool = (factory = poolFactory(4, function() {\n return new ShapePath();\n }, function(t2) {\n var e2, r2 = t2._length;\n for (e2 = 0; e2 < r2; e2 += 1) pointPool.release(t2.v[e2]), pointPool.release(t2.i[e2]), pointPool.release(t2.o[e2]), t2.v[e2] = null, t2.i[e2] = null, t2.o[e2] = null;\n t2._length = 0, t2.c = false;\n }), factory.clone = function(t2) {\n var e2, r2 = factory.newElement(), i2 = void 0 === t2._length ? t2.v.length : t2._length;\n for (r2.setLength(i2), r2.c = t2.c, e2 = 0; e2 < i2; e2 += 1) r2.setTripleAt(t2.v[e2][0], t2.v[e2][1], t2.o[e2][0], t2.o[e2][1], t2.i[e2][0], t2.i[e2][1], e2);\n return r2;\n }, factory), factory;\n function ShapeCollection() {\n this._length = 0, this._maxLength = 4, this.shapes = createSizedArray(this._maxLength);\n }\n ShapeCollection.prototype.addShape = function(t2) {\n this._length === this._maxLength && (this.shapes = this.shapes.concat(createSizedArray(this._maxLength)), this._maxLength *= 2), this.shapes[this._length] = t2, this._length += 1;\n }, ShapeCollection.prototype.releaseShapes = function() {\n var t2;\n for (t2 = 0; t2 < this._length; t2 += 1) shapePool.release(this.shapes[t2]);\n this._length = 0;\n };\n var shapeCollectionPool = function() {\n var t2 = { newShapeCollection: function() {\n return e2 ? i2[e2 -= 1] : new ShapeCollection();\n }, release: function(t3) {\n var s2, a2 = t3._length;\n for (s2 = 0; s2 < a2; s2 += 1) shapePool.release(t3.shapes[s2]);\n t3._length = 0, e2 === r2 && (i2 = pooling.double(i2), r2 *= 2), i2[e2] = t3, e2 += 1;\n } }, e2 = 0, r2 = 4, i2 = createSizedArray(r2);\n return t2;\n }(), ShapePropertyFactory = function() {\n var t2 = -999999;\n function e2(t3, e3, r3) {\n var i3, s3, a3, n3, o3, h3, l3, p3, c3, f3 = r3.lastIndex, u2 = this.keyframes;\n if (t3 < u2[0].t - this.offsetTime) i3 = u2[0].s[0], a3 = true, f3 = 0;\n else if (t3 >= u2[u2.length - 1].t - this.offsetTime) i3 = u2[u2.length - 1].s ? u2[u2.length - 1].s[0] : u2[u2.length - 2].e[0], a3 = true;\n else {\n for (var d2, m2, y2, g2 = f3, v2 = u2.length - 1, b2 = true; b2 && (d2 = u2[g2], !((m2 = u2[g2 + 1]).t - this.offsetTime > t3)); ) g2 < v2 - 1 ? g2 += 1 : b2 = false;\n if (y2 = this.keyframesMetadata[g2] || {}, f3 = g2, !(a3 = 1 === d2.h)) {\n if (t3 >= m2.t - this.offsetTime) p3 = 1;\n else if (t3 < d2.t - this.offsetTime) p3 = 0;\n else {\n var _2;\n y2.__fnct ? _2 = y2.__fnct : (_2 = BezierFactory.getBezierEasing(d2.o.x, d2.o.y, d2.i.x, d2.i.y).get, y2.__fnct = _2), p3 = _2((t3 - (d2.t - this.offsetTime)) / (m2.t - this.offsetTime - (d2.t - this.offsetTime)));\n }\n s3 = m2.s ? m2.s[0] : d2.e[0];\n }\n i3 = d2.s[0];\n }\n for (h3 = e3._length, l3 = i3.i[0].length, r3.lastIndex = f3, n3 = 0; n3 < h3; n3 += 1) for (o3 = 0; o3 < l3; o3 += 1) c3 = a3 ? i3.i[n3][o3] : i3.i[n3][o3] + (s3.i[n3][o3] - i3.i[n3][o3]) * p3, e3.i[n3][o3] = c3, c3 = a3 ? i3.o[n3][o3] : i3.o[n3][o3] + (s3.o[n3][o3] - i3.o[n3][o3]) * p3, e3.o[n3][o3] = c3, c3 = a3 ? i3.v[n3][o3] : i3.v[n3][o3] + (s3.v[n3][o3] - i3.v[n3][o3]) * p3, e3.v[n3][o3] = c3;\n }\n function r2() {\n var e3 = this.comp.renderedFrame - this.offsetTime, r3 = this.keyframes[0].t - this.offsetTime, i3 = this.keyframes[this.keyframes.length - 1].t - this.offsetTime, s3 = this._caching.lastFrame;\n return s3 !== t2 && (s3 < r3 && e3 < r3 || s3 > i3 && e3 > i3) || (this._caching.lastIndex = s3 < e3 ? this._caching.lastIndex : 0, this.interpolateShape(e3, this.pv, this._caching)), this._caching.lastFrame = e3, this.pv;\n }\n function i2() {\n this.paths = this.localShapeCollection;\n }\n function s2(t3) {\n (function(t4, e3) {\n if (t4._length !== e3._length || t4.c !== e3.c) return false;\n var r3, i3 = t4._length;\n for (r3 = 0; r3 < i3; r3 += 1) if (t4.v[r3][0] !== e3.v[r3][0] || t4.v[r3][1] !== e3.v[r3][1] || t4.o[r3][0] !== e3.o[r3][0] || t4.o[r3][1] !== e3.o[r3][1] || t4.i[r3][0] !== e3.i[r3][0] || t4.i[r3][1] !== e3.i[r3][1]) return false;\n return true;\n })(this.v, t3) || (this.v = shapePool.clone(t3), this.localShapeCollection.releaseShapes(), this.localShapeCollection.addShape(this.v), this._mdf = true, this.paths = this.localShapeCollection);\n }\n function a2() {\n if (this.elem.globalData.frameId !== this.frameId) if (this.effectsSequence.length) if (this.lock) this.setVValue(this.pv);\n else {\n var t3, e3;\n this.lock = true, this._mdf = false, t3 = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k;\n var r3 = this.effectsSequence.length;\n for (e3 = 0; e3 < r3; e3 += 1) t3 = this.effectsSequence[e3](t3);\n this.setVValue(t3), this.lock = false, this.frameId = this.elem.globalData.frameId;\n }\n else this._mdf = false;\n }\n function n2(t3, e3, r3) {\n this.propType = \"shape\", this.comp = t3.comp, this.container = t3, this.elem = t3, this.data = e3, this.k = false, this.kf = false, this._mdf = false;\n var s3 = 3 === r3 ? e3.pt.k : e3.ks.k;\n this.v = shapePool.clone(s3), this.pv = shapePool.clone(this.v), this.localShapeCollection = shapeCollectionPool.newShapeCollection(), this.paths = this.localShapeCollection, this.paths.addShape(this.v), this.reset = i2, this.effectsSequence = [];\n }\n function o2(t3) {\n this.effectsSequence.push(t3), this.container.addDynamicProperty(this);\n }\n function h2(e3, s3, a3) {\n this.propType = \"shape\", this.comp = e3.comp, this.elem = e3, this.container = e3, this.offsetTime = e3.data.st, this.keyframes = 3 === a3 ? s3.pt.k : s3.ks.k, this.keyframesMetadata = [], this.k = true, this.kf = true;\n var n3 = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement(), this.v.setPathData(this.keyframes[0].s[0].c, n3), this.pv = shapePool.clone(this.v), this.localShapeCollection = shapeCollectionPool.newShapeCollection(), this.paths = this.localShapeCollection, this.paths.addShape(this.v), this.lastFrame = t2, this.reset = i2, this._caching = { lastFrame: t2, lastIndex: 0 }, this.effectsSequence = [r2.bind(this)];\n }\n n2.prototype.interpolateShape = e2, n2.prototype.getValue = a2, n2.prototype.setVValue = s2, n2.prototype.addEffect = o2, h2.prototype.getValue = a2, h2.prototype.interpolateShape = e2, h2.prototype.setVValue = s2, h2.prototype.addEffect = o2;\n var l2 = function() {\n var t3 = roundCorner;\n function e3(t4, e4) {\n this.v = shapePool.newElement(), this.v.setPathData(true, 4), this.localShapeCollection = shapeCollectionPool.newShapeCollection(), this.paths = this.localShapeCollection, this.localShapeCollection.addShape(this.v), this.d = e4.d, this.elem = t4, this.comp = t4.comp, this.frameId = -1, this.initDynamicPropertyContainer(t4), this.p = PropertyFactory.getProp(t4, e4.p, 1, 0, this), this.s = PropertyFactory.getProp(t4, e4.s, 1, 0, this), this.dynamicProperties.length ? this.k = true : (this.k = false, this.convertEllToPath());\n }\n return e3.prototype = { reset: i2, getValue: function() {\n this.elem.globalData.frameId !== this.frameId && (this.frameId = this.elem.globalData.frameId, this.iterateDynamicProperties(), this._mdf && this.convertEllToPath());\n }, convertEllToPath: function() {\n var e4 = this.p.v[0], r3 = this.p.v[1], i3 = this.s.v[0] / 2, s3 = this.s.v[1] / 2, a3 = 3 !== this.d, n3 = this.v;\n n3.v[0][0] = e4, n3.v[0][1] = r3 - s3, n3.v[1][0] = a3 ? e4 + i3 : e4 - i3, n3.v[1][1] = r3, n3.v[2][0] = e4, n3.v[2][1] = r3 + s3, n3.v[3][0] = a3 ? e4 - i3 : e4 + i3, n3.v[3][1] = r3, n3.i[0][0] = a3 ? e4 - i3 * t3 : e4 + i3 * t3, n3.i[0][1] = r3 - s3, n3.i[1][0] = a3 ? e4 + i3 : e4 - i3, n3.i[1][1] = r3 - s3 * t3, n3.i[2][0] = a3 ? e4 + i3 * t3 : e4 - i3 * t3, n3.i[2][1] = r3 + s3, n3.i[3][0] = a3 ? e4 - i3 : e4 + i3, n3.i[3][1] = r3 + s3 * t3, n3.o[0][0] = a3 ? e4 + i3 * t3 : e4 - i3 * t3, n3.o[0][1] = r3 - s3, n3.o[1][0] = a3 ? e4 + i3 : e4 - i3, n3.o[1][1] = r3 + s3 * t3, n3.o[2][0] = a3 ? e4 - i3 * t3 : e4 + i3 * t3, n3.o[2][1] = r3 + s3, n3.o[3][0] = a3 ? e4 - i3 : e4 + i3, n3.o[3][1] = r3 - s3 * t3;\n } }, extendPrototype([DynamicPropertyContainer], e3), e3;\n }(), p2 = function() {\n function t3(t4, e3) {\n this.v = shapePool.newElement(), this.v.setPathData(true, 0), this.elem = t4, this.comp = t4.comp, this.data = e3, this.frameId = -1, this.d = e3.d, this.initDynamicPropertyContainer(t4), 1 === e3.sy ? (this.ir = PropertyFactory.getProp(t4, e3.ir, 0, 0, this), this.is = PropertyFactory.getProp(t4, e3.is, 0, 0.01, this), this.convertToPath = this.convertStarToPath) : this.convertToPath = this.convertPolygonToPath, this.pt = PropertyFactory.getProp(t4, e3.pt, 0, 0, this), this.p = PropertyFactory.getProp(t4, e3.p, 1, 0, this), this.r = PropertyFactory.getProp(t4, e3.r, 0, degToRads, this), this.or = PropertyFactory.getProp(t4, e3.or, 0, 0, this), this.os = PropertyFactory.getProp(t4, e3.os, 0, 0.01, this), this.localShapeCollection = shapeCollectionPool.newShapeCollection(), this.localShapeCollection.addShape(this.v), this.paths = this.localShapeCollection, this.dynamicProperties.length ? this.k = true : (this.k = false, this.convertToPath());\n }\n return t3.prototype = { reset: i2, getValue: function() {\n this.elem.globalData.frameId !== this.frameId && (this.frameId = this.elem.globalData.frameId, this.iterateDynamicProperties(), this._mdf && this.convertToPath());\n }, convertStarToPath: function() {\n var t4, e3, r3, i3, s3 = 2 * Math.floor(this.pt.v), a3 = 2 * Math.PI / s3, n3 = true, o3 = this.or.v, h3 = this.ir.v, l3 = this.os.v, p3 = this.is.v, c3 = 2 * Math.PI * o3 / (2 * s3), f3 = 2 * Math.PI * h3 / (2 * s3), u2 = -Math.PI / 2;\n u2 += this.r.v;\n var d2 = 3 === this.data.d ? -1 : 1;\n for (this.v._length = 0, t4 = 0; t4 < s3; t4 += 1) {\n r3 = n3 ? l3 : p3, i3 = n3 ? c3 : f3;\n var m2 = (e3 = n3 ? o3 : h3) * Math.cos(u2), y2 = e3 * Math.sin(u2), g2 = 0 === m2 && 0 === y2 ? 0 : y2 / Math.sqrt(m2 * m2 + y2 * y2), v2 = 0 === m2 && 0 === y2 ? 0 : -m2 / Math.sqrt(m2 * m2 + y2 * y2);\n m2 += +this.p.v[0], y2 += +this.p.v[1], this.v.setTripleAt(m2, y2, m2 - g2 * i3 * r3 * d2, y2 - v2 * i3 * r3 * d2, m2 + g2 * i3 * r3 * d2, y2 + v2 * i3 * r3 * d2, t4, true), n3 = !n3, u2 += a3 * d2;\n }\n }, convertPolygonToPath: function() {\n var t4, e3 = Math.floor(this.pt.v), r3 = 2 * Math.PI / e3, i3 = this.or.v, s3 = this.os.v, a3 = 2 * Math.PI * i3 / (4 * e3), n3 = 0.5 * -Math.PI, o3 = 3 === this.data.d ? -1 : 1;\n for (n3 += this.r.v, this.v._length = 0, t4 = 0; t4 < e3; t4 += 1) {\n var h3 = i3 * Math.cos(n3), l3 = i3 * Math.sin(n3), p3 = 0 === h3 && 0 === l3 ? 0 : l3 / Math.sqrt(h3 * h3 + l3 * l3), c3 = 0 === h3 && 0 === l3 ? 0 : -h3 / Math.sqrt(h3 * h3 + l3 * l3);\n h3 += +this.p.v[0], l3 += +this.p.v[1], this.v.setTripleAt(h3, l3, h3 - p3 * a3 * s3 * o3, l3 - c3 * a3 * s3 * o3, h3 + p3 * a3 * s3 * o3, l3 + c3 * a3 * s3 * o3, t4, true), n3 += r3 * o3;\n }\n this.paths.length = 0, this.paths[0] = this.v;\n } }, extendPrototype([DynamicPropertyContainer], t3), t3;\n }(), c2 = function() {\n function t3(t4, e3) {\n this.v = shapePool.newElement(), this.v.c = true, this.localShapeCollection = shapeCollectionPool.newShapeCollection(), this.localShapeCollection.addShape(this.v), this.paths = this.localShapeCollection, this.elem = t4, this.comp = t4.comp, this.frameId = -1, this.d = e3.d, this.initDynamicPropertyContainer(t4), this.p = PropertyFactory.getProp(t4, e3.p, 1, 0, this), this.s = PropertyFactory.getProp(t4, e3.s, 1, 0, this), this.r = PropertyFactory.getProp(t4, e3.r, 0, 0, this), this.dynamicProperties.length ? this.k = true : (this.k = false, this.convertRectToPath());\n }\n return t3.prototype = { convertRectToPath: function() {\n var t4 = this.p.v[0], e3 = this.p.v[1], r3 = this.s.v[0] / 2, i3 = this.s.v[1] / 2, s3 = bmMin(r3, i3, this.r.v), a3 = s3 * (1 - roundCorner);\n this.v._length = 0, 2 === this.d || 1 === this.d ? (this.v.setTripleAt(t4 + r3, e3 - i3 + s3, t4 + r3, e3 - i3 + s3, t4 + r3, e3 - i3 + a3, 0, true), this.v.setTripleAt(t4 + r3, e3 + i3 - s3, t4 + r3, e3 + i3 - a3, t4 + r3, e3 + i3 - s3, 1, true), 0 !== s3 ? (this.v.setTripleAt(t4 + r3 - s3, e3 + i3, t4 + r3 - s3, e3 + i3, t4 + r3 - a3, e3 + i3, 2, true), this.v.setTripleAt(t4 - r3 + s3, e3 + i3, t4 - r3 + a3, e3 + i3, t4 - r3 + s3, e3 + i3, 3, true), this.v.setTripleAt(t4 - r3, e3 + i3 - s3, t4 - r3, e3 + i3 - s3, t4 - r3, e3 + i3 - a3, 4, true), this.v.setTripleAt(t4 - r3, e3 - i3 + s3, t4 - r3, e3 - i3 + a3, t4 - r3, e3 - i3 + s3, 5, true), this.v.setTripleAt(t4 - r3 + s3, e3 - i3, t4 - r3 + s3, e3 - i3, t4 - r3 + a3, e3 - i3, 6, true), this.v.setTripleAt(t4 + r3 - s3, e3 - i3, t4 + r3 - a3, e3 - i3, t4 + r3 - s3, e3 - i3, 7, true)) : (this.v.setTripleAt(t4 - r3, e3 + i3, t4 - r3 + a3, e3 + i3, t4 - r3, e3 + i3, 2), this.v.setTripleAt(t4 - r3, e3 - i3, t4 - r3, e3 - i3 + a3, t4 - r3, e3 - i3, 3))) : (this.v.setTripleAt(t4 + r3, e3 - i3 + s3, t4 + r3, e3 - i3 + a3, t4 + r3, e3 - i3 + s3, 0, true), 0 !== s3 ? (this.v.setTripleAt(t4 + r3 - s3, e3 - i3, t4 + r3 - s3, e3 - i3, t4 + r3 - a3, e3 - i3, 1, true), this.v.setTripleAt(t4 - r3 + s3, e3 - i3, t4 - r3 + a3, e3 - i3, t4 - r3 + s3, e3 - i3, 2, true), this.v.setTripleAt(t4 - r3, e3 - i3 + s3, t4 - r3, e3 - i3 + s3, t4 - r3, e3 - i3 + a3, 3, true), this.v.setTripleAt(t4 - r3, e3 + i3 - s3, t4 - r3, e3 + i3 - a3, t4 - r3, e3 + i3 - s3, 4, true), this.v.setTripleAt(t4 - r3 + s3, e3 + i3, t4 - r3 + s3, e3 + i3, t4 - r3 + a3, e3 + i3, 5, true), this.v.setTripleAt(t4 + r3 - s3, e3 + i3, t4 + r3 - a3, e3 + i3, t4 + r3 - s3, e3 + i3, 6, true), this.v.setTripleAt(t4 + r3, e3 + i3 - s3, t4 + r3, e3 + i3 - s3, t4 + r3, e3 + i3 - a3, 7, true)) : (this.v.setTripleAt(t4 - r3, e3 - i3, t4 - r3 + a3, e3 - i3, t4 - r3, e3 - i3, 1, true), this.v.setTripleAt(t4 - r3, e3 + i3, t4 - r3, e3 + i3 - a3, t4 - r3, e3 + i3, 2, true), this.v.setTripleAt(t4 + r3, e3 + i3, t4 + r3 - a3, e3 + i3, t4 + r3, e3 + i3, 3, true)));\n }, getValue: function() {\n this.elem.globalData.frameId !== this.frameId && (this.frameId = this.elem.globalData.frameId, this.iterateDynamicProperties(), this._mdf && this.convertRectToPath());\n }, reset: i2 }, extendPrototype([DynamicPropertyContainer], t3), t3;\n }(), f2 = { getShapeProp: function(t3, e3, r3) {\n var i3;\n return 3 === r3 || 4 === r3 ? i3 = (3 === r3 ? e3.pt : e3.ks).k.length ? new h2(t3, e3, r3) : new n2(t3, e3, r3) : 5 === r3 ? i3 = new c2(t3, e3) : 6 === r3 ? i3 = new l2(t3, e3) : 7 === r3 && (i3 = new p2(t3, e3)), i3.k && t3.addDynamicProperty(i3), i3;\n }, getConstructorFunction: function() {\n return n2;\n }, getKeyframedConstructorFunction: function() {\n return h2;\n } };\n return f2;\n }(), Matrix = /* @__PURE__ */ function() {\n var t2 = Math.cos, e2 = Math.sin, r2 = Math.tan, i2 = Math.round;\n function s2() {\n return this.props[0] = 1, this.props[1] = 0, this.props[2] = 0, this.props[3] = 0, this.props[4] = 0, this.props[5] = 1, this.props[6] = 0, this.props[7] = 0, this.props[8] = 0, this.props[9] = 0, this.props[10] = 1, this.props[11] = 0, this.props[12] = 0, this.props[13] = 0, this.props[14] = 0, this.props[15] = 1, this;\n }\n function a2(r3) {\n if (0 === r3) return this;\n var i3 = t2(r3), s3 = e2(r3);\n return this._t(i3, -s3, 0, 0, s3, i3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n function n2(r3) {\n if (0 === r3) return this;\n var i3 = t2(r3), s3 = e2(r3);\n return this._t(1, 0, 0, 0, 0, i3, -s3, 0, 0, s3, i3, 0, 0, 0, 0, 1);\n }\n function o2(r3) {\n if (0 === r3) return this;\n var i3 = t2(r3), s3 = e2(r3);\n return this._t(i3, 0, s3, 0, 0, 1, 0, 0, -s3, 0, i3, 0, 0, 0, 0, 1);\n }\n function h2(r3) {\n if (0 === r3) return this;\n var i3 = t2(r3), s3 = e2(r3);\n return this._t(i3, -s3, 0, 0, s3, i3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n function l2(t3, e3) {\n return this._t(1, e3, t3, 1, 0, 0);\n }\n function p2(t3, e3) {\n return this.shear(r2(t3), r2(e3));\n }\n function c2(i3, s3) {\n var a3 = t2(s3), n3 = e2(s3);\n return this._t(a3, n3, 0, 0, -n3, a3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, r2(i3), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(a3, -n3, 0, 0, n3, a3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n function f2(t3, e3, r3) {\n return r3 || 0 === r3 || (r3 = 1), 1 === t3 && 1 === e3 && 1 === r3 ? this : this._t(t3, 0, 0, 0, 0, e3, 0, 0, 0, 0, r3, 0, 0, 0, 0, 1);\n }\n function u2(t3, e3, r3, i3, s3, a3, n3, o3, h3, l3, p3, c3, f3, u3, d3, m3) {\n return this.props[0] = t3, this.props[1] = e3, this.props[2] = r3, this.props[3] = i3, this.props[4] = s3, this.props[5] = a3, this.props[6] = n3, this.props[7] = o3, this.props[8] = h3, this.props[9] = l3, this.props[10] = p3, this.props[11] = c3, this.props[12] = f3, this.props[13] = u3, this.props[14] = d3, this.props[15] = m3, this;\n }\n function d2(t3, e3, r3) {\n return r3 = r3 || 0, 0 !== t3 || 0 !== e3 || 0 !== r3 ? this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t3, e3, r3, 1) : this;\n }\n function m2(t3, e3, r3, i3, s3, a3, n3, o3, h3, l3, p3, c3, f3, u3, d3, m3) {\n var y3 = this.props;\n if (1 === t3 && 0 === e3 && 0 === r3 && 0 === i3 && 0 === s3 && 1 === a3 && 0 === n3 && 0 === o3 && 0 === h3 && 0 === l3 && 1 === p3 && 0 === c3) return y3[12] = y3[12] * t3 + y3[15] * f3, y3[13] = y3[13] * a3 + y3[15] * u3, y3[14] = y3[14] * p3 + y3[15] * d3, y3[15] *= m3, this._identityCalculated = false, this;\n var g3 = y3[0], v3 = y3[1], b3 = y3[2], _3 = y3[3], P3 = y3[4], S3 = y3[5], E3 = y3[6], x3 = y3[7], C3 = y3[8], A3 = y3[9], w3 = y3[10], k3 = y3[11], T3 = y3[12], M3 = y3[13], D2 = y3[14], F2 = y3[15];\n return y3[0] = g3 * t3 + v3 * s3 + b3 * h3 + _3 * f3, y3[1] = g3 * e3 + v3 * a3 + b3 * l3 + _3 * u3, y3[2] = g3 * r3 + v3 * n3 + b3 * p3 + _3 * d3, y3[3] = g3 * i3 + v3 * o3 + b3 * c3 + _3 * m3, y3[4] = P3 * t3 + S3 * s3 + E3 * h3 + x3 * f3, y3[5] = P3 * e3 + S3 * a3 + E3 * l3 + x3 * u3, y3[6] = P3 * r3 + S3 * n3 + E3 * p3 + x3 * d3, y3[7] = P3 * i3 + S3 * o3 + E3 * c3 + x3 * m3, y3[8] = C3 * t3 + A3 * s3 + w3 * h3 + k3 * f3, y3[9] = C3 * e3 + A3 * a3 + w3 * l3 + k3 * u3, y3[10] = C3 * r3 + A3 * n3 + w3 * p3 + k3 * d3, y3[11] = C3 * i3 + A3 * o3 + w3 * c3 + k3 * m3, y3[12] = T3 * t3 + M3 * s3 + D2 * h3 + F2 * f3, y3[13] = T3 * e3 + M3 * a3 + D2 * l3 + F2 * u3, y3[14] = T3 * r3 + M3 * n3 + D2 * p3 + F2 * d3, y3[15] = T3 * i3 + M3 * o3 + D2 * c3 + F2 * m3, this._identityCalculated = false, this;\n }\n function y2(t3) {\n var e3 = t3.props;\n return this.transform(e3[0], e3[1], e3[2], e3[3], e3[4], e3[5], e3[6], e3[7], e3[8], e3[9], e3[10], e3[11], e3[12], e3[13], e3[14], e3[15]);\n }\n function g2() {\n return this._identityCalculated || (this._identity = !(1 !== this.props[0] || 0 !== this.props[1] || 0 !== this.props[2] || 0 !== this.props[3] || 0 !== this.props[4] || 1 !== this.props[5] || 0 !== this.props[6] || 0 !== this.props[7] || 0 !== this.props[8] || 0 !== this.props[9] || 1 !== this.props[10] || 0 !== this.props[11] || 0 !== this.props[12] || 0 !== this.props[13] || 0 !== this.props[14] || 1 !== this.props[15]), this._identityCalculated = true), this._identity;\n }\n function v2(t3) {\n for (var e3 = 0; e3 < 16; ) {\n if (t3.props[e3] !== this.props[e3]) return false;\n e3 += 1;\n }\n return true;\n }\n function b2(t3) {\n var e3;\n for (e3 = 0; e3 < 16; e3 += 1) t3.props[e3] = this.props[e3];\n return t3;\n }\n function _2(t3) {\n var e3;\n for (e3 = 0; e3 < 16; e3 += 1) this.props[e3] = t3[e3];\n }\n function P2(t3, e3, r3) {\n return { x: t3 * this.props[0] + e3 * this.props[4] + r3 * this.props[8] + this.props[12], y: t3 * this.props[1] + e3 * this.props[5] + r3 * this.props[9] + this.props[13], z: t3 * this.props[2] + e3 * this.props[6] + r3 * this.props[10] + this.props[14] };\n }\n function S2(t3, e3, r3) {\n return t3 * this.props[0] + e3 * this.props[4] + r3 * this.props[8] + this.props[12];\n }\n function E2(t3, e3, r3) {\n return t3 * this.props[1] + e3 * this.props[5] + r3 * this.props[9] + this.props[13];\n }\n function x2(t3, e3, r3) {\n return t3 * this.props[2] + e3 * this.props[6] + r3 * this.props[10] + this.props[14];\n }\n function C2() {\n var t3 = this.props[0] * this.props[5] - this.props[1] * this.props[4], e3 = this.props[5] / t3, r3 = -this.props[1] / t3, i3 = -this.props[4] / t3, s3 = this.props[0] / t3, a3 = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / t3, n3 = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / t3, o3 = new Matrix();\n return o3.props[0] = e3, o3.props[1] = r3, o3.props[4] = i3, o3.props[5] = s3, o3.props[12] = a3, o3.props[13] = n3, o3;\n }\n function A2(t3) {\n return this.getInverseMatrix().applyToPointArray(t3[0], t3[1], t3[2] || 0);\n }\n function w2(t3) {\n var e3, r3 = t3.length, i3 = [];\n for (e3 = 0; e3 < r3; e3 += 1) i3[e3] = A2(t3[e3]);\n return i3;\n }\n function k2(t3, e3, r3) {\n var i3 = createTypedArray(\"float32\", 6);\n if (this.isIdentity()) i3[0] = t3[0], i3[1] = t3[1], i3[2] = e3[0], i3[3] = e3[1], i3[4] = r3[0], i3[5] = r3[1];\n else {\n var s3 = this.props[0], a3 = this.props[1], n3 = this.props[4], o3 = this.props[5], h3 = this.props[12], l3 = this.props[13];\n i3[0] = t3[0] * s3 + t3[1] * n3 + h3, i3[1] = t3[0] * a3 + t3[1] * o3 + l3, i3[2] = e3[0] * s3 + e3[1] * n3 + h3, i3[3] = e3[0] * a3 + e3[1] * o3 + l3, i3[4] = r3[0] * s3 + r3[1] * n3 + h3, i3[5] = r3[0] * a3 + r3[1] * o3 + l3;\n }\n return i3;\n }\n function T2(t3, e3, r3) {\n return this.isIdentity() ? [t3, e3, r3] : [t3 * this.props[0] + e3 * this.props[4] + r3 * this.props[8] + this.props[12], t3 * this.props[1] + e3 * this.props[5] + r3 * this.props[9] + this.props[13], t3 * this.props[2] + e3 * this.props[6] + r3 * this.props[10] + this.props[14]];\n }\n function M2(t3, e3) {\n if (this.isIdentity()) return t3 + \",\" + e3;\n var r3 = this.props;\n return Math.round(100 * (t3 * r3[0] + e3 * r3[4] + r3[12])) / 100 + \",\" + Math.round(100 * (t3 * r3[1] + e3 * r3[5] + r3[13])) / 100;\n }\n function D() {\n for (var t3 = 0, e3 = this.props, r3 = \"matrix3d(\"; t3 < 16; ) r3 += i2(1e4 * e3[t3]) / 1e4, r3 += 15 === t3 ? \")\" : \",\", t3 += 1;\n return r3;\n }\n function F(t3) {\n return t3 < 1e-6 && t3 > 0 || t3 > -1e-6 && t3 < 0 ? i2(1e4 * t3) / 1e4 : t3;\n }\n function I2() {\n var t3 = this.props;\n return \"matrix(\" + F(t3[0]) + \",\" + F(t3[1]) + \",\" + F(t3[4]) + \",\" + F(t3[5]) + \",\" + F(t3[12]) + \",\" + F(t3[13]) + \")\";\n }\n return function() {\n this.reset = s2, this.rotate = a2, this.rotateX = n2, this.rotateY = o2, this.rotateZ = h2, this.skew = p2, this.skewFromAxis = c2, this.shear = l2, this.scale = f2, this.setTransform = u2, this.translate = d2, this.transform = m2, this.multiply = y2, this.applyToPoint = P2, this.applyToX = S2, this.applyToY = E2, this.applyToZ = x2, this.applyToPointArray = T2, this.applyToTriplePoints = k2, this.applyToPointStringified = M2, this.toCSS = D, this.to2dCSS = I2, this.clone = b2, this.cloneFromProps = _2, this.equals = v2, this.inversePoints = w2, this.inversePoint = A2, this.getInverseMatrix = C2, this._t = this.transform, this.isIdentity = g2, this._identity = true, this._identityCalculated = false, this.props = createTypedArray(\"float32\", 16), this.reset();\n };\n }();\n function _typeof$3(t2) {\n return _typeof$3 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n }, _typeof$3(t2);\n }\n var lottie = {}, standalone = \"__[STANDALONE]__\", animationData = \"__[ANIMATIONDATA]__\", renderer = \"\";\n function setLocation(t2) {\n setLocationHref(t2);\n }\n function searchAnimations() {\n true === standalone ? animationManager.searchAnimations(animationData, standalone, renderer) : animationManager.searchAnimations();\n }\n function setSubframeRendering(t2) {\n setSubframeEnabled(t2);\n }\n function setPrefix(t2) {\n setIdPrefix(t2);\n }\n function loadAnimation(t2) {\n return true === standalone && (t2.animationData = JSON.parse(animationData)), animationManager.loadAnimation(t2);\n }\n function setQuality(t2) {\n if (\"string\" == typeof t2) switch (t2) {\n case \"high\":\n setDefaultCurveSegments(200);\n break;\n default:\n case \"medium\":\n setDefaultCurveSegments(50);\n break;\n case \"low\":\n setDefaultCurveSegments(10);\n }\n else !isNaN(t2) && t2 > 1 && setDefaultCurveSegments(t2);\n getDefaultCurveSegments() >= 50 ? roundValues(false) : roundValues(true);\n }\n function inBrowser() {\n return \"undefined\" != typeof navigator;\n }\n function installPlugin(t2, e2) {\n \"expressions\" === t2 && setExpressionsPlugin(e2);\n }\n function getFactory(t2) {\n switch (t2) {\n case \"propertyFactory\":\n return PropertyFactory;\n case \"shapePropertyFactory\":\n return ShapePropertyFactory;\n case \"matrix\":\n return Matrix;\n default:\n return null;\n }\n }\n function checkReady() {\n \"complete\" === document.readyState && (clearInterval(readyStateCheckInterval), searchAnimations());\n }\n function getQueryVariable(t2) {\n for (var e2 = queryString.split(\"&\"), r2 = 0; r2 < e2.length; r2 += 1) {\n var i2 = e2[r2].split(\"=\");\n if (decodeURIComponent(i2[0]) == t2) return decodeURIComponent(i2[1]);\n }\n return null;\n }\n lottie.play = animationManager.play, lottie.pause = animationManager.pause, lottie.setLocationHref = setLocation, lottie.togglePause = animationManager.togglePause, lottie.setSpeed = animationManager.setSpeed, lottie.setDirection = animationManager.setDirection, lottie.stop = animationManager.stop, lottie.searchAnimations = searchAnimations, lottie.registerAnimation = animationManager.registerAnimation, lottie.loadAnimation = loadAnimation, lottie.setSubframeRendering = setSubframeRendering, lottie.resize = animationManager.resize, lottie.goToAndStop = animationManager.goToAndStop, lottie.destroy = animationManager.destroy, lottie.setQuality = setQuality, lottie.inBrowser = inBrowser, lottie.installPlugin = installPlugin, lottie.freeze = animationManager.freeze, lottie.unfreeze = animationManager.unfreeze, lottie.setVolume = animationManager.setVolume, lottie.mute = animationManager.mute, lottie.unmute = animationManager.unmute, lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations, lottie.useWebWorker = setWebWorker, lottie.setIDPrefix = setPrefix, lottie.__getFactory = getFactory, lottie.version = \"5.12.2\";\n var queryString = \"\";\n if (standalone) {\n var scripts = document.getElementsByTagName(\"script\"), index = scripts.length - 1, myScript = scripts[index] || { src: \"\" };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, \"\") : \"\", renderer = getQueryVariable(\"renderer\");\n }\n var readyStateCheckInterval = setInterval(checkReady, 100);\n try {\n \"object\" !== _typeof$3(exports) && (window.bodymovin = lottie);\n } catch (t2) {\n }\n var ShapeModifiers = function() {\n var t2 = {}, e2 = {};\n return t2.registerModifier = function(t3, r2) {\n e2[t3] || (e2[t3] = r2);\n }, t2.getModifier = function(t3, r2, i2) {\n return new e2[t3](r2, i2);\n }, t2;\n }();\n function ShapeModifier() {\n }\n function TrimModifier() {\n }\n function PuckerAndBloatModifier() {\n }\n ShapeModifier.prototype.initModifierProperties = function() {\n }, ShapeModifier.prototype.addShapeToModifier = function() {\n }, ShapeModifier.prototype.addShape = function(t2) {\n if (!this.closed) {\n t2.sh.container.addDynamicProperty(t2.sh);\n var e2 = { shape: t2.sh, data: t2, localShapeCollection: shapeCollectionPool.newShapeCollection() };\n this.shapes.push(e2), this.addShapeToModifier(e2), this._isAnimated && t2.setAsAnimated();\n }\n }, ShapeModifier.prototype.init = function(t2, e2) {\n this.shapes = [], this.elem = t2, this.initDynamicPropertyContainer(t2), this.initModifierProperties(t2, e2), this.frameId = initialDefaultFrame, this.closed = false, this.k = false, this.dynamicProperties.length ? this.k = true : this.getValue(true);\n }, ShapeModifier.prototype.processKeys = function() {\n this.elem.globalData.frameId !== this.frameId && (this.frameId = this.elem.globalData.frameId, this.iterateDynamicProperties());\n }, extendPrototype([DynamicPropertyContainer], ShapeModifier), extendPrototype([ShapeModifier], TrimModifier), TrimModifier.prototype.initModifierProperties = function(t2, e2) {\n this.s = PropertyFactory.getProp(t2, e2.s, 0, 0.01, this), this.e = PropertyFactory.getProp(t2, e2.e, 0, 0.01, this), this.o = PropertyFactory.getProp(t2, e2.o, 0, 0, this), this.sValue = 0, this.eValue = 0, this.getValue = this.processKeys, this.m = e2.m, this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n }, TrimModifier.prototype.addShapeToModifier = function(t2) {\n t2.pathsData = [];\n }, TrimModifier.prototype.calculateShapeEdges = function(t2, e2, r2, i2, s2) {\n var a2 = [];\n e2 <= 1 ? a2.push({ s: t2, e: e2 }) : t2 >= 1 ? a2.push({ s: t2 - 1, e: e2 - 1 }) : (a2.push({ s: t2, e: 1 }), a2.push({ s: 0, e: e2 - 1 }));\n var n2, o2, h2 = [], l2 = a2.length;\n for (n2 = 0; n2 < l2; n2 += 1) {\n var p2, c2;\n (o2 = a2[n2]).e * s2 < i2 || o2.s * s2 > i2 + r2 || (p2 = o2.s * s2 <= i2 ? 0 : (o2.s * s2 - i2) / r2, c2 = o2.e * s2 >= i2 + r2 ? 1 : (o2.e * s2 - i2) / r2, h2.push([p2, c2]));\n }\n return h2.length || h2.push([0, 0]), h2;\n }, TrimModifier.prototype.releasePathsData = function(t2) {\n var e2, r2 = t2.length;\n for (e2 = 0; e2 < r2; e2 += 1) segmentsLengthPool.release(t2[e2]);\n return t2.length = 0, t2;\n }, TrimModifier.prototype.processShapes = function(t2) {\n var e2, r2, i2, s2;\n if (this._mdf || t2) {\n var a2 = this.o.v % 360 / 360;\n if (a2 < 0 && (a2 += 1), (e2 = this.s.v > 1 ? 1 + a2 : this.s.v < 0 ? 0 + a2 : this.s.v + a2) > (r2 = this.e.v > 1 ? 1 + a2 : this.e.v < 0 ? 0 + a2 : this.e.v + a2)) {\n var n2 = e2;\n e2 = r2, r2 = n2;\n }\n e2 = 1e-4 * Math.round(1e4 * e2), r2 = 1e-4 * Math.round(1e4 * r2), this.sValue = e2, this.eValue = r2;\n } else e2 = this.sValue, r2 = this.eValue;\n var o2, h2, l2, p2, c2, f2 = this.shapes.length, u2 = 0;\n if (r2 === e2) for (s2 = 0; s2 < f2; s2 += 1) this.shapes[s2].localShapeCollection.releaseShapes(), this.shapes[s2].shape._mdf = true, this.shapes[s2].shape.paths = this.shapes[s2].localShapeCollection, this._mdf && (this.shapes[s2].pathsData.length = 0);\n else if (1 === r2 && 0 === e2 || 0 === r2 && 1 === e2) {\n if (this._mdf) for (s2 = 0; s2 < f2; s2 += 1) this.shapes[s2].pathsData.length = 0, this.shapes[s2].shape._mdf = true;\n } else {\n var d2, m2, y2 = [];\n for (s2 = 0; s2 < f2; s2 += 1) if ((d2 = this.shapes[s2]).shape._mdf || this._mdf || t2 || 2 === this.m) {\n if (h2 = (i2 = d2.shape.paths)._length, c2 = 0, !d2.shape._mdf && d2.pathsData.length) c2 = d2.totalShapeLength;\n else {\n for (l2 = this.releasePathsData(d2.pathsData), o2 = 0; o2 < h2; o2 += 1) p2 = bez.getSegmentsLength(i2.shapes[o2]), l2.push(p2), c2 += p2.totalLength;\n d2.totalShapeLength = c2, d2.pathsData = l2;\n }\n u2 += c2, d2.shape._mdf = true;\n } else d2.shape.paths = d2.localShapeCollection;\n var g2, v2 = e2, b2 = r2, _2 = 0;\n for (s2 = f2 - 1; s2 >= 0; s2 -= 1) if ((d2 = this.shapes[s2]).shape._mdf) {\n for ((m2 = d2.localShapeCollection).releaseShapes(), 2 === this.m && f2 > 1 ? (g2 = this.calculateShapeEdges(e2, r2, d2.totalShapeLength, _2, u2), _2 += d2.totalShapeLength) : g2 = [[v2, b2]], h2 = g2.length, o2 = 0; o2 < h2; o2 += 1) {\n v2 = g2[o2][0], b2 = g2[o2][1], y2.length = 0, b2 <= 1 ? y2.push({ s: d2.totalShapeLength * v2, e: d2.totalShapeLength * b2 }) : v2 >= 1 ? y2.push({ s: d2.totalShapeLength * (v2 - 1), e: d2.totalShapeLength * (b2 - 1) }) : (y2.push({ s: d2.totalShapeLength * v2, e: d2.totalShapeLength }), y2.push({ s: 0, e: d2.totalShapeLength * (b2 - 1) }));\n var P2 = this.addShapes(d2, y2[0]);\n if (y2[0].s !== y2[0].e) {\n if (y2.length > 1) if (d2.shape.paths.shapes[d2.shape.paths._length - 1].c) {\n var S2 = P2.pop();\n this.addPaths(P2, m2), P2 = this.addShapes(d2, y2[1], S2);\n } else this.addPaths(P2, m2), P2 = this.addShapes(d2, y2[1]);\n this.addPaths(P2, m2);\n }\n }\n d2.shape.paths = m2;\n }\n }\n }, TrimModifier.prototype.addPaths = function(t2, e2) {\n var r2, i2 = t2.length;\n for (r2 = 0; r2 < i2; r2 += 1) e2.addShape(t2[r2]);\n }, TrimModifier.prototype.addSegment = function(t2, e2, r2, i2, s2, a2, n2) {\n s2.setXYAt(e2[0], e2[1], \"o\", a2), s2.setXYAt(r2[0], r2[1], \"i\", a2 + 1), n2 && s2.setXYAt(t2[0], t2[1], \"v\", a2), s2.setXYAt(i2[0], i2[1], \"v\", a2 + 1);\n }, TrimModifier.prototype.addSegmentFromArray = function(t2, e2, r2, i2) {\n e2.setXYAt(t2[1], t2[5], \"o\", r2), e2.setXYAt(t2[2], t2[6], \"i\", r2 + 1), i2 && e2.setXYAt(t2[0], t2[4], \"v\", r2), e2.setXYAt(t2[3], t2[7], \"v\", r2 + 1);\n }, TrimModifier.prototype.addShapes = function(t2, e2, r2) {\n var i2, s2, a2, n2, o2, h2, l2, p2, c2 = t2.pathsData, f2 = t2.shape.paths.shapes, u2 = t2.shape.paths._length, d2 = 0, m2 = [], y2 = true;\n for (r2 ? (o2 = r2._length, p2 = r2._length) : (r2 = shapePool.newElement(), o2 = 0, p2 = 0), m2.push(r2), i2 = 0; i2 < u2; i2 += 1) {\n for (h2 = c2[i2].lengths, r2.c = f2[i2].c, a2 = f2[i2].c ? h2.length : h2.length + 1, s2 = 1; s2 < a2; s2 += 1) if (d2 + (n2 = h2[s2 - 1]).addedLength < e2.s) d2 += n2.addedLength, r2.c = false;\n else {\n if (d2 > e2.e) {\n r2.c = false;\n break;\n }\n e2.s <= d2 && e2.e >= d2 + n2.addedLength ? (this.addSegment(f2[i2].v[s2 - 1], f2[i2].o[s2 - 1], f2[i2].i[s2], f2[i2].v[s2], r2, o2, y2), y2 = false) : (l2 = bez.getNewSegment(f2[i2].v[s2 - 1], f2[i2].v[s2], f2[i2].o[s2 - 1], f2[i2].i[s2], (e2.s - d2) / n2.addedLength, (e2.e - d2) / n2.addedLength, h2[s2 - 1]), this.addSegmentFromArray(l2, r2, o2, y2), y2 = false, r2.c = false), d2 += n2.addedLength, o2 += 1;\n }\n if (f2[i2].c && h2.length) {\n if (n2 = h2[s2 - 1], d2 <= e2.e) {\n var g2 = h2[s2 - 1].addedLength;\n e2.s <= d2 && e2.e >= d2 + g2 ? (this.addSegment(f2[i2].v[s2 - 1], f2[i2].o[s2 - 1], f2[i2].i[0], f2[i2].v[0], r2, o2, y2), y2 = false) : (l2 = bez.getNewSegment(f2[i2].v[s2 - 1], f2[i2].v[0], f2[i2].o[s2 - 1], f2[i2].i[0], (e2.s - d2) / g2, (e2.e - d2) / g2, h2[s2 - 1]), this.addSegmentFromArray(l2, r2, o2, y2), y2 = false, r2.c = false);\n } else r2.c = false;\n d2 += n2.addedLength, o2 += 1;\n }\n if (r2._length && (r2.setXYAt(r2.v[p2][0], r2.v[p2][1], \"i\", p2), r2.setXYAt(r2.v[r2._length - 1][0], r2.v[r2._length - 1][1], \"o\", r2._length - 1)), d2 > e2.e) break;\n i2 < u2 - 1 && (r2 = shapePool.newElement(), y2 = true, m2.push(r2), o2 = 0);\n }\n return m2;\n }, extendPrototype([ShapeModifier], PuckerAndBloatModifier), PuckerAndBloatModifier.prototype.initModifierProperties = function(t2, e2) {\n this.getValue = this.processKeys, this.amount = PropertyFactory.getProp(t2, e2.a, 0, null, this), this._isAnimated = !!this.amount.effectsSequence.length;\n }, PuckerAndBloatModifier.prototype.processPath = function(t2, e2) {\n var r2 = e2 / 100, i2 = [0, 0], s2 = t2._length, a2 = 0;\n for (a2 = 0; a2 < s2; a2 += 1) i2[0] += t2.v[a2][0], i2[1] += t2.v[a2][1];\n i2[0] /= s2, i2[1] /= s2;\n var n2, o2, h2, l2, p2, c2, f2 = shapePool.newElement();\n for (f2.c = t2.c, a2 = 0; a2 < s2; a2 += 1) n2 = t2.v[a2][0] + (i2[0] - t2.v[a2][0]) * r2, o2 = t2.v[a2][1] + (i2[1] - t2.v[a2][1]) * r2, h2 = t2.o[a2][0] + (i2[0] - t2.o[a2][0]) * -r2, l2 = t2.o[a2][1] + (i2[1] - t2.o[a2][1]) * -r2, p2 = t2.i[a2][0] + (i2[0] - t2.i[a2][0]) * -r2, c2 = t2.i[a2][1] + (i2[1] - t2.i[a2][1]) * -r2, f2.setTripleAt(n2, o2, h2, l2, p2, c2, a2);\n return f2;\n }, PuckerAndBloatModifier.prototype.processShapes = function(t2) {\n var e2, r2, i2, s2, a2, n2, o2 = this.shapes.length, h2 = this.amount.v;\n if (0 !== h2) for (r2 = 0; r2 < o2; r2 += 1) {\n if (n2 = (a2 = this.shapes[r2]).localShapeCollection, a2.shape._mdf || this._mdf || t2) for (n2.releaseShapes(), a2.shape._mdf = true, e2 = a2.shape.paths.shapes, s2 = a2.shape.paths._length, i2 = 0; i2 < s2; i2 += 1) n2.addShape(this.processPath(e2[i2], h2));\n a2.shape.paths = a2.localShapeCollection;\n }\n this.dynamicProperties.length || (this._mdf = false);\n };\n var TransformPropertyFactory = function() {\n var t2 = [0, 0];\n function e2(t3, e3, r2) {\n if (this.elem = t3, this.frameId = -1, this.propType = \"transform\", this.data = e3, this.v = new Matrix(), this.pre = new Matrix(), this.appliedTransformations = 0, this.initDynamicPropertyContainer(r2 || t3), e3.p && e3.p.s ? (this.px = PropertyFactory.getProp(t3, e3.p.x, 0, 0, this), this.py = PropertyFactory.getProp(t3, e3.p.y, 0, 0, this), e3.p.z && (this.pz = PropertyFactory.getProp(t3, e3.p.z, 0, 0, this))) : this.p = PropertyFactory.getProp(t3, e3.p || { k: [0, 0, 0] }, 1, 0, this), e3.rx) {\n if (this.rx = PropertyFactory.getProp(t3, e3.rx, 0, degToRads, this), this.ry = PropertyFactory.getProp(t3, e3.ry, 0, degToRads, this), this.rz = PropertyFactory.getProp(t3, e3.rz, 0, degToRads, this), e3.or.k[0].ti) {\n var i2, s2 = e3.or.k.length;\n for (i2 = 0; i2 < s2; i2 += 1) e3.or.k[i2].to = null, e3.or.k[i2].ti = null;\n }\n this.or = PropertyFactory.getProp(t3, e3.or, 1, degToRads, this), this.or.sh = true;\n } else this.r = PropertyFactory.getProp(t3, e3.r || { k: 0 }, 0, degToRads, this);\n e3.sk && (this.sk = PropertyFactory.getProp(t3, e3.sk, 0, degToRads, this), this.sa = PropertyFactory.getProp(t3, e3.sa, 0, degToRads, this)), this.a = PropertyFactory.getProp(t3, e3.a || { k: [0, 0, 0] }, 1, 0, this), this.s = PropertyFactory.getProp(t3, e3.s || { k: [100, 100, 100] }, 1, 0.01, this), e3.o ? this.o = PropertyFactory.getProp(t3, e3.o, 0, 0.01, t3) : this.o = { _mdf: false, v: 1 }, this._isDirty = true, this.dynamicProperties.length || this.getValue(true);\n }\n return e2.prototype = { applyToMatrix: function(t3) {\n var e3 = this._mdf;\n this.iterateDynamicProperties(), this._mdf = this._mdf || e3, this.a && t3.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), this.s && t3.scale(this.s.v[0], this.s.v[1], this.s.v[2]), this.sk && t3.skewFromAxis(-this.sk.v, this.sa.v), this.r ? t3.rotate(-this.r.v) : t3.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]), this.data.p.s ? this.data.p.z ? t3.translate(this.px.v, this.py.v, -this.pz.v) : t3.translate(this.px.v, this.py.v, 0) : t3.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }, getValue: function(e3) {\n if (this.elem.globalData.frameId !== this.frameId) {\n if (this._isDirty && (this.precalculateMatrix(), this._isDirty = false), this.iterateDynamicProperties(), this._mdf || e3) {\n var r2;\n if (this.v.cloneFromProps(this.pre.props), this.appliedTransformations < 1 && this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), this.appliedTransformations < 2 && this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]), this.sk && this.appliedTransformations < 3 && this.v.skewFromAxis(-this.sk.v, this.sa.v), this.r && this.appliedTransformations < 4 ? this.v.rotate(-this.r.v) : !this.r && this.appliedTransformations < 4 && this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]), this.autoOriented) {\n var i2, s2;\n if (r2 = this.elem.globalData.frameRate, this.p && this.p.keyframes && this.p.getValueAtTime) this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t ? (i2 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / r2, 0), s2 = this.p.getValueAtTime(this.p.keyframes[0].t / r2, 0)) : this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t ? (i2 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / r2, 0), s2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / r2, 0)) : (i2 = this.p.pv, s2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / r2, this.p.offsetTime));\n else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n i2 = [], s2 = [];\n var a2 = this.px, n2 = this.py;\n a2._caching.lastFrame + a2.offsetTime <= a2.keyframes[0].t ? (i2[0] = a2.getValueAtTime((a2.keyframes[0].t + 0.01) / r2, 0), i2[1] = n2.getValueAtTime((n2.keyframes[0].t + 0.01) / r2, 0), s2[0] = a2.getValueAtTime(a2.keyframes[0].t / r2, 0), s2[1] = n2.getValueAtTime(n2.keyframes[0].t / r2, 0)) : a2._caching.lastFrame + a2.offsetTime >= a2.keyframes[a2.keyframes.length - 1].t ? (i2[0] = a2.getValueAtTime(a2.keyframes[a2.keyframes.length - 1].t / r2, 0), i2[1] = n2.getValueAtTime(n2.keyframes[n2.keyframes.length - 1].t / r2, 0), s2[0] = a2.getValueAtTime((a2.keyframes[a2.keyframes.length - 1].t - 0.01) / r2, 0), s2[1] = n2.getValueAtTime((n2.keyframes[n2.keyframes.length - 1].t - 0.01) / r2, 0)) : (i2 = [a2.pv, n2.pv], s2[0] = a2.getValueAtTime((a2._caching.lastFrame + a2.offsetTime - 0.01) / r2, a2.offsetTime), s2[1] = n2.getValueAtTime((n2._caching.lastFrame + n2.offsetTime - 0.01) / r2, n2.offsetTime));\n } else i2 = s2 = t2;\n this.v.rotate(-Math.atan2(i2[1] - s2[1], i2[0] - s2[0]));\n }\n this.data.p && this.data.p.s ? this.data.p.z ? this.v.translate(this.px.v, this.py.v, -this.pz.v) : this.v.translate(this.px.v, this.py.v, 0) : this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n this.frameId = this.elem.globalData.frameId;\n }\n }, precalculateMatrix: function() {\n if (this.appliedTransformations = 0, this.pre.reset(), !this.a.effectsSequence.length && (this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), this.appliedTransformations = 1, !this.s.effectsSequence.length)) {\n if (this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]), this.appliedTransformations = 2, this.sk) {\n if (this.sk.effectsSequence.length || this.sa.effectsSequence.length) return;\n this.pre.skewFromAxis(-this.sk.v, this.sa.v), this.appliedTransformations = 3;\n }\n this.r ? this.r.effectsSequence.length || (this.pre.rotate(-this.r.v), this.appliedTransformations = 4) : this.rz.effectsSequence.length || this.ry.effectsSequence.length || this.rx.effectsSequence.length || this.or.effectsSequence.length || (this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]), this.appliedTransformations = 4);\n }\n }, autoOrient: function() {\n } }, extendPrototype([DynamicPropertyContainer], e2), e2.prototype.addDynamicProperty = function(t3) {\n this._addDynamicProperty(t3), this.elem.addDynamicProperty(t3), this._isDirty = true;\n }, e2.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty, { getTransformProperty: function(t3, r2, i2) {\n return new e2(t3, r2, i2);\n } };\n }();\n function RepeaterModifier() {\n }\n function RoundCornersModifier() {\n }\n function floatEqual(t2, e2) {\n return 1e5 * Math.abs(t2 - e2) <= Math.min(Math.abs(t2), Math.abs(e2));\n }\n function floatZero(t2) {\n return Math.abs(t2) <= 1e-5;\n }\n function lerp(t2, e2, r2) {\n return t2 * (1 - r2) + e2 * r2;\n }\n function lerpPoint(t2, e2, r2) {\n return [lerp(t2[0], e2[0], r2), lerp(t2[1], e2[1], r2)];\n }\n function quadRoots(t2, e2, r2) {\n if (0 === t2) return [];\n var i2 = e2 * e2 - 4 * t2 * r2;\n if (i2 < 0) return [];\n var s2 = -e2 / (2 * t2);\n if (0 === i2) return [s2];\n var a2 = Math.sqrt(i2) / (2 * t2);\n return [s2 - a2, s2 + a2];\n }\n function polynomialCoefficients(t2, e2, r2, i2) {\n return [3 * e2 - t2 - 3 * r2 + i2, 3 * t2 - 6 * e2 + 3 * r2, -3 * t2 + 3 * e2, t2];\n }\n function singlePoint(t2) {\n return new PolynomialBezier(t2, t2, t2, t2, false);\n }\n function PolynomialBezier(t2, e2, r2, i2, s2) {\n s2 && pointEqual(t2, e2) && (e2 = lerpPoint(t2, i2, 1 / 3)), s2 && pointEqual(r2, i2) && (r2 = lerpPoint(t2, i2, 2 / 3));\n var a2 = polynomialCoefficients(t2[0], e2[0], r2[0], i2[0]), n2 = polynomialCoefficients(t2[1], e2[1], r2[1], i2[1]);\n this.a = [a2[0], n2[0]], this.b = [a2[1], n2[1]], this.c = [a2[2], n2[2]], this.d = [a2[3], n2[3]], this.points = [t2, e2, r2, i2];\n }\n function extrema(t2, e2) {\n var r2 = t2.points[0][e2], i2 = t2.points[t2.points.length - 1][e2];\n if (r2 > i2) {\n var s2 = i2;\n i2 = r2, r2 = s2;\n }\n for (var a2 = quadRoots(3 * t2.a[e2], 2 * t2.b[e2], t2.c[e2]), n2 = 0; n2 < a2.length; n2 += 1) if (a2[n2] > 0 && a2[n2] < 1) {\n var o2 = t2.point(a2[n2])[e2];\n o2 < r2 ? r2 = o2 : o2 > i2 && (i2 = o2);\n }\n return { min: r2, max: i2 };\n }\n function intersectData(t2, e2, r2) {\n var i2 = t2.boundingBox();\n return { cx: i2.cx, cy: i2.cy, width: i2.width, height: i2.height, bez: t2, t: (e2 + r2) / 2, t1: e2, t2: r2 };\n }\n function splitData(t2) {\n var e2 = t2.bez.split(0.5);\n return [intersectData(e2[0], t2.t1, t2.t), intersectData(e2[1], t2.t, t2.t2)];\n }\n function boxIntersect(t2, e2) {\n return 2 * Math.abs(t2.cx - e2.cx) < t2.width + e2.width && 2 * Math.abs(t2.cy - e2.cy) < t2.height + e2.height;\n }\n function intersectsImpl(t2, e2, r2, i2, s2, a2) {\n if (boxIntersect(t2, e2)) if (r2 >= a2 || t2.width <= i2 && t2.height <= i2 && e2.width <= i2 && e2.height <= i2) s2.push([t2.t, e2.t]);\n else {\n var n2 = splitData(t2), o2 = splitData(e2);\n intersectsImpl(n2[0], o2[0], r2 + 1, i2, s2, a2), intersectsImpl(n2[0], o2[1], r2 + 1, i2, s2, a2), intersectsImpl(n2[1], o2[0], r2 + 1, i2, s2, a2), intersectsImpl(n2[1], o2[1], r2 + 1, i2, s2, a2);\n }\n }\n function crossProduct(t2, e2) {\n return [t2[1] * e2[2] - t2[2] * e2[1], t2[2] * e2[0] - t2[0] * e2[2], t2[0] * e2[1] - t2[1] * e2[0]];\n }\n function lineIntersection(t2, e2, r2, i2) {\n var s2 = [t2[0], t2[1], 1], a2 = [e2[0], e2[1], 1], n2 = [r2[0], r2[1], 1], o2 = [i2[0], i2[1], 1], h2 = crossProduct(crossProduct(s2, a2), crossProduct(n2, o2));\n return floatZero(h2[2]) ? null : [h2[0] / h2[2], h2[1] / h2[2]];\n }\n function polarOffset(t2, e2, r2) {\n return [t2[0] + Math.cos(e2) * r2, t2[1] - Math.sin(e2) * r2];\n }\n function pointDistance(t2, e2) {\n return Math.hypot(t2[0] - e2[0], t2[1] - e2[1]);\n }\n function pointEqual(t2, e2) {\n return floatEqual(t2[0], e2[0]) && floatEqual(t2[1], e2[1]);\n }\n function ZigZagModifier() {\n }\n function setPoint(t2, e2, r2, i2, s2, a2, n2) {\n var o2 = r2 - Math.PI / 2, h2 = r2 + Math.PI / 2, l2 = e2[0] + Math.cos(r2) * i2 * s2, p2 = e2[1] - Math.sin(r2) * i2 * s2;\n t2.setTripleAt(l2, p2, l2 + Math.cos(o2) * a2, p2 - Math.sin(o2) * a2, l2 + Math.cos(h2) * n2, p2 - Math.sin(h2) * n2, t2.length());\n }\n function getPerpendicularVector(t2, e2) {\n var r2 = [e2[0] - t2[0], e2[1] - t2[1]], i2 = 0.5 * -Math.PI;\n return [Math.cos(i2) * r2[0] - Math.sin(i2) * r2[1], Math.sin(i2) * r2[0] + Math.cos(i2) * r2[1]];\n }\n function getProjectingAngle(t2, e2) {\n var r2 = 0 === e2 ? t2.length() - 1 : e2 - 1, i2 = (e2 + 1) % t2.length(), s2 = getPerpendicularVector(t2.v[r2], t2.v[i2]);\n return Math.atan2(0, 1) - Math.atan2(s2[1], s2[0]);\n }\n function zigZagCorner(t2, e2, r2, i2, s2, a2, n2) {\n var o2 = getProjectingAngle(e2, r2), h2 = e2.v[r2 % e2._length], l2 = e2.v[0 === r2 ? e2._length - 1 : r2 - 1], p2 = e2.v[(r2 + 1) % e2._length], c2 = 2 === a2 ? Math.sqrt(Math.pow(h2[0] - l2[0], 2) + Math.pow(h2[1] - l2[1], 2)) : 0, f2 = 2 === a2 ? Math.sqrt(Math.pow(h2[0] - p2[0], 2) + Math.pow(h2[1] - p2[1], 2)) : 0;\n setPoint(t2, e2.v[r2 % e2._length], o2, n2, i2, f2 / (2 * (s2 + 1)), c2 / (2 * (s2 + 1)), a2);\n }\n function zigZagSegment(t2, e2, r2, i2, s2, a2) {\n for (var n2 = 0; n2 < i2; n2 += 1) {\n var o2 = (n2 + 1) / (i2 + 1), h2 = 2 === s2 ? Math.sqrt(Math.pow(e2.points[3][0] - e2.points[0][0], 2) + Math.pow(e2.points[3][1] - e2.points[0][1], 2)) : 0, l2 = e2.normalAngle(o2);\n setPoint(t2, e2.point(o2), l2, a2, r2, h2 / (2 * (i2 + 1)), h2 / (2 * (i2 + 1)), s2), a2 = -a2;\n }\n return a2;\n }\n function linearOffset(t2, e2, r2) {\n var i2 = Math.atan2(e2[0] - t2[0], e2[1] - t2[1]);\n return [polarOffset(t2, i2, r2), polarOffset(e2, i2, r2)];\n }\n function offsetSegment(t2, e2) {\n var r2, i2, s2, a2, n2, o2, h2;\n r2 = (h2 = linearOffset(t2.points[0], t2.points[1], e2))[0], i2 = h2[1], s2 = (h2 = linearOffset(t2.points[1], t2.points[2], e2))[0], a2 = h2[1], n2 = (h2 = linearOffset(t2.points[2], t2.points[3], e2))[0], o2 = h2[1];\n var l2 = lineIntersection(r2, i2, s2, a2);\n null === l2 && (l2 = i2);\n var p2 = lineIntersection(n2, o2, s2, a2);\n return null === p2 && (p2 = n2), new PolynomialBezier(r2, l2, p2, o2);\n }\n function joinLines(t2, e2, r2, i2, s2) {\n var a2 = e2.points[3], n2 = r2.points[0];\n if (3 === i2) return a2;\n if (pointEqual(a2, n2)) return a2;\n if (2 === i2) {\n var o2 = -e2.tangentAngle(1), h2 = -r2.tangentAngle(0) + Math.PI, l2 = lineIntersection(a2, polarOffset(a2, o2 + Math.PI / 2, 100), n2, polarOffset(n2, o2 + Math.PI / 2, 100)), p2 = l2 ? pointDistance(l2, a2) : pointDistance(a2, n2) / 2, c2 = polarOffset(a2, o2, 2 * p2 * roundCorner);\n return t2.setXYAt(c2[0], c2[1], \"o\", t2.length() - 1), c2 = polarOffset(n2, h2, 2 * p2 * roundCorner), t2.setTripleAt(n2[0], n2[1], n2[0], n2[1], c2[0], c2[1], t2.length()), n2;\n }\n var f2 = lineIntersection(pointEqual(a2, e2.points[2]) ? e2.points[0] : e2.points[2], a2, n2, pointEqual(n2, r2.points[1]) ? r2.points[3] : r2.points[1]);\n return f2 && pointDistance(f2, a2) < s2 ? (t2.setTripleAt(f2[0], f2[1], f2[0], f2[1], f2[0], f2[1], t2.length()), f2) : a2;\n }\n function getIntersection(t2, e2) {\n var r2 = t2.intersections(e2);\n return r2.length && floatEqual(r2[0][0], 1) && r2.shift(), r2.length ? r2[0] : null;\n }\n function pruneSegmentIntersection(t2, e2) {\n var r2 = t2.slice(), i2 = e2.slice(), s2 = getIntersection(t2[t2.length - 1], e2[0]);\n return s2 && (r2[t2.length - 1] = t2[t2.length - 1].split(s2[0])[0], i2[0] = e2[0].split(s2[1])[1]), t2.length > 1 && e2.length > 1 && (s2 = getIntersection(t2[0], e2[e2.length - 1])) ? [[t2[0].split(s2[0])[0]], [e2[e2.length - 1].split(s2[1])[1]]] : [r2, i2];\n }\n function pruneIntersections(t2) {\n for (var e2, r2 = 1; r2 < t2.length; r2 += 1) e2 = pruneSegmentIntersection(t2[r2 - 1], t2[r2]), t2[r2 - 1] = e2[0], t2[r2] = e2[1];\n return t2.length > 1 && (e2 = pruneSegmentIntersection(t2[t2.length - 1], t2[0]), t2[t2.length - 1] = e2[0], t2[0] = e2[1]), t2;\n }\n function offsetSegmentSplit(t2, e2) {\n var r2, i2, s2, a2, n2 = t2.inflectionPoints();\n if (0 === n2.length) return [offsetSegment(t2, e2)];\n if (1 === n2.length || floatEqual(n2[1], 1)) return r2 = (s2 = t2.split(n2[0]))[0], i2 = s2[1], [offsetSegment(r2, e2), offsetSegment(i2, e2)];\n r2 = (s2 = t2.split(n2[0]))[0];\n var o2 = (n2[1] - n2[0]) / (1 - n2[0]);\n return a2 = (s2 = s2[1].split(o2))[0], i2 = s2[1], [offsetSegment(r2, e2), offsetSegment(a2, e2), offsetSegment(i2, e2)];\n }\n function OffsetPathModifier() {\n }\n function getFontProperties(t2) {\n for (var e2 = t2.fStyle ? t2.fStyle.split(\" \") : [], r2 = \"normal\", i2 = \"normal\", s2 = e2.length, a2 = 0; a2 < s2; a2 += 1) switch (e2[a2].toLowerCase()) {\n case \"italic\":\n i2 = \"italic\";\n break;\n case \"bold\":\n r2 = \"700\";\n break;\n case \"black\":\n r2 = \"900\";\n break;\n case \"medium\":\n r2 = \"500\";\n break;\n case \"regular\":\n case \"normal\":\n r2 = \"400\";\n break;\n case \"light\":\n case \"thin\":\n r2 = \"200\";\n }\n return { style: i2, weight: t2.fWeight || r2 };\n }\n extendPrototype([ShapeModifier], RepeaterModifier), RepeaterModifier.prototype.initModifierProperties = function(t2, e2) {\n this.getValue = this.processKeys, this.c = PropertyFactory.getProp(t2, e2.c, 0, null, this), this.o = PropertyFactory.getProp(t2, e2.o, 0, null, this), this.tr = TransformPropertyFactory.getTransformProperty(t2, e2.tr, this), this.so = PropertyFactory.getProp(t2, e2.tr.so, 0, 0.01, this), this.eo = PropertyFactory.getProp(t2, e2.tr.eo, 0, 0.01, this), this.data = e2, this.dynamicProperties.length || this.getValue(true), this._isAnimated = !!this.dynamicProperties.length, this.pMatrix = new Matrix(), this.rMatrix = new Matrix(), this.sMatrix = new Matrix(), this.tMatrix = new Matrix(), this.matrix = new Matrix();\n }, RepeaterModifier.prototype.applyTransforms = function(t2, e2, r2, i2, s2, a2) {\n var n2 = a2 ? -1 : 1, o2 = i2.s.v[0] + (1 - i2.s.v[0]) * (1 - s2), h2 = i2.s.v[1] + (1 - i2.s.v[1]) * (1 - s2);\n t2.translate(i2.p.v[0] * n2 * s2, i2.p.v[1] * n2 * s2, i2.p.v[2]), e2.translate(-i2.a.v[0], -i2.a.v[1], i2.a.v[2]), e2.rotate(-i2.r.v * n2 * s2), e2.translate(i2.a.v[0], i2.a.v[1], i2.a.v[2]), r2.translate(-i2.a.v[0], -i2.a.v[1], i2.a.v[2]), r2.scale(a2 ? 1 / o2 : o2, a2 ? 1 / h2 : h2), r2.translate(i2.a.v[0], i2.a.v[1], i2.a.v[2]);\n }, RepeaterModifier.prototype.init = function(t2, e2, r2, i2) {\n for (this.elem = t2, this.arr = e2, this.pos = r2, this.elemsData = i2, this._currentCopies = 0, this._elements = [], this._groups = [], this.frameId = -1, this.initDynamicPropertyContainer(t2), this.initModifierProperties(t2, e2[r2]); r2 > 0; ) r2 -= 1, this._elements.unshift(e2[r2]);\n this.dynamicProperties.length ? this.k = true : this.getValue(true);\n }, RepeaterModifier.prototype.resetElements = function(t2) {\n var e2, r2 = t2.length;\n for (e2 = 0; e2 < r2; e2 += 1) t2[e2]._processed = false, \"gr\" === t2[e2].ty && this.resetElements(t2[e2].it);\n }, RepeaterModifier.prototype.cloneElements = function(t2) {\n var e2 = JSON.parse(JSON.stringify(t2));\n return this.resetElements(e2), e2;\n }, RepeaterModifier.prototype.changeGroupRender = function(t2, e2) {\n var r2, i2 = t2.length;\n for (r2 = 0; r2 < i2; r2 += 1) t2[r2]._render = e2, \"gr\" === t2[r2].ty && this.changeGroupRender(t2[r2].it, e2);\n }, RepeaterModifier.prototype.processShapes = function(t2) {\n var e2, r2, i2, s2, a2, n2 = false;\n if (this._mdf || t2) {\n var o2, h2 = Math.ceil(this.c.v);\n if (this._groups.length < h2) {\n for (; this._groups.length < h2; ) {\n var l2 = { it: this.cloneElements(this._elements), ty: \"gr\" };\n l2.it.push({ a: { a: 0, ix: 1, k: [0, 0] }, nm: \"Transform\", o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [{ s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 }] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: \"tr\" }), this.arr.splice(0, 0, l2), this._groups.splice(0, 0, l2), this._currentCopies += 1;\n }\n this.elem.reloadShapes(), n2 = true;\n }\n for (a2 = 0, i2 = 0; i2 <= this._groups.length - 1; i2 += 1) {\n if (o2 = a2 < h2, this._groups[i2]._render = o2, this.changeGroupRender(this._groups[i2].it, o2), !o2) {\n var p2 = this.elemsData[i2].it, c2 = p2[p2.length - 1];\n 0 !== c2.transform.op.v ? (c2.transform.op._mdf = true, c2.transform.op.v = 0) : c2.transform.op._mdf = false;\n }\n a2 += 1;\n }\n this._currentCopies = h2;\n var f2 = this.o.v, u2 = f2 % 1, d2 = f2 > 0 ? Math.floor(f2) : Math.ceil(f2), m2 = this.pMatrix.props, y2 = this.rMatrix.props, g2 = this.sMatrix.props;\n this.pMatrix.reset(), this.rMatrix.reset(), this.sMatrix.reset(), this.tMatrix.reset(), this.matrix.reset();\n var v2, b2, _2 = 0;\n if (f2 > 0) {\n for (; _2 < d2; ) this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false), _2 += 1;\n u2 && (this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, u2, false), _2 += u2);\n } else if (f2 < 0) {\n for (; _2 > d2; ) this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true), _2 -= 1;\n u2 && (this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -u2, true), _2 -= u2);\n }\n for (i2 = 1 === this.data.m ? 0 : this._currentCopies - 1, s2 = 1 === this.data.m ? 1 : -1, a2 = this._currentCopies; a2; ) {\n if (b2 = (r2 = (e2 = this.elemsData[i2].it)[e2.length - 1].transform.mProps.v.props).length, e2[e2.length - 1].transform.mProps._mdf = true, e2[e2.length - 1].transform.op._mdf = true, e2[e2.length - 1].transform.op.v = 1 === this._currentCopies ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i2 / (this._currentCopies - 1)), 0 !== _2) {\n for ((0 !== i2 && 1 === s2 || i2 !== this._currentCopies - 1 && -1 === s2) && this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false), this.matrix.transform(y2[0], y2[1], y2[2], y2[3], y2[4], y2[5], y2[6], y2[7], y2[8], y2[9], y2[10], y2[11], y2[12], y2[13], y2[14], y2[15]), this.matrix.transform(g2[0], g2[1], g2[2], g2[3], g2[4], g2[5], g2[6], g2[7], g2[8], g2[9], g2[10], g2[11], g2[12], g2[13], g2[14], g2[15]), this.matrix.transform(m2[0], m2[1], m2[2], m2[3], m2[4], m2[5], m2[6], m2[7], m2[8], m2[9], m2[10], m2[11], m2[12], m2[13], m2[14], m2[15]), v2 = 0; v2 < b2; v2 += 1) r2[v2] = this.matrix.props[v2];\n this.matrix.reset();\n } else for (this.matrix.reset(), v2 = 0; v2 < b2; v2 += 1) r2[v2] = this.matrix.props[v2];\n _2 += 1, a2 -= 1, i2 += s2;\n }\n } else for (a2 = this._currentCopies, i2 = 0, s2 = 1; a2; ) r2 = (e2 = this.elemsData[i2].it)[e2.length - 1].transform.mProps.v.props, e2[e2.length - 1].transform.mProps._mdf = false, e2[e2.length - 1].transform.op._mdf = false, a2 -= 1, i2 += s2;\n return n2;\n }, RepeaterModifier.prototype.addShape = function() {\n }, extendPrototype([ShapeModifier], RoundCornersModifier), RoundCornersModifier.prototype.initModifierProperties = function(t2, e2) {\n this.getValue = this.processKeys, this.rd = PropertyFactory.getProp(t2, e2.r, 0, null, this), this._isAnimated = !!this.rd.effectsSequence.length;\n }, RoundCornersModifier.prototype.processPath = function(t2, e2) {\n var r2, i2 = shapePool.newElement();\n i2.c = t2.c;\n var s2, a2, n2, o2, h2, l2, p2, c2, f2, u2, d2, m2, y2 = t2._length, g2 = 0;\n for (r2 = 0; r2 < y2; r2 += 1) s2 = t2.v[r2], n2 = t2.o[r2], a2 = t2.i[r2], s2[0] === n2[0] && s2[1] === n2[1] && s2[0] === a2[0] && s2[1] === a2[1] ? 0 !== r2 && r2 !== y2 - 1 || t2.c ? (o2 = 0 === r2 ? t2.v[y2 - 1] : t2.v[r2 - 1], l2 = (h2 = Math.sqrt(Math.pow(s2[0] - o2[0], 2) + Math.pow(s2[1] - o2[1], 2))) ? Math.min(h2 / 2, e2) / h2 : 0, p2 = d2 = s2[0] + (o2[0] - s2[0]) * l2, c2 = m2 = s2[1] - (s2[1] - o2[1]) * l2, f2 = p2 - (p2 - s2[0]) * roundCorner, u2 = c2 - (c2 - s2[1]) * roundCorner, i2.setTripleAt(p2, c2, f2, u2, d2, m2, g2), g2 += 1, o2 = r2 === y2 - 1 ? t2.v[0] : t2.v[r2 + 1], l2 = (h2 = Math.sqrt(Math.pow(s2[0] - o2[0], 2) + Math.pow(s2[1] - o2[1], 2))) ? Math.min(h2 / 2, e2) / h2 : 0, p2 = f2 = s2[0] + (o2[0] - s2[0]) * l2, c2 = u2 = s2[1] + (o2[1] - s2[1]) * l2, d2 = p2 - (p2 - s2[0]) * roundCorner, m2 = c2 - (c2 - s2[1]) * roundCorner, i2.setTripleAt(p2, c2, f2, u2, d2, m2, g2), g2 += 1) : (i2.setTripleAt(s2[0], s2[1], n2[0], n2[1], a2[0], a2[1], g2), g2 += 1) : (i2.setTripleAt(t2.v[r2][0], t2.v[r2][1], t2.o[r2][0], t2.o[r2][1], t2.i[r2][0], t2.i[r2][1], g2), g2 += 1);\n return i2;\n }, RoundCornersModifier.prototype.processShapes = function(t2) {\n var e2, r2, i2, s2, a2, n2, o2 = this.shapes.length, h2 = this.rd.v;\n if (0 !== h2) for (r2 = 0; r2 < o2; r2 += 1) {\n if (n2 = (a2 = this.shapes[r2]).localShapeCollection, a2.shape._mdf || this._mdf || t2) for (n2.releaseShapes(), a2.shape._mdf = true, e2 = a2.shape.paths.shapes, s2 = a2.shape.paths._length, i2 = 0; i2 < s2; i2 += 1) n2.addShape(this.processPath(e2[i2], h2));\n a2.shape.paths = a2.localShapeCollection;\n }\n this.dynamicProperties.length || (this._mdf = false);\n }, PolynomialBezier.prototype.point = function(t2) {\n return [((this.a[0] * t2 + this.b[0]) * t2 + this.c[0]) * t2 + this.d[0], ((this.a[1] * t2 + this.b[1]) * t2 + this.c[1]) * t2 + this.d[1]];\n }, PolynomialBezier.prototype.derivative = function(t2) {\n return [(3 * t2 * this.a[0] + 2 * this.b[0]) * t2 + this.c[0], (3 * t2 * this.a[1] + 2 * this.b[1]) * t2 + this.c[1]];\n }, PolynomialBezier.prototype.tangentAngle = function(t2) {\n var e2 = this.derivative(t2);\n return Math.atan2(e2[1], e2[0]);\n }, PolynomialBezier.prototype.normalAngle = function(t2) {\n var e2 = this.derivative(t2);\n return Math.atan2(e2[0], e2[1]);\n }, PolynomialBezier.prototype.inflectionPoints = function() {\n var t2 = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(t2)) return [];\n var e2 = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / t2, r2 = e2 * e2 - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / t2;\n if (r2 < 0) return [];\n var i2 = Math.sqrt(r2);\n return floatZero(i2) ? i2 > 0 && i2 < 1 ? [e2] : [] : [e2 - i2, e2 + i2].filter(function(t3) {\n return t3 > 0 && t3 < 1;\n });\n }, PolynomialBezier.prototype.split = function(t2) {\n if (t2 <= 0) return [singlePoint(this.points[0]), this];\n if (t2 >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var e2 = lerpPoint(this.points[0], this.points[1], t2), r2 = lerpPoint(this.points[1], this.points[2], t2), i2 = lerpPoint(this.points[2], this.points[3], t2), s2 = lerpPoint(e2, r2, t2), a2 = lerpPoint(r2, i2, t2), n2 = lerpPoint(s2, a2, t2);\n return [new PolynomialBezier(this.points[0], e2, s2, n2, true), new PolynomialBezier(n2, a2, i2, this.points[3], true)];\n }, PolynomialBezier.prototype.bounds = function() {\n return { x: extrema(this, 0), y: extrema(this, 1) };\n }, PolynomialBezier.prototype.boundingBox = function() {\n var t2 = this.bounds();\n return { left: t2.x.min, right: t2.x.max, top: t2.y.min, bottom: t2.y.max, width: t2.x.max - t2.x.min, height: t2.y.max - t2.y.min, cx: (t2.x.max + t2.x.min) / 2, cy: (t2.y.max + t2.y.min) / 2 };\n }, PolynomialBezier.prototype.intersections = function(t2, e2, r2) {\n void 0 === e2 && (e2 = 2), void 0 === r2 && (r2 = 7);\n var i2 = [];\n return intersectsImpl(intersectData(this, 0, 1), intersectData(t2, 0, 1), 0, e2, i2, r2), i2;\n }, PolynomialBezier.shapeSegment = function(t2, e2) {\n var r2 = (e2 + 1) % t2.length();\n return new PolynomialBezier(t2.v[e2], t2.o[e2], t2.i[r2], t2.v[r2], true);\n }, PolynomialBezier.shapeSegmentInverted = function(t2, e2) {\n var r2 = (e2 + 1) % t2.length();\n return new PolynomialBezier(t2.v[r2], t2.i[r2], t2.o[e2], t2.v[e2], true);\n }, extendPrototype([ShapeModifier], ZigZagModifier), ZigZagModifier.prototype.initModifierProperties = function(t2, e2) {\n this.getValue = this.processKeys, this.amplitude = PropertyFactory.getProp(t2, e2.s, 0, null, this), this.frequency = PropertyFactory.getProp(t2, e2.r, 0, null, this), this.pointsType = PropertyFactory.getProp(t2, e2.pt, 0, null, this), this._isAnimated = 0 !== this.amplitude.effectsSequence.length || 0 !== this.frequency.effectsSequence.length || 0 !== this.pointsType.effectsSequence.length;\n }, ZigZagModifier.prototype.processPath = function(t2, e2, r2, i2) {\n var s2 = t2._length, a2 = shapePool.newElement();\n if (a2.c = t2.c, t2.c || (s2 -= 1), 0 === s2) return a2;\n var n2 = -1, o2 = PolynomialBezier.shapeSegment(t2, 0);\n zigZagCorner(a2, t2, 0, e2, r2, i2, n2);\n for (var h2 = 0; h2 < s2; h2 += 1) n2 = zigZagSegment(a2, o2, e2, r2, i2, -n2), o2 = h2 !== s2 - 1 || t2.c ? PolynomialBezier.shapeSegment(t2, (h2 + 1) % s2) : null, zigZagCorner(a2, t2, h2 + 1, e2, r2, i2, n2);\n return a2;\n }, ZigZagModifier.prototype.processShapes = function(t2) {\n var e2, r2, i2, s2, a2, n2, o2 = this.shapes.length, h2 = this.amplitude.v, l2 = Math.max(0, Math.round(this.frequency.v)), p2 = this.pointsType.v;\n if (0 !== h2) for (r2 = 0; r2 < o2; r2 += 1) {\n if (n2 = (a2 = this.shapes[r2]).localShapeCollection, a2.shape._mdf || this._mdf || t2) for (n2.releaseShapes(), a2.shape._mdf = true, e2 = a2.shape.paths.shapes, s2 = a2.shape.paths._length, i2 = 0; i2 < s2; i2 += 1) n2.addShape(this.processPath(e2[i2], h2, l2, p2));\n a2.shape.paths = a2.localShapeCollection;\n }\n this.dynamicProperties.length || (this._mdf = false);\n }, extendPrototype([ShapeModifier], OffsetPathModifier), OffsetPathModifier.prototype.initModifierProperties = function(t2, e2) {\n this.getValue = this.processKeys, this.amount = PropertyFactory.getProp(t2, e2.a, 0, null, this), this.miterLimit = PropertyFactory.getProp(t2, e2.ml, 0, null, this), this.lineJoin = e2.lj, this._isAnimated = 0 !== this.amount.effectsSequence.length;\n }, OffsetPathModifier.prototype.processPath = function(t2, e2, r2, i2) {\n var s2 = shapePool.newElement();\n s2.c = t2.c;\n var a2, n2, o2, h2 = t2.length();\n t2.c || (h2 -= 1);\n var l2 = [];\n for (a2 = 0; a2 < h2; a2 += 1) o2 = PolynomialBezier.shapeSegment(t2, a2), l2.push(offsetSegmentSplit(o2, e2));\n if (!t2.c) for (a2 = h2 - 1; a2 >= 0; a2 -= 1) o2 = PolynomialBezier.shapeSegmentInverted(t2, a2), l2.push(offsetSegmentSplit(o2, e2));\n l2 = pruneIntersections(l2);\n var p2 = null, c2 = null;\n for (a2 = 0; a2 < l2.length; a2 += 1) {\n var f2 = l2[a2];\n for (c2 && (p2 = joinLines(s2, c2, f2[0], r2, i2)), c2 = f2[f2.length - 1], n2 = 0; n2 < f2.length; n2 += 1) o2 = f2[n2], p2 && pointEqual(o2.points[0], p2) ? s2.setXYAt(o2.points[1][0], o2.points[1][1], \"o\", s2.length() - 1) : s2.setTripleAt(o2.points[0][0], o2.points[0][1], o2.points[1][0], o2.points[1][1], o2.points[0][0], o2.points[0][1], s2.length()), s2.setTripleAt(o2.points[3][0], o2.points[3][1], o2.points[3][0], o2.points[3][1], o2.points[2][0], o2.points[2][1], s2.length()), p2 = o2.points[3];\n }\n return l2.length && joinLines(s2, c2, l2[0][0], r2, i2), s2;\n }, OffsetPathModifier.prototype.processShapes = function(t2) {\n var e2, r2, i2, s2, a2, n2, o2 = this.shapes.length, h2 = this.amount.v, l2 = this.miterLimit.v, p2 = this.lineJoin;\n if (0 !== h2) for (r2 = 0; r2 < o2; r2 += 1) {\n if (n2 = (a2 = this.shapes[r2]).localShapeCollection, a2.shape._mdf || this._mdf || t2) for (n2.releaseShapes(), a2.shape._mdf = true, e2 = a2.shape.paths.shapes, s2 = a2.shape.paths._length, i2 = 0; i2 < s2; i2 += 1) n2.addShape(this.processPath(e2[i2], h2, p2, l2));\n a2.shape.paths = a2.localShapeCollection;\n }\n this.dynamicProperties.length || (this._mdf = false);\n };\n var FontManager = function() {\n var t2 = { w: 0, size: 0, shapes: [], data: { shapes: [] } }, e2 = [];\n e2 = e2.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var r2 = 127988, i2 = [\"d83cdffb\", \"d83cdffc\", \"d83cdffd\", \"d83cdffe\", \"d83cdfff\"];\n function s2(t3, e3) {\n var r3 = createTag(\"span\");\n r3.setAttribute(\"aria-hidden\", true), r3.style.fontFamily = e3;\n var i3 = createTag(\"span\");\n i3.innerText = \"giItT1WQy@!-/#\", r3.style.position = \"absolute\", r3.style.left = \"-10000px\", r3.style.top = \"-10000px\", r3.style.fontSize = \"300px\", r3.style.fontVariant = \"normal\", r3.style.fontStyle = \"normal\", r3.style.fontWeight = \"normal\", r3.style.letterSpacing = \"0\", r3.appendChild(i3), document.body.appendChild(r3);\n var s3 = i3.offsetWidth;\n return i3.style.fontFamily = function(t4) {\n var e4, r4 = t4.split(\",\"), i4 = r4.length, s4 = [];\n for (e4 = 0; e4 < i4; e4 += 1) \"sans-serif\" !== r4[e4] && \"monospace\" !== r4[e4] && s4.push(r4[e4]);\n return s4.join(\",\");\n }(t3) + \", \" + e3, { node: i3, w: s3, parent: r3 };\n }\n function a2(t3, e3) {\n var r3, i3 = document.body && e3 ? \"svg\" : \"canvas\", s3 = getFontProperties(t3);\n if (\"svg\" === i3) {\n var a3 = createNS(\"text\");\n a3.style.fontSize = \"100px\", a3.setAttribute(\"font-family\", t3.fFamily), a3.setAttribute(\"font-style\", s3.style), a3.setAttribute(\"font-weight\", s3.weight), a3.textContent = \"1\", t3.fClass ? (a3.style.fontFamily = \"inherit\", a3.setAttribute(\"class\", t3.fClass)) : a3.style.fontFamily = t3.fFamily, e3.appendChild(a3), r3 = a3;\n } else {\n var n3 = new OffscreenCanvas(500, 500).getContext(\"2d\");\n n3.font = s3.style + \" \" + s3.weight + \" 100px \" + t3.fFamily, r3 = n3;\n }\n return { measureText: function(t4) {\n return \"svg\" === i3 ? (r3.textContent = t4, r3.getComputedTextLength()) : r3.measureText(t4).width;\n } };\n }\n function n2(t3) {\n var e3 = 0, r3 = t3.charCodeAt(0);\n if (r3 >= 55296 && r3 <= 56319) {\n var i3 = t3.charCodeAt(1);\n i3 >= 56320 && i3 <= 57343 && (e3 = 1024 * (r3 - 55296) + i3 - 56320 + 65536);\n }\n return e3;\n }\n function o2(t3) {\n var e3 = n2(t3);\n return e3 >= 127462 && e3 <= 127487;\n }\n var h2 = function() {\n this.fonts = [], this.chars = null, this.typekitLoaded = 0, this.isLoaded = false, this._warned = false, this.initTime = Date.now(), this.setIsLoadedBinded = this.setIsLoaded.bind(this), this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n h2.isModifier = function(t3, e3) {\n var r3 = t3.toString(16) + e3.toString(16);\n return -1 !== i2.indexOf(r3);\n }, h2.isZeroWidthJoiner = function(t3) {\n return 8205 === t3;\n }, h2.isFlagEmoji = function(t3) {\n return o2(t3.substr(0, 2)) && o2(t3.substr(2, 2));\n }, h2.isRegionalCode = o2, h2.isCombinedCharacter = function(t3) {\n return -1 !== e2.indexOf(t3);\n }, h2.isRegionalFlag = function(t3, e3) {\n var i3 = n2(t3.substr(e3, 2));\n if (i3 !== r2) return false;\n var s3 = 0;\n for (e3 += 2; s3 < 5; ) {\n if ((i3 = n2(t3.substr(e3, 2))) < 917601 || i3 > 917626) return false;\n s3 += 1, e3 += 2;\n }\n return 917631 === n2(t3.substr(e3, 2));\n }, h2.isVariationSelector = function(t3) {\n return 65039 === t3;\n }, h2.BLACK_FLAG_CODE_POINT = r2;\n var l2 = { addChars: function(t3) {\n if (t3) {\n var e3;\n this.chars || (this.chars = []);\n var r3, i3, s3 = t3.length, a3 = this.chars.length;\n for (e3 = 0; e3 < s3; e3 += 1) {\n for (r3 = 0, i3 = false; r3 < a3; ) this.chars[r3].style === t3[e3].style && this.chars[r3].fFamily === t3[e3].fFamily && this.chars[r3].ch === t3[e3].ch && (i3 = true), r3 += 1;\n i3 || (this.chars.push(t3[e3]), a3 += 1);\n }\n }\n }, addFonts: function(t3, e3) {\n if (t3) {\n if (this.chars) return this.isLoaded = true, void (this.fonts = t3.list);\n if (!document.body) return this.isLoaded = true, t3.list.forEach(function(t4) {\n t4.helper = a2(t4), t4.cache = {};\n }), void (this.fonts = t3.list);\n var r3, i3 = t3.list, n3 = i3.length, o3 = n3;\n for (r3 = 0; r3 < n3; r3 += 1) {\n var h3, l3, p2 = true;\n if (i3[r3].loaded = false, i3[r3].monoCase = s2(i3[r3].fFamily, \"monospace\"), i3[r3].sansCase = s2(i3[r3].fFamily, \"sans-serif\"), i3[r3].fPath) {\n if (\"p\" === i3[r3].fOrigin || 3 === i3[r3].origin) {\n if ((h3 = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + i3[r3].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + i3[r3].fFamily + '\"]')).length > 0 && (p2 = false), p2) {\n var c2 = createTag(\"style\");\n c2.setAttribute(\"f-forigin\", i3[r3].fOrigin), c2.setAttribute(\"f-origin\", i3[r3].origin), c2.setAttribute(\"f-family\", i3[r3].fFamily), c2.type = \"text/css\", c2.innerText = \"@font-face {font-family: \" + i3[r3].fFamily + \"; font-style: normal; src: url('\" + i3[r3].fPath + \"');}\", e3.appendChild(c2);\n }\n } else if (\"g\" === i3[r3].fOrigin || 1 === i3[r3].origin) {\n for (h3 = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]'), l3 = 0; l3 < h3.length; l3 += 1) -1 !== h3[l3].href.indexOf(i3[r3].fPath) && (p2 = false);\n if (p2) {\n var f2 = createTag(\"link\");\n f2.setAttribute(\"f-forigin\", i3[r3].fOrigin), f2.setAttribute(\"f-origin\", i3[r3].origin), f2.type = \"text/css\", f2.rel = \"stylesheet\", f2.href = i3[r3].fPath, document.body.appendChild(f2);\n }\n } else if (\"t\" === i3[r3].fOrigin || 2 === i3[r3].origin) {\n for (h3 = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]'), l3 = 0; l3 < h3.length; l3 += 1) i3[r3].fPath === h3[l3].src && (p2 = false);\n if (p2) {\n var u2 = createTag(\"link\");\n u2.setAttribute(\"f-forigin\", i3[r3].fOrigin), u2.setAttribute(\"f-origin\", i3[r3].origin), u2.setAttribute(\"rel\", \"stylesheet\"), u2.setAttribute(\"href\", i3[r3].fPath), e3.appendChild(u2);\n }\n }\n } else i3[r3].loaded = true, o3 -= 1;\n i3[r3].helper = a2(i3[r3], e3), i3[r3].cache = {}, this.fonts.push(i3[r3]);\n }\n 0 === o3 ? this.isLoaded = true : setTimeout(this.checkLoadedFonts.bind(this), 100);\n } else this.isLoaded = true;\n }, getCharData: function(e3, r3, i3) {\n for (var s3 = 0, a3 = this.chars.length; s3 < a3; ) {\n if (this.chars[s3].ch === e3 && this.chars[s3].style === r3 && this.chars[s3].fFamily === i3) return this.chars[s3];\n s3 += 1;\n }\n return (\"string\" == typeof e3 && 13 !== e3.charCodeAt(0) || !e3) && console && console.warn && !this._warned && (this._warned = true, console.warn(\"Missing character from exported characters list: \", e3, r3, i3)), t2;\n }, getFontByName: function(t3) {\n for (var e3 = 0, r3 = this.fonts.length; e3 < r3; ) {\n if (this.fonts[e3].fName === t3) return this.fonts[e3];\n e3 += 1;\n }\n return this.fonts[0];\n }, measureText: function(t3, e3, r3) {\n var i3 = this.getFontByName(e3), s3 = t3;\n if (!i3.cache[s3]) {\n var a3 = i3.helper;\n if (\" \" === t3) {\n var n3 = a3.measureText(\"|\" + t3 + \"|\"), o3 = a3.measureText(\"||\");\n i3.cache[s3] = (n3 - o3) / 100;\n } else i3.cache[s3] = a3.measureText(t3) / 100;\n }\n return i3.cache[s3] * r3;\n }, checkLoadedFonts: function() {\n var t3, e3, r3, i3 = this.fonts.length, s3 = i3;\n for (t3 = 0; t3 < i3; t3 += 1) this.fonts[t3].loaded ? s3 -= 1 : \"n\" === this.fonts[t3].fOrigin || 0 === this.fonts[t3].origin ? this.fonts[t3].loaded = true : (e3 = this.fonts[t3].monoCase.node, r3 = this.fonts[t3].monoCase.w, e3.offsetWidth !== r3 ? (s3 -= 1, this.fonts[t3].loaded = true) : (e3 = this.fonts[t3].sansCase.node, r3 = this.fonts[t3].sansCase.w, e3.offsetWidth !== r3 && (s3 -= 1, this.fonts[t3].loaded = true)), this.fonts[t3].loaded && (this.fonts[t3].sansCase.parent.parentNode.removeChild(this.fonts[t3].sansCase.parent), this.fonts[t3].monoCase.parent.parentNode.removeChild(this.fonts[t3].monoCase.parent)));\n 0 !== s3 && Date.now() - this.initTime < 5e3 ? setTimeout(this.checkLoadedFontsBinded, 20) : setTimeout(this.setIsLoadedBinded, 10);\n }, setIsLoaded: function() {\n this.isLoaded = true;\n } };\n return h2.prototype = l2, h2;\n }();\n function SlotManager(t2) {\n this.animationData = t2;\n }\n function slotFactory(t2) {\n return new SlotManager(t2);\n }\n function RenderableElement() {\n }\n SlotManager.prototype.getProp = function(t2) {\n return this.animationData.slots && this.animationData.slots[t2.sid] ? Object.assign(t2, this.animationData.slots[t2.sid].p) : t2;\n }, RenderableElement.prototype = { initRenderable: function() {\n this.isInRange = false, this.hidden = false, this.isTransparent = false, this.renderableComponents = [];\n }, addRenderableComponent: function(t2) {\n -1 === this.renderableComponents.indexOf(t2) && this.renderableComponents.push(t2);\n }, removeRenderableComponent: function(t2) {\n -1 !== this.renderableComponents.indexOf(t2) && this.renderableComponents.splice(this.renderableComponents.indexOf(t2), 1);\n }, prepareRenderableFrame: function(t2) {\n this.checkLayerLimits(t2);\n }, checkTransparency: function() {\n this.finalTransform.mProp.o.v <= 0 ? !this.isTransparent && this.globalData.renderConfig.hideOnTransparent && (this.isTransparent = true, this.hide()) : this.isTransparent && (this.isTransparent = false, this.show());\n }, checkLayerLimits: function(t2) {\n this.data.ip - this.data.st <= t2 && this.data.op - this.data.st > t2 ? true !== this.isInRange && (this.globalData._mdf = true, this._mdf = true, this.isInRange = true, this.show()) : false !== this.isInRange && (this.globalData._mdf = true, this.isInRange = false, this.hide());\n }, renderRenderable: function() {\n var t2, e2 = this.renderableComponents.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.renderableComponents[t2].renderFrame(this._isFirstFrame);\n }, sourceRectAtTime: function() {\n return { top: 0, left: 0, width: 100, height: 100 };\n }, getLayerSize: function() {\n return 5 === this.data.ty ? { w: this.data.textData.width, h: this.data.textData.height } : { w: this.data.width, h: this.data.height };\n } };\n var getBlendMode = (blendModeEnums = { 0: \"source-over\", 1: \"multiply\", 2: \"screen\", 3: \"overlay\", 4: \"darken\", 5: \"lighten\", 6: \"color-dodge\", 7: \"color-burn\", 8: \"hard-light\", 9: \"soft-light\", 10: \"difference\", 11: \"exclusion\", 12: \"hue\", 13: \"saturation\", 14: \"color\", 15: \"luminosity\" }, function(t2) {\n return blendModeEnums[t2] || \"\";\n }), blendModeEnums;\n function SliderEffect(t2, e2, r2) {\n this.p = PropertyFactory.getProp(e2, t2.v, 0, 0, r2);\n }\n function AngleEffect(t2, e2, r2) {\n this.p = PropertyFactory.getProp(e2, t2.v, 0, 0, r2);\n }\n function ColorEffect(t2, e2, r2) {\n this.p = PropertyFactory.getProp(e2, t2.v, 1, 0, r2);\n }\n function PointEffect(t2, e2, r2) {\n this.p = PropertyFactory.getProp(e2, t2.v, 1, 0, r2);\n }\n function LayerIndexEffect(t2, e2, r2) {\n this.p = PropertyFactory.getProp(e2, t2.v, 0, 0, r2);\n }\n function MaskIndexEffect(t2, e2, r2) {\n this.p = PropertyFactory.getProp(e2, t2.v, 0, 0, r2);\n }\n function CheckboxEffect(t2, e2, r2) {\n this.p = PropertyFactory.getProp(e2, t2.v, 0, 0, r2);\n }\n function NoValueEffect() {\n this.p = {};\n }\n function EffectsManager(t2, e2) {\n var r2, i2 = t2.ef || [];\n this.effectElements = [];\n var s2, a2 = i2.length;\n for (r2 = 0; r2 < a2; r2 += 1) s2 = new GroupEffect(i2[r2], e2), this.effectElements.push(s2);\n }\n function GroupEffect(t2, e2) {\n this.init(t2, e2);\n }\n function BaseElement() {\n }\n function FrameElement() {\n }\n function FootageElement(t2, e2, r2) {\n this.initFrame(), this.initRenderable(), this.assetData = e2.getAssetData(t2.refId), this.footageData = e2.imageLoader.getAsset(this.assetData), this.initBaseData(t2, e2, r2);\n }\n function AudioElement(t2, e2, r2) {\n this.initFrame(), this.initRenderable(), this.assetData = e2.getAssetData(t2.refId), this.initBaseData(t2, e2, r2), this._isPlaying = false, this._canPlay = false;\n var i2 = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(i2), this._currentTime = 0, this.globalData.audioController.addAudio(this), this._volumeMultiplier = 1, this._volume = 1, this._previousVolume = null, this.tm = t2.tm ? PropertyFactory.getProp(this, t2.tm, 0, e2.frameRate, this) : { _placeholder: true }, this.lv = PropertyFactory.getProp(this, t2.au && t2.au.lv ? t2.au.lv : { k: [100] }, 1, 0.01, this);\n }\n function BaseRenderer() {\n }\n extendPrototype([DynamicPropertyContainer], GroupEffect), GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties, GroupEffect.prototype.init = function(t2, e2) {\n var r2;\n this.data = t2, this.effectElements = [], this.initDynamicPropertyContainer(e2);\n var i2, s2 = this.data.ef.length, a2 = this.data.ef;\n for (r2 = 0; r2 < s2; r2 += 1) {\n switch (i2 = null, a2[r2].ty) {\n case 0:\n i2 = new SliderEffect(a2[r2], e2, this);\n break;\n case 1:\n i2 = new AngleEffect(a2[r2], e2, this);\n break;\n case 2:\n i2 = new ColorEffect(a2[r2], e2, this);\n break;\n case 3:\n i2 = new PointEffect(a2[r2], e2, this);\n break;\n case 4:\n case 7:\n i2 = new CheckboxEffect(a2[r2], e2, this);\n break;\n case 10:\n i2 = new LayerIndexEffect(a2[r2], e2, this);\n break;\n case 11:\n i2 = new MaskIndexEffect(a2[r2], e2, this);\n break;\n case 5:\n i2 = new EffectsManager(a2[r2], e2, this);\n break;\n default:\n i2 = new NoValueEffect(a2[r2], e2, this);\n }\n i2 && this.effectElements.push(i2);\n }\n }, BaseElement.prototype = { checkMasks: function() {\n if (!this.data.hasMask) return false;\n for (var t2 = 0, e2 = this.data.masksProperties.length; t2 < e2; ) {\n if (\"n\" !== this.data.masksProperties[t2].mode && false !== this.data.masksProperties[t2].cl) return true;\n t2 += 1;\n }\n return false;\n }, initExpressions: function() {\n var t2 = getExpressionInterfaces();\n if (t2) {\n var e2 = t2(\"layer\"), r2 = t2(\"effects\"), i2 = t2(\"shape\"), s2 = t2(\"text\"), a2 = t2(\"comp\");\n this.layerInterface = e2(this), this.data.hasMask && this.maskManager && this.layerInterface.registerMaskInterface(this.maskManager);\n var n2 = r2.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(n2), 0 === this.data.ty || this.data.xt ? this.compInterface = a2(this) : 4 === this.data.ty ? (this.layerInterface.shapeInterface = i2(this.shapesData, this.itemsData, this.layerInterface), this.layerInterface.content = this.layerInterface.shapeInterface) : 5 === this.data.ty && (this.layerInterface.textInterface = s2(this), this.layerInterface.text = this.layerInterface.textInterface);\n }\n }, setBlendMode: function() {\n var t2 = getBlendMode(this.data.bm);\n (this.baseElement || this.layerElement).style[\"mix-blend-mode\"] = t2;\n }, initBaseData: function(t2, e2, r2) {\n this.globalData = e2, this.comp = r2, this.data = t2, this.layerId = createElementID(), this.data.sr || (this.data.sr = 1), this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n }, getType: function() {\n return this.type;\n }, sourceRectAtTime: function() {\n } }, FrameElement.prototype = { initFrame: function() {\n this._isFirstFrame = false, this.dynamicProperties = [], this._mdf = false;\n }, prepareProperties: function(t2, e2) {\n var r2, i2 = this.dynamicProperties.length;\n for (r2 = 0; r2 < i2; r2 += 1) (e2 || this._isParent && \"transform\" === this.dynamicProperties[r2].propType) && (this.dynamicProperties[r2].getValue(), this.dynamicProperties[r2]._mdf && (this.globalData._mdf = true, this._mdf = true));\n }, addDynamicProperty: function(t2) {\n -1 === this.dynamicProperties.indexOf(t2) && this.dynamicProperties.push(t2);\n } }, FootageElement.prototype.prepareFrame = function() {\n }, extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement), FootageElement.prototype.getBaseElement = function() {\n return null;\n }, FootageElement.prototype.renderFrame = function() {\n }, FootageElement.prototype.destroy = function() {\n }, FootageElement.prototype.initExpressions = function() {\n var t2 = getExpressionInterfaces();\n if (t2) {\n var e2 = t2(\"footage\");\n this.layerInterface = e2(this);\n }\n }, FootageElement.prototype.getFootageData = function() {\n return this.footageData;\n }, AudioElement.prototype.prepareFrame = function(t2) {\n if (this.prepareRenderableFrame(t2, true), this.prepareProperties(t2, true), this.tm._placeholder) this._currentTime = t2 / this.data.sr;\n else {\n var e2 = this.tm.v;\n this._currentTime = e2;\n }\n this._volume = this.lv.v[0];\n var r2 = this._volume * this._volumeMultiplier;\n this._previousVolume !== r2 && (this._previousVolume = r2, this.audio.volume(r2));\n }, extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement), AudioElement.prototype.renderFrame = function() {\n this.isInRange && this._canPlay && (this._isPlaying ? (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) && this.audio.seek(this._currentTime / this.globalData.frameRate) : (this.audio.play(), this.audio.seek(this._currentTime / this.globalData.frameRate), this._isPlaying = true));\n }, AudioElement.prototype.show = function() {\n }, AudioElement.prototype.hide = function() {\n this.audio.pause(), this._isPlaying = false;\n }, AudioElement.prototype.pause = function() {\n this.audio.pause(), this._isPlaying = false, this._canPlay = false;\n }, AudioElement.prototype.resume = function() {\n this._canPlay = true;\n }, AudioElement.prototype.setRate = function(t2) {\n this.audio.rate(t2);\n }, AudioElement.prototype.volume = function(t2) {\n this._volumeMultiplier = t2, this._previousVolume = t2 * this._volume, this.audio.volume(this._previousVolume);\n }, AudioElement.prototype.getBaseElement = function() {\n return null;\n }, AudioElement.prototype.destroy = function() {\n }, AudioElement.prototype.sourceRectAtTime = function() {\n }, AudioElement.prototype.initExpressions = function() {\n }, BaseRenderer.prototype.checkLayers = function(t2) {\n var e2, r2, i2 = this.layers.length;\n for (this.completeLayers = true, e2 = i2 - 1; e2 >= 0; e2 -= 1) this.elements[e2] || (r2 = this.layers[e2]).ip - r2.st <= t2 - this.layers[e2].st && r2.op - r2.st > t2 - this.layers[e2].st && this.buildItem(e2), this.completeLayers = !!this.elements[e2] && this.completeLayers;\n this.checkPendingElements();\n }, BaseRenderer.prototype.createItem = function(t2) {\n switch (t2.ty) {\n case 2:\n return this.createImage(t2);\n case 0:\n return this.createComp(t2);\n case 1:\n return this.createSolid(t2);\n case 3:\n default:\n return this.createNull(t2);\n case 4:\n return this.createShape(t2);\n case 5:\n return this.createText(t2);\n case 6:\n return this.createAudio(t2);\n case 13:\n return this.createCamera(t2);\n case 15:\n return this.createFootage(t2);\n }\n }, BaseRenderer.prototype.createCamera = function() {\n throw new Error(\"You're using a 3d camera. Try the html renderer.\");\n }, BaseRenderer.prototype.createAudio = function(t2) {\n return new AudioElement(t2, this.globalData, this);\n }, BaseRenderer.prototype.createFootage = function(t2) {\n return new FootageElement(t2, this.globalData, this);\n }, BaseRenderer.prototype.buildAllItems = function() {\n var t2, e2 = this.layers.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.buildItem(t2);\n this.checkPendingElements();\n }, BaseRenderer.prototype.includeLayers = function(t2) {\n var e2;\n this.completeLayers = false;\n var r2, i2 = t2.length, s2 = this.layers.length;\n for (e2 = 0; e2 < i2; e2 += 1) for (r2 = 0; r2 < s2; ) {\n if (this.layers[r2].id === t2[e2].id) {\n this.layers[r2] = t2[e2];\n break;\n }\n r2 += 1;\n }\n }, BaseRenderer.prototype.setProjectInterface = function(t2) {\n this.globalData.projectInterface = t2;\n }, BaseRenderer.prototype.initItems = function() {\n this.globalData.progressiveLoad || this.buildAllItems();\n }, BaseRenderer.prototype.buildElementParenting = function(t2, e2, r2) {\n for (var i2 = this.elements, s2 = this.layers, a2 = 0, n2 = s2.length; a2 < n2; ) s2[a2].ind == e2 && (i2[a2] && true !== i2[a2] ? (r2.push(i2[a2]), i2[a2].setAsParent(), void 0 !== s2[a2].parent ? this.buildElementParenting(t2, s2[a2].parent, r2) : t2.setHierarchy(r2)) : (this.buildItem(a2), this.addPendingElement(t2))), a2 += 1;\n }, BaseRenderer.prototype.addPendingElement = function(t2) {\n this.pendingElements.push(t2);\n }, BaseRenderer.prototype.searchExtraCompositions = function(t2) {\n var e2, r2 = t2.length;\n for (e2 = 0; e2 < r2; e2 += 1) if (t2[e2].xt) {\n var i2 = this.createComp(t2[e2]);\n i2.initExpressions(), this.globalData.projectInterface.registerComposition(i2);\n }\n }, BaseRenderer.prototype.getElementById = function(t2) {\n var e2, r2 = this.elements.length;\n for (e2 = 0; e2 < r2; e2 += 1) if (this.elements[e2].data.ind === t2) return this.elements[e2];\n return null;\n }, BaseRenderer.prototype.getElementByPath = function(t2) {\n var e2, r2 = t2.shift();\n if (\"number\" == typeof r2) e2 = this.elements[r2];\n else {\n var i2, s2 = this.elements.length;\n for (i2 = 0; i2 < s2; i2 += 1) if (this.elements[i2].data.nm === r2) {\n e2 = this.elements[i2];\n break;\n }\n }\n return 0 === t2.length ? e2 : e2.getElementByPath(t2);\n }, BaseRenderer.prototype.setupGlobalData = function(t2, e2) {\n this.globalData.fontManager = new FontManager(), this.globalData.slotManager = slotFactory(t2), this.globalData.fontManager.addChars(t2.chars), this.globalData.fontManager.addFonts(t2.fonts, e2), this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem), this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem), this.globalData.imageLoader = this.animationItem.imagePreloader, this.globalData.audioController = this.animationItem.audioController, this.globalData.frameId = 0, this.globalData.frameRate = t2.fr, this.globalData.nm = t2.nm, this.globalData.compSize = { w: t2.w, h: t2.h };\n };\n var effectTypes = { TRANSFORM_EFFECT: \"transformEFfect\" };\n function TransformElement() {\n }\n function MaskElement(t2, e2, r2) {\n this.data = t2, this.element = e2, this.globalData = r2, this.storedData = [], this.masksProperties = this.data.masksProperties || [], this.maskElement = null;\n var i2, s2, a2 = this.globalData.defs, n2 = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(n2), this.solidPath = \"\";\n var o2, h2, l2, p2, c2, f2, u2 = this.masksProperties, d2 = 0, m2 = [], y2 = createElementID(), g2 = \"clipPath\", v2 = \"clip-path\";\n for (i2 = 0; i2 < n2; i2 += 1) if ((\"a\" !== u2[i2].mode && \"n\" !== u2[i2].mode || u2[i2].inv || 100 !== u2[i2].o.k || u2[i2].o.x) && (g2 = \"mask\", v2 = \"mask\"), \"s\" !== u2[i2].mode && \"i\" !== u2[i2].mode || 0 !== d2 ? l2 = null : ((l2 = createNS(\"rect\")).setAttribute(\"fill\", \"#ffffff\"), l2.setAttribute(\"width\", this.element.comp.data.w || 0), l2.setAttribute(\"height\", this.element.comp.data.h || 0), m2.push(l2)), s2 = createNS(\"path\"), \"n\" === u2[i2].mode) this.viewData[i2] = { op: PropertyFactory.getProp(this.element, u2[i2].o, 0, 0.01, this.element), prop: ShapePropertyFactory.getShapeProp(this.element, u2[i2], 3), elem: s2, lastPath: \"\" }, a2.appendChild(s2);\n else {\n var b2;\n if (d2 += 1, s2.setAttribute(\"fill\", \"s\" === u2[i2].mode ? \"#000000\" : \"#ffffff\"), s2.setAttribute(\"clip-rule\", \"nonzero\"), 0 !== u2[i2].x.k ? (g2 = \"mask\", v2 = \"mask\", f2 = PropertyFactory.getProp(this.element, u2[i2].x, 0, null, this.element), b2 = createElementID(), (p2 = createNS(\"filter\")).setAttribute(\"id\", b2), (c2 = createNS(\"feMorphology\")).setAttribute(\"operator\", \"erode\"), c2.setAttribute(\"in\", \"SourceGraphic\"), c2.setAttribute(\"radius\", \"0\"), p2.appendChild(c2), a2.appendChild(p2), s2.setAttribute(\"stroke\", \"s\" === u2[i2].mode ? \"#000000\" : \"#ffffff\")) : (c2 = null, f2 = null), this.storedData[i2] = { elem: s2, x: f2, expan: c2, lastPath: \"\", lastOperator: \"\", filterId: b2, lastRadius: 0 }, \"i\" === u2[i2].mode) {\n h2 = m2.length;\n var _2 = createNS(\"g\");\n for (o2 = 0; o2 < h2; o2 += 1) _2.appendChild(m2[o2]);\n var P2 = createNS(\"mask\");\n P2.setAttribute(\"mask-type\", \"alpha\"), P2.setAttribute(\"id\", y2 + \"_\" + d2), P2.appendChild(s2), a2.appendChild(P2), _2.setAttribute(\"mask\", \"url(\" + getLocationHref() + \"#\" + y2 + \"_\" + d2 + \")\"), m2.length = 0, m2.push(_2);\n } else m2.push(s2);\n u2[i2].inv && !this.solidPath && (this.solidPath = this.createLayerSolidPath()), this.viewData[i2] = { elem: s2, lastPath: \"\", op: PropertyFactory.getProp(this.element, u2[i2].o, 0, 0.01, this.element), prop: ShapePropertyFactory.getShapeProp(this.element, u2[i2], 3), invRect: l2 }, this.viewData[i2].prop.k || this.drawPath(u2[i2], this.viewData[i2].prop.v, this.viewData[i2]);\n }\n for (this.maskElement = createNS(g2), n2 = m2.length, i2 = 0; i2 < n2; i2 += 1) this.maskElement.appendChild(m2[i2]);\n d2 > 0 && (this.maskElement.setAttribute(\"id\", y2), this.element.maskedElement.setAttribute(v2, \"url(\" + getLocationHref() + \"#\" + y2 + \")\"), a2.appendChild(this.maskElement)), this.viewData.length && this.element.addRenderableComponent(this);\n }\n TransformElement.prototype = { initTransform: function() {\n var t2 = new Matrix();\n this.finalTransform = { mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 }, _matMdf: false, _localMatMdf: false, _opMdf: false, mat: t2, localMat: t2, localOpacity: 1 }, this.data.ao && (this.finalTransform.mProp.autoOriented = true), this.data.ty;\n }, renderTransform: function() {\n if (this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame, this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame, this.hierarchy) {\n var t2, e2 = this.finalTransform.mat, r2 = 0, i2 = this.hierarchy.length;\n if (!this.finalTransform._matMdf) for (; r2 < i2; ) {\n if (this.hierarchy[r2].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n r2 += 1;\n }\n if (this.finalTransform._matMdf) for (t2 = this.finalTransform.mProp.v.props, e2.cloneFromProps(t2), r2 = 0; r2 < i2; r2 += 1) e2.multiply(this.hierarchy[r2].finalTransform.mProp.v);\n }\n this.finalTransform._matMdf && (this.finalTransform._localMatMdf = this.finalTransform._matMdf), this.finalTransform._opMdf && (this.finalTransform.localOpacity = this.finalTransform.mProp.o.v);\n }, renderLocalTransform: function() {\n if (this.localTransforms) {\n var t2 = 0, e2 = this.localTransforms.length;\n if (this.finalTransform._localMatMdf = this.finalTransform._matMdf, !this.finalTransform._localMatMdf || !this.finalTransform._opMdf) for (; t2 < e2; ) this.localTransforms[t2]._mdf && (this.finalTransform._localMatMdf = true), this.localTransforms[t2]._opMdf && !this.finalTransform._opMdf && (this.finalTransform.localOpacity = this.finalTransform.mProp.o.v, this.finalTransform._opMdf = true), t2 += 1;\n if (this.finalTransform._localMatMdf) {\n var r2 = this.finalTransform.localMat;\n for (this.localTransforms[0].matrix.clone(r2), t2 = 1; t2 < e2; t2 += 1) {\n var i2 = this.localTransforms[t2].matrix;\n r2.multiply(i2);\n }\n r2.multiply(this.finalTransform.mat);\n }\n if (this.finalTransform._opMdf) {\n var s2 = this.finalTransform.localOpacity;\n for (t2 = 0; t2 < e2; t2 += 1) s2 *= 0.01 * this.localTransforms[t2].opacity;\n this.finalTransform.localOpacity = s2;\n }\n }\n }, searchEffectTransforms: function() {\n if (this.renderableEffectsManager) {\n var t2 = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n if (t2.length) {\n this.localTransforms = [], this.finalTransform.localMat = new Matrix();\n var e2 = 0, r2 = t2.length;\n for (e2 = 0; e2 < r2; e2 += 1) this.localTransforms.push(t2[e2]);\n }\n }\n }, globalToLocal: function(t2) {\n var e2 = [];\n e2.push(this.finalTransform);\n for (var r2, i2 = true, s2 = this.comp; i2; ) s2.finalTransform ? (s2.data.hasMask && e2.splice(0, 0, s2.finalTransform), s2 = s2.comp) : i2 = false;\n var a2, n2 = e2.length;\n for (r2 = 0; r2 < n2; r2 += 1) a2 = e2[r2].mat.applyToPointArray(0, 0, 0), t2 = [t2[0] - a2[0], t2[1] - a2[1], 0];\n return t2;\n }, mHelper: new Matrix() }, MaskElement.prototype.getMaskProperty = function(t2) {\n return this.viewData[t2].prop;\n }, MaskElement.prototype.renderFrame = function(t2) {\n var e2, r2 = this.element.finalTransform.mat, i2 = this.masksProperties.length;\n for (e2 = 0; e2 < i2; e2 += 1) if ((this.viewData[e2].prop._mdf || t2) && this.drawPath(this.masksProperties[e2], this.viewData[e2].prop.v, this.viewData[e2]), (this.viewData[e2].op._mdf || t2) && this.viewData[e2].elem.setAttribute(\"fill-opacity\", this.viewData[e2].op.v), \"n\" !== this.masksProperties[e2].mode && (this.viewData[e2].invRect && (this.element.finalTransform.mProp._mdf || t2) && this.viewData[e2].invRect.setAttribute(\"transform\", r2.getInverseMatrix().to2dCSS()), this.storedData[e2].x && (this.storedData[e2].x._mdf || t2))) {\n var s2 = this.storedData[e2].expan;\n this.storedData[e2].x.v < 0 ? (\"erode\" !== this.storedData[e2].lastOperator && (this.storedData[e2].lastOperator = \"erode\", this.storedData[e2].elem.setAttribute(\"filter\", \"url(\" + getLocationHref() + \"#\" + this.storedData[e2].filterId + \")\")), s2.setAttribute(\"radius\", -this.storedData[e2].x.v)) : (\"dilate\" !== this.storedData[e2].lastOperator && (this.storedData[e2].lastOperator = \"dilate\", this.storedData[e2].elem.setAttribute(\"filter\", null)), this.storedData[e2].elem.setAttribute(\"stroke-width\", 2 * this.storedData[e2].x.v));\n }\n }, MaskElement.prototype.getMaskelement = function() {\n return this.maskElement;\n }, MaskElement.prototype.createLayerSolidPath = function() {\n var t2 = \"M0,0 \";\n return t2 += \" h\" + this.globalData.compSize.w, t2 += \" v\" + this.globalData.compSize.h, t2 += \" h-\" + this.globalData.compSize.w, t2 += \" v-\" + this.globalData.compSize.h + \" \";\n }, MaskElement.prototype.drawPath = function(t2, e2, r2) {\n var i2, s2, a2 = \" M\" + e2.v[0][0] + \",\" + e2.v[0][1];\n for (s2 = e2._length, i2 = 1; i2 < s2; i2 += 1) a2 += \" C\" + e2.o[i2 - 1][0] + \",\" + e2.o[i2 - 1][1] + \" \" + e2.i[i2][0] + \",\" + e2.i[i2][1] + \" \" + e2.v[i2][0] + \",\" + e2.v[i2][1];\n if (e2.c && s2 > 1 && (a2 += \" C\" + e2.o[i2 - 1][0] + \",\" + e2.o[i2 - 1][1] + \" \" + e2.i[0][0] + \",\" + e2.i[0][1] + \" \" + e2.v[0][0] + \",\" + e2.v[0][1]), r2.lastPath !== a2) {\n var n2 = \"\";\n r2.elem && (e2.c && (n2 = t2.inv ? this.solidPath + a2 : a2), r2.elem.setAttribute(\"d\", n2)), r2.lastPath = a2;\n }\n }, MaskElement.prototype.destroy = function() {\n this.element = null, this.globalData = null, this.maskElement = null, this.data = null, this.masksProperties = null;\n };\n var filtersFactory = /* @__PURE__ */ function() {\n var t2 = { createFilter: function(t3, e2) {\n var r2 = createNS(\"filter\");\n return r2.setAttribute(\"id\", t3), true !== e2 && (r2.setAttribute(\"filterUnits\", \"objectBoundingBox\"), r2.setAttribute(\"x\", \"0%\"), r2.setAttribute(\"y\", \"0%\"), r2.setAttribute(\"width\", \"100%\"), r2.setAttribute(\"height\", \"100%\")), r2;\n }, createAlphaToLuminanceFilter: function() {\n var t3 = createNS(\"feColorMatrix\");\n return t3.setAttribute(\"type\", \"matrix\"), t3.setAttribute(\"color-interpolation-filters\", \"sRGB\"), t3.setAttribute(\"values\", \"0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1\"), t3;\n } };\n return t2;\n }(), featureSupport = function() {\n var t2 = { maskType: true, svgLumaHidden: true, offscreenCanvas: \"undefined\" != typeof OffscreenCanvas };\n return (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) && (t2.maskType = false), /firefox/i.test(navigator.userAgent) && (t2.svgLumaHidden = false), t2;\n }(), registeredEffects$1 = {}, idPrefix = \"filter_result_\";\n function SVGEffects(t2) {\n var e2, r2, i2 = \"SourceGraphic\", s2 = t2.data.ef ? t2.data.ef.length : 0, a2 = createElementID(), n2 = filtersFactory.createFilter(a2, true), o2 = 0;\n for (this.filters = [], e2 = 0; e2 < s2; e2 += 1) {\n r2 = null;\n var h2 = t2.data.ef[e2].ty;\n registeredEffects$1[h2] && (r2 = new (0, registeredEffects$1[h2].effect)(n2, t2.effectsManager.effectElements[e2], t2, idPrefix + o2, i2), i2 = idPrefix + o2, registeredEffects$1[h2].countsAsEffect && (o2 += 1)), r2 && this.filters.push(r2);\n }\n o2 && (t2.globalData.defs.appendChild(n2), t2.layerElement.setAttribute(\"filter\", \"url(\" + getLocationHref() + \"#\" + a2 + \")\")), this.filters.length && t2.addRenderableComponent(this);\n }\n function registerEffect$1(t2, e2, r2) {\n registeredEffects$1[t2] = { effect: e2, countsAsEffect: r2 };\n }\n function SVGBaseElement() {\n }\n function HierarchyElement() {\n }\n function RenderableDOMElement() {\n }\n function IImageElement(t2, e2, r2) {\n this.assetData = e2.getAssetData(t2.refId), this.assetData && this.assetData.sid && (this.assetData = e2.slotManager.getProp(this.assetData)), this.initElement(t2, e2, r2), this.sourceRect = { top: 0, left: 0, width: this.assetData.w, height: this.assetData.h };\n }\n function ProcessedElement(t2, e2) {\n this.elem = t2, this.pos = e2;\n }\n function IShapeElement() {\n }\n SVGEffects.prototype.renderFrame = function(t2) {\n var e2, r2 = this.filters.length;\n for (e2 = 0; e2 < r2; e2 += 1) this.filters[e2].renderFrame(t2);\n }, SVGEffects.prototype.getEffects = function(t2) {\n var e2, r2 = this.filters.length, i2 = [];\n for (e2 = 0; e2 < r2; e2 += 1) this.filters[e2].type === t2 && i2.push(this.filters[e2]);\n return i2;\n }, SVGBaseElement.prototype = { initRendererElement: function() {\n this.layerElement = createNS(\"g\");\n }, createContainerElements: function() {\n this.matteElement = createNS(\"g\"), this.transformedElement = this.layerElement, this.maskedElement = this.layerElement, this._sizeChanged = false;\n var t2 = null;\n if (this.data.td) {\n this.matteMasks = {};\n var e2 = createNS(\"g\");\n e2.setAttribute(\"id\", this.layerId), e2.appendChild(this.layerElement), t2 = e2, this.globalData.defs.appendChild(e2);\n } else this.data.tt ? (this.matteElement.appendChild(this.layerElement), t2 = this.matteElement, this.baseElement = this.matteElement) : this.baseElement = this.layerElement;\n if (this.data.ln && this.layerElement.setAttribute(\"id\", this.data.ln), this.data.cl && this.layerElement.setAttribute(\"class\", this.data.cl), 0 === this.data.ty && !this.data.hd) {\n var r2 = createNS(\"clipPath\"), i2 = createNS(\"path\");\n i2.setAttribute(\"d\", \"M0,0 L\" + this.data.w + \",0 L\" + this.data.w + \",\" + this.data.h + \" L0,\" + this.data.h + \"z\");\n var s2 = createElementID();\n if (r2.setAttribute(\"id\", s2), r2.appendChild(i2), this.globalData.defs.appendChild(r2), this.checkMasks()) {\n var a2 = createNS(\"g\");\n a2.setAttribute(\"clip-path\", \"url(\" + getLocationHref() + \"#\" + s2 + \")\"), a2.appendChild(this.layerElement), this.transformedElement = a2, t2 ? t2.appendChild(this.transformedElement) : this.baseElement = this.transformedElement;\n } else this.layerElement.setAttribute(\"clip-path\", \"url(\" + getLocationHref() + \"#\" + s2 + \")\");\n }\n 0 !== this.data.bm && this.setBlendMode();\n }, renderElement: function() {\n this.finalTransform._localMatMdf && this.transformedElement.setAttribute(\"transform\", this.finalTransform.localMat.to2dCSS()), this.finalTransform._opMdf && this.transformedElement.setAttribute(\"opacity\", this.finalTransform.localOpacity);\n }, destroyBaseElement: function() {\n this.layerElement = null, this.matteElement = null, this.maskManager.destroy();\n }, getBaseElement: function() {\n return this.data.hd ? null : this.baseElement;\n }, createRenderableComponents: function() {\n this.maskManager = new MaskElement(this.data, this, this.globalData), this.renderableEffectsManager = new SVGEffects(this), this.searchEffectTransforms();\n }, getMatte: function(t2) {\n if (this.matteMasks || (this.matteMasks = {}), !this.matteMasks[t2]) {\n var e2, r2, i2, s2, a2 = this.layerId + \"_\" + t2;\n if (1 === t2 || 3 === t2) {\n var n2 = createNS(\"mask\");\n n2.setAttribute(\"id\", a2), n2.setAttribute(\"mask-type\", 3 === t2 ? \"luminance\" : \"alpha\"), (i2 = createNS(\"use\")).setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", \"#\" + this.layerId), n2.appendChild(i2), this.globalData.defs.appendChild(n2), featureSupport.maskType || 1 !== t2 || (n2.setAttribute(\"mask-type\", \"luminance\"), e2 = createElementID(), r2 = filtersFactory.createFilter(e2), this.globalData.defs.appendChild(r2), r2.appendChild(filtersFactory.createAlphaToLuminanceFilter()), (s2 = createNS(\"g\")).appendChild(i2), n2.appendChild(s2), s2.setAttribute(\"filter\", \"url(\" + getLocationHref() + \"#\" + e2 + \")\"));\n } else if (2 === t2) {\n var o2 = createNS(\"mask\");\n o2.setAttribute(\"id\", a2), o2.setAttribute(\"mask-type\", \"alpha\");\n var h2 = createNS(\"g\");\n o2.appendChild(h2), e2 = createElementID(), r2 = filtersFactory.createFilter(e2);\n var l2 = createNS(\"feComponentTransfer\");\n l2.setAttribute(\"in\", \"SourceGraphic\"), r2.appendChild(l2);\n var p2 = createNS(\"feFuncA\");\n p2.setAttribute(\"type\", \"table\"), p2.setAttribute(\"tableValues\", \"1.0 0.0\"), l2.appendChild(p2), this.globalData.defs.appendChild(r2);\n var c2 = createNS(\"rect\");\n c2.setAttribute(\"width\", this.comp.data.w), c2.setAttribute(\"height\", this.comp.data.h), c2.setAttribute(\"x\", \"0\"), c2.setAttribute(\"y\", \"0\"), c2.setAttribute(\"fill\", \"#ffffff\"), c2.setAttribute(\"opacity\", \"0\"), h2.setAttribute(\"filter\", \"url(\" + getLocationHref() + \"#\" + e2 + \")\"), h2.appendChild(c2), (i2 = createNS(\"use\")).setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", \"#\" + this.layerId), h2.appendChild(i2), featureSupport.maskType || (o2.setAttribute(\"mask-type\", \"luminance\"), r2.appendChild(filtersFactory.createAlphaToLuminanceFilter()), s2 = createNS(\"g\"), h2.appendChild(c2), s2.appendChild(this.layerElement), h2.appendChild(s2)), this.globalData.defs.appendChild(o2);\n }\n this.matteMasks[t2] = a2;\n }\n return this.matteMasks[t2];\n }, setMatte: function(t2) {\n this.matteElement && this.matteElement.setAttribute(\"mask\", \"url(\" + getLocationHref() + \"#\" + t2 + \")\");\n } }, HierarchyElement.prototype = { initHierarchy: function() {\n this.hierarchy = [], this._isParent = false, this.checkParenting();\n }, setHierarchy: function(t2) {\n this.hierarchy = t2;\n }, setAsParent: function() {\n this._isParent = true;\n }, checkParenting: function() {\n void 0 !== this.data.parent && this.comp.buildElementParenting(this, this.data.parent, []);\n } }, extendPrototype([RenderableElement, createProxyFunction({ initElement: function(t2, e2, r2) {\n this.initFrame(), this.initBaseData(t2, e2, r2), this.initTransform(t2, e2, r2), this.initHierarchy(), this.initRenderable(), this.initRendererElement(), this.createContainerElements(), this.createRenderableComponents(), this.createContent(), this.hide();\n }, hide: function() {\n this.hidden || this.isInRange && !this.isTransparent || ((this.baseElement || this.layerElement).style.display = \"none\", this.hidden = true);\n }, show: function() {\n this.isInRange && !this.isTransparent && (this.data.hd || ((this.baseElement || this.layerElement).style.display = \"block\"), this.hidden = false, this._isFirstFrame = true);\n }, renderFrame: function() {\n this.data.hd || this.hidden || (this.renderTransform(), this.renderRenderable(), this.renderLocalTransform(), this.renderElement(), this.renderInnerContent(), this._isFirstFrame && (this._isFirstFrame = false));\n }, renderInnerContent: function() {\n }, prepareFrame: function(t2) {\n this._mdf = false, this.prepareRenderableFrame(t2), this.prepareProperties(t2, this.isInRange), this.checkTransparency();\n }, destroy: function() {\n this.innerElem = null, this.destroyBaseElement();\n } })], RenderableDOMElement), extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement), IImageElement.prototype.createContent = function() {\n var t2 = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS(\"image\"), this.innerElem.setAttribute(\"width\", this.assetData.w + \"px\"), this.innerElem.setAttribute(\"height\", this.assetData.h + \"px\"), this.innerElem.setAttribute(\"preserveAspectRatio\", this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio), this.innerElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", t2), this.layerElement.appendChild(this.innerElem);\n }, IImageElement.prototype.sourceRectAtTime = function() {\n return this.sourceRect;\n }, IShapeElement.prototype = { addShapeToModifiers: function(t2) {\n var e2, r2 = this.shapeModifiers.length;\n for (e2 = 0; e2 < r2; e2 += 1) this.shapeModifiers[e2].addShape(t2);\n }, isShapeInAnimatedModifiers: function(t2) {\n for (var e2 = this.shapeModifiers.length; 0 < e2; ) if (this.shapeModifiers[0].isAnimatedWithShape(t2)) return true;\n return false;\n }, renderModifiers: function() {\n if (this.shapeModifiers.length) {\n var t2, e2 = this.shapes.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.shapes[t2].sh.reset();\n for (t2 = (e2 = this.shapeModifiers.length) - 1; t2 >= 0 && !this.shapeModifiers[t2].processShapes(this._isFirstFrame); t2 -= 1) ;\n }\n }, searchProcessedElement: function(t2) {\n for (var e2 = this.processedElements, r2 = 0, i2 = e2.length; r2 < i2; ) {\n if (e2[r2].elem === t2) return e2[r2].pos;\n r2 += 1;\n }\n return 0;\n }, addProcessedElement: function(t2, e2) {\n for (var r2 = this.processedElements, i2 = r2.length; i2; ) if (r2[i2 -= 1].elem === t2) return void (r2[i2].pos = e2);\n r2.push(new ProcessedElement(t2, e2));\n }, prepareFrame: function(t2) {\n this.prepareRenderableFrame(t2), this.prepareProperties(t2, this.isInRange);\n } };\n var lineCapEnum = { 1: \"butt\", 2: \"round\", 3: \"square\" }, lineJoinEnum = { 1: \"miter\", 2: \"round\", 3: \"bevel\" };\n function SVGShapeData(t2, e2, r2) {\n this.caches = [], this.styles = [], this.transformers = t2, this.lStr = \"\", this.sh = r2, this.lvl = e2, this._isAnimated = !!r2.k;\n for (var i2 = 0, s2 = t2.length; i2 < s2; ) {\n if (t2[i2].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n i2 += 1;\n }\n }\n function SVGStyleData(t2, e2) {\n this.data = t2, this.type = t2.ty, this.d = \"\", this.lvl = e2, this._mdf = false, this.closed = true === t2.hd, this.pElem = createNS(\"path\"), this.msElem = null;\n }\n function DashProperty(t2, e2, r2, i2) {\n var s2;\n this.elem = t2, this.frameId = -1, this.dataProps = createSizedArray(e2.length), this.renderer = r2, this.k = false, this.dashStr = \"\", this.dashArray = createTypedArray(\"float32\", e2.length ? e2.length - 1 : 0), this.dashoffset = createTypedArray(\"float32\", 1), this.initDynamicPropertyContainer(i2);\n var a2, n2 = e2.length || 0;\n for (s2 = 0; s2 < n2; s2 += 1) a2 = PropertyFactory.getProp(t2, e2[s2].v, 0, 0, this), this.k = a2.k || this.k, this.dataProps[s2] = { n: e2[s2].n, p: a2 };\n this.k || this.getValue(true), this._isAnimated = this.k;\n }\n function SVGStrokeStyleData(t2, e2, r2) {\n this.initDynamicPropertyContainer(t2), this.getValue = this.iterateDynamicProperties, this.o = PropertyFactory.getProp(t2, e2.o, 0, 0.01, this), this.w = PropertyFactory.getProp(t2, e2.w, 0, null, this), this.d = new DashProperty(t2, e2.d || {}, \"svg\", this), this.c = PropertyFactory.getProp(t2, e2.c, 1, 255, this), this.style = r2, this._isAnimated = !!this._isAnimated;\n }\n function SVGFillStyleData(t2, e2, r2) {\n this.initDynamicPropertyContainer(t2), this.getValue = this.iterateDynamicProperties, this.o = PropertyFactory.getProp(t2, e2.o, 0, 0.01, this), this.c = PropertyFactory.getProp(t2, e2.c, 1, 255, this), this.style = r2;\n }\n function SVGNoStyleData(t2, e2, r2) {\n this.initDynamicPropertyContainer(t2), this.getValue = this.iterateDynamicProperties, this.style = r2;\n }\n function GradientProperty(t2, e2, r2) {\n this.data = e2, this.c = createTypedArray(\"uint8c\", 4 * e2.p);\n var i2 = e2.k.k[0].s ? e2.k.k[0].s.length - 4 * e2.p : e2.k.k.length - 4 * e2.p;\n this.o = createTypedArray(\"float32\", i2), this._cmdf = false, this._omdf = false, this._collapsable = this.checkCollapsable(), this._hasOpacity = i2, this.initDynamicPropertyContainer(r2), this.prop = PropertyFactory.getProp(t2, e2.k, 1, null, this), this.k = this.prop.k, this.getValue(true);\n }\n function SVGGradientFillStyleData(t2, e2, r2) {\n this.initDynamicPropertyContainer(t2), this.getValue = this.iterateDynamicProperties, this.initGradientData(t2, e2, r2);\n }\n function SVGGradientStrokeStyleData(t2, e2, r2) {\n this.initDynamicPropertyContainer(t2), this.getValue = this.iterateDynamicProperties, this.w = PropertyFactory.getProp(t2, e2.w, 0, null, this), this.d = new DashProperty(t2, e2.d || {}, \"svg\", this), this.initGradientData(t2, e2, r2), this._isAnimated = !!this._isAnimated;\n }\n function ShapeGroupData() {\n this.it = [], this.prevViewData = [], this.gr = createNS(\"g\");\n }\n function SVGTransformData(t2, e2, r2) {\n this.transform = { mProps: t2, op: e2, container: r2 }, this.elements = [], this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n SVGShapeData.prototype.setAsAnimated = function() {\n this._isAnimated = true;\n }, SVGStyleData.prototype.reset = function() {\n this.d = \"\", this._mdf = false;\n }, DashProperty.prototype.getValue = function(t2) {\n if ((this.elem.globalData.frameId !== this.frameId || t2) && (this.frameId = this.elem.globalData.frameId, this.iterateDynamicProperties(), this._mdf = this._mdf || t2, this._mdf)) {\n var e2 = 0, r2 = this.dataProps.length;\n for (\"svg\" === this.renderer && (this.dashStr = \"\"), e2 = 0; e2 < r2; e2 += 1) \"o\" !== this.dataProps[e2].n ? \"svg\" === this.renderer ? this.dashStr += \" \" + this.dataProps[e2].p.v : this.dashArray[e2] = this.dataProps[e2].p.v : this.dashoffset[0] = this.dataProps[e2].p.v;\n }\n }, extendPrototype([DynamicPropertyContainer], DashProperty), extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData), extendPrototype([DynamicPropertyContainer], SVGFillStyleData), extendPrototype([DynamicPropertyContainer], SVGNoStyleData), GradientProperty.prototype.comparePoints = function(t2, e2) {\n for (var r2 = 0, i2 = this.o.length / 2; r2 < i2; ) {\n if (Math.abs(t2[4 * r2] - t2[4 * e2 + 2 * r2]) > 0.01) return false;\n r2 += 1;\n }\n return true;\n }, GradientProperty.prototype.checkCollapsable = function() {\n if (this.o.length / 2 != this.c.length / 4) return false;\n if (this.data.k.k[0].s) for (var t2 = 0, e2 = this.data.k.k.length; t2 < e2; ) {\n if (!this.comparePoints(this.data.k.k[t2].s, this.data.p)) return false;\n t2 += 1;\n }\n else if (!this.comparePoints(this.data.k.k, this.data.p)) return false;\n return true;\n }, GradientProperty.prototype.getValue = function(t2) {\n if (this.prop.getValue(), this._mdf = false, this._cmdf = false, this._omdf = false, this.prop._mdf || t2) {\n var e2, r2, i2, s2 = 4 * this.data.p;\n for (e2 = 0; e2 < s2; e2 += 1) r2 = e2 % 4 == 0 ? 100 : 255, i2 = Math.round(this.prop.v[e2] * r2), this.c[e2] !== i2 && (this.c[e2] = i2, this._cmdf = !t2);\n if (this.o.length) for (s2 = this.prop.v.length, e2 = 4 * this.data.p; e2 < s2; e2 += 1) r2 = e2 % 2 == 0 ? 100 : 1, i2 = e2 % 2 == 0 ? Math.round(100 * this.prop.v[e2]) : this.prop.v[e2], this.o[e2 - 4 * this.data.p] !== i2 && (this.o[e2 - 4 * this.data.p] = i2, this._omdf = !t2);\n this._mdf = !t2;\n }\n }, extendPrototype([DynamicPropertyContainer], GradientProperty), SVGGradientFillStyleData.prototype.initGradientData = function(t2, e2, r2) {\n this.o = PropertyFactory.getProp(t2, e2.o, 0, 0.01, this), this.s = PropertyFactory.getProp(t2, e2.s, 1, null, this), this.e = PropertyFactory.getProp(t2, e2.e, 1, null, this), this.h = PropertyFactory.getProp(t2, e2.h || { k: 0 }, 0, 0.01, this), this.a = PropertyFactory.getProp(t2, e2.a || { k: 0 }, 0, degToRads, this), this.g = new GradientProperty(t2, e2.g, this), this.style = r2, this.stops = [], this.setGradientData(r2.pElem, e2), this.setGradientOpacity(e2, r2), this._isAnimated = !!this._isAnimated;\n }, SVGGradientFillStyleData.prototype.setGradientData = function(t2, e2) {\n var r2 = createElementID(), i2 = createNS(1 === e2.t ? \"linearGradient\" : \"radialGradient\");\n i2.setAttribute(\"id\", r2), i2.setAttribute(\"spreadMethod\", \"pad\"), i2.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n var s2, a2, n2, o2 = [];\n for (n2 = 4 * e2.g.p, a2 = 0; a2 < n2; a2 += 4) s2 = createNS(\"stop\"), i2.appendChild(s2), o2.push(s2);\n t2.setAttribute(\"gf\" === e2.ty ? \"fill\" : \"stroke\", \"url(\" + getLocationHref() + \"#\" + r2 + \")\"), this.gf = i2, this.cst = o2;\n }, SVGGradientFillStyleData.prototype.setGradientOpacity = function(t2, e2) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var r2, i2, s2, a2 = createNS(\"mask\"), n2 = createNS(\"path\");\n a2.appendChild(n2);\n var o2 = createElementID(), h2 = createElementID();\n a2.setAttribute(\"id\", h2);\n var l2 = createNS(1 === t2.t ? \"linearGradient\" : \"radialGradient\");\n l2.setAttribute(\"id\", o2), l2.setAttribute(\"spreadMethod\", \"pad\"), l2.setAttribute(\"gradientUnits\", \"userSpaceOnUse\"), s2 = t2.g.k.k[0].s ? t2.g.k.k[0].s.length : t2.g.k.k.length;\n var p2 = this.stops;\n for (i2 = 4 * t2.g.p; i2 < s2; i2 += 2) (r2 = createNS(\"stop\")).setAttribute(\"stop-color\", \"rgb(255,255,255)\"), l2.appendChild(r2), p2.push(r2);\n n2.setAttribute(\"gf\" === t2.ty ? \"fill\" : \"stroke\", \"url(\" + getLocationHref() + \"#\" + o2 + \")\"), \"gs\" === t2.ty && (n2.setAttribute(\"stroke-linecap\", lineCapEnum[t2.lc || 2]), n2.setAttribute(\"stroke-linejoin\", lineJoinEnum[t2.lj || 2]), 1 === t2.lj && n2.setAttribute(\"stroke-miterlimit\", t2.ml)), this.of = l2, this.ms = a2, this.ost = p2, this.maskId = h2, e2.msElem = n2;\n }\n }, extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData), extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n var buildShapeString = function(t2, e2, r2, i2) {\n if (0 === e2) return \"\";\n var s2, a2 = t2.o, n2 = t2.i, o2 = t2.v, h2 = \" M\" + i2.applyToPointStringified(o2[0][0], o2[0][1]);\n for (s2 = 1; s2 < e2; s2 += 1) h2 += \" C\" + i2.applyToPointStringified(a2[s2 - 1][0], a2[s2 - 1][1]) + \" \" + i2.applyToPointStringified(n2[s2][0], n2[s2][1]) + \" \" + i2.applyToPointStringified(o2[s2][0], o2[s2][1]);\n return r2 && e2 && (h2 += \" C\" + i2.applyToPointStringified(a2[s2 - 1][0], a2[s2 - 1][1]) + \" \" + i2.applyToPointStringified(n2[0][0], n2[0][1]) + \" \" + i2.applyToPointStringified(o2[0][0], o2[0][1]), h2 += \"z\"), h2;\n }, SVGElementsRenderer = function() {\n var t2 = new Matrix(), e2 = new Matrix();\n function r2(t3, e3, r3) {\n (r3 || e3.transform.op._mdf) && e3.transform.container.setAttribute(\"opacity\", e3.transform.op.v), (r3 || e3.transform.mProps._mdf) && e3.transform.container.setAttribute(\"transform\", e3.transform.mProps.v.to2dCSS());\n }\n function i2() {\n }\n function s2(r3, i3, s3) {\n var a3, n3, o3, h3, l2, p2, c2, f2, u2, d2, m2 = i3.styles.length, y2 = i3.lvl;\n for (p2 = 0; p2 < m2; p2 += 1) {\n if (h3 = i3.sh._mdf || s3, i3.styles[p2].lvl < y2) {\n for (f2 = e2.reset(), u2 = y2 - i3.styles[p2].lvl, d2 = i3.transformers.length - 1; !h3 && u2 > 0; ) h3 = i3.transformers[d2].mProps._mdf || h3, u2 -= 1, d2 -= 1;\n if (h3) for (u2 = y2 - i3.styles[p2].lvl, d2 = i3.transformers.length - 1; u2 > 0; ) f2.multiply(i3.transformers[d2].mProps.v), u2 -= 1, d2 -= 1;\n } else f2 = t2;\n if (n3 = (c2 = i3.sh.paths)._length, h3) {\n for (o3 = \"\", a3 = 0; a3 < n3; a3 += 1) (l2 = c2.shapes[a3]) && l2._length && (o3 += buildShapeString(l2, l2._length, l2.c, f2));\n i3.caches[p2] = o3;\n } else o3 = i3.caches[p2];\n i3.styles[p2].d += true === r3.hd ? \"\" : o3, i3.styles[p2]._mdf = h3 || i3.styles[p2]._mdf;\n }\n }\n function a2(t3, e3, r3) {\n var i3 = e3.style;\n (e3.c._mdf || r3) && i3.pElem.setAttribute(\"fill\", \"rgb(\" + bmFloor(e3.c.v[0]) + \",\" + bmFloor(e3.c.v[1]) + \",\" + bmFloor(e3.c.v[2]) + \")\"), (e3.o._mdf || r3) && i3.pElem.setAttribute(\"fill-opacity\", e3.o.v);\n }\n function n2(t3, e3, r3) {\n o2(t3, e3, r3), h2(0, e3, r3);\n }\n function o2(t3, e3, r3) {\n var i3, s3, a3, n3, o3, h3 = e3.gf, l2 = e3.g._hasOpacity, p2 = e3.s.v, c2 = e3.e.v;\n if (e3.o._mdf || r3) {\n var f2 = \"gf\" === t3.ty ? \"fill-opacity\" : \"stroke-opacity\";\n e3.style.pElem.setAttribute(f2, e3.o.v);\n }\n if (e3.s._mdf || r3) {\n var u2 = 1 === t3.t ? \"x1\" : \"cx\", d2 = \"x1\" === u2 ? \"y1\" : \"cy\";\n h3.setAttribute(u2, p2[0]), h3.setAttribute(d2, p2[1]), l2 && !e3.g._collapsable && (e3.of.setAttribute(u2, p2[0]), e3.of.setAttribute(d2, p2[1]));\n }\n if (e3.g._cmdf || r3) {\n i3 = e3.cst;\n var m2 = e3.g.c;\n for (a3 = i3.length, s3 = 0; s3 < a3; s3 += 1) (n3 = i3[s3]).setAttribute(\"offset\", m2[4 * s3] + \"%\"), n3.setAttribute(\"stop-color\", \"rgb(\" + m2[4 * s3 + 1] + \",\" + m2[4 * s3 + 2] + \",\" + m2[4 * s3 + 3] + \")\");\n }\n if (l2 && (e3.g._omdf || r3)) {\n var y2 = e3.g.o;\n for (a3 = (i3 = e3.g._collapsable ? e3.cst : e3.ost).length, s3 = 0; s3 < a3; s3 += 1) n3 = i3[s3], e3.g._collapsable || n3.setAttribute(\"offset\", y2[2 * s3] + \"%\"), n3.setAttribute(\"stop-opacity\", y2[2 * s3 + 1]);\n }\n if (1 === t3.t) (e3.e._mdf || r3) && (h3.setAttribute(\"x2\", c2[0]), h3.setAttribute(\"y2\", c2[1]), l2 && !e3.g._collapsable && (e3.of.setAttribute(\"x2\", c2[0]), e3.of.setAttribute(\"y2\", c2[1])));\n else if ((e3.s._mdf || e3.e._mdf || r3) && (o3 = Math.sqrt(Math.pow(p2[0] - c2[0], 2) + Math.pow(p2[1] - c2[1], 2)), h3.setAttribute(\"r\", o3), l2 && !e3.g._collapsable && e3.of.setAttribute(\"r\", o3)), e3.e._mdf || e3.h._mdf || e3.a._mdf || r3) {\n o3 || (o3 = Math.sqrt(Math.pow(p2[0] - c2[0], 2) + Math.pow(p2[1] - c2[1], 2)));\n var g2 = Math.atan2(c2[1] - p2[1], c2[0] - p2[0]), v2 = e3.h.v;\n v2 >= 1 ? v2 = 0.99 : v2 <= -1 && (v2 = -0.99);\n var b2 = o3 * v2, _2 = Math.cos(g2 + e3.a.v) * b2 + p2[0], P2 = Math.sin(g2 + e3.a.v) * b2 + p2[1];\n h3.setAttribute(\"fx\", _2), h3.setAttribute(\"fy\", P2), l2 && !e3.g._collapsable && (e3.of.setAttribute(\"fx\", _2), e3.of.setAttribute(\"fy\", P2));\n }\n }\n function h2(t3, e3, r3) {\n var i3 = e3.style, s3 = e3.d;\n s3 && (s3._mdf || r3) && s3.dashStr && (i3.pElem.setAttribute(\"stroke-dasharray\", s3.dashStr), i3.pElem.setAttribute(\"stroke-dashoffset\", s3.dashoffset[0])), e3.c && (e3.c._mdf || r3) && i3.pElem.setAttribute(\"stroke\", \"rgb(\" + bmFloor(e3.c.v[0]) + \",\" + bmFloor(e3.c.v[1]) + \",\" + bmFloor(e3.c.v[2]) + \")\"), (e3.o._mdf || r3) && i3.pElem.setAttribute(\"stroke-opacity\", e3.o.v), (e3.w._mdf || r3) && (i3.pElem.setAttribute(\"stroke-width\", e3.w.v), i3.msElem && i3.msElem.setAttribute(\"stroke-width\", e3.w.v));\n }\n return { createRenderFunction: function(t3) {\n switch (t3.ty) {\n case \"fl\":\n return a2;\n case \"gf\":\n return o2;\n case \"gs\":\n return n2;\n case \"st\":\n return h2;\n case \"sh\":\n case \"el\":\n case \"rc\":\n case \"sr\":\n return s2;\n case \"tr\":\n return r2;\n case \"no\":\n return i2;\n default:\n return null;\n }\n } };\n }();\n function SVGShapeElement(t2, e2, r2) {\n this.shapes = [], this.shapesData = t2.shapes, this.stylesList = [], this.shapeModifiers = [], this.itemsData = [], this.processedElements = [], this.animatedContents = [], this.initElement(t2, e2, r2), this.prevViewData = [];\n }\n function LetterProps(t2, e2, r2, i2, s2, a2) {\n this.o = t2, this.sw = e2, this.sc = r2, this.fc = i2, this.m = s2, this.p = a2, this._mdf = { o: true, sw: !!e2, sc: !!r2, fc: !!i2, m: true, p: true };\n }\n function TextProperty(t2, e2) {\n this._frameId = initialDefaultFrame, this.pv = \"\", this.v = \"\", this.kf = false, this._isFirstFrame = true, this._mdf = false, e2.d && e2.d.sid && (e2.d = t2.globalData.slotManager.getProp(e2.d)), this.data = e2, this.elem = t2, this.comp = this.elem.comp, this.keysIndex = 0, this.canResize = false, this.minimumFontSize = 1, this.effectsSequence = [], this.currentData = { ascent: 0, boxWidth: this.defaultBoxWidth, f: \"\", fStyle: \"\", fWeight: \"\", fc: \"\", j: \"\", justifyOffset: \"\", l: [], lh: 0, lineWidths: [], ls: \"\", of: \"\", s: \"\", sc: \"\", sw: 0, t: 0, tr: 0, sz: 0, ps: null, fillColorAnim: false, strokeColorAnim: false, strokeWidthAnim: false, yOffset: 0, finalSize: 0, finalText: [], finalLineHeight: 0, __complete: false }, this.copyData(this.currentData, this.data.d.k[0].s), this.searchProperty() || this.completeTextData(this.currentData);\n }\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement), SVGShapeElement.prototype.initSecondaryElement = function() {\n }, SVGShapeElement.prototype.identityMatrix = new Matrix(), SVGShapeElement.prototype.buildExpressionInterface = function() {\n }, SVGShapeElement.prototype.createContent = function() {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true), this.filterUniqueShapes();\n }, SVGShapeElement.prototype.filterUniqueShapes = function() {\n var t2, e2, r2, i2, s2 = this.shapes.length, a2 = this.stylesList.length, n2 = [], o2 = false;\n for (r2 = 0; r2 < a2; r2 += 1) {\n for (i2 = this.stylesList[r2], o2 = false, n2.length = 0, t2 = 0; t2 < s2; t2 += 1) -1 !== (e2 = this.shapes[t2]).styles.indexOf(i2) && (n2.push(e2), o2 = e2._isAnimated || o2);\n n2.length > 1 && o2 && this.setShapesAsAnimated(n2);\n }\n }, SVGShapeElement.prototype.setShapesAsAnimated = function(t2) {\n var e2, r2 = t2.length;\n for (e2 = 0; e2 < r2; e2 += 1) t2[e2].setAsAnimated();\n }, SVGShapeElement.prototype.createStyleElement = function(t2, e2) {\n var r2, i2 = new SVGStyleData(t2, e2), s2 = i2.pElem;\n return \"st\" === t2.ty ? r2 = new SVGStrokeStyleData(this, t2, i2) : \"fl\" === t2.ty ? r2 = new SVGFillStyleData(this, t2, i2) : \"gf\" === t2.ty || \"gs\" === t2.ty ? (r2 = new (\"gf\" === t2.ty ? SVGGradientFillStyleData : SVGGradientStrokeStyleData)(this, t2, i2), this.globalData.defs.appendChild(r2.gf), r2.maskId && (this.globalData.defs.appendChild(r2.ms), this.globalData.defs.appendChild(r2.of), s2.setAttribute(\"mask\", \"url(\" + getLocationHref() + \"#\" + r2.maskId + \")\"))) : \"no\" === t2.ty && (r2 = new SVGNoStyleData(this, t2, i2)), \"st\" !== t2.ty && \"gs\" !== t2.ty || (s2.setAttribute(\"stroke-linecap\", lineCapEnum[t2.lc || 2]), s2.setAttribute(\"stroke-linejoin\", lineJoinEnum[t2.lj || 2]), s2.setAttribute(\"fill-opacity\", \"0\"), 1 === t2.lj && s2.setAttribute(\"stroke-miterlimit\", t2.ml)), 2 === t2.r && s2.setAttribute(\"fill-rule\", \"evenodd\"), t2.ln && s2.setAttribute(\"id\", t2.ln), t2.cl && s2.setAttribute(\"class\", t2.cl), t2.bm && (s2.style[\"mix-blend-mode\"] = getBlendMode(t2.bm)), this.stylesList.push(i2), this.addToAnimatedContents(t2, r2), r2;\n }, SVGShapeElement.prototype.createGroupElement = function(t2) {\n var e2 = new ShapeGroupData();\n return t2.ln && e2.gr.setAttribute(\"id\", t2.ln), t2.cl && e2.gr.setAttribute(\"class\", t2.cl), t2.bm && (e2.gr.style[\"mix-blend-mode\"] = getBlendMode(t2.bm)), e2;\n }, SVGShapeElement.prototype.createTransformElement = function(t2, e2) {\n var r2 = TransformPropertyFactory.getTransformProperty(this, t2, this), i2 = new SVGTransformData(r2, r2.o, e2);\n return this.addToAnimatedContents(t2, i2), i2;\n }, SVGShapeElement.prototype.createShapeElement = function(t2, e2, r2) {\n var i2 = 4;\n \"rc\" === t2.ty ? i2 = 5 : \"el\" === t2.ty ? i2 = 6 : \"sr\" === t2.ty && (i2 = 7);\n var s2 = new SVGShapeData(e2, r2, ShapePropertyFactory.getShapeProp(this, t2, i2, this));\n return this.shapes.push(s2), this.addShapeToModifiers(s2), this.addToAnimatedContents(t2, s2), s2;\n }, SVGShapeElement.prototype.addToAnimatedContents = function(t2, e2) {\n for (var r2 = 0, i2 = this.animatedContents.length; r2 < i2; ) {\n if (this.animatedContents[r2].element === e2) return;\n r2 += 1;\n }\n this.animatedContents.push({ fn: SVGElementsRenderer.createRenderFunction(t2), element: e2, data: t2 });\n }, SVGShapeElement.prototype.setElementStyles = function(t2) {\n var e2, r2 = t2.styles, i2 = this.stylesList.length;\n for (e2 = 0; e2 < i2; e2 += 1) this.stylesList[e2].closed || r2.push(this.stylesList[e2]);\n }, SVGShapeElement.prototype.reloadShapes = function() {\n var t2;\n this._isFirstFrame = true;\n var e2 = this.itemsData.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.prevViewData[t2] = this.itemsData[t2];\n for (this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true), this.filterUniqueShapes(), e2 = this.dynamicProperties.length, t2 = 0; t2 < e2; t2 += 1) this.dynamicProperties[t2].getValue();\n this.renderModifiers();\n }, SVGShapeElement.prototype.searchShapes = function(t2, e2, r2, i2, s2, a2, n2) {\n var o2, h2, l2, p2, c2, f2, u2 = [].concat(a2), d2 = t2.length - 1, m2 = [], y2 = [];\n for (o2 = d2; o2 >= 0; o2 -= 1) {\n if ((f2 = this.searchProcessedElement(t2[o2])) ? e2[o2] = r2[f2 - 1] : t2[o2]._render = n2, \"fl\" === t2[o2].ty || \"st\" === t2[o2].ty || \"gf\" === t2[o2].ty || \"gs\" === t2[o2].ty || \"no\" === t2[o2].ty) f2 ? e2[o2].style.closed = false : e2[o2] = this.createStyleElement(t2[o2], s2), t2[o2]._render && e2[o2].style.pElem.parentNode !== i2 && i2.appendChild(e2[o2].style.pElem), m2.push(e2[o2].style);\n else if (\"gr\" === t2[o2].ty) {\n if (f2) for (l2 = e2[o2].it.length, h2 = 0; h2 < l2; h2 += 1) e2[o2].prevViewData[h2] = e2[o2].it[h2];\n else e2[o2] = this.createGroupElement(t2[o2]);\n this.searchShapes(t2[o2].it, e2[o2].it, e2[o2].prevViewData, e2[o2].gr, s2 + 1, u2, n2), t2[o2]._render && e2[o2].gr.parentNode !== i2 && i2.appendChild(e2[o2].gr);\n } else \"tr\" === t2[o2].ty ? (f2 || (e2[o2] = this.createTransformElement(t2[o2], i2)), p2 = e2[o2].transform, u2.push(p2)) : \"sh\" === t2[o2].ty || \"rc\" === t2[o2].ty || \"el\" === t2[o2].ty || \"sr\" === t2[o2].ty ? (f2 || (e2[o2] = this.createShapeElement(t2[o2], u2, s2)), this.setElementStyles(e2[o2])) : \"tm\" === t2[o2].ty || \"rd\" === t2[o2].ty || \"ms\" === t2[o2].ty || \"pb\" === t2[o2].ty || \"zz\" === t2[o2].ty || \"op\" === t2[o2].ty ? (f2 ? (c2 = e2[o2]).closed = false : ((c2 = ShapeModifiers.getModifier(t2[o2].ty)).init(this, t2[o2]), e2[o2] = c2, this.shapeModifiers.push(c2)), y2.push(c2)) : \"rp\" === t2[o2].ty && (f2 ? (c2 = e2[o2]).closed = true : (c2 = ShapeModifiers.getModifier(t2[o2].ty), e2[o2] = c2, c2.init(this, t2, o2, e2), this.shapeModifiers.push(c2), n2 = false), y2.push(c2));\n this.addProcessedElement(t2[o2], o2 + 1);\n }\n for (d2 = m2.length, o2 = 0; o2 < d2; o2 += 1) m2[o2].closed = true;\n for (d2 = y2.length, o2 = 0; o2 < d2; o2 += 1) y2[o2].closed = true;\n }, SVGShapeElement.prototype.renderInnerContent = function() {\n var t2;\n this.renderModifiers();\n var e2 = this.stylesList.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.stylesList[t2].reset();\n for (this.renderShape(), t2 = 0; t2 < e2; t2 += 1) (this.stylesList[t2]._mdf || this._isFirstFrame) && (this.stylesList[t2].msElem && (this.stylesList[t2].msElem.setAttribute(\"d\", this.stylesList[t2].d), this.stylesList[t2].d = \"M0 0\" + this.stylesList[t2].d), this.stylesList[t2].pElem.setAttribute(\"d\", this.stylesList[t2].d || \"M0 0\"));\n }, SVGShapeElement.prototype.renderShape = function() {\n var t2, e2, r2 = this.animatedContents.length;\n for (t2 = 0; t2 < r2; t2 += 1) e2 = this.animatedContents[t2], (this._isFirstFrame || e2.element._isAnimated) && true !== e2.data && e2.fn(e2.data, e2.element, this._isFirstFrame);\n }, SVGShapeElement.prototype.destroy = function() {\n this.destroyBaseElement(), this.shapesData = null, this.itemsData = null;\n }, LetterProps.prototype.update = function(t2, e2, r2, i2, s2, a2) {\n this._mdf.o = false, this._mdf.sw = false, this._mdf.sc = false, this._mdf.fc = false, this._mdf.m = false, this._mdf.p = false;\n var n2 = false;\n return this.o !== t2 && (this.o = t2, this._mdf.o = true, n2 = true), this.sw !== e2 && (this.sw = e2, this._mdf.sw = true, n2 = true), this.sc !== r2 && (this.sc = r2, this._mdf.sc = true, n2 = true), this.fc !== i2 && (this.fc = i2, this._mdf.fc = true, n2 = true), this.m !== s2 && (this.m = s2, this._mdf.m = true, n2 = true), !a2.length || this.p[0] === a2[0] && this.p[1] === a2[1] && this.p[4] === a2[4] && this.p[5] === a2[5] && this.p[12] === a2[12] && this.p[13] === a2[13] || (this.p = a2, this._mdf.p = true, n2 = true), n2;\n }, TextProperty.prototype.defaultBoxWidth = [0, 0], TextProperty.prototype.copyData = function(t2, e2) {\n for (var r2 in e2) Object.prototype.hasOwnProperty.call(e2, r2) && (t2[r2] = e2[r2]);\n return t2;\n }, TextProperty.prototype.setCurrentData = function(t2) {\n t2.__complete || this.completeTextData(t2), this.currentData = t2, this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth, this._mdf = true;\n }, TextProperty.prototype.searchProperty = function() {\n return this.searchKeyframes();\n }, TextProperty.prototype.searchKeyframes = function() {\n return this.kf = this.data.d.k.length > 1, this.kf && this.addEffect(this.getKeyframeValue.bind(this)), this.kf;\n }, TextProperty.prototype.addEffect = function(t2) {\n this.effectsSequence.push(t2), this.elem.addDynamicProperty(this);\n }, TextProperty.prototype.getValue = function(t2) {\n if (this.elem.globalData.frameId !== this.frameId && this.effectsSequence.length || t2) {\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var e2 = this.currentData, r2 = this.keysIndex;\n if (this.lock) this.setCurrentData(this.currentData);\n else {\n var i2;\n this.lock = true, this._mdf = false;\n var s2 = this.effectsSequence.length, a2 = t2 || this.data.d.k[this.keysIndex].s;\n for (i2 = 0; i2 < s2; i2 += 1) a2 = r2 !== this.keysIndex ? this.effectsSequence[i2](a2, a2.t) : this.effectsSequence[i2](this.currentData, a2.t);\n e2 !== a2 && this.setCurrentData(a2), this.v = this.currentData, this.pv = this.v, this.lock = false, this.frameId = this.elem.globalData.frameId;\n }\n }\n }, TextProperty.prototype.getKeyframeValue = function() {\n for (var t2 = this.data.d.k, e2 = this.elem.comp.renderedFrame, r2 = 0, i2 = t2.length; r2 <= i2 - 1 && !(r2 === i2 - 1 || t2[r2 + 1].t > e2); ) r2 += 1;\n return this.keysIndex !== r2 && (this.keysIndex = r2), this.data.d.k[this.keysIndex].s;\n }, TextProperty.prototype.buildFinalText = function(t2) {\n for (var e2, r2, i2 = [], s2 = 0, a2 = t2.length, n2 = false, o2 = false, h2 = \"\"; s2 < a2; ) n2 = o2, o2 = false, e2 = t2.charCodeAt(s2), h2 = t2.charAt(s2), FontManager.isCombinedCharacter(e2) ? n2 = true : e2 >= 55296 && e2 <= 56319 ? FontManager.isRegionalFlag(t2, s2) ? h2 = t2.substr(s2, 14) : (r2 = t2.charCodeAt(s2 + 1)) >= 56320 && r2 <= 57343 && (FontManager.isModifier(e2, r2) ? (h2 = t2.substr(s2, 2), n2 = true) : h2 = FontManager.isFlagEmoji(t2.substr(s2, 4)) ? t2.substr(s2, 4) : t2.substr(s2, 2)) : e2 > 56319 ? (r2 = t2.charCodeAt(s2 + 1), FontManager.isVariationSelector(e2) && (n2 = true)) : FontManager.isZeroWidthJoiner(e2) && (n2 = true, o2 = true), n2 ? (i2[i2.length - 1] += h2, n2 = false) : i2.push(h2), s2 += h2.length;\n return i2;\n }, TextProperty.prototype.completeTextData = function(t2) {\n t2.__complete = true;\n var e2, r2, i2, s2, a2, n2, o2, h2 = this.elem.globalData.fontManager, l2 = this.data, p2 = [], c2 = 0, f2 = l2.m.g, u2 = 0, d2 = 0, m2 = 0, y2 = [], g2 = 0, v2 = 0, b2 = h2.getFontByName(t2.f), _2 = 0, P2 = getFontProperties(b2);\n t2.fWeight = P2.weight, t2.fStyle = P2.style, t2.finalSize = t2.s, t2.finalText = this.buildFinalText(t2.t), r2 = t2.finalText.length, t2.finalLineHeight = t2.lh;\n var S2, E2 = t2.tr / 1e3 * t2.finalSize;\n if (t2.sz) for (var x2, C2, A2 = true, w2 = t2.sz[0], k2 = t2.sz[1]; A2; ) {\n x2 = 0, g2 = 0, r2 = (C2 = this.buildFinalText(t2.t)).length, E2 = t2.tr / 1e3 * t2.finalSize;\n var T2 = -1;\n for (e2 = 0; e2 < r2; e2 += 1) S2 = C2[e2].charCodeAt(0), i2 = false, \" \" === C2[e2] ? T2 = e2 : 13 !== S2 && 3 !== S2 || (g2 = 0, i2 = true, x2 += t2.finalLineHeight || 1.2 * t2.finalSize), h2.chars ? (o2 = h2.getCharData(C2[e2], b2.fStyle, b2.fFamily), _2 = i2 ? 0 : o2.w * t2.finalSize / 100) : _2 = h2.measureText(C2[e2], t2.f, t2.finalSize), g2 + _2 > w2 && \" \" !== C2[e2] ? (-1 === T2 ? r2 += 1 : e2 = T2, x2 += t2.finalLineHeight || 1.2 * t2.finalSize, C2.splice(e2, T2 === e2 ? 1 : 0, \"\\r\"), T2 = -1, g2 = 0) : (g2 += _2, g2 += E2);\n x2 += b2.ascent * t2.finalSize / 100, this.canResize && t2.finalSize > this.minimumFontSize && k2 < x2 ? (t2.finalSize -= 1, t2.finalLineHeight = t2.finalSize * t2.lh / t2.s) : (t2.finalText = C2, r2 = t2.finalText.length, A2 = false);\n }\n g2 = -E2, _2 = 0;\n var M2, D = 0;\n for (e2 = 0; e2 < r2; e2 += 1) if (i2 = false, 13 === (S2 = (M2 = t2.finalText[e2]).charCodeAt(0)) || 3 === S2 ? (D = 0, y2.push(g2), v2 = g2 > v2 ? g2 : v2, g2 = -2 * E2, s2 = \"\", i2 = true, m2 += 1) : s2 = M2, h2.chars ? (o2 = h2.getCharData(M2, b2.fStyle, h2.getFontByName(t2.f).fFamily), _2 = i2 ? 0 : o2.w * t2.finalSize / 100) : _2 = h2.measureText(s2, t2.f, t2.finalSize), \" \" === M2 ? D += _2 + E2 : (g2 += _2 + E2 + D, D = 0), p2.push({ l: _2, an: _2, add: u2, n: i2, anIndexes: [], val: s2, line: m2, animatorJustifyOffset: 0 }), 2 == f2) {\n if (u2 += _2, \"\" === s2 || \" \" === s2 || e2 === r2 - 1) {\n for (\"\" !== s2 && \" \" !== s2 || (u2 -= _2); d2 <= e2; ) p2[d2].an = u2, p2[d2].ind = c2, p2[d2].extra = _2, d2 += 1;\n c2 += 1, u2 = 0;\n }\n } else if (3 == f2) {\n if (u2 += _2, \"\" === s2 || e2 === r2 - 1) {\n for (\"\" === s2 && (u2 -= _2); d2 <= e2; ) p2[d2].an = u2, p2[d2].ind = c2, p2[d2].extra = _2, d2 += 1;\n u2 = 0, c2 += 1;\n }\n } else p2[c2].ind = c2, p2[c2].extra = 0, c2 += 1;\n if (t2.l = p2, v2 = g2 > v2 ? g2 : v2, y2.push(g2), t2.sz) t2.boxWidth = t2.sz[0], t2.justifyOffset = 0;\n else switch (t2.boxWidth = v2, t2.j) {\n case 1:\n t2.justifyOffset = -t2.boxWidth;\n break;\n case 2:\n t2.justifyOffset = -t2.boxWidth / 2;\n break;\n default:\n t2.justifyOffset = 0;\n }\n t2.lineWidths = y2;\n var F, I2, R2, L2, V2 = l2.a;\n n2 = V2.length;\n var B = [];\n for (a2 = 0; a2 < n2; a2 += 1) {\n for ((F = V2[a2]).a.sc && (t2.strokeColorAnim = true), F.a.sw && (t2.strokeWidthAnim = true), (F.a.fc || F.a.fh || F.a.fs || F.a.fb) && (t2.fillColorAnim = true), L2 = 0, R2 = F.s.b, e2 = 0; e2 < r2; e2 += 1) (I2 = p2[e2]).anIndexes[a2] = L2, (1 == R2 && \"\" !== I2.val || 2 == R2 && \"\" !== I2.val && \" \" !== I2.val || 3 == R2 && (I2.n || \" \" == I2.val || e2 == r2 - 1) || 4 == R2 && (I2.n || e2 == r2 - 1)) && (1 === F.s.rn && B.push(L2), L2 += 1);\n l2.a[a2].s.totalChars = L2;\n var O, $2 = -1;\n if (1 === F.s.rn) for (e2 = 0; e2 < r2; e2 += 1) $2 != (I2 = p2[e2]).anIndexes[a2] && ($2 = I2.anIndexes[a2], O = B.splice(Math.floor(Math.random() * B.length), 1)[0]), I2.anIndexes[a2] = O;\n }\n t2.yOffset = t2.finalLineHeight || 1.2 * t2.finalSize, t2.ls = t2.ls || 0, t2.ascent = b2.ascent * t2.finalSize / 100;\n }, TextProperty.prototype.updateDocumentData = function(t2, e2) {\n e2 = void 0 === e2 ? this.keysIndex : e2;\n var r2 = this.copyData({}, this.data.d.k[e2].s);\n r2 = this.copyData(r2, t2), this.data.d.k[e2].s = r2, this.recalculate(e2), this.setCurrentData(r2), this.elem.addDynamicProperty(this);\n }, TextProperty.prototype.recalculate = function(t2) {\n var e2 = this.data.d.k[t2].s;\n e2.__complete = false, this.keysIndex = 0, this._isFirstFrame = true, this.getValue(e2);\n }, TextProperty.prototype.canResizeFont = function(t2) {\n this.canResize = t2, this.recalculate(this.keysIndex), this.elem.addDynamicProperty(this);\n }, TextProperty.prototype.setMinimumFontSize = function(t2) {\n this.minimumFontSize = Math.floor(t2) || 1, this.recalculate(this.keysIndex), this.elem.addDynamicProperty(this);\n };\n var TextSelectorProp = function() {\n var t2 = Math.max, e2 = Math.min, r2 = Math.floor;\n function i2(t3, e3) {\n this._currentTextLength = -1, this.k = false, this.data = e3, this.elem = t3, this.comp = t3.comp, this.finalS = 0, this.finalE = 0, this.initDynamicPropertyContainer(t3), this.s = PropertyFactory.getProp(t3, e3.s || { k: 0 }, 0, 0, this), this.e = \"e\" in e3 ? PropertyFactory.getProp(t3, e3.e, 0, 0, this) : { v: 100 }, this.o = PropertyFactory.getProp(t3, e3.o || { k: 0 }, 0, 0, this), this.xe = PropertyFactory.getProp(t3, e3.xe || { k: 0 }, 0, 0, this), this.ne = PropertyFactory.getProp(t3, e3.ne || { k: 0 }, 0, 0, this), this.sm = PropertyFactory.getProp(t3, e3.sm || { k: 100 }, 0, 0, this), this.a = PropertyFactory.getProp(t3, e3.a, 0, 0.01, this), this.dynamicProperties.length || this.getValue();\n }\n return i2.prototype = { getMult: function(i3) {\n this._currentTextLength !== this.elem.textProperty.currentData.l.length && this.getValue();\n var s2 = 0, a2 = 0, n2 = 1, o2 = 1;\n this.ne.v > 0 ? s2 = this.ne.v / 100 : a2 = -this.ne.v / 100, this.xe.v > 0 ? n2 = 1 - this.xe.v / 100 : o2 = 1 + this.xe.v / 100;\n var h2 = BezierFactory.getBezierEasing(s2, a2, n2, o2).get, l2 = 0, p2 = this.finalS, c2 = this.finalE, f2 = this.data.sh;\n if (2 === f2) l2 = h2(l2 = c2 === p2 ? i3 >= c2 ? 1 : 0 : t2(0, e2(0.5 / (c2 - p2) + (i3 - p2) / (c2 - p2), 1)));\n else if (3 === f2) l2 = h2(l2 = c2 === p2 ? i3 >= c2 ? 0 : 1 : 1 - t2(0, e2(0.5 / (c2 - p2) + (i3 - p2) / (c2 - p2), 1)));\n else if (4 === f2) c2 === p2 ? l2 = 0 : (l2 = t2(0, e2(0.5 / (c2 - p2) + (i3 - p2) / (c2 - p2), 1))) < 0.5 ? l2 *= 2 : l2 = 1 - 2 * (l2 - 0.5), l2 = h2(l2);\n else if (5 === f2) {\n if (c2 === p2) l2 = 0;\n else {\n var u2 = c2 - p2, d2 = -u2 / 2 + (i3 = e2(t2(0, i3 + 0.5 - p2), c2 - p2)), m2 = u2 / 2;\n l2 = Math.sqrt(1 - d2 * d2 / (m2 * m2));\n }\n l2 = h2(l2);\n } else 6 === f2 ? (c2 === p2 ? l2 = 0 : (i3 = e2(t2(0, i3 + 0.5 - p2), c2 - p2), l2 = (1 + Math.cos(Math.PI + 2 * Math.PI * i3 / (c2 - p2))) / 2), l2 = h2(l2)) : (i3 >= r2(p2) && (l2 = t2(0, e2(i3 - p2 < 0 ? e2(c2, 1) - (p2 - i3) : c2 - i3, 1))), l2 = h2(l2));\n if (100 !== this.sm.v) {\n var y2 = 0.01 * this.sm.v;\n 0 === y2 && (y2 = 1e-8);\n var g2 = 0.5 - 0.5 * y2;\n l2 < g2 ? l2 = 0 : (l2 = (l2 - g2) / y2) > 1 && (l2 = 1);\n }\n return l2 * this.a.v;\n }, getValue: function(t3) {\n this.iterateDynamicProperties(), this._mdf = t3 || this._mdf, this._currentTextLength = this.elem.textProperty.currentData.l.length || 0, t3 && 2 === this.data.r && (this.e.v = this._currentTextLength);\n var e3 = 2 === this.data.r ? 1 : 100 / this.data.totalChars, r3 = this.o.v / e3, i3 = this.s.v / e3 + r3, s2 = this.e.v / e3 + r3;\n if (i3 > s2) {\n var a2 = i3;\n i3 = s2, s2 = a2;\n }\n this.finalS = i3, this.finalE = s2;\n } }, extendPrototype([DynamicPropertyContainer], i2), { getTextSelectorProp: function(t3, e3, r3) {\n return new i2(t3, e3, r3);\n } };\n }();\n function TextAnimatorDataProperty(t2, e2, r2) {\n var i2 = { propType: false }, s2 = PropertyFactory.getProp, a2 = e2.a;\n this.a = { r: a2.r ? s2(t2, a2.r, 0, degToRads, r2) : i2, rx: a2.rx ? s2(t2, a2.rx, 0, degToRads, r2) : i2, ry: a2.ry ? s2(t2, a2.ry, 0, degToRads, r2) : i2, sk: a2.sk ? s2(t2, a2.sk, 0, degToRads, r2) : i2, sa: a2.sa ? s2(t2, a2.sa, 0, degToRads, r2) : i2, s: a2.s ? s2(t2, a2.s, 1, 0.01, r2) : i2, a: a2.a ? s2(t2, a2.a, 1, 0, r2) : i2, o: a2.o ? s2(t2, a2.o, 0, 0.01, r2) : i2, p: a2.p ? s2(t2, a2.p, 1, 0, r2) : i2, sw: a2.sw ? s2(t2, a2.sw, 0, 0, r2) : i2, sc: a2.sc ? s2(t2, a2.sc, 1, 0, r2) : i2, fc: a2.fc ? s2(t2, a2.fc, 1, 0, r2) : i2, fh: a2.fh ? s2(t2, a2.fh, 0, 0, r2) : i2, fs: a2.fs ? s2(t2, a2.fs, 0, 0.01, r2) : i2, fb: a2.fb ? s2(t2, a2.fb, 0, 0.01, r2) : i2, t: a2.t ? s2(t2, a2.t, 0, 0, r2) : i2 }, this.s = TextSelectorProp.getTextSelectorProp(t2, e2.s, r2), this.s.t = e2.s.t;\n }\n function TextAnimatorProperty(t2, e2, r2) {\n this._isFirstFrame = true, this._hasMaskedPath = false, this._frameId = -1, this._textData = t2, this._renderType = e2, this._elem = r2, this._animatorsData = createSizedArray(this._textData.a.length), this._pathData = {}, this._moreOptions = { alignment: {} }, this.renderedLetters = [], this.lettersChangedFlag = false, this.initDynamicPropertyContainer(r2);\n }\n function ITextElement() {\n }\n TextAnimatorProperty.prototype.searchProperties = function() {\n var t2, e2, r2 = this._textData.a.length, i2 = PropertyFactory.getProp;\n for (t2 = 0; t2 < r2; t2 += 1) e2 = this._textData.a[t2], this._animatorsData[t2] = new TextAnimatorDataProperty(this._elem, e2, this);\n this._textData.p && \"m\" in this._textData.p ? (this._pathData = { a: i2(this._elem, this._textData.p.a, 0, 0, this), f: i2(this._elem, this._textData.p.f, 0, 0, this), l: i2(this._elem, this._textData.p.l, 0, 0, this), r: i2(this._elem, this._textData.p.r, 0, 0, this), p: i2(this._elem, this._textData.p.p, 0, 0, this), m: this._elem.maskManager.getMaskProperty(this._textData.p.m) }, this._hasMaskedPath = true) : this._hasMaskedPath = false, this._moreOptions.alignment = i2(this._elem, this._textData.m.a, 1, 0, this);\n }, TextAnimatorProperty.prototype.getMeasures = function(t2, e2) {\n if (this.lettersChangedFlag = e2, this._mdf || this._isFirstFrame || e2 || this._hasMaskedPath && this._pathData.m._mdf) {\n this._isFirstFrame = false;\n var r2, i2, s2, a2, n2, o2, h2, l2, p2, c2, f2, u2, d2, m2, y2, g2, v2, b2, _2, P2 = this._moreOptions.alignment.v, S2 = this._animatorsData, E2 = this._textData, x2 = this.mHelper, C2 = this._renderType, A2 = this.renderedLetters.length, w2 = t2.l;\n if (this._hasMaskedPath) {\n if (_2 = this._pathData.m, !this._pathData.n || this._pathData._mdf) {\n var k2, T2 = _2.v;\n for (this._pathData.r.v && (T2 = T2.reverse()), n2 = { tLength: 0, segments: [] }, a2 = T2._length - 1, g2 = 0, s2 = 0; s2 < a2; s2 += 1) k2 = bez.buildBezierData(T2.v[s2], T2.v[s2 + 1], [T2.o[s2][0] - T2.v[s2][0], T2.o[s2][1] - T2.v[s2][1]], [T2.i[s2 + 1][0] - T2.v[s2 + 1][0], T2.i[s2 + 1][1] - T2.v[s2 + 1][1]]), n2.tLength += k2.segmentLength, n2.segments.push(k2), g2 += k2.segmentLength;\n s2 = a2, _2.v.c && (k2 = bez.buildBezierData(T2.v[s2], T2.v[0], [T2.o[s2][0] - T2.v[s2][0], T2.o[s2][1] - T2.v[s2][1]], [T2.i[0][0] - T2.v[0][0], T2.i[0][1] - T2.v[0][1]]), n2.tLength += k2.segmentLength, n2.segments.push(k2), g2 += k2.segmentLength), this._pathData.pi = n2;\n }\n if (n2 = this._pathData.pi, o2 = this._pathData.f.v, f2 = 0, c2 = 1, l2 = 0, p2 = true, m2 = n2.segments, o2 < 0 && _2.v.c) for (n2.tLength < Math.abs(o2) && (o2 = -Math.abs(o2) % n2.tLength), c2 = (d2 = m2[f2 = m2.length - 1].points).length - 1; o2 < 0; ) o2 += d2[c2].partialLength, (c2 -= 1) < 0 && (c2 = (d2 = m2[f2 -= 1].points).length - 1);\n u2 = (d2 = m2[f2].points)[c2 - 1], y2 = (h2 = d2[c2]).partialLength;\n }\n a2 = w2.length, r2 = 0, i2 = 0;\n var M2, D, F, I2, R2, L2 = 1.2 * t2.finalSize * 0.714, V2 = true;\n F = S2.length;\n var B, O, $2, z2, G, N2, j, H2, q, W, U, Y, J = -1, X = o2, K = f2, Z = c2, Q = -1, tt = \"\", et = this.defaultPropsArray;\n if (2 === t2.j || 1 === t2.j) {\n var rt = 0, it = 0, st = 2 === t2.j ? -0.5 : -1, at = 0, nt = true;\n for (s2 = 0; s2 < a2; s2 += 1) if (w2[s2].n) {\n for (rt && (rt += it); at < s2; ) w2[at].animatorJustifyOffset = rt, at += 1;\n rt = 0, nt = true;\n } else {\n for (D = 0; D < F; D += 1) (M2 = S2[D].a).t.propType && (nt && 2 === t2.j && (it += M2.t.v * st), (R2 = S2[D].s.getMult(w2[s2].anIndexes[D], E2.a[D].s.totalChars)).length ? rt += M2.t.v * R2[0] * st : rt += M2.t.v * R2 * st);\n nt = false;\n }\n for (rt && (rt += it); at < s2; ) w2[at].animatorJustifyOffset = rt, at += 1;\n }\n for (s2 = 0; s2 < a2; s2 += 1) {\n if (x2.reset(), z2 = 1, w2[s2].n) r2 = 0, i2 += t2.yOffset, i2 += V2 ? 1 : 0, o2 = X, V2 = false, this._hasMaskedPath && (c2 = Z, u2 = (d2 = m2[f2 = K].points)[c2 - 1], y2 = (h2 = d2[c2]).partialLength, l2 = 0), tt = \"\", U = \"\", q = \"\", Y = \"\", et = this.defaultPropsArray;\n else {\n if (this._hasMaskedPath) {\n if (Q !== w2[s2].line) {\n switch (t2.j) {\n case 1:\n o2 += g2 - t2.lineWidths[w2[s2].line];\n break;\n case 2:\n o2 += (g2 - t2.lineWidths[w2[s2].line]) / 2;\n }\n Q = w2[s2].line;\n }\n J !== w2[s2].ind && (w2[J] && (o2 += w2[J].extra), o2 += w2[s2].an / 2, J = w2[s2].ind), o2 += P2[0] * w2[s2].an * 5e-3;\n var ot = 0;\n for (D = 0; D < F; D += 1) (M2 = S2[D].a).p.propType && ((R2 = S2[D].s.getMult(w2[s2].anIndexes[D], E2.a[D].s.totalChars)).length ? ot += M2.p.v[0] * R2[0] : ot += M2.p.v[0] * R2), M2.a.propType && ((R2 = S2[D].s.getMult(w2[s2].anIndexes[D], E2.a[D].s.totalChars)).length ? ot += M2.a.v[0] * R2[0] : ot += M2.a.v[0] * R2);\n for (p2 = true, this._pathData.a.v && (o2 = 0.5 * w2[0].an + (g2 - this._pathData.f.v - 0.5 * w2[0].an - 0.5 * w2[w2.length - 1].an) * J / (a2 - 1), o2 += this._pathData.f.v); p2; ) l2 + y2 >= o2 + ot || !d2 ? (v2 = (o2 + ot - l2) / h2.partialLength, O = u2.point[0] + (h2.point[0] - u2.point[0]) * v2, $2 = u2.point[1] + (h2.point[1] - u2.point[1]) * v2, x2.translate(-P2[0] * w2[s2].an * 5e-3, -P2[1] * L2 * 0.01), p2 = false) : d2 && (l2 += h2.partialLength, (c2 += 1) >= d2.length && (c2 = 0, m2[f2 += 1] ? d2 = m2[f2].points : _2.v.c ? (c2 = 0, d2 = m2[f2 = 0].points) : (l2 -= h2.partialLength, d2 = null)), d2 && (u2 = h2, y2 = (h2 = d2[c2]).partialLength));\n B = w2[s2].an / 2 - w2[s2].add, x2.translate(-B, 0, 0);\n } else B = w2[s2].an / 2 - w2[s2].add, x2.translate(-B, 0, 0), x2.translate(-P2[0] * w2[s2].an * 5e-3, -P2[1] * L2 * 0.01, 0);\n for (D = 0; D < F; D += 1) (M2 = S2[D].a).t.propType && (R2 = S2[D].s.getMult(w2[s2].anIndexes[D], E2.a[D].s.totalChars), 0 === r2 && 0 === t2.j || (this._hasMaskedPath ? R2.length ? o2 += M2.t.v * R2[0] : o2 += M2.t.v * R2 : R2.length ? r2 += M2.t.v * R2[0] : r2 += M2.t.v * R2));\n for (t2.strokeWidthAnim && (N2 = t2.sw || 0), t2.strokeColorAnim && (G = t2.sc ? [t2.sc[0], t2.sc[1], t2.sc[2]] : [0, 0, 0]), t2.fillColorAnim && t2.fc && (j = [t2.fc[0], t2.fc[1], t2.fc[2]]), D = 0; D < F; D += 1) (M2 = S2[D].a).a.propType && ((R2 = S2[D].s.getMult(w2[s2].anIndexes[D], E2.a[D].s.totalChars)).length ? x2.translate(-M2.a.v[0] * R2[0], -M2.a.v[1] * R2[1], M2.a.v[2] * R2[2]) : x2.translate(-M2.a.v[0] * R2, -M2.a.v[1] * R2, M2.a.v[2] * R2));\n for (D = 0; D < F; D += 1) (M2 = S2[D].a).s.propType && ((R2 = S2[D].s.getMult(w2[s2].anIndexes[D], E2.a[D].s.totalChars)).length ? x2.scale(1 + (M2.s.v[0] - 1) * R2[0], 1 + (M2.s.v[1] - 1) * R2[1], 1) : x2.scale(1 + (M2.s.v[0] - 1) * R2, 1 + (M2.s.v[1] - 1) * R2, 1));\n for (D = 0; D < F; D += 1) {\n if (M2 = S2[D].a, R2 = S2[D].s.getMult(w2[s2].anIndexes[D], E2.a[D].s.totalChars), M2.sk.propType && (R2.length ? x2.skewFromAxis(-M2.sk.v * R2[0], M2.sa.v * R2[1]) : x2.skewFromAxis(-M2.sk.v * R2, M2.sa.v * R2)), M2.r.propType && (R2.length ? x2.rotateZ(-M2.r.v * R2[2]) : x2.rotateZ(-M2.r.v * R2)), M2.ry.propType && (R2.length ? x2.rotateY(M2.ry.v * R2[1]) : x2.rotateY(M2.ry.v * R2)), M2.rx.propType && (R2.length ? x2.rotateX(M2.rx.v * R2[0]) : x2.rotateX(M2.rx.v * R2)), M2.o.propType && (R2.length ? z2 += (M2.o.v * R2[0] - z2) * R2[0] : z2 += (M2.o.v * R2 - z2) * R2), t2.strokeWidthAnim && M2.sw.propType && (R2.length ? N2 += M2.sw.v * R2[0] : N2 += M2.sw.v * R2), t2.strokeColorAnim && M2.sc.propType) for (H2 = 0; H2 < 3; H2 += 1) R2.length ? G[H2] += (M2.sc.v[H2] - G[H2]) * R2[0] : G[H2] += (M2.sc.v[H2] - G[H2]) * R2;\n if (t2.fillColorAnim && t2.fc) {\n if (M2.fc.propType) for (H2 = 0; H2 < 3; H2 += 1) R2.length ? j[H2] += (M2.fc.v[H2] - j[H2]) * R2[0] : j[H2] += (M2.fc.v[H2] - j[H2]) * R2;\n M2.fh.propType && (j = R2.length ? addHueToRGB(j, M2.fh.v * R2[0]) : addHueToRGB(j, M2.fh.v * R2)), M2.fs.propType && (j = R2.length ? addSaturationToRGB(j, M2.fs.v * R2[0]) : addSaturationToRGB(j, M2.fs.v * R2)), M2.fb.propType && (j = R2.length ? addBrightnessToRGB(j, M2.fb.v * R2[0]) : addBrightnessToRGB(j, M2.fb.v * R2));\n }\n }\n for (D = 0; D < F; D += 1) (M2 = S2[D].a).p.propType && (R2 = S2[D].s.getMult(w2[s2].anIndexes[D], E2.a[D].s.totalChars), this._hasMaskedPath ? R2.length ? x2.translate(0, M2.p.v[1] * R2[0], -M2.p.v[2] * R2[1]) : x2.translate(0, M2.p.v[1] * R2, -M2.p.v[2] * R2) : R2.length ? x2.translate(M2.p.v[0] * R2[0], M2.p.v[1] * R2[1], -M2.p.v[2] * R2[2]) : x2.translate(M2.p.v[0] * R2, M2.p.v[1] * R2, -M2.p.v[2] * R2));\n if (t2.strokeWidthAnim && (q = N2 < 0 ? 0 : N2), t2.strokeColorAnim && (W = \"rgb(\" + Math.round(255 * G[0]) + \",\" + Math.round(255 * G[1]) + \",\" + Math.round(255 * G[2]) + \")\"), t2.fillColorAnim && t2.fc && (U = \"rgb(\" + Math.round(255 * j[0]) + \",\" + Math.round(255 * j[1]) + \",\" + Math.round(255 * j[2]) + \")\"), this._hasMaskedPath) {\n if (x2.translate(0, -t2.ls), x2.translate(0, P2[1] * L2 * 0.01 + i2, 0), this._pathData.p.v) {\n b2 = (h2.point[1] - u2.point[1]) / (h2.point[0] - u2.point[0]);\n var ht = 180 * Math.atan(b2) / Math.PI;\n h2.point[0] < u2.point[0] && (ht += 180), x2.rotate(-ht * Math.PI / 180);\n }\n x2.translate(O, $2, 0), o2 -= P2[0] * w2[s2].an * 5e-3, w2[s2 + 1] && J !== w2[s2 + 1].ind && (o2 += w2[s2].an / 2, o2 += 1e-3 * t2.tr * t2.finalSize);\n } else {\n switch (x2.translate(r2, i2, 0), t2.ps && x2.translate(t2.ps[0], t2.ps[1] + t2.ascent, 0), t2.j) {\n case 1:\n x2.translate(w2[s2].animatorJustifyOffset + t2.justifyOffset + (t2.boxWidth - t2.lineWidths[w2[s2].line]), 0, 0);\n break;\n case 2:\n x2.translate(w2[s2].animatorJustifyOffset + t2.justifyOffset + (t2.boxWidth - t2.lineWidths[w2[s2].line]) / 2, 0, 0);\n }\n x2.translate(0, -t2.ls), x2.translate(B, 0, 0), x2.translate(P2[0] * w2[s2].an * 5e-3, P2[1] * L2 * 0.01, 0), r2 += w2[s2].l + 1e-3 * t2.tr * t2.finalSize;\n }\n \"html\" === C2 ? tt = x2.toCSS() : \"svg\" === C2 ? tt = x2.to2dCSS() : et = [x2.props[0], x2.props[1], x2.props[2], x2.props[3], x2.props[4], x2.props[5], x2.props[6], x2.props[7], x2.props[8], x2.props[9], x2.props[10], x2.props[11], x2.props[12], x2.props[13], x2.props[14], x2.props[15]], Y = z2;\n }\n A2 <= s2 ? (I2 = new LetterProps(Y, q, W, U, tt, et), this.renderedLetters.push(I2), A2 += 1, this.lettersChangedFlag = true) : (I2 = this.renderedLetters[s2], this.lettersChangedFlag = I2.update(Y, q, W, U, tt, et) || this.lettersChangedFlag);\n }\n }\n }, TextAnimatorProperty.prototype.getValue = function() {\n this._elem.globalData.frameId !== this._frameId && (this._frameId = this._elem.globalData.frameId, this.iterateDynamicProperties());\n }, TextAnimatorProperty.prototype.mHelper = new Matrix(), TextAnimatorProperty.prototype.defaultPropsArray = [], extendPrototype([DynamicPropertyContainer], TextAnimatorProperty), ITextElement.prototype.initElement = function(t2, e2, r2) {\n this.lettersChangedFlag = true, this.initFrame(), this.initBaseData(t2, e2, r2), this.textProperty = new TextProperty(this, t2.t, this.dynamicProperties), this.textAnimator = new TextAnimatorProperty(t2.t, this.renderType, this), this.initTransform(t2, e2, r2), this.initHierarchy(), this.initRenderable(), this.initRendererElement(), this.createContainerElements(), this.createRenderableComponents(), this.createContent(), this.hide(), this.textAnimator.searchProperties(this.dynamicProperties);\n }, ITextElement.prototype.prepareFrame = function(t2) {\n this._mdf = false, this.prepareRenderableFrame(t2), this.prepareProperties(t2, this.isInRange);\n }, ITextElement.prototype.createPathShape = function(t2, e2) {\n var r2, i2, s2 = e2.length, a2 = \"\";\n for (r2 = 0; r2 < s2; r2 += 1) \"sh\" === e2[r2].ty && (i2 = e2[r2].ks.k, a2 += buildShapeString(i2, i2.i.length, true, t2));\n return a2;\n }, ITextElement.prototype.updateDocumentData = function(t2, e2) {\n this.textProperty.updateDocumentData(t2, e2);\n }, ITextElement.prototype.canResizeFont = function(t2) {\n this.textProperty.canResizeFont(t2);\n }, ITextElement.prototype.setMinimumFontSize = function(t2) {\n this.textProperty.setMinimumFontSize(t2);\n }, ITextElement.prototype.applyTextPropertiesToMatrix = function(t2, e2, r2, i2, s2) {\n switch (t2.ps && e2.translate(t2.ps[0], t2.ps[1] + t2.ascent, 0), e2.translate(0, -t2.ls, 0), t2.j) {\n case 1:\n e2.translate(t2.justifyOffset + (t2.boxWidth - t2.lineWidths[r2]), 0, 0);\n break;\n case 2:\n e2.translate(t2.justifyOffset + (t2.boxWidth - t2.lineWidths[r2]) / 2, 0, 0);\n }\n e2.translate(i2, s2, 0);\n }, ITextElement.prototype.buildColor = function(t2) {\n return \"rgb(\" + Math.round(255 * t2[0]) + \",\" + Math.round(255 * t2[1]) + \",\" + Math.round(255 * t2[2]) + \")\";\n }, ITextElement.prototype.emptyProp = new LetterProps(), ITextElement.prototype.destroy = function() {\n }, ITextElement.prototype.validateText = function() {\n (this.textProperty._mdf || this.textProperty._isFirstFrame) && (this.buildNewText(), this.textProperty._isFirstFrame = false, this.textProperty._mdf = false);\n };\n var emptyShapeData = { shapes: [] };\n function SVGTextLottieElement(t2, e2, r2) {\n this.textSpans = [], this.renderType = \"svg\", this.initElement(t2, e2, r2);\n }\n function ISolidElement(t2, e2, r2) {\n this.initElement(t2, e2, r2);\n }\n function NullElement(t2, e2, r2) {\n this.initFrame(), this.initBaseData(t2, e2, r2), this.initFrame(), this.initTransform(t2, e2, r2), this.initHierarchy();\n }\n function SVGRendererBase() {\n }\n function ICompElement() {\n }\n function SVGCompElement(t2, e2, r2) {\n this.layers = t2.layers, this.supports3d = true, this.completeLayers = false, this.pendingElements = [], this.elements = this.layers ? createSizedArray(this.layers.length) : [], this.initElement(t2, e2, r2), this.tm = t2.tm ? PropertyFactory.getProp(this, t2.tm, 0, e2.frameRate, this) : { _placeholder: true };\n }\n function SVGRenderer(t2, e2) {\n this.animationItem = t2, this.layers = null, this.renderedFrame = -1, this.svgElement = createNS(\"svg\");\n var r2 = \"\";\n if (e2 && e2.title) {\n var i2 = createNS(\"title\"), s2 = createElementID();\n i2.setAttribute(\"id\", s2), i2.textContent = e2.title, this.svgElement.appendChild(i2), r2 += s2;\n }\n if (e2 && e2.description) {\n var a2 = createNS(\"desc\"), n2 = createElementID();\n a2.setAttribute(\"id\", n2), a2.textContent = e2.description, this.svgElement.appendChild(a2), r2 += \" \" + n2;\n }\n r2 && this.svgElement.setAttribute(\"aria-labelledby\", r2);\n var o2 = createNS(\"defs\");\n this.svgElement.appendChild(o2);\n var h2 = createNS(\"g\");\n this.svgElement.appendChild(h2), this.layerElement = h2, this.renderConfig = { preserveAspectRatio: e2 && e2.preserveAspectRatio || \"xMidYMid meet\", imagePreserveAspectRatio: e2 && e2.imagePreserveAspectRatio || \"xMidYMid slice\", contentVisibility: e2 && e2.contentVisibility || \"visible\", progressiveLoad: e2 && e2.progressiveLoad || false, hideOnTransparent: !(e2 && false === e2.hideOnTransparent), viewBoxOnly: e2 && e2.viewBoxOnly || false, viewBoxSize: e2 && e2.viewBoxSize || false, className: e2 && e2.className || \"\", id: e2 && e2.id || \"\", focusable: e2 && e2.focusable, filterSize: { width: e2 && e2.filterSize && e2.filterSize.width || \"100%\", height: e2 && e2.filterSize && e2.filterSize.height || \"100%\", x: e2 && e2.filterSize && e2.filterSize.x || \"0%\", y: e2 && e2.filterSize && e2.filterSize.y || \"0%\" }, width: e2 && e2.width, height: e2 && e2.height, runExpressions: !e2 || void 0 === e2.runExpressions || e2.runExpressions }, this.globalData = { _mdf: false, frameNum: -1, defs: o2, renderConfig: this.renderConfig }, this.elements = [], this.pendingElements = [], this.destroyed = false, this.rendererType = \"svg\";\n }\n function ShapeTransformManager() {\n this.sequences = {}, this.sequenceList = [], this.transform_key_count = 0;\n }\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement), SVGTextLottieElement.prototype.createContent = function() {\n this.data.singleShape && !this.globalData.fontManager.chars && (this.textContainer = createNS(\"text\"));\n }, SVGTextLottieElement.prototype.buildTextContents = function(t2) {\n for (var e2 = 0, r2 = t2.length, i2 = [], s2 = \"\"; e2 < r2; ) t2[e2] === String.fromCharCode(13) || t2[e2] === String.fromCharCode(3) ? (i2.push(s2), s2 = \"\") : s2 += t2[e2], e2 += 1;\n return i2.push(s2), i2;\n }, SVGTextLottieElement.prototype.buildShapeData = function(t2, e2) {\n if (t2.shapes && t2.shapes.length) {\n var r2 = t2.shapes[0];\n if (r2.it) {\n var i2 = r2.it[r2.it.length - 1];\n i2.s && (i2.s.k[0] = e2, i2.s.k[1] = e2);\n }\n }\n return t2;\n }, SVGTextLottieElement.prototype.buildNewText = function() {\n var t2, e2;\n this.addDynamicProperty(this);\n var r2 = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(r2 ? r2.l.length : 0), r2.fc ? this.layerElement.setAttribute(\"fill\", this.buildColor(r2.fc)) : this.layerElement.setAttribute(\"fill\", \"rgba(0,0,0,0)\"), r2.sc && (this.layerElement.setAttribute(\"stroke\", this.buildColor(r2.sc)), this.layerElement.setAttribute(\"stroke-width\", r2.sw)), this.layerElement.setAttribute(\"font-size\", r2.finalSize);\n var i2 = this.globalData.fontManager.getFontByName(r2.f);\n if (i2.fClass) this.layerElement.setAttribute(\"class\", i2.fClass);\n else {\n this.layerElement.setAttribute(\"font-family\", i2.fFamily);\n var s2 = r2.fWeight, a2 = r2.fStyle;\n this.layerElement.setAttribute(\"font-style\", a2), this.layerElement.setAttribute(\"font-weight\", s2);\n }\n this.layerElement.setAttribute(\"aria-label\", r2.t);\n var n2, o2 = r2.l || [], h2 = !!this.globalData.fontManager.chars;\n e2 = o2.length;\n var l2 = this.mHelper, p2 = this.data.singleShape, c2 = 0, f2 = 0, u2 = true, d2 = 1e-3 * r2.tr * r2.finalSize;\n if (!p2 || h2 || r2.sz) {\n var m2, y2 = this.textSpans.length;\n for (t2 = 0; t2 < e2; t2 += 1) {\n if (this.textSpans[t2] || (this.textSpans[t2] = { span: null, childSpan: null, glyph: null }), !h2 || !p2 || 0 === t2) {\n if (n2 = y2 > t2 ? this.textSpans[t2].span : createNS(h2 ? \"g\" : \"text\"), y2 <= t2) {\n if (n2.setAttribute(\"stroke-linecap\", \"butt\"), n2.setAttribute(\"stroke-linejoin\", \"round\"), n2.setAttribute(\"stroke-miterlimit\", \"4\"), this.textSpans[t2].span = n2, h2) {\n var g2 = createNS(\"g\");\n n2.appendChild(g2), this.textSpans[t2].childSpan = g2;\n }\n this.textSpans[t2].span = n2, this.layerElement.appendChild(n2);\n }\n n2.style.display = \"inherit\";\n }\n if (l2.reset(), p2 && (o2[t2].n && (c2 = -d2, f2 += r2.yOffset, f2 += u2 ? 1 : 0, u2 = false), this.applyTextPropertiesToMatrix(r2, l2, o2[t2].line, c2, f2), c2 += o2[t2].l || 0, c2 += d2), h2) {\n var v2;\n if (1 === (m2 = this.globalData.fontManager.getCharData(r2.finalText[t2], i2.fStyle, this.globalData.fontManager.getFontByName(r2.f).fFamily)).t) v2 = new SVGCompElement(m2.data, this.globalData, this);\n else {\n var b2 = emptyShapeData;\n m2.data && m2.data.shapes && (b2 = this.buildShapeData(m2.data, r2.finalSize)), v2 = new SVGShapeElement(b2, this.globalData, this);\n }\n if (this.textSpans[t2].glyph) {\n var _2 = this.textSpans[t2].glyph;\n this.textSpans[t2].childSpan.removeChild(_2.layerElement), _2.destroy();\n }\n this.textSpans[t2].glyph = v2, v2._debug = true, v2.prepareFrame(0), v2.renderFrame(), this.textSpans[t2].childSpan.appendChild(v2.layerElement), 1 === m2.t && this.textSpans[t2].childSpan.setAttribute(\"transform\", \"scale(\" + r2.finalSize / 100 + \",\" + r2.finalSize / 100 + \")\");\n } else p2 && n2.setAttribute(\"transform\", \"translate(\" + l2.props[12] + \",\" + l2.props[13] + \")\"), n2.textContent = o2[t2].val, n2.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n }\n p2 && n2 && n2.setAttribute(\"d\", \"\");\n } else {\n var P2 = this.textContainer, S2 = \"start\";\n switch (r2.j) {\n case 1:\n S2 = \"end\";\n break;\n case 2:\n S2 = \"middle\";\n break;\n default:\n S2 = \"start\";\n }\n P2.setAttribute(\"text-anchor\", S2), P2.setAttribute(\"letter-spacing\", d2);\n var E2 = this.buildTextContents(r2.finalText);\n for (e2 = E2.length, f2 = r2.ps ? r2.ps[1] + r2.ascent : 0, t2 = 0; t2 < e2; t2 += 1) (n2 = this.textSpans[t2].span || createNS(\"tspan\")).textContent = E2[t2], n2.setAttribute(\"x\", 0), n2.setAttribute(\"y\", f2), n2.style.display = \"inherit\", P2.appendChild(n2), this.textSpans[t2] || (this.textSpans[t2] = { span: null, glyph: null }), this.textSpans[t2].span = n2, f2 += r2.finalLineHeight;\n this.layerElement.appendChild(P2);\n }\n for (; t2 < this.textSpans.length; ) this.textSpans[t2].span.style.display = \"none\", t2 += 1;\n this._sizeChanged = true;\n }, SVGTextLottieElement.prototype.sourceRectAtTime = function() {\n if (this.prepareFrame(this.comp.renderedFrame - this.data.st), this.renderInnerContent(), this._sizeChanged) {\n this._sizeChanged = false;\n var t2 = this.layerElement.getBBox();\n this.bbox = { top: t2.y, left: t2.x, width: t2.width, height: t2.height };\n }\n return this.bbox;\n }, SVGTextLottieElement.prototype.getValue = function() {\n var t2, e2, r2 = this.textSpans.length;\n for (this.renderedFrame = this.comp.renderedFrame, t2 = 0; t2 < r2; t2 += 1) (e2 = this.textSpans[t2].glyph) && (e2.prepareFrame(this.comp.renderedFrame - this.data.st), e2._mdf && (this._mdf = true));\n }, SVGTextLottieElement.prototype.renderInnerContent = function() {\n if (this.validateText(), (!this.data.singleShape || this._mdf) && (this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag), this.lettersChangedFlag || this.textAnimator.lettersChangedFlag)) {\n var t2, e2;\n this._sizeChanged = true;\n var r2, i2, s2, a2 = this.textAnimator.renderedLetters, n2 = this.textProperty.currentData.l;\n for (e2 = n2.length, t2 = 0; t2 < e2; t2 += 1) n2[t2].n || (r2 = a2[t2], i2 = this.textSpans[t2].span, (s2 = this.textSpans[t2].glyph) && s2.renderFrame(), r2._mdf.m && i2.setAttribute(\"transform\", r2.m), r2._mdf.o && i2.setAttribute(\"opacity\", r2.o), r2._mdf.sw && i2.setAttribute(\"stroke-width\", r2.sw), r2._mdf.sc && i2.setAttribute(\"stroke\", r2.sc), r2._mdf.fc && i2.setAttribute(\"fill\", r2.fc));\n }\n }, extendPrototype([IImageElement], ISolidElement), ISolidElement.prototype.createContent = function() {\n var t2 = createNS(\"rect\");\n t2.setAttribute(\"width\", this.data.sw), t2.setAttribute(\"height\", this.data.sh), t2.setAttribute(\"fill\", this.data.sc), this.layerElement.appendChild(t2);\n }, NullElement.prototype.prepareFrame = function(t2) {\n this.prepareProperties(t2, true);\n }, NullElement.prototype.renderFrame = function() {\n }, NullElement.prototype.getBaseElement = function() {\n return null;\n }, NullElement.prototype.destroy = function() {\n }, NullElement.prototype.sourceRectAtTime = function() {\n }, NullElement.prototype.hide = function() {\n }, extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement), extendPrototype([BaseRenderer], SVGRendererBase), SVGRendererBase.prototype.createNull = function(t2) {\n return new NullElement(t2, this.globalData, this);\n }, SVGRendererBase.prototype.createShape = function(t2) {\n return new SVGShapeElement(t2, this.globalData, this);\n }, SVGRendererBase.prototype.createText = function(t2) {\n return new SVGTextLottieElement(t2, this.globalData, this);\n }, SVGRendererBase.prototype.createImage = function(t2) {\n return new IImageElement(t2, this.globalData, this);\n }, SVGRendererBase.prototype.createSolid = function(t2) {\n return new ISolidElement(t2, this.globalData, this);\n }, SVGRendererBase.prototype.configAnimation = function(t2) {\n this.svgElement.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\"), this.svgElement.setAttribute(\"xmlns:xlink\", \"http://www.w3.org/1999/xlink\"), this.renderConfig.viewBoxSize ? this.svgElement.setAttribute(\"viewBox\", this.renderConfig.viewBoxSize) : this.svgElement.setAttribute(\"viewBox\", \"0 0 \" + t2.w + \" \" + t2.h), this.renderConfig.viewBoxOnly || (this.svgElement.setAttribute(\"width\", t2.w), this.svgElement.setAttribute(\"height\", t2.h), this.svgElement.style.width = \"100%\", this.svgElement.style.height = \"100%\", this.svgElement.style.transform = \"translate3d(0,0,0)\", this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility), this.renderConfig.width && this.svgElement.setAttribute(\"width\", this.renderConfig.width), this.renderConfig.height && this.svgElement.setAttribute(\"height\", this.renderConfig.height), this.renderConfig.className && this.svgElement.setAttribute(\"class\", this.renderConfig.className), this.renderConfig.id && this.svgElement.setAttribute(\"id\", this.renderConfig.id), void 0 !== this.renderConfig.focusable && this.svgElement.setAttribute(\"focusable\", this.renderConfig.focusable), this.svgElement.setAttribute(\"preserveAspectRatio\", this.renderConfig.preserveAspectRatio), this.animationItem.wrapper.appendChild(this.svgElement);\n var e2 = this.globalData.defs;\n this.setupGlobalData(t2, e2), this.globalData.progressiveLoad = this.renderConfig.progressiveLoad, this.data = t2;\n var r2 = createNS(\"clipPath\"), i2 = createNS(\"rect\");\n i2.setAttribute(\"width\", t2.w), i2.setAttribute(\"height\", t2.h), i2.setAttribute(\"x\", 0), i2.setAttribute(\"y\", 0);\n var s2 = createElementID();\n r2.setAttribute(\"id\", s2), r2.appendChild(i2), this.layerElement.setAttribute(\"clip-path\", \"url(\" + getLocationHref() + \"#\" + s2 + \")\"), e2.appendChild(r2), this.layers = t2.layers, this.elements = createSizedArray(t2.layers.length);\n }, SVGRendererBase.prototype.destroy = function() {\n var t2;\n this.animationItem.wrapper && (this.animationItem.wrapper.innerText = \"\"), this.layerElement = null, this.globalData.defs = null;\n var e2 = this.layers ? this.layers.length : 0;\n for (t2 = 0; t2 < e2; t2 += 1) this.elements[t2] && this.elements[t2].destroy && this.elements[t2].destroy();\n this.elements.length = 0, this.destroyed = true, this.animationItem = null;\n }, SVGRendererBase.prototype.updateContainerSize = function() {\n }, SVGRendererBase.prototype.findIndexByInd = function(t2) {\n var e2 = 0, r2 = this.layers.length;\n for (e2 = 0; e2 < r2; e2 += 1) if (this.layers[e2].ind === t2) return e2;\n return -1;\n }, SVGRendererBase.prototype.buildItem = function(t2) {\n var e2 = this.elements;\n if (!e2[t2] && 99 !== this.layers[t2].ty) {\n e2[t2] = true;\n var r2 = this.createItem(this.layers[t2]);\n if (e2[t2] = r2, getExpressionsPlugin() && (0 === this.layers[t2].ty && this.globalData.projectInterface.registerComposition(r2), r2.initExpressions()), this.appendElementInPos(r2, t2), this.layers[t2].tt) {\n var i2 = \"tp\" in this.layers[t2] ? this.findIndexByInd(this.layers[t2].tp) : t2 - 1;\n if (-1 === i2) return;\n if (this.elements[i2] && true !== this.elements[i2]) {\n var s2 = e2[i2].getMatte(this.layers[t2].tt);\n r2.setMatte(s2);\n } else this.buildItem(i2), this.addPendingElement(r2);\n }\n }\n }, SVGRendererBase.prototype.checkPendingElements = function() {\n for (; this.pendingElements.length; ) {\n var t2 = this.pendingElements.pop();\n if (t2.checkParenting(), t2.data.tt) for (var e2 = 0, r2 = this.elements.length; e2 < r2; ) {\n if (this.elements[e2] === t2) {\n var i2 = \"tp\" in t2.data ? this.findIndexByInd(t2.data.tp) : e2 - 1, s2 = this.elements[i2].getMatte(this.layers[e2].tt);\n t2.setMatte(s2);\n break;\n }\n e2 += 1;\n }\n }\n }, SVGRendererBase.prototype.renderFrame = function(t2) {\n if (this.renderedFrame !== t2 && !this.destroyed) {\n var e2;\n null === t2 ? t2 = this.renderedFrame : this.renderedFrame = t2, this.globalData.frameNum = t2, this.globalData.frameId += 1, this.globalData.projectInterface.currentFrame = t2, this.globalData._mdf = false;\n var r2 = this.layers.length;\n for (this.completeLayers || this.checkLayers(t2), e2 = r2 - 1; e2 >= 0; e2 -= 1) (this.completeLayers || this.elements[e2]) && this.elements[e2].prepareFrame(t2 - this.layers[e2].st);\n if (this.globalData._mdf) for (e2 = 0; e2 < r2; e2 += 1) (this.completeLayers || this.elements[e2]) && this.elements[e2].renderFrame();\n }\n }, SVGRendererBase.prototype.appendElementInPos = function(t2, e2) {\n var r2 = t2.getBaseElement();\n if (r2) {\n for (var i2, s2 = 0; s2 < e2; ) this.elements[s2] && true !== this.elements[s2] && this.elements[s2].getBaseElement() && (i2 = this.elements[s2].getBaseElement()), s2 += 1;\n i2 ? this.layerElement.insertBefore(r2, i2) : this.layerElement.appendChild(r2);\n }\n }, SVGRendererBase.prototype.hide = function() {\n this.layerElement.style.display = \"none\";\n }, SVGRendererBase.prototype.show = function() {\n this.layerElement.style.display = \"block\";\n }, extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement), ICompElement.prototype.initElement = function(t2, e2, r2) {\n this.initFrame(), this.initBaseData(t2, e2, r2), this.initTransform(t2, e2, r2), this.initRenderable(), this.initHierarchy(), this.initRendererElement(), this.createContainerElements(), this.createRenderableComponents(), !this.data.xt && e2.progressiveLoad || this.buildAllItems(), this.hide();\n }, ICompElement.prototype.prepareFrame = function(t2) {\n if (this._mdf = false, this.prepareRenderableFrame(t2), this.prepareProperties(t2, this.isInRange), this.isInRange || this.data.xt) {\n if (this.tm._placeholder) this.renderedFrame = t2 / this.data.sr;\n else {\n var e2 = this.tm.v;\n e2 === this.data.op && (e2 = this.data.op - 1), this.renderedFrame = e2;\n }\n var r2, i2 = this.elements.length;\n for (this.completeLayers || this.checkLayers(this.renderedFrame), r2 = i2 - 1; r2 >= 0; r2 -= 1) (this.completeLayers || this.elements[r2]) && (this.elements[r2].prepareFrame(this.renderedFrame - this.layers[r2].st), this.elements[r2]._mdf && (this._mdf = true));\n }\n }, ICompElement.prototype.renderInnerContent = function() {\n var t2, e2 = this.layers.length;\n for (t2 = 0; t2 < e2; t2 += 1) (this.completeLayers || this.elements[t2]) && this.elements[t2].renderFrame();\n }, ICompElement.prototype.setElements = function(t2) {\n this.elements = t2;\n }, ICompElement.prototype.getElements = function() {\n return this.elements;\n }, ICompElement.prototype.destroyElements = function() {\n var t2, e2 = this.layers.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.elements[t2] && this.elements[t2].destroy();\n }, ICompElement.prototype.destroy = function() {\n this.destroyElements(), this.destroyBaseElement();\n }, extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement), SVGCompElement.prototype.createComp = function(t2) {\n return new SVGCompElement(t2, this.globalData, this);\n }, extendPrototype([SVGRendererBase], SVGRenderer), SVGRenderer.prototype.createComp = function(t2) {\n return new SVGCompElement(t2, this.globalData, this);\n }, ShapeTransformManager.prototype = { addTransformSequence: function(t2) {\n var e2, r2 = t2.length, i2 = \"_\";\n for (e2 = 0; e2 < r2; e2 += 1) i2 += t2[e2].transform.key + \"_\";\n var s2 = this.sequences[i2];\n return s2 || (s2 = { transforms: [].concat(t2), finalTransform: new Matrix(), _mdf: false }, this.sequences[i2] = s2, this.sequenceList.push(s2)), s2;\n }, processSequence: function(t2, e2) {\n for (var r2 = 0, i2 = t2.transforms.length, s2 = e2; r2 < i2 && !e2; ) {\n if (t2.transforms[r2].transform.mProps._mdf) {\n s2 = true;\n break;\n }\n r2 += 1;\n }\n if (s2) for (t2.finalTransform.reset(), r2 = i2 - 1; r2 >= 0; r2 -= 1) t2.finalTransform.multiply(t2.transforms[r2].transform.mProps.v);\n t2._mdf = s2;\n }, processSequences: function(t2) {\n var e2, r2 = this.sequenceList.length;\n for (e2 = 0; e2 < r2; e2 += 1) this.processSequence(this.sequenceList[e2], t2);\n }, getNewKey: function() {\n return this.transform_key_count += 1, \"_\" + this.transform_key_count;\n } };\n var lumaLoader = function() {\n var t2 = \"__lottie_element_luma_buffer\", e2 = null, r2 = null, i2 = null;\n function s2() {\n var s3, a2, n2;\n e2 || (s3 = createNS(\"svg\"), a2 = createNS(\"filter\"), n2 = createNS(\"feColorMatrix\"), a2.setAttribute(\"id\", t2), n2.setAttribute(\"type\", \"matrix\"), n2.setAttribute(\"color-interpolation-filters\", \"sRGB\"), n2.setAttribute(\"values\", \"0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0\"), a2.appendChild(n2), s3.appendChild(a2), s3.setAttribute(\"id\", t2 + \"_svg\"), featureSupport.svgLumaHidden && (s3.style.display = \"none\"), i2 = s3, document.body.appendChild(i2), e2 = createTag(\"canvas\"), (r2 = e2.getContext(\"2d\")).filter = \"url(#\" + t2 + \")\", r2.fillStyle = \"rgba(0,0,0,0)\", r2.fillRect(0, 0, 1, 1));\n }\n return { load: s2, get: function(i3) {\n return e2 || s2(), e2.width = i3.width, e2.height = i3.height, r2.filter = \"url(#\" + t2 + \")\", e2;\n } };\n };\n function createCanvas(t2, e2) {\n if (featureSupport.offscreenCanvas) return new OffscreenCanvas(t2, e2);\n var r2 = createTag(\"canvas\");\n return r2.width = t2, r2.height = e2, r2;\n }\n var assetLoader = { loadLumaCanvas: lumaLoader.load, getLumaCanvas: lumaLoader.get, createCanvas }, registeredEffects = {};\n function CVEffects(t2) {\n var e2, r2, i2 = t2.data.ef ? t2.data.ef.length : 0;\n for (this.filters = [], e2 = 0; e2 < i2; e2 += 1) {\n r2 = null;\n var s2 = t2.data.ef[e2].ty;\n registeredEffects[s2] && (r2 = new (0, registeredEffects[s2].effect)(t2.effectsManager.effectElements[e2], t2)), r2 && this.filters.push(r2);\n }\n this.filters.length && t2.addRenderableComponent(this);\n }\n function registerEffect(t2, e2) {\n registeredEffects[t2] = { effect: e2 };\n }\n function CVMaskElement(t2, e2) {\n var r2;\n this.data = t2, this.element = e2, this.masksProperties = this.data.masksProperties || [], this.viewData = createSizedArray(this.masksProperties.length);\n var i2 = this.masksProperties.length, s2 = false;\n for (r2 = 0; r2 < i2; r2 += 1) \"n\" !== this.masksProperties[r2].mode && (s2 = true), this.viewData[r2] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[r2], 3);\n this.hasMasks = s2, s2 && this.element.addRenderableComponent(this);\n }\n function CVBaseElement() {\n }\n CVEffects.prototype.renderFrame = function(t2) {\n var e2, r2 = this.filters.length;\n for (e2 = 0; e2 < r2; e2 += 1) this.filters[e2].renderFrame(t2);\n }, CVEffects.prototype.getEffects = function(t2) {\n var e2, r2 = this.filters.length, i2 = [];\n for (e2 = 0; e2 < r2; e2 += 1) this.filters[e2].type === t2 && i2.push(this.filters[e2]);\n return i2;\n }, CVMaskElement.prototype.renderFrame = function() {\n if (this.hasMasks) {\n var t2, e2, r2, i2, s2 = this.element.finalTransform.mat, a2 = this.element.canvasContext, n2 = this.masksProperties.length;\n for (a2.beginPath(), t2 = 0; t2 < n2; t2 += 1) if (\"n\" !== this.masksProperties[t2].mode) {\n var o2;\n this.masksProperties[t2].inv && (a2.moveTo(0, 0), a2.lineTo(this.element.globalData.compSize.w, 0), a2.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h), a2.lineTo(0, this.element.globalData.compSize.h), a2.lineTo(0, 0)), i2 = this.viewData[t2].v, e2 = s2.applyToPointArray(i2.v[0][0], i2.v[0][1], 0), a2.moveTo(e2[0], e2[1]);\n var h2 = i2._length;\n for (o2 = 1; o2 < h2; o2 += 1) r2 = s2.applyToTriplePoints(i2.o[o2 - 1], i2.i[o2], i2.v[o2]), a2.bezierCurveTo(r2[0], r2[1], r2[2], r2[3], r2[4], r2[5]);\n r2 = s2.applyToTriplePoints(i2.o[o2 - 1], i2.i[0], i2.v[0]), a2.bezierCurveTo(r2[0], r2[1], r2[2], r2[3], r2[4], r2[5]);\n }\n this.element.globalData.renderer.save(true), a2.clip();\n }\n }, CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty, CVMaskElement.prototype.destroy = function() {\n this.element = null;\n };\n var operationsMap = { 1: \"source-in\", 2: \"source-out\", 3: \"source-in\", 4: \"source-out\" };\n function CVShapeData(t2, e2, r2, i2) {\n this.styledShapes = [], this.tr = [0, 0, 0, 0, 0, 0];\n var s2, a2 = 4;\n \"rc\" === e2.ty ? a2 = 5 : \"el\" === e2.ty ? a2 = 6 : \"sr\" === e2.ty && (a2 = 7), this.sh = ShapePropertyFactory.getShapeProp(t2, e2, a2, t2);\n var n2, o2 = r2.length;\n for (s2 = 0; s2 < o2; s2 += 1) r2[s2].closed || (n2 = { transforms: i2.addTransformSequence(r2[s2].transforms), trNodes: [] }, this.styledShapes.push(n2), r2[s2].elements.push(n2));\n }\n function CVShapeElement(t2, e2, r2) {\n this.shapes = [], this.shapesData = t2.shapes, this.stylesList = [], this.itemsData = [], this.prevViewData = [], this.shapeModifiers = [], this.processedElements = [], this.transformsManager = new ShapeTransformManager(), this.initElement(t2, e2, r2);\n }\n function CVTextElement(t2, e2, r2) {\n this.textSpans = [], this.yOffset = 0, this.fillColorAnim = false, this.strokeColorAnim = false, this.strokeWidthAnim = false, this.stroke = false, this.fill = false, this.justifyOffset = 0, this.currentRender = null, this.renderType = \"canvas\", this.values = { fill: \"rgba(0,0,0,0)\", stroke: \"rgba(0,0,0,0)\", sWidth: 0, fValue: \"\" }, this.initElement(t2, e2, r2);\n }\n function CVImageElement(t2, e2, r2) {\n this.assetData = e2.getAssetData(t2.refId), this.img = e2.imageLoader.getAsset(this.assetData), this.initElement(t2, e2, r2);\n }\n function CVSolidElement(t2, e2, r2) {\n this.initElement(t2, e2, r2);\n }\n function CanvasRendererBase() {\n }\n function CanvasContext() {\n this.opacity = -1, this.transform = createTypedArray(\"float32\", 16), this.fillStyle = \"\", this.strokeStyle = \"\", this.lineWidth = \"\", this.lineCap = \"\", this.lineJoin = \"\", this.miterLimit = \"\", this.id = Math.random();\n }\n function CVContextData() {\n var t2;\n for (this.stack = [], this.cArrPos = 0, this.cTr = new Matrix(), t2 = 0; t2 < 15; t2 += 1) {\n var e2 = new CanvasContext();\n this.stack[t2] = e2;\n }\n this._length = 15, this.nativeContext = null, this.transformMat = new Matrix(), this.currentOpacity = 1, this.currentFillStyle = \"\", this.appliedFillStyle = \"\", this.currentStrokeStyle = \"\", this.appliedStrokeStyle = \"\", this.currentLineWidth = \"\", this.appliedLineWidth = \"\", this.currentLineCap = \"\", this.appliedLineCap = \"\", this.currentLineJoin = \"\", this.appliedLineJoin = \"\", this.appliedMiterLimit = \"\", this.currentMiterLimit = \"\";\n }\n function CVCompElement(t2, e2, r2) {\n this.completeLayers = false, this.layers = t2.layers, this.pendingElements = [], this.elements = createSizedArray(this.layers.length), this.initElement(t2, e2, r2), this.tm = t2.tm ? PropertyFactory.getProp(this, t2.tm, 0, e2.frameRate, this) : { _placeholder: true };\n }\n function CanvasRenderer(t2, e2) {\n this.animationItem = t2, this.renderConfig = { clearCanvas: !e2 || void 0 === e2.clearCanvas || e2.clearCanvas, context: e2 && e2.context || null, progressiveLoad: e2 && e2.progressiveLoad || false, preserveAspectRatio: e2 && e2.preserveAspectRatio || \"xMidYMid meet\", imagePreserveAspectRatio: e2 && e2.imagePreserveAspectRatio || \"xMidYMid slice\", contentVisibility: e2 && e2.contentVisibility || \"visible\", className: e2 && e2.className || \"\", id: e2 && e2.id || \"\", runExpressions: !e2 || void 0 === e2.runExpressions || e2.runExpressions }, this.renderConfig.dpr = e2 && e2.dpr || 1, this.animationItem.wrapper && (this.renderConfig.dpr = e2 && e2.dpr || window.devicePixelRatio || 1), this.renderedFrame = -1, this.globalData = { frameNum: -1, _mdf: false, renderConfig: this.renderConfig, currentGlobalAlpha: -1 }, this.contextData = new CVContextData(), this.elements = [], this.pendingElements = [], this.transformMat = new Matrix(), this.completeLayers = false, this.rendererType = \"canvas\", this.renderConfig.clearCanvas && (this.ctxTransform = this.contextData.transform.bind(this.contextData), this.ctxOpacity = this.contextData.opacity.bind(this.contextData), this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData), this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData), this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData), this.ctxLineCap = this.contextData.lineCap.bind(this.contextData), this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData), this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData), this.ctxFill = this.contextData.fill.bind(this.contextData), this.ctxFillRect = this.contextData.fillRect.bind(this.contextData), this.ctxStroke = this.contextData.stroke.bind(this.contextData), this.save = this.contextData.save.bind(this.contextData));\n }\n function HBaseElement() {\n }\n function HSolidElement(t2, e2, r2) {\n this.initElement(t2, e2, r2);\n }\n function HShapeElement(t2, e2, r2) {\n this.shapes = [], this.shapesData = t2.shapes, this.stylesList = [], this.shapeModifiers = [], this.itemsData = [], this.processedElements = [], this.animatedContents = [], this.shapesContainer = createNS(\"g\"), this.initElement(t2, e2, r2), this.prevViewData = [], this.currentBBox = { x: 999999, y: -999999, h: 0, w: 0 };\n }\n function HTextElement(t2, e2, r2) {\n this.textSpans = [], this.textPaths = [], this.currentBBox = { x: 999999, y: -999999, h: 0, w: 0 }, this.renderType = \"svg\", this.isMasked = false, this.initElement(t2, e2, r2);\n }\n function HCameraElement(t2, e2, r2) {\n this.initFrame(), this.initBaseData(t2, e2, r2), this.initHierarchy();\n var i2 = PropertyFactory.getProp;\n if (this.pe = i2(this, t2.pe, 0, 0, this), t2.ks.p.s ? (this.px = i2(this, t2.ks.p.x, 1, 0, this), this.py = i2(this, t2.ks.p.y, 1, 0, this), this.pz = i2(this, t2.ks.p.z, 1, 0, this)) : this.p = i2(this, t2.ks.p, 1, 0, this), t2.ks.a && (this.a = i2(this, t2.ks.a, 1, 0, this)), t2.ks.or.k.length && t2.ks.or.k[0].to) {\n var s2, a2 = t2.ks.or.k.length;\n for (s2 = 0; s2 < a2; s2 += 1) t2.ks.or.k[s2].to = null, t2.ks.or.k[s2].ti = null;\n }\n this.or = i2(this, t2.ks.or, 1, degToRads, this), this.or.sh = true, this.rx = i2(this, t2.ks.rx, 0, degToRads, this), this.ry = i2(this, t2.ks.ry, 0, degToRads, this), this.rz = i2(this, t2.ks.rz, 0, degToRads, this), this.mat = new Matrix(), this._prevMat = new Matrix(), this._isFirstFrame = true, this.finalTransform = { mProp: this };\n }\n function HImageElement(t2, e2, r2) {\n this.assetData = e2.getAssetData(t2.refId), this.initElement(t2, e2, r2);\n }\n function HybridRendererBase(t2, e2) {\n this.animationItem = t2, this.layers = null, this.renderedFrame = -1, this.renderConfig = { className: e2 && e2.className || \"\", imagePreserveAspectRatio: e2 && e2.imagePreserveAspectRatio || \"xMidYMid slice\", hideOnTransparent: !(e2 && false === e2.hideOnTransparent), filterSize: { width: e2 && e2.filterSize && e2.filterSize.width || \"400%\", height: e2 && e2.filterSize && e2.filterSize.height || \"400%\", x: e2 && e2.filterSize && e2.filterSize.x || \"-100%\", y: e2 && e2.filterSize && e2.filterSize.y || \"-100%\" } }, this.globalData = { _mdf: false, frameNum: -1, renderConfig: this.renderConfig }, this.pendingElements = [], this.elements = [], this.threeDElements = [], this.destroyed = false, this.camera = null, this.supports3d = true, this.rendererType = \"html\";\n }\n function HCompElement(t2, e2, r2) {\n this.layers = t2.layers, this.supports3d = !t2.hasMask, this.completeLayers = false, this.pendingElements = [], this.elements = this.layers ? createSizedArray(this.layers.length) : [], this.initElement(t2, e2, r2), this.tm = t2.tm ? PropertyFactory.getProp(this, t2.tm, 0, e2.frameRate, this) : { _placeholder: true };\n }\n function HybridRenderer(t2, e2) {\n this.animationItem = t2, this.layers = null, this.renderedFrame = -1, this.renderConfig = { className: e2 && e2.className || \"\", imagePreserveAspectRatio: e2 && e2.imagePreserveAspectRatio || \"xMidYMid slice\", hideOnTransparent: !(e2 && false === e2.hideOnTransparent), filterSize: { width: e2 && e2.filterSize && e2.filterSize.width || \"400%\", height: e2 && e2.filterSize && e2.filterSize.height || \"400%\", x: e2 && e2.filterSize && e2.filterSize.x || \"-100%\", y: e2 && e2.filterSize && e2.filterSize.y || \"-100%\" }, runExpressions: !e2 || void 0 === e2.runExpressions || e2.runExpressions }, this.globalData = { _mdf: false, frameNum: -1, renderConfig: this.renderConfig }, this.pendingElements = [], this.elements = [], this.threeDElements = [], this.destroyed = false, this.camera = null, this.supports3d = true, this.rendererType = \"html\";\n }\n CVBaseElement.prototype = { createElements: function() {\n }, initRendererElement: function() {\n }, createContainerElements: function() {\n if (this.data.tt >= 1) {\n this.buffers = [];\n var t2 = this.globalData.canvasContext, e2 = assetLoader.createCanvas(t2.canvas.width, t2.canvas.height);\n this.buffers.push(e2);\n var r2 = assetLoader.createCanvas(t2.canvas.width, t2.canvas.height);\n this.buffers.push(r2), this.data.tt >= 3 && !document._isProxy && assetLoader.loadLumaCanvas();\n }\n this.canvasContext = this.globalData.canvasContext, this.transformCanvas = this.globalData.transformCanvas, this.renderableEffectsManager = new CVEffects(this), this.searchEffectTransforms();\n }, createContent: function() {\n }, setBlendMode: function() {\n var t2 = this.globalData;\n if (t2.blendMode !== this.data.bm) {\n t2.blendMode = this.data.bm;\n var e2 = getBlendMode(this.data.bm);\n t2.canvasContext.globalCompositeOperation = e2;\n }\n }, createRenderableComponents: function() {\n this.maskManager = new CVMaskElement(this.data, this), this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n }, hideElement: function() {\n this.hidden || this.isInRange && !this.isTransparent || (this.hidden = true);\n }, showElement: function() {\n this.isInRange && !this.isTransparent && (this.hidden = false, this._isFirstFrame = true, this.maskManager._isFirstFrame = true);\n }, clearCanvas: function(t2) {\n t2.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n }, prepareLayer: function() {\n if (this.data.tt >= 1) {\n var t2 = this.buffers[0].getContext(\"2d\");\n this.clearCanvas(t2), t2.drawImage(this.canvasContext.canvas, 0, 0), this.currentTransform = this.canvasContext.getTransform(), this.canvasContext.setTransform(1, 0, 0, 1, 0, 0), this.clearCanvas(this.canvasContext), this.canvasContext.setTransform(this.currentTransform);\n }\n }, exitLayer: function() {\n if (this.data.tt >= 1) {\n var t2 = this.buffers[1], e2 = t2.getContext(\"2d\");\n if (this.clearCanvas(e2), e2.drawImage(this.canvasContext.canvas, 0, 0), this.canvasContext.setTransform(1, 0, 0, 1, 0, 0), this.clearCanvas(this.canvasContext), this.canvasContext.setTransform(this.currentTransform), this.comp.getElementById(\"tp\" in this.data ? this.data.tp : this.data.ind - 1).renderFrame(true), this.canvasContext.setTransform(1, 0, 0, 1, 0, 0), this.data.tt >= 3 && !document._isProxy) {\n var r2 = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n r2.getContext(\"2d\").drawImage(this.canvasContext.canvas, 0, 0), this.clearCanvas(this.canvasContext), this.canvasContext.drawImage(r2, 0, 0);\n }\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt], this.canvasContext.drawImage(t2, 0, 0), this.canvasContext.globalCompositeOperation = \"destination-over\", this.canvasContext.drawImage(this.buffers[0], 0, 0), this.canvasContext.setTransform(this.currentTransform), this.canvasContext.globalCompositeOperation = \"source-over\";\n }\n }, renderFrame: function(t2) {\n if (!this.hidden && !this.data.hd && (1 !== this.data.td || t2)) {\n this.renderTransform(), this.renderRenderable(), this.renderLocalTransform(), this.setBlendMode();\n var e2 = 0 === this.data.ty;\n this.prepareLayer(), this.globalData.renderer.save(e2), this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props), this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity), this.renderInnerContent(), this.globalData.renderer.restore(e2), this.exitLayer(), this.maskManager.hasMasks && this.globalData.renderer.restore(true), this._isFirstFrame && (this._isFirstFrame = false);\n }\n }, destroy: function() {\n this.canvasContext = null, this.data = null, this.globalData = null, this.maskManager.destroy();\n }, mHelper: new Matrix() }, CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement, CVBaseElement.prototype.show = CVBaseElement.prototype.showElement, CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated, extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement), CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement, CVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: false }, CVShapeElement.prototype.dashResetter = [], CVShapeElement.prototype.createContent = function() {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n }, CVShapeElement.prototype.createStyleElement = function(t2, e2) {\n var r2 = { data: t2, type: t2.ty, preTransforms: this.transformsManager.addTransformSequence(e2), transforms: [], elements: [], closed: true === t2.hd }, i2 = {};\n if (\"fl\" === t2.ty || \"st\" === t2.ty ? (i2.c = PropertyFactory.getProp(this, t2.c, 1, 255, this), i2.c.k || (r2.co = \"rgb(\" + bmFloor(i2.c.v[0]) + \",\" + bmFloor(i2.c.v[1]) + \",\" + bmFloor(i2.c.v[2]) + \")\")) : \"gf\" !== t2.ty && \"gs\" !== t2.ty || (i2.s = PropertyFactory.getProp(this, t2.s, 1, null, this), i2.e = PropertyFactory.getProp(this, t2.e, 1, null, this), i2.h = PropertyFactory.getProp(this, t2.h || { k: 0 }, 0, 0.01, this), i2.a = PropertyFactory.getProp(this, t2.a || { k: 0 }, 0, degToRads, this), i2.g = new GradientProperty(this, t2.g, this)), i2.o = PropertyFactory.getProp(this, t2.o, 0, 0.01, this), \"st\" === t2.ty || \"gs\" === t2.ty) {\n if (r2.lc = lineCapEnum[t2.lc || 2], r2.lj = lineJoinEnum[t2.lj || 2], 1 == t2.lj && (r2.ml = t2.ml), i2.w = PropertyFactory.getProp(this, t2.w, 0, null, this), i2.w.k || (r2.wi = i2.w.v), t2.d) {\n var s2 = new DashProperty(this, t2.d, \"canvas\", this);\n i2.d = s2, i2.d.k || (r2.da = i2.d.dashArray, r2.do = i2.d.dashoffset[0]);\n }\n } else r2.r = 2 === t2.r ? \"evenodd\" : \"nonzero\";\n return this.stylesList.push(r2), i2.style = r2, i2;\n }, CVShapeElement.prototype.createGroupElement = function() {\n return { it: [], prevViewData: [] };\n }, CVShapeElement.prototype.createTransformElement = function(t2) {\n return { transform: { opacity: 1, _opMdf: false, key: this.transformsManager.getNewKey(), op: PropertyFactory.getProp(this, t2.o, 0, 0.01, this), mProps: TransformPropertyFactory.getTransformProperty(this, t2, this) } };\n }, CVShapeElement.prototype.createShapeElement = function(t2) {\n var e2 = new CVShapeData(this, t2, this.stylesList, this.transformsManager);\n return this.shapes.push(e2), this.addShapeToModifiers(e2), e2;\n }, CVShapeElement.prototype.reloadShapes = function() {\n var t2;\n this._isFirstFrame = true;\n var e2 = this.itemsData.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.prevViewData[t2] = this.itemsData[t2];\n for (this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []), e2 = this.dynamicProperties.length, t2 = 0; t2 < e2; t2 += 1) this.dynamicProperties[t2].getValue();\n this.renderModifiers(), this.transformsManager.processSequences(this._isFirstFrame);\n }, CVShapeElement.prototype.addTransformToStyleList = function(t2) {\n var e2, r2 = this.stylesList.length;\n for (e2 = 0; e2 < r2; e2 += 1) this.stylesList[e2].closed || this.stylesList[e2].transforms.push(t2);\n }, CVShapeElement.prototype.removeTransformFromStyleList = function() {\n var t2, e2 = this.stylesList.length;\n for (t2 = 0; t2 < e2; t2 += 1) this.stylesList[t2].closed || this.stylesList[t2].transforms.pop();\n }, CVShapeElement.prototype.closeStyles = function(t2) {\n var e2, r2 = t2.length;\n for (e2 = 0; e2 < r2; e2 += 1) t2[e2].closed = true;\n }, CVShapeElement.prototype.searchShapes = function(t2, e2, r2, i2, s2) {\n var a2, n2, o2, h2, l2, p2, c2 = t2.length - 1, f2 = [], u2 = [], d2 = [].concat(s2);\n for (a2 = c2; a2 >= 0; a2 -= 1) {\n if ((h2 = this.searchProcessedElement(t2[a2])) ? e2[a2] = r2[h2 - 1] : t2[a2]._shouldRender = i2, \"fl\" === t2[a2].ty || \"st\" === t2[a2].ty || \"gf\" === t2[a2].ty || \"gs\" === t2[a2].ty) h2 ? e2[a2].style.closed = false : e2[a2] = this.createStyleElement(t2[a2], d2), f2.push(e2[a2].style);\n else if (\"gr\" === t2[a2].ty) {\n if (h2) for (o2 = e2[a2].it.length, n2 = 0; n2 < o2; n2 += 1) e2[a2].prevViewData[n2] = e2[a2].it[n2];\n else e2[a2] = this.createGroupElement(t2[a2]);\n this.searchShapes(t2[a2].it, e2[a2].it, e2[a2].prevViewData, i2, d2);\n } else \"tr\" === t2[a2].ty ? (h2 || (p2 = this.createTransformElement(t2[a2]), e2[a2] = p2), d2.push(e2[a2]), this.addTransformToStyleList(e2[a2])) : \"sh\" === t2[a2].ty || \"rc\" === t2[a2].ty || \"el\" === t2[a2].ty || \"sr\" === t2[a2].ty ? h2 || (e2[a2] = this.createShapeElement(t2[a2])) : \"tm\" === t2[a2].ty || \"rd\" === t2[a2].ty || \"pb\" === t2[a2].ty || \"zz\" === t2[a2].ty || \"op\" === t2[a2].ty ? (h2 ? (l2 = e2[a2]).closed = false : ((l2 = ShapeModifiers.getModifier(t2[a2].ty)).init(this, t2[a2]), e2[a2] = l2, this.shapeModifiers.push(l2)), u2.push(l2)) : \"rp\" === t2[a2].ty && (h2 ? (l2 = e2[a2]).closed = true : (l2 = ShapeModifiers.getModifier(t2[a2].ty), e2[a2] = l2, l2.init(this, t2, a2, e2), this.shapeModifiers.push(l2), i2 = false), u2.push(l2));\n this.addProcessedElement(t2[a2], a2 + 1);\n }\n for (this.removeTransformFromStyleList(), this.closeStyles(f2), c2 = u2.length, a2 = 0; a2 < c2; a2 += 1) u2[a2].closed = true;\n }, CVShapeElement.prototype.renderInnerContent = function() {\n this.transformHelper.opacity = 1, this.transformHelper._opMdf = false, this.renderModifiers(), this.transformsManager.processSequences(this._isFirstFrame), this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n }, CVShapeElement.prototype.renderShapeTransform = function(t2, e2) {\n (t2._opMdf || e2.op._mdf || this._isFirstFrame) && (e2.opacity = t2.opacity, e2.opacity *= e2.op.v, e2._opMdf = true);\n }, CVShapeElement.prototype.drawLayer = function() {\n var t2, e2, r2, i2, s2, a2, n2, o2, h2, l2 = this.stylesList.length, p2 = this.globalData.renderer, c2 = this.globalData.canvasContext;\n for (t2 = 0; t2 < l2; t2 += 1) if ((\"st\" !== (o2 = (h2 = this.stylesList[t2]).type) && \"gs\" !== o2 || 0 !== h2.wi) && h2.data._shouldRender && 0 !== h2.coOp && 0 !== this.globalData.currentGlobalAlpha) {\n for (p2.save(), a2 = h2.elements, \"st\" === o2 || \"gs\" === o2 ? (p2.ctxStrokeStyle(\"st\" === o2 ? h2.co : h2.grd), p2.ctxLineWidth(h2.wi), p2.ctxLineCap(h2.lc), p2.ctxLineJoin(h2.lj), p2.ctxMiterLimit(h2.ml || 0)) : p2.ctxFillStyle(\"fl\" === o2 ? h2.co : h2.grd), p2.ctxOpacity(h2.coOp), \"st\" !== o2 && \"gs\" !== o2 && c2.beginPath(), p2.ctxTransform(h2.preTransforms.finalTransform.props), r2 = a2.length, e2 = 0; e2 < r2; e2 += 1) {\n for (\"st\" !== o2 && \"gs\" !== o2 || (c2.beginPath(), h2.da && (c2.setLineDash(h2.da), c2.lineDashOffset = h2.do)), s2 = (n2 = a2[e2].trNodes).length, i2 = 0; i2 < s2; i2 += 1) \"m\" === n2[i2].t ? c2.moveTo(n2[i2].p[0], n2[i2].p[1]) : \"c\" === n2[i2].t ? c2.bezierCurveTo(n2[i2].pts[0], n2[i2].pts[1], n2[i2].pts[2], n2[i2].pts[3], n2[i2].pts[4], n2[i2].pts[5]) : c2.closePath();\n \"st\" !== o2 && \"gs\" !== o2 || (p2.ctxStroke(), h2.da && c2.setLineDash(this.dashResetter));\n }\n \"st\" !== o2 && \"gs\" !== o2 && this.globalData.renderer.ctxFill(h2.r), p2.restore();\n }\n }, CVShapeElement.prototype.renderShape = function(t2, e2, r2, i2) {\n var s2, a2;\n for (a2 = t2, s2 = e2.length - 1; s2 >= 0; s2 -= 1) \"tr\" === e2[s2].ty ? (a2 = r2[s2].transform, this.renderShapeTransform(t2, a2)) : \"sh\" === e2[s2].ty || \"el\" === e2[s2].ty || \"rc\" === e2[s2].ty || \"sr\" === e2[s2].ty ? this.renderPath(e2[s2], r2[s2]) : \"fl\" === e2[s2].ty ? this.renderFill(e2[s2], r2[s2], a2) : \"st\" === e2[s2].ty ? this.renderStroke(e2[s2], r2[s2], a2) : \"gf\" === e2[s2].ty || \"gs\" === e2[s2].ty ? this.renderGradientFill(e2[s2], r2[s2], a2) : \"gr\" === e2[s2].ty ? this.renderShape(a2, e2[s2].it, r2[s2].it) : e2[s2].ty;\n i2 && this.drawLayer();\n }, CVShapeElement.prototype.renderStyledShape = function(t2, e2) {\n if (this._isFirstFrame || e2._mdf || t2.transforms._mdf) {\n var r2, i2, s2, a2 = t2.trNodes, n2 = e2.paths, o2 = n2._length;\n a2.length = 0;\n var h2 = t2.transforms.finalTransform;\n for (s2 = 0; s2 < o2; s2 += 1) {\n var l2 = n2.shapes[s2];\n if (l2 && l2.v) {\n for (i2 = l2._length, r2 = 1; r2 < i2; r2 += 1) 1 === r2 && a2.push({ t: \"m\", p: h2.applyToPointArray(l2.v[0][0], l2.v[0][1], 0) }), a2.push({ t: \"c\", pts: h2.applyToTriplePoints(l2.o[r2 - 1], l2.i[r2], l2.v[r2]) });\n 1 === i2 && a2.push({ t: \"m\", p: h2.applyToPointArray(l2.v[0][0], l2.v[0][1], 0) }), l2.c && i2 && (a2.push({ t: \"c\", pts: h2.applyToTriplePoints(l2.o[r2 - 1], l2.i[0], l2.v[0]) }), a2.push({ t: \"z\" }));\n }\n }\n t2.trNodes = a2;\n }\n }, CVShapeElement.prototype.renderPath = function(t2, e2) {\n if (true !== t2.hd && t2._shouldRender) {\n var r2, i2 = e2.styledShapes.length;\n for (r2 = 0; r2 < i2; r2 += 1) this.renderStyledShape(e2.styledShapes[r2], e2.sh);\n }\n }, CVShapeElement.prototype.renderFill = function(t2, e2, r2) {\n var i2 = e2.style;\n (e2.c._mdf || this._isFirstFrame) && (i2.co = \"rgb(\" + bmFloor(e2.c.v[0]) + \",\" + bmFloor(e2.c.v[1]) + \",\" + bmFloor(e2.c.v[2]) + \")\"), (e2.o._mdf || r2._opMdf || this._isFirstFrame) && (i2.coOp = e2.o.v * r2.opacity);\n }, CVShapeElement.prototype.renderGradientFill = function(t2, e2, r2) {\n var i2, s2 = e2.style;\n if (!s2.grd || e2.g._mdf || e2.s._mdf || e2.e._mdf || 1 !== t2.t && (e2.h._mdf || e2.a._mdf)) {\n var a2, n2 = this.globalData.canvasContext, o2 = e2.s.v, h2 = e2.e.v;\n if (1 === t2.t) i2 = n2.createLinearGradient(o2[0], o2[1], h2[0], h2[1]);\n else {\n var l2 = Math.sqrt(Math.pow(o2[0] - h2[0], 2) + Math.pow(o2[1] - h2[1], 2)), p2 = Math.atan2(h2[1] - o2[1], h2[0] - o2[0]), c2 = e2.h.v;\n c2 >= 1 ? c2 = 0.99 : c2 <= -1 && (c2 = -0.99);\n var f2 = l2 * c2, u2 = Math.cos(p2 + e2.a.v) * f2 + o2[0], d2 = Math.sin(p2 + e2.a.v) * f2 + o2[1];\n i2 = n2.createRadialGradient(u2, d2, 0, o2[0], o2[1], l2);\n }\n var m2 = t2.g.p, y2 = e2.g.c, g2 = 1;\n for (a2 = 0; a2 < m2; a2 += 1) e2.g._hasOpacity && e2.g._collapsable && (g2 = e2.g.o[2 * a2 + 1]), i2.addColorStop(y2[4 * a2] / 100, \"rgba(\" + y2[4 * a2 + 1] + \",\" + y2[4 * a2 + 2] + \",\" + y2[4 * a2 + 3] + \",\" + g2 + \")\");\n s2.grd = i2;\n }\n s2.coOp = e2.o.v * r2.opacity;\n }, CVShapeElement.prototype.renderStroke = function(t2, e2, r2) {\n var i2 = e2.style, s2 = e2.d;\n s2 && (s2._mdf || this._isFirstFrame) && (i2.da = s2.dashArray, i2.do = s2.dashoffset[0]), (e2.c._mdf || this._isFirstFrame) && (i2.co = \"rgb(\" + bmFloor(e2.c.v[0]) + \",\" + bmFloor(e2.c.v[1]) + \",\" + bmFloor(e2.c.v[2]) + \")\"), (e2.o._mdf || r2._opMdf || this._isFirstFrame) && (i2.coOp = e2.o.v * r2.opacity), (e2.w._mdf || this._isFirstFrame) && (i2.wi = e2.w.v);\n }, CVShapeElement.prototype.destroy = function() {\n this.shapesData = null, this.globalData = null, this.canvasContext = null, this.stylesList.length = 0, this.itemsData.length = 0;\n }, extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement), CVTextElement.prototype.tHelper = createTag(\"canvas\").getContext(\"2d\"), CVTextElement.prototype.buildNewText = function() {\n var t2 = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(t2.l ? t2.l.length : 0);\n var e2 = false;\n t2.fc ? (e2 = true, this.values.fill = this.buildColor(t2.fc)) : this.values.fill = \"rgba(0,0,0,0)\", this.fill = e2;\n var r2 = false;\n t2.sc && (r2 = true, this.values.stroke = this.buildColor(t2.sc), this.values.sWidth = t2.sw);\n var i2, s2, a2, n2, o2, h2, l2, p2, c2, f2, u2, d2, m2 = this.globalData.fontManager.getFontByName(t2.f), y2 = t2.l, g2 = this.mHelper;\n this.stroke = r2, this.values.fValue = t2.finalSize + \"px \" + this.globalData.fontManager.getFontByName(t2.f).fFamily, s2 = t2.finalText.length;\n var v2 = this.data.singleShape, b2 = 1e-3 * t2.tr * t2.finalSize, _2 = 0, P2 = 0, S2 = true, E2 = 0;\n for (i2 = 0; i2 < s2; i2 += 1) {\n n2 = (a2 = this.globalData.fontManager.getCharData(t2.finalText[i2], m2.fStyle, this.globalData.fontManager.getFontByName(t2.f).fFamily)) && a2.data || {}, g2.reset(), v2 && y2[i2].n && (_2 = -b2, P2 += t2.yOffset, P2 += S2 ? 1 : 0, S2 = false), c2 = (l2 = n2.shapes ? n2.shapes[0].it : []).length, g2.scale(t2.finalSize / 100, t2.finalSize / 100), v2 && this.applyTextPropertiesToMatrix(t2, g2, y2[i2].line, _2, P2), u2 = createSizedArray(c2 - 1);\n var x2 = 0;\n for (p2 = 0; p2 < c2; p2 += 1) if (\"sh\" === l2[p2].ty) {\n for (h2 = l2[p2].ks.k.i.length, f2 = l2[p2].ks.k, d2 = [], o2 = 1; o2 < h2; o2 += 1) 1 === o2 && d2.push(g2.applyToX(f2.v[0][0], f2.v[0][1], 0), g2.applyToY(f2.v[0][0], f2.v[0][1], 0)), d2.push(g2.applyToX(f2.o[o2 - 1][0], f2.o[o2 - 1][1], 0), g2.applyToY(f2.o[o2 - 1][0], f2.o[o2 - 1][1], 0), g2.applyToX(f2.i[o2][0], f2.i[o2][1], 0), g2.applyToY(f2.i[o2][0], f2.i[o2][1], 0), g2.applyToX(f2.v[o2][0], f2.v[o2][1], 0), g2.applyToY(f2.v[o2][0], f2.v[o2][1], 0));\n d2.push(g2.applyToX(f2.o[o2 - 1][0], f2.o[o2 - 1][1], 0), g2.applyToY(f2.o[o2 - 1][0], f2.o[o2 - 1][1], 0), g2.applyToX(f2.i[0][0], f2.i[0][1], 0), g2.applyToY(f2.i[0][0], f2.i[0][1], 0), g2.applyToX(f2.v[0][0], f2.v[0][1], 0), g2.applyToY(f2.v[0][0], f2.v[0][1], 0)), u2[x2] = d2, x2 += 1;\n }\n v2 && (_2 += y2[i2].l, _2 += b2), this.textSpans[E2] ? this.textSpans[E2].elem = u2 : this.textSpans[E2] = { elem: u2 }, E2 += 1;\n }\n }, CVTextElement.prototype.renderInnerContent = function() {\n var t2, e2, r2, i2, s2, a2;\n this.validateText(), this.canvasContext.font = this.values.fValue, this.globalData.renderer.ctxLineCap(\"butt\"), this.globalData.renderer.ctxLineJoin(\"miter\"), this.globalData.renderer.ctxMiterLimit(4), this.data.singleShape || this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n var n2, o2 = this.textAnimator.renderedLetters, h2 = this.textProperty.currentData.l;\n e2 = h2.length;\n var l2, p2, c2 = null, f2 = null, u2 = null, d2 = this.globalData.renderer;\n for (t2 = 0; t2 < e2; t2 += 1) if (!h2[t2].n) {\n if ((n2 = o2[t2]) && (d2.save(), d2.ctxTransform(n2.p), d2.ctxOpacity(n2.o)), this.fill) {\n for (n2 && n2.fc ? c2 !== n2.fc && (d2.ctxFillStyle(n2.fc), c2 = n2.fc) : c2 !== this.values.fill && (c2 = this.values.fill, d2.ctxFillStyle(this.values.fill)), i2 = (l2 = this.textSpans[t2].elem).length, this.globalData.canvasContext.beginPath(), r2 = 0; r2 < i2; r2 += 1) for (a2 = (p2 = l2[r2]).length, this.globalData.canvasContext.moveTo(p2[0], p2[1]), s2 = 2; s2 < a2; s2 += 6) this.globalData.canvasContext.bezierCurveTo(p2[s2], p2[s2 + 1], p2[s2 + 2], p2[s2 + 3], p2[s2 + 4], p2[s2 + 5]);\n this.globalData.canvasContext.closePath(), d2.ctxFill();\n }\n if (this.stroke) {\n for (n2 && n2.sw ? u2 !== n2.sw && (u2 = n2.sw, d2.ctxLineWidth(n2.sw)) : u2 !== this.values.sWidth && (u2 = this.values.sWidth, d2.ctxLineWidth(this.values.sWidth)), n2 && n2.sc ? f2 !== n2.sc && (f2 = n2.sc, d2.ctxStrokeStyle(n2.sc)) : f2 !== this.values.stroke && (f2 = this.values.stroke, d2.ctxStrokeStyle(this.values.stroke)), i2 = (l2 = this.textSpans[t2].elem).length, this.globalData.canvasContext.beginPath(), r2 = 0; r2 < i2; r2 += 1) for (a2 = (p2 = l2[r2]).length, this.globalData.canvasContext.moveTo(p2[0], p2[1]), s2 = 2; s2 < a2; s2 += 6) this.globalData.canvasContext.bezierCurveTo(p2[s2], p2[s2 + 1], p2[s2 + 2], p2[s2 + 3], p2[s2 + 4], p2[s2 + 5]);\n this.globalData.canvasContext.closePath(), d2.ctxStroke();\n }\n n2 && this.globalData.renderer.restore();\n }\n }, extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement), CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement, CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame, CVImageElement.prototype.createContent = function() {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var t2 = createTag(\"canvas\");\n t2.width = this.assetData.w, t2.height = this.assetData.h;\n var e2, r2, i2 = t2.getContext(\"2d\"), s2 = this.img.width, a2 = this.img.height, n2 = s2 / a2, o2 = this.assetData.w / this.assetData.h, h2 = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n n2 > o2 && \"xMidYMid slice\" === h2 || n2 < o2 && \"xMidYMid slice\" !== h2 ? e2 = (r2 = a2) * o2 : r2 = (e2 = s2) / o2, i2.drawImage(this.img, (s2 - e2) / 2, (a2 - r2) / 2, e2, r2, 0, 0, this.assetData.w, this.assetData.h), this.img = t2;\n }\n }, CVImageElement.prototype.renderInnerContent = function() {\n this.canvasContext.drawImage(this.img, 0, 0);\n }, CVImageElement.prototype.destroy = function() {\n this.img = null;\n }, extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement), CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement, CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame, CVSolidElement.prototype.renderInnerContent = function() {\n this.globalData.renderer.ctxFillStyle(this.data.sc), this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh);\n }, extendPrototype([BaseRenderer], CanvasRendererBase), CanvasRendererBase.prototype.createShape = function(t2) {\n return new CVShapeElement(t2, this.globalData, this);\n }, CanvasRendererBase.prototype.createText = function(t2) {\n return new CVTextElement(t2, this.globalData, this);\n }, CanvasRendererBase.prototype.createImage = function(t2) {\n return new CVImageElement(t2, this.globalData, this);\n }, CanvasRendererBase.prototype.createSolid = function(t2) {\n return new CVSolidElement(t2, this.globalData, this);\n }, CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull, CanvasRendererBase.prototype.ctxTransform = function(t2) {\n 1 === t2[0] && 0 === t2[1] && 0 === t2[4] && 1 === t2[5] && 0 === t2[12] && 0 === t2[13] || this.canvasContext.transform(t2[0], t2[1], t2[4], t2[5], t2[12], t2[13]);\n }, CanvasRendererBase.prototype.ctxOpacity = function(t2) {\n this.canvasContext.globalAlpha *= t2 < 0 ? 0 : t2;\n }, CanvasRendererBase.prototype.ctxFillStyle = function(t2) {\n this.canvasContext.fillStyle = t2;\n }, CanvasRendererBase.prototype.ctxStrokeStyle = function(t2) {\n this.canvasContext.strokeStyle = t2;\n }, CanvasRendererBase.prototype.ctxLineWidth = function(t2) {\n this.canvasContext.lineWidth = t2;\n }, CanvasRendererBase.prototype.ctxLineCap = function(t2) {\n this.canvasContext.lineCap = t2;\n }, CanvasRendererBase.prototype.ctxLineJoin = function(t2) {\n this.canvasContext.lineJoin = t2;\n }, CanvasRendererBase.prototype.ctxMiterLimit = function(t2) {\n this.canvasContext.miterLimit = t2;\n }, CanvasRendererBase.prototype.ctxFill = function(t2) {\n this.canvasContext.fill(t2);\n }, CanvasRendererBase.prototype.ctxFillRect = function(t2, e2, r2, i2) {\n this.canvasContext.fillRect(t2, e2, r2, i2);\n }, CanvasRendererBase.prototype.ctxStroke = function() {\n this.canvasContext.stroke();\n }, CanvasRendererBase.prototype.reset = function() {\n this.renderConfig.clearCanvas ? this.contextData.reset() : this.canvasContext.restore();\n }, CanvasRendererBase.prototype.save = function() {\n this.canvasContext.save();\n }, CanvasRendererBase.prototype.restore = function(t2) {\n this.renderConfig.clearCanvas ? (t2 && (this.globalData.blendMode = \"source-over\"), this.contextData.restore(t2)) : this.canvasContext.restore();\n }, CanvasRendererBase.prototype.configAnimation = function(t2) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag(\"canvas\");\n var e2 = this.animationItem.container.style;\n e2.width = \"100%\", e2.height = \"100%\";\n var r2 = \"0px 0px 0px\";\n e2.transformOrigin = r2, e2.mozTransformOrigin = r2, e2.webkitTransformOrigin = r2, e2[\"-webkit-transform\"] = r2, e2.contentVisibility = this.renderConfig.contentVisibility, this.animationItem.wrapper.appendChild(this.animationItem.container), this.canvasContext = this.animationItem.container.getContext(\"2d\"), this.renderConfig.className && this.animationItem.container.setAttribute(\"class\", this.renderConfig.className), this.renderConfig.id && this.animationItem.container.setAttribute(\"id\", this.renderConfig.id);\n } else this.canvasContext = this.renderConfig.context;\n this.contextData.setContext(this.canvasContext), this.data = t2, this.layers = t2.layers, this.transformCanvas = { w: t2.w, h: t2.h, sx: 0, sy: 0, tx: 0, ty: 0 }, this.setupGlobalData(t2, document.body), this.globalData.canvasContext = this.canvasContext, this.globalData.renderer = this, this.globalData.isDashed = false, this.globalData.progressiveLoad = this.renderConfig.progressiveLoad, this.globalData.transformCanvas = this.transformCanvas, this.elements = createSizedArray(t2.layers.length), this.updateContainerSize();\n }, CanvasRendererBase.prototype.updateContainerSize = function(t2, e2) {\n var r2, i2, s2, a2;\n if (this.reset(), t2 ? (r2 = t2, i2 = e2, this.canvasContext.canvas.width = r2, this.canvasContext.canvas.height = i2) : (this.animationItem.wrapper && this.animationItem.container ? (r2 = this.animationItem.wrapper.offsetWidth, i2 = this.animationItem.wrapper.offsetHeight) : (r2 = this.canvasContext.canvas.width, i2 = this.canvasContext.canvas.height), this.canvasContext.canvas.width = r2 * this.renderConfig.dpr, this.canvasContext.canvas.height = i2 * this.renderConfig.dpr), -1 !== this.renderConfig.preserveAspectRatio.indexOf(\"meet\") || -1 !== this.renderConfig.preserveAspectRatio.indexOf(\"slice\")) {\n var n2 = this.renderConfig.preserveAspectRatio.split(\" \"), o2 = n2[1] || \"meet\", h2 = n2[0] || \"xMidYMid\", l2 = h2.substr(0, 4), p2 = h2.substr(4);\n s2 = r2 / i2, (a2 = this.transformCanvas.w / this.transformCanvas.h) > s2 && \"meet\" === o2 || a2 < s2 && \"slice\" === o2 ? (this.transformCanvas.sx = r2 / (this.transformCanvas.w / this.renderConfig.dpr), this.transformCanvas.sy = r2 / (this.transformCanvas.w / this.renderConfig.dpr)) : (this.transformCanvas.sx = i2 / (this.transformCanvas.h / this.renderConfig.dpr), this.transformCanvas.sy = i2 / (this.transformCanvas.h / this.renderConfig.dpr)), this.transformCanvas.tx = \"xMid\" === l2 && (a2 < s2 && \"meet\" === o2 || a2 > s2 && \"slice\" === o2) ? (r2 - this.transformCanvas.w * (i2 / this.transformCanvas.h)) / 2 * this.renderConfig.dpr : \"xMax\" === l2 && (a2 < s2 && \"meet\" === o2 || a2 > s2 && \"slice\" === o2) ? (r2 - this.transformCanvas.w * (i2 / this.transformCanvas.h)) * this.renderConfig.dpr : 0, this.transformCanvas.ty = \"YMid\" === p2 && (a2 > s2 && \"meet\" === o2 || a2 < s2 && \"slice\" === o2) ? (i2 - this.transformCanvas.h * (r2 / this.transformCanvas.w)) / 2 * this.renderConfig.dpr : \"YMax\" === p2 && (a2 > s2 && \"meet\" === o2 || a2 < s2 && \"slice\" === o2) ? (i2 - this.transformCanvas.h * (r2 / this.transformCanvas.w)) * this.renderConfig.dpr : 0;\n } else \"none\" === this.renderConfig.preserveAspectRatio ? (this.transformCanvas.sx = r2 / (this.transformCanvas.w / this.renderConfig.dpr), this.transformCanvas.sy = i2 / (this.transformCanvas.h / this.renderConfig.dpr), this.transformCanvas.tx = 0, this.transformCanvas.ty = 0) : (this.transformCanvas.sx = this.renderConfig.dpr, this.transformCanvas.sy = this.renderConfig.dpr, this.transformCanvas.tx = 0, this.transformCanvas.ty = 0);\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1], this.ctxTransform(this.transformCanvas.props), this.canvasContext.beginPath(), this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h), this.canvasContext.closePath(), this.canvasContext.clip(), this.renderFrame(this.renderedFrame, true);\n }, CanvasRendererBase.prototype.destroy = function() {\n var t2;\n for (this.renderConfig.clearCanvas && this.animationItem.wrapper && (this.animationItem.wrapper.innerText = \"\"), t2 = (this.layers ? this.layers.length : 0) - 1; t2 >= 0; t2 -= 1) this.elements[t2] && this.elements[t2].destroy && this.elements[t2].destroy();\n this.elements.length = 0, this.globalData.canvasContext = null, this.animationItem.container = null, this.destroyed = true;\n }, CanvasRendererBase.prototype.renderFrame = function(t2, e2) {\n if ((this.renderedFrame !== t2 || true !== this.renderConfig.clearCanvas || e2) && !this.destroyed && -1 !== t2) {\n var r2;\n this.renderedFrame = t2, this.globalData.frameNum = t2 - this.animationItem._isFirstFrame, this.globalData.frameId += 1, this.globalData._mdf = !this.renderConfig.clearCanvas || e2, this.globalData.projectInterface.currentFrame = t2;\n var i2 = this.layers.length;\n for (this.completeLayers || this.checkLayers(t2), r2 = i2 - 1; r2 >= 0; r2 -= 1) (this.completeLayers || this.elements[r2]) && this.elements[r2].prepareFrame(t2 - this.layers[r2].st);\n if (this.globalData._mdf) {\n for (true === this.renderConfig.clearCanvas ? this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h) : this.save(), r2 = i2 - 1; r2 >= 0; r2 -= 1) (this.completeLayers || this.elements[r2]) && this.elements[r2].renderFrame();\n true !== this.renderConfig.clearCanvas && this.restore();\n }\n }\n }, CanvasRendererBase.prototype.buildItem = function(t2) {\n var e2 = this.elements;\n if (!e2[t2] && 99 !== this.layers[t2].ty) {\n var r2 = this.createItem(this.layers[t2], this, this.globalData);\n e2[t2] = r2, r2.initExpressions();\n }\n }, CanvasRendererBase.prototype.checkPendingElements = function() {\n for (; this.pendingElements.length; ) this.pendingElements.pop().checkParenting();\n }, CanvasRendererBase.prototype.hide = function() {\n this.animationItem.container.style.display = \"none\";\n }, CanvasRendererBase.prototype.show = function() {\n this.animationItem.container.style.display = \"block\";\n }, CVContextData.prototype.duplicate = function() {\n var t2 = 2 * this._length, e2 = 0;\n for (e2 = this._length; e2 < t2; e2 += 1) this.stack[e2] = new CanvasContext();\n this._length = t2;\n }, CVContextData.prototype.reset = function() {\n this.cArrPos = 0, this.cTr.reset(), this.stack[this.cArrPos].opacity = 1;\n }, CVContextData.prototype.restore = function(t2) {\n this.cArrPos -= 1;\n var e2, r2 = this.stack[this.cArrPos], i2 = r2.transform, s2 = this.cTr.props;\n for (e2 = 0; e2 < 16; e2 += 1) s2[e2] = i2[e2];\n if (t2) {\n this.nativeContext.restore();\n var a2 = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = a2.fillStyle, this.appliedStrokeStyle = a2.strokeStyle, this.appliedLineWidth = a2.lineWidth, this.appliedLineCap = a2.lineCap, this.appliedLineJoin = a2.lineJoin, this.appliedMiterLimit = a2.miterLimit;\n }\n this.nativeContext.setTransform(i2[0], i2[1], i2[4], i2[5], i2[12], i2[13]), (t2 || -1 !== r2.opacity && this.currentOpacity !== r2.opacity) && (this.nativeContext.globalAlpha = r2.opacity, this.currentOpacity = r2.opacity), this.currentFillStyle = r2.fillStyle, this.currentStrokeStyle = r2.strokeStyle, this.currentLineWidth = r2.lineWidth, this.currentLineCap = r2.lineCap, this.currentLineJoin = r2.lineJoin, this.currentMiterLimit = r2.miterLimit;\n }, CVContextData.prototype.save = function(t2) {\n t2 && this.nativeContext.save();\n var e2 = this.cTr.props;\n this._length <= this.cArrPos && this.duplicate();\n var r2, i2 = this.stack[this.cArrPos];\n for (r2 = 0; r2 < 16; r2 += 1) i2.transform[r2] = e2[r2];\n this.cArrPos += 1;\n var s2 = this.stack[this.cArrPos];\n s2.opacity = i2.opacity, s2.fillStyle = i2.fillStyle, s2.strokeStyle = i2.strokeStyle, s2.lineWidth = i2.lineWidth, s2.lineCap = i2.lineCap, s2.lineJoin = i2.lineJoin, s2.miterLimit = i2.miterLimit;\n }, CVContextData.prototype.setOpacity = function(t2) {\n this.stack[this.cArrPos].opacity = t2;\n }, CVContextData.prototype.setContext = function(t2) {\n this.nativeContext = t2;\n }, CVContextData.prototype.fillStyle = function(t2) {\n this.stack[this.cArrPos].fillStyle !== t2 && (this.currentFillStyle = t2, this.stack[this.cArrPos].fillStyle = t2);\n }, CVContextData.prototype.strokeStyle = function(t2) {\n this.stack[this.cArrPos].strokeStyle !== t2 && (this.currentStrokeStyle = t2, this.stack[this.cArrPos].strokeStyle = t2);\n }, CVContextData.prototype.lineWidth = function(t2) {\n this.stack[this.cArrPos].lineWidth !== t2 && (this.currentLineWidth = t2, this.stack[this.cArrPos].lineWidth = t2);\n }, CVContextData.prototype.lineCap = function(t2) {\n this.stack[this.cArrPos].lineCap !== t2 && (this.currentLineCap = t2, this.stack[this.cArrPos].lineCap = t2);\n }, CVContextData.prototype.lineJoin = function(t2) {\n this.stack[this.cArrPos].lineJoin !== t2 && (this.currentLineJoin = t2, this.stack[this.cArrPos].lineJoin = t2);\n }, CVContextData.prototype.miterLimit = function(t2) {\n this.stack[this.cArrPos].miterLimit !== t2 && (this.currentMiterLimit = t2, this.stack[this.cArrPos].miterLimit = t2);\n }, CVContextData.prototype.transform = function(t2) {\n this.transformMat.cloneFromProps(t2);\n var e2 = this.cTr;\n this.transformMat.multiply(e2), e2.cloneFromProps(this.transformMat.props);\n var r2 = e2.props;\n this.nativeContext.setTransform(r2[0], r2[1], r2[4], r2[5], r2[12], r2[13]);\n }, CVContextData.prototype.opacity = function(t2) {\n var e2 = this.stack[this.cArrPos].opacity;\n e2 *= t2 < 0 ? 0 : t2, this.stack[this.cArrPos].opacity !== e2 && (this.currentOpacity !== t2 && (this.nativeContext.globalAlpha = t2, this.currentOpacity = t2), this.stack[this.cArrPos].opacity = e2);\n }, CVContextData.prototype.fill = function(t2) {\n this.appliedFillStyle !== this.currentFillStyle && (this.appliedFillStyle = this.currentFillStyle, this.nativeContext.fillStyle = this.appliedFillStyle), this.nativeContext.fill(t2);\n }, CVContextData.prototype.fillRect = function(t2, e2, r2, i2) {\n this.appliedFillStyle !== this.currentFillStyle && (this.appliedFillStyle = this.currentFillStyle, this.nativeContext.fillStyle = this.appliedFillStyle), this.nativeContext.fillRect(t2, e2, r2, i2);\n }, CVContextData.prototype.stroke = function() {\n this.appliedStrokeStyle !== this.currentStrokeStyle && (this.appliedStrokeStyle = this.currentStrokeStyle, this.nativeContext.strokeStyle = this.appliedStrokeStyle), this.appliedLineWidth !== this.currentLineWidth && (this.appliedLineWidth = this.currentLineWidth, this.nativeContext.lineWidth = this.appliedLineWidth), this.appliedLineCap !== this.currentLineCap && (this.appliedLineCap = this.currentLineCap, this.nativeContext.lineCap = this.appliedLineCap), this.appliedLineJoin !== this.currentLineJoin && (this.appliedLineJoin = this.currentLineJoin, this.nativeContext.lineJoin = this.appliedLineJoin), this.appliedMiterLimit !== this.currentMiterLimit && (this.appliedMiterLimit = this.currentMiterLimit, this.nativeContext.miterLimit = this.appliedMiterLimit), this.nativeContext.stroke();\n }, extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement), CVCompElement.prototype.renderInnerContent = function() {\n var t2, e2 = this.canvasContext;\n for (e2.beginPath(), e2.moveTo(0, 0), e2.lineTo(this.data.w, 0), e2.lineTo(this.data.w, this.data.h), e2.lineTo(0, this.data.h), e2.lineTo(0, 0), e2.clip(), t2 = this.layers.length - 1; t2 >= 0; t2 -= 1) (this.completeLayers || this.elements[t2]) && this.elements[t2].renderFrame();\n }, CVCompElement.prototype.destroy = function() {\n var t2;\n for (t2 = this.layers.length - 1; t2 >= 0; t2 -= 1) this.elements[t2] && this.elements[t2].destroy();\n this.layers = null, this.elements = null;\n }, CVCompElement.prototype.createComp = function(t2) {\n return new CVCompElement(t2, this.globalData, this);\n }, extendPrototype([CanvasRendererBase], CanvasRenderer), CanvasRenderer.prototype.createComp = function(t2) {\n return new CVCompElement(t2, this.globalData, this);\n }, HBaseElement.prototype = { checkBlendMode: function() {\n }, initRendererElement: function() {\n this.baseElement = createTag(this.data.tg || \"div\"), this.data.hasMask ? (this.svgElement = createNS(\"svg\"), this.layerElement = createNS(\"g\"), this.maskedElement = this.layerElement, this.svgElement.appendChild(this.layerElement), this.baseElement.appendChild(this.svgElement)) : this.layerElement = this.baseElement, styleDiv(this.baseElement);\n }, createContainerElements: function() {\n this.renderableEffectsManager = new CVEffects(this), this.transformedElement = this.baseElement, this.maskedElement = this.layerElement, this.data.ln && this.layerElement.setAttribute(\"id\", this.data.ln), this.data.cl && this.layerElement.setAttribute(\"class\", this.data.cl), 0 !== this.data.bm && this.setBlendMode();\n }, renderElement: function() {\n var t2 = this.transformedElement ? this.transformedElement.style : {};\n if (this.finalTransform._matMdf) {\n var e2 = this.finalTransform.mat.toCSS();\n t2.transform = e2, t2.webkitTransform = e2;\n }\n this.finalTransform._opMdf && (t2.opacity = this.finalTransform.mProp.o.v);\n }, renderFrame: function() {\n this.data.hd || this.hidden || (this.renderTransform(), this.renderRenderable(), this.renderElement(), this.renderInnerContent(), this._isFirstFrame && (this._isFirstFrame = false));\n }, destroy: function() {\n this.layerElement = null, this.transformedElement = null, this.matteElement && (this.matteElement = null), this.maskManager && (this.maskManager.destroy(), this.maskManager = null);\n }, createRenderableComponents: function() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n }, addEffects: function() {\n }, setMatte: function() {\n } }, HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement, HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy, HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting, extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement), HSolidElement.prototype.createContent = function() {\n var t2;\n this.data.hasMask ? ((t2 = createNS(\"rect\")).setAttribute(\"width\", this.data.sw), t2.setAttribute(\"height\", this.data.sh), t2.setAttribute(\"fill\", this.data.sc), this.svgElement.setAttribute(\"width\", this.data.sw), this.svgElement.setAttribute(\"height\", this.data.sh)) : ((t2 = createTag(\"div\")).style.width = this.data.sw + \"px\", t2.style.height = this.data.sh + \"px\", t2.style.backgroundColor = this.data.sc), this.layerElement.appendChild(t2);\n }, extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement), HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent, HShapeElement.prototype.createContent = function() {\n var t2;\n if (this.baseElement.style.fontSize = 0, this.data.hasMask) this.layerElement.appendChild(this.shapesContainer), t2 = this.svgElement;\n else {\n t2 = createNS(\"svg\");\n var e2 = this.comp.data ? this.comp.data : this.globalData.compSize;\n t2.setAttribute(\"width\", e2.w), t2.setAttribute(\"height\", e2.h), t2.appendChild(this.shapesContainer), this.layerElement.appendChild(t2);\n }\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true), this.filterUniqueShapes(), this.shapeCont = t2;\n }, HShapeElement.prototype.getTransformedPoint = function(t2, e2) {\n var r2, i2 = t2.length;\n for (r2 = 0; r2 < i2; r2 += 1) e2 = t2[r2].mProps.v.applyToPointArray(e2[0], e2[1], 0);\n return e2;\n }, HShapeElement.prototype.calculateShapeBoundingBox = function(t2, e2) {\n var r2, i2, s2, a2, n2, o2 = t2.sh.v, h2 = t2.transformers, l2 = o2._length;\n if (!(l2 <= 1)) {\n for (r2 = 0; r2 < l2 - 1; r2 += 1) i2 = this.getTransformedPoint(h2, o2.v[r2]), s2 = this.getTransformedPoint(h2, o2.o[r2]), a2 = this.getTransformedPoint(h2, o2.i[r2 + 1]), n2 = this.getTransformedPoint(h2, o2.v[r2 + 1]), this.checkBounds(i2, s2, a2, n2, e2);\n o2.c && (i2 = this.getTransformedPoint(h2, o2.v[r2]), s2 = this.getTransformedPoint(h2, o2.o[r2]), a2 = this.getTransformedPoint(h2, o2.i[0]), n2 = this.getTransformedPoint(h2, o2.v[0]), this.checkBounds(i2, s2, a2, n2, e2));\n }\n }, HShapeElement.prototype.checkBounds = function(t2, e2, r2, i2, s2) {\n this.getBoundsOfCurve(t2, e2, r2, i2);\n var a2 = this.shapeBoundingBox;\n s2.x = bmMin(a2.left, s2.x), s2.xMax = bmMax(a2.right, s2.xMax), s2.y = bmMin(a2.top, s2.y), s2.yMax = bmMax(a2.bottom, s2.yMax);\n }, HShapeElement.prototype.shapeBoundingBox = { left: 0, right: 0, top: 0, bottom: 0 }, HShapeElement.prototype.tempBoundingBox = { x: 0, xMax: 0, y: 0, yMax: 0, width: 0, height: 0 }, HShapeElement.prototype.getBoundsOfCurve = function(t2, e2, r2, i2) {\n for (var s2, a2, n2, o2, h2, l2, p2, c2 = [[t2[0], i2[0]], [t2[1], i2[1]]], f2 = 0; f2 < 2; ++f2) a2 = 6 * t2[f2] - 12 * e2[f2] + 6 * r2[f2], s2 = -3 * t2[f2] + 9 * e2[f2] - 9 * r2[f2] + 3 * i2[f2], n2 = 3 * e2[f2] - 3 * t2[f2], a2 |= 0, n2 |= 0, 0 == (s2 |= 0) && 0 === a2 || (0 === s2 ? (o2 = -n2 / a2) > 0 && o2 < 1 && c2[f2].push(this.calculateF(o2, t2, e2, r2, i2, f2)) : (h2 = a2 * a2 - 4 * n2 * s2) >= 0 && ((l2 = (-a2 + bmSqrt(h2)) / (2 * s2)) > 0 && l2 < 1 && c2[f2].push(this.calculateF(l2, t2, e2, r2, i2, f2)), (p2 = (-a2 - bmSqrt(h2)) / (2 * s2)) > 0 && p2 < 1 && c2[f2].push(this.calculateF(p2, t2, e2, r2, i2, f2))));\n this.shapeBoundingBox.left = bmMin.apply(null, c2[0]), this.shapeBoundingBox.top = bmMin.apply(null, c2[1]), this.shapeBoundingBox.right = bmMax.apply(null, c2[0]), this.shapeBoundingBox.bottom = bmMax.apply(null, c2[1]);\n }, HShapeElement.prototype.calculateF = function(t2, e2, r2, i2, s2, a2) {\n return bmPow(1 - t2, 3) * e2[a2] + 3 * bmPow(1 - t2, 2) * t2 * r2[a2] + 3 * (1 - t2) * bmPow(t2, 2) * i2[a2] + bmPow(t2, 3) * s2[a2];\n }, HShapeElement.prototype.calculateBoundingBox = function(t2, e2) {\n var r2, i2 = t2.length;\n for (r2 = 0; r2 < i2; r2 += 1) t2[r2] && t2[r2].sh ? this.calculateShapeBoundingBox(t2[r2], e2) : t2[r2] && t2[r2].it ? this.calculateBoundingBox(t2[r2].it, e2) : t2[r2] && t2[r2].style && t2[r2].w && this.expandStrokeBoundingBox(t2[r2].w, e2);\n }, HShapeElement.prototype.expandStrokeBoundingBox = function(t2, e2) {\n var r2 = 0;\n if (t2.keyframes) {\n for (var i2 = 0; i2 < t2.keyframes.length; i2 += 1) {\n var s2 = t2.keyframes[i2].s;\n s2 > r2 && (r2 = s2);\n }\n r2 *= t2.mult;\n } else r2 = t2.v * t2.mult;\n e2.x -= r2, e2.xMax += r2, e2.y -= r2, e2.yMax += r2;\n }, HShapeElement.prototype.currentBoxContains = function(t2) {\n return this.currentBBox.x <= t2.x && this.currentBBox.y <= t2.y && this.currentBBox.width + this.currentBBox.x >= t2.x + t2.width && this.currentBBox.height + this.currentBBox.y >= t2.y + t2.height;\n }, HShapeElement.prototype.renderInnerContent = function() {\n if (this._renderShapeFrame(), !this.hidden && (this._isFirstFrame || this._mdf)) {\n var t2 = this.tempBoundingBox, e2 = 999999;\n if (t2.x = e2, t2.xMax = -e2, t2.y = e2, t2.yMax = -e2, this.calculateBoundingBox(this.itemsData, t2), t2.width = t2.xMax < t2.x ? 0 : t2.xMax - t2.x, t2.height = t2.yMax < t2.y ? 0 : t2.yMax - t2.y, this.currentBoxContains(t2)) return;\n var r2 = false;\n if (this.currentBBox.w !== t2.width && (this.currentBBox.w = t2.width, this.shapeCont.setAttribute(\"width\", t2.width), r2 = true), this.currentBBox.h !== t2.height && (this.currentBBox.h = t2.height, this.shapeCont.setAttribute(\"height\", t2.height), r2 = true), r2 || this.currentBBox.x !== t2.x || this.currentBBox.y !== t2.y) {\n this.currentBBox.w = t2.width, this.currentBBox.h = t2.height, this.currentBBox.x = t2.x, this.currentBBox.y = t2.y, this.shapeCont.setAttribute(\"viewBox\", this.currentBBox.x + \" \" + this.currentBBox.y + \" \" + this.currentBBox.w + \" \" + this.currentBBox.h);\n var i2 = this.shapeCont.style, s2 = \"translate(\" + this.currentBBox.x + \"px,\" + this.currentBBox.y + \"px)\";\n i2.transform = s2, i2.webkitTransform = s2;\n }\n }\n }, extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement), HTextElement.prototype.createContent = function() {\n if (this.isMasked = this.checkMasks(), this.isMasked) {\n this.renderType = \"svg\", this.compW = this.comp.data.w, this.compH = this.comp.data.h, this.svgElement.setAttribute(\"width\", this.compW), this.svgElement.setAttribute(\"height\", this.compH);\n var t2 = createNS(\"g\");\n this.maskedElement.appendChild(t2), this.innerElem = t2;\n } else this.renderType = \"html\", this.innerElem = this.layerElement;\n this.checkParenting();\n }, HTextElement.prototype.buildNewText = function() {\n var t2 = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(t2.l ? t2.l.length : 0);\n var e2 = this.innerElem.style, r2 = t2.fc ? this.buildColor(t2.fc) : \"rgba(0,0,0,0)\";\n e2.fill = r2, e2.color = r2, t2.sc && (e2.stroke = this.buildColor(t2.sc), e2.strokeWidth = t2.sw + \"px\");\n var i2, s2, a2 = this.globalData.fontManager.getFontByName(t2.f);\n if (!this.globalData.fontManager.chars) if (e2.fontSize = t2.finalSize + \"px\", e2.lineHeight = t2.finalSize + \"px\", a2.fClass) this.innerElem.className = a2.fClass;\n else {\n e2.fontFamily = a2.fFamily;\n var n2 = t2.fWeight, o2 = t2.fStyle;\n e2.fontStyle = o2, e2.fontWeight = n2;\n }\n var h2, l2, p2, c2 = t2.l;\n s2 = c2.length;\n var f2, u2 = this.mHelper, d2 = \"\", m2 = 0;\n for (i2 = 0; i2 < s2; i2 += 1) {\n if (this.globalData.fontManager.chars ? (this.textPaths[m2] ? h2 = this.textPaths[m2] : ((h2 = createNS(\"path\")).setAttribute(\"stroke-linecap\", lineCapEnum[1]), h2.setAttribute(\"stroke-linejoin\", lineJoinEnum[2]), h2.setAttribute(\"stroke-miterlimit\", \"4\")), this.isMasked || (this.textSpans[m2] ? p2 = (l2 = this.textSpans[m2]).children[0] : ((l2 = createTag(\"div\")).style.lineHeight = 0, (p2 = createNS(\"svg\")).appendChild(h2), styleDiv(l2)))) : this.isMasked ? h2 = this.textPaths[m2] ? this.textPaths[m2] : createNS(\"text\") : this.textSpans[m2] ? (l2 = this.textSpans[m2], h2 = this.textPaths[m2]) : (styleDiv(l2 = createTag(\"span\")), styleDiv(h2 = createTag(\"span\")), l2.appendChild(h2)), this.globalData.fontManager.chars) {\n var y2, g2 = this.globalData.fontManager.getCharData(t2.finalText[i2], a2.fStyle, this.globalData.fontManager.getFontByName(t2.f).fFamily);\n if (y2 = g2 ? g2.data : null, u2.reset(), y2 && y2.shapes && y2.shapes.length && (f2 = y2.shapes[0].it, u2.scale(t2.finalSize / 100, t2.finalSize / 100), d2 = this.createPathShape(u2, f2), h2.setAttribute(\"d\", d2)), this.isMasked) this.innerElem.appendChild(h2);\n else {\n if (this.innerElem.appendChild(l2), y2 && y2.shapes) {\n document.body.appendChild(p2);\n var v2 = p2.getBBox();\n p2.setAttribute(\"width\", v2.width + 2), p2.setAttribute(\"height\", v2.height + 2), p2.setAttribute(\"viewBox\", v2.x - 1 + \" \" + (v2.y - 1) + \" \" + (v2.width + 2) + \" \" + (v2.height + 2));\n var b2 = p2.style, _2 = \"translate(\" + (v2.x - 1) + \"px,\" + (v2.y - 1) + \"px)\";\n b2.transform = _2, b2.webkitTransform = _2, c2[i2].yOffset = v2.y - 1;\n } else p2.setAttribute(\"width\", 1), p2.setAttribute(\"height\", 1);\n l2.appendChild(p2);\n }\n } else if (h2.textContent = c2[i2].val, h2.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\"), this.isMasked) this.innerElem.appendChild(h2);\n else {\n this.innerElem.appendChild(l2);\n var P2 = h2.style, S2 = \"translate3d(0,\" + -t2.finalSize / 1.2 + \"px,0)\";\n P2.transform = S2, P2.webkitTransform = S2;\n }\n this.isMasked ? this.textSpans[m2] = h2 : this.textSpans[m2] = l2, this.textSpans[m2].style.display = \"block\", this.textPaths[m2] = h2, m2 += 1;\n }\n for (; m2 < this.textSpans.length; ) this.textSpans[m2].style.display = \"none\", m2 += 1;\n }, HTextElement.prototype.renderInnerContent = function() {\n var t2;\n if (this.validateText(), this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) return;\n if (this.isMasked && this.finalTransform._matMdf) {\n this.svgElement.setAttribute(\"viewBox\", -this.finalTransform.mProp.p.v[0] + \" \" + -this.finalTransform.mProp.p.v[1] + \" \" + this.compW + \" \" + this.compH), t2 = this.svgElement.style;\n var e2 = \"translate(\" + -this.finalTransform.mProp.p.v[0] + \"px,\" + -this.finalTransform.mProp.p.v[1] + \"px)\";\n t2.transform = e2, t2.webkitTransform = e2;\n }\n }\n if (this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag), this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n var r2, i2, s2, a2, n2, o2 = 0, h2 = this.textAnimator.renderedLetters, l2 = this.textProperty.currentData.l;\n for (i2 = l2.length, r2 = 0; r2 < i2; r2 += 1) l2[r2].n ? o2 += 1 : (a2 = this.textSpans[r2], n2 = this.textPaths[r2], s2 = h2[o2], o2 += 1, s2._mdf.m && (this.isMasked ? a2.setAttribute(\"transform\", s2.m) : (a2.style.webkitTransform = s2.m, a2.style.transform = s2.m)), a2.style.opacity = s2.o, s2.sw && s2._mdf.sw && n2.setAttribute(\"stroke-width\", s2.sw), s2.sc && s2._mdf.sc && n2.setAttribute(\"stroke\", s2.sc), s2.fc && s2._mdf.fc && (n2.setAttribute(\"fill\", s2.fc), n2.style.color = s2.fc));\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var p2 = this.innerElem.getBBox();\n if (this.currentBBox.w !== p2.width && (this.currentBBox.w = p2.width, this.svgElement.setAttribute(\"width\", p2.width)), this.currentBBox.h !== p2.height && (this.currentBBox.h = p2.height, this.svgElement.setAttribute(\"height\", p2.height)), this.currentBBox.w !== p2.width + 2 || this.currentBBox.h !== p2.height + 2 || this.currentBBox.x !== p2.x - 1 || this.currentBBox.y !== p2.y - 1) {\n this.currentBBox.w = p2.width + 2, this.currentBBox.h = p2.height + 2, this.currentBBox.x = p2.x - 1, this.currentBBox.y = p2.y - 1, this.svgElement.setAttribute(\"viewBox\", this.currentBBox.x + \" \" + this.currentBBox.y + \" \" + this.currentBBox.w + \" \" + this.currentBBox.h), t2 = this.svgElement.style;\n var c2 = \"translate(\" + this.currentBBox.x + \"px,\" + this.currentBBox.y + \"px)\";\n t2.transform = c2, t2.webkitTransform = c2;\n }\n }\n }\n }, extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement), HCameraElement.prototype.setup = function() {\n var t2, e2, r2, i2, s2 = this.comp.threeDElements.length;\n for (t2 = 0; t2 < s2; t2 += 1) if (\"3d\" === (e2 = this.comp.threeDElements[t2]).type) {\n r2 = e2.perspectiveElem.style, i2 = e2.container.style;\n var a2 = this.pe.v + \"px\", n2 = \"0px 0px 0px\", o2 = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n r2.perspective = a2, r2.webkitPerspective = a2, i2.transformOrigin = n2, i2.mozTransformOrigin = n2, i2.webkitTransformOrigin = n2, r2.transform = o2, r2.webkitTransform = o2;\n }\n }, HCameraElement.prototype.createElements = function() {\n }, HCameraElement.prototype.hide = function() {\n }, HCameraElement.prototype.renderFrame = function() {\n var t2, e2, r2 = this._isFirstFrame;\n if (this.hierarchy) for (e2 = this.hierarchy.length, t2 = 0; t2 < e2; t2 += 1) r2 = this.hierarchy[t2].finalTransform.mProp._mdf || r2;\n if (r2 || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n if (this.mat.reset(), this.hierarchy) for (t2 = e2 = this.hierarchy.length - 1; t2 >= 0; t2 -= 1) {\n var i2 = this.hierarchy[t2].finalTransform.mProp;\n this.mat.translate(-i2.p.v[0], -i2.p.v[1], i2.p.v[2]), this.mat.rotateX(-i2.or.v[0]).rotateY(-i2.or.v[1]).rotateZ(i2.or.v[2]), this.mat.rotateX(-i2.rx.v).rotateY(-i2.ry.v).rotateZ(i2.rz.v), this.mat.scale(1 / i2.s.v[0], 1 / i2.s.v[1], 1 / i2.s.v[2]), this.mat.translate(i2.a.v[0], i2.a.v[1], i2.a.v[2]);\n }\n if (this.p ? this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]) : this.mat.translate(-this.px.v, -this.py.v, this.pz.v), this.a) {\n var s2;\n s2 = this.p ? [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]] : [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n var a2 = Math.sqrt(Math.pow(s2[0], 2) + Math.pow(s2[1], 2) + Math.pow(s2[2], 2)), n2 = [s2[0] / a2, s2[1] / a2, s2[2] / a2], o2 = Math.sqrt(n2[2] * n2[2] + n2[0] * n2[0]), h2 = Math.atan2(n2[1], o2), l2 = Math.atan2(n2[0], -n2[2]);\n this.mat.rotateY(l2).rotateX(-h2);\n }\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v), this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]), this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0), this.mat.translate(0, 0, this.pe.v);\n var p2 = !this._prevMat.equals(this.mat);\n if ((p2 || this.pe._mdf) && this.comp.threeDElements) {\n var c2, f2, u2;\n for (e2 = this.comp.threeDElements.length, t2 = 0; t2 < e2; t2 += 1) if (\"3d\" === (c2 = this.comp.threeDElements[t2]).type) {\n if (p2) {\n var d2 = this.mat.toCSS();\n (u2 = c2.container.style).transform = d2, u2.webkitTransform = d2;\n }\n this.pe._mdf && ((f2 = c2.perspectiveElem.style).perspective = this.pe.v + \"px\", f2.webkitPerspective = this.pe.v + \"px\");\n }\n this.mat.clone(this._prevMat);\n }\n }\n this._isFirstFrame = false;\n }, HCameraElement.prototype.prepareFrame = function(t2) {\n this.prepareProperties(t2, true);\n }, HCameraElement.prototype.destroy = function() {\n }, HCameraElement.prototype.getBaseElement = function() {\n return null;\n }, extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement), HImageElement.prototype.createContent = function() {\n var t2 = this.globalData.getAssetsPath(this.assetData), e2 = new Image();\n this.data.hasMask ? (this.imageElem = createNS(\"image\"), this.imageElem.setAttribute(\"width\", this.assetData.w + \"px\"), this.imageElem.setAttribute(\"height\", this.assetData.h + \"px\"), this.imageElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", t2), this.layerElement.appendChild(this.imageElem), this.baseElement.setAttribute(\"width\", this.assetData.w), this.baseElement.setAttribute(\"height\", this.assetData.h)) : this.layerElement.appendChild(e2), e2.crossOrigin = \"anonymous\", e2.src = t2, this.data.ln && this.baseElement.setAttribute(\"id\", this.data.ln);\n }, extendPrototype([BaseRenderer], HybridRendererBase), HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem, HybridRendererBase.prototype.checkPendingElements = function() {\n for (; this.pendingElements.length; ) this.pendingElements.pop().checkParenting();\n }, HybridRendererBase.prototype.appendElementInPos = function(t2, e2) {\n var r2 = t2.getBaseElement();\n if (r2) {\n var i2 = this.layers[e2];\n if (i2.ddd && this.supports3d) this.addTo3dContainer(r2, e2);\n else if (this.threeDElements) this.addTo3dContainer(r2, e2);\n else {\n for (var s2, a2, n2 = 0; n2 < e2; ) this.elements[n2] && true !== this.elements[n2] && this.elements[n2].getBaseElement && (a2 = this.elements[n2], s2 = (this.layers[n2].ddd ? this.getThreeDContainerByPos(n2) : a2.getBaseElement()) || s2), n2 += 1;\n s2 ? i2.ddd && this.supports3d || this.layerElement.insertBefore(r2, s2) : i2.ddd && this.supports3d || this.layerElement.appendChild(r2);\n }\n }\n }, HybridRendererBase.prototype.createShape = function(t2) {\n return this.supports3d ? new HShapeElement(t2, this.globalData, this) : new SVGShapeElement(t2, this.globalData, this);\n }, HybridRendererBase.prototype.createText = function(t2) {\n return this.supports3d ? new HTextElement(t2, this.globalData, this) : new SVGTextLottieElement(t2, this.globalData, this);\n }, HybridRendererBase.prototype.createCamera = function(t2) {\n return this.camera = new HCameraElement(t2, this.globalData, this), this.camera;\n }, HybridRendererBase.prototype.createImage = function(t2) {\n return this.supports3d ? new HImageElement(t2, this.globalData, this) : new IImageElement(t2, this.globalData, this);\n }, HybridRendererBase.prototype.createSolid = function(t2) {\n return this.supports3d ? new HSolidElement(t2, this.globalData, this) : new ISolidElement(t2, this.globalData, this);\n }, HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull, HybridRendererBase.prototype.getThreeDContainerByPos = function(t2) {\n for (var e2 = 0, r2 = this.threeDElements.length; e2 < r2; ) {\n if (this.threeDElements[e2].startPos <= t2 && this.threeDElements[e2].endPos >= t2) return this.threeDElements[e2].perspectiveElem;\n e2 += 1;\n }\n return null;\n }, HybridRendererBase.prototype.createThreeDContainer = function(t2, e2) {\n var r2, i2, s2 = createTag(\"div\");\n styleDiv(s2);\n var a2 = createTag(\"div\");\n if (styleDiv(a2), \"3d\" === e2) {\n (r2 = s2.style).width = this.globalData.compSize.w + \"px\", r2.height = this.globalData.compSize.h + \"px\";\n var n2 = \"50% 50%\";\n r2.webkitTransformOrigin = n2, r2.mozTransformOrigin = n2, r2.transformOrigin = n2;\n var o2 = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n (i2 = a2.style).transform = o2, i2.webkitTransform = o2;\n }\n s2.appendChild(a2);\n var h2 = { container: a2, perspectiveElem: s2, startPos: t2, endPos: t2, type: e2 };\n return this.threeDElements.push(h2), h2;\n }, HybridRendererBase.prototype.build3dContainers = function() {\n var t2, e2, r2 = this.layers.length, i2 = \"\";\n for (t2 = 0; t2 < r2; t2 += 1) this.layers[t2].ddd && 3 !== this.layers[t2].ty ? (\"3d\" !== i2 && (i2 = \"3d\", e2 = this.createThreeDContainer(t2, \"3d\")), e2.endPos = Math.max(e2.endPos, t2)) : (\"2d\" !== i2 && (i2 = \"2d\", e2 = this.createThreeDContainer(t2, \"2d\")), e2.endPos = Math.max(e2.endPos, t2));\n for (t2 = (r2 = this.threeDElements.length) - 1; t2 >= 0; t2 -= 1) this.resizerElem.appendChild(this.threeDElements[t2].perspectiveElem);\n }, HybridRendererBase.prototype.addTo3dContainer = function(t2, e2) {\n for (var r2 = 0, i2 = this.threeDElements.length; r2 < i2; ) {\n if (e2 <= this.threeDElements[r2].endPos) {\n for (var s2, a2 = this.threeDElements[r2].startPos; a2 < e2; ) this.elements[a2] && this.elements[a2].getBaseElement && (s2 = this.elements[a2].getBaseElement()), a2 += 1;\n s2 ? this.threeDElements[r2].container.insertBefore(t2, s2) : this.threeDElements[r2].container.appendChild(t2);\n break;\n }\n r2 += 1;\n }\n }, HybridRendererBase.prototype.configAnimation = function(t2) {\n var e2 = createTag(\"div\"), r2 = this.animationItem.wrapper, i2 = e2.style;\n i2.width = t2.w + \"px\", i2.height = t2.h + \"px\", this.resizerElem = e2, styleDiv(e2), i2.transformStyle = \"flat\", i2.mozTransformStyle = \"flat\", i2.webkitTransformStyle = \"flat\", this.renderConfig.className && e2.setAttribute(\"class\", this.renderConfig.className), r2.appendChild(e2), i2.overflow = \"hidden\";\n var s2 = createNS(\"svg\");\n s2.setAttribute(\"width\", \"1\"), s2.setAttribute(\"height\", \"1\"), styleDiv(s2), this.resizerElem.appendChild(s2);\n var a2 = createNS(\"defs\");\n s2.appendChild(a2), this.data = t2, this.setupGlobalData(t2, s2), this.globalData.defs = a2, this.layers = t2.layers, this.layerElement = this.resizerElem, this.build3dContainers(), this.updateContainerSize();\n }, HybridRendererBase.prototype.destroy = function() {\n var t2;\n this.animationItem.wrapper && (this.animationItem.wrapper.innerText = \"\"), this.animationItem.container = null, this.globalData.defs = null;\n var e2 = this.layers ? this.layers.length : 0;\n for (t2 = 0; t2 < e2; t2 += 1) this.elements[t2] && this.elements[t2].destroy && this.elements[t2].destroy();\n this.elements.length = 0, this.destroyed = true, this.animationItem = null;\n }, HybridRendererBase.prototype.updateContainerSize = function() {\n var t2, e2, r2, i2, s2 = this.animationItem.wrapper.offsetWidth, a2 = this.animationItem.wrapper.offsetHeight, n2 = s2 / a2;\n this.globalData.compSize.w / this.globalData.compSize.h > n2 ? (t2 = s2 / this.globalData.compSize.w, e2 = s2 / this.globalData.compSize.w, r2 = 0, i2 = (a2 - this.globalData.compSize.h * (s2 / this.globalData.compSize.w)) / 2) : (t2 = a2 / this.globalData.compSize.h, e2 = a2 / this.globalData.compSize.h, r2 = (s2 - this.globalData.compSize.w * (a2 / this.globalData.compSize.h)) / 2, i2 = 0);\n var o2 = this.resizerElem.style;\n o2.webkitTransform = \"matrix3d(\" + t2 + \",0,0,0,0,\" + e2 + \",0,0,0,0,1,0,\" + r2 + \",\" + i2 + \",0,1)\", o2.transform = o2.webkitTransform;\n }, HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame, HybridRendererBase.prototype.hide = function() {\n this.resizerElem.style.display = \"none\";\n }, HybridRendererBase.prototype.show = function() {\n this.resizerElem.style.display = \"block\";\n }, HybridRendererBase.prototype.initItems = function() {\n if (this.buildAllItems(), this.camera) this.camera.setup();\n else {\n var t2, e2 = this.globalData.compSize.w, r2 = this.globalData.compSize.h, i2 = this.threeDElements.length;\n for (t2 = 0; t2 < i2; t2 += 1) {\n var s2 = this.threeDElements[t2].perspectiveElem.style;\n s2.webkitPerspective = Math.sqrt(Math.pow(e2, 2) + Math.pow(r2, 2)) + \"px\", s2.perspective = s2.webkitPerspective;\n }\n }\n }, HybridRendererBase.prototype.searchExtraCompositions = function(t2) {\n var e2, r2 = t2.length, i2 = createTag(\"div\");\n for (e2 = 0; e2 < r2; e2 += 1) if (t2[e2].xt) {\n var s2 = this.createComp(t2[e2], i2, this.globalData.comp, null);\n s2.initExpressions(), this.globalData.projectInterface.registerComposition(s2);\n }\n }, extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement), HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements, HCompElement.prototype.createContainerElements = function() {\n this._createBaseContainerElements(), this.data.hasMask ? (this.svgElement.setAttribute(\"width\", this.data.w), this.svgElement.setAttribute(\"height\", this.data.h), this.transformedElement = this.baseElement) : this.transformedElement = this.layerElement;\n }, HCompElement.prototype.addTo3dContainer = function(t2, e2) {\n for (var r2, i2 = 0; i2 < e2; ) this.elements[i2] && this.elements[i2].getBaseElement && (r2 = this.elements[i2].getBaseElement()), i2 += 1;\n r2 ? this.layerElement.insertBefore(t2, r2) : this.layerElement.appendChild(t2);\n }, HCompElement.prototype.createComp = function(t2) {\n return this.supports3d ? new HCompElement(t2, this.globalData, this) : new SVGCompElement(t2, this.globalData, this);\n }, extendPrototype([HybridRendererBase], HybridRenderer), HybridRenderer.prototype.createComp = function(t2) {\n return this.supports3d ? new HCompElement(t2, this.globalData, this) : new SVGCompElement(t2, this.globalData, this);\n };\n var CompExpressionInterface = function(t2) {\n function e2(e3) {\n for (var r2 = 0, i2 = t2.layers.length; r2 < i2; ) {\n if (t2.layers[r2].nm === e3 || t2.layers[r2].ind === e3) return t2.elements[r2].layerInterface;\n r2 += 1;\n }\n return null;\n }\n return Object.defineProperty(e2, \"_name\", { value: t2.data.nm }), e2.layer = e2, e2.pixelAspect = 1, e2.height = t2.data.h || t2.globalData.compSize.h, e2.width = t2.data.w || t2.globalData.compSize.w, e2.pixelAspect = 1, e2.frameDuration = 1 / t2.globalData.frameRate, e2.displayStartTime = 0, e2.numLayers = t2.layers.length, e2;\n };\n function _typeof$2(t2) {\n return _typeof$2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n }, _typeof$2(t2);\n }\n function seedRandom(t2, e2) {\n var r2 = this, i2 = 256, s2 = e2.pow(i2, 6), a2 = e2.pow(2, 52), n2 = 2 * a2, o2 = 255;\n function h2(t3) {\n var e3, r3 = t3.length, s3 = this, a3 = 0, n3 = s3.i = s3.j = 0, h3 = s3.S = [];\n for (r3 || (t3 = [r3++]); a3 < i2; ) h3[a3] = a3++;\n for (a3 = 0; a3 < i2; a3++) h3[a3] = h3[n3 = o2 & n3 + t3[a3 % r3] + (e3 = h3[a3])], h3[n3] = e3;\n s3.g = function(t4) {\n for (var e4, r4 = 0, a4 = s3.i, n4 = s3.j, h4 = s3.S; t4--; ) e4 = h4[a4 = o2 & a4 + 1], r4 = r4 * i2 + h4[o2 & (h4[a4] = h4[n4 = o2 & n4 + e4]) + (h4[n4] = e4)];\n return s3.i = a4, s3.j = n4, r4;\n };\n }\n function l2(t3, e3) {\n return e3.i = t3.i, e3.j = t3.j, e3.S = t3.S.slice(), e3;\n }\n function p2(t3, e3) {\n var r3, i3 = [], s3 = _typeof$2(t3);\n if (e3 && \"object\" == s3) for (r3 in t3) try {\n i3.push(p2(t3[r3], e3 - 1));\n } catch (t4) {\n }\n return i3.length ? i3 : \"string\" == s3 ? t3 : t3 + \"\\0\";\n }\n function c2(t3, e3) {\n for (var r3, i3 = t3 + \"\", s3 = 0; s3 < i3.length; ) e3[o2 & s3] = o2 & (r3 ^= 19 * e3[o2 & s3]) + i3.charCodeAt(s3++);\n return f2(e3);\n }\n function f2(t3) {\n return String.fromCharCode.apply(0, t3);\n }\n e2.seedrandom = function(o3, u2, d2) {\n var m2 = [], y2 = c2(p2((u2 = true === u2 ? { entropy: true } : u2 || {}).entropy ? [o3, f2(t2)] : null === o3 ? function() {\n try {\n var e3 = new Uint8Array(i2);\n return (r2.crypto || r2.msCrypto).getRandomValues(e3), f2(e3);\n } catch (e4) {\n var s3 = r2.navigator, a3 = s3 && s3.plugins;\n return [+/* @__PURE__ */ new Date(), r2, a3, r2.screen, f2(t2)];\n }\n }() : o3, 3), m2), g2 = new h2(m2), v2 = function() {\n for (var t3 = g2.g(6), e3 = s2, r3 = 0; t3 < a2; ) t3 = (t3 + r3) * i2, e3 *= i2, r3 = g2.g(1);\n for (; t3 >= n2; ) t3 /= 2, e3 /= 2, r3 >>>= 1;\n return (t3 + r3) / e3;\n };\n return v2.int32 = function() {\n return 0 | g2.g(4);\n }, v2.quick = function() {\n return g2.g(4) / 4294967296;\n }, v2.double = v2, c2(f2(g2.S), t2), (u2.pass || d2 || function(t3, r3, i3, s3) {\n return s3 && (s3.S && l2(s3, g2), t3.state = function() {\n return l2(g2, {});\n }), i3 ? (e2.random = t3, r3) : t3;\n })(v2, y2, \"global\" in u2 ? u2.global : this == e2, u2.state);\n }, c2(e2.random(), t2);\n }\n function initialize$2(t2) {\n seedRandom([], t2);\n }\n var propTypes = { SHAPE: \"shape\" };\n function _typeof$1(t2) {\n return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n }, _typeof$1(t2);\n }\n var ExpressionManager = function() {\n var ob = {}, Math = BMMath, window = null, document = null, XMLHttpRequest = null, fetch = null, frames = null, _lottieGlobal = {};\n function resetFrame() {\n _lottieGlobal = {};\n }\n function $bm_isInstanceOfArray(t2) {\n return t2.constructor === Array || t2.constructor === Float32Array;\n }\n function isNumerable(t2, e2) {\n return \"number\" === t2 || e2 instanceof Number || \"boolean\" === t2 || \"string\" === t2;\n }\n function $bm_neg(t2) {\n var e2 = _typeof$1(t2);\n if (\"number\" === e2 || t2 instanceof Number || \"boolean\" === e2) return -t2;\n if ($bm_isInstanceOfArray(t2)) {\n var r2, i2 = t2.length, s2 = [];\n for (r2 = 0; r2 < i2; r2 += 1) s2[r2] = -t2[r2];\n return s2;\n }\n return t2.propType ? t2.v : -t2;\n }\n initialize$2(BMMath);\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, \"easeIn\").get, easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, \"easeOut\").get, easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, \"easeInOut\").get;\n function sum(t2, e2) {\n var r2 = _typeof$1(t2), i2 = _typeof$1(e2);\n if (isNumerable(r2, t2) && isNumerable(i2, e2) || \"string\" === r2 || \"string\" === i2) return t2 + e2;\n if ($bm_isInstanceOfArray(t2) && isNumerable(i2, e2)) return (t2 = t2.slice(0))[0] += e2, t2;\n if (isNumerable(r2, t2) && $bm_isInstanceOfArray(e2)) return (e2 = e2.slice(0))[0] = t2 + e2[0], e2;\n if ($bm_isInstanceOfArray(t2) && $bm_isInstanceOfArray(e2)) {\n for (var s2 = 0, a2 = t2.length, n2 = e2.length, o2 = []; s2 < a2 || s2 < n2; ) (\"number\" == typeof t2[s2] || t2[s2] instanceof Number) && (\"number\" == typeof e2[s2] || e2[s2] instanceof Number) ? o2[s2] = t2[s2] + e2[s2] : o2[s2] = void 0 === e2[s2] ? t2[s2] : t2[s2] || e2[s2], s2 += 1;\n return o2;\n }\n return 0;\n }\n var add = sum;\n function sub(t2, e2) {\n var r2 = _typeof$1(t2), i2 = _typeof$1(e2);\n if (isNumerable(r2, t2) && isNumerable(i2, e2)) return \"string\" === r2 && (t2 = parseInt(t2, 10)), \"string\" === i2 && (e2 = parseInt(e2, 10)), t2 - e2;\n if ($bm_isInstanceOfArray(t2) && isNumerable(i2, e2)) return (t2 = t2.slice(0))[0] -= e2, t2;\n if (isNumerable(r2, t2) && $bm_isInstanceOfArray(e2)) return (e2 = e2.slice(0))[0] = t2 - e2[0], e2;\n if ($bm_isInstanceOfArray(t2) && $bm_isInstanceOfArray(e2)) {\n for (var s2 = 0, a2 = t2.length, n2 = e2.length, o2 = []; s2 < a2 || s2 < n2; ) (\"number\" == typeof t2[s2] || t2[s2] instanceof Number) && (\"number\" == typeof e2[s2] || e2[s2] instanceof Number) ? o2[s2] = t2[s2] - e2[s2] : o2[s2] = void 0 === e2[s2] ? t2[s2] : t2[s2] || e2[s2], s2 += 1;\n return o2;\n }\n return 0;\n }\n function mul(t2, e2) {\n var r2, i2, s2, a2 = _typeof$1(t2), n2 = _typeof$1(e2);\n if (isNumerable(a2, t2) && isNumerable(n2, e2)) return t2 * e2;\n if ($bm_isInstanceOfArray(t2) && isNumerable(n2, e2)) {\n for (s2 = t2.length, r2 = createTypedArray(\"float32\", s2), i2 = 0; i2 < s2; i2 += 1) r2[i2] = t2[i2] * e2;\n return r2;\n }\n if (isNumerable(a2, t2) && $bm_isInstanceOfArray(e2)) {\n for (s2 = e2.length, r2 = createTypedArray(\"float32\", s2), i2 = 0; i2 < s2; i2 += 1) r2[i2] = t2 * e2[i2];\n return r2;\n }\n return 0;\n }\n function div(t2, e2) {\n var r2, i2, s2, a2 = _typeof$1(t2), n2 = _typeof$1(e2);\n if (isNumerable(a2, t2) && isNumerable(n2, e2)) return t2 / e2;\n if ($bm_isInstanceOfArray(t2) && isNumerable(n2, e2)) {\n for (s2 = t2.length, r2 = createTypedArray(\"float32\", s2), i2 = 0; i2 < s2; i2 += 1) r2[i2] = t2[i2] / e2;\n return r2;\n }\n if (isNumerable(a2, t2) && $bm_isInstanceOfArray(e2)) {\n for (s2 = e2.length, r2 = createTypedArray(\"float32\", s2), i2 = 0; i2 < s2; i2 += 1) r2[i2] = t2 / e2[i2];\n return r2;\n }\n return 0;\n }\n function mod(t2, e2) {\n return \"string\" == typeof t2 && (t2 = parseInt(t2, 10)), \"string\" == typeof e2 && (e2 = parseInt(e2, 10)), t2 % e2;\n }\n var $bm_sum = sum, $bm_sub = sub, $bm_mul = mul, $bm_div = div, $bm_mod = mod;\n function clamp(t2, e2, r2) {\n if (e2 > r2) {\n var i2 = r2;\n r2 = e2, e2 = i2;\n }\n return Math.min(Math.max(t2, e2), r2);\n }\n function radiansToDegrees(t2) {\n return t2 / degToRads;\n }\n var radians_to_degrees = radiansToDegrees;\n function degreesToRadians(t2) {\n return t2 * degToRads;\n }\n var degrees_to_radians = radiansToDegrees, helperLengthArray = [0, 0, 0, 0, 0, 0];\n function length(t2, e2) {\n if (\"number\" == typeof t2 || t2 instanceof Number) return e2 = e2 || 0, Math.abs(t2 - e2);\n var r2;\n e2 || (e2 = helperLengthArray);\n var i2 = Math.min(t2.length, e2.length), s2 = 0;\n for (r2 = 0; r2 < i2; r2 += 1) s2 += Math.pow(e2[r2] - t2[r2], 2);\n return Math.sqrt(s2);\n }\n function normalize(t2) {\n return div(t2, length(t2));\n }\n function rgbToHsl(t2) {\n var e2, r2, i2 = t2[0], s2 = t2[1], a2 = t2[2], n2 = Math.max(i2, s2, a2), o2 = Math.min(i2, s2, a2), h2 = (n2 + o2) / 2;\n if (n2 === o2) e2 = 0, r2 = 0;\n else {\n var l2 = n2 - o2;\n switch (r2 = h2 > 0.5 ? l2 / (2 - n2 - o2) : l2 / (n2 + o2), n2) {\n case i2:\n e2 = (s2 - a2) / l2 + (s2 < a2 ? 6 : 0);\n break;\n case s2:\n e2 = (a2 - i2) / l2 + 2;\n break;\n case a2:\n e2 = (i2 - s2) / l2 + 4;\n }\n e2 /= 6;\n }\n return [e2, r2, h2, t2[3]];\n }\n function hue2rgb(t2, e2, r2) {\n return r2 < 0 && (r2 += 1), r2 > 1 && (r2 -= 1), r2 < 1 / 6 ? t2 + 6 * (e2 - t2) * r2 : r2 < 0.5 ? e2 : r2 < 2 / 3 ? t2 + (e2 - t2) * (2 / 3 - r2) * 6 : t2;\n }\n function hslToRgb(t2) {\n var e2, r2, i2, s2 = t2[0], a2 = t2[1], n2 = t2[2];\n if (0 === a2) e2 = n2, i2 = n2, r2 = n2;\n else {\n var o2 = n2 < 0.5 ? n2 * (1 + a2) : n2 + a2 - n2 * a2, h2 = 2 * n2 - o2;\n e2 = hue2rgb(h2, o2, s2 + 1 / 3), r2 = hue2rgb(h2, o2, s2), i2 = hue2rgb(h2, o2, s2 - 1 / 3);\n }\n return [e2, r2, i2, t2[3]];\n }\n function linear(t2, e2, r2, i2, s2) {\n if (void 0 !== i2 && void 0 !== s2 || (i2 = e2, s2 = r2, e2 = 0, r2 = 1), r2 < e2) {\n var a2 = r2;\n r2 = e2, e2 = a2;\n }\n if (t2 <= e2) return i2;\n if (t2 >= r2) return s2;\n var n2, o2 = r2 === e2 ? 0 : (t2 - e2) / (r2 - e2);\n if (!i2.length) return i2 + (s2 - i2) * o2;\n var h2 = i2.length, l2 = createTypedArray(\"float32\", h2);\n for (n2 = 0; n2 < h2; n2 += 1) l2[n2] = i2[n2] + (s2[n2] - i2[n2]) * o2;\n return l2;\n }\n function random(t2, e2) {\n if (void 0 === e2 && (void 0 === t2 ? (t2 = 0, e2 = 1) : (e2 = t2, t2 = void 0)), e2.length) {\n var r2, i2 = e2.length;\n t2 || (t2 = createTypedArray(\"float32\", i2));\n var s2 = createTypedArray(\"float32\", i2), a2 = BMMath.random();\n for (r2 = 0; r2 < i2; r2 += 1) s2[r2] = t2[r2] + a2 * (e2[r2] - t2[r2]);\n return s2;\n }\n return void 0 === t2 && (t2 = 0), t2 + BMMath.random() * (e2 - t2);\n }\n function createPath(t2, e2, r2, i2) {\n var s2, a2 = t2.length, n2 = shapePool.newElement();\n n2.setPathData(!!i2, a2);\n var o2, h2, l2 = [0, 0];\n for (s2 = 0; s2 < a2; s2 += 1) o2 = e2 && e2[s2] ? e2[s2] : l2, h2 = r2 && r2[s2] ? r2[s2] : l2, n2.setTripleAt(t2[s2][0], t2[s2][1], h2[0] + t2[s2][0], h2[1] + t2[s2][1], o2[0] + t2[s2][0], o2[1] + t2[s2][1], s2, true);\n return n2;\n }\n function initiateExpression(elem, data, property) {\n function noOp(t2) {\n return t2;\n }\n if (!elem.globalData.renderConfig.runExpressions) return noOp;\n var val = data.x, needsVelocity = /velocity(?![\\w\\d])/.test(val), _needsRandom = -1 !== val.indexOf(\"random\"), elemType = elem.data.ty, transform, $bm_transform, content, effect, thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime, Object.defineProperty(thisProperty, \"value\", { get: function() {\n return thisProperty.v;\n } }), elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate, elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate, outPoint = elem.data.op / elem.comp.globalData.frameRate, width = elem.data.sw ? elem.data.sw : 0, height = elem.data.sh ? elem.data.sh : 0, name = elem.data.nm, loopIn, loop_in, loopOut, loop_out, smooth, toWorld, fromWorld, fromComp, toComp, fromCompToSurface, position, rotation, anchorPoint, scale, thisLayer, thisComp, mask, valueAtTime, velocityAtTime, scoped_bm_rt, expression_function = eval(\"[function _expression_function(){\" + val + \";scoped_bm_rt=$bm_rt}]\")[0], numKeys = property.kf ? data.k.length : 0, active = !this.data || true !== this.data.hd, wiggle = function(t2, e2) {\n var r2, i2, s2 = this.pv.length ? this.pv.length : 1, a2 = createTypedArray(\"float32\", s2), n2 = Math.floor(5 * time);\n for (r2 = 0, i2 = 0; r2 < n2; ) {\n for (i2 = 0; i2 < s2; i2 += 1) a2[i2] += -e2 + 2 * e2 * BMMath.random();\n r2 += 1;\n }\n var o2 = 5 * time, h2 = o2 - Math.floor(o2), l2 = createTypedArray(\"float32\", s2);\n if (s2 > 1) {\n for (i2 = 0; i2 < s2; i2 += 1) l2[i2] = this.pv[i2] + a2[i2] + (-e2 + 2 * e2 * BMMath.random()) * h2;\n return l2;\n }\n return this.pv + a2[0] + (-e2 + 2 * e2 * BMMath.random()) * h2;\n }.bind(this);\n function loopInDuration(t2, e2) {\n return loopIn(t2, e2, true);\n }\n function loopOutDuration(t2, e2) {\n return loopOut(t2, e2, true);\n }\n thisProperty.loopIn && (loopIn = thisProperty.loopIn.bind(thisProperty), loop_in = loopIn), thisProperty.loopOut && (loopOut = thisProperty.loopOut.bind(thisProperty), loop_out = loopOut), thisProperty.smooth && (smooth = thisProperty.smooth.bind(thisProperty)), this.getValueAtTime && (valueAtTime = this.getValueAtTime.bind(this)), this.getVelocityAtTime && (velocityAtTime = this.getVelocityAtTime.bind(this));\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface), time, velocity, value, text, textIndex, textTotal, selectorValue;\n function lookAt(t2, e2) {\n var r2 = [e2[0] - t2[0], e2[1] - t2[1], e2[2] - t2[2]], i2 = Math.atan2(r2[0], Math.sqrt(r2[1] * r2[1] + r2[2] * r2[2])) / degToRads;\n return [-Math.atan2(r2[1], r2[2]) / degToRads, i2, 0];\n }\n function easeOut(t2, e2, r2, i2, s2) {\n return applyEase(easeOutBez, t2, e2, r2, i2, s2);\n }\n function easeIn(t2, e2, r2, i2, s2) {\n return applyEase(easeInBez, t2, e2, r2, i2, s2);\n }\n function ease(t2, e2, r2, i2, s2) {\n return applyEase(easeInOutBez, t2, e2, r2, i2, s2);\n }\n function applyEase(t2, e2, r2, i2, s2, a2) {\n void 0 === s2 ? (s2 = r2, a2 = i2) : e2 = (e2 - r2) / (i2 - r2), e2 > 1 ? e2 = 1 : e2 < 0 && (e2 = 0);\n var n2 = t2(e2);\n if ($bm_isInstanceOfArray(s2)) {\n var o2, h2 = s2.length, l2 = createTypedArray(\"float32\", h2);\n for (o2 = 0; o2 < h2; o2 += 1) l2[o2] = (a2[o2] - s2[o2]) * n2 + s2[o2];\n return l2;\n }\n return (a2 - s2) * n2 + s2;\n }\n function nearestKey(t2) {\n var e2, r2, i2, s2 = data.k.length;\n if (data.k.length && \"number\" != typeof data.k[0]) if (r2 = -1, (t2 *= elem.comp.globalData.frameRate) < data.k[0].t) r2 = 1, i2 = data.k[0].t;\n else {\n for (e2 = 0; e2 < s2 - 1; e2 += 1) {\n if (t2 === data.k[e2].t) {\n r2 = e2 + 1, i2 = data.k[e2].t;\n break;\n }\n if (t2 > data.k[e2].t && t2 < data.k[e2 + 1].t) {\n t2 - data.k[e2].t > data.k[e2 + 1].t - t2 ? (r2 = e2 + 2, i2 = data.k[e2 + 1].t) : (r2 = e2 + 1, i2 = data.k[e2].t);\n break;\n }\n }\n -1 === r2 && (r2 = e2 + 1, i2 = data.k[e2].t);\n }\n else r2 = 0, i2 = 0;\n var a2 = {};\n return a2.index = r2, a2.time = i2 / elem.comp.globalData.frameRate, a2;\n }\n function key(t2) {\n var e2, r2, i2;\n if (!data.k.length || \"number\" == typeof data.k[0]) throw new Error(\"The property has no keyframe at index \" + t2);\n t2 -= 1, e2 = { time: data.k[t2].t / elem.comp.globalData.frameRate, value: [] };\n var s2 = Object.prototype.hasOwnProperty.call(data.k[t2], \"s\") ? data.k[t2].s : data.k[t2 - 1].e;\n for (i2 = s2.length, r2 = 0; r2 < i2; r2 += 1) e2[r2] = s2[r2], e2.value[r2] = s2[r2];\n return e2;\n }\n function framesToTime(t2, e2) {\n return e2 || (e2 = elem.comp.globalData.frameRate), t2 / e2;\n }\n function timeToFrames(t2, e2) {\n return t2 || 0 === t2 || (t2 = time), e2 || (e2 = elem.comp.globalData.frameRate), t2 * e2;\n }\n function seedRandom(t2) {\n BMMath.seedrandom(randSeed + t2);\n }\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n function substring(t2, e2) {\n return \"string\" == typeof value ? void 0 === e2 ? value.substring(t2) : value.substring(t2, e2) : \"\";\n }\n function substr(t2, e2) {\n return \"string\" == typeof value ? void 0 === e2 ? value.substr(t2) : value.substr(t2, e2) : \"\";\n }\n function posterizeTime(t2) {\n time = 0 === t2 ? 0 : Math.floor(time * t2) / t2, value = valueAtTime(time);\n }\n var index = elem.data.ind, hasParent = !(!elem.hierarchy || !elem.hierarchy.length), parent, randSeed = Math.floor(1e6 * Math.random()), globalData = elem.globalData;\n function executeExpression(t2) {\n return value = t2, this.frameExpressionId === elem.globalData.frameId && \"textSelector\" !== this.propType ? value : (\"textSelector\" === this.propType && (textIndex = this.textIndex, textTotal = this.textTotal, selectorValue = this.selectorValue), thisLayer || (text = elem.layerInterface.text, thisLayer = elem.layerInterface, thisComp = elem.comp.compInterface, toWorld = thisLayer.toWorld.bind(thisLayer), fromWorld = thisLayer.fromWorld.bind(thisLayer), fromComp = thisLayer.fromComp.bind(thisLayer), toComp = thisLayer.toComp.bind(thisLayer), mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null, fromCompToSurface = fromComp), transform || (transform = elem.layerInterface(\"ADBE Transform Group\"), $bm_transform = transform, transform && (anchorPoint = transform.anchorPoint)), 4 !== elemType || content || (content = thisLayer(\"ADBE Root Vectors Group\")), effect || (effect = thisLayer(4)), (hasParent = !(!elem.hierarchy || !elem.hierarchy.length)) && !parent && (parent = elem.hierarchy[0].layerInterface), time = this.comp.renderedFrame / this.comp.globalData.frameRate, _needsRandom && seedRandom(randSeed + time), needsVelocity && (velocity = velocityAtTime(time)), expression_function(), this.frameExpressionId = elem.globalData.frameId, scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt);\n }\n return executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData], executeExpression;\n }\n return ob.initiateExpression = initiateExpression, ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal], ob.resetFrame = resetFrame, ob;\n }(), Expressions = function() {\n var t2 = { initExpressions: function(t3) {\n var e2 = 0, r2 = [];\n t3.renderer.compInterface = CompExpressionInterface(t3.renderer), t3.renderer.globalData.projectInterface.registerComposition(t3.renderer), t3.renderer.globalData.pushExpression = function() {\n e2 += 1;\n }, t3.renderer.globalData.popExpression = function() {\n 0 == (e2 -= 1) && function() {\n var t4, e3 = r2.length;\n for (t4 = 0; t4 < e3; t4 += 1) r2[t4].release();\n r2.length = 0;\n }();\n }, t3.renderer.globalData.registerExpressionProperty = function(t4) {\n -1 === r2.indexOf(t4) && r2.push(t4);\n };\n } };\n return t2.resetFrame = ExpressionManager.resetFrame, t2;\n }(), MaskManagerInterface = function() {\n function t2(t3, e2) {\n this._mask = t3, this._data = e2;\n }\n return Object.defineProperty(t2.prototype, \"maskPath\", { get: function() {\n return this._mask.prop.k && this._mask.prop.getValue(), this._mask.prop;\n } }), Object.defineProperty(t2.prototype, \"maskOpacity\", { get: function() {\n return this._mask.op.k && this._mask.op.getValue(), 100 * this._mask.op.v;\n } }), function(e2) {\n var r2, i2 = createSizedArray(e2.viewData.length), s2 = e2.viewData.length;\n for (r2 = 0; r2 < s2; r2 += 1) i2[r2] = new t2(e2.viewData[r2], e2.masksProperties[r2]);\n return function(t3) {\n for (r2 = 0; r2 < s2; ) {\n if (e2.masksProperties[r2].nm === t3) return i2[r2];\n r2 += 1;\n }\n return null;\n };\n };\n }(), ExpressionPropertyInterface = /* @__PURE__ */ function() {\n var t2 = { pv: 0, v: 0, mult: 1 }, e2 = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\n function r2(t3, e3, r3) {\n Object.defineProperty(t3, \"velocity\", { get: function() {\n return e3.getVelocityAtTime(e3.comp.currentFrame);\n } }), t3.numKeys = e3.keyframes ? e3.keyframes.length : 0, t3.key = function(i3) {\n if (!t3.numKeys) return 0;\n var s2 = \"\";\n s2 = \"s\" in e3.keyframes[i3 - 1] ? e3.keyframes[i3 - 1].s : \"e\" in e3.keyframes[i3 - 2] ? e3.keyframes[i3 - 2].e : e3.keyframes[i3 - 2].s;\n var a2 = \"unidimensional\" === r3 ? new Number(s2) : Object.assign({}, s2);\n return a2.time = e3.keyframes[i3 - 1].t / e3.elem.comp.globalData.frameRate, a2.value = \"unidimensional\" === r3 ? s2[0] : s2, a2;\n }, t3.valueAtTime = e3.getValueAtTime, t3.speedAtTime = e3.getSpeedAtTime, t3.velocityAtTime = e3.getVelocityAtTime, t3.propertyGroup = e3.propertyGroup;\n }\n function i2() {\n return t2;\n }\n return function(s2) {\n return s2 ? \"unidimensional\" === s2.propType ? function(e3) {\n e3 && \"pv\" in e3 || (e3 = t2);\n var i3 = 1 / e3.mult, s3 = e3.pv * i3, a2 = new Number(s3);\n return a2.value = s3, r2(a2, e3, \"unidimensional\"), function() {\n return e3.k && e3.getValue(), s3 = e3.v * i3, a2.value !== s3 && ((a2 = new Number(s3)).value = s3, r2(a2, e3, \"unidimensional\")), a2;\n };\n }(s2) : function(t3) {\n t3 && \"pv\" in t3 || (t3 = e2);\n var i3 = 1 / t3.mult, s3 = t3.data && t3.data.l || t3.pv.length, a2 = createTypedArray(\"float32\", s3), n2 = createTypedArray(\"float32\", s3);\n return a2.value = n2, r2(a2, t3, \"multidimensional\"), function() {\n t3.k && t3.getValue();\n for (var e3 = 0; e3 < s3; e3 += 1) n2[e3] = t3.v[e3] * i3, a2[e3] = n2[e3];\n return a2;\n };\n }(s2) : i2;\n };\n }(), TransformExpressionInterface = function(t2) {\n function e2(t3) {\n switch (t3) {\n case \"scale\":\n case \"Scale\":\n case \"ADBE Scale\":\n case 6:\n return e2.scale;\n case \"rotation\":\n case \"Rotation\":\n case \"ADBE Rotation\":\n case \"ADBE Rotate Z\":\n case 10:\n return e2.rotation;\n case \"ADBE Rotate X\":\n return e2.xRotation;\n case \"ADBE Rotate Y\":\n return e2.yRotation;\n case \"position\":\n case \"Position\":\n case \"ADBE Position\":\n case 2:\n return e2.position;\n case \"ADBE Position_0\":\n return e2.xPosition;\n case \"ADBE Position_1\":\n return e2.yPosition;\n case \"ADBE Position_2\":\n return e2.zPosition;\n case \"anchorPoint\":\n case \"AnchorPoint\":\n case \"Anchor Point\":\n case \"ADBE AnchorPoint\":\n case 1:\n return e2.anchorPoint;\n case \"opacity\":\n case \"Opacity\":\n case 11:\n return e2.opacity;\n default:\n return null;\n }\n }\n var r2, i2, s2, a2;\n return Object.defineProperty(e2, \"rotation\", { get: ExpressionPropertyInterface(t2.r || t2.rz) }), Object.defineProperty(e2, \"zRotation\", { get: ExpressionPropertyInterface(t2.rz || t2.r) }), Object.defineProperty(e2, \"xRotation\", { get: ExpressionPropertyInterface(t2.rx) }), Object.defineProperty(e2, \"yRotation\", { get: ExpressionPropertyInterface(t2.ry) }), Object.defineProperty(e2, \"scale\", { get: ExpressionPropertyInterface(t2.s) }), t2.p ? a2 = ExpressionPropertyInterface(t2.p) : (r2 = ExpressionPropertyInterface(t2.px), i2 = ExpressionPropertyInterface(t2.py), t2.pz && (s2 = ExpressionPropertyInterface(t2.pz))), Object.defineProperty(e2, \"position\", { get: function() {\n return t2.p ? a2() : [r2(), i2(), s2 ? s2() : 0];\n } }), Object.defineProperty(e2, \"xPosition\", { get: ExpressionPropertyInterface(t2.px) }), Object.defineProperty(e2, \"yPosition\", { get: ExpressionPropertyInterface(t2.py) }), Object.defineProperty(e2, \"zPosition\", { get: ExpressionPropertyInterface(t2.pz) }), Object.defineProperty(e2, \"anchorPoint\", { get: ExpressionPropertyInterface(t2.a) }), Object.defineProperty(e2, \"opacity\", { get: ExpressionPropertyInterface(t2.o) }), Object.defineProperty(e2, \"skew\", { get: ExpressionPropertyInterface(t2.sk) }), Object.defineProperty(e2, \"skewAxis\", { get: ExpressionPropertyInterface(t2.sa) }), Object.defineProperty(e2, \"orientation\", { get: ExpressionPropertyInterface(t2.or) }), e2;\n }, LayerExpressionInterface = /* @__PURE__ */ function() {\n function t2(t3) {\n var e3 = new Matrix();\n return void 0 !== t3 ? this._elem.finalTransform.mProp.getValueAtTime(t3).clone(e3) : this._elem.finalTransform.mProp.applyToMatrix(e3), e3;\n }\n function e2(t3, e3) {\n var r3 = this.getMatrix(e3);\n return r3.props[12] = 0, r3.props[13] = 0, r3.props[14] = 0, this.applyPoint(r3, t3);\n }\n function r2(t3, e3) {\n var r3 = this.getMatrix(e3);\n return this.applyPoint(r3, t3);\n }\n function i2(t3, e3) {\n var r3 = this.getMatrix(e3);\n return r3.props[12] = 0, r3.props[13] = 0, r3.props[14] = 0, this.invertPoint(r3, t3);\n }\n function s2(t3, e3) {\n var r3 = this.getMatrix(e3);\n return this.invertPoint(r3, t3);\n }\n function a2(t3, e3) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var r3, i3 = this._elem.hierarchy.length;\n for (r3 = 0; r3 < i3; r3 += 1) this._elem.hierarchy[r3].finalTransform.mProp.applyToMatrix(t3);\n }\n return t3.applyToPointArray(e3[0], e3[1], e3[2] || 0);\n }\n function n2(t3, e3) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var r3, i3 = this._elem.hierarchy.length;\n for (r3 = 0; r3 < i3; r3 += 1) this._elem.hierarchy[r3].finalTransform.mProp.applyToMatrix(t3);\n }\n return t3.inversePoint(e3);\n }\n function o2(t3) {\n var e3 = new Matrix();\n if (e3.reset(), this._elem.finalTransform.mProp.applyToMatrix(e3), this._elem.hierarchy && this._elem.hierarchy.length) {\n var r3, i3 = this._elem.hierarchy.length;\n for (r3 = 0; r3 < i3; r3 += 1) this._elem.hierarchy[r3].finalTransform.mProp.applyToMatrix(e3);\n return e3.inversePoint(t3);\n }\n return e3.inversePoint(t3);\n }\n function h2() {\n return [1, 1, 1, 1];\n }\n return function(l2) {\n var p2;\n function c2(t3) {\n switch (t3) {\n case \"ADBE Root Vectors Group\":\n case \"Contents\":\n case 2:\n return c2.shapeInterface;\n case 1:\n case 6:\n case \"Transform\":\n case \"transform\":\n case \"ADBE Transform Group\":\n return p2;\n case 4:\n case \"ADBE Effect Parade\":\n case \"effects\":\n case \"Effects\":\n return c2.effect;\n case \"ADBE Text Properties\":\n return c2.textInterface;\n default:\n return null;\n }\n }\n c2.getMatrix = t2, c2.invertPoint = n2, c2.applyPoint = a2, c2.toWorld = r2, c2.toWorldVec = e2, c2.fromWorld = s2, c2.fromWorldVec = i2, c2.toComp = r2, c2.fromComp = o2, c2.sampleImage = h2, c2.sourceRectAtTime = l2.sourceRectAtTime.bind(l2), c2._elem = l2;\n var f2 = getDescriptor(p2 = TransformExpressionInterface(l2.finalTransform.mProp), \"anchorPoint\");\n return Object.defineProperties(c2, { hasParent: { get: function() {\n return l2.hierarchy.length;\n } }, parent: { get: function() {\n return l2.hierarchy[0].layerInterface;\n } }, rotation: getDescriptor(p2, \"rotation\"), scale: getDescriptor(p2, \"scale\"), position: getDescriptor(p2, \"position\"), opacity: getDescriptor(p2, \"opacity\"), anchorPoint: f2, anchor_point: f2, transform: { get: function() {\n return p2;\n } }, active: { get: function() {\n return l2.isInRange;\n } } }), c2.startTime = l2.data.st, c2.index = l2.data.ind, c2.source = l2.data.refId, c2.height = 0 === l2.data.ty ? l2.data.h : 100, c2.width = 0 === l2.data.ty ? l2.data.w : 100, c2.inPoint = l2.data.ip / l2.comp.globalData.frameRate, c2.outPoint = l2.data.op / l2.comp.globalData.frameRate, c2._name = l2.data.nm, c2.registerMaskInterface = function(t3) {\n c2.mask = new MaskManagerInterface(t3, l2);\n }, c2.registerEffectsInterface = function(t3) {\n c2.effect = t3;\n }, c2;\n };\n }(), propertyGroupFactory = function(t2, e2) {\n return function(r2) {\n return (r2 = void 0 === r2 ? 1 : r2) <= 0 ? t2 : e2(r2 - 1);\n };\n }, PropertyInterface = function(t2, e2) {\n var r2 = { _name: t2 };\n return function(t3) {\n return (t3 = void 0 === t3 ? 1 : t3) <= 0 ? r2 : e2(t3 - 1);\n };\n }, EffectsExpressionInterface = /* @__PURE__ */ function() {\n var t2 = { createEffectsInterface: function(t3, r3) {\n if (t3.effectsManager) {\n var i2, s2 = [], a2 = t3.data.ef, n2 = t3.effectsManager.effectElements.length;\n for (i2 = 0; i2 < n2; i2 += 1) s2.push(e2(a2[i2], t3.effectsManager.effectElements[i2], r3, t3));\n var o2 = t3.data.ef || [], h2 = function(t4) {\n for (i2 = 0, n2 = o2.length; i2 < n2; ) {\n if (t4 === o2[i2].nm || t4 === o2[i2].mn || t4 === o2[i2].ix) return s2[i2];\n i2 += 1;\n }\n return null;\n };\n return Object.defineProperty(h2, \"numProperties\", { get: function() {\n return o2.length;\n } }), h2;\n }\n return null;\n } };\n function e2(t3, i2, s2, a2) {\n function n2(e3) {\n for (var r3 = t3.ef, i3 = 0, s3 = r3.length; i3 < s3; ) {\n if (e3 === r3[i3].nm || e3 === r3[i3].mn || e3 === r3[i3].ix) return 5 === r3[i3].ty ? l2[i3] : l2[i3]();\n i3 += 1;\n }\n throw new Error();\n }\n var o2, h2 = propertyGroupFactory(n2, s2), l2 = [], p2 = t3.ef.length;\n for (o2 = 0; o2 < p2; o2 += 1) 5 === t3.ef[o2].ty ? l2.push(e2(t3.ef[o2], i2.effectElements[o2], i2.effectElements[o2].propertyGroup, a2)) : l2.push(r2(i2.effectElements[o2], t3.ef[o2].ty, a2, h2));\n return \"ADBE Color Control\" === t3.mn && Object.defineProperty(n2, \"color\", { get: function() {\n return l2[0]();\n } }), Object.defineProperties(n2, { numProperties: { get: function() {\n return t3.np;\n } }, _name: { value: t3.nm }, propertyGroup: { value: h2 } }), n2.enabled = 0 !== t3.en, n2.active = n2.enabled, n2;\n }\n function r2(t3, e3, r3, i2) {\n var s2 = ExpressionPropertyInterface(t3.p);\n return t3.p.setGroupProperty && t3.p.setGroupProperty(PropertyInterface(\"\", i2)), function() {\n return 10 === e3 ? r3.comp.compInterface(t3.p.v) : s2();\n };\n }\n return t2;\n }(), ShapePathInterface = function(t2, e2, r2) {\n var i2 = e2.sh;\n function s2(t3) {\n return \"Shape\" === t3 || \"shape\" === t3 || \"Path\" === t3 || \"path\" === t3 || \"ADBE Vector Shape\" === t3 || 2 === t3 ? s2.path : null;\n }\n var a2 = propertyGroupFactory(s2, r2);\n return i2.setGroupProperty(PropertyInterface(\"Path\", a2)), Object.defineProperties(s2, { path: { get: function() {\n return i2.k && i2.getValue(), i2;\n } }, shape: { get: function() {\n return i2.k && i2.getValue(), i2;\n } }, _name: { value: t2.nm }, ix: { value: t2.ix }, propertyIndex: { value: t2.ix }, mn: { value: t2.mn }, propertyGroup: { value: r2 } }), s2;\n }, ShapeExpressionInterface = /* @__PURE__ */ function() {\n function t2(t3, n3, f2) {\n var u2, d2 = [], m2 = t3 ? t3.length : 0;\n for (u2 = 0; u2 < m2; u2 += 1) \"gr\" === t3[u2].ty ? d2.push(e2(t3[u2], n3[u2], f2)) : \"fl\" === t3[u2].ty ? d2.push(r2(t3[u2], n3[u2], f2)) : \"st\" === t3[u2].ty ? d2.push(s2(t3[u2], n3[u2], f2)) : \"tm\" === t3[u2].ty ? d2.push(a2(t3[u2], n3[u2], f2)) : \"tr\" === t3[u2].ty || (\"el\" === t3[u2].ty ? d2.push(o2(t3[u2], n3[u2], f2)) : \"sr\" === t3[u2].ty ? d2.push(h2(t3[u2], n3[u2], f2)) : \"sh\" === t3[u2].ty ? d2.push(ShapePathInterface(t3[u2], n3[u2], f2)) : \"rc\" === t3[u2].ty ? d2.push(l2(t3[u2], n3[u2], f2)) : \"rd\" === t3[u2].ty ? d2.push(p2(t3[u2], n3[u2], f2)) : \"rp\" === t3[u2].ty ? d2.push(c2(t3[u2], n3[u2], f2)) : \"gf\" === t3[u2].ty ? d2.push(i2(t3[u2], n3[u2], f2)) : d2.push((t3[u2], n3[u2], function() {\n return null;\n })));\n return d2;\n }\n function e2(e3, r3, i3) {\n var s3 = function(t3) {\n switch (t3) {\n case \"ADBE Vectors Group\":\n case \"Contents\":\n case 2:\n return s3.content;\n default:\n return s3.transform;\n }\n };\n s3.propertyGroup = propertyGroupFactory(s3, i3);\n var a3 = function(e4, r4, i4) {\n var s4, a4 = function(t3) {\n for (var e5 = 0, r5 = s4.length; e5 < r5; ) {\n if (s4[e5]._name === t3 || s4[e5].mn === t3 || s4[e5].propertyIndex === t3 || s4[e5].ix === t3 || s4[e5].ind === t3) return s4[e5];\n e5 += 1;\n }\n return \"number\" == typeof t3 ? s4[t3 - 1] : null;\n };\n a4.propertyGroup = propertyGroupFactory(a4, i4), s4 = t2(e4.it, r4.it, a4.propertyGroup), a4.numProperties = s4.length;\n var o4 = n2(e4.it[e4.it.length - 1], r4.it[r4.it.length - 1], a4.propertyGroup);\n return a4.transform = o4, a4.propertyIndex = e4.cix, a4._name = e4.nm, a4;\n }(e3, r3, s3.propertyGroup), o3 = n2(e3.it[e3.it.length - 1], r3.it[r3.it.length - 1], s3.propertyGroup);\n return s3.content = a3, s3.transform = o3, Object.defineProperty(s3, \"_name\", { get: function() {\n return e3.nm;\n } }), s3.numProperties = e3.np, s3.propertyIndex = e3.ix, s3.nm = e3.nm, s3.mn = e3.mn, s3;\n }\n function r2(t3, e3, r3) {\n function i3(t4) {\n return \"Color\" === t4 || \"color\" === t4 ? i3.color : \"Opacity\" === t4 || \"opacity\" === t4 ? i3.opacity : null;\n }\n return Object.defineProperties(i3, { color: { get: ExpressionPropertyInterface(e3.c) }, opacity: { get: ExpressionPropertyInterface(e3.o) }, _name: { value: t3.nm }, mn: { value: t3.mn } }), e3.c.setGroupProperty(PropertyInterface(\"Color\", r3)), e3.o.setGroupProperty(PropertyInterface(\"Opacity\", r3)), i3;\n }\n function i2(t3, e3, r3) {\n function i3(t4) {\n return \"Start Point\" === t4 || \"start point\" === t4 ? i3.startPoint : \"End Point\" === t4 || \"end point\" === t4 ? i3.endPoint : \"Opacity\" === t4 || \"opacity\" === t4 ? i3.opacity : null;\n }\n return Object.defineProperties(i3, { startPoint: { get: ExpressionPropertyInterface(e3.s) }, endPoint: { get: ExpressionPropertyInterface(e3.e) }, opacity: { get: ExpressionPropertyInterface(e3.o) }, type: { get: function() {\n return \"a\";\n } }, _name: { value: t3.nm }, mn: { value: t3.mn } }), e3.s.setGroupProperty(PropertyInterface(\"Start Point\", r3)), e3.e.setGroupProperty(PropertyInterface(\"End Point\", r3)), e3.o.setGroupProperty(PropertyInterface(\"Opacity\", r3)), i3;\n }\n function s2(t3, e3, r3) {\n var i3, s3 = propertyGroupFactory(l3, r3), a3 = propertyGroupFactory(h3, s3);\n function n3(r4) {\n Object.defineProperty(h3, t3.d[r4].nm, { get: ExpressionPropertyInterface(e3.d.dataProps[r4].p) });\n }\n var o3 = t3.d ? t3.d.length : 0, h3 = {};\n for (i3 = 0; i3 < o3; i3 += 1) n3(i3), e3.d.dataProps[i3].p.setGroupProperty(a3);\n function l3(t4) {\n return \"Color\" === t4 || \"color\" === t4 ? l3.color : \"Opacity\" === t4 || \"opacity\" === t4 ? l3.opacity : \"Stroke Width\" === t4 || \"stroke width\" === t4 ? l3.strokeWidth : null;\n }\n return Object.defineProperties(l3, { color: { get: ExpressionPropertyInterface(e3.c) }, opacity: { get: ExpressionPropertyInterface(e3.o) }, strokeWidth: { get: ExpressionPropertyInterface(e3.w) }, dash: { get: function() {\n return h3;\n } }, _name: { value: t3.nm }, mn: { value: t3.mn } }), e3.c.setGroupProperty(PropertyInterface(\"Color\", s3)), e3.o.setGroupProperty(PropertyInterface(\"Opacity\", s3)), e3.w.setGroupProperty(PropertyInterface(\"Stroke Width\", s3)), l3;\n }\n function a2(t3, e3, r3) {\n function i3(e4) {\n return e4 === t3.e.ix || \"End\" === e4 || \"end\" === e4 ? i3.end : e4 === t3.s.ix ? i3.start : e4 === t3.o.ix ? i3.offset : null;\n }\n var s3 = propertyGroupFactory(i3, r3);\n return i3.propertyIndex = t3.ix, e3.s.setGroupProperty(PropertyInterface(\"Start\", s3)), e3.e.setGroupProperty(PropertyInterface(\"End\", s3)), e3.o.setGroupProperty(PropertyInterface(\"Offset\", s3)), i3.propertyIndex = t3.ix, i3.propertyGroup = r3, Object.defineProperties(i3, { start: { get: ExpressionPropertyInterface(e3.s) }, end: { get: ExpressionPropertyInterface(e3.e) }, offset: { get: ExpressionPropertyInterface(e3.o) }, _name: { value: t3.nm } }), i3.mn = t3.mn, i3;\n }\n function n2(t3, e3, r3) {\n function i3(e4) {\n return t3.a.ix === e4 || \"Anchor Point\" === e4 ? i3.anchorPoint : t3.o.ix === e4 || \"Opacity\" === e4 ? i3.opacity : t3.p.ix === e4 || \"Position\" === e4 ? i3.position : t3.r.ix === e4 || \"Rotation\" === e4 || \"ADBE Vector Rotation\" === e4 ? i3.rotation : t3.s.ix === e4 || \"Scale\" === e4 ? i3.scale : t3.sk && t3.sk.ix === e4 || \"Skew\" === e4 ? i3.skew : t3.sa && t3.sa.ix === e4 || \"Skew Axis\" === e4 ? i3.skewAxis : null;\n }\n var s3 = propertyGroupFactory(i3, r3);\n return e3.transform.mProps.o.setGroupProperty(PropertyInterface(\"Opacity\", s3)), e3.transform.mProps.p.setGroupProperty(PropertyInterface(\"Position\", s3)), e3.transform.mProps.a.setGroupProperty(PropertyInterface(\"Anchor Point\", s3)), e3.transform.mProps.s.setGroupProperty(PropertyInterface(\"Scale\", s3)), e3.transform.mProps.r.setGroupProperty(PropertyInterface(\"Rotation\", s3)), e3.transform.mProps.sk && (e3.transform.mProps.sk.setGroupProperty(PropertyInterface(\"Skew\", s3)), e3.transform.mProps.sa.setGroupProperty(PropertyInterface(\"Skew Angle\", s3))), e3.transform.op.setGroupProperty(PropertyInterface(\"Opacity\", s3)), Object.defineProperties(i3, { opacity: { get: ExpressionPropertyInterface(e3.transform.mProps.o) }, position: { get: ExpressionPropertyInterface(e3.transform.mProps.p) }, anchorPoint: { get: ExpressionPropertyInterface(e3.transform.mProps.a) }, scale: { get: ExpressionPropertyInterface(e3.transform.mProps.s) }, rotation: { get: ExpressionPropertyInterface(e3.transform.mProps.r) }, skew: { get: ExpressionPropertyInterface(e3.transform.mProps.sk) }, skewAxis: { get: ExpressionPropertyInterface(e3.transform.mProps.sa) }, _name: { value: t3.nm } }), i3.ty = \"tr\", i3.mn = t3.mn, i3.propertyGroup = r3, i3;\n }\n function o2(t3, e3, r3) {\n function i3(e4) {\n return t3.p.ix === e4 ? i3.position : t3.s.ix === e4 ? i3.size : null;\n }\n var s3 = propertyGroupFactory(i3, r3);\n i3.propertyIndex = t3.ix;\n var a3 = \"tm\" === e3.sh.ty ? e3.sh.prop : e3.sh;\n return a3.s.setGroupProperty(PropertyInterface(\"Size\", s3)), a3.p.setGroupProperty(PropertyInterface(\"Position\", s3)), Object.defineProperties(i3, { size: { get: ExpressionPropertyInterface(a3.s) }, position: { get: ExpressionPropertyInterface(a3.p) }, _name: { value: t3.nm } }), i3.mn = t3.mn, i3;\n }\n function h2(t3, e3, r3) {\n function i3(e4) {\n return t3.p.ix === e4 ? i3.position : t3.r.ix === e4 ? i3.rotation : t3.pt.ix === e4 ? i3.points : t3.or.ix === e4 || \"ADBE Vector Star Outer Radius\" === e4 ? i3.outerRadius : t3.os.ix === e4 ? i3.outerRoundness : !t3.ir || t3.ir.ix !== e4 && \"ADBE Vector Star Inner Radius\" !== e4 ? t3.is && t3.is.ix === e4 ? i3.innerRoundness : null : i3.innerRadius;\n }\n var s3 = propertyGroupFactory(i3, r3), a3 = \"tm\" === e3.sh.ty ? e3.sh.prop : e3.sh;\n return i3.propertyIndex = t3.ix, a3.or.setGroupProperty(PropertyInterface(\"Outer Radius\", s3)), a3.os.setGroupProperty(PropertyInterface(\"Outer Roundness\", s3)), a3.pt.setGroupProperty(PropertyInterface(\"Points\", s3)), a3.p.setGroupProperty(PropertyInterface(\"Position\", s3)), a3.r.setGroupProperty(PropertyInterface(\"Rotation\", s3)), t3.ir && (a3.ir.setGroupProperty(PropertyInterface(\"Inner Radius\", s3)), a3.is.setGroupProperty(PropertyInterface(\"Inner Roundness\", s3))), Object.defineProperties(i3, { position: { get: ExpressionPropertyInterface(a3.p) }, rotation: { get: ExpressionPropertyInterface(a3.r) }, points: { get: ExpressionPropertyInterface(a3.pt) }, outerRadius: { get: ExpressionPropertyInterface(a3.or) }, outerRoundness: { get: ExpressionPropertyInterface(a3.os) }, innerRadius: { get: ExpressionPropertyInterface(a3.ir) }, innerRoundness: { get: ExpressionPropertyInterface(a3.is) }, _name: { value: t3.nm } }), i3.mn = t3.mn, i3;\n }\n function l2(t3, e3, r3) {\n function i3(e4) {\n return t3.p.ix === e4 ? i3.position : t3.r.ix === e4 ? i3.roundness : t3.s.ix === e4 || \"Size\" === e4 || \"ADBE Vector Rect Size\" === e4 ? i3.size : null;\n }\n var s3 = propertyGroupFactory(i3, r3), a3 = \"tm\" === e3.sh.ty ? e3.sh.prop : e3.sh;\n return i3.propertyIndex = t3.ix, a3.p.setGroupProperty(PropertyInterface(\"Position\", s3)), a3.s.setGroupProperty(PropertyInterface(\"Size\", s3)), a3.r.setGroupProperty(PropertyInterface(\"Rotation\", s3)), Object.defineProperties(i3, { position: { get: ExpressionPropertyInterface(a3.p) }, roundness: { get: ExpressionPropertyInterface(a3.r) }, size: { get: ExpressionPropertyInterface(a3.s) }, _name: { value: t3.nm } }), i3.mn = t3.mn, i3;\n }\n function p2(t3, e3, r3) {\n function i3(e4) {\n return t3.r.ix === e4 || \"Round Corners 1\" === e4 ? i3.radius : null;\n }\n var s3 = propertyGroupFactory(i3, r3), a3 = e3;\n return i3.propertyIndex = t3.ix, a3.rd.setGroupProperty(PropertyInterface(\"Radius\", s3)), Object.defineProperties(i3, { radius: { get: ExpressionPropertyInterface(a3.rd) }, _name: { value: t3.nm } }), i3.mn = t3.mn, i3;\n }\n function c2(t3, e3, r3) {\n function i3(e4) {\n return t3.c.ix === e4 || \"Copies\" === e4 ? i3.copies : t3.o.ix === e4 || \"Offset\" === e4 ? i3.offset : null;\n }\n var s3 = propertyGroupFactory(i3, r3), a3 = e3;\n return i3.propertyIndex = t3.ix, a3.c.setGroupProperty(PropertyInterface(\"Copies\", s3)), a3.o.setGroupProperty(PropertyInterface(\"Offset\", s3)), Object.defineProperties(i3, { copies: { get: ExpressionPropertyInterface(a3.c) }, offset: { get: ExpressionPropertyInterface(a3.o) }, _name: { value: t3.nm } }), i3.mn = t3.mn, i3;\n }\n return function(e3, r3, i3) {\n var s3;\n function a3(t3) {\n if (\"number\" == typeof t3) return 0 === (t3 = void 0 === t3 ? 1 : t3) ? i3 : s3[t3 - 1];\n for (var e4 = 0, r4 = s3.length; e4 < r4; ) {\n if (s3[e4]._name === t3) return s3[e4];\n e4 += 1;\n }\n return null;\n }\n return a3.propertyGroup = propertyGroupFactory(a3, function() {\n return i3;\n }), s3 = t2(e3, r3, a3.propertyGroup), a3.numProperties = s3.length, a3._name = \"Contents\", a3;\n };\n }(), TextExpressionInterface = function(t2) {\n var e2;\n function r2(t3) {\n return \"ADBE Text Document\" === t3 ? r2.sourceText : null;\n }\n return Object.defineProperty(r2, \"sourceText\", { get: function() {\n t2.textProperty.getValue();\n var r3 = t2.textProperty.currentData.t;\n return e2 && r3 === e2.value || ((e2 = new String(r3)).value = r3 || new String(r3), Object.defineProperty(e2, \"style\", { get: function() {\n return { fillColor: t2.textProperty.currentData.fc };\n } })), e2;\n } }), r2;\n };\n function _typeof(t2) {\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(t3) {\n return typeof t3;\n } : function(t3) {\n return t3 && \"function\" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? \"symbol\" : typeof t3;\n }, _typeof(t2);\n }\n var FootageInterface = (dataInterfaceFactory = function(t2) {\n function e2(t3) {\n return \"Outline\" === t3 ? e2.outlineInterface() : null;\n }\n return e2._name = \"Outline\", e2.outlineInterface = function(t3) {\n var e3 = \"\", r2 = t3.getFootageData();\n function i2(t4) {\n if (r2[t4]) return e3 = t4, \"object\" === _typeof(r2 = r2[t4]) ? i2 : r2;\n var s2 = t4.indexOf(e3);\n if (-1 !== s2) {\n var a2 = parseInt(t4.substr(s2 + e3.length), 10);\n return \"object\" === _typeof(r2 = r2[a2]) ? i2 : r2;\n }\n return \"\";\n }\n return function() {\n return e3 = \"\", r2 = t3.getFootageData(), i2;\n };\n }(t2), e2;\n }, function(t2) {\n function e2(t3) {\n return \"Data\" === t3 ? e2.dataInterface : null;\n }\n return e2._name = \"Data\", e2.dataInterface = dataInterfaceFactory(t2), e2;\n }), dataInterfaceFactory, interfaces = { layer: LayerExpressionInterface, effects: EffectsExpressionInterface, comp: CompExpressionInterface, shape: ShapeExpressionInterface, text: TextExpressionInterface, footage: FootageInterface };\n function getInterface(t2) {\n return interfaces[t2] || null;\n }\n var expressionHelpers = { searchExpressions: function(t2, e2, r2) {\n e2.x && (r2.k = true, r2.x = true, r2.initiateExpression = ExpressionManager.initiateExpression, r2.effectsSequence.push(r2.initiateExpression(t2, e2, r2).bind(r2)));\n }, getSpeedAtTime: function(t2) {\n var e2 = this.getValueAtTime(t2), r2 = this.getValueAtTime(t2 + -0.01), i2 = 0;\n if (e2.length) {\n var s2;\n for (s2 = 0; s2 < e2.length; s2 += 1) i2 += Math.pow(r2[s2] - e2[s2], 2);\n i2 = 100 * Math.sqrt(i2);\n } else i2 = 0;\n return i2;\n }, getVelocityAtTime: function(t2) {\n if (void 0 !== this.vel) return this.vel;\n var e2, r2, i2 = -1e-3, s2 = this.getValueAtTime(t2), a2 = this.getValueAtTime(t2 + i2);\n if (s2.length) for (e2 = createTypedArray(\"float32\", s2.length), r2 = 0; r2 < s2.length; r2 += 1) e2[r2] = (a2[r2] - s2[r2]) / i2;\n else e2 = (a2 - s2) / i2;\n return e2;\n }, getValueAtTime: function(t2) {\n return t2 *= this.elem.globalData.frameRate, (t2 -= this.offsetTime) !== this._cachingAtTime.lastFrame && (this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < t2 ? this._cachingAtTime.lastIndex : 0, this._cachingAtTime.value = this.interpolateValue(t2, this._cachingAtTime), this._cachingAtTime.lastFrame = t2), this._cachingAtTime.value;\n }, getStaticValueAtTime: function() {\n return this.pv;\n }, setGroupProperty: function(t2) {\n this.propertyGroup = t2;\n } };\n function addPropertyDecorator() {\n function t2(t3, e3, r3) {\n if (!this.k || !this.keyframes) return this.pv;\n t3 = t3 ? t3.toLowerCase() : \"\";\n var i3, s3, a3, n3, o3, h3 = this.comp.renderedFrame, l3 = this.keyframes, p3 = l3[l3.length - 1].t;\n if (h3 <= p3) return this.pv;\n if (r3 ? s3 = p3 - (i3 = e3 ? Math.abs(p3 - this.elem.comp.globalData.frameRate * e3) : Math.max(0, p3 - this.elem.data.ip)) : ((!e3 || e3 > l3.length - 1) && (e3 = l3.length - 1), i3 = p3 - (s3 = l3[l3.length - 1 - e3].t)), \"pingpong\" === t3) {\n if (Math.floor((h3 - s3) / i3) % 2 != 0) return this.getValueAtTime((i3 - (h3 - s3) % i3 + s3) / this.comp.globalData.frameRate, 0);\n } else {\n if (\"offset\" === t3) {\n var c2 = this.getValueAtTime(s3 / this.comp.globalData.frameRate, 0), f2 = this.getValueAtTime(p3 / this.comp.globalData.frameRate, 0), u2 = this.getValueAtTime(((h3 - s3) % i3 + s3) / this.comp.globalData.frameRate, 0), d2 = Math.floor((h3 - s3) / i3);\n if (this.pv.length) {\n for (n3 = (o3 = new Array(c2.length)).length, a3 = 0; a3 < n3; a3 += 1) o3[a3] = (f2[a3] - c2[a3]) * d2 + u2[a3];\n return o3;\n }\n return (f2 - c2) * d2 + u2;\n }\n if (\"continue\" === t3) {\n var m2 = this.getValueAtTime(p3 / this.comp.globalData.frameRate, 0), y2 = this.getValueAtTime((p3 - 1e-3) / this.comp.globalData.frameRate, 0);\n if (this.pv.length) {\n for (n3 = (o3 = new Array(m2.length)).length, a3 = 0; a3 < n3; a3 += 1) o3[a3] = m2[a3] + (m2[a3] - y2[a3]) * ((h3 - p3) / this.comp.globalData.frameRate) / 5e-4;\n return o3;\n }\n return m2 + (h3 - p3) / 1e-3 * (m2 - y2);\n }\n }\n return this.getValueAtTime(((h3 - s3) % i3 + s3) / this.comp.globalData.frameRate, 0);\n }\n function e2(t3, e3, r3) {\n if (!this.k) return this.pv;\n t3 = t3 ? t3.toLowerCase() : \"\";\n var i3, s3, a3, n3, o3, h3 = this.comp.renderedFrame, l3 = this.keyframes, p3 = l3[0].t;\n if (h3 >= p3) return this.pv;\n if (r3 ? s3 = p3 + (i3 = e3 ? Math.abs(this.elem.comp.globalData.frameRate * e3) : Math.max(0, this.elem.data.op - p3)) : ((!e3 || e3 > l3.length - 1) && (e3 = l3.length - 1), i3 = (s3 = l3[e3].t) - p3), \"pingpong\" === t3) {\n if (Math.floor((p3 - h3) / i3) % 2 == 0) return this.getValueAtTime(((p3 - h3) % i3 + p3) / this.comp.globalData.frameRate, 0);\n } else {\n if (\"offset\" === t3) {\n var c2 = this.getValueAtTime(p3 / this.comp.globalData.frameRate, 0), f2 = this.getValueAtTime(s3 / this.comp.globalData.frameRate, 0), u2 = this.getValueAtTime((i3 - (p3 - h3) % i3 + p3) / this.comp.globalData.frameRate, 0), d2 = Math.floor((p3 - h3) / i3) + 1;\n if (this.pv.length) {\n for (n3 = (o3 = new Array(c2.length)).length, a3 = 0; a3 < n3; a3 += 1) o3[a3] = u2[a3] - (f2[a3] - c2[a3]) * d2;\n return o3;\n }\n return u2 - (f2 - c2) * d2;\n }\n if (\"continue\" === t3) {\n var m2 = this.getValueAtTime(p3 / this.comp.globalData.frameRate, 0), y2 = this.getValueAtTime((p3 + 1e-3) / this.comp.globalData.frameRate, 0);\n if (this.pv.length) {\n for (n3 = (o3 = new Array(m2.length)).length, a3 = 0; a3 < n3; a3 += 1) o3[a3] = m2[a3] + (m2[a3] - y2[a3]) * (p3 - h3) / 1e-3;\n return o3;\n }\n return m2 + (m2 - y2) * (p3 - h3) / 1e-3;\n }\n }\n return this.getValueAtTime((i3 - ((p3 - h3) % i3 + p3)) / this.comp.globalData.frameRate, 0);\n }\n function r2(t3, e3) {\n if (!this.k) return this.pv;\n if (t3 = 0.5 * (t3 || 0.4), (e3 = Math.floor(e3 || 5)) <= 1) return this.pv;\n var r3, i3, s3 = this.comp.renderedFrame / this.comp.globalData.frameRate, a3 = s3 - t3, n3 = e3 > 1 ? (s3 + t3 - a3) / (e3 - 1) : 1, o3 = 0, h3 = 0;\n for (r3 = this.pv.length ? createTypedArray(\"float32\", this.pv.length) : 0; o3 < e3; ) {\n if (i3 = this.getValueAtTime(a3 + o3 * n3), this.pv.length) for (h3 = 0; h3 < this.pv.length; h3 += 1) r3[h3] += i3[h3];\n else r3 += i3;\n o3 += 1;\n }\n if (this.pv.length) for (h3 = 0; h3 < this.pv.length; h3 += 1) r3[h3] /= e3;\n else r3 /= e3;\n return r3;\n }\n function i2(t3) {\n this._transformCachingAtTime || (this._transformCachingAtTime = { v: new Matrix() });\n var e3 = this._transformCachingAtTime.v;\n if (e3.cloneFromProps(this.pre.props), this.appliedTransformations < 1) {\n var r3 = this.a.getValueAtTime(t3);\n e3.translate(-r3[0] * this.a.mult, -r3[1] * this.a.mult, r3[2] * this.a.mult);\n }\n if (this.appliedTransformations < 2) {\n var i3 = this.s.getValueAtTime(t3);\n e3.scale(i3[0] * this.s.mult, i3[1] * this.s.mult, i3[2] * this.s.mult);\n }\n if (this.sk && this.appliedTransformations < 3) {\n var s3 = this.sk.getValueAtTime(t3), a3 = this.sa.getValueAtTime(t3);\n e3.skewFromAxis(-s3 * this.sk.mult, a3 * this.sa.mult);\n }\n if (this.r && this.appliedTransformations < 4) {\n var n3 = this.r.getValueAtTime(t3);\n e3.rotate(-n3 * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var o3 = this.rz.getValueAtTime(t3), h3 = this.ry.getValueAtTime(t3), l3 = this.rx.getValueAtTime(t3), p3 = this.or.getValueAtTime(t3);\n e3.rotateZ(-o3 * this.rz.mult).rotateY(h3 * this.ry.mult).rotateX(l3 * this.rx.mult).rotateZ(-p3[2] * this.or.mult).rotateY(p3[1] * this.or.mult).rotateX(p3[0] * this.or.mult);\n }\n if (this.data.p && this.data.p.s) {\n var c2 = this.px.getValueAtTime(t3), f2 = this.py.getValueAtTime(t3);\n if (this.data.p.z) {\n var u2 = this.pz.getValueAtTime(t3);\n e3.translate(c2 * this.px.mult, f2 * this.py.mult, -u2 * this.pz.mult);\n } else e3.translate(c2 * this.px.mult, f2 * this.py.mult, 0);\n } else {\n var d2 = this.p.getValueAtTime(t3);\n e3.translate(d2[0] * this.p.mult, d2[1] * this.p.mult, -d2[2] * this.p.mult);\n }\n return e3;\n }\n function s2() {\n return this.v.clone(new Matrix());\n }\n var a2 = TransformPropertyFactory.getTransformProperty;\n TransformPropertyFactory.getTransformProperty = function(t3, e3, r3) {\n var n3 = a2(t3, e3, r3);\n return n3.dynamicProperties.length ? n3.getValueAtTime = i2.bind(n3) : n3.getValueAtTime = s2.bind(n3), n3.setGroupProperty = expressionHelpers.setGroupProperty, n3;\n };\n var n2 = PropertyFactory.getProp;\n PropertyFactory.getProp = function(i3, s3, a3, o3, h3) {\n var l3 = n2(i3, s3, a3, o3, h3);\n l3.kf ? l3.getValueAtTime = expressionHelpers.getValueAtTime.bind(l3) : l3.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(l3), l3.setGroupProperty = expressionHelpers.setGroupProperty, l3.loopOut = t2, l3.loopIn = e2, l3.smooth = r2, l3.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(l3), l3.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(l3), l3.numKeys = 1 === s3.a ? s3.k.length : 0, l3.propertyIndex = s3.ix;\n var p3 = 0;\n return 0 !== a3 && (p3 = createTypedArray(\"float32\", 1 === s3.a ? s3.k[0].s.length : s3.k.length)), l3._cachingAtTime = { lastFrame: initialDefaultFrame, lastIndex: 0, value: p3 }, expressionHelpers.searchExpressions(i3, s3, l3), l3.k && h3.addDynamicProperty(l3), l3;\n };\n var o2 = ShapePropertyFactory.getConstructorFunction(), h2 = ShapePropertyFactory.getKeyframedConstructorFunction();\n function l2() {\n }\n l2.prototype = { vertices: function(t3, e3) {\n this.k && this.getValue();\n var r3, i3 = this.v;\n void 0 !== e3 && (i3 = this.getValueAtTime(e3, 0));\n var s3 = i3._length, a3 = i3[t3], n3 = i3.v, o3 = createSizedArray(s3);\n for (r3 = 0; r3 < s3; r3 += 1) o3[r3] = \"i\" === t3 || \"o\" === t3 ? [a3[r3][0] - n3[r3][0], a3[r3][1] - n3[r3][1]] : [a3[r3][0], a3[r3][1]];\n return o3;\n }, points: function(t3) {\n return this.vertices(\"v\", t3);\n }, inTangents: function(t3) {\n return this.vertices(\"i\", t3);\n }, outTangents: function(t3) {\n return this.vertices(\"o\", t3);\n }, isClosed: function() {\n return this.v.c;\n }, pointOnPath: function(t3, e3) {\n var r3 = this.v;\n void 0 !== e3 && (r3 = this.getValueAtTime(e3, 0)), this._segmentsLength || (this._segmentsLength = bez.getSegmentsLength(r3));\n for (var i3, s3 = this._segmentsLength, a3 = s3.lengths, n3 = s3.totalLength * t3, o3 = 0, h3 = a3.length, l3 = 0; o3 < h3; ) {\n if (l3 + a3[o3].addedLength > n3) {\n var p3 = o3, c2 = r3.c && o3 === h3 - 1 ? 0 : o3 + 1, f2 = (n3 - l3) / a3[o3].addedLength;\n i3 = bez.getPointInSegment(r3.v[p3], r3.v[c2], r3.o[p3], r3.i[c2], f2, a3[o3]);\n break;\n }\n l3 += a3[o3].addedLength, o3 += 1;\n }\n return i3 || (i3 = r3.c ? [r3.v[0][0], r3.v[0][1]] : [r3.v[r3._length - 1][0], r3.v[r3._length - 1][1]]), i3;\n }, vectorOnPath: function(t3, e3, r3) {\n 1 == t3 ? t3 = this.v.c : 0 == t3 && (t3 = 0.999);\n var i3 = this.pointOnPath(t3, e3), s3 = this.pointOnPath(t3 + 1e-3, e3), a3 = s3[0] - i3[0], n3 = s3[1] - i3[1], o3 = Math.sqrt(Math.pow(a3, 2) + Math.pow(n3, 2));\n return 0 === o3 ? [0, 0] : \"tangent\" === r3 ? [a3 / o3, n3 / o3] : [-n3 / o3, a3 / o3];\n }, tangentOnPath: function(t3, e3) {\n return this.vectorOnPath(t3, e3, \"tangent\");\n }, normalOnPath: function(t3, e3) {\n return this.vectorOnPath(t3, e3, \"normal\");\n }, setGroupProperty: expressionHelpers.setGroupProperty, getValueAtTime: expressionHelpers.getStaticValueAtTime }, extendPrototype([l2], o2), extendPrototype([l2], h2), h2.prototype.getValueAtTime = function(t3) {\n return this._cachingAtTime || (this._cachingAtTime = { shapeValue: shapePool.clone(this.pv), lastIndex: 0, lastTime: initialDefaultFrame }), t3 *= this.elem.globalData.frameRate, (t3 -= this.offsetTime) !== this._cachingAtTime.lastTime && (this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < t3 ? this._caching.lastIndex : 0, this._cachingAtTime.lastTime = t3, this.interpolateShape(t3, this._cachingAtTime.shapeValue, this._cachingAtTime)), this._cachingAtTime.shapeValue;\n }, h2.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var p2 = ShapePropertyFactory.getShapeProp;\n ShapePropertyFactory.getShapeProp = function(t3, e3, r3, i3, s3) {\n var a3 = p2(t3, e3, r3, i3, s3);\n return a3.propertyIndex = e3.ix, a3.lock = false, 3 === r3 ? expressionHelpers.searchExpressions(t3, e3.pt, a3) : 4 === r3 && expressionHelpers.searchExpressions(t3, e3.ks, a3), a3.k && t3.addDynamicProperty(a3), a3;\n };\n }\n function initialize$1() {\n addPropertyDecorator();\n }\n function addDecorator() {\n TextProperty.prototype.getExpressionValue = function(t2, e2) {\n var r2 = this.calculateExpression(e2);\n if (t2.t !== r2) {\n var i2 = {};\n return this.copyData(i2, t2), i2.t = r2.toString(), i2.__complete = false, i2;\n }\n return t2;\n }, TextProperty.prototype.searchProperty = function() {\n var t2 = this.searchKeyframes(), e2 = this.searchExpressions();\n return this.kf = t2 || e2, this.kf;\n }, TextProperty.prototype.searchExpressions = function() {\n return this.data.d.x ? (this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this), this.addEffect(this.getExpressionValue.bind(this)), true) : null;\n };\n }\n function initialize() {\n addDecorator();\n }\n function SVGComposableEffect() {\n }\n SVGComposableEffect.prototype = { createMergeNode: function(t2, e2) {\n var r2, i2, s2 = createNS(\"feMerge\");\n for (s2.setAttribute(\"result\", t2), i2 = 0; i2 < e2.length; i2 += 1) (r2 = createNS(\"feMergeNode\")).setAttribute(\"in\", e2[i2]), s2.appendChild(r2), s2.appendChild(r2);\n return s2;\n } };\n var linearFilterValue = \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0\";\n function SVGTintFilter(t2, e2, r2, i2, s2) {\n this.filterManager = e2;\n var a2 = createNS(\"feColorMatrix\");\n a2.setAttribute(\"type\", \"matrix\"), a2.setAttribute(\"color-interpolation-filters\", \"linearRGB\"), a2.setAttribute(\"values\", linearFilterValue + \" 1 0\"), this.linearFilter = a2, a2.setAttribute(\"result\", i2 + \"_tint_1\"), t2.appendChild(a2), (a2 = createNS(\"feColorMatrix\")).setAttribute(\"type\", \"matrix\"), a2.setAttribute(\"color-interpolation-filters\", \"sRGB\"), a2.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"), a2.setAttribute(\"result\", i2 + \"_tint_2\"), t2.appendChild(a2), this.matrixFilter = a2;\n var n2 = this.createMergeNode(i2, [s2, i2 + \"_tint_1\", i2 + \"_tint_2\"]);\n t2.appendChild(n2);\n }\n function SVGFillFilter(t2, e2, r2, i2) {\n this.filterManager = e2;\n var s2 = createNS(\"feColorMatrix\");\n s2.setAttribute(\"type\", \"matrix\"), s2.setAttribute(\"color-interpolation-filters\", \"sRGB\"), s2.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"), s2.setAttribute(\"result\", i2), t2.appendChild(s2), this.matrixFilter = s2;\n }\n function SVGStrokeEffect(t2, e2, r2) {\n this.initialized = false, this.filterManager = e2, this.elem = r2, this.paths = [];\n }\n function SVGTritoneFilter(t2, e2, r2, i2) {\n this.filterManager = e2;\n var s2 = createNS(\"feColorMatrix\");\n s2.setAttribute(\"type\", \"matrix\"), s2.setAttribute(\"color-interpolation-filters\", \"linearRGB\"), s2.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\"), t2.appendChild(s2);\n var a2 = createNS(\"feComponentTransfer\");\n a2.setAttribute(\"color-interpolation-filters\", \"sRGB\"), a2.setAttribute(\"result\", i2), this.matrixFilter = a2;\n var n2 = createNS(\"feFuncR\");\n n2.setAttribute(\"type\", \"table\"), a2.appendChild(n2), this.feFuncR = n2;\n var o2 = createNS(\"feFuncG\");\n o2.setAttribute(\"type\", \"table\"), a2.appendChild(o2), this.feFuncG = o2;\n var h2 = createNS(\"feFuncB\");\n h2.setAttribute(\"type\", \"table\"), a2.appendChild(h2), this.feFuncB = h2, t2.appendChild(a2);\n }\n function SVGProLevelsFilter(t2, e2, r2, i2) {\n this.filterManager = e2;\n var s2 = this.filterManager.effectElements, a2 = createNS(\"feComponentTransfer\");\n (s2[10].p.k || 0 !== s2[10].p.v || s2[11].p.k || 1 !== s2[11].p.v || s2[12].p.k || 1 !== s2[12].p.v || s2[13].p.k || 0 !== s2[13].p.v || s2[14].p.k || 1 !== s2[14].p.v) && (this.feFuncR = this.createFeFunc(\"feFuncR\", a2)), (s2[17].p.k || 0 !== s2[17].p.v || s2[18].p.k || 1 !== s2[18].p.v || s2[19].p.k || 1 !== s2[19].p.v || s2[20].p.k || 0 !== s2[20].p.v || s2[21].p.k || 1 !== s2[21].p.v) && (this.feFuncG = this.createFeFunc(\"feFuncG\", a2)), (s2[24].p.k || 0 !== s2[24].p.v || s2[25].p.k || 1 !== s2[25].p.v || s2[26].p.k || 1 !== s2[26].p.v || s2[27].p.k || 0 !== s2[27].p.v || s2[28].p.k || 1 !== s2[28].p.v) && (this.feFuncB = this.createFeFunc(\"feFuncB\", a2)), (s2[31].p.k || 0 !== s2[31].p.v || s2[32].p.k || 1 !== s2[32].p.v || s2[33].p.k || 1 !== s2[33].p.v || s2[34].p.k || 0 !== s2[34].p.v || s2[35].p.k || 1 !== s2[35].p.v) && (this.feFuncA = this.createFeFunc(\"feFuncA\", a2)), (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) && (a2.setAttribute(\"color-interpolation-filters\", \"sRGB\"), t2.appendChild(a2)), (s2[3].p.k || 0 !== s2[3].p.v || s2[4].p.k || 1 !== s2[4].p.v || s2[5].p.k || 1 !== s2[5].p.v || s2[6].p.k || 0 !== s2[6].p.v || s2[7].p.k || 1 !== s2[7].p.v) && ((a2 = createNS(\"feComponentTransfer\")).setAttribute(\"color-interpolation-filters\", \"sRGB\"), a2.setAttribute(\"result\", i2), t2.appendChild(a2), this.feFuncRComposed = this.createFeFunc(\"feFuncR\", a2), this.feFuncGComposed = this.createFeFunc(\"feFuncG\", a2), this.feFuncBComposed = this.createFeFunc(\"feFuncB\", a2));\n }\n function SVGDropShadowEffect(t2, e2, r2, i2, s2) {\n var a2 = e2.container.globalData.renderConfig.filterSize, n2 = e2.data.fs || a2;\n t2.setAttribute(\"x\", n2.x || a2.x), t2.setAttribute(\"y\", n2.y || a2.y), t2.setAttribute(\"width\", n2.width || a2.width), t2.setAttribute(\"height\", n2.height || a2.height), this.filterManager = e2;\n var o2 = createNS(\"feGaussianBlur\");\n o2.setAttribute(\"in\", \"SourceAlpha\"), o2.setAttribute(\"result\", i2 + \"_drop_shadow_1\"), o2.setAttribute(\"stdDeviation\", \"0\"), this.feGaussianBlur = o2, t2.appendChild(o2);\n var h2 = createNS(\"feOffset\");\n h2.setAttribute(\"dx\", \"25\"), h2.setAttribute(\"dy\", \"0\"), h2.setAttribute(\"in\", i2 + \"_drop_shadow_1\"), h2.setAttribute(\"result\", i2 + \"_drop_shadow_2\"), this.feOffset = h2, t2.appendChild(h2);\n var l2 = createNS(\"feFlood\");\n l2.setAttribute(\"flood-color\", \"#00ff00\"), l2.setAttribute(\"flood-opacity\", \"1\"), l2.setAttribute(\"result\", i2 + \"_drop_shadow_3\"), this.feFlood = l2, t2.appendChild(l2);\n var p2 = createNS(\"feComposite\");\n p2.setAttribute(\"in\", i2 + \"_drop_shadow_3\"), p2.setAttribute(\"in2\", i2 + \"_drop_shadow_2\"), p2.setAttribute(\"operator\", \"in\"), p2.setAttribute(\"result\", i2 + \"_drop_shadow_4\"), t2.appendChild(p2);\n var c2 = this.createMergeNode(i2, [i2 + \"_drop_shadow_4\", s2]);\n t2.appendChild(c2);\n }\n extendPrototype([SVGComposableEffect], SVGTintFilter), SVGTintFilter.prototype.renderFrame = function(t2) {\n if (t2 || this.filterManager._mdf) {\n var e2 = this.filterManager.effectElements[0].p.v, r2 = this.filterManager.effectElements[1].p.v, i2 = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute(\"values\", linearFilterValue + \" \" + i2 + \" 0\"), this.matrixFilter.setAttribute(\"values\", r2[0] - e2[0] + \" 0 0 0 \" + e2[0] + \" \" + (r2[1] - e2[1]) + \" 0 0 0 \" + e2[1] + \" \" + (r2[2] - e2[2]) + \" 0 0 0 \" + e2[2] + \" 0 0 0 1 0\");\n }\n }, SVGFillFilter.prototype.renderFrame = function(t2) {\n if (t2 || this.filterManager._mdf) {\n var e2 = this.filterManager.effectElements[2].p.v, r2 = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute(\"values\", \"0 0 0 0 \" + e2[0] + \" 0 0 0 0 \" + e2[1] + \" 0 0 0 0 \" + e2[2] + \" 0 0 0 \" + r2 + \" 0\");\n }\n }, SVGStrokeEffect.prototype.initialize = function() {\n var t2, e2, r2, i2, s2 = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n for (1 === this.filterManager.effectElements[1].p.v ? (i2 = this.elem.maskManager.masksProperties.length, r2 = 0) : i2 = 1 + (r2 = this.filterManager.effectElements[0].p.v - 1), (e2 = createNS(\"g\")).setAttribute(\"fill\", \"none\"), e2.setAttribute(\"stroke-linecap\", \"round\"), e2.setAttribute(\"stroke-dashoffset\", 1); r2 < i2; r2 += 1) t2 = createNS(\"path\"), e2.appendChild(t2), this.paths.push({ p: t2, m: r2 });\n if (3 === this.filterManager.effectElements[10].p.v) {\n var a2 = createNS(\"mask\"), n2 = createElementID();\n a2.setAttribute(\"id\", n2), a2.setAttribute(\"mask-type\", \"alpha\"), a2.appendChild(e2), this.elem.globalData.defs.appendChild(a2);\n var o2 = createNS(\"g\");\n for (o2.setAttribute(\"mask\", \"url(\" + getLocationHref() + \"#\" + n2 + \")\"); s2[0]; ) o2.appendChild(s2[0]);\n this.elem.layerElement.appendChild(o2), this.masker = a2, e2.setAttribute(\"stroke\", \"#fff\");\n } else if (1 === this.filterManager.effectElements[10].p.v || 2 === this.filterManager.effectElements[10].p.v) {\n if (2 === this.filterManager.effectElements[10].p.v) for (s2 = this.elem.layerElement.children || this.elem.layerElement.childNodes; s2.length; ) this.elem.layerElement.removeChild(s2[0]);\n this.elem.layerElement.appendChild(e2), this.elem.layerElement.removeAttribute(\"mask\"), e2.setAttribute(\"stroke\", \"#fff\");\n }\n this.initialized = true, this.pathMasker = e2;\n }, SVGStrokeEffect.prototype.renderFrame = function(t2) {\n var e2;\n this.initialized || this.initialize();\n var r2, i2, s2 = this.paths.length;\n for (e2 = 0; e2 < s2; e2 += 1) if (-1 !== this.paths[e2].m && (r2 = this.elem.maskManager.viewData[this.paths[e2].m], i2 = this.paths[e2].p, (t2 || this.filterManager._mdf || r2.prop._mdf) && i2.setAttribute(\"d\", r2.lastPath), t2 || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || r2.prop._mdf)) {\n var a2;\n if (0 !== this.filterManager.effectElements[7].p.v || 100 !== this.filterManager.effectElements[8].p.v) {\n var n2 = 0.01 * Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v), o2 = 0.01 * Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v), h2 = i2.getTotalLength();\n a2 = \"0 0 0 \" + h2 * n2 + \" \";\n var l2, p2 = h2 * (o2 - n2), c2 = 1 + 2 * this.filterManager.effectElements[4].p.v * this.filterManager.effectElements[9].p.v * 0.01, f2 = Math.floor(p2 / c2);\n for (l2 = 0; l2 < f2; l2 += 1) a2 += \"1 \" + 2 * this.filterManager.effectElements[4].p.v * this.filterManager.effectElements[9].p.v * 0.01 + \" \";\n a2 += \"0 \" + 10 * h2 + \" 0 0\";\n } else a2 = \"1 \" + 2 * this.filterManager.effectElements[4].p.v * this.filterManager.effectElements[9].p.v * 0.01;\n i2.setAttribute(\"stroke-dasharray\", a2);\n }\n if ((t2 || this.filterManager.effectElements[4].p._mdf) && this.pathMasker.setAttribute(\"stroke-width\", 2 * this.filterManager.effectElements[4].p.v), (t2 || this.filterManager.effectElements[6].p._mdf) && this.pathMasker.setAttribute(\"opacity\", this.filterManager.effectElements[6].p.v), (1 === this.filterManager.effectElements[10].p.v || 2 === this.filterManager.effectElements[10].p.v) && (t2 || this.filterManager.effectElements[3].p._mdf)) {\n var u2 = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute(\"stroke\", \"rgb(\" + bmFloor(255 * u2[0]) + \",\" + bmFloor(255 * u2[1]) + \",\" + bmFloor(255 * u2[2]) + \")\");\n }\n }, SVGTritoneFilter.prototype.renderFrame = function(t2) {\n if (t2 || this.filterManager._mdf) {\n var e2 = this.filterManager.effectElements[0].p.v, r2 = this.filterManager.effectElements[1].p.v, i2 = this.filterManager.effectElements[2].p.v, s2 = i2[0] + \" \" + r2[0] + \" \" + e2[0], a2 = i2[1] + \" \" + r2[1] + \" \" + e2[1], n2 = i2[2] + \" \" + r2[2] + \" \" + e2[2];\n this.feFuncR.setAttribute(\"tableValues\", s2), this.feFuncG.setAttribute(\"tableValues\", a2), this.feFuncB.setAttribute(\"tableValues\", n2);\n }\n }, SVGProLevelsFilter.prototype.createFeFunc = function(t2, e2) {\n var r2 = createNS(t2);\n return r2.setAttribute(\"type\", \"table\"), e2.appendChild(r2), r2;\n }, SVGProLevelsFilter.prototype.getTableValue = function(t2, e2, r2, i2, s2) {\n for (var a2, n2, o2 = 0, h2 = Math.min(t2, e2), l2 = Math.max(t2, e2), p2 = Array.call(null, { length: 256 }), c2 = 0, f2 = s2 - i2, u2 = e2 - t2; o2 <= 256; ) n2 = (a2 = o2 / 256) <= h2 ? u2 < 0 ? s2 : i2 : a2 >= l2 ? u2 < 0 ? i2 : s2 : i2 + f2 * Math.pow((a2 - t2) / u2, 1 / r2), p2[c2] = n2, c2 += 1, o2 += 256 / 255;\n return p2.join(\" \");\n }, SVGProLevelsFilter.prototype.renderFrame = function(t2) {\n if (t2 || this.filterManager._mdf) {\n var e2, r2 = this.filterManager.effectElements;\n this.feFuncRComposed && (t2 || r2[3].p._mdf || r2[4].p._mdf || r2[5].p._mdf || r2[6].p._mdf || r2[7].p._mdf) && (e2 = this.getTableValue(r2[3].p.v, r2[4].p.v, r2[5].p.v, r2[6].p.v, r2[7].p.v), this.feFuncRComposed.setAttribute(\"tableValues\", e2), this.feFuncGComposed.setAttribute(\"tableValues\", e2), this.feFuncBComposed.setAttribute(\"tableValues\", e2)), this.feFuncR && (t2 || r2[10].p._mdf || r2[11].p._mdf || r2[12].p._mdf || r2[13].p._mdf || r2[14].p._mdf) && (e2 = this.getTableValue(r2[10].p.v, r2[11].p.v, r2[12].p.v, r2[13].p.v, r2[14].p.v), this.feFuncR.setAttribute(\"tableValues\", e2)), this.feFuncG && (t2 || r2[17].p._mdf || r2[18].p._mdf || r2[19].p._mdf || r2[20].p._mdf || r2[21].p._mdf) && (e2 = this.getTableValue(r2[17].p.v, r2[18].p.v, r2[19].p.v, r2[20].p.v, r2[21].p.v), this.feFuncG.setAttribute(\"tableValues\", e2)), this.feFuncB && (t2 || r2[24].p._mdf || r2[25].p._mdf || r2[26].p._mdf || r2[27].p._mdf || r2[28].p._mdf) && (e2 = this.getTableValue(r2[24].p.v, r2[25].p.v, r2[26].p.v, r2[27].p.v, r2[28].p.v), this.feFuncB.setAttribute(\"tableValues\", e2)), this.feFuncA && (t2 || r2[31].p._mdf || r2[32].p._mdf || r2[33].p._mdf || r2[34].p._mdf || r2[35].p._mdf) && (e2 = this.getTableValue(r2[31].p.v, r2[32].p.v, r2[33].p.v, r2[34].p.v, r2[35].p.v), this.feFuncA.setAttribute(\"tableValues\", e2));\n }\n }, extendPrototype([SVGComposableEffect], SVGDropShadowEffect), SVGDropShadowEffect.prototype.renderFrame = function(t2) {\n if (t2 || this.filterManager._mdf) {\n if ((t2 || this.filterManager.effectElements[4].p._mdf) && this.feGaussianBlur.setAttribute(\"stdDeviation\", this.filterManager.effectElements[4].p.v / 4), t2 || this.filterManager.effectElements[0].p._mdf) {\n var e2 = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute(\"flood-color\", rgbToHex(Math.round(255 * e2[0]), Math.round(255 * e2[1]), Math.round(255 * e2[2])));\n }\n if ((t2 || this.filterManager.effectElements[1].p._mdf) && this.feFlood.setAttribute(\"flood-opacity\", this.filterManager.effectElements[1].p.v / 255), t2 || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var r2 = this.filterManager.effectElements[3].p.v, i2 = (this.filterManager.effectElements[2].p.v - 90) * degToRads, s2 = r2 * Math.cos(i2), a2 = r2 * Math.sin(i2);\n this.feOffset.setAttribute(\"dx\", s2), this.feOffset.setAttribute(\"dy\", a2);\n }\n }\n };\n var _svgMatteSymbols = [];\n function SVGMatte3Effect(t2, e2, r2) {\n this.initialized = false, this.filterManager = e2, this.filterElem = t2, this.elem = r2, r2.matteElement = createNS(\"g\"), r2.matteElement.appendChild(r2.layerElement), r2.matteElement.appendChild(r2.transformedElement), r2.baseElement = r2.matteElement;\n }\n function SVGGaussianBlurEffect(t2, e2, r2, i2) {\n t2.setAttribute(\"x\", \"-100%\"), t2.setAttribute(\"y\", \"-100%\"), t2.setAttribute(\"width\", \"300%\"), t2.setAttribute(\"height\", \"300%\"), this.filterManager = e2;\n var s2 = createNS(\"feGaussianBlur\");\n s2.setAttribute(\"result\", i2), t2.appendChild(s2), this.feGaussianBlur = s2;\n }\n function TransformEffect() {\n }\n function SVGTransformEffect(t2, e2) {\n this.init(e2);\n }\n function CVTransformEffect(t2) {\n this.init(t2);\n }\n return SVGMatte3Effect.prototype.findSymbol = function(t2) {\n for (var e2 = 0, r2 = _svgMatteSymbols.length; e2 < r2; ) {\n if (_svgMatteSymbols[e2] === t2) return _svgMatteSymbols[e2];\n e2 += 1;\n }\n return null;\n }, SVGMatte3Effect.prototype.replaceInParent = function(t2, e2) {\n var r2 = t2.layerElement.parentNode;\n if (r2) {\n for (var i2, s2 = r2.children, a2 = 0, n2 = s2.length; a2 < n2 && s2[a2] !== t2.layerElement; ) a2 += 1;\n a2 <= n2 - 2 && (i2 = s2[a2 + 1]);\n var o2 = createNS(\"use\");\n o2.setAttribute(\"href\", \"#\" + e2), i2 ? r2.insertBefore(o2, i2) : r2.appendChild(o2);\n }\n }, SVGMatte3Effect.prototype.setElementAsMask = function(t2, e2) {\n if (!this.findSymbol(e2)) {\n var r2 = createElementID(), i2 = createNS(\"mask\");\n i2.setAttribute(\"id\", e2.layerId), i2.setAttribute(\"mask-type\", \"alpha\"), _svgMatteSymbols.push(e2);\n var s2 = t2.globalData.defs;\n s2.appendChild(i2);\n var a2 = createNS(\"symbol\");\n a2.setAttribute(\"id\", r2), this.replaceInParent(e2, r2), a2.appendChild(e2.layerElement), s2.appendChild(a2);\n var n2 = createNS(\"use\");\n n2.setAttribute(\"href\", \"#\" + r2), i2.appendChild(n2), e2.data.hd = false, e2.show();\n }\n t2.setMatte(e2.layerId);\n }, SVGMatte3Effect.prototype.initialize = function() {\n for (var t2 = this.filterManager.effectElements[0].p.v, e2 = this.elem.comp.elements, r2 = 0, i2 = e2.length; r2 < i2; ) e2[r2] && e2[r2].data.ind === t2 && this.setElementAsMask(this.elem, e2[r2]), r2 += 1;\n this.initialized = true;\n }, SVGMatte3Effect.prototype.renderFrame = function() {\n this.initialized || this.initialize();\n }, SVGGaussianBlurEffect.prototype.renderFrame = function(t2) {\n if (t2 || this.filterManager._mdf) {\n var e2 = 0.3 * this.filterManager.effectElements[0].p.v, r2 = this.filterManager.effectElements[1].p.v, i2 = 3 == r2 ? 0 : e2, s2 = 2 == r2 ? 0 : e2;\n this.feGaussianBlur.setAttribute(\"stdDeviation\", i2 + \" \" + s2);\n var a2 = 1 == this.filterManager.effectElements[2].p.v ? \"wrap\" : \"duplicate\";\n this.feGaussianBlur.setAttribute(\"edgeMode\", a2);\n }\n }, TransformEffect.prototype.init = function(t2) {\n this.effectsManager = t2, this.type = effectTypes.TRANSFORM_EFFECT, this.matrix = new Matrix(), this.opacity = -1, this._mdf = false, this._opMdf = false;\n }, TransformEffect.prototype.renderFrame = function(t2) {\n if (this._opMdf = false, this._mdf = false, t2 || this.effectsManager._mdf) {\n var e2 = this.effectsManager.effectElements, r2 = e2[0].p.v, i2 = e2[1].p.v, s2 = 1 === e2[2].p.v, a2 = e2[3].p.v, n2 = s2 ? a2 : e2[4].p.v, o2 = e2[5].p.v, h2 = e2[6].p.v, l2 = e2[7].p.v;\n this.matrix.reset(), this.matrix.translate(-r2[0], -r2[1], r2[2]), this.matrix.scale(0.01 * n2, 0.01 * a2, 1), this.matrix.rotate(-l2 * degToRads), this.matrix.skewFromAxis(-o2 * degToRads, (h2 + 90) * degToRads), this.matrix.translate(i2[0], i2[1], 0), this._mdf = true, this.opacity !== e2[8].p.v && (this.opacity = e2[8].p.v, this._opMdf = true);\n }\n }, extendPrototype([TransformEffect], SVGTransformEffect), extendPrototype([TransformEffect], CVTransformEffect), registerRenderer(\"canvas\", CanvasRenderer), registerRenderer(\"html\", HybridRenderer), registerRenderer(\"svg\", SVGRenderer), ShapeModifiers.registerModifier(\"tm\", TrimModifier), ShapeModifiers.registerModifier(\"pb\", PuckerAndBloatModifier), ShapeModifiers.registerModifier(\"rp\", RepeaterModifier), ShapeModifiers.registerModifier(\"rd\", RoundCornersModifier), ShapeModifiers.registerModifier(\"zz\", ZigZagModifier), ShapeModifiers.registerModifier(\"op\", OffsetPathModifier), setExpressionsPlugin(Expressions), setExpressionInterfaces(getInterface), initialize$1(), initialize(), registerEffect$1(20, SVGTintFilter, true), registerEffect$1(21, SVGFillFilter, true), registerEffect$1(22, SVGStrokeEffect, false), registerEffect$1(23, SVGTritoneFilter, true), registerEffect$1(24, SVGProLevelsFilter, true), registerEffect$1(25, SVGDropShadowEffect, true), registerEffect$1(28, SVGMatte3Effect, false), registerEffect$1(29, SVGGaussianBlurEffect, true), registerEffect$1(35, SVGTransformEffect, false), registerEffect(35, CVTransformEffect), lottie;\n }, module.exports = factory());\n})(lottie$1, lottie$1.exports);\nvar lottie2 = lottie$1.exports;\nvar _templateObject$1;\nvar styles = r$3(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral([\"\\n * {\\n box-sizing: border-box;\\n }\\n\\n :host {\\n --lottie-player-toolbar-height: 35px;\\n --lottie-player-toolbar-background-color: transparent;\\n --lottie-player-toolbar-icon-color: #999;\\n --lottie-player-toolbar-icon-hover-color: #222;\\n --lottie-player-toolbar-icon-active-color: #555;\\n --lottie-player-seeker-track-color: #ccc;\\n --lottie-player-seeker-thumb-color: rgba(0, 107, 120, 0.8);\\n --lottie-player-seeker-display: block;\\n\\n display: block;\\n width: 100%;\\n height: 100%;\\n }\\n\\n .main {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n width: 100%;\\n }\\n\\n .animation {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n }\\n .animation.controls {\\n height: calc(100% - 35px);\\n }\\n\\n .toolbar {\\n display: flex;\\n align-items: center;\\n justify-items: center;\\n background-color: var(--lottie-player-toolbar-background-color);\\n margin: 0 5px;\\n height: 35px;\\n }\\n\\n .toolbar button {\\n cursor: pointer;\\n fill: var(--lottie-player-toolbar-icon-color);\\n display: flex;\\n background: none;\\n border: 0;\\n padding: 0;\\n outline: none;\\n height: 100%;\\n }\\n\\n .toolbar button:hover {\\n fill: var(--lottie-player-toolbar-icon-hover-color);\\n }\\n\\n .toolbar button.active {\\n fill: var(--lottie-player-toolbar-icon-active-color);\\n }\\n\\n .toolbar button.active:hover {\\n fill: var(--lottie-player-toolbar-icon-hover-color);\\n }\\n\\n .toolbar button:focus {\\n outline: 1px dotted var(--lottie-player-toolbar-icon-active-color);\\n }\\n\\n .toolbar button svg {\\n }\\n\\n .toolbar button.disabled svg {\\n display: none;\\n }\\n\\n .seeker {\\n -webkit-appearance: none;\\n width: 95%;\\n outline: none;\\n background-color: var(--lottie-player-toolbar-background-color);\\n display: var(--lottie-player-seeker-display);\\n }\\n\\n .seeker::-webkit-slider-runnable-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n background: var(--lottie-player-seeker-track-color);\\n border-radius: 3px;\\n }\\n .seeker::-webkit-slider-thumb {\\n height: 15px;\\n width: 15px;\\n border-radius: 50%;\\n background: var(--lottie-player-seeker-thumb-color);\\n cursor: pointer;\\n -webkit-appearance: none;\\n margin-top: -5px;\\n }\\n .seeker:focus::-webkit-slider-runnable-track {\\n background: #999;\\n }\\n .seeker::-moz-range-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n background: var(--lottie-player-seeker-track-color);\\n border-radius: 3px;\\n }\\n .seeker::-moz-range-thumb {\\n height: 15px;\\n width: 15px;\\n border-radius: 50%;\\n background: var(--lottie-player-seeker-thumb-color);\\n cursor: pointer;\\n }\\n .seeker::-ms-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n background: transparent;\\n border-color: transparent;\\n color: transparent;\\n }\\n .seeker::-ms-fill-lower {\\n background: var(--lottie-player-seeker-track-color);\\n border-radius: 3px;\\n }\\n .seeker::-ms-fill-upper {\\n background: var(--lottie-player-seeker-track-color);\\n border-radius: 3px;\\n }\\n .seeker::-ms-thumb {\\n border: 0;\\n height: 15px;\\n width: 15px;\\n border-radius: 50%;\\n background: var(--lottie-player-seeker-thumb-color);\\n cursor: pointer;\\n }\\n .seeker:focus::-ms-fill-lower {\\n background: var(--lottie-player-seeker-track-color);\\n }\\n .seeker:focus::-ms-fill-upper {\\n background: var(--lottie-player-seeker-track-color);\\n }\\n\\n .error {\\n display: flex;\\n justify-content: center;\\n height: 100%;\\n align-items: center;\\n }\\n\"])));\nvar LOTTIE_PLAYER_VERSION = \"2.0.4\";\nvar LOTTIE_WEB_VERSION = \"^5.12.2\";\nvar _templateObject;\nvar _templateObject2;\nvar _templateObject3;\nvar _templateObject4;\nvar _templateObject5;\nvar PlayerState;\nvar PlayMode;\nvar PlayerEvents;\nfunction parseSrc(t2) {\n if (\"object\" == typeof t2) return t2;\n try {\n return JSON.parse(t2);\n } catch (e2) {\n return new URL(t2, window.location.href).toString();\n }\n}\nfunction isLottie(t2) {\n return [\"v\", \"ip\", \"op\", \"layers\", \"fr\", \"w\", \"h\"].every((e2) => Object.prototype.hasOwnProperty.call(t2, e2));\n}\nfunction fromURL(t2) {\n return _fromURL.apply(this, arguments);\n}\nfunction _fromURL() {\n return (_fromURL = _asyncToGenerator(function* (t2) {\n if (\"string\" != typeof t2) throw new Error(\"The url value must be a string\");\n var e2;\n try {\n var r2 = new URL(t2), i2 = yield fetch(r2.toString());\n e2 = yield i2.json();\n } catch (t3) {\n throw new Error(\"An error occurred while trying to load the Lottie file from URL\");\n }\n return e2;\n })).apply(this, arguments);\n}\n!function(t2) {\n t2.Destroyed = \"destroyed\", t2.Error = \"error\", t2.Frozen = \"frozen\", t2.Loading = \"loading\", t2.Paused = \"paused\", t2.Playing = \"playing\", t2.Stopped = \"stopped\";\n}(PlayerState || (PlayerState = {})), function(t2) {\n t2.Bounce = \"bounce\", t2.Normal = \"normal\";\n}(PlayMode || (PlayMode = {})), function(t2) {\n t2.Complete = \"complete\", t2.Destroyed = \"destroyed\", t2.Error = \"error\", t2.Frame = \"frame\", t2.Freeze = \"freeze\", t2.Load = \"load\", t2.Loop = \"loop\", t2.Pause = \"pause\", t2.Play = \"play\", t2.Ready = \"ready\", t2.Rendered = \"rendered\", t2.Stop = \"stop\";\n}(PlayerEvents || (PlayerEvents = {}));\nvar LottiePlayer = class extends s {\n constructor() {\n super(...arguments), this.autoplay = false, this.background = \"transparent\", this.controls = false, this.currentState = PlayerState.Loading, this.description = \"Lottie animation\", this.direction = 1, this.disableCheck = false, this.disableShadowDOM = false, this.hover = false, this.intermission = 1, this.loop = false, this.mode = PlayMode.Normal, this.preserveAspectRatio = \"xMidYMid meet\", this.renderer = \"svg\", this.speed = 1, this._io = void 0, this._counter = 1, this._onVisibilityChange = () => {\n true === document.hidden && this.currentState === PlayerState.Playing ? this.freeze() : this.currentState === PlayerState.Frozen && this.play();\n };\n }\n load(t2) {\n var e2 = this;\n return _asyncToGenerator(function* () {\n var r2 = { container: e2.container, loop: false, autoplay: false, renderer: e2.renderer, rendererSettings: Object.assign({ preserveAspectRatio: e2.preserveAspectRatio, clearCanvas: false, progressiveLoad: true, hideOnTransparent: true }, e2.viewBoxSize && { viewBoxSize: e2.viewBoxSize }) };\n try {\n var i2 = parseSrc(t2), s2 = {}, a2 = \"string\" == typeof i2 ? \"path\" : \"animationData\";\n e2._lottie && e2._lottie.destroy(), e2.webworkers && lottie$1.exports.useWebWorker(true), e2._lottie = lottie$1.exports.loadAnimation(Object.assign(Object.assign({}, r2), { [a2]: i2 })), e2._attachEventListeners(), e2.disableCheck || (\"path\" === a2 ? (s2 = yield fromURL(i2), a2 = \"animationData\") : s2 = i2, isLottie(s2) || (e2.currentState = PlayerState.Error, e2.dispatchEvent(new CustomEvent(PlayerEvents.Error))));\n } catch (t3) {\n e2.currentState = PlayerState.Error, e2.dispatchEvent(new CustomEvent(PlayerEvents.Error));\n }\n })();\n }\n getLottie() {\n return this._lottie;\n }\n getVersions() {\n return { lottieWebVersion: LOTTIE_WEB_VERSION, lottiePlayerVersion: LOTTIE_PLAYER_VERSION };\n }\n play() {\n this._lottie && (this._lottie.play(), this.currentState = PlayerState.Playing, this.dispatchEvent(new CustomEvent(PlayerEvents.Play)));\n }\n pause() {\n this._lottie && (this._lottie.pause(), this.currentState = PlayerState.Paused, this.dispatchEvent(new CustomEvent(PlayerEvents.Pause)));\n }\n stop() {\n this._lottie && (this._counter = 1, this._lottie.stop(), this.currentState = PlayerState.Stopped, this.dispatchEvent(new CustomEvent(PlayerEvents.Stop)));\n }\n destroy() {\n this._lottie && (this._lottie.destroy(), this._lottie = null, this.currentState = PlayerState.Destroyed, this.dispatchEvent(new CustomEvent(PlayerEvents.Destroyed)), this.remove());\n }\n seek(t2) {\n if (this._lottie) {\n var e2 = /^(\\d+)(%?)$/.exec(t2.toString());\n if (e2) {\n var r2 = \"%\" === e2[2] ? this._lottie.totalFrames * Number(e2[1]) / 100 : Number(e2[1]);\n this.seeker = r2, this.currentState === PlayerState.Playing ? this._lottie.goToAndPlay(r2, true) : (this._lottie.goToAndStop(r2, true), this._lottie.pause());\n }\n }\n }\n snapshot() {\n var t2 = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];\n if (this.shadowRoot) {\n var e2 = this.shadowRoot.querySelector(\".animation svg\"), r2 = new XMLSerializer().serializeToString(e2);\n if (t2) {\n var i2 = document.createElement(\"a\");\n i2.href = \"data:image/svg+xml;charset=utf-8,\".concat(encodeURIComponent(r2)), i2.download = \"download_\".concat(this.seeker, \".svg\"), document.body.appendChild(i2), i2.click(), document.body.removeChild(i2);\n }\n return r2;\n }\n }\n setSpeed() {\n var t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1;\n this._lottie && this._lottie.setSpeed(t2);\n }\n setDirection(t2) {\n this._lottie && this._lottie.setDirection(t2);\n }\n setLooping(t2) {\n this._lottie && (this.loop = t2, this._lottie.loop = t2);\n }\n togglePlay() {\n return this.currentState === PlayerState.Playing ? this.pause() : this.play();\n }\n toggleLooping() {\n this.setLooping(!this.loop);\n }\n resize() {\n this._lottie && this._lottie.resize();\n }\n static get styles() {\n return styles;\n }\n disconnectedCallback() {\n this.isConnected || (this._io && (this._io.disconnect(), this._io = void 0), document.removeEventListener(\"visibilitychange\", this._onVisibilityChange), this.destroy());\n }\n render() {\n var t2 = this.controls ? \"main controls\" : \"main\", e2 = this.controls ? \"animation controls\" : \"animation\";\n return $(_templateObject || (_templateObject = _taggedTemplateLiteral(['
\\n
\\n ', \"\\n
\\n \", \"\\n
\"])), t2, this.description, e2, this.background, this.currentState === PlayerState.Error ? $(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(['
\\u26A0\\uFE0F
']))) : void 0, this.controls && !this.disableShadowDOM ? this.renderControls() : void 0);\n }\n createRenderRoot() {\n return this.disableShadowDOM && (this.style.display = \"block\"), this.disableShadowDOM ? this : super.createRenderRoot();\n }\n firstUpdated() {\n \"IntersectionObserver\" in window && (this._io = new IntersectionObserver((t2) => {\n t2[0].isIntersecting ? this.currentState === PlayerState.Frozen && this.play() : this.currentState === PlayerState.Playing && this.freeze();\n }), this._io.observe(this.container)), void 0 !== document.hidden && document.addEventListener(\"visibilitychange\", this._onVisibilityChange), this.src && this.load(this.src), this.dispatchEvent(new CustomEvent(PlayerEvents.Rendered));\n }\n renderControls() {\n var t2 = this.currentState === PlayerState.Playing, e2 = this.currentState === PlayerState.Paused, r2 = this.currentState === PlayerState.Stopped;\n return $(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(['\\n
\\n '])), this.togglePlay, t2 || e2 ? \"active\" : \"\", $(t2 ? _templateObject4 || (_templateObject4 = _taggedTemplateLiteral(['
\\n \\n '])) : _templateObject5 || (_templateObject5 = _taggedTemplateLiteral(['
\\n \\n ']))), this.stop, r2 ? \"active\" : \"\", this.seeker, this._handleSeekChange, () => {\n this._prevState = this.currentState, this.freeze();\n }, () => {\n this._prevState === PlayerState.Playing && this.play();\n }, this.seeker, this.toggleLooping, this.loop ? \"active\" : \"\");\n }\n _handleSeekChange(t2) {\n if (this._lottie && !isNaN(t2.target.value)) {\n var e2 = t2.target.value / 100 * this._lottie.totalFrames;\n this.seek(e2);\n }\n }\n _attachEventListeners() {\n this._lottie.addEventListener(\"enterFrame\", () => {\n this.seeker = this._lottie.currentFrame / this._lottie.totalFrames * 100, this.dispatchEvent(new CustomEvent(PlayerEvents.Frame, { detail: { frame: this._lottie.currentFrame, seeker: this.seeker } }));\n }), this._lottie.addEventListener(\"complete\", () => {\n if (this.currentState === PlayerState.Playing) {\n if (!this.loop || this.count && this._counter >= this.count) {\n if (this.dispatchEvent(new CustomEvent(PlayerEvents.Complete)), this.mode !== PlayMode.Bounce) return;\n if (0 === this._lottie.currentFrame) return;\n }\n this.mode === PlayMode.Bounce ? (this.count && (this._counter += 0.5), setTimeout(() => {\n this.dispatchEvent(new CustomEvent(PlayerEvents.Loop)), this.currentState === PlayerState.Playing && (this._lottie.setDirection(-1 * this._lottie.playDirection), this._lottie.play());\n }, this.intermission)) : (this.count && (this._counter += 1), window.setTimeout(() => {\n this.dispatchEvent(new CustomEvent(PlayerEvents.Loop)), this.currentState === PlayerState.Playing && (-1 === this.direction ? (this.seek(\"99%\"), this.play()) : (this._lottie.stop(), this._lottie.play()));\n }, this.intermission));\n } else this.dispatchEvent(new CustomEvent(PlayerEvents.Complete));\n }), this._lottie.addEventListener(\"DOMLoaded\", () => {\n this.setSpeed(this.speed), this.setDirection(this.direction), this.autoplay && (-1 === this.direction && this.seek(\"100%\"), this.play()), this.dispatchEvent(new CustomEvent(PlayerEvents.Ready));\n }), this._lottie.addEventListener(\"data_ready\", () => {\n this.dispatchEvent(new CustomEvent(PlayerEvents.Load));\n }), this._lottie.addEventListener(\"data_failed\", () => {\n this.currentState = PlayerState.Error, this.dispatchEvent(new CustomEvent(PlayerEvents.Error));\n }), this.container.addEventListener(\"mouseenter\", () => {\n this.hover && this.currentState !== PlayerState.Playing && this.play();\n }), this.container.addEventListener(\"mouseleave\", () => {\n this.hover && this.currentState === PlayerState.Playing && this.stop();\n });\n }\n freeze() {\n this._lottie && (this._lottie.pause(), this.currentState = PlayerState.Frozen, this.dispatchEvent(new CustomEvent(PlayerEvents.Freeze)));\n }\n};\n__decorate([e$5({ type: Boolean })], LottiePlayer.prototype, \"autoplay\", void 0), __decorate([e$5({ type: String, reflect: true })], LottiePlayer.prototype, \"background\", void 0), __decorate([e$5({ type: Boolean })], LottiePlayer.prototype, \"controls\", void 0), __decorate([e$5({ type: Number })], LottiePlayer.prototype, \"count\", void 0), __decorate([e$5({ type: String })], LottiePlayer.prototype, \"currentState\", void 0), __decorate([e$5({ type: String })], LottiePlayer.prototype, \"description\", void 0), __decorate([e$5({ type: Number })], LottiePlayer.prototype, \"direction\", void 0), __decorate([e$5({ type: Boolean })], LottiePlayer.prototype, \"disableCheck\", void 0), __decorate([e$5({ type: Boolean })], LottiePlayer.prototype, \"disableShadowDOM\", void 0), __decorate([e$5({ type: Boolean })], LottiePlayer.prototype, \"hover\", void 0), __decorate([e$5()], LottiePlayer.prototype, \"intermission\", void 0), __decorate([e$5({ type: Boolean, reflect: true })], LottiePlayer.prototype, \"loop\", void 0), __decorate([e$5()], LottiePlayer.prototype, \"mode\", void 0), __decorate([e$5({ type: String })], LottiePlayer.prototype, \"preserveAspectRatio\", void 0), __decorate([e$5({ type: String })], LottiePlayer.prototype, \"renderer\", void 0), __decorate([e$5({ type: String })], LottiePlayer.prototype, \"viewBoxSize\", void 0), __decorate([e$5()], LottiePlayer.prototype, \"seeker\", void 0), __decorate([e$5({ type: Number })], LottiePlayer.prototype, \"speed\", void 0), __decorate([e$5({ type: String })], LottiePlayer.prototype, \"src\", void 0), __decorate([e$5({ type: Boolean })], LottiePlayer.prototype, \"webworkers\", void 0), __decorate([i(\".animation\")], LottiePlayer.prototype, \"container\", void 0), LottiePlayer = __decorate([n$1(\"lottie-player\")], LottiePlayer);\nexport {\n LottiePlayer,\n PlayMode,\n PlayerEvents,\n PlayerState,\n parseSrc\n};\n/*! Bundled license information:\n\n@lottiefiles/lottie-player/dist/lottie-player.esm.js:\n (*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n \n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n \n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** *)\n (**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *)\n (**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *)\n (**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *)\n*/\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n to\n} from \"./chunk.YTEMICXC.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n initializeLink\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-richtext/jb-richtext.scss?inline\nvar jb_richtext_default = i`@charset \"UTF-8\";\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nul li strong,\nol li strong, slot.small p strong, .tablewrapper table thead, .tablewrapper table strong, p strong, h4 {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n.tablewrapper table tr.section_header td {\n font-family: var(--theme-font-regular-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-regular-weight, 400);\n}\n\n.tablewrapper .footnotes, .tablewrapper table td > .supplementary, .tablewrapper table td.subitem, p small.mini, slot.mini p, .tablewrapper table tbody tr, .tablewrapper table figcaption, .tablewrapper table, .tablewrapper .preface, slot.small-text-regular-a-tags a, p small, slot.small p, slot.small-text-regular-a-tags p, blockquote footer,\nblockquote footer p, slot.contactform p, ul li,\nol li, p, blockquote > p, h3, slot.contactform h2, h2 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh2 {\n font-size: var(--theme-typo-h2-subtitle-mobile-fontsize, 1.625rem);\n line-height: var(--theme-typo-h2-subtitle-mobile-lineheight, 2.188rem);\n}\n@media (min-width: 1281px) {\n h2 {\n font-size: var(--theme-typo-h2-subtitle-desktop-fontsize, 1.938rem);\n line-height: var(--theme-typo-h2-subtitle-desktop-lineheight, 2.625rem);\n }\n}\n\nh3, slot.contactform h2 {\n font-size: var(--theme-typo-h3-mobile-fontsize, 1.375rem);\n line-height: var(--theme-typo-h3-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n h3, slot.contactform h2 {\n font-size: var(--theme-typo-h3-desktop-fontsize, 1.625rem);\n line-height: var(--theme-typo-h3-desktop-lineheight, 2.25rem);\n }\n}\n\nh4 {\n font-size: var(--theme-typo-h4-mobile-fontsize, 1.188rem);\n line-height: var(--theme-typo-h4-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n h4 {\n font-size: var(--theme-typo-h4-desktop-fontsize, 1.375rem);\n line-height: var(--theme-typo-h4-desktop-lineheight, 2.125rem);\n }\n}\n\nul li,\nol li, p, blockquote > p {\n font-size: var(--theme-typo-p-mobile-fontsize, 1.063rem);\n line-height: var(--theme-typo-p-mobile-lineheight, 1.875rem);\n}\n@media (min-width: 1281px) {\n ul li,\n ol li, p, blockquote > p {\n font-size: var(--theme-typo-p-desktop-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-desktop-lineheight, 2.125rem);\n }\n}\n\np strong {\n font-size: var(--theme-typo-p-highlight-mobile-fontsize, 1.063rem);\n line-height: var(--theme-typo-p-highlight-mobile-lineheight, 1.875rem);\n}\n@media (min-width: 1281px) {\n p strong {\n font-size: var(--theme-typo-p-highlight-desktop-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-highlight-desktop-lineheight, 2.125rem);\n }\n}\n\n.tablewrapper table tbody tr, .tablewrapper table figcaption, .tablewrapper table, .tablewrapper .preface, slot.small-text-regular-a-tags a, p small, slot.small p, slot.small-text-regular-a-tags p, blockquote footer,\nblockquote footer p, slot.contactform p {\n font-size: var(--theme-typo-p-small-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-desktop-lineheight, 1.625rem);\n}\n\n.tablewrapper table thead, .tablewrapper table strong {\n font-size: var(--theme-typo-p-small-highlight-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-highlight-desktop-lineheight, 1.625rem);\n}\n\n.tablewrapper .footnotes, .tablewrapper table td > .supplementary, .tablewrapper table td.subitem, p small.mini, slot.mini p {\n font-size: var(--theme-typo-p-mini-desktop-fontsize, 0.813rem);\n line-height: var(--theme-typo-p-mini-desktop-lineheight, 1.25rem);\n}\n\n.tablewrapper table tr.section_header td {\n font-size: var(--theme-typo-p-mini-highlight-desktop-fontsize, 0.813rem);\n line-height: var(--theme-typo-p-mini-highlight-desktop-lineheight, 1.25rem);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\nslot {\n display: block;\n}\nslot > :last-child {\n margin-block-end: var(--textarea-paragraph-margin-bottom, 0);\n}\n\nh2 {\n /* stylelint-disable */\n margin-block-start: var(--textarea-title-margin-top);\n margin-block-end: var(--textarea-title-margin-bottom, var(--spacing-lm));\n /* stylelint-enable */\n}\n* + h2 {\n margin-block-start: 51px;\n}\n\nslot.contactform {\n color: rgba(var(--rgb-primary, 20, 30, 85), var(--text-opacity, 0.8));\n}\nslot.contactform h2 {\n margin-block: 0;\n}\nslot.contactform p {\n color: rgba(var(--rgb-primary, 20, 30, 85), var(--text-opacity, 0.8));\n}\nslot.contactform p:not(:first-child) {\n margin-block-start: var(--spacing-3xs);\n}\nslot.contactform > :last-child {\n --textarea-paragraph-margin-bottom: 0;\n}\n\nh3 {\n margin-block-end: var(--spacing-2xs);\n}\n\nh4 {\n margin-block-end: var(--spacing-2xs);\n}\n\nblockquote {\n border-inline-start: 1px solid #b0aa7e;\n margin-bottom: var(--spacing-lm);\n padding-block: var(--spacing-3xs);\n padding-inline-start: var(--spacing-m);\n}\nblockquote > p {\n font-style: italic;\n margin-block-end: var(--spacing-s);\n}\nblockquote > p::before {\n content: \"\u201C\";\n}\nblockquote > p::after {\n content: \"\u201D\";\n}\nblockquote footer,\nblockquote footer p {\n margin-block-end: 0;\n}\n\np {\n margin-block-end: var(--spacing-lm);\n}\nslot.small-text-regular-a-tags p {\n margin-block-end: var(--textarea-p-margin-bottom, 20px);\n}\nslot.small p strong {\n font-size: 1rem;\n line-height: 1.625rem;\n}\np.text-center {\n text-align: center;\n}\np.text-right {\n text-align: end;\n}\n\nul,\nol {\n margin-block-end: 30px;\n margin-inline-start: 16px;\n padding-inline-start: 20px;\n}\n@media (min-width: 960px) {\n ul,\n ol {\n margin-inline-start: 24px;\n }\n}\n@media (min-width: 1281px) {\n ul,\n ol {\n margin-block-end: 51px;\n }\n}\nul:last-child,\nol:last-child {\n margin-block-end: 0;\n}\nul {\n list-style-type: disc;\n}\n\n:is(p, ul, ol) + :is(ul, ol) {\n margin-block-start: calc(-1 * (var(--spacing-lm) - var(--spacing-3xs)));\n}\n\na {\n box-shadow: inset 0 -1px 0 0 RGBA(var(--rgb-primary, 20, 30, 85), var(--theme-opacity-30, 0.3));\n padding-bottom: 0.15em;\n text-decoration: none;\n transition: box-shadow 0.2s;\n}\na:hover {\n box-shadow: inset 0 -1px 0 0 RGB(var(--rgb-primary, 20, 30, 85));\n}\nslot.small-text-regular-a-tags a {\n padding-block-end: 0;\n}\n\nhr {\n border: 0;\n border-block-end: rgb(var(--rgb-primary, 20, 30, 85)) solid 1px;\n}\n\nmark {\n background-color: rgba(var(--rgb-primary, 20, 30, 85), var(--theme-opacity-10, 0.1));\n}\n\n.tablewrapper {\n margin-block-end: 28px;\n}\n@media (min-width: 1281px) {\n .tablewrapper {\n margin-block-end: var(--spacing-lm, 36px);\n }\n}\n.tablewrapper::-webkit-scrollbar {\n background-color: #141e55;\n block-size: 5px;\n inline-size: 5px;\n}\n.tablewrapper::-webkit-scrollbar-track {\n background-clip: content-box;\n background-color: #f1f2f2;\n}\n.tablewrapper::-webkit-scrollbar-thumb {\n background-color: #141e55;\n border-radius: var(--spacing-base);\n inline-size: 180px;\n}\n.tablewrapper::-webkit-scrollbar-track-piece:start {\n background-color: transparent;\n margin-block-start: 40px;\n}\n.tablewrapper .preface {\n margin-block: 30px 16px !important;\n}\n@media (min-width: 1281px) {\n .tablewrapper .preface {\n margin-block-start: 34px;\n }\n}\n.tablewrapper table {\n border-collapse: collapse;\n inline-size: 100%;\n position: relative;\n text-align: start;\n}\n.tablewrapper table figcaption {\n text-align: center;\n}\n.tablewrapper table thead {\n border-block-end: 1px solid rgb(var(--rgb-primary, 20, 30, 85));\n}\n.tablewrapper table thead tr th {\n color: rgb(var(--rgb-primary, 20, 30, 85)) !important;\n padding: 7px 20px 7px 0;\n text-align: start;\n}\n.tablewrapper table thead tr th:last-of-type {\n padding-inline-end: 0;\n}\n.tablewrapper table tbody tr {\n border-block-end: 1px solid rgba(var(--rgb-primary, 20, 30, 85), 0.3);\n}\n.tablewrapper table tbody tr th {\n text-align: start;\n}\n.tablewrapper table tbody tr td {\n padding: 7px 34px 7px 0;\n}\n.tablewrapper table tbody tr:last-of-type {\n border-block-end: none;\n}\n.tablewrapper table tbody td {\n padding-inline-end: 20px;\n}\n.tablewrapper table tbody td sup {\n inline-size: 0;\n}\n.tablewrapper table tbody td:last-of-type {\n padding-inline-end: 0;\n}\n.tablewrapper table tr.section_header {\n border-block-end-color: rgb(var(--theme-color-royal-blue, 20 30 85)/var(--theme-opacity-40, 0.4));\n}\n.tablewrapper table tr.section_header td {\n padding-block-start: 24px;\n}\n.tablewrapper table tr.section_separator {\n border-block-end-color: rgb(var(--theme-color-royal-blue, 20 30 85));\n}\n.tablewrapper table td.subitem {\n padding-inline-start: var(--spacing-sm);\n}\n.tablewrapper table td > .supplementary {\n color: rgb(var(--theme-color-royal-blue, 20 30 85)/var(--theme-opacity-80, 0.8));\n display: block;\n}\n.tablewrapper .footnotes {\n margin-block-start: 30px;\n}\n@media (min-width: 1281px) {\n .tablewrapper .footnotes {\n margin-block-start: 34px;\n }\n}\n\nu {\n box-shadow: inset 0 -1px 0 0;\n padding-block-end: 0.15em;\n text-decoration: none;\n}\n\n@media print {\n a::after {\n content: \" (\" attr(href) \")\";\n }\n}`;\n\n// src/components/jb-richtext/jb-richtext.ts\nvar JbRichtext = class extends Initiable(Spaceable(h)) {\n async firstUpdated() {\n const firstChildElement = [...Array.from(this.childNodes)].find((node) => node.nodeType === 1);\n if (firstChildElement === void 0) {\n return;\n }\n const slot = firstChildElement.assignedSlot;\n slot.append(...Array.from(this.childNodes));\n slot.querySelectorAll(\"table\").forEach((table) => {\n const originalTable = table.cloneNode(true);\n table.replaceWith(\n this._wrapTable(\n originalTable,\n table.previousElementSibling,\n table.nextElementSibling\n )\n );\n });\n slot.querySelectorAll(\"a\").forEach((link) => {\n initializeLink(link);\n });\n }\n _getContentSpacingProperties() {\n return { grid: \"legacy\", type: \"text\" };\n }\n _wrapTable(table, preface, footnotes) {\n const tableWrapper = document.createElement(\"div\");\n tableWrapper.classList.add(\"tablewrapper\");\n if (preface?.classList.contains(\"preface\")) {\n tableWrapper.appendChild(preface);\n }\n tableWrapper.appendChild(table);\n if (footnotes?.classList.contains(\"footnotes\")) {\n tableWrapper.appendChild(footnotes);\n }\n return tableWrapper;\n }\n render() {\n return ke`
`;\n }\n};\nJbRichtext.styles = r(jb_richtext_default);\n__decorateClass([\n n()\n], JbRichtext.prototype, \"size\", 2);\nJbRichtext = __decorateClass([\n customElement(\"jb-richtext\")\n], JbRichtext);\n\nexport {\n JbRichtext\n};\n", "import {\n ae\n} from \"./chunk.Q25FCJRM.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-button-switch/jb-button-switch.scss?inline\nvar jb_button_switch_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.state::after, .state::before, h2 {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\njb-richtext, jb-richtext p {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh2 {\n font-size: var(--theme-typo-p-small-highlight-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-highlight-desktop-lineheight, 1.625rem);\n}\n\njb-richtext p {\n font-size: var(--theme-typo-p-mini-desktop-fontsize, 0.813rem);\n line-height: var(--theme-typo-p-mini-desktop-lineheight, 1.25rem);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nlabel {\n align-items: center;\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n margin-block-end: 10px;\n padding-block-start: 1px;\n}\n\ndiv {\n block-size: 27px;\n border-radius: 18px;\n display: inline-block;\n inline-size: 60px;\n position: relative;\n}\n\ninput {\n inset-block-start: 0;\n inset-inline-start: 0;\n opacity: 0;\n position: absolute;\n}\ninput:checked ~ .state {\n background-color: #b0aa7e;\n}\ninput:checked ~ .state::before {\n opacity: 0;\n}\ninput:checked ~ .state::after {\n opacity: 1;\n}\ninput:checked ~ .handle {\n background: #fff;\n box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.2);\n inset-inline-start: 32px;\n}\ninput:disabled ~ .state {\n opacity: 0.5;\n}\ninput:disabled ~ .handle {\n opacity: 0.75;\n}\n\n.state {\n background: rgba(255, 255, 255, 0.4);\n block-size: inherit;\n border-radius: inherit;\n display: block;\n font-size: 0.625rem;\n position: relative;\n text-transform: uppercase;\n}\n.state::before {\n color: #141e55;\n content: attr(data-off);\n font-size: 0.688rem;\n inset-inline-end: 7px;\n line-height: 0.75rem;\n text-transform: uppercase;\n}\n.state::after {\n color: #141e55;\n content: attr(data-on);\n font-size: 0.688rem;\n inset-inline-start: 7px;\n line-height: 0.75rem;\n opacity: 0;\n text-transform: uppercase;\n}\n.state::before, .state::after {\n inset-block-start: 50%;\n line-height: 1;\n position: absolute;\n transform: translateY(-49%);\n transition: inherit;\n}\n\n.handle {\n background-color: #fff;\n block-size: 27px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 100%;\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.1), 0 3px 1px rgba(0, 0, 0, 0.05);\n inline-size: 28px;\n inset-block-start: 0;\n inset-inline-start: 0;\n position: absolute;\n}\n\n.state,\n.handle {\n transition: all 0.2s ease-in-out;\n}\n\nh2 {\n color: #fff;\n margin: 0;\n}\n\njb-richtext {\n color: rgba(255, 255, 255, 0.7);\n}`;\n\n// src/components/jb-button-switch/jb-button-switch.ts\nvar JbButtonSwitch = class extends Initiable(h) {\n async firstUpdated() {\n this.setAttributes();\n const event = new CustomEvent(\"button-switch:initialized\", {\n detail: { buttonSwitch: this },\n bubbles: true\n });\n this.dispatchEvent(event);\n }\n setAttributes() {\n if (this.name) {\n this._checkbox.setAttribute(\"name\", this.name);\n }\n if (this.initialState) {\n this._checkbox.setAttribute(\"checked\", \"checked\");\n }\n if (this.forceState) {\n this._checkbox.setAttribute(\"disabled\", \"disabled\");\n }\n }\n setState(state) {\n if (state) {\n this._checkbox.setAttribute(\"checked\", \"checked\");\n } else {\n this._checkbox.removeAttribute(\"checked\");\n }\n }\n _change(e2) {\n if (!this.name) {\n return;\n }\n const { checked } = e2.target;\n const event = new CustomEvent(\"button-switch:changed\", {\n detail: { name: this.name, checked },\n bubbles: true\n });\n this.dispatchEvent(event);\n }\n render() {\n return ke`\n
\n `;\n }\n};\nJbButtonSwitch.styles = r(jb_button_switch_default);\n__decorateClass([\n n()\n], JbButtonSwitch.prototype, \"description\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonSwitch.prototype, \"forceState\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonSwitch.prototype, \"initialState\", 2);\n__decorateClass([\n n()\n], JbButtonSwitch.prototype, \"label\", 2);\n__decorateClass([\n n()\n], JbButtonSwitch.prototype, \"name\", 2);\n__decorateClass([\n n()\n], JbButtonSwitch.prototype, \"offText\", 2);\n__decorateClass([\n n()\n], JbButtonSwitch.prototype, \"onText\", 2);\n__decorateClass([\n e(\"input\")\n], JbButtonSwitch.prototype, \"_checkbox\", 2);\nJbButtonSwitch = __decorateClass([\n customElement(\"jb-button-switch\")\n], JbButtonSwitch);\n\nexport {\n JbButtonSwitch\n};\n", "import {\n JbRichtext\n} from \"./chunk.MRDK22UH.js\";\nimport {\n JbButtonSwitch\n} from \"./chunk.76WY2E6U.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n JBCookie\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-cookie-settings/jb-cookie-settings.scss?inline\nvar jb_cookie_settings_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh4 {\n font-family: var(--theme-font-regular-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-regular-weight, 400);\n}\n\nh2 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh2 {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.313rem;\n line-height: 2.125rem;\n}\n@media (min-width: 1281px) {\n h2 {\n font-size: 1.5rem;\n line-height: 2.25rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\nsection {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n justify-content: center;\n}\n\n.container {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 0;\n width: 100%;\n background-color: var(--background-color, #141e55);\n padding: 60px 20px;\n position: relative;\n}\n@media (min-width: 960px) {\n .container {\n padding: 70px 98px;\n }\n}\n\nh2 {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 0;\n width: 100%;\n color: #fff;\n margin-bottom: 10px;\n}\n\nslot[name=introduction]::slotted(jb-richtext) {\n color: rgba(255, 255, 255, var(--theme-opacity-80, 0.8));\n --rgb-primary: 255, 255, 255;\n --text-opacity: 1;\n}\n\n.options {\n margin-bottom: 30px;\n padding-top: 30px;\n}\n@media (min-width: 1281px) {\n .options {\n column-gap: 40px;\n columns: 2;\n }\n}\n\nslot[name=options]::slotted(jb-button-switch) {\n break-inside: avoid;\n color: rgba(255, 255, 255, var(--theme-opacity-70, 0.7));\n display: block;\n margin-bottom: 30px;\n --rgb-primary: 255, 255, 255;\n --text-opacity: 1;\n}\n\n.additional-text {\n break-inside: avoid;\n margin-top: -10px;\n}\n\nh4 {\n font-size: 16px;\n font-size: 1rem;\n line-height: 26px;\n line-height: 1.625rem;\n color: #fff;\n margin-bottom: 10px;\n}\n\nslot[name=additionalText]::slotted(jb-richtext) {\n color: RGBA(255, 255, 255, 0.7);\n --rgb-primary: 255, 255, 255;\n --text-opacity: 1;\n}\n\njb-button-panel {\n padding-bottom: 5px;\n --rgb-primary: 255, 255, 255;\n}\n\njb-close-icon {\n position: absolute;\n right: 22px;\n top: 20px;\n --icon-size: 26px;\n --rgb-primary: 255, 255, 255;\n}\n@media (min-width: 960px) {\n jb-close-icon {\n right: 45px;\n top: 40px;\n --icon-size: 30px;\n }\n}\n\njb-button,\njb-button-primary,\njb-button-secondary,\njb-button-tertiary {\n width: 100%;\n}\n@media (min-width: 960px) {\n jb-button,\n jb-button-primary,\n jb-button-secondary,\n jb-button-tertiary {\n margin-bottom: 0;\n width: auto;\n }\n}`;\n\n// src/components/jb-cookie-settings/jb-cookie-settings.ts\nvar JbCookieSettings = class extends Initiable(h) {\n constructor() {\n super(...arguments);\n this._newCookieSettings = /* @__PURE__ */ new Map();\n }\n static create(data) {\n const childNodes = [];\n childNodes.push(\n new JbRichtext().init({\n innerHTML: data.introduction.content,\n props: { ...data.introduction, size: \"small\" },\n attributes: { slot: \"introduction\" }\n })\n );\n childNodes.push(\n ...data.options.map(\n (option) => new JbButtonSwitch().init({\n props: option,\n attributes: { slot: \"options\" }\n })\n )\n );\n if (data.additionalText) {\n childNodes.push(\n new JbRichtext().init({\n innerHTML: data.additionalText.content,\n props: { ...data.additionalText, size: \"mini\" },\n attributes: { slot: \"additionalText\" }\n })\n );\n }\n return new JbCookieSettings().init({ props: data, childNodes });\n }\n acceptAll() {\n this.addEventListener(\"button-switch:initialized\", (event) => {\n this._forceSetting(event, true);\n this._save();\n });\n document.body.append(this);\n this.parentElement?.removeChild(this);\n }\n setConsentFor(optionNames) {\n this.addEventListener(\"button-switch:initialized\", (event) => {\n const buttonSwitch = event.detail.buttonSwitch;\n if (!buttonSwitch.name) {\n return;\n }\n if (optionNames.includes(buttonSwitch.name)) {\n this._forceSetting(event, true);\n }\n });\n document.querySelector(\"body\")?.append(this);\n this.parentElement?.removeChild(this);\n window.setTimeout(() => {\n this._save();\n }, 0);\n }\n _buttonClicked(e) {\n e.stopPropagation();\n e.detail.clickEvent.preventDefault();\n if (e.detail.name === \"save\") {\n this._save();\n JBCookie.setCookie(\"hide_cookie_banner\", \"1\");\n JBCookie.setCookie(\"show_cookie_banner\", \"0\");\n JBCookie.setCookie(\"cookie_banner_suppressed\", \"0\");\n this.dispatchEvent(new CustomEvent(\"jb-popup:close-stack\", { bubbles: true, composed: true }));\n } else {\n this.dispatchEvent(new CustomEvent(\"jb-popup:close\", { bubbles: true, composed: true }));\n }\n }\n _forceSetting(e, state) {\n const { name } = e.detail.buttonSwitch;\n e.detail.buttonSwitch.setState(state);\n this._newCookieSettings.set(name, state);\n }\n _handleCloseIconClick() {\n this.dispatchEvent(new CustomEvent(\"jb-popup:close\", { bubbles: true, composed: true }));\n }\n static _initializeSetting(e) {\n const { name } = e.detail.buttonSwitch;\n const value = JBCookie.getCookie(name);\n if (value) {\n e.detail.buttonSwitch.setState(true);\n }\n }\n _save() {\n this._newCookieSettings.forEach((value, key) => {\n if (value) {\n JBCookie.setCookie(key, \"1\");\n } else {\n JBCookie.deleteCookie(key);\n }\n });\n document.body.dispatchEvent(\n new CustomEvent(\"jb-cookie-settings:update\", {\n bubbles: true,\n composed: true,\n detail: { updatedCookieSettings: this._newCookieSettings }\n })\n );\n this._newCookieSettings = /* @__PURE__ */ new Map();\n }\n _settingChanged(e) {\n e.stopPropagation();\n this._newCookieSettings.set(e.detail.name, e.detail.checked);\n }\n render() {\n return ke`\n
\n \n
\n
${this.headline} \n
\n
\n
\n
\n ${this.additionalHeadline ? ke`
${this.additionalHeadline} ` : D}\n \n \n
\n
\n \n ${this.cancelButtonText}\n \n \n ${this.saveButtonText}\n \n \n
\n \n `;\n }\n};\nJbCookieSettings.styles = r(jb_cookie_settings_default);\n__decorateClass([\n n()\n], JbCookieSettings.prototype, \"additionalHeadline\", 2);\n__decorateClass([\n n()\n], JbCookieSettings.prototype, \"cancelButtonText\", 2);\n__decorateClass([\n n()\n], JbCookieSettings.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbCookieSettings.prototype, \"saveButtonText\", 2);\nJbCookieSettings = __decorateClass([\n customElement(\"jb-cookie-settings\")\n], JbCookieSettings);\n\nexport {\n JbCookieSettings\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-close-icon/jb-close-icon.scss?inline\nvar jb_close_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nsvg {\n cursor: pointer;\n display: inline-block;\n fill: rgb(var(--rgb-primary, 20, 30, 85));\n height: var(--icon-size, 29px);\n transform: scale(1);\n transition: transform 0.3s linear;\n width: var(--icon-size, 30px);\n}\nsvg:hover {\n transform: scale3d(0.8, 0.8, 1);\n transition: transform 0.3s linear;\n}`;\n\n// src/components/icons/jb-close-icon/jb-close-icon.ts\nvar JbCloseIcon = class extends h {\n render() {\n return ke`\n
\n \n \n \n \n \n \n \n \n `;\n }\n};\nJbCloseIcon.styles = r(jb_close_icon_default);\nJbCloseIcon = __decorateClass([\n customElement(\"jb-close-icon\")\n], JbCloseIcon);\n\nexport {\n JbCloseIcon\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-button-panel/jb-button-panel.scss?inline\nvar jb_button_panel_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\ndiv {\n align-items: center;\n display: flex;\n flex: var(--flex, 0 1 auto);\n flex-wrap: var(--panel-wrap, wrap);\n gap: var(--panel-gap, var(--spacing-s));\n white-space: var(--white-space, nowrap);\n}\ndiv.left-aligned {\n justify-content: flex-start;\n}\ndiv.right-aligned {\n justify-content: flex-end;\n}\ndiv.center-aligned {\n justify-content: center;\n}`;\n\n// src/components/jb-button-panel/jb-button-panel.ts\nvar JbButtonPanel = class extends h {\n constructor() {\n super(...arguments);\n this.align = \"left\";\n }\n render() {\n this.align = this.align || \"left\";\n return ke`
\n \n
`;\n }\n};\nJbButtonPanel.styles = r(jb_button_panel_default);\n__decorateClass([\n n()\n], JbButtonPanel.prototype, \"align\", 2);\nJbButtonPanel = __decorateClass([\n customElement(\"jb-button-panel\")\n], JbButtonPanel);\n\nexport {\n JbButtonPanel\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n Linkable\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-button/jb-button.scss?inline\nvar jb_button_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\ndiv.tertiary a,\ndiv.tertiary button, div.primary a,\ndiv.primary button, div.secondary a,\ndiv.secondary button {\n font-family: var(--theme-font-black-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-black-weight, 900);\n}\n\ndiv.tertiary a,\ndiv.tertiary button, div.primary a,\ndiv.primary button, div.secondary a,\ndiv.secondary button {\n font-size: var(--theme-typo-uppercase-900-fontsize, 0.688rem);\n letter-spacing: var(--theme-typo-uppercase-900-letterspacing, 0.125rem);\n line-height: var(--theme-typo-uppercase-900-lineheight, 1rem);\n text-transform: uppercase;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\ndiv {\n cursor: pointer;\n display: inline-block;\n position: relative;\n user-select: none;\n}\n\ndiv.secondary {\n margin: var(--button-secondary-margin, 0);\n}\ndiv.secondary a,\ndiv.secondary button {\n background-color: transparent;\n border: none;\n color: var(--stroke-color, rgb(var(--rgb-primary, 20, 30, 85)));\n display: inline-flex;\n padding: var(--button-padding, 10px 16px);\n text-decoration: none;\n transition: padding 0.3s ease-out 0s;\n}\ndiv.secondary::before {\n border-left: var(--border-width, 1px) solid var(--stroke-color, rgb(var(--rgb-primary, 20, 30, 85)));\n bottom: 0;\n content: \"\";\n height: 66%;\n left: 0;\n position: absolute;\n transition: height 0.2s ease-out 0.1s;\n width: var(--border-width, 1px);\n}\ndiv.secondary::after {\n border-bottom: var(--border-width, 1px) solid var(--stroke-color, rgb(var(--rgb-primary, 20, 30, 85)));\n bottom: 0;\n content: \"\";\n height: var(--border-width, 1px);\n left: 0;\n position: absolute;\n transition: width 0.3s ease-out 0s;\n width: 50%;\n}\ndiv.secondary.forcehover::before, div.secondary:hover::before {\n height: 0;\n}\ndiv.secondary.forcehover::after, div.secondary:hover::after {\n width: calc(100% + 3px);\n}\n@media all and (-ms-high-contrast: none) {\n div.secondary.forcehover::after, div.secondary:hover::after {\n width: 100%;\n }\n}\n@supports (-ms-ime-align: auto) {\n div.secondary.forcehover::after, div.secondary:hover::after {\n width: 100%;\n }\n}\ndiv.secondary.forcehover a,\ndiv.secondary.forcehover button, div.secondary:hover a,\ndiv.secondary:hover button {\n padding-left: var(--hover-padding-left, 36px);\n padding-right: 0;\n}\ndiv.secondary.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\ndiv.secondary.disabled::before, div.secondary.disabled::after {\n opacity: 0.5;\n}\ndiv.secondary.white a,\ndiv.secondary.white button {\n background-color: transparent;\n color: var(--stroke-color, #fff);\n}\ndiv.secondary.white::before {\n border-left: var(--border-width, 1px) solid var(--stroke-color, #fff);\n}\ndiv.secondary.white::after {\n border-bottom: var(--border-width, 1px) solid var(--stroke-color, #fff);\n}\n\ndiv.primary a,\ndiv.primary button {\n border: none;\n color: var(--stroke-color, #fff);\n display: inline-flex;\n padding: 12px 18px;\n text-decoration: none;\n}\ndiv.primary a:hover::before,\ndiv.primary button:hover::before {\n transform: scale(1.03, 1.1);\n}\ndiv.primary a::before,\ndiv.primary button::before {\n background: rgb(var(--rgb-primary, 20, 30, 85));\n content: \"\";\n inset: 0;\n position: absolute;\n transition: transform 0.6s ease-in-out;\n z-index: 1;\n}\ndiv.primary a > span,\ndiv.primary button > span {\n position: relative;\n z-index: 2;\n}\ndiv.primary.white a,\ndiv.primary.white button {\n color: var(--stroke-color, rgb(var(--rgb-primary, 20, 30, 85)));\n}\ndiv.primary.white a::before,\ndiv.primary.white button::before {\n background: #fff;\n}\n\ndiv.tertiary a,\ndiv.tertiary button {\n align-items: center;\n background-color: transparent;\n border: none;\n color: var(--stroke-color, rgb(var(--rgb-primary, 20, 30, 85)));\n display: inline-flex;\n padding: 10px 0;\n text-decoration: none;\n transition: padding 0.3s ease-out 0s;\n}\ndiv.tertiary svg {\n flex-basis: 19px;\n flex-shrink: 0;\n position: relative;\n top: 5px;\n transition: transform 0.3s ease-out 0s;\n}\ndiv.tertiary.arrowright.forcehover svg, div.tertiary.arrowright:hover svg {\n transform: translateX(8px);\n}\ndiv.tertiary.arrowup svg {\n transform: rotate(-90deg);\n}\ndiv.tertiary.arrowup.forcehover svg, div.tertiary.arrowup:hover svg {\n transform: translateY(-3px) rotate(-90deg);\n}\ndiv.tertiary.arrowdown svg {\n transform: rotate(90deg);\n}\ndiv.tertiary.arrowdown.forcehover svg, div.tertiary.arrowdown:hover svg {\n transform: translateY(3px) rotate(90deg);\n}\ndiv.tertiary.white a,\ndiv.tertiary.white button {\n background-color: transparent;\n color: var(--stroke-color, #fff);\n}\ndiv.tertiary.white path,\ndiv.tertiary.white rect {\n fill: var(--stroke-color, #fff);\n}\ndiv.tertiary p {\n transition: padding 0.3s ease-out 0s;\n}\n\ndiv.fullwidth {\n text-align: center;\n width: 100%;\n}\n\njb-mail-icon,\njb-print-icon {\n margin-right: 10px;\n}\n\njb-mail-icon {\n transform: var(--translate-y, translateY(2px));\n}\n\njb-print-icon {\n max-width: 22px;\n}\n\njb-play-pause-button {\n display: inline-block;\n margin-right: 12px;\n vertical-align: bottom;\n --border-width: 1px;\n --icon-size: 14px;\n --icon-size-lg: var(--icon-size);\n --size: 36px;\n --size-lg: var(--size);\n}`;\n\n// src/components/jb-button/jb-button.ts\nvar JbButton = class extends Initiable(Linkable(h)) {\n _click(clickEvent) {\n if (!this.name || this.disabled) {\n return;\n }\n this.dispatchEvent(\n new CustomEvent(\"jb-button:clicked\", {\n detail: { name: this.name, clickEvent },\n bubbles: true,\n composed: true\n })\n );\n }\n render() {\n const tertiaryArrow = ke`
\n \n \n \n \n \n \n \n \n \n `;\n return ke`\n ${this.icon === \"video\" ? ke`
` : D}\n
\n `;\n }\n};\nJbButton.styles = r(jb_button_default);\n__decorateClass([\n n({ type: Boolean })\n], JbButton.prototype, \"disabled\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButton.prototype, \"forceHover\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButton.prototype, \"fullWidth\", 2);\n__decorateClass([\n n()\n], JbButton.prototype, \"icon\", 2);\n__decorateClass([\n n()\n], JbButton.prototype, \"name\", 2);\n__decorateClass([\n n()\n], JbButton.prototype, \"tertiaryArrowDirection\", 2);\n__decorateClass([\n n()\n], JbButton.prototype, \"text\", 2);\n__decorateClass([\n n()\n], JbButton.prototype, \"variant\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButton.prototype, \"white\", 2);\nJbButton = __decorateClass([\n customElement(\"jb-button\")\n], JbButton);\n\nexport {\n JbButton\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n Oe,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-video-icon/jb-video-icon.scss?inline\nvar jb_video_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nsvg {\n fill: var(--stroke-color, rgba(20, 30, 85, var(--theme-opacity-20, 0.2)));\n stroke: var(--stroke-color, rgba(20, 30, 85, var(--theme-opacity-20, 0.2)));\n}\nsvg circle {\n fill: transparent;\n}`;\n\n// src/components/icons/jb-video-icon/jb-video-icon.ts\nvar JbVideoIcon = class extends h {\n constructor() {\n super(...arguments);\n this.circle = Oe`
`;\n this.withCircle = false;\n }\n render() {\n return ke` \n ${this.withCircle ? this.circle : D}\n \n `;\n }\n};\nJbVideoIcon.styles = r(jb_video_icon_default);\n__decorateClass([\n n({ type: Boolean })\n], JbVideoIcon.prototype, \"withCircle\", 2);\nJbVideoIcon = __decorateClass([\n customElement(\"jb-video-icon\")\n], JbVideoIcon);\n\nexport {\n JbVideoIcon\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-print-icon/jb-print-icon.scss?inline\nvar jb_print_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n height: var(--icon-size, 18px);\n width: var(--icon-size, 18px);\n}\n\nsvg {\n fill: var(--icon-color, rgb(var(--rgb-primary, 20, 30, 85)));\n height: var(--icon-height, 18px);\n transition: var(--icon-transition, none);\n width: var(--icon-width, 18px);\n}`;\n\n// src/components/icons/jb-print-icon/jb-print-icon.ts\nvar JbPrintIcon = class extends h {\n render() {\n return ke`\n \n \n \n `;\n }\n};\nJbPrintIcon.styles = r(jb_print_icon_default);\nJbPrintIcon = __decorateClass([\n customElement(\"jb-print-icon\")\n], JbPrintIcon);\n\nexport {\n JbPrintIcon\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n Linkable\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ButtonElement\n} from \"./chunk.7PRSKJZQ.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-button-secondary/jb-button-secondary.scss?inline\nvar jb_button_secondary_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\na,\nbutton {\n font-family: var(--theme-font-black-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-black-weight, 900);\n}\n\na,\nbutton {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.125rem;\n line-height: 1rem;\n text-decoration: none;\n text-transform: uppercase;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host,\n::before,\n::after {\n display: inline-block;\n inline-size: var(--button-width, initial);\n --_button-border-color: 20 30 85 / 1;\n --_button-transition-duration: 2s;\n --_button-transition-easing: cubic-bezier(0.16, 1, 0.3, 1);\n --_button-bottom-border-width: 1px;\n --_button-bottom-border-spacing: 1px;\n --_button-text-color: 20, 30, 85;\n --_icon-color: var(--button-text-color);\n}\n\n::slotted(*) {\n margin-inline-end: 0.5rem;\n}\n\na,\nbutton {\n align-items: center;\n background-color: transparent;\n border: var(--_button-bottom-border-width) solid rgb(var(--button-border-color, var(--_button-border-color)));\n color: rgba(var(--_button-text-color), 1);\n cursor: pointer;\n display: flex;\n inline-size: 100%;\n justify-content: center;\n padding: var(--_button-padding, 11px 32px);\n position: relative;\n text-align: center;\n user-select: none;\n}\na::before,\nbutton::before {\n background-color: rgb(var(--button-border-color, var(--_button-border-color)));\n block-size: var(--_button-bottom-border-width);\n content: \"\";\n display: block;\n inline-size: calc(100% + 2px);\n inset-block-end: var(--_button-bottom-border-spacing);\n inset-inline-start: -1px;\n position: absolute;\n transform: scaleX(0);\n transform-origin: left;\n transition: transform var(--_button-transition-duration) var(--_button-transition-easing);\n}\na.hover::before, a:hover::before,\nbutton.hover::before,\nbutton:hover::before {\n transform: scaleX(1);\n}\na:active,\nbutton:active {\n transform: scale(0.99);\n}\n\n.inverted,\n.inverted::before {\n --_button-border-color: 255 255 255 / 1;\n --_button-text-color: 255, 255, 255;\n}\n\n.inverted.inactive,\n.inverted.inactive::before {\n --_button-border-color: 255 255 255 / 0.4;\n color: rgba(var(--_button-text-color), 0.7);\n pointer-events: none;\n}\n\n:not(.inverted).inactive {\n opacity: 0.4;\n pointer-events: none;\n}`;\n\n// src/components/jb-button-secondary/jb-button-secondary.ts\nvar JbButtonSecondary = class extends Initiable(ButtonElement(Linkable(h))) {\n render() {\n const classes = { inactive: !!this.inactive, hover: !!this.forceHover, inverted: !!this.inverted };\n return this.link?.href ? ke`\n \n ` : ke`\n \n `;\n }\n};\nJbButtonSecondary.styles = r(jb_button_secondary_default);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonSecondary.prototype, \"forceHover\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonSecondary.prototype, \"inactive\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbButtonSecondary.prototype, \"inverted\", 2);\n__decorateClass([\n n({ type: Object })\n], JbButtonSecondary.prototype, \"link\", 2);\n__decorateClass([\n n()\n], JbButtonSecondary.prototype, \"name\", 2);\nJbButtonSecondary = __decorateClass([\n customElement(\"jb-button-secondary\")\n], JbButtonSecondary);\n\nexport {\n JbButtonSecondary\n};\n", "import {\n JbCookieSettings\n} from \"../../chunks/chunk.7OA654OI.js\";\nimport \"../../chunks/chunk.MRDK22UH.js\";\nimport \"../../chunks/chunk.76WY2E6U.js\";\nimport \"../../chunks/chunk.5SGCPDSP.js\";\nimport \"../../chunks/chunk.Z6P446BB.js\";\nimport \"../../chunks/chunk.3HJXLVF4.js\";\nimport \"../../chunks/chunk.BRZYRWW4.js\";\nimport \"../../chunks/chunk.7NUVYMIM.js\";\nimport \"../../chunks/chunk.BPDOBKMA.js\";\nimport \"../../chunks/chunk.RSUHM5A4.js\";\nimport \"../../chunks/chunk.Q25FCJRM.js\";\nimport \"../../chunks/chunk.G3SZKTQJ.js\";\nimport \"../../chunks/chunk.YTEMICXC.js\";\nimport \"../../chunks/chunk.LTAMHVKK.js\";\nimport \"../../chunks/chunk.OZEBCGEZ.js\";\nimport \"../../chunks/chunk.TOSSI7AO.js\";\nimport \"../../chunks/chunk.6DHNIVN5.js\";\nimport \"../../chunks/chunk.ABOYTYJO.js\";\nimport \"../../chunks/chunk.7ZO5ST7S.js\";\nimport \"../../chunks/chunk.EELGOWGJ.js\";\nimport \"../../chunks/chunk.WEV4VAJB.js\";\nimport \"../../chunks/chunk.NQ4JNTZU.js\";\nimport \"../../chunks/chunk.KR4IFKAA.js\";\nimport \"../../chunks/chunk.QAGUCU4C.js\";\nimport \"../../chunks/chunk.A4SFXC3I.js\";\nimport \"../../chunks/chunk.KZGIJPE3.js\";\nimport \"../../chunks/chunk.VRR2P3PQ.js\";\nimport \"../../chunks/chunk.7PRSKJZQ.js\";\nimport \"../../chunks/chunk.7ANACPIR.js\";\nimport \"../../chunks/chunk.WXNWU2SV.js\";\nimport \"../../chunks/chunk.FCKNEYTX.js\";\nimport \"../../chunks/chunk.BBN2ZB42.js\";\nimport \"../../chunks/chunk.FAJKIEWS.js\";\nimport \"../../chunks/chunk.I4IFG4JG.js\";\nexport {\n JbCookieSettings\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n Oe,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-read-icon/jb-read-icon.scss?inline\nvar jb_read_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nsvg {\n fill: rgba(20, 30, 85, var(--theme-opacity-20, 0.2));\n stroke: rgba(20, 30, 85, var(--theme-opacity-20, 0.2));\n}\nsvg circle {\n fill: transparent;\n}`;\n\n// src/components/icons/jb-read-icon/jb-read-icon.ts\nvar JbReadIcon = class extends h {\n constructor() {\n super(...arguments);\n this.circle = Oe``;\n this.withCircle = false;\n }\n render() {\n return ke` \n ${this.withCircle ? this.circle : D}\n \n `;\n }\n};\nJbReadIcon.styles = r(jb_read_icon_default);\n__decorateClass([\n n({ type: Boolean })\n], JbReadIcon.prototype, \"withCircle\", 2);\nJbReadIcon = __decorateClass([\n customElement(\"jb-read-icon\")\n], JbReadIcon);\n\nexport {\n JbReadIcon\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n Oe,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-podcast-icon/jb-podcast-icon.scss?inline\nvar jb_podcast_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nsvg {\n fill: rgba(20, 30, 85, var(--theme-opacity-20, 0.2));\n stroke: rgba(20, 30, 85, var(--theme-opacity-20, 0.2));\n}\nsvg circle {\n fill: transparent;\n}`;\n\n// src/components/icons/jb-podcast-icon/jb-podcast-icon.ts\nvar JbPodcastIcon = class extends h {\n constructor() {\n super(...arguments);\n this.circle = Oe``;\n this.withCircle = false;\n }\n render() {\n return ke` \n ${this.withCircle ? this.circle : D}\n \n `;\n }\n};\nJbPodcastIcon.styles = r(jb_podcast_icon_default);\n__decorateClass([\n n({ type: Boolean })\n], JbPodcastIcon.prototype, \"withCircle\", 2);\nJbPodcastIcon = __decorateClass([\n customElement(\"jb-podcast-icon\")\n], JbPodcastIcon);\n\nexport {\n JbPodcastIcon\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-text-with-image/jb-text-with-image.scss?inline\nvar jb_text_with_image_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\narticle {\n --_grid-gap: 16px;\n --_grid-template-columns: repeat(12, 1fr);\n display: grid;\n gap: var(--grid-row-gap, 0) var(--grid-column-gap, var(--_grid-gap));\n grid-template-columns: var(--theme-grid-template-columns, var(--_grid-template-columns));\n width: 100%;\n}\n@media (min-width: 960px) {\n article {\n --_grid-gap: 40px;\n }\n}\n\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n --_imagewidth: 4;\n --_columnstart: 2;\n --image-caption-font-size: 0.813rem;\n --image-caption-line-height: 1.25rem;\n --paragraphs-margin-left: 0;\n --paragraphs-margin-right: 0;\n --image-caption-margin-top: var(--spacing-2xs);\n --image-credit-margin-top: 0;\n}\n\narticle {\n grid-column: main;\n}\n\njb-image {\n grid-column: 1/13;\n margin-block-end: var(--spacing-l);\n}\n\n.slotwrapper {\n grid-column: 1/13;\n}\n\n@media (min-width: 960px) {\n .small {\n --_columnstart: 3;\n --_imagewidth: 3;\n }\n .small .slotwrapper {\n grid-column: calc(var(--_columnstart) + var(--_imagewidth))/span calc(8 - var(--_imagewidth));\n }\n .landscape.large {\n --_imagewidth: 5;\n }\n .portrait.large {\n --_imagewidth: 4;\n }\n jb-image {\n grid-column: var(--_columnstart)/span var(--_imagewidth);\n }\n .slotwrapper {\n grid-column: calc(var(--_columnstart) + var(--_imagewidth))/span calc(9 - var(--_imagewidth));\n }\n .end,\n .right {\n --_columnstart: 3;\n }\n .end jb-image,\n .right jb-image {\n grid-row: 1;\n order: 2;\n }\n .end .slotwrapper,\n .right .slotwrapper {\n grid-row: 1;\n order: 1;\n }\n .end.large jb-image,\n .right.large jb-image {\n grid-column: calc(13 - var(--_imagewidth) - 1)/span var(--_imagewidth);\n }\n .end.large .slotwrapper,\n .right.large .slotwrapper {\n grid-column: var(--_columnstart)/span calc(9 - var(--_imagewidth));\n }\n .end.small jb-image,\n .right.small jb-image {\n grid-column: calc(13 - var(--_imagewidth) - 2)/span var(--_imagewidth);\n }\n .end.small .slotwrapper,\n .right.small .slotwrapper {\n grid-column: var(--_columnstart)/span calc(8 - var(--_imagewidth));\n }\n}`;\n\n// src/components/jb-text-with-image/jb-text-with-image.ts\nvar JbTextWithImage = class extends Spaceable(h) {\n _getContentSpacingProperties() {\n return {\n colsMdUp: 12,\n type: \"text\"\n };\n }\n _tracking(e) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e, {\n component_name: \"text-with-image\"\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n render() {\n return ke`\n \n \n \n \n
\n \n `;\n }\n};\nJbTextWithImage.styles = r(jb_text_with_image_default);\n__decorateClass([\n n({ type: Object })\n], JbTextWithImage.prototype, \"image\", 2);\n__decorateClass([\n n()\n], JbTextWithImage.prototype, \"imageAlign\", 2);\n__decorateClass([\n n()\n], JbTextWithImage.prototype, \"imageOrientation\", 2);\n__decorateClass([\n n()\n], JbTextWithImage.prototype, \"imageSize\", 2);\nJbTextWithImage = __decorateClass([\n customElement(\"jb-text-with-image\")\n], JbTextWithImage);\n\nexport {\n JbTextWithImage\n};\n", "// node_modules/gsap/Observer.js\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nvar gsap;\nvar _coreInitted;\nvar _clamp;\nvar _win;\nvar _doc;\nvar _docEl;\nvar _body;\nvar _isTouch;\nvar _pointerType;\nvar ScrollTrigger;\nvar _root;\nvar _normalizer;\nvar _eventTypes;\nvar _context;\nvar _getGSAP = function _getGSAP2() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n};\nvar _startup = 1;\nvar _observers = [];\nvar _scrollers = [];\nvar _proxies = [];\nvar _getTime = Date.now;\nvar _bridge = function _bridge2(name, value) {\n return value;\n};\nvar _integrate = function _integrate2() {\n var core = ScrollTrigger.core, data = core.bridge || {}, scrollers = core._scrollers, proxies = core._proxies;\n scrollers.push.apply(scrollers, _scrollers);\n proxies.push.apply(proxies, _proxies);\n _scrollers = scrollers;\n _proxies = proxies;\n _bridge = function _bridge3(name, value) {\n return data[name](value);\n };\n};\nvar _getProxyProp = function _getProxyProp2(element, property) {\n return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property];\n};\nvar _isViewport = function _isViewport2(el) {\n return !!~_root.indexOf(el);\n};\nvar _addListener = function _addListener2(element, type, func, passive, capture) {\n return element.addEventListener(type, func, {\n passive: passive !== false,\n capture: !!capture\n });\n};\nvar _removeListener = function _removeListener2(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n};\nvar _scrollLeft = \"scrollLeft\";\nvar _scrollTop = \"scrollTop\";\nvar _onScroll = function _onScroll2() {\n return _normalizer && _normalizer.isPressed || _scrollers.cache++;\n};\nvar _scrollCacheFunc = function _scrollCacheFunc2(f, doNotCache) {\n var cachingFunc = function cachingFunc2(value) {\n if (value || value === 0) {\n _startup && (_win.history.scrollRestoration = \"manual\");\n var isNormalizing = _normalizer && _normalizer.isPressed;\n value = cachingFunc2.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0);\n f(value);\n cachingFunc2.cacheID = _scrollers.cache;\n isNormalizing && _bridge(\"ss\", value);\n } else if (doNotCache || _scrollers.cache !== cachingFunc2.cacheID || _bridge(\"ref\")) {\n cachingFunc2.cacheID = _scrollers.cache;\n cachingFunc2.v = f();\n }\n return cachingFunc2.v + cachingFunc2.offset;\n };\n cachingFunc.offset = 0;\n return f && cachingFunc;\n};\nvar _horizontal = {\n s: _scrollLeft,\n p: \"left\",\n p2: \"Left\",\n os: \"right\",\n os2: \"Right\",\n d: \"width\",\n d2: \"Width\",\n a: \"x\",\n sc: _scrollCacheFunc(function(value) {\n return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0;\n })\n};\nvar _vertical = {\n s: _scrollTop,\n p: \"top\",\n p2: \"Top\",\n os: \"bottom\",\n os2: \"Bottom\",\n d: \"height\",\n d2: \"Height\",\n a: \"y\",\n op: _horizontal,\n sc: _scrollCacheFunc(function(value) {\n return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0;\n })\n};\nvar _getTarget = function _getTarget2(t, self) {\n return (self && self._ctx && self._ctx.selector || gsap.utils.toArray)(t)[0] || (typeof t === \"string\" && gsap.config().nullTargetWarn !== false ? console.warn(\"Element not found:\", t) : null);\n};\nvar _getScrollFunc = function _getScrollFunc2(element, _ref) {\n var s = _ref.s, sc = _ref.sc;\n _isViewport(element) && (element = _doc.scrollingElement || _docEl);\n var i = _scrollers.indexOf(element), offset = sc === _vertical.sc ? 1 : 2;\n !~i && (i = _scrollers.push(element) - 1);\n _scrollers[i + offset] || _addListener(element, \"scroll\", _onScroll);\n var prev = _scrollers[i + offset], func = prev || (_scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function(value) {\n return arguments.length ? element[s] = value : element[s];\n })));\n func.target = element;\n prev || (func.smooth = gsap.getProperty(element, \"scrollBehavior\") === \"smooth\");\n return func;\n};\nvar _getVelocityProp = function _getVelocityProp2(value, minTimeRefresh, useDelta) {\n var v1 = value, v2 = value, t1 = _getTime(), t2 = t1, min = minTimeRefresh || 50, dropToZeroTime = Math.max(500, min * 3), update = function update2(value2, force) {\n var t = _getTime();\n if (force || t - t1 > min) {\n v2 = v1;\n v1 = value2;\n t2 = t1;\n t1 = t;\n } else if (useDelta) {\n v1 += value2;\n } else {\n v1 = v2 + (value2 - v2) / (t - t2) * (t1 - t2);\n }\n }, reset = function reset2() {\n v2 = v1 = useDelta ? 0 : v1;\n t2 = t1 = 0;\n }, getVelocity = function getVelocity2(latestValue) {\n var tOld = t2, vOld = v2, t = _getTime();\n (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);\n return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1e3;\n };\n return {\n update,\n reset,\n getVelocity\n };\n};\nvar _getEvent = function _getEvent2(e, preventDefault) {\n preventDefault && !e._gsapAllow && e.preventDefault();\n return e.changedTouches ? e.changedTouches[0] : e;\n};\nvar _getAbsoluteMax = function _getAbsoluteMax2(a) {\n var max = Math.max.apply(Math, a), min = Math.min.apply(Math, a);\n return Math.abs(max) >= Math.abs(min) ? max : min;\n};\nvar _setScrollTrigger = function _setScrollTrigger2() {\n ScrollTrigger = gsap.core.globals().ScrollTrigger;\n ScrollTrigger && ScrollTrigger.core && _integrate();\n};\nvar _initCore = function _initCore2(core) {\n gsap = core || _getGSAP();\n if (!_coreInitted && gsap && typeof document !== \"undefined\" && document.body) {\n _win = window;\n _doc = document;\n _docEl = _doc.documentElement;\n _body = _doc.body;\n _root = [_win, _doc, _docEl, _body];\n _clamp = gsap.utils.clamp;\n _context = gsap.core.context || function() {\n };\n _pointerType = \"onpointerenter\" in _body ? \"pointer\" : \"mouse\";\n _isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia(\"(hover: none), (pointer: coarse)\").matches ? 1 : \"ontouchstart\" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0;\n _eventTypes = Observer.eventTypes = (\"ontouchstart\" in _docEl ? \"touchstart,touchmove,touchcancel,touchend\" : !(\"onpointerdown\" in _docEl) ? \"mousedown,mousemove,mouseup,mouseup\" : \"pointerdown,pointermove,pointercancel,pointerup\").split(\",\");\n setTimeout(function() {\n return _startup = 0;\n }, 500);\n _setScrollTrigger();\n _coreInitted = 1;\n }\n return _coreInitted;\n};\n_horizontal.op = _vertical;\n_scrollers.cache = 0;\nvar Observer = /* @__PURE__ */ function() {\n function Observer2(vars) {\n this.init(vars);\n }\n var _proto = Observer2.prototype;\n _proto.init = function init(vars) {\n _coreInitted || _initCore(gsap) || console.warn(\"Please gsap.registerPlugin(Observer)\");\n ScrollTrigger || _setScrollTrigger();\n var tolerance = vars.tolerance, dragMinimum = vars.dragMinimum, type = vars.type, target = vars.target, lineHeight = vars.lineHeight, debounce = vars.debounce, preventDefault = vars.preventDefault, onStop = vars.onStop, onStopDelay = vars.onStopDelay, ignore = vars.ignore, wheelSpeed = vars.wheelSpeed, event = vars.event, onDragStart = vars.onDragStart, onDragEnd = vars.onDragEnd, onDrag = vars.onDrag, onPress = vars.onPress, onRelease = vars.onRelease, onRight = vars.onRight, onLeft = vars.onLeft, onUp = vars.onUp, onDown = vars.onDown, onChangeX = vars.onChangeX, onChangeY = vars.onChangeY, onChange = vars.onChange, onToggleX = vars.onToggleX, onToggleY = vars.onToggleY, onHover = vars.onHover, onHoverEnd = vars.onHoverEnd, onMove = vars.onMove, ignoreCheck = vars.ignoreCheck, isNormalizer = vars.isNormalizer, onGestureStart = vars.onGestureStart, onGestureEnd = vars.onGestureEnd, onWheel = vars.onWheel, onEnable = vars.onEnable, onDisable = vars.onDisable, onClick = vars.onClick, scrollSpeed = vars.scrollSpeed, capture = vars.capture, allowClicks = vars.allowClicks, lockAxis = vars.lockAxis, onLockAxis = vars.onLockAxis;\n this.target = target = _getTarget(target) || _docEl;\n this.vars = vars;\n ignore && (ignore = gsap.utils.toArray(ignore));\n tolerance = tolerance || 1e-9;\n dragMinimum = dragMinimum || 0;\n wheelSpeed = wheelSpeed || 1;\n scrollSpeed = scrollSpeed || 1;\n type = type || \"wheel,touch,pointer\";\n debounce = debounce !== false;\n lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22);\n var id, onStopDelayedCall, dragged, moved, wheeled, locked, axis, self = this, prevDeltaX = 0, prevDeltaY = 0, passive = vars.passive || !preventDefault, scrollFuncX = _getScrollFunc(target, _horizontal), scrollFuncY = _getScrollFunc(target, _vertical), scrollX = scrollFuncX(), scrollY = scrollFuncY(), limitToTouch = ~type.indexOf(\"touch\") && !~type.indexOf(\"pointer\") && _eventTypes[0] === \"pointerdown\", isViewport = _isViewport(target), ownerDoc = target.ownerDocument || _doc, deltaX = [0, 0, 0], deltaY = [0, 0, 0], onClickTime = 0, clickCapture = function clickCapture2() {\n return onClickTime = _getTime();\n }, _ignoreCheck = function _ignoreCheck2(e, isPointerOrTouch) {\n return (self.event = e) && ignore && ~ignore.indexOf(e.target) || isPointerOrTouch && limitToTouch && e.pointerType !== \"touch\" || ignoreCheck && ignoreCheck(e, isPointerOrTouch);\n }, onStopFunc = function onStopFunc2() {\n self._vx.reset();\n self._vy.reset();\n onStopDelayedCall.pause();\n onStop && onStop(self);\n }, update = function update2() {\n var dx = self.deltaX = _getAbsoluteMax(deltaX), dy = self.deltaY = _getAbsoluteMax(deltaY), changedX = Math.abs(dx) >= tolerance, changedY = Math.abs(dy) >= tolerance;\n onChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY);\n if (changedX) {\n onRight && self.deltaX > 0 && onRight(self);\n onLeft && self.deltaX < 0 && onLeft(self);\n onChangeX && onChangeX(self);\n onToggleX && self.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self);\n prevDeltaX = self.deltaX;\n deltaX[0] = deltaX[1] = deltaX[2] = 0;\n }\n if (changedY) {\n onDown && self.deltaY > 0 && onDown(self);\n onUp && self.deltaY < 0 && onUp(self);\n onChangeY && onChangeY(self);\n onToggleY && self.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self);\n prevDeltaY = self.deltaY;\n deltaY[0] = deltaY[1] = deltaY[2] = 0;\n }\n if (moved || dragged) {\n onMove && onMove(self);\n if (dragged) {\n onDrag(self);\n dragged = false;\n }\n moved = false;\n }\n locked && !(locked = false) && onLockAxis && onLockAxis(self);\n if (wheeled) {\n onWheel(self);\n wheeled = false;\n }\n id = 0;\n }, onDelta = function onDelta2(x, y, index) {\n deltaX[index] += x;\n deltaY[index] += y;\n self._vx.update(x);\n self._vy.update(y);\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n }, onTouchOrPointerDelta = function onTouchOrPointerDelta2(x, y) {\n if (lockAxis && !axis) {\n self.axis = axis = Math.abs(x) > Math.abs(y) ? \"x\" : \"y\";\n locked = true;\n }\n if (axis !== \"y\") {\n deltaX[2] += x;\n self._vx.update(x, true);\n }\n if (axis !== \"x\") {\n deltaY[2] += y;\n self._vy.update(y, true);\n }\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n }, _onDrag = function _onDrag2(e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n e = _getEvent(e, preventDefault);\n var x = e.clientX, y = e.clientY, dx = x - self.x, dy = y - self.y, isDragging = self.isDragging;\n self.x = x;\n self.y = y;\n if (isDragging || Math.abs(self.startX - x) >= dragMinimum || Math.abs(self.startY - y) >= dragMinimum) {\n onDrag && (dragged = true);\n isDragging || (self.isDragging = true);\n onTouchOrPointerDelta(dx, dy);\n isDragging || onDragStart && onDragStart(self);\n }\n }, _onPress = self.onPress = function(e) {\n if (_ignoreCheck(e, 1) || e && e.button) {\n return;\n }\n self.axis = axis = null;\n onStopDelayedCall.pause();\n self.isPressed = true;\n e = _getEvent(e);\n prevDeltaX = prevDeltaY = 0;\n self.startX = self.x = e.clientX;\n self.startY = self.y = e.clientY;\n self._vx.reset();\n self._vy.reset();\n _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true);\n self.deltaX = self.deltaY = 0;\n onPress && onPress(self);\n }, _onRelease = self.onRelease = function(e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n var isTrackingDrag = !isNaN(self.y - self.startY), wasDragging = self.isDragging, isDragNotClick = wasDragging && (Math.abs(self.x - self.startX) > 3 || Math.abs(self.y - self.startY) > 3), eventData = _getEvent(e);\n if (!isDragNotClick && isTrackingDrag) {\n self._vx.reset();\n self._vy.reset();\n if (preventDefault && allowClicks) {\n gsap.delayedCall(0.08, function() {\n if (_getTime() - onClickTime > 300 && !e.defaultPrevented) {\n if (e.target.click) {\n e.target.click();\n } else if (ownerDoc.createEvent) {\n var syntheticEvent = ownerDoc.createEvent(\"MouseEvents\");\n syntheticEvent.initMouseEvent(\"click\", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);\n e.target.dispatchEvent(syntheticEvent);\n }\n }\n });\n }\n }\n self.isDragging = self.isGesturing = self.isPressed = false;\n onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true);\n onDragEnd && wasDragging && onDragEnd(self);\n onRelease && onRelease(self, isDragNotClick);\n }, _onGestureStart = function _onGestureStart2(e) {\n return e.touches && e.touches.length > 1 && (self.isGesturing = true) && onGestureStart(e, self.isDragging);\n }, _onGestureEnd = function _onGestureEnd2() {\n return (self.isGesturing = false) || onGestureEnd(self);\n }, onScroll = function onScroll2(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n var x = scrollFuncX(), y = scrollFuncY();\n onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1);\n scrollX = x;\n scrollY = y;\n onStop && onStopDelayedCall.restart(true);\n }, _onWheel = function _onWheel2(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n e = _getEvent(e, preventDefault);\n onWheel && (wheeled = true);\n var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed;\n onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0);\n onStop && !isNormalizer && onStopDelayedCall.restart(true);\n }, _onMove = function _onMove2(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n var x = e.clientX, y = e.clientY, dx = x - self.x, dy = y - self.y;\n self.x = x;\n self.y = y;\n moved = true;\n onStop && onStopDelayedCall.restart(true);\n (dx || dy) && onTouchOrPointerDelta(dx, dy);\n }, _onHover = function _onHover2(e) {\n self.event = e;\n onHover(self);\n }, _onHoverEnd = function _onHoverEnd2(e) {\n self.event = e;\n onHoverEnd(self);\n }, _onClick = function _onClick2(e) {\n return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self);\n };\n onStopDelayedCall = self._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause();\n self.deltaX = self.deltaY = 0;\n self._vx = _getVelocityProp(0, 50, true);\n self._vy = _getVelocityProp(0, 50, true);\n self.scrollX = scrollFuncX;\n self.scrollY = scrollFuncY;\n self.isDragging = self.isGesturing = self.isPressed = false;\n _context(this);\n self.enable = function(e) {\n if (!self.isEnabled) {\n _addListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n type.indexOf(\"scroll\") >= 0 && _addListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, passive, capture);\n type.indexOf(\"wheel\") >= 0 && _addListener(target, \"wheel\", _onWheel, passive, capture);\n if (type.indexOf(\"touch\") >= 0 && _isTouch || type.indexOf(\"pointer\") >= 0) {\n _addListener(target, _eventTypes[0], _onPress, passive, capture);\n _addListener(ownerDoc, _eventTypes[2], _onRelease);\n _addListener(ownerDoc, _eventTypes[3], _onRelease);\n allowClicks && _addListener(target, \"click\", clickCapture, true, true);\n onClick && _addListener(target, \"click\", _onClick);\n onGestureStart && _addListener(ownerDoc, \"gesturestart\", _onGestureStart);\n onGestureEnd && _addListener(ownerDoc, \"gestureend\", _onGestureEnd);\n onHover && _addListener(target, _pointerType + \"enter\", _onHover);\n onHoverEnd && _addListener(target, _pointerType + \"leave\", _onHoverEnd);\n onMove && _addListener(target, _pointerType + \"move\", _onMove);\n }\n self.isEnabled = true;\n e && e.type && _onPress(e);\n onEnable && onEnable(self);\n }\n return self;\n };\n self.disable = function() {\n if (self.isEnabled) {\n _observers.filter(function(o) {\n return o !== self && _isViewport(o.target);\n }).length || _removeListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n if (self.isPressed) {\n self._vx.reset();\n self._vy.reset();\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n }\n _removeListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, capture);\n _removeListener(target, \"wheel\", _onWheel, capture);\n _removeListener(target, _eventTypes[0], _onPress, capture);\n _removeListener(ownerDoc, _eventTypes[2], _onRelease);\n _removeListener(ownerDoc, _eventTypes[3], _onRelease);\n _removeListener(target, \"click\", clickCapture, true);\n _removeListener(target, \"click\", _onClick);\n _removeListener(ownerDoc, \"gesturestart\", _onGestureStart);\n _removeListener(ownerDoc, \"gestureend\", _onGestureEnd);\n _removeListener(target, _pointerType + \"enter\", _onHover);\n _removeListener(target, _pointerType + \"leave\", _onHoverEnd);\n _removeListener(target, _pointerType + \"move\", _onMove);\n self.isEnabled = self.isPressed = self.isDragging = false;\n onDisable && onDisable(self);\n }\n };\n self.kill = self.revert = function() {\n self.disable();\n var i = _observers.indexOf(self);\n i >= 0 && _observers.splice(i, 1);\n _normalizer === self && (_normalizer = 0);\n };\n _observers.push(self);\n isNormalizer && _isViewport(target) && (_normalizer = self);\n self.enable(event);\n };\n _createClass(Observer2, [{\n key: \"velocityX\",\n get: function get() {\n return this._vx.getVelocity();\n }\n }, {\n key: \"velocityY\",\n get: function get() {\n return this._vy.getVelocity();\n }\n }]);\n return Observer2;\n}();\nObserver.version = \"3.12.5\";\nObserver.create = function(vars) {\n return new Observer(vars);\n};\nObserver.register = _initCore;\nObserver.getAll = function() {\n return _observers.slice();\n};\nObserver.getById = function(id) {\n return _observers.filter(function(o) {\n return o.vars.id === id;\n })[0];\n};\n_getGSAP() && gsap.registerPlugin(Observer);\n\n// node_modules/gsap/ScrollTrigger.js\nvar gsap2;\nvar _coreInitted2;\nvar _win2;\nvar _doc2;\nvar _docEl2;\nvar _body2;\nvar _root2;\nvar _resizeDelay;\nvar _toArray;\nvar _clamp2;\nvar _time2;\nvar _syncInterval;\nvar _refreshing;\nvar _pointerIsDown;\nvar _transformProp;\nvar _i;\nvar _prevWidth;\nvar _prevHeight;\nvar _autoRefresh;\nvar _sort;\nvar _suppressOverwrites;\nvar _ignoreResize;\nvar _normalizer2;\nvar _ignoreMobileResize;\nvar _baseScreenHeight;\nvar _baseScreenWidth;\nvar _fixIOSBug;\nvar _context2;\nvar _scrollRestoration;\nvar _div100vh;\nvar _100vh;\nvar _isReverted;\nvar _clampingMax;\nvar _limitCallbacks;\nvar _startup2 = 1;\nvar _getTime2 = Date.now;\nvar _time1 = _getTime2();\nvar _lastScrollTime = 0;\nvar _enabled = 0;\nvar _parseClamp = function _parseClamp2(value, type, self) {\n var clamp = _isString(value) && (value.substr(0, 6) === \"clamp(\" || value.indexOf(\"max\") > -1);\n self[\"_\" + type + \"Clamp\"] = clamp;\n return clamp ? value.substr(6, value.length - 7) : value;\n};\nvar _keepClamp = function _keepClamp2(value, clamp) {\n return clamp && (!_isString(value) || value.substr(0, 6) !== \"clamp(\") ? \"clamp(\" + value + \")\" : value;\n};\nvar _rafBugFix = function _rafBugFix2() {\n return _enabled && requestAnimationFrame(_rafBugFix2);\n};\nvar _pointerDownHandler = function _pointerDownHandler2() {\n return _pointerIsDown = 1;\n};\nvar _pointerUpHandler = function _pointerUpHandler2() {\n return _pointerIsDown = 0;\n};\nvar _passThrough = function _passThrough2(v) {\n return v;\n};\nvar _round = function _round2(value) {\n return Math.round(value * 1e5) / 1e5 || 0;\n};\nvar _windowExists = function _windowExists2() {\n return typeof window !== \"undefined\";\n};\nvar _getGSAP3 = function _getGSAP4() {\n return gsap2 || _windowExists() && (gsap2 = window.gsap) && gsap2.registerPlugin && gsap2;\n};\nvar _isViewport3 = function _isViewport4(e) {\n return !!~_root2.indexOf(e);\n};\nvar _getViewportDimension = function _getViewportDimension2(dimensionProperty) {\n return (dimensionProperty === \"Height\" ? _100vh : _win2[\"inner\" + dimensionProperty]) || _docEl2[\"client\" + dimensionProperty] || _body2[\"client\" + dimensionProperty];\n};\nvar _getBoundsFunc = function _getBoundsFunc2(element) {\n return _getProxyProp(element, \"getBoundingClientRect\") || (_isViewport3(element) ? function() {\n _winOffsets.width = _win2.innerWidth;\n _winOffsets.height = _100vh;\n return _winOffsets;\n } : function() {\n return _getBounds(element);\n });\n};\nvar _getSizeFunc = function _getSizeFunc2(scroller, isViewport, _ref) {\n var d = _ref.d, d2 = _ref.d2, a = _ref.a;\n return (a = _getProxyProp(scroller, \"getBoundingClientRect\")) ? function() {\n return a()[d];\n } : function() {\n return (isViewport ? _getViewportDimension(d2) : scroller[\"client\" + d2]) || 0;\n };\n};\nvar _getOffsetsFunc = function _getOffsetsFunc2(element, isViewport) {\n return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function() {\n return _winOffsets;\n };\n};\nvar _maxScroll = function _maxScroll2(element, _ref2) {\n var s = _ref2.s, d2 = _ref2.d2, d = _ref2.d, a = _ref2.a;\n return Math.max(0, (s = \"scroll\" + d2) && (a = _getProxyProp(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport3(element) ? (_docEl2[s] || _body2[s]) - _getViewportDimension(d2) : element[s] - element[\"offset\" + d2]);\n};\nvar _iterateAutoRefresh = function _iterateAutoRefresh2(func, events) {\n for (var i = 0; i < _autoRefresh.length; i += 3) {\n (!events || ~events.indexOf(_autoRefresh[i + 1])) && func(_autoRefresh[i], _autoRefresh[i + 1], _autoRefresh[i + 2]);\n }\n};\nvar _isString = function _isString2(value) {\n return typeof value === \"string\";\n};\nvar _isFunction = function _isFunction2(value) {\n return typeof value === \"function\";\n};\nvar _isNumber = function _isNumber2(value) {\n return typeof value === \"number\";\n};\nvar _isObject = function _isObject2(value) {\n return typeof value === \"object\";\n};\nvar _endAnimation = function _endAnimation2(animation, reversed, pause) {\n return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause();\n};\nvar _callback = function _callback2(self, func) {\n if (self.enabled) {\n var result = self._ctx ? self._ctx.add(function() {\n return func(self);\n }) : func(self);\n result && result.totalTime && (self.callbackAnimation = result);\n }\n};\nvar _abs = Math.abs;\nvar _left = \"left\";\nvar _top = \"top\";\nvar _right = \"right\";\nvar _bottom = \"bottom\";\nvar _width = \"width\";\nvar _height = \"height\";\nvar _Right = \"Right\";\nvar _Left = \"Left\";\nvar _Top = \"Top\";\nvar _Bottom = \"Bottom\";\nvar _padding = \"padding\";\nvar _margin = \"margin\";\nvar _Width = \"Width\";\nvar _Height = \"Height\";\nvar _px = \"px\";\nvar _getComputedStyle = function _getComputedStyle2(element) {\n return _win2.getComputedStyle(element);\n};\nvar _makePositionable = function _makePositionable2(element) {\n var position = _getComputedStyle(element).position;\n element.style.position = position === \"absolute\" || position === \"fixed\" ? position : \"relative\";\n};\nvar _setDefaults = function _setDefaults2(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n return obj;\n};\nvar _getBounds = function _getBounds2(element, withoutTransforms) {\n var tween = withoutTransforms && _getComputedStyle(element)[_transformProp] !== \"matrix(1, 0, 0, 1, 0, 0)\" && gsap2.to(element, {\n x: 0,\n y: 0,\n xPercent: 0,\n yPercent: 0,\n rotation: 0,\n rotationX: 0,\n rotationY: 0,\n scale: 1,\n skewX: 0,\n skewY: 0\n }).progress(1), bounds = element.getBoundingClientRect();\n tween && tween.progress(0).kill();\n return bounds;\n};\nvar _getSize = function _getSize2(element, _ref3) {\n var d2 = _ref3.d2;\n return element[\"offset\" + d2] || element[\"client\" + d2] || 0;\n};\nvar _getLabelRatioArray = function _getLabelRatioArray2(timeline) {\n var a = [], labels = timeline.labels, duration = timeline.duration(), p;\n for (p in labels) {\n a.push(labels[p] / duration);\n }\n return a;\n};\nvar _getClosestLabel = function _getClosestLabel2(animation) {\n return function(value) {\n return gsap2.utils.snap(_getLabelRatioArray(animation), value);\n };\n};\nvar _snapDirectional = function _snapDirectional2(snapIncrementOrArray) {\n var snap = gsap2.utils.snap(snapIncrementOrArray), a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function(a2, b) {\n return a2 - b;\n });\n return a ? function(value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n var i;\n if (!direction) {\n return snap(value);\n }\n if (direction > 0) {\n value -= threshold;\n for (i = 0; i < a.length; i++) {\n if (a[i] >= value) {\n return a[i];\n }\n }\n return a[i - 1];\n } else {\n i = a.length;\n value += threshold;\n while (i--) {\n if (a[i] <= value) {\n return a[i];\n }\n }\n }\n return a[0];\n } : function(value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n var snapped = snap(value);\n return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray);\n };\n};\nvar _getLabelAtDirection = function _getLabelAtDirection2(timeline) {\n return function(value, st) {\n return _snapDirectional(_getLabelRatioArray(timeline))(value, st.direction);\n };\n};\nvar _multiListener = function _multiListener2(func, element, types, callback) {\n return types.split(\",\").forEach(function(type) {\n return func(element, type, callback);\n });\n};\nvar _addListener3 = function _addListener4(element, type, func, nonPassive, capture) {\n return element.addEventListener(type, func, {\n passive: !nonPassive,\n capture: !!capture\n });\n};\nvar _removeListener3 = function _removeListener4(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n};\nvar _wheelListener = function _wheelListener2(func, el, scrollFunc) {\n scrollFunc = scrollFunc && scrollFunc.wheelHandler;\n if (scrollFunc) {\n func(el, \"wheel\", scrollFunc);\n func(el, \"touchmove\", scrollFunc);\n }\n};\nvar _markerDefaults = {\n startColor: \"green\",\n endColor: \"red\",\n indent: 0,\n fontSize: \"16px\",\n fontWeight: \"normal\"\n};\nvar _defaults = {\n toggleActions: \"play\",\n anticipatePin: 0\n};\nvar _keywords = {\n top: 0,\n left: 0,\n center: 0.5,\n bottom: 1,\n right: 1\n};\nvar _offsetToPx = function _offsetToPx2(value, size) {\n if (_isString(value)) {\n var eqIndex = value.indexOf(\"=\"), relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0;\n if (~eqIndex) {\n value.indexOf(\"%\") > eqIndex && (relative *= size / 100);\n value = value.substr(0, eqIndex - 1);\n }\n value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf(\"%\") ? parseFloat(value) * size / 100 : parseFloat(value) || 0);\n }\n return value;\n};\nvar _createMarker = function _createMarker2(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) {\n var startColor = _ref4.startColor, endColor = _ref4.endColor, fontSize = _ref4.fontSize, indent = _ref4.indent, fontWeight = _ref4.fontWeight;\n var e = _doc2.createElement(\"div\"), useFixedPosition = _isViewport3(container) || _getProxyProp(container, \"pinType\") === \"fixed\", isScroller = type.indexOf(\"scroller\") !== -1, parent = useFixedPosition ? _body2 : container, isStart = type.indexOf(\"start\") !== -1, color = isStart ? startColor : endColor, css = \"border-color:\" + color + \";font-size:\" + fontSize + \";color:\" + color + \";font-weight:\" + fontWeight + \";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;\";\n css += \"position:\" + ((isScroller || containerAnimation) && useFixedPosition ? \"fixed;\" : \"absolute;\");\n (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + \":\" + (offset + parseFloat(indent)) + \"px;\");\n matchWidthEl && (css += \"box-sizing:border-box;text-align:left;width:\" + matchWidthEl.offsetWidth + \"px;\");\n e._isStart = isStart;\n e.setAttribute(\"class\", \"gsap-marker-\" + type + (name ? \" marker-\" + name : \"\"));\n e.style.cssText = css;\n e.innerText = name || name === 0 ? type + \"-\" + name : type;\n parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e);\n e._offset = e[\"offset\" + direction.op.d2];\n _positionMarker(e, 0, direction, isStart);\n return e;\n};\nvar _positionMarker = function _positionMarker2(marker, start, direction, flipped) {\n var vars = {\n display: \"block\"\n }, side = direction[flipped ? \"os2\" : \"p2\"], oppositeSide = direction[flipped ? \"p2\" : \"os2\"];\n marker._isFlipped = flipped;\n vars[direction.a + \"Percent\"] = flipped ? -100 : 0;\n vars[direction.a] = flipped ? \"1px\" : 0;\n vars[\"border\" + side + _Width] = 1;\n vars[\"border\" + oppositeSide + _Width] = 0;\n vars[direction.p] = start + \"px\";\n gsap2.set(marker, vars);\n};\nvar _triggers = [];\nvar _ids = {};\nvar _rafID;\nvar _sync = function _sync2() {\n return _getTime2() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll)));\n};\nvar _onScroll3 = function _onScroll4() {\n if (!_normalizer2 || !_normalizer2.isPressed || _normalizer2.startX > _body2.clientWidth) {\n _scrollers.cache++;\n if (_normalizer2) {\n _rafID || (_rafID = requestAnimationFrame(_updateAll));\n } else {\n _updateAll();\n }\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime2();\n }\n};\nvar _setBaseDimensions = function _setBaseDimensions2() {\n _baseScreenWidth = _win2.innerWidth;\n _baseScreenHeight = _win2.innerHeight;\n};\nvar _onResize = function _onResize2() {\n _scrollers.cache++;\n !_refreshing && !_ignoreResize && !_doc2.fullscreenElement && !_doc2.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win2.innerWidth || Math.abs(_win2.innerHeight - _baseScreenHeight) > _win2.innerHeight * 0.25) && _resizeDelay.restart(true);\n};\nvar _listeners = {};\nvar _emptyArray = [];\nvar _softRefresh = function _softRefresh2() {\n return _removeListener3(ScrollTrigger2, \"scrollEnd\", _softRefresh2) || _refreshAll(true);\n};\nvar _dispatch = function _dispatch2(type) {\n return _listeners[type] && _listeners[type].map(function(f) {\n return f();\n }) || _emptyArray;\n};\nvar _savedStyles = [];\nvar _revertRecorded = function _revertRecorded2(media) {\n for (var i = 0; i < _savedStyles.length; i += 5) {\n if (!media || _savedStyles[i + 4] && _savedStyles[i + 4].query === media) {\n _savedStyles[i].style.cssText = _savedStyles[i + 1];\n _savedStyles[i].getBBox && _savedStyles[i].setAttribute(\"transform\", _savedStyles[i + 2] || \"\");\n _savedStyles[i + 3].uncache = 1;\n }\n }\n};\nvar _revertAll = function _revertAll2(kill, media) {\n var trigger;\n for (_i = 0; _i < _triggers.length; _i++) {\n trigger = _triggers[_i];\n if (trigger && (!media || trigger._ctx === media)) {\n if (kill) {\n trigger.kill(1);\n } else {\n trigger.revert(true, true);\n }\n }\n }\n _isReverted = true;\n media && _revertRecorded(media);\n media || _dispatch(\"revert\");\n};\nvar _clearScrollMemory = function _clearScrollMemory2(scrollRestoration, force) {\n _scrollers.cache++;\n (force || !_refreshingAll) && _scrollers.forEach(function(obj) {\n return _isFunction(obj) && obj.cacheID++ && (obj.rec = 0);\n });\n _isString(scrollRestoration) && (_win2.history.scrollRestoration = _scrollRestoration = scrollRestoration);\n};\nvar _refreshingAll;\nvar _refreshID = 0;\nvar _queueRefreshID;\nvar _queueRefreshAll = function _queueRefreshAll2() {\n if (_queueRefreshID !== _refreshID) {\n var id = _queueRefreshID = _refreshID;\n requestAnimationFrame(function() {\n return id === _refreshID && _refreshAll(true);\n });\n }\n};\nvar _refresh100vh = function _refresh100vh2() {\n _body2.appendChild(_div100vh);\n _100vh = !_normalizer2 && _div100vh.offsetHeight || _win2.innerHeight;\n _body2.removeChild(_div100vh);\n};\nvar _hideAllMarkers = function _hideAllMarkers2(hide) {\n return _toArray(\".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end\").forEach(function(el) {\n return el.style.display = hide ? \"none\" : \"block\";\n });\n};\nvar _refreshAll = function _refreshAll2(force, skipRevert) {\n if (_lastScrollTime && !force && !_isReverted) {\n _addListener3(ScrollTrigger2, \"scrollEnd\", _softRefresh);\n return;\n }\n _refresh100vh();\n _refreshingAll = ScrollTrigger2.isRefreshing = true;\n _scrollers.forEach(function(obj) {\n return _isFunction(obj) && ++obj.cacheID && (obj.rec = obj());\n });\n var refreshInits = _dispatch(\"refreshInit\");\n _sort && ScrollTrigger2.sort();\n skipRevert || _revertAll();\n _scrollers.forEach(function(obj) {\n if (_isFunction(obj)) {\n obj.smooth && (obj.target.style.scrollBehavior = \"auto\");\n obj(0);\n }\n });\n _triggers.slice(0).forEach(function(t) {\n return t.refresh();\n });\n _isReverted = false;\n _triggers.forEach(function(t) {\n if (t._subPinOffset && t.pin) {\n var prop = t.vars.horizontal ? \"offsetWidth\" : \"offsetHeight\", original = t.pin[prop];\n t.revert(true, 1);\n t.adjustPinSpacing(t.pin[prop] - original);\n t.refresh();\n }\n });\n _clampingMax = 1;\n _hideAllMarkers(true);\n _triggers.forEach(function(t) {\n var max = _maxScroll(t.scroller, t._dir), endClamp = t.vars.end === \"max\" || t._endClamp && t.end > max, startClamp = t._startClamp && t.start >= max;\n (endClamp || startClamp) && t.setPositions(startClamp ? max - 1 : t.start, endClamp ? Math.max(startClamp ? max : t.start + 1, max) : t.end, true);\n });\n _hideAllMarkers(false);\n _clampingMax = 0;\n refreshInits.forEach(function(result) {\n return result && result.render && result.render(-1);\n });\n _scrollers.forEach(function(obj) {\n if (_isFunction(obj)) {\n obj.smooth && requestAnimationFrame(function() {\n return obj.target.style.scrollBehavior = \"smooth\";\n });\n obj.rec && obj(obj.rec);\n }\n });\n _clearScrollMemory(_scrollRestoration, 1);\n _resizeDelay.pause();\n _refreshID++;\n _refreshingAll = 2;\n _updateAll(2);\n _triggers.forEach(function(t) {\n return _isFunction(t.vars.onRefresh) && t.vars.onRefresh(t);\n });\n _refreshingAll = ScrollTrigger2.isRefreshing = false;\n _dispatch(\"refresh\");\n};\nvar _lastScroll = 0;\nvar _direction = 1;\nvar _primary;\nvar _updateAll = function _updateAll2(force) {\n if (force === 2 || !_refreshingAll && !_isReverted) {\n ScrollTrigger2.isUpdating = true;\n _primary && _primary.update(0);\n var l = _triggers.length, time = _getTime2(), recordVelocity = time - _time1 >= 50, scroll = l && _triggers[0].scroll();\n _direction = _lastScroll > scroll ? -1 : 1;\n _refreshingAll || (_lastScroll = scroll);\n if (recordVelocity) {\n if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) {\n _lastScrollTime = 0;\n _dispatch(\"scrollEnd\");\n }\n _time2 = _time1;\n _time1 = time;\n }\n if (_direction < 0) {\n _i = l;\n while (_i-- > 0) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n _direction = 1;\n } else {\n for (_i = 0; _i < l; _i++) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n }\n ScrollTrigger2.isUpdating = false;\n }\n _rafID = 0;\n};\nvar _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, \"display\", \"flexShrink\", \"float\", \"zIndex\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRowStart\", \"gridRowEnd\", \"gridArea\", \"justifySelf\", \"alignSelf\", \"placeSelf\", \"order\"];\nvar _stateProps = _propNamesToCopy.concat([_width, _height, \"boxSizing\", \"max\" + _Width, \"max\" + _Height, \"position\", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]);\nvar _swapPinOut = function _swapPinOut2(pin, spacer, state) {\n _setState(state);\n var cache = pin._gsap;\n if (cache.spacerIsNative) {\n _setState(cache.spacerState);\n } else if (pin._gsap.swappedIn) {\n var parent = spacer.parentNode;\n if (parent) {\n parent.insertBefore(pin, spacer);\n parent.removeChild(spacer);\n }\n }\n pin._gsap.swappedIn = false;\n};\nvar _swapPinIn = function _swapPinIn2(pin, spacer, cs, spacerState) {\n if (!pin._gsap.swappedIn) {\n var i = _propNamesToCopy.length, spacerStyle = spacer.style, pinStyle = pin.style, p;\n while (i--) {\n p = _propNamesToCopy[i];\n spacerStyle[p] = cs[p];\n }\n spacerStyle.position = cs.position === \"absolute\" ? \"absolute\" : \"relative\";\n cs.display === \"inline\" && (spacerStyle.display = \"inline-block\");\n pinStyle[_bottom] = pinStyle[_right] = \"auto\";\n spacerStyle.flexBasis = cs.flexBasis || \"auto\";\n spacerStyle.overflow = \"visible\";\n spacerStyle.boxSizing = \"border-box\";\n spacerStyle[_width] = _getSize(pin, _horizontal) + _px;\n spacerStyle[_height] = _getSize(pin, _vertical) + _px;\n spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = \"0\";\n _setState(spacerState);\n pinStyle[_width] = pinStyle[\"max\" + _Width] = cs[_width];\n pinStyle[_height] = pinStyle[\"max\" + _Height] = cs[_height];\n pinStyle[_padding] = cs[_padding];\n if (pin.parentNode !== spacer) {\n pin.parentNode.insertBefore(spacer, pin);\n spacer.appendChild(pin);\n }\n pin._gsap.swappedIn = true;\n }\n};\nvar _capsExp = /([A-Z])/g;\nvar _setState = function _setState2(state) {\n if (state) {\n var style = state.t.style, l = state.length, i = 0, p, value;\n (state.t._gsap || gsap2.core.getCache(state.t)).uncache = 1;\n for (; i < l; i += 2) {\n value = state[i + 1];\n p = state[i];\n if (value) {\n style[p] = value;\n } else if (style[p]) {\n style.removeProperty(p.replace(_capsExp, \"-$1\").toLowerCase());\n }\n }\n }\n};\nvar _getState = function _getState2(element) {\n var l = _stateProps.length, style = element.style, state = [], i = 0;\n for (; i < l; i++) {\n state.push(_stateProps[i], style[_stateProps[i]]);\n }\n state.t = element;\n return state;\n};\nvar _copyState = function _copyState2(state, override, omitOffsets) {\n var result = [], l = state.length, i = omitOffsets ? 8 : 0, p;\n for (; i < l; i += 2) {\n p = state[i];\n result.push(p, p in override ? override[p] : state[i + 1]);\n }\n result.t = state.t;\n return result;\n};\nvar _winOffsets = {\n left: 0,\n top: 0\n};\nvar _parsePosition = function _parsePosition2(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) {\n _isFunction(value) && (value = value(self));\n if (_isString(value) && value.substr(0, 3) === \"max\") {\n value = scrollerMax + (value.charAt(4) === \"=\" ? _offsetToPx(\"0\" + value.substr(3), scrollerSize) : 0);\n }\n var time = containerAnimation ? containerAnimation.time() : 0, p1, p2, element;\n containerAnimation && containerAnimation.seek(0);\n isNaN(value) || (value = +value);\n if (!_isNumber(value)) {\n _isFunction(trigger) && (trigger = trigger(self));\n var offsets = (value || \"0\").split(\" \"), bounds, localOffset, globalOffset, display;\n element = _getTarget(trigger, self) || _body2;\n bounds = _getBounds(element) || {};\n if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === \"none\") {\n display = element.style.display;\n element.style.display = \"block\";\n bounds = _getBounds(element);\n display ? element.style.display = display : element.style.removeProperty(\"display\");\n }\n localOffset = _offsetToPx(offsets[0], bounds[direction.d]);\n globalOffset = _offsetToPx(offsets[1] || \"0\", scrollerSize);\n value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset;\n markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20);\n scrollerSize -= scrollerSize - globalOffset;\n } else {\n containerAnimation && (value = gsap2.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value));\n markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true);\n }\n if (clampZeroProp) {\n self[clampZeroProp] = value || -1e-3;\n value < 0 && (value = 0);\n }\n if (marker) {\n var position = value + scrollerSize, isStart = marker._isStart;\n p1 = \"scroll\" + direction.d2;\n _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body2[p1], _docEl2[p1]) : marker.parentNode[p1]) <= position + 1);\n if (useFixedPosition) {\n scrollerBounds = _getBounds(markerScroller);\n useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px);\n }\n }\n if (containerAnimation && element) {\n p1 = _getBounds(element);\n containerAnimation.seek(scrollerMax);\n p2 = _getBounds(element);\n containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p];\n value = value / containerAnimation._caScrollDist * scrollerMax;\n }\n containerAnimation && containerAnimation.seek(time);\n return containerAnimation ? value : Math.round(value);\n};\nvar _prefixExp = /(webkit|moz|length|cssText|inset)/i;\nvar _reparent = function _reparent2(element, parent, top, left) {\n if (element.parentNode !== parent) {\n var style = element.style, p, cs;\n if (parent === _body2) {\n element._stOrig = style.cssText;\n cs = _getComputedStyle(element);\n for (p in cs) {\n if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === \"string\" && p !== \"0\") {\n style[p] = cs[p];\n }\n }\n style.top = top;\n style.left = left;\n } else {\n style.cssText = element._stOrig;\n }\n gsap2.core.getCache(element).uncache = 1;\n parent.appendChild(element);\n }\n};\nvar _interruptionTracker = function _interruptionTracker2(getValueFunc, initialValue, onInterrupt) {\n var last1 = initialValue, last2 = last1;\n return function(value) {\n var current = Math.round(getValueFunc());\n if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) {\n value = current;\n onInterrupt && onInterrupt();\n }\n last2 = last1;\n last1 = value;\n return value;\n };\n};\nvar _shiftMarker = function _shiftMarker2(marker, direction, value) {\n var vars = {};\n vars[direction.p] = \"+=\" + value;\n gsap2.set(marker, vars);\n};\nvar _getTweenCreator = function _getTweenCreator2(scroller, direction) {\n var getScroll = _getScrollFunc(scroller, direction), prop = \"_scroll\" + direction.p2, getTween = function getTween2(scrollTo, vars, initialValue, change1, change2) {\n var tween = getTween2.tween, onComplete = vars.onComplete, modifiers = {};\n initialValue = initialValue || getScroll();\n var checkForInterruption = _interruptionTracker(getScroll, initialValue, function() {\n tween.kill();\n getTween2.tween = 0;\n });\n change2 = change1 && change2 || 0;\n change1 = change1 || scrollTo - initialValue;\n tween && tween.kill();\n vars[prop] = scrollTo;\n vars.inherit = false;\n vars.modifiers = modifiers;\n modifiers[prop] = function() {\n return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio);\n };\n vars.onUpdate = function() {\n _scrollers.cache++;\n getTween2.tween && _updateAll();\n };\n vars.onComplete = function() {\n getTween2.tween = 0;\n onComplete && onComplete.call(tween);\n };\n tween = getTween2.tween = gsap2.to(scroller, vars);\n return tween;\n };\n scroller[prop] = getScroll;\n getScroll.wheelHandler = function() {\n return getTween.tween && getTween.tween.kill() && (getTween.tween = 0);\n };\n _addListener3(scroller, \"wheel\", getScroll.wheelHandler);\n ScrollTrigger2.isTouch && _addListener3(scroller, \"touchmove\", getScroll.wheelHandler);\n return getTween;\n};\nvar ScrollTrigger2 = /* @__PURE__ */ function() {\n function ScrollTrigger3(vars, animation) {\n _coreInitted2 || ScrollTrigger3.register(gsap2) || console.warn(\"Please gsap.registerPlugin(ScrollTrigger)\");\n _context2(this);\n this.init(vars, animation);\n }\n var _proto = ScrollTrigger3.prototype;\n _proto.init = function init(vars, animation) {\n this.progress = this.start = 0;\n this.vars && this.kill(true, true);\n if (!_enabled) {\n this.update = this.refresh = this.kill = _passThrough;\n return;\n }\n vars = _setDefaults(_isString(vars) || _isNumber(vars) || vars.nodeType ? {\n trigger: vars\n } : vars, _defaults);\n var _vars = vars, onUpdate = _vars.onUpdate, toggleClass = _vars.toggleClass, id = _vars.id, onToggle = _vars.onToggle, onRefresh = _vars.onRefresh, scrub = _vars.scrub, trigger = _vars.trigger, pin = _vars.pin, pinSpacing = _vars.pinSpacing, invalidateOnRefresh = _vars.invalidateOnRefresh, anticipatePin = _vars.anticipatePin, onScrubComplete = _vars.onScrubComplete, onSnapComplete = _vars.onSnapComplete, once = _vars.once, snap = _vars.snap, pinReparent = _vars.pinReparent, pinSpacer = _vars.pinSpacer, containerAnimation = _vars.containerAnimation, fastScrollEnd = _vars.fastScrollEnd, preventOverlaps = _vars.preventOverlaps, direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical, isToggle = !scrub && scrub !== 0, scroller = _getTarget(vars.scroller || _win2), scrollerCache = gsap2.core.getCache(scroller), isViewport = _isViewport3(scroller), useFixedPosition = (\"pinType\" in vars ? vars.pinType : _getProxyProp(scroller, \"pinType\") || isViewport && \"fixed\") === \"fixed\", callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack], toggleActions = isToggle && vars.toggleActions.split(\" \"), markers = \"markers\" in vars ? vars.markers : _defaults.markers, borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0, self = this, onRefreshInit = vars.onRefreshInit && function() {\n return vars.onRefreshInit(self);\n }, getScrollerSize = _getSizeFunc(scroller, isViewport, direction), getScrollerOffsets = _getOffsetsFunc(scroller, isViewport), lastSnap = 0, lastRefresh = 0, prevProgress = 0, scrollFunc = _getScrollFunc(scroller, direction), tweenTo, pinCache, snapFunc, scroll1, scroll2, start, end, markerStart, markerEnd, markerStartTrigger, markerEndTrigger, markerVars, executingOnRefresh, change, pinOriginalState, pinActiveState, pinState, spacer, offset, pinGetter, pinSetter, pinStart, pinChange, spacingStart, spacerState, markerStartSetter, pinMoves, markerEndSetter, cs, snap1, snap2, scrubTween, scrubSmooth, snapDurClamp, snapDelayedCall, prevScroll, prevAnimProgress, caMarkerSetter, customRevertReturn;\n self._startClamp = self._endClamp = false;\n self._dir = direction;\n anticipatePin *= 45;\n self.scroller = scroller;\n self.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc;\n scroll1 = scrollFunc();\n self.vars = vars;\n animation = animation || vars.animation;\n if (\"refreshPriority\" in vars) {\n _sort = 1;\n vars.refreshPriority === -9999 && (_primary = self);\n }\n scrollerCache.tweenScroll = scrollerCache.tweenScroll || {\n top: _getTweenCreator(scroller, _vertical),\n left: _getTweenCreator(scroller, _horizontal)\n };\n self.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p];\n self.scrubDuration = function(value) {\n scrubSmooth = _isNumber(value) && value;\n if (!scrubSmooth) {\n scrubTween && scrubTween.progress(1).kill();\n scrubTween = 0;\n } else {\n scrubTween ? scrubTween.duration(value) : scrubTween = gsap2.to(animation, {\n ease: \"expo\",\n totalProgress: \"+=0\",\n inherit: false,\n duration: scrubSmooth,\n paused: true,\n onComplete: function onComplete() {\n return onScrubComplete && onScrubComplete(self);\n }\n });\n }\n };\n if (animation) {\n animation.vars.lazy = false;\n animation._initted && !self.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true);\n self.animation = animation.pause();\n animation.scrollTrigger = self;\n self.scrubDuration(scrub);\n snap1 = 0;\n id || (id = animation.vars.id);\n }\n if (snap) {\n if (!_isObject(snap) || snap.push) {\n snap = {\n snapTo: snap\n };\n }\n \"scrollBehavior\" in _body2.style && gsap2.set(isViewport ? [_body2, _docEl2] : scroller, {\n scrollBehavior: \"auto\"\n });\n _scrollers.forEach(function(o) {\n return _isFunction(o) && o.target === (isViewport ? _doc2.scrollingElement || _docEl2 : scroller) && (o.smooth = false);\n });\n snapFunc = _isFunction(snap.snapTo) ? snap.snapTo : snap.snapTo === \"labels\" ? _getClosestLabel(animation) : snap.snapTo === \"labelsDirectional\" ? _getLabelAtDirection(animation) : snap.directional !== false ? function(value, st) {\n return _snapDirectional(snap.snapTo)(value, _getTime2() - lastRefresh < 500 ? 0 : st.direction);\n } : gsap2.utils.snap(snap.snapTo);\n snapDurClamp = snap.duration || {\n min: 0.1,\n max: 2\n };\n snapDurClamp = _isObject(snapDurClamp) ? _clamp2(snapDurClamp.min, snapDurClamp.max) : _clamp2(snapDurClamp, snapDurClamp);\n snapDelayedCall = gsap2.delayedCall(snap.delay || scrubSmooth / 2 || 0.1, function() {\n var scroll = scrollFunc(), refreshedRecently = _getTime2() - lastRefresh < 500, tween = tweenTo.tween;\n if ((refreshedRecently || Math.abs(self.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) {\n var progress = (scroll - start) / change, totalProgress = animation && !isToggle ? animation.totalProgress() : progress, velocity = refreshedRecently ? 0 : (totalProgress - snap2) / (_getTime2() - _time2) * 1e3 || 0, change1 = gsap2.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185), naturalEnd = progress + (snap.inertia === false ? 0 : change1), endValue, endScroll, _snap = snap, onStart = _snap.onStart, _onInterrupt = _snap.onInterrupt, _onComplete = _snap.onComplete;\n endValue = snapFunc(naturalEnd, self);\n _isNumber(endValue) || (endValue = naturalEnd);\n endScroll = Math.round(start + endValue * change);\n if (scroll <= end && scroll >= start && endScroll !== scroll) {\n if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) {\n return;\n }\n if (snap.inertia === false) {\n change1 = endValue - progress;\n }\n tweenTo(endScroll, {\n duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)),\n ease: snap.ease || \"power3\",\n data: _abs(endScroll - scroll),\n // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap.\n onInterrupt: function onInterrupt() {\n return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self);\n },\n onComplete: function onComplete() {\n self.update();\n lastSnap = scrollFunc();\n if (animation) {\n scrubTween ? scrubTween.resetTo(\"totalProgress\", endValue, animation._tTime / animation._tDur) : animation.progress(endValue);\n }\n snap1 = snap2 = animation && !isToggle ? animation.totalProgress() : self.progress;\n onSnapComplete && onSnapComplete(self);\n _onComplete && _onComplete(self);\n }\n }, scroll, change1 * change, endScroll - scroll - change1 * change);\n onStart && onStart(self, tweenTo.tween);\n }\n } else if (self.isActive && lastSnap !== scroll) {\n snapDelayedCall.restart(true);\n }\n }).pause();\n }\n id && (_ids[id] = self);\n trigger = self.trigger = _getTarget(trigger || pin !== true && pin);\n customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert;\n customRevertReturn && (customRevertReturn = customRevertReturn(self));\n pin = pin === true ? trigger : _getTarget(pin);\n _isString(toggleClass) && (toggleClass = {\n targets: trigger,\n className: toggleClass\n });\n if (pin) {\n pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === \"flex\" ? false : _padding);\n self.pin = pin;\n pinCache = gsap2.core.getCache(pin);\n if (!pinCache.spacer) {\n if (pinSpacer) {\n pinSpacer = _getTarget(pinSpacer);\n pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement);\n pinCache.spacerIsNative = !!pinSpacer;\n pinSpacer && (pinCache.spacerState = _getState(pinSpacer));\n }\n pinCache.spacer = spacer = pinSpacer || _doc2.createElement(\"div\");\n spacer.classList.add(\"pin-spacer\");\n id && spacer.classList.add(\"pin-spacer-\" + id);\n pinCache.pinState = pinOriginalState = _getState(pin);\n } else {\n pinOriginalState = pinCache.pinState;\n }\n vars.force3D !== false && gsap2.set(pin, {\n force3D: true\n });\n self.spacer = spacer = pinCache.spacer;\n cs = _getComputedStyle(pin);\n spacingStart = cs[pinSpacing + direction.os2];\n pinGetter = gsap2.getProperty(pin);\n pinSetter = gsap2.quickSetter(pin, direction.a, _px);\n _swapPinIn(pin, spacer, cs);\n pinState = _getState(pin);\n }\n if (markers) {\n markerVars = _isObject(markers) ? _setDefaults(markers, _markerDefaults) : _markerDefaults;\n markerStartTrigger = _createMarker(\"scroller-start\", id, scroller, direction, markerVars, 0);\n markerEndTrigger = _createMarker(\"scroller-end\", id, scroller, direction, markerVars, 0, markerStartTrigger);\n offset = markerStartTrigger[\"offset\" + direction.op.d2];\n var content = _getTarget(_getProxyProp(scroller, \"content\") || scroller);\n markerStart = this.markerStart = _createMarker(\"start\", id, content, direction, markerVars, offset, 0, containerAnimation);\n markerEnd = this.markerEnd = _createMarker(\"end\", id, content, direction, markerVars, offset, 0, containerAnimation);\n containerAnimation && (caMarkerSetter = gsap2.quickSetter([markerStart, markerEnd], direction.a, _px));\n if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, \"fixedMarkers\") === true)) {\n _makePositionable(isViewport ? _body2 : scroller);\n gsap2.set([markerStartTrigger, markerEndTrigger], {\n force3D: true\n });\n markerStartSetter = gsap2.quickSetter(markerStartTrigger, direction.a, _px);\n markerEndSetter = gsap2.quickSetter(markerEndTrigger, direction.a, _px);\n }\n }\n if (containerAnimation) {\n var oldOnUpdate = containerAnimation.vars.onUpdate, oldParams = containerAnimation.vars.onUpdateParams;\n containerAnimation.eventCallback(\"onUpdate\", function() {\n self.update(0, 0, 1);\n oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []);\n });\n }\n self.previous = function() {\n return _triggers[_triggers.indexOf(self) - 1];\n };\n self.next = function() {\n return _triggers[_triggers.indexOf(self) + 1];\n };\n self.revert = function(revert, temp) {\n if (!temp) {\n return self.kill(true);\n }\n var r = revert !== false || !self.enabled, prevRefreshing = _refreshing;\n if (r !== self.isReverted) {\n if (r) {\n prevScroll = Math.max(scrollFunc(), self.scroll.rec || 0);\n prevProgress = self.progress;\n prevAnimProgress = animation && animation.progress();\n }\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m) {\n return m.style.display = r ? \"none\" : \"block\";\n });\n if (r) {\n _refreshing = self;\n self.update(r);\n }\n if (pin && (!pinReparent || !self.isActive)) {\n if (r) {\n _swapPinOut(pin, spacer, pinOriginalState);\n } else {\n _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState);\n }\n }\n r || self.update(r);\n _refreshing = prevRefreshing;\n self.isReverted = r;\n }\n };\n self.refresh = function(soft, force, position, pinOffset) {\n if ((_refreshing || !self.enabled) && !force) {\n return;\n }\n if (pin && soft && _lastScrollTime) {\n _addListener3(ScrollTrigger3, \"scrollEnd\", _softRefresh);\n return;\n }\n !_refreshingAll && onRefreshInit && onRefreshInit(self);\n _refreshing = self;\n if (tweenTo.tween && !position) {\n tweenTo.tween.kill();\n tweenTo.tween = 0;\n }\n scrubTween && scrubTween.pause();\n invalidateOnRefresh && animation && animation.revert({\n kill: false\n }).invalidate();\n self.isReverted || self.revert(true, true);\n self._subPinOffset = false;\n var size = getScrollerSize(), scrollerBounds = getScrollerOffsets(), max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction), isFirstRefresh = change <= 0.01, offset2 = 0, otherPinOffset = pinOffset || 0, parsedEnd = _isObject(position) ? position.end : vars.end, parsedEndTrigger = vars.endTrigger || trigger, parsedStart = _isObject(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? \"0 0\" : \"0 100%\"), pinnedContainer = self.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer, self), triggerIndex = trigger && Math.max(0, _triggers.indexOf(self)) || 0, i = triggerIndex, cs2, bounds, scroll, isVertical, override, curTrigger, curPin, oppositeScroll, initted, revertedPins, forcedOverflow, markerStartOffset, markerEndOffset;\n if (markers && _isObject(position)) {\n markerStartOffset = gsap2.getProperty(markerStartTrigger, direction.p);\n markerEndOffset = gsap2.getProperty(markerEndTrigger, direction.p);\n }\n while (i--) {\n curTrigger = _triggers[i];\n curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self);\n curPin = curTrigger.pin;\n if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) {\n revertedPins || (revertedPins = []);\n revertedPins.unshift(curTrigger);\n curTrigger.revert(true, true);\n }\n if (curTrigger !== _triggers[i]) {\n triggerIndex--;\n i--;\n }\n }\n _isFunction(parsedStart) && (parsedStart = parsedStart(self));\n parsedStart = _parseClamp(parsedStart, \"start\", self);\n start = _parsePosition(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._startClamp && \"_startClamp\") || (pin ? -1e-3 : 0);\n _isFunction(parsedEnd) && (parsedEnd = parsedEnd(self));\n if (_isString(parsedEnd) && !parsedEnd.indexOf(\"+=\")) {\n if (~parsedEnd.indexOf(\" \")) {\n parsedEnd = (_isString(parsedStart) ? parsedStart.split(\" \")[0] : \"\") + parsedEnd;\n } else {\n offset2 = _offsetToPx(parsedEnd.substr(2), size);\n parsedEnd = _isString(parsedStart) ? parsedStart : (containerAnimation ? gsap2.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset2;\n parsedEndTrigger = trigger;\n }\n }\n parsedEnd = _parseClamp(parsedEnd, \"end\", self);\n end = Math.max(start, _parsePosition(parsedEnd || (parsedEndTrigger ? \"100% 0\" : max), parsedEndTrigger, size, direction, scrollFunc() + offset2, markerEnd, markerEndTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._endClamp && \"_endClamp\")) || -1e-3;\n offset2 = 0;\n i = triggerIndex;\n while (i--) {\n curTrigger = _triggers[i];\n curPin = curTrigger.pin;\n if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) {\n cs2 = curTrigger.end - (self._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start);\n if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) {\n offset2 += cs2 * (1 - curTrigger.progress);\n }\n curPin === pin && (otherPinOffset += cs2);\n }\n }\n start += offset2;\n end += offset2;\n self._startClamp && (self._startClamp += offset2);\n if (self._endClamp && !_refreshingAll) {\n self._endClamp = end || -1e-3;\n end = Math.min(end, _maxScroll(scroller, direction));\n }\n change = end - start || (start -= 0.01) && 1e-3;\n if (isFirstRefresh) {\n prevProgress = gsap2.utils.clamp(0, 1, gsap2.utils.normalize(start, end, prevScroll));\n }\n self._pinPush = otherPinOffset;\n if (markerStart && offset2) {\n cs2 = {};\n cs2[direction.a] = \"+=\" + offset2;\n pinnedContainer && (cs2[direction.p] = \"-=\" + scrollFunc());\n gsap2.set([markerStart, markerEnd], cs2);\n }\n if (pin && !(_clampingMax && self.end >= _maxScroll(scroller, direction))) {\n cs2 = _getComputedStyle(pin);\n isVertical = direction === _vertical;\n scroll = scrollFunc();\n pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset;\n if (!max && end > 1) {\n forcedOverflow = (isViewport ? _doc2.scrollingElement || _docEl2 : scroller).style;\n forcedOverflow = {\n style: forcedOverflow,\n value: forcedOverflow[\"overflow\" + direction.a.toUpperCase()]\n };\n if (isViewport && _getComputedStyle(_body2)[\"overflow\" + direction.a.toUpperCase()] !== \"scroll\") {\n forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = \"scroll\";\n }\n }\n _swapPinIn(pin, spacer, cs2);\n pinState = _getState(pin);\n bounds = _getBounds(pin, true);\n oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)();\n if (pinSpacing) {\n spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px];\n spacerState.t = spacer;\n i = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0;\n if (i) {\n spacerState.push(direction.d, i + _px);\n spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i + _px);\n }\n _setState(spacerState);\n if (pinnedContainer) {\n _triggers.forEach(function(t) {\n if (t.pin === pinnedContainer && t.vars.pinSpacing !== false) {\n t._subPinOffset = true;\n }\n });\n }\n useFixedPosition && scrollFunc(prevScroll);\n } else {\n i = _getSize(pin, direction);\n i && spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i + _px);\n }\n if (useFixedPosition) {\n override = {\n top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px,\n left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px,\n boxSizing: \"border-box\",\n position: \"fixed\"\n };\n override[_width] = override[\"max\" + _Width] = Math.ceil(bounds.width) + _px;\n override[_height] = override[\"max\" + _Height] = Math.ceil(bounds.height) + _px;\n override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = \"0\";\n override[_padding] = cs2[_padding];\n override[_padding + _Top] = cs2[_padding + _Top];\n override[_padding + _Right] = cs2[_padding + _Right];\n override[_padding + _Bottom] = cs2[_padding + _Bottom];\n override[_padding + _Left] = cs2[_padding + _Left];\n pinActiveState = _copyState(pinOriginalState, override, pinReparent);\n _refreshingAll && scrollFunc(0);\n }\n if (animation) {\n initted = animation._initted;\n _suppressOverwrites(1);\n animation.render(animation.duration(), true, true);\n pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset;\n pinMoves = Math.abs(change - pinChange) > 1;\n useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2);\n animation.render(0, true, true);\n initted || animation.invalidate(true);\n animation.parent || animation.totalTime(animation.totalTime());\n _suppressOverwrites(0);\n } else {\n pinChange = change;\n }\n forcedOverflow && (forcedOverflow.value ? forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty(\"overflow-\" + direction.a));\n } else if (trigger && scrollFunc() && !containerAnimation) {\n bounds = trigger.parentNode;\n while (bounds && bounds !== _body2) {\n if (bounds._pinOffset) {\n start -= bounds._pinOffset;\n end -= bounds._pinOffset;\n }\n bounds = bounds.parentNode;\n }\n }\n revertedPins && revertedPins.forEach(function(t) {\n return t.revert(false, true);\n });\n self.start = start;\n self.end = end;\n scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc();\n if (!containerAnimation && !_refreshingAll) {\n scroll1 < prevScroll && scrollFunc(prevScroll);\n self.scroll.rec = 0;\n }\n self.revert(false, true);\n lastRefresh = _getTime2();\n if (snapDelayedCall) {\n lastSnap = -1;\n snapDelayedCall.restart(true);\n }\n _refreshing = 0;\n animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true);\n if (isFirstRefresh || prevProgress !== self.progress || containerAnimation || invalidateOnRefresh) {\n animation && !isToggle && animation.totalProgress(containerAnimation && start < -1e-3 && !prevProgress ? gsap2.utils.normalize(start, end, 0) : prevProgress, true);\n self.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress;\n }\n pin && pinSpacing && (spacer._pinOffset = Math.round(self.progress * pinChange));\n scrubTween && scrubTween.invalidate();\n if (!isNaN(markerStartOffset)) {\n markerStartOffset -= gsap2.getProperty(markerStartTrigger, direction.p);\n markerEndOffset -= gsap2.getProperty(markerEndTrigger, direction.p);\n _shiftMarker(markerStartTrigger, direction, markerStartOffset);\n _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0));\n _shiftMarker(markerEndTrigger, direction, markerEndOffset);\n _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0));\n }\n isFirstRefresh && !_refreshingAll && self.update();\n if (onRefresh && !_refreshingAll && !executingOnRefresh) {\n executingOnRefresh = true;\n onRefresh(self);\n executingOnRefresh = false;\n }\n };\n self.getVelocity = function() {\n return (scrollFunc() - scroll2) / (_getTime2() - _time2) * 1e3 || 0;\n };\n self.endAnimation = function() {\n _endAnimation(self.callbackAnimation);\n if (animation) {\n scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self.direction < 0, 1);\n }\n };\n self.labelToScroll = function(label) {\n return animation && animation.labels && (start || self.refresh() || start) + animation.labels[label] / animation.duration() * change || 0;\n };\n self.getTrailing = function(name) {\n var i = _triggers.indexOf(self), a = self.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i + 1);\n return (_isString(name) ? a.filter(function(t) {\n return t.vars.preventOverlaps === name;\n }) : a).filter(function(t) {\n return self.direction > 0 ? t.end <= start : t.start >= end;\n });\n };\n self.update = function(reset, recordVelocity, forceFake) {\n if (containerAnimation && !forceFake && !reset) {\n return;\n }\n var scroll = _refreshingAll === true ? prevScroll : self.scroll(), p = reset ? 0 : (scroll - start) / change, clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0, prevProgress2 = self.progress, isActive, wasActive, toggleState, action, stateChanged, toggled, isAtMax, isTakingAction;\n if (recordVelocity) {\n scroll2 = scroll1;\n scroll1 = containerAnimation ? scrollFunc() : scroll;\n if (snap) {\n snap2 = snap1;\n snap1 = animation && !isToggle ? animation.totalProgress() : clipped;\n }\n }\n if (anticipatePin && pin && !_refreshing && !_startup2 && _lastScrollTime) {\n if (!clipped && start < scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin) {\n clipped = 1e-4;\n } else if (clipped === 1 && end > scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin) {\n clipped = 0.9999;\n }\n }\n if (clipped !== prevProgress2 && self.enabled) {\n isActive = self.isActive = !!clipped && clipped < 1;\n wasActive = !!prevProgress2 && prevProgress2 < 1;\n toggled = isActive !== wasActive;\n stateChanged = toggled || !!clipped !== !!prevProgress2;\n self.direction = clipped > prevProgress2 ? 1 : -1;\n self.progress = clipped;\n if (stateChanged && !_refreshing) {\n toggleState = clipped && !prevProgress2 ? 0 : clipped === 1 ? 1 : prevProgress2 === 1 ? 2 : 3;\n if (isToggle) {\n action = !toggled && toggleActions[toggleState + 1] !== \"none\" && toggleActions[toggleState + 1] || toggleActions[toggleState];\n isTakingAction = animation && (action === \"complete\" || action === \"reset\" || action in animation);\n }\n }\n preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction(preventOverlaps) ? preventOverlaps(self) : self.getTrailing(preventOverlaps).forEach(function(t) {\n return t.endAnimation();\n }));\n if (!isToggle) {\n if (scrubTween && !_refreshing && !_startup2) {\n scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start);\n if (scrubTween.resetTo) {\n scrubTween.resetTo(\"totalProgress\", clipped, animation._tTime / animation._tDur);\n } else {\n scrubTween.vars.totalProgress = clipped;\n scrubTween.invalidate().restart();\n }\n } else if (animation) {\n animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset)));\n }\n }\n if (pin) {\n reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart);\n if (!useFixedPosition) {\n pinSetter(_round(pinStart + pinChange * clipped));\n } else if (stateChanged) {\n isAtMax = !reset && clipped > prevProgress2 && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction);\n if (pinReparent) {\n if (!reset && (isActive || isAtMax)) {\n var bounds = _getBounds(pin, true), _offset = scroll - start;\n _reparent(pin, _body2, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px);\n } else {\n _reparent(pin, spacer);\n }\n }\n _setState(isActive || isAtMax ? pinActiveState : pinState);\n pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0));\n }\n }\n snap && !tweenTo.tween && !_refreshing && !_startup2 && snapDelayedCall.restart(true);\n toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function(el) {\n return el.classList[isActive || once ? \"add\" : \"remove\"](toggleClass.className);\n });\n onUpdate && !isToggle && !reset && onUpdate(self);\n if (stateChanged && !_refreshing) {\n if (isToggle) {\n if (isTakingAction) {\n if (action === \"complete\") {\n animation.pause().totalProgress(1);\n } else if (action === \"reset\") {\n animation.restart(true).pause();\n } else if (action === \"restart\") {\n animation.restart(true);\n } else {\n animation[action]();\n }\n }\n onUpdate && onUpdate(self);\n }\n if (toggled || !_limitCallbacks) {\n onToggle && toggled && _callback(self, onToggle);\n callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n once && (clipped === 1 ? self.kill(false, 1) : callbacks[toggleState] = 0);\n if (!toggled) {\n toggleState = clipped === 1 ? 1 : 3;\n callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n }\n }\n if (fastScrollEnd && !isActive && Math.abs(self.getVelocity()) > (_isNumber(fastScrollEnd) ? fastScrollEnd : 2500)) {\n _endAnimation(self.callbackAnimation);\n scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === \"reverse\" ? 1 : !clipped, 1);\n }\n } else if (isToggle && onUpdate && !_refreshing) {\n onUpdate(self);\n }\n }\n if (markerEndSetter) {\n var n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll;\n markerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0));\n markerEndSetter(n);\n }\n caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0));\n };\n self.enable = function(reset, refresh) {\n if (!self.enabled) {\n self.enabled = true;\n _addListener3(scroller, \"resize\", _onResize);\n isViewport || _addListener3(scroller, \"scroll\", _onScroll3);\n onRefreshInit && _addListener3(ScrollTrigger3, \"refreshInit\", onRefreshInit);\n if (reset !== false) {\n self.progress = prevProgress = 0;\n scroll1 = scroll2 = lastSnap = scrollFunc();\n }\n refresh !== false && self.refresh();\n }\n };\n self.getTween = function(snap3) {\n return snap3 && tweenTo ? tweenTo.tween : scrubTween;\n };\n self.setPositions = function(newStart, newEnd, keepClamp, pinOffset) {\n if (containerAnimation) {\n var st = containerAnimation.scrollTrigger, duration = containerAnimation.duration(), _change = st.end - st.start;\n newStart = st.start + _change * newStart / duration;\n newEnd = st.start + _change * newEnd / duration;\n }\n self.refresh(false, false, {\n start: _keepClamp(newStart, keepClamp && !!self._startClamp),\n end: _keepClamp(newEnd, keepClamp && !!self._endClamp)\n }, pinOffset);\n self.update();\n };\n self.adjustPinSpacing = function(amount) {\n if (spacerState && amount) {\n var i = spacerState.indexOf(direction.d) + 1;\n spacerState[i] = parseFloat(spacerState[i]) + amount + _px;\n spacerState[1] = parseFloat(spacerState[1]) + amount + _px;\n _setState(spacerState);\n }\n };\n self.disable = function(reset, allowAnimation) {\n if (self.enabled) {\n reset !== false && self.revert(true, true);\n self.enabled = self.isActive = false;\n allowAnimation || scrubTween && scrubTween.pause();\n prevScroll = 0;\n pinCache && (pinCache.uncache = 1);\n onRefreshInit && _removeListener3(ScrollTrigger3, \"refreshInit\", onRefreshInit);\n if (snapDelayedCall) {\n snapDelayedCall.pause();\n tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0);\n }\n if (!isViewport) {\n var i = _triggers.length;\n while (i--) {\n if (_triggers[i].scroller === scroller && _triggers[i] !== self) {\n return;\n }\n }\n _removeListener3(scroller, \"resize\", _onResize);\n isViewport || _removeListener3(scroller, \"scroll\", _onScroll3);\n }\n }\n };\n self.kill = function(revert, allowAnimation) {\n self.disable(revert, allowAnimation);\n scrubTween && !allowAnimation && scrubTween.kill();\n id && delete _ids[id];\n var i = _triggers.indexOf(self);\n i >= 0 && _triggers.splice(i, 1);\n i === _i && _direction > 0 && _i--;\n i = 0;\n _triggers.forEach(function(t) {\n return t.scroller === self.scroller && (i = 1);\n });\n i || _refreshingAll || (self.scroll.rec = 0);\n if (animation) {\n animation.scrollTrigger = null;\n revert && animation.revert({\n kill: false\n });\n allowAnimation || animation.kill();\n }\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m) {\n return m.parentNode && m.parentNode.removeChild(m);\n });\n _primary === self && (_primary = 0);\n if (pin) {\n pinCache && (pinCache.uncache = 1);\n i = 0;\n _triggers.forEach(function(t) {\n return t.pin === pin && i++;\n });\n i || (pinCache.spacer = 0);\n }\n vars.onKill && vars.onKill(self);\n };\n _triggers.push(self);\n self.enable(false, false);\n customRevertReturn && customRevertReturn(self);\n if (animation && animation.add && !change) {\n var updateFunc = self.update;\n self.update = function() {\n self.update = updateFunc;\n start || end || self.refresh();\n };\n gsap2.delayedCall(0.01, self.update);\n change = 0.01;\n start = end = 0;\n } else {\n self.refresh();\n }\n pin && _queueRefreshAll();\n };\n ScrollTrigger3.register = function register(core) {\n if (!_coreInitted2) {\n gsap2 = core || _getGSAP3();\n _windowExists() && window.document && ScrollTrigger3.enable();\n _coreInitted2 = _enabled;\n }\n return _coreInitted2;\n };\n ScrollTrigger3.defaults = function defaults(config) {\n if (config) {\n for (var p in config) {\n _defaults[p] = config[p];\n }\n }\n return _defaults;\n };\n ScrollTrigger3.disable = function disable(reset, kill) {\n _enabled = 0;\n _triggers.forEach(function(trigger) {\n return trigger[kill ? \"kill\" : \"disable\"](reset);\n });\n _removeListener3(_win2, \"wheel\", _onScroll3);\n _removeListener3(_doc2, \"scroll\", _onScroll3);\n clearInterval(_syncInterval);\n _removeListener3(_doc2, \"touchcancel\", _passThrough);\n _removeListener3(_body2, \"touchstart\", _passThrough);\n _multiListener(_removeListener3, _doc2, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n _multiListener(_removeListener3, _doc2, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n _resizeDelay.kill();\n _iterateAutoRefresh(_removeListener3);\n for (var i = 0; i < _scrollers.length; i += 3) {\n _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 1]);\n _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 2]);\n }\n };\n ScrollTrigger3.enable = function enable() {\n _win2 = window;\n _doc2 = document;\n _docEl2 = _doc2.documentElement;\n _body2 = _doc2.body;\n if (gsap2) {\n _toArray = gsap2.utils.toArray;\n _clamp2 = gsap2.utils.clamp;\n _context2 = gsap2.core.context || _passThrough;\n _suppressOverwrites = gsap2.core.suppressOverwrites || _passThrough;\n _scrollRestoration = _win2.history.scrollRestoration || \"auto\";\n _lastScroll = _win2.pageYOffset;\n gsap2.core.globals(\"ScrollTrigger\", ScrollTrigger3);\n if (_body2) {\n _enabled = 1;\n _div100vh = document.createElement(\"div\");\n _div100vh.style.height = \"100vh\";\n _div100vh.style.position = \"absolute\";\n _refresh100vh();\n _rafBugFix();\n Observer.register(gsap2);\n ScrollTrigger3.isTouch = Observer.isTouch;\n _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent);\n _ignoreMobileResize = Observer.isTouch === 1;\n _addListener3(_win2, \"wheel\", _onScroll3);\n _root2 = [_win2, _doc2, _docEl2, _body2];\n if (gsap2.matchMedia) {\n ScrollTrigger3.matchMedia = function(vars) {\n var mm = gsap2.matchMedia(), p;\n for (p in vars) {\n mm.add(p, vars[p]);\n }\n return mm;\n };\n gsap2.addEventListener(\"matchMediaInit\", function() {\n return _revertAll();\n });\n gsap2.addEventListener(\"matchMediaRevert\", function() {\n return _revertRecorded();\n });\n gsap2.addEventListener(\"matchMedia\", function() {\n _refreshAll(0, 1);\n _dispatch(\"matchMedia\");\n });\n gsap2.matchMedia(\"(orientation: portrait)\", function() {\n _setBaseDimensions();\n return _setBaseDimensions;\n });\n } else {\n console.warn(\"Requires GSAP 3.11.0 or later\");\n }\n _setBaseDimensions();\n _addListener3(_doc2, \"scroll\", _onScroll3);\n var bodyStyle = _body2.style, border = bodyStyle.borderTopStyle, AnimationProto = gsap2.core.Animation.prototype, bounds, i;\n AnimationProto.revert || Object.defineProperty(AnimationProto, \"revert\", {\n value: function value() {\n return this.time(-0.01, true);\n }\n });\n bodyStyle.borderTopStyle = \"solid\";\n bounds = _getBounds(_body2);\n _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0;\n _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0;\n border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty(\"border-top-style\");\n _syncInterval = setInterval(_sync, 250);\n gsap2.delayedCall(0.5, function() {\n return _startup2 = 0;\n });\n _addListener3(_doc2, \"touchcancel\", _passThrough);\n _addListener3(_body2, \"touchstart\", _passThrough);\n _multiListener(_addListener3, _doc2, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n _multiListener(_addListener3, _doc2, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n _transformProp = gsap2.utils.checkPrefix(\"transform\");\n _stateProps.push(_transformProp);\n _coreInitted2 = _getTime2();\n _resizeDelay = gsap2.delayedCall(0.2, _refreshAll).pause();\n _autoRefresh = [_doc2, \"visibilitychange\", function() {\n var w = _win2.innerWidth, h = _win2.innerHeight;\n if (_doc2.hidden) {\n _prevWidth = w;\n _prevHeight = h;\n } else if (_prevWidth !== w || _prevHeight !== h) {\n _onResize();\n }\n }, _doc2, \"DOMContentLoaded\", _refreshAll, _win2, \"load\", _refreshAll, _win2, \"resize\", _onResize];\n _iterateAutoRefresh(_addListener3);\n _triggers.forEach(function(trigger) {\n return trigger.enable(0, 1);\n });\n for (i = 0; i < _scrollers.length; i += 3) {\n _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 1]);\n _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 2]);\n }\n }\n }\n };\n ScrollTrigger3.config = function config(vars) {\n \"limitCallbacks\" in vars && (_limitCallbacks = !!vars.limitCallbacks);\n var ms = vars.syncInterval;\n ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms);\n \"ignoreMobileResize\" in vars && (_ignoreMobileResize = ScrollTrigger3.isTouch === 1 && vars.ignoreMobileResize);\n if (\"autoRefreshEvents\" in vars) {\n _iterateAutoRefresh(_removeListener3) || _iterateAutoRefresh(_addListener3, vars.autoRefreshEvents || \"none\");\n _ignoreResize = (vars.autoRefreshEvents + \"\").indexOf(\"resize\") === -1;\n }\n };\n ScrollTrigger3.scrollerProxy = function scrollerProxy(target, vars) {\n var t = _getTarget(target), i = _scrollers.indexOf(t), isViewport = _isViewport3(t);\n if (~i) {\n _scrollers.splice(i, isViewport ? 6 : 2);\n }\n if (vars) {\n isViewport ? _proxies.unshift(_win2, vars, _body2, vars, _docEl2, vars) : _proxies.unshift(t, vars);\n }\n };\n ScrollTrigger3.clearMatchMedia = function clearMatchMedia(query) {\n _triggers.forEach(function(t) {\n return t._ctx && t._ctx.query === query && t._ctx.kill(true, true);\n });\n };\n ScrollTrigger3.isInViewport = function isInViewport(element, ratio, horizontal) {\n var bounds = (_isString(element) ? _getTarget(element) : element).getBoundingClientRect(), offset = bounds[horizontal ? _width : _height] * ratio || 0;\n return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win2.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win2.innerHeight;\n };\n ScrollTrigger3.positionInViewport = function positionInViewport(element, referencePoint, horizontal) {\n _isString(element) && (element = _getTarget(element));\n var bounds = element.getBoundingClientRect(), size = bounds[horizontal ? _width : _height], offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf(\"%\") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0;\n return horizontal ? (bounds.left + offset) / _win2.innerWidth : (bounds.top + offset) / _win2.innerHeight;\n };\n ScrollTrigger3.killAll = function killAll(allowListeners) {\n _triggers.slice(0).forEach(function(t) {\n return t.vars.id !== \"ScrollSmoother\" && t.kill();\n });\n if (allowListeners !== true) {\n var listeners = _listeners.killAll || [];\n _listeners = {};\n listeners.forEach(function(f) {\n return f();\n });\n }\n };\n return ScrollTrigger3;\n}();\nScrollTrigger2.version = \"3.12.5\";\nScrollTrigger2.saveStyles = function(targets) {\n return targets ? _toArray(targets).forEach(function(target) {\n if (target && target.style) {\n var i = _savedStyles.indexOf(target);\n i >= 0 && _savedStyles.splice(i, 5);\n _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute(\"transform\"), gsap2.core.getCache(target), _context2());\n }\n }) : _savedStyles;\n};\nScrollTrigger2.revert = function(soft, media) {\n return _revertAll(!soft, media);\n};\nScrollTrigger2.create = function(vars, animation) {\n return new ScrollTrigger2(vars, animation);\n};\nScrollTrigger2.refresh = function(safe) {\n return safe ? _onResize() : (_coreInitted2 || ScrollTrigger2.register()) && _refreshAll(true);\n};\nScrollTrigger2.update = function(force) {\n return ++_scrollers.cache && _updateAll(force === true ? 2 : 0);\n};\nScrollTrigger2.clearScrollMemory = _clearScrollMemory;\nScrollTrigger2.maxScroll = function(element, horizontal) {\n return _maxScroll(element, horizontal ? _horizontal : _vertical);\n};\nScrollTrigger2.getScrollFunc = function(element, horizontal) {\n return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical);\n};\nScrollTrigger2.getById = function(id) {\n return _ids[id];\n};\nScrollTrigger2.getAll = function() {\n return _triggers.filter(function(t) {\n return t.vars.id !== \"ScrollSmoother\";\n });\n};\nScrollTrigger2.isScrolling = function() {\n return !!_lastScrollTime;\n};\nScrollTrigger2.snapDirectional = _snapDirectional;\nScrollTrigger2.addEventListener = function(type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n};\nScrollTrigger2.removeEventListener = function(type, callback) {\n var a = _listeners[type], i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n};\nScrollTrigger2.batch = function(targets, vars) {\n var result = [], varsCopy = {}, interval = vars.interval || 0.016, batchMax = vars.batchMax || 1e9, proxyCallback = function proxyCallback2(type, callback) {\n var elements = [], triggers = [], delay = gsap2.delayedCall(interval, function() {\n callback(elements, triggers);\n elements = [];\n triggers = [];\n }).pause();\n return function(self) {\n elements.length || delay.restart(true);\n elements.push(self.trigger);\n triggers.push(self);\n batchMax <= elements.length && delay.progress(1);\n };\n }, p;\n for (p in vars) {\n varsCopy[p] = p.substr(0, 2) === \"on\" && _isFunction(vars[p]) && p !== \"onRefreshInit\" ? proxyCallback(p, vars[p]) : vars[p];\n }\n if (_isFunction(batchMax)) {\n batchMax = batchMax();\n _addListener3(ScrollTrigger2, \"refresh\", function() {\n return batchMax = vars.batchMax();\n });\n }\n _toArray(targets).forEach(function(target) {\n var config = {};\n for (p in varsCopy) {\n config[p] = varsCopy[p];\n }\n config.trigger = target;\n result.push(ScrollTrigger2.create(config));\n });\n return result;\n};\nvar _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier2(scrollFunc, current, end, max) {\n current > max ? scrollFunc(max) : current < 0 && scrollFunc(0);\n return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1;\n};\nvar _allowNativePanning = function _allowNativePanning2(target, direction) {\n if (direction === true) {\n target.style.removeProperty(\"touch-action\");\n } else {\n target.style.touchAction = direction === true ? \"auto\" : direction ? \"pan-\" + direction + (Observer.isTouch ? \" pinch-zoom\" : \"\") : \"none\";\n }\n target === _docEl2 && _allowNativePanning2(_body2, direction);\n};\nvar _overflow = {\n auto: 1,\n scroll: 1\n};\nvar _nestedScroll = function _nestedScroll2(_ref5) {\n var event = _ref5.event, target = _ref5.target, axis = _ref5.axis;\n var node = (event.changedTouches ? event.changedTouches[0] : event).target, cache = node._gsap || gsap2.core.getCache(node), time = _getTime2(), cs;\n if (!cache._isScrollT || time - cache._isScrollT > 2e3) {\n while (node && node !== _body2 && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) {\n node = node.parentNode;\n }\n cache._isScroll = node && node !== target && !_isViewport3(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]);\n cache._isScrollT = time;\n }\n if (cache._isScroll || axis === \"x\") {\n event.stopPropagation();\n event._gsapAllow = true;\n }\n};\nvar _inputObserver = function _inputObserver2(target, type, inputs, nested) {\n return Observer.create({\n target,\n capture: true,\n debounce: false,\n lockAxis: true,\n type,\n onWheel: nested = nested && _nestedScroll,\n onPress: nested,\n onDrag: nested,\n onScroll: nested,\n onEnable: function onEnable() {\n return inputs && _addListener3(_doc2, Observer.eventTypes[0], _captureInputs, false, true);\n },\n onDisable: function onDisable() {\n return _removeListener3(_doc2, Observer.eventTypes[0], _captureInputs, true);\n }\n });\n};\nvar _inputExp = /(input|label|select|textarea)/i;\nvar _inputIsFocused;\nvar _captureInputs = function _captureInputs2(e) {\n var isInput = _inputExp.test(e.target.tagName);\n if (isInput || _inputIsFocused) {\n e._gsapAllow = true;\n _inputIsFocused = isInput;\n }\n};\nvar _getScrollNormalizer = function _getScrollNormalizer2(vars) {\n _isObject(vars) || (vars = {});\n vars.preventDefault = vars.isNormalizer = vars.allowClicks = true;\n vars.type || (vars.type = \"wheel,touch\");\n vars.debounce = !!vars.debounce;\n vars.id = vars.id || \"normalizer\";\n var _vars2 = vars, normalizeScrollX = _vars2.normalizeScrollX, momentum = _vars2.momentum, allowNestedScroll = _vars2.allowNestedScroll, onRelease = _vars2.onRelease, self, maxY, target = _getTarget(vars.target) || _docEl2, smoother = gsap2.core.globals().ScrollSmoother, smootherInstance = smoother && smoother.get(), content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()), scrollFuncY = _getScrollFunc(target, _vertical), scrollFuncX = _getScrollFunc(target, _horizontal), scale = 1, initialScale = (Observer.isTouch && _win2.visualViewport ? _win2.visualViewport.scale * _win2.visualViewport.width : _win2.outerWidth) / _win2.innerWidth, wheelRefresh = 0, resolveMomentumDuration = _isFunction(momentum) ? function() {\n return momentum(self);\n } : function() {\n return momentum || 2.8;\n }, lastRefreshID, skipTouchMove, inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll), resumeTouchMove = function resumeTouchMove2() {\n return skipTouchMove = false;\n }, scrollClampX = _passThrough, scrollClampY = _passThrough, updateClamps = function updateClamps2() {\n maxY = _maxScroll(target, _vertical);\n scrollClampY = _clamp2(_fixIOSBug ? 1 : 0, maxY);\n normalizeScrollX && (scrollClampX = _clamp2(0, _maxScroll(target, _horizontal)));\n lastRefreshID = _refreshID;\n }, removeContentOffset = function removeContentOffset2() {\n content._gsap.y = _round(parseFloat(content._gsap.y) + scrollFuncY.offset) + \"px\";\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + parseFloat(content._gsap.y) + \", 0, 1)\";\n scrollFuncY.offset = scrollFuncY.cacheID = 0;\n }, ignoreDrag = function ignoreDrag2() {\n if (skipTouchMove) {\n requestAnimationFrame(resumeTouchMove);\n var offset = _round(self.deltaY / 2), scroll = scrollClampY(scrollFuncY.v - offset);\n if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) {\n scrollFuncY.offset = scroll - scrollFuncY.v;\n var y = _round((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset);\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + y + \", 0, 1)\";\n content._gsap.y = y + \"px\";\n scrollFuncY.cacheID = _scrollers.cache;\n _updateAll();\n }\n return true;\n }\n scrollFuncY.offset && removeContentOffset();\n skipTouchMove = true;\n }, tween, startScrollX, startScrollY, onStopDelayedCall, onResize = function onResize2() {\n updateClamps();\n if (tween.isActive() && tween.vars.scrollY > maxY) {\n scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo(\"scrollY\", maxY);\n }\n };\n content && gsap2.set(content, {\n y: \"+=0\"\n });\n vars.ignoreCheck = function(e) {\n return _fixIOSBug && e.type === \"touchmove\" && ignoreDrag(e) || scale > 1.05 && e.type !== \"touchstart\" || self.isGesturing || e.touches && e.touches.length > 1;\n };\n vars.onPress = function() {\n skipTouchMove = false;\n var prevScale = scale;\n scale = _round((_win2.visualViewport && _win2.visualViewport.scale || 1) / initialScale);\n tween.pause();\n prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : \"x\");\n startScrollX = scrollFuncX();\n startScrollY = scrollFuncY();\n updateClamps();\n lastRefreshID = _refreshID;\n };\n vars.onRelease = vars.onGestureStart = function(self2, wasDragging) {\n scrollFuncY.offset && removeContentOffset();\n if (!wasDragging) {\n onStopDelayedCall.restart(true);\n } else {\n _scrollers.cache++;\n var dur = resolveMomentumDuration(), currentScroll, endScroll;\n if (normalizeScrollX) {\n currentScroll = scrollFuncX();\n endScroll = currentScroll + dur * 0.05 * -self2.velocityX / 0.227;\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal));\n tween.vars.scrollX = scrollClampX(endScroll);\n }\n currentScroll = scrollFuncY();\n endScroll = currentScroll + dur * 0.05 * -self2.velocityY / 0.227;\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical));\n tween.vars.scrollY = scrollClampY(endScroll);\n tween.invalidate().duration(dur).play(0.01);\n if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) {\n gsap2.to({}, {\n onUpdate: onResize,\n duration: dur\n });\n }\n }\n onRelease && onRelease(self2);\n };\n vars.onWheel = function() {\n tween._ts && tween.pause();\n if (_getTime2() - wheelRefresh > 1e3) {\n lastRefreshID = 0;\n wheelRefresh = _getTime2();\n }\n };\n vars.onChange = function(self2, dx, dy, xArray, yArray) {\n _refreshID !== lastRefreshID && updateClamps();\n dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self2.startX - self2.x) : scrollFuncX() + dx - xArray[1]));\n if (dy) {\n scrollFuncY.offset && removeContentOffset();\n var isTouch = yArray[2] === dy, y = isTouch ? startScrollY + self2.startY - self2.y : scrollFuncY() + dy - yArray[1], yClamped = scrollClampY(y);\n isTouch && y !== yClamped && (startScrollY += yClamped - y);\n scrollFuncY(yClamped);\n }\n (dy || dx) && _updateAll();\n };\n vars.onEnable = function() {\n _allowNativePanning(target, normalizeScrollX ? false : \"x\");\n ScrollTrigger2.addEventListener(\"refresh\", onResize);\n _addListener3(_win2, \"resize\", onResize);\n if (scrollFuncY.smooth) {\n scrollFuncY.target.style.scrollBehavior = \"auto\";\n scrollFuncY.smooth = scrollFuncX.smooth = false;\n }\n inputObserver.enable();\n };\n vars.onDisable = function() {\n _allowNativePanning(target, true);\n _removeListener3(_win2, \"resize\", onResize);\n ScrollTrigger2.removeEventListener(\"refresh\", onResize);\n inputObserver.kill();\n };\n vars.lockAxis = vars.lockAxis !== false;\n self = new Observer(vars);\n self.iOS = _fixIOSBug;\n _fixIOSBug && !scrollFuncY() && scrollFuncY(1);\n _fixIOSBug && gsap2.ticker.add(_passThrough);\n onStopDelayedCall = self._dc;\n tween = gsap2.to(self, {\n ease: \"power4\",\n paused: true,\n inherit: false,\n scrollX: normalizeScrollX ? \"+=0.1\" : \"+=0\",\n scrollY: \"+=0.1\",\n modifiers: {\n scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function() {\n return tween.pause();\n })\n },\n onUpdate: _updateAll,\n onComplete: onStopDelayedCall.vars.onComplete\n });\n return self;\n};\nScrollTrigger2.sort = function(func) {\n return _triggers.sort(func || function(a, b) {\n return (a.vars.refreshPriority || 0) * -1e6 + a.start - (b.start + (b.vars.refreshPriority || 0) * -1e6);\n });\n};\nScrollTrigger2.observe = function(vars) {\n return new Observer(vars);\n};\nScrollTrigger2.normalizeScroll = function(vars) {\n if (typeof vars === \"undefined\") {\n return _normalizer2;\n }\n if (vars === true && _normalizer2) {\n return _normalizer2.enable();\n }\n if (vars === false) {\n _normalizer2 && _normalizer2.kill();\n _normalizer2 = vars;\n return;\n }\n var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars);\n _normalizer2 && _normalizer2.target === normalizer.target && _normalizer2.kill();\n _isViewport3(normalizer.target) && (_normalizer2 = normalizer);\n return normalizer;\n};\nScrollTrigger2.core = {\n // smaller file size way to leverage in ScrollSmoother and Observer\n _getVelocityProp,\n _inputObserver,\n _scrollers,\n _proxies,\n bridge: {\n // when normalizeScroll sets the scroll position (ss = setScroll)\n ss: function ss() {\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime2();\n },\n // a way to get the _refreshing value in Observer\n ref: function ref() {\n return _refreshing;\n }\n }\n};\n_getGSAP3() && gsap2.registerPlugin(ScrollTrigger2);\n\nexport {\n ScrollTrigger2 as ScrollTrigger\n};\n/*! Bundled license information:\n\ngsap/Observer.js:\n (*!\n * Observer 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n *)\n\ngsap/ScrollTrigger.js:\n (*!\n * ScrollTrigger 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n *)\n*/\n", "// node_modules/gsap/gsap-core.js\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar _config = {\n autoSleep: 120,\n force3D: \"auto\",\n nullTargetWarn: 1,\n units: {\n lineHeight: \"\"\n }\n};\nvar _defaults = {\n duration: 0.5,\n overwrite: false,\n delay: 0\n};\nvar _suppressOverwrites;\nvar _reverting;\nvar _context;\nvar _bigNum = 1e8;\nvar _tinyNum = 1 / _bigNum;\nvar _2PI = Math.PI * 2;\nvar _HALF_PI = _2PI / 4;\nvar _gsID = 0;\nvar _sqrt = Math.sqrt;\nvar _cos = Math.cos;\nvar _sin = Math.sin;\nvar _isString = function _isString2(value) {\n return typeof value === \"string\";\n};\nvar _isFunction = function _isFunction2(value) {\n return typeof value === \"function\";\n};\nvar _isNumber = function _isNumber2(value) {\n return typeof value === \"number\";\n};\nvar _isUndefined = function _isUndefined2(value) {\n return typeof value === \"undefined\";\n};\nvar _isObject = function _isObject2(value) {\n return typeof value === \"object\";\n};\nvar _isNotFalse = function _isNotFalse2(value) {\n return value !== false;\n};\nvar _windowExists = function _windowExists2() {\n return typeof window !== \"undefined\";\n};\nvar _isFuncOrString = function _isFuncOrString2(value) {\n return _isFunction(value) || _isString(value);\n};\nvar _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function() {\n};\nvar _isArray = Array.isArray;\nvar _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi;\nvar _numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g;\nvar _numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g;\nvar _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi;\nvar _relExp = /[+-]=-?[.\\d]+/;\nvar _delimitedValueExp = /[^,'\"\\[\\]\\s]+/gi;\nvar _unitExp = /^[+\\-=e\\s\\d]*\\d+[.\\d]*([a-z]*|%)\\s*$/i;\nvar _globalTimeline;\nvar _win;\nvar _coreInitted;\nvar _doc;\nvar _globals = {};\nvar _installScope = {};\nvar _coreReady;\nvar _install = function _install2(scope) {\n return (_installScope = _merge(scope, _globals)) && gsap;\n};\nvar _missingPlugin = function _missingPlugin2(property, value) {\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\n};\nvar _warn = function _warn2(message, suppress) {\n return !suppress && console.warn(message);\n};\nvar _addGlobal = function _addGlobal2(name, obj) {\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\n};\nvar _emptyFunc = function _emptyFunc2() {\n return 0;\n};\nvar _startAtRevertConfig = {\n suppressEvents: true,\n isStart: true,\n kill: false\n};\nvar _revertConfigNoKill = {\n suppressEvents: true,\n kill: false\n};\nvar _revertConfig = {\n suppressEvents: true\n};\nvar _reservedProps = {};\nvar _lazyTweens = [];\nvar _lazyLookup = {};\nvar _lastRenderedFrame;\nvar _plugins = {};\nvar _effects = {};\nvar _nextGCFrame = 30;\nvar _harnessPlugins = [];\nvar _callbackNames = \"\";\nvar _harness = function _harness2(targets) {\n var target = targets[0], harnessPlugin, i;\n _isObject(target) || _isFunction(target) || (targets = [targets]);\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\n i = _harnessPlugins.length;\n while (i-- && !_harnessPlugins[i].targetTest(target)) {\n }\n harnessPlugin = _harnessPlugins[i];\n }\n i = targets.length;\n while (i--) {\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\n }\n return targets;\n};\nvar _getCache = function _getCache2(target) {\n return target._gsap || _harness(toArray(target))[0]._gsap;\n};\nvar _getProperty = function _getProperty2(target, property, v) {\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\n};\nvar _forEachName = function _forEachName2(names, func) {\n return (names = names.split(\",\")).forEach(func) || names;\n};\nvar _round = function _round2(value) {\n return Math.round(value * 1e5) / 1e5 || 0;\n};\nvar _roundPrecise = function _roundPrecise2(value) {\n return Math.round(value * 1e7) / 1e7 || 0;\n};\nvar _parseRelative = function _parseRelative2(start, value) {\n var operator = value.charAt(0), end = parseFloat(value.substr(2));\n start = parseFloat(start);\n return operator === \"+\" ? start + end : operator === \"-\" ? start - end : operator === \"*\" ? start * end : start / end;\n};\nvar _arrayContainsAny = function _arrayContainsAny2(toSearch, toFind) {\n var l = toFind.length, i = 0;\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l; ) {\n }\n return i < l;\n};\nvar _lazyRender = function _lazyRender2() {\n var l = _lazyTweens.length, a = _lazyTweens.slice(0), i, tween;\n _lazyLookup = {};\n _lazyTweens.length = 0;\n for (i = 0; i < l; i++) {\n tween = a[i];\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n }\n};\nvar _lazySafeRender = function _lazySafeRender2(animation, time, suppressEvents, force) {\n _lazyTweens.length && !_reverting && _lazyRender();\n animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));\n _lazyTweens.length && !_reverting && _lazyRender();\n};\nvar _numericIfPossible = function _numericIfPossible2(value) {\n var n = parseFloat(value);\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n};\nvar _passThrough = function _passThrough2(p) {\n return p;\n};\nvar _setDefaults = function _setDefaults2(obj, defaults2) {\n for (var p in defaults2) {\n p in obj || (obj[p] = defaults2[p]);\n }\n return obj;\n};\nvar _setKeyframeDefaults = function _setKeyframeDefaults2(excludeDuration) {\n return function(obj, defaults2) {\n for (var p in defaults2) {\n p in obj || p === \"duration\" && excludeDuration || p === \"ease\" || (obj[p] = defaults2[p]);\n }\n };\n};\nvar _merge = function _merge2(base, toMerge) {\n for (var p in toMerge) {\n base[p] = toMerge[p];\n }\n return base;\n};\nvar _mergeDeep = function _mergeDeep2(base, toMerge) {\n for (var p in toMerge) {\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep2(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n }\n return base;\n};\nvar _copyExcluding = function _copyExcluding2(obj, excluding) {\n var copy = {}, p;\n for (p in obj) {\n p in excluding || (copy[p] = obj[p]);\n }\n return copy;\n};\nvar _inheritDefaults = function _inheritDefaults2(vars) {\n var parent = vars.parent || _globalTimeline, func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;\n if (_isNotFalse(vars.inherit)) {\n while (parent) {\n func(vars, parent.vars.defaults);\n parent = parent.parent || parent._dp;\n }\n }\n return vars;\n};\nvar _arraysMatch = function _arraysMatch2(a1, a2) {\n var i = a1.length, match = i === a2.length;\n while (match && i-- && a1[i] === a2[i]) {\n }\n return i < 0;\n};\nvar _addLinkedListItem = function _addLinkedListItem2(parent, child, firstProp, lastProp, sortBy) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n var prev = parent[lastProp], t;\n if (sortBy) {\n t = child[sortBy];\n while (prev && prev[sortBy] > t) {\n prev = prev._prev;\n }\n }\n if (prev) {\n child._next = prev._next;\n prev._next = child;\n } else {\n child._next = parent[firstProp];\n parent[firstProp] = child;\n }\n if (child._next) {\n child._next._prev = child;\n } else {\n parent[lastProp] = child;\n }\n child._prev = prev;\n child.parent = child._dp = parent;\n return child;\n};\nvar _removeLinkedListItem = function _removeLinkedListItem2(parent, child, firstProp, lastProp) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n var prev = child._prev, next = child._next;\n if (prev) {\n prev._next = next;\n } else if (parent[firstProp] === child) {\n parent[firstProp] = next;\n }\n if (next) {\n next._prev = prev;\n } else if (parent[lastProp] === child) {\n parent[lastProp] = prev;\n }\n child._next = child._prev = child.parent = null;\n};\nvar _removeFromParent = function _removeFromParent2(child, onlyIfParentHasAutoRemove) {\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);\n child._act = 0;\n};\nvar _uncache = function _uncache2(animation, child) {\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\n var a = animation;\n while (a) {\n a._dirty = 1;\n a = a.parent;\n }\n }\n return animation;\n};\nvar _recacheAncestors = function _recacheAncestors2(animation) {\n var parent = animation.parent;\n while (parent && parent.parent) {\n parent._dirty = 1;\n parent.totalDuration();\n parent = parent.parent;\n }\n return animation;\n};\nvar _rewindStartAt = function _rewindStartAt2(tween, totalTime, suppressEvents, force) {\n return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));\n};\nvar _hasNoPausedAncestors = function _hasNoPausedAncestors2(animation) {\n return !animation || animation._ts && _hasNoPausedAncestors2(animation.parent);\n};\nvar _elapsedCycleDuration = function _elapsedCycleDuration2(animation) {\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\n};\nvar _animationCycle = function _animationCycle2(tTime, cycleDuration) {\n var whole = Math.floor(tTime /= cycleDuration);\n return tTime && whole === tTime ? whole - 1 : whole;\n};\nvar _parentToChildTotalTime = function _parentToChildTotalTime2(parentTime, child) {\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\n};\nvar _setEnd = function _setEnd2(animation) {\n return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\n};\nvar _alignPlayhead = function _alignPlayhead2(animation, totalTime) {\n var parent = animation._dp;\n if (parent && parent.smoothChildTiming && animation._ts) {\n animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n _setEnd(animation);\n parent._dirty || _uncache(parent, animation);\n }\n return animation;\n};\nvar _postAddChecks = function _postAddChecks2(timeline2, child) {\n var t;\n if (child._time || !child._dur && child._initted || child._start < timeline2._time && (child._dur || !child.add)) {\n t = _parentToChildTotalTime(timeline2.rawTime(), child);\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n child.render(t, true);\n }\n }\n if (_uncache(timeline2, child)._dp && timeline2._initted && timeline2._time >= timeline2._dur && timeline2._ts) {\n if (timeline2._dur < timeline2.duration()) {\n t = timeline2;\n while (t._dp) {\n t.rawTime() >= 0 && t.totalTime(t._tTime);\n t = t._dp;\n }\n }\n timeline2._zTime = -_tinyNum;\n }\n};\nvar _addToTimeline = function _addToTimeline2(timeline2, child, position, skipChecks) {\n child.parent && _removeFromParent(child);\n child._start = _roundPrecise((_isNumber(position) ? position : position || timeline2 !== _globalTimeline ? _parsePosition(timeline2, position, child) : timeline2._time) + child._delay);\n child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\n _addLinkedListItem(timeline2, child, \"_first\", \"_last\", timeline2._sort ? \"_start\" : 0);\n _isFromOrFromStart(child) || (timeline2._recent = child);\n skipChecks || _postAddChecks(timeline2, child);\n timeline2._ts < 0 && _alignPlayhead(timeline2, timeline2._tTime);\n return timeline2;\n};\nvar _scrollTrigger = function _scrollTrigger2(animation, trigger) {\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\n};\nvar _attemptInitTween = function _attemptInitTween2(tween, time, force, suppressEvents, tTime) {\n _initTween(tween, time, tTime);\n if (!tween._initted) {\n return 1;\n }\n if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\n _lazyTweens.push(tween);\n tween._lazy = [tTime, suppressEvents];\n return 1;\n }\n};\nvar _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart2(_ref) {\n var parent = _ref.parent;\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart2(parent));\n};\nvar _isFromOrFromStart = function _isFromOrFromStart2(_ref2) {\n var data = _ref2.data;\n return data === \"isFromStart\" || data === \"isStart\";\n};\nvar _renderZeroDurationTween = function _renderZeroDurationTween2(tween, totalTime, suppressEvents, force) {\n var prevRatio = tween.ratio, ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1, repeatDelay = tween._rDelay, tTime = 0, pt, iteration, prevIteration;\n if (repeatDelay && tween._repeat) {\n tTime = _clamp(0, tween._tDur, totalTime);\n iteration = _animationCycle(tTime, repeatDelay);\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\n if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {\n prevRatio = 1 - ratio;\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\n }\n }\n if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {\n return;\n }\n prevIteration = tween._zTime;\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0);\n suppressEvents || (suppressEvents = totalTime && !prevIteration);\n tween.ratio = ratio;\n tween._from && (ratio = 1 - ratio);\n tween._time = 0;\n tween._tTime = tTime;\n pt = tween._pt;\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n ratio && _removeFromParent(tween, 1);\n if (!suppressEvents && !_reverting) {\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\n tween._prom && tween._prom();\n }\n }\n } else if (!tween._zTime) {\n tween._zTime = totalTime;\n }\n};\nvar _findNextPauseTween = function _findNextPauseTween2(animation, prevTime, time) {\n var child;\n if (time > prevTime) {\n child = animation._first;\n while (child && child._start <= time) {\n if (child.data === \"isPause\" && child._start > prevTime) {\n return child;\n }\n child = child._next;\n }\n } else {\n child = animation._last;\n while (child && child._start >= time) {\n if (child.data === \"isPause\" && child._start < prevTime) {\n return child;\n }\n child = child._prev;\n }\n }\n};\nvar _setDuration = function _setDuration2(animation, duration, skipUncache, leavePlayhead) {\n var repeat = animation._repeat, dur = _roundPrecise(duration) || 0, totalProgress = animation._tTime / animation._tDur;\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n animation._dur = dur;\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);\n totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);\n animation.parent && _setEnd(animation);\n skipUncache || _uncache(animation.parent, animation);\n return animation;\n};\nvar _onUpdateTotalDuration = function _onUpdateTotalDuration2(animation) {\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\n};\nvar _zeroPosition = {\n _start: 0,\n endTime: _emptyFunc,\n totalDuration: _emptyFunc\n};\nvar _parsePosition = function _parsePosition2(animation, position, percentAnimation) {\n var labels = animation.labels, recent = animation._recent || _zeroPosition, clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, i, offset, isPercent;\n if (_isString(position) && (isNaN(position) || position in labels)) {\n offset = position.charAt(0);\n isPercent = position.substr(-1) === \"%\";\n i = position.indexOf(\"=\");\n if (offset === \"<\" || offset === \">\") {\n i >= 0 && (position = position.replace(/=/, \"\"));\n return (offset === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);\n }\n if (i < 0) {\n position in labels || (labels[position] = clippedDuration);\n return labels[position];\n }\n offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));\n if (isPercent && percentAnimation) {\n offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();\n }\n return i > 1 ? _parsePosition2(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;\n }\n return position == null ? clippedDuration : +position;\n};\nvar _createTweenType = function _createTweenType2(type, params, timeline2) {\n var isLegacy = _isNumber(params[1]), varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1), vars = params[varsIndex], irVars, parent;\n isLegacy && (vars.duration = params[1]);\n vars.parent = timeline2;\n if (type) {\n irVars = vars;\n parent = timeline2;\n while (parent && !(\"immediateRender\" in irVars)) {\n irVars = parent.vars.defaults || {};\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\n }\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1];\n }\n return new Tween(params[0], vars, params[varsIndex + 1]);\n};\nvar _conditionalReturn = function _conditionalReturn2(value, func) {\n return value || value === 0 ? func(value) : func;\n};\nvar _clamp = function _clamp2(min, max, value) {\n return value < min ? min : value > max ? max : value;\n};\nvar getUnit = function getUnit2(value, v) {\n return !_isString(value) || !(v = _unitExp.exec(value)) ? \"\" : v[1];\n};\nvar clamp = function clamp2(min, max, value) {\n return _conditionalReturn(value, function(v) {\n return _clamp(min, max, v);\n });\n};\nvar _slice = [].slice;\nvar _isArrayLike = function _isArrayLike2(value, nonEmpty) {\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\n};\nvar _flatten = function _flatten2(ar, leaveStrings, accumulator) {\n if (accumulator === void 0) {\n accumulator = [];\n }\n return ar.forEach(function(value) {\n var _accumulator;\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\n }) || accumulator;\n};\nvar toArray = function toArray2(value, scope, leaveStrings) {\n return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\n};\nvar selector = function selector2(value) {\n value = toArray(value)[0] || _warn(\"Invalid scope\") || {};\n return function(v) {\n var el = value.current || value.nativeElement || value;\n return toArray(v, el.querySelectorAll ? el : el === value ? _warn(\"Invalid scope\") || _doc.createElement(\"div\") : value);\n };\n};\nvar shuffle = function shuffle2(a) {\n return a.sort(function() {\n return 0.5 - Math.random();\n });\n};\nvar distribute = function distribute2(v) {\n if (_isFunction(v)) {\n return v;\n }\n var vars = _isObject(v) ? v : {\n each: v\n }, ease = _parseEase(vars.ease), from = vars.from || 0, base = parseFloat(vars.base) || 0, cache = {}, isDecimal = from > 0 && from < 1, ratios = isNaN(from) || isDecimal, axis = vars.axis, ratioX = from, ratioY = from;\n if (_isString(from)) {\n ratioX = ratioY = {\n center: 0.5,\n edges: 0.5,\n end: 1\n }[from] || 0;\n } else if (!isDecimal && ratios) {\n ratioX = from[0];\n ratioY = from[1];\n }\n return function(i, target, a) {\n var l = (a || vars).length, distances = cache[l], originX, originY, x, y, d, j, max, min, wrapAt;\n if (!distances) {\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\n if (!wrapAt) {\n max = -_bigNum;\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {\n }\n wrapAt < l && wrapAt--;\n }\n distances = cache[l] = [];\n originX = ratios ? Math.min(wrapAt, l) * ratioX - 0.5 : from % wrapAt;\n originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - 0.5 : from / wrapAt | 0;\n max = 0;\n min = _bigNum;\n for (j = 0; j < l; j++) {\n x = j % wrapAt - originX;\n y = originY - (j / wrapAt | 0);\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\n d > max && (max = d);\n d < min && (min = d);\n }\n from === \"random\" && shuffle(distances);\n distances.max = max - min;\n distances.min = min;\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\n distances.b = l < 0 ? base - l : base;\n distances.u = getUnit(vars.amount || vars.each) || 0;\n ease = ease && l < 0 ? _invertEase(ease) : ease;\n }\n l = (distances[i] - distances.min) / distances.max || 0;\n return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u;\n };\n};\nvar _roundModifier = function _roundModifier2(v) {\n var p = Math.pow(10, ((v + \"\").split(\".\")[1] || \"\").length);\n return function(raw) {\n var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw));\n };\n};\nvar snap = function snap2(snapTo, value) {\n var isArray = _isArray(snapTo), radius, is2D;\n if (!isArray && _isObject(snapTo)) {\n radius = isArray = snapTo.radius || _bigNum;\n if (snapTo.values) {\n snapTo = toArray(snapTo.values);\n if (is2D = !_isNumber(snapTo[0])) {\n radius *= radius;\n }\n } else {\n snapTo = _roundModifier(snapTo.increment);\n }\n }\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function(raw) {\n is2D = snapTo(raw);\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\n } : function(raw) {\n var x = parseFloat(is2D ? raw.x : raw), y = parseFloat(is2D ? raw.y : 0), min = _bigNum, closest = 0, i = snapTo.length, dx, dy;\n while (i--) {\n if (is2D) {\n dx = snapTo[i].x - x;\n dy = snapTo[i].y - y;\n dx = dx * dx + dy * dy;\n } else {\n dx = Math.abs(snapTo[i] - x);\n }\n if (dx < min) {\n min = dx;\n closest = i;\n }\n }\n closest = !radius || min <= radius ? snapTo[closest] : raw;\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\n });\n};\nvar random = function random2(min, max, roundingIncrement, returnFunction) {\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function() {\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * 0.99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\n });\n};\nvar pipe = function pipe2() {\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\n functions[_key] = arguments[_key];\n }\n return function(value) {\n return functions.reduce(function(v, f) {\n return f(v);\n }, value);\n };\n};\nvar unitize = function unitize2(func, unit) {\n return function(value) {\n return func(parseFloat(value)) + (unit || getUnit(value));\n };\n};\nvar normalize = function normalize2(min, max, value) {\n return mapRange(min, max, 0, 1, value);\n};\nvar _wrapArray = function _wrapArray2(a, wrapper, value) {\n return _conditionalReturn(value, function(index) {\n return a[~~wrapper(index)];\n });\n};\nvar wrap = function wrap2(min, max, value) {\n var range = max - min;\n return _isArray(min) ? _wrapArray(min, wrap2(0, min.length), max) : _conditionalReturn(value, function(value2) {\n return (range + (value2 - min) % range) % range + min;\n });\n};\nvar wrapYoyo = function wrapYoyo2(min, max, value) {\n var range = max - min, total = range * 2;\n return _isArray(min) ? _wrapArray(min, wrapYoyo2(0, min.length - 1), max) : _conditionalReturn(value, function(value2) {\n value2 = (total + (value2 - min) % total) % total || 0;\n return min + (value2 > range ? total - value2 : value2);\n });\n};\nvar _replaceRandom = function _replaceRandom2(value) {\n var prev = 0, s = \"\", i, nums, end, isArray;\n while (~(i = value.indexOf(\"random(\", prev))) {\n end = value.indexOf(\")\", i);\n isArray = value.charAt(i + 7) === \"[\";\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n prev = end + 1;\n }\n return s + value.substr(prev, value.length - prev);\n};\nvar mapRange = function mapRange2(inMin, inMax, outMin, outMax, value) {\n var inRange = inMax - inMin, outRange = outMax - outMin;\n return _conditionalReturn(value, function(value2) {\n return outMin + ((value2 - inMin) / inRange * outRange || 0);\n });\n};\nvar interpolate = function interpolate2(start, end, progress, mutate) {\n var func = isNaN(start + end) ? 0 : function(p2) {\n return (1 - p2) * start + p2 * end;\n };\n if (!func) {\n var isString = _isString(start), master = {}, p, i, interpolators, l, il;\n progress === true && (mutate = 1) && (progress = null);\n if (isString) {\n start = {\n p: start\n };\n end = {\n p: end\n };\n } else if (_isArray(start) && !_isArray(end)) {\n interpolators = [];\n l = start.length;\n il = l - 2;\n for (i = 1; i < l; i++) {\n interpolators.push(interpolate2(start[i - 1], start[i]));\n }\n l--;\n func = function func2(p2) {\n p2 *= l;\n var i2 = Math.min(il, ~~p2);\n return interpolators[i2](p2 - i2);\n };\n progress = end;\n } else if (!mutate) {\n start = _merge(_isArray(start) ? [] : {}, start);\n }\n if (!interpolators) {\n for (p in end) {\n _addPropTween.call(master, start, p, \"get\", end[p]);\n }\n func = function func2(p2) {\n return _renderPropTweens(p2, master) || (isString ? start.p : start);\n };\n }\n }\n return _conditionalReturn(progress, func);\n};\nvar _getLabelInDirection = function _getLabelInDirection2(timeline2, fromTime, backward) {\n var labels = timeline2.labels, min = _bigNum, p, distance, label;\n for (p in labels) {\n distance = labels[p] - fromTime;\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\n label = p;\n min = distance;\n }\n }\n return label;\n};\nvar _callback = function _callback2(animation, type, executeLazyFirst) {\n var v = animation.vars, callback = v[type], prevContext = _context, context3 = animation._ctx, params, scope, result;\n if (!callback) {\n return;\n }\n params = v[type + \"Params\"];\n scope = v.callbackScope || animation;\n executeLazyFirst && _lazyTweens.length && _lazyRender();\n context3 && (_context = context3);\n result = params ? callback.apply(scope, params) : callback.call(scope);\n _context = prevContext;\n return result;\n};\nvar _interrupt = function _interrupt2(animation) {\n _removeFromParent(animation);\n animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\n return animation;\n};\nvar _quickTween;\nvar _registerPluginQueue = [];\nvar _createPlugin = function _createPlugin2(config3) {\n if (!config3) return;\n config3 = !config3.name && config3[\"default\"] || config3;\n if (_windowExists() || config3.headless) {\n var name = config3.name, isFunc = _isFunction(config3), Plugin = name && !isFunc && config3.init ? function() {\n this._props = [];\n } : config3, instanceDefaults = {\n init: _emptyFunc,\n render: _renderPropTweens,\n add: _addPropTween,\n kill: _killPropTweensOf,\n modifier: _addPluginModifier,\n rawVars: 0\n }, statics = {\n targetTest: 0,\n get: 0,\n getSetter: _getSetter,\n aliases: {},\n register: 0\n };\n _wake();\n if (config3 !== Plugin) {\n if (_plugins[name]) {\n return;\n }\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config3, instanceDefaults), statics));\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config3, statics)));\n _plugins[Plugin.prop = name] = Plugin;\n if (config3.targetTest) {\n _harnessPlugins.push(Plugin);\n _reservedProps[name] = 1;\n }\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\";\n }\n _addGlobal(name, Plugin);\n config3.register && config3.register(gsap, Plugin, PropTween);\n } else {\n _registerPluginQueue.push(config3);\n }\n};\nvar _255 = 255;\nvar _colorLookup = {\n aqua: [0, _255, _255],\n lime: [0, _255, 0],\n silver: [192, 192, 192],\n black: [0, 0, 0],\n maroon: [128, 0, 0],\n teal: [0, 128, 128],\n blue: [0, 0, _255],\n navy: [0, 0, 128],\n white: [_255, _255, _255],\n olive: [128, 128, 0],\n yellow: [_255, _255, 0],\n orange: [_255, 165, 0],\n gray: [128, 128, 128],\n purple: [128, 0, 128],\n green: [0, 128, 0],\n red: [_255, 0, 0],\n pink: [_255, 192, 203],\n cyan: [0, _255, _255],\n transparent: [_255, _255, _255, 0]\n};\nvar _hue = function _hue2(h, m1, m2) {\n h += h < 0 ? 1 : h > 1 ? -1 : 0;\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < 0.5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + 0.5 | 0;\n};\nvar splitColor = function splitColor2(v, toHSL, forceAlpha) {\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0, r, g, b, h, s, l, max, min, d, wasHSL;\n if (!a) {\n if (v.substr(-1) === \",\") {\n v = v.substr(0, v.length - 1);\n }\n if (_colorLookup[v]) {\n a = _colorLookup[v];\n } else if (v.charAt(0) === \"#\") {\n if (v.length < 6) {\n r = v.charAt(1);\n g = v.charAt(2);\n b = v.charAt(3);\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n }\n if (v.length === 9) {\n a = parseInt(v.substr(1, 6), 16);\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n }\n v = parseInt(v.substr(1), 16);\n a = [v >> 16, v >> 8 & _255, v & _255];\n } else if (v.substr(0, 3) === \"hsl\") {\n a = wasHSL = v.match(_strictNumExp);\n if (!toHSL) {\n h = +a[0] % 360 / 360;\n s = +a[1] / 100;\n l = +a[2] / 100;\n g = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n r = l * 2 - g;\n a.length > 3 && (a[3] *= 1);\n a[0] = _hue(h + 1 / 3, r, g);\n a[1] = _hue(h, r, g);\n a[2] = _hue(h - 1 / 3, r, g);\n } else if (~v.indexOf(\"=\")) {\n a = v.match(_numExp);\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n }\n } else {\n a = v.match(_strictNumExp) || _colorLookup.transparent;\n }\n a = a.map(Number);\n }\n if (toHSL && !wasHSL) {\n r = a[0] / _255;\n g = a[1] / _255;\n b = a[2] / _255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h *= 60;\n }\n a[0] = ~~(h + 0.5);\n a[1] = ~~(s * 100 + 0.5);\n a[2] = ~~(l * 100 + 0.5);\n }\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n};\nvar _colorOrderData = function _colorOrderData2(v) {\n var values = [], c = [], i = -1;\n v.split(_colorExp).forEach(function(v2) {\n var a = v2.match(_numWithUnitExp) || [];\n values.push.apply(values, a);\n c.push(i += a.length + 1);\n });\n values.c = c;\n return values;\n};\nvar _formatColors = function _formatColors2(s, toHSL, orderMatchData) {\n var result = \"\", colors = (s + result).match(_colorExp), type = toHSL ? \"hsla(\" : \"rgba(\", i = 0, c, shell, d, l;\n if (!colors) {\n return s;\n }\n colors = colors.map(function(color) {\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\n });\n if (orderMatchData) {\n d = _colorOrderData(s);\n c = orderMatchData.c;\n if (c.join(result) !== d.c.join(result)) {\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n l = shell.length - 1;\n for (; i < l; i++) {\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n }\n }\n }\n if (!shell) {\n shell = s.split(_colorExp);\n l = shell.length - 1;\n for (; i < l; i++) {\n result += shell[i] + colors[i];\n }\n }\n return result + shell[l];\n};\nvar _colorExp = function() {\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\", p;\n for (p in _colorLookup) {\n s += \"|\" + p + \"\\\\b\";\n }\n return new RegExp(s + \")\", \"gi\");\n}();\nvar _hslExp = /hsl[a]?\\(/;\nvar _colorStringFilter = function _colorStringFilter2(a) {\n var combined = a.join(\" \"), toHSL;\n _colorExp.lastIndex = 0;\n if (_colorExp.test(combined)) {\n toHSL = _hslExp.test(combined);\n a[1] = _formatColors(a[1], toHSL);\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1]));\n return true;\n }\n};\nvar _tickerActive;\nvar _ticker = function() {\n var _getTime = Date.now, _lagThreshold = 500, _adjustedLag = 33, _startTime = _getTime(), _lastUpdate = _startTime, _gap = 1e3 / 240, _nextTime = _gap, _listeners2 = [], _id, _req, _raf, _self, _delta, _i, _tick = function _tick2(v) {\n var elapsed = _getTime() - _lastUpdate, manual = v === true, overlap, dispatch, time, frame;\n (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag);\n _lastUpdate += elapsed;\n time = _lastUpdate - _startTime;\n overlap = time - _nextTime;\n if (overlap > 0 || manual) {\n frame = ++_self.frame;\n _delta = time - _self.time * 1e3;\n _self.time = time = time / 1e3;\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n dispatch = 1;\n }\n manual || (_id = _req(_tick2));\n if (dispatch) {\n for (_i = 0; _i < _listeners2.length; _i++) {\n _listeners2[_i](time, _delta, frame, v);\n }\n }\n };\n _self = {\n time: 0,\n frame: 0,\n tick: function tick() {\n _tick(true);\n },\n deltaRatio: function deltaRatio(fps) {\n return _delta / (1e3 / (fps || 60));\n },\n wake: function wake() {\n if (_coreReady) {\n if (!_coreInitted && _windowExists()) {\n _win = _coreInitted = window;\n _doc = _win.document || {};\n _globals.gsap = gsap;\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\n _registerPluginQueue.forEach(_createPlugin);\n }\n _raf = typeof requestAnimationFrame !== \"undefined\" && requestAnimationFrame;\n _id && _self.sleep();\n _req = _raf || function(f) {\n return setTimeout(f, _nextTime - _self.time * 1e3 + 1 | 0);\n };\n _tickerActive = 1;\n _tick(2);\n }\n },\n sleep: function sleep() {\n (_raf ? cancelAnimationFrame : clearTimeout)(_id);\n _tickerActive = 0;\n _req = _emptyFunc;\n },\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\n _lagThreshold = threshold || Infinity;\n _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);\n },\n fps: function fps(_fps) {\n _gap = 1e3 / (_fps || 240);\n _nextTime = _self.time * 1e3 + _gap;\n },\n add: function add(callback, once, prioritize) {\n var func = once ? function(t, d, f, v) {\n callback(t, d, f, v);\n _self.remove(func);\n } : callback;\n _self.remove(callback);\n _listeners2[prioritize ? \"unshift\" : \"push\"](func);\n _wake();\n return func;\n },\n remove: function remove(callback, i) {\n ~(i = _listeners2.indexOf(callback)) && _listeners2.splice(i, 1) && _i >= i && _i--;\n },\n _listeners: _listeners2\n };\n return _self;\n}();\nvar _wake = function _wake2() {\n return !_tickerActive && _ticker.wake();\n};\nvar _easeMap = {};\nvar _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/;\nvar _quotesExp = /[\"']/g;\nvar _parseObjectInString = function _parseObjectInString2(value) {\n var obj = {}, split = value.substr(1, value.length - 3).split(\":\"), key = split[0], i = 1, l = split.length, index, val, parsedVal;\n for (; i < l; i++) {\n val = split[i];\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\n parsedVal = val.substr(0, index);\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n key = val.substr(index + 1).trim();\n }\n return obj;\n};\nvar _valueInParentheses = function _valueInParentheses2(value) {\n var open = value.indexOf(\"(\") + 1, close = value.indexOf(\")\"), nested = value.indexOf(\"(\", open);\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n};\nvar _configEaseFromString = function _configEaseFromString2(name) {\n var split = (name + \"\").split(\"(\"), ease = _easeMap[split[0]];\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\n};\nvar _invertEase = function _invertEase2(ease) {\n return function(p) {\n return 1 - ease(1 - p);\n };\n};\nvar _propagateYoyoEase = function _propagateYoyoEase2(timeline2, isYoyo) {\n var child = timeline2._first, ease;\n while (child) {\n if (child instanceof Timeline) {\n _propagateYoyoEase2(child, isYoyo);\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n if (child.timeline) {\n _propagateYoyoEase2(child.timeline, isYoyo);\n } else {\n ease = child._ease;\n child._ease = child._yEase;\n child._yEase = ease;\n child._yoyo = isYoyo;\n }\n }\n child = child._next;\n }\n};\nvar _parseEase = function _parseEase2(ease, defaultEase) {\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\n};\nvar _insertEase = function _insertEase2(names, easeIn, easeOut, easeInOut) {\n if (easeOut === void 0) {\n easeOut = function easeOut2(p) {\n return 1 - easeIn(1 - p);\n };\n }\n if (easeInOut === void 0) {\n easeInOut = function easeInOut2(p) {\n return p < 0.5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\n };\n }\n var ease = {\n easeIn,\n easeOut,\n easeInOut\n }, lowercaseName;\n _forEachName(names, function(name) {\n _easeMap[name] = _globals[name] = ease;\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\n for (var p in ease) {\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n }\n });\n return ease;\n};\nvar _easeInOutFromOut = function _easeInOutFromOut2(easeOut) {\n return function(p) {\n return p < 0.5 ? (1 - easeOut(1 - p * 2)) / 2 : 0.5 + easeOut((p - 0.5) * 2) / 2;\n };\n};\nvar _configElastic = function _configElastic2(type, amplitude, period) {\n var p1 = amplitude >= 1 ? amplitude : 1, p2 = (period || (type ? 0.3 : 0.45)) / (amplitude < 1 ? amplitude : 1), p3 = p2 / _2PI * (Math.asin(1 / p1) || 0), easeOut = function easeOut2(p) {\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\n }, ease = type === \"out\" ? easeOut : type === \"in\" ? function(p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n p2 = _2PI / p2;\n ease.config = function(amplitude2, period2) {\n return _configElastic2(type, amplitude2, period2);\n };\n return ease;\n};\nvar _configBack = function _configBack2(type, overshoot) {\n if (overshoot === void 0) {\n overshoot = 1.70158;\n }\n var easeOut = function easeOut2(p) {\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\n }, ease = type === \"out\" ? easeOut : type === \"in\" ? function(p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n ease.config = function(overshoot2) {\n return _configBack2(type, overshoot2);\n };\n return ease;\n};\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function(name, i) {\n var power = i < 5 ? i + 1 : i;\n _insertEase(name + \",Power\" + (power - 1), i ? function(p) {\n return Math.pow(p, power);\n } : function(p) {\n return p;\n }, function(p) {\n return 1 - Math.pow(1 - p, power);\n }, function(p) {\n return p < 0.5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\n });\n});\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n(function(n, c) {\n var n1 = 1 / c, n2 = 2 * n1, n3 = 2.5 * n1, easeOut = function easeOut2(p) {\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + 0.75 : p < n3 ? n * (p -= 2.25 / c) * p + 0.9375 : n * Math.pow(p - 2.625 / c, 2) + 0.984375;\n };\n _insertEase(\"Bounce\", function(p) {\n return 1 - easeOut(1 - p);\n }, easeOut);\n})(7.5625, 2.75);\n_insertEase(\"Expo\", function(p) {\n return p ? Math.pow(2, 10 * (p - 1)) : 0;\n});\n_insertEase(\"Circ\", function(p) {\n return -(_sqrt(1 - p * p) - 1);\n});\n_insertEase(\"Sine\", function(p) {\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\n});\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n config: function config(steps, immediateStart) {\n if (steps === void 0) {\n steps = 1;\n }\n var p1 = 1 / steps, p2 = steps + (immediateStart ? 0 : 1), p3 = immediateStart ? 1 : 0, max = 1 - _tinyNum;\n return function(p) {\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\n };\n }\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function(name) {\n return _callbackNames += name + \",\" + name + \"Params,\";\n});\nvar GSCache = function GSCache2(target, harness) {\n this.id = _gsID++;\n target._gsap = this;\n this.target = target;\n this.harness = harness;\n this.get = harness ? harness.get : _getProperty;\n this.set = harness ? harness.getSetter : _getSetter;\n};\nvar Animation = /* @__PURE__ */ function() {\n function Animation2(vars) {\n this.vars = vars;\n this._delay = +vars.delay || 0;\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\n this._rDelay = vars.repeatDelay || 0;\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n }\n this._ts = 1;\n _setDuration(this, +vars.duration, 1, 1);\n this.data = vars.data;\n if (_context) {\n this._ctx = _context;\n _context.data.push(this);\n }\n _tickerActive || _ticker.wake();\n }\n var _proto = Animation2.prototype;\n _proto.delay = function delay(value) {\n if (value || value === 0) {\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\n this._delay = value;\n return this;\n }\n return this._delay;\n };\n _proto.duration = function duration(value) {\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n };\n _proto.totalDuration = function totalDuration(value) {\n if (!arguments.length) {\n return this._tDur;\n }\n this._dirty = 0;\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\n };\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\n _wake();\n if (!arguments.length) {\n return this._tTime;\n }\n var parent = this._dp;\n if (parent && parent.smoothChildTiming && this._ts) {\n _alignPlayhead(this, _totalTime);\n !parent._dp || parent.parent || _postAddChecks(parent, this);\n while (parent && parent.parent) {\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n parent.totalTime(parent._tTime, true);\n }\n parent = parent.parent;\n }\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\n _addToTimeline(this._dp, this, this._start - this._delay);\n }\n }\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\n this._ts || (this._pTime = _totalTime);\n _lazySafeRender(this, _totalTime, suppressEvents);\n }\n return this;\n };\n _proto.time = function time(value, suppressEvents) {\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time;\n };\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() > 0 ? 1 : 0;\n };\n _proto.progress = function progress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0;\n };\n _proto.iteration = function iteration(value, suppressEvents) {\n var cycleDuration = this.duration() + this._rDelay;\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n };\n _proto.timeScale = function timeScale(value, suppressEvents) {\n if (!arguments.length) {\n return this._rts === -_tinyNum ? 0 : this._rts;\n }\n if (this._rts === value) {\n return this;\n }\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime;\n this._rts = +value || 0;\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts;\n this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), suppressEvents !== false);\n _setEnd(this);\n return _recacheAncestors(this);\n };\n _proto.paused = function paused(value) {\n if (!arguments.length) {\n return this._ps;\n }\n if (this._ps !== value) {\n this._ps = value;\n if (value) {\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime());\n this._ts = this._act = 0;\n } else {\n _wake();\n this._ts = this._rts;\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum));\n }\n }\n return this;\n };\n _proto.startTime = function startTime(value) {\n if (arguments.length) {\n this._start = value;\n var parent = this.parent || this._dp;\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n return this;\n }\n return this._start;\n };\n _proto.endTime = function endTime(includeRepeats) {\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);\n };\n _proto.rawTime = function rawTime(wrapRepeats) {\n var parent = this.parent || this._dp;\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n };\n _proto.revert = function revert(config3) {\n if (config3 === void 0) {\n config3 = _revertConfig;\n }\n var prevIsReverting = _reverting;\n _reverting = config3;\n if (this._initted || this._startAt) {\n this.timeline && this.timeline.revert(config3);\n this.totalTime(-0.01, config3.suppressEvents);\n }\n this.data !== \"nested\" && config3.kill !== false && this.kill();\n _reverting = prevIsReverting;\n return this;\n };\n _proto.globalTime = function globalTime(rawTime) {\n var animation = this, time = arguments.length ? rawTime : animation.rawTime();\n while (animation) {\n time = animation._start + time / (Math.abs(animation._ts) || 1);\n animation = animation._dp;\n }\n return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time;\n };\n _proto.repeat = function repeat(value) {\n if (arguments.length) {\n this._repeat = value === Infinity ? -2 : value;\n return _onUpdateTotalDuration(this);\n }\n return this._repeat === -2 ? Infinity : this._repeat;\n };\n _proto.repeatDelay = function repeatDelay(value) {\n if (arguments.length) {\n var time = this._time;\n this._rDelay = value;\n _onUpdateTotalDuration(this);\n return time ? this.time(time) : this;\n }\n return this._rDelay;\n };\n _proto.yoyo = function yoyo(value) {\n if (arguments.length) {\n this._yoyo = value;\n return this;\n }\n return this._yoyo;\n };\n _proto.seek = function seek(position, suppressEvents) {\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n };\n _proto.restart = function restart(includeDelay, suppressEvents) {\n return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n };\n _proto.play = function play(from, suppressEvents) {\n from != null && this.seek(from, suppressEvents);\n return this.reversed(false).paused(false);\n };\n _proto.reverse = function reverse(from, suppressEvents) {\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\n return this.reversed(true).paused(false);\n };\n _proto.pause = function pause(atTime, suppressEvents) {\n atTime != null && this.seek(atTime, suppressEvents);\n return this.paused(true);\n };\n _proto.resume = function resume() {\n return this.paused(false);\n };\n _proto.reversed = function reversed(value) {\n if (arguments.length) {\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0));\n return this;\n }\n return this._rts < 0;\n };\n _proto.invalidate = function invalidate() {\n this._initted = this._act = 0;\n this._zTime = -_tinyNum;\n return this;\n };\n _proto.isActive = function isActive() {\n var parent = this.parent || this._dp, start = this._start, rawTime;\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\n };\n _proto.eventCallback = function eventCallback(type, callback, params) {\n var vars = this.vars;\n if (arguments.length > 1) {\n if (!callback) {\n delete vars[type];\n } else {\n vars[type] = callback;\n params && (vars[type + \"Params\"] = params);\n type === \"onUpdate\" && (this._onUpdate = callback);\n }\n return this;\n }\n return vars[type];\n };\n _proto.then = function then(onFulfilled) {\n var self = this;\n return new Promise(function(resolve) {\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough, _resolve = function _resolve2() {\n var _then = self.then;\n self.then = null;\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n resolve(f);\n self.then = _then;\n };\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\n _resolve();\n } else {\n self._prom = _resolve;\n }\n });\n };\n _proto.kill = function kill() {\n _interrupt(this);\n };\n return Animation2;\n}();\n_setDefaults(Animation.prototype, {\n _time: 0,\n _start: 0,\n _end: 0,\n _tTime: 0,\n _tDur: 0,\n _dirty: 0,\n _repeat: 0,\n _yoyo: false,\n parent: null,\n _initted: false,\n _rDelay: 0,\n _ts: 1,\n _dp: 0,\n ratio: 0,\n _zTime: -_tinyNum,\n _prom: 0,\n _ps: false,\n _rts: 1\n});\nvar Timeline = /* @__PURE__ */ function(_Animation) {\n _inheritsLoose(Timeline2, _Animation);\n function Timeline2(vars, position) {\n var _this;\n if (vars === void 0) {\n vars = {};\n }\n _this = _Animation.call(this, vars) || this;\n _this.labels = {};\n _this.smoothChildTiming = !!vars.smoothChildTiming;\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\n _this._sort = _isNotFalse(vars.sortChildren);\n _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);\n vars.reversed && _this.reverse();\n vars.paused && _this.paused(true);\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\n return _this;\n }\n var _proto2 = Timeline2.prototype;\n _proto2.to = function to(targets, vars, position) {\n _createTweenType(0, arguments, this);\n return this;\n };\n _proto2.from = function from(targets, vars, position) {\n _createTweenType(1, arguments, this);\n return this;\n };\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\n _createTweenType(2, arguments, this);\n return this;\n };\n _proto2.set = function set(targets, vars, position) {\n vars.duration = 0;\n vars.parent = this;\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n vars.immediateRender = !!vars.immediateRender;\n new Tween(targets, vars, _parsePosition(this, position), 1);\n return this;\n };\n _proto2.call = function call(callback, params, position) {\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);\n };\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.duration = duration;\n vars.stagger = vars.stagger || stagger;\n vars.onComplete = onCompleteAll;\n vars.onCompleteParams = onCompleteAllParams;\n vars.parent = this;\n new Tween(targets, vars, _parsePosition(this, position));\n return this;\n };\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.runBackwards = 1;\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n toVars.startAt = fromVars;\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n _proto2.render = function render3(totalTime, suppressEvents, force) {\n var prevTime = this._time, tDur = this._dirty ? this.totalDuration() : this._tDur, dur = this._dur, tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime), crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur), time, child, next, iteration, cycleDuration, prevPaused, pauseTween, timeScale, prevStart, prevIteration, yoyo, isYoyo;\n this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);\n if (tTime !== this._tTime || force || crossingStart) {\n if (prevTime !== this._time && dur) {\n tTime += this._time - prevTime;\n totalTime += this._time - prevTime;\n }\n time = tTime;\n prevStart = this._start;\n timeScale = this._ts;\n prevPaused = !timeScale;\n if (crossingStart) {\n dur || (prevTime = this._zTime);\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\n }\n if (this._repeat) {\n yoyo = this._yoyo;\n cycleDuration = dur + this._rDelay;\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n time = _roundPrecise(tTime % cycleDuration);\n if (tTime === tDur) {\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n time > dur && (time = dur);\n }\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration);\n if (yoyo && iteration & 1) {\n time = dur - time;\n isYoyo = 1;\n }\n if (iteration !== prevIteration && !this._lock) {\n var rewinding = yoyo && prevIteration & 1, doesWrap = rewinding === (yoyo && iteration & 1);\n iteration < prevIteration && (rewinding = !rewinding);\n prevTime = rewinding ? 0 : tTime % dur ? dur : tTime;\n this._lock = 1;\n this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n this._tTime = tTime;\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\n return this;\n }\n dur = this._dur;\n tDur = this._tDur;\n if (doesWrap) {\n this._lock = 2;\n prevTime = rewinding ? dur : -1e-4;\n this.render(prevTime, true);\n this.vars.repeatRefresh && !isYoyo && this.invalidate();\n }\n this._lock = 0;\n if (!this._ts && !prevPaused) {\n return this;\n }\n _propagateYoyoEase(this, isYoyo);\n }\n }\n if (this._hasPause && !this._forcing && this._lock < 2) {\n pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));\n if (pauseTween) {\n tTime -= time - (time = pauseTween._start);\n }\n }\n this._tTime = tTime;\n this._time = time;\n this._act = !timeScale;\n if (!this._initted) {\n this._onUpdate = this.vars.onUpdate;\n this._initted = 1;\n this._zTime = totalTime;\n prevTime = 0;\n }\n if (!prevTime && time && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n if (this._tTime !== tTime) {\n return this;\n }\n }\n if (time >= prevTime && totalTime >= 0) {\n child = this._first;\n while (child) {\n next = child._next;\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n return this.render(totalTime, suppressEvents, force);\n }\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n if (time !== this._time || !this._ts && !prevPaused) {\n pauseTween = 0;\n next && (tTime += this._zTime = -_tinyNum);\n break;\n }\n }\n child = next;\n }\n } else {\n child = this._last;\n var adjustedTime = totalTime < 0 ? totalTime : time;\n while (child) {\n next = child._prev;\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n return this.render(totalTime, suppressEvents, force);\n }\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt));\n if (time !== this._time || !this._ts && !prevPaused) {\n pauseTween = 0;\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum);\n break;\n }\n }\n child = next;\n }\n }\n if (pauseTween && !suppressEvents) {\n this.pause();\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n if (this._ts) {\n this._start = prevStart;\n _setEnd(this);\n return this.render(totalTime, suppressEvents, force);\n }\n }\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) {\n if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) {\n if (!this._lock) {\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {\n _callback(this, tTime === tDur && totalTime >= 0 ? \"onComplete\" : \"onReverseComplete\", true);\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n }\n }\n return this;\n };\n _proto2.add = function add(child, position) {\n var _this2 = this;\n _isNumber(position) || (position = _parsePosition(this, position, child));\n if (!(child instanceof Animation)) {\n if (_isArray(child)) {\n child.forEach(function(obj) {\n return _this2.add(obj, position);\n });\n return this;\n }\n if (_isString(child)) {\n return this.addLabel(child, position);\n }\n if (_isFunction(child)) {\n child = Tween.delayedCall(0, child);\n } else {\n return this;\n }\n }\n return this !== child ? _addToTimeline(this, child, position) : this;\n };\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\n if (nested === void 0) {\n nested = true;\n }\n if (tweens === void 0) {\n tweens = true;\n }\n if (timelines === void 0) {\n timelines = true;\n }\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = -_bigNum;\n }\n var a = [], child = this._first;\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n if (child instanceof Tween) {\n tweens && a.push(child);\n } else {\n timelines && a.push(child);\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\n }\n }\n child = child._next;\n }\n return a;\n };\n _proto2.getById = function getById2(id) {\n var animations = this.getChildren(1, 1, 1), i = animations.length;\n while (i--) {\n if (animations[i].vars.id === id) {\n return animations[i];\n }\n }\n };\n _proto2.remove = function remove(child) {\n if (_isString(child)) {\n return this.removeLabel(child);\n }\n if (_isFunction(child)) {\n return this.killTweensOf(child);\n }\n _removeLinkedListItem(this, child);\n if (child === this._recent) {\n this._recent = this._last;\n }\n return _uncache(this);\n };\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\n if (!arguments.length) {\n return this._tTime;\n }\n this._forcing = 1;\n if (!this._dp && this._ts) {\n this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\n }\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\n this._forcing = 0;\n return this;\n };\n _proto2.addLabel = function addLabel(label, position) {\n this.labels[label] = _parsePosition(this, position);\n return this;\n };\n _proto2.removeLabel = function removeLabel(label) {\n delete this.labels[label];\n return this;\n };\n _proto2.addPause = function addPause(position, callback, params) {\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\n t.data = \"isPause\";\n this._hasPause = 1;\n return _addToTimeline(this, t, _parsePosition(this, position));\n };\n _proto2.removePause = function removePause(position) {\n var child = this._first;\n position = _parsePosition(this, position);\n while (child) {\n if (child._start === position && child.data === \"isPause\") {\n _removeFromParent(child);\n }\n child = child._next;\n }\n };\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n var tweens = this.getTweensOf(targets, onlyActive), i = tweens.length;\n while (i--) {\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\n }\n return this;\n };\n _proto2.getTweensOf = function getTweensOf2(targets, onlyActive) {\n var a = [], parsedTargets = toArray(targets), child = this._first, isGlobalTime = _isNumber(onlyActive), children;\n while (child) {\n if (child instanceof Tween) {\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\n a.push(child);\n }\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n a.push.apply(a, children);\n }\n child = child._next;\n }\n return a;\n };\n _proto2.tweenTo = function tweenTo(position, vars) {\n vars = vars || {};\n var tl = this, endTime = _parsePosition(tl, position), _vars = vars, startAt = _vars.startAt, _onStart = _vars.onStart, onStartParams = _vars.onStartParams, immediateRender = _vars.immediateRender, initted, tween = Tween.to(tl, _setDefaults({\n ease: vars.ease || \"none\",\n lazy: false,\n immediateRender: false,\n time: endTime,\n overwrite: \"auto\",\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\n onStart: function onStart() {\n tl.pause();\n if (!initted) {\n var duration = vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale());\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n initted = 1;\n }\n _onStart && _onStart.apply(tween, onStartParams || []);\n }\n }, vars));\n return immediateRender ? tween.render(0) : tween;\n };\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\n return this.tweenTo(toPosition, _setDefaults({\n startAt: {\n time: _parsePosition(this, fromPosition)\n }\n }, vars));\n };\n _proto2.recent = function recent() {\n return this._recent;\n };\n _proto2.nextLabel = function nextLabel(afterTime) {\n if (afterTime === void 0) {\n afterTime = this._time;\n }\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\n };\n _proto2.previousLabel = function previousLabel(beforeTime) {\n if (beforeTime === void 0) {\n beforeTime = this._time;\n }\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n };\n _proto2.currentLabel = function currentLabel(value) {\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n };\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = 0;\n }\n var child = this._first, labels = this.labels, p;\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n child._start += amount;\n child._end += amount;\n }\n child = child._next;\n }\n if (adjustLabels) {\n for (p in labels) {\n if (labels[p] >= ignoreBeforeTime) {\n labels[p] += amount;\n }\n }\n }\n return _uncache(this);\n };\n _proto2.invalidate = function invalidate(soft) {\n var child = this._first;\n this._lock = 0;\n while (child) {\n child.invalidate(soft);\n child = child._next;\n }\n return _Animation.prototype.invalidate.call(this, soft);\n };\n _proto2.clear = function clear(includeLabels) {\n if (includeLabels === void 0) {\n includeLabels = true;\n }\n var child = this._first, next;\n while (child) {\n next = child._next;\n this.remove(child);\n child = next;\n }\n this._dp && (this._time = this._tTime = this._pTime = 0);\n includeLabels && (this.labels = {});\n return _uncache(this);\n };\n _proto2.totalDuration = function totalDuration(value) {\n var max = 0, self = this, child = self._last, prevStart = _bigNum, prev, start, parent;\n if (arguments.length) {\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n }\n if (self._dirty) {\n parent = self.parent;\n while (child) {\n prev = child._prev;\n child._dirty && child.totalDuration();\n start = child._start;\n if (start > prevStart && self._sort && child._ts && !self._lock) {\n self._lock = 1;\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n } else {\n prevStart = start;\n }\n if (start < 0 && child._ts) {\n max -= start;\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\n self._start += start / self._ts;\n self._time -= start;\n self._tTime -= start;\n }\n self.shiftChildren(-start, false, -Infinity);\n prevStart = 0;\n }\n child._end > max && child._ts && (max = child._end);\n child = prev;\n }\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\n self._dirty = 0;\n }\n return self._tDur;\n };\n Timeline2.updateRoot = function updateRoot(time) {\n if (_globalTimeline._ts) {\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n _lastRenderedFrame = _ticker.frame;\n }\n if (_ticker.frame >= _nextGCFrame) {\n _nextGCFrame += _config.autoSleep || 120;\n var child = _globalTimeline._first;\n if (!child || !child._ts) {\n if (_config.autoSleep && _ticker._listeners.length < 2) {\n while (child && !child._ts) {\n child = child._next;\n }\n child || _ticker.sleep();\n }\n }\n }\n };\n return Timeline2;\n}(Animation);\n_setDefaults(Timeline.prototype, {\n _lock: 0,\n _hasPause: 0,\n _forcing: 0\n});\nvar _addComplexStringPropTween = function _addComplexStringPropTween2(target, prop, start, end, setter, stringFilter, funcParam) {\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter), index = 0, matchIndex = 0, result, startNums, color, endNum, chunk, startNum, hasRandom, a;\n pt.b = start;\n pt.e = end;\n start += \"\";\n end += \"\";\n if (hasRandom = ~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n if (stringFilter) {\n a = [start, end];\n stringFilter(a, target, prop);\n start = a[0];\n end = a[1];\n }\n startNums = start.match(_complexStringNumExp) || [];\n while (result = _complexStringNumExp.exec(end)) {\n endNum = result[0];\n chunk = end.substring(index, result.index);\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\") {\n color = 1;\n }\n if (endNum !== startNums[matchIndex++]) {\n startNum = parseFloat(startNums[matchIndex - 1]) || 0;\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum.charAt(1) === \"=\" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,\n m: color && color < 4 ? Math.round : 0\n };\n index = _complexStringNumExp.lastIndex;\n }\n }\n pt.c = index < end.length ? end.substring(index, end.length) : \"\";\n pt.fp = funcParam;\n if (_relExp.test(end) || hasRandom) {\n pt.e = 0;\n }\n this._pt = pt;\n return pt;\n};\nvar _addPropTween = function _addPropTween2(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {\n _isFunction(end) && (end = end(index || 0, target, targets));\n var currentValue = target[prop], parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](), setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc, pt;\n if (_isString(end)) {\n if (~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n if (end.charAt(1) === \"=\") {\n pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);\n if (pt || pt === 0) {\n end = pt;\n }\n }\n }\n if (!optional || parsedStart !== end || _forceAllPropTweens) {\n if (!isNaN(parsedStart * end) && end !== \"\") {\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n funcParam && (pt.fp = funcParam);\n modifier && pt.modifier(modifier, this, target);\n return this._pt = pt;\n }\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n }\n};\nvar _processVars = function _processVars2(vars, index, target, targets, tween) {\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n }\n var copy = {}, p;\n for (p in vars) {\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n }\n return copy;\n};\nvar _checkPlugin = function _checkPlugin2(property, vars, tween, index, target, targets) {\n var plugin, pt, ptLookup, i;\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n if (tween !== _quickTween) {\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)];\n i = plugin._props.length;\n while (i--) {\n ptLookup[plugin._props[i]] = pt;\n }\n }\n }\n return plugin;\n};\nvar _overwritingTween;\nvar _forceAllPropTweens;\nvar _initTween = function _initTween2(tween, time, tTime) {\n var vars = tween.vars, ease = vars.ease, startAt = vars.startAt, immediateRender = vars.immediateRender, lazy = vars.lazy, onUpdate = vars.onUpdate, runBackwards = vars.runBackwards, yoyoEase = vars.yoyoEase, keyframes = vars.keyframes, autoRevert = vars.autoRevert, dur = tween._dur, prevStartAt = tween._startAt, targets = tween._targets, parent = tween.parent, fullTargets = parent && parent.data === \"nested\" ? parent.vars.targets : targets, autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites, tl = tween.timeline, cleanVars, i, p, pt, target, hasPriority, gsData, harness, plugin, ptLookup, index, harnessVars, overwritten;\n tl && (!keyframes || !ease) && (ease = \"none\");\n tween._ease = _parseEase(ease, _defaults.ease);\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n if (yoyoEase && tween._yoyo && !tween._repeat) {\n yoyoEase = tween._yEase;\n tween._yEase = tween._ease;\n tween._ease = yoyoEase;\n }\n tween._from = !tl && !!vars.runBackwards;\n if (!tl || keyframes && !vars.stagger) {\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\n harnessVars = harness && vars[harness.prop];\n cleanVars = _copyExcluding(vars, _reservedProps);\n if (prevStartAt) {\n prevStartAt._zTime < 0 && prevStartAt.progress(1);\n time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig);\n prevStartAt._lazy = 0;\n }\n if (startAt) {\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\n data: \"isStart\",\n overwrite: false,\n parent,\n immediateRender: true,\n lazy: !prevStartAt && _isNotFalse(lazy),\n startAt: null,\n delay: 0,\n onUpdate: onUpdate && function() {\n return _callback(tween, \"onUpdate\");\n },\n stagger: 0\n }, startAt)));\n tween._startAt._dp = 0;\n tween._startAt._sat = tween;\n time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill);\n if (immediateRender) {\n if (dur && time <= 0 && tTime <= 0) {\n time && (tween._zTime = time);\n return;\n }\n }\n } else if (runBackwards && dur) {\n if (!prevStartAt) {\n time && (immediateRender = false);\n p = _setDefaults({\n overwrite: false,\n data: \"isFromStart\",\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),\n immediateRender,\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n stagger: 0,\n parent\n //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y: gsap.utils.wrap([-100,100]), stagger: 0.5})\n }, cleanVars);\n harnessVars && (p[harness.prop] = harnessVars);\n _removeFromParent(tween._startAt = Tween.set(targets, p));\n tween._startAt._dp = 0;\n tween._startAt._sat = tween;\n time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));\n tween._zTime = time;\n if (!immediateRender) {\n _initTween2(tween._startAt, _tinyNum, _tinyNum);\n } else if (!time) {\n return;\n }\n }\n }\n tween._pt = tween._ptCache = 0;\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\n for (i = 0; i < targets.length; i++) {\n target = targets[i];\n gsData = target._gsap || _harness(targets)[i]._gsap;\n tween._ptLookup[i] = ptLookup = {};\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender();\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n plugin._props.forEach(function(name) {\n ptLookup[name] = pt;\n });\n plugin.priority && (hasPriority = 1);\n }\n if (!harness || harnessVars) {\n for (p in cleanVars) {\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n plugin.priority && (hasPriority = 1);\n } else {\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n }\n }\n }\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n if (autoOverwrite && tween._pt) {\n _overwritingTween = tween;\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time));\n overwritten = !tween.parent;\n _overwritingTween = 0;\n }\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n }\n hasPriority && _sortPropTweensByPriority(tween);\n tween._onInit && tween._onInit(tween);\n }\n tween._onUpdate = onUpdate;\n tween._initted = (!tween._op || tween._pt) && !overwritten;\n keyframes && time <= 0 && tl.render(_bigNum, true, true);\n};\nvar _updatePropTweens = function _updatePropTweens2(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) {\n var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property], pt, rootPT, lookup, i;\n if (!ptCache) {\n ptCache = tween._ptCache[property] = [];\n lookup = tween._ptLookup;\n i = tween._targets.length;\n while (i--) {\n pt = lookup[i][property];\n if (pt && pt.d && pt.d._pt) {\n pt = pt.d._pt;\n while (pt && pt.p !== property && pt.fp !== property) {\n pt = pt._next;\n }\n }\n if (!pt) {\n _forceAllPropTweens = 1;\n tween.vars[property] = \"+=0\";\n _initTween(tween, time);\n _forceAllPropTweens = 0;\n return skipRecursion ? _warn(property + \" not eligible for reset\") : 1;\n }\n ptCache.push(pt);\n }\n }\n i = ptCache.length;\n while (i--) {\n rootPT = ptCache[i];\n pt = rootPT._pt || rootPT;\n pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;\n pt.c = value - pt.s;\n rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e));\n rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b));\n }\n};\nvar _addAliasesToVars = function _addAliasesToVars2(targets, vars) {\n var harness = targets[0] ? _getCache(targets[0]).harness : 0, propertyAliases = harness && harness.aliases, copy, p, i, aliases;\n if (!propertyAliases) {\n return vars;\n }\n copy = _merge({}, vars);\n for (p in propertyAliases) {\n if (p in copy) {\n aliases = propertyAliases[p].split(\",\");\n i = aliases.length;\n while (i--) {\n copy[aliases[i]] = copy[p];\n }\n }\n }\n return copy;\n};\nvar _parseKeyframe = function _parseKeyframe2(prop, obj, allProps, easeEach) {\n var ease = obj.ease || easeEach || \"power1.inOut\", p, a;\n if (_isArray(obj)) {\n a = allProps[prop] || (allProps[prop] = []);\n obj.forEach(function(value, i) {\n return a.push({\n t: i / (obj.length - 1) * 100,\n v: value,\n e: ease\n });\n });\n } else {\n for (p in obj) {\n a = allProps[p] || (allProps[p] = []);\n p === \"ease\" || a.push({\n t: parseFloat(prop),\n v: obj[p],\n e: ease\n });\n }\n }\n};\nvar _parseFuncOrString = function _parseFuncOrString2(value, tween, i, target, targets) {\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\n};\nvar _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert\";\nvar _staggerPropsToSkip = {};\n_forEachName(_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\", function(name) {\n return _staggerPropsToSkip[name] = 1;\n});\nvar Tween = /* @__PURE__ */ function(_Animation2) {\n _inheritsLoose(Tween2, _Animation2);\n function Tween2(targets, vars, position, skipInherit) {\n var _this3;\n if (typeof vars === \"number\") {\n position.duration = vars;\n vars = position;\n position = null;\n }\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;\n var _this3$vars = _this3.vars, duration = _this3$vars.duration, delay = _this3$vars.delay, immediateRender = _this3$vars.immediateRender, stagger = _this3$vars.stagger, overwrite = _this3$vars.overwrite, keyframes = _this3$vars.keyframes, defaults2 = _this3$vars.defaults, scrollTrigger = _this3$vars.scrollTrigger, yoyoEase = _this3$vars.yoyoEase, parent = vars.parent || _globalTimeline, parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets), tl, i, copy, l, p, curTarget, staggerFunc, staggerVarsToMerge;\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://gsap.com\", !_config.nullTargetWarn) || [];\n _this3._ptLookup = [];\n _this3._overwrite = overwrite;\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n vars = _this3.vars;\n tl = _this3.timeline = new Timeline({\n data: \"nested\",\n defaults: defaults2 || {},\n targets: parent && parent.data === \"nested\" ? parent.vars.targets : parsedTargets\n });\n tl.kill();\n tl.parent = tl._dp = _assertThisInitialized(_this3);\n tl._start = 0;\n if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n l = parsedTargets.length;\n staggerFunc = stagger && distribute(stagger);\n if (_isObject(stagger)) {\n for (p in stagger) {\n if (~_staggerTweenProps.indexOf(p)) {\n staggerVarsToMerge || (staggerVarsToMerge = {});\n staggerVarsToMerge[p] = stagger[p];\n }\n }\n }\n for (i = 0; i < l; i++) {\n copy = _copyExcluding(vars, _staggerPropsToSkip);\n copy.stagger = 0;\n yoyoEase && (copy.yoyoEase = yoyoEase);\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n curTarget = parsedTargets[i];\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\n if (!stagger && l === 1 && copy.delay) {\n _this3._delay = delay = copy.delay;\n _this3._start += delay;\n copy.delay = 0;\n }\n tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);\n tl._ease = _easeMap.none;\n }\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0;\n } else if (keyframes) {\n _inheritDefaults(_setDefaults(tl.vars.defaults, {\n ease: \"none\"\n }));\n tl._ease = _parseEase(keyframes.ease || vars.ease || \"none\");\n var time = 0, a, kf, v;\n if (_isArray(keyframes)) {\n keyframes.forEach(function(frame) {\n return tl.to(parsedTargets, frame, \">\");\n });\n tl.duration();\n } else {\n copy = {};\n for (p in keyframes) {\n p === \"ease\" || p === \"easeEach\" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);\n }\n for (p in copy) {\n a = copy[p].sort(function(a2, b) {\n return a2.t - b.t;\n });\n time = 0;\n for (i = 0; i < a.length; i++) {\n kf = a[i];\n v = {\n ease: kf.e,\n duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration\n };\n v[p] = kf.v;\n tl.to(parsedTargets, v, time);\n time += v.duration;\n }\n }\n tl.duration() < duration && tl.to({}, {\n duration: duration - tl.duration()\n });\n }\n }\n duration || _this3.duration(duration = tl.duration());\n } else {\n _this3.timeline = 0;\n }\n if (overwrite === true && !_suppressOverwrites) {\n _overwritingTween = _assertThisInitialized(_this3);\n _globalTimeline.killTweensOf(parsedTargets);\n _overwritingTween = 0;\n }\n _addToTimeline(parent, _assertThisInitialized(_this3), position);\n vars.reversed && _this3.reverse();\n vars.paused && _this3.paused(true);\n if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\n _this3._tTime = -_tinyNum;\n _this3.render(Math.max(0, -delay) || 0);\n }\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\n return _this3;\n }\n var _proto3 = Tween2.prototype;\n _proto3.render = function render3(totalTime, suppressEvents, force) {\n var prevTime = this._time, tDur = this._tDur, dur = this._dur, isNegative = totalTime < 0, tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime, time, pt, iteration, cycleDuration, prevIteration, isYoyo, ratio, timeline2, yoyoEase;\n if (!dur) {\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) {\n time = tTime;\n timeline2 = this.timeline;\n if (this._repeat) {\n cycleDuration = dur + this._rDelay;\n if (this._repeat < -1 && isNegative) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n time = _roundPrecise(tTime % cycleDuration);\n if (tTime === tDur) {\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n if (iteration && iteration === _roundPrecise(tTime / cycleDuration)) {\n time = dur;\n iteration--;\n }\n time > dur && (time = dur);\n }\n isYoyo = this._yoyo && iteration & 1;\n if (isYoyo) {\n yoyoEase = this._yEase;\n time = dur - time;\n }\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n if (time === prevTime && !force && this._initted && iteration === prevIteration) {\n this._tTime = tTime;\n return this;\n }\n if (iteration !== prevIteration) {\n timeline2 && this._yEase && _propagateYoyoEase(timeline2, isYoyo);\n if (this.vars.repeatRefresh && !isYoyo && !this._lock && this._time !== cycleDuration && this._initted) {\n this._lock = force = 1;\n this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;\n }\n }\n }\n if (!this._initted) {\n if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {\n this._tTime = 0;\n return this;\n }\n if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) {\n return this;\n }\n if (dur !== this._dur) {\n return this.render(totalTime, suppressEvents, force);\n }\n }\n this._tTime = tTime;\n this._time = time;\n if (!this._act && this._ts) {\n this._act = 1;\n this._lazy = 0;\n }\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n if (this._from) {\n this.ratio = ratio = 1 - ratio;\n }\n if (time && !prevTime && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n if (this._tTime !== tTime) {\n return this;\n }\n }\n pt = this._pt;\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n timeline2 && timeline2.render(totalTime < 0 ? totalTime : timeline2._dur * timeline2._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);\n if (this._onUpdate && !suppressEvents) {\n isNegative && _rewindStartAt(this, totalTime, suppressEvents, force);\n _callback(this, \"onUpdate\");\n }\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);\n if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n return this;\n };\n _proto3.targets = function targets() {\n return this._targets;\n };\n _proto3.invalidate = function invalidate(soft) {\n (!soft || !this.vars.runBackwards) && (this._startAt = 0);\n this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;\n this._ptLookup = [];\n this.timeline && this.timeline.invalidate(soft);\n return _Animation2.prototype.invalidate.call(this, soft);\n };\n _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) {\n _tickerActive || _ticker.wake();\n this._ts || this.play();\n var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts), ratio;\n this._initted || _initTween(this, time);\n ratio = this._ease(time / this._dur);\n if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) {\n return this.resetTo(property, value, start, startIsRelative, 1);\n }\n _alignPlayhead(this, 0);\n this.parent || _addLinkedListItem(this._dp, this, \"_first\", \"_last\", this._dp._sort ? \"_start\" : 0);\n return this.render(0);\n };\n _proto3.kill = function kill(targets, vars) {\n if (vars === void 0) {\n vars = \"all\";\n }\n if (!targets && (!vars || vars === \"all\")) {\n this._lazy = this._pt = 0;\n return this.parent ? _interrupt(this) : this;\n }\n if (this.timeline) {\n var tDur = this.timeline.totalDuration();\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this);\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1);\n return this;\n }\n var parsedTargets = this._targets, killingTargets = targets ? toArray(targets) : parsedTargets, propTweenLookup = this._ptLookup, firstPT = this._pt, overwrittenProps, curLookup, curOverwriteProps, props, p, pt, i;\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n vars === \"all\" && (this._pt = 0);\n return _interrupt(this);\n }\n overwrittenProps = this._op = this._op || [];\n if (vars !== \"all\") {\n if (_isString(vars)) {\n p = {};\n _forEachName(vars, function(name) {\n return p[name] = 1;\n });\n vars = p;\n }\n vars = _addAliasesToVars(parsedTargets, vars);\n }\n i = parsedTargets.length;\n while (i--) {\n if (~killingTargets.indexOf(parsedTargets[i])) {\n curLookup = propTweenLookup[i];\n if (vars === \"all\") {\n overwrittenProps[i] = vars;\n props = curLookup;\n curOverwriteProps = {};\n } else {\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n props = vars;\n }\n for (p in props) {\n pt = curLookup && curLookup[p];\n if (pt) {\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n _removeLinkedListItem(this, pt, \"_pt\");\n }\n delete curLookup[p];\n }\n if (curOverwriteProps !== \"all\") {\n curOverwriteProps[p] = 1;\n }\n }\n }\n }\n this._initted && !this._pt && firstPT && _interrupt(this);\n return this;\n };\n Tween2.to = function to(targets, vars) {\n return new Tween2(targets, vars, arguments[2]);\n };\n Tween2.from = function from(targets, vars) {\n return _createTweenType(1, arguments);\n };\n Tween2.delayedCall = function delayedCall(delay, callback, params, scope) {\n return new Tween2(callback, 0, {\n immediateRender: false,\n lazy: false,\n overwrite: false,\n delay,\n onComplete: callback,\n onReverseComplete: callback,\n onCompleteParams: params,\n onReverseCompleteParams: params,\n callbackScope: scope\n });\n };\n Tween2.fromTo = function fromTo(targets, fromVars, toVars) {\n return _createTweenType(2, arguments);\n };\n Tween2.set = function set(targets, vars) {\n vars.duration = 0;\n vars.repeatDelay || (vars.repeat = 0);\n return new Tween2(targets, vars);\n };\n Tween2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\n };\n return Tween2;\n}(Animation);\n_setDefaults(Tween.prototype, {\n _targets: [],\n _lazy: 0,\n _startAt: 0,\n _op: 0,\n _onInit: 0\n});\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function(name) {\n Tween[name] = function() {\n var tl = new Timeline(), params = _slice.call(arguments, 0);\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n return tl[name].apply(tl, params);\n };\n});\nvar _setterPlain = function _setterPlain2(target, property, value) {\n return target[property] = value;\n};\nvar _setterFunc = function _setterFunc2(target, property, value) {\n return target[property](value);\n};\nvar _setterFuncWithParam = function _setterFuncWithParam2(target, property, value, data) {\n return target[property](data.fp, value);\n};\nvar _setterAttribute = function _setterAttribute2(target, property, value) {\n return target.setAttribute(property, value);\n};\nvar _getSetter = function _getSetter2(target, property) {\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\n};\nvar _renderPlain = function _renderPlain2(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e6) / 1e6, data);\n};\nvar _renderBoolean = function _renderBoolean2(ratio, data) {\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\n};\nvar _renderComplexString = function _renderComplexString2(ratio, data) {\n var pt = data._pt, s = \"\";\n if (!ratio && data.b) {\n s = data.b;\n } else if (ratio === 1 && data.e) {\n s = data.e;\n } else {\n while (pt) {\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 1e4) / 1e4) + s;\n pt = pt._next;\n }\n s += data.c;\n }\n data.set(data.t, data.p, s, data);\n};\nvar _renderPropTweens = function _renderPropTweens2(ratio, data) {\n var pt = data._pt;\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n};\nvar _addPluginModifier = function _addPluginModifier2(modifier, tween, target, property) {\n var pt = this._pt, next;\n while (pt) {\n next = pt._next;\n pt.p === property && pt.modifier(modifier, tween, target);\n pt = next;\n }\n};\nvar _killPropTweensOf = function _killPropTweensOf2(property) {\n var pt = this._pt, hasNonDependentRemaining, next;\n while (pt) {\n next = pt._next;\n if (pt.p === property && !pt.op || pt.op === property) {\n _removeLinkedListItem(this, pt, \"_pt\");\n } else if (!pt.dep) {\n hasNonDependentRemaining = 1;\n }\n pt = next;\n }\n return !hasNonDependentRemaining;\n};\nvar _setterWithModifier = function _setterWithModifier2(target, property, value, data) {\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n};\nvar _sortPropTweensByPriority = function _sortPropTweensByPriority2(parent) {\n var pt = parent._pt, next, pt2, first, last;\n while (pt) {\n next = pt._next;\n pt2 = first;\n while (pt2 && pt2.pr > pt.pr) {\n pt2 = pt2._next;\n }\n if (pt._prev = pt2 ? pt2._prev : last) {\n pt._prev._next = pt;\n } else {\n first = pt;\n }\n if (pt._next = pt2) {\n pt2._prev = pt;\n } else {\n last = pt;\n }\n pt = next;\n }\n parent._pt = first;\n};\nvar PropTween = /* @__PURE__ */ function() {\n function PropTween2(next, target, prop, start, change, renderer, data, setter, priority) {\n this.t = target;\n this.s = start;\n this.c = change;\n this.p = prop;\n this.r = renderer || _renderPlain;\n this.d = data || this;\n this.set = setter || _setterPlain;\n this.pr = priority || 0;\n this._next = next;\n if (next) {\n next._prev = this;\n }\n }\n var _proto4 = PropTween2.prototype;\n _proto4.modifier = function modifier(func, tween, target) {\n this.mSet = this.mSet || this.set;\n this.set = _setterWithModifier;\n this.m = func;\n this.mt = target;\n this.tween = tween;\n };\n return PropTween2;\n}();\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function(name) {\n return _reservedProps[name] = 1;\n});\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({\n sortChildren: false,\n defaults: _defaults,\n autoRemoveChildren: true,\n id: \"root\",\n smoothChildTiming: true\n});\n_config.stringFilter = _colorStringFilter;\nvar _media = [];\nvar _listeners = {};\nvar _emptyArray = [];\nvar _lastMediaTime = 0;\nvar _contextID = 0;\nvar _dispatch = function _dispatch2(type) {\n return (_listeners[type] || _emptyArray).map(function(f) {\n return f();\n });\n};\nvar _onMediaChange = function _onMediaChange2() {\n var time = Date.now(), matches = [];\n if (time - _lastMediaTime > 2) {\n _dispatch(\"matchMediaInit\");\n _media.forEach(function(c) {\n var queries = c.queries, conditions = c.conditions, match, p, anyMatch, toggled;\n for (p in queries) {\n match = _win.matchMedia(queries[p]).matches;\n match && (anyMatch = 1);\n if (match !== conditions[p]) {\n conditions[p] = match;\n toggled = 1;\n }\n }\n if (toggled) {\n c.revert();\n anyMatch && matches.push(c);\n }\n });\n _dispatch(\"matchMediaRevert\");\n matches.forEach(function(c) {\n return c.onMatch(c, function(func) {\n return c.add(null, func);\n });\n });\n _lastMediaTime = time;\n _dispatch(\"matchMedia\");\n }\n};\nvar Context = /* @__PURE__ */ function() {\n function Context2(func, scope) {\n this.selector = scope && selector(scope);\n this.data = [];\n this._r = [];\n this.isReverted = false;\n this.id = _contextID++;\n func && this.add(func);\n }\n var _proto5 = Context2.prototype;\n _proto5.add = function add(name, func, scope) {\n if (_isFunction(name)) {\n scope = func;\n func = name;\n name = _isFunction;\n }\n var self = this, f = function f2() {\n var prev = _context, prevSelector = self.selector, result;\n prev && prev !== self && prev.data.push(self);\n scope && (self.selector = selector(scope));\n _context = self;\n result = func.apply(self, arguments);\n _isFunction(result) && self._r.push(result);\n _context = prev;\n self.selector = prevSelector;\n self.isReverted = false;\n return result;\n };\n self.last = f;\n return name === _isFunction ? f(self, function(func2) {\n return self.add(null, func2);\n }) : name ? self[name] = f : f;\n };\n _proto5.ignore = function ignore(func) {\n var prev = _context;\n _context = null;\n func(this);\n _context = prev;\n };\n _proto5.getTweens = function getTweens() {\n var a = [];\n this.data.forEach(function(e) {\n return e instanceof Context2 ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === \"nested\") && a.push(e);\n });\n return a;\n };\n _proto5.clear = function clear() {\n this._r.length = this.data.length = 0;\n };\n _proto5.kill = function kill(revert, matchMedia2) {\n var _this4 = this;\n if (revert) {\n (function() {\n var tweens = _this4.getTweens(), i2 = _this4.data.length, t;\n while (i2--) {\n t = _this4.data[i2];\n if (t.data === \"isFlip\") {\n t.revert();\n t.getChildren(true, true, false).forEach(function(tween) {\n return tweens.splice(tweens.indexOf(tween), 1);\n });\n }\n }\n tweens.map(function(t2) {\n return {\n g: t2._dur || t2._delay || t2._sat && !t2._sat.vars.immediateRender ? t2.globalTime(0) : -Infinity,\n t: t2\n };\n }).sort(function(a, b) {\n return b.g - a.g || -Infinity;\n }).forEach(function(o) {\n return o.t.revert(revert);\n });\n i2 = _this4.data.length;\n while (i2--) {\n t = _this4.data[i2];\n if (t instanceof Timeline) {\n if (t.data !== \"nested\") {\n t.scrollTrigger && t.scrollTrigger.revert();\n t.kill();\n }\n } else {\n !(t instanceof Tween) && t.revert && t.revert(revert);\n }\n }\n _this4._r.forEach(function(f) {\n return f(revert, _this4);\n });\n _this4.isReverted = true;\n })();\n } else {\n this.data.forEach(function(e) {\n return e.kill && e.kill();\n });\n }\n this.clear();\n if (matchMedia2) {\n var i = _media.length;\n while (i--) {\n _media[i].id === this.id && _media.splice(i, 1);\n }\n }\n };\n _proto5.revert = function revert(config3) {\n this.kill(config3 || {});\n };\n return Context2;\n}();\nvar MatchMedia = /* @__PURE__ */ function() {\n function MatchMedia2(scope) {\n this.contexts = [];\n this.scope = scope;\n _context && _context.data.push(this);\n }\n var _proto6 = MatchMedia2.prototype;\n _proto6.add = function add(conditions, func, scope) {\n _isObject(conditions) || (conditions = {\n matches: conditions\n });\n var context3 = new Context(0, scope || this.scope), cond = context3.conditions = {}, mq, p, active;\n _context && !context3.selector && (context3.selector = _context.selector);\n this.contexts.push(context3);\n func = context3.add(\"onMatch\", func);\n context3.queries = conditions;\n for (p in conditions) {\n if (p === \"all\") {\n active = 1;\n } else {\n mq = _win.matchMedia(conditions[p]);\n if (mq) {\n _media.indexOf(context3) < 0 && _media.push(context3);\n (cond[p] = mq.matches) && (active = 1);\n mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener(\"change\", _onMediaChange);\n }\n }\n }\n active && func(context3, function(f) {\n return context3.add(null, f);\n });\n return this;\n };\n _proto6.revert = function revert(config3) {\n this.kill(config3 || {});\n };\n _proto6.kill = function kill(revert) {\n this.contexts.forEach(function(c) {\n return c.kill(revert, true);\n });\n };\n return MatchMedia2;\n}();\nvar _gsap = {\n registerPlugin: function registerPlugin() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n args.forEach(function(config3) {\n return _createPlugin(config3);\n });\n },\n timeline: function timeline(vars) {\n return new Timeline(vars);\n },\n getTweensOf: function getTweensOf(targets, onlyActive) {\n return _globalTimeline.getTweensOf(targets, onlyActive);\n },\n getProperty: function getProperty(target, property, unit, uncache) {\n _isString(target) && (target = toArray(target)[0]);\n var getter = _getCache(target || {}).get, format = unit ? _passThrough : _numericIfPossible;\n unit === \"native\" && (unit = \"\");\n return !target ? target : !property ? function(property2, unit2, uncache2) {\n return format((_plugins[property2] && _plugins[property2].get || getter)(target, property2, unit2, uncache2));\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n },\n quickSetter: function quickSetter(target, property, unit) {\n target = toArray(target);\n if (target.length > 1) {\n var setters = target.map(function(t) {\n return gsap.quickSetter(t, property, unit);\n }), l = setters.length;\n return function(value) {\n var i = l;\n while (i--) {\n setters[i](value);\n }\n };\n }\n target = target[0] || {};\n var Plugin = _plugins[property], cache = _getCache(target), p = cache.harness && (cache.harness.aliases || {})[property] || property, setter = Plugin ? function(value) {\n var p2 = new Plugin();\n _quickTween._pt = 0;\n p2.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n p2.render(1, p2);\n _quickTween._pt && _renderPropTweens(1, _quickTween);\n } : cache.set(target, p);\n return Plugin ? setter : function(value) {\n return setter(target, p, unit ? value + unit : value, cache, 1);\n };\n },\n quickTo: function quickTo(target, property, vars) {\n var _merge22;\n var tween = gsap.to(target, _merge((_merge22 = {}, _merge22[property] = \"+=0.1\", _merge22.paused = true, _merge22), vars || {})), func = function func2(value, start, startIsRelative) {\n return tween.resetTo(property, value, start, startIsRelative);\n };\n func.tween = tween;\n return func;\n },\n isTweening: function isTweening(targets) {\n return _globalTimeline.getTweensOf(targets, true).length > 0;\n },\n defaults: function defaults(value) {\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n return _mergeDeep(_defaults, value || {});\n },\n config: function config2(value) {\n return _mergeDeep(_config, value || {});\n },\n registerEffect: function registerEffect(_ref3) {\n var name = _ref3.name, effect = _ref3.effect, plugins = _ref3.plugins, defaults2 = _ref3.defaults, extendTimeline = _ref3.extendTimeline;\n (plugins || \"\").split(\",\").forEach(function(pluginName) {\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\n });\n _effects[name] = function(targets, vars, tl) {\n return effect(toArray(targets), _setDefaults(vars || {}, defaults2), tl);\n };\n if (extendTimeline) {\n Timeline.prototype[name] = function(targets, vars, position) {\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n };\n }\n },\n registerEase: function registerEase(name, ease) {\n _easeMap[name] = _parseEase(ease);\n },\n parseEase: function parseEase(ease, defaultEase) {\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n },\n getById: function getById(id) {\n return _globalTimeline.getById(id);\n },\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\n if (vars === void 0) {\n vars = {};\n }\n var tl = new Timeline(vars), child, next;\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n _globalTimeline.remove(tl);\n tl._dp = 0;\n tl._time = tl._tTime = _globalTimeline._time;\n child = _globalTimeline._first;\n while (child) {\n next = child._next;\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n _addToTimeline(tl, child, child._start - child._delay);\n }\n child = next;\n }\n _addToTimeline(_globalTimeline, tl, 0);\n return tl;\n },\n context: function context(func, scope) {\n return func ? new Context(func, scope) : _context;\n },\n matchMedia: function matchMedia(scope) {\n return new MatchMedia(scope);\n },\n matchMediaRefresh: function matchMediaRefresh() {\n return _media.forEach(function(c) {\n var cond = c.conditions, found, p;\n for (p in cond) {\n if (cond[p]) {\n cond[p] = false;\n found = 1;\n }\n }\n found && c.revert();\n }) || _onMediaChange();\n },\n addEventListener: function addEventListener(type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n },\n removeEventListener: function removeEventListener(type, callback) {\n var a = _listeners[type], i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n },\n utils: {\n wrap,\n wrapYoyo,\n distribute,\n random,\n snap,\n normalize,\n getUnit,\n clamp,\n splitColor,\n toArray,\n selector,\n mapRange,\n pipe,\n unitize,\n interpolate,\n shuffle\n },\n install: _install,\n effects: _effects,\n ticker: _ticker,\n updateRoot: Timeline.updateRoot,\n plugins: _plugins,\n globalTimeline: _globalTimeline,\n core: {\n PropTween,\n globals: _addGlobal,\n Tween,\n Timeline,\n Animation,\n getCache: _getCache,\n _removeLinkedListItem,\n reverting: function reverting() {\n return _reverting;\n },\n context: function context2(toAdd) {\n if (toAdd && _context) {\n _context.data.push(toAdd);\n toAdd._ctx = _context;\n }\n return _context;\n },\n suppressOverwrites: function suppressOverwrites(value) {\n return _suppressOverwrites = value;\n }\n }\n};\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function(name) {\n return _gsap[name] = Tween[name];\n});\n_ticker.add(Timeline.updateRoot);\n_quickTween = _gsap.to({}, {\n duration: 0\n});\nvar _getPluginPropTween = function _getPluginPropTween2(plugin, prop) {\n var pt = plugin._pt;\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n pt = pt._next;\n }\n return pt;\n};\nvar _addModifiers = function _addModifiers2(tween, modifiers) {\n var targets = tween._targets, p, i, pt;\n for (p in modifiers) {\n i = targets.length;\n while (i--) {\n pt = tween._ptLookup[i][p];\n if (pt && (pt = pt.d)) {\n if (pt._pt) {\n pt = _getPluginPropTween(pt, p);\n }\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n }\n }\n }\n};\nvar _buildModifierPlugin = function _buildModifierPlugin2(name, modifier) {\n return {\n name,\n rawVars: 1,\n //don't pre-process function-based values or \"random()\" strings.\n init: function init4(target, vars, tween) {\n tween._onInit = function(tween2) {\n var temp, p;\n if (_isString(vars)) {\n temp = {};\n _forEachName(vars, function(name2) {\n return temp[name2] = 1;\n });\n vars = temp;\n }\n if (modifier) {\n temp = {};\n for (p in vars) {\n temp[p] = modifier(vars[p]);\n }\n vars = temp;\n }\n _addModifiers(tween2, vars);\n };\n }\n };\n};\nvar gsap = _gsap.registerPlugin({\n name: \"attr\",\n init: function init(target, vars, tween, index, targets) {\n var p, pt, v;\n this.tween = tween;\n for (p in vars) {\n v = target.getAttribute(p) || \"\";\n pt = this.add(target, \"setAttribute\", (v || 0) + \"\", vars[p], index, targets, 0, 0, p);\n pt.op = p;\n pt.b = v;\n this._props.push(p);\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt;\n while (pt) {\n _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d);\n pt = pt._next;\n }\n }\n}, {\n name: \"endArray\",\n init: function init2(target, value) {\n var i = value.length;\n while (i--) {\n this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);\n }\n }\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap;\nTween.version = Timeline.version = gsap.version = \"3.12.5\";\n_coreReady = 1;\n_windowExists() && _wake();\nvar Power0 = _easeMap.Power0;\nvar Power1 = _easeMap.Power1;\nvar Power2 = _easeMap.Power2;\nvar Power3 = _easeMap.Power3;\nvar Power4 = _easeMap.Power4;\nvar Linear = _easeMap.Linear;\nvar Quad = _easeMap.Quad;\nvar Cubic = _easeMap.Cubic;\nvar Quart = _easeMap.Quart;\nvar Quint = _easeMap.Quint;\nvar Strong = _easeMap.Strong;\nvar Elastic = _easeMap.Elastic;\nvar Back = _easeMap.Back;\nvar SteppedEase = _easeMap.SteppedEase;\nvar Bounce = _easeMap.Bounce;\nvar Sine = _easeMap.Sine;\nvar Expo = _easeMap.Expo;\nvar Circ = _easeMap.Circ;\n\n// node_modules/gsap/CSSPlugin.js\nvar _win2;\nvar _doc2;\nvar _docElement;\nvar _pluginInitted;\nvar _tempDiv;\nvar _tempDivStyler;\nvar _recentSetterPlugin;\nvar _reverting2;\nvar _windowExists3 = function _windowExists4() {\n return typeof window !== \"undefined\";\n};\nvar _transformProps = {};\nvar _RAD2DEG = 180 / Math.PI;\nvar _DEG2RAD = Math.PI / 180;\nvar _atan2 = Math.atan2;\nvar _bigNum2 = 1e8;\nvar _capsExp = /([A-Z])/g;\nvar _horizontalExp = /(left|right|width|margin|padding|x)/i;\nvar _complexExp = /[\\s,\\(]\\S/;\nvar _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n};\nvar _renderCSSProp = function _renderCSSProp2(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data);\n};\nvar _renderPropWithEnd = function _renderPropWithEnd2(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data);\n};\nvar _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning2(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data);\n};\nvar _renderRoundedCSSProp = function _renderRoundedCSSProp2(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -0.5 : 0.5)) + data.u, data);\n};\nvar _renderNonTweeningValue = function _renderNonTweeningValue2(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n};\nvar _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd2(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n};\nvar _setterCSSStyle = function _setterCSSStyle2(target, property, value) {\n return target.style[property] = value;\n};\nvar _setterCSSProp = function _setterCSSProp2(target, property, value) {\n return target.style.setProperty(property, value);\n};\nvar _setterTransform = function _setterTransform2(target, property, value) {\n return target._gsap[property] = value;\n};\nvar _setterScale = function _setterScale2(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n};\nvar _setterScaleWithRender = function _setterScaleWithRender2(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n};\nvar _setterTransformWithRender = function _setterTransformWithRender2(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n};\nvar _transformProp = \"transform\";\nvar _transformOriginProp = _transformProp + \"Origin\";\nvar _saveStyle = function _saveStyle2(property, isNotCSS) {\n var _this = this;\n var target = this.target, style = target.style, cache = target._gsap;\n if (property in _transformProps && style) {\n this.tfm = this.tfm || {};\n if (property !== \"transform\") {\n property = _propertyAliases[property] || property;\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function(a) {\n return _this.tfm[a] = _get(target, a);\n }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property);\n property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);\n } else {\n return _propertyAliases.transform.split(\",\").forEach(function(p) {\n return _saveStyle2.call(_this, p, isNotCSS);\n });\n }\n if (this.props.indexOf(_transformProp) >= 0) {\n return;\n }\n if (cache.svg) {\n this.svgo = target.getAttribute(\"data-svg-origin\");\n this.props.push(_transformOriginProp, isNotCSS, \"\");\n }\n property = _transformProp;\n }\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n};\nvar _removeIndependentTransforms = function _removeIndependentTransforms2(style) {\n if (style.translate) {\n style.removeProperty(\"translate\");\n style.removeProperty(\"scale\");\n style.removeProperty(\"rotate\");\n }\n};\nvar _revertStyle = function _revertStyle2() {\n var props = this.props, target = this.target, style = target.style, cache = target._gsap, i, p;\n for (i = 0; i < props.length; i += 3) {\n props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\n }\n if (this.tfm) {\n for (p in this.tfm) {\n cache[p] = this.tfm[p];\n }\n if (cache.svg) {\n cache.renderTransform();\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n }\n i = _reverting2();\n if ((!i || !i.isStart) && !style[_transformProp]) {\n _removeIndependentTransforms(style);\n if (cache.zOrigin && style[_transformOriginProp]) {\n style[_transformOriginProp] += \" \" + cache.zOrigin + \"px\";\n cache.zOrigin = 0;\n cache.renderTransform();\n }\n cache.uncache = 1;\n }\n }\n};\nvar _getStyleSaver = function _getStyleSaver2(target, properties) {\n var saver = {\n target,\n props: [],\n revert: _revertStyle,\n save: _saveStyle\n };\n target._gsap || gsap.core.getCache(target);\n properties && properties.split(\",\").forEach(function(p) {\n return saver.save(p);\n });\n return saver;\n};\nvar _supports3D;\nvar _createElement = function _createElement2(type, ns) {\n var e = _doc2.createElementNS ? _doc2.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc2.createElement(type);\n return e && e.style ? e : _doc2.createElement(type);\n};\nvar _getComputedProperty = function _getComputedProperty2(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty2(target, _checkPropPrefix(property) || property, 1) || \"\";\n};\nvar _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\");\nvar _checkPropPrefix = function _checkPropPrefix2(property, element, preferPrefix) {\n var e = element || _tempDiv, s = e.style, i = 5;\n if (property in s && !preferPrefix) {\n return property;\n }\n property = property.charAt(0).toUpperCase() + property.substr(1);\n while (i-- && !(_prefixes[i] + property in s)) {\n }\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n};\nvar _initCore = function _initCore2() {\n if (_windowExists3() && window.document) {\n _win2 = window;\n _doc2 = _win2.document;\n _docElement = _doc2.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\";\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _reverting2 = gsap.core.reverting;\n _pluginInitted = 1;\n }\n};\nvar _getBBoxHack = function _getBBoxHack2(swapIfPossible) {\n var svg = _createElement(\"svg\", this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"), oldParent = this.parentNode, oldSibling = this.nextSibling, oldCSS = this.style.cssText, bbox;\n _docElement.appendChild(svg);\n svg.appendChild(this);\n this.style.display = \"block\";\n if (swapIfPossible) {\n try {\n bbox = this.getBBox();\n this._gsapBBox = this.getBBox;\n this.getBBox = _getBBoxHack2;\n } catch (e) {\n }\n } else if (this._gsapBBox) {\n bbox = this._gsapBBox();\n }\n if (oldParent) {\n if (oldSibling) {\n oldParent.insertBefore(this, oldSibling);\n } else {\n oldParent.appendChild(this);\n }\n }\n _docElement.removeChild(svg);\n this.style.cssText = oldCSS;\n return bbox;\n};\nvar _getAttributeFallbacks = function _getAttributeFallbacks2(target, attributesArray) {\n var i = attributesArray.length;\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n};\nvar _getBBox = function _getBBox2(target) {\n var bounds;\n try {\n bounds = target.getBBox();\n } catch (error) {\n bounds = _getBBoxHack.call(target, true);\n }\n bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true));\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n};\nvar _isSVG = function _isSVG2(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n};\nvar _removeProperty = function _removeProperty2(target, property) {\n if (property) {\n var style = target.style, first2Chars;\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n if (style.removeProperty) {\n first2Chars = property.substr(0, 2);\n if (first2Chars === \"ms\" || property.substr(0, 6) === \"webkit\") {\n property = \"-\" + property;\n }\n style.removeProperty(first2Chars === \"--\" ? property : property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n style.removeAttribute(property);\n }\n }\n};\nvar _addNonTweeningPT = function _addNonTweeningPT2(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n plugin._props.push(property);\n return pt;\n};\nvar _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n};\nvar _nonStandardLayouts = {\n grid: 1,\n flex: 1\n};\nvar _convertToUnit = function _convertToUnit2(target, property, value, unit) {\n var curValue = parseFloat(value) || 0, curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\", style = _tempDiv.style, horizontal = _horizontalExp.test(property), isRootSVG = target.tagName.toLowerCase() === \"svg\", measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"), amount = 100, toPixels = unit === \"px\", toPercent = unit === \"%\", px, parent, cache, isSVG;\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit2(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n if (!parent || parent === _doc2 || !parent.appendChild) {\n parent = _doc2.body;\n }\n cache = parent._gsap;\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n return _round(curValue / cache.width * amount);\n } else {\n if (toPercent && (property === \"height\" || property === \"width\")) {\n var v = target.style[property];\n target.style[property] = amount + unit;\n px = target[measureProperty];\n v ? target.style[property] = v : _removeProperty(target, property);\n } else {\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\");\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n }\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n};\nvar _get = function _get2(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0);\n }\n }\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n};\nvar _tweenComplexCSSString = function _tweenComplexCSSString2(target, prop, start, end) {\n if (!start || start === \"none\") {\n var p = _checkPropPrefix(prop, target, 1), s = p && _getComputedProperty(target, p, 1);\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\");\n }\n }\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString), index = 0, matchIndex = 0, a, result, startValues, startNum, color, startValue, endValue, endNum, chunk, endUnit, startUnit, endValues;\n pt.b = start;\n pt.e = end;\n start += \"\";\n end += \"\";\n if (end === \"auto\") {\n startValue = target.style[prop];\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n startValue ? target.style[prop] = startValue : _removeProperty(target, prop);\n }\n a = [start, end];\n _colorStringFilter(a);\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n endValue.charAt(1) === \"=\" && (endValue = _parseRelative(startNum, endValue) + startUnit);\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n if (!endUnit) {\n endUnit = endUnit || _config.units[prop] || startUnit;\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n }\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n pt.c = index < end.length ? end.substring(index, end.length) : \"\";\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n _relExp.test(end) && (pt.e = 0);\n this._pt = pt;\n return pt;\n};\nvar _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n};\nvar _convertKeywordsToPercentages = function _convertKeywordsToPercentages2(value) {\n var split = value.split(\" \"), x = split[0], y = split[1] || \"50%\";\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n value = x;\n x = y;\n y = value;\n }\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n};\nvar _renderClearProps = function _renderClearProps2(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t, style = target.style, props = data.u, cache = target._gsap, prop, clearTransforms, i;\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n while (--i > -1) {\n prop = props[i];\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n _removeProperty(target, prop);\n }\n }\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n _parseTransform(target, 1);\n cache.uncache = 1;\n _removeIndependentTransforms(style);\n }\n }\n }\n};\nvar _specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n plugin._props.push(property);\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n};\nvar _identity2DMatrix = [1, 0, 0, 1, 0, 0];\nvar _rotationalProperties = {};\nvar _isNullTransform = function _isNullTransform2(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n};\nvar _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray2(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n};\nvar _getMatrix = function _getMatrix2(target, force2D) {\n var cache = target._gsap || _getCache(target), style = target.style, matrix = _getComputedTransformMatrixAsArray(target), parent, nextSibling, temp, addedToDOM;\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix;\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n if (!parent || !target.offsetParent) {\n addedToDOM = 1;\n nextSibling = target.nextElementSibling;\n _docElement.appendChild(target);\n }\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n};\nvar _applySVGOrigin = function _applySVGOrigin2(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap, matrix = matrixArray || _getMatrix(target, true), xOriginOld = cache.xOrigin || 0, yOriginOld = cache.yOrigin || 0, xOffsetOld = cache.xOffset || 0, yOffsetOld = cache.yOffset || 0, a = matrix[0], b = matrix[1], c = matrix[2], d = matrix[3], tx = matrix[4], ty = matrix[5], originSplit = origin.split(\" \"), xOrigin = parseFloat(originSplit[0]) || 0, yOrigin = parseFloat(originSplit[1]) || 0, bounds, determinant, x, y;\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin);\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y;\n }\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\";\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n};\nvar _parseTransform = function _parseTransform2(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n var style = target.style, invertedScaleX = cache.scaleX < 0, px = \"px\", deg = \"deg\", cs = getComputedStyle(target), origin = _getComputedProperty(target, _transformOriginProp) || \"0\", x, y, z, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY, perspective, xOrigin, yOrigin, matrix, angle, cos, sin, a, b, c, d, a12, a22, t1, t2, t3, a13, a23, a33, a42, a43, a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n if (cs.translate) {\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n }\n style.scale = style.rotate = style.translate = \"none\";\n }\n matrix = _getMatrix(target, cache.svg);\n if (cache.svg) {\n if (cache.uncache) {\n t2 = target.getBBox();\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n t1 = \"\";\n } else {\n t1 = !uncache && target.getAttribute(\"data-svg-origin\");\n }\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n if (matrix !== _identity2DMatrix) {\n a = matrix[0];\n b = matrix[1];\n c = matrix[2];\n d = matrix[3];\n x = a12 = matrix[4];\n y = a22 = matrix[5];\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0;\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n }\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG;\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n }\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n }\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 2e-4 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n if (cache.svg) {\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n uncache = uncache || cache.uncache;\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || !uncache && cache.zOrigin || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n};\nvar _firstTwoOnly = function _firstTwoOnly2(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n};\nvar _addPxTranslate = function _addPxTranslate2(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n};\nvar _renderNon3DTransforms = function _renderNon3DTransforms2(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n _renderCSSTransforms(ratio, cache);\n};\nvar _zeroDeg = \"0deg\";\nvar _zeroPx = \"0px\";\nvar _endParenthesis = \") \";\nvar _renderCSSTransforms = function _renderCSSTransforms2(ratio, cache) {\n var _ref = cache || this, xPercent = _ref.xPercent, yPercent = _ref.yPercent, x = _ref.x, y = _ref.y, z = _ref.z, rotation = _ref.rotation, rotationY = _ref.rotationY, rotationX = _ref.rotationX, skewX = _ref.skewX, skewY = _ref.skewY, scaleX = _ref.scaleX, scaleY = _ref.scaleY, transformPerspective = _ref.transformPerspective, force3D = _ref.force3D, target = _ref.target, zOrigin = _ref.zOrigin, transforms = \"\", use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true;\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD, a13 = Math.sin(angle), a33 = Math.cos(angle), cos;\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n};\nvar _renderSVGTransforms = function _renderSVGTransforms2(ratio, cache) {\n var _ref2 = cache || this, xPercent = _ref2.xPercent, yPercent = _ref2.yPercent, x = _ref2.x, y = _ref2.y, rotation = _ref2.rotation, skewX = _ref2.skewX, skewY = _ref2.skewY, scaleX = _ref2.scaleX, scaleY = _ref2.scaleY, target = _ref2.target, xOrigin = _ref2.xOrigin, yOrigin = _ref2.yOrigin, xOffset = _ref2.xOffset, yOffset = _ref2.yOffset, forceCSS = _ref2.forceCSS, tx = parseFloat(x), ty = parseFloat(y), a11, a21, a12, a22, temp;\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n if (skewY) {\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n if (xPercent || yPercent) {\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp);\n};\nvar _addRotationalPropTween = function _addRotationalPropTween2(plugin, target, property, startNum, endValue) {\n var cap = 360, isString = _isString(endValue), endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1), change = endNum - startNum, finalValue = startNum + change + \"deg\", direction, pt;\n if (isString) {\n direction = endValue.split(\"_\")[1];\n if (direction === \"short\") {\n change %= cap;\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum2) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum2) % cap - ~~(change / cap) * cap;\n }\n }\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n plugin._props.push(property);\n return pt;\n};\nvar _assign = function _assign2(target, source) {\n for (var p in source) {\n target[p] = source[p];\n }\n return target;\n};\nvar _addRawTransformPTs = function _addRawTransformPTs2(plugin, transforms, target) {\n var startCache = _assign({}, target._gsap), exclude = \"perspective,force3D,transformOrigin,svgOrigin\", style = target.style, endCache, p, startValue, endValue, startNum, endNum, startUnit, endUnit;\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n _removeProperty(target, _transformProp);\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n plugin._props.push(p);\n }\n }\n _assign(endCache, startCache);\n};\n_forEachName(\"padding,margin,Width,Radius\", function(name, index) {\n var t = \"Top\", r = \"Right\", b = \"Bottom\", l = \"Left\", props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function(side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n _specialProps[index > 1 ? \"border\" + name : name] = function(plugin, target, property, endValue, tween) {\n var a, vars;\n if (arguments.length < 4) {\n a = props.map(function(prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function(prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\nvar CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init3(target, vars, tween, index, targets) {\n var props = this._props, style = target.style, startAt = tween.vars.startAt, startValue, endValue, endNum, startNum, type, specialProp, p, startUnit, endUnit, relative, isTransformRelated, transformPropTween, cache, smooth, hasPriority, inlineProps;\n _pluginInitted || _initCore();\n this.styles = this.styles || _getStyleSaver(target);\n inlineProps = this.styles.props;\n this.tween = tween;\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n endValue = vars[p];\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n continue;\n }\n type = typeof endValue;\n specialProp = _specialProps[p];\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n if (!_colorExp.test(startValue)) {\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n props.push(p);\n inlineProps.push(p, 0, style[p]);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n _isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n getUnit(startValue + \"\") || startValue === \"auto\" || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\");\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p));\n } else {\n startValue = _get(target, p);\n }\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n startNum = 0;\n }\n inlineProps.push(\"visibility\", 0, style.visibility);\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n isTransformRelated = p in _transformProps;\n if (isTransformRelated) {\n this.styles.save(p);\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform);\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1);\n transformPropTween.dep = 1;\n }\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\n this._pt.u = 0;\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n endValue = _convertKeywordsToPercentages(endValue);\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0;\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0);\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n if (startUnit !== endUnit && endUnit !== \"%\") {\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n } else if (p !== \"parseTransform\") {\n _missingPlugin(p, endValue);\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n }\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));\n props.push(p);\n }\n }\n hasPriority && _sortPropTweensByPriority(this);\n },\n render: function render2(ratio, data) {\n if (data.tween._time || !_reverting2()) {\n var pt = data._pt;\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n } else {\n data.styles.revert();\n }\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty,\n _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n(function(positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function(name) {\n _transformProps[name] = 1;\n });\n _forEachName(rotation, function(name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n _forEachName(aliases, function(name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function(name) {\n _config.units[name] = \"px\";\n});\ngsap.registerPlugin(CSSPlugin);\n\n// node_modules/gsap/index.js\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap;\nvar TweenMaxWithCSS = gsapWithCSS.core.Tween;\n\nexport {\n gsapWithCSS\n};\n/*! Bundled license information:\n\ngsap/gsap-core.js:\n (*!\n * GSAP 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n *)\n\ngsap/CSSPlugin.js:\n (*!\n * CSSPlugin 3.12.5\n * https://gsap.com\n *\n * Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n *)\n*/\n", "import {\n ScrollTrigger\n} from \"./chunk.RYXMHMS2.js\";\nimport {\n gsapWithCSS\n} from \"./chunk.LXB4MYP4.js\";\nimport {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-timeline/jb-timeline.scss?inline\nvar jb_timeline_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh4 {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\np, h2 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh2 {\n font-size: var(--theme-typo-h2-subtitle-mobile-fontsize, 1.625rem);\n line-height: var(--theme-typo-h2-subtitle-mobile-lineheight, 2.188rem);\n}\n@media (min-width: 1281px) {\n h2 {\n font-size: var(--theme-typo-h2-subtitle-desktop-fontsize, 1.938rem);\n line-height: var(--theme-typo-h2-subtitle-desktop-lineheight, 2.625rem);\n }\n}\n\nh4 {\n font-size: var(--theme-typo-h4-mobile-fontsize, 1.188rem);\n line-height: var(--theme-typo-h4-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n h4 {\n font-size: var(--theme-typo-h4-desktop-fontsize, 1.375rem);\n line-height: var(--theme-typo-h4-desktop-lineheight, 2.125rem);\n }\n}\n\np {\n font-size: var(--theme-typo-p-mini-desktop-fontsize, 0.813rem);\n line-height: var(--theme-typo-p-mini-desktop-lineheight, 1.25rem);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n --_grid-gap: 16px;\n --_columnwidth: calc((100% - (5 * var(--_grid-gap))) / 6);\n --_picturewidth: calc(2 * var(--_columnwidth) + var(--_grid-gap));\n --_timelinewidth: calc(2 * var(--spacing-l) + 1px);\n --_infowidth: 1fr;\n display: block;\n}\n@media (min-width: 960px) {\n :host {\n --_grid-gap: 40px;\n --_columnwidth: calc((100% - (7 * var(--_grid-gap))) / 8);\n --_picturewidth: 1fr;\n --_infowidth: calc(5 * var(--_columnwidth) + 4 * var(--_grid-gap));\n }\n}\n\n.timeline-item {\n display: block;\n margin-bottom: var(--spacing-m);\n margin-left: var(--spacing-l);\n position: relative;\n width: calc(100% - var(--spacing-l));\n}\n@media (min-width: 600px) {\n .timeline-item {\n display: grid;\n gap: var(--spacing-m) 0;\n grid-template-columns: var(--_picturewidth) var(--_timelinewidth) var(--_infowidth);\n margin-left: 0;\n width: 100%;\n }\n}\n.timeline-item:last-child .timeline-ray {\n height: calc(100% + 16px);\n}\n\nh2 {\n margin-bottom: var(--spacing-2xs);\n}\n@media (min-width: 600px) {\n h2 {\n grid-column: 3;\n margin-bottom: calc(-1 * var(--spacing-m));\n padding-bottom: var(--spacing-2xs);\n }\n}\n\nh4 {\n margin-bottom: var(--spacing-base);\n}\n\njb-picture {\n opacity: 0;\n transform-origin: center left;\n}\n@media (min-width: 600px) {\n jb-picture {\n transform-origin: center right;\n }\n}\n\n.info {\n align-self: center;\n height: min-content;\n position: relative;\n}\n@media (min-width: 600px) {\n .info {\n grid-column: 3;\n }\n}\n.info:not(:last-child) {\n margin-bottom: var(--spacing-m);\n}\n@media (min-width: 600px) {\n .info:not(:last-child) {\n margin-bottom: 0;\n }\n}\n\n.infoblock {\n opacity: 0;\n transform-origin: center left;\n}\n\n.picture-wrapper {\n align-self: center;\n margin-bottom: var(--spacing-xs);\n position: relative;\n}\n@media (min-width: 600px) {\n .picture-wrapper {\n grid-column: 1/2;\n margin-bottom: 0;\n }\n}\n\n.timeline-ray {\n background-color: #141e55;\n height: calc(100% + 40px);\n left: calc(-1 * var(--spacing-l));\n position: absolute;\n top: 17px;\n width: 1px;\n}\n@media (min-width: 600px) {\n .timeline-ray {\n grid-column: 3;\n }\n}\n@media (min-width: 1281px) {\n .timeline-ray {\n top: 21px;\n }\n}\n.timeline-ray::before {\n background-color: #b0aa7e;\n border-radius: 50px;\n content: \"\";\n display: block;\n height: 17px;\n left: -8px;\n position: absolute;\n top: -8px;\n width: 17px;\n}\n\n.picture-wrapper .dot,\n.info .dot {\n background-color: #141e55;\n border-radius: 50px;\n content: \"\";\n display: block;\n height: 7px;\n left: calc(-1 * var(--spacing-l) - 3px);\n opacity: 0;\n position: absolute;\n top: calc(50% - 3px);\n width: 7px;\n}\n\n.picture-wrapper + .info .dot {\n display: none;\n}\n\n@media (min-width: 600px) {\n .picture-wrapper .dot {\n display: none;\n }\n .picture-wrapper + .info .dot {\n display: block;\n }\n}`;\n\n// src/components/jb-timeline/jb-timeline.ts\nvar JbTimeline = class extends Spaceable(ChangesBackgroundColor(h)) {\n constructor() {\n super(...arguments);\n this.sort = \"oldestFirst\";\n }\n connectedCallback() {\n super.connectedCallback();\n this._timelineArray = this._groupBy(this.timelineItems, \"year\");\n this._timelineKeys = this.sort === \"oldestFirst\" ? Object.keys(this._timelineArray) : Object.keys(this._timelineArray).reverse();\n }\n async firstUpdated() {\n await this.updateComplete;\n gsapWithCSS.registerPlugin(ScrollTrigger);\n this._animatedElements.forEach((element) => {\n this._addAnimation(element);\n });\n }\n _addAnimation(element) {\n ScrollTrigger.create({\n trigger: element,\n onEnter: () => {\n this._animateElement(element);\n },\n onEnterBack: () => {\n this._animateElement(element);\n },\n onLeave: () => {\n this._hide(element);\n },\n onLeaveBack: () => {\n this._hide(element);\n }\n });\n }\n _animateElement(element) {\n gsapWithCSS.fromTo(\n element,\n { scale: 0.7, autoAlpha: 0 },\n {\n duration: 0.7,\n delay: 0.1,\n scale: 1,\n autoAlpha: 1,\n ease: \"ease-in\",\n overwrite: \"auto\"\n }\n );\n }\n _getContentSpacingProperties() {\n return { colsMdUp: 8, grid: \"legacy\" };\n }\n // https://stackoverflow.com/a/71505541\n _groupBy(arr, prop) {\n return arr.reduce((memo, x) => {\n if (!memo[x[prop]]) {\n memo[x[prop]] = [];\n }\n memo[x[prop]].push(x);\n return memo;\n }, {});\n }\n _hide(element) {\n gsapWithCSS.set(element, { autoAlpha: 0 });\n }\n render() {\n return this._timelineKeys.map(\n (key) => ke`\n
\n
${key} \n ${this._timelineArray[key].map(\n (elm) => ke`\n ${elm.image ? ke`\n
\n \n \n
\n ` : D}\n
\n
\n
\n
${elm.headline} \n
${elm.description}
\n
\n
\n `\n )}\n
`\n );\n }\n};\nJbTimeline.styles = r(jb_timeline_default);\n__decorateClass([\n n()\n], JbTimeline.prototype, \"sort\", 2);\n__decorateClass([\n n({ type: Array })\n], JbTimeline.prototype, \"timelineItems\", 2);\n__decorateClass([\n r2(\"jb-picture, .infoblock, .dot\")\n], JbTimeline.prototype, \"_animatedElements\", 2);\nJbTimeline = __decorateClass([\n customElement(\"jb-timeline\")\n], JbTimeline);\n\nexport {\n JbTimeline\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Linkable,\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-text-teaser/jb-text-teaser.scss?inline\nvar jb_text_teaser_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\np, h3 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh3 {\n font-size: var(--theme-typo-h3-mobile-fontsize, 1.375rem);\n line-height: var(--theme-typo-h3-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n h3 {\n font-size: var(--theme-typo-h3-desktop-fontsize, 1.625rem);\n line-height: var(--theme-typo-h3-desktop-lineheight, 2.25rem);\n }\n}\n\np {\n font-size: var(--theme-typo-p-small-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-desktop-lineheight, 1.625rem);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\ndiv {\n background-color: #fff;\n block-size: 100%;\n padding-block: var(--spacing-s);\n padding-inline: var(--spacing-m);\n}\ndiv.gray {\n background-color: #f1f2f2;\n}\n\nh3 {\n padding-block-end: var(--spacing-3xs);\n}\n\np {\n padding-block-end: var(--spacing-xs);\n}\n\na {\n text-decoration: none;\n}\n\njb-button-tertiary {\n padding-block: var(--spacing-3xs);\n}`;\n\n// src/components/jb-text-teaser/jb-text-teaser.ts\nvar JbTextTeaser = class extends Linkable(h) {\n constructor() {\n super(...arguments);\n this._hovering = false;\n }\n _hoverLinkIn() {\n this._hovering = true;\n }\n _hoverLinkOut() {\n this._hovering = false;\n }\n _trackClick(event) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(event, {\n component_name: \"text-teaser\",\n interaction_text: this.buttonLabel\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n render() {\n return ke`\n \n
${this.headline} \n
${this.text}
\n
${this.buttonLabel} \n
\n `;\n }\n};\nJbTextTeaser.styles = r(jb_text_teaser_default);\n__decorateClass([\n n()\n], JbTextTeaser.prototype, \"buttonLabel\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbTextTeaser.prototype, \"hasGrayBackground\", 2);\n__decorateClass([\n n()\n], JbTextTeaser.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbTextTeaser.prototype, \"text\", 2);\n__decorateClass([\n r2()\n], JbTextTeaser.prototype, \"_hovering\", 2);\nJbTextTeaser = __decorateClass([\n customElement(\"jb-text-teaser\")\n], JbTextTeaser);\n\nexport {\n JbTextTeaser\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// node_modules/chartist/dist/index.js\nvar namespaces = {\n svg: \"http://www.w3.org/2000/svg\",\n xmlns: \"http://www.w3.org/2000/xmlns/\",\n xhtml: \"http://www.w3.org/1999/xhtml\",\n xlink: \"http://www.w3.org/1999/xlink\",\n ct: \"http://gionkunz.github.com/chartist-js/ct\"\n};\nvar precision = 8;\nvar escapingMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n};\nfunction ensureUnit(value, unit) {\n if (typeof value === \"number\") {\n return value + unit;\n }\n return value;\n}\nfunction quantity(input) {\n if (typeof input === \"string\") {\n const match = /^(\\d+)\\s*(.*)$/g.exec(input);\n return {\n value: match ? +match[1] : 0,\n unit: (match === null || match === void 0 ? void 0 : match[2]) || void 0\n };\n }\n return {\n value: Number(input)\n };\n}\nfunction alphaNumerate(n2) {\n return String.fromCharCode(97 + n2 % 26);\n}\nvar EPSILON = 2221e-19;\nfunction orderOfMagnitude(value) {\n return Math.floor(Math.log(Math.abs(value)) / Math.LN10);\n}\nfunction projectLength(axisLength, length, bounds) {\n return length / bounds.range * axisLength;\n}\nfunction roundWithPrecision(value, digits) {\n const precision$1 = Math.pow(10, digits || precision);\n return Math.round(value * precision$1) / precision$1;\n}\nfunction rho(num) {\n if (num === 1) {\n return num;\n }\n function gcd(p, q) {\n if (p % q === 0) {\n return q;\n } else {\n return gcd(q, p % q);\n }\n }\n function f(x) {\n return x * x + 1;\n }\n let x1 = 2;\n let x2 = 2;\n let divisor;\n if (num % 2 === 0) {\n return 2;\n }\n do {\n x1 = f(x1) % num;\n x2 = f(f(x2)) % num;\n divisor = gcd(Math.abs(x1 - x2), num);\n } while (divisor === 1);\n return divisor;\n}\nfunction getBounds(axisLength, highLow, scaleMinSpace) {\n let onlyInteger = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n const bounds = {\n high: highLow.high,\n low: highLow.low,\n valueRange: 0,\n oom: 0,\n step: 0,\n min: 0,\n max: 0,\n range: 0,\n numberOfSteps: 0,\n values: []\n };\n bounds.valueRange = bounds.high - bounds.low;\n bounds.oom = orderOfMagnitude(bounds.valueRange);\n bounds.step = Math.pow(10, bounds.oom);\n bounds.min = Math.floor(bounds.low / bounds.step) * bounds.step;\n bounds.max = Math.ceil(bounds.high / bounds.step) * bounds.step;\n bounds.range = bounds.max - bounds.min;\n bounds.numberOfSteps = Math.round(bounds.range / bounds.step);\n const length = projectLength(axisLength, bounds.step, bounds);\n const scaleUp = length < scaleMinSpace;\n const smallestFactor = onlyInteger ? rho(bounds.range) : 0;\n if (onlyInteger && projectLength(axisLength, 1, bounds) >= scaleMinSpace) {\n bounds.step = 1;\n } else if (onlyInteger && smallestFactor < bounds.step && projectLength(axisLength, smallestFactor, bounds) >= scaleMinSpace) {\n bounds.step = smallestFactor;\n } else {\n let optimizationCounter = 0;\n for (; ; ) {\n if (scaleUp && projectLength(axisLength, bounds.step, bounds) <= scaleMinSpace) {\n bounds.step *= 2;\n } else if (!scaleUp && projectLength(axisLength, bounds.step / 2, bounds) >= scaleMinSpace) {\n bounds.step /= 2;\n if (onlyInteger && bounds.step % 1 !== 0) {\n bounds.step *= 2;\n break;\n }\n } else {\n break;\n }\n if (optimizationCounter++ > 1e3) {\n throw new Error(\"Exceeded maximum number of iterations while optimizing scale step!\");\n }\n }\n }\n bounds.step = Math.max(bounds.step, EPSILON);\n function safeIncrement(value, increment) {\n if (value === (value += increment)) {\n value *= 1 + (increment > 0 ? EPSILON : -EPSILON);\n }\n return value;\n }\n let newMin = bounds.min;\n let newMax = bounds.max;\n while (newMin + bounds.step <= bounds.low) {\n newMin = safeIncrement(newMin, bounds.step);\n }\n while (newMax - bounds.step >= bounds.high) {\n newMax = safeIncrement(newMax, -bounds.step);\n }\n bounds.min = newMin;\n bounds.max = newMax;\n bounds.range = bounds.max - bounds.min;\n const values = [];\n for (let i2 = bounds.min; i2 <= bounds.max; i2 = safeIncrement(i2, bounds.step)) {\n const value = roundWithPrecision(i2);\n if (value !== values[values.length - 1]) {\n values.push(value);\n }\n }\n bounds.values = values;\n return bounds;\n}\nfunction extend() {\n let target = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (let i2 = 0; i2 < sources.length; i2++) {\n const source = sources[i2];\n for (const prop in source) {\n const sourceProp = source[prop];\n if (typeof sourceProp === \"object\" && sourceProp !== null && !(sourceProp instanceof Array)) {\n target[prop] = extend(target[prop], sourceProp);\n } else {\n target[prop] = sourceProp;\n }\n }\n }\n return target;\n}\nvar noop = (n2) => n2;\nfunction times(length, filler) {\n return Array.from(\n {\n length\n },\n filler ? (_, i2) => filler(i2) : () => void 0\n );\n}\nfunction safeHasProperty(target, property) {\n return target !== null && typeof target === \"object\" && Reflect.has(target, property);\n}\nfunction isNumeric(value) {\n return value !== null && isFinite(value);\n}\nfunction isFalseyButZero(value) {\n return !value && value !== 0;\n}\nfunction getNumberOrUndefined(value) {\n return isNumeric(value) ? Number(value) : void 0;\n}\nfunction isArrayOfArrays(data) {\n if (!Array.isArray(data)) {\n return false;\n }\n return data.every(Array.isArray);\n}\nfunction each(list, callback) {\n let reverse = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n let index = 0;\n list[reverse ? \"reduceRight\" : \"reduce\"](\n (_, item, itemIndex) => callback(item, index++, itemIndex),\n void 0\n );\n}\nfunction getMetaData(seriesData, index) {\n const value = Array.isArray(seriesData) ? seriesData[index] : safeHasProperty(seriesData, \"data\") ? seriesData.data[index] : null;\n return safeHasProperty(value, \"meta\") ? value.meta : void 0;\n}\nfunction isDataHoleValue(value) {\n return value === null || value === void 0 || typeof value === \"number\" && isNaN(value);\n}\nfunction isArrayOfSeries(value) {\n return Array.isArray(value) && value.every(\n (_) => Array.isArray(_) || safeHasProperty(_, \"data\")\n );\n}\nfunction isMultiValue(value) {\n return typeof value === \"object\" && value !== null && (Reflect.has(value, \"x\") || Reflect.has(value, \"y\"));\n}\nfunction getMultiValue(value) {\n let dimension = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"y\";\n if (isMultiValue(value) && safeHasProperty(value, dimension)) {\n return getNumberOrUndefined(value[dimension]);\n } else {\n return getNumberOrUndefined(value);\n }\n}\nfunction getHighLow(data, options, dimension) {\n options = {\n ...options,\n ...dimension ? dimension === \"x\" ? options.axisX : options.axisY : {}\n };\n const highLow = {\n high: options.high === void 0 ? -Number.MAX_VALUE : +options.high,\n low: options.low === void 0 ? Number.MAX_VALUE : +options.low\n };\n const findHigh = options.high === void 0;\n const findLow = options.low === void 0;\n function recursiveHighLow(sourceData) {\n if (isDataHoleValue(sourceData)) {\n return;\n } else if (Array.isArray(sourceData)) {\n for (let i2 = 0; i2 < sourceData.length; i2++) {\n recursiveHighLow(sourceData[i2]);\n }\n } else {\n const value = Number(dimension && safeHasProperty(sourceData, dimension) ? sourceData[dimension] : sourceData);\n if (findHigh && value > highLow.high) {\n highLow.high = value;\n }\n if (findLow && value < highLow.low) {\n highLow.low = value;\n }\n }\n }\n if (findHigh || findLow) {\n recursiveHighLow(data);\n }\n if (options.referenceValue || options.referenceValue === 0) {\n highLow.high = Math.max(options.referenceValue, highLow.high);\n highLow.low = Math.min(options.referenceValue, highLow.low);\n }\n if (highLow.high <= highLow.low) {\n if (highLow.low === 0) {\n highLow.high = 1;\n } else if (highLow.low < 0) {\n highLow.high = 0;\n } else if (highLow.high > 0) {\n highLow.low = 0;\n } else {\n highLow.high = 1;\n highLow.low = 0;\n }\n }\n return highLow;\n}\nfunction normalizeData(data) {\n let reverse = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false, multi = arguments.length > 2 ? arguments[2] : void 0, distributed = arguments.length > 3 ? arguments[3] : void 0;\n let labelCount;\n const normalized = {\n labels: (data.labels || []).slice(),\n series: normalizeSeries(data.series, multi, distributed)\n };\n const inputLabelCount = normalized.labels.length;\n if (isArrayOfArrays(normalized.series)) {\n labelCount = Math.max(inputLabelCount, ...normalized.series.map(\n (series) => series.length\n ));\n normalized.series.forEach((series) => {\n series.push(...times(Math.max(0, labelCount - series.length)));\n });\n } else {\n labelCount = normalized.series.length;\n }\n normalized.labels.push(...times(\n Math.max(0, labelCount - inputLabelCount),\n () => \"\"\n ));\n if (reverse) {\n reverseData(normalized);\n }\n return normalized;\n}\nfunction reverseData(data) {\n var ref;\n (ref = data.labels) === null || ref === void 0 ? void 0 : ref.reverse();\n data.series.reverse();\n for (const series of data.series) {\n if (safeHasProperty(series, \"data\")) {\n series.data.reverse();\n } else if (Array.isArray(series)) {\n series.reverse();\n }\n }\n}\nfunction normalizeMulti(value, multi) {\n let x;\n let y;\n if (typeof value !== \"object\") {\n const num = getNumberOrUndefined(value);\n if (multi === \"x\") {\n x = num;\n } else {\n y = num;\n }\n } else {\n if (safeHasProperty(value, \"x\")) {\n x = getNumberOrUndefined(value.x);\n }\n if (safeHasProperty(value, \"y\")) {\n y = getNumberOrUndefined(value.y);\n }\n }\n if (x === void 0 && y === void 0) {\n return void 0;\n }\n return {\n x,\n y\n };\n}\nfunction normalizePrimitive(value, multi) {\n if (isDataHoleValue(value)) {\n return void 0;\n }\n if (multi) {\n return normalizeMulti(value, multi);\n }\n return getNumberOrUndefined(value);\n}\nfunction normalizeSingleSeries(series, multi) {\n if (!Array.isArray(series)) {\n return normalizeSingleSeries(series.data, multi);\n }\n return series.map((value) => {\n if (safeHasProperty(value, \"value\")) {\n return normalizePrimitive(value.value, multi);\n }\n return normalizePrimitive(value, multi);\n });\n}\nfunction normalizeSeries(series, multi, distributed) {\n if (isArrayOfSeries(series)) {\n return series.map(\n (_) => normalizeSingleSeries(_, multi)\n );\n }\n const normalizedSeries = normalizeSingleSeries(series, multi);\n if (distributed) {\n return normalizedSeries.map(\n (value) => [\n value\n ]\n );\n }\n return normalizedSeries;\n}\nfunction splitIntoSegments(pathCoordinates, valueData, options) {\n const finalOptions = {\n increasingX: false,\n fillHoles: false,\n ...options\n };\n const segments = [];\n let hole = true;\n for (let i2 = 0; i2 < pathCoordinates.length; i2 += 2) {\n if (getMultiValue(valueData[i2 / 2].value) === void 0) {\n if (!finalOptions.fillHoles) {\n hole = true;\n }\n } else {\n if (finalOptions.increasingX && i2 >= 2 && pathCoordinates[i2] <= pathCoordinates[i2 - 2]) {\n hole = true;\n }\n if (hole) {\n segments.push({\n pathCoordinates: [],\n valueData: []\n });\n hole = false;\n }\n segments[segments.length - 1].pathCoordinates.push(pathCoordinates[i2], pathCoordinates[i2 + 1]);\n segments[segments.length - 1].valueData.push(valueData[i2 / 2]);\n }\n }\n return segments;\n}\nfunction serialize(data) {\n let serialized = \"\";\n if (data === null || data === void 0) {\n return data;\n } else if (typeof data === \"number\") {\n serialized = \"\" + data;\n } else if (typeof data === \"object\") {\n serialized = JSON.stringify({\n data\n });\n } else {\n serialized = String(data);\n }\n return Object.keys(escapingMap).reduce(\n (result, key) => result.replaceAll(key, escapingMap[key]),\n serialized\n );\n}\nvar SvgList = class {\n call(method, args) {\n this.svgElements.forEach(\n (element2) => Reflect.apply(element2[method], element2, args)\n );\n return this;\n }\n attr() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"attr\", args);\n }\n elem() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"elem\", args);\n }\n root() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"root\", args);\n }\n getNode() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"getNode\", args);\n }\n foreignObject() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"foreignObject\", args);\n }\n text() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"text\", args);\n }\n empty() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"empty\", args);\n }\n remove() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"remove\", args);\n }\n addClass() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"addClass\", args);\n }\n removeClass() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"removeClass\", args);\n }\n removeAllClasses() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"removeAllClasses\", args);\n }\n animate() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.call(\"animate\", args);\n }\n /**\n * @param nodeList An Array of SVG DOM nodes or a SVG DOM NodeList (as returned by document.querySelectorAll)\n */\n constructor(nodeList) {\n this.svgElements = [];\n for (let i2 = 0; i2 < nodeList.length; i2++) {\n this.svgElements.push(new Svg(nodeList[i2]));\n }\n }\n};\nvar easings = {\n easeInSine: [\n 0.47,\n 0,\n 0.745,\n 0.715\n ],\n easeOutSine: [\n 0.39,\n 0.575,\n 0.565,\n 1\n ],\n easeInOutSine: [\n 0.445,\n 0.05,\n 0.55,\n 0.95\n ],\n easeInQuad: [\n 0.55,\n 0.085,\n 0.68,\n 0.53\n ],\n easeOutQuad: [\n 0.25,\n 0.46,\n 0.45,\n 0.94\n ],\n easeInOutQuad: [\n 0.455,\n 0.03,\n 0.515,\n 0.955\n ],\n easeInCubic: [\n 0.55,\n 0.055,\n 0.675,\n 0.19\n ],\n easeOutCubic: [\n 0.215,\n 0.61,\n 0.355,\n 1\n ],\n easeInOutCubic: [\n 0.645,\n 0.045,\n 0.355,\n 1\n ],\n easeInQuart: [\n 0.895,\n 0.03,\n 0.685,\n 0.22\n ],\n easeOutQuart: [\n 0.165,\n 0.84,\n 0.44,\n 1\n ],\n easeInOutQuart: [\n 0.77,\n 0,\n 0.175,\n 1\n ],\n easeInQuint: [\n 0.755,\n 0.05,\n 0.855,\n 0.06\n ],\n easeOutQuint: [\n 0.23,\n 1,\n 0.32,\n 1\n ],\n easeInOutQuint: [\n 0.86,\n 0,\n 0.07,\n 1\n ],\n easeInExpo: [\n 0.95,\n 0.05,\n 0.795,\n 0.035\n ],\n easeOutExpo: [\n 0.19,\n 1,\n 0.22,\n 1\n ],\n easeInOutExpo: [\n 1,\n 0,\n 0,\n 1\n ],\n easeInCirc: [\n 0.6,\n 0.04,\n 0.98,\n 0.335\n ],\n easeOutCirc: [\n 0.075,\n 0.82,\n 0.165,\n 1\n ],\n easeInOutCirc: [\n 0.785,\n 0.135,\n 0.15,\n 0.86\n ],\n easeInBack: [\n 0.6,\n -0.28,\n 0.735,\n 0.045\n ],\n easeOutBack: [\n 0.175,\n 0.885,\n 0.32,\n 1.275\n ],\n easeInOutBack: [\n 0.68,\n -0.55,\n 0.265,\n 1.55\n ]\n};\nfunction createAnimation(element2, attribute, animationDefinition) {\n let createGuided = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, eventEmitter = arguments.length > 4 ? arguments[4] : void 0;\n const { easing, ...def } = animationDefinition;\n const attributeProperties = {};\n let animationEasing;\n let timeout;\n if (easing) {\n animationEasing = Array.isArray(easing) ? easing : easings[easing];\n }\n def.begin = ensureUnit(def.begin, \"ms\");\n def.dur = ensureUnit(def.dur, \"ms\");\n if (animationEasing) {\n def.calcMode = \"spline\";\n def.keySplines = animationEasing.join(\" \");\n def.keyTimes = \"0;1\";\n }\n if (createGuided) {\n def.fill = \"freeze\";\n attributeProperties[attribute] = def.from;\n element2.attr(attributeProperties);\n timeout = quantity(def.begin || 0).value;\n def.begin = \"indefinite\";\n }\n const animate = element2.elem(\"animate\", {\n attributeName: attribute,\n ...def\n });\n if (createGuided) {\n setTimeout(() => {\n try {\n animate._node.beginElement();\n } catch (err) {\n attributeProperties[attribute] = def.to;\n element2.attr(attributeProperties);\n animate.remove();\n }\n }, timeout);\n }\n const animateNode = animate.getNode();\n if (eventEmitter) {\n animateNode.addEventListener(\n \"beginEvent\",\n () => eventEmitter.emit(\"animationBegin\", {\n element: element2,\n animate: animateNode,\n params: animationDefinition\n })\n );\n }\n animateNode.addEventListener(\"endEvent\", () => {\n if (eventEmitter) {\n eventEmitter.emit(\"animationEnd\", {\n element: element2,\n animate: animateNode,\n params: animationDefinition\n });\n }\n if (createGuided) {\n attributeProperties[attribute] = def.to;\n element2.attr(attributeProperties);\n animate.remove();\n }\n });\n}\nvar Svg = class _Svg {\n attr(attributes, ns) {\n if (typeof attributes === \"string\") {\n if (ns) {\n return this._node.getAttributeNS(ns, attributes);\n } else {\n return this._node.getAttribute(attributes);\n }\n }\n Object.keys(attributes).forEach((key) => {\n if (attributes[key] === void 0) {\n return;\n }\n if (key.indexOf(\":\") !== -1) {\n const namespacedAttribute = key.split(\":\");\n this._node.setAttributeNS(namespaces[namespacedAttribute[0]], key, String(attributes[key]));\n } else {\n this._node.setAttribute(key, String(attributes[key]));\n }\n });\n return this;\n }\n /**\n * Create a new SVG element whose wrapper object will be selected for further operations. This way you can also create nested groups easily.\n * @param name The name of the SVG element that should be created as child element of the currently selected element wrapper\n * @param attributes An object with properties that will be added as attributes to the SVG element that is created. Attributes with undefined values will not be added.\n * @param className This class or class list will be added to the SVG element\n * @param insertFirst If this param is set to true in conjunction with a parent element the newly created element will be added as first child element in the parent element\n * @return Returns a Svg wrapper object that can be used to modify the containing SVG data\n */\n elem(name, attributes, className) {\n let insertFirst = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n return new _Svg(name, attributes, className, this, insertFirst);\n }\n /**\n * Returns the parent Chartist.SVG wrapper object\n * @return Returns a Svg wrapper around the parent node of the current node. If the parent node is not existing or it's not an SVG node then this function will return null.\n */\n parent() {\n return this._node.parentNode instanceof SVGElement ? new _Svg(this._node.parentNode) : null;\n }\n /**\n * This method returns a Svg wrapper around the root SVG element of the current tree.\n * @return The root SVG element wrapped in a Svg element\n */\n root() {\n let node = this._node;\n while (node.nodeName !== \"svg\") {\n if (node.parentElement) {\n node = node.parentElement;\n } else {\n break;\n }\n }\n return new _Svg(node);\n }\n /**\n * Find the first child SVG element of the current element that matches a CSS selector. The returned object is a Svg wrapper.\n * @param selector A CSS selector that is used to query for child SVG elements\n * @return The SVG wrapper for the element found or null if no element was found\n */\n querySelector(selector) {\n const foundNode = this._node.querySelector(selector);\n return foundNode ? new _Svg(foundNode) : null;\n }\n /**\n * Find the all child SVG elements of the current element that match a CSS selector. The returned object is a Svg.List wrapper.\n * @param selector A CSS selector that is used to query for child SVG elements\n * @return The SVG wrapper list for the element found or null if no element was found\n */\n querySelectorAll(selector) {\n const foundNodes = this._node.querySelectorAll(selector);\n return new SvgList(foundNodes);\n }\n /**\n * Returns the underlying SVG node for the current element.\n */\n getNode() {\n return this._node;\n }\n /**\n * This method creates a foreignObject (see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/foreignObject) that allows to embed HTML content into a SVG graphic. With the help of foreignObjects you can enable the usage of regular HTML elements inside of SVG where they are subject for SVG positioning and transformation but the Browser will use the HTML rendering capabilities for the containing DOM.\n * @param content The DOM Node, or HTML string that will be converted to a DOM Node, that is then placed into and wrapped by the foreignObject\n * @param attributes An object with properties that will be added as attributes to the foreignObject element that is created. Attributes with undefined values will not be added.\n * @param className This class or class list will be added to the SVG element\n * @param insertFirst Specifies if the foreignObject should be inserted as first child\n * @return New wrapper object that wraps the foreignObject element\n */\n foreignObject(content, attributes, className) {\n let insertFirst = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n let contentNode;\n if (typeof content === \"string\") {\n const container = document.createElement(\"div\");\n container.innerHTML = content;\n contentNode = container.firstChild;\n } else {\n contentNode = content;\n }\n if (contentNode instanceof Element) {\n contentNode.setAttribute(\"xmlns\", namespaces.xmlns);\n }\n const fnObj = this.elem(\"foreignObject\", attributes, className, insertFirst);\n fnObj._node.appendChild(contentNode);\n return fnObj;\n }\n /**\n * This method adds a new text element to the current Svg wrapper.\n * @param t The text that should be added to the text element that is created\n * @return The same wrapper object that was used to add the newly created element\n */\n text(t) {\n this._node.appendChild(document.createTextNode(t));\n return this;\n }\n /**\n * This method will clear all child nodes of the current wrapper object.\n * @return The same wrapper object that got emptied\n */\n empty() {\n while (this._node.firstChild) {\n this._node.removeChild(this._node.firstChild);\n }\n return this;\n }\n /**\n * This method will cause the current wrapper to remove itself from its parent wrapper. Use this method if you'd like to get rid of an element in a given DOM structure.\n * @return The parent wrapper object of the element that got removed\n */\n remove() {\n var ref;\n (ref = this._node.parentNode) === null || ref === void 0 ? void 0 : ref.removeChild(this._node);\n return this.parent();\n }\n /**\n * This method will replace the element with a new element that can be created outside of the current DOM.\n * @param newElement The new Svg object that will be used to replace the current wrapper object\n * @return The wrapper of the new element\n */\n replace(newElement) {\n var ref;\n (ref = this._node.parentNode) === null || ref === void 0 ? void 0 : ref.replaceChild(newElement._node, this._node);\n return newElement;\n }\n /**\n * This method will append an element to the current element as a child.\n * @param element The Svg element that should be added as a child\n * @param insertFirst Specifies if the element should be inserted as first child\n * @return The wrapper of the appended object\n */\n append(element2) {\n let insertFirst = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n if (insertFirst && this._node.firstChild) {\n this._node.insertBefore(element2._node, this._node.firstChild);\n } else {\n this._node.appendChild(element2._node);\n }\n return this;\n }\n /**\n * Returns an array of class names that are attached to the current wrapper element. This method can not be chained further.\n * @return A list of classes or an empty array if there are no classes on the current element\n */\n classes() {\n const classNames = this._node.getAttribute(\"class\");\n return classNames ? classNames.trim().split(/\\s+/) : [];\n }\n /**\n * Adds one or a space separated list of classes to the current element and ensures the classes are only existing once.\n * @param names A white space separated list of class names\n * @return The wrapper of the current element\n */\n addClass(names) {\n this._node.setAttribute(\"class\", this.classes().concat(names.trim().split(/\\s+/)).filter(function(elem, pos, self) {\n return self.indexOf(elem) === pos;\n }).join(\" \"));\n return this;\n }\n /**\n * Removes one or a space separated list of classes from the current element.\n * @param names A white space separated list of class names\n * @return The wrapper of the current element\n */\n removeClass(names) {\n const removedClasses = names.trim().split(/\\s+/);\n this._node.setAttribute(\"class\", this.classes().filter(\n (name) => removedClasses.indexOf(name) === -1\n ).join(\" \"));\n return this;\n }\n /**\n * Removes all classes from the current element.\n * @return The wrapper of the current element\n */\n removeAllClasses() {\n this._node.setAttribute(\"class\", \"\");\n return this;\n }\n /**\n * Get element height using `getBoundingClientRect`\n * @return The elements height in pixels\n */\n height() {\n return this._node.getBoundingClientRect().height;\n }\n /**\n * Get element width using `getBoundingClientRect`\n * @return The elements width in pixels\n */\n width() {\n return this._node.getBoundingClientRect().width;\n }\n /**\n * The animate function lets you animate the current element with SMIL animations. You can add animations for multiple attributes at the same time by using an animation definition object. This object should contain SMIL animation attributes. Please refer to http://www.w3.org/TR/SVG/animate.html for a detailed specification about the available animation attributes. Additionally an easing property can be passed in the animation definition object. This can be a string with a name of an easing function in `Svg.Easing` or an array with four numbers specifying a cubic B\u00E9zier curve.\n * **An animations object could look like this:**\n * ```javascript\n * element.animate({\n * opacity: {\n * dur: 1000,\n * from: 0,\n * to: 1\n * },\n * x1: {\n * dur: '1000ms',\n * from: 100,\n * to: 200,\n * easing: 'easeOutQuart'\n * },\n * y1: {\n * dur: '2s',\n * from: 0,\n * to: 100\n * }\n * });\n * ```\n * **Automatic unit conversion**\n * For the `dur` and the `begin` animate attribute you can also omit a unit by passing a number. The number will automatically be converted to milli seconds.\n * **Guided mode**\n * The default behavior of SMIL animations with offset using the `begin` attribute is that the attribute will keep it's original value until the animation starts. Mostly this behavior is not desired as you'd like to have your element attributes already initialized with the animation `from` value even before the animation starts. Also if you don't specify `fill=\"freeze\"` on an animate element or if you delete the animation after it's done (which is done in guided mode) the attribute will switch back to the initial value. This behavior is also not desired when performing simple one-time animations. For one-time animations you'd want to trigger animations immediately instead of relative to the document begin time. That's why in guided mode Svg will also use the `begin` property to schedule a timeout and manually start the animation after the timeout. If you're using multiple SMIL definition objects for an attribute (in an array), guided mode will be disabled for this attribute, even if you explicitly enabled it.\n * If guided mode is enabled the following behavior is added:\n * - Before the animation starts (even when delayed with `begin`) the animated attribute will be set already to the `from` value of the animation\n * - `begin` is explicitly set to `indefinite` so it can be started manually without relying on document begin time (creation)\n * - The animate element will be forced to use `fill=\"freeze\"`\n * - The animation will be triggered with `beginElement()` in a timeout where `begin` of the definition object is interpreted in milli seconds. If no `begin` was specified the timeout is triggered immediately.\n * - After the animation the element attribute value will be set to the `to` value of the animation\n * - The animate element is deleted from the DOM\n * @param animations An animations object where the property keys are the attributes you'd like to animate. The properties should be objects again that contain the SMIL animation attributes (usually begin, dur, from, and to). The property begin and dur is auto converted (see Automatic unit conversion). You can also schedule multiple animations for the same attribute by passing an Array of SMIL definition objects. Attributes that contain an array of SMIL definition objects will not be executed in guided mode.\n * @param guided Specify if guided mode should be activated for this animation (see Guided mode). If not otherwise specified, guided mode will be activated.\n * @param eventEmitter If specified, this event emitter will be notified when an animation starts or ends.\n * @return The current element where the animation was added\n */\n animate(animations) {\n let guided = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true, eventEmitter = arguments.length > 2 ? arguments[2] : void 0;\n Object.keys(animations).forEach((attribute) => {\n const attributeAnimation = animations[attribute];\n if (Array.isArray(attributeAnimation)) {\n attributeAnimation.forEach(\n (animationDefinition) => createAnimation(this, attribute, animationDefinition, false, eventEmitter)\n );\n } else {\n createAnimation(this, attribute, attributeAnimation, guided, eventEmitter);\n }\n });\n return this;\n }\n /**\n * @param name The name of the SVG element to create or an SVG dom element which should be wrapped into Svg\n * @param attributes An object with properties that will be added as attributes to the SVG element that is created. Attributes with undefined values will not be added.\n * @param className This class or class list will be added to the SVG element\n * @param parent The parent SVG wrapper object where this newly created wrapper and it's element will be attached to as child\n * @param insertFirst If this param is set to true in conjunction with a parent element the newly created element will be added as first child element in the parent element\n */\n constructor(name, attributes, className, parent, insertFirst = false) {\n if (name instanceof Element) {\n this._node = name;\n } else {\n this._node = document.createElementNS(namespaces.svg, name);\n if (name === \"svg\") {\n this.attr({\n \"xmlns:ct\": namespaces.ct\n });\n }\n }\n if (attributes) {\n this.attr(attributes);\n }\n if (className) {\n this.addClass(className);\n }\n if (parent) {\n if (insertFirst && parent._node.firstChild) {\n parent._node.insertBefore(this._node, parent._node.firstChild);\n } else {\n parent._node.appendChild(this._node);\n }\n }\n }\n};\nSvg.Easing = easings;\nfunction createSvg(container) {\n let width = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"100%\", height = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"100%\", className = arguments.length > 3 ? arguments[3] : void 0;\n Array.from(container.querySelectorAll(\"svg\")).filter(\n (svg) => svg.getAttributeNS(namespaces.xmlns, \"ct\")\n ).forEach(\n (svg) => container.removeChild(svg)\n );\n const svg1 = new Svg(\"svg\").attr({\n width,\n height\n }).attr({\n // TODO: Check better solution (browser support) and remove inline styles due to CSP\n style: \"width: \".concat(width, \"; height: \").concat(height, \";\")\n });\n if (className) {\n svg1.addClass(className);\n }\n container.appendChild(svg1.getNode());\n return svg1;\n}\nfunction normalizePadding(padding) {\n return typeof padding === \"number\" ? {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n } : padding === void 0 ? {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n } : {\n top: typeof padding.top === \"number\" ? padding.top : 0,\n right: typeof padding.right === \"number\" ? padding.right : 0,\n bottom: typeof padding.bottom === \"number\" ? padding.bottom : 0,\n left: typeof padding.left === \"number\" ? padding.left : 0\n };\n}\nfunction createChartRect(svg, options) {\n var ref, ref1, ref2, ref3;\n const hasAxis = Boolean(options.axisX || options.axisY);\n const yAxisOffset = ((ref = options.axisY) === null || ref === void 0 ? void 0 : ref.offset) || 0;\n const xAxisOffset = ((ref1 = options.axisX) === null || ref1 === void 0 ? void 0 : ref1.offset) || 0;\n const yAxisPosition = (ref2 = options.axisY) === null || ref2 === void 0 ? void 0 : ref2.position;\n const xAxisPosition = (ref3 = options.axisX) === null || ref3 === void 0 ? void 0 : ref3.position;\n let width = svg.width() || quantity(options.width).value || 0;\n let height = svg.height() || quantity(options.height).value || 0;\n const normalizedPadding = normalizePadding(options.chartPadding);\n width = Math.max(width, yAxisOffset + normalizedPadding.left + normalizedPadding.right);\n height = Math.max(height, xAxisOffset + normalizedPadding.top + normalizedPadding.bottom);\n const chartRect = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0,\n padding: normalizedPadding,\n width() {\n return this.x2 - this.x1;\n },\n height() {\n return this.y1 - this.y2;\n }\n };\n if (hasAxis) {\n if (xAxisPosition === \"start\") {\n chartRect.y2 = normalizedPadding.top + xAxisOffset;\n chartRect.y1 = Math.max(height - normalizedPadding.bottom, chartRect.y2 + 1);\n } else {\n chartRect.y2 = normalizedPadding.top;\n chartRect.y1 = Math.max(height - normalizedPadding.bottom - xAxisOffset, chartRect.y2 + 1);\n }\n if (yAxisPosition === \"start\") {\n chartRect.x1 = normalizedPadding.left + yAxisOffset;\n chartRect.x2 = Math.max(width - normalizedPadding.right, chartRect.x1 + 1);\n } else {\n chartRect.x1 = normalizedPadding.left;\n chartRect.x2 = Math.max(width - normalizedPadding.right - yAxisOffset, chartRect.x1 + 1);\n }\n } else {\n chartRect.x1 = normalizedPadding.left;\n chartRect.x2 = Math.max(width - normalizedPadding.right, chartRect.x1 + 1);\n chartRect.y2 = normalizedPadding.top;\n chartRect.y1 = Math.max(height - normalizedPadding.bottom, chartRect.y2 + 1);\n }\n return chartRect;\n}\nfunction createGrid(position, index, axis, offset, length, group, classes, eventEmitter) {\n const positionalData = {\n [\"\".concat(axis.units.pos, \"1\")]: position,\n [\"\".concat(axis.units.pos, \"2\")]: position,\n [\"\".concat(axis.counterUnits.pos, \"1\")]: offset,\n [\"\".concat(axis.counterUnits.pos, \"2\")]: offset + length\n };\n const gridElement = group.elem(\"line\", positionalData, classes.join(\" \"));\n eventEmitter.emit(\"draw\", {\n type: \"grid\",\n axis,\n index,\n group,\n element: gridElement,\n ...positionalData\n });\n}\nfunction createGridBackground(gridGroup, chartRect, className, eventEmitter) {\n const gridBackground = gridGroup.elem(\"rect\", {\n x: chartRect.x1,\n y: chartRect.y2,\n width: chartRect.width(),\n height: chartRect.height()\n }, className, true);\n eventEmitter.emit(\"draw\", {\n type: \"gridBackground\",\n group: gridGroup,\n element: gridBackground\n });\n}\nfunction createLabel(position, length, index, label, axis, axisOffset, labelOffset, group, classes, eventEmitter) {\n const positionalData = {\n [axis.units.pos]: position + labelOffset[axis.units.pos],\n [axis.counterUnits.pos]: labelOffset[axis.counterUnits.pos],\n [axis.units.len]: length,\n [axis.counterUnits.len]: Math.max(0, axisOffset - 10)\n };\n const stepLength = Math.round(positionalData[axis.units.len]);\n const stepCounterLength = Math.round(positionalData[axis.counterUnits.len]);\n const content = document.createElement(\"span\");\n content.className = classes.join(\" \");\n content.style[axis.units.len] = stepLength + \"px\";\n content.style[axis.counterUnits.len] = stepCounterLength + \"px\";\n content.textContent = String(label);\n const labelElement = group.foreignObject(content, {\n style: \"overflow: visible;\",\n ...positionalData\n });\n eventEmitter.emit(\"draw\", {\n type: \"label\",\n axis,\n index,\n group,\n element: labelElement,\n text: label,\n ...positionalData\n });\n}\nfunction optionsProvider(options, responsiveOptions, eventEmitter) {\n let currentOptions;\n const mediaQueryListeners = [];\n function updateCurrentOptions(mediaEvent) {\n const previousOptions = currentOptions;\n currentOptions = extend({}, options);\n if (responsiveOptions) {\n responsiveOptions.forEach((responsiveOption) => {\n const mql = window.matchMedia(responsiveOption[0]);\n if (mql.matches) {\n currentOptions = extend(currentOptions, responsiveOption[1]);\n }\n });\n }\n if (eventEmitter && mediaEvent) {\n eventEmitter.emit(\"optionsChanged\", {\n previousOptions,\n currentOptions\n });\n }\n }\n function removeMediaQueryListeners() {\n mediaQueryListeners.forEach(\n (mql) => mql.removeEventListener(\"change\", updateCurrentOptions)\n );\n }\n if (!window.matchMedia) {\n throw new Error(\"window.matchMedia not found! Make sure you're using a polyfill.\");\n } else if (responsiveOptions) {\n responsiveOptions.forEach((responsiveOption) => {\n const mql = window.matchMedia(responsiveOption[0]);\n mql.addEventListener(\"change\", updateCurrentOptions);\n mediaQueryListeners.push(mql);\n });\n }\n updateCurrentOptions();\n return {\n removeMediaQueryListeners,\n getCurrentOptions() {\n return currentOptions;\n }\n };\n}\nvar elementDescriptions = {\n m: [\n \"x\",\n \"y\"\n ],\n l: [\n \"x\",\n \"y\"\n ],\n c: [\n \"x1\",\n \"y1\",\n \"x2\",\n \"y2\",\n \"x\",\n \"y\"\n ],\n a: [\n \"rx\",\n \"ry\",\n \"xAr\",\n \"lAf\",\n \"sf\",\n \"x\",\n \"y\"\n ]\n};\nvar defaultOptions$3 = {\n // The accuracy in digit count after the decimal point. This will be used to round numbers in the SVG path. If this option is set to false then no rounding will be performed.\n accuracy: 3\n};\nfunction element(command, params, pathElements, pos, relative, data) {\n const pathElement = {\n command: relative ? command.toLowerCase() : command.toUpperCase(),\n ...params,\n ...data ? {\n data\n } : {}\n };\n pathElements.splice(pos, 0, pathElement);\n}\nfunction forEachParam(pathElements, cb) {\n pathElements.forEach((pathElement, pathElementIndex) => {\n elementDescriptions[pathElement.command.toLowerCase()].forEach((paramName, paramIndex) => {\n cb(pathElement, paramName, pathElementIndex, paramIndex, pathElements);\n });\n });\n}\nvar SvgPath = class _SvgPath {\n /**\n * This static function on `SvgPath` is joining multiple paths together into one paths.\n * @param paths A list of paths to be joined together. The order is important.\n * @param close If the newly created path should be a closed path\n * @param options Path options for the newly created path.\n */\n static join(paths) {\n let close = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false, options = arguments.length > 2 ? arguments[2] : void 0;\n const joinedPath = new _SvgPath(close, options);\n for (let i2 = 0; i2 < paths.length; i2++) {\n const path = paths[i2];\n for (let j = 0; j < path.pathElements.length; j++) {\n joinedPath.pathElements.push(path.pathElements[j]);\n }\n }\n return joinedPath;\n }\n position(pos) {\n if (pos !== void 0) {\n this.pos = Math.max(0, Math.min(this.pathElements.length, pos));\n return this;\n } else {\n return this.pos;\n }\n }\n /**\n * Removes elements from the path starting at the current position.\n * @param count Number of path elements that should be removed from the current position.\n * @return The current path object for easy call chaining.\n */\n remove(count) {\n this.pathElements.splice(this.pos, count);\n return this;\n }\n /**\n * Use this function to add a new move SVG path element.\n * @param x The x coordinate for the move element.\n * @param y The y coordinate for the move element.\n * @param relative If set to true the move element will be created with relative coordinates (lowercase letter)\n * @param data Any data that should be stored with the element object that will be accessible in pathElement\n * @return The current path object for easy call chaining.\n */\n move(x, y) {\n let relative = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false, data = arguments.length > 3 ? arguments[3] : void 0;\n element(\"M\", {\n x: +x,\n y: +y\n }, this.pathElements, this.pos++, relative, data);\n return this;\n }\n /**\n * Use this function to add a new line SVG path element.\n * @param x The x coordinate for the line element.\n * @param y The y coordinate for the line element.\n * @param relative If set to true the line element will be created with relative coordinates (lowercase letter)\n * @param data Any data that should be stored with the element object that will be accessible in pathElement\n * @return The current path object for easy call chaining.\n */\n line(x, y) {\n let relative = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false, data = arguments.length > 3 ? arguments[3] : void 0;\n element(\"L\", {\n x: +x,\n y: +y\n }, this.pathElements, this.pos++, relative, data);\n return this;\n }\n /**\n * Use this function to add a new curve SVG path element.\n * @param x1 The x coordinate for the first control point of the bezier curve.\n * @param y1 The y coordinate for the first control point of the bezier curve.\n * @param x2 The x coordinate for the second control point of the bezier curve.\n * @param y2 The y coordinate for the second control point of the bezier curve.\n * @param x The x coordinate for the target point of the curve element.\n * @param y The y coordinate for the target point of the curve element.\n * @param relative If set to true the curve element will be created with relative coordinates (lowercase letter)\n * @param data Any data that should be stored with the element object that will be accessible in pathElement\n * @return The current path object for easy call chaining.\n */\n curve(x1, y1, x2, y2, x, y) {\n let relative = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : false, data = arguments.length > 7 ? arguments[7] : void 0;\n element(\"C\", {\n x1: +x1,\n y1: +y1,\n x2: +x2,\n y2: +y2,\n x: +x,\n y: +y\n }, this.pathElements, this.pos++, relative, data);\n return this;\n }\n /**\n * Use this function to add a new non-bezier curve SVG path element.\n * @param rx The radius to be used for the x-axis of the arc.\n * @param ry The radius to be used for the y-axis of the arc.\n * @param xAr Defines the orientation of the arc\n * @param lAf Large arc flag\n * @param sf Sweep flag\n * @param x The x coordinate for the target point of the curve element.\n * @param y The y coordinate for the target point of the curve element.\n * @param relative If set to true the curve element will be created with relative coordinates (lowercase letter)\n * @param data Any data that should be stored with the element object that will be accessible in pathElement\n * @return The current path object for easy call chaining.\n */\n arc(rx, ry, xAr, lAf, sf, x, y) {\n let relative = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : false, data = arguments.length > 8 ? arguments[8] : void 0;\n element(\"A\", {\n rx,\n ry,\n xAr,\n lAf,\n sf,\n x,\n y\n }, this.pathElements, this.pos++, relative, data);\n return this;\n }\n /**\n * Parses an SVG path seen in the d attribute of path elements, and inserts the parsed elements into the existing path object at the current cursor position. Any closing path indicators (Z at the end of the path) will be ignored by the parser as this is provided by the close option in the options of the path object.\n * @param path Any SVG path that contains move (m), line (l) or curve (c) components.\n * @return The current path object for easy call chaining.\n */\n parse(path) {\n const chunks = path.replace(/([A-Za-z])(-?[0-9])/g, \"$1 $2\").replace(/([0-9])([A-Za-z])/g, \"$1 $2\").split(/[\\s,]+/).reduce((result, pathElement) => {\n if (pathElement.match(/[A-Za-z]/)) {\n result.push([]);\n }\n result[result.length - 1].push(pathElement);\n return result;\n }, []);\n if (chunks[chunks.length - 1][0].toUpperCase() === \"Z\") {\n chunks.pop();\n }\n const elements = chunks.map((chunk) => {\n const command = chunk.shift();\n const description = elementDescriptions[command.toLowerCase()];\n return {\n command,\n ...description.reduce((result, paramName, index) => {\n result[paramName] = +chunk[index];\n return result;\n }, {})\n };\n });\n this.pathElements.splice(this.pos, 0, ...elements);\n this.pos += elements.length;\n return this;\n }\n /**\n * This function renders to current SVG path object into a final SVG string that can be used in the d attribute of SVG path elements. It uses the accuracy option to round big decimals. If the close parameter was set in the constructor of this path object then a path closing Z will be appended to the output string.\n */\n stringify() {\n const accuracyMultiplier = Math.pow(10, this.options.accuracy);\n return this.pathElements.reduce((path, pathElement) => {\n const params = elementDescriptions[pathElement.command.toLowerCase()].map((paramName) => {\n const value = pathElement[paramName];\n return this.options.accuracy ? Math.round(value * accuracyMultiplier) / accuracyMultiplier : value;\n });\n return path + pathElement.command + params.join(\",\");\n }, \"\") + (this.close ? \"Z\" : \"\");\n }\n /**\n * Scales all elements in the current SVG path object. There is an individual parameter for each coordinate. Scaling will also be done for control points of curves, affecting the given coordinate.\n * @param x The number which will be used to scale the x, x1 and x2 of all path elements.\n * @param y The number which will be used to scale the y, y1 and y2 of all path elements.\n * @return The current path object for easy call chaining.\n */\n scale(x, y) {\n forEachParam(this.pathElements, (pathElement, paramName) => {\n pathElement[paramName] *= paramName[0] === \"x\" ? x : y;\n });\n return this;\n }\n /**\n * Translates all elements in the current SVG path object. The translation is relative and there is an individual parameter for each coordinate. Translation will also be done for control points of curves, affecting the given coordinate.\n * @param x The number which will be used to translate the x, x1 and x2 of all path elements.\n * @param y The number which will be used to translate the y, y1 and y2 of all path elements.\n * @return The current path object for easy call chaining.\n */\n translate(x, y) {\n forEachParam(this.pathElements, (pathElement, paramName) => {\n pathElement[paramName] += paramName[0] === \"x\" ? x : y;\n });\n return this;\n }\n /**\n * This function will run over all existing path elements and then loop over their attributes. The callback function will be called for every path element attribute that exists in the current path.\n * The method signature of the callback function looks like this:\n * ```javascript\n * function(pathElement, paramName, pathElementIndex, paramIndex, pathElements)\n * ```\n * If something else than undefined is returned by the callback function, this value will be used to replace the old value. This allows you to build custom transformations of path objects that can't be achieved using the basic transformation functions scale and translate.\n * @param transformFnc The callback function for the transformation. Check the signature in the function description.\n * @return The current path object for easy call chaining.\n */\n transform(transformFnc) {\n forEachParam(this.pathElements, (pathElement, paramName, pathElementIndex, paramIndex, pathElements) => {\n const transformed = transformFnc(pathElement, paramName, pathElementIndex, paramIndex, pathElements);\n if (transformed || transformed === 0) {\n pathElement[paramName] = transformed;\n }\n });\n return this;\n }\n /**\n * This function clones a whole path object with all its properties. This is a deep clone and path element objects will also be cloned.\n * @param close Optional option to set the new cloned path to closed. If not specified or false, the original path close option will be used.\n */\n clone() {\n let close = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n const clone = new _SvgPath(close || this.close);\n clone.pos = this.pos;\n clone.pathElements = this.pathElements.slice().map(\n (pathElement) => ({\n ...pathElement\n })\n );\n clone.options = {\n ...this.options\n };\n return clone;\n }\n /**\n * Split a Svg.Path object by a specific command in the path chain. The path chain will be split and an array of newly created paths objects will be returned. This is useful if you'd like to split an SVG path by it's move commands, for example, in order to isolate chunks of drawings.\n * @param command The command you'd like to use to split the path\n */\n splitByCommand(command) {\n const split = [\n new _SvgPath()\n ];\n this.pathElements.forEach((pathElement) => {\n if (pathElement.command === command.toUpperCase() && split[split.length - 1].pathElements.length !== 0) {\n split.push(new _SvgPath());\n }\n split[split.length - 1].pathElements.push(pathElement);\n });\n return split;\n }\n /**\n * Used to construct a new path object.\n * @param close If set to true then this path will be closed when stringified (with a Z at the end)\n * @param options Options object that overrides the default objects. See default options for more details.\n */\n constructor(close = false, options) {\n this.close = close;\n this.pathElements = [];\n this.pos = 0;\n this.options = {\n ...defaultOptions$3,\n ...options\n };\n }\n};\nfunction none(options) {\n const finalOptions = {\n fillHoles: false,\n ...options\n };\n return function noneInterpolation(pathCoordinates, valueData) {\n const path = new SvgPath();\n let hole = true;\n for (let i2 = 0; i2 < pathCoordinates.length; i2 += 2) {\n const currX = pathCoordinates[i2];\n const currY = pathCoordinates[i2 + 1];\n const currData = valueData[i2 / 2];\n if (getMultiValue(currData.value) !== void 0) {\n if (hole) {\n path.move(currX, currY, false, currData);\n } else {\n path.line(currX, currY, false, currData);\n }\n hole = false;\n } else if (!finalOptions.fillHoles) {\n hole = true;\n }\n }\n return path;\n };\n}\nfunction monotoneCubic(options) {\n const finalOptions = {\n fillHoles: false,\n ...options\n };\n return function monotoneCubicInterpolation(pathCoordinates, valueData) {\n const segments = splitIntoSegments(pathCoordinates, valueData, {\n fillHoles: finalOptions.fillHoles,\n increasingX: true\n });\n if (!segments.length) {\n return none()([], []);\n } else if (segments.length > 1) {\n return SvgPath.join(segments.map(\n (segment) => monotoneCubicInterpolation(segment.pathCoordinates, segment.valueData)\n ));\n } else {\n pathCoordinates = segments[0].pathCoordinates;\n valueData = segments[0].valueData;\n if (pathCoordinates.length <= 4) {\n return none()(pathCoordinates, valueData);\n }\n const xs = [];\n const ys = [];\n const n2 = pathCoordinates.length / 2;\n const ms = [];\n const ds = [];\n const dys = [];\n const dxs = [];\n for (let i2 = 0; i2 < n2; i2++) {\n xs[i2] = pathCoordinates[i2 * 2];\n ys[i2] = pathCoordinates[i2 * 2 + 1];\n }\n for (let i1 = 0; i1 < n2 - 1; i1++) {\n dys[i1] = ys[i1 + 1] - ys[i1];\n dxs[i1] = xs[i1 + 1] - xs[i1];\n ds[i1] = dys[i1] / dxs[i1];\n }\n ms[0] = ds[0];\n ms[n2 - 1] = ds[n2 - 2];\n for (let i2 = 1; i2 < n2 - 1; i2++) {\n if (ds[i2] === 0 || ds[i2 - 1] === 0 || ds[i2 - 1] > 0 !== ds[i2] > 0) {\n ms[i2] = 0;\n } else {\n ms[i2] = 3 * (dxs[i2 - 1] + dxs[i2]) / ((2 * dxs[i2] + dxs[i2 - 1]) / ds[i2 - 1] + (dxs[i2] + 2 * dxs[i2 - 1]) / ds[i2]);\n if (!isFinite(ms[i2])) {\n ms[i2] = 0;\n }\n }\n }\n const path = new SvgPath().move(xs[0], ys[0], false, valueData[0]);\n for (let i3 = 0; i3 < n2 - 1; i3++) {\n path.curve(\n // First control point\n xs[i3] + dxs[i3] / 3,\n ys[i3] + ms[i3] * dxs[i3] / 3,\n // Second control point\n xs[i3 + 1] - dxs[i3] / 3,\n ys[i3 + 1] - ms[i3 + 1] * dxs[i3] / 3,\n // End point\n xs[i3 + 1],\n ys[i3 + 1],\n false,\n valueData[i3 + 1]\n );\n }\n return path;\n }\n };\n}\nvar EventEmitter = class {\n on(event, listener) {\n const { allListeners, listeners } = this;\n if (event === \"*\") {\n allListeners.add(listener);\n } else {\n if (!listeners.has(event)) {\n listeners.set(event, /* @__PURE__ */ new Set());\n }\n listeners.get(event).add(listener);\n }\n }\n off(event, listener) {\n const { allListeners, listeners } = this;\n if (event === \"*\") {\n if (listener) {\n allListeners.delete(listener);\n } else {\n allListeners.clear();\n }\n } else if (listeners.has(event)) {\n const eventListeners = listeners.get(event);\n if (listener) {\n eventListeners.delete(listener);\n } else {\n eventListeners.clear();\n }\n if (!eventListeners.size) {\n listeners.delete(event);\n }\n }\n }\n /**\n * Use this function to emit an event. All handlers that are listening for this event will be triggered with the data parameter.\n * @param event The event name that should be triggered\n * @param data Arbitrary data that will be passed to the event handler callback functions\n */\n emit(event, data) {\n const { allListeners, listeners } = this;\n if (listeners.has(event)) {\n listeners.get(event).forEach(\n (listener) => listener(data)\n );\n }\n allListeners.forEach(\n (listener) => listener(event, data)\n );\n }\n constructor() {\n this.listeners = /* @__PURE__ */ new Map();\n this.allListeners = /* @__PURE__ */ new Set();\n }\n};\nvar instances = /* @__PURE__ */ new WeakMap();\nvar BaseChart = class {\n // TODO: Currently we need to re-draw the chart on window resize. This is usually very bad and will affect performance.\n // This is done because we can't work with relative coordinates when drawing the chart because SVG Path does not\n // work with relative positions yet. We need to check if we can do a viewBox hack to switch to percentage.\n // See http://mozilla.6506.n7.nabble.com/Specyfing-paths-with-percentages-unit-td247474.html\n // Update: can be done using the above method tested here: http://codepen.io/gionkunz/pen/KDvLj\n // The problem is with the label offsets that can't be converted into percentage and affecting the chart container\n /**\n * Updates the chart which currently does a full reconstruction of the SVG DOM\n * @param data Optional data you'd like to set for the chart before it will update. If not specified the update method will use the data that is already configured with the chart.\n * @param options Optional options you'd like to add to the previous options for the chart before it will update. If not specified the update method will use the options that have been already configured with the chart.\n * @param override If set to true, the passed options will be used to extend the options that have been configured already. Otherwise the chart default options will be used as the base\n */\n update(data, options) {\n let override = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n if (data) {\n this.data = data || {};\n this.data.labels = this.data.labels || [];\n this.data.series = this.data.series || [];\n this.eventEmitter.emit(\"data\", {\n type: \"update\",\n data: this.data\n });\n }\n if (options) {\n this.options = extend({}, override ? this.options : this.defaultOptions, options);\n if (!this.initializeTimeoutId) {\n var ref;\n (ref = this.optionsProvider) === null || ref === void 0 ? void 0 : ref.removeMediaQueryListeners();\n this.optionsProvider = optionsProvider(this.options, this.responsiveOptions, this.eventEmitter);\n }\n }\n if (!this.initializeTimeoutId && this.optionsProvider) {\n this.createChart(this.optionsProvider.getCurrentOptions());\n }\n return this;\n }\n /**\n * This method can be called on the API object of each chart and will un-register all event listeners that were added to other components. This currently includes a window.resize listener as well as media query listeners if any responsive options have been provided. Use this function if you need to destroy and recreate Chartist charts dynamically.\n */\n detach() {\n if (!this.initializeTimeoutId) {\n var ref;\n window.removeEventListener(\"resize\", this.resizeListener);\n (ref = this.optionsProvider) === null || ref === void 0 ? void 0 : ref.removeMediaQueryListeners();\n } else {\n window.clearTimeout(this.initializeTimeoutId);\n }\n instances.delete(this.container);\n return this;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n on(event, listener) {\n this.eventEmitter.on(event, listener);\n return this;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n off(event, listener) {\n this.eventEmitter.off(event, listener);\n return this;\n }\n initialize() {\n window.addEventListener(\"resize\", this.resizeListener);\n this.optionsProvider = optionsProvider(this.options, this.responsiveOptions, this.eventEmitter);\n this.eventEmitter.on(\n \"optionsChanged\",\n () => this.update()\n );\n if (this.options.plugins) {\n this.options.plugins.forEach((plugin) => {\n if (Array.isArray(plugin)) {\n plugin[0](this, plugin[1]);\n } else {\n plugin(this);\n }\n });\n }\n this.eventEmitter.emit(\"data\", {\n type: \"initial\",\n data: this.data\n });\n this.createChart(this.optionsProvider.getCurrentOptions());\n this.initializeTimeoutId = null;\n }\n constructor(query, data, defaultOptions, options, responsiveOptions) {\n this.data = data;\n this.defaultOptions = defaultOptions;\n this.options = options;\n this.responsiveOptions = responsiveOptions;\n this.eventEmitter = new EventEmitter();\n this.resizeListener = () => this.update();\n this.initializeTimeoutId = setTimeout(\n () => this.initialize(),\n 0\n );\n const container = typeof query === \"string\" ? document.querySelector(query) : query;\n if (!container) {\n throw new Error(\"Target element is not found\");\n }\n this.container = container;\n const prevInstance = instances.get(container);\n if (prevInstance) {\n prevInstance.detach();\n }\n instances.set(container, this);\n }\n};\nvar axisUnits = {\n x: {\n pos: \"x\",\n len: \"width\",\n dir: \"horizontal\",\n rectStart: \"x1\",\n rectEnd: \"x2\",\n rectOffset: \"y2\"\n },\n y: {\n pos: \"y\",\n len: \"height\",\n dir: \"vertical\",\n rectStart: \"y2\",\n rectEnd: \"y1\",\n rectOffset: \"x1\"\n }\n};\nvar Axis = class {\n createGridAndLabels(gridGroup, labelGroup, chartOptions, eventEmitter) {\n const axisOptions = this.units.pos === \"x\" ? chartOptions.axisX : chartOptions.axisY;\n const projectedValues = this.ticks.map(\n (tick, i2) => this.projectValue(tick, i2)\n );\n const labelValues = this.ticks.map(axisOptions.labelInterpolationFnc);\n projectedValues.forEach((projectedValue, index) => {\n const labelValue = labelValues[index];\n const labelOffset = {\n x: 0,\n y: 0\n };\n let labelLength;\n if (projectedValues[index + 1]) {\n labelLength = projectedValues[index + 1] - projectedValue;\n } else {\n labelLength = Math.max(this.axisLength - projectedValue, this.axisLength / this.ticks.length);\n }\n if (labelValue !== \"\" && isFalseyButZero(labelValue)) {\n return;\n }\n if (this.units.pos === \"x\") {\n projectedValue = this.chartRect.x1 + projectedValue;\n labelOffset.x = chartOptions.axisX.labelOffset.x;\n if (chartOptions.axisX.position === \"start\") {\n labelOffset.y = this.chartRect.padding.top + chartOptions.axisX.labelOffset.y + 5;\n } else {\n labelOffset.y = this.chartRect.y1 + chartOptions.axisX.labelOffset.y + 5;\n }\n } else {\n projectedValue = this.chartRect.y1 - projectedValue;\n labelOffset.y = chartOptions.axisY.labelOffset.y - labelLength;\n if (chartOptions.axisY.position === \"start\") {\n labelOffset.x = this.chartRect.padding.left + chartOptions.axisY.labelOffset.x;\n } else {\n labelOffset.x = this.chartRect.x2 + chartOptions.axisY.labelOffset.x + 10;\n }\n }\n if (axisOptions.showGrid) {\n createGrid(projectedValue, index, this, this.gridOffset, this.chartRect[this.counterUnits.len](), gridGroup, [\n chartOptions.classNames.grid,\n chartOptions.classNames[this.units.dir]\n ], eventEmitter);\n }\n if (axisOptions.showLabel) {\n createLabel(projectedValue, labelLength, index, labelValue, this, axisOptions.offset, labelOffset, labelGroup, [\n chartOptions.classNames.label,\n chartOptions.classNames[this.units.dir],\n axisOptions.position === \"start\" ? chartOptions.classNames[axisOptions.position] : chartOptions.classNames.end\n ], eventEmitter);\n }\n });\n }\n constructor(units, chartRect, ticks) {\n this.units = units;\n this.chartRect = chartRect;\n this.ticks = ticks;\n this.counterUnits = units === axisUnits.x ? axisUnits.y : axisUnits.x;\n this.axisLength = chartRect[this.units.rectEnd] - chartRect[this.units.rectStart];\n this.gridOffset = chartRect[this.units.rectOffset];\n }\n};\nvar AutoScaleAxis = class extends Axis {\n projectValue(value) {\n const finalValue = Number(getMultiValue(value, this.units.pos));\n return this.axisLength * (finalValue - this.bounds.min) / this.bounds.range;\n }\n constructor(axisUnit, data, chartRect, options) {\n const highLow = options.highLow || getHighLow(data, options, axisUnit.pos);\n const bounds = getBounds(chartRect[axisUnit.rectEnd] - chartRect[axisUnit.rectStart], highLow, options.scaleMinSpace || 20, options.onlyInteger);\n const range = {\n min: bounds.min,\n max: bounds.max\n };\n super(axisUnit, chartRect, bounds.values);\n this.bounds = bounds;\n this.range = range;\n }\n};\nvar FixedScaleAxis = class extends Axis {\n projectValue(value) {\n const finalValue = Number(getMultiValue(value, this.units.pos));\n return this.axisLength * (finalValue - this.range.min) / (this.range.max - this.range.min);\n }\n constructor(axisUnit, data, chartRect, options) {\n const highLow = options.highLow || getHighLow(data, options, axisUnit.pos);\n const divisor = options.divisor || 1;\n const ticks = (options.ticks || times(\n divisor,\n (index) => highLow.low + (highLow.high - highLow.low) / divisor * index\n )).sort(\n (a, b) => Number(a) - Number(b)\n );\n const range = {\n min: highLow.low,\n max: highLow.high\n };\n super(axisUnit, chartRect, ticks);\n this.range = range;\n }\n};\nvar StepAxis = class extends Axis {\n projectValue(_value, index) {\n return this.stepLength * index;\n }\n constructor(axisUnit, _data, chartRect, options) {\n const ticks = options.ticks || [];\n super(axisUnit, chartRect, ticks);\n const calc = Math.max(1, ticks.length - (options.stretch ? 1 : 0));\n this.stepLength = this.axisLength / calc;\n this.stretch = Boolean(options.stretch);\n }\n};\nfunction getSeriesOption(series, options, key) {\n var ref;\n if (safeHasProperty(series, \"name\") && series.name && ((ref = options.series) === null || ref === void 0 ? void 0 : ref[series.name])) {\n const seriesOptions = options === null || options === void 0 ? void 0 : options.series[series.name];\n const value = seriesOptions[key];\n const result = value === void 0 ? options[key] : value;\n return result;\n } else {\n return options[key];\n }\n}\nvar defaultOptions$2 = {\n // Options for X-Axis\n axisX: {\n // The offset of the labels to the chart area\n offset: 30,\n // Position where labels are placed. Can be set to `start` or `end` where `start` is equivalent to left or top on vertical axis and `end` is equivalent to right or bottom on horizontal axis.\n position: \"end\",\n // Allows you to correct label positioning on this axis by positive or negative x and y offset.\n labelOffset: {\n x: 0,\n y: 0\n },\n // If labels should be shown or not\n showLabel: true,\n // If the axis grid should be drawn or not\n showGrid: true,\n // Interpolation function that allows you to intercept the value from the axis label\n labelInterpolationFnc: noop,\n // Set the axis type to be used to project values on this axis. If not defined, Chartist.StepAxis will be used for the X-Axis, where the ticks option will be set to the labels in the data and the stretch option will be set to the global fullWidth option. This type can be changed to any axis constructor available (e.g. Chartist.FixedScaleAxis), where all axis options should be present here.\n type: void 0\n },\n // Options for Y-Axis\n axisY: {\n // The offset of the labels to the chart area\n offset: 40,\n // Position where labels are placed. Can be set to `start` or `end` where `start` is equivalent to left or top on vertical axis and `end` is equivalent to right or bottom on horizontal axis.\n position: \"start\",\n // Allows you to correct label positioning on this axis by positive or negative x and y offset.\n labelOffset: {\n x: 0,\n y: 0\n },\n // If labels should be shown or not\n showLabel: true,\n // If the axis grid should be drawn or not\n showGrid: true,\n // Interpolation function that allows you to intercept the value from the axis label\n labelInterpolationFnc: noop,\n // Set the axis type to be used to project values on this axis. If not defined, Chartist.AutoScaleAxis will be used for the Y-Axis, where the high and low options will be set to the global high and low options. This type can be changed to any axis constructor available (e.g. Chartist.FixedScaleAxis), where all axis options should be present here.\n type: void 0,\n // This value specifies the minimum height in pixel of the scale steps\n scaleMinSpace: 20,\n // Use only integer values (whole numbers) for the scale steps\n onlyInteger: false\n },\n // Specify a fixed width for the chart as a string (i.e. '100px' or '50%')\n width: void 0,\n // Specify a fixed height for the chart as a string (i.e. '100px' or '50%')\n height: void 0,\n // If the line should be drawn or not\n showLine: true,\n // If dots should be drawn or not\n showPoint: true,\n // If the line chart should draw an area\n showArea: false,\n // The base for the area chart that will be used to close the area shape (is normally 0)\n areaBase: 0,\n // Specify if the lines should be smoothed. This value can be true or false where true will result in smoothing using the default smoothing interpolation function Chartist.Interpolation.cardinal and false results in Chartist.Interpolation.none. You can also choose other smoothing / interpolation functions available in the Chartist.Interpolation module, or write your own interpolation function. Check the examples for a brief description.\n lineSmooth: true,\n // If the line chart should add a background fill to the .ct-grids group.\n showGridBackground: false,\n // Overriding the natural low of the chart allows you to zoom in or limit the charts lowest displayed value\n low: void 0,\n // Overriding the natural high of the chart allows you to zoom in or limit the charts highest displayed value\n high: void 0,\n // Padding of the chart drawing area to the container element and labels as a number or padding object {top: 5, right: 5, bottom: 5, left: 5}\n chartPadding: {\n top: 15,\n right: 15,\n bottom: 5,\n left: 10\n },\n // When set to true, the last grid line on the x-axis is not drawn and the chart elements will expand to the full available width of the chart. For the last label to be drawn correctly you might need to add chart padding or offset the last label with a draw event handler.\n fullWidth: false,\n // If true the whole data is reversed including labels, the series order as well as the whole series data arrays.\n reverseData: false,\n // Override the class names that get used to generate the SVG structure of the chart\n classNames: {\n chart: \"ct-chart-line\",\n label: \"ct-label\",\n labelGroup: \"ct-labels\",\n series: \"ct-series\",\n line: \"ct-line\",\n point: \"ct-point\",\n area: \"ct-area\",\n grid: \"ct-grid\",\n gridGroup: \"ct-grids\",\n gridBackground: \"ct-grid-background\",\n vertical: \"ct-vertical\",\n horizontal: \"ct-horizontal\",\n start: \"ct-start\",\n end: \"ct-end\"\n }\n};\nvar LineChart = class extends BaseChart {\n /**\n * Creates a new chart\n */\n createChart(options) {\n const { data } = this;\n const normalizedData = normalizeData(data, options.reverseData, true);\n const svg = createSvg(this.container, options.width, options.height, options.classNames.chart);\n this.svg = svg;\n const gridGroup = svg.elem(\"g\").addClass(options.classNames.gridGroup);\n const seriesGroup = svg.elem(\"g\");\n const labelGroup = svg.elem(\"g\").addClass(options.classNames.labelGroup);\n const chartRect = createChartRect(svg, options);\n let axisX;\n let axisY;\n if (options.axisX.type === void 0) {\n axisX = new StepAxis(axisUnits.x, normalizedData.series, chartRect, {\n ...options.axisX,\n ticks: normalizedData.labels,\n stretch: options.fullWidth\n });\n } else {\n axisX = new options.axisX.type(axisUnits.x, normalizedData.series, chartRect, options.axisX);\n }\n if (options.axisY.type === void 0) {\n axisY = new AutoScaleAxis(axisUnits.y, normalizedData.series, chartRect, {\n ...options.axisY,\n high: isNumeric(options.high) ? options.high : options.axisY.high,\n low: isNumeric(options.low) ? options.low : options.axisY.low\n });\n } else {\n axisY = new options.axisY.type(axisUnits.y, normalizedData.series, chartRect, options.axisY);\n }\n axisX.createGridAndLabels(gridGroup, labelGroup, options, this.eventEmitter);\n axisY.createGridAndLabels(gridGroup, labelGroup, options, this.eventEmitter);\n if (options.showGridBackground) {\n createGridBackground(gridGroup, chartRect, options.classNames.gridBackground, this.eventEmitter);\n }\n each(data.series, (series, seriesIndex) => {\n const seriesElement = seriesGroup.elem(\"g\");\n const seriesName = safeHasProperty(series, \"name\") && series.name;\n const seriesClassName = safeHasProperty(series, \"className\") && series.className;\n const seriesMeta = safeHasProperty(series, \"meta\") ? series.meta : void 0;\n if (seriesName) {\n seriesElement.attr({\n \"ct:series-name\": seriesName\n });\n }\n if (seriesMeta) {\n seriesElement.attr({\n \"ct:meta\": serialize(seriesMeta)\n });\n }\n seriesElement.addClass([\n options.classNames.series,\n seriesClassName || \"\".concat(options.classNames.series, \"-\").concat(alphaNumerate(seriesIndex))\n ].join(\" \"));\n const pathCoordinates = [];\n const pathData = [];\n normalizedData.series[seriesIndex].forEach((value, valueIndex) => {\n const p = {\n x: chartRect.x1 + axisX.projectValue(value, valueIndex, normalizedData.series[seriesIndex]),\n y: chartRect.y1 - axisY.projectValue(value, valueIndex, normalizedData.series[seriesIndex])\n };\n pathCoordinates.push(p.x, p.y);\n pathData.push({\n value,\n valueIndex,\n meta: getMetaData(series, valueIndex)\n });\n });\n const seriesOptions = {\n lineSmooth: getSeriesOption(series, options, \"lineSmooth\"),\n showPoint: getSeriesOption(series, options, \"showPoint\"),\n showLine: getSeriesOption(series, options, \"showLine\"),\n showArea: getSeriesOption(series, options, \"showArea\"),\n areaBase: getSeriesOption(series, options, \"areaBase\")\n };\n let smoothing;\n if (typeof seriesOptions.lineSmooth === \"function\") {\n smoothing = seriesOptions.lineSmooth;\n } else {\n smoothing = seriesOptions.lineSmooth ? monotoneCubic() : none();\n }\n const path = smoothing(pathCoordinates, pathData);\n if (seriesOptions.showPoint) {\n path.pathElements.forEach((pathElement) => {\n const { data: pathElementData } = pathElement;\n const point = seriesElement.elem(\"line\", {\n x1: pathElement.x,\n y1: pathElement.y,\n x2: pathElement.x + 0.01,\n y2: pathElement.y\n }, options.classNames.point);\n if (pathElementData) {\n let x;\n let y;\n if (safeHasProperty(pathElementData.value, \"x\")) {\n x = pathElementData.value.x;\n }\n if (safeHasProperty(pathElementData.value, \"y\")) {\n y = pathElementData.value.y;\n }\n point.attr({\n \"ct:value\": [\n x,\n y\n ].filter(isNumeric).join(\",\"),\n \"ct:meta\": serialize(pathElementData.meta)\n });\n }\n this.eventEmitter.emit(\"draw\", {\n type: \"point\",\n value: pathElementData === null || pathElementData === void 0 ? void 0 : pathElementData.value,\n index: (pathElementData === null || pathElementData === void 0 ? void 0 : pathElementData.valueIndex) || 0,\n meta: pathElementData === null || pathElementData === void 0 ? void 0 : pathElementData.meta,\n series,\n seriesIndex,\n axisX,\n axisY,\n group: seriesElement,\n element: point,\n x: pathElement.x,\n y: pathElement.y,\n chartRect\n });\n });\n }\n if (seriesOptions.showLine) {\n const line = seriesElement.elem(\"path\", {\n d: path.stringify()\n }, options.classNames.line, true);\n this.eventEmitter.emit(\"draw\", {\n type: \"line\",\n values: normalizedData.series[seriesIndex],\n path: path.clone(),\n chartRect,\n // TODO: Remove redundant\n index: seriesIndex,\n series,\n seriesIndex,\n meta: seriesMeta,\n axisX,\n axisY,\n group: seriesElement,\n element: line\n });\n }\n if (seriesOptions.showArea && axisY.range) {\n const areaBase = Math.max(Math.min(seriesOptions.areaBase, axisY.range.max), axisY.range.min);\n const areaBaseProjected = chartRect.y1 - axisY.projectValue(areaBase);\n path.splitByCommand(\"M\").filter(\n (pathSegment) => pathSegment.pathElements.length > 1\n ).map((solidPathSegments) => {\n const firstElement = solidPathSegments.pathElements[0];\n const lastElement = solidPathSegments.pathElements[solidPathSegments.pathElements.length - 1];\n return solidPathSegments.clone(true).position(0).remove(1).move(firstElement.x, areaBaseProjected).line(firstElement.x, firstElement.y).position(solidPathSegments.pathElements.length + 1).line(lastElement.x, areaBaseProjected);\n }).forEach((areaPath) => {\n const area = seriesElement.elem(\"path\", {\n d: areaPath.stringify()\n }, options.classNames.area, true);\n this.eventEmitter.emit(\"draw\", {\n type: \"area\",\n values: normalizedData.series[seriesIndex],\n path: areaPath.clone(),\n series,\n seriesIndex,\n axisX,\n axisY,\n chartRect,\n // TODO: Remove redundant\n index: seriesIndex,\n group: seriesElement,\n element: area,\n meta: seriesMeta\n });\n });\n }\n }, options.reverseData);\n this.eventEmitter.emit(\"created\", {\n chartRect,\n axisX,\n axisY,\n svg,\n options\n });\n }\n /**\n * This method creates a new line chart.\n * @param query A selector query string or directly a DOM element\n * @param data The data object that needs to consist of a labels and a series array\n * @param options The options object with options that override the default options. Check the examples for a detailed list.\n * @param responsiveOptions Specify an array of responsive option arrays which are a media query and options object pair => [[mediaQueryString, optionsObject],[more...]]\n * @return An object which exposes the API for the created chart\n *\n * @example\n * ```ts\n * // Create a simple line chart\n * const data = {\n * // A labels array that can contain any sort of values\n * labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],\n * // Our series array that contains series objects or in this case series data arrays\n * series: [\n * [5, 2, 4, 2, 0]\n * ]\n * };\n *\n * // As options we currently only set a static size of 300x200 px\n * const options = {\n * width: '300px',\n * height: '200px'\n * };\n *\n * // In the global name space Chartist we call the Line function to initialize a line chart. As a first parameter we pass in a selector where we would like to get our chart created. Second parameter is the actual data object and as a third parameter we pass in our options\n * new LineChart('.ct-chart', data, options);\n * ```\n *\n * @example\n * ```ts\n * // Use specific interpolation function with configuration from the Chartist.Interpolation module\n *\n * const chart = new LineChart('.ct-chart', {\n * labels: [1, 2, 3, 4, 5],\n * series: [\n * [1, 1, 8, 1, 7]\n * ]\n * }, {\n * lineSmooth: Chartist.Interpolation.cardinal({\n * tension: 0.2\n * })\n * });\n * ```\n *\n * @example\n * ```ts\n * // Create a line chart with responsive options\n *\n * const data = {\n * // A labels array that can contain any sort of values\n * labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],\n * // Our series array that contains series objects or in this case series data arrays\n * series: [\n * [5, 2, 4, 2, 0]\n * ]\n * };\n *\n * // In addition to the regular options we specify responsive option overrides that will override the default configutation based on the matching media queries.\n * const responsiveOptions = [\n * ['screen and (min-width: 641px) and (max-width: 1024px)', {\n * showPoint: false,\n * axisX: {\n * labelInterpolationFnc: function(value) {\n * // Will return Mon, Tue, Wed etc. on medium screens\n * return value.slice(0, 3);\n * }\n * }\n * }],\n * ['screen and (max-width: 640px)', {\n * showLine: false,\n * axisX: {\n * labelInterpolationFnc: function(value) {\n * // Will return M, T, W etc. on small screens\n * return value[0];\n * }\n * }\n * }]\n * ];\n *\n * new LineChart('.ct-chart', data, null, responsiveOptions);\n * ```\n */\n constructor(query, data, options, responsiveOptions) {\n super(query, data, defaultOptions$2, extend({}, defaultOptions$2, options), responsiveOptions);\n this.data = data;\n }\n};\n\n// node_modules/chartist/dist/index.scss?inline\nvar dist_default = i`.ct-label {\n fill: rgba(0, 0, 0, 0.4);\n color: rgba(0, 0, 0, 0.4);\n font-size: 0.75rem;\n line-height: 1;\n}\n\n.ct-chart-line .ct-label,\n.ct-chart-bar .ct-label {\n display: flex;\n}\n\n.ct-chart-pie .ct-label,\n.ct-chart-donut .ct-label {\n dominant-baseline: central;\n}\n\n.ct-label.ct-horizontal.ct-start {\n align-items: flex-end;\n justify-content: flex-start;\n text-align: left;\n}\n\n.ct-label.ct-horizontal.ct-end {\n align-items: flex-start;\n justify-content: flex-start;\n text-align: left;\n}\n\n.ct-label.ct-vertical.ct-start {\n align-items: flex-end;\n justify-content: flex-end;\n text-align: right;\n}\n\n.ct-label.ct-vertical.ct-end {\n align-items: flex-end;\n justify-content: flex-start;\n text-align: left;\n}\n\n.ct-chart-bar .ct-label.ct-horizontal.ct-start {\n align-items: flex-end;\n justify-content: center;\n text-align: center;\n}\n\n.ct-chart-bar .ct-label.ct-horizontal.ct-end {\n align-items: flex-start;\n justify-content: center;\n text-align: center;\n}\n\n.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start {\n align-items: flex-end;\n justify-content: flex-start;\n text-align: left;\n}\n\n.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end {\n align-items: flex-start;\n justify-content: flex-start;\n text-align: left;\n}\n\n.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start {\n align-items: center;\n justify-content: flex-end;\n text-align: right;\n}\n\n.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end {\n align-items: center;\n justify-content: flex-start;\n text-align: left;\n}\n\n.ct-grid {\n stroke: rgba(0, 0, 0, 0.2);\n stroke-width: 1px;\n stroke-dasharray: 2px;\n}\n\n.ct-grid-background {\n fill: none;\n}\n\n.ct-point {\n stroke-width: 10px;\n stroke-linecap: round;\n}\n\n.ct-line {\n fill: none;\n stroke-width: 4px;\n}\n\n.ct-area {\n stroke: none;\n fill-opacity: 0.1;\n}\n\n.ct-bar {\n fill: none;\n stroke-width: 10px;\n}\n\n.ct-slice-donut {\n fill: none;\n stroke-width: 60px;\n}\n\n.ct-series-a .ct-point, .ct-series-a .ct-line, .ct-series-a .ct-bar, .ct-series-a .ct-slice-donut {\n stroke: #d70206;\n}\n.ct-series-a .ct-slice-pie, .ct-series-a .ct-area {\n fill: #d70206;\n}\n\n.ct-series-b .ct-point, .ct-series-b .ct-line, .ct-series-b .ct-bar, .ct-series-b .ct-slice-donut {\n stroke: #f05b4f;\n}\n.ct-series-b .ct-slice-pie, .ct-series-b .ct-area {\n fill: #f05b4f;\n}\n\n.ct-series-c .ct-point, .ct-series-c .ct-line, .ct-series-c .ct-bar, .ct-series-c .ct-slice-donut {\n stroke: #f4c63d;\n}\n.ct-series-c .ct-slice-pie, .ct-series-c .ct-area {\n fill: #f4c63d;\n}\n\n.ct-series-d .ct-point, .ct-series-d .ct-line, .ct-series-d .ct-bar, .ct-series-d .ct-slice-donut {\n stroke: #d17905;\n}\n.ct-series-d .ct-slice-pie, .ct-series-d .ct-area {\n fill: #d17905;\n}\n\n.ct-series-e .ct-point, .ct-series-e .ct-line, .ct-series-e .ct-bar, .ct-series-e .ct-slice-donut {\n stroke: #453d3f;\n}\n.ct-series-e .ct-slice-pie, .ct-series-e .ct-area {\n fill: #453d3f;\n}\n\n.ct-series-f .ct-point, .ct-series-f .ct-line, .ct-series-f .ct-bar, .ct-series-f .ct-slice-donut {\n stroke: #59922b;\n}\n.ct-series-f .ct-slice-pie, .ct-series-f .ct-area {\n fill: #59922b;\n}\n\n.ct-series-g .ct-point, .ct-series-g .ct-line, .ct-series-g .ct-bar, .ct-series-g .ct-slice-donut {\n stroke: #0544d3;\n}\n.ct-series-g .ct-slice-pie, .ct-series-g .ct-area {\n fill: #0544d3;\n}\n\n.ct-series-h .ct-point, .ct-series-h .ct-line, .ct-series-h .ct-bar, .ct-series-h .ct-slice-donut {\n stroke: #6b0392;\n}\n.ct-series-h .ct-slice-pie, .ct-series-h .ct-area {\n fill: #6b0392;\n}\n\n.ct-series-i .ct-point, .ct-series-i .ct-line, .ct-series-i .ct-bar, .ct-series-i .ct-slice-donut {\n stroke: #e6805e;\n}\n.ct-series-i .ct-slice-pie, .ct-series-i .ct-area {\n fill: #e6805e;\n}\n\n.ct-series-j .ct-point, .ct-series-j .ct-line, .ct-series-j .ct-bar, .ct-series-j .ct-slice-donut {\n stroke: #dda458;\n}\n.ct-series-j .ct-slice-pie, .ct-series-j .ct-area {\n fill: #dda458;\n}\n\n.ct-series-k .ct-point, .ct-series-k .ct-line, .ct-series-k .ct-bar, .ct-series-k .ct-slice-donut {\n stroke: #eacf7d;\n}\n.ct-series-k .ct-slice-pie, .ct-series-k .ct-area {\n fill: #eacf7d;\n}\n\n.ct-series-l .ct-point, .ct-series-l .ct-line, .ct-series-l .ct-bar, .ct-series-l .ct-slice-donut {\n stroke: #86797d;\n}\n.ct-series-l .ct-slice-pie, .ct-series-l .ct-area {\n fill: #86797d;\n}\n\n.ct-series-m .ct-point, .ct-series-m .ct-line, .ct-series-m .ct-bar, .ct-series-m .ct-slice-donut {\n stroke: #b2c326;\n}\n.ct-series-m .ct-slice-pie, .ct-series-m .ct-area {\n fill: #b2c326;\n}\n\n.ct-series-n .ct-point, .ct-series-n .ct-line, .ct-series-n .ct-bar, .ct-series-n .ct-slice-donut {\n stroke: #6188e2;\n}\n.ct-series-n .ct-slice-pie, .ct-series-n .ct-area {\n fill: #6188e2;\n}\n\n.ct-series-o .ct-point, .ct-series-o .ct-line, .ct-series-o .ct-bar, .ct-series-o .ct-slice-donut {\n stroke: #a748ca;\n}\n.ct-series-o .ct-slice-pie, .ct-series-o .ct-area {\n fill: #a748ca;\n}\n\n.ct-square {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-square:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 100%;\n}\n.ct-square:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-square > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-minor-second {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-minor-second:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 93.75%;\n}\n.ct-minor-second:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-minor-second > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-major-second {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-major-second:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 88.8888888889%;\n}\n.ct-major-second:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-major-second > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-minor-third {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-minor-third:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 83.3333333333%;\n}\n.ct-minor-third:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-minor-third > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-major-third {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-major-third:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 80%;\n}\n.ct-major-third:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-major-third > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-perfect-fourth {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-perfect-fourth:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 75%;\n}\n.ct-perfect-fourth:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-perfect-fourth > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-perfect-fifth {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-perfect-fifth:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 66.6666666667%;\n}\n.ct-perfect-fifth:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-perfect-fifth > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-minor-sixth {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-minor-sixth:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 62.5%;\n}\n.ct-minor-sixth:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-minor-sixth > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-golden-section {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-golden-section:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 61.804697157%;\n}\n.ct-golden-section:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-golden-section > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-major-sixth {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-major-sixth:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 60%;\n}\n.ct-major-sixth:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-major-sixth > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-minor-seventh {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-minor-seventh:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 56.25%;\n}\n.ct-minor-seventh:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-minor-seventh > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-major-seventh {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-major-seventh:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 53.3333333333%;\n}\n.ct-major-seventh:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-major-seventh > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-octave {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-octave:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 50%;\n}\n.ct-octave:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-octave > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-major-tenth {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-major-tenth:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 40%;\n}\n.ct-major-tenth:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-major-tenth > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-major-eleventh {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-major-eleventh:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 37.5%;\n}\n.ct-major-eleventh:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-major-eleventh > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-major-twelfth {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-major-twelfth:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 33.3333333333%;\n}\n.ct-major-twelfth:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-major-twelfth > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.ct-double-octave {\n display: block;\n position: relative;\n width: 100%;\n}\n.ct-double-octave:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: 25%;\n}\n.ct-double-octave:after {\n content: \"\";\n display: table;\n clear: both;\n}\n.ct-double-octave > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n}`;\n\n// src/components/jb-stock-chart/jb-stock-chart.scss?inline\nvar jb_stock_chart_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.value, .ct-label, li {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n.time, .tooltip {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.ct-label, li {\n font-size: var(--theme-typo-uppercase-700-fontsize, 0.688rem);\n letter-spacing: var(--theme-typo-uppercase-700-letterspacing, 0.063rem);\n line-height: var(--theme-typo-uppercase-700-lineheight, 1rem);\n text-transform: uppercase;\n}\n\n.value {\n font-size: var(--theme-typo-p-small-highlight-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-highlight-desktop-lineheight, 1.625rem);\n}\n\n.time, .tooltip {\n font-size: var(--theme-typo-p-mini-desktop-fontsize, 0.813rem);\n line-height: var(--theme-typo-p-mini-desktop-lineheight, 1.25rem);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\njb-section-headline {\n margin-bottom: var(--spacing-xl);\n}\n\nul {\n display: flex;\n flex-wrap: wrap;\n gap: 10px 30px;\n justify-content: center;\n margin-bottom: var(--spacing-m);\n padding: 0;\n}\n\nli {\n color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n cursor: pointer;\n list-style: none;\n position: relative;\n transition: color 0.4s ease-in-out;\n}\nli::before, li::after {\n bottom: 0;\n content: \"\";\n position: absolute;\n}\nli::before {\n background-color: transparent;\n border-bottom: 1px solid rgba(20, 30, 85, var(--theme-opacity-20, 0.2));\n height: 0;\n width: 100%;\n}\nli::after {\n background: #141e55;\n height: 1px;\n left: 0;\n right: 100%;\n transition: right 0.8s ease-in-out;\n}\nli.active, li:hover {\n color: #141e55;\n}\nli.active::after, li:hover::after {\n right: 0;\n}\n\n.ct-label.ct-horizontal.ct-end {\n display: inline-block;\n transform: translateX(-50%);\n width: auto !important;\n}\n\n#chart {\n aspect-ratio: 2/1;\n position: relative;\n touch-action: pan-y;\n}\n#chart.hovering .tooltip, #chart.hovering .tooltipline, #chart.hovering .tooltipdot, #chart:hover .tooltip, #chart:hover .tooltipline, #chart:hover .tooltipdot {\n opacity: 1;\n}\n\nsvg {\n overflow: visible;\n}\n\n.ct-line {\n stroke-width: 2px;\n}\n\n.ct-grid {\n stroke: rgba(20, 30, 85, 0.1);\n stroke-dasharray: 0;\n}\n\n.ct-series-a .ct-line {\n stroke: #141e55;\n}\n.ct-series-a .ct-point {\n opacity: 0;\n stroke-width: 16px;\n}\n\n.ct-labels foreignObject:first-child {\n display: none;\n}\n\n.ct-label {\n color: #141e55;\n margin-top: 10px;\n position: relative;\n}\n.ct-label.ct-horizontal::after {\n background-color: rgba(20, 30, 85, 0.1);\n content: \"\";\n display: block;\n height: 10px;\n left: 50%;\n position: absolute;\n top: -1rem;\n width: 1px;\n}\n\n.tooltip {\n background-color: #fff;\n box-shadow: 0 5px 10px 0 rgba(103, 104, 113, 0.15), 0 0 10px 0 rgba(0, 0, 0, 0.05);\n color: #141e55;\n left: 0;\n line-height: 0.688rem;\n opacity: 0;\n padding-block: var(--spacing-3xs);\n padding-inline: var(--spacing-2xs);\n pointer-events: none;\n position: absolute;\n top: 0;\n transform: translate(calc(var(--_tooltip-x) - 50%), calc(var(--_tooltip-y) - 100% - 15px));\n transition: transform 0.1s ease-in-out, opacity 0.2s ease-in-out;\n z-index: 3;\n}\n.tooltip::after {\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 7px solid white;\n bottom: 0;\n content: \"\";\n height: 0;\n left: 50%;\n position: absolute;\n translate: -50% 97%;\n width: 0;\n}\n\n.tooltipdot {\n background-color: #141e55;\n border: 4px solid white;\n border-radius: 3rem;\n box-shadow: 0 5px 10px 0 rgba(103, 104, 113, 0.15), 0 0 10px 0 rgba(0, 0, 0, 0.05);\n height: 8px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n transform: translate(calc(var(--_tooltip-x) - 50%), calc(var(--_tooltip-y) - 50%));\n width: 8px;\n z-index: 2;\n}\n\n.tooltipline {\n background-color: rgba(20, 30, 85, 0.1);\n height: var(--_tooltipline-length);\n opacity: 0;\n pointer-events: none;\n position: absolute;\n transform: translate(var(--_tooltip-x), var(--_tolltipline-top));\n transition: opacity 0.2s ease-in-out;\n width: 1px;\n z-index: 1;\n}\n\n.time {\n opacity: 0.8;\n}\n\n.value {\n align-items: center;\n display: flex;\n}\n.value::before {\n background-color: #141e55;\n border-radius: 50px;\n content: \"\";\n display: inline-block;\n height: var(--spacing-3xs);\n margin-right: var(--spacing-3xs);\n width: var(--spacing-3xs);\n}\n\n@supports (hanging-punctuation: first) and (-webkit-appearance: none) {\n .tooltip {\n transition: opacity 0.2s ease-in-out;\n }\n}`;\n\n// src/components/jb-stock-chart/jb-stock-chart.ts\nvar JbStockChart = class extends Spaceable(h) {\n constructor() {\n super(...arguments);\n this.activeChart = \"intraday\";\n this._dataTable = [];\n this._hovering = false;\n }\n async firstUpdated() {\n const response = await fetch(this.dataURL);\n this._serverResponse = await response.json();\n await this.updateComplete;\n this._chartist = new LineChart(\n this._chartElement,\n {\n series: [this._mapData(this._serverResponse.hourly)]\n },\n {\n lineSmooth: false,\n fullWidth: true,\n axisX: {\n type: FixedScaleAxis,\n divisor: 6,\n labelInterpolationFnc: (value) => new Date(value).toLocaleString(void 0, {\n hour: \"2-digit\",\n minute: \"2-digit\"\n }),\n showGrid: false\n },\n axisY: {\n labelInterpolationFnc: (value) => Number.parseFloat(String(value)).toFixed(2)\n }\n }\n );\n switch (this.activeChart) {\n case \"monthly\":\n this._setMonthly();\n break;\n case \"yearly\":\n this._setYearly();\n break;\n case \"intraday\":\n default:\n this._setIntraday();\n break;\n }\n this._chartist.on(\"created\", () => {\n this._initializeTooltip();\n });\n }\n _drawTooltip(offsetX) {\n const tooltipData = this._getToolTipData(offsetX);\n if (!tooltipData) return;\n const [time, value] = tooltipData.value.split(\",\");\n this.style.setProperty(\"--_tooltip-x\", tooltipData.x + \"px\");\n this.style.setProperty(\"--_tooltip-y\", tooltipData.y + \"px\");\n this._tooltipTime = new Date(Number(time)).toLocaleDateString(void 0, {\n weekday: \"long\",\n day: \"2-digit\",\n month: \"short\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n });\n this._tooltipValue = value;\n }\n _getContentSpacingProperties() {\n return { colsMdUp: 12, colsLgUp: 8, grid: \"legacy\" };\n }\n _getToolTipData(x) {\n let i2 = 0;\n for (i2; i2 < this._dataTable.length; i2 += 1) {\n if (this._dataTable[i2].leftPoint >= x) break;\n }\n return this._dataTable[i2 - 1];\n }\n _initializeTooltip() {\n const firstScaleLineY = this._chartElement.querySelector(\".ct-grids line:first-child\")?.getAttribute(\"y1\");\n const lastScaleLineY = this._chartElement.querySelector(\".ct-grids line:last-child\")?.getAttribute(\"y1\");\n if (!firstScaleLineY || !lastScaleLineY) return;\n this.style.setProperty(\"--_tolltipline-top\", lastScaleLineY + \"px\");\n this.style.setProperty(\"--_tooltipline-length\", parseFloat(firstScaleLineY) - parseFloat(lastScaleLineY) + \"px\");\n const allPoints = this._chartElement.querySelectorAll(\".ct-point\");\n this._dataTable = [];\n for (let i2 = 0; i2 < allPoints.length; i2 += 1) {\n const x = parseFloat(allPoints[i2].getAttribute(\"x1\"));\n const previousX = allPoints[i2 - 1] ? parseFloat(allPoints[i2 - 1].getAttribute(\"x1\")) : 0;\n const leftPoint = Math.round(x - (x - previousX) / 2);\n this._dataTable.push({\n x: Math.round(x),\n leftPoint,\n y: Math.round(parseFloat(allPoints[i2].getAttribute(\"y1\"))),\n value: allPoints[i2].getAttribute(\"ct:value\")\n });\n }\n this._chartElement.addEventListener(\n \"mousemove\",\n (evt) => {\n if (![\"svg\", \"line\"].includes(evt.target.nodeName)) return;\n this._drawTooltip(evt.offsetX);\n },\n false\n );\n this._chartElement.addEventListener(\"touchmove\", (evt) => {\n const rect = evt.target.getBoundingClientRect();\n const offsetX = Math.floor(evt.touches[0].clientX - window.scrollX - rect.left);\n this._drawTooltip(offsetX);\n });\n this._chartElement.addEventListener(\"touchstart\", () => {\n this._hovering = true;\n });\n this._chartElement.addEventListener(\"touchend\", () => {\n this._hovering = false;\n });\n }\n _mapData(inputArray) {\n return inputArray.map((elm) => {\n const date = new Date(elm.t.replace(\" \", \"T\"));\n return { x: date, y: elm.y };\n });\n }\n _setIntraday() {\n this.activeChart = \"intraday\";\n this._tooltipValue = void 0;\n this._chartist.update(\n {\n series: [this._mapData(this._serverResponse.hourly)]\n },\n {\n axisX: {\n labelInterpolationFnc: (value) => new Date(value).toLocaleString(void 0, {\n hour: \"2-digit\",\n minute: \"2-digit\"\n })\n }\n },\n true\n );\n }\n _setMonthly() {\n this.activeChart = \"monthly\";\n this._tooltipValue = void 0;\n this._chartist.update(\n {\n series: [this._mapData(this._serverResponse.monthly)]\n },\n {\n axisX: {\n labelInterpolationFnc: (value) => new Date(value).toLocaleString(void 0, {\n weekday: \"short\",\n day: \"2-digit\",\n month: \"short\"\n })\n }\n },\n true\n );\n }\n _setYearly() {\n this.activeChart = \"yearly\";\n this._tooltipValue = void 0;\n this._chartist.update(\n {\n series: [this._mapData(this._serverResponse.daily)]\n },\n {\n axisX: {\n labelInterpolationFnc: (value) => new Date(value).toLocaleString(void 0, {\n weekday: \"short\",\n day: \"2-digit\",\n month: \"short\"\n })\n }\n },\n true\n );\n }\n render() {\n return ke`\n \n \n \n ${this.intraday}\n \n \n ${this.monthly}\n \n \n ${this.yearly}\n \n \n \n ${this._tooltipValue ? ke`
\n
\n
` : D}\n
\n `;\n }\n};\nJbStockChart.styles = r([dist_default, jb_stock_chart_default]);\n__decorateClass([\n n()\n], JbStockChart.prototype, \"activeChart\", 2);\n__decorateClass([\n n()\n], JbStockChart.prototype, \"dataURL\", 2);\n__decorateClass([\n n()\n], JbStockChart.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbStockChart.prototype, \"intraday\", 2);\n__decorateClass([\n n()\n], JbStockChart.prototype, \"monthly\", 2);\n__decorateClass([\n n()\n], JbStockChart.prototype, \"yearly\", 2);\n__decorateClass([\n e(\"#chart\")\n], JbStockChart.prototype, \"_chartElement\", 2);\n__decorateClass([\n r2()\n], JbStockChart.prototype, \"_hovering\", 2);\n__decorateClass([\n r2()\n], JbStockChart.prototype, \"_tooltipTime\", 2);\n__decorateClass([\n r2()\n], JbStockChart.prototype, \"_tooltipValue\", 2);\nJbStockChart = __decorateClass([\n customElement(\"jb-stock-chart\")\n], JbStockChart);\n\nexport {\n JbStockChart\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-simple-page-hero/jb-simple-page-hero.scss?inline\nvar jb_simple_page_hero_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh1 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh1 {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.625rem;\n line-height: 2.188rem;\n}\n@media (min-width: 1281px) {\n h1 {\n font-size: 1.938rem;\n line-height: 2.625rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n@media (min-width: 1281px) {\n :host {\n padding: 40px 0 20px;\n }\n}\n\nh1 {\n margin-bottom: 16px;\n text-align: center;\n}`;\n\n// src/components/jb-simple-page-hero/jb-simple-page-hero.ts\nvar JbSimplePageHero = class extends Spaceable(h) {\n _getContentSpacingProperties() {\n return { type: \"no-vertical-space\" };\n }\n render() {\n return ke` `;\n }\n};\nJbSimplePageHero.styles = r(jb_simple_page_hero_default);\nJbSimplePageHero = __decorateClass([\n customElement(\"jb-simple-page-hero\")\n], JbSimplePageHero);\n\nexport {\n JbSimplePageHero\n};\n", "import {\n Linkable,\n setLink\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-section-sitemap/jb-section-sitemap.scss?inline\nvar jb_section_sitemap_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nli a {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nh2 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nli a {\n font-size: var(--theme-typo-uppercase-700-fontsize, 0.688rem);\n letter-spacing: var(--theme-typo-uppercase-700-letterspacing, 0.063rem);\n line-height: var(--theme-typo-uppercase-700-lineheight, 1rem);\n text-transform: uppercase;\n}\n\nh2 {\n font-size: var(--theme-typo-h2-section-title-mobile-fontsize, 1.5rem);\n letter-spacing: var(--theme-typo-h2-section-title-mobile-letterspacing, 0.125rem);\n line-height: var(--theme-typo-h2-section-title-mobile-lineheight, 2.25rem);\n}\n@media (min-width: 1281px) {\n h2 {\n font-size: var(--theme-typo-h2-section-title-desktop-fontsize, 1.938rem);\n letter-spacing: var(--theme-typo-h2-section-title-desktop-letterspacing, 0.25rem);\n line-height: var(--theme-typo-h2-section-title-desktop-lineheight, 2.5rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\nnav {\n --_grid-gap: 16px;\n --_grid-template-columns: repeat(12, 1fr);\n display: grid;\n gap: var(--grid-row-gap, 0) var(--grid-column-gap, var(--_grid-gap));\n grid-template-columns: var(--theme-grid-template-columns, var(--_grid-template-columns));\n width: 100%;\n}\n@media (min-width: 960px) {\n nav {\n --_grid-gap: 40px;\n }\n}\n\nsection {\n --_max-width: calc(100% - (2 * 6.68%));\n display: grid;\n grid-template-columns: [full-start] minmax(0, 1fr) [main-start] minmax(0, var(--theme-grid-max-width, var(--_max-width))) [main-end] minmax(0, 1fr) [full-end];\n margin-inline: auto;\n}\n@media (min-width: 600px) {\n section {\n --_max-width: calc(100% - (2 * 8.35%));\n }\n}\n@media (min-width: 960px) {\n section {\n --_max-width: calc(100% - (2 * 6.955%));\n }\n}\n@media (min-width: 1437px) {\n section {\n --_max-width: 1437px;\n }\n}\n\n:host {\n color: var(--host-color, #141e55);\n}\n\nsection {\n background-color: rgba(113, 124, 125, 0.1);\n padding: var(--spacing-xl) 0;\n padding-inline-end: var(--compensate-scrollbar);\n}\n@media (min-width: 600px) {\n section {\n padding: 48px 0;\n }\n}\n@media (min-width: 960px) {\n section {\n padding: 64px 0;\n }\n}\n@media (min-width: 1281px) {\n section {\n padding: var(--spacing-2xl) 0;\n }\n}\n\nnav {\n grid-column: main;\n}\n\nh2 {\n grid-column: 1/13;\n margin-block-end: var(--spacing-sm);\n text-align: center;\n text-transform: uppercase;\n transition: opacity 0.3s ease-in-out 0s;\n}\n@media (min-width: 600px) {\n h2 {\n grid-column: 1/7;\n text-align: start;\n }\n}\n@media (min-width: 960px) {\n h2 {\n grid-column: 2/6;\n }\n}\n@media (min-width: 1281px) {\n h2 {\n margin-block-end: 0;\n }\n}\nh2:hover {\n opacity: 0.6;\n}\nh2 a {\n color: #141e55;\n text-decoration: none;\n}\n\nul {\n grid-column: 1/13;\n list-style-type: none;\n}\n@media (min-width: 600px) {\n ul {\n grid-column: 7/13;\n }\n}\n@media (min-width: 960px) {\n ul {\n column-count: 2;\n column-gap: var(--_grid-gap, 40px);\n grid-column: 6/12;\n }\n}\n\nli {\n margin-block-end: var(--spacing-sm);\n text-align: center;\n}\n@media (min-width: 600px) {\n li {\n text-align: start;\n }\n}\nli a {\n color: #141e55;\n opacity: 1;\n text-decoration: none;\n text-transform: uppercase;\n transition: opacity 0.3s ease-in-out 0s;\n}\nli a:hover {\n opacity: 0.6;\n transition: opacity 0.3s ease-in-out 0s;\n}\n\n@media (min-width: 600px) {\n .intranet h2 {\n text-align: left;\n }\n}\n@media (min-width: 960px) {\n .intranet h2 {\n grid-column: 1/6;\n }\n}`;\n\n// src/components/jb-section-sitemap/jb-section-sitemap.ts\nvar JbSectionSitemap = class extends Linkable(h) {\n _renderItems(items) {\n return items.map((item) => {\n const anchor = document.createElement(\"a\");\n if (item.link) setLink(anchor, item.link);\n anchor.innerText = item.text;\n return ke`${anchor} `;\n });\n }\n render() {\n return ke`\n \n \n \n \n ${this._renderItems(this.items)}\n \n \n \n `;\n }\n};\nJbSectionSitemap.styles = r(jb_section_sitemap_default);\n__decorateClass([\n n({ type: Boolean })\n], JbSectionSitemap.prototype, \"intranetStyle\", 2);\n__decorateClass([\n n({ type: Array })\n], JbSectionSitemap.prototype, \"items\", 2);\n__decorateClass([\n n()\n], JbSectionSitemap.prototype, \"text\", 2);\nJbSectionSitemap = __decorateClass([\n customElement(\"jb-section-sitemap\")\n], JbSectionSitemap);\n\nexport {\n JbSectionSitemap\n};\n", "import {\n JbReadIcon\n} from \"../chunks/chunk.752YB4LQ.js\";\nimport {\n JbPodcastIcon\n} from \"../chunks/chunk.HHGEJVLI.js\";\nimport {\n JbTextWithImage\n} from \"../chunks/chunk.BUINRXUZ.js\";\nimport {\n JbTimeline\n} from \"../chunks/chunk.QMJLMCQD.js\";\nimport {\n JbTextTeaser\n} from \"../chunks/chunk.BWCJXF4C.js\";\nimport {\n JbStockChart\n} from \"../chunks/chunk.IVFP57X3.js\";\nimport {\n JbSimplePageHero\n} from \"../chunks/chunk.K5I5FY2G.js\";\nimport {\n JbSectionSitemap\n} from \"../chunks/chunk.CLSO3QKV.js\";\nimport {\n JbSearchOverlay\n} from \"../chunks/chunk.77CS2EJF.js\";\nimport {\n JbSearchResult\n} from \"../chunks/chunk.QNHAANAD.js\";\nimport {\n JbSearchResultList\n} from \"../chunks/chunk.27KPVSCE.js\";\nimport {\n JbSearchResultItem\n} from \"../chunks/chunk.WS54TDSR.js\";\nimport {\n JbRegionSelectOverlay\n} from \"../chunks/chunk.VZ6THPUN.js\";\nimport \"../chunks/chunk.RTAXJRGK.js\";\nimport \"../chunks/chunk.JBQASJWR.js\";\nimport {\n JbQuote\n} from \"../chunks/chunk.V3OED5WC.js\";\nimport {\n JbRegionIndicator\n} from \"../chunks/chunk.ASLWQTBO.js\";\nimport {\n JbRegionIndicatorItem\n} from \"../chunks/chunk.ZULSURGS.js\";\nimport {\n JbPodcastPlayer\n} from \"../chunks/chunk.V3FXZTXQ.js\";\nimport {\n JbPublicationDownloadOverlay\n} from \"../chunks/chunk.BW2O4P4N.js\";\nimport {\n JbPublicationDownload\n} from \"../chunks/chunk.GGLFCMKS.js\";\nimport {\n JbPageHero\n} from \"../chunks/chunk.FVOAOYBA.js\";\nimport {\n JbNewsPageHero\n} from \"../chunks/chunk.M37CL26E.js\";\nimport {\n JbNewsletterRegistrationForm\n} from \"../chunks/chunk.4F2M66NW.js\";\nimport {\n JbMultiForm\n} from \"../chunks/chunk.DOXN3ITF.js\";\nimport {\n JbNavigation\n} from \"../chunks/chunk.L3NYRMHF.js\";\nimport {\n JbEServiceIcon\n} from \"../chunks/chunk.BJDVKDSN.js\";\nimport {\n JbBurgerIcon\n} from \"../chunks/chunk.ECWSRW7A.js\";\nimport {\n JbSearchIcon\n} from \"../chunks/chunk.SHZV3OKI.js\";\nimport {\n JbNavigationTags\n} from \"../chunks/chunk.TRJPDM73.js\";\nimport {\n JbNewsOverlay\n} from \"../chunks/chunk.EAZXTLIG.js\";\nimport {\n JBMomentPageHero\n} from \"../chunks/chunk.RTMBLKCR.js\";\nimport {\n JbMomentTeaserItem\n} from \"../chunks/chunk.FJRJNS57.js\";\nimport {\n JbMultiColumn\n} from \"../chunks/chunk.O3OQH7K5.js\";\nimport {\n JbMenu\n} from \"../chunks/chunk.4MWPCD76.js\";\nimport {\n JbServiceNavigation\n} from \"../chunks/chunk.IK4GS6MF.js\";\nimport {\n JbServiceNavigationItem\n} from \"../chunks/chunk.VQTQWDQ7.js\";\nimport {\n JbSecondaryMenuList\n} from \"../chunks/chunk.YHFXFDOO.js\";\nimport \"../chunks/chunk.OOINLVPA.js\";\nimport {\n JbMenuItem\n} from \"../chunks/chunk.BLHU75DH.js\";\nimport {\n JbArrowForwardIcon\n} from \"../chunks/chunk.JEMJHKRF.js\";\nimport {\n JbLocationTeaser\n} from \"../chunks/chunk.OA7VOAPF.js\";\nimport {\n JbMediaOverlay\n} from \"../chunks/chunk.T7ZSXYMK.js\";\nimport {\n JbListingGrid\n} from \"../chunks/chunk.XNGCFV5F.js\";\nimport {\n JbLocationOverview\n} from \"../chunks/chunk.HMT5EUCL.js\";\nimport {\n JbLanguageAlert\n} from \"../chunks/chunk.T4U2INBF.js\";\nimport {\n JbLanguageItem\n} from \"../chunks/chunk.CANFYQQ7.js\";\nimport {\n JbLazyLoadingUploads\n} from \"../chunks/chunk.KDSRYXYR.js\";\nimport {\n JbListing\n} from \"../chunks/chunk.NX52RSH4.js\";\nimport \"../chunks/chunk.RWKEWVB7.js\";\nimport {\n JbInfoPageHero\n} from \"../chunks/chunk.DF3LUGOU.js\";\nimport {\n JbInteractiveAnimation\n} from \"../chunks/chunk.GMKEIOWU.js\";\nimport {\n JbKeyFigures\n} from \"../chunks/chunk.32VXYCDQ.js\";\nimport {\n JbImagePageTeaserItem\n} from \"../chunks/chunk.XFFAINSZ.js\";\nimport {\n JbInTextTeaser\n} from \"../chunks/chunk.FQKKF3C4.js\";\nimport {\n JbMarketDisplay\n} from \"../chunks/chunk.YPSOHBHF.js\";\nimport {\n JbLanguageIcon\n} from \"../chunks/chunk.HELPNYSY.js\";\nimport {\n JbInfoBlock\n} from \"../chunks/chunk.LNPHJVN7.js\";\nimport {\n JbHomePageHeroLegacy\n} from \"../chunks/chunk.HHLOTGBW.js\";\nimport {\n JbTeaserBlock\n} from \"../chunks/chunk.ZCPWJJYC.js\";\nimport \"../chunks/chunk.ZHKWOFXT.js\";\nimport \"../chunks/chunk.SIK7NCSO.js\";\nimport \"../chunks/chunk.LIYZ3SIB.js\";\nimport {\n JbHeadlineWithText\n} from \"../chunks/chunk.E35EZG5G.js\";\nimport {\n JbHighlightTextItem\n} from \"../chunks/chunk.F5UPFIWT.js\";\nimport {\n JbHomePageHero\n} from \"../chunks/chunk.IFGLMA6Z.js\";\nimport {\n JbFooter\n} from \"../chunks/chunk.62SKAJCV.js\";\nimport {\n JbYoutubeIcon\n} from \"../chunks/chunk.RJXHZNWG.js\";\nimport {\n JbInstagramIcon\n} from \"../chunks/chunk.7HQEG5H3.js\";\nimport {\n JbForm\n} from \"../chunks/chunk.WTUUVMAF.js\";\nimport {\n JbUpload\n} from \"../chunks/chunk.NPPUQA4O.js\";\nimport {\n JbTextArea\n} from \"../chunks/chunk.BJJ5PNCU.js\";\nimport {\n JbTextField\n} from \"../chunks/chunk.GQ4TGWC7.js\";\nimport {\n JbRadio\n} from \"../chunks/chunk.P37ZQKMH.js\";\nimport \"../chunks/chunk.LEEHA55O.js\";\nimport {\n JbInfoBox\n} from \"../chunks/chunk.PLAKMPEF.js\";\nimport {\n JbGallery,\n JbGalleryFullscreen\n} from \"../chunks/chunk.IAVA7Y6D.js\";\nimport {\n JbFullscreenIcon\n} from \"../chunks/chunk.GACLELN2.js\";\nimport {\n JbFacts\n} from \"../chunks/chunk.YGAYY4BL.js\";\nimport {\n JbFirstLevelTeaser\n} from \"../chunks/chunk.2XXCJ6EM.js\";\nimport {\n JbFirstLevelTeaserItem\n} from \"../chunks/chunk.FXJI6FZV.js\";\nimport {\n JbCtaSmall\n} from \"../chunks/chunk.PUFGUSAM.js\";\nimport {\n JbDatePicker\n} from \"../chunks/chunk.ZHFQDBJP.js\";\nimport {\n JbEServiceOverlay\n} from \"../chunks/chunk.JVL4FYYT.js\";\nimport {\n JbSelect\n} from \"../chunks/chunk.OUQ73RZJ.js\";\nimport {\n JbCookieConsent\n} from \"../chunks/chunk.IV2SXBZI.js\";\nimport \"../chunks/chunk.SE5MQEAG.js\";\nimport {\n JbDropdown\n} from \"../chunks/chunk.ROUOKNYN.js\";\nimport \"../chunks/chunk.I2ELSNII.js\";\nimport \"../chunks/chunk.JFNWOIMP.js\";\nimport \"../chunks/chunk.PO4WO7D2.js\";\nimport {\n JbCookieSettings\n} from \"../chunks/chunk.7OA654OI.js\";\nimport {\n JbRichtext\n} from \"../chunks/chunk.MRDK22UH.js\";\nimport {\n JbContactOverlay\n} from \"../chunks/chunk.POQH7ZYI.js\";\nimport \"../chunks/chunk.WDF6H473.js\";\nimport {\n JbOverlay\n} from \"../chunks/chunk.5C7B4R5Q.js\";\nimport \"../chunks/chunk.Y44YK2W3.js\";\nimport {\n JbContactTeaser\n} from \"../chunks/chunk.VDIVEPQD.js\";\nimport {\n JbContactTeaserLegacy\n} from \"../chunks/chunk.AB62R6KA.js\";\nimport {\n JbContactItem\n} from \"../chunks/chunk.C37QKVKR.js\";\nimport {\n JbPhoneIcon\n} from \"../chunks/chunk.XVJ4WHML.js\";\nimport {\n JbContactGrid\n} from \"../chunks/chunk.PUAXHAH4.js\";\nimport {\n JbContactGroup\n} from \"../chunks/chunk.2I4QDVY4.js\";\nimport {\n JbCheckbox\n} from \"../chunks/chunk.KTE6IORC.js\";\nimport {\n JbCollapsible\n} from \"../chunks/chunk.LKQXZBJF.js\";\nimport {\n JbColumnDisplay\n} from \"../chunks/chunk.KJMO6BEV.js\";\nimport {\n JbColumnGuide,\n JbColumnGuideContent\n} from \"../chunks/chunk.UWAXNSMX.js\";\nimport \"../chunks/chunk.F7BCU7QM.js\";\nimport {\n JbCampaignPageHero\n} from \"../chunks/chunk.6JPQVH7P.js\";\nimport \"../chunks/chunk.DNZEGT2V.js\";\nimport \"../chunks/chunk.2A7RK45S.js\";\nimport \"../chunks/chunk.WDM4XYVR.js\";\nimport {\n JbCampaignPageHeroFullscreen\n} from \"../chunks/chunk.3W7RZU2O.js\";\nimport {\n JbVideo\n} from \"../chunks/chunk.HQJGAF2F.js\";\nimport \"../chunks/chunk.UW2KYD6R.js\";\nimport \"../chunks/chunk.RYXMHMS2.js\";\nimport \"../chunks/chunk.LXB4MYP4.js\";\nimport {\n JbCampaignTeaser\n} from \"../chunks/chunk.4P35WRRG.js\";\nimport {\n JbCarousel\n} from \"../chunks/chunk.MRDRT5SN.js\";\nimport {\n JbMediaTeaser\n} from \"../chunks/chunk.H3VCC3ZM.js\";\nimport \"../chunks/chunk.VVD5NVY2.js\";\nimport {\n JbButtonPrimary\n} from \"../chunks/chunk.HREF7OKC.js\";\nimport \"../chunks/chunk.76WY2E6U.js\";\nimport {\n JbButtonBack\n} from \"../chunks/chunk.JSKV525N.js\";\nimport {\n JbArrowBackIcon\n} from \"../chunks/chunk.UMYVKK54.js\";\nimport {\n JbArticleWide\n} from \"../chunks/chunk.IS2557WK.js\";\nimport {\n JbAudioPlayer\n} from \"../chunks/chunk.YS3JLXIK.js\";\nimport \"../chunks/chunk.OPQL6DWW.js\";\nimport \"../chunks/chunk.KUFWAGYG.js\";\nimport {\n JbTimer\n} from \"../chunks/chunk.4VOTNDAP.js\";\nimport {\n JbPlayPauseButton\n} from \"../chunks/chunk.J2PLVEFN.js\";\nimport {\n JbListingItem\n} from \"../chunks/chunk.3JMUDKMC.js\";\nimport {\n JbArticlePageHero\n} from \"../chunks/chunk.LPIHYFV2.js\";\nimport {\n JbImage\n} from \"../chunks/chunk.WWWPAF42.js\";\nimport \"../chunks/chunk.UT6XSSZZ.js\";\nimport \"../chunks/chunk.YHV4AI6E.js\";\nimport \"../chunks/chunk.RJFNBB25.js\";\nimport {\n JbArticleRow\n} from \"../chunks/chunk.OSEA2LDS.js\";\nimport {\n JbSectionHeadline\n} from \"../chunks/chunk.BBC2VFSF.js\";\nimport {\n JbArticleToolBar\n} from \"../chunks/chunk.CGWOWGCQ.js\";\nimport {\n JbArticleShareBar\n} from \"../chunks/chunk.CJ3A6B7N.js\";\nimport {\n JbXIcon\n} from \"../chunks/chunk.ZPTK75F2.js\";\nimport {\n JbLinkedinIcon\n} from \"../chunks/chunk.265HHFX5.js\";\nimport {\n JbFacebookIcon\n} from \"../chunks/chunk.FNSNIWPZ.js\";\nimport {\n JbAlert\n} from \"../chunks/chunk.LJT6WRAW.js\";\nimport {\n JbLogo\n} from \"../chunks/chunk.6ZBEXHUN.js\";\nimport {\n JbCloseIcon\n} from \"../chunks/chunk.5SGCPDSP.js\";\nimport \"../chunks/chunk.Z6P446BB.js\";\nimport {\n JbButtonPanel\n} from \"../chunks/chunk.3HJXLVF4.js\";\nimport {\n JbButton\n} from \"../chunks/chunk.BRZYRWW4.js\";\nimport {\n JbVideoIcon\n} from \"../chunks/chunk.7NUVYMIM.js\";\nimport \"../chunks/chunk.BPDOBKMA.js\";\nimport {\n JbButtonSecondary\n} from \"../chunks/chunk.RSUHM5A4.js\";\nimport {\n JbArrowNavigation\n} from \"../chunks/chunk.ILIDJXOF.js\";\nimport {\n JbArrowIcon\n} from \"../chunks/chunk.JZBUGZSK.js\";\nimport {\n JbArticleBackToTop\n} from \"../chunks/chunk.X54LEMBT.js\";\nimport {\n JbButtonTertiary\n} from \"../chunks/chunk.NLEHAJ2S.js\";\nimport {\n JbArticleCard\n} from \"../chunks/chunk.SLNKXAAV.js\";\nimport {\n JbTeaserHeader\n} from \"../chunks/chunk.CYCXHUS4.js\";\nimport {\n JbThumbnail\n} from \"../chunks/chunk.T2AKSR4X.js\";\nimport {\n JbTag\n} from \"../chunks/chunk.INSN44VR.js\";\nimport {\n JbTeaserMeta\n} from \"../chunks/chunk.IWZTO2XW.js\";\nimport {\n JbTime\n} from \"../chunks/chunk.FJS43VEZ.js\";\nimport {\n JbCalendarIcon\n} from \"../chunks/chunk.OE6UAQWN.js\";\nimport {\n JbGlobeIcon\n} from \"../chunks/chunk.XIL76UR7.js\";\nimport {\n JbClockIcon\n} from \"../chunks/chunk.TOO2RKNZ.js\";\nimport {\n JbDate\n} from \"../chunks/chunk.G64OMJ2S.js\";\nimport {\n JbPicture\n} from \"../chunks/chunk.6YCBDJX2.js\";\nimport \"../chunks/chunk.ZXFS3F4J.js\";\nimport {\n JbAccordion\n} from \"../chunks/chunk.WT6EN2KH.js\";\nimport {\n JbAccordionItem\n} from \"../chunks/chunk.GVDQY5LD.js\";\nimport \"../chunks/chunk.YDQDJZUC.js\";\nimport \"../chunks/chunk.UTVDNTSP.js\";\nimport {\n JbWealthReport\n} from \"../chunks/chunk.4UPGNDI3.js\";\nimport {\n JbWealthReportGlobe\n} from \"../chunks/chunk.RQ3Q7COP.js\";\nimport {\n JbWealthReportList\n} from \"../chunks/chunk.LC7UDLJM.js\";\nimport {\n JbWealthReportStats\n} from \"../chunks/chunk.TP5VMHXU.js\";\nimport {\n JbClearIcon\n} from \"../chunks/chunk.D4KVZEB7.js\";\nimport {\n JbChevronIcon\n} from \"../chunks/chunk.N5JSYD2S.js\";\nimport \"../chunks/chunk.637M2SN5.js\";\nimport \"../chunks/chunk.Q25FCJRM.js\";\nimport {\n JbContentSpacing\n} from \"../chunks/chunk.G3SZKTQJ.js\";\nimport \"../chunks/chunk.YTEMICXC.js\";\nimport \"../chunks/chunk.LTAMHVKK.js\";\nimport \"../chunks/chunk.OZEBCGEZ.js\";\nimport \"../chunks/chunk.TOSSI7AO.js\";\nimport \"../chunks/chunk.6DHNIVN5.js\";\nimport \"../chunks/chunk.ABOYTYJO.js\";\nimport {\n JbInternalIcon\n} from \"../chunks/chunk.7ZO5ST7S.js\";\nimport {\n JbInPageIcon\n} from \"../chunks/chunk.EELGOWGJ.js\";\nimport {\n JbDownloadIcon\n} from \"../chunks/chunk.WEV4VAJB.js\";\nimport {\n JbExternalIcon\n} from \"../chunks/chunk.NQ4JNTZU.js\";\nimport {\n JbMailIcon\n} from \"../chunks/chunk.KR4IFKAA.js\";\nimport \"../chunks/chunk.QAGUCU4C.js\";\nimport \"../chunks/chunk.A4SFXC3I.js\";\nimport \"../chunks/chunk.KZGIJPE3.js\";\nimport \"../chunks/chunk.VRR2P3PQ.js\";\nimport \"../chunks/chunk.7PRSKJZQ.js\";\nimport \"../chunks/chunk.7ANACPIR.js\";\nimport \"../chunks/chunk.WXNWU2SV.js\";\nimport \"../chunks/chunk.FCKNEYTX.js\";\nimport \"../chunks/chunk.BBN2ZB42.js\";\nimport \"../chunks/chunk.FAJKIEWS.js\";\nimport \"../chunks/chunk.I4IFG4JG.js\";\nexport {\n JBMomentPageHero,\n JbAccordion,\n JbAccordionItem,\n JbAlert,\n JbArrowBackIcon,\n JbArrowForwardIcon,\n JbArrowIcon,\n JbArrowNavigation,\n JbArticleBackToTop,\n JbArticleCard,\n JbArticlePageHero,\n JbArticleRow,\n JbArticleShareBar,\n JbArticleToolBar,\n JbArticleWide,\n JbAudioPlayer,\n JbBurgerIcon,\n JbButton,\n JbButtonBack,\n JbButtonPanel,\n JbButtonPrimary,\n JbButtonSecondary,\n JbButtonTertiary,\n JbCalendarIcon,\n JbCampaignPageHero,\n JbCampaignPageHeroFullscreen,\n JbCampaignTeaser,\n JbCarousel,\n JbCheckbox,\n JbChevronIcon,\n JbClearIcon,\n JbClockIcon,\n JbCloseIcon,\n JbCollapsible,\n JbColumnDisplay,\n JbColumnGuide,\n JbColumnGuideContent,\n JbContactGrid,\n JbContactGroup,\n JbContactItem,\n JbContactOverlay,\n JbContactTeaser,\n JbContactTeaserLegacy,\n JbContentSpacing,\n JbCookieConsent,\n JbCookieSettings,\n JbCtaSmall,\n JbDate,\n JbDatePicker,\n JbDownloadIcon,\n JbDropdown,\n JbEServiceIcon,\n JbEServiceOverlay,\n JbExternalIcon,\n JbFacebookIcon,\n JbFacts,\n JbFirstLevelTeaser,\n JbFirstLevelTeaserItem,\n JbFooter,\n JbForm,\n JbFullscreenIcon,\n JbGallery,\n JbGalleryFullscreen,\n JbGlobeIcon,\n JbHeadlineWithText,\n JbHighlightTextItem,\n JbHomePageHero,\n JbHomePageHeroLegacy,\n JbImage,\n JbImagePageTeaserItem,\n JbInPageIcon,\n JbInTextTeaser,\n JbInfoBlock,\n JbInfoBox,\n JbInfoPageHero,\n JbInstagramIcon,\n JbInteractiveAnimation,\n JbInternalIcon,\n JbKeyFigures,\n JbLanguageAlert,\n JbLanguageIcon,\n JbLanguageItem,\n JbLazyLoadingUploads,\n JbLinkedinIcon,\n JbListing,\n JbListingGrid,\n JbListingItem,\n JbLocationOverview,\n JbLocationTeaser,\n JbLogo,\n JbMailIcon,\n JbMarketDisplay,\n JbMediaOverlay,\n JbMediaTeaser,\n JbMenu,\n JbMenuItem,\n JbMomentTeaserItem,\n JbMultiColumn,\n JbMultiForm,\n JbNavigation,\n JbNavigationTags,\n JbNewsOverlay,\n JbNewsPageHero,\n JbNewsletterRegistrationForm,\n JbOverlay,\n JbPageHero,\n JbPhoneIcon,\n JbPicture,\n JbPlayPauseButton,\n JbPodcastIcon,\n JbPodcastPlayer,\n JbPublicationDownload,\n JbPublicationDownloadOverlay,\n JbQuote,\n JbRadio,\n JbReadIcon,\n JbRegionIndicator,\n JbRegionIndicatorItem,\n JbRegionSelectOverlay,\n JbRichtext,\n JbSearchIcon,\n JbSearchOverlay,\n JbSearchResult,\n JbSearchResultItem,\n JbSearchResultList,\n JbSecondaryMenuList,\n JbSectionHeadline,\n JbSectionSitemap,\n JbSelect,\n JbServiceNavigation,\n JbServiceNavigationItem,\n JbSimplePageHero,\n JbStockChart,\n JbTag,\n JbTeaserBlock,\n JbTeaserHeader,\n JbTeaserMeta,\n JbTextArea,\n JbTextField,\n JbTextTeaser,\n JbTextWithImage,\n JbThumbnail,\n JbTime,\n JbTimeline,\n JbTimer,\n JbUpload,\n JbVideo,\n JbVideoIcon,\n JbWealthReport,\n JbWealthReportGlobe,\n JbWealthReportList,\n JbWealthReportStats,\n JbXIcon,\n JbYoutubeIcon\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-search-result/jb-search-result.scss?inline\nvar jb_search_result_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n margin-inline: auto;\n padding-block: 60px;\n width: 100%;\n}\n@media (min-width: 600px) {\n :host {\n width: 83.3%;\n }\n}\n@media (min-width: 960px) {\n :host {\n width: 100%;\n }\n}\n@media (min-width: 1281px) {\n :host {\n padding-block: 68px;\n }\n}\n\nsection {\n position: relative;\n}\nsection > div {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n}\n@media (min-width: 600px) and (max-width: 959px) {\n section > div {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 1437px) {\n section > div {\n max-width: var(--row-max-width, 1436px);\n }\n section > div:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1436px) {\n section > div {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}\n@media (min-width: 600px) {\n section > div {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n }\n}\n@media (min-width: 960px) {\n section > div {\n justify-content: center;\n }\n}\nsection > div jb-search-input {\n --stroke-color: #d0d2dd !important;\n --fill-color: #141e55;\n display: block;\n margin-top: 1px;\n position: relative;\n width: 100%;\n}\nsection > div jb-search-input::after {\n background-color: #d0d2dd !important;\n bottom: 0;\n content: \"\";\n display: inline-block;\n height: 1px;\n position: absolute;\n width: 100%;\n}\n@media (min-width: 600px) {\n section > div jb-search-input::after {\n left: 22px;\n width: calc(100% - 44px);\n }\n}\n@media (min-width: 960px) {\n section > div jb-search-input {\n padding-inline: 22px;\n width: 50%;\n }\n}\nsection > div div.navigation-filter-wrapper {\n margin-top: 22px;\n width: 100%;\n}\n@media (min-width: 600px) {\n section > div div.navigation-filter-wrapper {\n margin: 14px auto 0;\n width: 65%;\n }\n}\n@media (min-width: 960px) {\n section > div div.navigation-filter-wrapper {\n margin-top: 36px;\n }\n}\nsection > div div.navigation-filter-wrapper div.search-tags jb-navigation-tags {\n --row-width-mode: \"full\";\n --stroke-color: #d0d2dd;\n}\nsection > div div.search-result-list-wrapper {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 0;\n width: 100%;\n}\n@media (min-width: 600px) {\n section > div div.search-result-list-wrapper {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 20px;\n width: 100%;\n }\n}\n@media (min-width: 960px) {\n section > div div.search-result-list-wrapper {\n box-sizing: border-box;\n flex-basis: 75%;\n max-width: 75%;\n padding: 0 20px;\n width: 75%;\n }\n}\n@media (min-width: 1281px) {\n section > div div.search-result-list-wrapper {\n box-sizing: border-box;\n flex-basis: 66.6666666667%;\n max-width: 66.6666666667%;\n padding: 0 20px;\n width: 66.6666666667%;\n }\n}\n@media (min-width: 1437px) {\n section > div div.search-result-list-wrapper {\n box-sizing: border-box;\n flex-basis: 58.3333333333%;\n max-width: 58.3333333333%;\n padding: 0 20px;\n width: 58.3333333333%;\n }\n}\nsection > div div.search-result-list-wrapper jb-search-result-list {\n margin-top: 39px;\n}\n@media (min-width: 960px) {\n section > div div.search-result-list-wrapper jb-search-result-list {\n margin-top: 48px;\n }\n}`;\n\n// src/components/jb-search-result/jb-search-result.ts\nvar JbSearchResult = class extends h {\n firstUpdated() {\n if (this.searchTerm === \"\") return;\n this.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: {\n event: \"ce_search\",\n event_version: \"v2\",\n component_name: \"search-result\",\n search_results_term: this.searchTerm,\n search_results_count: this.resultCount,\n search_results_filter: this.searchResultFilter,\n search_action: \"search\"\n },\n bubbles: true,\n composed: true\n })\n );\n }\n _trackFilter(evt) {\n this.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: {\n event: \"ce_search\",\n event_version: \"v2\",\n component_name: \"search-result\",\n search_results_term: this.searchTerm,\n search_results_count: this.resultCount,\n search_action: \"filter\",\n search_results_filter: evt.detail.tag\n },\n bubbles: true,\n composed: true\n })\n );\n window.location.href = evt.detail.url;\n }\n _trackLoadMore() {\n this.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: {\n event: \"ce_search\",\n event_version: \"v2\",\n component_name: \"search-result\",\n search_results_term: this.searchTerm,\n search_results_count: this.resultCount,\n search_results_filter: this.searchResultFilter,\n search_action: \"more\"\n },\n bubbles: true,\n composed: true\n })\n );\n }\n _trackResult(evt) {\n this.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: {\n event: \"ce_search\",\n event_version: \"v2\",\n component_name: \"search-result\",\n search_results_term: this.searchTerm,\n search_results_count: this.resultCount,\n search_results_filter: this.searchResultFilter,\n search_action: \"click-result\",\n search_results_position: evt.detail.index,\n search_results_type: evt.detail.category,\n search_results_click_url: evt.detail.link.href\n },\n bubbles: true,\n composed: true\n })\n );\n }\n render() {\n return ke`\n \n `;\n }\n};\nJbSearchResult.styles = r(jb_search_result_default);\n__decorateClass([\n n({ type: Array })\n], JbSearchResult.prototype, \"navigationTagItems\", 2);\n__decorateClass([\n n({ type: Number })\n], JbSearchResult.prototype, \"resultCount\", 2);\n__decorateClass([\n n({ type: Number })\n], JbSearchResult.prototype, \"resultsVisible\", 2);\n__decorateClass([\n n()\n], JbSearchResult.prototype, \"searchResultFilter\", 2);\n__decorateClass([\n n({ type: Object })\n], JbSearchResult.prototype, \"searchResultInput\", 2);\n__decorateClass([\n n({ type: Object })\n], JbSearchResult.prototype, \"searchResultList\", 2);\n__decorateClass([\n n()\n], JbSearchResult.prototype, \"searchTerm\", 2);\nJbSearchResult = __decorateClass([\n customElement(\"jb-search-result\")\n], JbSearchResult);\n\nexport {\n JbSearchResult\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-search-result-list/jb-search-result-list.scss?inline\nvar jb_search_result_list_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.count {\n font-family: var(--theme-font-regular-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-regular-weight, 400);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n position: relative;\n}\n\n.count {\n font-size: 16px;\n font-size: 1rem;\n line-height: 26px;\n line-height: 1.625rem;\n color: rgba(20, 30, 85, var(--theme-opacity-80, 0.8));\n}\n\n.button_wrapper {\n display: flex;\n justify-content: center;\n margin-top: 51px;\n}`;\n\n// src/components/jb-search-result-list/jb-search-result-list.ts\nvar JbSearchResultList = class extends h {\n constructor() {\n super(...arguments);\n this._isLoading = false;\n }\n _loadMore(event) {\n event.preventDefault();\n if (this._isLoading && this.loadMoreUrl) return;\n this.dispatchEvent(\n new CustomEvent(\"jb-search:loadmore\", {\n bubbles: true,\n composed: true\n })\n );\n this._isLoading = true;\n const newArticles = [];\n fetch(this.loadMoreUrl).then((response) => response.json()).then((data) => {\n data.resultSet?.forEach((element) => {\n const articleDate = new Date(element.changed);\n newArticles.push({\n breadcrumbItems: element.breadcrumbs_stringM?.map((breadcrumb) => ({\n text: breadcrumb,\n link: {\n href: \"#\"\n }\n })),\n category: String(element.factetType).toLocaleLowerCase(),\n date: {\n date: `${articleDate.getDate().toString().padStart(2, \"0\")}.${(articleDate.getMonth() + 1).toString().padStart(2, \"0\")}.${articleDate.getFullYear()}`\n },\n headline: element.title,\n previewText: element.teaser,\n link: {\n href: `${window.location.protocol}//${element.site}${element.url}`\n },\n languages: element.availableLanguages?.map((language) => ({\n text: language.twoLetterIsoCode,\n link: {\n data: {\n newsOverlay: {\n id: language.newsTranslationUid,\n url: language.newsApiUrl\n }\n }\n }\n }))\n });\n });\n if (data.nextUrl !== \"\") {\n this.loadMoreUrl = data.nextUrl;\n } else {\n this.buttonLabel = \"\";\n }\n this.searchResults.push(...newArticles);\n this.resultsVisible = this.searchResults.length;\n this._isLoading = false;\n });\n }\n render() {\n return ke`\n
\n ${this.resultCount > 0 ? ke`${this.resultsVisible} ${this.labelOf} ` : D} ${this.resultCount}\n ${this.labelResults}\n
\n
\n \n ${this.searchResults.map(\n (item, index) => ke`${item.previewText} `\n )}\n \n
\n ${this.buttonLabel && this.resultCount > 0 ? ke`\n
\n \n
\n ` : D}\n
`;\n }\n};\nJbSearchResultList.styles = r(jb_search_result_list_default);\n__decorateClass([\n n()\n], JbSearchResultList.prototype, \"buttonLabel\", 2);\n__decorateClass([\n n()\n], JbSearchResultList.prototype, \"labelOf\", 2);\n__decorateClass([\n n()\n], JbSearchResultList.prototype, \"labelResults\", 2);\n__decorateClass([\n n()\n], JbSearchResultList.prototype, \"loadMoreUrl\", 2);\n__decorateClass([\n n({ type: Number })\n], JbSearchResultList.prototype, \"resultCount\", 2);\n__decorateClass([\n n({ type: Number })\n], JbSearchResultList.prototype, \"resultsVisible\", 2);\n__decorateClass([\n n({ type: Array })\n], JbSearchResultList.prototype, \"searchResults\", 2);\n__decorateClass([\n r2()\n], JbSearchResultList.prototype, \"_isLoading\", 2);\nJbSearchResultList = __decorateClass([\n customElement(\"jb-search-result-list\")\n], JbSearchResultList);\n\nexport {\n JbSearchResultList\n};\n", "import {\n ae\n} from \"./chunk.Q25FCJRM.js\";\nimport {\n Linkable\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// node_modules/lit-html/directives/choose.js\nvar rr = (r2, o, t) => {\n for (const t2 of o) if (t2[0] === r2) return (0, t2[1])();\n return t?.();\n};\n\n// src/components/jb-search-result-item/jb-search-result-item.scss?inline\nvar jb_search_result_item_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\narticle {\n position: relative;\n}\narticle::before, article::after {\n bottom: 0;\n content: \"\";\n height: 1px;\n position: absolute;\n width: 100%;\n z-index: 101;\n}\narticle::before {\n background: rgba(20, 30, 85, 0.2);\n}\narticle::after {\n background: #141e55;\n transform: scaleX(0);\n transform-origin: left;\n transition: transform 0.8s ease-in-out;\n}\narticle:hover::after {\n transform: scaleX(1);\n transition-duration: 0.5s;\n}\n\n/* stylelint-disable */\n/* stylelint-enable */\n.category {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nh5, slot {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nslot {\n color: rgba(var(--rgb-primary, 20, 30, 85), var(--text-opacity, var(--theme-opacity-80, 0.8)));\n font-size: 1rem;\n line-height: 1.625rem;\n}\n\n.category {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\nh5 {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.313rem;\n line-height: 2.125rem;\n}\n@media (min-width: 1281px) {\n h5 {\n font-size: 1.5rem;\n line-height: 2.25rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\narticle {\n display: flex;\n flex-direction: column;\n -moz-osx-font-smoothing: grayscale;\n overflow: hidden;\n padding: 30px 0 0;\n transform: translateZ(0);\n}\n@media (min-width: 960px) {\n article {\n flex-direction: row;\n padding: 34px 0 0;\n }\n}\n\n.category {\n color: #a2a5bb;\n display: inline-block;\n margin-bottom: 16px;\n padding: 0;\n pointer-events: initial;\n position: relative;\n text-transform: uppercase;\n width: 140px;\n}\n@media (min-width: 960px) {\n .category {\n margin-bottom: 0;\n }\n}\n\na {\n display: inline-block;\n text-decoration: none;\n width: 100%;\n}\n\nh5 {\n font-size: 24px;\n font-size: 1.5rem;\n margin-bottom: 12px;\n}\n\nslot {\n -webkit-box-orient: vertical;\n display: block;\n -webkit-line-clamp: 4;\n margin-bottom: 20px;\n max-height: 104px;\n overflow: hidden;\n}\n@media (min-width: 960px) {\n slot {\n -webkit-line-clamp: 3;\n margin-bottom: 24px;\n max-height: 80px;\n }\n}\n\n.content-wrap {\n display: block;\n max-width: 100%;\n overflow-x: hidden;\n padding-left: 0;\n width: 100%;\n}\n\nul {\n display: inline-block;\n padding-left: 24px;\n}\n\n.news,\n.article,\n.page {\n padding-bottom: 30px;\n}\n@media (min-width: 960px) {\n .news,\n .article,\n .page {\n padding-bottom: 34px;\n }\n}\n.news breadcrumb-item,\n.article breadcrumb-item,\n.page breadcrumb-item {\n margin-bottom: 16px;\n}\n\n.page,\n.article {\n display: flex;\n flex-wrap: nowrap;\n position: relative;\n white-space: nowrap;\n}\n.page::before,\n.article::before {\n background: linear-gradient(to right, rgba(255, 255, 255, 0) 90%, white);\n content: \"\";\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n.page jb-date,\n.article jb-date {\n margin-right: 28px;\n padding-top: 2px;\n}\n.page jb-breadcrumbs,\n.article jb-breadcrumbs {\n flex-grow: 1;\n}\n\njb-language-item {\n padding: 0 15px;\n position: relative;\n}\njb-language-item:first-of-type {\n padding-left: 0;\n}\njb-language-item::after {\n background-color: rgb(var(--rgb-primary, 20, 30, 85));\n border-radius: 100%;\n content: \"\";\n height: 3px;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3px;\n}\njb-language-item:last-of-type::after {\n content: none;\n}\n\njb-date {\n display: inline-block;\n}\n\njb-breadcrumbs {\n display: block;\n margin-bottom: 0;\n}\n\njb-breadcrumbs-item {\n display: none;\n padding-left: 0;\n}\njb-breadcrumbs-item:not(:first-of-type) {\n --padding-left: 24px;\n}\njb-breadcrumbs-item:nth-last-child(2) {\n --dot-display: none;\n}\n@media (min-width: 600px) {\n jb-breadcrumbs-item {\n display: inline-block;\n }\n jb-breadcrumbs-item:nth-last-child(2) {\n --dot-display: block;\n }\n}\njb-breadcrumbs-item:nth-last-child(2), jb-breadcrumbs-item:nth-last-child(3) {\n display: inline-block;\n}`;\n\n// src/components/jb-search-result-item/jb-search-result-item.ts\nvar JbSearchResultItem = class extends Linkable(h) {\n _trackClick() {\n this.dispatchEvent(\n new CustomEvent(\"jb-search:result\", {\n detail: this,\n bubbles: true,\n composed: true\n })\n );\n }\n render() {\n return ke`\n ${this.category}
\n \n
\n ${ae(this.headline)} \n \n
\n \n \n ${rr(\n this.category,\n [\n [\n \"article\",\n () => ke`
`\n ],\n [\n \"news\",\n () => ke`
\n
\n
\n ${this.languages?.map(\n (language) => ke` `\n )}\n \n
`\n ],\n [\n \"page\",\n () => ke`
`\n ]\n ],\n () => ke`
Category: ${this.category} not found `\n )}\n
\n `;\n }\n};\nJbSearchResultItem.styles = r(jb_search_result_item_default);\n__decorateClass([\n n({ type: Array })\n], JbSearchResultItem.prototype, \"breadcrumbItems\", 2);\n__decorateClass([\n n()\n], JbSearchResultItem.prototype, \"category\", 2);\n__decorateClass([\n n({ type: Object })\n], JbSearchResultItem.prototype, \"date\", 2);\n__decorateClass([\n n()\n], JbSearchResultItem.prototype, \"headline\", 2);\n__decorateClass([\n n({ type: Number })\n], JbSearchResultItem.prototype, \"index\", 2);\n__decorateClass([\n n({ type: Array })\n], JbSearchResultItem.prototype, \"languages\", 2);\n__decorateClass([\n n({ type: Object })\n], JbSearchResultItem.prototype, \"link\", 2);\nJbSearchResultItem = __decorateClass([\n customElement(\"jb-search-result-item\")\n], JbSearchResultItem);\n\nexport {\n JbSearchResultItem\n};\n/*! Bundled license information:\n\nlit-html/directives/choose.js:\n (**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *)\n*/\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-quote/jb-quote.scss?inline\nvar jb_quote_default = i`@charset \"UTF-8\";\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\np, footer, .pullquote footer, .pullquote p {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.pullquote p {\n font-size: var(--theme-typo-h2-subtitle-mobile-fontsize, 1.625rem);\n line-height: var(--theme-typo-h2-subtitle-mobile-lineheight, 2.188rem);\n}\n@media (min-width: 1281px) {\n .pullquote p {\n font-size: var(--theme-typo-h2-subtitle-desktop-fontsize, 1.938rem);\n line-height: var(--theme-typo-h2-subtitle-desktop-lineheight, 2.625rem);\n }\n}\n\n.pullquote footer {\n font-size: var(--theme-typo-p-small-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-desktop-lineheight, 1.625rem);\n}\n\nfooter {\n color: rgba(var(--rgb-primary, 20, 30, 85), var(--text-opacity, var(--theme-opacity-80, 0.8)));\n font-size: 1rem;\n line-height: 1.625rem;\n}\n\np {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.625rem;\n line-height: 2.188rem;\n}\n@media (min-width: 1281px) {\n p {\n font-size: 1.938rem;\n line-height: 2.625rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\np {\n color: #141e55;\n margin-block-end: var(--spacing-s);\n}\np::before {\n content: \"\u201C\";\n}\np::after {\n content: \"\u201D\";\n}\n\n.pullquote {\n border-inline-start: 1px solid #b0aa7e;\n padding-block: var(--spacing-3xs);\n padding-inline-start: var(--spacing-m);\n}\n.pullquote p {\n font-style: italic;\n}\n.pullquote footer {\n color: rgba(20, 30, 85, var(--theme-opacity-80, 0.8));\n}`;\n\n// src/components/jb-quote/jb-quote.ts\nvar JbQuote = class extends Spaceable(h) {\n _getContentSpacingProperties() {\n return { grid: \"legacy\", colsMdUp: 8, type: \"text\" };\n }\n render() {\n return ke`\n \n ${this.quote}
\n \n \n `;\n }\n};\nJbQuote.styles = r(jb_quote_default);\n__decorateClass([\n n()\n], JbQuote.prototype, \"author\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbQuote.prototype, \"isPullQuote\", 2);\n__decorateClass([\n n()\n], JbQuote.prototype, \"quote\", 2);\nJbQuote = __decorateClass([\n customElement(\"jb-quote\")\n], JbQuote);\n\nexport {\n JbQuote\n};\n", "import {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n t\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-region-indicator/jb-region-indicator.scss?inline\nvar jb_region_indicator_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nul {\n -moz-osx-font-smoothing: grayscale;\n overflow: hidden;\n position: relative;\n transform: translateZ(0);\n align-items: center;\n cursor: pointer;\n display: var(--display, flex);\n font-size: 0;\n padding-inline-end: var(--spacing-sm);\n position: relative;\n z-index: 10;\n}\nul::before {\n animation-direction: reverse;\n background-color: rgba(var(--rgb-primary, 255, 255, 255), 0.2);\n bottom: 0;\n content: \"\";\n height: 30px;\n left: 0;\n position: absolute;\n transition: height 0.3s ease 0.2s;\n width: 1px;\n}\nul::after {\n background: rgba(var(--rgb-primary, 255, 255, 255), 0.2);\n bottom: 0;\n content: \"\";\n height: 1px;\n left: 0;\n position: absolute;\n right: 100%;\n transition: right 0.3s ease-in-out 0.2s;\n}\nul:hover::before {\n height: 0;\n}\nul:hover::after {\n right: 10%;\n}\nul::before {\n bottom: 0;\n content: \"\";\n display: none;\n height: var(--before-height, 33px);\n left: 0;\n position: absolute;\n width: 1px;\n}\n@media (min-width: 1281px) {\n ul::before {\n display: block;\n }\n}\nul::after {\n display: none;\n right: var(--after-right, 100%);\n top: 35px;\n}\n@media (min-width: 1281px) {\n ul::after {\n display: block;\n }\n}\nul:hover::after {\n right: 30px;\n}\n@supports (-webkit-appearance: none) {\n ul:hover::after {\n right: 13%;\n }\n}\n@media all and (-ms-high-contrast: none) {\n ul:hover::after {\n right: 13%;\n }\n}\n\n::slotted(jb-region-indicator-item:not(:last-of-type)) {\n --dot-display: block;\n --padding-right: 20px;\n}`;\n\n// src/components/jb-region-indicator/jb-region-indicator.ts\nvar JbRegionIndicator = class extends h {\n firstUpdated() {\n this.addEventListener(\"click\", (e) => {\n e.preventDefault();\n this.dispatchEvent(new CustomEvent(\"region-indicator:clicked\", { bubbles: true, composed: true }));\n });\n this.requestUpdate();\n }\n render() {\n return ke``;\n }\n};\nJbRegionIndicator.styles = r(jb_region_indicator_default);\nJbRegionIndicator = __decorateClass([\n t(\"jb-region-indicator\")\n], JbRegionIndicator);\n\nexport {\n JbRegionIndicator\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-region-indicator-item/jb-region-indicator-item.scss?inline\nvar jb_region_indicator_item_default = i`@charset \"UTF-8\";\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nspan {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nspan {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nli {\n align-items: flex-end;\n display: inline-flex;\n list-style: none;\n position: relative;\n}\nli::after {\n color: rgb(var(--rgb-primary, 255, 255, 255));\n content: \"\u00A0\u00B7\u00A0\";\n display: var(--dot-display, none);\n font-size: 1rem;\n font-weight: 700;\n line-height: 2.25rem;\n}\n\nspan {\n color: rgb(var(--rgb-primary, 255, 255, 255));\n display: inline-block;\n line-height: 2.25rem;\n text-decoration: none;\n text-transform: uppercase;\n}\nspan:not(.short) {\n display: none;\n}\n@media (min-width: 1281px) {\n span:not(.short) {\n display: inline;\n }\n span.short {\n display: none;\n }\n}\n\njb-globe-icon {\n align-self: center;\n block-size: var(--spacing-s);\n display: inline-block;\n inline-size: var(--spacing-s);\n margin-block-start: 1px;\n margin-inline: 0 var(--spacing-2xs);\n}\n@media (min-width: 1281px) {\n jb-globe-icon {\n margin-inline-start: var(--spacing-s);\n }\n}`;\n\n// src/components/jb-region-indicator-item/jb-region-indicator-item.ts\nvar JbRegionIndicatorItem = class extends h {\n constructor() {\n super(...arguments);\n this.hasGlobe = false;\n }\n render() {\n return ke`\n \n ${this.hasGlobe ? ke` ` : D}\n ${this.text} \n ${this.textFull} \n \n `;\n }\n};\nJbRegionIndicatorItem.styles = r(jb_region_indicator_item_default);\n__decorateClass([\n n({ type: Boolean })\n], JbRegionIndicatorItem.prototype, \"hasGlobe\", 2);\n__decorateClass([\n n()\n], JbRegionIndicatorItem.prototype, \"text\", 2);\n__decorateClass([\n n()\n], JbRegionIndicatorItem.prototype, \"textFull\", 2);\nJbRegionIndicatorItem = __decorateClass([\n customElement(\"jb-region-indicator-item\")\n], JbRegionIndicatorItem);\n\nexport {\n JbRegionIndicatorItem\n};\n", "import {\n i\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __commonJS\n} from \"./chunk.I4IFG4JG.js\";\n\n// node_modules/plyr/dist/plyr.min.js\nvar require_plyr_min = __commonJS({\n \"node_modules/plyr/dist/plyr.min.js\"(exports, module) {\n \"object\" == typeof navigator && function(e, t) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(\"Plyr\", t) : (e = \"undefined\" != typeof globalThis ? globalThis : e || self).Plyr = t();\n }(exports, function() {\n \"use strict\";\n function e(e2, t2, i3) {\n return (t2 = function(e3) {\n var t3 = function(e4, t4) {\n if (\"object\" != typeof e4 || null === e4) return e4;\n var i4 = e4[Symbol.toPrimitive];\n if (void 0 !== i4) {\n var s2 = i4.call(e4, t4 || \"default\");\n if (\"object\" != typeof s2) return s2;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t4 ? String : Number)(e4);\n }(e3, \"string\");\n return \"symbol\" == typeof t3 ? t3 : String(t3);\n }(t2)) in e2 ? Object.defineProperty(e2, t2, { value: i3, enumerable: true, configurable: true, writable: true }) : e2[t2] = i3, e2;\n }\n function t(e2, t2) {\n for (var i3 = 0; i3 < t2.length; i3++) {\n var s2 = t2[i3];\n s2.enumerable = s2.enumerable || false, s2.configurable = true, \"value\" in s2 && (s2.writable = true), Object.defineProperty(e2, s2.key, s2);\n }\n }\n function i2(e2, t2, i3) {\n return t2 in e2 ? Object.defineProperty(e2, t2, { value: i3, enumerable: true, configurable: true, writable: true }) : e2[t2] = i3, e2;\n }\n function s(e2, t2) {\n var i3 = Object.keys(e2);\n if (Object.getOwnPropertySymbols) {\n var s2 = Object.getOwnPropertySymbols(e2);\n t2 && (s2 = s2.filter(function(t3) {\n return Object.getOwnPropertyDescriptor(e2, t3).enumerable;\n })), i3.push.apply(i3, s2);\n }\n return i3;\n }\n function n(e2) {\n for (var t2 = 1; t2 < arguments.length; t2++) {\n var n2 = null != arguments[t2] ? arguments[t2] : {};\n t2 % 2 ? s(Object(n2), true).forEach(function(t3) {\n i2(e2, t3, n2[t3]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e2, Object.getOwnPropertyDescriptors(n2)) : s(Object(n2)).forEach(function(t3) {\n Object.defineProperty(e2, t3, Object.getOwnPropertyDescriptor(n2, t3));\n });\n }\n return e2;\n }\n var a = { addCSS: true, thumbWidth: 15, watch: true };\n var l = function(e2) {\n return null != e2 ? e2.constructor : null;\n }, r = function(e2, t2) {\n return !!(e2 && t2 && e2 instanceof t2);\n }, o = function(e2) {\n return null == e2;\n }, c = function(e2) {\n return l(e2) === Object;\n }, u = function(e2) {\n return l(e2) === String;\n }, h = function(e2) {\n return Array.isArray(e2);\n }, d = function(e2) {\n return r(e2, NodeList);\n }, m = { nullOrUndefined: o, object: c, number: function(e2) {\n return l(e2) === Number && !Number.isNaN(e2);\n }, string: u, boolean: function(e2) {\n return l(e2) === Boolean;\n }, function: function(e2) {\n return l(e2) === Function;\n }, array: h, nodeList: d, element: function(e2) {\n return r(e2, Element);\n }, event: function(e2) {\n return r(e2, Event);\n }, empty: function(e2) {\n return o(e2) || (u(e2) || h(e2) || d(e2)) && !e2.length || c(e2) && !Object.keys(e2).length;\n } };\n function p(e2, t2) {\n if (1 > t2) {\n var i3 = function(e3) {\n var t3 = \"\".concat(e3).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n return t3 ? Math.max(0, (t3[1] ? t3[1].length : 0) - (t3[2] ? +t3[2] : 0)) : 0;\n }(t2);\n return parseFloat(e2.toFixed(i3));\n }\n return Math.round(e2 / t2) * t2;\n }\n var g = function() {\n function e2(t2, i3) {\n (function(e3, t3) {\n if (!(e3 instanceof t3)) throw new TypeError(\"Cannot call a class as a function\");\n })(this, e2), m.element(t2) ? this.element = t2 : m.string(t2) && (this.element = document.querySelector(t2)), m.element(this.element) && m.empty(this.element.rangeTouch) && (this.config = n({}, a, {}, i3), this.init());\n }\n return function(e3, i3, s2) {\n i3 && t(e3.prototype, i3), s2 && t(e3, s2);\n }(e2, [{ key: \"init\", value: function() {\n e2.enabled && (this.config.addCSS && (this.element.style.userSelect = \"none\", this.element.style.webKitUserSelect = \"none\", this.element.style.touchAction = \"manipulation\"), this.listeners(true), this.element.rangeTouch = this);\n } }, { key: \"destroy\", value: function() {\n e2.enabled && (this.config.addCSS && (this.element.style.userSelect = \"\", this.element.style.webKitUserSelect = \"\", this.element.style.touchAction = \"\"), this.listeners(false), this.element.rangeTouch = null);\n } }, { key: \"listeners\", value: function(e3) {\n var t2 = this, i3 = e3 ? \"addEventListener\" : \"removeEventListener\";\n [\"touchstart\", \"touchmove\", \"touchend\"].forEach(function(e4) {\n t2.element[i3](e4, function(e5) {\n return t2.set(e5);\n }, false);\n });\n } }, { key: \"get\", value: function(t2) {\n if (!e2.enabled || !m.event(t2)) return null;\n var i3, s2 = t2.target, n2 = t2.changedTouches[0], a2 = parseFloat(s2.getAttribute(\"min\")) || 0, l2 = parseFloat(s2.getAttribute(\"max\")) || 100, r2 = parseFloat(s2.getAttribute(\"step\")) || 1, o2 = s2.getBoundingClientRect(), c2 = 100 / o2.width * (this.config.thumbWidth / 2) / 100;\n return 0 > (i3 = 100 / o2.width * (n2.clientX - o2.left)) ? i3 = 0 : 100 < i3 && (i3 = 100), 50 > i3 ? i3 -= (100 - 2 * i3) * c2 : 50 < i3 && (i3 += 2 * (i3 - 50) * c2), a2 + p(i3 / 100 * (l2 - a2), r2);\n } }, { key: \"set\", value: function(t2) {\n e2.enabled && m.event(t2) && !t2.target.disabled && (t2.preventDefault(), t2.target.value = this.get(t2), function(e3, t3) {\n if (e3 && t3) {\n var i3 = new Event(t3, { bubbles: true });\n e3.dispatchEvent(i3);\n }\n }(t2.target, \"touchend\" === t2.type ? \"change\" : \"input\"));\n } }], [{ key: \"setup\", value: function(t2) {\n var i3 = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, s2 = null;\n if (m.empty(t2) || m.string(t2) ? s2 = Array.from(document.querySelectorAll(m.string(t2) ? t2 : 'input[type=\"range\"]')) : m.element(t2) ? s2 = [t2] : m.nodeList(t2) ? s2 = Array.from(t2) : m.array(t2) && (s2 = t2.filter(m.element)), m.empty(s2)) return null;\n var l2 = n({}, a, {}, i3);\n if (m.string(t2) && l2.watch) {\n var r2 = new MutationObserver(function(i4) {\n Array.from(i4).forEach(function(i5) {\n Array.from(i5.addedNodes).forEach(function(i6) {\n m.element(i6) && function(e3, t3) {\n return function() {\n return Array.from(document.querySelectorAll(t3)).includes(this);\n }.call(e3, t3);\n }(i6, t2) && new e2(i6, l2);\n });\n });\n });\n r2.observe(document.body, { childList: true, subtree: true });\n }\n return s2.map(function(t3) {\n return new e2(t3, i3);\n });\n } }, { key: \"enabled\", get: function() {\n return \"ontouchstart\" in document.documentElement;\n } }]), e2;\n }();\n const f = (e2) => null != e2 ? e2.constructor : null, y = (e2, t2) => Boolean(e2 && t2 && e2 instanceof t2), b = (e2) => null == e2, v = (e2) => f(e2) === Object, w = (e2) => f(e2) === String, T = (e2) => \"function\" == typeof e2, k = (e2) => Array.isArray(e2), C = (e2) => y(e2, NodeList), A = (e2) => b(e2) || (w(e2) || k(e2) || C(e2)) && !e2.length || v(e2) && !Object.keys(e2).length;\n var S = { nullOrUndefined: b, object: v, number: (e2) => f(e2) === Number && !Number.isNaN(e2), string: w, boolean: (e2) => f(e2) === Boolean, function: T, array: k, weakMap: (e2) => y(e2, WeakMap), nodeList: C, element: (e2) => null !== e2 && \"object\" == typeof e2 && 1 === e2.nodeType && \"object\" == typeof e2.style && \"object\" == typeof e2.ownerDocument, textNode: (e2) => f(e2) === Text, event: (e2) => y(e2, Event), keyboardEvent: (e2) => y(e2, KeyboardEvent), cue: (e2) => y(e2, window.TextTrackCue) || y(e2, window.VTTCue), track: (e2) => y(e2, TextTrack) || !b(e2) && w(e2.kind), promise: (e2) => y(e2, Promise) && T(e2.then), url: (e2) => {\n if (y(e2, window.URL)) return true;\n if (!w(e2)) return false;\n let t2 = e2;\n e2.startsWith(\"http://\") && e2.startsWith(\"https://\") || (t2 = `http://${e2}`);\n try {\n return !A(new URL(t2).hostname);\n } catch (e3) {\n return false;\n }\n }, empty: A };\n const E = (() => {\n const e2 = document.createElement(\"span\"), t2 = { WebkitTransition: \"webkitTransitionEnd\", MozTransition: \"transitionend\", OTransition: \"oTransitionEnd otransitionend\", transition: \"transitionend\" }, i3 = Object.keys(t2).find((t3) => void 0 !== e2.style[t3]);\n return !!S.string(i3) && t2[i3];\n })();\n function P(e2, t2) {\n setTimeout(() => {\n try {\n e2.hidden = true, e2.offsetHeight, e2.hidden = false;\n } catch (e3) {\n }\n }, t2);\n }\n var M = { isIE: Boolean(window.document.documentMode), isEdge: /Edge/g.test(navigator.userAgent), isWebKit: \"WebkitAppearance\" in document.documentElement.style && !/Edge/g.test(navigator.userAgent), isIPhone: /iPhone|iPod/gi.test(navigator.userAgent) && navigator.maxTouchPoints > 1, isIPadOS: \"MacIntel\" === navigator.platform && navigator.maxTouchPoints > 1, isIos: /iPad|iPhone|iPod/gi.test(navigator.userAgent) && navigator.maxTouchPoints > 1 };\n function N(e2, t2) {\n return t2.split(\".\").reduce((e3, t3) => e3 && e3[t3], e2);\n }\n function x(e2 = {}, ...t2) {\n if (!t2.length) return e2;\n const i3 = t2.shift();\n return S.object(i3) ? (Object.keys(i3).forEach((t3) => {\n S.object(i3[t3]) ? (Object.keys(e2).includes(t3) || Object.assign(e2, { [t3]: {} }), x(e2[t3], i3[t3])) : Object.assign(e2, { [t3]: i3[t3] });\n }), x(e2, ...t2)) : e2;\n }\n function L(e2, t2) {\n const i3 = e2.length ? e2 : [e2];\n Array.from(i3).reverse().forEach((e3, i4) => {\n const s2 = i4 > 0 ? t2.cloneNode(true) : t2, n2 = e3.parentNode, a2 = e3.nextSibling;\n s2.appendChild(e3), a2 ? n2.insertBefore(s2, a2) : n2.appendChild(s2);\n });\n }\n function I(e2, t2) {\n S.element(e2) && !S.empty(t2) && Object.entries(t2).filter(([, e3]) => !S.nullOrUndefined(e3)).forEach(([t3, i3]) => e2.setAttribute(t3, i3));\n }\n function $(e2, t2, i3) {\n const s2 = document.createElement(e2);\n return S.object(t2) && I(s2, t2), S.string(i3) && (s2.innerText = i3), s2;\n }\n function _(e2, t2, i3, s2) {\n S.element(t2) && t2.appendChild($(e2, i3, s2));\n }\n function O(e2) {\n S.nodeList(e2) || S.array(e2) ? Array.from(e2).forEach(O) : S.element(e2) && S.element(e2.parentNode) && e2.parentNode.removeChild(e2);\n }\n function j(e2) {\n if (!S.element(e2)) return;\n let { length: t2 } = e2.childNodes;\n for (; t2 > 0; ) e2.removeChild(e2.lastChild), t2 -= 1;\n }\n function q(e2, t2) {\n return S.element(t2) && S.element(t2.parentNode) && S.element(e2) ? (t2.parentNode.replaceChild(e2, t2), e2) : null;\n }\n function D(e2, t2) {\n if (!S.string(e2) || S.empty(e2)) return {};\n const i3 = {}, s2 = x({}, t2);\n return e2.split(\",\").forEach((e3) => {\n const t3 = e3.trim(), n2 = t3.replace(\".\", \"\"), a2 = t3.replace(/[[\\]]/g, \"\").split(\"=\"), [l2] = a2, r2 = a2.length > 1 ? a2[1].replace(/[\"']/g, \"\") : \"\";\n switch (t3.charAt(0)) {\n case \".\":\n S.string(s2.class) ? i3.class = `${s2.class} ${n2}` : i3.class = n2;\n break;\n case \"#\":\n i3.id = t3.replace(\"#\", \"\");\n break;\n case \"[\":\n i3[l2] = r2;\n }\n }), x(s2, i3);\n }\n function H(e2, t2) {\n if (!S.element(e2)) return;\n let i3 = t2;\n S.boolean(i3) || (i3 = !e2.hidden), e2.hidden = i3;\n }\n function R(e2, t2, i3) {\n if (S.nodeList(e2)) return Array.from(e2).map((e3) => R(e3, t2, i3));\n if (S.element(e2)) {\n let s2 = \"toggle\";\n return void 0 !== i3 && (s2 = i3 ? \"add\" : \"remove\"), e2.classList[s2](t2), e2.classList.contains(t2);\n }\n return false;\n }\n function F(e2, t2) {\n return S.element(e2) && e2.classList.contains(t2);\n }\n function V(e2, t2) {\n const { prototype: i3 } = Element;\n return (i3.matches || i3.webkitMatchesSelector || i3.mozMatchesSelector || i3.msMatchesSelector || function() {\n return Array.from(document.querySelectorAll(t2)).includes(this);\n }).call(e2, t2);\n }\n function U(e2) {\n return this.elements.container.querySelectorAll(e2);\n }\n function B(e2) {\n return this.elements.container.querySelector(e2);\n }\n function W(e2 = null, t2 = false) {\n S.element(e2) && e2.focus({ preventScroll: true, focusVisible: t2 });\n }\n const z = { \"audio/ogg\": \"vorbis\", \"audio/wav\": \"1\", \"video/webm\": \"vp8, vorbis\", \"video/mp4\": \"avc1.42E01E, mp4a.40.2\", \"video/ogg\": \"theora\" }, K = { audio: \"canPlayType\" in document.createElement(\"audio\"), video: \"canPlayType\" in document.createElement(\"video\"), check(e2, t2) {\n const i3 = K[e2] || \"html5\" !== t2;\n return { api: i3, ui: i3 && K.rangeInput };\n }, pip: !(M.isIPhone || !S.function($(\"video\").webkitSetPresentationMode) && (!document.pictureInPictureEnabled || $(\"video\").disablePictureInPicture)), airplay: S.function(window.WebKitPlaybackTargetAvailabilityEvent), playsinline: \"playsInline\" in document.createElement(\"video\"), mime(e2) {\n if (S.empty(e2)) return false;\n const [t2] = e2.split(\"/\");\n let i3 = e2;\n if (!this.isHTML5 || t2 !== this.type) return false;\n Object.keys(z).includes(i3) && (i3 += `; codecs=\"${z[e2]}\"`);\n try {\n return Boolean(i3 && this.media.canPlayType(i3).replace(/no/, \"\"));\n } catch (e3) {\n return false;\n }\n }, textTracks: \"textTracks\" in document.createElement(\"video\"), rangeInput: (() => {\n const e2 = document.createElement(\"input\");\n return e2.type = \"range\", \"range\" === e2.type;\n })(), touch: \"ontouchstart\" in document.documentElement, transitions: false !== E, reducedMotion: \"matchMedia\" in window && window.matchMedia(\"(prefers-reduced-motion)\").matches }, Y = (() => {\n let e2 = false;\n try {\n const t2 = Object.defineProperty({}, \"passive\", { get: () => (e2 = true, null) });\n window.addEventListener(\"test\", null, t2), window.removeEventListener(\"test\", null, t2);\n } catch (e3) {\n }\n return e2;\n })();\n function Q(e2, t2, i3, s2 = false, n2 = true, a2 = false) {\n if (!e2 || !(\"addEventListener\" in e2) || S.empty(t2) || !S.function(i3)) return;\n const l2 = t2.split(\" \");\n let r2 = a2;\n Y && (r2 = { passive: n2, capture: a2 }), l2.forEach((t3) => {\n this && this.eventListeners && s2 && this.eventListeners.push({ element: e2, type: t3, callback: i3, options: r2 }), e2[s2 ? \"addEventListener\" : \"removeEventListener\"](t3, i3, r2);\n });\n }\n function X(e2, t2 = \"\", i3, s2 = true, n2 = false) {\n Q.call(this, e2, t2, i3, true, s2, n2);\n }\n function J(e2, t2 = \"\", i3, s2 = true, n2 = false) {\n Q.call(this, e2, t2, i3, false, s2, n2);\n }\n function G(e2, t2 = \"\", i3, s2 = true, n2 = false) {\n const a2 = (...l2) => {\n J(e2, t2, a2, s2, n2), i3.apply(this, l2);\n };\n Q.call(this, e2, t2, a2, true, s2, n2);\n }\n function Z(e2, t2 = \"\", i3 = false, s2 = {}) {\n if (!S.element(e2) || S.empty(t2)) return;\n const n2 = new CustomEvent(t2, { bubbles: i3, detail: { ...s2, plyr: this } });\n e2.dispatchEvent(n2);\n }\n function ee() {\n this && this.eventListeners && (this.eventListeners.forEach((e2) => {\n const { element: t2, type: i3, callback: s2, options: n2 } = e2;\n t2.removeEventListener(i3, s2, n2);\n }), this.eventListeners = []);\n }\n function te() {\n return new Promise((e2) => this.ready ? setTimeout(e2, 0) : X.call(this, this.elements.container, \"ready\", e2)).then(() => {\n });\n }\n function ie(e2) {\n S.promise(e2) && e2.then(null, () => {\n });\n }\n function se(e2) {\n return S.array(e2) ? e2.filter((t2, i3) => e2.indexOf(t2) === i3) : e2;\n }\n function ne(e2, t2) {\n return S.array(e2) && e2.length ? e2.reduce((e3, i3) => Math.abs(i3 - t2) < Math.abs(e3 - t2) ? i3 : e3) : null;\n }\n function ae(e2) {\n return !(!window || !window.CSS) && window.CSS.supports(e2);\n }\n const le = [[1, 1], [4, 3], [3, 4], [5, 4], [4, 5], [3, 2], [2, 3], [16, 10], [10, 16], [16, 9], [9, 16], [21, 9], [9, 21], [32, 9], [9, 32]].reduce((e2, [t2, i3]) => ({ ...e2, [t2 / i3]: [t2, i3] }), {});\n function re(e2) {\n if (!(S.array(e2) || S.string(e2) && e2.includes(\":\"))) return false;\n return (S.array(e2) ? e2 : e2.split(\":\")).map(Number).every(S.number);\n }\n function oe(e2) {\n if (!S.array(e2) || !e2.every(S.number)) return null;\n const [t2, i3] = e2, s2 = (e3, t3) => 0 === t3 ? e3 : s2(t3, e3 % t3), n2 = s2(t2, i3);\n return [t2 / n2, i3 / n2];\n }\n function ce(e2) {\n const t2 = (e3) => re(e3) ? e3.split(\":\").map(Number) : null;\n let i3 = t2(e2);\n if (null === i3 && (i3 = t2(this.config.ratio)), null === i3 && !S.empty(this.embed) && S.array(this.embed.ratio) && ({ ratio: i3 } = this.embed), null === i3 && this.isHTML5) {\n const { videoWidth: e3, videoHeight: t3 } = this.media;\n i3 = [e3, t3];\n }\n return oe(i3);\n }\n function ue(e2) {\n if (!this.isVideo) return {};\n const { wrapper: t2 } = this.elements, i3 = ce.call(this, e2);\n if (!S.array(i3)) return {};\n const [s2, n2] = oe(i3), a2 = 100 / s2 * n2;\n if (ae(`aspect-ratio: ${s2}/${n2}`) ? t2.style.aspectRatio = `${s2}/${n2}` : t2.style.paddingBottom = `${a2}%`, this.isVimeo && !this.config.vimeo.premium && this.supported.ui) {\n const e3 = 100 / this.media.offsetWidth * parseInt(window.getComputedStyle(this.media).paddingBottom, 10), i4 = (e3 - a2) / (e3 / 50);\n this.fullscreen.active ? t2.style.paddingBottom = null : this.media.style.transform = `translateY(-${i4}%)`;\n } else this.isHTML5 && t2.classList.add(this.config.classNames.videoFixedRatio);\n return { padding: a2, ratio: i3 };\n }\n function he(e2, t2, i3 = 0.05) {\n const s2 = e2 / t2, n2 = ne(Object.keys(le), s2);\n return Math.abs(n2 - s2) <= i3 ? le[n2] : [e2, t2];\n }\n const de = { getSources() {\n if (!this.isHTML5) return [];\n return Array.from(this.media.querySelectorAll(\"source\")).filter((e2) => {\n const t2 = e2.getAttribute(\"type\");\n return !!S.empty(t2) || K.mime.call(this, t2);\n });\n }, getQualityOptions() {\n return this.config.quality.forced ? this.config.quality.options : de.getSources.call(this).map((e2) => Number(e2.getAttribute(\"size\"))).filter(Boolean);\n }, setup() {\n if (!this.isHTML5) return;\n const e2 = this;\n e2.options.speed = e2.config.speed.options, S.empty(this.config.ratio) || ue.call(e2), Object.defineProperty(e2.media, \"quality\", { get() {\n const t2 = de.getSources.call(e2).find((t3) => t3.getAttribute(\"src\") === e2.source);\n return t2 && Number(t2.getAttribute(\"size\"));\n }, set(t2) {\n if (e2.quality !== t2) {\n if (e2.config.quality.forced && S.function(e2.config.quality.onChange)) e2.config.quality.onChange(t2);\n else {\n const i3 = de.getSources.call(e2).find((e3) => Number(e3.getAttribute(\"size\")) === t2);\n if (!i3) return;\n const { currentTime: s2, paused: n2, preload: a2, readyState: l2, playbackRate: r2 } = e2.media;\n e2.media.src = i3.getAttribute(\"src\"), (\"none\" !== a2 || l2) && (e2.once(\"loadedmetadata\", () => {\n e2.speed = r2, e2.currentTime = s2, n2 || ie(e2.play());\n }), e2.media.load());\n }\n Z.call(e2, e2.media, \"qualitychange\", false, { quality: t2 });\n }\n } });\n }, cancelRequests() {\n this.isHTML5 && (O(de.getSources.call(this)), this.media.setAttribute(\"src\", this.config.blankVideo), this.media.load(), this.debug.log(\"Cancelled network requests\"));\n } };\n function me(e2, ...t2) {\n return S.empty(e2) ? e2 : e2.toString().replace(/{(\\d+)}/g, (e3, i3) => t2[i3].toString());\n }\n const pe = (e2 = \"\", t2 = \"\", i3 = \"\") => e2.replace(new RegExp(t2.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, \"\\\\$1\"), \"g\"), i3.toString()), ge = (e2 = \"\") => e2.toString().replace(/\\w\\S*/g, (e3) => e3.charAt(0).toUpperCase() + e3.slice(1).toLowerCase());\n function fe(e2 = \"\") {\n let t2 = e2.toString();\n return t2 = function(e3 = \"\") {\n let t3 = e3.toString();\n return t3 = pe(t3, \"-\", \" \"), t3 = pe(t3, \"_\", \" \"), t3 = ge(t3), pe(t3, \" \", \"\");\n }(t2), t2.charAt(0).toLowerCase() + t2.slice(1);\n }\n function ye(e2) {\n const t2 = document.createElement(\"div\");\n return t2.appendChild(e2), t2.innerHTML;\n }\n const be = { pip: \"PIP\", airplay: \"AirPlay\", html5: \"HTML5\", vimeo: \"Vimeo\", youtube: \"YouTube\" }, ve = { get(e2 = \"\", t2 = {}) {\n if (S.empty(e2) || S.empty(t2)) return \"\";\n let i3 = N(t2.i18n, e2);\n if (S.empty(i3)) return Object.keys(be).includes(e2) ? be[e2] : \"\";\n const s2 = { \"{seektime}\": t2.seekTime, \"{title}\": t2.title };\n return Object.entries(s2).forEach(([e3, t3]) => {\n i3 = pe(i3, e3, t3);\n }), i3;\n } };\n class we {\n constructor(t2) {\n e(this, \"get\", (e2) => {\n if (!we.supported || !this.enabled) return null;\n const t3 = window.localStorage.getItem(this.key);\n if (S.empty(t3)) return null;\n const i3 = JSON.parse(t3);\n return S.string(e2) && e2.length ? i3[e2] : i3;\n }), e(this, \"set\", (e2) => {\n if (!we.supported || !this.enabled) return;\n if (!S.object(e2)) return;\n let t3 = this.get();\n S.empty(t3) && (t3 = {}), x(t3, e2);\n try {\n window.localStorage.setItem(this.key, JSON.stringify(t3));\n } catch (e3) {\n }\n }), this.enabled = t2.config.storage.enabled, this.key = t2.config.storage.key;\n }\n static get supported() {\n try {\n if (!(\"localStorage\" in window)) return false;\n const e2 = \"___test\";\n return window.localStorage.setItem(e2, e2), window.localStorage.removeItem(e2), true;\n } catch (e2) {\n return false;\n }\n }\n }\n function Te(e2, t2 = \"text\") {\n return new Promise((i3, s2) => {\n try {\n const s3 = new XMLHttpRequest();\n if (!(\"withCredentials\" in s3)) return;\n s3.addEventListener(\"load\", () => {\n if (\"text\" === t2) try {\n i3(JSON.parse(s3.responseText));\n } catch (e3) {\n i3(s3.responseText);\n }\n else i3(s3.response);\n }), s3.addEventListener(\"error\", () => {\n throw new Error(s3.status);\n }), s3.open(\"GET\", e2, true), s3.responseType = t2, s3.send();\n } catch (e3) {\n s2(e3);\n }\n });\n }\n function ke(e2, t2) {\n if (!S.string(e2)) return;\n const i3 = \"cache\", s2 = S.string(t2);\n let n2 = false;\n const a2 = () => null !== document.getElementById(t2), l2 = (e3, t3) => {\n e3.innerHTML = t3, s2 && a2() || document.body.insertAdjacentElement(\"afterbegin\", e3);\n };\n if (!s2 || !a2()) {\n const a3 = we.supported, r2 = document.createElement(\"div\");\n if (r2.setAttribute(\"hidden\", \"\"), s2 && r2.setAttribute(\"id\", t2), a3) {\n const e3 = window.localStorage.getItem(`${i3}-${t2}`);\n if (n2 = null !== e3, n2) {\n const t3 = JSON.parse(e3);\n l2(r2, t3.content);\n }\n }\n Te(e2).then((e3) => {\n if (!S.empty(e3)) {\n if (a3) try {\n window.localStorage.setItem(`${i3}-${t2}`, JSON.stringify({ content: e3 }));\n } catch (e4) {\n }\n l2(r2, e3);\n }\n }).catch(() => {\n });\n }\n }\n const Ce = (e2) => Math.trunc(e2 / 60 / 60 % 60, 10), Ae = (e2) => Math.trunc(e2 / 60 % 60, 10), Se = (e2) => Math.trunc(e2 % 60, 10);\n function Ee(e2 = 0, t2 = false, i3 = false) {\n if (!S.number(e2)) return Ee(void 0, t2, i3);\n const s2 = (e3) => `0${e3}`.slice(-2);\n let n2 = Ce(e2);\n const a2 = Ae(e2), l2 = Se(e2);\n return n2 = t2 || n2 > 0 ? `${n2}:` : \"\", `${i3 && e2 > 0 ? \"-\" : \"\"}${n2}${s2(a2)}:${s2(l2)}`;\n }\n const Pe = { getIconUrl() {\n const e2 = new URL(this.config.iconUrl, window.location), t2 = window.location.host ? window.location.host : window.top.location.host, i3 = e2.host !== t2 || M.isIE && !window.svg4everybody;\n return { url: this.config.iconUrl, cors: i3 };\n }, findElements() {\n try {\n return this.elements.controls = B.call(this, this.config.selectors.controls.wrapper), this.elements.buttons = { play: U.call(this, this.config.selectors.buttons.play), pause: B.call(this, this.config.selectors.buttons.pause), restart: B.call(this, this.config.selectors.buttons.restart), rewind: B.call(this, this.config.selectors.buttons.rewind), fastForward: B.call(this, this.config.selectors.buttons.fastForward), mute: B.call(this, this.config.selectors.buttons.mute), pip: B.call(this, this.config.selectors.buttons.pip), airplay: B.call(this, this.config.selectors.buttons.airplay), settings: B.call(this, this.config.selectors.buttons.settings), captions: B.call(this, this.config.selectors.buttons.captions), fullscreen: B.call(this, this.config.selectors.buttons.fullscreen) }, this.elements.progress = B.call(this, this.config.selectors.progress), this.elements.inputs = { seek: B.call(this, this.config.selectors.inputs.seek), volume: B.call(this, this.config.selectors.inputs.volume) }, this.elements.display = { buffer: B.call(this, this.config.selectors.display.buffer), currentTime: B.call(this, this.config.selectors.display.currentTime), duration: B.call(this, this.config.selectors.display.duration) }, S.element(this.elements.progress) && (this.elements.display.seekTooltip = this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)), true;\n } catch (e2) {\n return this.debug.warn(\"It looks like there is a problem with your custom controls HTML\", e2), this.toggleNativeControls(true), false;\n }\n }, createIcon(e2, t2) {\n const i3 = \"http://www.w3.org/2000/svg\", s2 = Pe.getIconUrl.call(this), n2 = `${s2.cors ? \"\" : s2.url}#${this.config.iconPrefix}`, a2 = document.createElementNS(i3, \"svg\");\n I(a2, x(t2, { \"aria-hidden\": \"true\", focusable: \"false\" }));\n const l2 = document.createElementNS(i3, \"use\"), r2 = `${n2}-${e2}`;\n return \"href\" in l2 && l2.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", r2), l2.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", r2), a2.appendChild(l2), a2;\n }, createLabel(e2, t2 = {}) {\n const i3 = ve.get(e2, this.config);\n return $(\"span\", { ...t2, class: [t2.class, this.config.classNames.hidden].filter(Boolean).join(\" \") }, i3);\n }, createBadge(e2) {\n if (S.empty(e2)) return null;\n const t2 = $(\"span\", { class: this.config.classNames.menu.value });\n return t2.appendChild($(\"span\", { class: this.config.classNames.menu.badge }, e2)), t2;\n }, createButton(e2, t2) {\n const i3 = x({}, t2);\n let s2 = fe(e2);\n const n2 = { element: \"button\", toggle: false, label: null, icon: null, labelPressed: null, iconPressed: null };\n switch ([\"element\", \"icon\", \"label\"].forEach((e3) => {\n Object.keys(i3).includes(e3) && (n2[e3] = i3[e3], delete i3[e3]);\n }), \"button\" !== n2.element || Object.keys(i3).includes(\"type\") || (i3.type = \"button\"), Object.keys(i3).includes(\"class\") ? i3.class.split(\" \").some((e3) => e3 === this.config.classNames.control) || x(i3, { class: `${i3.class} ${this.config.classNames.control}` }) : i3.class = this.config.classNames.control, e2) {\n case \"play\":\n n2.toggle = true, n2.label = \"play\", n2.labelPressed = \"pause\", n2.icon = \"play\", n2.iconPressed = \"pause\";\n break;\n case \"mute\":\n n2.toggle = true, n2.label = \"mute\", n2.labelPressed = \"unmute\", n2.icon = \"volume\", n2.iconPressed = \"muted\";\n break;\n case \"captions\":\n n2.toggle = true, n2.label = \"enableCaptions\", n2.labelPressed = \"disableCaptions\", n2.icon = \"captions-off\", n2.iconPressed = \"captions-on\";\n break;\n case \"fullscreen\":\n n2.toggle = true, n2.label = \"enterFullscreen\", n2.labelPressed = \"exitFullscreen\", n2.icon = \"enter-fullscreen\", n2.iconPressed = \"exit-fullscreen\";\n break;\n case \"play-large\":\n i3.class += ` ${this.config.classNames.control}--overlaid`, s2 = \"play\", n2.label = \"play\", n2.icon = \"play\";\n break;\n default:\n S.empty(n2.label) && (n2.label = s2), S.empty(n2.icon) && (n2.icon = e2);\n }\n const a2 = $(n2.element);\n return n2.toggle ? (a2.appendChild(Pe.createIcon.call(this, n2.iconPressed, { class: \"icon--pressed\" })), a2.appendChild(Pe.createIcon.call(this, n2.icon, { class: \"icon--not-pressed\" })), a2.appendChild(Pe.createLabel.call(this, n2.labelPressed, { class: \"label--pressed\" })), a2.appendChild(Pe.createLabel.call(this, n2.label, { class: \"label--not-pressed\" }))) : (a2.appendChild(Pe.createIcon.call(this, n2.icon)), a2.appendChild(Pe.createLabel.call(this, n2.label))), x(i3, D(this.config.selectors.buttons[s2], i3)), I(a2, i3), \"play\" === s2 ? (S.array(this.elements.buttons[s2]) || (this.elements.buttons[s2] = []), this.elements.buttons[s2].push(a2)) : this.elements.buttons[s2] = a2, a2;\n }, createRange(e2, t2) {\n const i3 = $(\"input\", x(D(this.config.selectors.inputs[e2]), { type: \"range\", min: 0, max: 100, step: 0.01, value: 0, autocomplete: \"off\", role: \"slider\", \"aria-label\": ve.get(e2, this.config), \"aria-valuemin\": 0, \"aria-valuemax\": 100, \"aria-valuenow\": 0 }, t2));\n return this.elements.inputs[e2] = i3, Pe.updateRangeFill.call(this, i3), g.setup(i3), i3;\n }, createProgress(e2, t2) {\n const i3 = $(\"progress\", x(D(this.config.selectors.display[e2]), { min: 0, max: 100, value: 0, role: \"progressbar\", \"aria-hidden\": true }, t2));\n if (\"volume\" !== e2) {\n i3.appendChild($(\"span\", null, \"0\"));\n const t3 = { played: \"played\", buffer: \"buffered\" }[e2], s2 = t3 ? ve.get(t3, this.config) : \"\";\n i3.innerText = `% ${s2.toLowerCase()}`;\n }\n return this.elements.display[e2] = i3, i3;\n }, createTime(e2, t2) {\n const i3 = D(this.config.selectors.display[e2], t2), s2 = $(\"div\", x(i3, { class: `${i3.class ? i3.class : \"\"} ${this.config.classNames.display.time} `.trim(), \"aria-label\": ve.get(e2, this.config), role: \"timer\" }), \"00:00\");\n return this.elements.display[e2] = s2, s2;\n }, bindMenuItemShortcuts(e2, t2) {\n X.call(this, e2, \"keydown keyup\", (i3) => {\n if (![\" \", \"ArrowUp\", \"ArrowDown\", \"ArrowRight\"].includes(i3.key)) return;\n if (i3.preventDefault(), i3.stopPropagation(), \"keydown\" === i3.type) return;\n const s2 = V(e2, '[role=\"menuitemradio\"]');\n if (!s2 && [\" \", \"ArrowRight\"].includes(i3.key)) Pe.showMenuPanel.call(this, t2, true);\n else {\n let t3;\n \" \" !== i3.key && (\"ArrowDown\" === i3.key || s2 && \"ArrowRight\" === i3.key ? (t3 = e2.nextElementSibling, S.element(t3) || (t3 = e2.parentNode.firstElementChild)) : (t3 = e2.previousElementSibling, S.element(t3) || (t3 = e2.parentNode.lastElementChild)), W.call(this, t3, true));\n }\n }, false), X.call(this, e2, \"keyup\", (e3) => {\n \"Return\" === e3.key && Pe.focusFirstMenuItem.call(this, null, true);\n });\n }, createMenuItem({ value: e2, list: t2, type: i3, title: s2, badge: n2 = null, checked: a2 = false }) {\n const l2 = D(this.config.selectors.inputs[i3]), r2 = $(\"button\", x(l2, { type: \"button\", role: \"menuitemradio\", class: `${this.config.classNames.control} ${l2.class ? l2.class : \"\"}`.trim(), \"aria-checked\": a2, value: e2 })), o2 = $(\"span\");\n o2.innerHTML = s2, S.element(n2) && o2.appendChild(n2), r2.appendChild(o2), Object.defineProperty(r2, \"checked\", { enumerable: true, get: () => \"true\" === r2.getAttribute(\"aria-checked\"), set(e3) {\n e3 && Array.from(r2.parentNode.children).filter((e4) => V(e4, '[role=\"menuitemradio\"]')).forEach((e4) => e4.setAttribute(\"aria-checked\", \"false\")), r2.setAttribute(\"aria-checked\", e3 ? \"true\" : \"false\");\n } }), this.listeners.bind(r2, \"click keyup\", (t3) => {\n if (!S.keyboardEvent(t3) || \" \" === t3.key) {\n switch (t3.preventDefault(), t3.stopPropagation(), r2.checked = true, i3) {\n case \"language\":\n this.currentTrack = Number(e2);\n break;\n case \"quality\":\n this.quality = e2;\n break;\n case \"speed\":\n this.speed = parseFloat(e2);\n }\n Pe.showMenuPanel.call(this, \"home\", S.keyboardEvent(t3));\n }\n }, i3, false), Pe.bindMenuItemShortcuts.call(this, r2, i3), t2.appendChild(r2);\n }, formatTime(e2 = 0, t2 = false) {\n if (!S.number(e2)) return e2;\n return Ee(e2, Ce(this.duration) > 0, t2);\n }, updateTimeDisplay(e2 = null, t2 = 0, i3 = false) {\n S.element(e2) && S.number(t2) && (e2.innerText = Pe.formatTime(t2, i3));\n }, updateVolume() {\n this.supported.ui && (S.element(this.elements.inputs.volume) && Pe.setRange.call(this, this.elements.inputs.volume, this.muted ? 0 : this.volume), S.element(this.elements.buttons.mute) && (this.elements.buttons.mute.pressed = this.muted || 0 === this.volume));\n }, setRange(e2, t2 = 0) {\n S.element(e2) && (e2.value = t2, Pe.updateRangeFill.call(this, e2));\n }, updateProgress(e2) {\n if (!this.supported.ui || !S.event(e2)) return;\n let t2 = 0;\n const i3 = (e3, t3) => {\n const i4 = S.number(t3) ? t3 : 0, s3 = S.element(e3) ? e3 : this.elements.display.buffer;\n if (S.element(s3)) {\n s3.value = i4;\n const e4 = s3.getElementsByTagName(\"span\")[0];\n S.element(e4) && (e4.childNodes[0].nodeValue = i4);\n }\n };\n if (e2) switch (e2.type) {\n case \"timeupdate\":\n case \"seeking\":\n case \"seeked\":\n s2 = this.currentTime, n2 = this.duration, t2 = 0 === s2 || 0 === n2 || Number.isNaN(s2) || Number.isNaN(n2) ? 0 : (s2 / n2 * 100).toFixed(2), \"timeupdate\" === e2.type && Pe.setRange.call(this, this.elements.inputs.seek, t2);\n break;\n case \"playing\":\n case \"progress\":\n i3(this.elements.display.buffer, 100 * this.buffered);\n }\n var s2, n2;\n }, updateRangeFill(e2) {\n const t2 = S.event(e2) ? e2.target : e2;\n if (S.element(t2) && \"range\" === t2.getAttribute(\"type\")) {\n if (V(t2, this.config.selectors.inputs.seek)) {\n t2.setAttribute(\"aria-valuenow\", this.currentTime);\n const e3 = Pe.formatTime(this.currentTime), i3 = Pe.formatTime(this.duration), s2 = ve.get(\"seekLabel\", this.config);\n t2.setAttribute(\"aria-valuetext\", s2.replace(\"{currentTime}\", e3).replace(\"{duration}\", i3));\n } else if (V(t2, this.config.selectors.inputs.volume)) {\n const e3 = 100 * t2.value;\n t2.setAttribute(\"aria-valuenow\", e3), t2.setAttribute(\"aria-valuetext\", `${e3.toFixed(1)}%`);\n } else t2.setAttribute(\"aria-valuenow\", t2.value);\n (M.isWebKit || M.isIPadOS) && t2.style.setProperty(\"--value\", t2.value / t2.max * 100 + \"%\");\n }\n }, updateSeekTooltip(e2) {\n var t2, i3;\n if (!this.config.tooltips.seek || !S.element(this.elements.inputs.seek) || !S.element(this.elements.display.seekTooltip) || 0 === this.duration) return;\n const s2 = this.elements.display.seekTooltip, n2 = `${this.config.classNames.tooltip}--visible`, a2 = (e3) => R(s2, n2, e3);\n if (this.touch) return void a2(false);\n let l2 = 0;\n const r2 = this.elements.progress.getBoundingClientRect();\n if (S.event(e2)) l2 = 100 / r2.width * (e2.pageX - r2.left);\n else {\n if (!F(s2, n2)) return;\n l2 = parseFloat(s2.style.left, 10);\n }\n l2 < 0 ? l2 = 0 : l2 > 100 && (l2 = 100);\n const o2 = this.duration / 100 * l2;\n s2.innerText = Pe.formatTime(o2);\n const c2 = null === (t2 = this.config.markers) || void 0 === t2 || null === (i3 = t2.points) || void 0 === i3 ? void 0 : i3.find(({ time: e3 }) => e3 === Math.round(o2));\n c2 && s2.insertAdjacentHTML(\"afterbegin\", `${c2.label} `), s2.style.left = `${l2}%`, S.event(e2) && [\"mouseenter\", \"mouseleave\"].includes(e2.type) && a2(\"mouseenter\" === e2.type);\n }, timeUpdate(e2) {\n const t2 = !S.element(this.elements.display.duration) && this.config.invertTime;\n Pe.updateTimeDisplay.call(this, this.elements.display.currentTime, t2 ? this.duration - this.currentTime : this.currentTime, t2), e2 && \"timeupdate\" === e2.type && this.media.seeking || Pe.updateProgress.call(this, e2);\n }, durationUpdate() {\n if (!this.supported.ui || !this.config.invertTime && this.currentTime) return;\n if (this.duration >= 2 ** 32) return H(this.elements.display.currentTime, true), void H(this.elements.progress, true);\n S.element(this.elements.inputs.seek) && this.elements.inputs.seek.setAttribute(\"aria-valuemax\", this.duration);\n const e2 = S.element(this.elements.display.duration);\n !e2 && this.config.displayDuration && this.paused && Pe.updateTimeDisplay.call(this, this.elements.display.currentTime, this.duration), e2 && Pe.updateTimeDisplay.call(this, this.elements.display.duration, this.duration), this.config.markers.enabled && Pe.setMarkers.call(this), Pe.updateSeekTooltip.call(this);\n }, toggleMenuButton(e2, t2) {\n H(this.elements.settings.buttons[e2], !t2);\n }, updateSetting(e2, t2, i3) {\n const s2 = this.elements.settings.panels[e2];\n let n2 = null, a2 = t2;\n if (\"captions\" === e2) n2 = this.currentTrack;\n else {\n if (n2 = S.empty(i3) ? this[e2] : i3, S.empty(n2) && (n2 = this.config[e2].default), !S.empty(this.options[e2]) && !this.options[e2].includes(n2)) return void this.debug.warn(`Unsupported value of '${n2}' for ${e2}`);\n if (!this.config[e2].options.includes(n2)) return void this.debug.warn(`Disabled value of '${n2}' for ${e2}`);\n }\n if (S.element(a2) || (a2 = s2 && s2.querySelector('[role=\"menu\"]')), !S.element(a2)) return;\n this.elements.settings.buttons[e2].querySelector(`.${this.config.classNames.menu.value}`).innerHTML = Pe.getLabel.call(this, e2, n2);\n const l2 = a2 && a2.querySelector(`[value=\"${n2}\"]`);\n S.element(l2) && (l2.checked = true);\n }, getLabel(e2, t2) {\n switch (e2) {\n case \"speed\":\n return 1 === t2 ? ve.get(\"normal\", this.config) : `${t2}×`;\n case \"quality\":\n if (S.number(t2)) {\n const e3 = ve.get(`qualityLabel.${t2}`, this.config);\n return e3.length ? e3 : `${t2}p`;\n }\n return ge(t2);\n case \"captions\":\n return xe.getLabel.call(this);\n default:\n return null;\n }\n }, setQualityMenu(e2) {\n if (!S.element(this.elements.settings.panels.quality)) return;\n const t2 = \"quality\", i3 = this.elements.settings.panels.quality.querySelector('[role=\"menu\"]');\n S.array(e2) && (this.options.quality = se(e2).filter((e3) => this.config.quality.options.includes(e3)));\n const s2 = !S.empty(this.options.quality) && this.options.quality.length > 1;\n if (Pe.toggleMenuButton.call(this, t2, s2), j(i3), Pe.checkMenu.call(this), !s2) return;\n const n2 = (e3) => {\n const t3 = ve.get(`qualityBadge.${e3}`, this.config);\n return t3.length ? Pe.createBadge.call(this, t3) : null;\n };\n this.options.quality.sort((e3, t3) => {\n const i4 = this.config.quality.options;\n return i4.indexOf(e3) > i4.indexOf(t3) ? 1 : -1;\n }).forEach((e3) => {\n Pe.createMenuItem.call(this, { value: e3, list: i3, type: t2, title: Pe.getLabel.call(this, \"quality\", e3), badge: n2(e3) });\n }), Pe.updateSetting.call(this, t2, i3);\n }, setCaptionsMenu() {\n if (!S.element(this.elements.settings.panels.captions)) return;\n const e2 = \"captions\", t2 = this.elements.settings.panels.captions.querySelector('[role=\"menu\"]'), i3 = xe.getTracks.call(this), s2 = Boolean(i3.length);\n if (Pe.toggleMenuButton.call(this, e2, s2), j(t2), Pe.checkMenu.call(this), !s2) return;\n const n2 = i3.map((e3, i4) => ({ value: i4, checked: this.captions.toggled && this.currentTrack === i4, title: xe.getLabel.call(this, e3), badge: e3.language && Pe.createBadge.call(this, e3.language.toUpperCase()), list: t2, type: \"language\" }));\n n2.unshift({ value: -1, checked: !this.captions.toggled, title: ve.get(\"disabled\", this.config), list: t2, type: \"language\" }), n2.forEach(Pe.createMenuItem.bind(this)), Pe.updateSetting.call(this, e2, t2);\n }, setSpeedMenu() {\n if (!S.element(this.elements.settings.panels.speed)) return;\n const e2 = \"speed\", t2 = this.elements.settings.panels.speed.querySelector('[role=\"menu\"]');\n this.options.speed = this.options.speed.filter((e3) => e3 >= this.minimumSpeed && e3 <= this.maximumSpeed);\n const i3 = !S.empty(this.options.speed) && this.options.speed.length > 1;\n Pe.toggleMenuButton.call(this, e2, i3), j(t2), Pe.checkMenu.call(this), i3 && (this.options.speed.forEach((i4) => {\n Pe.createMenuItem.call(this, { value: i4, list: t2, type: e2, title: Pe.getLabel.call(this, \"speed\", i4) });\n }), Pe.updateSetting.call(this, e2, t2));\n }, checkMenu() {\n const { buttons: e2 } = this.elements.settings, t2 = !S.empty(e2) && Object.values(e2).some((e3) => !e3.hidden);\n H(this.elements.settings.menu, !t2);\n }, focusFirstMenuItem(e2, t2 = false) {\n if (this.elements.settings.popup.hidden) return;\n let i3 = e2;\n S.element(i3) || (i3 = Object.values(this.elements.settings.panels).find((e3) => !e3.hidden));\n const s2 = i3.querySelector('[role^=\"menuitem\"]');\n W.call(this, s2, t2);\n }, toggleMenu(e2) {\n const { popup: t2 } = this.elements.settings, i3 = this.elements.buttons.settings;\n if (!S.element(t2) || !S.element(i3)) return;\n const { hidden: s2 } = t2;\n let n2 = s2;\n if (S.boolean(e2)) n2 = e2;\n else if (S.keyboardEvent(e2) && \"Escape\" === e2.key) n2 = false;\n else if (S.event(e2)) {\n const s3 = S.function(e2.composedPath) ? e2.composedPath()[0] : e2.target, a2 = t2.contains(s3);\n if (a2 || !a2 && e2.target !== i3 && n2) return;\n }\n i3.setAttribute(\"aria-expanded\", n2), H(t2, !n2), R(this.elements.container, this.config.classNames.menu.open, n2), n2 && S.keyboardEvent(e2) ? Pe.focusFirstMenuItem.call(this, null, true) : n2 || s2 || W.call(this, i3, S.keyboardEvent(e2));\n }, getMenuSize(e2) {\n const t2 = e2.cloneNode(true);\n t2.style.position = \"absolute\", t2.style.opacity = 0, t2.removeAttribute(\"hidden\"), e2.parentNode.appendChild(t2);\n const i3 = t2.scrollWidth, s2 = t2.scrollHeight;\n return O(t2), { width: i3, height: s2 };\n }, showMenuPanel(e2 = \"\", t2 = false) {\n const i3 = this.elements.container.querySelector(`#plyr-settings-${this.id}-${e2}`);\n if (!S.element(i3)) return;\n const s2 = i3.parentNode, n2 = Array.from(s2.children).find((e3) => !e3.hidden);\n if (K.transitions && !K.reducedMotion) {\n s2.style.width = `${n2.scrollWidth}px`, s2.style.height = `${n2.scrollHeight}px`;\n const e3 = Pe.getMenuSize.call(this, i3), t3 = (e4) => {\n e4.target === s2 && [\"width\", \"height\"].includes(e4.propertyName) && (s2.style.width = \"\", s2.style.height = \"\", J.call(this, s2, E, t3));\n };\n X.call(this, s2, E, t3), s2.style.width = `${e3.width}px`, s2.style.height = `${e3.height}px`;\n }\n H(n2, true), H(i3, false), Pe.focusFirstMenuItem.call(this, i3, t2);\n }, setDownloadUrl() {\n const e2 = this.elements.buttons.download;\n S.element(e2) && e2.setAttribute(\"href\", this.download);\n }, create(e2) {\n const { bindMenuItemShortcuts: t2, createButton: i3, createProgress: s2, createRange: n2, createTime: a2, setQualityMenu: l2, setSpeedMenu: r2, showMenuPanel: o2 } = Pe;\n this.elements.controls = null, S.array(this.config.controls) && this.config.controls.includes(\"play-large\") && this.elements.container.appendChild(i3.call(this, \"play-large\"));\n const c2 = $(\"div\", D(this.config.selectors.controls.wrapper));\n this.elements.controls = c2;\n const u2 = { class: \"plyr__controls__item\" };\n return se(S.array(this.config.controls) ? this.config.controls : []).forEach((l3) => {\n if (\"restart\" === l3 && c2.appendChild(i3.call(this, \"restart\", u2)), \"rewind\" === l3 && c2.appendChild(i3.call(this, \"rewind\", u2)), \"play\" === l3 && c2.appendChild(i3.call(this, \"play\", u2)), \"fast-forward\" === l3 && c2.appendChild(i3.call(this, \"fast-forward\", u2)), \"progress\" === l3) {\n const t3 = $(\"div\", { class: `${u2.class} plyr__progress__container` }), i4 = $(\"div\", D(this.config.selectors.progress));\n if (i4.appendChild(n2.call(this, \"seek\", { id: `plyr-seek-${e2.id}` })), i4.appendChild(s2.call(this, \"buffer\")), this.config.tooltips.seek) {\n const e3 = $(\"span\", { class: this.config.classNames.tooltip }, \"00:00\");\n i4.appendChild(e3), this.elements.display.seekTooltip = e3;\n }\n this.elements.progress = i4, t3.appendChild(this.elements.progress), c2.appendChild(t3);\n }\n if (\"current-time\" === l3 && c2.appendChild(a2.call(this, \"currentTime\", u2)), \"duration\" === l3 && c2.appendChild(a2.call(this, \"duration\", u2)), \"mute\" === l3 || \"volume\" === l3) {\n let { volume: t3 } = this.elements;\n if (S.element(t3) && c2.contains(t3) || (t3 = $(\"div\", x({}, u2, { class: `${u2.class} plyr__volume`.trim() })), this.elements.volume = t3, c2.appendChild(t3)), \"mute\" === l3 && t3.appendChild(i3.call(this, \"mute\")), \"volume\" === l3 && !M.isIos && !M.isIPadOS) {\n const i4 = { max: 1, step: 0.05, value: this.config.volume };\n t3.appendChild(n2.call(this, \"volume\", x(i4, { id: `plyr-volume-${e2.id}` })));\n }\n }\n if (\"captions\" === l3 && c2.appendChild(i3.call(this, \"captions\", u2)), \"settings\" === l3 && !S.empty(this.config.settings)) {\n const s3 = $(\"div\", x({}, u2, { class: `${u2.class} plyr__menu`.trim(), hidden: \"\" }));\n s3.appendChild(i3.call(this, \"settings\", { \"aria-haspopup\": true, \"aria-controls\": `plyr-settings-${e2.id}`, \"aria-expanded\": false }));\n const n3 = $(\"div\", { class: \"plyr__menu__container\", id: `plyr-settings-${e2.id}`, hidden: \"\" }), a3 = $(\"div\"), l4 = $(\"div\", { id: `plyr-settings-${e2.id}-home` }), r3 = $(\"div\", { role: \"menu\" });\n l4.appendChild(r3), a3.appendChild(l4), this.elements.settings.panels.home = l4, this.config.settings.forEach((i4) => {\n const s4 = $(\"button\", x(D(this.config.selectors.buttons.settings), { type: \"button\", class: `${this.config.classNames.control} ${this.config.classNames.control}--forward`, role: \"menuitem\", \"aria-haspopup\": true, hidden: \"\" }));\n t2.call(this, s4, i4), X.call(this, s4, \"click\", () => {\n o2.call(this, i4, false);\n });\n const n4 = $(\"span\", null, ve.get(i4, this.config)), l5 = $(\"span\", { class: this.config.classNames.menu.value });\n l5.innerHTML = e2[i4], n4.appendChild(l5), s4.appendChild(n4), r3.appendChild(s4);\n const c3 = $(\"div\", { id: `plyr-settings-${e2.id}-${i4}`, hidden: \"\" }), u3 = $(\"button\", { type: \"button\", class: `${this.config.classNames.control} ${this.config.classNames.control}--back` });\n u3.appendChild($(\"span\", { \"aria-hidden\": true }, ve.get(i4, this.config))), u3.appendChild($(\"span\", { class: this.config.classNames.hidden }, ve.get(\"menuBack\", this.config))), X.call(this, c3, \"keydown\", (e3) => {\n \"ArrowLeft\" === e3.key && (e3.preventDefault(), e3.stopPropagation(), o2.call(this, \"home\", true));\n }, false), X.call(this, u3, \"click\", () => {\n o2.call(this, \"home\", false);\n }), c3.appendChild(u3), c3.appendChild($(\"div\", { role: \"menu\" })), a3.appendChild(c3), this.elements.settings.buttons[i4] = s4, this.elements.settings.panels[i4] = c3;\n }), n3.appendChild(a3), s3.appendChild(n3), c2.appendChild(s3), this.elements.settings.popup = n3, this.elements.settings.menu = s3;\n }\n if (\"pip\" === l3 && K.pip && c2.appendChild(i3.call(this, \"pip\", u2)), \"airplay\" === l3 && K.airplay && c2.appendChild(i3.call(this, \"airplay\", u2)), \"download\" === l3) {\n const e3 = x({}, u2, { element: \"a\", href: this.download, target: \"_blank\" });\n this.isHTML5 && (e3.download = \"\");\n const { download: t3 } = this.config.urls;\n !S.url(t3) && this.isEmbed && x(e3, { icon: `logo-${this.provider}`, label: this.provider }), c2.appendChild(i3.call(this, \"download\", e3));\n }\n \"fullscreen\" === l3 && c2.appendChild(i3.call(this, \"fullscreen\", u2));\n }), this.isHTML5 && l2.call(this, de.getQualityOptions.call(this)), r2.call(this), c2;\n }, inject() {\n if (this.config.loadSprite) {\n const e3 = Pe.getIconUrl.call(this);\n e3.cors && ke(e3.url, \"sprite-plyr\");\n }\n this.id = Math.floor(1e4 * Math.random());\n let e2 = null;\n this.elements.controls = null;\n const t2 = { id: this.id, seektime: this.config.seekTime, title: this.config.title };\n let i3 = true;\n S.function(this.config.controls) && (this.config.controls = this.config.controls.call(this, t2)), this.config.controls || (this.config.controls = []), S.element(this.config.controls) || S.string(this.config.controls) ? e2 = this.config.controls : (e2 = Pe.create.call(this, { id: this.id, seektime: this.config.seekTime, speed: this.speed, quality: this.quality, captions: xe.getLabel.call(this) }), i3 = false);\n let s2;\n i3 && S.string(this.config.controls) && (e2 = ((e3) => {\n let i4 = e3;\n return Object.entries(t2).forEach(([e4, t3]) => {\n i4 = pe(i4, `{${e4}}`, t3);\n }), i4;\n })(e2)), S.string(this.config.selectors.controls.container) && (s2 = document.querySelector(this.config.selectors.controls.container)), S.element(s2) || (s2 = this.elements.container);\n if (s2[S.element(e2) ? \"insertAdjacentElement\" : \"insertAdjacentHTML\"](\"afterbegin\", e2), S.element(this.elements.controls) || Pe.findElements.call(this), !S.empty(this.elements.buttons)) {\n const e3 = (e4) => {\n const t3 = this.config.classNames.controlPressed;\n e4.setAttribute(\"aria-pressed\", \"false\"), Object.defineProperty(e4, \"pressed\", { configurable: true, enumerable: true, get: () => F(e4, t3), set(i4 = false) {\n R(e4, t3, i4), e4.setAttribute(\"aria-pressed\", i4 ? \"true\" : \"false\");\n } });\n };\n Object.values(this.elements.buttons).filter(Boolean).forEach((t3) => {\n S.array(t3) || S.nodeList(t3) ? Array.from(t3).filter(Boolean).forEach(e3) : e3(t3);\n });\n }\n if (M.isEdge && P(s2), this.config.tooltips.controls) {\n const { classNames: e3, selectors: t3 } = this.config, i4 = `${t3.controls.wrapper} ${t3.labels} .${e3.hidden}`, s3 = U.call(this, i4);\n Array.from(s3).forEach((e4) => {\n R(e4, this.config.classNames.hidden, false), R(e4, this.config.classNames.tooltip, true);\n });\n }\n }, setMediaMetadata() {\n try {\n \"mediaSession\" in navigator && (navigator.mediaSession.metadata = new window.MediaMetadata({ title: this.config.mediaMetadata.title, artist: this.config.mediaMetadata.artist, album: this.config.mediaMetadata.album, artwork: this.config.mediaMetadata.artwork }));\n } catch (e2) {\n }\n }, setMarkers() {\n var e2, t2;\n if (!this.duration || this.elements.markers) return;\n const i3 = null === (e2 = this.config.markers) || void 0 === e2 || null === (t2 = e2.points) || void 0 === t2 ? void 0 : t2.filter(({ time: e3 }) => e3 > 0 && e3 < this.duration);\n if (null == i3 || !i3.length) return;\n const s2 = document.createDocumentFragment(), n2 = document.createDocumentFragment();\n let a2 = null;\n const l2 = `${this.config.classNames.tooltip}--visible`, r2 = (e3) => R(a2, l2, e3);\n i3.forEach((e3) => {\n const t3 = $(\"span\", { class: this.config.classNames.marker }, \"\"), i4 = e3.time / this.duration * 100 + \"%\";\n a2 && (t3.addEventListener(\"mouseenter\", () => {\n e3.label || (a2.style.left = i4, a2.innerHTML = e3.label, r2(true));\n }), t3.addEventListener(\"mouseleave\", () => {\n r2(false);\n })), t3.addEventListener(\"click\", () => {\n this.currentTime = e3.time;\n }), t3.style.left = i4, n2.appendChild(t3);\n }), s2.appendChild(n2), this.config.tooltips.seek || (a2 = $(\"span\", { class: this.config.classNames.tooltip }, \"\"), s2.appendChild(a2)), this.elements.markers = { points: n2, tip: a2 }, this.elements.progress.appendChild(s2);\n } };\n function Me(e2, t2 = true) {\n let i3 = e2;\n if (t2) {\n const e3 = document.createElement(\"a\");\n e3.href = i3, i3 = e3.href;\n }\n try {\n return new URL(i3);\n } catch (e3) {\n return null;\n }\n }\n function Ne(e2) {\n const t2 = new URLSearchParams();\n return S.object(e2) && Object.entries(e2).forEach(([e3, i3]) => {\n t2.set(e3, i3);\n }), t2;\n }\n const xe = { setup() {\n if (!this.supported.ui) return;\n if (!this.isVideo || this.isYouTube || this.isHTML5 && !K.textTracks) return void (S.array(this.config.controls) && this.config.controls.includes(\"settings\") && this.config.settings.includes(\"captions\") && Pe.setCaptionsMenu.call(this));\n var e2, t2;\n if (S.element(this.elements.captions) || (this.elements.captions = $(\"div\", D(this.config.selectors.captions)), this.elements.captions.setAttribute(\"dir\", \"auto\"), e2 = this.elements.captions, t2 = this.elements.wrapper, S.element(e2) && S.element(t2) && t2.parentNode.insertBefore(e2, t2.nextSibling)), M.isIE && window.URL) {\n const e3 = this.media.querySelectorAll(\"track\");\n Array.from(e3).forEach((e4) => {\n const t3 = e4.getAttribute(\"src\"), i4 = Me(t3);\n null !== i4 && i4.hostname !== window.location.href.hostname && [\"http:\", \"https:\"].includes(i4.protocol) && Te(t3, \"blob\").then((t4) => {\n e4.setAttribute(\"src\", window.URL.createObjectURL(t4));\n }).catch(() => {\n O(e4);\n });\n });\n }\n const i3 = se((navigator.languages || [navigator.language || navigator.userLanguage || \"en\"]).map((e3) => e3.split(\"-\")[0]));\n let s2 = (this.storage.get(\"language\") || this.config.captions.language || \"auto\").toLowerCase();\n \"auto\" === s2 && ([s2] = i3);\n let n2 = this.storage.get(\"captions\");\n if (S.boolean(n2) || ({ active: n2 } = this.config.captions), Object.assign(this.captions, { toggled: false, active: n2, language: s2, languages: i3 }), this.isHTML5) {\n const e3 = this.config.captions.update ? \"addtrack removetrack\" : \"removetrack\";\n X.call(this, this.media.textTracks, e3, xe.update.bind(this));\n }\n setTimeout(xe.update.bind(this), 0);\n }, update() {\n const e2 = xe.getTracks.call(this, true), { active: t2, language: i3, meta: s2, currentTrackNode: n2 } = this.captions, a2 = Boolean(e2.find((e3) => e3.language === i3));\n this.isHTML5 && this.isVideo && e2.filter((e3) => !s2.get(e3)).forEach((e3) => {\n this.debug.log(\"Track added\", e3), s2.set(e3, { default: \"showing\" === e3.mode }), \"showing\" === e3.mode && (e3.mode = \"hidden\"), X.call(this, e3, \"cuechange\", () => xe.updateCues.call(this));\n }), (a2 && this.language !== i3 || !e2.includes(n2)) && (xe.setLanguage.call(this, i3), xe.toggle.call(this, t2 && a2)), this.elements && R(this.elements.container, this.config.classNames.captions.enabled, !S.empty(e2)), S.array(this.config.controls) && this.config.controls.includes(\"settings\") && this.config.settings.includes(\"captions\") && Pe.setCaptionsMenu.call(this);\n }, toggle(e2, t2 = true) {\n if (!this.supported.ui) return;\n const { toggled: i3 } = this.captions, s2 = this.config.classNames.captions.active, n2 = S.nullOrUndefined(e2) ? !i3 : e2;\n if (n2 !== i3) {\n if (t2 || (this.captions.active = n2, this.storage.set({ captions: n2 })), !this.language && n2 && !t2) {\n const e3 = xe.getTracks.call(this), t3 = xe.findTrack.call(this, [this.captions.language, ...this.captions.languages], true);\n return this.captions.language = t3.language, void xe.set.call(this, e3.indexOf(t3));\n }\n this.elements.buttons.captions && (this.elements.buttons.captions.pressed = n2), R(this.elements.container, s2, n2), this.captions.toggled = n2, Pe.updateSetting.call(this, \"captions\"), Z.call(this, this.media, n2 ? \"captionsenabled\" : \"captionsdisabled\");\n }\n setTimeout(() => {\n n2 && this.captions.toggled && (this.captions.currentTrackNode.mode = \"hidden\");\n });\n }, set(e2, t2 = true) {\n const i3 = xe.getTracks.call(this);\n if (-1 !== e2) if (S.number(e2)) if (e2 in i3) {\n if (this.captions.currentTrack !== e2) {\n this.captions.currentTrack = e2;\n const s2 = i3[e2], { language: n2 } = s2 || {};\n this.captions.currentTrackNode = s2, Pe.updateSetting.call(this, \"captions\"), t2 || (this.captions.language = n2, this.storage.set({ language: n2 })), this.isVimeo && this.embed.enableTextTrack(n2), Z.call(this, this.media, \"languagechange\");\n }\n xe.toggle.call(this, true, t2), this.isHTML5 && this.isVideo && xe.updateCues.call(this);\n } else this.debug.warn(\"Track not found\", e2);\n else this.debug.warn(\"Invalid caption argument\", e2);\n else xe.toggle.call(this, false, t2);\n }, setLanguage(e2, t2 = true) {\n if (!S.string(e2)) return void this.debug.warn(\"Invalid language argument\", e2);\n const i3 = e2.toLowerCase();\n this.captions.language = i3;\n const s2 = xe.getTracks.call(this), n2 = xe.findTrack.call(this, [i3]);\n xe.set.call(this, s2.indexOf(n2), t2);\n }, getTracks(e2 = false) {\n return Array.from((this.media || {}).textTracks || []).filter((t2) => !this.isHTML5 || e2 || this.captions.meta.has(t2)).filter((e3) => [\"captions\", \"subtitles\"].includes(e3.kind));\n }, findTrack(e2, t2 = false) {\n const i3 = xe.getTracks.call(this), s2 = (e3) => Number((this.captions.meta.get(e3) || {}).default), n2 = Array.from(i3).sort((e3, t3) => s2(t3) - s2(e3));\n let a2;\n return e2.every((e3) => (a2 = n2.find((t3) => t3.language === e3), !a2)), a2 || (t2 ? n2[0] : void 0);\n }, getCurrentTrack() {\n return xe.getTracks.call(this)[this.currentTrack];\n }, getLabel(e2) {\n let t2 = e2;\n return !S.track(t2) && K.textTracks && this.captions.toggled && (t2 = xe.getCurrentTrack.call(this)), S.track(t2) ? S.empty(t2.label) ? S.empty(t2.language) ? ve.get(\"enabled\", this.config) : e2.language.toUpperCase() : t2.label : ve.get(\"disabled\", this.config);\n }, updateCues(e2) {\n if (!this.supported.ui) return;\n if (!S.element(this.elements.captions)) return void this.debug.warn(\"No captions element to render to\");\n if (!S.nullOrUndefined(e2) && !Array.isArray(e2)) return void this.debug.warn(\"updateCues: Invalid input\", e2);\n let t2 = e2;\n if (!t2) {\n const e3 = xe.getCurrentTrack.call(this);\n t2 = Array.from((e3 || {}).activeCues || []).map((e4) => e4.getCueAsHTML()).map(ye);\n }\n const i3 = t2.map((e3) => e3.trim()).join(\"\\n\");\n if (i3 !== this.elements.captions.innerHTML) {\n j(this.elements.captions);\n const e3 = $(\"span\", D(this.config.selectors.caption));\n e3.innerHTML = i3, this.elements.captions.appendChild(e3), Z.call(this, this.media, \"cuechange\");\n }\n } }, Le = { enabled: true, title: \"\", debug: false, autoplay: false, autopause: true, playsinline: true, seekTime: 10, volume: 1, muted: false, duration: null, displayDuration: true, invertTime: true, toggleInvert: true, ratio: null, clickToPlay: true, hideControls: true, resetOnEnd: false, disableContextMenu: true, loadSprite: true, iconPrefix: \"plyr\", iconUrl: \"https://cdn.plyr.io/3.7.8/plyr.svg\", blankVideo: \"https://cdn.plyr.io/static/blank.mp4\", quality: { default: 576, options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240], forced: false, onChange: null }, loop: { active: false }, speed: { selected: 1, options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 4] }, keyboard: { focused: true, global: false }, tooltips: { controls: false, seek: true }, captions: { active: false, language: \"auto\", update: false }, fullscreen: { enabled: true, fallback: true, iosNative: false }, storage: { enabled: true, key: \"plyr\" }, controls: [\"play-large\", \"play\", \"progress\", \"current-time\", \"mute\", \"volume\", \"captions\", \"settings\", \"pip\", \"airplay\", \"fullscreen\"], settings: [\"captions\", \"quality\", \"speed\"], i18n: { restart: \"Restart\", rewind: \"Rewind {seektime}s\", play: \"Play\", pause: \"Pause\", fastForward: \"Forward {seektime}s\", seek: \"Seek\", seekLabel: \"{currentTime} of {duration}\", played: \"Played\", buffered: \"Buffered\", currentTime: \"Current time\", duration: \"Duration\", volume: \"Volume\", mute: \"Mute\", unmute: \"Unmute\", enableCaptions: \"Enable captions\", disableCaptions: \"Disable captions\", download: \"Download\", enterFullscreen: \"Enter fullscreen\", exitFullscreen: \"Exit fullscreen\", frameTitle: \"Player for {title}\", captions: \"Captions\", settings: \"Settings\", pip: \"PIP\", menuBack: \"Go back to previous menu\", speed: \"Speed\", normal: \"Normal\", quality: \"Quality\", loop: \"Loop\", start: \"Start\", end: \"End\", all: \"All\", reset: \"Reset\", disabled: \"Disabled\", enabled: \"Enabled\", advertisement: \"Ad\", qualityBadge: { 2160: \"4K\", 1440: \"HD\", 1080: \"HD\", 720: \"HD\", 576: \"SD\", 480: \"SD\" } }, urls: { download: null, vimeo: { sdk: \"https://player.vimeo.com/api/player.js\", iframe: \"https://player.vimeo.com/video/{0}?{1}\", api: \"https://vimeo.com/api/oembed.json?url={0}\" }, youtube: { sdk: \"https://www.youtube.com/iframe_api\", api: \"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}\" }, googleIMA: { sdk: \"https://imasdk.googleapis.com/js/sdkloader/ima3.js\" } }, listeners: { seek: null, play: null, pause: null, restart: null, rewind: null, fastForward: null, mute: null, volume: null, captions: null, download: null, fullscreen: null, pip: null, airplay: null, speed: null, quality: null, loop: null, language: null }, events: [\"ended\", \"progress\", \"stalled\", \"playing\", \"waiting\", \"canplay\", \"canplaythrough\", \"loadstart\", \"loadeddata\", \"loadedmetadata\", \"timeupdate\", \"volumechange\", \"play\", \"pause\", \"error\", \"seeking\", \"seeked\", \"emptied\", \"ratechange\", \"cuechange\", \"download\", \"enterfullscreen\", \"exitfullscreen\", \"captionsenabled\", \"captionsdisabled\", \"languagechange\", \"controlshidden\", \"controlsshown\", \"ready\", \"statechange\", \"qualitychange\", \"adsloaded\", \"adscontentpause\", \"adscontentresume\", \"adstarted\", \"adsmidpoint\", \"adscomplete\", \"adsallcomplete\", \"adsimpression\", \"adsclick\"], selectors: { editable: \"input, textarea, select, [contenteditable]\", container: \".plyr\", controls: { container: null, wrapper: \".plyr__controls\" }, labels: \"[data-plyr]\", buttons: { play: '[data-plyr=\"play\"]', pause: '[data-plyr=\"pause\"]', restart: '[data-plyr=\"restart\"]', rewind: '[data-plyr=\"rewind\"]', fastForward: '[data-plyr=\"fast-forward\"]', mute: '[data-plyr=\"mute\"]', captions: '[data-plyr=\"captions\"]', download: '[data-plyr=\"download\"]', fullscreen: '[data-plyr=\"fullscreen\"]', pip: '[data-plyr=\"pip\"]', airplay: '[data-plyr=\"airplay\"]', settings: '[data-plyr=\"settings\"]', loop: '[data-plyr=\"loop\"]' }, inputs: { seek: '[data-plyr=\"seek\"]', volume: '[data-plyr=\"volume\"]', speed: '[data-plyr=\"speed\"]', language: '[data-plyr=\"language\"]', quality: '[data-plyr=\"quality\"]' }, display: { currentTime: \".plyr__time--current\", duration: \".plyr__time--duration\", buffer: \".plyr__progress__buffer\", loop: \".plyr__progress__loop\", volume: \".plyr__volume--display\" }, progress: \".plyr__progress\", captions: \".plyr__captions\", caption: \".plyr__caption\" }, classNames: { type: \"plyr--{0}\", provider: \"plyr--{0}\", video: \"plyr__video-wrapper\", embed: \"plyr__video-embed\", videoFixedRatio: \"plyr__video-wrapper--fixed-ratio\", embedContainer: \"plyr__video-embed__container\", poster: \"plyr__poster\", posterEnabled: \"plyr__poster-enabled\", ads: \"plyr__ads\", control: \"plyr__control\", controlPressed: \"plyr__control--pressed\", playing: \"plyr--playing\", paused: \"plyr--paused\", stopped: \"plyr--stopped\", loading: \"plyr--loading\", hover: \"plyr--hover\", tooltip: \"plyr__tooltip\", cues: \"plyr__cues\", marker: \"plyr__progress__marker\", hidden: \"plyr__sr-only\", hideControls: \"plyr--hide-controls\", isTouch: \"plyr--is-touch\", uiSupported: \"plyr--full-ui\", noTransition: \"plyr--no-transition\", display: { time: \"plyr__time\" }, menu: { value: \"plyr__menu__value\", badge: \"plyr__badge\", open: \"plyr--menu-open\" }, captions: { enabled: \"plyr--captions-enabled\", active: \"plyr--captions-active\" }, fullscreen: { enabled: \"plyr--fullscreen-enabled\", fallback: \"plyr--fullscreen-fallback\" }, pip: { supported: \"plyr--pip-supported\", active: \"plyr--pip-active\" }, airplay: { supported: \"plyr--airplay-supported\", active: \"plyr--airplay-active\" }, previewThumbnails: { thumbContainer: \"plyr__preview-thumb\", thumbContainerShown: \"plyr__preview-thumb--is-shown\", imageContainer: \"plyr__preview-thumb__image-container\", timeContainer: \"plyr__preview-thumb__time-container\", scrubbingContainer: \"plyr__preview-scrubbing\", scrubbingContainerShown: \"plyr__preview-scrubbing--is-shown\" } }, attributes: { embed: { provider: \"data-plyr-provider\", id: \"data-plyr-embed-id\", hash: \"data-plyr-embed-hash\" } }, ads: { enabled: false, publisherId: \"\", tagUrl: \"\" }, previewThumbnails: { enabled: false, src: \"\" }, vimeo: { byline: false, portrait: false, title: false, speed: true, transparent: false, customControls: true, referrerPolicy: null, premium: false }, youtube: { rel: 0, showinfo: 0, iv_load_policy: 3, modestbranding: 1, customControls: true, noCookie: false }, mediaMetadata: { title: \"\", artist: \"\", album: \"\", artwork: [] }, markers: { enabled: false, points: [] } }, Ie = \"picture-in-picture\", $e = \"inline\", _e = { html5: \"html5\", youtube: \"youtube\", vimeo: \"vimeo\" }, Oe = \"audio\", je = \"video\";\n const qe = () => {\n };\n class De {\n constructor(e2 = false) {\n this.enabled = window.console && e2, this.enabled && this.log(\"Debugging enabled\");\n }\n get log() {\n return this.enabled ? Function.prototype.bind.call(console.log, console) : qe;\n }\n get warn() {\n return this.enabled ? Function.prototype.bind.call(console.warn, console) : qe;\n }\n get error() {\n return this.enabled ? Function.prototype.bind.call(console.error, console) : qe;\n }\n }\n class He {\n constructor(t2) {\n e(this, \"onChange\", () => {\n if (!this.supported) return;\n const e2 = this.player.elements.buttons.fullscreen;\n S.element(e2) && (e2.pressed = this.active);\n const t3 = this.target === this.player.media ? this.target : this.player.elements.container;\n Z.call(this.player, t3, this.active ? \"enterfullscreen\" : \"exitfullscreen\", true);\n }), e(this, \"toggleFallback\", (e2 = false) => {\n if (e2 ? this.scrollPosition = { x: window.scrollX ?? 0, y: window.scrollY ?? 0 } : window.scrollTo(this.scrollPosition.x, this.scrollPosition.y), document.body.style.overflow = e2 ? \"hidden\" : \"\", R(this.target, this.player.config.classNames.fullscreen.fallback, e2), M.isIos) {\n let t3 = document.head.querySelector('meta[name=\"viewport\"]');\n const i3 = \"viewport-fit=cover\";\n t3 || (t3 = document.createElement(\"meta\"), t3.setAttribute(\"name\", \"viewport\"));\n const s2 = S.string(t3.content) && t3.content.includes(i3);\n e2 ? (this.cleanupViewport = !s2, s2 || (t3.content += `,${i3}`)) : this.cleanupViewport && (t3.content = t3.content.split(\",\").filter((e3) => e3.trim() !== i3).join(\",\"));\n }\n this.onChange();\n }), e(this, \"trapFocus\", (e2) => {\n if (M.isIos || M.isIPadOS || !this.active || \"Tab\" !== e2.key) return;\n const t3 = document.activeElement, i3 = U.call(this.player, \"a[href], button:not(:disabled), input:not(:disabled), [tabindex]\"), [s2] = i3, n2 = i3[i3.length - 1];\n t3 !== n2 || e2.shiftKey ? t3 === s2 && e2.shiftKey && (n2.focus(), e2.preventDefault()) : (s2.focus(), e2.preventDefault());\n }), e(this, \"update\", () => {\n if (this.supported) {\n let e2;\n e2 = this.forceFallback ? \"Fallback (forced)\" : He.nativeSupported ? \"Native\" : \"Fallback\", this.player.debug.log(`${e2} fullscreen enabled`);\n } else this.player.debug.log(\"Fullscreen not supported and fallback disabled\");\n R(this.player.elements.container, this.player.config.classNames.fullscreen.enabled, this.supported);\n }), e(this, \"enter\", () => {\n this.supported && (M.isIos && this.player.config.fullscreen.iosNative ? this.player.isVimeo ? this.player.embed.requestFullscreen() : this.target.webkitEnterFullscreen() : !He.nativeSupported || this.forceFallback ? this.toggleFallback(true) : this.prefix ? S.empty(this.prefix) || this.target[`${this.prefix}Request${this.property}`]() : this.target.requestFullscreen({ navigationUI: \"hide\" }));\n }), e(this, \"exit\", () => {\n if (this.supported) if (M.isIos && this.player.config.fullscreen.iosNative) this.player.isVimeo ? this.player.embed.exitFullscreen() : this.target.webkitEnterFullscreen(), ie(this.player.play());\n else if (!He.nativeSupported || this.forceFallback) this.toggleFallback(false);\n else if (this.prefix) {\n if (!S.empty(this.prefix)) {\n const e2 = \"moz\" === this.prefix ? \"Cancel\" : \"Exit\";\n document[`${this.prefix}${e2}${this.property}`]();\n }\n } else (document.cancelFullScreen || document.exitFullscreen).call(document);\n }), e(this, \"toggle\", () => {\n this.active ? this.exit() : this.enter();\n }), this.player = t2, this.prefix = He.prefix, this.property = He.property, this.scrollPosition = { x: 0, y: 0 }, this.forceFallback = \"force\" === t2.config.fullscreen.fallback, this.player.elements.fullscreen = t2.config.fullscreen.container && function(e2, t3) {\n const { prototype: i3 } = Element;\n return (i3.closest || function() {\n let e3 = this;\n do {\n if (V.matches(e3, t3)) return e3;\n e3 = e3.parentElement || e3.parentNode;\n } while (null !== e3 && 1 === e3.nodeType);\n return null;\n }).call(e2, t3);\n }(this.player.elements.container, t2.config.fullscreen.container), X.call(this.player, document, \"ms\" === this.prefix ? \"MSFullscreenChange\" : `${this.prefix}fullscreenchange`, () => {\n this.onChange();\n }), X.call(this.player, this.player.elements.container, \"dblclick\", (e2) => {\n S.element(this.player.elements.controls) && this.player.elements.controls.contains(e2.target) || this.player.listeners.proxy(e2, this.toggle, \"fullscreen\");\n }), X.call(this, this.player.elements.container, \"keydown\", (e2) => this.trapFocus(e2)), this.update();\n }\n static get nativeSupported() {\n return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled);\n }\n get useNative() {\n return He.nativeSupported && !this.forceFallback;\n }\n static get prefix() {\n if (S.function(document.exitFullscreen)) return \"\";\n let e2 = \"\";\n return [\"webkit\", \"moz\", \"ms\"].some((t2) => !(!S.function(document[`${t2}ExitFullscreen`]) && !S.function(document[`${t2}CancelFullScreen`])) && (e2 = t2, true)), e2;\n }\n static get property() {\n return \"moz\" === this.prefix ? \"FullScreen\" : \"Fullscreen\";\n }\n get supported() {\n return [this.player.config.fullscreen.enabled, this.player.isVideo, He.nativeSupported || this.player.config.fullscreen.fallback, !this.player.isYouTube || He.nativeSupported || !M.isIos || this.player.config.playsinline && !this.player.config.fullscreen.iosNative].every(Boolean);\n }\n get active() {\n if (!this.supported) return false;\n if (!He.nativeSupported || this.forceFallback) return F(this.target, this.player.config.classNames.fullscreen.fallback);\n const e2 = this.prefix ? this.target.getRootNode()[`${this.prefix}${this.property}Element`] : this.target.getRootNode().fullscreenElement;\n return e2 && e2.shadowRoot ? e2 === this.target.getRootNode().host : e2 === this.target;\n }\n get target() {\n return M.isIos && this.player.config.fullscreen.iosNative ? this.player.media : this.player.elements.fullscreen ?? this.player.elements.container;\n }\n }\n function Re(e2, t2 = 1) {\n return new Promise((i3, s2) => {\n const n2 = new Image(), a2 = () => {\n delete n2.onload, delete n2.onerror, (n2.naturalWidth >= t2 ? i3 : s2)(n2);\n };\n Object.assign(n2, { onload: a2, onerror: a2, src: e2 });\n });\n }\n const Fe = { addStyleHook() {\n R(this.elements.container, this.config.selectors.container.replace(\".\", \"\"), true), R(this.elements.container, this.config.classNames.uiSupported, this.supported.ui);\n }, toggleNativeControls(e2 = false) {\n e2 && this.isHTML5 ? this.media.setAttribute(\"controls\", \"\") : this.media.removeAttribute(\"controls\");\n }, build() {\n if (this.listeners.media(), !this.supported.ui) return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`), void Fe.toggleNativeControls.call(this, true);\n S.element(this.elements.controls) || (Pe.inject.call(this), this.listeners.controls()), Fe.toggleNativeControls.call(this), this.isHTML5 && xe.setup.call(this), this.volume = null, this.muted = null, this.loop = null, this.quality = null, this.speed = null, Pe.updateVolume.call(this), Pe.timeUpdate.call(this), Pe.durationUpdate.call(this), Fe.checkPlaying.call(this), R(this.elements.container, this.config.classNames.pip.supported, K.pip && this.isHTML5 && this.isVideo), R(this.elements.container, this.config.classNames.airplay.supported, K.airplay && this.isHTML5), R(this.elements.container, this.config.classNames.isTouch, this.touch), this.ready = true, setTimeout(() => {\n Z.call(this, this.media, \"ready\");\n }, 0), Fe.setTitle.call(this), this.poster && Fe.setPoster.call(this, this.poster, false).catch(() => {\n }), this.config.duration && Pe.durationUpdate.call(this), this.config.mediaMetadata && Pe.setMediaMetadata.call(this);\n }, setTitle() {\n let e2 = ve.get(\"play\", this.config);\n if (S.string(this.config.title) && !S.empty(this.config.title) && (e2 += `, ${this.config.title}`), Array.from(this.elements.buttons.play || []).forEach((t2) => {\n t2.setAttribute(\"aria-label\", e2);\n }), this.isEmbed) {\n const e3 = B.call(this, \"iframe\");\n if (!S.element(e3)) return;\n const t2 = S.empty(this.config.title) ? \"video\" : this.config.title, i3 = ve.get(\"frameTitle\", this.config);\n e3.setAttribute(\"title\", i3.replace(\"{title}\", t2));\n }\n }, togglePoster(e2) {\n R(this.elements.container, this.config.classNames.posterEnabled, e2);\n }, setPoster(e2, t2 = true) {\n return t2 && this.poster ? Promise.reject(new Error(\"Poster already set\")) : (this.media.setAttribute(\"data-poster\", e2), this.elements.poster.removeAttribute(\"hidden\"), te.call(this).then(() => Re(e2)).catch((t3) => {\n throw e2 === this.poster && Fe.togglePoster.call(this, false), t3;\n }).then(() => {\n if (e2 !== this.poster) throw new Error(\"setPoster cancelled by later call to setPoster\");\n }).then(() => (Object.assign(this.elements.poster.style, { backgroundImage: `url('${e2}')`, backgroundSize: \"\" }), Fe.togglePoster.call(this, true), e2)));\n }, checkPlaying(e2) {\n R(this.elements.container, this.config.classNames.playing, this.playing), R(this.elements.container, this.config.classNames.paused, this.paused), R(this.elements.container, this.config.classNames.stopped, this.stopped), Array.from(this.elements.buttons.play || []).forEach((e3) => {\n Object.assign(e3, { pressed: this.playing }), e3.setAttribute(\"aria-label\", ve.get(this.playing ? \"pause\" : \"play\", this.config));\n }), S.event(e2) && \"timeupdate\" === e2.type || Fe.toggleControls.call(this);\n }, checkLoading(e2) {\n this.loading = [\"stalled\", \"waiting\"].includes(e2.type), clearTimeout(this.timers.loading), this.timers.loading = setTimeout(() => {\n R(this.elements.container, this.config.classNames.loading, this.loading), Fe.toggleControls.call(this);\n }, this.loading ? 250 : 0);\n }, toggleControls(e2) {\n const { controls: t2 } = this.elements;\n if (t2 && this.config.hideControls) {\n const i3 = this.touch && this.lastSeekTime + 2e3 > Date.now();\n this.toggleControls(Boolean(e2 || this.loading || this.paused || t2.pressed || t2.hover || i3));\n }\n }, migrateStyles() {\n Object.values({ ...this.media.style }).filter((e2) => !S.empty(e2) && S.string(e2) && e2.startsWith(\"--plyr\")).forEach((e2) => {\n this.elements.container.style.setProperty(e2, this.media.style.getPropertyValue(e2)), this.media.style.removeProperty(e2);\n }), S.empty(this.media.style) && this.media.removeAttribute(\"style\");\n } };\n class Ve {\n constructor(t2) {\n e(this, \"firstTouch\", () => {\n const { player: e2 } = this, { elements: t3 } = e2;\n e2.touch = true, R(t3.container, e2.config.classNames.isTouch, true);\n }), e(this, \"global\", (e2 = true) => {\n const { player: t3 } = this;\n t3.config.keyboard.global && Q.call(t3, window, \"keydown keyup\", this.handleKey, e2, false), Q.call(t3, document.body, \"click\", this.toggleMenu, e2), G.call(t3, document.body, \"touchstart\", this.firstTouch);\n }), e(this, \"container\", () => {\n const { player: e2 } = this, { config: t3, elements: i3, timers: s2 } = e2;\n !t3.keyboard.global && t3.keyboard.focused && X.call(e2, i3.container, \"keydown keyup\", this.handleKey, false), X.call(e2, i3.container, \"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen\", (t4) => {\n const { controls: n3 } = i3;\n n3 && \"enterfullscreen\" === t4.type && (n3.pressed = false, n3.hover = false);\n let a3 = 0;\n [\"touchstart\", \"touchmove\", \"mousemove\"].includes(t4.type) && (Fe.toggleControls.call(e2, true), a3 = e2.touch ? 3e3 : 2e3), clearTimeout(s2.controls), s2.controls = setTimeout(() => Fe.toggleControls.call(e2, false), a3);\n });\n const n2 = () => {\n if (!e2.isVimeo || e2.config.vimeo.premium) return;\n const t4 = i3.wrapper, { active: s3 } = e2.fullscreen, [n3, a3] = ce.call(e2), l2 = ae(`aspect-ratio: ${n3} / ${a3}`);\n if (!s3) return void (l2 ? (t4.style.width = null, t4.style.height = null) : (t4.style.maxWidth = null, t4.style.margin = null));\n const [r2, o2] = [Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0), Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)], c2 = r2 / o2 > n3 / a3;\n l2 ? (t4.style.width = c2 ? \"auto\" : \"100%\", t4.style.height = c2 ? \"100%\" : \"auto\") : (t4.style.maxWidth = c2 ? o2 / a3 * n3 + \"px\" : null, t4.style.margin = c2 ? \"0 auto\" : null);\n }, a2 = () => {\n clearTimeout(s2.resized), s2.resized = setTimeout(n2, 50);\n };\n X.call(e2, i3.container, \"enterfullscreen exitfullscreen\", (t4) => {\n const { target: s3 } = e2.fullscreen;\n if (s3 !== i3.container) return;\n if (!e2.isEmbed && S.empty(e2.config.ratio)) return;\n n2();\n (\"enterfullscreen\" === t4.type ? X : J).call(e2, window, \"resize\", a2);\n });\n }), e(this, \"media\", () => {\n const { player: e2 } = this, { elements: t3 } = e2;\n if (X.call(e2, e2.media, \"timeupdate seeking seeked\", (t4) => Pe.timeUpdate.call(e2, t4)), X.call(e2, e2.media, \"durationchange loadeddata loadedmetadata\", (t4) => Pe.durationUpdate.call(e2, t4)), X.call(e2, e2.media, \"ended\", () => {\n e2.isHTML5 && e2.isVideo && e2.config.resetOnEnd && (e2.restart(), e2.pause());\n }), X.call(e2, e2.media, \"progress playing seeking seeked\", (t4) => Pe.updateProgress.call(e2, t4)), X.call(e2, e2.media, \"volumechange\", (t4) => Pe.updateVolume.call(e2, t4)), X.call(e2, e2.media, \"playing play pause ended emptied timeupdate\", (t4) => Fe.checkPlaying.call(e2, t4)), X.call(e2, e2.media, \"waiting canplay seeked playing\", (t4) => Fe.checkLoading.call(e2, t4)), e2.supported.ui && e2.config.clickToPlay && !e2.isAudio) {\n const i4 = B.call(e2, `.${e2.config.classNames.video}`);\n if (!S.element(i4)) return;\n X.call(e2, t3.container, \"click\", (s2) => {\n ([t3.container, i4].includes(s2.target) || i4.contains(s2.target)) && (e2.touch && e2.config.hideControls || (e2.ended ? (this.proxy(s2, e2.restart, \"restart\"), this.proxy(s2, () => {\n ie(e2.play());\n }, \"play\")) : this.proxy(s2, () => {\n ie(e2.togglePlay());\n }, \"play\")));\n });\n }\n e2.supported.ui && e2.config.disableContextMenu && X.call(e2, t3.wrapper, \"contextmenu\", (e3) => {\n e3.preventDefault();\n }, false), X.call(e2, e2.media, \"volumechange\", () => {\n e2.storage.set({ volume: e2.volume, muted: e2.muted });\n }), X.call(e2, e2.media, \"ratechange\", () => {\n Pe.updateSetting.call(e2, \"speed\"), e2.storage.set({ speed: e2.speed });\n }), X.call(e2, e2.media, \"qualitychange\", (t4) => {\n Pe.updateSetting.call(e2, \"quality\", null, t4.detail.quality);\n }), X.call(e2, e2.media, \"ready qualitychange\", () => {\n Pe.setDownloadUrl.call(e2);\n });\n const i3 = e2.config.events.concat([\"keyup\", \"keydown\"]).join(\" \");\n X.call(e2, e2.media, i3, (i4) => {\n let { detail: s2 = {} } = i4;\n \"error\" === i4.type && (s2 = e2.media.error), Z.call(e2, t3.container, i4.type, true, s2);\n });\n }), e(this, \"proxy\", (e2, t3, i3) => {\n const { player: s2 } = this, n2 = s2.config.listeners[i3];\n let a2 = true;\n S.function(n2) && (a2 = n2.call(s2, e2)), false !== a2 && S.function(t3) && t3.call(s2, e2);\n }), e(this, \"bind\", (e2, t3, i3, s2, n2 = true) => {\n const { player: a2 } = this, l2 = a2.config.listeners[s2], r2 = S.function(l2);\n X.call(a2, e2, t3, (e3) => this.proxy(e3, i3, s2), n2 && !r2);\n }), e(this, \"controls\", () => {\n const { player: e2 } = this, { elements: t3 } = e2, i3 = M.isIE ? \"change\" : \"input\";\n if (t3.buttons.play && Array.from(t3.buttons.play).forEach((t4) => {\n this.bind(t4, \"click\", () => {\n ie(e2.togglePlay());\n }, \"play\");\n }), this.bind(t3.buttons.restart, \"click\", e2.restart, \"restart\"), this.bind(t3.buttons.rewind, \"click\", () => {\n e2.lastSeekTime = Date.now(), e2.rewind();\n }, \"rewind\"), this.bind(t3.buttons.fastForward, \"click\", () => {\n e2.lastSeekTime = Date.now(), e2.forward();\n }, \"fastForward\"), this.bind(t3.buttons.mute, \"click\", () => {\n e2.muted = !e2.muted;\n }, \"mute\"), this.bind(t3.buttons.captions, \"click\", () => e2.toggleCaptions()), this.bind(t3.buttons.download, \"click\", () => {\n Z.call(e2, e2.media, \"download\");\n }, \"download\"), this.bind(t3.buttons.fullscreen, \"click\", () => {\n e2.fullscreen.toggle();\n }, \"fullscreen\"), this.bind(t3.buttons.pip, \"click\", () => {\n e2.pip = \"toggle\";\n }, \"pip\"), this.bind(t3.buttons.airplay, \"click\", e2.airplay, \"airplay\"), this.bind(t3.buttons.settings, \"click\", (t4) => {\n t4.stopPropagation(), t4.preventDefault(), Pe.toggleMenu.call(e2, t4);\n }, null, false), this.bind(t3.buttons.settings, \"keyup\", (t4) => {\n [\" \", \"Enter\"].includes(t4.key) && (\"Enter\" !== t4.key ? (t4.preventDefault(), t4.stopPropagation(), Pe.toggleMenu.call(e2, t4)) : Pe.focusFirstMenuItem.call(e2, null, true));\n }, null, false), this.bind(t3.settings.menu, \"keydown\", (t4) => {\n \"Escape\" === t4.key && Pe.toggleMenu.call(e2, t4);\n }), this.bind(t3.inputs.seek, \"mousedown mousemove\", (e3) => {\n const i4 = t3.progress.getBoundingClientRect(), s2 = 100 / i4.width * (e3.pageX - i4.left);\n e3.currentTarget.setAttribute(\"seek-value\", s2);\n }), this.bind(t3.inputs.seek, \"mousedown mouseup keydown keyup touchstart touchend\", (t4) => {\n const i4 = t4.currentTarget, s2 = \"play-on-seeked\";\n if (S.keyboardEvent(t4) && ![\"ArrowLeft\", \"ArrowRight\"].includes(t4.key)) return;\n e2.lastSeekTime = Date.now();\n const n2 = i4.hasAttribute(s2), a2 = [\"mouseup\", \"touchend\", \"keyup\"].includes(t4.type);\n n2 && a2 ? (i4.removeAttribute(s2), ie(e2.play())) : !a2 && e2.playing && (i4.setAttribute(s2, \"\"), e2.pause());\n }), M.isIos) {\n const t4 = U.call(e2, 'input[type=\"range\"]');\n Array.from(t4).forEach((e3) => this.bind(e3, i3, (e4) => P(e4.target)));\n }\n this.bind(t3.inputs.seek, i3, (t4) => {\n const i4 = t4.currentTarget;\n let s2 = i4.getAttribute(\"seek-value\");\n S.empty(s2) && (s2 = i4.value), i4.removeAttribute(\"seek-value\"), e2.currentTime = s2 / i4.max * e2.duration;\n }, \"seek\"), this.bind(t3.progress, \"mouseenter mouseleave mousemove\", (t4) => Pe.updateSeekTooltip.call(e2, t4)), this.bind(t3.progress, \"mousemove touchmove\", (t4) => {\n const { previewThumbnails: i4 } = e2;\n i4 && i4.loaded && i4.startMove(t4);\n }), this.bind(t3.progress, \"mouseleave touchend click\", () => {\n const { previewThumbnails: t4 } = e2;\n t4 && t4.loaded && t4.endMove(false, true);\n }), this.bind(t3.progress, \"mousedown touchstart\", (t4) => {\n const { previewThumbnails: i4 } = e2;\n i4 && i4.loaded && i4.startScrubbing(t4);\n }), this.bind(t3.progress, \"mouseup touchend\", (t4) => {\n const { previewThumbnails: i4 } = e2;\n i4 && i4.loaded && i4.endScrubbing(t4);\n }), M.isWebKit && Array.from(U.call(e2, 'input[type=\"range\"]')).forEach((t4) => {\n this.bind(t4, \"input\", (t5) => Pe.updateRangeFill.call(e2, t5.target));\n }), e2.config.toggleInvert && !S.element(t3.display.duration) && this.bind(t3.display.currentTime, \"click\", () => {\n 0 !== e2.currentTime && (e2.config.invertTime = !e2.config.invertTime, Pe.timeUpdate.call(e2));\n }), this.bind(t3.inputs.volume, i3, (t4) => {\n e2.volume = t4.target.value;\n }, \"volume\"), this.bind(t3.controls, \"mouseenter mouseleave\", (i4) => {\n t3.controls.hover = !e2.touch && \"mouseenter\" === i4.type;\n }), t3.fullscreen && Array.from(t3.fullscreen.children).filter((e3) => !e3.contains(t3.container)).forEach((i4) => {\n this.bind(i4, \"mouseenter mouseleave\", (i5) => {\n t3.controls && (t3.controls.hover = !e2.touch && \"mouseenter\" === i5.type);\n });\n }), this.bind(t3.controls, \"mousedown mouseup touchstart touchend touchcancel\", (e3) => {\n t3.controls.pressed = [\"mousedown\", \"touchstart\"].includes(e3.type);\n }), this.bind(t3.controls, \"focusin\", () => {\n const { config: i4, timers: s2 } = e2;\n R(t3.controls, i4.classNames.noTransition, true), Fe.toggleControls.call(e2, true), setTimeout(() => {\n R(t3.controls, i4.classNames.noTransition, false);\n }, 0);\n const n2 = this.touch ? 3e3 : 4e3;\n clearTimeout(s2.controls), s2.controls = setTimeout(() => Fe.toggleControls.call(e2, false), n2);\n }), this.bind(t3.inputs.volume, \"wheel\", (t4) => {\n const i4 = t4.webkitDirectionInvertedFromDevice, [s2, n2] = [t4.deltaX, -t4.deltaY].map((e3) => i4 ? -e3 : e3), a2 = Math.sign(Math.abs(s2) > Math.abs(n2) ? s2 : n2);\n e2.increaseVolume(a2 / 50);\n const { volume: l2 } = e2.media;\n (1 === a2 && l2 < 1 || -1 === a2 && l2 > 0) && t4.preventDefault();\n }, \"volume\", false);\n }), this.player = t2, this.lastKey = null, this.focusTimer = null, this.lastKeyDown = null, this.handleKey = this.handleKey.bind(this), this.toggleMenu = this.toggleMenu.bind(this), this.firstTouch = this.firstTouch.bind(this);\n }\n handleKey(e2) {\n const { player: t2 } = this, { elements: i3 } = t2, { key: s2, type: n2, altKey: a2, ctrlKey: l2, metaKey: r2, shiftKey: o2 } = e2, c2 = \"keydown\" === n2, u2 = c2 && s2 === this.lastKey;\n if (a2 || l2 || r2 || o2) return;\n if (!s2) return;\n if (c2) {\n const n3 = document.activeElement;\n if (S.element(n3)) {\n const { editable: s3 } = t2.config.selectors, { seek: a3 } = i3.inputs;\n if (n3 !== a3 && V(n3, s3)) return;\n if (\" \" === e2.key && V(n3, 'button, [role^=\"menuitem\"]')) return;\n }\n switch ([\" \", \"ArrowLeft\", \"ArrowUp\", \"ArrowRight\", \"ArrowDown\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"c\", \"f\", \"k\", \"l\", \"m\"].includes(s2) && (e2.preventDefault(), e2.stopPropagation()), s2) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n u2 || (h2 = parseInt(s2, 10), t2.currentTime = t2.duration / 10 * h2);\n break;\n case \" \":\n case \"k\":\n u2 || ie(t2.togglePlay());\n break;\n case \"ArrowUp\":\n t2.increaseVolume(0.1);\n break;\n case \"ArrowDown\":\n t2.decreaseVolume(0.1);\n break;\n case \"m\":\n u2 || (t2.muted = !t2.muted);\n break;\n case \"ArrowRight\":\n t2.forward();\n break;\n case \"ArrowLeft\":\n t2.rewind();\n break;\n case \"f\":\n t2.fullscreen.toggle();\n break;\n case \"c\":\n u2 || t2.toggleCaptions();\n break;\n case \"l\":\n t2.loop = !t2.loop;\n }\n \"Escape\" === s2 && !t2.fullscreen.usingNative && t2.fullscreen.active && t2.fullscreen.toggle(), this.lastKey = s2;\n } else this.lastKey = null;\n var h2;\n }\n toggleMenu(e2) {\n Pe.toggleMenu.call(this.player, e2);\n }\n }\n \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self && self;\n var Ue = function(e2, t2) {\n return e2(t2 = { exports: {} }, t2.exports), t2.exports;\n }(function(e2, t2) {\n e2.exports = function() {\n var e3 = function() {\n }, t3 = {}, i3 = {}, s2 = {};\n function n2(e4, t4) {\n e4 = e4.push ? e4 : [e4];\n var n3, a3, l3, r3 = [], o3 = e4.length, c3 = o3;\n for (n3 = function(e5, i4) {\n i4.length && r3.push(e5), --c3 || t4(r3);\n }; o3--; ) a3 = e4[o3], (l3 = i3[a3]) ? n3(a3, l3) : (s2[a3] = s2[a3] || []).push(n3);\n }\n function a2(e4, t4) {\n if (e4) {\n var n3 = s2[e4];\n if (i3[e4] = t4, n3) for (; n3.length; ) n3[0](e4, t4), n3.splice(0, 1);\n }\n }\n function l2(t4, i4) {\n t4.call && (t4 = { success: t4 }), i4.length ? (t4.error || e3)(i4) : (t4.success || e3)(t4);\n }\n function r2(t4, i4, s3, n3) {\n var a3, l3, o3 = document, c3 = s3.async, u2 = (s3.numRetries || 0) + 1, h2 = s3.before || e3, d2 = t4.replace(/[\\?|#].*$/, \"\"), m2 = t4.replace(/^(css|img)!/, \"\");\n n3 = n3 || 0, /(^css!|\\.css$)/.test(d2) ? ((l3 = o3.createElement(\"link\")).rel = \"stylesheet\", l3.href = m2, (a3 = \"hideFocus\" in l3) && l3.relList && (a3 = 0, l3.rel = \"preload\", l3.as = \"style\")) : /(^img!|\\.(png|gif|jpg|svg|webp)$)/.test(d2) ? (l3 = o3.createElement(\"img\")).src = m2 : ((l3 = o3.createElement(\"script\")).src = t4, l3.async = void 0 === c3 || c3), l3.onload = l3.onerror = l3.onbeforeload = function(e4) {\n var o4 = e4.type[0];\n if (a3) try {\n l3.sheet.cssText.length || (o4 = \"e\");\n } catch (e5) {\n 18 != e5.code && (o4 = \"e\");\n }\n if (\"e\" == o4) {\n if ((n3 += 1) < u2) return r2(t4, i4, s3, n3);\n } else if (\"preload\" == l3.rel && \"style\" == l3.as) return l3.rel = \"stylesheet\";\n i4(t4, o4, e4.defaultPrevented);\n }, false !== h2(t4, l3) && o3.head.appendChild(l3);\n }\n function o2(e4, t4, i4) {\n var s3, n3, a3 = (e4 = e4.push ? e4 : [e4]).length, l3 = a3, o3 = [];\n for (s3 = function(e5, i5, s4) {\n if (\"e\" == i5 && o3.push(e5), \"b\" == i5) {\n if (!s4) return;\n o3.push(e5);\n }\n --a3 || t4(o3);\n }, n3 = 0; n3 < l3; n3++) r2(e4[n3], s3, i4);\n }\n function c2(e4, i4, s3) {\n var n3, r3;\n if (i4 && i4.trim && (n3 = i4), r3 = (n3 ? s3 : i4) || {}, n3) {\n if (n3 in t3) throw \"LoadJS\";\n t3[n3] = true;\n }\n function c3(t4, i5) {\n o2(e4, function(e5) {\n l2(r3, e5), t4 && l2({ success: t4, error: i5 }, e5), a2(n3, e5);\n }, r3);\n }\n if (r3.returnPromise) return new Promise(c3);\n c3();\n }\n return c2.ready = function(e4, t4) {\n return n2(e4, function(e5) {\n l2(t4, e5);\n }), c2;\n }, c2.done = function(e4) {\n a2(e4, []);\n }, c2.reset = function() {\n t3 = {}, i3 = {}, s2 = {};\n }, c2.isDefined = function(e4) {\n return e4 in t3;\n }, c2;\n }();\n });\n function Be(e2) {\n return new Promise((t2, i3) => {\n Ue(e2, { success: t2, error: i3 });\n });\n }\n function We(e2) {\n e2 && !this.embed.hasPlayed && (this.embed.hasPlayed = true), this.media.paused === e2 && (this.media.paused = !e2, Z.call(this, this.media, e2 ? \"play\" : \"pause\"));\n }\n const ze = { setup() {\n const e2 = this;\n R(e2.elements.wrapper, e2.config.classNames.embed, true), e2.options.speed = e2.config.speed.options, ue.call(e2), S.object(window.Vimeo) ? ze.ready.call(e2) : Be(e2.config.urls.vimeo.sdk).then(() => {\n ze.ready.call(e2);\n }).catch((t2) => {\n e2.debug.warn(\"Vimeo SDK (player.js) failed to load\", t2);\n });\n }, ready() {\n const e2 = this, t2 = e2.config.vimeo, { premium: i3, referrerPolicy: s2, ...n2 } = t2;\n let a2 = e2.media.getAttribute(\"src\"), l2 = \"\";\n S.empty(a2) ? (a2 = e2.media.getAttribute(e2.config.attributes.embed.id), l2 = e2.media.getAttribute(e2.config.attributes.embed.hash)) : l2 = function(e3) {\n const t3 = e3.match(/^.*(vimeo.com\\/|video\\/)(\\d+)(\\?.*&*h=|\\/)+([\\d,a-f]+)/);\n return t3 && 5 === t3.length ? t3[4] : null;\n }(a2);\n const r2 = l2 ? { h: l2 } : {};\n i3 && Object.assign(n2, { controls: false, sidedock: false });\n const o2 = Ne({ loop: e2.config.loop.active, autoplay: e2.autoplay, muted: e2.muted, gesture: \"media\", playsinline: e2.config.playsinline, ...r2, ...n2 }), c2 = (u2 = a2, S.empty(u2) ? null : S.number(Number(u2)) ? u2 : u2.match(/^.*(vimeo.com\\/|video\\/)(\\d+).*/) ? RegExp.$2 : u2);\n var u2;\n const h2 = $(\"iframe\"), d2 = me(e2.config.urls.vimeo.iframe, c2, o2);\n if (h2.setAttribute(\"src\", d2), h2.setAttribute(\"allowfullscreen\", \"\"), h2.setAttribute(\"allow\", [\"autoplay\", \"fullscreen\", \"picture-in-picture\", \"encrypted-media\", \"accelerometer\", \"gyroscope\"].join(\"; \")), S.empty(s2) || h2.setAttribute(\"referrerPolicy\", s2), i3 || !t2.customControls) h2.setAttribute(\"data-poster\", e2.poster), e2.media = q(h2, e2.media);\n else {\n const t3 = $(\"div\", { class: e2.config.classNames.embedContainer, \"data-poster\": e2.poster });\n t3.appendChild(h2), e2.media = q(t3, e2.media);\n }\n t2.customControls || Te(me(e2.config.urls.vimeo.api, d2)).then((t3) => {\n !S.empty(t3) && t3.thumbnail_url && Fe.setPoster.call(e2, t3.thumbnail_url).catch(() => {\n });\n }), e2.embed = new window.Vimeo.Player(h2, { autopause: e2.config.autopause, muted: e2.muted }), e2.media.paused = true, e2.media.currentTime = 0, e2.supported.ui && e2.embed.disableTextTrack(), e2.media.play = () => (We.call(e2, true), e2.embed.play()), e2.media.pause = () => (We.call(e2, false), e2.embed.pause()), e2.media.stop = () => {\n e2.pause(), e2.currentTime = 0;\n };\n let { currentTime: m2 } = e2.media;\n Object.defineProperty(e2.media, \"currentTime\", { get: () => m2, set(t3) {\n const { embed: i4, media: s3, paused: n3, volume: a3 } = e2, l3 = n3 && !i4.hasPlayed;\n s3.seeking = true, Z.call(e2, s3, \"seeking\"), Promise.resolve(l3 && i4.setVolume(0)).then(() => i4.setCurrentTime(t3)).then(() => l3 && i4.pause()).then(() => l3 && i4.setVolume(a3)).catch(() => {\n });\n } });\n let p2 = e2.config.speed.selected;\n Object.defineProperty(e2.media, \"playbackRate\", { get: () => p2, set(t3) {\n e2.embed.setPlaybackRate(t3).then(() => {\n p2 = t3, Z.call(e2, e2.media, \"ratechange\");\n }).catch(() => {\n e2.options.speed = [1];\n });\n } });\n let { volume: g2 } = e2.config;\n Object.defineProperty(e2.media, \"volume\", { get: () => g2, set(t3) {\n e2.embed.setVolume(t3).then(() => {\n g2 = t3, Z.call(e2, e2.media, \"volumechange\");\n });\n } });\n let { muted: f2 } = e2.config;\n Object.defineProperty(e2.media, \"muted\", { get: () => f2, set(t3) {\n const i4 = !!S.boolean(t3) && t3;\n e2.embed.setMuted(!!i4 || e2.config.muted).then(() => {\n f2 = i4, Z.call(e2, e2.media, \"volumechange\");\n });\n } });\n let y2, { loop: b2 } = e2.config;\n Object.defineProperty(e2.media, \"loop\", { get: () => b2, set(t3) {\n const i4 = S.boolean(t3) ? t3 : e2.config.loop.active;\n e2.embed.setLoop(i4).then(() => {\n b2 = i4;\n });\n } }), e2.embed.getVideoUrl().then((t3) => {\n y2 = t3, Pe.setDownloadUrl.call(e2);\n }).catch((e3) => {\n this.debug.warn(e3);\n }), Object.defineProperty(e2.media, \"currentSrc\", { get: () => y2 }), Object.defineProperty(e2.media, \"ended\", { get: () => e2.currentTime === e2.duration }), Promise.all([e2.embed.getVideoWidth(), e2.embed.getVideoHeight()]).then((t3) => {\n const [i4, s3] = t3;\n e2.embed.ratio = he(i4, s3), ue.call(this);\n }), e2.embed.setAutopause(e2.config.autopause).then((t3) => {\n e2.config.autopause = t3;\n }), e2.embed.getVideoTitle().then((t3) => {\n e2.config.title = t3, Fe.setTitle.call(this);\n }), e2.embed.getCurrentTime().then((t3) => {\n m2 = t3, Z.call(e2, e2.media, \"timeupdate\");\n }), e2.embed.getDuration().then((t3) => {\n e2.media.duration = t3, Z.call(e2, e2.media, \"durationchange\");\n }), e2.embed.getTextTracks().then((t3) => {\n e2.media.textTracks = t3, xe.setup.call(e2);\n }), e2.embed.on(\"cuechange\", ({ cues: t3 = [] }) => {\n const i4 = t3.map((e3) => function(e4) {\n const t4 = document.createDocumentFragment(), i5 = document.createElement(\"div\");\n return t4.appendChild(i5), i5.innerHTML = e4, t4.firstChild.innerText;\n }(e3.text));\n xe.updateCues.call(e2, i4);\n }), e2.embed.on(\"loaded\", () => {\n if (e2.embed.getPaused().then((t3) => {\n We.call(e2, !t3), t3 || Z.call(e2, e2.media, \"playing\");\n }), S.element(e2.embed.element) && e2.supported.ui) {\n e2.embed.element.setAttribute(\"tabindex\", -1);\n }\n }), e2.embed.on(\"bufferstart\", () => {\n Z.call(e2, e2.media, \"waiting\");\n }), e2.embed.on(\"bufferend\", () => {\n Z.call(e2, e2.media, \"playing\");\n }), e2.embed.on(\"play\", () => {\n We.call(e2, true), Z.call(e2, e2.media, \"playing\");\n }), e2.embed.on(\"pause\", () => {\n We.call(e2, false);\n }), e2.embed.on(\"timeupdate\", (t3) => {\n e2.media.seeking = false, m2 = t3.seconds, Z.call(e2, e2.media, \"timeupdate\");\n }), e2.embed.on(\"progress\", (t3) => {\n e2.media.buffered = t3.percent, Z.call(e2, e2.media, \"progress\"), 1 === parseInt(t3.percent, 10) && Z.call(e2, e2.media, \"canplaythrough\"), e2.embed.getDuration().then((t4) => {\n t4 !== e2.media.duration && (e2.media.duration = t4, Z.call(e2, e2.media, \"durationchange\"));\n });\n }), e2.embed.on(\"seeked\", () => {\n e2.media.seeking = false, Z.call(e2, e2.media, \"seeked\");\n }), e2.embed.on(\"ended\", () => {\n e2.media.paused = true, Z.call(e2, e2.media, \"ended\");\n }), e2.embed.on(\"error\", (t3) => {\n e2.media.error = t3, Z.call(e2, e2.media, \"error\");\n }), t2.customControls && setTimeout(() => Fe.build.call(e2), 0);\n } };\n function Ke(e2) {\n e2 && !this.embed.hasPlayed && (this.embed.hasPlayed = true), this.media.paused === e2 && (this.media.paused = !e2, Z.call(this, this.media, e2 ? \"play\" : \"pause\"));\n }\n function Ye(e2) {\n return e2.noCookie ? \"https://www.youtube-nocookie.com\" : \"http:\" === window.location.protocol ? \"http://www.youtube.com\" : void 0;\n }\n const Qe = { setup() {\n if (R(this.elements.wrapper, this.config.classNames.embed, true), S.object(window.YT) && S.function(window.YT.Player)) Qe.ready.call(this);\n else {\n const e2 = window.onYouTubeIframeAPIReady;\n window.onYouTubeIframeAPIReady = () => {\n S.function(e2) && e2(), Qe.ready.call(this);\n }, Be(this.config.urls.youtube.sdk).catch((e3) => {\n this.debug.warn(\"YouTube API failed to load\", e3);\n });\n }\n }, getTitle(e2) {\n Te(me(this.config.urls.youtube.api, e2)).then((e3) => {\n if (S.object(e3)) {\n const { title: t2, height: i3, width: s2 } = e3;\n this.config.title = t2, Fe.setTitle.call(this), this.embed.ratio = he(s2, i3);\n }\n ue.call(this);\n }).catch(() => {\n ue.call(this);\n });\n }, ready() {\n const e2 = this, t2 = e2.config.youtube, i3 = e2.media && e2.media.getAttribute(\"id\");\n if (!S.empty(i3) && i3.startsWith(\"youtube-\")) return;\n let s2 = e2.media.getAttribute(\"src\");\n S.empty(s2) && (s2 = e2.media.getAttribute(this.config.attributes.embed.id));\n const n2 = (a2 = s2, S.empty(a2) ? null : a2.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/) ? RegExp.$2 : a2);\n var a2;\n const l2 = $(\"div\", { id: `${e2.provider}-${Math.floor(1e4 * Math.random())}`, \"data-poster\": t2.customControls ? e2.poster : void 0 });\n if (e2.media = q(l2, e2.media), t2.customControls) {\n const t3 = (e3) => `https://i.ytimg.com/vi/${n2}/${e3}default.jpg`;\n Re(t3(\"maxres\"), 121).catch(() => Re(t3(\"sd\"), 121)).catch(() => Re(t3(\"hq\"))).then((t4) => Fe.setPoster.call(e2, t4.src)).then((t4) => {\n t4.includes(\"maxres\") || (e2.elements.poster.style.backgroundSize = \"cover\");\n }).catch(() => {\n });\n }\n e2.embed = new window.YT.Player(e2.media, { videoId: n2, host: Ye(t2), playerVars: x({}, { autoplay: e2.config.autoplay ? 1 : 0, hl: e2.config.hl, controls: e2.supported.ui && t2.customControls ? 0 : 1, disablekb: 1, playsinline: e2.config.playsinline && !e2.config.fullscreen.iosNative ? 1 : 0, cc_load_policy: e2.captions.active ? 1 : 0, cc_lang_pref: e2.config.captions.language, widget_referrer: window ? window.location.href : null }, t2), events: { onError(t3) {\n if (!e2.media.error) {\n const i4 = t3.data, s3 = { 2: \"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.\", 5: \"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.\", 100: \"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.\", 101: \"The owner of the requested video does not allow it to be played in embedded players.\", 150: \"The owner of the requested video does not allow it to be played in embedded players.\" }[i4] || \"An unknown error occurred\";\n e2.media.error = { code: i4, message: s3 }, Z.call(e2, e2.media, \"error\");\n }\n }, onPlaybackRateChange(t3) {\n const i4 = t3.target;\n e2.media.playbackRate = i4.getPlaybackRate(), Z.call(e2, e2.media, \"ratechange\");\n }, onReady(i4) {\n if (S.function(e2.media.play)) return;\n const s3 = i4.target;\n Qe.getTitle.call(e2, n2), e2.media.play = () => {\n Ke.call(e2, true), s3.playVideo();\n }, e2.media.pause = () => {\n Ke.call(e2, false), s3.pauseVideo();\n }, e2.media.stop = () => {\n s3.stopVideo();\n }, e2.media.duration = s3.getDuration(), e2.media.paused = true, e2.media.currentTime = 0, Object.defineProperty(e2.media, \"currentTime\", { get: () => Number(s3.getCurrentTime()), set(t3) {\n e2.paused && !e2.embed.hasPlayed && e2.embed.mute(), e2.media.seeking = true, Z.call(e2, e2.media, \"seeking\"), s3.seekTo(t3);\n } }), Object.defineProperty(e2.media, \"playbackRate\", { get: () => s3.getPlaybackRate(), set(e3) {\n s3.setPlaybackRate(e3);\n } });\n let { volume: a3 } = e2.config;\n Object.defineProperty(e2.media, \"volume\", { get: () => a3, set(t3) {\n a3 = t3, s3.setVolume(100 * a3), Z.call(e2, e2.media, \"volumechange\");\n } });\n let { muted: l3 } = e2.config;\n Object.defineProperty(e2.media, \"muted\", { get: () => l3, set(t3) {\n const i5 = S.boolean(t3) ? t3 : l3;\n l3 = i5, s3[i5 ? \"mute\" : \"unMute\"](), s3.setVolume(100 * a3), Z.call(e2, e2.media, \"volumechange\");\n } }), Object.defineProperty(e2.media, \"currentSrc\", { get: () => s3.getVideoUrl() }), Object.defineProperty(e2.media, \"ended\", { get: () => e2.currentTime === e2.duration });\n const r2 = s3.getAvailablePlaybackRates();\n e2.options.speed = r2.filter((t3) => e2.config.speed.options.includes(t3)), e2.supported.ui && t2.customControls && e2.media.setAttribute(\"tabindex\", -1), Z.call(e2, e2.media, \"timeupdate\"), Z.call(e2, e2.media, \"durationchange\"), clearInterval(e2.timers.buffering), e2.timers.buffering = setInterval(() => {\n e2.media.buffered = s3.getVideoLoadedFraction(), (null === e2.media.lastBuffered || e2.media.lastBuffered < e2.media.buffered) && Z.call(e2, e2.media, \"progress\"), e2.media.lastBuffered = e2.media.buffered, 1 === e2.media.buffered && (clearInterval(e2.timers.buffering), Z.call(e2, e2.media, \"canplaythrough\"));\n }, 200), t2.customControls && setTimeout(() => Fe.build.call(e2), 50);\n }, onStateChange(i4) {\n const s3 = i4.target;\n clearInterval(e2.timers.playing);\n switch (e2.media.seeking && [1, 2].includes(i4.data) && (e2.media.seeking = false, Z.call(e2, e2.media, \"seeked\")), i4.data) {\n case -1:\n Z.call(e2, e2.media, \"timeupdate\"), e2.media.buffered = s3.getVideoLoadedFraction(), Z.call(e2, e2.media, \"progress\");\n break;\n case 0:\n Ke.call(e2, false), e2.media.loop ? (s3.stopVideo(), s3.playVideo()) : Z.call(e2, e2.media, \"ended\");\n break;\n case 1:\n t2.customControls && !e2.config.autoplay && e2.media.paused && !e2.embed.hasPlayed ? e2.media.pause() : (Ke.call(e2, true), Z.call(e2, e2.media, \"playing\"), e2.timers.playing = setInterval(() => {\n Z.call(e2, e2.media, \"timeupdate\");\n }, 50), e2.media.duration !== s3.getDuration() && (e2.media.duration = s3.getDuration(), Z.call(e2, e2.media, \"durationchange\")));\n break;\n case 2:\n e2.muted || e2.embed.unMute(), Ke.call(e2, false);\n break;\n case 3:\n Z.call(e2, e2.media, \"waiting\");\n }\n Z.call(e2, e2.elements.container, \"statechange\", false, { code: i4.data });\n } } });\n } }, Xe = { setup() {\n this.media ? (R(this.elements.container, this.config.classNames.type.replace(\"{0}\", this.type), true), R(this.elements.container, this.config.classNames.provider.replace(\"{0}\", this.provider), true), this.isEmbed && R(this.elements.container, this.config.classNames.type.replace(\"{0}\", \"video\"), true), this.isVideo && (this.elements.wrapper = $(\"div\", { class: this.config.classNames.video }), L(this.media, this.elements.wrapper), this.elements.poster = $(\"div\", { class: this.config.classNames.poster }), this.elements.wrapper.appendChild(this.elements.poster)), this.isHTML5 ? de.setup.call(this) : this.isYouTube ? Qe.setup.call(this) : this.isVimeo && ze.setup.call(this)) : this.debug.warn(\"No media element found!\");\n } };\n class Je {\n constructor(t2) {\n e(this, \"load\", () => {\n this.enabled && (S.object(window.google) && S.object(window.google.ima) ? this.ready() : Be(this.player.config.urls.googleIMA.sdk).then(() => {\n this.ready();\n }).catch(() => {\n this.trigger(\"error\", new Error(\"Google IMA SDK failed to load\"));\n }));\n }), e(this, \"ready\", () => {\n var e2;\n this.enabled || ((e2 = this).manager && e2.manager.destroy(), e2.elements.displayContainer && e2.elements.displayContainer.destroy(), e2.elements.container.remove()), this.startSafetyTimer(12e3, \"ready()\"), this.managerPromise.then(() => {\n this.clearSafetyTimer(\"onAdsManagerLoaded()\");\n }), this.listeners(), this.setupIMA();\n }), e(this, \"setupIMA\", () => {\n this.elements.container = $(\"div\", { class: this.player.config.classNames.ads }), this.player.elements.container.appendChild(this.elements.container), google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED), google.ima.settings.setLocale(this.player.config.ads.language), google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline), this.elements.displayContainer = new google.ima.AdDisplayContainer(this.elements.container, this.player.media), this.loader = new google.ima.AdsLoader(this.elements.displayContainer), this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, (e2) => this.onAdsManagerLoaded(e2), false), this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, (e2) => this.onAdError(e2), false), this.requestAds();\n }), e(this, \"requestAds\", () => {\n const { container: e2 } = this.player.elements;\n try {\n const t3 = new google.ima.AdsRequest();\n t3.adTagUrl = this.tagUrl, t3.linearAdSlotWidth = e2.offsetWidth, t3.linearAdSlotHeight = e2.offsetHeight, t3.nonLinearAdSlotWidth = e2.offsetWidth, t3.nonLinearAdSlotHeight = e2.offsetHeight, t3.forceNonLinearFullSlot = false, t3.setAdWillPlayMuted(!this.player.muted), this.loader.requestAds(t3);\n } catch (e3) {\n this.onAdError(e3);\n }\n }), e(this, \"pollCountdown\", (e2 = false) => {\n if (!e2) return clearInterval(this.countdownTimer), void this.elements.container.removeAttribute(\"data-badge-text\");\n this.countdownTimer = setInterval(() => {\n const e3 = Ee(Math.max(this.manager.getRemainingTime(), 0)), t3 = `${ve.get(\"advertisement\", this.player.config)} - ${e3}`;\n this.elements.container.setAttribute(\"data-badge-text\", t3);\n }, 100);\n }), e(this, \"onAdsManagerLoaded\", (e2) => {\n if (!this.enabled) return;\n const t3 = new google.ima.AdsRenderingSettings();\n t3.restoreCustomPlaybackStateOnAdBreakComplete = true, t3.enablePreloading = true, this.manager = e2.getAdsManager(this.player, t3), this.cuePoints = this.manager.getCuePoints(), this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, (e3) => this.onAdError(e3)), Object.keys(google.ima.AdEvent.Type).forEach((e3) => {\n this.manager.addEventListener(google.ima.AdEvent.Type[e3], (e4) => this.onAdEvent(e4));\n }), this.trigger(\"loaded\");\n }), e(this, \"addCuePoints\", () => {\n S.empty(this.cuePoints) || this.cuePoints.forEach((e2) => {\n if (0 !== e2 && -1 !== e2 && e2 < this.player.duration) {\n const t3 = this.player.elements.progress;\n if (S.element(t3)) {\n const i3 = 100 / this.player.duration * e2, s2 = $(\"span\", { class: this.player.config.classNames.cues });\n s2.style.left = `${i3.toString()}%`, t3.appendChild(s2);\n }\n }\n });\n }), e(this, \"onAdEvent\", (e2) => {\n const { container: t3 } = this.player.elements, i3 = e2.getAd(), s2 = e2.getAdData();\n switch (((e3) => {\n Z.call(this.player, this.player.media, `ads${e3.replace(/_/g, \"\").toLowerCase()}`);\n })(e2.type), e2.type) {\n case google.ima.AdEvent.Type.LOADED:\n this.trigger(\"loaded\"), this.pollCountdown(true), i3.isLinear() || (i3.width = t3.offsetWidth, i3.height = t3.offsetHeight);\n break;\n case google.ima.AdEvent.Type.STARTED:\n this.manager.setVolume(this.player.volume);\n break;\n case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:\n this.player.ended ? this.loadAds() : this.loader.contentComplete();\n break;\n case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:\n this.pauseContent();\n break;\n case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:\n this.pollCountdown(), this.resumeContent();\n break;\n case google.ima.AdEvent.Type.LOG:\n s2.adError && this.player.debug.warn(`Non-fatal ad error: ${s2.adError.getMessage()}`);\n }\n }), e(this, \"onAdError\", (e2) => {\n this.cancel(), this.player.debug.warn(\"Ads error\", e2);\n }), e(this, \"listeners\", () => {\n const { container: e2 } = this.player.elements;\n let t3;\n this.player.on(\"canplay\", () => {\n this.addCuePoints();\n }), this.player.on(\"ended\", () => {\n this.loader.contentComplete();\n }), this.player.on(\"timeupdate\", () => {\n t3 = this.player.currentTime;\n }), this.player.on(\"seeked\", () => {\n const e3 = this.player.currentTime;\n S.empty(this.cuePoints) || this.cuePoints.forEach((i3, s2) => {\n t3 < i3 && i3 < e3 && (this.manager.discardAdBreak(), this.cuePoints.splice(s2, 1));\n });\n }), window.addEventListener(\"resize\", () => {\n this.manager && this.manager.resize(e2.offsetWidth, e2.offsetHeight, google.ima.ViewMode.NORMAL);\n });\n }), e(this, \"play\", () => {\n const { container: e2 } = this.player.elements;\n this.managerPromise || this.resumeContent(), this.managerPromise.then(() => {\n this.manager.setVolume(this.player.volume), this.elements.displayContainer.initialize();\n try {\n this.initialized || (this.manager.init(e2.offsetWidth, e2.offsetHeight, google.ima.ViewMode.NORMAL), this.manager.start()), this.initialized = true;\n } catch (e3) {\n this.onAdError(e3);\n }\n }).catch(() => {\n });\n }), e(this, \"resumeContent\", () => {\n this.elements.container.style.zIndex = \"\", this.playing = false, ie(this.player.media.play());\n }), e(this, \"pauseContent\", () => {\n this.elements.container.style.zIndex = 3, this.playing = true, this.player.media.pause();\n }), e(this, \"cancel\", () => {\n this.initialized && this.resumeContent(), this.trigger(\"error\"), this.loadAds();\n }), e(this, \"loadAds\", () => {\n this.managerPromise.then(() => {\n this.manager && this.manager.destroy(), this.managerPromise = new Promise((e2) => {\n this.on(\"loaded\", e2), this.player.debug.log(this.manager);\n }), this.initialized = false, this.requestAds();\n }).catch(() => {\n });\n }), e(this, \"trigger\", (e2, ...t3) => {\n const i3 = this.events[e2];\n S.array(i3) && i3.forEach((e3) => {\n S.function(e3) && e3.apply(this, t3);\n });\n }), e(this, \"on\", (e2, t3) => (S.array(this.events[e2]) || (this.events[e2] = []), this.events[e2].push(t3), this)), e(this, \"startSafetyTimer\", (e2, t3) => {\n this.player.debug.log(`Safety timer invoked from: ${t3}`), this.safetyTimer = setTimeout(() => {\n this.cancel(), this.clearSafetyTimer(\"startSafetyTimer()\");\n }, e2);\n }), e(this, \"clearSafetyTimer\", (e2) => {\n S.nullOrUndefined(this.safetyTimer) || (this.player.debug.log(`Safety timer cleared from: ${e2}`), clearTimeout(this.safetyTimer), this.safetyTimer = null);\n }), this.player = t2, this.config = t2.config.ads, this.playing = false, this.initialized = false, this.elements = { container: null, displayContainer: null }, this.manager = null, this.loader = null, this.cuePoints = null, this.events = {}, this.safetyTimer = null, this.countdownTimer = null, this.managerPromise = new Promise((e2, t3) => {\n this.on(\"loaded\", e2), this.on(\"error\", t3);\n }), this.load();\n }\n get enabled() {\n const { config: e2 } = this;\n return this.player.isHTML5 && this.player.isVideo && e2.enabled && (!S.empty(e2.publisherId) || S.url(e2.tagUrl));\n }\n get tagUrl() {\n const { config: e2 } = this;\n if (S.url(e2.tagUrl)) return e2.tagUrl;\n return `https://go.aniview.com/api/adserver6/vast/?${Ne({ AV_PUBLISHERID: \"58c25bb0073ef448b1087ad6\", AV_CHANNELID: \"5a0458dc28a06145e4519d21\", AV_URL: window.location.hostname, cb: Date.now(), AV_WIDTH: 640, AV_HEIGHT: 480, AV_CDIM2: e2.publisherId })}`;\n }\n }\n function Ge(e2 = 0, t2 = 0, i3 = 255) {\n return Math.min(Math.max(e2, t2), i3);\n }\n const Ze = (e2) => {\n const t2 = [];\n return e2.split(/\\r\\n\\r\\n|\\n\\n|\\r\\r/).forEach((e3) => {\n const i3 = {};\n e3.split(/\\r\\n|\\n|\\r/).forEach((e4) => {\n if (S.number(i3.startTime)) {\n if (!S.empty(e4.trim()) && S.empty(i3.text)) {\n const t3 = e4.trim().split(\"#xywh=\");\n [i3.text] = t3, t3[1] && ([i3.x, i3.y, i3.w, i3.h] = t3[1].split(\",\"));\n }\n } else {\n const t3 = e4.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);\n t3 && (i3.startTime = 60 * Number(t3[1] || 0) * 60 + 60 * Number(t3[2]) + Number(t3[3]) + Number(`0.${t3[4]}`), i3.endTime = 60 * Number(t3[6] || 0) * 60 + 60 * Number(t3[7]) + Number(t3[8]) + Number(`0.${t3[9]}`));\n }\n }), i3.text && t2.push(i3);\n }), t2;\n }, et = (e2, t2) => {\n const i3 = {};\n return e2 > t2.width / t2.height ? (i3.width = t2.width, i3.height = 1 / e2 * t2.width) : (i3.height = t2.height, i3.width = e2 * t2.height), i3;\n };\n class tt {\n constructor(t2) {\n e(this, \"load\", () => {\n this.player.elements.display.seekTooltip && (this.player.elements.display.seekTooltip.hidden = this.enabled), this.enabled && this.getThumbnails().then(() => {\n this.enabled && (this.render(), this.determineContainerAutoSizing(), this.listeners(), this.loaded = true);\n });\n }), e(this, \"getThumbnails\", () => new Promise((e2) => {\n const { src: t3 } = this.player.config.previewThumbnails;\n if (S.empty(t3)) throw new Error(\"Missing previewThumbnails.src config attribute\");\n const i3 = () => {\n this.thumbnails.sort((e3, t4) => e3.height - t4.height), this.player.debug.log(\"Preview thumbnails\", this.thumbnails), e2();\n };\n if (S.function(t3)) t3((e3) => {\n this.thumbnails = e3, i3();\n });\n else {\n const e3 = (S.string(t3) ? [t3] : t3).map((e4) => this.getThumbnail(e4));\n Promise.all(e3).then(i3);\n }\n })), e(this, \"getThumbnail\", (e2) => new Promise((t3) => {\n Te(e2).then((i3) => {\n const s2 = { frames: Ze(i3), height: null, urlPrefix: \"\" };\n s2.frames[0].text.startsWith(\"/\") || s2.frames[0].text.startsWith(\"http://\") || s2.frames[0].text.startsWith(\"https://\") || (s2.urlPrefix = e2.substring(0, e2.lastIndexOf(\"/\") + 1));\n const n2 = new Image();\n n2.onload = () => {\n s2.height = n2.naturalHeight, s2.width = n2.naturalWidth, this.thumbnails.push(s2), t3();\n }, n2.src = s2.urlPrefix + s2.frames[0].text;\n });\n })), e(this, \"startMove\", (e2) => {\n if (this.loaded && S.event(e2) && [\"touchmove\", \"mousemove\"].includes(e2.type) && this.player.media.duration) {\n if (\"touchmove\" === e2.type) this.seekTime = this.player.media.duration * (this.player.elements.inputs.seek.value / 100);\n else {\n var t3, i3;\n const s2 = this.player.elements.progress.getBoundingClientRect(), n2 = 100 / s2.width * (e2.pageX - s2.left);\n this.seekTime = this.player.media.duration * (n2 / 100), this.seekTime < 0 && (this.seekTime = 0), this.seekTime > this.player.media.duration - 1 && (this.seekTime = this.player.media.duration - 1), this.mousePosX = e2.pageX, this.elements.thumb.time.innerText = Ee(this.seekTime);\n const a2 = null === (t3 = this.player.config.markers) || void 0 === t3 || null === (i3 = t3.points) || void 0 === i3 ? void 0 : i3.find(({ time: e3 }) => e3 === Math.round(this.seekTime));\n a2 && this.elements.thumb.time.insertAdjacentHTML(\"afterbegin\", `${a2.label} `);\n }\n this.showImageAtCurrentTime();\n }\n }), e(this, \"endMove\", () => {\n this.toggleThumbContainer(false, true);\n }), e(this, \"startScrubbing\", (e2) => {\n (S.nullOrUndefined(e2.button) || false === e2.button || 0 === e2.button) && (this.mouseDown = true, this.player.media.duration && (this.toggleScrubbingContainer(true), this.toggleThumbContainer(false, true), this.showImageAtCurrentTime()));\n }), e(this, \"endScrubbing\", () => {\n this.mouseDown = false, Math.ceil(this.lastTime) === Math.ceil(this.player.media.currentTime) ? this.toggleScrubbingContainer(false) : G.call(this.player, this.player.media, \"timeupdate\", () => {\n this.mouseDown || this.toggleScrubbingContainer(false);\n });\n }), e(this, \"listeners\", () => {\n this.player.on(\"play\", () => {\n this.toggleThumbContainer(false, true);\n }), this.player.on(\"seeked\", () => {\n this.toggleThumbContainer(false);\n }), this.player.on(\"timeupdate\", () => {\n this.lastTime = this.player.media.currentTime;\n });\n }), e(this, \"render\", () => {\n this.elements.thumb.container = $(\"div\", { class: this.player.config.classNames.previewThumbnails.thumbContainer }), this.elements.thumb.imageContainer = $(\"div\", { class: this.player.config.classNames.previewThumbnails.imageContainer }), this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);\n const e2 = $(\"div\", { class: this.player.config.classNames.previewThumbnails.timeContainer });\n this.elements.thumb.time = $(\"span\", {}, \"00:00\"), e2.appendChild(this.elements.thumb.time), this.elements.thumb.imageContainer.appendChild(e2), S.element(this.player.elements.progress) && this.player.elements.progress.appendChild(this.elements.thumb.container), this.elements.scrubbing.container = $(\"div\", { class: this.player.config.classNames.previewThumbnails.scrubbingContainer }), this.player.elements.wrapper.appendChild(this.elements.scrubbing.container);\n }), e(this, \"destroy\", () => {\n this.elements.thumb.container && this.elements.thumb.container.remove(), this.elements.scrubbing.container && this.elements.scrubbing.container.remove();\n }), e(this, \"showImageAtCurrentTime\", () => {\n this.mouseDown ? this.setScrubbingContainerSize() : this.setThumbContainerSizeAndPos();\n const e2 = this.thumbnails[0].frames.findIndex((e3) => this.seekTime >= e3.startTime && this.seekTime <= e3.endTime), t3 = e2 >= 0;\n let i3 = 0;\n this.mouseDown || this.toggleThumbContainer(t3), t3 && (this.thumbnails.forEach((t4, s2) => {\n this.loadedImages.includes(t4.frames[e2].text) && (i3 = s2);\n }), e2 !== this.showingThumb && (this.showingThumb = e2, this.loadImage(i3)));\n }), e(this, \"loadImage\", (e2 = 0) => {\n const t3 = this.showingThumb, i3 = this.thumbnails[e2], { urlPrefix: s2 } = i3, n2 = i3.frames[t3], a2 = i3.frames[t3].text, l2 = s2 + a2;\n if (this.currentImageElement && this.currentImageElement.dataset.filename === a2) this.showImage(this.currentImageElement, n2, e2, t3, a2, false), this.currentImageElement.dataset.index = t3, this.removeOldImages(this.currentImageElement);\n else {\n this.loadingImage && this.usingSprites && (this.loadingImage.onload = null);\n const i4 = new Image();\n i4.src = l2, i4.dataset.index = t3, i4.dataset.filename = a2, this.showingThumbFilename = a2, this.player.debug.log(`Loading image: ${l2}`), i4.onload = () => this.showImage(i4, n2, e2, t3, a2, true), this.loadingImage = i4, this.removeOldImages(i4);\n }\n }), e(this, \"showImage\", (e2, t3, i3, s2, n2, a2 = true) => {\n this.player.debug.log(`Showing thumb: ${n2}. num: ${s2}. qual: ${i3}. newimg: ${a2}`), this.setImageSizeAndOffset(e2, t3), a2 && (this.currentImageContainer.appendChild(e2), this.currentImageElement = e2, this.loadedImages.includes(n2) || this.loadedImages.push(n2)), this.preloadNearby(s2, true).then(this.preloadNearby(s2, false)).then(this.getHigherQuality(i3, e2, t3, n2));\n }), e(this, \"removeOldImages\", (e2) => {\n Array.from(this.currentImageContainer.children).forEach((t3) => {\n if (\"img\" !== t3.tagName.toLowerCase()) return;\n const i3 = this.usingSprites ? 500 : 1e3;\n if (t3.dataset.index !== e2.dataset.index && !t3.dataset.deleting) {\n t3.dataset.deleting = true;\n const { currentImageContainer: e3 } = this;\n setTimeout(() => {\n e3.removeChild(t3), this.player.debug.log(`Removing thumb: ${t3.dataset.filename}`);\n }, i3);\n }\n });\n }), e(this, \"preloadNearby\", (e2, t3 = true) => new Promise((i3) => {\n setTimeout(() => {\n const s2 = this.thumbnails[0].frames[e2].text;\n if (this.showingThumbFilename === s2) {\n let n2;\n n2 = t3 ? this.thumbnails[0].frames.slice(e2) : this.thumbnails[0].frames.slice(0, e2).reverse();\n let a2 = false;\n n2.forEach((e3) => {\n const t4 = e3.text;\n if (t4 !== s2 && !this.loadedImages.includes(t4)) {\n a2 = true, this.player.debug.log(`Preloading thumb filename: ${t4}`);\n const { urlPrefix: e4 } = this.thumbnails[0], s3 = e4 + t4, n3 = new Image();\n n3.src = s3, n3.onload = () => {\n this.player.debug.log(`Preloaded thumb filename: ${t4}`), this.loadedImages.includes(t4) || this.loadedImages.push(t4), i3();\n };\n }\n }), a2 || i3();\n }\n }, 300);\n })), e(this, \"getHigherQuality\", (e2, t3, i3, s2) => {\n if (e2 < this.thumbnails.length - 1) {\n let n2 = t3.naturalHeight;\n this.usingSprites && (n2 = i3.h), n2 < this.thumbContainerHeight && setTimeout(() => {\n this.showingThumbFilename === s2 && (this.player.debug.log(`Showing higher quality thumb for: ${s2}`), this.loadImage(e2 + 1));\n }, 300);\n }\n }), e(this, \"toggleThumbContainer\", (e2 = false, t3 = false) => {\n const i3 = this.player.config.classNames.previewThumbnails.thumbContainerShown;\n this.elements.thumb.container.classList.toggle(i3, e2), !e2 && t3 && (this.showingThumb = null, this.showingThumbFilename = null);\n }), e(this, \"toggleScrubbingContainer\", (e2 = false) => {\n const t3 = this.player.config.classNames.previewThumbnails.scrubbingContainerShown;\n this.elements.scrubbing.container.classList.toggle(t3, e2), e2 || (this.showingThumb = null, this.showingThumbFilename = null);\n }), e(this, \"determineContainerAutoSizing\", () => {\n (this.elements.thumb.imageContainer.clientHeight > 20 || this.elements.thumb.imageContainer.clientWidth > 20) && (this.sizeSpecifiedInCSS = true);\n }), e(this, \"setThumbContainerSizeAndPos\", () => {\n const { imageContainer: e2 } = this.elements.thumb;\n if (this.sizeSpecifiedInCSS) {\n if (e2.clientHeight > 20 && e2.clientWidth < 20) {\n const t3 = Math.floor(e2.clientHeight * this.thumbAspectRatio);\n e2.style.width = `${t3}px`;\n } else if (e2.clientHeight < 20 && e2.clientWidth > 20) {\n const t3 = Math.floor(e2.clientWidth / this.thumbAspectRatio);\n e2.style.height = `${t3}px`;\n }\n } else {\n const t3 = Math.floor(this.thumbContainerHeight * this.thumbAspectRatio);\n e2.style.height = `${this.thumbContainerHeight}px`, e2.style.width = `${t3}px`;\n }\n this.setThumbContainerPos();\n }), e(this, \"setThumbContainerPos\", () => {\n const e2 = this.player.elements.progress.getBoundingClientRect(), t3 = this.player.elements.container.getBoundingClientRect(), { container: i3 } = this.elements.thumb, s2 = t3.left - e2.left + 10, n2 = t3.right - e2.left - i3.clientWidth - 10, a2 = this.mousePosX - e2.left - i3.clientWidth / 2, l2 = Ge(a2, s2, n2);\n i3.style.left = `${l2}px`, i3.style.setProperty(\"--preview-arrow-offset\", a2 - l2 + \"px\");\n }), e(this, \"setScrubbingContainerSize\", () => {\n const { width: e2, height: t3 } = et(this.thumbAspectRatio, { width: this.player.media.clientWidth, height: this.player.media.clientHeight });\n this.elements.scrubbing.container.style.width = `${e2}px`, this.elements.scrubbing.container.style.height = `${t3}px`;\n }), e(this, \"setImageSizeAndOffset\", (e2, t3) => {\n if (!this.usingSprites) return;\n const i3 = this.thumbContainerHeight / t3.h;\n e2.style.height = e2.naturalHeight * i3 + \"px\", e2.style.width = e2.naturalWidth * i3 + \"px\", e2.style.left = `-${t3.x * i3}px`, e2.style.top = `-${t3.y * i3}px`;\n }), this.player = t2, this.thumbnails = [], this.loaded = false, this.lastMouseMoveTime = Date.now(), this.mouseDown = false, this.loadedImages = [], this.elements = { thumb: {}, scrubbing: {} }, this.load();\n }\n get enabled() {\n return this.player.isHTML5 && this.player.isVideo && this.player.config.previewThumbnails.enabled;\n }\n get currentImageContainer() {\n return this.mouseDown ? this.elements.scrubbing.container : this.elements.thumb.imageContainer;\n }\n get usingSprites() {\n return Object.keys(this.thumbnails[0].frames[0]).includes(\"w\");\n }\n get thumbAspectRatio() {\n return this.usingSprites ? this.thumbnails[0].frames[0].w / this.thumbnails[0].frames[0].h : this.thumbnails[0].width / this.thumbnails[0].height;\n }\n get thumbContainerHeight() {\n if (this.mouseDown) {\n const { height: e2 } = et(this.thumbAspectRatio, { width: this.player.media.clientWidth, height: this.player.media.clientHeight });\n return e2;\n }\n return this.sizeSpecifiedInCSS ? this.elements.thumb.imageContainer.clientHeight : Math.floor(this.player.media.clientWidth / this.thumbAspectRatio / 4);\n }\n get currentImageElement() {\n return this.mouseDown ? this.currentScrubbingImageElement : this.currentThumbnailImageElement;\n }\n set currentImageElement(e2) {\n this.mouseDown ? this.currentScrubbingImageElement = e2 : this.currentThumbnailImageElement = e2;\n }\n }\n const it = { insertElements(e2, t2) {\n S.string(t2) ? _(e2, this.media, { src: t2 }) : S.array(t2) && t2.forEach((t3) => {\n _(e2, this.media, t3);\n });\n }, change(e2) {\n N(e2, \"sources.length\") ? (de.cancelRequests.call(this), this.destroy.call(this, () => {\n this.options.quality = [], O(this.media), this.media = null, S.element(this.elements.container) && this.elements.container.removeAttribute(\"class\");\n const { sources: t2, type: i3 } = e2, [{ provider: s2 = _e.html5, src: n2 }] = t2, a2 = \"html5\" === s2 ? i3 : \"div\", l2 = \"html5\" === s2 ? {} : { src: n2 };\n Object.assign(this, { provider: s2, type: i3, supported: K.check(i3, s2, this.config.playsinline), media: $(a2, l2) }), this.elements.container.appendChild(this.media), S.boolean(e2.autoplay) && (this.config.autoplay = e2.autoplay), this.isHTML5 && (this.config.crossorigin && this.media.setAttribute(\"crossorigin\", \"\"), this.config.autoplay && this.media.setAttribute(\"autoplay\", \"\"), S.empty(e2.poster) || (this.poster = e2.poster), this.config.loop.active && this.media.setAttribute(\"loop\", \"\"), this.config.muted && this.media.setAttribute(\"muted\", \"\"), this.config.playsinline && this.media.setAttribute(\"playsinline\", \"\")), Fe.addStyleHook.call(this), this.isHTML5 && it.insertElements.call(this, \"source\", t2), this.config.title = e2.title, Xe.setup.call(this), this.isHTML5 && Object.keys(e2).includes(\"tracks\") && it.insertElements.call(this, \"track\", e2.tracks), (this.isHTML5 || this.isEmbed && !this.supported.ui) && Fe.build.call(this), this.isHTML5 && this.media.load(), S.empty(e2.previewThumbnails) || (Object.assign(this.config.previewThumbnails, e2.previewThumbnails), this.previewThumbnails && this.previewThumbnails.loaded && (this.previewThumbnails.destroy(), this.previewThumbnails = null), this.config.previewThumbnails.enabled && (this.previewThumbnails = new tt(this))), this.fullscreen.update();\n }, true)) : this.debug.warn(\"Invalid source format\");\n } };\n class st {\n constructor(t2, i3) {\n if (e(this, \"play\", () => S.function(this.media.play) ? (this.ads && this.ads.enabled && this.ads.managerPromise.then(() => this.ads.play()).catch(() => ie(this.media.play())), this.media.play()) : null), e(this, \"pause\", () => this.playing && S.function(this.media.pause) ? this.media.pause() : null), e(this, \"togglePlay\", (e2) => (S.boolean(e2) ? e2 : !this.playing) ? this.play() : this.pause()), e(this, \"stop\", () => {\n this.isHTML5 ? (this.pause(), this.restart()) : S.function(this.media.stop) && this.media.stop();\n }), e(this, \"restart\", () => {\n this.currentTime = 0;\n }), e(this, \"rewind\", (e2) => {\n this.currentTime -= S.number(e2) ? e2 : this.config.seekTime;\n }), e(this, \"forward\", (e2) => {\n this.currentTime += S.number(e2) ? e2 : this.config.seekTime;\n }), e(this, \"increaseVolume\", (e2) => {\n const t3 = this.media.muted ? 0 : this.volume;\n this.volume = t3 + (S.number(e2) ? e2 : 0);\n }), e(this, \"decreaseVolume\", (e2) => {\n this.increaseVolume(-e2);\n }), e(this, \"airplay\", () => {\n K.airplay && this.media.webkitShowPlaybackTargetPicker();\n }), e(this, \"toggleControls\", (e2) => {\n if (this.supported.ui && !this.isAudio) {\n const t3 = F(this.elements.container, this.config.classNames.hideControls), i4 = void 0 === e2 ? void 0 : !e2, s3 = R(this.elements.container, this.config.classNames.hideControls, i4);\n if (s3 && S.array(this.config.controls) && this.config.controls.includes(\"settings\") && !S.empty(this.config.settings) && Pe.toggleMenu.call(this, false), s3 !== t3) {\n const e3 = s3 ? \"controlshidden\" : \"controlsshown\";\n Z.call(this, this.media, e3);\n }\n return !s3;\n }\n return false;\n }), e(this, \"on\", (e2, t3) => {\n X.call(this, this.elements.container, e2, t3);\n }), e(this, \"once\", (e2, t3) => {\n G.call(this, this.elements.container, e2, t3);\n }), e(this, \"off\", (e2, t3) => {\n J(this.elements.container, e2, t3);\n }), e(this, \"destroy\", (e2, t3 = false) => {\n if (!this.ready) return;\n const i4 = () => {\n document.body.style.overflow = \"\", this.embed = null, t3 ? (Object.keys(this.elements).length && (O(this.elements.buttons.play), O(this.elements.captions), O(this.elements.controls), O(this.elements.wrapper), this.elements.buttons.play = null, this.elements.captions = null, this.elements.controls = null, this.elements.wrapper = null), S.function(e2) && e2()) : (ee.call(this), de.cancelRequests.call(this), q(this.elements.original, this.elements.container), Z.call(this, this.elements.original, \"destroyed\", true), S.function(e2) && e2.call(this.elements.original), this.ready = false, setTimeout(() => {\n this.elements = null, this.media = null;\n }, 200));\n };\n this.stop(), clearTimeout(this.timers.loading), clearTimeout(this.timers.controls), clearTimeout(this.timers.resized), this.isHTML5 ? (Fe.toggleNativeControls.call(this, true), i4()) : this.isYouTube ? (clearInterval(this.timers.buffering), clearInterval(this.timers.playing), null !== this.embed && S.function(this.embed.destroy) && this.embed.destroy(), i4()) : this.isVimeo && (null !== this.embed && this.embed.unload().then(i4), setTimeout(i4, 200));\n }), e(this, \"supports\", (e2) => K.mime.call(this, e2)), this.timers = {}, this.ready = false, this.loading = false, this.failed = false, this.touch = K.touch, this.media = t2, S.string(this.media) && (this.media = document.querySelectorAll(this.media)), (window.jQuery && this.media instanceof jQuery || S.nodeList(this.media) || S.array(this.media)) && (this.media = this.media[0]), this.config = x({}, Le, st.defaults, i3 || {}, (() => {\n try {\n return JSON.parse(this.media.getAttribute(\"data-plyr-config\"));\n } catch (e2) {\n return {};\n }\n })()), this.elements = { container: null, fullscreen: null, captions: null, buttons: {}, display: {}, progress: {}, inputs: {}, settings: { popup: null, menu: null, panels: {}, buttons: {} } }, this.captions = { active: null, currentTrack: -1, meta: /* @__PURE__ */ new WeakMap() }, this.fullscreen = { active: false }, this.options = { speed: [], quality: [] }, this.debug = new De(this.config.debug), this.debug.log(\"Config\", this.config), this.debug.log(\"Support\", K), S.nullOrUndefined(this.media) || !S.element(this.media)) return void this.debug.error(\"Setup failed: no suitable element passed\");\n if (this.media.plyr) return void this.debug.warn(\"Target already setup\");\n if (!this.config.enabled) return void this.debug.error(\"Setup failed: disabled by config\");\n if (!K.check().api) return void this.debug.error(\"Setup failed: no support\");\n const s2 = this.media.cloneNode(true);\n s2.autoplay = false, this.elements.original = s2;\n const n2 = this.media.tagName.toLowerCase();\n let a2 = null, l2 = null;\n switch (n2) {\n case \"div\":\n if (a2 = this.media.querySelector(\"iframe\"), S.element(a2)) {\n if (l2 = Me(a2.getAttribute(\"src\")), this.provider = function(e2) {\n return /^(https?:\\/\\/)?(www\\.)?(youtube\\.com|youtube-nocookie\\.com|youtu\\.?be)\\/.+$/.test(e2) ? _e.youtube : /^https?:\\/\\/player.vimeo.com\\/video\\/\\d{0,9}(?=\\b|\\/)/.test(e2) ? _e.vimeo : null;\n }(l2.toString()), this.elements.container = this.media, this.media = a2, this.elements.container.className = \"\", l2.search.length) {\n const e2 = [\"1\", \"true\"];\n e2.includes(l2.searchParams.get(\"autoplay\")) && (this.config.autoplay = true), e2.includes(l2.searchParams.get(\"loop\")) && (this.config.loop.active = true), this.isYouTube ? (this.config.playsinline = e2.includes(l2.searchParams.get(\"playsinline\")), this.config.youtube.hl = l2.searchParams.get(\"hl\")) : this.config.playsinline = true;\n }\n } else this.provider = this.media.getAttribute(this.config.attributes.embed.provider), this.media.removeAttribute(this.config.attributes.embed.provider);\n if (S.empty(this.provider) || !Object.values(_e).includes(this.provider)) return void this.debug.error(\"Setup failed: Invalid provider\");\n this.type = je;\n break;\n case \"video\":\n case \"audio\":\n this.type = n2, this.provider = _e.html5, this.media.hasAttribute(\"crossorigin\") && (this.config.crossorigin = true), this.media.hasAttribute(\"autoplay\") && (this.config.autoplay = true), (this.media.hasAttribute(\"playsinline\") || this.media.hasAttribute(\"webkit-playsinline\")) && (this.config.playsinline = true), this.media.hasAttribute(\"muted\") && (this.config.muted = true), this.media.hasAttribute(\"loop\") && (this.config.loop.active = true);\n break;\n default:\n return void this.debug.error(\"Setup failed: unsupported type\");\n }\n this.supported = K.check(this.type, this.provider), this.supported.api ? (this.eventListeners = [], this.listeners = new Ve(this), this.storage = new we(this), this.media.plyr = this, S.element(this.elements.container) || (this.elements.container = $(\"div\"), L(this.media, this.elements.container)), Fe.migrateStyles.call(this), Fe.addStyleHook.call(this), Xe.setup.call(this), this.config.debug && X.call(this, this.elements.container, this.config.events.join(\" \"), (e2) => {\n this.debug.log(`event: ${e2.type}`);\n }), this.fullscreen = new He(this), (this.isHTML5 || this.isEmbed && !this.supported.ui) && Fe.build.call(this), this.listeners.container(), this.listeners.global(), this.config.ads.enabled && (this.ads = new Je(this)), this.isHTML5 && this.config.autoplay && this.once(\"canplay\", () => ie(this.play())), this.lastSeekTime = 0, this.config.previewThumbnails.enabled && (this.previewThumbnails = new tt(this))) : this.debug.error(\"Setup failed: no support\");\n }\n get isHTML5() {\n return this.provider === _e.html5;\n }\n get isEmbed() {\n return this.isYouTube || this.isVimeo;\n }\n get isYouTube() {\n return this.provider === _e.youtube;\n }\n get isVimeo() {\n return this.provider === _e.vimeo;\n }\n get isVideo() {\n return this.type === je;\n }\n get isAudio() {\n return this.type === Oe;\n }\n get playing() {\n return Boolean(this.ready && !this.paused && !this.ended);\n }\n get paused() {\n return Boolean(this.media.paused);\n }\n get stopped() {\n return Boolean(this.paused && 0 === this.currentTime);\n }\n get ended() {\n return Boolean(this.media.ended);\n }\n set currentTime(e2) {\n if (!this.duration) return;\n const t2 = S.number(e2) && e2 > 0;\n this.media.currentTime = t2 ? Math.min(e2, this.duration) : 0, this.debug.log(`Seeking to ${this.currentTime} seconds`);\n }\n get currentTime() {\n return Number(this.media.currentTime);\n }\n get buffered() {\n const { buffered: e2 } = this.media;\n return S.number(e2) ? e2 : e2 && e2.length && this.duration > 0 ? e2.end(0) / this.duration : 0;\n }\n get seeking() {\n return Boolean(this.media.seeking);\n }\n get duration() {\n const e2 = parseFloat(this.config.duration), t2 = (this.media || {}).duration, i3 = S.number(t2) && t2 !== 1 / 0 ? t2 : 0;\n return e2 || i3;\n }\n set volume(e2) {\n let t2 = e2;\n S.string(t2) && (t2 = Number(t2)), S.number(t2) || (t2 = this.storage.get(\"volume\")), S.number(t2) || ({ volume: t2 } = this.config), t2 > 1 && (t2 = 1), t2 < 0 && (t2 = 0), this.config.volume = t2, this.media.volume = t2, !S.empty(e2) && this.muted && t2 > 0 && (this.muted = false);\n }\n get volume() {\n return Number(this.media.volume);\n }\n set muted(e2) {\n let t2 = e2;\n S.boolean(t2) || (t2 = this.storage.get(\"muted\")), S.boolean(t2) || (t2 = this.config.muted), this.config.muted = t2, this.media.muted = t2;\n }\n get muted() {\n return Boolean(this.media.muted);\n }\n get hasAudio() {\n return !this.isHTML5 || (!!this.isAudio || (Boolean(this.media.mozHasAudio) || Boolean(this.media.webkitAudioDecodedByteCount) || Boolean(this.media.audioTracks && this.media.audioTracks.length)));\n }\n set speed(e2) {\n let t2 = null;\n S.number(e2) && (t2 = e2), S.number(t2) || (t2 = this.storage.get(\"speed\")), S.number(t2) || (t2 = this.config.speed.selected);\n const { minimumSpeed: i3, maximumSpeed: s2 } = this;\n t2 = Ge(t2, i3, s2), this.config.speed.selected = t2, setTimeout(() => {\n this.media && (this.media.playbackRate = t2);\n }, 0);\n }\n get speed() {\n return Number(this.media.playbackRate);\n }\n get minimumSpeed() {\n return this.isYouTube ? Math.min(...this.options.speed) : this.isVimeo ? 0.5 : 0.0625;\n }\n get maximumSpeed() {\n return this.isYouTube ? Math.max(...this.options.speed) : this.isVimeo ? 2 : 16;\n }\n set quality(e2) {\n const t2 = this.config.quality, i3 = this.options.quality;\n if (!i3.length) return;\n let s2 = [!S.empty(e2) && Number(e2), this.storage.get(\"quality\"), t2.selected, t2.default].find(S.number), n2 = true;\n if (!i3.includes(s2)) {\n const e3 = ne(i3, s2);\n this.debug.warn(`Unsupported quality option: ${s2}, using ${e3} instead`), s2 = e3, n2 = false;\n }\n t2.selected = s2, this.media.quality = s2, n2 && this.storage.set({ quality: s2 });\n }\n get quality() {\n return this.media.quality;\n }\n set loop(e2) {\n const t2 = S.boolean(e2) ? e2 : this.config.loop.active;\n this.config.loop.active = t2, this.media.loop = t2;\n }\n get loop() {\n return Boolean(this.media.loop);\n }\n set source(e2) {\n it.change.call(this, e2);\n }\n get source() {\n return this.media.currentSrc;\n }\n get download() {\n const { download: e2 } = this.config.urls;\n return S.url(e2) ? e2 : this.source;\n }\n set download(e2) {\n S.url(e2) && (this.config.urls.download = e2, Pe.setDownloadUrl.call(this));\n }\n set poster(e2) {\n this.isVideo ? Fe.setPoster.call(this, e2, false).catch(() => {\n }) : this.debug.warn(\"Poster can only be set for video\");\n }\n get poster() {\n return this.isVideo ? this.media.getAttribute(\"poster\") || this.media.getAttribute(\"data-poster\") : null;\n }\n get ratio() {\n if (!this.isVideo) return null;\n const e2 = oe(ce.call(this));\n return S.array(e2) ? e2.join(\":\") : e2;\n }\n set ratio(e2) {\n this.isVideo ? S.string(e2) && re(e2) ? (this.config.ratio = oe(e2), ue.call(this)) : this.debug.error(`Invalid aspect ratio specified (${e2})`) : this.debug.warn(\"Aspect ratio can only be set for video\");\n }\n set autoplay(e2) {\n this.config.autoplay = S.boolean(e2) ? e2 : this.config.autoplay;\n }\n get autoplay() {\n return Boolean(this.config.autoplay);\n }\n toggleCaptions(e2) {\n xe.toggle.call(this, e2, false);\n }\n set currentTrack(e2) {\n xe.set.call(this, e2, false), xe.setup.call(this);\n }\n get currentTrack() {\n const { toggled: e2, currentTrack: t2 } = this.captions;\n return e2 ? t2 : -1;\n }\n set language(e2) {\n xe.setLanguage.call(this, e2, false);\n }\n get language() {\n return (xe.getCurrentTrack.call(this) || {}).language;\n }\n set pip(e2) {\n if (!K.pip) return;\n const t2 = S.boolean(e2) ? e2 : !this.pip;\n S.function(this.media.webkitSetPresentationMode) && this.media.webkitSetPresentationMode(t2 ? Ie : $e), S.function(this.media.requestPictureInPicture) && (!this.pip && t2 ? this.media.requestPictureInPicture() : this.pip && !t2 && document.exitPictureInPicture());\n }\n get pip() {\n return K.pip ? S.empty(this.media.webkitPresentationMode) ? this.media === document.pictureInPictureElement : this.media.webkitPresentationMode === Ie : null;\n }\n setPreviewThumbnails(e2) {\n this.previewThumbnails && this.previewThumbnails.loaded && (this.previewThumbnails.destroy(), this.previewThumbnails = null), Object.assign(this.config.previewThumbnails, e2), this.config.previewThumbnails.enabled && (this.previewThumbnails = new tt(this));\n }\n static supported(e2, t2) {\n return K.check(e2, t2);\n }\n static loadSprite(e2, t2) {\n return ke(e2, t2);\n }\n static setup(e2, t2 = {}) {\n let i3 = null;\n return S.string(e2) ? i3 = Array.from(document.querySelectorAll(e2)) : S.nodeList(e2) ? i3 = Array.from(e2) : S.array(e2) && (i3 = e2.filter(S.element)), S.empty(i3) ? null : i3.map((e3) => new st(e3, t2));\n }\n }\n var nt;\n return st.defaults = (nt = Le, JSON.parse(JSON.stringify(nt))), st;\n });\n }\n});\n\n// node_modules/plyr/src/sass/plyr.scss?inline\nvar plyr_default = i`@charset \"UTF-8\";\n@keyframes plyr-progress {\n to {\n background-position: var(--plyr-progress-loading-size, 25px) 0;\n }\n}\n@keyframes plyr-popup {\n 0% {\n opacity: 0.5;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes plyr-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.plyr {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n align-items: center;\n direction: ltr;\n display: flex;\n flex-direction: column;\n font-family: var(--plyr-font-family, inherit);\n font-variant-numeric: tabular-nums;\n font-weight: var(--plyr-font-weight-regular, 400);\n line-height: var(--plyr-line-height, 1.7);\n max-width: 100%;\n min-width: 200px;\n position: relative;\n text-shadow: none;\n transition: box-shadow 0.3s ease;\n z-index: 0;\n}\n.plyr video,\n.plyr audio,\n.plyr iframe {\n display: block;\n height: 100%;\n width: 100%;\n}\n.plyr button {\n font: inherit;\n line-height: inherit;\n width: auto;\n}\n.plyr:focus {\n outline: 0;\n}\n\n.plyr--full-ui {\n box-sizing: border-box;\n}\n.plyr--full-ui *,\n.plyr--full-ui *::after,\n.plyr--full-ui *::before {\n box-sizing: inherit;\n}\n\n.plyr--full-ui a,\n.plyr--full-ui button,\n.plyr--full-ui input,\n.plyr--full-ui label {\n touch-action: manipulation;\n}\n\n.plyr__badge {\n background: var(--plyr-badge-background, hsl(216, 15%, 34%));\n border-radius: var(--plyr-badge-border-radius, 2px);\n color: var(--plyr-badge-text-color, #fff);\n font-size: var(--plyr-font-size-badge, 9px);\n line-height: 1;\n padding: 3px 4px;\n}\n\n.plyr--full-ui ::-webkit-media-text-track-container {\n display: none;\n}\n\n.plyr__captions {\n animation: plyr-fade-in 0.3s ease;\n bottom: 0;\n display: none;\n font-size: var(--plyr-font-size-small, 13px);\n left: 0;\n padding: var(--plyr-control-spacing, 10px);\n position: absolute;\n text-align: center;\n transition: transform 0.4s ease-in-out;\n width: 100%;\n}\n.plyr__captions span:empty {\n display: none;\n}\n@media (min-width: 480px) {\n .plyr__captions {\n font-size: var(--plyr-font-size-base, 15px);\n padding: calc(var(--plyr-control-spacing, 10px) * 2);\n }\n}\n@media (min-width: 768px) {\n .plyr__captions {\n font-size: var(--plyr-font-size-large, 18px);\n }\n}\n\n.plyr--captions-active .plyr__captions {\n display: block;\n}\n\n.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty) ~ .plyr__captions {\n transform: translateY(calc(var(--plyr-control-spacing, 10px) * -4));\n}\n\n.plyr__caption {\n background: var(--plyr-captions-background, rgba(0, 0, 0, 0.8));\n border-radius: 2px;\n box-decoration-break: clone;\n color: var(--plyr-captions-text-color, #fff);\n line-height: 185%;\n padding: 0.2em 0.5em;\n white-space: pre-wrap;\n}\n.plyr__caption div {\n display: inline;\n}\n\n.plyr__control {\n background: transparent;\n border: 0;\n border-radius: var(--plyr-control-radius, 4px);\n color: inherit;\n cursor: pointer;\n flex-shrink: 0;\n overflow: visible;\n padding: calc(var(--plyr-control-spacing, 10px) * 0.7);\n position: relative;\n transition: all 0.3s ease;\n}\n.plyr__control svg {\n display: block;\n fill: currentColor;\n height: var(--plyr-control-icon-size, 18px);\n pointer-events: none;\n width: var(--plyr-control-icon-size, 18px);\n}\n.plyr__control:focus {\n outline: 0;\n}\n.plyr__control:focus-visible {\n outline: 2px dashed var(--plyr-focus-visible-color, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n outline-offset: 2px;\n}\n\na.plyr__control {\n text-decoration: none;\n}\na.plyr__control::after, a.plyr__control::before {\n display: none;\n}\n\n.plyr__control:not(.plyr__control--pressed) .icon--pressed,\n.plyr__control.plyr__control--pressed .icon--not-pressed,\n.plyr__control:not(.plyr__control--pressed) .label--pressed,\n.plyr__control.plyr__control--pressed .label--not-pressed {\n display: none;\n}\n\n.plyr--full-ui ::-webkit-media-controls {\n display: none;\n}\n\n.plyr__controls {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n text-align: center;\n}\n.plyr__controls .plyr__progress__container {\n flex: 1;\n min-width: 0;\n}\n.plyr__controls .plyr__controls__item {\n margin-left: calc(var(--plyr-control-spacing, 10px) / 4);\n}\n.plyr__controls .plyr__controls__item:first-child {\n margin-left: 0;\n margin-right: auto;\n}\n.plyr__controls .plyr__controls__item.plyr__progress__container {\n padding-left: calc(var(--plyr-control-spacing, 10px) / 4);\n}\n.plyr__controls .plyr__controls__item.plyr__time {\n padding: 0 calc(var(--plyr-control-spacing, 10px) / 2);\n}\n.plyr__controls .plyr__controls__item.plyr__progress__container:first-child, .plyr__controls .plyr__controls__item.plyr__time:first-child, .plyr__controls .plyr__controls__item.plyr__time + .plyr__time {\n padding-left: 0;\n}\n.plyr__controls:empty {\n display: none;\n}\n\n.plyr [data-plyr=captions],\n.plyr [data-plyr=pip],\n.plyr [data-plyr=airplay],\n.plyr [data-plyr=fullscreen] {\n display: none;\n}\n\n.plyr--captions-enabled [data-plyr=captions],\n.plyr--pip-supported [data-plyr=pip],\n.plyr--airplay-supported [data-plyr=airplay],\n.plyr--fullscreen-enabled [data-plyr=fullscreen] {\n display: inline-block;\n}\n\n.plyr__menu {\n display: flex;\n position: relative;\n}\n.plyr__menu .plyr__control svg {\n transition: transform 0.3s ease;\n}\n.plyr__menu .plyr__control[aria-expanded=true] svg {\n transform: rotate(90deg);\n}\n.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip {\n display: none;\n}\n.plyr__menu__container {\n animation: plyr-popup 0.2s ease;\n background: var(--plyr-menu-background, rgba(255, 255, 255, 0.9));\n border-radius: var(--plyr-menu-radius, 8px);\n bottom: 100%;\n box-shadow: var(--plyr-menu-shadow, 0 1px 2px rgba(0, 0, 0, 0.15));\n color: var(--plyr-menu-color, hsl(216, 15%, 34%));\n font-size: var(--plyr-font-size-base, 15px);\n margin-bottom: 10px;\n position: absolute;\n right: -3px;\n text-align: left;\n white-space: nowrap;\n z-index: 3;\n}\n.plyr__menu__container > div {\n overflow: hidden;\n transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.plyr__menu__container::after {\n border: var(--plyr-menu-arrow-size, 4px) solid transparent;\n border-top-color: var(--plyr-menu-background, rgba(255, 255, 255, 0.9));\n content: \"\";\n height: 0;\n position: absolute;\n right: calc(var(--plyr-control-icon-size, 18px) / 2 + calc(var(--plyr-control-spacing, 10px) * 0.7) - var(--plyr-menu-arrow-size, 4px) / 2);\n top: 100%;\n width: 0;\n}\n.plyr__menu__container [role=menu] {\n padding: calc(var(--plyr-control-spacing, 10px) * 0.7);\n}\n.plyr__menu__container [role=menuitem],\n.plyr__menu__container [role=menuitemradio] {\n margin-top: 2px;\n}\n.plyr__menu__container [role=menuitem]:first-child,\n.plyr__menu__container [role=menuitemradio]:first-child {\n margin-top: 0;\n}\n.plyr__menu__container .plyr__control {\n align-items: center;\n color: var(--plyr-menu-color, hsl(216, 15%, 34%));\n display: flex;\n font-size: var(--plyr-font-size-menu, var(--plyr-font-size-small, 13px));\n padding: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) / 1.5) calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 1.5);\n user-select: none;\n width: 100%;\n}\n.plyr__menu__container .plyr__control > span {\n align-items: inherit;\n display: flex;\n width: 100%;\n}\n.plyr__menu__container .plyr__control::after {\n border: var(--plyr-menu-item-arrow-size, 4px) solid transparent;\n content: \"\";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n.plyr__menu__container .plyr__control--forward {\n padding-right: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 4);\n}\n.plyr__menu__container .plyr__control--forward::after {\n border-left-color: var(--plyr-menu-arrow-color, hsl(216, 15%, 52%));\n right: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 1.5 - var(--plyr-menu-item-arrow-size, 4px));\n}\n.plyr__menu__container .plyr__control--forward:focus-visible::after, .plyr__menu__container .plyr__control--forward:hover::after {\n border-left-color: currentColor;\n}\n.plyr__menu__container .plyr__control--back {\n font-weight: var(--plyr-font-weight-regular, 400);\n margin: calc(var(--plyr-control-spacing, 10px) * 0.7);\n margin-bottom: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) / 2);\n padding-left: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 4);\n position: relative;\n width: calc(100% - calc(var(--plyr-control-spacing, 10px) * 0.7) * 2);\n}\n.plyr__menu__container .plyr__control--back::after {\n border-right-color: var(--plyr-menu-arrow-color, hsl(216, 15%, 52%));\n left: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 1.5 - var(--plyr-menu-item-arrow-size, 4px));\n}\n.plyr__menu__container .plyr__control--back::before {\n background: var(--plyr-menu-back-border-color, hsl(216, 15%, 88%));\n box-shadow: 0 1px 0 var(--plyr-menu-back-border-shadow-color, #fff);\n content: \"\";\n height: 1px;\n left: 0;\n margin-top: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) / 2);\n overflow: hidden;\n position: absolute;\n right: 0;\n top: 100%;\n}\n.plyr__menu__container .plyr__control--back:focus-visible::after, .plyr__menu__container .plyr__control--back:hover::after {\n border-right-color: currentColor;\n}\n.plyr__menu__container .plyr__control[role=menuitemradio] {\n padding-left: calc(var(--plyr-control-spacing, 10px) * 0.7);\n}\n.plyr__menu__container .plyr__control[role=menuitemradio]::before, .plyr__menu__container .plyr__control[role=menuitemradio]::after {\n border-radius: 100%;\n}\n.plyr__menu__container .plyr__control[role=menuitemradio]::before {\n background: rgba(0, 0, 0, 0.1);\n content: \"\";\n display: block;\n flex-shrink: 0;\n height: 16px;\n margin-right: var(--plyr-control-spacing, 10px);\n transition: all 0.3s ease;\n width: 16px;\n}\n.plyr__menu__container .plyr__control[role=menuitemradio]::after {\n background: #fff;\n border: 0;\n height: 6px;\n left: 12px;\n opacity: 0;\n top: 50%;\n transform: translateY(-50%) scale(0);\n transition: transform 0.3s ease, opacity 0.3s ease;\n width: 6px;\n}\n.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before {\n background: var(--plyr-control-toggle-checked-background, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n}\n.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after {\n opacity: 1;\n transform: translateY(-50%) scale(1);\n}\n.plyr__menu__container .plyr__control[role=menuitemradio]:focus-visible::before, .plyr__menu__container .plyr__control[role=menuitemradio]:hover::before {\n background: rgba(34.68, 39.576, 46.92, 0.1);\n}\n.plyr__menu__container .plyr__menu__value {\n align-items: center;\n display: flex;\n margin-left: auto;\n margin-right: calc((calc(var(--plyr-control-spacing, 10px) * 0.7) - 2px) * -1);\n overflow: hidden;\n padding-left: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 3.5);\n pointer-events: none;\n}\n\n.plyr--full-ui input[type=range] {\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: calc(var(--plyr-range-thumb-height, 13px) * 2);\n color: var(--plyr-range-fill-background, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n display: block;\n height: calc(var(--plyr-range-thumb-active-shadow-width, 3px) * 2 + var(--plyr-range-thumb-height, 13px));\n margin: 0;\n min-width: 0;\n padding: 0;\n transition: box-shadow 0.3s ease;\n width: 100%;\n}\n.plyr--full-ui input[type=range]::-webkit-slider-runnable-track {\n background: transparent;\n border: 0;\n border-radius: calc(var(--plyr-range-track-height, 5px) / 2);\n height: var(--plyr-range-track-height, 5px);\n transition: box-shadow 0.3s ease;\n user-select: none;\n background-image: linear-gradient(to right, currentColor var(--value, 0%), transparent var(--value, 0%));\n}\n.plyr--full-ui input[type=range]::-webkit-slider-thumb {\n background: var(--plyr-range-thumb-background, #fff);\n border: 0;\n border-radius: 100%;\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2));\n height: var(--plyr-range-thumb-height, 13px);\n position: relative;\n transition: all 0.2s ease;\n width: var(--plyr-range-thumb-height, 13px);\n appearance: none;\n margin-top: calc((var(--plyr-range-thumb-height, 13px) - var(--plyr-range-track-height, 5px)) / 2 * -1);\n}\n.plyr--full-ui input[type=range]::-moz-range-track {\n background: transparent;\n border: 0;\n border-radius: calc(var(--plyr-range-track-height, 5px) / 2);\n height: var(--plyr-range-track-height, 5px);\n transition: box-shadow 0.3s ease;\n user-select: none;\n}\n.plyr--full-ui input[type=range]::-moz-range-thumb {\n background: var(--plyr-range-thumb-background, #fff);\n border: 0;\n border-radius: 100%;\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2));\n height: var(--plyr-range-thumb-height, 13px);\n position: relative;\n transition: all 0.2s ease;\n width: var(--plyr-range-thumb-height, 13px);\n}\n.plyr--full-ui input[type=range]::-moz-range-progress {\n background: currentColor;\n border-radius: calc(var(--plyr-range-track-height, 5px) / 2);\n height: var(--plyr-range-track-height, 5px);\n}\n.plyr--full-ui input[type=range]::-ms-track {\n background: transparent;\n border: 0;\n border-radius: calc(var(--plyr-range-track-height, 5px) / 2);\n height: var(--plyr-range-track-height, 5px);\n transition: box-shadow 0.3s ease;\n user-select: none;\n color: transparent;\n}\n.plyr--full-ui input[type=range]::-ms-fill-upper {\n background: transparent;\n border: 0;\n border-radius: calc(var(--plyr-range-track-height, 5px) / 2);\n height: var(--plyr-range-track-height, 5px);\n transition: box-shadow 0.3s ease;\n user-select: none;\n}\n.plyr--full-ui input[type=range]::-ms-fill-lower {\n background: transparent;\n border: 0;\n border-radius: calc(var(--plyr-range-track-height, 5px) / 2);\n height: var(--plyr-range-track-height, 5px);\n transition: box-shadow 0.3s ease;\n user-select: none;\n background: currentColor;\n}\n.plyr--full-ui input[type=range]::-ms-thumb {\n background: var(--plyr-range-thumb-background, #fff);\n border: 0;\n border-radius: 100%;\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2));\n height: var(--plyr-range-thumb-height, 13px);\n position: relative;\n transition: all 0.2s ease;\n width: var(--plyr-range-thumb-height, 13px);\n margin-top: 0;\n}\n.plyr--full-ui input[type=range]::-ms-tooltip {\n display: none;\n}\n.plyr--full-ui input[type=range]::-moz-focus-outer {\n border: 0;\n}\n.plyr--full-ui input[type=range]:focus {\n outline: 0;\n}\n.plyr--full-ui input[type=range]:focus-visible::-webkit-slider-runnable-track {\n outline: 2px dashed var(--plyr-focus-visible-color, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n outline-offset: 2px;\n}\n.plyr--full-ui input[type=range]:focus-visible::-moz-range-track {\n outline: 2px dashed var(--plyr-focus-visible-color, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n outline-offset: 2px;\n}\n.plyr--full-ui input[type=range]:focus-visible::-ms-track {\n outline: 2px dashed var(--plyr-focus-visible-color, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n outline-offset: 2px;\n}\n\n.plyr__poster {\n background-color: var(--plyr-video-background, var(--plyr-video-background, rgb(0, 0, 0)));\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: contain;\n height: 100%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition: opacity 0.2s ease;\n width: 100%;\n z-index: 1;\n}\n\n.plyr--stopped.plyr__poster-enabled .plyr__poster {\n opacity: 1;\n}\n\n.plyr--youtube.plyr--paused.plyr__poster-enabled:not(.plyr--stopped) .plyr__poster {\n display: none;\n}\n\n.plyr__time {\n font-size: var(--plyr-font-size-time, var(--plyr-font-size-small, 13px));\n}\n\n.plyr__time + .plyr__time::before {\n content: \"\u2044\";\n margin-right: var(--plyr-control-spacing, 10px);\n}\n@media (max-width: 767px) {\n .plyr__time + .plyr__time {\n display: none;\n }\n}\n\n/* stylelint-disable selector-max-compound-selectors */\n.plyr__tooltip {\n background: var(--plyr-tooltip-background, #fff);\n border-radius: var(--plyr-tooltip-radius, 5px);\n bottom: 100%;\n box-shadow: var(--plyr-tooltip-shadow, 0 1px 2px rgba(0, 0, 0, 0.15));\n color: var(--plyr-tooltip-color, hsl(216, 15%, 34%));\n font-size: var(--plyr-font-size-small, 13px);\n font-weight: var(--plyr-font-weight-regular, 400);\n left: 50%;\n line-height: 1.3;\n margin-bottom: calc(calc(var(--plyr-control-spacing, 10px) / 2) * 2);\n opacity: 0;\n padding: calc(var(--plyr-control-spacing, 10px) / 2) calc(calc(var(--plyr-control-spacing, 10px) / 2) * 1.5);\n pointer-events: none;\n position: absolute;\n transform: translate(-50%, 10px) scale(0.8);\n transform-origin: 50% 100%;\n transition: transform 0.2s 0.1s ease, opacity 0.2s 0.1s ease;\n white-space: nowrap;\n z-index: 2;\n}\n.plyr__tooltip::before {\n border-left: var(--plyr-tooltip-arrow-size, 4px) solid transparent;\n border-right: var(--plyr-tooltip-arrow-size, 4px) solid transparent;\n border-top: var(--plyr-tooltip-arrow-size, 4px) solid var(--plyr-tooltip-background, #fff);\n bottom: calc(var(--plyr-tooltip-arrow-size, 4px) * -1);\n content: \"\";\n height: 0;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n width: 0;\n z-index: 2;\n}\n\n.plyr .plyr__control:hover .plyr__tooltip,\n.plyr .plyr__control:focus-visible .plyr__tooltip,\n.plyr__tooltip--visible {\n opacity: 1;\n transform: translate(-50%, 0) scale(1);\n}\n\n.plyr .plyr__control:hover .plyr__tooltip {\n z-index: 3;\n}\n\n.plyr__controls > .plyr__control:first-child .plyr__tooltip,\n.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip {\n left: 0;\n transform: translate(0, 10px) scale(0.8);\n transform-origin: 0 100%;\n}\n.plyr__controls > .plyr__control:first-child .plyr__tooltip::before,\n.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip::before {\n left: calc(var(--plyr-control-icon-size, 18px) / 2 + calc(var(--plyr-control-spacing, 10px) * 0.7));\n}\n\n.plyr__controls > .plyr__control:last-child .plyr__tooltip {\n left: auto;\n right: 0;\n transform: translate(0, 10px) scale(0.8);\n transform-origin: 100% 100%;\n}\n.plyr__controls > .plyr__control:last-child .plyr__tooltip::before {\n left: auto;\n right: calc(var(--plyr-control-icon-size, 18px) / 2 + calc(var(--plyr-control-spacing, 10px) * 0.7));\n transform: translateX(50%);\n}\n\n.plyr__controls > .plyr__control:first-child:hover .plyr__tooltip, .plyr__controls > .plyr__control:first-child:focus-visible .plyr__tooltip,\n.plyr__controls > .plyr__control:first-child .plyr__tooltip--visible,\n.plyr__controls > .plyr__control:first-child + .plyr__control:hover .plyr__tooltip,\n.plyr__controls > .plyr__control:first-child + .plyr__control:focus-visible .plyr__tooltip,\n.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip--visible,\n.plyr__controls > .plyr__control:last-child:hover .plyr__tooltip,\n.plyr__controls > .plyr__control:last-child:focus-visible .plyr__tooltip,\n.plyr__controls > .plyr__control:last-child .plyr__tooltip--visible {\n transform: translate(0, 0) scale(1);\n}\n\n.plyr__progress {\n left: calc(var(--plyr-range-thumb-height, 13px) * 0.5);\n margin-right: var(--plyr-range-thumb-height, 13px);\n position: relative;\n}\n.plyr__progress input[type=range], .plyr__progress__buffer {\n margin-left: calc(var(--plyr-range-thumb-height, 13px) * -0.5);\n margin-right: calc(var(--plyr-range-thumb-height, 13px) * -0.5);\n width: calc(100% + var(--plyr-range-thumb-height, 13px));\n}\n.plyr__progress input[type=range] {\n position: relative;\n z-index: 2;\n}\n.plyr__progress .plyr__tooltip {\n left: 0;\n max-width: 120px;\n overflow-wrap: break-word;\n}\n\n.plyr__progress__buffer {\n -webkit-appearance: none; /* stylelint-disable-line */\n background: transparent;\n border: 0;\n border-radius: 100px;\n height: var(--plyr-range-track-height, 5px);\n left: 0;\n margin-top: calc(var(--plyr-range-track-height, 5px) / 2 * -1);\n padding: 0;\n position: absolute;\n top: 50%;\n}\n.plyr__progress__buffer::-webkit-progress-bar {\n background: transparent;\n}\n.plyr__progress__buffer::-webkit-progress-value {\n background: currentColor;\n border-radius: 100px;\n min-width: var(--plyr-range-track-height, 5px);\n transition: width 0.2s ease;\n}\n.plyr__progress__buffer::-moz-progress-bar {\n background: currentColor;\n border-radius: 100px;\n min-width: var(--plyr-range-track-height, 5px);\n transition: width 0.2s ease;\n}\n.plyr__progress__buffer::-ms-fill {\n border-radius: 100px;\n transition: width 0.2s ease;\n}\n\n.plyr--loading .plyr__progress__buffer {\n animation: plyr-progress 1s linear infinite;\n background-image: linear-gradient(-45deg, var(--plyr-progress-loading-background, rgba(34.68, 39.576, 46.92, 0.6)) 25%, transparent 25%, transparent 50%, var(--plyr-progress-loading-background, rgba(34.68, 39.576, 46.92, 0.6)) 50%, var(--plyr-progress-loading-background, rgba(34.68, 39.576, 46.92, 0.6)) 75%, transparent 75%, transparent);\n background-repeat: repeat-x;\n background-size: var(--plyr-progress-loading-size, 25px) var(--plyr-progress-loading-size, 25px);\n color: transparent;\n}\n\n.plyr--video.plyr--loading .plyr__progress__buffer {\n background-color: var(--plyr-video-progress-buffered-background, rgba(255, 255, 255, 0.25));\n}\n\n.plyr--audio.plyr--loading .plyr__progress__buffer {\n background-color: var(--plyr-audio-progress-buffered-background, rgba(193.4175, 199.8435, 209.4825, 0.6));\n}\n\n.plyr__progress__marker {\n background-color: var(--plyr-progress-marker-background, #fff);\n border-radius: 1px;\n height: var(--plyr-range-track-height, 5px);\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--plyr-progress-marker-width, 3px);\n z-index: 3;\n}\n\n.plyr__volume {\n align-items: center;\n display: flex;\n position: relative;\n}\n.plyr__volume input[type=range] {\n margin-left: calc(var(--plyr-control-spacing, 10px) / 2);\n margin-right: calc(var(--plyr-control-spacing, 10px) / 2);\n max-width: 90px;\n min-width: 60px;\n position: relative;\n z-index: 2;\n}\n\n.plyr--audio {\n display: block;\n}\n\n.plyr--audio .plyr__controls {\n background: var(--plyr-audio-controls-background, #fff);\n border-radius: inherit;\n color: var(--plyr-audio-control-color, hsl(216, 15%, 34%));\n padding: var(--plyr-control-spacing, 10px);\n}\n\n.plyr--audio .plyr__control:focus-visible, .plyr--audio .plyr__control:hover, .plyr--audio .plyr__control[aria-expanded=true] {\n background: var(--plyr-audio-control-background-hover, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n color: var(--plyr-audio-control-color-hover, #fff);\n}\n\n.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track {\n background-color: var(--plyr-audio-range-track-background, var(--plyr-audio-progress-buffered-background, rgba(193.4175, 199.8435, 209.4825, 0.6)));\n}\n.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track {\n background-color: var(--plyr-audio-range-track-background, var(--plyr-audio-progress-buffered-background, rgba(193.4175, 199.8435, 209.4825, 0.6)));\n}\n.plyr--full-ui.plyr--audio input[type=range]::-ms-track {\n background-color: var(--plyr-audio-range-track-background, var(--plyr-audio-progress-buffered-background, rgba(193.4175, 199.8435, 209.4825, 0.6)));\n}\n.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb {\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2)), 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) var(--plyr-audio-range-thumb-active-shadow-color, rgba(34.68, 39.576, 46.92, 0.1));\n}\n.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb {\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2)), 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) var(--plyr-audio-range-thumb-active-shadow-color, rgba(34.68, 39.576, 46.92, 0.1));\n}\n.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb {\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2)), 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) var(--plyr-audio-range-thumb-active-shadow-color, rgba(34.68, 39.576, 46.92, 0.1));\n}\n\n.plyr--audio .plyr__progress__buffer {\n color: var(--plyr-audio-progress-buffered-background, rgba(193.4175, 199.8435, 209.4825, 0.6));\n}\n\n.plyr--video {\n overflow: hidden;\n}\n.plyr--video.plyr--menu-open {\n overflow: visible;\n}\n\n.plyr__video-wrapper {\n background: var(--plyr-video-background, var(--plyr-video-background, rgb(0, 0, 0)));\n border-radius: inherit;\n height: 100%;\n margin: auto;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.plyr__video-embed,\n.plyr__video-wrapper--fixed-ratio {\n aspect-ratio: 16/9;\n}\n@supports not (aspect-ratio: 16/9) {\n .plyr__video-embed,\n .plyr__video-wrapper--fixed-ratio {\n height: 0;\n padding-bottom: 56.25%;\n position: relative;\n }\n}\n\n.plyr__video-embed iframe,\n.plyr__video-wrapper--fixed-ratio video {\n border: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.plyr--full-ui .plyr__video-embed > .plyr__video-embed__container {\n padding-bottom: 240%;\n position: relative;\n transform: translateY(-38.28125%);\n}\n\n.plyr--video .plyr__controls {\n background: var(--plyr-video-controls-background, linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75)));\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit;\n bottom: 0;\n color: var(--plyr-video-control-color, #fff);\n left: 0;\n padding: calc(var(--plyr-control-spacing, 10px) / 2);\n padding-top: calc(var(--plyr-control-spacing, 10px) * 2);\n position: absolute;\n right: 0;\n transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out;\n z-index: 3;\n}\n@media (min-width: 480px) {\n .plyr--video .plyr__controls {\n padding: var(--plyr-control-spacing, 10px);\n padding-top: calc(var(--plyr-control-spacing, 10px) * 3.5);\n }\n}\n\n.plyr--video.plyr--hide-controls .plyr__controls {\n opacity: 0;\n pointer-events: none;\n transform: translateY(100%);\n}\n\n.plyr--video .plyr__control:focus-visible, .plyr--video .plyr__control:hover, .plyr--video .plyr__control[aria-expanded=true] {\n background: var(--plyr-video-control-background-hover, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n color: var(--plyr-video-control-color-hover, #fff);\n}\n\n.plyr__control--overlaid {\n background: var(--plyr-video-control-background-hover, var(--plyr-color-main, var(--plyr-color-main, hsl(198, 100%, 50%))));\n border: 0;\n border-radius: 100%;\n color: var(--plyr-video-control-color, #fff);\n display: none;\n left: 50%;\n opacity: 0.9;\n padding: calc(var(--plyr-control-spacing, 10px) * 1.5);\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n transition: 0.3s;\n z-index: 2;\n}\n.plyr__control--overlaid svg {\n left: 2px;\n position: relative;\n}\n.plyr__control--overlaid:hover, .plyr__control--overlaid:focus {\n opacity: 1;\n}\n\n.plyr--playing .plyr__control--overlaid {\n opacity: 0;\n visibility: hidden;\n}\n\n.plyr--full-ui.plyr--video .plyr__control--overlaid {\n display: block;\n}\n\n.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track {\n background-color: var(--plyr-video-range-track-background, var(--plyr-video-progress-buffered-background, rgba(255, 255, 255, 0.25)));\n}\n.plyr--full-ui.plyr--video input[type=range]::-moz-range-track {\n background-color: var(--plyr-video-range-track-background, var(--plyr-video-progress-buffered-background, rgba(255, 255, 255, 0.25)));\n}\n.plyr--full-ui.plyr--video input[type=range]::-ms-track {\n background-color: var(--plyr-video-range-track-background, var(--plyr-video-progress-buffered-background, rgba(255, 255, 255, 0.25)));\n}\n.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb {\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2)), 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) var(--plyr-audio-range-thumb-active-shadow-color, rgba(255, 255, 255, 0.5));\n}\n.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb {\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2)), 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) var(--plyr-audio-range-thumb-active-shadow-color, rgba(255, 255, 255, 0.5));\n}\n.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb {\n box-shadow: var(--plyr-range-thumb-shadow, 0 1px 1px rgba(34.68, 39.576, 46.92, 0.15), 0 0 0 1px rgba(34.68, 39.576, 46.92, 0.2)), 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) var(--plyr-audio-range-thumb-active-shadow-color, rgba(255, 255, 255, 0.5));\n}\n\n.plyr--video .plyr__progress__buffer {\n color: var(--plyr-video-progress-buffered-background, rgba(255, 255, 255, 0.25));\n}\n\n.plyr:fullscreen {\n background: #000;\n border-radius: 0 !important;\n height: 100%;\n margin: 0;\n width: 100%;\n}\n.plyr:fullscreen video {\n height: 100%;\n}\n.plyr:fullscreen .plyr__control .icon--exit-fullscreen {\n display: block;\n}\n.plyr:fullscreen .plyr__control .icon--exit-fullscreen + svg {\n display: none;\n}\n.plyr:fullscreen.plyr--hide-controls {\n cursor: none;\n}\n@media (min-width: 1024px) {\n .plyr:fullscreen .plyr__captions {\n font-size: var(--plyr-font-size-xlarge, 21px);\n }\n}\n\n.plyr--fullscreen-fallback {\n background: #000;\n border-radius: 0 !important;\n height: 100%;\n margin: 0;\n width: 100%;\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 10000000;\n}\n.plyr--fullscreen-fallback video {\n height: 100%;\n}\n.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen {\n display: block;\n}\n.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen + svg {\n display: none;\n}\n.plyr--fullscreen-fallback.plyr--hide-controls {\n cursor: none;\n}\n@media (min-width: 1024px) {\n .plyr--fullscreen-fallback .plyr__captions {\n font-size: var(--plyr-font-size-xlarge, 21px);\n }\n}\n\n.plyr__ads {\n border-radius: inherit;\n bottom: 0;\n cursor: pointer;\n left: 0;\n overflow: hidden;\n position: absolute;\n right: 0;\n top: 0;\n z-index: -1;\n}\n.plyr__ads > div,\n.plyr__ads > div iframe {\n height: 100%;\n position: absolute;\n width: 100%;\n}\n.plyr__ads::after {\n background: hsl(216, 15%, 16%);\n border-radius: 2px;\n bottom: var(--plyr-control-spacing, 10px);\n color: #fff;\n content: attr(data-badge-text);\n font-size: 11px;\n padding: 2px 6px;\n pointer-events: none;\n position: absolute;\n right: var(--plyr-control-spacing, 10px);\n z-index: 3;\n}\n.plyr__ads:empty::after {\n display: none;\n}\n\n.plyr__cues {\n background: currentColor;\n display: block;\n height: var(--plyr-range-track-height, 5px);\n left: 0;\n opacity: 0.8;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 3px;\n z-index: 3;\n}\n\n.plyr__preview-thumb {\n background-color: var(--plyr-tooltip-background, #fff);\n border-radius: var(--plyr-menu-radius, 8px);\n bottom: 100%;\n box-shadow: var(--plyr-tooltip-shadow, 0 1px 2px rgba(0, 0, 0, 0.15));\n margin-bottom: calc(calc(var(--plyr-control-spacing, 10px) / 2) * 2);\n opacity: 0;\n padding: 3px;\n pointer-events: none;\n position: absolute;\n transform: translate(0, 10px) scale(0.8);\n transform-origin: 50% 100%;\n transition: transform 0.2s 0.1s ease, opacity 0.2s 0.1s ease;\n z-index: 2;\n}\n.plyr__preview-thumb--is-shown {\n opacity: 1;\n transform: translate(0, 0) scale(1);\n}\n.plyr__preview-thumb::before {\n border-left: var(--plyr-tooltip-arrow-size, 4px) solid transparent;\n border-right: var(--plyr-tooltip-arrow-size, 4px) solid transparent;\n border-top: var(--plyr-tooltip-arrow-size, 4px) solid var(--plyr-tooltip-background, #fff);\n bottom: calc(var(--plyr-tooltip-arrow-size, 4px) * -1);\n content: \"\";\n height: 0;\n left: calc(50% + var(--preview-arrow-offset));\n position: absolute;\n transform: translateX(-50%);\n width: 0;\n z-index: 2;\n}\n.plyr__preview-thumb__image-container {\n background: hsl(216, 15%, 79%);\n border-radius: calc(var(--plyr-menu-radius, 8px) - 1px);\n overflow: hidden;\n position: relative;\n z-index: 0;\n}\n.plyr__preview-thumb__image-container img, .plyr__preview-thumb__image-container::after {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.plyr__preview-thumb__image-container::after {\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);\n content: \"\";\n pointer-events: none;\n}\n.plyr__preview-thumb__image-container img {\n max-height: none;\n max-width: none;\n}\n.plyr__preview-thumb__time-container {\n background: var(--plyr-video-controls-background, linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75)));\n border-bottom-left-radius: calc(var(--plyr-menu-radius, 8px) - 1px);\n border-bottom-right-radius: calc(var(--plyr-menu-radius, 8px) - 1px);\n bottom: 0;\n left: 0;\n line-height: 1.1;\n padding: 20px 6px 6px;\n position: absolute;\n right: 0;\n z-index: 3;\n}\n.plyr__preview-thumb__time-container span {\n color: #fff;\n font-size: var(--plyr-font-size-time, var(--plyr-font-size-small, 13px));\n}\n\n.plyr__preview-scrubbing {\n bottom: 0;\n filter: blur(1px);\n height: 100%;\n left: 0;\n margin: auto;\n opacity: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 0.3s ease;\n width: 100%;\n z-index: 1;\n}\n.plyr__preview-scrubbing--is-shown {\n opacity: 1;\n}\n.plyr__preview-scrubbing img {\n height: 100%;\n left: 0;\n max-height: none;\n max-width: none;\n object-fit: contain;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.plyr--no-transition {\n transition: none !important;\n}\n\n.plyr__sr-only {\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n border: 0 !important;\n height: 1px !important;\n padding: 0 !important;\n position: absolute !important;\n width: 1px !important;\n}\n\n.plyr [hidden] {\n display: none !important;\n}`;\n\nexport {\n require_plyr_min,\n plyr_default\n};\n", "import {\n plyr_default,\n require_plyr_min\n} from \"./chunk.UW2KYD6R.js\";\nimport {\n ae\n} from \"./chunk.Q25FCJRM.js\";\nimport {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n setLink\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n getScrollBarWidth\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __commonJS,\n __decorateClass,\n __toESM\n} from \"./chunk.I4IFG4JG.js\";\n\n// node_modules/rangetouch/dist/rangetouch.js\nvar require_rangetouch = __commonJS({\n \"node_modules/rangetouch/dist/rangetouch.js\"(exports, module) {\n !function(e2, t) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(\"RangeTouch\", t) : (e2 = e2 || self).RangeTouch = t();\n }(exports, function() {\n \"use strict\";\n function e2(e3, t2) {\n for (var n3 = 0; n3 < t2.length; n3++) {\n var r4 = t2[n3];\n r4.enumerable = r4.enumerable || false, r4.configurable = true, \"value\" in r4 && (r4.writable = true), Object.defineProperty(e3, r4.key, r4);\n }\n }\n function t(e3, t2, n3) {\n return t2 in e3 ? Object.defineProperty(e3, t2, { value: n3, enumerable: true, configurable: true, writable: true }) : e3[t2] = n3, e3;\n }\n function n2(e3, t2) {\n var n3 = Object.keys(e3);\n if (Object.getOwnPropertySymbols) {\n var r4 = Object.getOwnPropertySymbols(e3);\n t2 && (r4 = r4.filter(function(t3) {\n return Object.getOwnPropertyDescriptor(e3, t3).enumerable;\n })), n3.push.apply(n3, r4);\n }\n return n3;\n }\n function r3(e3) {\n for (var r4 = 1; r4 < arguments.length; r4++) {\n var i3 = null != arguments[r4] ? arguments[r4] : {};\n r4 % 2 ? n2(Object(i3), true).forEach(function(n3) {\n t(e3, n3, i3[n3]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e3, Object.getOwnPropertyDescriptors(i3)) : n2(Object(i3)).forEach(function(t2) {\n Object.defineProperty(e3, t2, Object.getOwnPropertyDescriptor(i3, t2));\n });\n }\n return e3;\n }\n var i2 = { addCSS: true, thumbWidth: 15, watch: true };\n function u(e3, t2) {\n return function() {\n return Array.from(document.querySelectorAll(t2)).includes(this);\n }.call(e3, t2);\n }\n var o = function(e3) {\n return null != e3 ? e3.constructor : null;\n }, c = function(e3, t2) {\n return !!(e3 && t2 && e3 instanceof t2);\n }, l = function(e3) {\n return null == e3;\n }, a = function(e3) {\n return o(e3) === Object;\n }, s = function(e3) {\n return o(e3) === String;\n }, f = function(e3) {\n return Array.isArray(e3);\n }, h2 = function(e3) {\n return c(e3, NodeList);\n }, d = s, y = f, b = h2, m = function(e3) {\n return c(e3, Element);\n }, g = function(e3) {\n return c(e3, Event);\n }, p = function(e3) {\n return l(e3) || (s(e3) || f(e3) || h2(e3)) && !e3.length || a(e3) && !Object.keys(e3).length;\n };\n function v(e3, t2) {\n if (1 > t2) {\n var n3 = function(e4) {\n var t3 = \"\".concat(e4).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n return t3 ? Math.max(0, (t3[1] ? t3[1].length : 0) - (t3[2] ? +t3[2] : 0)) : 0;\n }(t2);\n return parseFloat(e3.toFixed(n3));\n }\n return Math.round(e3 / t2) * t2;\n }\n return function() {\n function t2(e3, n4) {\n (function(e4, t3) {\n if (!(e4 instanceof t3)) throw new TypeError(\"Cannot call a class as a function\");\n })(this, t2), m(e3) ? this.element = e3 : d(e3) && (this.element = document.querySelector(e3)), m(this.element) && p(this.element.rangeTouch) && (this.config = r3({}, i2, {}, n4), this.init());\n }\n return n3 = t2, c2 = [{ key: \"setup\", value: function(e3) {\n var n4 = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, o3 = null;\n if (p(e3) || d(e3) ? o3 = Array.from(document.querySelectorAll(d(e3) ? e3 : 'input[type=\"range\"]')) : m(e3) ? o3 = [e3] : b(e3) ? o3 = Array.from(e3) : y(e3) && (o3 = e3.filter(m)), p(o3)) return null;\n var c3 = r3({}, i2, {}, n4);\n if (d(e3) && c3.watch) {\n var l2 = new MutationObserver(function(n5) {\n Array.from(n5).forEach(function(n6) {\n Array.from(n6.addedNodes).forEach(function(n7) {\n m(n7) && u(n7, e3) && new t2(n7, c3);\n });\n });\n });\n l2.observe(document.body, { childList: true, subtree: true });\n }\n return o3.map(function(e4) {\n return new t2(e4, n4);\n });\n } }, { key: \"enabled\", get: function() {\n return \"ontouchstart\" in document.documentElement;\n } }], (o2 = [{ key: \"init\", value: function() {\n t2.enabled && (this.config.addCSS && (this.element.style.userSelect = \"none\", this.element.style.webKitUserSelect = \"none\", this.element.style.touchAction = \"manipulation\"), this.listeners(true), this.element.rangeTouch = this);\n } }, { key: \"destroy\", value: function() {\n t2.enabled && (this.config.addCSS && (this.element.style.userSelect = \"\", this.element.style.webKitUserSelect = \"\", this.element.style.touchAction = \"\"), this.listeners(false), this.element.rangeTouch = null);\n } }, { key: \"listeners\", value: function(e3) {\n var t3 = this, n4 = e3 ? \"addEventListener\" : \"removeEventListener\";\n [\"touchstart\", \"touchmove\", \"touchend\"].forEach(function(e4) {\n t3.element[n4](e4, function(e5) {\n return t3.set(e5);\n }, false);\n });\n } }, { key: \"get\", value: function(e3) {\n if (!t2.enabled || !g(e3)) return null;\n var n4, r4 = e3.target, i3 = e3.changedTouches[0], u2 = parseFloat(r4.getAttribute(\"min\")) || 0, o3 = parseFloat(r4.getAttribute(\"max\")) || 100, c3 = parseFloat(r4.getAttribute(\"step\")) || 1, l2 = r4.getBoundingClientRect(), a2 = 100 / l2.width * (this.config.thumbWidth / 2) / 100;\n return 0 > (n4 = 100 / l2.width * (i3.clientX - l2.left)) ? n4 = 0 : 100 < n4 && (n4 = 100), 50 > n4 ? n4 -= (100 - 2 * n4) * a2 : 50 < n4 && (n4 += 2 * (n4 - 50) * a2), u2 + v(n4 / 100 * (o3 - u2), c3);\n } }, { key: \"set\", value: function(e3) {\n t2.enabled && g(e3) && !e3.target.disabled && (e3.preventDefault(), e3.target.value = this.get(e3), function(e4, t3) {\n if (e4 && t3) {\n var n4 = new Event(t3, { bubbles: true });\n e4.dispatchEvent(n4);\n }\n }(e3.target, \"touchend\" === e3.type ? \"change\" : \"input\"));\n } }]) && e2(n3.prototype, o2), c2 && e2(n3, c2), t2;\n var n3, o2, c2;\n }();\n });\n }\n});\n\n// node_modules/simple-scrollbar-reworked/simple-scrollbar.js\nvar require_simple_scrollbar = __commonJS({\n \"node_modules/simple-scrollbar-reworked/simple-scrollbar.js\"(exports, module) {\n (function(root, factory) {\n if (typeof exports === \"object\") {\n module.exports = factory(window, document);\n } else {\n root.SimpleScrollbar = factory(window, document);\n }\n })(exports, function(w, d) {\n var raf = w.requestAnimationFrame || w.setImmediate || function(c) {\n return setTimeout(c, 0);\n };\n function initEl(el) {\n if (Object.prototype.hasOwnProperty.call(el, \"data-simple-scrollbar\")) return;\n Object.defineProperty(el, \"data-simple-scrollbar\", { value: new SimpleScrollbar2(el) });\n }\n function dragDealer(el, context) {\n var lastPageY;\n el.addEventListener(\"mousedown\", function(e2) {\n lastPageY = e2.pageY;\n el.classList.add(\"ss-grabbed\");\n d.body.classList.add(\"ss-grabbed\");\n d.addEventListener(\"mousemove\", drag);\n d.addEventListener(\"mouseup\", stop);\n return false;\n });\n function drag(e2) {\n var delta = e2.pageY - lastPageY;\n lastPageY = e2.pageY;\n raf(function() {\n context.el.scrollTop += delta / context.scrollRatio;\n });\n }\n function stop() {\n el.classList.remove(\"ss-grabbed\");\n d.body.classList.remove(\"ss-grabbed\");\n d.removeEventListener(\"mousemove\", drag);\n d.removeEventListener(\"mouseup\", stop);\n }\n }\n function ss(el) {\n this.target = el;\n this.direction = w.getComputedStyle(this.target).direction;\n this.bar = '';\n this.wrapper = d.createElement(\"div\");\n this.wrapper.setAttribute(\"class\", \"ss-wrapper\");\n this.el = d.createElement(\"div\");\n this.el.setAttribute(\"class\", \"ss-content\");\n this.track = d.createElement(\"div\");\n this.track.setAttribute(\"class\", \"ss-track\");\n if (this.direction === \"rtl\") {\n this.el.classList.add(\"rtl\");\n }\n this.wrapper.appendChild(this.el);\n while (this.target.firstChild) {\n this.el.appendChild(this.target.firstChild);\n }\n this.target.appendChild(this.wrapper);\n this.target.appendChild(this.track);\n this.track.insertAdjacentHTML(\"beforeend\", this.bar);\n this.bar = this.track.lastChild;\n dragDealer(this.bar, this);\n this.moveBar();\n w.addEventListener(\"resize\", this.moveBar.bind(this));\n this.el.addEventListener(\"scroll\", this.moveBar.bind(this));\n this.el.addEventListener(\"mouseenter\", this.moveBar.bind(this));\n this.target.classList.add(\"ss-container\");\n var css = w.getComputedStyle(el);\n if (css[\"height\"] === \"0px\" && css[\"max-height\"] !== \"0px\") {\n el.style.height = css[\"max-height\"];\n }\n }\n ss.prototype = {\n moveBar: function(e2) {\n var totalHeight = this.el.scrollHeight, ownHeight = this.el.clientHeight, _this = this;\n this.scrollRatio = ownHeight / totalHeight;\n raf(function() {\n if (_this.scrollRatio >= 1) {\n _this.track.classList.add(\"ss-hidden\");\n } else {\n _this.track.classList.remove(\"ss-hidden\");\n _this.bar.style.cssText = \"height:\" + Math.max(_this.scrollRatio * 100, 10) + \"%; top:\" + _this.el.scrollTop / totalHeight * 100 + \"%;\";\n }\n });\n }\n };\n function initAll() {\n var nodes = d.querySelectorAll(\"*[ss-container]\");\n for (var i2 = 0; i2 < nodes.length; i2++) {\n initEl(nodes[i2]);\n }\n }\n d.addEventListener(\"DOMContentLoaded\", initAll);\n ss.initEl = initEl;\n ss.initAll = initAll;\n var SimpleScrollbar2 = ss;\n return SimpleScrollbar2;\n });\n }\n});\n\n// src/components/jb-podcast-player/jb-podcast-player.ts\nvar import_plyr = __toESM(require_plyr_min(), 1);\nvar import_rangetouch = __toESM(require_rangetouch(), 1);\nvar import_simple_scrollbar_reworked = __toESM(require_simple_scrollbar(), 1);\n\n// node_modules/simple-scrollbar-reworked/simple-scrollbar.scss?inline\nvar simple_scrollbar_default = i`.ss-wrapper {\n overflow: hidden;\n width: 100%;\n height: 100%;\n position: relative;\n z-index: 1;\n float: left;\n}\n\n.ss-content {\n height: 100%;\n width: calc(100% + 18px);\n padding: 0 0 0 0;\n position: relative;\n overflow: auto;\n box-sizing: border-box;\n}\n\n.ss-content.rtl {\n width: calc(100% + 18px);\n right: auto;\n}\n\n.ss-scroll {\n position: relative;\n background: rgba(0, 0, 0, 0.1);\n width: 9px;\n border-radius: 4px;\n top: 0;\n right: 0;\n z-index: 2;\n cursor: pointer;\n opacity: 0;\n transition: opacity 0.25s linear;\n}\n\n.ss-track {\n max-height: 100px;\n position: absolute;\n border-radius: 4px;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n height: 100%;\n width: 9px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.ss-hidden {\n display: none;\n}\n\n.ss-container:hover .ss-scroll,\n.ss-container:active .ss-scroll {\n opacity: 1;\n}\n\n.ss-grabbed {\n -o-user-select: none;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n}`;\n\n// src/components/jb-podcast-player/jb-podcast-player.scss?inline\nvar jb_podcast_player_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.playlist .headline, .playlist .duration, .playlist .date {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nheader.main h2, .plyr--audio > .plyr__controls, .playlist .description, header.main p, footer span {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.playlist .duration, .playlist .date {\n font-size: var(--theme-typo-uppercase-700-fontsize, 0.688rem);\n letter-spacing: var(--theme-typo-uppercase-700-letterspacing, 0.063rem);\n line-height: var(--theme-typo-uppercase-700-lineheight, 1rem);\n text-transform: uppercase;\n}\n\nfooter span {\n font-size: var(--theme-typo-p-small-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-desktop-lineheight, 1.625rem);\n}\n\n.playlist .headline {\n font-size: var(--theme-typo-p-small-highlight-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-highlight-desktop-lineheight, 1.625rem);\n}\n\n.plyr--audio > .plyr__controls, .playlist .description, header.main p {\n font-size: var(--theme-typo-p-mini-desktop-fontsize, 0.813rem);\n line-height: var(--theme-typo-p-mini-desktop-lineheight, 1.25rem);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n --_shadow-down: 0px 8px 14px 0px rgba(161, 160, 172, 0.17);\n --_shadow-up: 0px -8px 14px 0px rgba(161, 160, 172, 0.17);\n --_playlist-height: 460px;\n --_thumb-height: 10px;\n --_thumb-width: 2px;\n --_track-height: 6px;\n --_range-color: 255 255 255;\n background-color: white;\n border: 1px solid rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n display: block;\n}\n\nheader.main {\n align-items: center;\n display: flex;\n gap: var(--spacing-2xs);\n padding: var(--spacing-2xs) var(--spacing-sm);\n}\n@media (min-width: 600px) {\n header.main {\n gap: var(--spacing-sm);\n padding: var(--spacing-sm) var(--spacing-m) var(--spacing-s);\n }\n}\nheader.main.scrolledtop {\n box-shadow: var(--_shadow-down);\n}\nheader.main jb-picture {\n width: 40px;\n}\n@media (min-width: 600px) {\n header.main jb-picture {\n width: 100px;\n }\n}\nheader.main > div {\n flex: 1;\n overflow: hidden;\n}\nheader.main h2 {\n font-size: 1.188rem;\n line-height: 1.75rem;\n margin-bottom: var(--spacing-base);\n}\n@media (min-width: 600px) {\n header.main h2 {\n font-size: 1.625rem;\n line-height: 2.188rem;\n }\n}\n@media (min-width: 1281px) {\n header.main h2 {\n font-size: 1.938rem;\n line-height: 2.625rem;\n }\n}\nheader.main p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n@media (min-width: 600px) {\n header.main p {\n font-size: 1rem;\n line-height: 1.625rem;\n white-space: normal;\n }\n}\n\nul {\n list-style: none;\n}\n\n.playlist {\n display: block;\n height: var(--_playlist-height);\n overflow: auto;\n position: relative;\n --_scrollbar-margin: 5px;\n}\n.playlist.ss-container {\n overflow: unset;\n}\n.playlist .ss-track {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n bottom: var(--_scrollbar-margin);\n height: auto;\n max-height: calc(100% - 2 * var(--_scrollbar-margin));\n right: var(--spacing-3xs);\n top: var(--_scrollbar-margin);\n transform: none;\n}\n.playlist .ss-scroll {\n background-color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n border-radius: 100vh;\n cursor: default;\n width: 6px;\n}\n.playlist li:not(:first-child) {\n border-top: 1px solid rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n}\n.playlist li {\n box-sizing: border-box;\n padding: var(--spacing-3xs) var(--spacing-sm);\n transition: background-color 0.3s ease-in-out;\n width: calc(100% - var(--_scrollbar-width, 0));\n}\n@media (min-width: 600px) {\n .playlist li {\n padding: var(--spacing-2xs) var(--spacing-m) var(--spacing-xs);\n }\n}\n.playlist li[data-playing] .isplaying {\n display: flex;\n}\n.playlist li[data-playing] .ispaused {\n display: none;\n}\n.playlist li[data-active] .progress {\n opacity: 1;\n}\n.playlist li:hover {\n background-color: #f1f2f2;\n}\n.playlist li:hover .accordiontoggle {\n opacity: 1;\n translate: 0 2px;\n}\n.playlist li:hover .progress input {\n --_thumb-height: 10px;\n --_track-height: 6px;\n --_track-top: -2px;\n}\n.playlist li:hover .playbackbutton {\n outline-offset: 0;\n}\n.playlist li:hover .playbackbutton svg {\n scale: 1;\n}\n.playlist details + .description {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 0.3s ease-in-out;\n}\n.playlist details[open] + .description {\n grid-template-rows: 1fr;\n}\n.playlist details[open] + .description > div {\n padding-top: var(--spacing-3xs);\n transition: padding-top 0.3s ease-in-out;\n}\n.playlist summary {\n align-items: center;\n cursor: pointer;\n display: grid;\n gap: var(--spacing-base);\n grid-template-columns: 1fr;\n}\n@media (min-width: 600px) {\n .playlist summary {\n gap: var(--spacing-s);\n grid-template-columns: 1fr 215px;\n }\n}\n.playlist summary::-webkit-details-marker {\n display: none;\n}\n.playlist .accordiontoggle {\n height: 18px;\n opacity: 0.4;\n rotate: 90deg;\n transition: translate 0.3s ease-in-out, rotate 0.3s ease-in-out, opacity 0.3s ease-in-out;\n width: 18px;\n}\n.playlist details[open] .accordiontoggle {\n rotate: -90deg;\n}\n.playlist .info {\n flex-shrink: 1;\n}\n.playlist .date {\n color: rgba(20, 30, 85, var(--theme-opacity-70, 0.7));\n}\n.playlist .info .date {\n display: none;\n}\n@media (min-width: 600px) {\n .playlist .info .date {\n display: inline-block;\n }\n}\n.playlist .control .date {\n display: inline-block;\n flex: 1;\n margin-right: var(--spacing-xs);\n}\n@media (min-width: 600px) {\n .playlist .control .date {\n display: none;\n }\n}\n.playlist .duration {\n color: rgba(20, 30, 85, var(--theme-opacity-70, 0.7));\n margin-right: var(--spacing-xs);\n text-align: right;\n width: 50px;\n}\n.playlist .control {\n align-items: center;\n display: flex;\n justify-content: space-between;\n}\n.playlist .headline {\n text-wrap: balance;\n}\n.playlist .description > div {\n overflow: hidden;\n padding-top: 0;\n transition: padding-top 0.3s ease-in-out;\n}\n.playlist .progress {\n display: inline-flex;\n flex: 1;\n margin-right: var(--spacing-3xs);\n max-width: 81px;\n opacity: 0;\n position: relative;\n}\n.playlist .playbackbutton {\n --_spinner-color: 20 30 85;\n align-items: center;\n background-color: transparent;\n border: 0;\n cursor: pointer;\n display: flex;\n height: 26px;\n justify-content: center;\n margin-right: var(--spacing-xs);\n outline: 1px solid #141e55;\n outline-offset: -1px;\n padding: 0;\n position: relative;\n transition: outline-offset 0.1s ease-in-out;\n width: 26px;\n}\n.playlist .playbackbutton > div {\n display: flex;\n}\n.playlist .playbackbutton > .isplaying {\n display: none;\n}\n.playlist .playbackbutton > .ispaused {\n display: flex;\n}\n.playlist .playbackbutton svg {\n height: 12px;\n scale: 0.8;\n transition: scale 0.1s ease-in-out;\n width: 100%;\n}\n\n.bottom {\n position: relative;\n}\n\n.scrolledbottom {\n box-shadow: var(--_shadow-up);\n}\n\n#player {\n --_spinner-color: 255 255 255;\n left: 0;\n position: absolute;\n top: 0;\n transition: top 0.3s ease-in-out;\n width: 100%;\n z-index: 1;\n}\n\n[data-playeropen] .playlist .ss-content {\n padding-bottom: var(--playerheight, 60px);\n}\n[data-playeropen] #player {\n top: calc(-1 * var(--playerheight, 60px));\n}\n\nfooter {\n align-items: center;\n background-color: white;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-3xs);\n justify-content: center;\n padding: var(--spacing-3xs) var(--spacing-sm) var(--spacing-2xs);\n position: relative;\n z-index: 2;\n}\n@media (min-width: 600px) {\n footer {\n flex-direction: row;\n justify-content: space-between;\n padding: var(--spacing-s) var(--spacing-m);\n }\n}\nfooter span {\n color: rgba(20, 30, 85, var(--theme-opacity-80, 0.8));\n}\nfooter jb-picture {\n max-width: 150px;\n}\nfooter ul {\n display: flex;\n gap: var(--spacing-xs);\n}\nfooter li {\n flex: 1;\n}\n\n.plyr--audio > .plyr__controls {\n background-color: #141e55;\n color: white;\n display: flex;\n flex-direction: column;\n font-weight: 700;\n gap: var(--spacing-base);\n justify-content: space-between;\n padding: var(--spacing-3xs) var(--spacing-sm) var(--spacing-2xs);\n}\n@media (min-width: 600px) {\n .plyr--audio > .plyr__controls {\n flex-direction: row;\n gap: var(--spacing-s);\n padding: var(--spacing-xs) var(--spacing-m);\n }\n}\n.plyr--audio > .plyr__controls .control {\n align-items: center;\n display: flex;\n gap: var(--spacing-2xs);\n justify-content: flex-end;\n width: 100%;\n}\n@media (min-width: 600px) {\n .plyr--audio > .plyr__controls .control {\n width: auto;\n }\n}\n.plyr--audio > .plyr__controls .title {\n text-align: left;\n width: 100%;\n}\n@media (min-width: 600px) {\n .plyr--audio > .plyr__controls .title {\n width: auto;\n }\n .plyr--audio > .plyr__controls .title::after {\n color: rgba(255, 255, 255, 0.7);\n content: \" - \" var(--podcastdate, \"\");\n display: inline;\n font-weight: 300;\n margin-left: var(--spacing-base);\n white-space: nowrap;\n }\n}\n.plyr--audio > .plyr__controls .plyr__time,\n.plyr--audio > .plyr__controls .duration {\n color: rgba(255, 255, 255, 0.7);\n font-weight: 300;\n}\n\n.plyr--audio .plyr__control:focus-visible,\n.plyr--audio .plyr__control:hover,\n.plyr--audio .plyr__control[aria-expanded=true] {\n background-color: transparent;\n}\n\n.plyr__control {\n border-radius: 0;\n}\n.plyr__control[data-plyr=play] {\n outline: 1px solid white;\n outline-offset: -1px;\n}\n\n.volume__control {\n display: none;\n position: relative;\n --_range-color: 20, 30, 85;\n --_track-height: 2px;\n}\n@media (min-width: 600px) {\n .volume__control {\n display: block;\n }\n}\n.volume__control .plyr__control {\n background-color: transparent;\n border: 0;\n}\n.volume__control .plyr__volume {\n background-color: white;\n box-shadow: var(--_shadow-down);\n display: none;\n left: 16px;\n padding: 8px;\n position: absolute;\n top: -1.5rem;\n transform: rotate(-90deg);\n transform-origin: left center;\n}\n.volume__control .plyr__volume::after {\n border: 6px solid transparent;\n border-image: initial;\n border-right-color: white;\n bottom: 11px;\n content: \"\";\n display: block;\n left: -11px;\n position: absolute;\n}\n\n.volume__control:hover .plyr__volume,\n.volume__control:active .plyr__volume {\n display: block;\n}\n\n.plyr--audio {\n --_thumb-height: 2px;\n --_track-height: 2px;\n --_track-top: 4px;\n}\n.plyr--audio:hover {\n --_thumb-height: 10px;\n --_track-height: 6px;\n --_track-top: 2px;\n}\n.plyr--audio:hover [data-plyr=play] {\n outline-offset: 0;\n}\n.plyr--audio:hover [data-plyr=play] svg {\n scale: 1;\n}\n.plyr--audio .plyr__progress {\n flex: 1;\n max-width: 70px;\n order: -1;\n transition: max-width 0.3s ease-in-out;\n}\n@media (min-width: 600px) {\n .plyr--audio .plyr__progress {\n flex: unset;\n order: unset;\n }\n}\n.plyr--audio.plyr--paused .plyr__time--current {\n display: none;\n}\n.plyr--audio.plyr--playing .plyr__time--current {\n display: inline-block;\n}\n.plyr--audio.plyr--playing .plyr__time--duration {\n display: none;\n}\n@media (min-width: 600px) {\n .plyr--audio.plyr--playing .plyr__time--duration {\n display: inline-block;\n }\n}\n.plyr--audio .control::before {\n color: rgba(255, 255, 255, 0.4);\n content: var(--podcastdate);\n display: inline-block;\n flex: 1;\n margin-right: var(--spacing-2xs);\n order: -1;\n text-align: left;\n text-transform: uppercase;\n}\n@media (min-width: 600px) {\n .plyr--audio .control::before {\n display: none;\n }\n}\n.plyr--audio:not(.loading) .duration::before {\n content: var(--podcastduration);\n white-space: nowrap;\n}\n.plyr--audio:not(.loading) .duration > div {\n display: none;\n}\n.plyr--audio[data-seeking] .control::before, .plyr--audio[data-playing] .control::before {\n display: none;\n}\n.plyr--audio[data-seeking] .play, .plyr--audio[data-playing] .play {\n display: none;\n}\n.plyr--audio[data-seeking] .pause, .plyr--audio[data-playing] .pause {\n display: flex;\n}\n.plyr--audio[data-seeking] .plyr__time--current, .plyr--audio[data-playing] .plyr__time--current {\n display: inline-block;\n}\n.plyr--audio[data-seeking] .plyr__progress, .plyr--audio[data-playing] .plyr__progress {\n max-width: 100%;\n}\n.plyr--audio[data-seeking] .duration::before, .plyr--audio[data-playing] .duration::before {\n display: none;\n}\n@media (min-width: 600px) {\n .plyr--audio[data-seeking] .duration > div, .plyr--audio[data-playing] .duration > div {\n display: block;\n }\n}\n.plyr--audio .play {\n display: flex;\n}\n.plyr--audio .pause {\n display: none;\n}\n.plyr--audio [data-plyr=play] {\n aspect-ratio: 1;\n outline-offset: -1px;\n transition: outline-offset 0.1s ease-in-out;\n}\n.plyr--audio [data-plyr=play] svg {\n scale: 0.8;\n transition: scale 0.1s ease-in-out;\n}\n\n.playlist input[type=range] {\n --_range-color: 20 30 85;\n --_thumb-height: 2px;\n --_track-height: 2px;\n --_track-top: 0px;\n appearance: none;\n background: transparent;\n width: 100%;\n}\n.playlist input[type=range]::-webkit-slider-runnable-track {\n background-color: rgb(var(--_range-color)/0.2);\n}\n.playlist input[type=range]::-webkit-slider-thumb {\n appearance: none;\n background-color: rgb(var(--_range-color));\n border: 0;\n border-radius: 0;\n box-shadow: none;\n height: var(--_thumb-height);\n position: relative;\n top: var(--_track-top);\n width: var(--_thumb-width);\n}\n.playlist input[type=range]::-moz-range-track {\n background-color: rgb(var(--_range-color)/0.2);\n height: var(--_track-height);\n}\n.playlist input[type=range]::-moz-range-progress {\n background: currentcolor;\n background-color: rgb(var(--_range-color));\n height: 2px;\n position: relative;\n}\n\n.plyr--full-ui .volume__control input[type=range]::-webkit-slider-thumb {\n top: 0;\n}\n\n.playlist input[type=range]:active::-moz-range-thumb,\n.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb {\n box-shadow: none;\n}\n\n.playlist input[type=range]::-moz-range-progress,\n.plyr--full-ui input[type=range]::-moz-range-progress {\n background-color: rgb(var(--_range-color));\n border-radius: 0;\n height: var(--_track-height);\n}\n\n.playlist input[type=range]::-moz-range-thumb,\n.plyr--full-ui input[type=range]::-moz-range-thumb {\n background-color: rgb(var(--_range-color));\n border: 0;\n border-radius: 0;\n box-shadow: none;\n height: var(--_thumb-height);\n margin-top: 0;\n width: var(--_thumb-width);\n}\n\n.playlist input[type=range]::-moz-range-track,\n.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track {\n border-radius: 0;\n}\n\n.plyr--full-ui input[type=range]::-moz-range-track {\n background-color: transparent;\n box-shadow: none;\n height: var(--_track-height);\n transition: none;\n}\n\n.playlist input[type=range]:active::-webkit-slider-thumb,\n.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb {\n box-shadow: none;\n}\n\n.plyr--full-ui input[type=range]::-webkit-slider-thumb {\n background-color: rgb(var(--_range-color));\n border: 0;\n border-radius: 0;\n box-shadow: none;\n height: var(--_thumb-height);\n top: var(--_track-top);\n transition: none;\n width: var(--_thumb-width);\n}\n\n.playlist input[type=range]::-webkit-slider-runnable-track,\n.plyr--full-ui input[type=range]::-webkit-slider-runnable-track {\n background-image: linear-gradient(to right, currentcolor var(--value, 0%), transparent var(--value, 0%));\n border-radius: 0;\n color: rgb(var(--_range-color));\n height: var(--_track-height);\n user-select: none;\n}\n\n.loading::after {\n animation: 1.5s linear 0s infinite normal none running spin;\n border-color: rgb(var(--_spinner-color)) rgb(var(--_spinner-color)/0.3) rgb(var(--_spinner-color)/0.3);\n border-radius: 100vh;\n border-style: solid;\n border-width: 2px;\n content: \"\";\n display: block;\n inset: 4px;\n position: absolute;\n}\n\n@keyframes spin {\n to {\n rotate: 360deg;\n }\n}`;\n\n// src/components/jb-podcast-player/jb-podcast-player.ts\nvar JbPodcastPlayer = class extends ChangesBackgroundColor(Spaceable(h)) {\n constructor() {\n super(...arguments);\n this._currentProgress = 0;\n this._observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.intersectionRatio > 0) {\n this._sendTracking(\"visible\", { file_progress: \"visible\" });\n this._observer.unobserve(this);\n this._observer.disconnect();\n }\n });\n });\n this._pauseIcon = ke`
\n \n \n `;\n this._playerOpen = false;\n this._playIcon = ke`
\n \n `;\n this._playingUrl = \"\";\n }\n async firstUpdated() {\n let scrollContainer;\n if (getScrollBarWidth() !== 0) {\n import_simple_scrollbar_reworked.default.initEl(this._playlist);\n await this.updateComplete;\n scrollContainer = this.shadowRoot.querySelector(\".ss-content\");\n } else {\n scrollContainer = this._playlist;\n }\n scrollContainer.addEventListener(\"scroll\", this._playlistScrolled.bind(this));\n const controls = `\n
\n
{title}
\n
\n
00:00
\n
\n \n 00:00 \n
\n
\n
\n
\n \n \n \n Pause \n Play \n \n
\n
\n`;\n this._plyr = new import_plyr.default(this._audioPlayer, {\n controls,\n loadSprite: false,\n i18n: {\n mute: this.ariaLabelMute ?? \"Mute\",\n pause: this.ariaLabelPause ?? \"Pause\",\n play: this.ariaLabelPlay ?? \"Play\",\n seek: this.ariaLabelSeek ?? \"Seek\",\n volume: this.ariaLabelVolume ?? \"Volume\"\n }\n });\n this._plyr.on(\"ready\", (evt) => {\n this.style.setProperty(\"--playerheight\", this._plyr.elements.container.offsetHeight + \"px\");\n const progressBar = evt.detail.plyr.elements.controls.querySelector(\".plyr__progress\");\n const progressBarRangeInput = progressBar.querySelector('input[type=\"range\"]');\n new import_rangetouch.default(progressBarRangeInput, {});\n progressBar.addEventListener(\"touchstart\", () => {\n evt.detail.plyr.elements.container.setAttribute(\"data-seeking\", \"\");\n });\n progressBar.addEventListener(\"touchend\", () => {\n evt.detail.plyr.elements.container.removeAttribute(\"data-seeking\");\n });\n progressBar.addEventListener(\"mousedown\", () => {\n evt.detail.plyr.elements.container.setAttribute(\"data-seeking\", \"\");\n });\n progressBar.addEventListener(\"mouseup\", () => {\n evt.detail.plyr.elements.container.removeAttribute(\"data-seeking\");\n });\n });\n this._plyr.on(\"timeupdate\", (evt) => {\n const currentTime = evt.detail.plyr.currentTime || 0;\n const currentDuration = evt.detail.plyr.duration;\n const currentPercentage = currentDuration > 0 ? Math.round(currentTime / currentDuration * 10) * 10 : 0;\n if (currentPercentage > this._currentProgress) {\n this._currentProgress = currentPercentage;\n this._sendTracking(\"progress\", {\n file_progress: this._currentProgress + \"%\",\n file_type: this._playingUrl.split(\".\").pop(),\n time_elapsed: Math.round(evt.detail.plyr.currentTime)\n });\n }\n const currentProgress = Math.floor(evt.detail.plyr.currentTime * 100 / evt.detail.plyr.duration);\n if (typeof currentProgress !== \"number\" || !this._playingElement) return;\n const progressElement = this._playingElement.querySelector(\".progress > input\");\n progressElement.style.setProperty(\"--value\", Number.isNaN(currentProgress) ? \"0\" : currentProgress + \"%\");\n progressElement.value = String(currentProgress);\n });\n this._plyr.on(\"playing\", (evt) => {\n const listPlayButton = this._playingElement.querySelector(\".playbackbutton\");\n this._playingElement.dataset.playing = \"\";\n evt.detail.plyr.elements.buttons.play[0].classList.remove(\"loading\");\n evt.detail.plyr.elements.container.setAttribute(\"data-playing\", \"\");\n listPlayButton.classList.remove(\"loading\");\n listPlayButton.ariaPressed = \"true\";\n listPlayButton.ariaLabel = this.ariaLabelPause ?? \"Pause\";\n });\n this._plyr.on(\"pause\", (evt) => {\n evt.detail.plyr.elements.container.removeAttribute(\"data-playing\");\n this._playingElement.removeAttribute(\"data-playing\");\n const listPlayButton = this._playingElement.querySelector(\".playbackbutton\");\n listPlayButton.ariaPressed = \"false\";\n listPlayButton.ariaLabel = this.ariaLabelPlay ?? \"Play\";\n });\n this._plyr.on(\"loadstart\", (evt) => {\n this._playlist.querySelector('[aria-pressed=\"true\"]')?.setAttribute(\"aria-pressed\", \"false\");\n if (this._playingUrl === \"\") return;\n this._playingElement.querySelector(\".playbackbutton\").classList.add(\"loading\");\n const range = this._playingElement.querySelector('[type=\"range\"]');\n range.value = \"0\";\n evt.detail.plyr.elements.buttons.play[0].classList.add(\"loading\");\n });\n window.addEventListener(\"resize\", () => {\n this.style.setProperty(\"--playerheight\", this._plyr.elements.container.offsetHeight + \"px\");\n });\n this._observer.observe(this);\n }\n _getContentSpacingProperties() {\n return { grid: \"legacy\", colsMdUp: 8 };\n }\n _playlistScrolled(evt) {\n const target = evt.currentTarget;\n this._isScrolledTop = target.scrollTop > 0;\n this._isScrolledBottom = target.scrollHeight - (target.scrollTop + target.offsetHeight) === 0;\n }\n _progressSliderChange(evt) {\n const inpt = evt.target;\n inpt.style.setProperty(\"--value\", inpt.value ?? \"0%\");\n }\n _progressSliderMouseDown() {\n this._plyr.pause();\n }\n _progressSliderMouseUp(evt) {\n const inpt = evt.target;\n this._plyr.currentTime = this._plyr.duration * parseFloat(inpt.value) / 100;\n this._plyr.play();\n }\n _sendTracking(interaction_type, additionalInfo) {\n const trackingDetails = {\n event: \"ce_audio\",\n event_version: \"v2\",\n component_name: \"podcast-player\",\n file_name: this._playingUrl !== \"\" ? `${this.headline}: ${this._playingElement.dataset.podcastheadline}` : this.headline,\n interaction_type,\n ...additionalInfo\n };\n this.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: trackingDetails,\n bubbles: true,\n composed: true\n })\n );\n }\n _togglePlay(evt) {\n this._playlist.querySelector(\".loading\")?.classList.remove(\"loading\");\n this._plyr.elements.buttons.play[0].classList.remove(\"loading\");\n const activeLiElement = evt.currentTarget.closest(\"li\");\n evt.stopImmediatePropagation();\n if (typeof activeLiElement.dataset.active === \"undefined\") {\n if (typeof this._playingElement?.dataset.active !== \"undefined\") {\n this._playingElement.removeAttribute(\"data-active\");\n this._playingElement.removeAttribute(\"data-playing\");\n const prog = this._playingElement.querySelector(\"input[type=range]\");\n prog.removeEventListener(\"input\", this._progressSliderChange);\n prog.removeEventListener(\"mousedown\", this._progressSliderMouseDown.bind(this));\n prog.removeEventListener(\"mouseup\", this._progressSliderMouseUp.bind(this));\n prog.removeEventListener(\"touchstart\", this._progressSliderMouseDown.bind(this));\n prog.removeEventListener(\"touchend\", this._progressSliderMouseUp.bind(this));\n }\n this._playingElement = activeLiElement;\n this._playingElement.dataset.active = \"\";\n const newProg = this._playingElement.querySelector(\"input[type=range]\");\n newProg.addEventListener(\"input\", this._progressSliderChange);\n newProg.addEventListener(\"mousedown\", this._progressSliderMouseDown.bind(this));\n newProg.addEventListener(\"mouseup\", this._progressSliderMouseUp.bind(this));\n newProg.addEventListener(\"touchstart\", this._progressSliderMouseDown.bind(this));\n newProg.addEventListener(\"touchend\", this._progressSliderMouseUp.bind(this));\n this._playingUrl = this._playingElement.dataset.podcasturl;\n this._plyr.source = {\n type: \"audio\",\n title: this._playingElement.dataset.podcastheadline,\n sources: [{ src: this._playingUrl, type: \"audio/mp3\" }]\n };\n this._plyr.once(\"canplay\", () => {\n this._plyr.play();\n });\n this._plyr.elements.container.style.setProperty(\"--podcastdate\", `\"${this._playingElement.dataset.podcastdate}\"`);\n this._plyr.elements.container.style.setProperty(\n \"--podcastduration\",\n `\"${this._playingElement.dataset.podcastduration}\"`\n );\n this.style.setProperty(\"--playerheight\", this._plyr.elements.container.offsetHeight + \"px\");\n this._sendTracking(\"start\", {\n file_type: this._playingUrl.split(\".\").pop(),\n file_progress: \"start\",\n time_elapsed: 0\n });\n } else {\n this._plyr.togglePlay();\n }\n }\n _trackAccordionToggle(evt) {\n const current = evt.currentTarget.parentElement;\n if (current.getAttribute(\"open\") === null) {\n this._sendTracking(\"expand\", {\n file_name: `${this.headline}: ${current.parentElement.dataset.podcastheadline}`\n });\n }\n }\n _trackSubscription(evt) {\n evt.stopImmediatePropagation();\n this._sendTracking(\"subscribe\", {\n interaction_text: evt.detail.linkTag.title,\n interaction_result: evt.detail.linkTag.href\n });\n }\n render() {\n return ke`\n
\n
\n \n \n
${this.headline} \n
${ae(this.subline)}
\n
\n \n\n
\n ${this.episodes.map(\n (episode) => ke`\n \n \n \n \n
${episode.date}
\n
${ae(episode.headline)}
\n
\n \n
${episode.date}
\n
\n \n
\n
${episode.duration} ${episode.minuteLabel}
\n
\n ${this._pauseIcon}
\n ${this._playIcon}
\n \n
\n
\n \n \n \n \n `\n )}\n \n
\n
\n
\n ${this.allEpisodesText} \n \n ${this.providerBadges.map((providerBadge) => {\n const listElement = document.createElement(\"li\");\n const link = document.createElement(\"a\");\n link.setAttribute(\"title\", providerBadge.name);\n const img = document.createElement(\"jb-picture\");\n img.setAttribute(\"imgData\", JSON.stringify(providerBadge.badgeImage.imgData));\n img.setAttribute(\"alt\", providerBadge.name);\n setLink(link, providerBadge.link);\n link.appendChild(img);\n listElement.appendChild(link);\n return listElement;\n })}\n \n \n
\n
\n `;\n }\n};\nJbPodcastPlayer.styles = r([simple_scrollbar_default, plyr_default, jb_podcast_player_default]);\n__decorateClass([\n n()\n], JbPodcastPlayer.prototype, \"allEpisodesText\", 2);\n__decorateClass([\n n()\n], JbPodcastPlayer.prototype, \"ariaLabelMute\", 2);\n__decorateClass([\n n()\n], JbPodcastPlayer.prototype, \"ariaLabelPause\", 2);\n__decorateClass([\n n()\n], JbPodcastPlayer.prototype, \"ariaLabelPlay\", 2);\n__decorateClass([\n n()\n], JbPodcastPlayer.prototype, \"ariaLabelSeek\", 2);\n__decorateClass([\n n()\n], JbPodcastPlayer.prototype, \"ariaLabelVolume\", 2);\n__decorateClass([\n n({ type: Array })\n], JbPodcastPlayer.prototype, \"episodes\", 2);\n__decorateClass([\n n()\n], JbPodcastPlayer.prototype, \"headline\", 2);\n__decorateClass([\n n({ type: Object })\n], JbPodcastPlayer.prototype, \"image\", 2);\n__decorateClass([\n n({ type: Array })\n], JbPodcastPlayer.prototype, \"providerBadges\", 2);\n__decorateClass([\n n()\n], JbPodcastPlayer.prototype, \"subline\", 2);\n__decorateClass([\n e(\"audio\")\n], JbPodcastPlayer.prototype, \"_audioPlayer\", 2);\n__decorateClass([\n r2()\n], JbPodcastPlayer.prototype, \"_currentProgress\", 2);\n__decorateClass([\n r2()\n], JbPodcastPlayer.prototype, \"_isScrolledBottom\", 2);\n__decorateClass([\n r2()\n], JbPodcastPlayer.prototype, \"_isScrolledTop\", 2);\n__decorateClass([\n r2()\n], JbPodcastPlayer.prototype, \"_playerOpen\", 2);\n__decorateClass([\n r2()\n], JbPodcastPlayer.prototype, \"_playingUrl\", 2);\n__decorateClass([\n e(\".playlist\")\n], JbPodcastPlayer.prototype, \"_playlist\", 2);\nJbPodcastPlayer = __decorateClass([\n customElement(\"jb-podcast-player\")\n], JbPodcastPlayer);\n\nexport {\n JbPodcastPlayer\n};\n", "// node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nvar hasPassiveEvents = false;\nif (typeof window !== \"undefined\") {\n passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return void 0;\n }\n };\n window.addEventListener(\"testPassive\", null, passiveTestOptions);\n window.removeEventListener(\"testPassive\", null, passiveTestOptions);\n}\nvar passiveTestOptions;\nvar isIosDevice = typeof window !== \"undefined\" && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === \"MacIntel\" && window.navigator.maxTouchPoints > 1);\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPosition = void 0;\nvar previousBodyPaddingRight = void 0;\nvar allowTouchMove = function allowTouchMove2(el) {\n return locks.some(function(lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n return false;\n });\n};\nvar preventDefault = function preventDefault2(rawEvent) {\n var e = rawEvent || window.event;\n if (allowTouchMove(e.target)) {\n return true;\n }\n if (e.touches.length > 1) return true;\n if (e.preventDefault) e.preventDefault();\n return false;\n};\nvar setOverflowHidden = function setOverflowHidden2(options) {\n if (previousBodyPaddingRight === void 0) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n var computedBodyPaddingRight = parseInt(window.getComputedStyle(document.body).getPropertyValue(\"padding-right\"), 10);\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = computedBodyPaddingRight + scrollBarGap + \"px\";\n }\n }\n if (previousBodyOverflowSetting === void 0) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n }\n};\nvar restoreOverflowSetting = function restoreOverflowSetting2() {\n if (previousBodyPaddingRight !== void 0) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n previousBodyPaddingRight = void 0;\n }\n if (previousBodyOverflowSetting !== void 0) {\n document.body.style.overflow = previousBodyOverflowSetting;\n previousBodyOverflowSetting = void 0;\n }\n};\nvar setPositionFixed = function setPositionFixed2() {\n return window.requestAnimationFrame(function() {\n if (previousBodyPosition === void 0) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left\n };\n var _window = window, scrollY = _window.scrollY, scrollX = _window.scrollX, innerHeight = _window.innerHeight;\n document.body.style.position = \"fixed\";\n document.body.style.top = -scrollY;\n document.body.style.left = -scrollX;\n setTimeout(function() {\n return window.requestAnimationFrame(function() {\n var bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollY >= innerHeight) {\n document.body.style.top = -(scrollY + bottomBarHeight);\n }\n });\n }, 300);\n }\n });\n};\nvar restorePositionSetting = function restorePositionSetting2() {\n if (previousBodyPosition !== void 0) {\n var y = -parseInt(document.body.style.top, 10);\n var x = -parseInt(document.body.style.left, 10);\n document.body.style.position = previousBodyPosition.position;\n document.body.style.top = previousBodyPosition.top;\n document.body.style.left = previousBodyPosition.left;\n window.scrollTo(x, y);\n previousBodyPosition = void 0;\n }\n};\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled2(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\nvar handleScroll = function handleScroll2(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n if (allowTouchMove(event.target)) {\n return false;\n }\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n return preventDefault(event);\n }\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n return preventDefault(event);\n }\n event.stopPropagation();\n return true;\n};\nvar disableBodyScroll = function disableBodyScroll2(targetElement, options) {\n if (!targetElement) {\n console.error(\"disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.\");\n return;\n }\n if (locks.some(function(lock2) {\n return lock2.targetElement === targetElement;\n })) {\n return;\n }\n var lock = {\n targetElement,\n options: options || {}\n };\n locks = [].concat(_toConsumableArray(locks), [lock]);\n if (isIosDevice) {\n setPositionFixed();\n } else {\n setOverflowHidden(options);\n }\n if (isIosDevice) {\n targetElement.ontouchstart = function(event) {\n if (event.targetTouches.length === 1) {\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function(event) {\n if (event.targetTouches.length === 1) {\n handleScroll(event, targetElement);\n }\n };\n if (!documentListenerAdded) {\n document.addEventListener(\"touchmove\", preventDefault, hasPassiveEvents ? { passive: false } : void 0);\n documentListenerAdded = true;\n }\n }\n};\nvar enableBodyScroll = function enableBodyScroll2(targetElement) {\n if (!targetElement) {\n console.error(\"enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.\");\n return;\n }\n locks = locks.filter(function(lock) {\n return lock.targetElement !== targetElement;\n });\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener(\"touchmove\", preventDefault, hasPassiveEvents ? { passive: false } : void 0);\n documentListenerAdded = false;\n }\n }\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n};\n\nexport {\n disableBodyScroll,\n enableBodyScroll\n};\n", "import {\n e,\n i,\n t\n} from \"./chunk.OZEBCGEZ.js\";\nimport {\n R\n} from \"./chunk.FCKNEYTX.js\";\n\n// node_modules/lit-html/directives/style-map.js\nvar ee = \"important\";\nvar ie = \" !\" + ee;\nvar se = e(class extends i {\n constructor(e2) {\n if (super(e2), e2.type !== t.ATTRIBUTE || \"style\" !== e2.name || e2.strings?.length > 2) throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\");\n }\n render(t2) {\n return Object.keys(t2).reduce((e2, r) => {\n const s = t2[r];\n return null == s ? e2 : e2 + `${r = r.includes(\"-\") ? r : r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g, \"-$&\").toLowerCase()}:${s};`;\n }, \"\");\n }\n update(t2, [e2]) {\n const { style: r } = t2.element;\n if (void 0 === this.ft) return this.ft = new Set(Object.keys(e2)), this.render(e2);\n for (const t3 of this.ft) null == e2[t3] && (this.ft.delete(t3), t3.includes(\"-\") ? r.removeProperty(t3) : r[t3] = null);\n for (const t3 in e2) {\n const s = e2[t3];\n if (null != s) {\n this.ft.add(t3);\n const e3 = \"string\" == typeof s && s.endsWith(ie);\n t3.includes(\"-\") || e3 ? r.setProperty(t3, e3 ? s.slice(0, -11) : s, e3 ? ee : \"\") : r[t3] = s;\n }\n }\n return R;\n }\n});\n\nexport {\n se\n};\n/*! Bundled license information:\n\nlit-html/directives/style-map.js:\n (**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *)\n*/\n", "import {\n se\n} from \"./chunk.Y44YK2W3.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n Stackable\n} from \"./chunk.A4SFXC3I.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-overlay/jb-overlay.scss?inline\nvar jb_overlay_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n.overlay {\n --background-color: #fff;\n background-color: var(--background-color);\n display: block;\n height: 0;\n left: 0;\n overflow: hidden;\n position: fixed;\n top: 0;\n transition: height 600ms ease-in;\n width: 100%;\n}\n.overlay.visible {\n height: 100vh;\n transition-timing-function: ease-out;\n}\n.overlay.visible .overlay__header {\n opacity: 1;\n transition: opacity 300ms ease-out 300ms;\n}\n.overlay.visible .overlay__content {\n opacity: 1;\n top: 0;\n transition: all 450ms ease-out 500ms;\n}\n.overlay--gray {\n --background-color: #f1f2f2;\n}\n.overlay--blue {\n --background-color: #141e55;\n}\n.overlay--blue .overlay__content {\n scrollbar-color: #8a8ea8 transparent;\n}\n.overlay--blue .overlay__content::-webkit-scrollbar {\n width: 12px;\n}\n.overlay--blue .overlay__content::-webkit-scrollbar-thumb {\n background: #8a8ea8;\n border-left: 4px solid #141e55;\n border-right: 4px solid #141e55;\n}\n.overlay__header {\n background-color: var(--background-color);\n height: 60px;\n opacity: 0;\n padding-block: 24px;\n position: fixed;\n top: 0;\n transition: opacity 300ms ease-in 400ms;\n width: 100%;\n}\n@media (min-width: 600px) {\n .overlay__header {\n height: 90px;\n }\n}\n@media (min-width: 1281px) {\n .overlay__header {\n height: 100px;\n }\n}\n.overlay__header > div {\n opacity: 0;\n}\n.overlay__logo-wrap {\n display: flex;\n justify-content: center;\n}\n@media (min-width: 600px) {\n .overlay__logo-wrap {\n padding-top: 12px;\n }\n}\n@media (min-width: 1281px) {\n .overlay__logo-wrap {\n padding-top: 22px;\n }\n}\n.overlay__logo-wrap.no-logo {\n visibility: hidden;\n}\n.overlay jb-logo {\n --logo-color: #001489;\n height: 22px;\n margin-top: 1px;\n width: 114px;\n}\n@media (min-width: 600px) {\n .overlay jb-logo {\n height: 32px;\n margin-top: 2px;\n width: 164px;\n }\n}\n.overlay__close-btn {\n position: absolute;\n right: 20px;\n top: 20px;\n}\n@media (min-width: 600px) {\n .overlay__close-btn {\n right: 36px;\n top: 36px;\n }\n}\n@media (min-width: 1281px) {\n .overlay__close-btn {\n right: 66px;\n top: 46px;\n }\n}\n.overlay__content {\n --overlay-header-height: 60px;\n background-color: var(--background-color);\n height: 100%;\n height: calc(100vh - var(--overlay-header-height, 0));\n margin-top: var(--overlay-header-height);\n opacity: 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n position: fixed;\n scrollbar-color: #141e55 transparent;\n scrollbar-width: thin;\n transition: all 450ms ease-in;\n width: 100%;\n}\n@media (min-width: 600px) {\n .overlay__content {\n --overlay-header-height: 90px;\n }\n}\n@media (min-width: 1281px) {\n .overlay__content {\n --overlay-header-height: 100px;\n }\n}\n.overlay__content::-webkit-scrollbar {\n width: 4px;\n}\n.overlay__content::-webkit-scrollbar-track {\n background-color: transparent;\n}\n.overlay__content::-webkit-scrollbar-thumb {\n background-color: #141e55;\n border-radius: 4px;\n}\n.overlay__content.relative {\n max-height: calc(100vh - 61px);\n position: relative;\n}\n@media (min-width: 600px) {\n .overlay__content.relative {\n max-height: calc(100vh - 92px);\n }\n}\n@media (min-width: 1281px) {\n .overlay__content.relative {\n max-height: calc(100vh - 102px);\n }\n}\n\n.new-animation {\n background-color: unset;\n transition: unset;\n}\n.new-animation.visible {\n transition-timing-function: unset;\n}\n.new-animation.visible .overlay__header {\n transition: unset;\n}\n.new-animation.visible .overlay__content {\n transition: unset;\n}\n.new-animation__header {\n opacity: unset;\n transition: unset;\n}\n.new-animation__content {\n opacity: unset;\n transition: unset;\n}\n\n.fullheight .overlay__header {\n background-color: transparent;\n z-index: 2;\n}\n.fullheight .overlay__content {\n height: 100%;\n height: calc(100vh - var(--overlay-header-height, 0) + 68px);\n margin-top: 34px;\n}\n\njb-burger-icon,\njb-close-icon {\n padding-right: var(--compensate-scrollbar, 0);\n}\n\njb-logo {\n translate: calc(-0.5 * var(--compensate-scrollbar, 0)) 0;\n}`;\n\n// src/components/jb-overlay/jb-overlay.ts\nvar JbOverlay = class extends Initiable(Stackable(h)) {\n constructor() {\n super(...arguments);\n this.fullHeight = false;\n this.hasCloseIcon = true;\n this.newAnimation = false;\n }\n firstUpdated() {\n if (this._introPromiseResolve) {\n window.setTimeout(() => {\n this._section.classList.add(\"visible\");\n this._section.addEventListener(\"transitionend\", (event) => {\n if (event.propertyName === \"height\") {\n this._introPromiseResolve(true);\n }\n });\n }, 10);\n }\n }\n async intro() {\n return new Promise((resolve) => {\n this._introPromiseResolve = resolve;\n });\n }\n async outro() {\n return new Promise((resolve) => {\n if (!this.newAnimation) {\n this._section.classList.remove(\"visible\");\n } else {\n resolve(true);\n }\n this._section.addEventListener(\"transitionend\", (event) => {\n if (event.propertyName === \"height\") {\n resolve(true);\n }\n });\n });\n }\n stacked() {\n }\n unstacked() {\n this.remove();\n }\n _close() {\n this.dispatchEvent(\n new CustomEvent(\"jb-overlay:close\", {\n bubbles: true,\n composed: true\n })\n );\n }\n get _slottedChildren() {\n const slot = this.shadowRoot.querySelector(\"slot\");\n return slot.assignedElements();\n }\n render() {\n return ke`\n
\n `;\n }\n};\nJbOverlay.styles = r(jb_overlay_default);\n__decorateClass([\n n()\n], JbOverlay.prototype, \"ariaLabelClose\", 2);\n__decorateClass([\n n()\n], JbOverlay.prototype, \"color\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbOverlay.prototype, \"fullHeight\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbOverlay.prototype, \"hasCloseIcon\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbOverlay.prototype, \"hasLogo\", 2);\n__decorateClass([\n n()\n], JbOverlay.prototype, \"logoLink\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbOverlay.prototype, \"newAnimation\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbOverlay.prototype, \"relativeContent\", 2);\n__decorateClass([\n n()\n], JbOverlay.prototype, \"svgLogo\", 2);\n__decorateClass([\n e(\"section\")\n], JbOverlay.prototype, \"_section\", 2);\nJbOverlay = __decorateClass([\n customElement(\"jb-overlay\")\n], JbOverlay);\n\nexport {\n JbOverlay\n};\n", "import {\n disableBodyScroll,\n enableBodyScroll\n} from \"./chunk.WDF6H473.js\";\nimport {\n JbOverlay\n} from \"./chunk.5C7B4R5Q.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n Animatable\n} from \"./chunk.VRR2P3PQ.js\";\nimport {\n recenterNavItems\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-publication-download-overlay/jb-publication-download-overlay.scss?inline\nvar jb_publication_download_overlay_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n background-color: #fff;\n display: block;\n min-height: 100%;\n}\n\n.publication-download-overlay {\n display: block;\n opacity: 0;\n padding-bottom: 80px;\n}\n@media (min-width: 960px) {\n .publication-download-overlay {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n }\n}\n@media (min-width: 960px) and (min-width: 600px) and (max-width: 959px) {\n .publication-download-overlay {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 960px) and (min-width: 1437px) {\n .publication-download-overlay {\n max-width: var(--row-max-width, 1436px);\n }\n .publication-download-overlay:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (min-width: 960px) and (max-width: 1436px) {\n .publication-download-overlay {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}`;\n\n// src/components/jb-publication-download-overlay/jb-publication-download-overlay.ts\nvar JbPublicationDownloadOverlay = class extends Initiable(Animatable(h)) {\n constructor() {\n super(...arguments);\n this.clickCallbackUrl = \"\";\n this.noLogo = false;\n this.open = false;\n this.withNewsletterSignup = false;\n }\n render() {\n return ke`\n
\n \n
\n `;\n }\n};\nJbPublicationDownloadOverlay.styles = r(jb_publication_download_overlay_default);\n__decorateClass([\n n()\n], JbPublicationDownloadOverlay.prototype, \"clickCallbackUrl\", 2);\n__decorateClass([\n n({ type: Object })\n], JbPublicationDownloadOverlay.prototype, \"features\", 2);\n__decorateClass([\n n()\n], JbPublicationDownloadOverlay.prototype, \"formAction\", 2);\n__decorateClass([\n n({ type: Object })\n], JbPublicationDownloadOverlay.prototype, \"link\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownloadOverlay.prototype, \"noLogo\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownloadOverlay.prototype, \"open\", 2);\n__decorateClass([\n n({ type: Number })\n], JbPublicationDownloadOverlay.prototype, \"overlayId\", 2);\n__decorateClass([\n n({ type: Object })\n], JbPublicationDownloadOverlay.prototype, \"picture\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownloadOverlay.prototype, \"skipDownloadPage\", 2);\n__decorateClass([\n n({ type: Object })\n], JbPublicationDownloadOverlay.prototype, \"texts\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownloadOverlay.prototype, \"withNewsletterSignup\", 2);\nJbPublicationDownloadOverlay = __decorateClass([\n customElement(\"jb-publication-download-overlay\")\n], JbPublicationDownloadOverlay);\nbindEvents();\n\n// src/components/jb-publication-download-overlay/jb-publication-download-overlay-controller.ts\nvar JbPublicationDownloadOverlayController = class {\n constructor() {\n this.overlay = void 0;\n this.publicationOverlay = void 0;\n }\n async close() {\n if (this.publicationOverlay) {\n await this.publicationOverlay.hide();\n enableBodyScroll(this.publicationOverlay);\n recenterNavItems();\n }\n if (this.overlay) {\n this.overlay.unstack();\n }\n this.overlay = void 0;\n }\n open(event) {\n const customEvent = event;\n if (!customEvent.detail.publicationOverlay) {\n return;\n }\n customEvent.stopPropagation();\n customEvent.detail.clickEvent.preventDefault();\n customEvent.detail.clickEvent.stopPropagation();\n this.publicationOverlay = new JbPublicationDownloadOverlay().init({\n props: {\n clickCallbackUrl: customEvent.detail.publicationOverlay.clickCallbackUrl,\n features: customEvent.detail.publicationOverlay.features,\n formAction: customEvent.detail.publicationOverlay.formAction,\n link: customEvent.detail.publicationOverlay.link,\n picture: customEvent.detail.publicationOverlay.picture,\n skipDownloadPage: customEvent.detail.publicationOverlay.skipDownloadPage,\n texts: customEvent.detail.publicationOverlay.texts,\n withNewsletterSignup: customEvent.detail.publicationOverlay.withNewsletterSignup\n }\n });\n this.overlay = new JbOverlay().init({\n props: { color: \"white\", hasLogo: false, hasCloseIcon: true, newAnimation: true },\n childNodes: [this.publicationOverlay]\n });\n if (this.overlay) {\n this.overlay.stack();\n customElements.whenDefined(\"jb-publication-download-overlay\").then(async () => {\n setTimeout(() => {\n this.publicationOverlay.contentChildren = Array.from(\n this.publicationOverlay.shadowRoot.querySelectorAll(\".publication-download-overlay\")\n );\n }, 0);\n disableBodyScroll(this.publicationOverlay, { allowTouchMove: () => true });\n recenterNavItems();\n await this.publicationOverlay.reveal();\n });\n }\n }\n};\nvar controller = new JbPublicationDownloadOverlayController();\nfunction bindEvents() {\n document.addEventListener(\"jb-overlay:close\", () => {\n controller.close();\n });\n document.addEventListener(\"jb-link:clicked\", (event) => {\n controller.open(event);\n });\n}\n\nexport {\n bindEvents,\n JbPublicationDownloadOverlay\n};\n", "import {\n gsapWithCSS\n} from \"./chunk.LXB4MYP4.js\";\nimport {\n ae\n} from \"./chunk.Q25FCJRM.js\";\nimport {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-publication-download/jb-publication-download.scss?inline\nvar jb_publication_download_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh2 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh2 {\n font-size: var(--theme-typo-h2-subtitle-mobile-fontsize, 1.625rem);\n line-height: var(--theme-typo-h2-subtitle-mobile-lineheight, 2.188rem);\n}\n@media (min-width: 1281px) {\n h2 {\n font-size: var(--theme-typo-h2-subtitle-desktop-fontsize, 1.938rem);\n line-height: var(--theme-typo-h2-subtitle-desktop-lineheight, 2.625rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: inline-block;\n width: 100%;\n}\n\n:host(.in-overlay) {\n margin-block-start: 16px;\n}\n@media (min-width: 960px) {\n :host(.in-overlay) .image-wrapper {\n box-sizing: border-box;\n flex-basis: 41.6666666667%;\n max-width: 41.6666666667%;\n padding: 0 20px;\n width: 41.6666666667%;\n margin: 0 0 0 8.33%;\n }\n}\n:host(.in-overlay) .content-wrapper {\n margin-block-end: 48px;\n}\n\nsection {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n}\n@media (min-width: 600px) and (max-width: 959px) {\n section {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 1437px) {\n section {\n max-width: var(--row-max-width, 1436px);\n }\n section:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1436px) {\n section {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}\n@media (min-width: 960px) {\n section {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 0;\n width: 100%;\n }\n}\n\ndiv {\n transition: background-color 0.8s linear;\n}\n\n.image-wrapper {\n box-sizing: border-box;\n flex-basis: 75%;\n max-width: 75%;\n padding: 0 0;\n width: 75%;\n margin: 0 auto;\n}\n@media (min-width: 960px) {\n .image-wrapper {\n box-sizing: border-box;\n flex-basis: 25%;\n max-width: 25%;\n padding: 0 20px;\n width: 25%;\n margin: 0 0 0 16.67%;\n }\n}\n\n.content-wrapper {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 0;\n width: 100%;\n margin-block-start: 28px;\n}\n@media (min-width: 960px) {\n .content-wrapper {\n box-sizing: border-box;\n flex-basis: 41.6666666667%;\n max-width: 41.6666666667%;\n padding: 0 20px;\n width: 41.6666666667%;\n margin-block-start: 0;\n }\n}\n\njb-button-primary {\n padding-block-start: 30px;\n}\n@media (max-width: 599px) {\n jb-button-primary {\n width: 100%;\n }\n}\n\njb-feature-list {\n display: block;\n margin-block-start: var(--spacing-2xs);\n}\n\njb-feature-list + jb-form {\n margin-block-start: 0;\n}\n\njb-form {\n margin-block-start: 14px;\n}\njb-form jb-button-primary {\n padding-block-start: unset;\n}\n\njb-picture {\n background-color: rgba(0, 0, 0, 0.063);\n box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.1);\n margin-block-end: 20px;\n}\n@media (min-width: 960px) {\n jb-picture {\n margin-block-end: 0;\n }\n}\n\nh2 {\n margin-block-end: 34px;\n}\n\n.newsletter-page,\n.success-page,\n.error-page {\n display: none;\n opacity: 0;\n}`;\n\n// src/components/jb-publication-download/jb-publication-download.ts\nvar JbPublicationDownload = class extends Spaceable(h) {\n constructor() {\n super(...arguments);\n this.withNewsletterSignup = false;\n this._firstPartyDataProcessing = false;\n this._formSubmitted = false;\n this._formValid = false;\n this._textWithCountdown = \"\";\n }\n async firstUpdated() {\n await this.updateComplete;\n if (this.autoStartAfterSeconds) {\n let counter = this.autoStartAfterSeconds;\n this._textWithCountdown = this.texts.downloadText.replace(\"{counter}\", String(counter));\n counter -= 1;\n const intervalId = setInterval(() => {\n this._textWithCountdown = this.texts.downloadText.replace(\"{counter}\", String(counter));\n counter -= 1;\n if (counter < 0) {\n clearInterval(intervalId);\n }\n }, 1e3);\n setTimeout(() => {\n if (this._downloadButton) {\n this._downloadButton.triggerClick();\n }\n }, this.autoStartAfterSeconds * 1e3);\n }\n if (this.skipDownloadPage) {\n const targetPage = this.renderRoot.querySelector(\".newsletter-page\");\n if (targetPage) {\n const componentObserver = new IntersectionObserver(\n async (entries, observer) => {\n if (entries[0].isIntersecting) {\n this._dispatchFormOpenEvent();\n observer.disconnect();\n }\n },\n {\n rootMargin: \"0px\"\n }\n );\n componentObserver.observe(this);\n this.renderRoot.querySelectorAll(\".page\").forEach((element) => {\n element.style.display = \"none\";\n element.style.opacity = \"0\";\n });\n targetPage.style.display = \"initial\";\n targetPage.style.opacity = \"1\";\n }\n }\n }\n _captureTracking(evt) {\n evt.stopPropagation();\n }\n _dispatchFormOpenEvent() {\n this.parentElement?.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: {\n component_name: \"publication-download\",\n event: \"ce_form\",\n event_version: \"v2\",\n form_step_name: \"form open\",\n form_step_nr: \"1\",\n form_subject: this.link?.data.downloadFileName,\n form_type: \"newsletter\"\n },\n bubbles: true,\n composed: true\n })\n );\n }\n _dispatchFormSentEvent() {\n const eventInitDict = {\n detail: {\n component_name: \"publication-download\",\n event: \"ce_form\",\n event_version: \"v2\",\n form_step_name: \"form sent\",\n form_step_nr: \"2\",\n form_subject: this.link?.data.downloadFileName,\n form_type: \"newsletter\",\n optin_type: \"single\"\n },\n bubbles: true,\n composed: true\n };\n if (this.withNewsletterSignup) {\n eventInitDict.detail.first_party_data_processing = this._firstPartyDataProcessing;\n }\n this.parentElement?.dispatchEvent(new CustomEvent(\"jb-tracking\", eventInitDict));\n }\n _download(e2) {\n this._tracking(e2);\n if (this.clickCallbackUrl) {\n fetch(this.clickCallbackUrl);\n }\n if (this.withNewsletterSignup) {\n this._transitionTo(\".download-page\", \".newsletter-page\");\n this._dispatchFormOpenEvent();\n }\n if (!this.withNewsletterSignup && !this.autoStartAfterSeconds) {\n this._transitionTo(\".download-page\", \".success-page\");\n }\n }\n _getContentSpacingProperties() {\n const type = this.classList.contains(\"in-overlay\") ? \"no-vertical-space\" : void 0;\n return { colsMdUp: \"none\", horizontal: \"full-width\", type };\n }\n _subscribe(e2) {\n e2.preventDefault();\n if (!this._formValid || this._formSubmitted) return;\n this._formSubmitted = true;\n const form = this.shadowRoot?.querySelector(\"jb-form\");\n const slottedInputs = form.querySelectorAll(\"jb-text-field, jb-checkbox\");\n const additionalInputs = form.shadowRoot?.querySelectorAll(\"input\");\n const formData = {};\n if (globalThis._satellite) {\n formData.marketingCloudVisitorID = globalThis._satellite.getVisitorId().getMarketingCloudVisitorID();\n formData.marketingCloudOrgID = globalThis._satellite.getVisitorId().marketingCloudOrgID;\n }\n Array.from([...slottedInputs, ...additionalInputs]).forEach((element) => {\n try {\n const name = element.getAttribute(\"name\");\n if (element.tagName === \"JB-CHECKBOX\") {\n formData[name] = element.checkbox?.checked;\n } else {\n formData[name] = element.value;\n }\n } catch (err) {\n }\n });\n try {\n this._firstPartyDataProcessing = formData.newsletterAgree;\n } catch (err) {\n }\n fetch(this.formAction, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n redirect: \"follow\",\n body: JSON.stringify(formData)\n }).then((response) => {\n if (!response.ok) {\n this._transitionTo(\".newsletter-page\", \".error-page\");\n }\n return response.json();\n }).then((data) => {\n if (data.success === true) {\n this._transitionTo(\".newsletter-page\", data.success ? \".success-page\" : \".error-page\");\n } else {\n this._transitionTo(\".newsletter-page\", \".error-page\");\n }\n if (data.success === true) {\n this._dispatchFormSentEvent();\n }\n });\n }\n _tracking(e2) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e2, {\n component_name: \"publication-download\"\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n _transitionTo(page1, page2) {\n const el1 = this.renderRoot.querySelector(page1);\n const el2 = this.renderRoot.querySelector(page2);\n const timeline = gsapWithCSS.timeline({\n paused: true,\n defaults: { duration: 1 }\n }).to(el1, { opacity: 0, display: \"none\" }).to(el2, { display: \"initial\", opacity: 1 });\n timeline.restart();\n }\n render() {\n return ke`\n
\n \n \n
\n\n \n
\n
${this.texts.downloadTitle} \n ${ae(this._textWithCountdown || this.texts.downloadText)} \n ${this.features ? ke` ` : D}\n \n ${this.texts.downloadButton}\n \n \n\n ${this.withNewsletterSignup ? ke`\n
\n
${this.texts.downloadSuccessTitle} \n
${ae(this.texts.downloadSuccessText)} \n ${this.features && this.skipDownloadPage ? ke`
` : D}\n
{\n e2.detail.preventDefault();\n this._formValid = true;\n this._subscribe(e2);\n }}\n @jb-tracking=${this._captureTracking}\n >\n \n ${this.texts.agreement ? ke`\n \n ` : D}\n ${!this.texts.agreementRequiredText && this.texts.agreement && !this.withNewsletterSignup ? ke`\n \n ${ae(this.texts.agreement)}
\n \n ` : D}\n \n ${this.texts.subscribeButton}\n \n \n
\n
\n
\n ${this.withNewsletterSignup && this.texts.successWithSubscriptionTitle && this._firstPartyDataProcessing ? ae(this.texts.successWithSubscriptionTitle) : ae(this.texts.successTitle)}\n \n \n ${this.withNewsletterSignup && this.texts.successWithSubscriptionText && this._firstPartyDataProcessing ? ae(this.texts.successWithSubscriptionText) : ae(this.texts.successText)}\n \n \n\n
\n
${ae(this.texts.errorTitle)} \n ${ae(this.texts.errorText)} \n \n ` : ke`\n
\n
${this.texts.downloadSuccessTitle} \n ${ae(this.texts.downloadSuccessText)} \n \n `}\n
\n \n `;\n }\n};\nJbPublicationDownload.styles = r(jb_publication_download_default);\n__decorateClass([\n n({ type: Number })\n], JbPublicationDownload.prototype, \"autoStartAfterSeconds\", 2);\n__decorateClass([\n n()\n], JbPublicationDownload.prototype, \"clickCallbackUrl\", 2);\n__decorateClass([\n n({ type: Array })\n], JbPublicationDownload.prototype, \"features\", 2);\n__decorateClass([\n n()\n], JbPublicationDownload.prototype, \"formAction\", 2);\n__decorateClass([\n n({ type: Object })\n], JbPublicationDownload.prototype, \"link\", 2);\n__decorateClass([\n n({ type: Object })\n], JbPublicationDownload.prototype, \"picture\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownload.prototype, \"skipDownloadPage\", 2);\n__decorateClass([\n n({ type: Object })\n], JbPublicationDownload.prototype, \"texts\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownload.prototype, \"withNewsletterSignup\", 2);\n__decorateClass([\n e(\"[data-download-button]\")\n], JbPublicationDownload.prototype, \"_downloadButton\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownload.prototype, \"_firstPartyDataProcessing\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownload.prototype, \"_formSubmitted\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPublicationDownload.prototype, \"_formValid\", 2);\n__decorateClass([\n r2()\n], JbPublicationDownload.prototype, \"_textWithCountdown\", 2);\nJbPublicationDownload = __decorateClass([\n customElement(\"jb-publication-download\")\n], JbPublicationDownload);\n\nexport {\n JbPublicationDownload\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-page-hero/jb-page-hero.scss?inline\nvar jb_page_hero_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.with-big-image p, .article-page-hero p, p {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh1 {\n font-family: var(--theme-font-xlight-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-xlight-weight, 200);\n}\n\nh1 {\n font-size: var(--theme-typo-h1-overview-mobile-fontsize, 1.75rem);\n letter-spacing: var(--theme-typo-h1-overview-mobile-letterspacing, 0.094rem);\n line-height: var(--theme-typo-h1-overview-mobile-lineheight, 2.5rem);\n}\n@media (min-width: 1281px) {\n h1 {\n font-size: var(--theme-typo-h1-overview-desktop-fontsize, 3.125rem);\n letter-spacing: var(--theme-typo-h1-overview-desktop-letterspacing, 0.25rem);\n line-height: var(--theme-typo-h1-overview-desktop-lineheight, 4.375rem);\n }\n}\n\n.article-page-hero p, p {\n font-size: var(--theme-typo-p-big-mobile-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-big-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n .article-page-hero p, p {\n font-size: var(--theme-typo-p-big-desktop-fontsize, 1.375rem);\n line-height: var(--theme-typo-p-big-desktop-lineheight, 2.125rem);\n }\n}\n\n.with-big-image p {\n font-size: var(--theme-typo-p-small-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-desktop-lineheight, 1.625rem);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n --_grid-gap: 16px;\n --_grid-template-columns: repeat(12, 1fr);\n --_outer-padding: calc(6.68% - var(--_grid-gap));\n display: grid;\n gap: var(--grid-row-gap, 0) var(--grid-column-gap, var(--_grid-gap));\n grid-template-columns: [full-start] var(--_outer-padding) [main-start] var(--thme-grid-template-columns, var(--_grid-template-columns)) [main-end] var(--_outer-padding) [full-end];\n grid-template-rows: 1fr;\n padding-inline-end: var(--compensate-scrollbar);\n}\n@media (min-width: 600px) {\n :host {\n --_outer-padding: calc(8.35% - var(--_grid-gap));\n }\n}\n@media (min-width: 960px) {\n :host {\n --_grid-gap: 40px;\n --_outer-padding: calc(6.955% - var(--_grid-gap) / 2);\n }\n}\n@media (min-width: 1281px) {\n :host {\n padding-block-start: var(--spacing-s);\n }\n}\n@media (min-width: 1437px) {\n :host {\n --_outer-padding: calc((100% - 1437px - 40px) / 2);\n }\n}\n\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: grid;\n padding-block-start: 0;\n --_row-gap: var(--spacing-m);\n}\n\nsection {\n display: grid;\n grid-column: full;\n grid-template-columns: subgrid;\n}\n\nimg {\n aspect-ratio: 21/9;\n display: grid;\n grid-column: full;\n object-fit: cover;\n order: 0;\n width: 100%;\n}\n\n.content-wrapper {\n display: contents;\n}\n\njb-breadcrumbs {\n grid-column: 2/14;\n margin-block-start: var(--_row-gap);\n order: 1;\n}\n\n.layer-wrapper {\n display: contents;\n}\n\nh1 {\n grid-column: 2/14;\n margin-block-start: var(--_row-gap);\n order: 2;\n text-transform: uppercase;\n}\n\np {\n grid-column: 2/14;\n margin-block-start: var(--_row-gap);\n order: 3;\n}\n\n.content-container {\n display: contents;\n order: 3;\n}\n\n.link-container {\n column-count: 1;\n column-gap: var(--_grid-gap);\n grid-column: 2/14;\n margin-block-start: calc(var(--spacing-lm) - var(--spacing-s));\n order: 4;\n}\n\njb-listing-item {\n break-inside: avoid;\n padding-block-start: var(--spacing-s);\n}\n\njb-listing-item:last-of-type {\n padding-block-end: 0;\n}\n\n.columns-1 {\n column-count: 1;\n}\n\n.columns-2 {\n column-count: 1;\n}\n\n.columns-3 {\n column-count: 2;\n}\n\nhr {\n border-width: 0;\n border-bottom-width: 1px;\n border-color: rgb(var(--theme-color-royal-blue, 20 30 85));\n grid-column: 2/14;\n margin-block-start: var(--spacing-xl);\n order: 5;\n width: 100%;\n}\n\n@media (min-width: 600px) {\n p.next-to-columns-1 {\n grid-column: 2/8;\n order: 4;\n }\n .link-container {\n margin-block-start: calc(var(--_row-gap) - var(--spacing-s));\n }\n .columns-1 {\n grid-column: 8/14;\n order: 4;\n }\n .columns-2 {\n column-count: 2;\n grid-column: 2/14;\n order: 4;\n }\n}\n@media (min-width: 960px) {\n img {\n aspect-ratio: 21/4;\n }\n p.next-to-columns-1 {\n grid-column: 2/8;\n }\n .columns-1 {\n grid-column: 8/14;\n }\n .columns-2 {\n grid-column: 2/14;\n margin-block-start: calc(var(--_grid-gap) - var(--spacing-s));\n }\n}\n@media (min-width: 1281px) {\n section {\n --_row-gap: var(--spacing-lm);\n }\n jb-breadcrumbs {\n margin-block-start: var(--spacing-m);\n }\n p {\n font-size: var(--theme-typo-h3-desktop-fontsize, 1.625rem);\n line-height: var(--theme-typo-h3-desktop-lineheight, 2.25rem);\n }\n p.next-to-columns-1 {\n grid-column: 2/10;\n }\n .link-container {\n margin-block-start: calc(var(--_row-gap) - var(--spacing-s));\n }\n .columns-1 {\n grid-column: 10/14;\n }\n p.next-to-columns-2 {\n grid-column: 2/7;\n }\n .columns-2 {\n grid-column: 7/14;\n }\n}\n@media (min-width: 1437px) {\n p {\n grid-column: 2/11;\n }\n p.next-to-columns-2 {\n grid-column: 2/8;\n }\n .columns-2 {\n grid-column: 8/14;\n }\n}\n.with-image jb-breadcrumbs {\n order: 2;\n}\n.with-image img {\n order: 1;\n}\n\n.with-big-image section {\n row-gap: 0;\n}\n.with-big-image jb-breadcrumbs {\n grid-column: main;\n margin-block: var(--spacing-m) var(--spacing-s);\n order: 1;\n}\n.with-big-image img {\n aspect-ratio: 16/9;\n grid-column: full;\n order: 2;\n}\n.with-big-image .layer-wrapper {\n display: contents;\n}\n.with-big-image .content-container {\n background-color: rgb(var(--theme-color-royal-blue, 20 30 85));\n color: rgb(var(--theme-color-white, 255 255 255));\n display: block;\n grid-column: full;\n order: 3;\n padding-block: var(--spacing-m);\n padding-inline: 25px;\n}\n.with-big-image h1,\n.with-big-image p {\n margin-block: 0;\n text-align: center;\n}\n.with-big-image h1 {\n margin-block: 0 var(--spacing-2xs);\n}\n.with-big-image .link-container {\n margin-block: calc(var(--spacing-m) - var(--spacing-s)) var(--spacing-m);\n}\n.with-big-image .columns-1 {\n grid-column: 2/14;\n}\n.with-big-image .columns-2,\n.with-big-image .columns-3 {\n column-count: 1;\n}\n.with-big-image hr {\n display: none;\n}\n@media (min-width: 960px) {\n .with-big-image img {\n grid-column: main;\n }\n .with-big-image .layer-wrapper {\n display: block;\n grid-column: 3/13;\n order: 2;\n position: relative;\n }\n .with-big-image .content-container {\n bottom: var(--spacing-xl);\n display: block;\n padding: var(--spacing-m);\n position: absolute;\n }\n .with-big-image .columns-1 {\n grid-column: 4/12;\n }\n .with-big-image .columns-2,\n .with-big-image .columns-3 {\n column-count: 2;\n }\n}\n@media (min-width: 1281px) {\n .with-big-image h1 {\n margin-block-end: var(--spacing-sm);\n }\n .with-big-image p {\n font-size: var(--theme-typo-p-desktop-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-desktop-lineheight, 2.125rem);\n }\n .with-big-image .content-container {\n padding: var(--spacing-xl);\n }\n .with-big-image .columns-2 {\n grid-column: 3/13;\n }\n .with-big-image .columns-3 {\n column-count: 3;\n }\n}\n@media (min-width: 1437px) {\n .with-big-image .content-container {\n bottom: 80px;\n }\n .with-big-image .columns-2 {\n grid-column: 3/13;\n }\n}\n\n.article-page-hero {\n --_content-shift: 0px;\n --_background: rgb(\\$color-white);\n margin-block-end: var(--spacing-xl);\n}\n.article-page-hero img {\n aspect-ratio: 21/9;\n grid-column: full;\n order: 1;\n}\n.article-page-hero .content-wrapper {\n background: none;\n display: grid;\n grid-column: 1/15;\n grid-template-columns: subgrid;\n margin-block-start: calc(0px - var(--_content-shift));\n order: 2;\n z-index: 20;\n}\n.article-page-hero hr {\n grid-column: 2/14;\n margin-block-end: 0;\n}\n@media (min-width: 960px) {\n .article-page-hero {\n --_content-shift: 144px;\n }\n .article-page-hero .content-wrapper {\n background-color: rgb(var(--theme-color-white, 255 255 255));\n grid-column: 2/14;\n }\n .article-page-hero jb-breadcrumbs,\n .article-page-hero h1,\n .article-page-hero p,\n .article-page-hero .link-container,\n .article-page-hero hr {\n grid-column: 2/12;\n }\n .article-page-hero p.next-to-columns-1 {\n grid-column: 2/7;\n }\n .article-page-hero .columns-1 {\n grid-column: 7/12;\n }\n .article-page-hero .columns-2 {\n margin-block-start: calc(var(--_grid-gap) - var(--spacing-s));\n }\n}\n@media (min-width: 1281px) {\n .article-page-hero {\n --_content-shift: 216px;\n --_row-gap: var(--spacing-m);\n }\n .article-page-hero h1,\n .article-page-hero p {\n margin-block-start: var(--spacing-lm);\n }\n .article-page-hero p {\n font-size: var(--theme-typo-h3-desktop-fontsize, 1.625rem);\n line-height: var(--theme-typo-h3-desktop-lineheight, 2.25rem);\n }\n .article-page-hero p.next-to-columns-1 {\n grid-column: 2/8;\n }\n .article-page-hero .link-container {\n margin-block-start: calc(var(--spacing-lm) - var(--spacing-s));\n }\n .article-page-hero .columns-1 {\n grid-column: 8/12;\n }\n .article-page-hero p.next-to-columns-2 {\n grid-column: 2/5;\n }\n .article-page-hero .columns-2 {\n grid-column: 5/12;\n }\n}\n@media (min-width: 1437px) {\n .article-page-hero {\n --_content-shift: 248px;\n }\n .article-page-hero p.next-to-columns-2 {\n grid-column: 2/6;\n margin-block-start: var(--_grid-gap);\n }\n .article-page-hero .columns-2 {\n grid-column: 6/12;\n margin-block-start: calc(var(--_grid-gap) - var(--spacing-s));\n }\n}`;\n\n// src/components/jb-page-hero/jb-page-hero.ts\nvar JbPageHero = class extends h {\n constructor() {\n super(...arguments);\n this.type = \"simple\";\n this._maxLinksTotal = 10;\n }\n update(_changedProperties) {\n if (this.type === \"with-big-image\" || this.type === \"article-page-hero\") {\n this._maxLinksTotal = 9;\n }\n if (_changedProperties.has(\"links\") && this.links.length > this._maxLinksTotal) {\n this.links = this.links.slice(0, this._maxLinksTotal);\n }\n super.update(_changedProperties);\n }\n _getColumnCount() {\n if (this.links?.length <= 3 && this.type === \"with-big-image\") {\n return this.links?.length;\n }\n if (this.links?.length > 3 && this.type === \"with-big-image\") {\n return 3;\n }\n if (this.links?.length < 4) {\n return 1;\n }\n return 2;\n }\n render() {\n return ke`\n
\n ${this.image ? ke` ` : D}\n\n \n ${this.breadcrumbs ? ke`
\n ${this.breadcrumbs?.backlink && ke` `}\n ${this.breadcrumbs.items?.map(\n (breadcrumb) => ke` `\n )}\n ` : D}\n ${this.type === \"with-big-image\" ? ke`\n
\n
\n
${this.headline} \n
${this.text}
\n
\n
\n ` : ke`\n
\n
${this.headline} \n
0\n })}\"\n >\n ${this.text}\n
\n
\n `}\n ${this.links?.length > 0 ? ke`\n
\n ${this.links ? this.links.map(\n (item) => ke`\n \n `\n ) : D}\n
\n ` : D}\n\n
\n
\n \n `;\n }\n};\nJbPageHero.styles = r(jb_page_hero_default);\n__decorateClass([\n n({ type: Object })\n], JbPageHero.prototype, \"breadcrumbs\", 2);\n__decorateClass([\n n()\n], JbPageHero.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbPageHero.prototype, \"image\", 2);\n__decorateClass([\n n({ type: Array })\n], JbPageHero.prototype, \"links\", 2);\n__decorateClass([\n n()\n], JbPageHero.prototype, \"text\", 2);\n__decorateClass([\n n()\n], JbPageHero.prototype, \"type\", 2);\nJbPageHero = __decorateClass([\n customElement(\"jb-page-hero\")\n], JbPageHero);\n\nexport {\n JbPageHero\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-news-page-hero/jb-news-page-hero.scss?inline\nvar jb_news_page_hero_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.intro-section ul .languages-label, h5 {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n.intro-section jb-date, .intro, h1 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh1 {\n font-size: var(--theme-typo-h1-mobile-fontsize, 2.125rem);\n line-height: var(--theme-typo-h1-mobile-lineheight, 2.75rem);\n}\n@media (min-width: 1281px) {\n h1 {\n font-size: var(--theme-typo-h1-desktop-fontsize, 3.125rem);\n line-height: var(--theme-typo-h1-desktop-lineheight, 4.375rem);\n }\n}\n\nh5 {\n font-size: var(--theme-typo-p-highlight-mobile-fontsize, 1.063rem);\n line-height: var(--theme-typo-p-highlight-mobile-lineheight, 1.875rem);\n}\n@media (min-width: 1281px) {\n h5 {\n font-size: var(--theme-typo-p-highlight-desktop-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-highlight-desktop-lineheight, 2.125rem);\n }\n}\n\n.intro {\n font-size: var(--theme-typo-p-big-mobile-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-big-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n .intro {\n font-size: var(--theme-typo-p-big-desktop-fontsize, 1.375rem);\n line-height: var(--theme-typo-p-big-desktop-lineheight, 2.125rem);\n }\n}\n\n.intro-section jb-date {\n color: rgba(var(--rgb-primary, 20, 30, 85), var(--text-opacity, var(--theme-opacity-80, 0.8)));\n font-size: 1rem;\n line-height: 1.625rem;\n}\n\n.intro-section ul .languages-label {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n@media (min-width: 1281px) {\n :host {\n padding: 36px 0 20px;\n }\n}\n\n.title {\n --text-opacity: 1;\n}\n\n.intro-section {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding: 0 0 24px;\n}\n@media (min-width: 960px) {\n .intro-section {\n padding: 0 0 37px;\n }\n}\n.intro-section jb-date {\n --rgb-primary: 20, 30, 85;\n --text-opacity: 0.4;\n text-transform: uppercase;\n}\n.intro-section ul {\n align-items: center;\n display: flex;\n list-style-type: none;\n}\n.intro-section ul .languages-label {\n color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n display: none;\n padding-right: 15px;\n text-transform: uppercase;\n}\n@media (min-width: 1281px) {\n .intro-section ul .languages-label {\n display: block;\n }\n}\n.intro-section ul jb-language-item {\n padding: 0 15px;\n padding: 0 0.9375rem;\n --text-opacity: 1;\n position: relative;\n}\n.intro-section ul jb-language-item:hover {\n --text-opacity: 0.4;\n}\n.intro-section ul jb-language-item::after {\n width: 3px;\n width: 0.1875rem;\n height: 3px;\n height: 0.1875rem;\n right: -2px;\n right: -0.125rem;\n background-color: #141e55;\n border-radius: 100%;\n content: \"\";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n.intro-section ul jb-language-item:first-of-type {\n padding-left: 0;\n}\n.intro-section ul jb-language-item:last-of-type {\n padding-right: 0;\n}\n.intro-section ul jb-language-item:last-of-type::after {\n display: none;\n}\n\njb-breadcrumbs {\n display: block;\n margin-bottom: 26px;\n text-align: center;\n line-height: 36px;\n line-height: 2.25rem;\n}\n@media (min-width: 600px) {\n jb-breadcrumbs {\n text-align: left;\n }\n}\n@media (min-width: 960px) {\n jb-breadcrumbs {\n margin-bottom: 40px;\n }\n}\n\n.toolbar {\n align-items: start;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin-bottom: 24px;\n position: relative;\n width: 100%;\n}\n.toolbar jb-article-share-bar {\n margin-left: auto;\n}\n@media (min-width: 960px) {\n .toolbar {\n margin-bottom: 32px;\n }\n}\n\nh1 {\n margin-bottom: 20px;\n}\n\n.intro {\n margin-bottom: 32px;\n}`;\n\n// src/components/jb-news-page-hero/jb-news-page-hero.ts\nvar JbNewsPageHero = class extends Spaceable(h) {\n _getContentSpacingProperties() {\n return { type: \"no-vertical-space\" };\n }\n render() {\n return ke`
\n ${this.breadcrumbs && ke`\n \n ${this.breadcrumbs.backlink && ke` `}\n ${this.breadcrumbs.items?.map(\n (breadcrumb) => ke` `\n )}\n \n `}\n \n \n ${this.subline && ke`
${this.subline} `}\n ${this.headline} \n \n ${this.shareBarLabel && ke`\n ${this.mailSubject && this.shareBarLabel && this.sharingUrl && ke`\n \n `}\n
`}\n ${this.intro}
\n \n \n `;\n }\n};\nJbNewsPageHero.styles = r(jb_news_page_hero_default);\n__decorateClass([\n n({ type: Object })\n], JbNewsPageHero.prototype, \"breadcrumbs\", 2);\n__decorateClass([\n n()\n], JbNewsPageHero.prototype, \"date\", 2);\n__decorateClass([\n n()\n], JbNewsPageHero.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbNewsPageHero.prototype, \"intro\", 2);\n__decorateClass([\n n({ type: Array })\n], JbNewsPageHero.prototype, \"languages\", 2);\n__decorateClass([\n n()\n], JbNewsPageHero.prototype, \"languagesLabel\", 2);\n__decorateClass([\n n()\n], JbNewsPageHero.prototype, \"mailSubject\", 2);\n__decorateClass([\n n()\n], JbNewsPageHero.prototype, \"shareBarLabel\", 2);\n__decorateClass([\n n()\n], JbNewsPageHero.prototype, \"sharingUrl\", 2);\n__decorateClass([\n n()\n], JbNewsPageHero.prototype, \"subline\", 2);\nJbNewsPageHero = __decorateClass([\n customElement(\"jb-news-page-hero\")\n], JbNewsPageHero);\n\nexport {\n JbNewsPageHero\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n Stackable\n} from \"./chunk.A4SFXC3I.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-popup/jb-popup.scss?inline\nvar jb_popup_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nsection {\n background-color: rgba(0, 0, 0, 0.4);\n inset: 0;\n overflow-y: auto;\n padding: 30px 0;\n position: fixed;\n}\nsection::-webkit-scrollbar {\n background-color: #141e55;\n width: 5px;\n}\nsection::-webkit-scrollbar-track {\n background-clip: content-box;\n background-color: #f1f2f2;\n}\nsection::-webkit-scrollbar-thumb {\n background-color: #141e55;\n border-radius: 4px;\n width: 180px;\n}\n@media (min-width: 1281px) {\n section {\n align-items: center;\n display: flex;\n padding: 0;\n }\n}\nsection.animates {\n opacity: 0;\n transition: opacity 400ms ease-in;\n}\nsection.animates .slot-container-inner {\n transform: scale(0.9);\n transition: transform 400ms ease-in;\n}\nsection.animates.visible {\n opacity: 1;\n transition-timing-function: ease-out;\n}\nsection.animates.visible .slot-container-inner {\n transform: scale(1);\n transition-timing-function: ease-out;\n}\n\n.container {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n justify-content: center;\n position: relative;\n}\n@media (min-width: 600px) and (max-width: 959px) {\n .container {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 1437px) {\n .container {\n max-width: var(--row-max-width, 1436px);\n }\n .container:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1436px) {\n .container {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}\n\n.slot-container-col {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 20px;\n width: 100%;\n padding: 0;\n}\n@media (min-width: 1281px) {\n .slot-container-col {\n box-sizing: border-box;\n flex-basis: 83.3333333333%;\n max-width: 83.3333333333%;\n padding: 0 20px;\n width: 83.3333333333%;\n }\n}\n\n.slot-container-outer {\n transition: height 800ms ease;\n}\n\n.slot-container-inner {\n opacity: 1;\n transition: opacity 400ms ease;\n}\n\n.transition-helper-container {\n box-sizing: border-box;\n flex-basis: 83.3333333333%;\n max-width: 83.3333333333%;\n padding: 0 0;\n width: 83.3333333333%;\n opacity: 0;\n position: absolute;\n top: 0;\n}`;\n\n// src/components/jb-popup/jb-popup.ts\nvar JbPopup = class extends Initiable(Stackable(h)) {\n constructor() {\n super(...arguments);\n this._internalStack = [];\n }\n firstUpdated() {\n if (this.animates && this._introPromiseResolve) {\n window.setTimeout(() => {\n this._background.classList.add(\"visible\");\n this._background.addEventListener(\"transitionend\", this._introPromiseResolve, { once: true });\n }, 10);\n }\n window.setTimeout(() => {\n this._slotContainerOuter.style.height = `${this._slotContainerOuter.getBoundingClientRect().height}px`;\n }, 0);\n }\n async intro() {\n if (!this.animates) {\n return void 0;\n }\n return new Promise((resolve) => {\n this._introPromiseResolve = resolve;\n });\n }\n async outro() {\n if (!this.animates) {\n return void 0;\n }\n return new Promise((resolve) => {\n this._background.classList.remove(\"visible\");\n this._background.addEventListener(\"transitionend\", resolve, { once: true });\n });\n }\n transitionBack() {\n const previousChild = this._internalStack.pop();\n if (!previousChild) {\n this.unstack();\n return;\n }\n const currentChildElement = this._slot?.assignedElements()[0];\n if (!currentChildElement) {\n return;\n }\n this._transitionChildFromTo(currentChildElement, previousChild);\n }\n transitionTo(nextChildElement) {\n const currentChildElement = this._slot?.assignedElements()[0];\n if (!currentChildElement) {\n return;\n }\n this._internalStack.push(currentChildElement);\n this._transitionChildFromTo(currentChildElement, nextChildElement).then(() => {\n });\n }\n unstacked() {\n this.remove();\n }\n _handlePopupBackgroundClick(event) {\n if (this.preventCloseByBackgroundClick) {\n return;\n }\n if (event.target === this._background || event.target === this._container) {\n this.unstack();\n }\n }\n _handleTransitionEvent(event) {\n this.transitionTo(event.detail.nextChild);\n }\n async _transitionChildFromTo(fromElement, toElement) {\n fromElement.style.setProperty(\"--background-color\", \"transparent\");\n toElement.style.setProperty(\"--background-color\", \"transparent\");\n this._slotContainerOuter.style.backgroundColor = \"rgb(20, 30, 85)\";\n toElement.setAttribute(\"slot\", \"transition-helper\");\n await this.appendChild(toElement);\n window.setTimeout(() => {\n this._slotContainerInner.addEventListener(\n \"transitionend\",\n () => {\n this._slotContainerInner.addEventListener(\n \"transitionend\",\n () => {\n window.setTimeout(() => {\n fromElement.style.setProperty(\"--background-color\", \"unset\");\n toElement.style.setProperty(\"--background-color\", \"unset\");\n this._slotContainerOuter.style.backgroundColor = \"transparent\";\n }, 500);\n },\n { once: true }\n );\n this._slotContainerInner.style.opacity = \"1\";\n this.removeChild(fromElement);\n toElement.removeAttribute(\"slot\");\n this._slotContainerOuter.style.height = `${toElement.getBoundingClientRect().height}px`;\n },\n { once: true }\n );\n this._slotContainerOuter.style.height = `${toElement.getBoundingClientRect().height}px`;\n this._slotContainerInner.style.opacity = \"0\";\n }, 0);\n }\n render() {\n return ke`\n \n `;\n }\n};\nJbPopup.styles = r(jb_popup_default);\n__decorateClass([\n n({ type: Boolean })\n], JbPopup.prototype, \"animates\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbPopup.prototype, \"preventCloseByBackgroundClick\", 2);\n__decorateClass([\n e(\"section\")\n], JbPopup.prototype, \"_background\", 2);\n__decorateClass([\n e(\".container\")\n], JbPopup.prototype, \"_container\", 2);\n__decorateClass([\n e(\"slot\")\n], JbPopup.prototype, \"_slot\", 2);\n__decorateClass([\n e(\".slot-container-inner\")\n], JbPopup.prototype, \"_slotContainerInner\", 2);\n__decorateClass([\n e(\".slot-container-outer\")\n], JbPopup.prototype, \"_slotContainerOuter\", 2);\n__decorateClass([\n e('slot[name=\"transition-helper\"]')\n], JbPopup.prototype, \"_transitionHelperSlot\", 2);\nJbPopup = __decorateClass([\n customElement(\"jb-popup\")\n], JbPopup);\n\nexport {\n JbPopup\n};\n", "import {\n JbPopup\n} from \"./chunk.PO4WO7D2.js\";\nimport {\n ae\n} from \"./chunk.Q25FCJRM.js\";\nimport {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n JBCookie\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-newsletter-registration-form/jb-newsletter-registration-form.scss?inline\nvar jb_newsletter_registration_form_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.form-error,\n.form-success {\n font-family: var(--theme-font-regular-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-regular-weight, 400);\n}\n\n.sticky h4, h4 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh4 {\n font-size: var(--theme-typo-h2-subtitle-mobile-fontsize, 1.625rem);\n line-height: var(--theme-typo-h2-subtitle-mobile-lineheight, 2.188rem);\n}\n@media (min-width: 1281px) {\n h4 {\n font-size: var(--theme-typo-h2-subtitle-desktop-fontsize, 1.938rem);\n line-height: var(--theme-typo-h2-subtitle-desktop-lineheight, 2.625rem);\n }\n}\n\n.sticky h4 {\n font-size: var(--theme-typo-p-mobile-fontsize, 1.063rem);\n line-height: var(--theme-typo-p-mobile-lineheight, 1.875rem);\n}\n@media (min-width: 1281px) {\n .sticky h4 {\n font-size: var(--theme-typo-p-desktop-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-desktop-lineheight, 2.125rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n.sticky {\n --_max-width: calc(100% - (2 * 6.68%));\n display: grid;\n grid-template-columns: [full-start] minmax(0, 1fr) [main-start] minmax(0, var(--theme-grid-max-width, var(--_max-width))) [main-end] minmax(0, 1fr) [full-end];\n margin-inline: auto;\n}\n@media (min-width: 600px) {\n .sticky {\n --_max-width: calc(100% - (2 * 8.35%));\n }\n}\n@media (min-width: 960px) {\n .sticky {\n --_max-width: calc(100% - (2 * 6.955%));\n }\n}\n@media (min-width: 1437px) {\n .sticky {\n --_max-width: 1437px;\n }\n}\n\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n transition: 0.5s all;\n width: 100%;\n}\n\njb-form {\n --slotted-margin-block-start: 0;\n}\n\n.form-errors {\n display: grid;\n grid-column: 3/9;\n}\n\n.form-error,\n.form-success {\n align-items: center;\n color: rgb(var(--rgb-primary, 20, 30, 85));\n display: flex;\n gap: 30px;\n padding: 30px;\n position: relative;\n transition: opacity 1s ease-in 0s, visibility 1s ease-in 0s;\n}\n\n.is-muted {\n opacity: var(--theme-opacity-70, 0.7);\n}\n\n.is-hidden {\n height: 0;\n opacity: 0;\n padding: 0;\n visibility: collapse;\n}\n\n@media (min-width: 960px) {\n .newsletter-registration-form:not(.sticky) .form-container {\n display: grid;\n grid-template-columns: repeat(10, 1fr);\n }\n .newsletter-registration-form:not(.sticky) .content-container {\n grid-column: 1/11;\n }\n .newsletter-registration-form:not(.sticky) jb-form {\n grid-column: 2/10;\n }\n .newsletter-registration-form:not(.sticky) jb-form > jb-text-field {\n grid-column: 1/2;\n }\n .newsletter-registration-form:not(.sticky) jb-form > jb-button-primary {\n align-self: center;\n grid-column: 2/3;\n grid-row: 1;\n margin-top: 0;\n }\n .newsletter-registration-form:not(.sticky) jb-form > jb-checkbox {\n grid-column: 1/3;\n }\n}\njb-form > * {\n grid-column: 1/3;\n}\n\nh4 {\n display: block;\n grid-column: 1/11;\n margin-bottom: var(--spacing-sm);\n position: relative;\n text-align: center;\n}\n\njb-section-headline {\n grid-column: 1/11;\n margin-block-end: var(--spacing-2xs);\n}\n@media (min-width: 960px) {\n jb-section-headline {\n margin-block-end: var(--spacing-3xs);\n }\n}\n\n@media (min-width: 1281px) {\n .default h4 {\n font-family: VerlagSSm, Tahoma, sans-serif;\n font-size: 2.813rem;\n font-style: normal;\n font-weight: 200;\n line-height: 3.875rem;\n }\n}\n.sticky {\n bottom: 0;\n position: fixed;\n transform: translateY(100%);\n transition: transform 0.3s ease-in-out;\n width: 100%;\n}\n.sticky .form-wrapper {\n grid-column: main;\n}\n@media (min-width: 1281px) {\n .sticky .form-wrapper {\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n }\n}\n.sticky .form-container {\n --_text-translate: 13px;\n background-color: #141e55;\n box-shadow: 0, 0, 0, 0.2 20px -20px 68px;\n column-gap: var(--spacing-l);\n padding: var(--spacing-s);\n position: relative;\n transition: padding-block-end 0.3s ease-in-out;\n --form-flex-gap: var(--spacing-sm);\n}\n@media (min-width: 1281px) {\n .sticky .form-container {\n display: grid;\n grid-column: 2/12;\n grid-template-columns: subgrid;\n padding: var(--spacing-l) var(--spacing-xl);\n row-gap: var(--spacing-sm);\n --form-flex-gap: var(--spacing-sm);\n }\n .sticky .form-container .content-container {\n grid-column: 1/5;\n padding-inline-start: calc(var(--spacing-xl) - var(--spacing-s));\n }\n .sticky .form-container jb-form {\n grid-column: 5/10;\n transform: translateY(calc(-1 * var(--_text-translate)));\n }\n .sticky .form-container jb-button-primary {\n width: min-content;\n }\n}\n.sticky .form-errors {\n display: grid;\n grid-column: 5/10;\n}\n.sticky jb-section-headline {\n --headline-text-align: left;\n --host-color: #fff;\n margin-block-end: var(--spacing-3xs);\n}\n.sticky jb-checkbox {\n opacity: 0;\n transition: opacity 0.3s ease-in-out;\n}\n.sticky h4 {\n color: #fff;\n max-height: 0;\n opacity: 0;\n overflow: hidden;\n text-align: left;\n transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out;\n}\n.sticky.show {\n transform: translateY(var(--_scrolloutheight));\n}\n.sticky.expanded {\n transform: translateY(0);\n}\n.sticky.expanded .form-container {\n padding-block-end: calc(var(--spacing-l) - var(--_text-translate));\n}\n.sticky.expanded h4 {\n max-height: 50vh;\n opacity: 1;\n}\n.sticky.expanded jb-checkbox {\n opacity: 1;\n}\n.sticky jb-close-icon {\n right: var(--spacing-s);\n top: var(--spacing-s);\n}\n@media (min-width: 1281px) {\n .sticky jb-close-icon {\n right: var(--spacing-xl);\n top: var(--spacing-l);\n }\n}\n\n.popup {\n display: none;\n}\n.popup .form-container {\n box-shadow: 20px -20px 68px rgba(0, 0, 0, 0.2);\n column-gap: var(--spacing-l);\n padding-block: calc(var(--spacing-sm) + 26px + var(--spacing-xs)) var(--spacing-2xl);\n padding-inline: var(--spacing-s);\n --form-flex-gap: var(--spacing-sm);\n}\n@media (min-width: 960px) {\n .popup .form-container {\n --form-flex-gap: 20px;\n }\n}\n.popup jb-close-icon {\n right: var(--spacing-s);\n top: var(--spacing-sm);\n}\n.popup h4 {\n color: #fff;\n}\n@media (min-width: 960px) {\n .popup jb-section-headline {\n margin-bottom: var(--spacing-s);\n }\n .popup .content-container {\n grid-column: 2/10;\n }\n .popup .form-container {\n padding-block: var(--spacing-2xl);\n padding-inline: 0;\n }\n}\n@media (min-width: 1281px) {\n .popup {\n margin-inline: -20px;\n }\n .popup jb-close-icon {\n right: var(--spacing-l);\n top: var(--spacing-2xl);\n }\n}\n\n.popup,\n.sticky {\n z-index: 111;\n --host-color: #fff;\n}\n.popup jb-section-headline,\n.sticky jb-section-headline {\n margin-block-end: var(--spacing-3xs);\n}\n.popup jb-text-field,\n.sticky jb-text-field {\n --rgb-primary: 255, 255, 255;\n --background-color: transparent;\n --border-opacity: 0.7;\n}\n.popup jb-checkbox,\n.sticky jb-checkbox {\n --rgb-primary: 255, 255, 255;\n --border-opacity: 0.7;\n --text-opacity: 1;\n}\n.popup jb-close-icon,\n.sticky jb-close-icon {\n --rgb-primary: 255, 255, 255;\n --icon-size: 26px;\n position: absolute;\n}\n@media (min-width: 1281px) {\n .popup jb-close-icon,\n .sticky jb-close-icon {\n --icon-size: 30px;\n z-index: 1;\n }\n}\n.popup .form-container,\n.sticky .form-container {\n background-color: #141e55;\n position: relative;\n}\n.popup jb-richtext,\n.sticky jb-richtext {\n color: white;\n --rgb-primary: 255, 255, 255;\n}\n\n@media print {\n :host {\n display: none;\n }\n}`;\n\n// src/components/jb-newsletter-registration-form/jb-newsletter-registration-form.ts\nvar stickyCookieName = \"jbNlReg\";\nvar stickyWaitTime = 20 * 1e3;\nvar JbNewsletterRegistrationForm = class extends Spaceable(h) {\n constructor() {\n super(...arguments);\n this.forceInstantly = false;\n this.formAction = \"\";\n this.headline = \"\";\n this.subline = \"\";\n this.successText = \"\";\n this.type = \"default\";\n this._formOpenTrackedSticky = false;\n this._formSent = false;\n this._formValid = false;\n }\n firstUpdated() {\n if (this.type === \"sticky\") {\n this._inputField.addEventListener(\"focusin\", () => {\n this._expandStickyContainer();\n });\n setTimeout(() => {\n const newsletterRegistrationCookieValue = JBCookie.getCookie(stickyCookieName);\n if (newsletterRegistrationCookieValue) {\n return;\n }\n const agreementText = this.renderRoot.querySelector(\"jb-richtext.agreementText\");\n const checkbox = this.renderRoot.querySelector(\"jb-checkbox\");\n const button = this.renderRoot.querySelector(\"jb-button-primary\");\n let paddingAdjustment = window.matchMedia(\"(min-width: 367px)\").matches ? 38 : 58;\n paddingAdjustment = window.matchMedia(\"(min-width: 1281px)\").matches ? 61 : paddingAdjustment;\n this._unexpandListener = this._unexpand.bind(this);\n document.addEventListener(\"click\", this._unexpandListener);\n this.style.setProperty(\n \"--_scrolloutheight\",\n `${(checkbox ? checkbox.offsetHeight : 0) + (agreementText ? agreementText.offsetHeight : 0) + button.offsetHeight + paddingAdjustment}px`\n );\n this._formWrapper.classList.add(\"show\");\n }, stickyWaitTime);\n }\n this.addEventListener(\"jb-tracking\", (e2) => {\n const customEvent = e2;\n if (customEvent.detail?.event === \"ce_form\") {\n customEvent.detail.component_name = this.type === \"sticky\" ? \"newsletter-registration-form\" : \"article-tool-bar\";\n customEvent.detail.form_subject = \"newsletter\";\n }\n if (customEvent.detail?.event === \"ce_form\" && customEvent.detail?.form_step_name === \"form open\") {\n customEvent.stopPropagation();\n this._formOpenEvent = customEvent;\n }\n });\n }\n static open() {\n const newsletterRegistrationNode = document.querySelector(\"jb-newsletter-registration-form\");\n if (!newsletterRegistrationNode) {\n return;\n }\n const newsletterRegistrationWrapper = newsletterRegistrationNode.shadowRoot?.firstElementChild;\n newsletterRegistrationWrapper.style.display = \"block\";\n const clone = newsletterRegistrationNode.cloneNode(true);\n newsletterRegistrationNode.parentNode.appendChild(clone);\n new JbPopup().init({\n props: { animates: true },\n childNodes: [newsletterRegistrationNode]\n }).stack();\n document.body.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: {\n event: \"ce_form\",\n event_version: \"v2\",\n component_name: \"article-tool-bar\",\n form_step_name: \"form open\",\n form_step_nr: \"1\",\n form_subject: \"newsletter registration\",\n form_type: \"newsletter\"\n },\n bubbles: true,\n composed: true\n })\n );\n }\n _captureTracking(evt) {\n evt.stopPropagation();\n if (this.type === \"default\") {\n this._trackFormOpen(\"newsletter-registration-form\");\n }\n }\n _expandStickyContainer() {\n this._formWrapper.classList.add(\"expanded\");\n if (!this._formOpenTrackedSticky) {\n this._trackFormOpen(\"sticky-newsletter\");\n this._formOpenTrackedSticky = true;\n }\n }\n _getContentSpacingProperties() {\n return { colsMdUp: 10, grid: true };\n }\n _handleCloseIconClick() {\n if (this.type === \"sticky\") {\n this._formWrapper.classList.remove(\"show\");\n this._formWrapper.classList.remove(\"expanded\");\n JBCookie.setCookie(stickyCookieName, \"1\", 182);\n document.removeEventListener(\"click\", this._unexpandListener);\n }\n if (this.type === \"popup\") {\n document.querySelector(\"jb-popup\")?.unstack();\n }\n }\n _submit() {\n const form = this._formWrapper.querySelector(\"jb-form\");\n const slottedInputs = form.querySelectorAll(\"jb-text-field, jb-checkbox\");\n const additionalInputs = form.shadowRoot?.querySelectorAll(\"input\");\n const formData = {};\n let isValid = true;\n Array.from([...slottedInputs, ...additionalInputs || []]).forEach((element) => {\n try {\n if (element.validate) {\n isValid = element.validate() && isValid;\n }\n const name = element.getAttribute(\"name\");\n formData[name] = element.value;\n if (element.tagName === \"JB-CHECKBOX\") {\n formData[name] = element.checkbox?.checked;\n } else {\n formData[name] = element.value;\n }\n } catch (err) {\n }\n });\n this._formValid = isValid;\n if (!isValid) {\n return;\n }\n if (this.agreementFieldName in formData) {\n formData.first_party_data_processing = true;\n }\n formData.source = this.type;\n form.classList.add(\"is-muted\");\n if (this.submissionMode === \"fetch\") {\n fetch(this.formAction, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n redirect: \"follow\",\n body: JSON.stringify(formData)\n }).then((response) => {\n if (!response.ok) {\n this._formSent = true;\n this.updateComplete.then(() => {\n this._formError.classList.toggle(\"is-hidden\");\n form.classList.remove(\"is-muted\");\n });\n }\n return response.json();\n }).then((data) => {\n if (data.success === true) {\n this._formSent = true;\n this.updateComplete.then(() => {\n this._formSuccess.classList.toggle(\"is-hidden\");\n form.classList.toggle(\"is-hidden\");\n });\n }\n }).then(() => {\n setTimeout(() => {\n this._handleCloseIconClick();\n }, 3e3);\n });\n }\n }\n _trackFormOpen(componentName) {\n document.body.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: {\n event: \"ce_form\",\n event_version: \"v2\",\n component_name: componentName,\n form_step_name: \"form open\",\n form_step_nr: \"1\",\n form_subject: \"newsletter registration\",\n form_type: \"newsletter\"\n },\n bubbles: true,\n composed: true\n })\n );\n }\n _unexpand(evt) {\n if (evt.target.nodeName === \"JB-NEWSLETTER-REGISTRATION-FORM\" || !this._formWrapper.classList.contains(\"expanded\"))\n return;\n this._formWrapper.classList.remove(\"expanded\");\n }\n render() {\n return ke`\n \n `;\n }\n};\nJbNewsletterRegistrationForm.styles = r(jb_newsletter_registration_form_default);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"afterCheckboxText\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"agreement\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"agreementFieldName\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"agreementRequiredText\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"beforeCheckboxText\", 2);\n__decorateClass([\n n({ type: Object })\n], JbNewsletterRegistrationForm.prototype, \"emailFieldData\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"errorText\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbNewsletterRegistrationForm.prototype, \"forceInstantly\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"formAction\", 2);\n__decorateClass([\n n({ type: Object })\n], JbNewsletterRegistrationForm.prototype, \"formAdditionalData\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"subline\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"submissionMode\", 2);\n__decorateClass([\n n({ type: Object })\n], JbNewsletterRegistrationForm.prototype, \"subscribeBtn\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"successText\", 2);\n__decorateClass([\n n()\n], JbNewsletterRegistrationForm.prototype, \"type\", 2);\n__decorateClass([\n e(\".form-error\")\n], JbNewsletterRegistrationForm.prototype, \"_formError\", 2);\n__decorateClass([\n r2()\n], JbNewsletterRegistrationForm.prototype, \"_formSent\", 2);\n__decorateClass([\n e(\".form-success\")\n], JbNewsletterRegistrationForm.prototype, \"_formSuccess\", 2);\n__decorateClass([\n e(\".newsletter-registration-form\")\n], JbNewsletterRegistrationForm.prototype, \"_formWrapper\", 2);\n__decorateClass([\n e(\"jb-text-field\")\n], JbNewsletterRegistrationForm.prototype, \"_inputField\", 2);\nJbNewsletterRegistrationForm = __decorateClass([\n customElement(\"jb-newsletter-registration-form\")\n], JbNewsletterRegistrationForm);\ndocument.addEventListener(\"jbNewsletterOverlayPopupOpen\", JbNewsletterRegistrationForm.open);\n\nexport {\n JbNewsletterRegistrationForm\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n Animatable\n} from \"./chunk.VRR2P3PQ.js\";\nimport {\n applyStyles\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-multi-form/jb-multi-form.scss?inline\nvar jb_multi_form_default = i`jb-multi-form {\n /* stylelint-disable */\n /* COLOR SETTINGS */\n /* shadows */\n /* special measurements */\n /* stylelint-disable */\n /* stylelint-enable */\n /* special measurements */\n /* stylelint-enable */\n display: block;\n}\njb-multi-form *,\njb-multi-form *::before,\njb-multi-form *::after {\n box-sizing: border-box;\n}\njb-multi-form div,\njb-multi-form object,\njb-multi-form iframe,\njb-multi-form h1,\njb-multi-form h2,\njb-multi-form h3,\njb-multi-form h4,\njb-multi-form h5,\njb-multi-form h6,\njb-multi-form p,\njb-multi-form blockquote,\njb-multi-form ol,\njb-multi-form ul,\njb-multi-form li,\njb-multi-form form,\njb-multi-form legend,\njb-multi-form label,\njb-multi-form table,\njb-multi-form header,\njb-multi-form footer,\njb-multi-form nav,\njb-multi-form section,\njb-multi-form figure {\n margin: 0;\n padding: 0;\n}\njb-multi-form a {\n color: inherit;\n}\njb-multi-form :host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n@media screen and (width >= 1281px) {\n jb-multi-form :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\njb-multi-form h3 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\njb-multi-form h3 {\n font-size: var(--theme-typo-h3-mobile-fontsize, 1.375rem);\n line-height: var(--theme-typo-h3-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n jb-multi-form h3 {\n font-size: var(--theme-typo-h3-desktop-fontsize, 1.625rem);\n line-height: var(--theme-typo-h3-desktop-lineheight, 2.25rem);\n }\n}\njb-multi-form :host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n@media screen and (width >= 1281px) {\n jb-multi-form :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\njb-multi-form :host {\n color: var(--host-color, #141e55);\n}\njb-multi-form .wrapper {\n margin-block-end: var(--spacing-xs);\n position: relative;\n z-index: 2;\n}\njb-multi-form jb-form {\n opacity: 1;\n position: relative;\n transition: opacity 0.3s ease-in-out;\n z-index: 1;\n}\njb-multi-form jb-form.paused {\n opacity: 0.4;\n pointer-events: none;\n}\njb-multi-form h3 {\n margin-block-end: var(--spacing-xs);\n}`;\n\n// src/components/jb-multi-form/jb-multi-form.ts\nvar JbMultiForm = class extends Spaceable(Animatable(h)) {\n constructor() {\n super(...arguments);\n this.formsToDisplay = [];\n this._formOptions = [];\n }\n connectedCallback() {\n super.connectedCallback();\n applyStyles(this, jb_multi_form_default);\n this._formOptions = [\n ...this.formsToDisplay.map((form) => ({\n label: form.formTitle,\n value: form.formIdentifier\n }))\n ];\n const initialIdentifier = this.preselectedFormIdentifier ?? this.formsToDisplay[0].formIdentifier;\n if (this.preselectedForm) {\n this._currentFormProperties = this.preselectedForm;\n } else {\n this._currentFormProperties = this.formsToDisplay.find((i2) => i2.formIdentifier === initialIdentifier).form;\n }\n this.contentDuration = 150;\n this.contentStagger = 75;\n }\n createRenderRoot() {\n return this;\n }\n async firstUpdated() {\n this._trackFormChange();\n await this.updateComplete;\n const initialIdentifier = this.preselectedFormIdentifier ?? this.formsToDisplay[0].formIdentifier;\n this._select.setValue(initialIdentifier);\n if (this.promptForSelection) {\n const hiddenField = document.createElement(\"jb-text-field\");\n hiddenField.setAttribute(\"requiredText\", \"*\");\n hiddenField.setAttribute(\"type\", \"hidden\");\n await this._currentForm.updateComplete;\n this._currentForm.append(hiddenField);\n this._select.value = \"\";\n this._currentForm.addEventListener(\"jb-button:clicked\", async (e2) => {\n if (e2.detail.name === \"submit\") {\n this._validateMultiformSelector();\n }\n });\n }\n }\n _captureTracking(evt) {\n evt.stopPropagation();\n }\n _formShow(formIdentifier) {\n this._trackFormChange();\n this._currentForm.classList.add(\"paused\");\n this.contentChildren = Array.from(this._currentForm.children);\n this.animateContent(true).then(() => {\n this._currentFormProperties = this.formsToDisplay.find((i2) => i2.formIdentifier === formIdentifier).form;\n this._currentForm.classList.remove(\"paused\");\n });\n }\n _getContentSpacingProperties() {\n return { grid: \"legacy\", colsMdUp: 8, colsLgUp: 6 };\n }\n async _selectChanged() {\n if (!this._select.value) return;\n const requiredField = this._currentForm?.querySelector('[requiredtext=\"*\"]');\n if (requiredField) {\n this._currentForm?.removeChild(requiredField);\n }\n this._formShow(this._select.value);\n }\n _trackFormChange() {\n const selectRoot = this._select.shadowRoot ?? this._select;\n const selectText = selectRoot.querySelector(\"[data-ts-item]\");\n const trackingDetail = {\n event: \"ce_form\",\n event_version: \"v2\",\n component_name: \"multi-contact-form\",\n form_step_name: !selectText ? \"form open\" : \"form type select\",\n form_step_nr: !selectText ? \"1\" : \"1.5\",\n form_subject: !selectText ? \"skeleton contact form\" : selectText.innerText,\n form_type: \"contact\"\n };\n if (selectText) {\n trackingDetail.interaction_text = selectText.innerText;\n }\n this.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: trackingDetail,\n bubbles: true,\n composed: true\n })\n );\n }\n _validateMultiformSelector() {\n const select = this.querySelector(\"jb-select\");\n if (select.validate) {\n return select.validate();\n }\n return null;\n }\n render() {\n return ke`\n \n
${this.headline} \n \n \n \n `;\n }\n};\nJbMultiForm.styles = r(jb_multi_form_default);\n__decorateClass([\n n({ type: Array })\n], JbMultiForm.prototype, \"formsToDisplay\", 2);\n__decorateClass([\n n()\n], JbMultiForm.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbMultiForm.prototype, \"label\", 2);\n__decorateClass([\n n({ type: Object })\n], JbMultiForm.prototype, \"preselectedForm\", 2);\n__decorateClass([\n n()\n], JbMultiForm.prototype, \"preselectedFormIdentifier\", 2);\n__decorateClass([\n n()\n], JbMultiForm.prototype, \"promptForSelection\", 2);\n__decorateClass([\n n()\n], JbMultiForm.prototype, \"requiredText\", 2);\n__decorateClass([\n e(\"jb-form\")\n], JbMultiForm.prototype, \"_currentForm\", 2);\n__decorateClass([\n r2()\n], JbMultiForm.prototype, \"_currentFormProperties\", 2);\n__decorateClass([\n e(\"#formSelect\")\n], JbMultiForm.prototype, \"_select\", 2);\nJbMultiForm = __decorateClass([\n customElement(\"jb-multi-form\")\n], JbMultiForm);\n\nexport {\n JbMultiForm\n};\n", "import {\n disableBodyScroll,\n enableBodyScroll\n} from \"./chunk.WDF6H473.js\";\nimport {\n JbOverlay\n} from \"./chunk.5C7B4R5Q.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n debounce,\n getEventElement,\n recenterNavItems,\n throttle\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-navigation/jb-navigation.scss?inline\nvar jb_navigation_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n position: relative;\n}\n\nnav {\n inline-size: 100%;\n min-block-size: 60px;\n position: absolute;\n text-align: start;\n transition: background-color 0.5s ease 0.2s, transform 0.4s ease-out;\n z-index: 100;\n /* Top left navigation */\n /* Icons */\n /* Market menu */\n /* Search menu */\n /* Overlay menu */\n /* E-Service overlay */\n --rgb-primary: 255, 255, 255;\n}\n@media (min-width: 960px) {\n nav {\n min-block-size: 90px;\n }\n}\n@media (min-width: 1281px) {\n nav {\n min-block-size: 100px;\n }\n}\nnav a {\n color: #141e55;\n}\nnav .inner {\n --_notch-inset: calc(max(env(safe-area-inset-left), env(safe-area-inset-right)) + 5px);\n align-items: center;\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n padding: 24px max(20px, var(--_notch-inset)) 14px;\n transition: padding 0.5s;\n}\n@media (min-width: 960px) {\n nav .inner {\n padding: 35px max(40px, var(--_notch-inset)) 22px;\n }\n}\n@media (min-width: 1281px) {\n nav .inner {\n padding: 46px max(60px, var(--_notch-inset)) 22px;\n }\n}\nnav .language-zh {\n block-size: initial !important;\n}\nnav .top-left-navigation {\n align-items: center;\n display: flex;\n z-index: 500;\n}\nnav .middle {\n display: flex;\n justify-content: center;\n padding-inline-end: var(--compensate-scrollbar, 0);\n z-index: 500;\n}\nnav .middle ::slotted(svg) {\n block-size: auto;\n}\nnav .right {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n z-index: 500;\n}\n@media (min-width: 960px) {\n nav .right {\n gap: var(--spacing-2xl);\n }\n}\nnav .mobile-search-wrap {\n display: none;\n}\nnav.no-animation {\n transition: none;\n}\nnav.no-animation:not(.overlay) {\n --svg-transition: none !important;\n}\nnav.no-animation .inner {\n transition: none;\n}\nnav.region .top-left-navigation .mobile-search-wrap {\n display: none;\n}\nnav.e-service .top-left-navigation .mobile-search-wrap, nav.search .top-left-navigation .mobile-search-wrap {\n display: none;\n}\nnav.is_hidden {\n transform: translateY(-100%);\n}\nnav.fixed {\n inset-block-start: 0;\n position: fixed;\n}\n@media (min-width: 1281px) {\n nav.fixed {\n min-block-size: 108px;\n }\n}\nnav.fixed:not(.transparent) {\n background-color: #141e55;\n color: 255, 255, 255;\n --rgb-primary: 255, 255, 255;\n --logo-color: #fff;\n}\nnav.is_fixed {\n inset-block-start: 0 !important;\n position: fixed !important;\n}\nnav.transparent {\n background-color: transparent;\n}\nnav.transparent.fixed:not(.is_fixed) {\n background-color: #141e55;\n color: 255, 255, 255;\n --rgb-primary: 255, 255, 255;\n --logo-color: #fff;\n}\nnav.transparent + .placeholder {\n display: none;\n}\nnav.overlay {\n inline-size: 100%;\n position: fixed;\n transition: background-color 0.2s ease-in 0.1s;\n /* Icons */\n}\nnav.overlay .inner a {\n color: #fff;\n}\nnav.overlay nav__navigation-service-item {\n display: none;\n}\n@media (min-width: 1281px) {\n nav.overlay nav__navigation-service-item {\n display: inline-block;\n }\n nav.overlay nav__navigation-service-item:first-of-type {\n display: none;\n }\n}\nnav.overlay .mobile-search-wrap {\n display: block;\n}\n@media (min-width: 960px) {\n nav.overlay .mobile-search-wrap {\n display: none;\n }\n}\nnav.overlay-fade-out {\n transition: background-color 0.5s !important;\n}\nnav.overlay-fade-out nav__logo svg {\n --svg-transition: fill 0.1s ease 0.4s;\n}\nnav.e-service nav__mobile-search-wrap {\n display: none;\n}\nnav:not(nav.transparent, nav.overlay, nav.sticky) {\n --rgb-primary: 20, 30, 85;\n --logo-color: #001489;\n --svg-transition: all 0.1s ease 0.5s;\n}\n\njb-e-service-icon {\n --icon-display: none;\n}\n@media (min-width: 960px) {\n jb-e-service-icon {\n --icon-display: block;\n }\n}\n.overlay jb-e-service-icon {\n display: none;\n}\n\njb-search-icon {\n --display: none;\n --fill-color: rgb(var(--rgb-primary, 255, 255, 255));\n}\n@media (min-width: 960px) {\n jb-search-icon {\n --display: block;\n }\n}\n.overlay jb-search-icon {\n --display: none;\n}\n.mobile-search-wrap jb-search-icon {\n --display: block;\n}\n@media (min-width: 960px) {\n .mobile-search-wrap jb-search-icon {\n --display: none;\n }\n}\n\n.overlay-fade-out jb-burger-icon {\n --bar-transition: transform 0.2s linear, border-color 0.1s ease 0.4s;\n}\n\njb-burger-icon {\n padding-inline-end: var(--compensate-scrollbar, 0);\n}\n\n::slotted(jb-logo) {\n block-size: 22px;\n inline-size: 114px;\n}\n@media (min-width: 960px) {\n ::slotted(jb-logo) {\n block-size: 32px;\n inline-size: 164px;\n }\n}\n.overlay-fade-out ::slotted(jb-logo) {\n --svg-transition: fill 0.1s ease 0.4s;\n}\n\n::slotted(jb-service-navigation) {\n --display: none;\n}\n@media (min-width: 1281px) {\n ::slotted(jb-service-navigation) {\n --display: flex;\n }\n}\n.overlay ::slotted(jb-service-navigation) {\n --display: none;\n}\n@media (min-width: 1281px) {\n .overlay ::slotted(jb-service-navigation) {\n --display: flex;\n }\n}\n.search ::slotted(jb-service-navigation), .e-service ::slotted(jb-service-navigation), .region ::slotted(jb-service-navigation) {\n --display: none;\n}\n\n.overlay ::slotted(jb-region-indicator) {\n --display: none;\n}\n.region ::slotted(jb-region-indicator) {\n --before-height: 0;\n --after-right: 30px;\n --display: flex;\n}\n\n@media print {\n .inner {\n justify-content: center;\n }\n nav .top-left-navigation,\n nav .right {\n display: none;\n }\n}`;\n\n// src/components/jb-navigation/jb-navigation.ts\nvar JbNavigation = class extends h {\n constructor() {\n super(...arguments);\n this.isTransparent = false;\n this._animateHiding = true;\n this._fixed = false;\n this._hidden = false;\n this._isAutohiding = true;\n this._overlayOpen = null;\n this._previousScrollposition = 0;\n this._scrollDistance = 0;\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\n \"scroll\",\n debounce(() => {\n this._scrollMainNavigation();\n }, 10)\n );\n }\n async updated(_changedProperties) {\n await this.updateComplete;\n if (this._logo) {\n this._logo.isWhite = !!(this.isTransparent || this._fixed || this._overlayOpen);\n }\n if (_changedProperties.has(\"_hidden\") || _changedProperties.has(\"_fixed\")) {\n this.dispatchEvent(\n new CustomEvent(\"jb-navigation:appearance-changed\", {\n bubbles: true,\n composed: true,\n detail: {\n fixed: this._fixed,\n hidden: this._hidden\n }\n })\n );\n }\n if (this._overlayOpen) {\n disableBodyScroll(this, { allowTouchMove: () => true });\n } else {\n enableBodyScroll(this);\n }\n if (_changedProperties.has(\"_overlayOpen\")) {\n if (this._overlayOpen) {\n this.style.zIndex = (this._getHighestOverlayZIndex() + 1).toString();\n } else {\n this.style.zIndex = \"unset\";\n }\n recenterNavItems();\n this._setBurgerIconState();\n }\n }\n async firstUpdated() {\n this._serviceNavigation = document.querySelector(\"jb-service-navigation\") ?? void 0;\n this._logo = document.querySelector(\"jb-logo\") ?? void 0;\n this._placeholder = document.createElement(\"div\");\n this._navigation?.after(this._placeholder);\n this._placeholder.classList.add(\"placeholder\");\n this._placeholder.style.setProperty(\"height\", this._navigation.clientHeight + \"px\");\n this._languageDropdown = this.querySelector(\"jb-dropdown\");\n window.addEventListener(\n \"resize\",\n debounce(() => {\n this._placeholder.style.setProperty(\"height\", this._navigation.clientHeight + \"px\");\n }, 10)\n );\n document.addEventListener(\"jb-link:clicked\", (e2) => {\n e2.preventDefault();\n this._maybeOpenEServiceOverlay(e2);\n });\n document.addEventListener(\"jb-overlay:close\", () => {\n if (this._overlayOpen) this._toggleMenuOverlay();\n });\n document.addEventListener(\n \"burger-icon:clicked\",\n throttle(() => {\n this._toggleMenuOverlay();\n }, 500)\n );\n this._menuComponent = this._initMenu();\n window.setTimeout(() => {\n import(\"../components/jb-e-service-overlay/jb-e-service-overlay.js\").then();\n import(\"../components/jb-region-select-overlay/jb-region-select-overlay.js\").then();\n if (this.searchOverlay) {\n import(\"../components/jb-search-overlay/jb-search-overlay.js\").then();\n }\n }, 50);\n }\n startAutoHide() {\n this._hidden = true;\n this._isAutohiding = true;\n }\n stopAutoHide() {\n this._hidden = false;\n this._isAutohiding = false;\n }\n _checkOpenEService() {\n return this._overlayOpen === \"eService\";\n }\n _checkOpenMenu() {\n return this._overlayOpen === \"menu\";\n }\n _checkOpenRegionSelect() {\n return this._overlayOpen === \"regionSelect\";\n }\n _checkOpenSearch() {\n return this._overlayOpen === \"search\";\n }\n async _findAnimatedElement(overlay, element, contentChildren) {\n if (element && overlay) {\n await customElements.whenDefined(element);\n const animatedElement = overlay.querySelector(element);\n if (contentChildren) {\n animatedElement.contentChildren = Array.from(animatedElement.shadowRoot.querySelectorAll(contentChildren));\n }\n return animatedElement;\n }\n return null;\n }\n _fireTrackingEvent(additionalEventDetails) {\n const eventDetails = {\n event: \"ce_interaction\",\n component_name: \"header\",\n event_version: \"v2\",\n interaction_type: \"click\"\n };\n this.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: { ...eventDetails, ...additionalEventDetails },\n bubbles: true,\n composed: true\n })\n );\n }\n _getHighestOverlayZIndex() {\n const overlays = Array.from(document.querySelectorAll(\"jb-overlay\"));\n const overlaysIndex = [];\n overlays.map((overlay) => overlaysIndex.push(overlay.zIndex()));\n return Math.max(...overlaysIndex);\n }\n async _initMenu() {\n const { JbMenu } = await import(\"../components/jb-menu/jb-menu.js\");\n return new JbMenu().init({ props: { ...this.menu } });\n }\n _initOverlay(childNode) {\n return new JbOverlay().init({\n props: { color: \"blue\", hasLogo: false, hasCloseIcon: false, newAnimation: true },\n childNodes: [childNode]\n });\n }\n async _initRegionOverlay() {\n const { JbRegionSelectOverlay } = await import(\"../components/jb-region-select-overlay/jb-region-select-overlay.js\");\n return new JbRegionSelectOverlay().init({ props: { ...this.regionSelectOverlay } });\n }\n async _initSearchOverlay() {\n const { JbSearchOverlay } = await import(\"../components/jb-search-overlay/jb-search-overlay.js\");\n return new JbSearchOverlay().init({ props: { ...this.searchOverlay } });\n }\n _maybeOpenEServiceOverlay(customEvent) {\n if (customEvent.detail.action === \"e-services\") {\n customEvent.stopPropagation();\n customEvent.detail.clickEvent.preventDefault();\n customEvent.detail.clickEvent.stopPropagation();\n this._openEServiceOverlay().then();\n }\n }\n async _openEServiceOverlay() {\n if (this.eServiceOverlay === void 0) {\n return;\n }\n const { JbEServiceOverlay } = await import(\"../components/jb-e-service-overlay/jb-e-service-overlay.js\");\n const eServiceOverlay = new JbEServiceOverlay().init({ props: { ...this.eServiceOverlay } });\n if (this._checkOpenMenu()) {\n this._overlayFront = this._initOverlay(eServiceOverlay);\n this._overlayFront.stack();\n this._findAnimatedElement(this._overlayFront, \"jb-e-service-overlay\", \"div.eservices\").then(async (element) => {\n this._overlayOpen = \"eService\";\n this._serviceNavigation.hideItems = \"all\";\n await element?.reveal?.();\n });\n } else {\n this._overlayBack = this._initOverlay(eServiceOverlay);\n this._overlayBack.stack();\n this._findAnimatedElement(this._overlayBack, \"jb-e-service-overlay\", \"div.eservices\").then(async (element) => {\n this._overlayOpen = \"eService\";\n await element?.reveal?.();\n });\n }\n }\n async _openSearchOverlay() {\n if (this._checkOpenMenu()) {\n this._overlayFront = this._initOverlay(await this._initSearchOverlay());\n this._overlayFront.stack();\n this._findAnimatedElement(this._overlayFront, \"jb-search-overlay\", \"jb-search-input\").then(async (element) => {\n this._overlayOpen = \"search\";\n this._serviceNavigation.hideItems = void 0;\n await element?.reveal?.();\n });\n } else {\n this._overlayBack = this._initOverlay(await this._initSearchOverlay());\n this._overlayBack.stack();\n this._findAnimatedElement(this._overlayBack, \"jb-search-overlay\", \"jb-search-input\").then(async (element) => {\n this._overlayOpen = \"search\";\n await element?.reveal?.();\n });\n }\n }\n _scrollMainNavigation() {\n if (this._overlayOpen || !this._isAutohiding) {\n return;\n }\n const scrollUpToggleDistance = 100;\n const minimumOffsetYtoShow = 500;\n const minimumOffsetYtoAnimate = 300;\n const { pageYOffset } = window;\n const scrollDirection = pageYOffset <= this._previousScrollposition ? \"up\" : \"down\";\n if (pageYOffset > this._navigation.offsetHeight) {\n this._fixed = true;\n this._hidden = true;\n if (this._languageDropdown) {\n this._languageDropdown.inverted = false;\n }\n } else {\n this._fixed = false;\n this._hidden = false;\n if (this._languageDropdown) {\n this._languageDropdown.inverted = true;\n }\n }\n if (scrollDirection === \"up\") {\n this._scrollDistance += window.scrollY - this._previousScrollposition;\n if (pageYOffset > minimumOffsetYtoShow && Math.abs(this._scrollDistance) > scrollUpToggleDistance) {\n this._hidden = false;\n }\n this._animateHiding = pageYOffset <= minimumOffsetYtoAnimate;\n } else {\n if (pageYOffset > this._navigation.offsetHeight) {\n this._hidden = true;\n }\n this._scrollDistance = 0;\n }\n this._previousScrollposition = pageYOffset <= 0 ? 0 : pageYOffset;\n }\n _setBurgerIconState() {\n this._burgerIcon.isOpen = !!this._overlayOpen;\n }\n async _toggleMenuOverlay() {\n if (this._overlayFront) {\n if (this._overlayOpen === \"search\") {\n await this._findAnimatedElement(this._overlayFront, \"jb-search-overlay\", \"jb-search-input\").then(\n async (element) => {\n await element?.hide?.();\n }\n );\n }\n if (this._overlayOpen === \"eService\") {\n await this._findAnimatedElement(this._overlayFront, \"jb-e-service-overlay\", \"div.eservices\").then(\n async (element) => {\n await element?.hide?.();\n }\n );\n }\n this._overlayFront.unstack();\n this._overlayFront = void 0;\n this._serviceNavigation.hideItems = \"first\";\n this._overlayOpen = \"menu\";\n return;\n }\n if (!this._overlayOpen) {\n this._overlayBack = this._initOverlay(await this._menuComponent);\n this._overlayBack.stack();\n if (this._overlayBack?.querySelector(\"jb-menu\")?.shadowRoot?.querySelector(\".active\")) {\n await this._findAnimatedElement(this._overlayBack, \"jb-menu\", \".secondary-wrapper\").then(async (element) => {\n element.contentDuration = 0;\n element.wrapperDuration = 0;\n await element?.reveal?.();\n });\n }\n await this._findAnimatedElement(\n this._overlayBack,\n \"jb-menu\",\n \".primary-wrapper jb-menu-item, .primary-wrapper jb-service-navigation\"\n ).then(async (element) => {\n this._overlayOpen = \"menu\";\n this._serviceNavigation.hideItems = \"first\";\n element.contentDuration = 300;\n element.wrapperDuration = 350;\n await element?.reveal?.();\n });\n } else {\n if (this._overlayOpen === \"search\") {\n await this._findAnimatedElement(this._overlayBack, \"jb-search-overlay\", \"jb-search-input\").then(\n async (element) => {\n await element?.hide?.();\n }\n );\n }\n if (this._overlayOpen === \"eService\") {\n await this._findAnimatedElement(this._overlayBack, \"jb-e-service-overlay\", \"div.eservices\").then(\n async (element) => {\n await element?.hide?.();\n }\n );\n }\n if (this._overlayOpen === \"menu\") {\n if (this._overlayBack?.querySelector(\"jb-menu\")?.shadowRoot?.querySelector(\".active\")) {\n await this._findAnimatedElement(this._overlayBack, \"jb-menu\", \".secondary-wrapper\").then(async (element) => {\n await element?.hide?.();\n });\n } else {\n await this._findAnimatedElement(\n this._overlayBack,\n \"jb-menu\",\n \".primary-wrapper jb-menu-item, .primary-wrapper jb-service-navigation\"\n ).then(async (element) => {\n await element?.hide?.();\n });\n }\n }\n if (this._overlayOpen === \"regionSelect\") {\n await this._findAnimatedElement(\n this._overlayBack,\n \"jb-region-select-overlay\",\n \".region-select-overlay__wrap\"\n ).then(async (element) => {\n await element?.hide?.();\n });\n }\n this._overlayBack.unstack();\n this._overlayOpen = null;\n this._serviceNavigation.hideItems = \"all-except-first\";\n }\n }\n async _toggleRegionOverlay(e2) {\n if (!this._overlayOpen) {\n this._trackEventsRegionIndicator(e2);\n this._overlayBack = this._initOverlay(await this._initRegionOverlay());\n this._overlayBack.stack();\n this._findAnimatedElement(this._overlayBack, \"jb-region-select-overlay\", \".region-select-overlay__wrap\").then(\n async (element) => {\n this._overlayOpen = \"regionSelect\";\n this._serviceNavigation.hideItems = \"all\";\n await element?.reveal?.();\n }\n );\n } else {\n this._findAnimatedElement(this._overlayBack, \"jb-region-select-overlay\", \".region-select-overlay__wrap\").then(\n async (element) => {\n await element?.hide?.();\n this._overlayBack.unstack();\n this._serviceNavigation.hideItems = \"all-except-first\";\n this._overlayOpen = null;\n }\n );\n }\n }\n _trackEventsRegionIndicator(e2) {\n if (getEventElement(e2, \"JB-REGION-INDICATOR\")) {\n const additionalEventDetails = {\n interaction_effect: \"open\",\n interaction_element: \"location-selector\",\n interaction_result: \"overlay\",\n interaction_text: \"location-selector\"\n };\n this._fireTrackingEvent(additionalEventDetails);\n }\n }\n _trackIconClick(event) {\n if (getEventElement(event, \"JB-LOGO\")) {\n const additionalEventDetails = {\n interaction_effect: \"navigation\",\n interaction_element: \"logo\",\n interaction_result: getEventElement(event, \"JB-LOGO\")?.href,\n interaction_text: \"logo\"\n };\n this._fireTrackingEvent(additionalEventDetails);\n return;\n }\n if (getEventElement(event, \"JB-E-SERVICE-ICON\")) {\n const additionalEventDetails = {\n interaction_effect: \"open\",\n interaction_element: \"e-services\",\n interaction_result: \"overlay\",\n interaction_text: \"e-services\"\n };\n this._fireTrackingEvent(additionalEventDetails);\n return;\n }\n if (getEventElement(event, \"JB-SEARCH-ICON\")) {\n if (this._overlayOpen) {\n const additionalEventDetails2 = {\n interaction_effect: \"open\",\n interaction_element: \"search\",\n interaction_result: \"overlay\",\n interaction_text: \"hamburger__search\"\n };\n this._fireTrackingEvent(additionalEventDetails2);\n return;\n }\n const additionalEventDetails = {\n interaction_effect: \"open\",\n interaction_element: \"search\",\n interaction_result: \"overlay\",\n interaction_text: \"search\"\n };\n this._fireTrackingEvent(additionalEventDetails);\n return;\n }\n if (getEventElement(event, \"JB-BURGER-ICON\") && !this._overlayOpen) {\n const additionalEventDetails = {\n interaction_effect: \"open\",\n interaction_element: \"hamburger\",\n interaction_result: \"overlay\",\n interaction_text: \"hamburger\"\n };\n this._fireTrackingEvent(additionalEventDetails);\n }\n }\n _trackLinkClick(e2) {\n e2.stopPropagation();\n if (e2.detail.clickEvent) {\n e2.detail.clickEvent.stopPropagation();\n }\n if (getEventElement(e2, \"JB-SERVICE-NAVIGATION-ITEM\")) {\n if (getEventElement(e2, \"JB-SERVICE-NAVIGATION-ITEM\")?.link?.data?.action === \"e-services\") {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e2, {\n component_name: \"header\",\n interaction_effect: \"open\",\n interaction_element: \"e-services\",\n interaction_result: \"overlay\",\n interaction_text: \"hamburger__e-services\"\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n return;\n }\n const text = getEventElement(e2, \"JB-SERVICE-NAVIGATION-ITEM\")?.text.toLowerCase();\n const additionalEventDetails = {\n interaction_effect: \"navigation\",\n interaction_element: text.replace(/\\s+/g, \"-\").toLowerCase(),\n interaction_result: getEventElement(e2, \"JB-SERVICE-NAVIGATION-ITEM\")?.link?.href,\n interaction_text: text.replace(/\\s+/g, \"-\").toLowerCase()\n };\n this._fireTrackingEvent(additionalEventDetails);\n }\n }\n render() {\n return ke`\n \n \n
\n
\n ${this.searchOverlay ? ke` ` : D}\n
\n
\n
\n
\n \n
\n
\n ${this.eServiceOverlay && ke` `}\n ${this.searchOverlay ? ke` ` : D}\n \n
\n
\n \n `;\n }\n};\nJbNavigation.styles = r(jb_navigation_default);\n__decorateClass([\n n()\n], JbNavigation.prototype, \"ariaLabelEServices\", 2);\n__decorateClass([\n n()\n], JbNavigation.prototype, \"ariaLabelMenu\", 2);\n__decorateClass([\n n()\n], JbNavigation.prototype, \"ariaLabelNavigation\", 2);\n__decorateClass([\n n()\n], JbNavigation.prototype, \"ariaLabelSearch\", 2);\n__decorateClass([\n n({ type: Object })\n], JbNavigation.prototype, \"eServiceOverlay\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbNavigation.prototype, \"isTransparent\", 2);\n__decorateClass([\n n({ type: Object })\n], JbNavigation.prototype, \"menu\", 2);\n__decorateClass([\n n({ type: Object })\n], JbNavigation.prototype, \"regionSelectOverlay\", 2);\n__decorateClass([\n n({ type: Object })\n], JbNavigation.prototype, \"searchOverlay\", 2);\n__decorateClass([\n r2()\n], JbNavigation.prototype, \"_animateHiding\", 2);\n__decorateClass([\n e(\"jb-burger-icon\")\n], JbNavigation.prototype, \"_burgerIcon\", 2);\n__decorateClass([\n r2()\n], JbNavigation.prototype, \"_fixed\", 2);\n__decorateClass([\n r2()\n], JbNavigation.prototype, \"_hidden\", 2);\n__decorateClass([\n r2()\n], JbNavigation.prototype, \"_isAutohiding\", 2);\n__decorateClass([\n e(\"nav\")\n], JbNavigation.prototype, \"_navigation\", 2);\n__decorateClass([\n r2()\n], JbNavigation.prototype, \"_overlayOpen\", 2);\nJbNavigation = __decorateClass([\n customElement(\"jb-navigation\")\n], JbNavigation);\n\nexport {\n JbNavigation\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-e-service-icon/jb-e-service-icon.scss?inline\nvar jb_e_service_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nsvg {\n cursor: pointer;\n display: var(--icon-display, inline-block);\n fill: rgb(var(--rgb-primary, 255, 255, 255));\n height: 25px;\n margin-right: var(--icon-margin-right, 0);\n overflow: visible;\n width: 19px;\n}\n\n#lock-arch {\n transition: all 0.2s ease-in-out;\n}\nsvg:hover #lock-arch {\n transform: translateY(-2px);\n}`;\n\n// src/components/icons/jb-e-service-icon/jb-e-service-icon.ts\nvar JbEServiceIcon = class extends h {\n firstUpdated() {\n this.addEventListener(\"click\", (e) => {\n e.preventDefault();\n this.dispatchEvent(new CustomEvent(\"e-service-icon:clicked\", { bubbles: true, composed: true }));\n });\n }\n render() {\n return ke`\n \n \n \n \n \n \n \n \n \n \n `;\n }\n};\nJbEServiceIcon.styles = r(jb_e_service_icon_default);\nJbEServiceIcon = __decorateClass([\n customElement(\"jb-e-service-icon\")\n], JbEServiceIcon);\n\nexport {\n JbEServiceIcon\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-burger-icon/jb-burger-icon.scss?inline\nvar jb_burger_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n.burger-icon {\n cursor: pointer;\n width: 40px;\n}\n.burger-icon .bar-wrap {\n height: 1px;\n margin: 7px auto;\n}\n.burger-icon .bar-wrap:first-child {\n margin-bottom: 9px;\n margin-top: 7px;\n}\n@media (min-width: 600px) {\n .burger-icon .bar-wrap:first-child {\n margin-top: 0;\n }\n}\n.burger-icon .bar-wrap:last-child {\n margin-top: 9px;\n}\n@media (min-width: 600px) {\n .burger-icon .bar-wrap {\n margin: 0;\n }\n}\n.burger-icon .bar {\n border-bottom: 1px solid rgb(var(--rgb-primary, 255, 255, 255));\n height: 1px;\n transition: var(--bar-transition);\n}\n.burger-icon .bottom,\n.burger-icon .top {\n transition: transform 0.2s linear;\n}\n.burger-icon:not(.open):hover .bottom {\n transform: translateY(-2px);\n}\n.burger-icon:not(.open):hover .top {\n transform: translateY(2px);\n}\n.burger-icon.open .bar-wrap {\n width: 40px;\n}\n.burger-icon.open .bar {\n margin: 0 auto;\n}\n.burger-icon.open .bottom,\n.burger-icon.open .top {\n transition: width 0.3s ease-in-out, transform 0.2s linear;\n width: 35px;\n}\n.burger-icon.open .top {\n background: rgb(var(--rgb-primary, 255, 255, 255));\n position: relative;\n transform: translateY(10px) rotateZ(-45deg);\n z-index: 100;\n}\n@media (min-width: 600px) {\n .burger-icon.open .top {\n transform: translateY(11px) rotateZ(-45deg);\n }\n}\n.burger-icon.open .bottom {\n background: rgb(var(--rgb-primary, 255, 255, 255));\n position: relative;\n transform: translateY(-10px) rotateZ(45deg);\n z-index: 100;\n}\n@media (min-width: 600px) {\n .burger-icon.open .bottom {\n transform: translateY(-9px) rotateZ(45deg);\n }\n}\n.burger-icon.open .middle {\n transition: none;\n width: 0;\n}\n.burger-icon.open:hover {\n backface-visibility: hidden;\n perspective: 1000px;\n}\n.burger-icon.open:hover .top,\n.burger-icon.open:hover .bottom {\n perspective: 1000px;\n transition: width 0.2s ease-in-out, transform 0.2s linear;\n width: 28px;\n}\n@media (min-width: 600px) and (max-width: 959px) {\n .burger-icon.open {\n height: 35px;\n }\n}`;\n\n// src/components/icons/jb-burger-icon/jb-burger-icon.ts\nvar JbBurgerIcon = class extends h {\n constructor() {\n super(...arguments);\n this.isOpen = false;\n }\n firstUpdated() {\n this.addEventListener(\"click\", (e) => {\n e.preventDefault();\n this.dispatchEvent(new CustomEvent(\"burger-icon:clicked\", { bubbles: true, composed: true }));\n });\n }\n render() {\n return ke`\n \n `;\n }\n};\nJbBurgerIcon.styles = r(jb_burger_icon_default);\n__decorateClass([\n n({ type: Boolean })\n], JbBurgerIcon.prototype, \"isOpen\", 2);\nJbBurgerIcon = __decorateClass([\n customElement(\"jb-burger-icon\")\n], JbBurgerIcon);\n\nexport {\n JbBurgerIcon\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n to\n} from \"./chunk.YTEMICXC.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n respondTo\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-navigation-tags/jb-navigation-tags.scss?inline\nvar jb_navigation_tags_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n.with-underline .list-item {\n -moz-osx-font-smoothing: grayscale;\n overflow: hidden;\n position: relative;\n transform: translateZ(0);\n}\n.with-underline .list-item::before {\n animation-direction: reverse;\n background-color: rgba(241, 242, 242, 0.3);\n bottom: 0;\n content: \"\";\n height: 66%;\n left: 0;\n position: absolute;\n transition: height 0.9s ease-out 0.2s;\n width: 1px;\n}\n.with-underline .list-item::after {\n background: #fff;\n bottom: 0;\n content: \"\";\n height: 1px;\n left: 0;\n position: absolute;\n right: 50%;\n transition: right 0.9s ease-out 0.2s;\n}\n\n/* stylelint-disable */\n/* stylelint-enable */\nlabel {\n font-family: var(--theme-font-black-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-black-weight, 900);\n}\n\n.list-item {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nlabel {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.125rem;\n line-height: 1rem;\n text-decoration: none;\n text-transform: uppercase;\n}\n\n.list-item {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\nnav {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n justify-content: center;\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 0;\n width: 100%;\n}\n@media (min-width: 1281px) {\n nav {\n box-sizing: border-box;\n flex-basis: 83.3333333333%;\n max-width: 83.3333333333%;\n padding: 0 20px;\n width: 83.3333333333%;\n }\n}\n\njb-section-headline {\n padding-block-end: var(--spacing-sm);\n}\n\ninput {\n display: none;\n}\ninput:checked ~ ul {\n max-block-size: 60em;\n}\ninput:checked ~ .title-wrapper label::before {\n content: attr(data-close);\n}\n\nlabel {\n align-items: flex-end;\n cursor: pointer;\n display: flex;\n justify-content: center;\n text-transform: uppercase;\n}\nlabel::before {\n content: attr(data-open);\n}\n\n.title-wrapper {\n align-items: flex-end;\n display: flex;\n justify-content: center;\n padding-block-start: var(--spacing-sm);\n}\n\njb-chevron-icon {\n margin-inline-start: 5px;\n}\n\nul {\n align-items: center;\n display: flex;\n flex-basis: 100%;\n flex-direction: column;\n gap: var(--spacing-xs);\n max-block-size: calc(var(--spacing-xs) * 3 + 112px);\n overflow: hidden;\n transition: max-height 0.3s ease-in-out;\n}\n@media (min-width: 600px) {\n ul {\n flex-direction: initial;\n flex-wrap: wrap;\n justify-content: center;\n max-block-size: calc(var(--spacing-xs) * 1 + 56px);\n }\n}\n\n.list-item {\n display: flex;\n}\n.list-item:hover a {\n border: 1px solid #141e55;\n transition: border 0.7s ease-in-out 0s;\n}\n.list-item a {\n border: 1px solid rgba(20, 30, 85, 0.2);\n color: #141e55;\n padding: 5px 10px;\n text-decoration: none;\n text-transform: uppercase;\n transition: border 0.7s ease-in-out 0s;\n white-space: pre;\n}\n.list-item a:hover {\n text-decoration: none;\n}\n\n.with-underline .animate-left-bottom::before {\n background-color: transparent;\n block-size: 0;\n border-block-end: 1px solid var(--stroke-color, rgba(20, 30, 85, 0.2));\n content: \"\";\n inline-size: 100%;\n position: absolute;\n}\n.with-underline .animate-left-bottom::after {\n background: #141e55;\n inset-inline: 0 100%;\n transition-delay: 0s;\n transition-duration: 0.8s;\n transition-timing-function: ease-in-out;\n}\n.with-underline .animate-left-bottom.active::after, .with-underline .animate-left-bottom:hover::after {\n background: #141e55;\n inset-inline-end: 0;\n transition-delay: 0s;\n transition-duration: 0.5s;\n transition-timing-function: ease-in-out;\n}\n\n.with-underline ul {\n flex-direction: unset;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.with-underline .list-item {\n border: none;\n display: inline-block;\n letter-spacing: 0.094rem;\n padding-block-end: 4px;\n pointer-events: initial;\n position: relative;\n}\n.with-underline .list-item a {\n border: none;\n color: #141e55;\n opacity: 0.4;\n padding: 0;\n transition: opacity 0.4s ease-in-out 0s;\n}\n.with-underline .list-item:hover a {\n opacity: 1;\n transition: opacity 0.4s ease-in-out 0s;\n}\n\n.with-underline .list-item.active a {\n opacity: 1;\n}\n.with-underline .list-item.active::before {\n background-color: #141e55;\n transition: background-color 0.8s ease-in-out 0s;\n}`;\n\n// src/components/jb-navigation-tags/jb-navigation-tags.ts\nvar JbNavigationTags = class extends Spaceable(h) {\n constructor() {\n super(...arguments);\n this._showButton = false;\n }\n firstUpdated() {\n const relatedTags = this.renderRoot.querySelectorAll(\".navigation-tags.with-underline .list .list-item\");\n relatedTags.forEach((el) => {\n el.addEventListener(\"click\", () => {\n const parent = el.parentNode;\n const active = parent?.querySelector(\".list-item.active\");\n if (active) active.classList.remove(\"active\");\n el.classList.add(\"active\");\n });\n });\n window.addEventListener(\"resize\", () => {\n this._calculateShowButton();\n });\n setTimeout(() => {\n this._calculateShowButton();\n }, 0);\n }\n _calculateShowButton() {\n const element = this._list.firstElementChild;\n const styles = window.getComputedStyle(element);\n const heightWithMargin = element.offsetHeight + parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n const actualHeight = this._list.scrollHeight - 30;\n if (respondTo({ xs: \"mobile\", sm: \"desktop\" }) === \"mobile\") {\n if (actualHeight >= heightWithMargin * 4) {\n this._showButton = true;\n } else {\n this._showButton = false;\n }\n } else {\n if (actualHeight >= heightWithMargin * 2) {\n this._showButton = true;\n } else {\n this._showButton = false;\n }\n }\n }\n _getContentSpacingProperties() {\n return { colsMdUp: 12, type: \"navigation-tags\" };\n }\n _renderItem(item) {\n return ke`\n ${item.tag} \n `;\n }\n _trackClicks(evt) {\n const eventTarget = evt.composedPath()[0];\n const tag = eventTarget.dataset.tag ?? evt.detail.label;\n const url = eventTarget.href ?? evt.detail.newValue;\n this.dispatchEvent(\n new CustomEvent(\"jb-navigation-tags:filter\", {\n detail: {\n tag,\n url\n },\n bubbles: true,\n composed: true\n })\n );\n }\n render() {\n return ke`\n this.requestUpdate()}\n />\n ${this.heading ? ke` ` : D}\n \n ${this.items.map((item) => this._renderItem(item))}\n \n ${this._showButton ? ke` \n \n \n \n
` : D}\n `;\n }\n};\nJbNavigationTags.styles = r(jb_navigation_tags_default);\n__decorateClass([\n n()\n], JbNavigationTags.prototype, \"activeItem\", 2);\n__decorateClass([\n n()\n], JbNavigationTags.prototype, \"heading\", 2);\n__decorateClass([\n n({ type: Array })\n], JbNavigationTags.prototype, \"items\", 2);\n__decorateClass([\n n()\n], JbNavigationTags.prototype, \"toCloseText\", 2);\n__decorateClass([\n n()\n], JbNavigationTags.prototype, \"toOpenText\", 2);\n__decorateClass([\n n()\n], JbNavigationTags.prototype, \"type\", 2);\n__decorateClass([\n e(\"input\")\n], JbNavigationTags.prototype, \"_input\", 2);\n__decorateClass([\n e(\".list\")\n], JbNavigationTags.prototype, \"_list\", 2);\n__decorateClass([\n r2()\n], JbNavigationTags.prototype, \"_showButton\", 2);\nJbNavigationTags = __decorateClass([\n customElement(\"jb-navigation-tags\")\n], JbNavigationTags);\n\nexport {\n JbNavigationTags\n};\n", "import {\n disableBodyScroll,\n enableBodyScroll\n} from \"./chunk.WDF6H473.js\";\nimport {\n JbOverlay\n} from \"./chunk.5C7B4R5Q.js\";\nimport {\n ae\n} from \"./chunk.Q25FCJRM.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n Animatable\n} from \"./chunk.VRR2P3PQ.js\";\nimport {\n recenterNavItems\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-news-overlay/jb-news-overlay.scss?inline\nvar jb_news_overlay_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n background-color: #f1f2f2;\n display: block;\n min-height: 100vh;\n}\n\n.news-overlay {\n opacity: 0;\n}`;\n\n// src/components/jb-news-overlay/jb-news-overlay.ts\nvar JbNewsOverlay = class extends Animatable(Initiable(h)) {\n constructor() {\n super(...arguments);\n this._responseHtml = \"\";\n }\n decodeHtml(htmlString) {\n const txt = document.createElement(\"textarea\");\n txt.innerHTML = htmlString;\n return txt.value;\n }\n fetchDataFromApi(url) {\n fetch(url).then((response) => response.json()).then((data) => {\n this._responseHtml = data.html;\n });\n }\n firstUpdated() {\n this.fetchDataFromApi(this.url);\n this.dispatchEvent(\n new CustomEvent(\"jb-stackable:register-outro-callback\", {\n bubbles: true,\n composed: true,\n detail: {\n callback: async () => {\n window.history.replaceState(\"\", \"\", window.location.pathname + window.location.search);\n }\n }\n })\n );\n }\n render() {\n return ke`${ae(this.decodeHtml(this._responseHtml))}
`;\n }\n};\nJbNewsOverlay.styles = r(jb_news_overlay_default);\n__decorateClass([\n n()\n], JbNewsOverlay.prototype, \"url\", 2);\n__decorateClass([\n r2()\n], JbNewsOverlay.prototype, \"_responseHtml\", 2);\nJbNewsOverlay = __decorateClass([\n customElement(\"jb-news-overlay\")\n], JbNewsOverlay);\nbindEvents();\n\n// src/components/jb-news-overlay/jb-news-overlay-controller.ts\nvar newsLinksRegister = {};\nvar JbNewsOverlayController = class {\n constructor() {\n this.overlay = void 0;\n }\n async close() {\n if (this.overlay) {\n const animatedElement = document.querySelector(\"jb-news-overlay\");\n animatedElement.contentChildren = Array.from(animatedElement.shadowRoot.querySelectorAll(\"div.news-overlay\"));\n await animatedElement.hide();\n this.overlay.unstack();\n enableBodyScroll(animatedElement);\n recenterNavItems();\n }\n this.overlay = void 0;\n }\n handleHashChange() {\n const hash = window.location.hash.substring(1);\n if (hash === \"\" || !hash.includes(\"overlayNews\") || !hash.split(\"=\")[1]) {\n this.close();\n return;\n }\n const translationId = Number(hash.split(\"=\")[1]);\n if (!newsLinksRegister[translationId]) {\n this.close();\n return;\n }\n const url = newsLinksRegister[translationId];\n const jbNewsOverlay = new JbNewsOverlay().init({\n props: { url }\n });\n this.overlay = new JbOverlay().init({\n props: {\n color: \"gray\",\n hasLogo: true,\n hasCloseIcon: true,\n svgLogo: this.svgLogo,\n newAnimation: true\n },\n childNodes: [jbNewsOverlay]\n });\n if (this.overlay) {\n this.overlay.stack();\n customElements.whenDefined(\"jb-news-overlay\").then(async () => {\n setTimeout(() => {\n jbNewsOverlay.contentChildren = Array.from(jbNewsOverlay.shadowRoot.querySelectorAll(\"div.news-overlay\"));\n }, 0);\n disableBodyScroll(jbNewsOverlay, { allowTouchMove: () => true });\n recenterNavItems();\n await jbNewsOverlay.reveal();\n });\n }\n }\n open(event) {\n const customEvent = event;\n if (!customEvent.detail.newsOverlay) {\n return;\n }\n customEvent.stopPropagation();\n customEvent.detail.clickEvent.preventDefault();\n customEvent.detail.clickEvent.stopPropagation();\n const baseUrl = window.location.href.split(\"#\")[0];\n const newUrl = baseUrl + \"#overlayNews=\" + customEvent.detail.newsOverlay.id;\n window.open(newUrl, \"_self\");\n this.svgLogo = customEvent.detail.svgLogo;\n this.handleHashChange();\n }\n};\nvar controller = new JbNewsOverlayController();\nfunction bindEvents() {\n document.body.addEventListener(\"jb-overlay:close\", () => {\n controller.close();\n });\n document.body.addEventListener(\"jb-link:initialized\", (event) => {\n const customEvent = event;\n if (!customEvent.detail.newsOverlay) {\n return;\n }\n newsLinksRegister[customEvent.detail.newsOverlay.id] = customEvent.detail.newsOverlay.url;\n const hash = window.location.hash.substring(1);\n if (hash === \"\" || !hash.includes(\"overlayNews\") || !hash.split(\"=\")[1]) {\n return;\n }\n const translationId = Number(hash.split(\"=\")[1]);\n if (translationId === customEvent.detail.newsOverlay.id) {\n controller.handleHashChange();\n }\n });\n document.body.addEventListener(\"jb-link:clicked\", (event) => {\n controller.open(event);\n });\n}\n\nexport {\n bindEvents,\n JbNewsOverlay\n};\n", "import {\n ScrollTrigger\n} from \"./chunk.RYXMHMS2.js\";\nimport {\n gsapWithCSS\n} from \"./chunk.LXB4MYP4.js\";\nimport {\n isSizeMdDown\n} from \"./chunk.YDQDJZUC.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n debounce,\n smoothScroll\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n D,\n Oe,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-moment-page-hero/jb-moment-page-hero.scss?inline\nvar jb_moment_page_hero_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nheader .content p {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh1 {\n font-family: var(--theme-font-xlight-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-xlight-weight, 200);\n}\n\nh1 {\n font-size: var(--theme-typo-h2-mobile-fontsize, 1.938rem);\n line-height: var(--theme-typo-h2-mobile-lineheight, 2.625rem);\n}\n@media (min-width: 1281px) {\n h1 {\n font-size: var(--theme-typo-h2-desktop-fontsize, 2.813rem);\n line-height: var(--theme-typo-h2-desktop-lineheight, 3.813rem);\n }\n}\n\nheader .content p {\n font-size: var(--theme-typo-p-big-mobile-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-big-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n header .content p {\n font-size: var(--theme-typo-p-big-desktop-fontsize, 1.375rem);\n line-height: var(--theme-typo-p-big-desktop-lineheight, 2.125rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\nmain .content, header .content {\n --_grid-gap: 16px;\n --_grid-template-columns: repeat(12, 1fr);\n display: grid;\n gap: var(--grid-row-gap, 0) var(--grid-column-gap, var(--_grid-gap));\n grid-template-columns: var(--theme-grid-template-columns, var(--_grid-template-columns));\n width: 100%;\n}\n@media (min-width: 960px) {\n main .content, header .content {\n --_grid-gap: 40px;\n }\n}\n\nmain .content, header .content {\n padding-inline: 20px;\n}\n\nmain, header {\n --_max-width: calc(100% - (2 * 6.68%));\n display: grid;\n grid-template-columns: [full-start] minmax(0, 1fr) [main-start] minmax(0, var(--theme-grid-max-width, var(--_max-width))) [main-end] minmax(0, 1fr) [full-end];\n margin-inline: auto;\n}\n@media (min-width: 600px) {\n main, header {\n --_max-width: calc(100% - (2 * 8.35%));\n }\n}\n@media (min-width: 960px) {\n main, header {\n --_max-width: calc(100% - (2 * 6.955%));\n }\n}\n@media (min-width: 1437px) {\n main, header {\n --_max-width: 1437px;\n }\n}\n\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n padding-inline-end: var(--compensate-scrollbar);\n --rgb-primary: 255, 255, 255;\n --host-color: #fff;\n --_background-opacity: 0.3;\n}\n\nsection {\n position: relative;\n}\nsection button {\n background: transparent;\n border: 0;\n left: 50%;\n position: absolute;\n rotate: 90deg;\n top: calc(100svh - 40px);\n translate: -50% 0;\n}\n\nheader {\n inline-size: 100%;\n min-block-size: 100vh;\n overflow: hidden;\n place-content: center;\n position: sticky;\n top: 0;\n}\nheader::after {\n background-color: rgb(0, 0, 0, var(--_background-opacity));\n content: \"\";\n inset: 0;\n position: absolute;\n z-index: -1;\n}\nheader .content {\n block-size: min-content;\n grid-column: main;\n position: relative;\n z-index: 2;\n}\nheader .content > * {\n grid-column: 1/13;\n}\n@media (min-width: 1281px) {\n header .content > * {\n grid-column: 3/11;\n }\n}\nheader .content > *:last-child {\n margin-block-end: 0;\n}\njb-breadcrumbs {\n margin-block-end: var(--spacing-lm);\n}\n\nh1 {\n margin-block-end: var(--spacing-m);\n}\n\n.background {\n block-size: 100%;\n inline-size: 100%;\n inset: 0;\n object-fit: cover;\n object-position: center;\n position: absolute;\n z-index: -1;\n}\n\nmain {\n padding-block-start: 50px;\n position: relative;\n z-index: 2;\n}\nmain .content {\n grid-column: main;\n -webkit-transform: translate3d(0, 0, 0);\n}\nmain .content > * {\n grid-column: 1/13;\n}\n@media (min-width: 1281px) {\n main .content > * {\n grid-column: 3/11;\n }\n}\nmain .content slot {\n display: grid;\n margin-block: var(--spacing-3xl) 0;\n}\n@media (min-width: 1281px) {\n main .content slot {\n margin-block-end: var(--spacing-4xl);\n }\n}\n\n.line {\n display: none;\n}\n@media (min-width: 1281px) {\n .line {\n block-size: 100%;\n display: block;\n inline-size: 100%;\n inset: 0;\n pointer-events: none;\n position: absolute;\n }\n .line path {\n fill: none;\n stroke: white;\n stroke-width: 1;\n }\n}\n\njb-contact-teaser-legacy {\n margin-block: var(--spacing-4xl);\n}`;\n\n// src/components/jb-moment-page-hero/jb-moment-page-hero.ts\nvar JBMomentPageHero = class extends h {\n constructor() {\n super(...arguments);\n this._animationPlayed = false;\n }\n async firstUpdated() {\n await this.updateComplete;\n gsapWithCSS.registerPlugin(ScrollTrigger);\n ScrollTrigger.config({ ignoreMobileResize: false });\n this._drawLine();\n window.addEventListener(\n \"resize\",\n debounce(() => {\n this._drawLine();\n }, 50)\n );\n gsapWithCSS.to(this._headerContent, {\n scrollTrigger: {\n trigger: this._main,\n start: \"top bottom\",\n end: \"+=50%\",\n scrub: 0\n },\n yoyo: true,\n opacity: 0,\n scale: 0.8\n });\n gsapWithCSS.to(this, {\n scrollTrigger: {\n trigger: this._main,\n start: \"top bottom\",\n end: \"+=50%\",\n scrub: 0\n },\n yoyo: true,\n \"--_background-opacity\": 0.6\n });\n gsapWithCSS.to(this._headerElement.querySelector(\"img, jb-video\"), {\n scrollTrigger: {\n trigger: this,\n start: \"bottom+=100px bottom\",\n end: \"bottom+=100px top\",\n scrub: 0\n },\n translateY: \"288px\"\n });\n const scrollbutton = this.shadowRoot.querySelector(\"button\");\n gsapWithCSS.fromTo(\n scrollbutton,\n {\n opacity: 0,\n translateY: \"-40px\"\n },\n {\n opacity: 1,\n translateY: \"0\",\n duration: 1\n }\n );\n gsapWithCSS.fromTo(\n scrollbutton,\n { opacity: 1 },\n {\n scrollTrigger: {\n trigger: this._main,\n start: \"top bottom\",\n end: \"+=50\",\n scrub: 0\n },\n yoyo: true,\n opacity: 0\n }\n );\n }\n _drawLine() {\n if (isSizeMdDown()) return;\n const slotElement = this.shadowRoot.querySelector(\"slot\");\n const slotRect = slotElement.getBoundingClientRect();\n const slotPaddingBottom = parseInt(getComputedStyle(slotElement).marginBlockEnd, 10);\n this._pathString = `M ${slotRect.left - slotRect.width / 8} ${this._headerContent.offsetTop} V ${slotRect.bottom + window.scrollY + slotPaddingBottom} H ${slotRect.left + slotRect.width / 2} v ${slotPaddingBottom / 2}`;\n this._linepath = this._line.querySelector(\"path\");\n setTimeout(() => {\n this._lineLength = this._linepath.getTotalLength();\n this._linepath.style.strokeDasharray = this._lineLength.toString();\n if (this._animationPlayed) {\n this._linepath.style.strokeDashoffset = this._lineLength - this._headerContent.offsetHeight;\n return;\n }\n this._linepath.style.strokeDashoffset = this._lineLength;\n gsapWithCSS.fromTo(\n this._linepath.style,\n { strokeDashoffset: this._lineLength },\n {\n strokeDashoffset: this._lineLength - this._headerContent.offsetHeight,\n duration: 1,\n onComplete: () => {\n this._animationPlayed = true;\n }\n }\n );\n }, 0);\n ScrollTrigger.create({\n trigger: this,\n start: \"top top\",\n end: `bottom+=${window.innerHeight * 25 / 100} bottom`,\n endTrigger: this._contactTeaser,\n scrub: 1,\n onUpdate: (self) => {\n const animatedLength = this._lineLength - this._headerContent.offsetHeight;\n if (animatedLength - animatedLength * self.progress <= 0) {\n this._linepath.style.strokeDashoffset = 0;\n return;\n }\n this._linepath.style.strokeDashoffset = animatedLength - animatedLength * self.progress;\n }\n });\n }\n _renderHeroImage() {\n if (this.backgroundVideoSrc) {\n return ke` `;\n }\n return ke` `;\n }\n render() {\n return ke`\n \n \n {\n smoothScroll(this._main);\n }}\n >\n \n \n \n \n ${this.video ? ke` ` : D}\n \n \n ${this.contactTeaser.buttons ? this.contactTeaser.buttons.map((button, buttonIndex) => {\n if (button.variant) {\n switch (button.variant) {\n case \"secondary\":\n return ke`${button.text} `;\n case \"tertiary\":\n return ke`${button.text} `;\n case \"primary\":\n default:\n return ke`${button.text} `;\n }\n } else {\n return buttonIndex === 0 ? ke`${button.text} ` : ke`${button.text} `;\n }\n }) : D}\n \n
\n \n \n ${Oe``}\n \n \n `;\n }\n};\nJBMomentPageHero.styles = r(jb_moment_page_hero_default);\n__decorateClass([\n n()\n], JBMomentPageHero.prototype, \"backgroundImage\", 2);\n__decorateClass([\n n()\n], JBMomentPageHero.prototype, \"backgroundMobileImage\", 2);\n__decorateClass([\n n()\n], JBMomentPageHero.prototype, \"backgroundVideoSrc\", 2);\n__decorateClass([\n n({ type: Object })\n], JBMomentPageHero.prototype, \"breadcrumbs\", 2);\n__decorateClass([\n n({ type: Object })\n], JBMomentPageHero.prototype, \"contactTeaser\", 2);\n__decorateClass([\n n()\n], JBMomentPageHero.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JBMomentPageHero.prototype, \"subline\", 2);\n__decorateClass([\n n({ type: Object })\n], JBMomentPageHero.prototype, \"video\", 2);\n__decorateClass([\n e(\"jb-contact-teaser-legacy\")\n], JBMomentPageHero.prototype, \"_contactTeaser\", 2);\n__decorateClass([\n e(\"header .content\")\n], JBMomentPageHero.prototype, \"_headerContent\", 2);\n__decorateClass([\n e(\"header\")\n], JBMomentPageHero.prototype, \"_headerElement\", 2);\n__decorateClass([\n e(\".line\")\n], JBMomentPageHero.prototype, \"_line\", 2);\n__decorateClass([\n e(\"main\")\n], JBMomentPageHero.prototype, \"_main\", 2);\n__decorateClass([\n r2()\n], JBMomentPageHero.prototype, \"_pathString\", 2);\nJBMomentPageHero = __decorateClass([\n customElement(\"jb-moment-page-hero\")\n], JBMomentPageHero);\n\nexport {\n JBMomentPageHero\n};\n", "import {\n Linkable,\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-moment-teaser-item/jb-moment-teaser-item.scss?inline\nvar jb_moment_teaser_item_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh3 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh3 {\n font-size: var(--theme-typo-h3-mobile-fontsize, 1.375rem);\n line-height: var(--theme-typo-h3-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n h3 {\n font-size: var(--theme-typo-h3-desktop-fontsize, 1.625rem);\n line-height: var(--theme-typo-h3-desktop-lineheight, 2.25rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\na {\n text-decoration: none;\n}\n\n.content {\n border-left: 1px solid #141e55;\n margin-left: 20px;\n padding-left: 20px;\n padding-top: 20px;\n width: calc(100% - 40px);\n}\n\nh3 {\n margin-bottom: 8px;\n}`;\n\n// src/components/jb-moment-teaser-item/jb-moment-teaser-item.ts\nvar JbMomentTeaserItem = class extends Linkable(h) {\n constructor() {\n super(...arguments);\n this._hovering = false;\n }\n _hoverLinkIn() {\n this._hovering = true;\n }\n _hoverLinkOut() {\n this._hovering = false;\n }\n _tracking(e) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e, {\n component_name: \"image-page-teaser\"\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n render() {\n return ke`\n ${this.image ? ke` ` : D}\n \n
${this.headline} \n
\n ${this.button ? ke` ` : D}\n
\n
\n `;\n }\n};\nJbMomentTeaserItem.styles = r(jb_moment_teaser_item_default);\n__decorateClass([\n n({ type: Object })\n], JbMomentTeaserItem.prototype, \"button\", 2);\n__decorateClass([\n n()\n], JbMomentTeaserItem.prototype, \"headline\", 2);\n__decorateClass([\n n({ type: Object })\n], JbMomentTeaserItem.prototype, \"image\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbMomentTeaserItem.prototype, \"randomized\", 2);\n__decorateClass([\n r2()\n], JbMomentTeaserItem.prototype, \"_hovering\", 2);\nJbMomentTeaserItem = __decorateClass([\n customElement(\"jb-moment-teaser-item\")\n], JbMomentTeaserItem);\n\nexport {\n JbMomentTeaserItem\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n o\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-multi-column/jb-multi-column.scss?inline\nvar jb_multi_column_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh2 {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n.slots.threecolumn, .slots.twocolumn, .title, .wrapper.narrow .slots.threecolumn, .wrapper.narrow .slots.twocolumn, .wrapper.narrow .title {\n --_grid-gap: 16px;\n --_grid-template-columns: repeat(12, 1fr);\n display: grid;\n gap: var(--grid-row-gap, 0) var(--grid-column-gap, var(--_grid-gap));\n grid-template-columns: var(--theme-grid-template-columns, var(--_grid-template-columns));\n width: 100%;\n}\n@media (min-width: 960px) {\n .slots.threecolumn, .slots.twocolumn, .title, .wrapper.narrow .slots.threecolumn, .wrapper.narrow .slots.twocolumn, .wrapper.narrow .title {\n --_grid-gap: 40px;\n }\n}\n\n.title, .wrapper.narrow .slots.threecolumn, .wrapper.narrow .slots.twocolumn, .wrapper.narrow .title {\n padding-inline: 20px;\n}\n\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\n.wrapper {\n padding: var(--spacing-4xl) 0;\n}\n@media (min-width: 960px) {\n .wrapper.narrow .title h2 {\n grid-column: 4/span 6;\n }\n}\n.wrapper.narrow .slots.twocolumn > div {\n grid-column: 1/13;\n}\n@media (min-width: 960px) {\n .wrapper.narrow .slots.twocolumn > div:nth-child(1) {\n grid-column: 4/span 3;\n }\n .wrapper.narrow .slots.twocolumn > div:nth-child(2) {\n grid-column: span 3;\n }\n}\n.wrapper.narrow .slots.threecolumn > div {\n grid-column: 1/13;\n}\n@media (min-width: 960px) {\n .wrapper.narrow .slots.threecolumn > div:nth-child(1) {\n grid-column: 4/span 2;\n }\n .wrapper.narrow .slots.threecolumn > div:nth-child(2) {\n grid-column: span 2;\n }\n .wrapper.narrow .slots.threecolumn > div:nth-child(3) {\n grid-column: span 2;\n }\n}\n\nh2 {\n color: #141e55;\n font-stretch: normal;\n font-style: normal;\n font-weight: bold;\n grid-column: main;\n letter-spacing: 0.063rem;\n opacity: 0.6;\n padding-bottom: 8px;\n text-transform: uppercase;\n font-size: 11px;\n font-size: 0.6875rem;\n line-height: 23px;\n line-height: 1.45rem;\n}\n\n.title {\n grid-column: main;\n}\n.title > h2 {\n grid-column: 1/13;\n}\n\n.slots {\n grid-column: main;\n}\n.slots ::slotted(*) {\n padding-bottom: 60px;\n}\n@media (min-width: 1281px) {\n .slots ::slotted(*) {\n padding-bottom: 68px;\n }\n}\n@media (min-width: 960px) {\n .slots ::slotted(.last) {\n padding-bottom: 0;\n }\n}\n.slots > div:last-child ::slotted(:last-child) {\n padding-bottom: 0;\n}\n@media (min-width: 960px) {\n .slots.twocolumn {\n padding-inline: 20px;\n }\n}\n.slots.twocolumn > div {\n grid-column: 1/13;\n}\n@media (min-width: 960px) {\n .slots.twocolumn > div:nth-child(1) {\n grid-column: 1/7;\n }\n .slots.twocolumn > div:nth-child(2) {\n grid-column: 7/13;\n }\n}\n@media (min-width: 960px) {\n .slots.threecolumn {\n padding-inline: 20px;\n }\n}\n.slots.threecolumn > div {\n grid-column: 1/13;\n}\n@media (min-width: 960px) {\n .slots.threecolumn > div:nth-child(1) {\n grid-column: 1/5;\n }\n .slots.threecolumn > div:nth-child(2) {\n grid-column: 5/9;\n }\n .slots.threecolumn > div:nth-child(3) {\n grid-column: 9/13;\n }\n}\n\n@media (min-width: 960px) {\n [name=first]::slotted(jb-stock-chart),\n [name=first]::slotted(.component-content-stock-chart) {\n --headline-text-align: right;\n }\n}`;\n\n// src/components/jb-multi-column/jb-multi-column.ts\nvar JbMultiColumn = class extends Spaceable(ChangesBackgroundColor(h)) {\n async firstUpdated() {\n await this.updateComplete;\n this._addClassToLast(this._firstSlotElements);\n this._addClassToLast(this._secondSlotElements);\n this._addClassToLast(this._thirdSlotElements);\n }\n _addClassToLast(slotElement) {\n if (slotElement && slotElement.length > 0) {\n slotElement[slotElement.length - 1].classList.add(\"last\");\n }\n }\n _getContentSpacingProperties() {\n return { grid: true, colsMdUp: \"none\", type: \"no-vertical-space\" };\n }\n render() {\n return ke`\n \n ${this.kicker ? ke`
${this.kicker} ` : D}\n
\n
\n
\n ${this.columns === 3 ? ke`
` : D}\n
\n
\n `;\n }\n};\nJbMultiColumn.styles = r(jb_multi_column_default);\n__decorateClass([\n n({ type: Number })\n], JbMultiColumn.prototype, \"columns\", 2);\n__decorateClass([\n n()\n], JbMultiColumn.prototype, \"kicker\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbMultiColumn.prototype, \"narrow\", 2);\n__decorateClass([\n o({ slot: \"first\" })\n], JbMultiColumn.prototype, \"_firstSlotElements\", 2);\n__decorateClass([\n o({ slot: \"second\" })\n], JbMultiColumn.prototype, \"_secondSlotElements\", 2);\n__decorateClass([\n o({ slot: \"third\" })\n], JbMultiColumn.prototype, \"_thirdSlotElements\", 2);\nJbMultiColumn = __decorateClass([\n customElement(\"jb-multi-column\")\n], JbMultiColumn);\n\nexport {\n JbMultiColumn\n};\n", "import {\n getViewport\n} from \"./chunk.YDQDJZUC.js\";\n\n// src/assets/scripts/LazyLoadingHandler.ts\nvar LazyLoadingHandler = class {\n constructor() {\n this._approachingViewportObserver = new IntersectionObserver(\n this._observerCallback.bind({ ...this, observation: \"approachingViewport\" }),\n { rootMargin: `${getViewport().height}px` }\n );\n this._entersViewportObserver = new IntersectionObserver(\n this._observerCallback.bind({ ...this, observation: \"entersViewport\" }),\n { threshold: 0 }\n );\n this._fullInViewportObserver = new IntersectionObserver(\n this._observerCallback.bind({ ...this, observation: \"fullInViewport\" }),\n { threshold: 1 }\n );\n }\n observe(element, callback, observation) {\n element.lazyLoadingCallback = callback;\n switch (observation) {\n case \"approachingViewport\":\n element.observer = this._approachingViewportObserver;\n break;\n case \"entersViewport\":\n element.observer = this._entersViewportObserver;\n break;\n case \"fullInViewport\":\n element.observer = this._fullInViewportObserver;\n break;\n default:\n this._approachingViewportObserver.observe(element);\n }\n element.observer.observe(element);\n }\n _observerCallback(observerEntries) {\n observerEntries.forEach((observerEntry) => {\n if (observerEntry.isIntersecting) {\n observerEntry.target.observer.unobserve(observerEntry.target);\n observerEntry.target.lazyLoadingCallback(observerEntry.target);\n }\n });\n }\n};\nvar instance = new LazyLoadingHandler();\nObject.freeze(instance);\nvar LazyLoadingHandler_default = instance;\n\nexport {\n LazyLoadingHandler_default\n};\n", "import {\n LazyLoadingHandler_default\n} from \"./chunk.ZXFS3F4J.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-location-teaser/jb-location-teaser.scss?inline\nvar jb_location_teaser_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.swiper-slide h5, .swiper-slide h4 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.swiper-slide .time,\n.swiper-slide .temperature {\n font-family: var(--theme-font-xlight-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-xlight-weight, 200);\n}\n\n.swiper-slide h4 {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.375rem;\n line-height: 1.75rem;\n}\n@media (min-width: 1281px) {\n .swiper-slide h4 {\n font-size: 1.75rem;\n line-height: 2.5rem;\n }\n}\n\n.swiper-slide h5 {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.313rem;\n line-height: 2.125rem;\n}\n@media (min-width: 1281px) {\n .swiper-slide h5 {\n font-size: 1.5rem;\n line-height: 2.25rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n/**\n * Swiper 8.4.7\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: January 30, 2023\n */\n@font-face {\n font-family: \"swiper-icons\";\n src: url(\"data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA\") format(\"woff\");\n font-weight: 400;\n font-style: normal;\n}\n:root {\n --swiper-theme-color: #007aff;\n}\n\n.swiper {\n margin-left: auto;\n margin-right: auto;\n position: relative;\n overflow: hidden;\n list-style: none;\n padding: 0;\n /* Fix of Webkit flickering */\n z-index: 1;\n}\n\n.swiper-vertical > .swiper-wrapper {\n flex-direction: column;\n}\n\n.swiper-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1;\n display: flex;\n transition-property: transform;\n box-sizing: content-box;\n}\n\n.swiper-android .swiper-slide,\n.swiper-wrapper {\n transform: translate3d(0px, 0, 0);\n}\n\n.swiper-pointer-events {\n touch-action: pan-y;\n}\n.swiper-pointer-events.swiper-vertical {\n touch-action: pan-x;\n}\n\n.swiper-slide {\n flex-shrink: 0;\n width: 100%;\n height: 100%;\n position: relative;\n transition-property: transform;\n}\n\n.swiper-slide-invisible-blank {\n visibility: hidden;\n}\n\n/* Auto Height */\n.swiper-autoheight,\n.swiper-autoheight .swiper-slide {\n height: auto;\n}\n.swiper-autoheight .swiper-wrapper {\n align-items: flex-start;\n transition-property: transform, height;\n}\n\n.swiper-backface-hidden .swiper-slide {\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n\n/* 3D Effects */\n.swiper-3d, .swiper-3d.swiper-css-mode .swiper-wrapper {\n perspective: 1200px;\n}\n.swiper-3d .swiper-wrapper,\n.swiper-3d .swiper-slide,\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom,\n.swiper-3d .swiper-cube-shadow {\n transform-style: preserve-3d;\n}\n.swiper-3d .swiper-slide-shadow,\n.swiper-3d .swiper-slide-shadow-left,\n.swiper-3d .swiper-slide-shadow-right,\n.swiper-3d .swiper-slide-shadow-top,\n.swiper-3d .swiper-slide-shadow-bottom {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 10;\n}\n.swiper-3d .swiper-slide-shadow {\n background: rgba(0, 0, 0, 0.15);\n}\n.swiper-3d .swiper-slide-shadow-left {\n background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-right {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-top {\n background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-3d .swiper-slide-shadow-bottom {\n background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n\n/* CSS Mode */\n.swiper-css-mode > .swiper-wrapper {\n overflow: auto;\n scrollbar-width: none; /* For Firefox */\n -ms-overflow-style: none; /* For Internet Explorer and Edge */\n}\n.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {\n display: none;\n}\n.swiper-css-mode > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: start start;\n}\n\n.swiper-horizontal.swiper-css-mode > .swiper-wrapper {\n scroll-snap-type: x mandatory;\n}\n\n.swiper-vertical.swiper-css-mode > .swiper-wrapper {\n scroll-snap-type: y mandatory;\n}\n\n.swiper-centered > .swiper-wrapper::before {\n content: \"\";\n flex-shrink: 0;\n order: 9999;\n}\n.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {\n margin-inline-start: var(--swiper-centered-offset-before);\n}\n.swiper-centered.swiper-horizontal > .swiper-wrapper::before {\n height: 100%;\n width: var(--swiper-centered-offset-after);\n}\n.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {\n margin-block-start: var(--swiper-centered-offset-before);\n}\n.swiper-centered.swiper-vertical > .swiper-wrapper::before {\n width: 100%;\n height: var(--swiper-centered-offset-after);\n}\n.swiper-centered > .swiper-wrapper > .swiper-slide {\n scroll-snap-align: center center;\n scroll-snap-stop: always;\n}\n\n.swiper-fade.swiper-free-mode .swiper-slide {\n transition-timing-function: ease-out;\n}\n.swiper-fade .swiper-slide {\n pointer-events: none;\n transition-property: opacity;\n}\n.swiper-fade .swiper-slide .swiper-slide {\n pointer-events: none;\n}\n.swiper-fade .swiper-slide-active, .swiper-fade .swiper-slide-active .swiper-slide-active {\n pointer-events: auto;\n}\n\n:host {\n display: block;\n}\n\n.swiper-slide {\n padding-block: 128px;\n position: relative;\n}\n@media (min-width: 600px) {\n .swiper-slide {\n padding-block: 171px 173px;\n }\n}\n@media (min-width: 1281px) {\n .swiper-slide {\n padding-block: 151px 165px;\n }\n}\n.swiper-slide jb-picture {\n filter: brightness(0.7);\n inset: 0;\n position: absolute;\n z-index: 1;\n}\n.swiper-slide jb-picture::part(picture) {\n width: 100vw;\n}\n.swiper-slide .content {\n align-items: center;\n display: flex;\n flex-direction: column;\n position: relative;\n z-index: 2;\n}\n.swiper-slide .info {\n align-items: center;\n display: flex;\n flex-direction: column;\n margin-bottom: 40px;\n margin-top: 40px;\n}\n@media (min-width: 600px) {\n .swiper-slide .info {\n flex-direction: row;\n }\n}\n.swiper-slide h4 {\n color: #fff;\n position: relative;\n text-transform: uppercase;\n z-index: 1;\n font-size: 22px;\n font-size: 1.375rem;\n line-height: 28px;\n line-height: 1.75rem;\n letter-spacing: 3px;\n letter-spacing: 0.1875rem;\n}\n.swiper-slide h5 {\n color: #fff;\n display: inline-block;\n margin: 5px 0;\n max-width: 100%;\n position: relative;\n text-align: center;\n width: 100%;\n z-index: 1;\n}\n@media (min-width: 600px) {\n .swiper-slide h5 {\n margin: unset;\n max-width: 120px;\n }\n}\n@media (min-width: 960px) {\n .swiper-slide h5 {\n font-size: 21px;\n font-size: 1.3125rem;\n letter-spacing: 0;\n letter-spacing: 0;\n }\n}\n.swiper-slide .time,\n.swiper-slide .temperature {\n color: #fff;\n position: relative;\n text-align: center;\n white-space: nowrap;\n z-index: 1;\n font-size: 70px;\n font-size: 4.375rem;\n line-height: 80px;\n line-height: 5rem;\n}\n@media (min-width: 600px) {\n .swiper-slide .time,\n .swiper-slide .temperature {\n font-size: 90px;\n font-size: 5.625rem;\n line-height: 100px;\n line-height: 6.25rem;\n }\n}\n@media (min-width: 960px) {\n .swiper-slide .time,\n .swiper-slide .temperature {\n font-size: 90px;\n font-size: 5.625rem;\n line-height: 100px;\n line-height: 6.25rem;\n }\n}\n@media (min-width: 1281px) {\n .swiper-slide .time,\n .swiper-slide .temperature {\n font-size: 110px;\n font-size: 6.875rem;\n line-height: 120px;\n line-height: 7.5rem;\n letter-spacing: 0;\n letter-spacing: 0;\n }\n}\n.swiper-slide .time:first-of-type,\n.swiper-slide .temperature:first-of-type {\n margin-right: 10px;\n}\n@media (max-width: 599px) {\n .swiper-slide .time:first-of-type,\n .swiper-slide .temperature:first-of-type {\n margin-right: 0;\n }\n}\n.swiper-slide .time:last-of-type,\n.swiper-slide .temperature:last-of-type {\n margin-left: 10px;\n}\n@media (max-width: 599px) {\n .swiper-slide .time:last-of-type,\n .swiper-slide .temperature:last-of-type {\n margin-left: 0;\n }\n}`;\n\n// src/components/jb-location-teaser/jb-location-teaser.ts\nvar JbLocationTeaser = class extends h {\n async firstUpdated() {\n this._currentTime = /* @__PURE__ */ new Date();\n setInterval(() => {\n this._currentTime = /* @__PURE__ */ new Date();\n }, 2e3);\n LazyLoadingHandler_default.observe(\n this,\n async () => {\n const { default: Swiper, Autoplay, EffectFade } = await import(\"./swiper.esm.LMNLSJOR.js\");\n new Swiper(this._swiper, {\n modules: [EffectFade, Autoplay],\n spaceBetween: 0,\n speed: 1e3,\n effect: \"fade\",\n autoplay: {\n delay: 3e3,\n disableOnInteraction: false\n }\n });\n },\n \"approachingViewport\"\n );\n }\n render() {\n return ke`\n \n
\n ${this.items.map(\n (item) => ke`
\n
\n
\n
${item.city} \n
\n
\n ${this._currentTime?.toLocaleTimeString(\"de-CH\", { timeZone: item.timezone, timeStyle: \"short\" })}\n
\n
${item.weather} \n
${item.temperature}
\n
\n ${item.button ? ke`
${item.button.text}\n ` : D}\n
\n
`\n )}\n
\n
\n `;\n }\n};\nJbLocationTeaser.styles = r(jb_location_teaser_default);\n__decorateClass([\n n({ type: Array })\n], JbLocationTeaser.prototype, \"items\", 2);\n__decorateClass([\n r2()\n], JbLocationTeaser.prototype, \"_currentTime\", 2);\n__decorateClass([\n e(\".swiper\")\n], JbLocationTeaser.prototype, \"_swiper\", 2);\nJbLocationTeaser = __decorateClass([\n customElement(\"jb-location-teaser\")\n], JbLocationTeaser);\n\nexport {\n JbLocationTeaser\n};\n", "import {\n disableBodyScroll,\n enableBodyScroll\n} from \"./chunk.WDF6H473.js\";\nimport {\n JbOverlay\n} from \"./chunk.5C7B4R5Q.js\";\nimport {\n Initiable\n} from \"./chunk.6DHNIVN5.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n Animatable\n} from \"./chunk.VRR2P3PQ.js\";\nimport {\n recenterNavItems\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-media-overlay/jb-media-overlay.scss?inline\nvar jb_media_overlay_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n background-color: #fff;\n display: block;\n min-height: 100%;\n}\n\n.media-overlay {\n display: block !important;\n opacity: 0;\n}\n@media (min-width: 960px) {\n .media-overlay {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n }\n}\n@media (min-width: 960px) and (min-width: 600px) and (max-width: 959px) {\n .media-overlay {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 960px) and (min-width: 1437px) {\n .media-overlay {\n max-width: var(--row-max-width, 1436px);\n }\n .media-overlay:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (min-width: 960px) and (max-width: 1436px) {\n .media-overlay {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}`;\n\n// src/components/jb-media-overlay/jb-media-overlay.ts\nvar JbMediaOverlay = class extends Initiable(Animatable(h)) {\n constructor() {\n super(...arguments);\n this.open = false;\n this._mediaOverlay = {\n content: null,\n overlay: null,\n innerContent: null,\n OVERLAY_SELECTOR: \".overlay-template\",\n OVERLAY_CONTENT_SELECTOR: \".media-overlay\",\n OVERLAY_INNER_CONTENT_SELECTOR: \".media-overlay__content\",\n MEDIA_TEMPLATE_SELECTOR: \"#media-overlay__media-template\",\n DESCRIPTION_TEMPLATE_SELECTOR: \"#media-overlay__description-template\"\n };\n }\n firstUpdated() {\n this._init();\n if (this.url) {\n this._fetchDataFromApi(this.url);\n } else if (this.overlayContent) {\n this._generateMediaHTML(this.overlayContent);\n this._generateDescriptionHTML(this.overlayContent);\n }\n this.dispatchEvent(\n new CustomEvent(\"jb-stackable:register-outro-callback\", {\n bubbles: true,\n composed: true,\n detail: {\n callback: async () => {\n window.history.replaceState(\"\", \"\", window.location.pathname);\n }\n }\n })\n );\n this.addEventListener(\"jb-reveal:contentRevealed\", () => {\n const video = this.shadowRoot.querySelector(\"jb-video\");\n if (!video) return;\n video._plyr.play();\n video._plyr.on(\"ready\", () => {\n video._plyr.play();\n });\n });\n document.addEventListener(\"jb-overlay:close\", () => {\n const video = this.shadowRoot.querySelector(\"jb-video\");\n if (!video) return;\n video._plyr.pause();\n });\n }\n _dom() {\n this._mediaOverlay.content = this.renderRoot.querySelector(\n this._mediaOverlay.OVERLAY_CONTENT_SELECTOR\n );\n if (this._mediaOverlay.content) {\n this._mediaOverlay.innerContent = this._mediaOverlay.content.querySelector(\n this._mediaOverlay.OVERLAY_INNER_CONTENT_SELECTOR\n );\n this._mediaOverlay.overlay = this._mediaOverlay.content.closest(\n this._mediaOverlay.OVERLAY_SELECTOR\n );\n }\n }\n _fetchDataFromApi(url) {\n fetch(url).then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not OK\");\n }\n return response.json();\n }).then((data) => {\n this._populateMediaOverlay(data);\n });\n }\n _generateDescriptionHTML(data) {\n const descriptionTemplate = this._mediaOverlay.overlay.querySelector(\n this._mediaOverlay.DESCRIPTION_TEMPLATE_SELECTOR\n );\n const descriptionClone = descriptionTemplate.content.cloneNode(true);\n const description = descriptionClone.querySelector(\".media-overlay__description\");\n description.innerHTML = data.description;\n this._mediaOverlay.innerContent.appendChild(descriptionClone);\n }\n _generateMediaHTML(data) {\n const videoTemplate = this._mediaOverlay.overlay.querySelector(this._mediaOverlay.MEDIA_TEMPLATE_SELECTOR);\n const videoClone = videoTemplate?.content.cloneNode(true);\n const media = videoClone.querySelector(\".media-overlay__media\");\n media.innerHTML = data.media;\n this._mediaOverlay.innerContent.appendChild(videoClone);\n }\n _init() {\n this._dom();\n }\n _populateMediaOverlay(data) {\n this._generateMediaHTML(data);\n this._generateDescriptionHTML(data);\n }\n render() {\n return ke`\n \n \n\n \n
\n \n\n \n
\n \n \n `;\n }\n};\nJbMediaOverlay.styles = r(jb_media_overlay_default);\n__decorateClass([\n n({ type: Boolean })\n], JbMediaOverlay.prototype, \"open\", 2);\n__decorateClass([\n n()\n], JbMediaOverlay.prototype, \"overlayContent\", 2);\n__decorateClass([\n n()\n], JbMediaOverlay.prototype, \"url\", 2);\nJbMediaOverlay = __decorateClass([\n customElement(\"jb-media-overlay\")\n], JbMediaOverlay);\nbindEvents();\n\n// src/components/jb-media-overlay/jb-media-overlay-controller.ts\nvar mediaLinksRegister = {};\nvar JbMediaOverlayController = class {\n constructor() {\n this.mediaOverlay = void 0;\n this.overlay = void 0;\n }\n async close() {\n if (this.mediaOverlay) {\n await this.mediaOverlay.hide();\n enableBodyScroll(this.mediaOverlay);\n recenterNavItems();\n }\n if (this.overlay) {\n this.overlay.unstack();\n }\n this.overlay = void 0;\n }\n handleHashChange() {\n const hash = window.location.hash.substring(1);\n if (hash === \"\" || !hash.includes(\"overlayMedia\")) {\n this.close();\n return;\n }\n const mediaId = hash.split(\"=\")[1];\n const endpoint = document.body.dataset.mediaOverlayEndpoint;\n if (!endpoint) {\n this.close();\n return;\n }\n mediaLinksRegister[mediaId] = endpoint.replace(\":mediaId\", mediaId);\n const url = mediaLinksRegister[mediaId];\n this.mediaOverlay = new JbMediaOverlay().init({\n props: { url }\n });\n this.overlay = new JbOverlay().init({\n props: { color: \"white\", hasLogo: false, hasCloseIcon: true, newAnimation: true },\n childNodes: [this.mediaOverlay]\n });\n if (this.overlay) {\n this.overlay.stack();\n customElements.whenDefined(\"jb-media-overlay\").then(async () => {\n setTimeout(() => {\n this.mediaOverlay.contentChildren = Array.from(\n this.mediaOverlay.shadowRoot.querySelectorAll(\".media-overlay\")\n );\n }, 0);\n disableBodyScroll(this.mediaOverlay, { allowTouchMove: () => true });\n recenterNavItems();\n await this.mediaOverlay.reveal();\n });\n }\n }\n open(event) {\n const customEvent = event;\n if (customEvent.detail.id || customEvent.detail.media) {\n customEvent.stopPropagation();\n customEvent.detail.clickEvent.preventDefault();\n customEvent.detail.clickEvent.stopPropagation();\n const baseUrl = window.location.href.split(\"#\")[0];\n let newUrl = \"\";\n if (customEvent.detail.id) {\n newUrl = baseUrl + \"#overlayMedia=\" + customEvent.detail.id;\n window.open(newUrl, \"_self\");\n } else {\n const overlayContent = {\n media: customEvent.detail.media,\n description: customEvent.detail.description\n };\n this.mediaOverlay = new JbMediaOverlay().init({\n props: { overlayContent }\n });\n this.overlay = new JbOverlay().init({\n props: { color: \"white\", hasLogo: false, hasCloseIcon: true, newAnimation: true },\n childNodes: [this.mediaOverlay]\n });\n if (this.overlay) {\n this.overlay.stack();\n customElements.whenDefined(\"jb-media-overlay\").then(async () => {\n setTimeout(() => {\n this.mediaOverlay.contentChildren = Array.from(\n this.mediaOverlay.shadowRoot.querySelectorAll(\".media-overlay\")\n );\n }, 0);\n disableBodyScroll(this.mediaOverlay, { allowTouchMove: () => true });\n recenterNavItems();\n await this.mediaOverlay.reveal();\n });\n }\n }\n }\n }\n};\nvar controller = new JbMediaOverlayController();\nfunction bindEvents() {\n document.addEventListener(\"jb-overlay:close\", () => {\n controller.close();\n });\n document.body.addEventListener(\"jb-link:initialized\", (event) => {\n const customEvent = event;\n if (!customEvent.detail.id) {\n return;\n }\n mediaLinksRegister[customEvent.detail.id] = customEvent.detail.url;\n });\n document.addEventListener(\"jb-link:clicked\", (event) => {\n controller.open(event);\n });\n window.onhashchange = () => {\n controller.handleHashChange();\n };\n window.setTimeout(() => {\n controller.handleHashChange();\n }, 0);\n}\n\nexport {\n bindEvents,\n JbMediaOverlay\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-listing-grid/jb-listing-grid.scss?inline\nvar jb_listing_grid_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.title, .title {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.title {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.375rem;\n letter-spacing: calc(var(--letter-spacing-factor, 3) * 0.063rem);\n line-height: 2.25rem;\n}\n@media (min-width: 1281px) {\n .title {\n font-size: 1.75rem;\n letter-spacing: calc(var(--letter-spacing-factor, 4) * 0.063rem);\n line-height: 2.5rem;\n }\n}\n\n.title {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.375rem;\n line-height: 1.75rem;\n}\n@media (min-width: 1281px) {\n .title {\n font-size: 1.75rem;\n line-height: 2.5rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n --items-per-column: 1;\n --column-count: 2;\n display: block;\n}\n\n.listing-grid {\n justify-content: center;\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 0;\n width: 100%;\n}\n@media (min-width: 600px) {\n .listing-grid {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 20px;\n width: 100%;\n }\n}\n@media (min-width: 600px) {\n .listing-grid {\n padding: 0 !important;\n }\n}\n\n.title {\n line-height: 2.25rem;\n margin-bottom: 60px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n}\n@media (min-width: 960px) {\n .title {\n line-height: 1.75rem;\n }\n}\n@media (min-width: 1281px) {\n .title {\n line-height: 2.25rem;\n margin-bottom: 68px;\n }\n}\n\n.columns {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n}\n@media (min-width: 960px) {\n .columns {\n column-gap: 40px;\n display: grid;\n grid-auto-flow: row;\n grid-template-columns: repeat(var(--column-count), 1fr);\n grid-template-rows: repeat(var(--items-per-column), min-content);\n }\n}\n\n::slotted(jb-listing-item) {\n margin-bottom: 16px;\n width: 100%;\n}\n@media (min-width: 960px) {\n ::slotted(jb-listing-item) {\n width: inherit;\n }\n}`;\n\n// src/components/jb-listing-grid/jb-listing-grid.ts\nvar JbListingGrid = class extends ChangesBackgroundColor(Spaceable(h)) {\n firstUpdated() {\n this.style.setProperty(\n \"--items-per-column\",\n Math.ceil(this._grid.assignedElements().length / this.columns).toString()\n );\n this.style.setProperty(\"--column-count\", this.columns.toString());\n }\n _getContentSpacingProperties() {\n const gridCols = this.variant === \"wide\" ? 12 : void 0;\n return {\n colsMdUp: gridCols,\n horizontal: this.variant ?? void 0,\n type: this.headline ? \"list\" : \"list-without-heading\"\n };\n }\n _tracking(e2) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e2, {\n component_name: \"listing\"\n });\n if (jbTrackingEvent) this.dispatchEvent(jbTrackingEvent);\n }\n render() {\n return ke`\n \n ${this.headline ? ke`
${this.headline} ` : D}\n
\n \n
\n
\n `;\n }\n};\nJbListingGrid.styles = r(jb_listing_grid_default);\n__decorateClass([\n n({ type: Number })\n], JbListingGrid.prototype, \"columns\", 2);\n__decorateClass([\n n()\n], JbListingGrid.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbListingGrid.prototype, \"variant\", 2);\n__decorateClass([\n e(\"slot\")\n], JbListingGrid.prototype, \"_grid\", 2);\nJbListingGrid = __decorateClass([\n customElement(\"jb-listing-grid\")\n], JbListingGrid);\n\nexport {\n JbListingGrid\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-location-overview/jb-location-overview.scss?inline\nvar jb_location_overview_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.wrapper h2, .wrapper, .wrapper h3 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.wrapper h3 {\n font-size: var(--theme-typo-p-big-mobile-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-big-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n .wrapper h3 {\n font-size: var(--theme-typo-p-big-desktop-fontsize, 1.375rem);\n line-height: var(--theme-typo-p-big-desktop-lineheight, 2.125rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n.wrapper {\n column-count: 1;\n gap: 0;\n margin: 0;\n}\n@media (min-width: 600px) {\n .wrapper {\n column-count: 2;\n }\n}\n@media (min-width: 960px) {\n .wrapper {\n column-count: 3;\n }\n}\n.wrapper h2 {\n font-size: 1.375rem;\n letter-spacing: 0.125rem;\n line-height: 100%;\n padding-block-end: var(--spacing-m);\n text-transform: uppercase;\n}\n.wrapper h3 {\n margin-block-end: var(--spacing-2xs);\n}\n.wrapper .region-wrapper {\n break-inside: avoid;\n margin-block-end: var(--spacing-3xl);\n page-break-inside: avoid;\n}\n@media (min-width: 600px) {\n .wrapper .region-wrapper {\n padding-inline: var(--spacing-s);\n }\n}\n.wrapper .region-wrapper .country-wrapper {\n border-block-end: 1px solid rgba(20, 30, 85, var(--theme-opacity-20, 0.2));\n display: flex;\n flex-wrap: wrap;\n margin-block-end: var(--spacing-s);\n padding-block-end: calc(var(--spacing-xs) - var(--spacing-2xs));\n}\n.wrapper .region-wrapper .country-wrapper li {\n inline-size: 50%;\n list-style: none;\n padding-block-end: var(--spacing-2xs);\n}\n.wrapper .region-wrapper .country-wrapper li a {\n color: rgba(20, 30, 85, var(--theme-opacity-70, 0.7));\n font-size: 0.625rem;\n font-weight: 500;\n letter-spacing: 0.094rem;\n line-height: 1rem;\n text-decoration: none;\n text-transform: uppercase;\n transition: color 0.3s ease-in-out 0s;\n}\n.wrapper .region-wrapper .country-wrapper li a:hover {\n color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n transition: color 0.3s ease-in-out 0s;\n}`;\n\n// src/components/jb-location-overview/jb-location-overview.ts\nvar JbLocationOverview = class extends Spaceable(h) {\n _getContentSpacingProperties() {\n return { colsMdUp: 12, colsLgUp: 10, grid: true };\n }\n render() {\n return ke`\n \n ${this.regions.map(\n (region) => ke`
\n
${region.title} \n ${region.countries.map(\n (country) => ke`
${country.title} \n
`\n )}\n
`\n )}\n
\n `;\n }\n};\nJbLocationOverview.styles = r(jb_location_overview_default);\n__decorateClass([\n n({ type: Array })\n], JbLocationOverview.prototype, \"regions\", 2);\nJbLocationOverview = __decorateClass([\n customElement(\"jb-location-overview\")\n], JbLocationOverview);\n\nexport {\n JbLocationOverview\n};\n", "import {\n ae\n} from \"./chunk.Q25FCJRM.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n JBCookie\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-language-alert/jb-language-alert.scss?inline\nvar jb_language_alert_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nstrong {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nsection p {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nsection {\n align-items: center;\n background-color: #141e55;\n display: flex;\n height: 118px;\n justify-content: center;\n left: 0;\n padding: 0 8px;\n position: fixed;\n right: 0;\n top: 0;\n transform: translateY(0);\n transition: transform 0.2s linear;\n z-index: 551;\n}\n@media (min-width: 960px) {\n section {\n padding: 0 10px;\n }\n}\n@media (min-width: 1281px) {\n section {\n height: 66px;\n padding: 0 30px;\n }\n}\nsection.hidden {\n transform: translateY(-120px);\n}\nsection p {\n font-size: 16px;\n font-size: 1rem;\n line-height: 26px;\n line-height: 1.625rem;\n color: rgba(255, 255, 255, 0.8);\n}\n@media (max-width: 959px) {\n section p {\n text-align: center;\n }\n}\n\n@media print {\n :host {\n display: none;\n }\n}`;\n\n// src/components/jb-language-alert/jb-language-alert.ts\nvar JbLanguageAlert = class extends h {\n constructor() {\n super(...arguments);\n this.texts = {};\n this._isShowing = true;\n this._isVisible = false;\n this._text = \"\";\n }\n events() {\n window.addEventListener(\"scroll\", () => {\n if (window.pageYOffset > 0) {\n if (!this._isShowing) {\n this._isVisible = false;\n } else {\n this._isShowing = false;\n }\n }\n });\n }\n firstUpdated() {\n this.showLanguageAlert();\n }\n getCurrentPageLanguage() {\n return document.querySelector(\"html\").getAttribute(\"lang\");\n }\n shouldBeShown() {\n if (this.forceAlert) {\n return true;\n }\n const cookieLanguage = JBCookie.getI18nCookieData().languageIso2;\n if (!cookieLanguage) {\n return false;\n }\n const currentPageLanguage = this.getCurrentPageLanguage();\n if (!currentPageLanguage) {\n return false;\n }\n return currentPageLanguage !== cookieLanguage;\n }\n showLanguageAlert() {\n if (!this.shouldBeShown()) {\n return;\n }\n this._isVisible = true;\n const languageId = JBCookie.getI18nCookieData().language;\n this._text = this.texts[`language${languageId}`];\n this.events();\n setTimeout(() => {\n this._isVisible = false;\n }, 4e3);\n }\n render() {\n const classes = {\n hidden: !this._isVisible\n };\n return ke`\n \n `;\n }\n};\nJbLanguageAlert.styles = r(jb_language_alert_default);\n__decorateClass([\n n({ type: Boolean })\n], JbLanguageAlert.prototype, \"forceAlert\", 2);\n__decorateClass([\n n({ type: Object })\n], JbLanguageAlert.prototype, \"texts\", 2);\n__decorateClass([\n r2()\n], JbLanguageAlert.prototype, \"_isVisible\", 2);\n__decorateClass([\n r2()\n], JbLanguageAlert.prototype, \"_text\", 2);\nJbLanguageAlert = __decorateClass([\n customElement(\"jb-language-alert\")\n], JbLanguageAlert);\n\nexport {\n JbLanguageAlert\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-lazy-loading-uploads/jb-lazy-loading-uploads.scss?inline\nvar jb_lazy_loading_uploads_default = i`:host {\n display: block;\n width: 100%;\n}\n\nslot {\n display: grid;\n row-gap: 11px;\n}`;\n\n// src/components/jb-lazy-loading-uploads/jb-lazy-loading-uploads.ts\nvar JbLazyLoadingUploads = class extends h {\n firstUpdated() {\n this._uploads = Array.from(this.querySelectorAll(\"jb-upload\"));\n this._showFilledPlusOneEmpty();\n }\n _showFilledPlusOneEmpty() {\n this._uploads.forEach((upload) => {\n upload.style.display = \"none\";\n });\n this._uploads.filter((upload) => upload.isUploaded).forEach((upload) => {\n upload.style.display = \"initial\";\n });\n const firstEmptyField = this._uploads.filter((upload) => !upload.isUploaded).shift();\n if (firstEmptyField) {\n firstEmptyField.style.display = \"initial\";\n }\n }\n render() {\n return ke``;\n }\n};\nJbLazyLoadingUploads.styles = r(jb_lazy_loading_uploads_default);\nJbLazyLoadingUploads = __decorateClass([\n customElement(\"jb-lazy-loading-uploads\")\n], JbLazyLoadingUploads);\n\nexport {\n JbLazyLoadingUploads\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n to\n} from \"./chunk.YTEMICXC.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-listing/jb-listing.scss?inline\nvar jb_listing_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.kicker p {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.kicker p {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.375rem;\n line-height: 1.75rem;\n}\n@media (min-width: 1281px) {\n .kicker p {\n font-size: 1.75rem;\n line-height: 2.5rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\n.listing.animate::after {\n background: #141e55;\n right: 100%;\n transition-delay: 0s;\n transition-duration: 0.8s;\n transition-timing-function: ease-in-out;\n}\n.listing.animate:hover::before {\n background: rgba(20, 30, 85, 0.2);\n bottom: 0;\n content: \"\";\n height: 1px;\n position: absolute;\n width: 100%;\n}\n.listing.animate:hover::after {\n background: #141e55;\n left: 0;\n right: 0;\n transition-delay: 0s;\n transition-duration: 0.5s;\n transition-timing-function: ease-in-out;\n}\n\n.kicker {\n margin-bottom: 8px;\n}\n.kicker p {\n color: #141e55;\n font-stretch: normal;\n font-style: normal;\n font-weight: bold;\n letter-spacing: 0.063rem;\n opacity: 0.6;\n text-transform: uppercase;\n font-size: 11px;\n font-size: 0.6875rem;\n line-height: 23px;\n line-height: 1.45rem;\n}\n\njb-section-headline {\n margin-bottom: 60px;\n}\njb-section-headline.center_md_down {\n --headline-text-align: center;\n}\n@media (min-width: 960px) {\n jb-section-headline.center_md_down {\n --headline-text-align: left;\n }\n}\n@media (min-width: 1281px) {\n jb-section-headline {\n margin-bottom: 68px;\n }\n}\n.kicker + jb-section-headline {\n --headline-text-transform: none;\n --headline-letter-spacing: 0;\n --headline-text-align: left;\n margin-bottom: 30px;\n}\n@media (min-width: 1281px) {\n .kicker + jb-section-headline {\n margin-bottom: 34px;\n }\n}\n\njb-listing-filter {\n padding-bottom: 23px;\n}\n\n.filters {\n padding-bottom: 24px;\n}\n\n.list {\n position: relative;\n z-index: 1;\n font-size: 0;\n font-size: 0;\n}\n.list.show-load-more + .m-listing__btn-wrap .button {\n display: inline-block;\n}\n\njb-button-panel {\n margin-top: 24px;\n}\n@media (min-width: 1281px) {\n jb-button-panel {\n margin-top: 32px;\n }\n}\n\njb-event-list-item:not(:last-child),\njb-listing-item:not(:last-child),\njb-news-list-item:not(:last-child) {\n margin-bottom: 20px;\n}\n\njb-event-list-item:not(:defined),\njb-news-list-item:not(:defined) {\n display: block;\n height: 70px;\n}`;\n\n// src/components/jb-listing/jb-listing.ts\nvar JbListing = class extends ChangesBackgroundColor(Spaceable(h)) {\n constructor() {\n super(...arguments);\n this.type = \"listing\";\n this._expanded = false;\n this._filteredItems = [];\n }\n updated(_changedProperties) {\n super.updated(_changedProperties);\n this._hideButtonPanelIfNotNeeded();\n if (!_changedProperties.has(\"_filteredItems\")) {\n this._refreshItemsList();\n }\n }\n firstUpdated(_changedProperties) {\n super.firstUpdated(_changedProperties);\n this._filteredItems = this.items;\n this._refreshItemsList();\n this._stripUselessFilters(this.filters);\n if (this.type === \"news\") {\n import(\"../components/jb-news-list-item/jb-news-list-item.js\").then();\n }\n if (this.type === \"event\") {\n import(\"../components/jb-event-list-item/jb-event-list-item.js\").then();\n }\n }\n _countItemsMatchingFilters(filters) {\n const { length } = this._getMatchingItems(filters);\n return length;\n }\n _getActiveFilter(filterAspect) {\n const activeFilter = this.filters?.find((filter) => filter.filterAspect === filterAspect);\n return activeFilter.activeValue ? activeFilter.activeValue : activeFilter.options[0].value;\n }\n _getActiveFilters() {\n const activeFilters = /* @__PURE__ */ new Map();\n this.filters?.forEach(\n (filter) => activeFilters.set(filter.filterAspect, filter.activeValue ? filter.activeValue : filter.options[0].value)\n );\n return activeFilters;\n }\n _getContentSpacingProperties() {\n const type = this.headline ? \"list\" : \"list-without-heading\";\n const cols = this.variant === \"narrow\" ? 6 : void 0;\n return { colsMdUp: cols, type };\n }\n _getMatchingItems(filters) {\n if (this.items === null) {\n return void 0;\n }\n return this.items?.filter((item) => {\n let compliesWithAllFilters = true;\n [...filters.keys()].forEach((filterAspect) => {\n const value = filters.get(filterAspect);\n if (value === \"\" || value === \"__all\" || value === void 0) {\n return;\n }\n if (!this._matchesFilterValue(item, filterAspect, value)) {\n compliesWithAllFilters = false;\n }\n });\n return compliesWithAllFilters;\n });\n }\n _handleExpandButtonClick(event) {\n event.preventDefault();\n this._expanded = true;\n }\n _handleFilterChange(event) {\n this._setActiveFilter(event.detail.filterAspect, event.detail.newValue);\n this._expanded = false;\n this.requestUpdate();\n }\n _hideButtonPanelIfNotNeeded() {\n if (!this._buttonPanel) {\n return;\n }\n if (!this._buttonsSlot || !this._buttonsSlot.assignedElements().length) {\n this._buttonPanel.style.display = \"none\";\n } else {\n this._buttonPanel.style.removeProperty(\"display\");\n }\n }\n _matchesFilterValue(item, filterAspect, value) {\n return !!item.filterValues?.find(\n (filterValue) => filterValue.filterAspect === filterAspect && filterValue.value === value\n );\n }\n _refreshItemsList() {\n if (this.items.length === 0) {\n return;\n }\n const matchingItems = this.filters === void 0 || this.filters.length === 0 ? this.items : this._getMatchingItems(this._getActiveFilters());\n const itemsToBeShown = this._expanded || !this.truncateAmount ? matchingItems : matchingItems.slice(0, this.truncateAmount);\n this._filteredItems = itemsToBeShown;\n if (matchingItems?.length > 0 && this.truncateAmount && !this._expanded && matchingItems?.length <= this.truncateAmount) {\n this._expanded = true;\n }\n }\n _setActiveFilter(filterAspect, value) {\n const matchingFilter = this.filters?.find((filter) => filter.filterAspect === filterAspect);\n if (!matchingFilter) {\n return;\n }\n matchingFilter.activeValue = value;\n }\n _showExpandButton() {\n if (!this.items || !this.showMoreLabel || !this.truncateAmount || this.truncateAmount < 1 || this._expanded) {\n return false;\n }\n return this.items.length > this.truncateAmount;\n }\n _stripUselessFilters(filters) {\n if (filters === void 0 || this.items.length === 0) {\n return void 0;\n }\n const usefulFilters = [];\n const actualParentFilters = /* @__PURE__ */ new Map();\n filters.forEach((filter) => {\n const usefulFilter = { ...filter };\n const usefulFilterOptions = [];\n filter.options.forEach((option) => {\n let optionIsUseful;\n if (option.value === \"__all\") {\n optionIsUseful = true;\n } else {\n const simulateFilters = new Map(JSON.parse(JSON.stringify(Array.from(actualParentFilters))));\n simulateFilters.set(filter.filterAspect, option.value);\n const filterOptionMatchCount = this._countItemsMatchingFilters(\n simulateFilters\n );\n optionIsUseful = !(filterOptionMatchCount === 0);\n }\n if (!optionIsUseful) {\n return;\n }\n usefulFilterOptions.push(option);\n });\n usefulFilter.options = usefulFilterOptions;\n actualParentFilters.set(filter.filterAspect, this._getActiveFilter(filter.filterAspect));\n if (usefulFilter.options.length < 1) {\n this._setActiveFilter(filter.filterAspect, void 0);\n return;\n }\n const activeUsefulOption = usefulFilter.options.find(\n (option) => option.value === this._getActiveFilter(filter.filterAspect)\n );\n if (!activeUsefulOption) {\n this._setActiveFilter(filter.filterAspect, usefulFilter.options[0].value);\n }\n usefulFilters.push(usefulFilter);\n });\n return usefulFilters;\n }\n _tracking(e2) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e2, {\n component_name: \"listing\"\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n render() {\n const effectiveFilters = this._stripUselessFilters(this.filters);\n return ke`\n \n ${this.kicker ? ke`
` : D}\n ${this.headline && ke`
`}\n ${effectiveFilters ? ke`\n
\n ${effectiveFilters.map(\n (filter) => ke` `\n )}\n
\n ` : D}\n\n
\n ${this._filteredItems && this.type === \"news\" ? this._filteredItems.map(\n (newsItem) => ke`\n \n `\n ) : D}\n ${this._filteredItems && this.type === \"listing\" ? this._filteredItems.map(\n (listingItem) => ke`\n \n `\n ) : D}\n ${this._filteredItems && this.type === \"event\" ? this._filteredItems.map(\n (eventItem) => ke`\n \n `\n ) : D}\n
\n ${this._showExpandButton() ? ke`\n
\n \n \n ` : D}\n
\n \n \n
\n `;\n }\n};\nJbListing.styles = r(jb_listing_default);\n__decorateClass([\n n({ type: Array })\n], JbListing.prototype, \"filters\", 2);\n__decorateClass([\n n()\n], JbListing.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbListing.prototype, \"headlineAlign\", 2);\n__decorateClass([\n n({ type: Array })\n], JbListing.prototype, \"items\", 2);\n__decorateClass([\n n()\n], JbListing.prototype, \"kicker\", 2);\n__decorateClass([\n n()\n], JbListing.prototype, \"languageBadge\", 2);\n__decorateClass([\n n()\n], JbListing.prototype, \"showMoreLabel\", 2);\n__decorateClass([\n n({ type: Number })\n], JbListing.prototype, \"truncateAmount\", 2);\n__decorateClass([\n n()\n], JbListing.prototype, \"type\", 2);\n__decorateClass([\n n()\n], JbListing.prototype, \"variant\", 2);\n__decorateClass([\n e(\"jb-button-panel[data-buttons]\")\n], JbListing.prototype, \"_buttonPanel\", 2);\n__decorateClass([\n e('slot[name=\"buttons\"]')\n], JbListing.prototype, \"_buttonsSlot\", 2);\n__decorateClass([\n r2()\n], JbListing.prototype, \"_expanded\", 2);\n__decorateClass([\n r2()\n], JbListing.prototype, \"_filteredItems\", 2);\nJbListing = __decorateClass([\n customElement(\"jb-listing\")\n], JbListing);\n\nexport {\n JbListing\n};\n", "import {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-listing-filter/jb-listing-filter.scss?inline\nvar jb_listing_filter_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\nli {\n -moz-osx-font-smoothing: grayscale;\n overflow: hidden;\n position: relative;\n transform: translateZ(0);\n}\nli::before {\n animation-direction: reverse;\n background-color: rgba(241, 242, 242, 0.3);\n bottom: 0;\n content: \"\";\n height: 66%;\n left: 0;\n position: absolute;\n transition: height 0.9s ease-out 0.2s;\n width: 1px;\n}\nli::after {\n background: #fff;\n bottom: 0;\n content: \"\";\n height: 1px;\n left: 0;\n position: absolute;\n right: 50%;\n transition: right 0.9s ease-out 0.2s;\n}\n\n/* stylelint-disable */\n/* stylelint-enable */\na {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\na {\n font-size: var(--theme-typo-uppercase-700-fontsize, 0.688rem);\n letter-spacing: var(--theme-typo-uppercase-700-letterspacing, 0.063rem);\n line-height: var(--theme-typo-uppercase-700-lineheight, 1rem);\n text-transform: uppercase;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: flex;\n justify-content: center;\n}\n\nul {\n display: flex;\n gap: var(--spacing-xs);\n list-style-type: none;\n overflow-x: auto;\n white-space: nowrap;\n}\n\nli {\n display: inline-flex;\n min-height: 0;\n opacity: 0.4;\n overflow: visible;\n padding-block: var(--spacing-base);\n transition: opacity 0.4s ease-in-out 0s;\n white-space: nowrap;\n}\nli::before {\n background-color: transparent;\n border-bottom: 1px solid rgb(var(--theme-color-royal-blue, 20 30 85)/var(--theme-opacity-20, 0.2));\n height: 1px;\n width: 100%;\n}\nli::after {\n background: rgb(var(--theme-color-blue, 0 20 137));\n right: 100%;\n}\nli:hover, li.active {\n opacity: 1;\n}\nli:hover::after, li.active::after {\n right: 0 !important;\n transition-duration: 0.5s !important;\n}\n\na {\n color: rgb(var(--theme-color-royal-blue, 20 30 85));\n text-decoration: none;\n}\n\n.intranet {\n gap: var(--spacing-3xs);\n}\n.intranet li {\n padding-block: var(--spacing-base);\n padding-inline: var(--spacing-3xs);\n transition: background-color 0.2s ease-in-out 0s, color 0.2s ease-in-out 0s;\n}\n.intranet li a {\n color: inherit;\n}\n.intranet li:hover, .intranet li.active {\n background-color: rgb(var(--theme-color-royal-blue, 20 30 85));\n color: rgb(var(--theme-color-white, 255 255 255));\n}\n.intranet li::before {\n all: unset;\n}\n.intranet li::after {\n all: unset;\n}`;\n\n// src/components/jb-listing-filter/jb-listing-filter.ts\nvar JbListingFilter = class extends h {\n constructor() {\n super(...arguments);\n this.intranetStyle = false;\n }\n _handleFilterClick(event) {\n event.preventDefault();\n const newValue = event.target.dataset.filterValue;\n if (this.activeValue === newValue) {\n return;\n }\n this.activeValue = newValue;\n this.dispatchEvent(\n new CustomEvent(\"jb-listing-filter:change\", {\n detail: {\n filterAspect: this.filterAspect,\n newValue\n },\n bubbles: true,\n composed: true\n })\n );\n this.requestUpdate();\n }\n render() {\n return ke`\n \n `;\n }\n};\nJbListingFilter.styles = r(jb_listing_filter_default);\n__decorateClass([\n n()\n], JbListingFilter.prototype, \"activeValue\", 2);\n__decorateClass([\n n()\n], JbListingFilter.prototype, \"filterAspect\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbListingFilter.prototype, \"intranetStyle\", 2);\n__decorateClass([\n n({ type: Array })\n], JbListingFilter.prototype, \"options\", 2);\nJbListingFilter = __decorateClass([\n customElement(\"jb-listing-filter\")\n], JbListingFilter);\n\nexport {\n JbListingFilter\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-info-page-hero/jb-info-page-hero.scss?inline\nvar jb_info_page_hero_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\np {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh1 {\n font-family: var(--theme-font-xlight-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-xlight-weight, 200);\n}\n\nh1 {\n font-size: var(--theme-typo-h1-overview-mobile-fontsize, 1.75rem);\n letter-spacing: var(--theme-typo-h1-overview-mobile-letterspacing, 0.094rem);\n line-height: var(--theme-typo-h1-overview-mobile-lineheight, 2.5rem);\n}\n@media (min-width: 1281px) {\n h1 {\n font-size: var(--theme-typo-h1-overview-desktop-fontsize, 3.125rem);\n letter-spacing: var(--theme-typo-h1-overview-desktop-letterspacing, 0.25rem);\n line-height: var(--theme-typo-h1-overview-desktop-lineheight, 4.375rem);\n }\n}\n\np {\n font-size: var(--theme-typo-p-big-mobile-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-big-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n p {\n font-size: var(--theme-typo-p-big-desktop-fontsize, 1.375rem);\n line-height: var(--theme-typo-p-big-desktop-lineheight, 2.125rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\ndiv {\n padding: 0;\n text-align: center;\n}\n\nh1 {\n margin-block: 40px;\n text-transform: uppercase;\n}\n@media (max-width: 1280px) {\n h1 {\n margin-bottom: 20px;\n margin-top: 0;\n }\n}\n\np {\n margin: 32px auto 0;\n}\n@media (min-width: 1281px) {\n p {\n margin-bottom: 20px;\n }\n}\n\n::slotted(jb-breadcrumbs) {\n display: block;\n margin-bottom: 24px;\n}\n@media (min-width: 1281px) {\n ::slotted(jb-breadcrumbs) {\n margin-bottom: 50px;\n }\n}`;\n\n// src/components/jb-info-page-hero/jb-info-page-hero.ts\nvar JbInfoPageHero = class extends Spaceable(h) {\n _getContentSpacingProperties() {\n return { colsMdUp: 10, type: \"no-vertical-space\" };\n }\n render() {\n return ke`\n \n
\n
${this.header} \n ${this.subheader ? ke`
${this.subheader}
` : D}\n
\n `;\n }\n};\nJbInfoPageHero.styles = r(jb_info_page_hero_default);\n__decorateClass([\n n()\n], JbInfoPageHero.prototype, \"header\", 2);\n__decorateClass([\n n()\n], JbInfoPageHero.prototype, \"subheader\", 2);\nJbInfoPageHero = __decorateClass([\n customElement(\"jb-info-page-hero\")\n], JbInfoPageHero);\n\nexport {\n JbInfoPageHero\n};\n", "import {\n LazyLoadingHandler_default\n} from \"./chunk.ZXFS3F4J.js\";\nimport {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-interactive-animation/jb-interactive-animation.ts\nvar JbInteractiveAnimation = class extends Spaceable(h) {\n firstUpdated() {\n LazyLoadingHandler_default.observe(\n this,\n async () => {\n await import(\"./lottie-player.esm.E5CIQAMJ.js\");\n },\n \"approachingViewport\"\n );\n this._lottiePlayer?.addEventListener(\"play\", () => {\n this.links?.forEach((link) => {\n this._lottiePlayer?.shadowRoot?.querySelectorAll(link.selector).forEach((element) => {\n element.style.cursor = \"pointer\";\n element.addEventListener(\"click\", () => {\n window.location.href = link.href;\n });\n });\n });\n });\n }\n render() {\n return ke`\n \n `;\n }\n};\n__decorateClass([\n n()\n], JbInteractiveAnimation.prototype, \"animationFile\", 2);\n__decorateClass([\n n({ type: Array })\n], JbInteractiveAnimation.prototype, \"links\", 2);\n__decorateClass([\n e(\"lottie-player\")\n], JbInteractiveAnimation.prototype, \"_lottiePlayer\", 2);\nJbInteractiveAnimation = __decorateClass([\n customElement(\"jb-interactive-animation\")\n], JbInteractiveAnimation);\n\nexport {\n JbInteractiveAnimation\n};\n", "import {\n gsapWithCSS\n} from \"./chunk.LXB4MYP4.js\";\nimport {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __commonJS,\n __decorateClass,\n __toESM\n} from \"./chunk.I4IFG4JG.js\";\n\n// node_modules/gsap/dist/ScrollTrigger.js\nvar require_ScrollTrigger = __commonJS({\n \"node_modules/gsap/dist/ScrollTrigger.js\"(exports, module) {\n (function(global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : (global = global || self, factory(global.window = global.window || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function _defineProperties(target, props) {\n for (var i3 = 0; i3 < props.length; i3++) {\n var descriptor = props[i3];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var gsap, _coreInitted, _clamp, _win, _doc, _docEl, _body, _isTouch, _pointerType, ScrollTrigger2, _root, _normalizer, _eventTypes, _context, _getGSAP = function _getGSAP2() {\n return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n }, _startup = 1, _observers = [], _scrollers = [], _proxies = [], _getTime = Date.now, _bridge = function _bridge2(name, value) {\n return value;\n }, _integrate = function _integrate2() {\n var core = ScrollTrigger2.core, data = core.bridge || {}, scrollers = core._scrollers, proxies = core._proxies;\n scrollers.push.apply(scrollers, _scrollers);\n proxies.push.apply(proxies, _proxies);\n _scrollers = scrollers;\n _proxies = proxies;\n _bridge = function _bridge2(name, value) {\n return data[name](value);\n };\n }, _getProxyProp = function _getProxyProp2(element, property) {\n return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property];\n }, _isViewport = function _isViewport2(el) {\n return !!~_root.indexOf(el);\n }, _addListener = function _addListener2(element, type, func, passive, capture) {\n return element.addEventListener(type, func, {\n passive: passive !== false,\n capture: !!capture\n });\n }, _removeListener = function _removeListener2(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n }, _scrollLeft = \"scrollLeft\", _scrollTop = \"scrollTop\", _onScroll = function _onScroll2() {\n return _normalizer && _normalizer.isPressed || _scrollers.cache++;\n }, _scrollCacheFunc = function _scrollCacheFunc2(f, doNotCache) {\n var cachingFunc = function cachingFunc2(value) {\n if (value || value === 0) {\n _startup && (_win.history.scrollRestoration = \"manual\");\n var isNormalizing = _normalizer && _normalizer.isPressed;\n value = cachingFunc2.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0);\n f(value);\n cachingFunc2.cacheID = _scrollers.cache;\n isNormalizing && _bridge(\"ss\", value);\n } else if (doNotCache || _scrollers.cache !== cachingFunc2.cacheID || _bridge(\"ref\")) {\n cachingFunc2.cacheID = _scrollers.cache;\n cachingFunc2.v = f();\n }\n return cachingFunc2.v + cachingFunc2.offset;\n };\n cachingFunc.offset = 0;\n return f && cachingFunc;\n }, _horizontal = {\n s: _scrollLeft,\n p: \"left\",\n p2: \"Left\",\n os: \"right\",\n os2: \"Right\",\n d: \"width\",\n d2: \"Width\",\n a: \"x\",\n sc: _scrollCacheFunc(function(value) {\n return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0;\n })\n }, _vertical = {\n s: _scrollTop,\n p: \"top\",\n p2: \"Top\",\n os: \"bottom\",\n os2: \"Bottom\",\n d: \"height\",\n d2: \"Height\",\n a: \"y\",\n op: _horizontal,\n sc: _scrollCacheFunc(function(value) {\n return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0;\n })\n }, _getTarget = function _getTarget2(t2, self2) {\n return (self2 && self2._ctx && self2._ctx.selector || gsap.utils.toArray)(t2)[0] || (typeof t2 === \"string\" && gsap.config().nullTargetWarn !== false ? console.warn(\"Element not found:\", t2) : null);\n }, _getScrollFunc = function _getScrollFunc2(element, _ref) {\n var s = _ref.s, sc = _ref.sc;\n _isViewport(element) && (element = _doc.scrollingElement || _docEl);\n var i3 = _scrollers.indexOf(element), offset = sc === _vertical.sc ? 1 : 2;\n !~i3 && (i3 = _scrollers.push(element) - 1);\n _scrollers[i3 + offset] || _addListener(element, \"scroll\", _onScroll);\n var prev = _scrollers[i3 + offset], func = prev || (_scrollers[i3 + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function(value) {\n return arguments.length ? element[s] = value : element[s];\n })));\n func.target = element;\n prev || (func.smooth = gsap.getProperty(element, \"scrollBehavior\") === \"smooth\");\n return func;\n }, _getVelocityProp = function _getVelocityProp2(value, minTimeRefresh, useDelta) {\n var v1 = value, v2 = value, t1 = _getTime(), t2 = t1, min = minTimeRefresh || 50, dropToZeroTime = Math.max(500, min * 3), update = function update2(value2, force) {\n var t3 = _getTime();\n if (force || t3 - t1 > min) {\n v2 = v1;\n v1 = value2;\n t2 = t1;\n t1 = t3;\n } else if (useDelta) {\n v1 += value2;\n } else {\n v1 = v2 + (value2 - v2) / (t3 - t2) * (t1 - t2);\n }\n }, reset = function reset2() {\n v2 = v1 = useDelta ? 0 : v1;\n t2 = t1 = 0;\n }, getVelocity = function getVelocity2(latestValue) {\n var tOld = t2, vOld = v2, t3 = _getTime();\n (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);\n return t1 === t2 || t3 - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t3 : t1) - tOld) * 1e3;\n };\n return {\n update,\n reset,\n getVelocity\n };\n }, _getEvent = function _getEvent2(e, preventDefault) {\n preventDefault && !e._gsapAllow && e.preventDefault();\n return e.changedTouches ? e.changedTouches[0] : e;\n }, _getAbsoluteMax = function _getAbsoluteMax2(a) {\n var max = Math.max.apply(Math, a), min = Math.min.apply(Math, a);\n return Math.abs(max) >= Math.abs(min) ? max : min;\n }, _setScrollTrigger = function _setScrollTrigger2() {\n ScrollTrigger2 = gsap.core.globals().ScrollTrigger;\n ScrollTrigger2 && ScrollTrigger2.core && _integrate();\n }, _initCore = function _initCore2(core) {\n gsap = core || _getGSAP();\n if (!_coreInitted && gsap && typeof document !== \"undefined\" && document.body) {\n _win = window;\n _doc = document;\n _docEl = _doc.documentElement;\n _body = _doc.body;\n _root = [_win, _doc, _docEl, _body];\n _clamp = gsap.utils.clamp;\n _context = gsap.core.context || function() {\n };\n _pointerType = \"onpointerenter\" in _body ? \"pointer\" : \"mouse\";\n _isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia(\"(hover: none), (pointer: coarse)\").matches ? 1 : \"ontouchstart\" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0;\n _eventTypes = Observer.eventTypes = (\"ontouchstart\" in _docEl ? \"touchstart,touchmove,touchcancel,touchend\" : !(\"onpointerdown\" in _docEl) ? \"mousedown,mousemove,mouseup,mouseup\" : \"pointerdown,pointermove,pointercancel,pointerup\").split(\",\");\n setTimeout(function() {\n return _startup = 0;\n }, 500);\n _setScrollTrigger();\n _coreInitted = 1;\n }\n return _coreInitted;\n };\n _horizontal.op = _vertical;\n _scrollers.cache = 0;\n var Observer = function() {\n function Observer2(vars) {\n this.init(vars);\n }\n var _proto = Observer2.prototype;\n _proto.init = function init(vars) {\n _coreInitted || _initCore(gsap) || console.warn(\"Please gsap.registerPlugin(Observer)\");\n ScrollTrigger2 || _setScrollTrigger();\n var tolerance = vars.tolerance, dragMinimum = vars.dragMinimum, type = vars.type, target = vars.target, lineHeight = vars.lineHeight, debounce = vars.debounce, preventDefault = vars.preventDefault, onStop = vars.onStop, onStopDelay = vars.onStopDelay, ignore = vars.ignore, wheelSpeed = vars.wheelSpeed, event = vars.event, onDragStart = vars.onDragStart, onDragEnd = vars.onDragEnd, onDrag = vars.onDrag, onPress = vars.onPress, onRelease = vars.onRelease, onRight = vars.onRight, onLeft = vars.onLeft, onUp = vars.onUp, onDown = vars.onDown, onChangeX = vars.onChangeX, onChangeY = vars.onChangeY, onChange = vars.onChange, onToggleX = vars.onToggleX, onToggleY = vars.onToggleY, onHover = vars.onHover, onHoverEnd = vars.onHoverEnd, onMove = vars.onMove, ignoreCheck = vars.ignoreCheck, isNormalizer = vars.isNormalizer, onGestureStart = vars.onGestureStart, onGestureEnd = vars.onGestureEnd, onWheel = vars.onWheel, onEnable = vars.onEnable, onDisable = vars.onDisable, onClick = vars.onClick, scrollSpeed = vars.scrollSpeed, capture = vars.capture, allowClicks = vars.allowClicks, lockAxis = vars.lockAxis, onLockAxis = vars.onLockAxis;\n this.target = target = _getTarget(target) || _docEl;\n this.vars = vars;\n ignore && (ignore = gsap.utils.toArray(ignore));\n tolerance = tolerance || 1e-9;\n dragMinimum = dragMinimum || 0;\n wheelSpeed = wheelSpeed || 1;\n scrollSpeed = scrollSpeed || 1;\n type = type || \"wheel,touch,pointer\";\n debounce = debounce !== false;\n lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22);\n var id, onStopDelayedCall, dragged, moved, wheeled, locked, axis, self2 = this, prevDeltaX = 0, prevDeltaY = 0, passive = vars.passive || !preventDefault, scrollFuncX = _getScrollFunc(target, _horizontal), scrollFuncY = _getScrollFunc(target, _vertical), scrollX = scrollFuncX(), scrollY = scrollFuncY(), limitToTouch = ~type.indexOf(\"touch\") && !~type.indexOf(\"pointer\") && _eventTypes[0] === \"pointerdown\", isViewport = _isViewport(target), ownerDoc = target.ownerDocument || _doc, deltaX = [0, 0, 0], deltaY = [0, 0, 0], onClickTime = 0, clickCapture = function clickCapture2() {\n return onClickTime = _getTime();\n }, _ignoreCheck = function _ignoreCheck2(e, isPointerOrTouch) {\n return (self2.event = e) && ignore && ~ignore.indexOf(e.target) || isPointerOrTouch && limitToTouch && e.pointerType !== \"touch\" || ignoreCheck && ignoreCheck(e, isPointerOrTouch);\n }, onStopFunc = function onStopFunc2() {\n self2._vx.reset();\n self2._vy.reset();\n onStopDelayedCall.pause();\n onStop && onStop(self2);\n }, update = function update2() {\n var dx = self2.deltaX = _getAbsoluteMax(deltaX), dy = self2.deltaY = _getAbsoluteMax(deltaY), changedX = Math.abs(dx) >= tolerance, changedY = Math.abs(dy) >= tolerance;\n onChange && (changedX || changedY) && onChange(self2, dx, dy, deltaX, deltaY);\n if (changedX) {\n onRight && self2.deltaX > 0 && onRight(self2);\n onLeft && self2.deltaX < 0 && onLeft(self2);\n onChangeX && onChangeX(self2);\n onToggleX && self2.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self2);\n prevDeltaX = self2.deltaX;\n deltaX[0] = deltaX[1] = deltaX[2] = 0;\n }\n if (changedY) {\n onDown && self2.deltaY > 0 && onDown(self2);\n onUp && self2.deltaY < 0 && onUp(self2);\n onChangeY && onChangeY(self2);\n onToggleY && self2.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self2);\n prevDeltaY = self2.deltaY;\n deltaY[0] = deltaY[1] = deltaY[2] = 0;\n }\n if (moved || dragged) {\n onMove && onMove(self2);\n if (dragged) {\n onDrag(self2);\n dragged = false;\n }\n moved = false;\n }\n locked && !(locked = false) && onLockAxis && onLockAxis(self2);\n if (wheeled) {\n onWheel(self2);\n wheeled = false;\n }\n id = 0;\n }, onDelta = function onDelta2(x, y, index) {\n deltaX[index] += x;\n deltaY[index] += y;\n self2._vx.update(x);\n self2._vy.update(y);\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n }, onTouchOrPointerDelta = function onTouchOrPointerDelta2(x, y) {\n if (lockAxis && !axis) {\n self2.axis = axis = Math.abs(x) > Math.abs(y) ? \"x\" : \"y\";\n locked = true;\n }\n if (axis !== \"y\") {\n deltaX[2] += x;\n self2._vx.update(x, true);\n }\n if (axis !== \"x\") {\n deltaY[2] += y;\n self2._vy.update(y, true);\n }\n debounce ? id || (id = requestAnimationFrame(update)) : update();\n }, _onDrag = function _onDrag2(e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n e = _getEvent(e, preventDefault);\n var x = e.clientX, y = e.clientY, dx = x - self2.x, dy = y - self2.y, isDragging = self2.isDragging;\n self2.x = x;\n self2.y = y;\n if (isDragging || Math.abs(self2.startX - x) >= dragMinimum || Math.abs(self2.startY - y) >= dragMinimum) {\n onDrag && (dragged = true);\n isDragging || (self2.isDragging = true);\n onTouchOrPointerDelta(dx, dy);\n isDragging || onDragStart && onDragStart(self2);\n }\n }, _onPress = self2.onPress = function(e) {\n if (_ignoreCheck(e, 1) || e && e.button) {\n return;\n }\n self2.axis = axis = null;\n onStopDelayedCall.pause();\n self2.isPressed = true;\n e = _getEvent(e);\n prevDeltaX = prevDeltaY = 0;\n self2.startX = self2.x = e.clientX;\n self2.startY = self2.y = e.clientY;\n self2._vx.reset();\n self2._vy.reset();\n _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true);\n self2.deltaX = self2.deltaY = 0;\n onPress && onPress(self2);\n }, _onRelease = self2.onRelease = function(e) {\n if (_ignoreCheck(e, 1)) {\n return;\n }\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n var isTrackingDrag = !isNaN(self2.y - self2.startY), wasDragging = self2.isDragging, isDragNotClick = wasDragging && (Math.abs(self2.x - self2.startX) > 3 || Math.abs(self2.y - self2.startY) > 3), eventData = _getEvent(e);\n if (!isDragNotClick && isTrackingDrag) {\n self2._vx.reset();\n self2._vy.reset();\n if (preventDefault && allowClicks) {\n gsap.delayedCall(0.08, function() {\n if (_getTime() - onClickTime > 300 && !e.defaultPrevented) {\n if (e.target.click) {\n e.target.click();\n } else if (ownerDoc.createEvent) {\n var syntheticEvent = ownerDoc.createEvent(\"MouseEvents\");\n syntheticEvent.initMouseEvent(\"click\", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);\n e.target.dispatchEvent(syntheticEvent);\n }\n }\n });\n }\n }\n self2.isDragging = self2.isGesturing = self2.isPressed = false;\n onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true);\n onDragEnd && wasDragging && onDragEnd(self2);\n onRelease && onRelease(self2, isDragNotClick);\n }, _onGestureStart = function _onGestureStart2(e) {\n return e.touches && e.touches.length > 1 && (self2.isGesturing = true) && onGestureStart(e, self2.isDragging);\n }, _onGestureEnd = function _onGestureEnd2() {\n return (self2.isGesturing = false) || onGestureEnd(self2);\n }, onScroll = function onScroll2(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n var x = scrollFuncX(), y = scrollFuncY();\n onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1);\n scrollX = x;\n scrollY = y;\n onStop && onStopDelayedCall.restart(true);\n }, _onWheel = function _onWheel2(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n e = _getEvent(e, preventDefault);\n onWheel && (wheeled = true);\n var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed;\n onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0);\n onStop && !isNormalizer && onStopDelayedCall.restart(true);\n }, _onMove = function _onMove2(e) {\n if (_ignoreCheck(e)) {\n return;\n }\n var x = e.clientX, y = e.clientY, dx = x - self2.x, dy = y - self2.y;\n self2.x = x;\n self2.y = y;\n moved = true;\n onStop && onStopDelayedCall.restart(true);\n (dx || dy) && onTouchOrPointerDelta(dx, dy);\n }, _onHover = function _onHover2(e) {\n self2.event = e;\n onHover(self2);\n }, _onHoverEnd = function _onHoverEnd2(e) {\n self2.event = e;\n onHoverEnd(self2);\n }, _onClick = function _onClick2(e) {\n return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self2);\n };\n onStopDelayedCall = self2._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause();\n self2.deltaX = self2.deltaY = 0;\n self2._vx = _getVelocityProp(0, 50, true);\n self2._vy = _getVelocityProp(0, 50, true);\n self2.scrollX = scrollFuncX;\n self2.scrollY = scrollFuncY;\n self2.isDragging = self2.isGesturing = self2.isPressed = false;\n _context(this);\n self2.enable = function(e) {\n if (!self2.isEnabled) {\n _addListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n type.indexOf(\"scroll\") >= 0 && _addListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, passive, capture);\n type.indexOf(\"wheel\") >= 0 && _addListener(target, \"wheel\", _onWheel, passive, capture);\n if (type.indexOf(\"touch\") >= 0 && _isTouch || type.indexOf(\"pointer\") >= 0) {\n _addListener(target, _eventTypes[0], _onPress, passive, capture);\n _addListener(ownerDoc, _eventTypes[2], _onRelease);\n _addListener(ownerDoc, _eventTypes[3], _onRelease);\n allowClicks && _addListener(target, \"click\", clickCapture, true, true);\n onClick && _addListener(target, \"click\", _onClick);\n onGestureStart && _addListener(ownerDoc, \"gesturestart\", _onGestureStart);\n onGestureEnd && _addListener(ownerDoc, \"gestureend\", _onGestureEnd);\n onHover && _addListener(target, _pointerType + \"enter\", _onHover);\n onHoverEnd && _addListener(target, _pointerType + \"leave\", _onHoverEnd);\n onMove && _addListener(target, _pointerType + \"move\", _onMove);\n }\n self2.isEnabled = true;\n e && e.type && _onPress(e);\n onEnable && onEnable(self2);\n }\n return self2;\n };\n self2.disable = function() {\n if (self2.isEnabled) {\n _observers.filter(function(o) {\n return o !== self2 && _isViewport(o.target);\n }).length || _removeListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n if (self2.isPressed) {\n self2._vx.reset();\n self2._vy.reset();\n _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n }\n _removeListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, capture);\n _removeListener(target, \"wheel\", _onWheel, capture);\n _removeListener(target, _eventTypes[0], _onPress, capture);\n _removeListener(ownerDoc, _eventTypes[2], _onRelease);\n _removeListener(ownerDoc, _eventTypes[3], _onRelease);\n _removeListener(target, \"click\", clickCapture, true);\n _removeListener(target, \"click\", _onClick);\n _removeListener(ownerDoc, \"gesturestart\", _onGestureStart);\n _removeListener(ownerDoc, \"gestureend\", _onGestureEnd);\n _removeListener(target, _pointerType + \"enter\", _onHover);\n _removeListener(target, _pointerType + \"leave\", _onHoverEnd);\n _removeListener(target, _pointerType + \"move\", _onMove);\n self2.isEnabled = self2.isPressed = self2.isDragging = false;\n onDisable && onDisable(self2);\n }\n };\n self2.kill = self2.revert = function() {\n self2.disable();\n var i3 = _observers.indexOf(self2);\n i3 >= 0 && _observers.splice(i3, 1);\n _normalizer === self2 && (_normalizer = 0);\n };\n _observers.push(self2);\n isNormalizer && _isViewport(target) && (_normalizer = self2);\n self2.enable(event);\n };\n _createClass(Observer2, [{\n key: \"velocityX\",\n get: function get() {\n return this._vx.getVelocity();\n }\n }, {\n key: \"velocityY\",\n get: function get() {\n return this._vy.getVelocity();\n }\n }]);\n return Observer2;\n }();\n Observer.version = \"3.12.5\";\n Observer.create = function(vars) {\n return new Observer(vars);\n };\n Observer.register = _initCore;\n Observer.getAll = function() {\n return _observers.slice();\n };\n Observer.getById = function(id) {\n return _observers.filter(function(o) {\n return o.vars.id === id;\n })[0];\n };\n _getGSAP() && gsap.registerPlugin(Observer);\n var gsap$1, _coreInitted$1, _win$1, _doc$1, _docEl$1, _body$1, _root$1, _resizeDelay, _toArray, _clamp$1, _time2, _syncInterval, _refreshing, _pointerIsDown, _transformProp, _i, _prevWidth, _prevHeight, _autoRefresh, _sort, _suppressOverwrites, _ignoreResize, _normalizer$1, _ignoreMobileResize, _baseScreenHeight, _baseScreenWidth, _fixIOSBug, _context$1, _scrollRestoration, _div100vh, _100vh, _isReverted, _clampingMax, _limitCallbacks, _startup$1 = 1, _getTime$1 = Date.now, _time1 = _getTime$1(), _lastScrollTime = 0, _enabled = 0, _parseClamp = function _parseClamp2(value, type, self2) {\n var clamp = _isString(value) && (value.substr(0, 6) === \"clamp(\" || value.indexOf(\"max\") > -1);\n self2[\"_\" + type + \"Clamp\"] = clamp;\n return clamp ? value.substr(6, value.length - 7) : value;\n }, _keepClamp = function _keepClamp2(value, clamp) {\n return clamp && (!_isString(value) || value.substr(0, 6) !== \"clamp(\") ? \"clamp(\" + value + \")\" : value;\n }, _rafBugFix = function _rafBugFix2() {\n return _enabled && requestAnimationFrame(_rafBugFix2);\n }, _pointerDownHandler = function _pointerDownHandler2() {\n return _pointerIsDown = 1;\n }, _pointerUpHandler = function _pointerUpHandler2() {\n return _pointerIsDown = 0;\n }, _passThrough = function _passThrough2(v) {\n return v;\n }, _round = function _round2(value) {\n return Math.round(value * 1e5) / 1e5 || 0;\n }, _windowExists = function _windowExists2() {\n return typeof window !== \"undefined\";\n }, _getGSAP$1 = function _getGSAP2() {\n return gsap$1 || _windowExists() && (gsap$1 = window.gsap) && gsap$1.registerPlugin && gsap$1;\n }, _isViewport$1 = function _isViewport2(e) {\n return !!~_root$1.indexOf(e);\n }, _getViewportDimension = function _getViewportDimension2(dimensionProperty) {\n return (dimensionProperty === \"Height\" ? _100vh : _win$1[\"inner\" + dimensionProperty]) || _docEl$1[\"client\" + dimensionProperty] || _body$1[\"client\" + dimensionProperty];\n }, _getBoundsFunc = function _getBoundsFunc2(element) {\n return _getProxyProp(element, \"getBoundingClientRect\") || (_isViewport$1(element) ? function() {\n _winOffsets.width = _win$1.innerWidth;\n _winOffsets.height = _100vh;\n return _winOffsets;\n } : function() {\n return _getBounds(element);\n });\n }, _getSizeFunc = function _getSizeFunc2(scroller, isViewport, _ref) {\n var d = _ref.d, d2 = _ref.d2, a = _ref.a;\n return (a = _getProxyProp(scroller, \"getBoundingClientRect\")) ? function() {\n return a()[d];\n } : function() {\n return (isViewport ? _getViewportDimension(d2) : scroller[\"client\" + d2]) || 0;\n };\n }, _getOffsetsFunc = function _getOffsetsFunc2(element, isViewport) {\n return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function() {\n return _winOffsets;\n };\n }, _maxScroll = function _maxScroll2(element, _ref2) {\n var s = _ref2.s, d2 = _ref2.d2, d = _ref2.d, a = _ref2.a;\n return Math.max(0, (s = \"scroll\" + d2) && (a = _getProxyProp(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport$1(element) ? (_docEl$1[s] || _body$1[s]) - _getViewportDimension(d2) : element[s] - element[\"offset\" + d2]);\n }, _iterateAutoRefresh = function _iterateAutoRefresh2(func, events) {\n for (var i3 = 0; i3 < _autoRefresh.length; i3 += 3) {\n (!events || ~events.indexOf(_autoRefresh[i3 + 1])) && func(_autoRefresh[i3], _autoRefresh[i3 + 1], _autoRefresh[i3 + 2]);\n }\n }, _isString = function _isString2(value) {\n return typeof value === \"string\";\n }, _isFunction = function _isFunction2(value) {\n return typeof value === \"function\";\n }, _isNumber = function _isNumber2(value) {\n return typeof value === \"number\";\n }, _isObject = function _isObject2(value) {\n return typeof value === \"object\";\n }, _endAnimation = function _endAnimation2(animation, reversed, pause) {\n return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause();\n }, _callback = function _callback2(self2, func) {\n if (self2.enabled) {\n var result = self2._ctx ? self2._ctx.add(function() {\n return func(self2);\n }) : func(self2);\n result && result.totalTime && (self2.callbackAnimation = result);\n }\n }, _abs = Math.abs, _left = \"left\", _top = \"top\", _right = \"right\", _bottom = \"bottom\", _width = \"width\", _height = \"height\", _Right = \"Right\", _Left = \"Left\", _Top = \"Top\", _Bottom = \"Bottom\", _padding = \"padding\", _margin = \"margin\", _Width = \"Width\", _Height = \"Height\", _px = \"px\", _getComputedStyle = function _getComputedStyle2(element) {\n return _win$1.getComputedStyle(element);\n }, _makePositionable = function _makePositionable2(element) {\n var position = _getComputedStyle(element).position;\n element.style.position = position === \"absolute\" || position === \"fixed\" ? position : \"relative\";\n }, _setDefaults = function _setDefaults2(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n return obj;\n }, _getBounds = function _getBounds2(element, withoutTransforms) {\n var tween = withoutTransforms && _getComputedStyle(element)[_transformProp] !== \"matrix(1, 0, 0, 1, 0, 0)\" && gsap$1.to(element, {\n x: 0,\n y: 0,\n xPercent: 0,\n yPercent: 0,\n rotation: 0,\n rotationX: 0,\n rotationY: 0,\n scale: 1,\n skewX: 0,\n skewY: 0\n }).progress(1), bounds = element.getBoundingClientRect();\n tween && tween.progress(0).kill();\n return bounds;\n }, _getSize = function _getSize2(element, _ref3) {\n var d2 = _ref3.d2;\n return element[\"offset\" + d2] || element[\"client\" + d2] || 0;\n }, _getLabelRatioArray = function _getLabelRatioArray2(timeline) {\n var a = [], labels = timeline.labels, duration = timeline.duration(), p;\n for (p in labels) {\n a.push(labels[p] / duration);\n }\n return a;\n }, _getClosestLabel = function _getClosestLabel2(animation) {\n return function(value) {\n return gsap$1.utils.snap(_getLabelRatioArray(animation), value);\n };\n }, _snapDirectional = function _snapDirectional2(snapIncrementOrArray) {\n var snap = gsap$1.utils.snap(snapIncrementOrArray), a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function(a2, b) {\n return a2 - b;\n });\n return a ? function(value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n var i3;\n if (!direction) {\n return snap(value);\n }\n if (direction > 0) {\n value -= threshold;\n for (i3 = 0; i3 < a.length; i3++) {\n if (a[i3] >= value) {\n return a[i3];\n }\n }\n return a[i3 - 1];\n } else {\n i3 = a.length;\n value += threshold;\n while (i3--) {\n if (a[i3] <= value) {\n return a[i3];\n }\n }\n }\n return a[0];\n } : function(value, direction, threshold) {\n if (threshold === void 0) {\n threshold = 1e-3;\n }\n var snapped = snap(value);\n return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray);\n };\n }, _getLabelAtDirection = function _getLabelAtDirection2(timeline) {\n return function(value, st) {\n return _snapDirectional(_getLabelRatioArray(timeline))(value, st.direction);\n };\n }, _multiListener = function _multiListener2(func, element, types, callback) {\n return types.split(\",\").forEach(function(type) {\n return func(element, type, callback);\n });\n }, _addListener$1 = function _addListener2(element, type, func, nonPassive, capture) {\n return element.addEventListener(type, func, {\n passive: !nonPassive,\n capture: !!capture\n });\n }, _removeListener$1 = function _removeListener2(element, type, func, capture) {\n return element.removeEventListener(type, func, !!capture);\n }, _wheelListener = function _wheelListener2(func, el, scrollFunc) {\n scrollFunc = scrollFunc && scrollFunc.wheelHandler;\n if (scrollFunc) {\n func(el, \"wheel\", scrollFunc);\n func(el, \"touchmove\", scrollFunc);\n }\n }, _markerDefaults = {\n startColor: \"green\",\n endColor: \"red\",\n indent: 0,\n fontSize: \"16px\",\n fontWeight: \"normal\"\n }, _defaults = {\n toggleActions: \"play\",\n anticipatePin: 0\n }, _keywords = {\n top: 0,\n left: 0,\n center: 0.5,\n bottom: 1,\n right: 1\n }, _offsetToPx = function _offsetToPx2(value, size) {\n if (_isString(value)) {\n var eqIndex = value.indexOf(\"=\"), relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0;\n if (~eqIndex) {\n value.indexOf(\"%\") > eqIndex && (relative *= size / 100);\n value = value.substr(0, eqIndex - 1);\n }\n value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf(\"%\") ? parseFloat(value) * size / 100 : parseFloat(value) || 0);\n }\n return value;\n }, _createMarker = function _createMarker2(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) {\n var startColor = _ref4.startColor, endColor = _ref4.endColor, fontSize = _ref4.fontSize, indent = _ref4.indent, fontWeight = _ref4.fontWeight;\n var e = _doc$1.createElement(\"div\"), useFixedPosition = _isViewport$1(container) || _getProxyProp(container, \"pinType\") === \"fixed\", isScroller = type.indexOf(\"scroller\") !== -1, parent = useFixedPosition ? _body$1 : container, isStart = type.indexOf(\"start\") !== -1, color = isStart ? startColor : endColor, css = \"border-color:\" + color + \";font-size:\" + fontSize + \";color:\" + color + \";font-weight:\" + fontWeight + \";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;\";\n css += \"position:\" + ((isScroller || containerAnimation) && useFixedPosition ? \"fixed;\" : \"absolute;\");\n (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + \":\" + (offset + parseFloat(indent)) + \"px;\");\n matchWidthEl && (css += \"box-sizing:border-box;text-align:left;width:\" + matchWidthEl.offsetWidth + \"px;\");\n e._isStart = isStart;\n e.setAttribute(\"class\", \"gsap-marker-\" + type + (name ? \" marker-\" + name : \"\"));\n e.style.cssText = css;\n e.innerText = name || name === 0 ? type + \"-\" + name : type;\n parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e);\n e._offset = e[\"offset\" + direction.op.d2];\n _positionMarker(e, 0, direction, isStart);\n return e;\n }, _positionMarker = function _positionMarker2(marker, start, direction, flipped) {\n var vars = {\n display: \"block\"\n }, side = direction[flipped ? \"os2\" : \"p2\"], oppositeSide = direction[flipped ? \"p2\" : \"os2\"];\n marker._isFlipped = flipped;\n vars[direction.a + \"Percent\"] = flipped ? -100 : 0;\n vars[direction.a] = flipped ? \"1px\" : 0;\n vars[\"border\" + side + _Width] = 1;\n vars[\"border\" + oppositeSide + _Width] = 0;\n vars[direction.p] = start + \"px\";\n gsap$1.set(marker, vars);\n }, _triggers = [], _ids = {}, _rafID, _sync = function _sync2() {\n return _getTime$1() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll)));\n }, _onScroll$1 = function _onScroll2() {\n if (!_normalizer$1 || !_normalizer$1.isPressed || _normalizer$1.startX > _body$1.clientWidth) {\n _scrollers.cache++;\n if (_normalizer$1) {\n _rafID || (_rafID = requestAnimationFrame(_updateAll));\n } else {\n _updateAll();\n }\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime$1();\n }\n }, _setBaseDimensions = function _setBaseDimensions2() {\n _baseScreenWidth = _win$1.innerWidth;\n _baseScreenHeight = _win$1.innerHeight;\n }, _onResize = function _onResize2() {\n _scrollers.cache++;\n !_refreshing && !_ignoreResize && !_doc$1.fullscreenElement && !_doc$1.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win$1.innerWidth || Math.abs(_win$1.innerHeight - _baseScreenHeight) > _win$1.innerHeight * 0.25) && _resizeDelay.restart(true);\n }, _listeners = {}, _emptyArray = [], _softRefresh = function _softRefresh2() {\n return _removeListener$1(ScrollTrigger$1, \"scrollEnd\", _softRefresh2) || _refreshAll(true);\n }, _dispatch = function _dispatch2(type) {\n return _listeners[type] && _listeners[type].map(function(f) {\n return f();\n }) || _emptyArray;\n }, _savedStyles = [], _revertRecorded = function _revertRecorded2(media) {\n for (var i3 = 0; i3 < _savedStyles.length; i3 += 5) {\n if (!media || _savedStyles[i3 + 4] && _savedStyles[i3 + 4].query === media) {\n _savedStyles[i3].style.cssText = _savedStyles[i3 + 1];\n _savedStyles[i3].getBBox && _savedStyles[i3].setAttribute(\"transform\", _savedStyles[i3 + 2] || \"\");\n _savedStyles[i3 + 3].uncache = 1;\n }\n }\n }, _revertAll = function _revertAll2(kill, media) {\n var trigger;\n for (_i = 0; _i < _triggers.length; _i++) {\n trigger = _triggers[_i];\n if (trigger && (!media || trigger._ctx === media)) {\n if (kill) {\n trigger.kill(1);\n } else {\n trigger.revert(true, true);\n }\n }\n }\n _isReverted = true;\n media && _revertRecorded(media);\n media || _dispatch(\"revert\");\n }, _clearScrollMemory = function _clearScrollMemory2(scrollRestoration, force) {\n _scrollers.cache++;\n (force || !_refreshingAll) && _scrollers.forEach(function(obj) {\n return _isFunction(obj) && obj.cacheID++ && (obj.rec = 0);\n });\n _isString(scrollRestoration) && (_win$1.history.scrollRestoration = _scrollRestoration = scrollRestoration);\n }, _refreshingAll, _refreshID = 0, _queueRefreshID, _queueRefreshAll = function _queueRefreshAll2() {\n if (_queueRefreshID !== _refreshID) {\n var id = _queueRefreshID = _refreshID;\n requestAnimationFrame(function() {\n return id === _refreshID && _refreshAll(true);\n });\n }\n }, _refresh100vh = function _refresh100vh2() {\n _body$1.appendChild(_div100vh);\n _100vh = !_normalizer$1 && _div100vh.offsetHeight || _win$1.innerHeight;\n _body$1.removeChild(_div100vh);\n }, _hideAllMarkers = function _hideAllMarkers2(hide) {\n return _toArray(\".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end\").forEach(function(el) {\n return el.style.display = hide ? \"none\" : \"block\";\n });\n }, _refreshAll = function _refreshAll2(force, skipRevert) {\n if (_lastScrollTime && !force && !_isReverted) {\n _addListener$1(ScrollTrigger$1, \"scrollEnd\", _softRefresh);\n return;\n }\n _refresh100vh();\n _refreshingAll = ScrollTrigger$1.isRefreshing = true;\n _scrollers.forEach(function(obj) {\n return _isFunction(obj) && ++obj.cacheID && (obj.rec = obj());\n });\n var refreshInits = _dispatch(\"refreshInit\");\n _sort && ScrollTrigger$1.sort();\n skipRevert || _revertAll();\n _scrollers.forEach(function(obj) {\n if (_isFunction(obj)) {\n obj.smooth && (obj.target.style.scrollBehavior = \"auto\");\n obj(0);\n }\n });\n _triggers.slice(0).forEach(function(t2) {\n return t2.refresh();\n });\n _isReverted = false;\n _triggers.forEach(function(t2) {\n if (t2._subPinOffset && t2.pin) {\n var prop = t2.vars.horizontal ? \"offsetWidth\" : \"offsetHeight\", original = t2.pin[prop];\n t2.revert(true, 1);\n t2.adjustPinSpacing(t2.pin[prop] - original);\n t2.refresh();\n }\n });\n _clampingMax = 1;\n _hideAllMarkers(true);\n _triggers.forEach(function(t2) {\n var max = _maxScroll(t2.scroller, t2._dir), endClamp = t2.vars.end === \"max\" || t2._endClamp && t2.end > max, startClamp = t2._startClamp && t2.start >= max;\n (endClamp || startClamp) && t2.setPositions(startClamp ? max - 1 : t2.start, endClamp ? Math.max(startClamp ? max : t2.start + 1, max) : t2.end, true);\n });\n _hideAllMarkers(false);\n _clampingMax = 0;\n refreshInits.forEach(function(result) {\n return result && result.render && result.render(-1);\n });\n _scrollers.forEach(function(obj) {\n if (_isFunction(obj)) {\n obj.smooth && requestAnimationFrame(function() {\n return obj.target.style.scrollBehavior = \"smooth\";\n });\n obj.rec && obj(obj.rec);\n }\n });\n _clearScrollMemory(_scrollRestoration, 1);\n _resizeDelay.pause();\n _refreshID++;\n _refreshingAll = 2;\n _updateAll(2);\n _triggers.forEach(function(t2) {\n return _isFunction(t2.vars.onRefresh) && t2.vars.onRefresh(t2);\n });\n _refreshingAll = ScrollTrigger$1.isRefreshing = false;\n _dispatch(\"refresh\");\n }, _lastScroll = 0, _direction = 1, _primary, _updateAll = function _updateAll2(force) {\n if (force === 2 || !_refreshingAll && !_isReverted) {\n ScrollTrigger$1.isUpdating = true;\n _primary && _primary.update(0);\n var l = _triggers.length, time = _getTime$1(), recordVelocity = time - _time1 >= 50, scroll = l && _triggers[0].scroll();\n _direction = _lastScroll > scroll ? -1 : 1;\n _refreshingAll || (_lastScroll = scroll);\n if (recordVelocity) {\n if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) {\n _lastScrollTime = 0;\n _dispatch(\"scrollEnd\");\n }\n _time2 = _time1;\n _time1 = time;\n }\n if (_direction < 0) {\n _i = l;\n while (_i-- > 0) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n _direction = 1;\n } else {\n for (_i = 0; _i < l; _i++) {\n _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n }\n }\n ScrollTrigger$1.isUpdating = false;\n }\n _rafID = 0;\n }, _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, \"display\", \"flexShrink\", \"float\", \"zIndex\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRowStart\", \"gridRowEnd\", \"gridArea\", \"justifySelf\", \"alignSelf\", \"placeSelf\", \"order\"], _stateProps = _propNamesToCopy.concat([_width, _height, \"boxSizing\", \"max\" + _Width, \"max\" + _Height, \"position\", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]), _swapPinOut = function _swapPinOut2(pin, spacer, state) {\n _setState(state);\n var cache = pin._gsap;\n if (cache.spacerIsNative) {\n _setState(cache.spacerState);\n } else if (pin._gsap.swappedIn) {\n var parent = spacer.parentNode;\n if (parent) {\n parent.insertBefore(pin, spacer);\n parent.removeChild(spacer);\n }\n }\n pin._gsap.swappedIn = false;\n }, _swapPinIn = function _swapPinIn2(pin, spacer, cs, spacerState) {\n if (!pin._gsap.swappedIn) {\n var i3 = _propNamesToCopy.length, spacerStyle = spacer.style, pinStyle = pin.style, p;\n while (i3--) {\n p = _propNamesToCopy[i3];\n spacerStyle[p] = cs[p];\n }\n spacerStyle.position = cs.position === \"absolute\" ? \"absolute\" : \"relative\";\n cs.display === \"inline\" && (spacerStyle.display = \"inline-block\");\n pinStyle[_bottom] = pinStyle[_right] = \"auto\";\n spacerStyle.flexBasis = cs.flexBasis || \"auto\";\n spacerStyle.overflow = \"visible\";\n spacerStyle.boxSizing = \"border-box\";\n spacerStyle[_width] = _getSize(pin, _horizontal) + _px;\n spacerStyle[_height] = _getSize(pin, _vertical) + _px;\n spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = \"0\";\n _setState(spacerState);\n pinStyle[_width] = pinStyle[\"max\" + _Width] = cs[_width];\n pinStyle[_height] = pinStyle[\"max\" + _Height] = cs[_height];\n pinStyle[_padding] = cs[_padding];\n if (pin.parentNode !== spacer) {\n pin.parentNode.insertBefore(spacer, pin);\n spacer.appendChild(pin);\n }\n pin._gsap.swappedIn = true;\n }\n }, _capsExp = /([A-Z])/g, _setState = function _setState2(state) {\n if (state) {\n var style = state.t.style, l = state.length, i3 = 0, p, value;\n (state.t._gsap || gsap$1.core.getCache(state.t)).uncache = 1;\n for (; i3 < l; i3 += 2) {\n value = state[i3 + 1];\n p = state[i3];\n if (value) {\n style[p] = value;\n } else if (style[p]) {\n style.removeProperty(p.replace(_capsExp, \"-$1\").toLowerCase());\n }\n }\n }\n }, _getState = function _getState2(element) {\n var l = _stateProps.length, style = element.style, state = [], i3 = 0;\n for (; i3 < l; i3++) {\n state.push(_stateProps[i3], style[_stateProps[i3]]);\n }\n state.t = element;\n return state;\n }, _copyState = function _copyState2(state, override, omitOffsets) {\n var result = [], l = state.length, i3 = omitOffsets ? 8 : 0, p;\n for (; i3 < l; i3 += 2) {\n p = state[i3];\n result.push(p, p in override ? override[p] : state[i3 + 1]);\n }\n result.t = state.t;\n return result;\n }, _winOffsets = {\n left: 0,\n top: 0\n }, _parsePosition = function _parsePosition2(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self2, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) {\n _isFunction(value) && (value = value(self2));\n if (_isString(value) && value.substr(0, 3) === \"max\") {\n value = scrollerMax + (value.charAt(4) === \"=\" ? _offsetToPx(\"0\" + value.substr(3), scrollerSize) : 0);\n }\n var time = containerAnimation ? containerAnimation.time() : 0, p1, p2, element;\n containerAnimation && containerAnimation.seek(0);\n isNaN(value) || (value = +value);\n if (!_isNumber(value)) {\n _isFunction(trigger) && (trigger = trigger(self2));\n var offsets = (value || \"0\").split(\" \"), bounds, localOffset, globalOffset, display;\n element = _getTarget(trigger, self2) || _body$1;\n bounds = _getBounds(element) || {};\n if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === \"none\") {\n display = element.style.display;\n element.style.display = \"block\";\n bounds = _getBounds(element);\n display ? element.style.display = display : element.style.removeProperty(\"display\");\n }\n localOffset = _offsetToPx(offsets[0], bounds[direction.d]);\n globalOffset = _offsetToPx(offsets[1] || \"0\", scrollerSize);\n value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset;\n markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20);\n scrollerSize -= scrollerSize - globalOffset;\n } else {\n containerAnimation && (value = gsap$1.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value));\n markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true);\n }\n if (clampZeroProp) {\n self2[clampZeroProp] = value || -1e-3;\n value < 0 && (value = 0);\n }\n if (marker) {\n var position = value + scrollerSize, isStart = marker._isStart;\n p1 = \"scroll\" + direction.d2;\n _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body$1[p1], _docEl$1[p1]) : marker.parentNode[p1]) <= position + 1);\n if (useFixedPosition) {\n scrollerBounds = _getBounds(markerScroller);\n useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px);\n }\n }\n if (containerAnimation && element) {\n p1 = _getBounds(element);\n containerAnimation.seek(scrollerMax);\n p2 = _getBounds(element);\n containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p];\n value = value / containerAnimation._caScrollDist * scrollerMax;\n }\n containerAnimation && containerAnimation.seek(time);\n return containerAnimation ? value : Math.round(value);\n }, _prefixExp = /(webkit|moz|length|cssText|inset)/i, _reparent = function _reparent2(element, parent, top, left) {\n if (element.parentNode !== parent) {\n var style = element.style, p, cs;\n if (parent === _body$1) {\n element._stOrig = style.cssText;\n cs = _getComputedStyle(element);\n for (p in cs) {\n if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === \"string\" && p !== \"0\") {\n style[p] = cs[p];\n }\n }\n style.top = top;\n style.left = left;\n } else {\n style.cssText = element._stOrig;\n }\n gsap$1.core.getCache(element).uncache = 1;\n parent.appendChild(element);\n }\n }, _interruptionTracker = function _interruptionTracker2(getValueFunc, initialValue, onInterrupt) {\n var last1 = initialValue, last2 = last1;\n return function(value) {\n var current = Math.round(getValueFunc());\n if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) {\n value = current;\n onInterrupt && onInterrupt();\n }\n last2 = last1;\n last1 = value;\n return value;\n };\n }, _shiftMarker = function _shiftMarker2(marker, direction, value) {\n var vars = {};\n vars[direction.p] = \"+=\" + value;\n gsap$1.set(marker, vars);\n }, _getTweenCreator = function _getTweenCreator2(scroller, direction) {\n var getScroll = _getScrollFunc(scroller, direction), prop = \"_scroll\" + direction.p2, getTween = function getTween2(scrollTo, vars, initialValue, change1, change2) {\n var tween = getTween2.tween, onComplete = vars.onComplete, modifiers = {};\n initialValue = initialValue || getScroll();\n var checkForInterruption = _interruptionTracker(getScroll, initialValue, function() {\n tween.kill();\n getTween2.tween = 0;\n });\n change2 = change1 && change2 || 0;\n change1 = change1 || scrollTo - initialValue;\n tween && tween.kill();\n vars[prop] = scrollTo;\n vars.inherit = false;\n vars.modifiers = modifiers;\n modifiers[prop] = function() {\n return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio);\n };\n vars.onUpdate = function() {\n _scrollers.cache++;\n getTween2.tween && _updateAll();\n };\n vars.onComplete = function() {\n getTween2.tween = 0;\n onComplete && onComplete.call(tween);\n };\n tween = getTween2.tween = gsap$1.to(scroller, vars);\n return tween;\n };\n scroller[prop] = getScroll;\n getScroll.wheelHandler = function() {\n return getTween.tween && getTween.tween.kill() && (getTween.tween = 0);\n };\n _addListener$1(scroller, \"wheel\", getScroll.wheelHandler);\n ScrollTrigger$1.isTouch && _addListener$1(scroller, \"touchmove\", getScroll.wheelHandler);\n return getTween;\n };\n var ScrollTrigger$1 = function() {\n function ScrollTrigger3(vars, animation) {\n _coreInitted$1 || ScrollTrigger3.register(gsap$1) || console.warn(\"Please gsap.registerPlugin(ScrollTrigger)\");\n _context$1(this);\n this.init(vars, animation);\n }\n var _proto = ScrollTrigger3.prototype;\n _proto.init = function init(vars, animation) {\n this.progress = this.start = 0;\n this.vars && this.kill(true, true);\n if (!_enabled) {\n this.update = this.refresh = this.kill = _passThrough;\n return;\n }\n vars = _setDefaults(_isString(vars) || _isNumber(vars) || vars.nodeType ? {\n trigger: vars\n } : vars, _defaults);\n var _vars = vars, onUpdate = _vars.onUpdate, toggleClass = _vars.toggleClass, id = _vars.id, onToggle = _vars.onToggle, onRefresh = _vars.onRefresh, scrub = _vars.scrub, trigger = _vars.trigger, pin = _vars.pin, pinSpacing = _vars.pinSpacing, invalidateOnRefresh = _vars.invalidateOnRefresh, anticipatePin = _vars.anticipatePin, onScrubComplete = _vars.onScrubComplete, onSnapComplete = _vars.onSnapComplete, once = _vars.once, snap = _vars.snap, pinReparent = _vars.pinReparent, pinSpacer = _vars.pinSpacer, containerAnimation = _vars.containerAnimation, fastScrollEnd = _vars.fastScrollEnd, preventOverlaps = _vars.preventOverlaps, direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical, isToggle = !scrub && scrub !== 0, scroller = _getTarget(vars.scroller || _win$1), scrollerCache = gsap$1.core.getCache(scroller), isViewport = _isViewport$1(scroller), useFixedPosition = (\"pinType\" in vars ? vars.pinType : _getProxyProp(scroller, \"pinType\") || isViewport && \"fixed\") === \"fixed\", callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack], toggleActions = isToggle && vars.toggleActions.split(\" \"), markers = \"markers\" in vars ? vars.markers : _defaults.markers, borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0, self2 = this, onRefreshInit = vars.onRefreshInit && function() {\n return vars.onRefreshInit(self2);\n }, getScrollerSize = _getSizeFunc(scroller, isViewport, direction), getScrollerOffsets = _getOffsetsFunc(scroller, isViewport), lastSnap = 0, lastRefresh = 0, prevProgress = 0, scrollFunc = _getScrollFunc(scroller, direction), tweenTo, pinCache, snapFunc, scroll1, scroll2, start, end, markerStart, markerEnd, markerStartTrigger, markerEndTrigger, markerVars, executingOnRefresh, change, pinOriginalState, pinActiveState, pinState, spacer, offset, pinGetter, pinSetter, pinStart, pinChange, spacingStart, spacerState, markerStartSetter, pinMoves, markerEndSetter, cs, snap1, snap2, scrubTween, scrubSmooth, snapDurClamp, snapDelayedCall, prevScroll, prevAnimProgress, caMarkerSetter, customRevertReturn;\n self2._startClamp = self2._endClamp = false;\n self2._dir = direction;\n anticipatePin *= 45;\n self2.scroller = scroller;\n self2.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc;\n scroll1 = scrollFunc();\n self2.vars = vars;\n animation = animation || vars.animation;\n if (\"refreshPriority\" in vars) {\n _sort = 1;\n vars.refreshPriority === -9999 && (_primary = self2);\n }\n scrollerCache.tweenScroll = scrollerCache.tweenScroll || {\n top: _getTweenCreator(scroller, _vertical),\n left: _getTweenCreator(scroller, _horizontal)\n };\n self2.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p];\n self2.scrubDuration = function(value) {\n scrubSmooth = _isNumber(value) && value;\n if (!scrubSmooth) {\n scrubTween && scrubTween.progress(1).kill();\n scrubTween = 0;\n } else {\n scrubTween ? scrubTween.duration(value) : scrubTween = gsap$1.to(animation, {\n ease: \"expo\",\n totalProgress: \"+=0\",\n inherit: false,\n duration: scrubSmooth,\n paused: true,\n onComplete: function onComplete() {\n return onScrubComplete && onScrubComplete(self2);\n }\n });\n }\n };\n if (animation) {\n animation.vars.lazy = false;\n animation._initted && !self2.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true);\n self2.animation = animation.pause();\n animation.scrollTrigger = self2;\n self2.scrubDuration(scrub);\n snap1 = 0;\n id || (id = animation.vars.id);\n }\n if (snap) {\n if (!_isObject(snap) || snap.push) {\n snap = {\n snapTo: snap\n };\n }\n \"scrollBehavior\" in _body$1.style && gsap$1.set(isViewport ? [_body$1, _docEl$1] : scroller, {\n scrollBehavior: \"auto\"\n });\n _scrollers.forEach(function(o) {\n return _isFunction(o) && o.target === (isViewport ? _doc$1.scrollingElement || _docEl$1 : scroller) && (o.smooth = false);\n });\n snapFunc = _isFunction(snap.snapTo) ? snap.snapTo : snap.snapTo === \"labels\" ? _getClosestLabel(animation) : snap.snapTo === \"labelsDirectional\" ? _getLabelAtDirection(animation) : snap.directional !== false ? function(value, st) {\n return _snapDirectional(snap.snapTo)(value, _getTime$1() - lastRefresh < 500 ? 0 : st.direction);\n } : gsap$1.utils.snap(snap.snapTo);\n snapDurClamp = snap.duration || {\n min: 0.1,\n max: 2\n };\n snapDurClamp = _isObject(snapDurClamp) ? _clamp$1(snapDurClamp.min, snapDurClamp.max) : _clamp$1(snapDurClamp, snapDurClamp);\n snapDelayedCall = gsap$1.delayedCall(snap.delay || scrubSmooth / 2 || 0.1, function() {\n var scroll = scrollFunc(), refreshedRecently = _getTime$1() - lastRefresh < 500, tween = tweenTo.tween;\n if ((refreshedRecently || Math.abs(self2.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) {\n var progress = (scroll - start) / change, totalProgress = animation && !isToggle ? animation.totalProgress() : progress, velocity = refreshedRecently ? 0 : (totalProgress - snap2) / (_getTime$1() - _time2) * 1e3 || 0, change1 = gsap$1.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185), naturalEnd = progress + (snap.inertia === false ? 0 : change1), endValue, endScroll, _snap = snap, onStart = _snap.onStart, _onInterrupt = _snap.onInterrupt, _onComplete = _snap.onComplete;\n endValue = snapFunc(naturalEnd, self2);\n _isNumber(endValue) || (endValue = naturalEnd);\n endScroll = Math.round(start + endValue * change);\n if (scroll <= end && scroll >= start && endScroll !== scroll) {\n if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) {\n return;\n }\n if (snap.inertia === false) {\n change1 = endValue - progress;\n }\n tweenTo(endScroll, {\n duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)),\n ease: snap.ease || \"power3\",\n data: _abs(endScroll - scroll),\n onInterrupt: function onInterrupt() {\n return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self2);\n },\n onComplete: function onComplete() {\n self2.update();\n lastSnap = scrollFunc();\n if (animation) {\n scrubTween ? scrubTween.resetTo(\"totalProgress\", endValue, animation._tTime / animation._tDur) : animation.progress(endValue);\n }\n snap1 = snap2 = animation && !isToggle ? animation.totalProgress() : self2.progress;\n onSnapComplete && onSnapComplete(self2);\n _onComplete && _onComplete(self2);\n }\n }, scroll, change1 * change, endScroll - scroll - change1 * change);\n onStart && onStart(self2, tweenTo.tween);\n }\n } else if (self2.isActive && lastSnap !== scroll) {\n snapDelayedCall.restart(true);\n }\n }).pause();\n }\n id && (_ids[id] = self2);\n trigger = self2.trigger = _getTarget(trigger || pin !== true && pin);\n customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert;\n customRevertReturn && (customRevertReturn = customRevertReturn(self2));\n pin = pin === true ? trigger : _getTarget(pin);\n _isString(toggleClass) && (toggleClass = {\n targets: trigger,\n className: toggleClass\n });\n if (pin) {\n pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === \"flex\" ? false : _padding);\n self2.pin = pin;\n pinCache = gsap$1.core.getCache(pin);\n if (!pinCache.spacer) {\n if (pinSpacer) {\n pinSpacer = _getTarget(pinSpacer);\n pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement);\n pinCache.spacerIsNative = !!pinSpacer;\n pinSpacer && (pinCache.spacerState = _getState(pinSpacer));\n }\n pinCache.spacer = spacer = pinSpacer || _doc$1.createElement(\"div\");\n spacer.classList.add(\"pin-spacer\");\n id && spacer.classList.add(\"pin-spacer-\" + id);\n pinCache.pinState = pinOriginalState = _getState(pin);\n } else {\n pinOriginalState = pinCache.pinState;\n }\n vars.force3D !== false && gsap$1.set(pin, {\n force3D: true\n });\n self2.spacer = spacer = pinCache.spacer;\n cs = _getComputedStyle(pin);\n spacingStart = cs[pinSpacing + direction.os2];\n pinGetter = gsap$1.getProperty(pin);\n pinSetter = gsap$1.quickSetter(pin, direction.a, _px);\n _swapPinIn(pin, spacer, cs);\n pinState = _getState(pin);\n }\n if (markers) {\n markerVars = _isObject(markers) ? _setDefaults(markers, _markerDefaults) : _markerDefaults;\n markerStartTrigger = _createMarker(\"scroller-start\", id, scroller, direction, markerVars, 0);\n markerEndTrigger = _createMarker(\"scroller-end\", id, scroller, direction, markerVars, 0, markerStartTrigger);\n offset = markerStartTrigger[\"offset\" + direction.op.d2];\n var content = _getTarget(_getProxyProp(scroller, \"content\") || scroller);\n markerStart = this.markerStart = _createMarker(\"start\", id, content, direction, markerVars, offset, 0, containerAnimation);\n markerEnd = this.markerEnd = _createMarker(\"end\", id, content, direction, markerVars, offset, 0, containerAnimation);\n containerAnimation && (caMarkerSetter = gsap$1.quickSetter([markerStart, markerEnd], direction.a, _px));\n if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, \"fixedMarkers\") === true)) {\n _makePositionable(isViewport ? _body$1 : scroller);\n gsap$1.set([markerStartTrigger, markerEndTrigger], {\n force3D: true\n });\n markerStartSetter = gsap$1.quickSetter(markerStartTrigger, direction.a, _px);\n markerEndSetter = gsap$1.quickSetter(markerEndTrigger, direction.a, _px);\n }\n }\n if (containerAnimation) {\n var oldOnUpdate = containerAnimation.vars.onUpdate, oldParams = containerAnimation.vars.onUpdateParams;\n containerAnimation.eventCallback(\"onUpdate\", function() {\n self2.update(0, 0, 1);\n oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []);\n });\n }\n self2.previous = function() {\n return _triggers[_triggers.indexOf(self2) - 1];\n };\n self2.next = function() {\n return _triggers[_triggers.indexOf(self2) + 1];\n };\n self2.revert = function(revert, temp) {\n if (!temp) {\n return self2.kill(true);\n }\n var r3 = revert !== false || !self2.enabled, prevRefreshing = _refreshing;\n if (r3 !== self2.isReverted) {\n if (r3) {\n prevScroll = Math.max(scrollFunc(), self2.scroll.rec || 0);\n prevProgress = self2.progress;\n prevAnimProgress = animation && animation.progress();\n }\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m) {\n return m.style.display = r3 ? \"none\" : \"block\";\n });\n if (r3) {\n _refreshing = self2;\n self2.update(r3);\n }\n if (pin && (!pinReparent || !self2.isActive)) {\n if (r3) {\n _swapPinOut(pin, spacer, pinOriginalState);\n } else {\n _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState);\n }\n }\n r3 || self2.update(r3);\n _refreshing = prevRefreshing;\n self2.isReverted = r3;\n }\n };\n self2.refresh = function(soft, force, position, pinOffset) {\n if ((_refreshing || !self2.enabled) && !force) {\n return;\n }\n if (pin && soft && _lastScrollTime) {\n _addListener$1(ScrollTrigger3, \"scrollEnd\", _softRefresh);\n return;\n }\n !_refreshingAll && onRefreshInit && onRefreshInit(self2);\n _refreshing = self2;\n if (tweenTo.tween && !position) {\n tweenTo.tween.kill();\n tweenTo.tween = 0;\n }\n scrubTween && scrubTween.pause();\n invalidateOnRefresh && animation && animation.revert({\n kill: false\n }).invalidate();\n self2.isReverted || self2.revert(true, true);\n self2._subPinOffset = false;\n var size = getScrollerSize(), scrollerBounds = getScrollerOffsets(), max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction), isFirstRefresh = change <= 0.01, offset2 = 0, otherPinOffset = pinOffset || 0, parsedEnd = _isObject(position) ? position.end : vars.end, parsedEndTrigger = vars.endTrigger || trigger, parsedStart = _isObject(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? \"0 0\" : \"0 100%\"), pinnedContainer = self2.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer, self2), triggerIndex = trigger && Math.max(0, _triggers.indexOf(self2)) || 0, i3 = triggerIndex, cs2, bounds, scroll, isVertical, override, curTrigger, curPin, oppositeScroll, initted, revertedPins, forcedOverflow, markerStartOffset, markerEndOffset;\n if (markers && _isObject(position)) {\n markerStartOffset = gsap$1.getProperty(markerStartTrigger, direction.p);\n markerEndOffset = gsap$1.getProperty(markerEndTrigger, direction.p);\n }\n while (i3--) {\n curTrigger = _triggers[i3];\n curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self2);\n curPin = curTrigger.pin;\n if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) {\n revertedPins || (revertedPins = []);\n revertedPins.unshift(curTrigger);\n curTrigger.revert(true, true);\n }\n if (curTrigger !== _triggers[i3]) {\n triggerIndex--;\n i3--;\n }\n }\n _isFunction(parsedStart) && (parsedStart = parsedStart(self2));\n parsedStart = _parseClamp(parsedStart, \"start\", self2);\n start = _parsePosition(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self2._startClamp && \"_startClamp\") || (pin ? -1e-3 : 0);\n _isFunction(parsedEnd) && (parsedEnd = parsedEnd(self2));\n if (_isString(parsedEnd) && !parsedEnd.indexOf(\"+=\")) {\n if (~parsedEnd.indexOf(\" \")) {\n parsedEnd = (_isString(parsedStart) ? parsedStart.split(\" \")[0] : \"\") + parsedEnd;\n } else {\n offset2 = _offsetToPx(parsedEnd.substr(2), size);\n parsedEnd = _isString(parsedStart) ? parsedStart : (containerAnimation ? gsap$1.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset2;\n parsedEndTrigger = trigger;\n }\n }\n parsedEnd = _parseClamp(parsedEnd, \"end\", self2);\n end = Math.max(start, _parsePosition(parsedEnd || (parsedEndTrigger ? \"100% 0\" : max), parsedEndTrigger, size, direction, scrollFunc() + offset2, markerEnd, markerEndTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self2._endClamp && \"_endClamp\")) || -1e-3;\n offset2 = 0;\n i3 = triggerIndex;\n while (i3--) {\n curTrigger = _triggers[i3];\n curPin = curTrigger.pin;\n if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) {\n cs2 = curTrigger.end - (self2._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start);\n if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) {\n offset2 += cs2 * (1 - curTrigger.progress);\n }\n curPin === pin && (otherPinOffset += cs2);\n }\n }\n start += offset2;\n end += offset2;\n self2._startClamp && (self2._startClamp += offset2);\n if (self2._endClamp && !_refreshingAll) {\n self2._endClamp = end || -1e-3;\n end = Math.min(end, _maxScroll(scroller, direction));\n }\n change = end - start || (start -= 0.01) && 1e-3;\n if (isFirstRefresh) {\n prevProgress = gsap$1.utils.clamp(0, 1, gsap$1.utils.normalize(start, end, prevScroll));\n }\n self2._pinPush = otherPinOffset;\n if (markerStart && offset2) {\n cs2 = {};\n cs2[direction.a] = \"+=\" + offset2;\n pinnedContainer && (cs2[direction.p] = \"-=\" + scrollFunc());\n gsap$1.set([markerStart, markerEnd], cs2);\n }\n if (pin && !(_clampingMax && self2.end >= _maxScroll(scroller, direction))) {\n cs2 = _getComputedStyle(pin);\n isVertical = direction === _vertical;\n scroll = scrollFunc();\n pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset;\n if (!max && end > 1) {\n forcedOverflow = (isViewport ? _doc$1.scrollingElement || _docEl$1 : scroller).style;\n forcedOverflow = {\n style: forcedOverflow,\n value: forcedOverflow[\"overflow\" + direction.a.toUpperCase()]\n };\n if (isViewport && _getComputedStyle(_body$1)[\"overflow\" + direction.a.toUpperCase()] !== \"scroll\") {\n forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = \"scroll\";\n }\n }\n _swapPinIn(pin, spacer, cs2);\n pinState = _getState(pin);\n bounds = _getBounds(pin, true);\n oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)();\n if (pinSpacing) {\n spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px];\n spacerState.t = spacer;\n i3 = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0;\n if (i3) {\n spacerState.push(direction.d, i3 + _px);\n spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i3 + _px);\n }\n _setState(spacerState);\n if (pinnedContainer) {\n _triggers.forEach(function(t2) {\n if (t2.pin === pinnedContainer && t2.vars.pinSpacing !== false) {\n t2._subPinOffset = true;\n }\n });\n }\n useFixedPosition && scrollFunc(prevScroll);\n } else {\n i3 = _getSize(pin, direction);\n i3 && spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i3 + _px);\n }\n if (useFixedPosition) {\n override = {\n top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px,\n left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px,\n boxSizing: \"border-box\",\n position: \"fixed\"\n };\n override[_width] = override[\"max\" + _Width] = Math.ceil(bounds.width) + _px;\n override[_height] = override[\"max\" + _Height] = Math.ceil(bounds.height) + _px;\n override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = \"0\";\n override[_padding] = cs2[_padding];\n override[_padding + _Top] = cs2[_padding + _Top];\n override[_padding + _Right] = cs2[_padding + _Right];\n override[_padding + _Bottom] = cs2[_padding + _Bottom];\n override[_padding + _Left] = cs2[_padding + _Left];\n pinActiveState = _copyState(pinOriginalState, override, pinReparent);\n _refreshingAll && scrollFunc(0);\n }\n if (animation) {\n initted = animation._initted;\n _suppressOverwrites(1);\n animation.render(animation.duration(), true, true);\n pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset;\n pinMoves = Math.abs(change - pinChange) > 1;\n useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2);\n animation.render(0, true, true);\n initted || animation.invalidate(true);\n animation.parent || animation.totalTime(animation.totalTime());\n _suppressOverwrites(0);\n } else {\n pinChange = change;\n }\n forcedOverflow && (forcedOverflow.value ? forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty(\"overflow-\" + direction.a));\n } else if (trigger && scrollFunc() && !containerAnimation) {\n bounds = trigger.parentNode;\n while (bounds && bounds !== _body$1) {\n if (bounds._pinOffset) {\n start -= bounds._pinOffset;\n end -= bounds._pinOffset;\n }\n bounds = bounds.parentNode;\n }\n }\n revertedPins && revertedPins.forEach(function(t2) {\n return t2.revert(false, true);\n });\n self2.start = start;\n self2.end = end;\n scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc();\n if (!containerAnimation && !_refreshingAll) {\n scroll1 < prevScroll && scrollFunc(prevScroll);\n self2.scroll.rec = 0;\n }\n self2.revert(false, true);\n lastRefresh = _getTime$1();\n if (snapDelayedCall) {\n lastSnap = -1;\n snapDelayedCall.restart(true);\n }\n _refreshing = 0;\n animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true);\n if (isFirstRefresh || prevProgress !== self2.progress || containerAnimation || invalidateOnRefresh) {\n animation && !isToggle && animation.totalProgress(containerAnimation && start < -1e-3 && !prevProgress ? gsap$1.utils.normalize(start, end, 0) : prevProgress, true);\n self2.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress;\n }\n pin && pinSpacing && (spacer._pinOffset = Math.round(self2.progress * pinChange));\n scrubTween && scrubTween.invalidate();\n if (!isNaN(markerStartOffset)) {\n markerStartOffset -= gsap$1.getProperty(markerStartTrigger, direction.p);\n markerEndOffset -= gsap$1.getProperty(markerEndTrigger, direction.p);\n _shiftMarker(markerStartTrigger, direction, markerStartOffset);\n _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0));\n _shiftMarker(markerEndTrigger, direction, markerEndOffset);\n _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0));\n }\n isFirstRefresh && !_refreshingAll && self2.update();\n if (onRefresh && !_refreshingAll && !executingOnRefresh) {\n executingOnRefresh = true;\n onRefresh(self2);\n executingOnRefresh = false;\n }\n };\n self2.getVelocity = function() {\n return (scrollFunc() - scroll2) / (_getTime$1() - _time2) * 1e3 || 0;\n };\n self2.endAnimation = function() {\n _endAnimation(self2.callbackAnimation);\n if (animation) {\n scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self2.direction < 0, 1);\n }\n };\n self2.labelToScroll = function(label) {\n return animation && animation.labels && (start || self2.refresh() || start) + animation.labels[label] / animation.duration() * change || 0;\n };\n self2.getTrailing = function(name) {\n var i3 = _triggers.indexOf(self2), a = self2.direction > 0 ? _triggers.slice(0, i3).reverse() : _triggers.slice(i3 + 1);\n return (_isString(name) ? a.filter(function(t2) {\n return t2.vars.preventOverlaps === name;\n }) : a).filter(function(t2) {\n return self2.direction > 0 ? t2.end <= start : t2.start >= end;\n });\n };\n self2.update = function(reset, recordVelocity, forceFake) {\n if (containerAnimation && !forceFake && !reset) {\n return;\n }\n var scroll = _refreshingAll === true ? prevScroll : self2.scroll(), p = reset ? 0 : (scroll - start) / change, clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0, prevProgress2 = self2.progress, isActive, wasActive, toggleState, action, stateChanged, toggled, isAtMax, isTakingAction;\n if (recordVelocity) {\n scroll2 = scroll1;\n scroll1 = containerAnimation ? scrollFunc() : scroll;\n if (snap) {\n snap2 = snap1;\n snap1 = animation && !isToggle ? animation.totalProgress() : clipped;\n }\n }\n if (anticipatePin && pin && !_refreshing && !_startup$1 && _lastScrollTime) {\n if (!clipped && start < scroll + (scroll - scroll2) / (_getTime$1() - _time2) * anticipatePin) {\n clipped = 1e-4;\n } else if (clipped === 1 && end > scroll + (scroll - scroll2) / (_getTime$1() - _time2) * anticipatePin) {\n clipped = 0.9999;\n }\n }\n if (clipped !== prevProgress2 && self2.enabled) {\n isActive = self2.isActive = !!clipped && clipped < 1;\n wasActive = !!prevProgress2 && prevProgress2 < 1;\n toggled = isActive !== wasActive;\n stateChanged = toggled || !!clipped !== !!prevProgress2;\n self2.direction = clipped > prevProgress2 ? 1 : -1;\n self2.progress = clipped;\n if (stateChanged && !_refreshing) {\n toggleState = clipped && !prevProgress2 ? 0 : clipped === 1 ? 1 : prevProgress2 === 1 ? 2 : 3;\n if (isToggle) {\n action = !toggled && toggleActions[toggleState + 1] !== \"none\" && toggleActions[toggleState + 1] || toggleActions[toggleState];\n isTakingAction = animation && (action === \"complete\" || action === \"reset\" || action in animation);\n }\n }\n preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction(preventOverlaps) ? preventOverlaps(self2) : self2.getTrailing(preventOverlaps).forEach(function(t2) {\n return t2.endAnimation();\n }));\n if (!isToggle) {\n if (scrubTween && !_refreshing && !_startup$1) {\n scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start);\n if (scrubTween.resetTo) {\n scrubTween.resetTo(\"totalProgress\", clipped, animation._tTime / animation._tDur);\n } else {\n scrubTween.vars.totalProgress = clipped;\n scrubTween.invalidate().restart();\n }\n } else if (animation) {\n animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset)));\n }\n }\n if (pin) {\n reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart);\n if (!useFixedPosition) {\n pinSetter(_round(pinStart + pinChange * clipped));\n } else if (stateChanged) {\n isAtMax = !reset && clipped > prevProgress2 && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction);\n if (pinReparent) {\n if (!reset && (isActive || isAtMax)) {\n var bounds = _getBounds(pin, true), _offset = scroll - start;\n _reparent(pin, _body$1, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px);\n } else {\n _reparent(pin, spacer);\n }\n }\n _setState(isActive || isAtMax ? pinActiveState : pinState);\n pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0));\n }\n }\n snap && !tweenTo.tween && !_refreshing && !_startup$1 && snapDelayedCall.restart(true);\n toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function(el) {\n return el.classList[isActive || once ? \"add\" : \"remove\"](toggleClass.className);\n });\n onUpdate && !isToggle && !reset && onUpdate(self2);\n if (stateChanged && !_refreshing) {\n if (isToggle) {\n if (isTakingAction) {\n if (action === \"complete\") {\n animation.pause().totalProgress(1);\n } else if (action === \"reset\") {\n animation.restart(true).pause();\n } else if (action === \"restart\") {\n animation.restart(true);\n } else {\n animation[action]();\n }\n }\n onUpdate && onUpdate(self2);\n }\n if (toggled || !_limitCallbacks) {\n onToggle && toggled && _callback(self2, onToggle);\n callbacks[toggleState] && _callback(self2, callbacks[toggleState]);\n once && (clipped === 1 ? self2.kill(false, 1) : callbacks[toggleState] = 0);\n if (!toggled) {\n toggleState = clipped === 1 ? 1 : 3;\n callbacks[toggleState] && _callback(self2, callbacks[toggleState]);\n }\n }\n if (fastScrollEnd && !isActive && Math.abs(self2.getVelocity()) > (_isNumber(fastScrollEnd) ? fastScrollEnd : 2500)) {\n _endAnimation(self2.callbackAnimation);\n scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === \"reverse\" ? 1 : !clipped, 1);\n }\n } else if (isToggle && onUpdate && !_refreshing) {\n onUpdate(self2);\n }\n }\n if (markerEndSetter) {\n var n2 = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll;\n markerStartSetter(n2 + (markerStartTrigger._isFlipped ? 1 : 0));\n markerEndSetter(n2);\n }\n caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0));\n };\n self2.enable = function(reset, refresh) {\n if (!self2.enabled) {\n self2.enabled = true;\n _addListener$1(scroller, \"resize\", _onResize);\n isViewport || _addListener$1(scroller, \"scroll\", _onScroll$1);\n onRefreshInit && _addListener$1(ScrollTrigger3, \"refreshInit\", onRefreshInit);\n if (reset !== false) {\n self2.progress = prevProgress = 0;\n scroll1 = scroll2 = lastSnap = scrollFunc();\n }\n refresh !== false && self2.refresh();\n }\n };\n self2.getTween = function(snap3) {\n return snap3 && tweenTo ? tweenTo.tween : scrubTween;\n };\n self2.setPositions = function(newStart, newEnd, keepClamp, pinOffset) {\n if (containerAnimation) {\n var st = containerAnimation.scrollTrigger, duration = containerAnimation.duration(), _change = st.end - st.start;\n newStart = st.start + _change * newStart / duration;\n newEnd = st.start + _change * newEnd / duration;\n }\n self2.refresh(false, false, {\n start: _keepClamp(newStart, keepClamp && !!self2._startClamp),\n end: _keepClamp(newEnd, keepClamp && !!self2._endClamp)\n }, pinOffset);\n self2.update();\n };\n self2.adjustPinSpacing = function(amount) {\n if (spacerState && amount) {\n var i3 = spacerState.indexOf(direction.d) + 1;\n spacerState[i3] = parseFloat(spacerState[i3]) + amount + _px;\n spacerState[1] = parseFloat(spacerState[1]) + amount + _px;\n _setState(spacerState);\n }\n };\n self2.disable = function(reset, allowAnimation) {\n if (self2.enabled) {\n reset !== false && self2.revert(true, true);\n self2.enabled = self2.isActive = false;\n allowAnimation || scrubTween && scrubTween.pause();\n prevScroll = 0;\n pinCache && (pinCache.uncache = 1);\n onRefreshInit && _removeListener$1(ScrollTrigger3, \"refreshInit\", onRefreshInit);\n if (snapDelayedCall) {\n snapDelayedCall.pause();\n tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0);\n }\n if (!isViewport) {\n var i3 = _triggers.length;\n while (i3--) {\n if (_triggers[i3].scroller === scroller && _triggers[i3] !== self2) {\n return;\n }\n }\n _removeListener$1(scroller, \"resize\", _onResize);\n isViewport || _removeListener$1(scroller, \"scroll\", _onScroll$1);\n }\n }\n };\n self2.kill = function(revert, allowAnimation) {\n self2.disable(revert, allowAnimation);\n scrubTween && !allowAnimation && scrubTween.kill();\n id && delete _ids[id];\n var i3 = _triggers.indexOf(self2);\n i3 >= 0 && _triggers.splice(i3, 1);\n i3 === _i && _direction > 0 && _i--;\n i3 = 0;\n _triggers.forEach(function(t2) {\n return t2.scroller === self2.scroller && (i3 = 1);\n });\n i3 || _refreshingAll || (self2.scroll.rec = 0);\n if (animation) {\n animation.scrollTrigger = null;\n revert && animation.revert({\n kill: false\n });\n allowAnimation || animation.kill();\n }\n markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m) {\n return m.parentNode && m.parentNode.removeChild(m);\n });\n _primary === self2 && (_primary = 0);\n if (pin) {\n pinCache && (pinCache.uncache = 1);\n i3 = 0;\n _triggers.forEach(function(t2) {\n return t2.pin === pin && i3++;\n });\n i3 || (pinCache.spacer = 0);\n }\n vars.onKill && vars.onKill(self2);\n };\n _triggers.push(self2);\n self2.enable(false, false);\n customRevertReturn && customRevertReturn(self2);\n if (animation && animation.add && !change) {\n var updateFunc = self2.update;\n self2.update = function() {\n self2.update = updateFunc;\n start || end || self2.refresh();\n };\n gsap$1.delayedCall(0.01, self2.update);\n change = 0.01;\n start = end = 0;\n } else {\n self2.refresh();\n }\n pin && _queueRefreshAll();\n };\n ScrollTrigger3.register = function register(core) {\n if (!_coreInitted$1) {\n gsap$1 = core || _getGSAP$1();\n _windowExists() && window.document && ScrollTrigger3.enable();\n _coreInitted$1 = _enabled;\n }\n return _coreInitted$1;\n };\n ScrollTrigger3.defaults = function defaults(config) {\n if (config) {\n for (var p in config) {\n _defaults[p] = config[p];\n }\n }\n return _defaults;\n };\n ScrollTrigger3.disable = function disable(reset, kill) {\n _enabled = 0;\n _triggers.forEach(function(trigger) {\n return trigger[kill ? \"kill\" : \"disable\"](reset);\n });\n _removeListener$1(_win$1, \"wheel\", _onScroll$1);\n _removeListener$1(_doc$1, \"scroll\", _onScroll$1);\n clearInterval(_syncInterval);\n _removeListener$1(_doc$1, \"touchcancel\", _passThrough);\n _removeListener$1(_body$1, \"touchstart\", _passThrough);\n _multiListener(_removeListener$1, _doc$1, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n _multiListener(_removeListener$1, _doc$1, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n _resizeDelay.kill();\n _iterateAutoRefresh(_removeListener$1);\n for (var i3 = 0; i3 < _scrollers.length; i3 += 3) {\n _wheelListener(_removeListener$1, _scrollers[i3], _scrollers[i3 + 1]);\n _wheelListener(_removeListener$1, _scrollers[i3], _scrollers[i3 + 2]);\n }\n };\n ScrollTrigger3.enable = function enable() {\n _win$1 = window;\n _doc$1 = document;\n _docEl$1 = _doc$1.documentElement;\n _body$1 = _doc$1.body;\n if (gsap$1) {\n _toArray = gsap$1.utils.toArray;\n _clamp$1 = gsap$1.utils.clamp;\n _context$1 = gsap$1.core.context || _passThrough;\n _suppressOverwrites = gsap$1.core.suppressOverwrites || _passThrough;\n _scrollRestoration = _win$1.history.scrollRestoration || \"auto\";\n _lastScroll = _win$1.pageYOffset;\n gsap$1.core.globals(\"ScrollTrigger\", ScrollTrigger3);\n if (_body$1) {\n _enabled = 1;\n _div100vh = document.createElement(\"div\");\n _div100vh.style.height = \"100vh\";\n _div100vh.style.position = \"absolute\";\n _refresh100vh();\n _rafBugFix();\n Observer.register(gsap$1);\n ScrollTrigger3.isTouch = Observer.isTouch;\n _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent);\n _ignoreMobileResize = Observer.isTouch === 1;\n _addListener$1(_win$1, \"wheel\", _onScroll$1);\n _root$1 = [_win$1, _doc$1, _docEl$1, _body$1];\n if (gsap$1.matchMedia) {\n ScrollTrigger3.matchMedia = function(vars) {\n var mm = gsap$1.matchMedia(), p;\n for (p in vars) {\n mm.add(p, vars[p]);\n }\n return mm;\n };\n gsap$1.addEventListener(\"matchMediaInit\", function() {\n return _revertAll();\n });\n gsap$1.addEventListener(\"matchMediaRevert\", function() {\n return _revertRecorded();\n });\n gsap$1.addEventListener(\"matchMedia\", function() {\n _refreshAll(0, 1);\n _dispatch(\"matchMedia\");\n });\n gsap$1.matchMedia(\"(orientation: portrait)\", function() {\n _setBaseDimensions();\n return _setBaseDimensions;\n });\n } else {\n console.warn(\"Requires GSAP 3.11.0 or later\");\n }\n _setBaseDimensions();\n _addListener$1(_doc$1, \"scroll\", _onScroll$1);\n var bodyStyle = _body$1.style, border = bodyStyle.borderTopStyle, AnimationProto = gsap$1.core.Animation.prototype, bounds, i3;\n AnimationProto.revert || Object.defineProperty(AnimationProto, \"revert\", {\n value: function value() {\n return this.time(-0.01, true);\n }\n });\n bodyStyle.borderTopStyle = \"solid\";\n bounds = _getBounds(_body$1);\n _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0;\n _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0;\n border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty(\"border-top-style\");\n _syncInterval = setInterval(_sync, 250);\n gsap$1.delayedCall(0.5, function() {\n return _startup$1 = 0;\n });\n _addListener$1(_doc$1, \"touchcancel\", _passThrough);\n _addListener$1(_body$1, \"touchstart\", _passThrough);\n _multiListener(_addListener$1, _doc$1, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n _multiListener(_addListener$1, _doc$1, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n _transformProp = gsap$1.utils.checkPrefix(\"transform\");\n _stateProps.push(_transformProp);\n _coreInitted$1 = _getTime$1();\n _resizeDelay = gsap$1.delayedCall(0.2, _refreshAll).pause();\n _autoRefresh = [_doc$1, \"visibilitychange\", function() {\n var w = _win$1.innerWidth, h2 = _win$1.innerHeight;\n if (_doc$1.hidden) {\n _prevWidth = w;\n _prevHeight = h2;\n } else if (_prevWidth !== w || _prevHeight !== h2) {\n _onResize();\n }\n }, _doc$1, \"DOMContentLoaded\", _refreshAll, _win$1, \"load\", _refreshAll, _win$1, \"resize\", _onResize];\n _iterateAutoRefresh(_addListener$1);\n _triggers.forEach(function(trigger) {\n return trigger.enable(0, 1);\n });\n for (i3 = 0; i3 < _scrollers.length; i3 += 3) {\n _wheelListener(_removeListener$1, _scrollers[i3], _scrollers[i3 + 1]);\n _wheelListener(_removeListener$1, _scrollers[i3], _scrollers[i3 + 2]);\n }\n }\n }\n };\n ScrollTrigger3.config = function config(vars) {\n \"limitCallbacks\" in vars && (_limitCallbacks = !!vars.limitCallbacks);\n var ms = vars.syncInterval;\n ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms);\n \"ignoreMobileResize\" in vars && (_ignoreMobileResize = ScrollTrigger3.isTouch === 1 && vars.ignoreMobileResize);\n if (\"autoRefreshEvents\" in vars) {\n _iterateAutoRefresh(_removeListener$1) || _iterateAutoRefresh(_addListener$1, vars.autoRefreshEvents || \"none\");\n _ignoreResize = (vars.autoRefreshEvents + \"\").indexOf(\"resize\") === -1;\n }\n };\n ScrollTrigger3.scrollerProxy = function scrollerProxy(target, vars) {\n var t2 = _getTarget(target), i3 = _scrollers.indexOf(t2), isViewport = _isViewport$1(t2);\n if (~i3) {\n _scrollers.splice(i3, isViewport ? 6 : 2);\n }\n if (vars) {\n isViewport ? _proxies.unshift(_win$1, vars, _body$1, vars, _docEl$1, vars) : _proxies.unshift(t2, vars);\n }\n };\n ScrollTrigger3.clearMatchMedia = function clearMatchMedia(query) {\n _triggers.forEach(function(t2) {\n return t2._ctx && t2._ctx.query === query && t2._ctx.kill(true, true);\n });\n };\n ScrollTrigger3.isInViewport = function isInViewport(element, ratio, horizontal) {\n var bounds = (_isString(element) ? _getTarget(element) : element).getBoundingClientRect(), offset = bounds[horizontal ? _width : _height] * ratio || 0;\n return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win$1.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win$1.innerHeight;\n };\n ScrollTrigger3.positionInViewport = function positionInViewport(element, referencePoint, horizontal) {\n _isString(element) && (element = _getTarget(element));\n var bounds = element.getBoundingClientRect(), size = bounds[horizontal ? _width : _height], offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf(\"%\") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0;\n return horizontal ? (bounds.left + offset) / _win$1.innerWidth : (bounds.top + offset) / _win$1.innerHeight;\n };\n ScrollTrigger3.killAll = function killAll(allowListeners) {\n _triggers.slice(0).forEach(function(t2) {\n return t2.vars.id !== \"ScrollSmoother\" && t2.kill();\n });\n if (allowListeners !== true) {\n var listeners = _listeners.killAll || [];\n _listeners = {};\n listeners.forEach(function(f) {\n return f();\n });\n }\n };\n return ScrollTrigger3;\n }();\n ScrollTrigger$1.version = \"3.12.5\";\n ScrollTrigger$1.saveStyles = function(targets) {\n return targets ? _toArray(targets).forEach(function(target) {\n if (target && target.style) {\n var i3 = _savedStyles.indexOf(target);\n i3 >= 0 && _savedStyles.splice(i3, 5);\n _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute(\"transform\"), gsap$1.core.getCache(target), _context$1());\n }\n }) : _savedStyles;\n };\n ScrollTrigger$1.revert = function(soft, media) {\n return _revertAll(!soft, media);\n };\n ScrollTrigger$1.create = function(vars, animation) {\n return new ScrollTrigger$1(vars, animation);\n };\n ScrollTrigger$1.refresh = function(safe) {\n return safe ? _onResize() : (_coreInitted$1 || ScrollTrigger$1.register()) && _refreshAll(true);\n };\n ScrollTrigger$1.update = function(force) {\n return ++_scrollers.cache && _updateAll(force === true ? 2 : 0);\n };\n ScrollTrigger$1.clearScrollMemory = _clearScrollMemory;\n ScrollTrigger$1.maxScroll = function(element, horizontal) {\n return _maxScroll(element, horizontal ? _horizontal : _vertical);\n };\n ScrollTrigger$1.getScrollFunc = function(element, horizontal) {\n return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical);\n };\n ScrollTrigger$1.getById = function(id) {\n return _ids[id];\n };\n ScrollTrigger$1.getAll = function() {\n return _triggers.filter(function(t2) {\n return t2.vars.id !== \"ScrollSmoother\";\n });\n };\n ScrollTrigger$1.isScrolling = function() {\n return !!_lastScrollTime;\n };\n ScrollTrigger$1.snapDirectional = _snapDirectional;\n ScrollTrigger$1.addEventListener = function(type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n };\n ScrollTrigger$1.removeEventListener = function(type, callback) {\n var a = _listeners[type], i3 = a && a.indexOf(callback);\n i3 >= 0 && a.splice(i3, 1);\n };\n ScrollTrigger$1.batch = function(targets, vars) {\n var result = [], varsCopy = {}, interval = vars.interval || 0.016, batchMax = vars.batchMax || 1e9, proxyCallback = function proxyCallback2(type, callback) {\n var elements = [], triggers = [], delay = gsap$1.delayedCall(interval, function() {\n callback(elements, triggers);\n elements = [];\n triggers = [];\n }).pause();\n return function(self2) {\n elements.length || delay.restart(true);\n elements.push(self2.trigger);\n triggers.push(self2);\n batchMax <= elements.length && delay.progress(1);\n };\n }, p;\n for (p in vars) {\n varsCopy[p] = p.substr(0, 2) === \"on\" && _isFunction(vars[p]) && p !== \"onRefreshInit\" ? proxyCallback(p, vars[p]) : vars[p];\n }\n if (_isFunction(batchMax)) {\n batchMax = batchMax();\n _addListener$1(ScrollTrigger$1, \"refresh\", function() {\n return batchMax = vars.batchMax();\n });\n }\n _toArray(targets).forEach(function(target) {\n var config = {};\n for (p in varsCopy) {\n config[p] = varsCopy[p];\n }\n config.trigger = target;\n result.push(ScrollTrigger$1.create(config));\n });\n return result;\n };\n var _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier2(scrollFunc, current, end, max) {\n current > max ? scrollFunc(max) : current < 0 && scrollFunc(0);\n return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1;\n }, _allowNativePanning = function _allowNativePanning2(target, direction) {\n if (direction === true) {\n target.style.removeProperty(\"touch-action\");\n } else {\n target.style.touchAction = direction === true ? \"auto\" : direction ? \"pan-\" + direction + (Observer.isTouch ? \" pinch-zoom\" : \"\") : \"none\";\n }\n target === _docEl$1 && _allowNativePanning2(_body$1, direction);\n }, _overflow = {\n auto: 1,\n scroll: 1\n }, _nestedScroll = function _nestedScroll2(_ref5) {\n var event = _ref5.event, target = _ref5.target, axis = _ref5.axis;\n var node = (event.changedTouches ? event.changedTouches[0] : event).target, cache = node._gsap || gsap$1.core.getCache(node), time = _getTime$1(), cs;\n if (!cache._isScrollT || time - cache._isScrollT > 2e3) {\n while (node && node !== _body$1 && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) {\n node = node.parentNode;\n }\n cache._isScroll = node && node !== target && !_isViewport$1(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]);\n cache._isScrollT = time;\n }\n if (cache._isScroll || axis === \"x\") {\n event.stopPropagation();\n event._gsapAllow = true;\n }\n }, _inputObserver = function _inputObserver2(target, type, inputs, nested) {\n return Observer.create({\n target,\n capture: true,\n debounce: false,\n lockAxis: true,\n type,\n onWheel: nested = nested && _nestedScroll,\n onPress: nested,\n onDrag: nested,\n onScroll: nested,\n onEnable: function onEnable() {\n return inputs && _addListener$1(_doc$1, Observer.eventTypes[0], _captureInputs, false, true);\n },\n onDisable: function onDisable() {\n return _removeListener$1(_doc$1, Observer.eventTypes[0], _captureInputs, true);\n }\n });\n }, _inputExp = /(input|label|select|textarea)/i, _inputIsFocused, _captureInputs = function _captureInputs2(e) {\n var isInput = _inputExp.test(e.target.tagName);\n if (isInput || _inputIsFocused) {\n e._gsapAllow = true;\n _inputIsFocused = isInput;\n }\n }, _getScrollNormalizer = function _getScrollNormalizer2(vars) {\n _isObject(vars) || (vars = {});\n vars.preventDefault = vars.isNormalizer = vars.allowClicks = true;\n vars.type || (vars.type = \"wheel,touch\");\n vars.debounce = !!vars.debounce;\n vars.id = vars.id || \"normalizer\";\n var _vars2 = vars, normalizeScrollX = _vars2.normalizeScrollX, momentum = _vars2.momentum, allowNestedScroll = _vars2.allowNestedScroll, onRelease = _vars2.onRelease, self2, maxY, target = _getTarget(vars.target) || _docEl$1, smoother = gsap$1.core.globals().ScrollSmoother, smootherInstance = smoother && smoother.get(), content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()), scrollFuncY = _getScrollFunc(target, _vertical), scrollFuncX = _getScrollFunc(target, _horizontal), scale = 1, initialScale = (Observer.isTouch && _win$1.visualViewport ? _win$1.visualViewport.scale * _win$1.visualViewport.width : _win$1.outerWidth) / _win$1.innerWidth, wheelRefresh = 0, resolveMomentumDuration = _isFunction(momentum) ? function() {\n return momentum(self2);\n } : function() {\n return momentum || 2.8;\n }, lastRefreshID, skipTouchMove, inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll), resumeTouchMove = function resumeTouchMove2() {\n return skipTouchMove = false;\n }, scrollClampX = _passThrough, scrollClampY = _passThrough, updateClamps = function updateClamps2() {\n maxY = _maxScroll(target, _vertical);\n scrollClampY = _clamp$1(_fixIOSBug ? 1 : 0, maxY);\n normalizeScrollX && (scrollClampX = _clamp$1(0, _maxScroll(target, _horizontal)));\n lastRefreshID = _refreshID;\n }, removeContentOffset = function removeContentOffset2() {\n content._gsap.y = _round(parseFloat(content._gsap.y) + scrollFuncY.offset) + \"px\";\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + parseFloat(content._gsap.y) + \", 0, 1)\";\n scrollFuncY.offset = scrollFuncY.cacheID = 0;\n }, ignoreDrag = function ignoreDrag2() {\n if (skipTouchMove) {\n requestAnimationFrame(resumeTouchMove);\n var offset = _round(self2.deltaY / 2), scroll = scrollClampY(scrollFuncY.v - offset);\n if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) {\n scrollFuncY.offset = scroll - scrollFuncY.v;\n var y = _round((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset);\n content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + y + \", 0, 1)\";\n content._gsap.y = y + \"px\";\n scrollFuncY.cacheID = _scrollers.cache;\n _updateAll();\n }\n return true;\n }\n scrollFuncY.offset && removeContentOffset();\n skipTouchMove = true;\n }, tween, startScrollX, startScrollY, onStopDelayedCall, onResize = function onResize2() {\n updateClamps();\n if (tween.isActive() && tween.vars.scrollY > maxY) {\n scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo(\"scrollY\", maxY);\n }\n };\n content && gsap$1.set(content, {\n y: \"+=0\"\n });\n vars.ignoreCheck = function(e) {\n return _fixIOSBug && e.type === \"touchmove\" && ignoreDrag() || scale > 1.05 && e.type !== \"touchstart\" || self2.isGesturing || e.touches && e.touches.length > 1;\n };\n vars.onPress = function() {\n skipTouchMove = false;\n var prevScale = scale;\n scale = _round((_win$1.visualViewport && _win$1.visualViewport.scale || 1) / initialScale);\n tween.pause();\n prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : \"x\");\n startScrollX = scrollFuncX();\n startScrollY = scrollFuncY();\n updateClamps();\n lastRefreshID = _refreshID;\n };\n vars.onRelease = vars.onGestureStart = function(self3, wasDragging) {\n scrollFuncY.offset && removeContentOffset();\n if (!wasDragging) {\n onStopDelayedCall.restart(true);\n } else {\n _scrollers.cache++;\n var dur = resolveMomentumDuration(), currentScroll, endScroll;\n if (normalizeScrollX) {\n currentScroll = scrollFuncX();\n endScroll = currentScroll + dur * 0.05 * -self3.velocityX / 0.227;\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal));\n tween.vars.scrollX = scrollClampX(endScroll);\n }\n currentScroll = scrollFuncY();\n endScroll = currentScroll + dur * 0.05 * -self3.velocityY / 0.227;\n dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical));\n tween.vars.scrollY = scrollClampY(endScroll);\n tween.invalidate().duration(dur).play(0.01);\n if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) {\n gsap$1.to({}, {\n onUpdate: onResize,\n duration: dur\n });\n }\n }\n onRelease && onRelease(self3);\n };\n vars.onWheel = function() {\n tween._ts && tween.pause();\n if (_getTime$1() - wheelRefresh > 1e3) {\n lastRefreshID = 0;\n wheelRefresh = _getTime$1();\n }\n };\n vars.onChange = function(self3, dx, dy, xArray, yArray) {\n _refreshID !== lastRefreshID && updateClamps();\n dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self3.startX - self3.x) : scrollFuncX() + dx - xArray[1]));\n if (dy) {\n scrollFuncY.offset && removeContentOffset();\n var isTouch = yArray[2] === dy, y = isTouch ? startScrollY + self3.startY - self3.y : scrollFuncY() + dy - yArray[1], yClamped = scrollClampY(y);\n isTouch && y !== yClamped && (startScrollY += yClamped - y);\n scrollFuncY(yClamped);\n }\n (dy || dx) && _updateAll();\n };\n vars.onEnable = function() {\n _allowNativePanning(target, normalizeScrollX ? false : \"x\");\n ScrollTrigger$1.addEventListener(\"refresh\", onResize);\n _addListener$1(_win$1, \"resize\", onResize);\n if (scrollFuncY.smooth) {\n scrollFuncY.target.style.scrollBehavior = \"auto\";\n scrollFuncY.smooth = scrollFuncX.smooth = false;\n }\n inputObserver.enable();\n };\n vars.onDisable = function() {\n _allowNativePanning(target, true);\n _removeListener$1(_win$1, \"resize\", onResize);\n ScrollTrigger$1.removeEventListener(\"refresh\", onResize);\n inputObserver.kill();\n };\n vars.lockAxis = vars.lockAxis !== false;\n self2 = new Observer(vars);\n self2.iOS = _fixIOSBug;\n _fixIOSBug && !scrollFuncY() && scrollFuncY(1);\n _fixIOSBug && gsap$1.ticker.add(_passThrough);\n onStopDelayedCall = self2._dc;\n tween = gsap$1.to(self2, {\n ease: \"power4\",\n paused: true,\n inherit: false,\n scrollX: normalizeScrollX ? \"+=0.1\" : \"+=0\",\n scrollY: \"+=0.1\",\n modifiers: {\n scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function() {\n return tween.pause();\n })\n },\n onUpdate: _updateAll,\n onComplete: onStopDelayedCall.vars.onComplete\n });\n return self2;\n };\n ScrollTrigger$1.sort = function(func) {\n return _triggers.sort(func || function(a, b) {\n return (a.vars.refreshPriority || 0) * -1e6 + a.start - (b.start + (b.vars.refreshPriority || 0) * -1e6);\n });\n };\n ScrollTrigger$1.observe = function(vars) {\n return new Observer(vars);\n };\n ScrollTrigger$1.normalizeScroll = function(vars) {\n if (typeof vars === \"undefined\") {\n return _normalizer$1;\n }\n if (vars === true && _normalizer$1) {\n return _normalizer$1.enable();\n }\n if (vars === false) {\n _normalizer$1 && _normalizer$1.kill();\n _normalizer$1 = vars;\n return;\n }\n var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars);\n _normalizer$1 && _normalizer$1.target === normalizer.target && _normalizer$1.kill();\n _isViewport$1(normalizer.target) && (_normalizer$1 = normalizer);\n return normalizer;\n };\n ScrollTrigger$1.core = {\n _getVelocityProp,\n _inputObserver,\n _scrollers,\n _proxies,\n bridge: {\n ss: function ss() {\n _lastScrollTime || _dispatch(\"scrollStart\");\n _lastScrollTime = _getTime$1();\n },\n ref: function ref() {\n return _refreshing;\n }\n }\n };\n _getGSAP$1() && gsap$1.registerPlugin(ScrollTrigger$1);\n exports2.ScrollTrigger = ScrollTrigger$1;\n exports2.default = ScrollTrigger$1;\n if (typeof window === \"undefined\" || window !== exports2) {\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n } else {\n delete window.default;\n }\n });\n }\n});\n\n// node_modules/countup.js/dist/countUp.min.js\nvar t = function() {\n return t = Object.assign || function(t2) {\n for (var i3, n2 = 1, s = arguments.length; n2 < s; n2++) for (var a in i3 = arguments[n2]) Object.prototype.hasOwnProperty.call(i3, a) && (t2[a] = i3[a]);\n return t2;\n }, t.apply(this, arguments);\n};\nvar i2 = function() {\n function i3(i4, n2, s) {\n var a = this;\n this.endVal = n2, this.options = s, this.version = \"2.8.0\", this.defaults = { startVal: 0, decimalPlaces: 0, duration: 2, useEasing: true, useGrouping: true, useIndianSeparators: false, smartEasingThreshold: 999, smartEasingAmount: 333, separator: \",\", decimal: \".\", prefix: \"\", suffix: \"\", enableScrollSpy: false, scrollSpyDelay: 200, scrollSpyOnce: false }, this.finalEndVal = null, this.useEasing = true, this.countDown = false, this.error = \"\", this.startVal = 0, this.paused = true, this.once = false, this.count = function(t2) {\n a.startTime || (a.startTime = t2);\n var i5 = t2 - a.startTime;\n a.remaining = a.duration - i5, a.useEasing ? a.countDown ? a.frameVal = a.startVal - a.easingFn(i5, 0, a.startVal - a.endVal, a.duration) : a.frameVal = a.easingFn(i5, a.startVal, a.endVal - a.startVal, a.duration) : a.frameVal = a.startVal + (a.endVal - a.startVal) * (i5 / a.duration);\n var n3 = a.countDown ? a.frameVal < a.endVal : a.frameVal > a.endVal;\n a.frameVal = n3 ? a.endVal : a.frameVal, a.frameVal = Number(a.frameVal.toFixed(a.options.decimalPlaces)), a.printValue(a.frameVal), i5 < a.duration ? a.rAF = requestAnimationFrame(a.count) : null !== a.finalEndVal ? a.update(a.finalEndVal) : a.options.onCompleteCallback && a.options.onCompleteCallback();\n }, this.formatNumber = function(t2) {\n var i5, n3, s2, e, o = t2 < 0 ? \"-\" : \"\";\n i5 = Math.abs(t2).toFixed(a.options.decimalPlaces);\n var r3 = (i5 += \"\").split(\".\");\n if (n3 = r3[0], s2 = r3.length > 1 ? a.options.decimal + r3[1] : \"\", a.options.useGrouping) {\n e = \"\";\n for (var l = 3, h2 = 0, u = 0, p = n3.length; u < p; ++u) a.options.useIndianSeparators && 4 === u && (l = 2, h2 = 1), 0 !== u && h2 % l == 0 && (e = a.options.separator + e), h2++, e = n3[p - u - 1] + e;\n n3 = e;\n }\n return a.options.numerals && a.options.numerals.length && (n3 = n3.replace(/[0-9]/g, function(t3) {\n return a.options.numerals[+t3];\n }), s2 = s2.replace(/[0-9]/g, function(t3) {\n return a.options.numerals[+t3];\n })), o + a.options.prefix + n3 + s2 + a.options.suffix;\n }, this.easeOutExpo = function(t2, i5, n3, s2) {\n return n3 * (1 - Math.pow(2, -10 * t2 / s2)) * 1024 / 1023 + i5;\n }, this.options = t(t({}, this.defaults), s), this.formattingFn = this.options.formattingFn ? this.options.formattingFn : this.formatNumber, this.easingFn = this.options.easingFn ? this.options.easingFn : this.easeOutExpo, this.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.endVal = this.validateValue(n2), this.options.decimalPlaces = Math.max(this.options.decimalPlaces), this.resetDuration(), this.options.separator = String(this.options.separator), this.useEasing = this.options.useEasing, \"\" === this.options.separator && (this.options.useGrouping = false), this.el = \"string\" == typeof i4 ? document.getElementById(i4) : i4, this.el ? this.printValue(this.startVal) : this.error = \"[CountUp] target is null or undefined\", \"undefined\" != typeof window && this.options.enableScrollSpy && (this.error ? console.error(this.error, i4) : (window.onScrollFns = window.onScrollFns || [], window.onScrollFns.push(function() {\n return a.handleScroll(a);\n }), window.onscroll = function() {\n window.onScrollFns.forEach(function(t2) {\n return t2();\n });\n }, this.handleScroll(this)));\n }\n return i3.prototype.handleScroll = function(t2) {\n if (t2 && window && !t2.once) {\n var i4 = window.innerHeight + window.scrollY, n2 = t2.el.getBoundingClientRect(), s = n2.top + window.pageYOffset, a = n2.top + n2.height + window.pageYOffset;\n a < i4 && a > window.scrollY && t2.paused ? (t2.paused = false, setTimeout(function() {\n return t2.start();\n }, t2.options.scrollSpyDelay), t2.options.scrollSpyOnce && (t2.once = true)) : (window.scrollY > a || s > i4) && !t2.paused && t2.reset();\n }\n }, i3.prototype.determineDirectionAndSmartEasing = function() {\n var t2 = this.finalEndVal ? this.finalEndVal : this.endVal;\n this.countDown = this.startVal > t2;\n var i4 = t2 - this.startVal;\n if (Math.abs(i4) > this.options.smartEasingThreshold && this.options.useEasing) {\n this.finalEndVal = t2;\n var n2 = this.countDown ? 1 : -1;\n this.endVal = t2 + n2 * this.options.smartEasingAmount, this.duration = this.duration / 2;\n } else this.endVal = t2, this.finalEndVal = null;\n null !== this.finalEndVal ? this.useEasing = false : this.useEasing = this.options.useEasing;\n }, i3.prototype.start = function(t2) {\n this.error || (this.options.onStartCallback && this.options.onStartCallback(), t2 && (this.options.onCompleteCallback = t2), this.duration > 0 ? (this.determineDirectionAndSmartEasing(), this.paused = false, this.rAF = requestAnimationFrame(this.count)) : this.printValue(this.endVal));\n }, i3.prototype.pauseResume = function() {\n this.paused ? (this.startTime = null, this.duration = this.remaining, this.startVal = this.frameVal, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count)) : cancelAnimationFrame(this.rAF), this.paused = !this.paused;\n }, i3.prototype.reset = function() {\n cancelAnimationFrame(this.rAF), this.paused = true, this.resetDuration(), this.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.printValue(this.startVal);\n }, i3.prototype.update = function(t2) {\n cancelAnimationFrame(this.rAF), this.startTime = null, this.endVal = this.validateValue(t2), this.endVal !== this.frameVal && (this.startVal = this.frameVal, null == this.finalEndVal && this.resetDuration(), this.finalEndVal = null, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count));\n }, i3.prototype.printValue = function(t2) {\n var i4;\n if (this.el) {\n var n2 = this.formattingFn(t2);\n if (null === (i4 = this.options.plugin) || void 0 === i4 ? void 0 : i4.render) this.options.plugin.render(this.el, n2);\n else if (\"INPUT\" === this.el.tagName) this.el.value = n2;\n else \"text\" === this.el.tagName || \"tspan\" === this.el.tagName ? this.el.textContent = n2 : this.el.innerHTML = n2;\n }\n }, i3.prototype.ensureNumber = function(t2) {\n return \"number\" == typeof t2 && !isNaN(t2);\n }, i3.prototype.validateValue = function(t2) {\n var i4 = Number(t2);\n return this.ensureNumber(i4) ? i4 : (this.error = \"[CountUp] invalid start or end value: \".concat(t2), null);\n }, i3.prototype.resetDuration = function() {\n this.startTime = null, this.duration = 1e3 * Number(this.options.duration), this.remaining = this.duration;\n }, i3;\n}();\n\n// src/components/jb-key-figures/jb-key-figures.ts\nvar import_ScrollTrigger = __toESM(require_ScrollTrigger(), 1);\n\n// src/components/jb-key-figures/jb-key-figures.scss?inline\nvar jb_key_figures_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.unit, .info-wrap, .number-suffix {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.number {\n font-family: var(--theme-font-xlight-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-xlight-weight, 200);\n}\n\n.info-wrap, .number-suffix {\n font-size: var(--theme-typo-p-small-desktop-fontsize, 1rem);\n line-height: var(--theme-typo-p-small-desktop-lineheight, 1.625rem);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\njb-section-headline {\n display: block;\n margin-block: 60px;\n}\n@media (min-width: 960px) {\n jb-section-headline {\n margin-block: 68px;\n }\n}\n\n.figures {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n justify-content: center;\n}\n\n.figure {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 20px;\n width: 100%;\n align-items: center;\n display: flex;\n justify-content: center;\n margin-bottom: 24px;\n width: 100%;\n}\n@media (min-width: 600px) {\n .figure {\n box-sizing: border-box;\n flex-basis: 50%;\n max-width: 50%;\n padding: 0 20px;\n width: 50%;\n margin-bottom: 44px;\n }\n}\n@media (min-width: 960px) {\n .figure {\n box-sizing: border-box;\n flex-basis: 33.3333333333%;\n max-width: 33.3333333333%;\n padding: 0 20px;\n width: 33.3333333333%;\n }\n}\n\n.figure-box {\n align-items: center;\n background-color: white;\n display: flex;\n height: 100%;\n padding: 32px 0;\n width: 100%;\n}\n\n.figure-content {\n margin: 0 auto;\n padding: 0 16px;\n}\n\n.number {\n color: #141e55;\n font-size: 2.313rem;\n line-height: 2.25rem;\n}\n@media (min-width: 1281px) {\n .number {\n font-size: 3.125rem;\n }\n}\n\n.unit {\n color: #141e55;\n font-size: 1.313rem;\n}\n@media (min-width: 1281px) {\n .unit {\n font-size: 1.5rem;\n }\n}\n\n.number-suffix {\n color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n}\n\n.info-wrap {\n color: #141e55;\n line-height: normal;\n margin-block-start: 8px;\n padding-inline-start: 8px;\n}\n\n.info-two {\n color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n}`;\n\n// src/components/jb-key-figures/jb-key-figures.ts\nvar JbKeyFigures = class extends ChangesBackgroundColor(Spaceable(h)) {\n firstUpdated() {\n gsapWithCSS.registerPlugin(import_ScrollTrigger.ScrollTrigger);\n this._numbers?.forEach((numberElement) => {\n const format = numberElement.dataset.format === \"true\" ? \",\" : \"\";\n const targetValue = parseFloat(numberElement.innerText);\n numberElement.innerText = \"0\";\n const isInt = targetValue % 1 === 0;\n const decimalPlaces = isInt ? 0 : targetValue.toString().split(\".\")[1].length;\n import_ScrollTrigger.ScrollTrigger.create({\n trigger: numberElement,\n onToggle: (self2) => {\n new i2(numberElement, targetValue, { decimalPlaces, duration: 1, separator: format }).start();\n self2.disable();\n }\n });\n });\n }\n _getContentSpacingProperties() {\n return { colsMdUp: \"none\", type: \"no-vertical-space\" };\n }\n render() {\n return ke`\n \n ${this.headline && ke` `}\n \n \n `;\n }\n};\nJbKeyFigures.styles = r(jb_key_figures_default);\n__decorateClass([\n n({ type: Array })\n], JbKeyFigures.prototype, \"figures\", 2);\n__decorateClass([\n n()\n], JbKeyFigures.prototype, \"headline\", 2);\n__decorateClass([\n r2(\"span.number\")\n], JbKeyFigures.prototype, \"_numbers\", 2);\nJbKeyFigures = __decorateClass([\n customElement(\"jb-key-figures\")\n], JbKeyFigures);\n\nexport {\n JbKeyFigures\n};\n/*! Bundled license information:\n\ngsap/dist/ScrollTrigger.js:\n (*!\n * Observer 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n *)\n (*!\n * ScrollTrigger 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n *)\n*/\n", "import {\n Linkable,\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-image-page-teaser-item/jb-image-page-teaser-item.scss?inline\nvar jb_image_page_teaser_item_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh3 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh3 {\n font-size: var(--theme-typo-h3-mobile-fontsize, 1.375rem);\n line-height: var(--theme-typo-h3-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n h3 {\n font-size: var(--theme-typo-h3-desktop-fontsize, 1.625rem);\n line-height: var(--theme-typo-h3-desktop-lineheight, 2.25rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\n.col {\n padding: 0;\n position: relative;\n width: 100%;\n}\n\n.aspect_3by2 {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n.aspect_3by2 > *,\n.aspect_3by2 iframe {\n height: 100%;\n inset: 0;\n position: absolute;\n width: 100%;\n}\n.aspect_3by2::before {\n content: \"\";\n display: block;\n height: 0;\n padding-bottom: calc(1 / 1 * 100%);\n position: relative;\n width: 100%;\n}\n@media (min-width: 960px) {\n .aspect_3by2 {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n }\n .aspect_3by2 > *,\n .aspect_3by2 iframe {\n height: 100%;\n inset: 0;\n position: absolute;\n width: 100%;\n }\n .aspect_3by2::before {\n content: \"\";\n display: block;\n height: 0;\n padding-bottom: calc(2 / 3 * 100%);\n position: relative;\n width: 100%;\n }\n}\n\n.inner {\n height: 100%;\n min-height: 160px;\n overflow: hidden;\n width: 100%;\n --rgb-primary: 255, 255, 255;\n}\n@media (hover: hover) and (pointer: fine) {\n .inner:hover .bg {\n transform: scale(1.15);\n }\n .inner:hover .content {\n background-color: rgba(0, 0, 0, 0.4);\n }\n}\n\n.bg {\n inset: 0;\n position: absolute;\n transition: all 300ms ease-in-out;\n}\n\n.content {\n align-items: start;\n background-color: rgba(0, 0, 0, 0.4);\n display: flex;\n flex-direction: column;\n inset: 0;\n justify-content: flex-end;\n padding: 30px;\n position: absolute;\n transition: all 300ms ease-in-out;\n}\n@media (min-width: 600px) {\n .content {\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.4) 100%);\n }\n}\n\nh3 {\n color: #fff;\n margin-bottom: 8px;\n transition: all 200ms ease-out 100ms;\n}\n@media (min-width: 600px) {\n h3 {\n bottom: 70px;\n left: 30px;\n margin-bottom: 0;\n position: absolute;\n width: calc(100% - 60px);\n }\n}\n\njb-picture {\n height: 100%;\n}`;\n\n// src/components/jb-image-page-teaser-item/jb-image-page-teaser-item.ts\nvar JbImagePageTeaserItem = class extends Linkable(h) {\n constructor() {\n super(...arguments);\n this._hovering = false;\n }\n _hoverLinkIn() {\n this._hovering = true;\n }\n _hoverLinkOut() {\n this._hovering = false;\n }\n _tracking(e) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e, {\n component_name: \"image-page-teaser\"\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n render() {\n return ke`\n \n \n
\n
\n ${ke` `}\n
\n
\n
${this.headline} \n
\n ${this.button ? ke` ` : D}\n
\n
\n
\n
\n \n `;\n }\n};\nJbImagePageTeaserItem.styles = r(jb_image_page_teaser_item_default);\n__decorateClass([\n n({ type: Object })\n], JbImagePageTeaserItem.prototype, \"bgImage\", 2);\n__decorateClass([\n n({ type: Object })\n], JbImagePageTeaserItem.prototype, \"button\", 2);\n__decorateClass([\n n()\n], JbImagePageTeaserItem.prototype, \"headline\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbImagePageTeaserItem.prototype, \"randomized\", 2);\n__decorateClass([\n n()\n], JbImagePageTeaserItem.prototype, \"teaserType\", 2);\n__decorateClass([\n r2()\n], JbImagePageTeaserItem.prototype, \"_hovering\", 2);\nJbImagePageTeaserItem = __decorateClass([\n customElement(\"jb-image-page-teaser-item\")\n], JbImagePageTeaserItem);\n\nexport {\n JbImagePageTeaserItem\n};\n", "import {\n MarketDependent,\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n Linkable,\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-in-text-teaser/jb-in-text-teaser.scss?inline\nvar jb_in_text_teaser_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh4 {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\np, h3 {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nh3 {\n font-size: var(--theme-typo-h3-mobile-fontsize, 1.375rem);\n line-height: var(--theme-typo-h3-mobile-lineheight, 1.75rem);\n}\n@media (min-width: 1281px) {\n h3 {\n font-size: var(--theme-typo-h3-desktop-fontsize, 1.625rem);\n line-height: var(--theme-typo-h3-desktop-lineheight, 2.25rem);\n }\n}\n\np {\n font-size: var(--theme-typo-p-mobile-fontsize, 1.063rem);\n line-height: var(--theme-typo-p-mobile-lineheight, 1.875rem);\n}\n@media (min-width: 1281px) {\n p {\n font-size: var(--theme-typo-p-desktop-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-desktop-lineheight, 2.125rem);\n }\n}\n\nh4 {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\nsection {\n border-block: 1px solid rgba(20, 30, 85, var(--theme-opacity-20, 0.2));\n padding-block: 16px 24px;\n}\n@media (min-width: 600px) {\n section {\n clip-path: inset(0 20px);\n display: flex;\n padding-top: 20px;\n }\n}\n@media (min-width: 960px) {\n section {\n clip-path: inset(0 calc(16.6666666667% + 20px));\n padding-top: 24px;\n }\n}\n@media (min-width: 1281px) {\n section {\n padding-block: 40px;\n }\n}\n\na {\n text-decoration: none;\n}\n\nh3 {\n margin-bottom: 8px;\n}\n\nh4 {\n color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n text-transform: uppercase;\n}\n\n.image-wrap {\n margin-bottom: 16px;\n}\n@media (min-width: 600px) {\n .image-wrap {\n box-sizing: border-box;\n flex-basis: 33.3333333333%;\n max-width: 33.3333333333%;\n padding: 0 20px;\n width: 33.3333333333%;\n margin-bottom: 0;\n }\n}\n@media (min-width: 960px) {\n .image-wrap {\n margin-left: 16.6666666667%;\n box-sizing: border-box;\n flex-basis: 25%;\n max-width: 25%;\n padding: 0 20px;\n width: 25%;\n }\n}\n@media (min-width: 1281px) {\n .image-wrap {\n margin-left: 16.6666666667%;\n box-sizing: border-box;\n flex-basis: 25%;\n max-width: 25%;\n padding: 0 20px;\n width: 25%;\n }\n}\n\n.no-image .text-wrap {\n margin-left: 16.6666666667%;\n box-sizing: border-box;\n flex-basis: 66.6666666667%;\n max-width: 66.6666666667%;\n padding: 0 20px;\n width: 66.6666666667%;\n text-align: center;\n}\n\n@media (min-width: 600px) {\n .text-wrap {\n box-sizing: border-box;\n flex-basis: 66.6666666667%;\n max-width: 66.6666666667%;\n padding: 0 20px;\n width: 66.6666666667%;\n }\n}\n@media (min-width: 960px) {\n .text-wrap {\n box-sizing: border-box;\n flex-basis: 41.6666666667%;\n max-width: 41.6666666667%;\n padding: 0 20px;\n width: 41.6666666667%;\n }\n}\n\na p {\n margin-bottom: 24px;\n}\n\nheader {\n align-items: center;\n display: flex;\n justify-content: space-between;\n margin-bottom: 12px;\n}\nheader > div {\n --stroke-color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n display: flex;\n}\n@media (min-width: 600px) {\n header {\n padding-inline: 20px;\n }\n}\n@media (min-width: 960px) {\n header {\n box-sizing: border-box;\n flex-basis: 66.6666666667%;\n max-width: 66.6666666667%;\n padding: 0 20px;\n width: 66.6666666667%;\n margin-left: 16.6666666667%;\n }\n}\n\nh3,\np {\n margin-bottom: 8px;\n}\n@media (min-width: 1281px) {\n h3,\n p {\n margin-bottom: 16px;\n }\n}\n\np.text-placeholder {\n background-color: rgba(20, 30, 85, 0.05);\n height: 30px;\n}\np.text-placeholder.short {\n width: 50%;\n}\np.text-placeholder.button {\n height: 36px;\n margin-top: 23px;\n width: 33%;\n}\n\n@media print {\n :host {\n display: none;\n }\n}\njb-globe-icon {\n display: inline-block;\n height: 1rem;\n margin-right: 4px;\n width: 1rem;\n}`;\n\n// src/components/jb-in-text-teaser/jb-in-text-teaser.ts\nvar JbInTextTeaser = class extends Linkable(MarketDependent(Spaceable(h))) {\n firstUpdated() {\n if (!this.link) {\n this.style.setProperty(\"display\", \"none\");\n }\n }\n _getContentSpacingProperties() {\n return { type: \"text\", colsMdUp: \"none\" };\n }\n _tracking(e) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e, {\n component_name: \"in-text-teaser\",\n interaction_text: this.buttonLabel\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n render() {\n const imgData = this.image;\n return ke`\n ${this.kicker ? ke`
${this.kicker} ` : D}\n \n ${this.onlyMarkets !== void 0 || this.link?.marketUris ? ke` ` : D}\n
\n \n \n ${imgData ? ke`` : D}\n \n `;\n }\n};\nJbInTextTeaser.styles = r(jb_in_text_teaser_default);\n__decorateClass([\n n()\n], JbInTextTeaser.prototype, \"buttonLabel\", 2);\n__decorateClass([\n n()\n], JbInTextTeaser.prototype, \"headline\", 2);\n__decorateClass([\n n({ type: Object })\n], JbInTextTeaser.prototype, \"image\", 2);\n__decorateClass([\n n()\n], JbInTextTeaser.prototype, \"kicker\", 2);\n__decorateClass([\n n({ type: Array })\n], JbInTextTeaser.prototype, \"onlyMarkets\", 2);\n__decorateClass([\n n()\n], JbInTextTeaser.prototype, \"text\", 2);\nJbInTextTeaser = __decorateClass([\n customElement(\"jb-in-text-teaser\")\n], JbInTextTeaser);\n\nexport {\n JbInTextTeaser\n};\n", "import {\n JbI18nData\n} from \"./chunk.SE5MQEAG.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n JBCookie\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-market-display/jb-market-display.scss?inline\nvar jb_market_display_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nspan {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nspan {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\ndiv {\n align-items: center;\n display: flex;\n}\n\nspan {\n color: rgba(20, 30, 85, var(--theme-opacity-40, 0.4));\n text-transform: uppercase;\n}\n\n.long {\n display: none;\n}\n\n@media (min-width: 600px) {\n .short {\n display: none;\n }\n .long {\n display: inline-block;\n }\n}`;\n\n// src/components/jb-market-display/jb-market-display.ts\nvar JbMarketDisplay = class extends h {\n static _readMarketFromCookie() {\n const cookieData = JBCookie.getI18nCookieData();\n const userMarket = parseInt(cookieData.market, 10);\n if (userMarket === 0) {\n return void 0;\n }\n const short = cookieData.country;\n const long = JbI18nData.find()?.getMarketLabel(userMarket) || \"\";\n return { short, long };\n }\n render() {\n const longMarket = this.staticMarket || JbMarketDisplay._readMarketFromCookie().long || void 0;\n const shortMarket = this.staticMarketShort || JbMarketDisplay._readMarketFromCookie().short || void 0;\n if (longMarket === void 0) {\n return ke``;\n }\n return ke`\n \n ${shortMarket} \n ${longMarket} \n
\n `;\n }\n};\nJbMarketDisplay.styles = r(jb_market_display_default);\n__decorateClass([\n n()\n], JbMarketDisplay.prototype, \"staticMarket\", 2);\n__decorateClass([\n n()\n], JbMarketDisplay.prototype, \"staticMarketShort\", 2);\nJbMarketDisplay = __decorateClass([\n customElement(\"jb-market-display\")\n], JbMarketDisplay);\n\nexport {\n JbMarketDisplay\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/icons/jb-language-icon/jb-language-icon.scss?inline\nvar jb_language_icon_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\npath {\n fill: var(--stroke-color, #141e55);\n}`;\n\n// src/components/icons/jb-language-icon/jb-language-icon.ts\nvar JbLanguageIcon = class extends h {\n render() {\n return ke`\n \n \n \n `;\n }\n};\nJbLanguageIcon.styles = r(jb_language_icon_default);\nJbLanguageIcon = __decorateClass([\n customElement(\"jb-language-icon\")\n], JbLanguageIcon);\n\nexport {\n JbLanguageIcon\n};\n", "import {\n ae\n} from \"./chunk.Q25FCJRM.js\";\nimport {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-info-block/jb-info-block.scss?inline\nvar jb_info_block_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.context {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\n.title {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.context {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 0.688rem;\n letter-spacing: 0.063rem;\n line-height: 1rem;\n}\n\n.title {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 1.625rem;\n line-height: 2.188rem;\n}\n@media (min-width: 1281px) {\n .title {\n font-size: 1.938rem;\n line-height: 2.625rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\njb-richtext,\n.context {\n margin-bottom: 16px;\n}\n\n.wrap {\n background-color: #fff;\n padding: 40px 30px;\n}\n@media (min-width: 960px) {\n .wrap {\n padding: 70px 11%;\n }\n}\n\n.title {\n margin-bottom: 20px;\n}\n\n.context {\n text-transform: uppercase;\n}\n\n.alternative-layout {\n text-align: center;\n}\n.alternative-layout jb-richtext {\n text-align: center;\n}\n.alternative-layout .wrap {\n padding: 0;\n}`;\n\n// src/components/jb-info-block/jb-info-block.ts\nvar JbInfoBlock = class extends ChangesBackgroundColor(Spaceable(h)) {\n _getContentSpacingProperties() {\n return { align: \"center\", colsMdUp: 10 };\n }\n _tracking(e) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e, {\n component_name: \"info-block\"\n });\n if (jbTrackingEvent) this.dispatchEvent(jbTrackingEvent);\n }\n render() {\n return ke`\n \n \n ${this.context ? ke`
${this.context} ` : D}\n ${this.headline} \n ${ae(this.text)} \n ${this.button ? ke` ` : D}\n \n \n `;\n }\n};\nJbInfoBlock.styles = r(jb_info_block_default);\n__decorateClass([\n n({ type: Object })\n], JbInfoBlock.prototype, \"button\", 2);\n__decorateClass([\n n()\n], JbInfoBlock.prototype, \"context\", 2);\n__decorateClass([\n n()\n], JbInfoBlock.prototype, \"headline\", 2);\n__decorateClass([\n n({ type: Boolean })\n], JbInfoBlock.prototype, \"isAlternativeLayout\", 2);\n__decorateClass([\n n()\n], JbInfoBlock.prototype, \"text\", 2);\nJbInfoBlock = __decorateClass([\n customElement(\"jb-info-block\")\n], JbInfoBlock);\n\nexport {\n JbInfoBlock\n};\n", "// src/components/jb-home-page-hero-legacy/jb-home-page-hero-legacy.smooth-scroll.ts\nfunction scrollTo(pos) {\n const speed = 500;\n const scrollStartY = window.scrollY || document.documentElement.scrollTop || 0;\n let currentTimestamp = 0;\n const scrollDistanceInPx = Math.abs(scrollStartY - pos);\n const scrollDistance = pos - scrollStartY;\n const suggestedAnimationDuration = scrollDistanceInPx / speed;\n const animationDuration = Math.max(0.1, Math.min(suggestedAnimationDuration, 0.8));\n function easeOutSine(t) {\n return Math.sin(t * (Math.PI / 2));\n }\n function scroll(x, y) {\n window.scrollTo(x, y);\n }\n function tick() {\n const timeIncrement = 1 / 60;\n currentTimestamp += timeIncrement;\n const time = currentTimestamp / animationDuration;\n const position = easeOutSine(time);\n if (time < 1) {\n window.requestAnimationFrame(tick);\n const x = 0;\n const scrollIncrement = scrollDistance * position;\n const nextYPosition = scrollStartY + scrollIncrement;\n scroll(x, nextYPosition);\n }\n }\n window.requestAnimationFrame(tick);\n}\n\nexport {\n scrollTo\n};\n", "// src/components/jb-home-page-hero-legacy/jb-home-page-hero-legacy.snapper.ts\nvar HomePageHeroSnapper = class {\n constructor(items) {\n this._rects = Array.from(items).map((item) => item.getBoundingClientRect());\n }\n getCurrentItemIndexFromScrollPosition(windowScrollPosition) {\n const foundIndex = this._getScrollPositions().findIndex(\n (scrollPosition) => scrollPosition > windowScrollPosition + 1\n );\n if (foundIndex === -1) {\n return this._rects.length - 1;\n }\n return foundIndex;\n }\n getCurrentScrollProgress(windowScrollPosition) {\n const currentIndex = this.getCurrentItemIndexFromScrollPosition(windowScrollPosition);\n const previousScrollPosition = this.getSnapperPositions()[currentIndex];\n const nextScrollPosition = this.getSnapperPositions()[currentIndex + 1] || void 0;\n if (nextScrollPosition === void 0) {\n return 0;\n }\n const currentOverscroll = windowScrollPosition - previousScrollPosition;\n return currentOverscroll / (nextScrollPosition - previousScrollPosition);\n }\n getPostScrollDistance(windowScrollPosition) {\n const lastSnapperPosition = this.getSnapperPositions().pop();\n return Math.max(0, windowScrollPosition - lastSnapperPosition);\n }\n getSnapperPositions() {\n return [0, ...this._getScrollPositions()];\n }\n _getScrollPosition(index) {\n if (index < 0) {\n return 0;\n }\n const currentItemRect = this._rects[index];\n const nextItemRect = this._rects[index + 1];\n if (!nextItemRect) {\n return void 0;\n }\n const nextScrollDistance = Math.round(nextItemRect.top - currentItemRect.top);\n return nextScrollDistance + (this._getScrollPosition(index - 1) || 0);\n }\n _getScrollPositions() {\n if (!this._scrollPositions) {\n this._scrollPositions = Array.from(this._rects).map((item, index) => this._getScrollPosition(index)).filter((value) => value !== void 0);\n }\n return this._scrollPositions;\n }\n};\nfunction createFromItems(items) {\n return new HomePageHeroSnapper(items);\n}\n\nexport {\n HomePageHeroSnapper,\n createFromItems\n};\n", "import {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\n\n// src/components/jb-home-page-hero-legacy/jb-home-page-hero-legacy.tracking.ts\nfunction tracking1FirstDisplay(el, current) {\n const currentIndex = current ?? el.currentItemIndex;\n const eventDetails = {\n event: \"ce_display\",\n event_version: \"v2\",\n component_name: \"image-hero\",\n component_topic: el.items[currentIndex].title,\n topic_position: currentIndex + 1,\n interaction_effect: \"navigation\",\n interaction_element: \"Internal Links\",\n interaction_result: window.location.href,\n interaction_type: \"click\"\n };\n el.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: eventDetails,\n bubbles: true,\n composed: true\n })\n );\n}\nfunction tracking2DiscoverMore(el, e) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e, {\n component_name: \"image-hero\",\n component_topic: el.items[el.currentItemIndex].title,\n topic_position: el.currentItemIndex + 1\n });\n if (jbTrackingEvent) {\n el.dispatchEvent(jbTrackingEvent);\n }\n}\nfunction tracking3Navigation(el, current, target, type) {\n const eventDetails = {\n event: \"ce_interaction\",\n event_version: \"v2\",\n component_name: \"image-hero\",\n component_topic: el.items[current]?.title,\n topic_position: current + 1,\n target_topic: el.items[target]?.title,\n target_position: target + 1,\n interaction_effect: \"navigation\",\n interaction_element: \"component\",\n interaction_result: \"change topic\",\n interaction_type: type\n };\n el.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: eventDetails,\n bubbles: true,\n composed: true\n })\n );\n}\nfunction tracking4OurSolutions(el) {\n const eventDetails = {\n event: \"ce_interaction\",\n event_version: \"v2\",\n component_name: \"image-hero\",\n component_topic: el.items[el.currentItemIndex].title,\n topic_position: el.currentItemIndex + 1,\n interaction_effect: \"navigation\",\n interaction_element: \"Internal Links\",\n interaction_result: window.location.href,\n interaction_type: \"click\"\n };\n el.dispatchEvent(\n new CustomEvent(\"jb-tracking\", {\n detail: eventDetails,\n bubbles: true,\n composed: true\n })\n );\n}\n\nexport {\n tracking1FirstDisplay,\n tracking2DiscoverMore,\n tracking3Navigation,\n tracking4OurSolutions\n};\n", "import {\n scrollTo\n} from \"./chunk.ZHKWOFXT.js\";\nimport {\n createFromItems\n} from \"./chunk.SIK7NCSO.js\";\nimport {\n tracking1FirstDisplay,\n tracking2DiscoverMore,\n tracking3Navigation,\n tracking4OurSolutions\n} from \"./chunk.LIYZ3SIB.js\";\nimport {\n isMobileVP,\n isSizeMdDown\n} from \"./chunk.YDQDJZUC.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n debounce\n} from \"./chunk.WXNWU2SV.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2,\n r2 as r3\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-home-page-hero-legacy/jb-home-page-hero-legacy.scss?inline\nvar jb_home_page_hero_legacy_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nsection .stageholder .mobile-nav ul, section .stageholder .desktop-hero .hero-item p, section .stageholder .desktop-nav ul {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\nsection .stageholder .mobile-nav ul li h2, section .stageholder .desktop-hero .hero-item h2 {\n font-family: var(--theme-font-xlight-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-xlight-weight, 200);\n}\n\nsection .stageholder .mobile-nav ul, section .stageholder .desktop-hero .hero-item p, section .stageholder .desktop-nav ul {\n color: rgba(var(--rgb-primary, 20, 30, 85), var(--text-opacity, var(--theme-opacity-70, 0.7)));\n font-size: 0.813rem;\n line-height: 1.25rem;\n}\n\nsection .stageholder .mobile-nav ul li h2, section .stageholder .desktop-hero .hero-item h2 {\n color: rgb(var(--rgb-primary, 20, 30, 85));\n font-size: 2.25rem;\n line-height: 2.875rem;\n}\n@media (min-width: 1281px) {\n section .stageholder .mobile-nav ul li h2, section .stageholder .desktop-hero .hero-item h2 {\n font-size: 2.813rem;\n line-height: 3.813rem;\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n --solutions-button-height: 64px;\n --_notch-inset: calc(max(env(safe-area-inset-left), env(safe-area-inset-right)) + 5px);\n}\n\nsection {\n object-fit: cover;\n}\nsection .stageholder {\n --sidelines-top: calc(66vh - (var(--solutions-button-height) / 2));\n border-color: white;\n bottom: 0;\n display: flex;\n height: calc(100vh - var(--solutions-button-height));\n justify-content: center;\n position: sticky;\n top: 0;\n}\n@media (min-width: 600px) {\n section .stageholder {\n --sidelines-top: calc(50vh - (var(--solutions-button-height) / 2));\n }\n}\nsection .stageholder .bg-image {\n background-color: #717c7d;\n height: 100vh;\n opacity: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n transition: opacity 600ms;\n z-index: -1;\n}\nsection .stageholder .bg-image:first-of-type {\n opacity: 1;\n}\nsection .stageholder .desktop-nav {\n --transform-top: -10px;\n align-items: start;\n display: none;\n flex-direction: column;\n justify-content: end;\n left: 70px;\n list-style: none;\n position: absolute;\n top: var(--sidelines-top);\n transform: translateY(var(--transform-top));\n width: 95px;\n}\n@media (min-width: 600px) {\n section .stageholder .desktop-nav {\n display: flex;\n }\n}\nsection .stageholder .desktop-nav ul {\n color: rgb(var(--rgb-primary, 255, 255, 255));\n height: 100%;\n list-style: none;\n}\nsection .stageholder .desktop-nav ul li {\n cursor: pointer;\n padding-bottom: 5px;\n position: relative;\n}\nsection .stageholder .desktop-nav ul li::before {\n background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 16 1' fill='none'%3E%3Crect y='0.125' width='10' height='1' fill='white' /%3E%3C/svg%3E\");\n background: white;\n content: \"\";\n display: block;\n height: 1px;\n margin-left: -20px;\n position: absolute;\n top: 10px;\n width: 10px;\n}\nsection .stageholder .desktop-hero {\n --transform-top: -40px;\n color: rgb(var(--rgb-primary, 255, 255, 255));\n display: none;\n margin: 0 auto;\n padding-right: var(--compensate-scrollbar);\n padding-top: calc(50vh - var(--solutions-button-height) / 2);\n position: absolute;\n text-align: center;\n transform: translateY(var(--transform-top));\n width: 280px;\n}\n@media (min-width: 600px) {\n section .stageholder .desktop-hero {\n display: block;\n }\n}\n@media (min-width: 960px) {\n section .stageholder .desktop-hero {\n width: 550px;\n }\n}\nsection .stageholder .desktop-hero .hero-item {\n margin-bottom: 20vh;\n opacity: 0;\n}\nsection .stageholder .desktop-hero .hero-item:first-of-type {\n opacity: 1;\n}\nsection .stageholder .desktop-hero .hero-item h2 {\n font-size: 37px;\n font-size: 2.3125rem;\n line-height: 50px;\n line-height: 3.125rem;\n color: rgb(var(--rgb-primary, 255, 255, 255));\n}\n@media (min-width: 960px) {\n section .stageholder .desktop-hero .hero-item h2 {\n font-size: 80px;\n font-size: 5rem;\n line-height: 80px;\n line-height: 5rem;\n }\n}\nsection .stageholder .desktop-hero .hero-item p {\n font-size: 17px;\n font-size: 1.0625rem;\n line-height: 30px;\n line-height: 1.875rem;\n color: rgb(var(--rgb-primary, 255, 255, 255));\n margin-top: 10px;\n}\n@media (min-width: 960px) {\n section .stageholder .desktop-hero .hero-item p {\n font-size: 19px;\n font-size: 1.1875rem;\n line-height: 34px;\n line-height: 2.125rem;\n margin-top: 20px;\n }\n}\nsection .stageholder .desktop-hero .hero-item jb-button-primary {\n display: inline-block;\n margin-top: 20px;\n pointer-events: auto;\n}\n@media (min-width: 960px) {\n section .stageholder .desktop-hero .hero-item jb-button-primary {\n margin-top: 30px;\n }\n}\nsection .stageholder .mobile-nav {\n --transform-top: 0;\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: end;\n min-height: 105vh;\n padding-right: var(--compensate-scrollbar);\n position: absolute;\n top: 0;\n transform: translateY(var(--transform-top));\n width: 100%;\n}\n@media (min-width: 600px) {\n section .stageholder .mobile-nav {\n display: none;\n }\n}\nsection .stageholder .mobile-nav ul {\n color: rgb(var(--rgb-primary, 255, 255, 255));\n height: 100%;\n list-style: none;\n width: calc(100vw - 100px - 80px);\n}\nsection .stageholder .mobile-nav ul li {\n max-height: 32px;\n padding-bottom: 16px;\n position: relative;\n transition: all 600ms;\n}\nsection .stageholder .mobile-nav ul li h2 {\n color: rgb(var(--rgb-primary, 255, 255, 255));\n cursor: pointer;\n font-size: 2.25rem;\n transform: scale(0.362);\n transform-origin: top left;\n transition: all 600ms;\n}\nsection .stageholder .mobile-nav ul li .bullet_line {\n background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 16 1' fill='none'%3E%3Crect y='0.125' width='10' height='1' fill='white' /%3E%3C/svg%3E\");\n background: white;\n content: \"\";\n display: block;\n height: 1px;\n margin-left: -20px;\n position: absolute;\n top: 0.5em;\n transition: all 600ms;\n width: 10px;\n}\nsection .stageholder .mobile-nav ul li p {\n margin-bottom: 8px;\n min-height: 10px;\n opacity: 0;\n transition: all 600ms;\n}\nsection .stageholder .mobile-nav ul li jb-button-primary {\n margin-top: 8px;\n opacity: 0;\n pointer-events: all;\n transition: all 600ms;\n width: 100%;\n}\nsection .stageholder .mobile-nav ul li.active {\n max-height: 174px;\n}\nsection .stageholder .mobile-nav ul li.active h2 {\n transform: scale(1);\n}\nsection .stageholder .mobile-nav ul li.active .bullet_line {\n top: 1.6em;\n}\nsection .stageholder .mobile-nav ul li.active p {\n opacity: 1;\n}\nsection .stageholder .mobile-nav ul li.active jb-button-primary {\n opacity: 1;\n}\nsection .stageholder .mobile-nav ul li:not(.active) jb-button-primary {\n pointer-events: none;\n}\nsection .stageholder .line-left,\nsection .stageholder .line-right {\n border-top: 1px solid rgb(var(--rgb-primary, 255, 255, 255));\n display: block;\n left: 0;\n position: absolute;\n top: var(--sidelines-top);\n width: 60px;\n}\nsection .stageholder .line-right {\n left: unset;\n right: 0;\n}\nsection .bottom-bar {\n --transform-y: 0;\n align-items: center;\n background: white;\n bottom: 0;\n display: flex;\n height: 50px;\n justify-content: center;\n max-width: 100%;\n padding-right: var(--compensate-scrollbar);\n position: fixed;\n transform: translateY(var(--transform-y));\n width: 100%;\n z-index: 2;\n}\n@media (min-width: 600px) {\n section .bottom-bar {\n height: var(--solutions-button-height, 64px);\n }\n}\nsection jb-content-spacing {\n max-width: 100%;\n}\nsection jb-picture::part(picture) {\n width: 100vw;\n}`;\n\n// src/components/jb-home-page-hero-legacy/jb-home-page-hero-legacy.ts\nvar JbHomePageHeroLegacy = class extends ChangesBackgroundColor(h) {\n constructor() {\n super(...arguments);\n this.currentItemIndex = 0;\n this._indexClicked = null;\n this._indexSelected = null;\n this._isBelowFold = false;\n this._isScrollingOurSolutions = false;\n this._itemIndexForTracking = 0;\n this._settingsDesktop = {\n h2LineHeight: 80,\n maxInsetWidth: 30,\n requiredDistanceBottomBar: 60,\n requiredDistanceInsets: 50,\n sideNavItemHeight: 25\n };\n this._settingsMobile = {\n h2MinFontSize: \"0.815rem\",\n minItemHeight: 32,\n requiredDistanceInsets: 50,\n maxInsetsWidth: 25,\n requiredDistanceBottomBar: 60,\n transitions: []\n };\n }\n async updated(changedProperties) {\n const indexBeforeChange = changedProperties.get(\"_itemIndexForTracking\");\n await this.updateComplete;\n if (!changedProperties.has(\"_itemIndexForTracking\") || indexBeforeChange === void 0 || this._isScrollingOurSolutions) {\n return;\n }\n if (this._indexClicked !== null) {\n if (this._indexClicked === this._itemIndexForTracking) {\n tracking3Navigation(this, this._indexSelected ?? 0, this._indexClicked, \"click\");\n tracking1FirstDisplay(this, this._indexClicked);\n this._indexSelected = null;\n this._indexClicked = null;\n }\n } else {\n tracking3Navigation(this, indexBeforeChange, this._itemIndexForTracking, \"swipe\");\n tracking1FirstDisplay(this, this._itemIndexForTracking);\n }\n }\n async firstUpdated() {\n window.scrollTo(0, 0);\n if (\"scrollRestoration\" in window.history) window.history.scrollRestoration = \"manual\";\n this._htmlHtmlElement = document.querySelector(\"html\");\n await this.updateComplete;\n this._screenWidth = window.innerWidth;\n this._settingsDesktop.maxInsetWidth = isSizeMdDown() ? 30 : 40;\n tracking1FirstDisplay(this);\n this._softReload();\n window.addEventListener(\n \"resize\",\n debounce(() => {\n if (this._screenWidth !== window.innerWidth) {\n this._softReload();\n this._screenWidth = window.innerWidth;\n }\n }, 300)\n );\n }\n _applyDesktopScrollProgress(index, effectProgress, backgroundImageProgress) {\n const item = this._domItemsDesktop[index];\n item.style.setProperty(\"opacity\", `${effectProgress}`);\n this._bgImages[index].style.setProperty(\"opacity\", `${backgroundImageProgress}`);\n }\n _checkNavState(isBelowFold) {\n if (this._isBelowFold === isBelowFold) return;\n this._isBelowFold = isBelowFold;\n this.dispatchEvent(\n new CustomEvent(\"jb-home-page-hero-legacy:stages-finished\", { bubbles: true, detail: { isBelowFold } })\n );\n }\n _clamp(value) {\n return Math.max(Math.min(value, 1), 0);\n }\n _clickDiscoverMore(e2) {\n tracking2DiscoverMore(this, e2);\n }\n _clickItem(e2, index) {\n this._indexClicked = index;\n this._indexSelected = this.currentItemIndex;\n e2.preventDefault();\n scrollTo(this._getScrollTargetPosition(index));\n }\n _clickOurSolutions(evt) {\n this._isScrollingOurSolutions = true;\n evt.preventDefault();\n tracking4OurSolutions(this);\n this.renderRoot.querySelector(\"jb-content-spacing\")?.scrollIntoView({ behavior: \"smooth\" });\n }\n _enableAnimation() {\n return false;\n }\n _getScrollTargetPosition(index) {\n if (isMobileVP()) {\n const totalScrollDistance = this._mobileNav.clientHeight;\n const fullPerItemScrollDistance = totalScrollDistance / (this.items.length - 1);\n return index * fullPerItemScrollDistance;\n }\n return this._snapper.getSnapperPositions()[index];\n }\n _handleScrollDesktop() {\n const currentScrollY = Math.round(window.scrollY);\n this.currentItemIndex = this._snapper.getCurrentItemIndexFromScrollPosition(currentScrollY);\n const currentScrollProgress = this._snapper.getCurrentScrollProgress(currentScrollY);\n const opacityProgress = this._clamp(20 * currentScrollProgress - 9.4);\n const postStageDistance = this._snapper.getPostScrollDistance(currentScrollY);\n this._itemIndexForTracking = opacityProgress === 1 ? this.currentItemIndex + 1 : this.currentItemIndex;\n this._domItemsDesktop.forEach((item, index) => {\n if (index === this.currentItemIndex) {\n this._applyDesktopScrollProgress(index, 1 - opacityProgress, 1);\n } else if (index === this.currentItemIndex + 1) {\n this._applyDesktopScrollProgress(index, opacityProgress, opacityProgress);\n } else {\n this._applyDesktopScrollProgress(index, 0, 0);\n }\n });\n const insetProgress = this._clamp(postStageDistance / this._settingsDesktop.requiredDistanceInsets);\n this._stage.style.setProperty(\"clip-path\", `inset(0 ${insetProgress * this._settingsDesktop.maxInsetWidth}px)`);\n const bottomBarProgress = this._clamp(\n (postStageDistance - this._settingsDesktop.requiredDistanceInsets) / this._settingsDesktop.requiredDistanceBottomBar\n );\n this._bottomBar.style.setProperty(`--transform-y`, `${bottomBarProgress * 100}%`);\n if (postStageDistance < this._settingsDesktop.requiredDistanceInsets) {\n this._desktopHero.style.setProperty(\n \"--transform-top\",\n `-${currentScrollY + this._settingsDesktop.h2LineHeight / 2}px`\n );\n const navToBeGone = this.currentItemIndex * this._settingsDesktop.sideNavItemHeight + this._settingsDesktop.sideNavItemHeight * currentScrollProgress;\n this._desktopNav.style.setProperty(\"--transform-top\", -10 - navToBeGone + \"px\");\n }\n if (postStageDistance - this._bottomBar.offsetHeight < 0) {\n this._checkNavState(false);\n } else {\n this._checkNavState(true);\n if (this._isScrollingOurSolutions) {\n this._isScrollingOurSolutions = false;\n }\n }\n }\n _handleScrollMobile() {\n const currentScrollY = Math.round(window.scrollY);\n const totalScrollDistance = this._mobileNav.clientHeight;\n const fullPerItemScrollDistance = totalScrollDistance / (this.items.length - 1);\n const halfPerItemScrollDistance = fullPerItemScrollDistance / 2;\n let currentScrollProgress;\n if (currentScrollY <= halfPerItemScrollDistance) {\n this.currentItemIndex = 0;\n currentScrollProgress = currentScrollY / fullPerItemScrollDistance + 0.5;\n } else if (totalScrollDistance - currentScrollY <= halfPerItemScrollDistance) {\n this.currentItemIndex = this.items.length - 1;\n currentScrollProgress = Math.min(\n 0.5,\n 1 + (currentScrollY - halfPerItemScrollDistance - this.currentItemIndex * fullPerItemScrollDistance) / fullPerItemScrollDistance\n );\n } else {\n this.currentItemIndex = Math.min(\n this.items.length - 1,\n 1 + Math.floor((currentScrollY - halfPerItemScrollDistance) / fullPerItemScrollDistance)\n );\n currentScrollProgress = Math.min(\n 1,\n 1 + (currentScrollY - halfPerItemScrollDistance - this.currentItemIndex * fullPerItemScrollDistance) / fullPerItemScrollDistance\n );\n }\n const postStageDistance = currentScrollY - totalScrollDistance;\n this._domItemsMobile.forEach((item, index) => {\n if (index === this.currentItemIndex) {\n item.classList.add(\"active\");\n } else {\n item.classList.remove(\"active\");\n }\n this._bgImages[index]?.style.setProperty(\"opacity\", `${index <= this.currentItemIndex ? 1 : 0}`);\n });\n const insetProgress = this._clamp(postStageDistance / this._settingsMobile.requiredDistanceInsets);\n this._stage.style.setProperty(\"clip-path\", `inset(0 ${insetProgress * this._settingsDesktop.maxInsetWidth}px)`);\n const buttonProgress = this._clamp(\n (postStageDistance - this._settingsMobile.requiredDistanceInsets) / this._settingsMobile.requiredDistanceBottomBar\n );\n this._bottomBar.style.setProperty(\"--transform-y\", `${buttonProgress * 100}%`);\n const correctionFactor = -0.0575439 - 175439e-9 * window.innerHeight;\n const newTransformTop = -(currentScrollProgress + this.currentItemIndex) * this._settingsMobile.minItemHeight + window.innerHeight * correctionFactor;\n this._mobileNav.style.setProperty(\"--transform-top\", newTransformTop + \"px\");\n if (currentScrollY < totalScrollDistance + this._bottomBar.offsetHeight) {\n this._checkNavState(false);\n } else {\n this._checkNavState(true);\n if (this._isScrollingOurSolutions) {\n this._isScrollingOurSolutions = false;\n }\n }\n }\n _resetDesktop() {\n const lastSnapperPosition = this._snapper.getSnapperPositions().pop();\n this._stage.style.height = `calc(100vh + ${lastSnapperPosition}px)`;\n setTimeout(() => window.scrollTo(0, 0));\n }\n _resetMobile() {\n this._stage.style.height = `calc(100vh + ${this._scrollDistanceStagesMobile}px)`;\n this._handleScrollMobile();\n setTimeout(() => window.scrollTo(0, 0));\n }\n _setState() {\n this._domItemsMobile.forEach((item) => {\n item.style.setProperty(\"height\", \"initial\");\n });\n this._snapper = createFromItems(this._domItemsDesktop);\n this._itemHeightsMobile = Array.from(this._domItemsMobile).map((item) => item.getBoundingClientRect().height);\n this._scrollDistanceStagesMobile = this._mobileNav.clientHeight - this._itemHeightsMobile[0];\n }\n _softReload() {\n window.scrollTo(0, 0);\n this._setState();\n if (isMobileVP()) {\n this._resetMobile();\n window.addEventListener(\"scroll\", () => this._handleScrollMobile(), true);\n } else {\n this._resetDesktop();\n window.addEventListener(\"scroll\", () => this._handleScrollDesktop(), true);\n }\n }\n render() {\n return ke`\n \n \n
\n ${this.items.map(\n (item, index) => ke`
`\n )}\n\n
\n
\n ${this.items.map(\n (item, index) => ke` this._clickItem(e2, index)}>${item.title} `\n )}\n \n
\n\n
\n
\n ${this.items.map(\n (item, index) => ke`\n
\n this._clickItem(e2, index)}>${item.title} \n ${item.subline}
\n ${item.buttonText} \n `\n )}\n \n
\n\n
\n ${this.items.map(\n (item) => ke`
\n
${item.title} \n
${item.subline}
\n
${item.buttonText} \n
`\n )}\n
\n\n
\n
\n
\n
\n\n \n ${this.teaserBlock.headline || \"\"} \n
\n\n \n \n \n \n `;\n }\n};\nJbHomePageHeroLegacy.styles = r(jb_home_page_hero_legacy_default);\n__decorateClass([\n r2()\n], JbHomePageHeroLegacy.prototype, \"currentItemIndex\", 2);\n__decorateClass([\n n({ type: Array })\n], JbHomePageHeroLegacy.prototype, \"items\", 2);\n__decorateClass([\n n({ type: Object })\n], JbHomePageHeroLegacy.prototype, \"teaserBlock\", 2);\n__decorateClass([\n r3(\".bg-image\")\n], JbHomePageHeroLegacy.prototype, \"_bgImages\", 2);\n__decorateClass([\n e(\".bottom-bar\")\n], JbHomePageHeroLegacy.prototype, \"_bottomBar\", 2);\n__decorateClass([\n e(\".desktop-hero\")\n], JbHomePageHeroLegacy.prototype, \"_desktopHero\", 2);\n__decorateClass([\n e(\".desktop-nav\")\n], JbHomePageHeroLegacy.prototype, \"_desktopNav\", 2);\n__decorateClass([\n r3(\".desktop-hero .hero-item\")\n], JbHomePageHeroLegacy.prototype, \"_domItemsDesktop\", 2);\n__decorateClass([\n r3(\".mobile-nav li\")\n], JbHomePageHeroLegacy.prototype, \"_domItemsMobile\", 2);\n__decorateClass([\n r2()\n], JbHomePageHeroLegacy.prototype, \"_itemIndexForTracking\", 2);\n__decorateClass([\n e(\".line-left\")\n], JbHomePageHeroLegacy.prototype, \"_lineLeft\", 2);\n__decorateClass([\n e(\".line-right\")\n], JbHomePageHeroLegacy.prototype, \"_lineRight\", 2);\n__decorateClass([\n e(\".mobile-nav\")\n], JbHomePageHeroLegacy.prototype, \"_mobileNav\", 2);\n__decorateClass([\n e(\".stage\")\n], JbHomePageHeroLegacy.prototype, \"_stage\", 2);\nJbHomePageHeroLegacy = __decorateClass([\n customElement(\"jb-home-page-hero-legacy\")\n], JbHomePageHeroLegacy);\n\nexport {\n JbHomePageHeroLegacy\n};\n", "import {\n Spaceable\n} from \"./chunk.G3SZKTQJ.js\";\nimport {\n Rt\n} from \"./chunk.LTAMHVKK.js\";\nimport {\n jbLinkClickedEventToJbTrackingEvent\n} from \"./chunk.ABOYTYJO.js\";\nimport {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n ChangesBackgroundColor\n} from \"./chunk.7ANACPIR.js\";\nimport {\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n e,\n n,\n r as r2\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-teaser-block/jb-teaser-block.scss?inline\nvar jb_teaser_block_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\n.headline .subline {\n font-family: var(--theme-font-light-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-light-weight, 300);\n}\n\n.headline .subline {\n font-size: var(--theme-typo-p-mobile-fontsize, 1.063rem);\n line-height: var(--theme-typo-p-mobile-lineheight, 1.875rem);\n}\n@media (min-width: 1281px) {\n .headline .subline {\n font-size: var(--theme-typo-p-desktop-fontsize, 1.188rem);\n line-height: var(--theme-typo-p-desktop-lineheight, 2.125rem);\n }\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\n::slotted(*) {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 20px;\n width: 100%;\n margin-bottom: 40px;\n overflow: hidden;\n padding: 0;\n}\n@media (min-width: 600px) {\n ::slotted(*) {\n box-sizing: border-box;\n flex-basis: 50%;\n max-width: 50%;\n padding: 0 20px;\n width: 50%;\n --article-card-bottom: 0;\n }\n}\n@media (min-width: 960px) {\n ::slotted(*) {\n box-sizing: border-box;\n flex-basis: 33.3333333333%;\n max-width: 33.3333333333%;\n padding: 0 20px;\n width: 33.3333333333%;\n }\n}\n::slotted(*)[randomized=true] {\n display: none;\n}\n\n::slotted([slot=button]) {\n flex-basis: auto;\n margin-bottom: 0;\n padding: 0;\n width: auto;\n}\n\n.campaign ::slotted(jb-highlight-text-item) {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 20px;\n width: 100%;\n}\n@media (min-width: 960px) {\n .campaign ::slotted(jb-highlight-text-item) {\n box-sizing: border-box;\n flex-basis: 50%;\n max-width: 50%;\n padding: 0 20px;\n width: 50%;\n }\n}\n\n@media (min-width: 600px) {\n .four ::slotted(*) {\n box-sizing: border-box;\n flex-basis: 50%;\n max-width: 50%;\n padding: 0 20px;\n width: 50%;\n }\n}\n\n@media (min-width: 600px) {\n .four ::slotted(:nth-child(2n)) {\n padding-right: 0;\n }\n}\n\n@media (min-width: 600px) {\n .four ::slotted(:nth-child(2n-1)) {\n padding-left: 0;\n }\n}\n\n.headline {\n box-sizing: border-box;\n flex-basis: 100%;\n max-width: 100%;\n padding: 0 20px;\n width: 100%;\n margin-bottom: 68px;\n}\n@media (min-width: 600px) {\n .headline {\n box-sizing: border-box;\n flex-basis: 66.6666666667%;\n max-width: 66.6666666667%;\n padding: 0 20px;\n width: 66.6666666667%;\n margin-left: 16.6666666667%;\n }\n}\n@media (max-width: 959px) {\n .headline {\n margin-bottom: 60px;\n padding-inline: 0;\n }\n}\n.headline .subline {\n margin-top: 15px;\n text-align: center;\n width: 100%;\n}\n@media (min-width: 960px) {\n .headline .subline {\n margin-top: 17px;\n }\n}\n\n.content {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n margin-left: auto;\n margin-right: auto;\n width: calc(100% - 2 * var(--row-small-margin, 6.68%));\n justify-content: center;\n max-width: 100%;\n width: 100%;\n}\n@media (min-width: 600px) and (max-width: 959px) {\n .content {\n width: calc(100% - 2 * 8.35%);\n }\n}\n@media (min-width: 1437px) {\n .content {\n max-width: var(--row-max-width, 1436px);\n }\n .content:not(.filtered-list) {\n width: 100%;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1436px) {\n .content {\n margin: 0 6.955%;\n max-width: calc(100% - 6.955% - 6.955%);\n }\n}\n@media (min-width: 600px) {\n .content {\n margin-left: -20px;\n margin-right: -20px;\n max-width: initial;\n padding: 0;\n width: initial !important;\n }\n}\n@media (min-width: 1437px) {\n .content {\n max-width: calc(var(--row-max-width, 1436px) + 136px);\n }\n}\n@media (min-width: 600px) {\n .content.four {\n box-sizing: border-box;\n flex-basis: 66.6666666667%;\n max-width: 66.6666666667%;\n padding: 0 0;\n width: 66.6666666667%;\n margin-left: 16.6666666667%;\n padding-inline: 5px;\n }\n}\n\njb-article-card {\n --article-card-bottom: 0;\n}`;\n\n// src/components/jb-teaser-block/jb-teaser-block.ts\nvar JbTeaserBlock = class extends Spaceable(ChangesBackgroundColor(h)) {\n constructor() {\n super(...arguments);\n this._shownTeasersCount = 0;\n }\n firstUpdated() {\n const curatedTeasers = this._slottedChildren.filter((element) => !element.getAttribute(\"randomized\"));\n const randomTeasers = this._slottedChildren.filter((element) => element.getAttribute(\"randomized\"));\n const randomizedRandomTeasers = this.shuffle(randomTeasers);\n randomizedRandomTeasers.forEach((teaser, index) => {\n if (index > this.teaserCount - curatedTeasers.length - 1) {\n teaser.style.setProperty(\"display\", \"none\");\n }\n });\n const shownTeasers = this._slottedChildren.filter(\n (element) => element.style.getPropertyValue(\"display\") !== \"none\"\n );\n this._shownTeasersCount = shownTeasers.length;\n }\n shuffle(array) {\n let currentIndex = array.length;\n let randomIndex;\n while (currentIndex !== 0) {\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];\n }\n return array;\n }\n _enableAnimation() {\n return !(document.querySelector(\"jb-info-page-hero\")?.parentElement?.nextElementSibling?.querySelector(\"jb-teaser-block\") === this);\n }\n _getContentSpacingProperties() {\n return {\n colsMdUp: 12,\n horizontal: \"wide\",\n type: \"teaser-block\"\n };\n }\n get _slottedChildren() {\n return this._slot.assignedElements({ flatten: true });\n }\n _tracking(e2) {\n const jbTrackingEvent = jbLinkClickedEventToJbTrackingEvent(e2, {\n component_name: \"teaser-block\"\n });\n if (jbTrackingEvent) {\n this.dispatchEvent(jbTrackingEvent);\n }\n }\n render() {\n return ke`\n ${(this.headline || this.subline) && ke`\n \n ${this.headline && ke`
`}\n ${this.subline && ke`
${this.subline}
`}\n
\n `}\n \n \n
\n \n \n
\n \n `;\n }\n};\nJbTeaserBlock.styles = r(jb_teaser_block_default);\n__decorateClass([\n n()\n], JbTeaserBlock.prototype, \"background\", 2);\n__decorateClass([\n n()\n], JbTeaserBlock.prototype, \"headline\", 2);\n__decorateClass([\n n()\n], JbTeaserBlock.prototype, \"subline\", 2);\n__decorateClass([\n n({ type: Number })\n], JbTeaserBlock.prototype, \"teaserCount\", 2);\n__decorateClass([\n e(\".row\")\n], JbTeaserBlock.prototype, \"_row\", 2);\n__decorateClass([\n r2()\n], JbTeaserBlock.prototype, \"_shownTeasersCount\", 2);\n__decorateClass([\n e(\"slot\")\n], JbTeaserBlock.prototype, \"_slot\", 2);\nJbTeaserBlock = __decorateClass([\n customElement(\"jb-teaser-block\")\n], JbTeaserBlock);\n\nexport {\n JbTeaserBlock\n};\n", "import {\n customElement\n} from \"./chunk.QAGUCU4C.js\";\nimport {\n D,\n h,\n ke\n} from \"./chunk.FCKNEYTX.js\";\nimport {\n n\n} from \"./chunk.BBN2ZB42.js\";\nimport {\n i,\n r\n} from \"./chunk.FAJKIEWS.js\";\nimport {\n __decorateClass\n} from \"./chunk.I4IFG4JG.js\";\n\n// src/components/jb-headline-with-text/jb-headline-with-text.scss?inline\nvar jb_headline_with_text_default = i`*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\ndiv,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\nol,\nul,\nli,\nform,\nlegend,\nlabel,\ntable,\nheader,\nfooter,\nnav,\nsection,\nfigure {\n margin: 0;\n padding: 0;\n}\n\na {\n color: inherit;\n}\n\n/* COLOR SETTINGS */\n/* shadows */\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n/* stylelint-disable */\n/* stylelint-enable */\nh5 {\n font-family: var(--theme-font-bold-family, VerlagSSm, Tahoma, sans-serif);\n font-weight: var(--theme-font-bold-weight, 700);\n}\n\nh4 {\n font-family: var(--theme-font-xlight-family, VerlagSSm, Tahoma, sans-serif);\n font-style: normal;\n font-weight: var(--theme-font-xlight-weight, 200);\n}\n\n:host {\n --spacing-none: 0;\n --spacing-base: 4px;\n --spacing-3xs: 8px;\n --spacing-2xs: 12px;\n --spacing-xs: 16px;\n --spacing-s: 20px;\n --spacing-sm: 20px;\n --spacing-m: 24px;\n --spacing-lm: 28px;\n --spacing-l: 32px;\n --spacing-xl: 32px;\n --spacing-2xl: 36px;\n --spacing-3xl: 36px;\n --spacing-4xl: 72px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 16px;\n}\n\n@media screen and (width >= 1281px) {\n :host {\n --spacing-sm: 24px;\n --spacing-m: 32px;\n --spacing-lm: 36px;\n --spacing-l: 40px;\n --spacing-xl: 48px;\n --spacing-2xl: 64px;\n --spacing-3xl: 72px;\n --spacing-4xl: 144px;\n --spacing-small: var(--spacing-lm);\n --spacing-medium: var(--spacing-3xl);\n --spacing-big: var(--spacing-4xl);\n --spacing-gap: 40px;\n }\n}\n/* special measurements */\n:host {\n color: var(--host-color, #141e55);\n}\n\n:host {\n display: block;\n}\n\nh4 {\n font-size: 22px;\n font-size: 1.375rem;\n line-height: 28px;\n line-height: 1.75rem;\n color: #141e55;\n font-weight: 300;\n padding-bottom: 24px;\n}\n@media (min-width: 960px) {\n h4 {\n font-size: 28px;\n font-size: 1.75rem;\n line-height: 36px;\n line-height: 2.25rem;\n }\n}\nh4.with-border {\n font-size: 28px;\n font-size: 1.75rem;\n line-height: 36px;\n line-height: 2.25rem;\n border-bottom: 1px solid rgba(20, 30, 85, 0.2);\n font-weight: 100;\n margin-bottom: 40px;\n padding-bottom: 20px;\n}\n\nh5 {\n font-size: 16px;\n font-size: 1rem;\n line-height: 26px;\n line-height: 1.625rem;\n color: rgba(20, 30, 85, 0.8);\n margin-bottom: 10px;\n}\n\n::slotted(jb-richtext) {\n --host-color: rgba(20, 30, 85, var(--theme-opacity-80, 0.8));\n --text-opacity: 0.8;\n}`;\n\n// src/components/jb-headline-with-text/jb-headline-with-text.ts\nvar JbHeadlineWithText = class extends h {\n render() {\n return ke`\n ${this.headline ? ke`