dap-design-system 0.9.150

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dds.js","sources":["../node_modules/clsx/dist/clsx.mjs","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/base.js","../node_modules/@lit/reactive-element/decorators/query.js","../node_modules/@lit/reactive-element/decorators/query-all.js","../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../node_modules/lit-html/static.js","../src/internal/dds-hu-element.ts","../src/components/accordion/accordion.component.ts","../src/components/accordion-group/accordion-group.component.ts","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_arrayReduce.js","../node_modules/lodash-es/_basePropertyOf.js","../node_modules/lodash-es/_deburrLetter.js","../node_modules/lodash-es/deburr.js","../node_modules/lodash-es/_asciiWords.js","../node_modules/lodash-es/_hasUnicodeWord.js","../node_modules/lodash-es/_unicodeWords.js","../node_modules/lodash-es/words.js","../node_modules/lodash-es/_createCompounder.js","../node_modules/lodash-es/kebabCase.js","../src/common/const.ts","../src/internal/adopt-light-styles.ts","../src/components/anchor-heading/anchor-heading.component.ts","../src/components/badge/badge.component.ts","../node_modules/lit-html/directive-helpers.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/async-directive.js","../node_modules/lit-i18n/src/lit-i18n.js","../src/components/banner/banner.component.ts","../node_modules/lit-html/directives/if-defined.js","../src/components/breadcrumb-item/breadcrumb-item.component.ts","../src/components/breadcrumb/breadcrumb.component.ts","../src/internal/mixin/focusableMixin.ts","../src/internal/mixin/formElementMixin.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/locale/hu.js","../node_modules/dayjs/locale/en.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/weekday.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../src/localization/localization.ts","../src/internal/mixin/labelableMixin.ts","../src/common/utils.ts","../src/internal/mixin/sizedMixin.ts","../src/internal/mixin/genericFormElement.ts","../node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","../node_modules/class-variance-authority/dist/index.mjs","../src/components/button/button.variants.ts","../src/components/button/button.component.ts","../src/components/calendar/calendar-cell.component.ts","../src/components/calendar/calendar.component.ts","../src/components/callout/callout.component.ts","../src/components/card/card.component.ts","../src/components/card/card-actions.component.ts","../src/components/card/card-content.component.ts","../src/components/card/card-image.component.ts","../src/components/card/card-subtitle.component.ts","../src/components/card/card-title.component.ts","../src/internal/mixin/choiceElementMixin.ts","../src/internal/mixin/labelPositionedMixin.ts","../src/internal/mixin/labelPositionedFormElement.ts","../src/components/checkbox/checkbox.component.ts","../src/components/combobox/comboboxBase.ts","../src/components/combobox/combobox.component.ts","../src/components/content-switcher/content-switcher.component.ts","../src/components/content-switcher/content-switcher-item.component.ts","../src/components/datepicker/datepicker.component.ts","../src/components/divider/divider.component.ts","../src/components/feedback/feedback.component.ts","../src/common/errors.ts","../src/components/file-input/file-input.component.ts","../src/components/file-input/file-input-list.component.ts","../src/components/file-input/file-input-list-item.component.ts","../src/components/form/form-label/form-label.component.ts","../src/components/form/input-group/input-group.component.ts","../src/components/form/radio-group/radio-group.component.ts","../src/components/icon/icon.component.ts","../src/components/icon-button/icon-button.component.ts","../src/components/input/input-base-element.ts","../src/components/input/input.component.ts","../src/components/link/link.component.ts","../src/components/list-item/list-item.component.ts","../src/components/modal/modal-base-element.ts","../src/components/modal/modal.component.ts","../src/components/number-input/number-input.component.ts","../src/components/option-item/option-item.component.ts","../src/components/option-list/option-list.component.ts","../src/components/overlay/overlay.component.ts","../src/components/password-input/password-input.component.ts","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../src/components/popup/popup.component.ts","../src/components/radio-button/radio-button.component.ts","../src/components/search/search.component.ts","../src/components/select/select.component.ts","../src/components/skip-link/skip-link.component.ts","../src/components/spinner/spinner.component.ts","../src/components/stack/stack.component.ts","../src/components/switch/switch.component.ts","../src/components/tab/tab.component.ts","../node_modules/lit-html/directives/map.js","../src/components/tab/tab-group.component.ts","../src/components/table/table.component.ts","../src/components/table/table-cell.component.ts","../src/components/table/table-header.component.ts","../src/components/table/table-row.component.ts","../src/components/textarea/textarea.component.ts","../src/components/toc/toc.component.ts","../src/components/tooltip/tooltip.component.ts","../src/components/tray/tray.component.ts","../src/components/typography/typography.component.ts","../src/components/icons/arrows/arrows-arrow-down-line/arrows-arrow-down-line.component.ts","../src/components/icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component.ts","../src/components/icons/arrows/arrows-arrow-left-down-line/arrows-arrow-left-down-line.component.ts","../src/components/icons/arrows/arrows-arrow-left-l-line/arrows-arrow-left-l-line.component.ts","../src/components/icons/arrows/arrows-arrow-left-line/arrows-arrow-left-line.component.ts","../src/components/icons/arrows/arrows-arrow-left-s-line/arrows-arrow-left-s-line.component.ts","../src/components/icons/arrows/arrows-arrow-left-up-line/arrows-arrow-left-up-line.component.ts","../src/components/icons/arrows/arrows-arrow-right-down-line/arrows-arrow-right-down-line.component.ts","../src/components/icons/arrows/arrows-arrow-right-l-line/arrows-arrow-right-l-line.component.ts","../src/components/icons/arrows/arrows-arrow-right-line/arrows-arrow-right-line.component.ts","../src/components/icons/arrows/arrows-arrow-right-s-line/arrows-arrow-right-s-line.component.ts","../src/components/icons/arrows/arrows-arrow-right-up-line/arrows-arrow-right-up-line.component.ts","../src/components/icons/arrows/arrows-arrow-up-line/arrows-arrow-up-line.component.ts","../src/components/icons/arrows/arrows-arrow-up-s-line/arrows-arrow-up-s-line.component.ts","../src/components/icons/arrows/arrows-expand-up-down-fill/arrows-expand-up-down-fill.component.ts","../src/components/icons/buildings/buildings-home-6-line/buildings-home-6-line.component.ts","../src/components/icons/document/document-clipboard-line/document-clipboard-line.component.ts","../src/components/icons/document/document-file-copy-line/document-file-copy-line.component.ts","../src/components/icons/others/others-cookie-line/others-cookie-line.component.ts","../src/components/icons/system/system-add-line/system-add-line.component.ts","../src/components/icons/system/system-alert-fill/system-alert-fill.component.ts","../src/components/icons/system/system-alert-line/system-alert-line.component.ts","../src/components/icons/system/system-check-line/system-check-line.component.ts","../src/components/icons/system/system-check-line2/system-check-line2.component.ts","../src/components/icons/system/system-checkbox-blank-circle-fill/system-checkbox-blank-circle-fill.component.ts","../src/components/icons/system/system-checkbox-blank-circle-line/system-checkbox-blank-circle-line.component.ts","../src/components/icons/system/system-checkbox-circle-fill/system-checkbox-circle-fill.component.ts","../src/components/icons/system/system-checkbox-circle-line/system-checkbox-circle-line.component.ts","../src/components/icons/system/system-close-circle-fill/system-close-circle-fill.component.ts","../src/components/icons/system/system-close-circle-line/system-close-circle-line.component.ts","../src/components/icons/system/system-close-fill/system-close-fill.component.ts","../src/components/icons/system/system-close-line/system-close-line.component.ts","../src/components/icons/system/system-download-line/system-download-line.component.ts","../src/components/icons/system/system-error-warning-fill/system-error-warning-fill.component.ts","../src/components/icons/system/system-error-warning-line/system-error-warning-line.component.ts","../src/components/icons/system/system-external-link-line/system-external-link-line.component.ts","../src/components/icons/system/system-eye-line/system-eye-line.component.ts","../src/components/icons/system/system-eye-off-line/system-eye-off-line.component.ts","../src/components/icons/system/system-forbid-fill/system-forbid-fill.component.ts","../src/components/icons/system/system-information-2-fill/system-information-2-fill.component.ts","../src/components/icons/system/system-information-fill/system-information-fill.component.ts","../src/components/icons/system/system-information-line/system-information-line.component.ts","../src/components/icons/system/system-lightbulb-fill/system-lightbulb-fill.component.ts","../src/components/icons/system/system-loading-spinner/system-loading-spinner.component.ts","../src/components/icons/system/system-menu-line/system-menu-line.component.ts","../src/components/icons/system/system-menu-line-s/system-menu-line-s.component.ts","../src/components/icons/system/system-search-line/system-search-line.component.ts","../src/components/icons/system/system-subtract-line/system-subtract-line.component.ts","../src/components/icons/system/system-subtract-line2/system-subtract-line2.component.ts"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst n=globalThis,c=n.trustedTypes,h=c?c.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,f=\"$lit$\",v=`lit$${Math.random().toFixed(9).slice(2)}$`,m=\"?\"+v,_=`<${m}>`,w=document,lt=()=>w.createComment(\"\"),st=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,g=Array.isArray,$=t=>g(t)||\"function\"==typeof t?.[Symbol.iterator],x=\"[ \\t\\n\\f\\r]\",T=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,E=/-->/g,k=/>/g,O=RegExp(`>|${x}(?:([^\\\\s\"'>=/]+)(${x}*=${x}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),S=/'/g,j=/\"/g,M=/^(?:script|style|textarea|title)$/i,P=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),ke=P(1),Oe=P(2),Se=P(3),R=Symbol.for(\"lit-noChange\"),D=Symbol.for(\"lit-nothing\"),V=new WeakMap,I=w.createTreeWalker(w,129);function N(t,i){if(!g(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==h?h.createHTML(i):i}const U=(t,i)=>{const s=t.length-1,e=[];let h,o=2===i?\"<svg>\":3===i?\"<math>\":\"\",n=T;for(let i=0;i<s;i++){const s=t[i];let r,l,c=-1,a=0;for(;a<s.length&&(n.lastIndex=a,l=n.exec(s),null!==l);)a=n.lastIndex,n===T?\"!--\"===l[1]?n=E:void 0!==l[1]?n=k:void 0!==l[2]?(M.test(l[2])&&(h=RegExp(\"</\"+l[2],\"g\")),n=O):void 0!==l[3]&&(n=O):n===O?\">\"===l[0]?(n=h??T,c=-1):void 0===l[1]?c=-2:(c=n.lastIndex-l[2].length,r=l[1],n=void 0===l[3]?O:'\"'===l[3]?j:S):n===j||n===S?n=O:n===E||n===k?n=T:(n=O,h=void 0);const u=n===O&&t[i+1].startsWith(\"/>\")?\" \":\"\";o+=n===T?s+_:c>=0?(e.push(r),s.slice(0,c)+f+s.slice(c)+v+u):s+v+(-2===c?i:u)}return[N(t,o+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class B{constructor({strings:t,_$litType$:i},s){let e;this.parts=[];let h=0,o=0;const n=t.length-1,r=this.parts,[l,a]=U(t,i);if(this.el=B.createElement(l,s),I.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(e=I.nextNode())&&r.length<n;){if(1===e.nodeType){if(e.hasAttributes())for(const t of e.getAttributeNames())if(t.endsWith(f)){const i=a[o++],s=e.getAttribute(t).split(v),n=/([.?@])?(.*)/.exec(i);r.push({type:1,index:h,name:n[2],strings:s,ctor:\".\"===n[1]?Y:\"?\"===n[1]?Z:\"@\"===n[1]?q:G}),e.removeAttribute(t)}else t.startsWith(v)&&(r.push({type:6,index:h}),e.removeAttribute(t));if(M.test(e.tagName)){const t=e.textContent.split(v),i=t.length-1;if(i>0){e.textContent=c?c.emptyScript:\"\";for(let s=0;s<i;s++)e.append(t[s],lt()),I.nextNode(),r.push({type:2,index:++h});e.append(t[i],lt())}}}else if(8===e.nodeType)if(e.data===m)r.push({type:2,index:h});else{let t=-1;for(;-1!==(t=e.data.indexOf(v,t+1));)r.push({type:7,index:h}),t+=v.length-1}h++}}static createElement(t,i){const s=w.createElement(\"template\");return s.innerHTML=t,s}}function z(t,i,s=t,e){if(i===R)return i;let h=void 0!==e?s.o?.[e]:s.l;const o=st(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s.o??=[])[e]=h:s.l=h),void 0!==h&&(i=z(t,h._$AS(t,i.values),h,e)),i}class F{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??w).importNode(i,!0);I.currentNode=e;let h=I.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new et(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new K(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=I.nextNode(),o++)}return I.currentNode=w,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class et{get _$AU(){return this._$AM?._$AU??this.v}constructor(t,i,s,e){this.type=2,this._$AH=D,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this.v=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=z(this,t,i),st(t)?t===D||null==t||\"\"===t?(this._$AH!==D&&this._$AR(),this._$AH=D):t!==this._$AH&&t!==R&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):$(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==D&&st(this._$AH)?this._$AA.nextSibling.data=t:this.T(w.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=B.createElement(N(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new F(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=V.get(t.strings);return void 0===i&&V.set(t.strings,i=new B(t)),i}k(t){g(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new et(this.O(lt()),this.O(lt()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this.v=t,this._$AP?.(t))}}class G{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=D,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=D}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=z(this,t,i,0),o=!st(t)||t!==this._$AH&&t!==R,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=z(this,e[s+n],i,n),r===R&&(r=this._$AH[n]),o||=!st(r)||r!==this._$AH[n],r===D?t=D:t!==D&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===D?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class Y extends G{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===D?void 0:t}}class Z extends G{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==D)}}class q extends G{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=z(this,t,i,0)??D)===R)return;const s=this._$AH,e=t===D&&s!==D||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==D&&(s===D||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class K{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){z(this,t)}}const si={M:f,P:v,A:m,C:1,L:U,R:F,D:$,V:z,I:et,H:G,N:Z,U:q,B:Y,F:K},Re=n.litHtmlPolyfillSupport;Re?.(B,et),(n.litHtmlVersions??=[]).push(\"3.2.0\");const Q=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new et(i.insertBefore(lt(),t),t,void 0,s??{})}return h._$AI(t),h};export{si as _$LH,ke as html,Se as mathml,R as noChange,D as nothing,Q as render,Oe as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as e}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as n,noChange as l}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class h extends e{constructor(){super(...arguments),this.renderOptions={host:this},this.o=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this.o=n(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this.o?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this.o?.setConnected(!1)}render(){return l}}h._$litElement$=!0,h[\"finalized\"]=!0,globalThis.litElementHydrateSupport?.({LitElement:h});const f=globalThis.litElementPolyfillSupport;f?.({LitElement:h});const x={_$AK:(t,e,s)=>{t._$AK(e,s)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.1.0\");export{h as LitElement,x as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet e;function r(r){return(n,o)=>t(n,o,{get(){return(this.renderRoot??(e??=document.createDocumentFragment())).querySelectorAll(r)}})}export{r as queryAll};\n//# sourceMappingURL=query-all.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o){return(e,n)=>{const{slot:r,selector:s}=o??{},c=\"slot\"+(r?`[name=${r}]`:\":not([name])\");return t(e,n,{get(){const t=this.renderRoot?.querySelector(c),e=t?.assignedElements(o)??[];return void 0===s?e:e.filter((t=>t.matches(s)))}})}}export{o as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import{html as A,svg as C,mathml as L}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst $e=Symbol.for(\"\"),xe=t=>{if(t?.r===$e)return t?._$litStatic$},tr=t=>({_$litStatic$:t,r:$e}),er=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:$e}),Te=new Map,Ee=t=>(r,...e)=>{const a=e.length;let o,s;const i=[],l=[];let n,u=0,c=!1;for(;u<a;){for(n=r[u];u<a&&void 0!==(s=e[u],o=xe(s));)n+=o+r[++u],c=!0;u!==a&&l.push(s),i.push(n),u++}if(u===a&&i.push(r[a]),c){const t=i.join(\"$$lit$$\");void 0===(r=Te.get(t))&&(i.raw=i,Te.set(t,r=i)),e=l}return t(r,...e)},ke=Ee(A),Oe=Ee(C),Se=Ee(L);export{ke as html,er as literal,Se as mathml,Oe as svg,tr as unsafeStatic,Ee as withStatic};\n//# sourceMappingURL=static.js.map\n","import { LitElement } from 'lit'\n\nimport { EventOptions } from './event'\n\nexport class DdsElement extends LitElement {\n emit<V = Record<PropertyKey, any>>(\n name: string,\n value?: V,\n options?: EventOptions,\n ) {\n const event = new CustomEvent<V>(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: value ? ({ ...value } as V) : undefined,\n ...options,\n })\n\n this.dispatchEvent(event)\n\n return event\n }\n}\n","import { clsx } from 'clsx'\nimport { TemplateResult, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport { CommonSize, HeadingLevel } from '../../common/types'\nimport styles from './accordion.scss?inline'\n\n/**\n * `dap-ds-accordion` is a custom accordion component.\n * @element dap-ds-accordion\n * @summary An accordion is a vertically stacked list of interactive items that can be expanded or collapsed to reveal or hide content.\n * @title - Accordion\n *\n * @attribute {CommonSize} size - The size of the accordion. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {HeadingLevel} headingLevel - The heading level of the accordion. Default is `4`. Can be `1`, `2`, `3`, `4`, `5`, or `6`.\n * @attribute {boolean} opened - Whether the accordion is opened.\n * @attribute {'left' | 'right'} iconLocation - The location of the icon. Default is `left`. Can be `left` or `right`.\n *\n * @event dds-opened - Event fired when the accordion is opened.\n * @event dds-closed - Event fired when the accordion is closed.\n *\n * @slot default - The content of the accordion.\n * @slot heading - The heading of the accordion.\n * @slot icon-opened - The icon when the accordion is opened.\n * @slot icon-closed - The icon when the accordion is closed.\n *\n * @csspart base - The main accordion container.\n * @csspart heading - The heading of the accordion.\n * @csspart button - The button of the accordion.\n * @csspart icon-holder - The icon holder of the accordion.\n * @csspart content - The content of the accordion.\n */\n@customElement('dap-ds-accordion')\nexport default class DapDSAccordion extends DdsElement {\n static styles = unsafeCSS(styles)\n\n @property({ type: String }) size: CommonSize = 'sm'\n @property({ type: Number })\n headingLevel: HeadingLevel = 4\n @property({ type: Boolean, reflect: true }) opened = false\n @property({ type: String }) iconLocation: 'left' | 'right' = 'right'\n\n connectedCallback() {\n super.connectedCallback()\n this.onChange()\n }\n\n private onChange() {\n let event\n if (this.opened) {\n event = new CustomEvent('dds-opened', {\n bubbles: true,\n composed: true,\n detail: { AccordionOpen: true, item: this },\n })\n } else {\n event = new CustomEvent('dds-closed', {\n bubbles: true,\n composed: true,\n detail: { AccordionOpen: false, item: this },\n })\n }\n\n this.dispatchEvent(event)\n }\n\n private toggle() {\n this.opened = !this.opened\n this.onChange()\n }\n\n private renderButtons() {\n return html`\n <button\n class=\"accordion__button\"\n type=\"button\"\n part=\"button\"\n id=\"accordion\"\n aria-controls=\"accordion-content\"\n aria-expanded=\"${this.opened}\">\n <span\n class=\"accordion__icon-holder\"\n aria-hidden=\"true\"\n part=\"icon-holder\">\n <slot name=\"icon-opened\" class=\"accordion__icon-opened\">\n <dap-ds-icon\n size=\"${this.size}\"\n name=\"arrow-up-s-line\"\n class=\"\"></dap-ds-icon>\n </slot>\n <slot name=\"icon-closed\" class=\"accordion__icon-closed\">\n <dap-ds-icon\n size=\"${this.size}\"\n name=\"arrow-down-s-line\"\n class=\"\"></dap-ds-icon>\n </slot>\n </span>\n <slot name=\"heading\"></slot>\n </button>\n `\n }\n\n private renderContent() {\n return html`\n <div\n part=\"content\"\n class=\"accordion__content\"\n .aria-hidden=\"${!this.opened}\"\n id=\"accordion-content\"\n aria-labelledby=\"accordion\"\n role=\"region\">\n <div class=\"accordion-content__container\">\n <slot></slot>\n </div>\n </div>\n `\n }\n\n private renderHeading(): TemplateResult {\n return html`\n <div class=\"accordion__heading\" part=\"heading\" @click=${this.toggle}>\n <${unsafeStatic(`h${this.headingLevel}`)}\n class=\"accordion__heading-content\">\n ${this.renderButtons()}\n </${unsafeStatic(`h${this.headingLevel}`)}>\n </div>\n `\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx('accordion', {\n 'accordion--opened': this.opened,\n 'accordion--sm': this.size === 'sm',\n 'accordion--lg': this.size === 'lg',\n 'accordion--icon-left': this.iconLocation === 'left',\n 'accordion--icon-right': this.iconLocation === 'right',\n })}>\n ${this.renderHeading()} ${this.renderContent()}\n </div>\n `\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, queryAssignedElements } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport DapDSAccordion from '../accordion/accordion.component'\nimport styles from './accordion-group.scss?inline'\n\n/**\n * `dap-ds-accordion-group` is a custom accordion group component.\n * @element dap-ds-accordion-group\n * @summary An accordion group is a collection of accordion components.\n * @title - Accordion group\n *\n * @event dds-change - Event fired when an accordion is opened or closed.\n *\n * @slot - The content of the accordion group.\n *\n * @csspart base - The main accordion group container.\n */\n@customElement('dap-ds-accordion-group')\nexport default class DapDSAccordionGroup extends DdsElement {\n @queryAssignedElements({ selector: 'dap-ds-accordion' })\n accordions!: Array<DapDSAccordion>\n\n static styles = unsafeCSS(styles)\n\n connectedCallback() {\n super.connectedCallback()\n this.addEventListener('dds-change', this.onAccordionChange as EventListener)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n this.removeEventListener(\n 'dds-change',\n this.onAccordionChange as EventListener,\n )\n }\n\n onAccordionChange(event: CustomEvent) {\n const openedAccordion = event.detail.item\n\n this.accordions.forEach(accordion => {\n if (openedAccordion !== accordion) {\n accordion.removeAttribute('opened')\n }\n })\n }\n\n render() {\n return html`\n <div part=\"base\" class=\"accordion-group\">\n <slot></slot>\n </div>\n `\n }\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","export const anchorClass = 'dds-anchor'\n","export const adoptLightStyles = (element: HTMLElement) => {\n const global = window\n const supportsAdoptingStyleSheets =\n global.ShadowRoot &&\n (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype\n\n const styles = (element.constructor as any).styles\n\n const myStyleSheet = new CSSStyleSheet()\n myStyleSheet.replace(styles)\n\n if (supportsAdoptingStyleSheets) {\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, myStyleSheet]\n } else {\n styles.forEach((s: any) => {\n const style = document.createElement('style')\n const nonce = (global as any)['litNonce']\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce)\n }\n style.textContent = s.cssText\n document.head.appendChild(style)\n })\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\nimport { kebabCase } from 'lodash-es'\n\nimport { anchorClass } from '@/common/const'\nimport { adoptLightStyles } from '@/internal/adopt-light-styles'\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport { TypographyVariant } from '../typography/typography.component'\nimport typographyStyles from '../typography/typography.scss?inline'\nimport styles from './anchor-heading.scss?inline'\n\nexport type HeadingVariant = Extract<\n TypographyVariant,\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n>\n\n/**\n * `dap-ds-anchor-heading`\n * @summary Anchor heading is a heading with an anchor link.\n * @element dap-ds-anchor-heading\n * @title - Anchor heading\n *\n */\n@customElement('dap-ds-anchor-heading')\nexport default class DapDSAnchorHeading extends DdsElement {\n @property() variant!: HeadingVariant\n @property() label!: string\n\n static styles = [unsafeCSS(styles), unsafeCSS(typographyStyles)]\n\n createRenderRoot() {\n adoptLightStyles(this)\n return this\n }\n\n get elementId() {\n return this.id ? this.id : kebabCase(this.label)\n }\n\n get anchorTitle() {\n return `Link to ${this.label}`\n }\n\n render() {\n return html`\n <${unsafeStatic(this.variant)}\n id=${this.elementId}\n class=${clsx(anchorClass, { [`typography-${this.variant}`]: this.variant })}\n >\n ${this.label}\n <dap-ds-link\n class=\"dds-anchor__link\"\n href=${`#${this.elementId}`}\n aria-label=${this.anchorTitle}\n title=${this.anchorTitle}>\n &#8203;\n </dap-ds-link>\n </${unsafeStatic(this.variant)}>\n `\n }\n}\n","import clsx from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonSize } from '@/common/types'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './badge.scss?inline'\n\nexport type BadgeType =\n | 'neutral'\n | 'brand'\n | 'info'\n | 'positive'\n | 'warning'\n | 'negative'\n\n/**\n * `dap-ds-badge`\n * @summary A badge is a small status descriptor for UI elements.\n * @element dap-ds-badge\n * @title - Badge\n *\n * @attribute {'neutral' | 'brand' | 'info' | 'positive' | 'warning' | 'negative'} type - The type of the badge. Default is `neutral`. Can be `neutral`, `brand`, `info`, `positive`, `warning`, or `negative`.\n * @attribute {'sm' | 'lg'} size - The size of the badge. Default is `sm`. Can be `sm` or `lg`.\n *\n * @slot - The content of the badge.\n * @slot icon - The icon of the badge.\n *\n * @csspart base - The main container of the badge.\n * @csspart icon - The icon of the badge.\n * @csspart content - The content of the badge.\n */\n@customElement('dap-ds-badge')\nexport default class DapDSBadge extends DdsElement {\n @property() type: BadgeType = 'neutral'\n @property() size: CommonSize = 'sm'\n @property() icon: string\n\n static styles = unsafeCSS(styles)\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n this.setAttribute('role', 'status')\n\n if (this.shadowRoot) {\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]',\n ) as HTMLSlotElement\n if (iconSlot) {\n if (iconSlot.assignedElements().length) {\n iconSlot\n .assignedElements()[0]\n .setAttribute('staticSize', this.getIconSize(this.size))\n }\n }\n }\n }\n\n private getIconSize(size: CommonSize) {\n return size === 'sm' ? '12' : '16'\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx('badge', `badge--${this.type}`, `badge--${this.size}`)}>\n <dap-ds-stack direction=\"row\">\n ${this.icon\n ? html` <dap-ds-icon\n part=\"content\"\n name=\"${this.icon}\"\n staticSize=${this.getIconSize(this.size)}>\n </dap-ds-icon>`\n : html` <slot name=\"icon\" part=\"icon\"></slot> `}\n <slot part=\"content\"></slot>\n </dap-ds-stack>\n </div>\n `\n }\n}\n","import{_$LH as io}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:et}=io,st=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,no={HTML:1,SVG:2,MATHML:3},nt=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,ot=o=>null!=o?._$litType$?.h,eo=o=>void 0!==o?._$litDirective$,lo=o=>o?._$litDirective$,rt=o=>void 0===o.strings,lt=()=>document.createComment(\"\"),at=(o,t,i)=>{const n=o._$AA.parentNode,e=void 0===t?o._$AB:t._$AA;if(void 0===i){const t=n.insertBefore(lt(),e),l=n.insertBefore(lt(),e);i=new et(t,l,o,o.options)}else{const t=i._$AB.nextSibling,l=i._$AM,c=l!==o;if(c){let t;i._$AQ?.(o),i._$AM=o,void 0!==i._$AP&&(t=o._$AU)!==l._$AU&&i._$AP(t)}if(t!==e||c){let o=i._$AA;for(;o!==t;){const t=o.nextSibling;n.insertBefore(o,e),o=t}}}return i},ct=(o,t,i=o)=>(o._$AI(t,i),o),ht={},dt=(o,t=ht)=>o._$AH=t,ut=o=>o._$AH,pt=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},ft=o=>{o._$AR()};export{no as TemplateResultType,ft as clearPart,ut as getCommittedValue,lo as getDirectiveClass,at as insertPart,ot as isCompiledTemplateResult,eo as isDirectiveResult,st as isPrimitive,rt as isSingleExpression,nt as isTemplateResult,pt as removePart,ct as setChildPartValue,dt as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this.t=t,this._$AM=e,this.i=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{isSingleExpression as rt}from\"./directive-helpers.js\";import{Directive as i,PartType as t}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const mt=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),mt(i,t);return!0},_t=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},wt=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),gt(t)}};function bt(i){void 0!==this._$AN?(_t(this),this._$AM=i,wt(this)):this._$AM=i}function yt(i,t=!1,e=0){const s=this._$AH,o=this._$AN;if(void 0!==o&&0!==o.size)if(t)if(Array.isArray(s))for(let i=e;i<s.length;i++)mt(s[i],!1),_t(s[i]);else null!=s&&(mt(s,!1),_t(s));else mt(this,i)}const gt=i=>{i.type==t.CHILD&&(i._$AP??=yt,i._$AQ??=bt)};class $t extends i{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),wt(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(mt(this,i),_t(this))}setValue(i){if(rt(this.t))this.t._$AI(i,this);else{const t=[...this.t._$AH];t[this.i]=i,this.t._$AI(t,this,0)}}disconnected(){}reconnected(){}}export{$t as AsyncDirective,i as Directive,t as PartType};\n//# sourceMappingURL=async-directive.js.map\n","// @ts-check\r\nimport { noChange } from 'lit-html';\r\nimport { directive, AsyncDirective } from 'lit-html/async-directive.js';\r\nimport { PartType } from 'lit-html/directive.js';\r\n\r\n/** @type {import('i18next').i18n | null} */\r\nlet i18n = null;\r\n\r\n/** @type {(i18n: import('i18next').i18n) => void} */\r\nlet i18nResolver = () => {};\r\n\r\nconst i18Provider = new Promise((res) => {\r\n i18nResolver = res;\r\n});\r\n\r\n/** @type {import('i18next').ThirdPartyModule} */\r\nexport const initLitI18n = {\r\n type: '3rdParty',\r\n\r\n /**\r\n * initialize the i18next instance to use\r\n * @param {import('i18next').i18n} i18nextInstance to use\r\n */\r\n init(i18nextInstance) {\r\n setI18n(i18nextInstance);\r\n },\r\n};\r\n\r\n/**\r\n * Sets the i18next instance to use for the translations.\r\n * Favor using the plugin\r\n * @example\r\n * ```js\r\n * i18next.use(initLitI18n)\r\n * ```\r\n * @param {import('i18next').i18n} i18nextInstance\r\n */\r\nexport const setI18n = (i18nextInstance) => {\r\n i18n = i18nextInstance;\r\n i18nResolver(i18n);\r\n};\r\n\r\n/**\r\n * Used to keep track of Parts that need to be updated should the language change.\r\n * @type {Map<TranslateBase, { keys?: string|string[]; options?: {}; }>}\r\n */\r\nexport const registry = new Map();\r\n\r\n/**\r\n * Removes parts that are no longer connected.\r\n * Called internally on a timer but can also be called manually.\r\n */\r\nexport const registryCleanup = () => {\r\n registry.forEach((details, part) => {\r\n if (part.isConnected === false || isConnected(part) === false) {\r\n registry.delete(part);\r\n }\r\n });\r\n};\r\n\r\n/** lit-html does not seem to fire life cycle hook for part disconnected, we need to record and manage parts ourselves. */\r\nsetInterval(registryCleanup, 10000);\r\n\r\nlet initialized = false;\r\n\r\n/** Iterates all registered translate directives re-evaluating the translations */\r\nconst updateAll = () => {\r\n registry.forEach((details, part) => {\r\n if (part.isConnected && isConnected(part)) {\r\n const translation = translateAndInit(details.keys, details.options);\r\n part.setValue(translation);\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * Lazily sets up i18next. Incase this library is loaded before i18next has been loaded.\r\n * This defers i18next setup until the first translation is requested.\r\n * @param {string|string[]} [keys]\r\n * @param {any} [opts]\r\n * @returns {string}\r\n */\r\nfunction translateAndInit(keys, opts) {\r\n if (!i18n) {\r\n return '';\r\n }\r\n\r\n if (initialized === false) {\r\n /** Handle language changes */\r\n i18n.on('languageChanged', updateAll);\r\n // @ts-ignore\r\n i18n.store.on('added', updateAll);\r\n initialized = true;\r\n }\r\n\r\n const translation = i18n.t(keys, opts);\r\n\r\n if (typeof translation === 'string') {\r\n return translation;\r\n }\r\n // returnObjects not supported https://www.i18next.com/translation-function/objects-and-arrays#objects\r\n return '';\r\n}\r\n\r\n/**\r\n * @param {TranslateBase} translateDirective\r\n * @returns {boolean}\r\n */\r\nconst isConnected = (translateDirective) => {\r\n // eslint-disable-next-line prefer-destructuring\r\n const part = /** @type {import('lit-html/directive.js').Part} */ (translateDirective.part);\r\n if (part.type === PartType.ATTRIBUTE) return part.element.isConnected;\r\n if (part.type === PartType.CHILD) return part.parentNode ? part.parentNode.isConnected : false;\r\n if (part.type === PartType.PROPERTY) return part.element.isConnected;\r\n if (part.type === PartType.BOOLEAN_ATTRIBUTE) return part.element.isConnected;\r\n if (part.type === PartType.EVENT) return part.element.isConnected;\r\n if (part.type === PartType.ELEMENT) return part.element.isConnected;\r\n throw new Error('Unsupported Part');\r\n};\r\n\r\n/** */\r\nclass TranslateBase extends AsyncDirective {\r\n /** @abstract */\r\n render() {}\r\n\r\n /** @param {import('lit-html/directive.js').PartInfo} part */\r\n constructor(part) {\r\n super(part);\r\n\r\n this.value = '';\r\n /** @type {import('lit-html/directive.js').PartInfo} */\r\n this.part = part;\r\n }\r\n\r\n /**\r\n * @param {string | string[]} [keys] - translation key\r\n * @param {?any} [options] - i18next translation options\r\n * @returns {string|Symbol} translated string\r\n */\r\n translate(keys, options) {\r\n let opts = options;\r\n registry.set(this, { keys, options: opts });\r\n\r\n if (typeof options === 'function') {\r\n opts = options();\r\n }\r\n\r\n const translation = translateAndInit(keys, opts);\r\n\r\n if (this.isConnected === false || translation === undefined || this.value === translation) {\r\n return noChange;\r\n }\r\n\r\n return translation;\r\n }\r\n\r\n /** clean up the registry */\r\n disconnected() {\r\n registry.delete(this);\r\n }\r\n}\r\n\r\n/** */\r\nclass Translate extends TranslateBase {\r\n /**\r\n * @param {string | string[]} [keys] - translation key\r\n * @param {any} [options] - i18next translation options\r\n * @returns {string|Symbol} translated string\r\n */\r\n render(keys, options) {\r\n i18Provider?.then(() => {\r\n this.setValue(this.translate(keys, options));\r\n });\r\n return noChange;\r\n }\r\n}\r\n\r\n/** */\r\nclass TranslateWhen extends TranslateBase {\r\n /**\r\n * @param {Promise} [promise] to wait for\r\n * @param {string | string[]} [keys] - translation key\r\n * @param {any} [options] - i18next translation options\r\n * @returns {string|Symbol} translated string\r\n */\r\n render(promise, keys, options) {\r\n promise?.then(() => {\r\n this.setValue(this.translate(keys, options));\r\n });\r\n return noChange;\r\n }\r\n}\r\n\r\n/**\r\n * The translate directive\r\n * @example\r\n * ```js\r\n * import { translate as t, i18next, html, render } from 'lit-i18n/src/lit-i18n.js';\r\n * i18next.init({...i18next config...});\r\n * class MyElement extends HTMLElement {\r\n * connectedCallback() {\r\n * this.person = { name: 'Fred', age: 23, male: true };\r\n * render(this.renderTemplate, this);\r\n * }\r\n * get renderTemplate() {\r\n * return html`\r\n * <span class=\"basic\">${t('introduceself', { name: this.person.name })}</span>\r\n * <div class=\"title\" title=\"${t('divtitle')}\">Div with translated title</div>\r\n * <div class=\"title-interpolation\" title=\"${t('whatishow', { what: 'i18next', how: 'great' })}\"></div>\r\n * <span class=\"person\">${t('datamodel', { person: this.person })}</span>\r\n * <input class=\"placeholder\" type=\"text\" placeholder=\"${t('entername')}\" />\r\n * `;\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport const translate = directive(Translate);\r\n\r\n/**\r\n * @deprecated as of 4.0.0 use `translate` which already guarantees i18next is initialized\r\n * Can be used like translate but it also takes a Promise. This can be used if you can't guarantee if the i18next resource bundle is loaded.\r\n * @example\r\n * ```js\r\n * import { translateWhen } from 'lit-i18n/src/lit-i18n.js';\r\n * const initializeI18next = i18next.use(someBackend).init(....);\r\n * const translateDirective = (keys, options) => translateWhen(initializeI18next, keys, options);\r\n * // Now you can use translateDirective in your lit-html templates.\r\n * html`<div>${translateDirective('some.key')}</div>`\r\n * ```\r\n */\r\nexport const translateWhen = directive(TranslateWhen);\r\n","import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\nimport { translate } from 'lit-i18n'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport styles from './banner.scss?inline'\n\nexport type BannerTheme = 'clean' | 'normal'\n\nexport type BannerVariant =\n | 'brand'\n | 'positive'\n | 'info'\n | 'warning'\n | 'negative'\n\nconst iconNameMap = {\n brand: 'information-2-fill',\n info: 'information-fill',\n positive: 'checkbox-circle-fill',\n warning: 'alert-fill',\n negative: 'error-warning-fill',\n}\n\n/**\n * `dap-ds-banner` is a custom banner component.\n * @element dap-ds-banner\n * @summary A banner is a message displayed at the top of the page to provide important information to the user.\n * @title - Banner\n *\n * @attribute {'brand' |'info' | 'positive' | 'warning' | 'negative'} variant - The type of the banner.\n * @attribute {boolean} closeable - Whether the banner is closeable.\n * @attribute {string} opened - State of the banner. If false banner is hidden.\n * @attribute {string} closeButtonAriaLabel - The aria-label for the close button.\n *\n * @event dds-close - Event fired when the banner is closed.\n *\n * @slot The content of the banner.\n * @slot actions - Actions of banner\n * @slot icon - The icon of the banner.\n *\n * @csspart base - The main banner container.\n * @csspart icon - The icon of the banner.\n * @csspart closebutton - The close button of the banner.\n * @csspart icon - The icon of the banner.\n * @csspart actions - The actions of the banner.\n * @csspart title - The title of the banner.\n *\n */\n@customElement('dap-ds-banner')\nexport default class DapDSBanner extends DdsElement {\n @property() variant: BannerVariant = 'brand'\n\n @property({ type: Boolean }) closeable: boolean\n @property({ reflect: true }) opened: string = 'true'\n @property({ type: String })\n closeButtonLabel = 'close'\n @property({ type: String }) icon: string\n\n static styles = unsafeCSS(styles)\n\n private onCloseClick() {\n this.emit('dds-close')\n }\n\n render() {\n const icon = iconNameMap[this.variant]\n\n if (this.opened == 'false') {\n return nothing\n }\n return html`\n <dap-ds-card size=\"lg\">\n <dap-ds-card-content class=${clsx(`banner--${this.variant}`)}>\n <div class=${clsx('banner', `banner--${this.variant}`)} part=\"base\">\n <div class=\"banner__icon-container\">\n <slot part=\"icon\" name=\"icon\">\n <dap-ds-icon\n part=\"icon\"\n class=\"banner__icon\"\n name=\"${this.icon || icon}\">\n </dap-ds-icon>\n </slot>\n </div>\n <div>\n <slot class=\"banner__content\"></slot>\n\n <div class=\"banner__actions\">\n <slot name=\"actions\" part=\"actions\"></slot>\n </div>\n </div>\n\n ${this.closeable\n ? html`\n <dap-ds-icon-button\n class=\"banner__close\"\n variant=\"inverted\"\n clean\n size=\"lg\"\n part=\"closebutton\"\n @click=\"${this.onCloseClick}\"\n ariaLabel=${this.closeButtonLabel ?? translate('close')}>\n <dap-ds-icon name=\"close-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n `\n : nothing}\n </div>\n </dap-ds-card-content>\n </dap-ds-card>\n `\n }\n}\n","import{nothing as D}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const to=t=>t??D;export{to as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import clsx from 'clsx'\nimport { html, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { LinkTarget } from '@/common/types'\nimport { DdsElement } from '@/internal/dds-hu-element.js'\n\nimport styles from './breadcrumb-item.scss?inline'\n\n/**\n * `dap-ds-breadcrumb-item` custom element.\n * @element dap-ds-breadcrumb-item\n * @summary A breadcrumb item is a secondary navigation scheme that reveals the user's location in a website or Web application.\n * @title - Breadcrumb item\n *\n * @attribute {string} href - The URL of the breadcrumb item.\n * @attribute {'_blank' | '_self' | '_parent' | '_top'} target - The target of the breadcrumb item. Default is `_self`. Can be `_blank`, `_self`, `_parent`, or `_top`.\n * @attribute {string} rel - The rel of the breadcrumb item link.\n * @attribute {boolean} disabled - Whether the breadcrumb item is disabled.\n * @attribute {boolean} last - Whether the breadcrumb item is the last one in the list\n *\n * @slot - The content of the breadcrumb item.\n *\n * @csspart base - The main breadcrumb item container.\n * @csspart link - The link of the breadcrumb item.\n */\n@customElement('dap-ds-breadcrumb-item')\nexport default class DapDSBreadcrumbItem extends DdsElement {\n @property() href?: string\n @property() target?: LinkTarget\n @property() rel = 'noreferrer noopener'\n @property({ type: Boolean }) disabled = false\n @property({ type: Boolean }) inverted = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <li\n part=\"base\"\n class=${clsx('breadcrumb-item', {\n 'breadcrumb-item--inverted': this.inverted,\n })}>\n ${this.href\n ? html`\n <dap-ds-link\n theme=\"brand\"\n bold\n part=\"link\"\n class=${clsx('breadcrumb-item', {\n 'breadcrumb-item--href': this.href,\n 'breadcrumb-item--inverted': this.inverted,\n })}\n href=\"${this.href!}\"\n target=\"${ifDefined(this.target)}\"\n rel=${ifDefined(this.target ? this.rel : undefined)}\n .disabled=${this.disabled}>\n <slot></slot>\n </dap-ds-link>\n `\n : html`<span class=${clsx('breadcrumb-item-nolink')}>\n <slot></slot>\n </span>`}\n\n <span\n part=\"separator\"\n class=\"breadcrumb-item__separator\"\n aria-hidden=\"true\">\n <slot name=\"separator\">\n <dap-ds-icon name=\"arrow-right-s-line\"></dap-ds-icon>\n </slot>\n </span>\n </li>\n `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport DapDSBreadcrumbItem from '../breadcrumb-item/breadcrumb-item.component'\nimport styles from './breadcrumb.scss?inline'\n\n/**\n * `dap-ds-breadcrumb`\n * @summary A breadcrumb is a secondary navigation scheme that reveals the user's location in a website or Web application.\n * @element dap-ds-breadcrumb\n * @title - Breadcrumb\n *\n * @attribute {string} label - The label of the breadcrumb.\n *\n * @slot - The content of the breadcrumb.\n *\n * @csspart base - The main breadcrumb container.\n * @csspart separator - The separator of the breadcrumb.\n */\n@customElement('dap-ds-breadcrumb')\nexport default class DapDSBreadcrumb extends DdsElement {\n static styles = unsafeCSS(styles)\n @query('slot') defaultSlot!: HTMLSlotElement\n @query('slot[name=\"separator\"]') separatorSlot!: HTMLSlotElement\n @property({ type: String }) label = ''\n @property({ type: Boolean }) inverted = false\n @property({ type: Boolean }) mobile = false\n\n private cloneSeparator() {\n const separator = this.separatorSlot.assignedElements({\n flatten: true,\n })[0] as HTMLElement\n\n const clone = separator.cloneNode(true) as HTMLElement\n clone.slot = 'separator'\n\n return clone\n }\n\n private handleSlotChange(): void {\n const items = Array.from(\n this.defaultSlot.assignedElements({ flatten: true }),\n ).filter(\n (el): el is DapDSBreadcrumbItem => el instanceof DapDSBreadcrumbItem,\n )\n\n items.forEach((item, index) => {\n const isLast = index === items.length - 1\n\n if (this.mobile && index !== 0 && !isLast) {\n item.remove()\n return\n }\n\n item.toggleAttribute('inverted', this.inverted)\n if (isLast) {\n item.setAttribute('aria-current', 'page')\n }\n item.toggleAttribute('disabled', isLast)\n\n const separator = item.querySelector('[slot=\"separator\"]')\n if (!isLast && !separator) {\n item.append(this.cloneSeparator())\n }\n })\n }\n\n render() {\n return html`\n <nav\n part=\"base\"\n aria-label=\"${ifDefined(this.ariaLabel) || ''}\"\n class=\"${clsx('breadcrumb')}\">\n <ol class=\"breadcrumb__list\">\n <slot @slotchange=\"${this.handleSlotChange}\"></slot>\n </ol>\n </nav>\n <span hidden aria-hidden=\"true\">\n <slot name=\"separator\"> <span>/</span> </slot>\n </span>\n `\n }\n\n getMobileView() {\n const mobileBreakpoint = getComputedStyle(document.documentElement)\n .getPropertyValue('--dds-breakpoints-small')\n .trim()\n\n const isMobileView = window.matchMedia(\n `(max-width: ${mobileBreakpoint})`,\n ).matches\n\n return isMobileView\n }\n}\n","import { ReactiveElement } from 'lit'\nimport { property } from 'lit/decorators.js'\n\ntype Constructor<T = Record<string, unknown>> = {\n new (...args: any[]): T\n prototype: T\n}\n\ntype DisableableElement = HTMLElement & { disabled?: boolean }\n\nexport interface FocusableElementInterface {\n disabled: boolean\n autofocus: boolean\n}\n\nexport function FocusableMixin<T extends Constructor<ReactiveElement>>(\n constructor: T,\n): T & Constructor<FocusableElementInterface> {\n class FocusableElement extends constructor {\n @property({ type: Boolean, reflect: true })\n public disabled = false\n @property({ type: Boolean })\n public override autofocus = false\n\n get focusElement(): DisableableElement {\n throw new Error('Must implement focusElement getter!')\n }\n\n public override focus(options?: FocusOptions): void {\n if (this.disabled || !this.focusElement) {\n return\n }\n\n if (this.focusElement !== this) {\n this.focusElement.focus(options)\n } else {\n HTMLElement.prototype.focus.apply(this, [options])\n }\n }\n\n public override blur(): void {\n const focusElement = this.focusElement || this\n if (focusElement !== this) {\n focusElement.blur()\n } else {\n HTMLElement.prototype.blur.apply(this)\n }\n }\n\n public override click(): void {\n if (this.disabled) {\n return\n }\n\n const focusElement = this.focusElement || this\n if (focusElement !== this) {\n focusElement.click()\n } else {\n HTMLElement.prototype.click.apply(this)\n }\n }\n }\n\n return FocusableElement as Constructor<FocusableElementInterface> & T\n}\n","import { PropertyValueMap } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport { InputStatus } from '@/common/types'\n\nimport { DdsElement } from '../dds-hu-element'\n\nconst CheckedAttributes = [\n 'value',\n 'checked',\n 'selected',\n 'disabled',\n 'readonly',\n]\n\ntype Constructor<T = Record<string, unknown>> = {\n new (...args: any[]): T\n prototype: T\n}\n\nexport interface FormElementInterface {\n name: string\n defaultValue?: any\n form?: string\n formElement?: HTMLFormElement | null\n disabled: boolean\n required: boolean\n readonly: boolean\n invalid: boolean\n value?: any\n status?: InputStatus\n internals: ElementInternals\n validity: ValidityState\n validationMessage: string\n willValidate: boolean\n innerInput: HTMLElement\n setValidity(): void\n checkValidity(): boolean\n reportValidity(): boolean\n onInput(event?: InputEvent): void\n onKeydown(event?: KeyboardEvent): void\n onBlur(): void\n onFocus(): void\n onChange(event?: InputEvent): void\n handleInvalid(event: Event): void\n}\n\nexport function FormElementMixin<T extends Constructor<DdsElement>>(\n constructor: T,\n): T & Constructor<FormElementInterface> {\n class FormElement extends constructor {\n $input!: HTMLInputElement\n @property({ reflect: true }) name = ''\n @property() defaultValue?: any\n @property({ reflect: true }) form?: string\n @property({ type: Boolean, reflect: true }) disabled = false\n @property({ type: Boolean, reflect: true, attribute: true }) required =\n false\n @property({ type: Boolean, reflect: true }) readonly = false\n @property({ type: Boolean }) silent = true\n @property({ type: Boolean, reflect: true }) invalid = false\n @property({ reflect: true }) status?: InputStatus\n\n @property({ attribute: true, reflect: true }) value?: any\n\n @property({ attribute: false }) internals!: ElementInternals\n public formElement: HTMLFormElement | null | undefined = null\n\n public get innerInput() {\n return this.$input\n }\n\n static get formAssociated() {\n return true\n }\n\n constructor(...args: any[]) {\n super(...args)\n this.internals = this.attachInternals()\n }\n\n connectedCallback() {\n super.connectedCallback()\n this.formElement = this.closest('form')\n if (!this.defaultValue) {\n this.defaultValue = this.value\n }\n }\n\n attributeChangedCallback(name: string, oldValue: any, newValue: any) {\n super.attributeChangedCallback(name, oldValue, newValue)\n if (CheckedAttributes.includes(name) && newValue !== oldValue) {\n switch (name) {\n case 'value':\n if (this.nodeName !== 'DAP-DS-BUTTON') {\n this.internals.setFormValue(newValue)\n }\n break\n case 'checked':\n this.internals.setFormValue(newValue !== null ? 'on' : null)\n }\n }\n }\n\n onInput() {\n this.emit('dds-input', { value: this.$input.value })\n }\n\n onBlur() {\n this.emit('dds-blur')\n }\n\n onFocus() {\n this.emit('dds-focus')\n }\n\n onChange() {\n this.emit('dds-change', { value: this.$input.value })\n }\n\n onKeydown(event: KeyboardEvent) {\n this.emit('dds-keydown', { value: this.$input.value, event })\n }\n\n handleInvalid(event: Event) {\n if (this.silent) {\n event.preventDefault()\n }\n }\n\n get focusElement() {\n return this.$input\n }\n\n protected async firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ) {\n this.$input = this.shadowRoot?.getElementById('input') as HTMLInputElement\n\n if (this.nodeName !== 'DAP-DS-BUTTON') {\n this.internals.setFormValue(this.value)\n this.setValidity()\n }\n }\n\n setValidity() {\n if (this.$input) {\n if (!this.$input.checkValidity()) {\n this.internals.setValidity(\n this.$input.validity,\n this.$input.validationMessage,\n this.$input,\n )\n } else {\n this.internals.setValidity({})\n }\n }\n }\n\n get validity() {\n return this.$input.validity\n }\n\n get validationMessage() {\n return this.$input.validationMessage\n }\n\n get willValidate() {\n return this.$input.willValidate\n }\n\n checkValidity() {\n return this.$input.checkValidity()\n }\n\n reportValidity() {\n return this.$input.reportValidity()\n }\n }\n\n return FormElement as Constructor<FormElementInterface> & T\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_hu=n(e.dayjs)}(this,(function(e){\"use strict\";function n(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=n(e),r={name:\"hu\",weekdays:\"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat\".split(\"_\"),weekdaysShort:\"vas_hét_kedd_sze_csüt_pén_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),months:\"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december\".split(\"_\"),monthsShort:\"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec\".split(\"_\"),ordinal:function(e){return e+\".\"},weekStart:1,relativeTime:{future:\"%s múlva\",past:\"%s\",s:function(e,n,t,r){return\"néhány másodperc\"+(r||n?\"\":\"e\")},m:function(e,n,t,r){return\"egy perc\"+(r||n?\"\":\"e\")},mm:function(e,n,t,r){return e+\" perc\"+(r||n?\"\":\"e\")},h:function(e,n,t,r){return\"egy \"+(r||n?\"óra\":\"órája\")},hh:function(e,n,t,r){return e+\" \"+(r||n?\"óra\":\"órája\")},d:function(e,n,t,r){return\"egy \"+(r||n?\"nap\":\"napja\")},dd:function(e,n,t,r){return e+\" \"+(r||n?\"nap\":\"napja\")},M:function(e,n,t,r){return\"egy \"+(r||n?\"hónap\":\"hónapja\")},MM:function(e,n,t,r){return e+\" \"+(r||n?\"hónap\":\"hónapja\")},y:function(e,n,t,r){return\"egy \"+(r||n?\"év\":\"éve\")},yy:function(e,n,t,r){return e+\" \"+(r||n?\"év\":\"éve\")}},formats:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D. H:mm\",LLLL:\"YYYY. MMMM D., dddd H:mm\"}};return t.default.locale(r,null,!0),r}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_en=n()}(this,(function(){\"use strict\";return{name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(e){var n=[\"th\",\"st\",\"nd\",\"rd\"],t=e%100;return\"[\"+e+(n[(t-20)%10]||n[t]||n[0])+\"]\"}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,\"day\").add(e,\"day\")}}}));","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import toPropertyKey from \"./toPropertyKey.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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = \"\".concat(name, \"=\").concat(value);\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += \"; Max-Age=\".concat(Math.floor(maxAge));\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += \"; Domain=\".concat(opt.domain);\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += \"; Path=\".concat(opt.path);\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += \"; Expires=\".concat(opt.expires.toUTCString());\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n return str;\n};\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = \"\".concat(name, \"=\");\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n if (typeof window !== 'undefined') {\n var search = window.location.search;\n if (!window.location.search && window.location.hash && window.location.hash.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n var query = search.substring(1);\n var params = query.split('&');\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n // If given get the subdomain index else 1\n var lookupFromSubdomainIndex = typeof options.lookupFromSubdomainIndex === 'number' ? options.lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group macht which sould be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n var language = typeof window !== 'undefined' && window.location && window.location.hostname && window.location.hostname.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[lookupFromSubdomainIndex];\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: function convertDetectedLanguage(l) {\n return l;\n }\n };\n}\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Browser);\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services || {\n languageUtils: {}\n }; // this way the language detector can be used without i18next\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = function (l) {\n return l.replace('-', '_');\n };\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.map(function (d) {\n return _this.options.convertDetectedLanguage(d);\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n return Browser;\n}();\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import 'dayjs/locale/hu'\nimport 'dayjs/locale/en'\n\nimport dayjs from 'dayjs'\nimport localeData from 'dayjs/plugin/localeData'\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat'\nimport weekday from 'dayjs/plugin/weekday'\nimport i18next, { t } from 'i18next'\nimport LanguageDetector from 'i18next-browser-languagedetector'\nimport { initLitI18n, translate } from 'lit-i18n'\n\nimport en from './locales/en.json'\nimport hu from './locales/hu.json'\n\ndayjs.extend(localeData)\ndayjs.extend(weekday)\ndayjs.extend(LocalizedFormat)\n\nconst DEFAULT_LOCALE = 'hu'\n\nconst getDefaultLang = () => {\n let lang =\n document.documentElement.lang || navigator.language || DEFAULT_LOCALE\n lang = lang.slice(0, 2)\n return lang\n}\n\ni18next\n .use(LanguageDetector)\n .use(initLitI18n)\n .init({\n fallbackLng: 'hu',\n interpolation: {\n escapeValue: false,\n },\n resources: {\n en: {\n translation: {\n ...en,\n },\n },\n hu: {\n translation: {\n ...hu,\n },\n },\n },\n })\n\ndayjs.locale(getDefaultLang())\n\nconst documentElementObserver = new MutationObserver(update)\ndocumentElementObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir', 'lang'],\n})\n\nexport function update() {\n const lang = getDefaultLang()\n\n dayjs.locale(lang)\n i18next.changeLanguage(lang)\n}\n\nexport { i18next, t, translate }\n","import { html, LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { CommonFormElementSize } from '@/common/types'\nimport { Size } from '@/common/types'\nimport { FeedbackType } from '@/components/feedback/feedback.component'\nimport { t } from '@/localization/localization'\n\ntype Constructor<T = Record<string, unknown>> = {\n new (...args: any[]): T\n prototype: T\n}\n\nexport interface LabelableElementInterface {\n label?: string\n description?: string\n tooltip?: string\n feedbackId?: string\n size: Size\n required: boolean\n disabled: boolean\n feedback?: string\n feedbackType?: FeedbackType\n optional: boolean\n optionalLabel: string\n subtle: boolean\n renderLabel(content: unknown): unknown\n}\n\nexport const LabelableMixin = <T extends Constructor<LitElement>>(base: T) => {\n class LabelableElement extends base {\n @property() label?: string\n @property() description?: string\n @property() feedback?: string\n @property() feedbackType?: FeedbackType\n @property() tooltip?: string\n @property() size: Size = 'sm'\n @property({ type: Boolean, reflect: true }) optional = false\n @property() optionalLabel = t('label.optional')\n @property({ type: Boolean, reflect: true }) subtle = false\n @property({ type: Boolean, reflect: true }) required = false\n @property({ type: Boolean, reflect: true }) disabled = false\n\n renderLabel(content: unknown) {\n return html`${this.label &&\n html` <div class=\"label-container\">\n <dap-ds-form-label\n part=\"label\"\n id=\"label\"\n .size=${this.size}\n .required=${this.required}\n .disabled=${this.disabled}\n .subtle=${this.subtle}\n .optional=${this.optional}\n .optionalLabel=${this.optionalLabel}\n for=\"input\"\n label=${ifDefined(this.label)}>\n </dap-ds-form-label>\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\">\n <dap-ds-button\n type=\"clean\"\n shape=\"circle\"\n class=\"input-group__toggle-button\"\n size=${ifDefined(this.size as CommonFormElementSize)}>\n <dap-ds-icon name=\"information-line\"></dap-ds-icon>\n </dap-ds-button>\n </dap-ds-tooltip>`}\n </div>`}\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n ${content}`\n }\n }\n\n return LabelableElement as Constructor<LabelableElementInterface> & T\n}\n","export const isReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)',\n).matches\n\nexport function isMobileView() {\n const mobileBreakpoint = getComputedStyle(document.documentElement)\n .getPropertyValue('--dds-breakpoints-small')\n .trim()\n\n const isMobileView = window.matchMedia(\n `(max-width: ${mobileBreakpoint})`,\n ).matches\n\n return isMobileView\n}\n\nexport function setFromParentSize(element: HTMLElement) {\n const size = element.closest('dap-ds-card')?.getAttribute('size')\n element.setAttribute('size', size || 'sm')\n}\n\nexport function numberRange(start: number, end: number): number[] {\n return Array.from({ length: end - start + 1 }, (_, i) => start + i)\n}\n\nexport const JSONAttributeParser = (value: string | null) => {\n let convertedValue = {}\n try {\n convertedValue = JSON.parse(value || '')\n } catch (error) {\n console.error('Incorrect Json string data', {\n data: value,\n })\n }\n\n return convertedValue\n}\n\nexport function getValidityStateObject(state: Partial<ValidityState>) {\n return {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: true,\n valueMissing: false,\n ...state,\n }\n}\n","import { LitElement, PropertyValues } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport { Size } from '@/common/types'\nimport { setFromParentSize } from '@/common/utils'\n\ntype Constructor<T = Record<string, unknown>> = {\n new (...args: any[]): T\n prototype: T\n}\n\nexport interface SizedElementInterface {\n size: Size\n parentSized: string\n}\n\nexport function SizedMixin<T extends Constructor<LitElement>>(\n constructor: T,\n): T & Constructor<SizedElementInterface> {\n class SizedElement extends constructor {\n @property() size: Size = 'sm'\n @property() parentSized = 'false'\n\n protected override update(changes: PropertyValues): void {\n if (!this.hasAttribute('size')) {\n this.setAttribute('size', this.size)\n }\n\n if (this.parentSized === 'true') {\n setFromParentSize(this)\n }\n\n super.update(changes)\n }\n }\n return SizedElement as Constructor<SizedElementInterface> & T\n}\n","import { DdsElement } from '../dds-hu-element'\nimport { FocusableMixin } from './focusableMixin'\nimport { FormElementMixin } from './formElementMixin'\nimport { LabelableMixin } from './labelableMixin'\nimport { SizedMixin } from './sizedMixin'\n\nexport const GenericFormElement = FocusableMixin(\n LabelableMixin(SizedMixin(FormElementMixin(DdsElement))),\n)\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","import { cva } from 'class-variance-authority'\n\nexport const buttonVariants = cva('button', {\n variants: {\n intent: {\n primary: 'button--primary',\n secondary: 'button--secondary',\n outline: 'button--outline',\n subtle: 'button--subtle',\n clean: 'button--clean',\n },\n size: {\n lg: 'button--lg',\n md: 'button--md',\n sm: 'button--sm',\n xs: 'button--xs',\n },\n shape: {\n button: '',\n circle: 'button--shape-circle',\n },\n },\n compoundVariants: [\n { shape: 'circle', size: 'lg', class: 'button--circle-lg' },\n { shape: 'circle', size: 'md', class: 'button--circle-md' },\n { shape: 'circle', size: 'sm', class: 'button--circle-sm' },\n { shape: 'circle', size: 'xs', class: 'button--circle-xs' },\n ],\n defaultVariants: {\n intent: 'primary',\n size: 'md',\n shape: 'button',\n },\n})\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport { LinkTarget, Size } from '../../common/types'\nimport styles from './button.scss?inline'\nimport { buttonVariants } from './button.variants'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'subtle' | 'clean'\nexport type HtmlButtonType = 'button' | 'submit' | 'reset'\nexport type ButtonSize = Extract<Size, 'lg' | 'md' | 'sm'>\nexport type ButtonShape = 'button' | 'circle'\n\n/**\n * `dap-ds-button` is a custom button component.\n * @element dap-ds-button\n * @summary A button is a clickable element that can be used to trigger an action.\n * @title - Button\n *\n * @attribute {'primary' | 'secondary' | 'subtle' | 'clean'} variant - The type of the button. Default is `primary`. Can be `primary`, `secondary`, `subtle`, or `clean`.\n * @attribute {'lg' | 'md' | 'sm'} size - The size of the button. Default is `md`. Can be `lg`, `md`, or `sm`.\n * @attribute {boolean} loading - Whether the button is in a loading state.\n * @attribute {boolean} danger - Whether the button is a danger button.\n * @attribute {'button' | 'submit' | 'reset'} htmlType - The type of the button. Can be `button`, `submit`, or `reset`. Default is `button`. If the button is an anchor element, this attribute will be ignored.\n * @attribute {string} name - The name of the button.\n * @attribute {string} href - The URL of the button. If this present the button will be rendered as an anchor element.\n * @attribute {'_blank' | '_self' | '_parent' | '_top'} target - The target of the button. Default is `_self`. Can be `_blank`, `_self`, `_parent`, or `_top`.\n * @attribute {string} rel - The rel of the button link. Default is `noreferrer noopener`.\n *\n * @slot - The content of the button.\n *\n * @csspart base - The main button container.\n *\n */\n@customElement('dap-ds-button')\nexport default class DapDSButton extends GenericFormElement {\n @query('.button') button!: HTMLButtonElement | HTMLLinkElement\n\n @property({ reflect: true }) variant: ButtonVariant = 'primary'\n @property({ reflect: true }) size: ButtonSize = 'md'\n @property({ type: Boolean, reflect: true }) loading = false\n @property({ type: Boolean }) danger = false\n @property({ reflect: true }) shape: ButtonShape = 'button'\n @property() htmlType: HtmlButtonType = 'button'\n @property() name: string\n @property() href: string\n @property() target: LinkTarget = '_self'\n @property() rel = 'noreferrer noopener'\n\n static styles = unsafeCSS(styles)\n\n private handleClick(): boolean {\n let handled = false\n if (this.htmlType !== 'button') {\n const proxy = document.createElement('button')\n proxy.type = this.htmlType\n this.insertAdjacentElement('afterend', proxy)\n proxy.click()\n proxy.remove()\n handled = true\n }\n return handled\n }\n\n focus(options?: FocusOptions) {\n this.button.focus(options)\n }\n\n public get focusElement() {\n return this.button\n }\n\n render() {\n return html`\n <${unsafeStatic(this.href ? 'a' : 'button')}\n part=\"base\"\n .disabled=${this.disabled}\n aria-disabled=${this.disabled}\n aria-label=${ifDefined(this.ariaLabel)}\n .autofocus=${this.autofocus}\n type=${ifDefined(this.href ? null : this.htmlType)}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n rel=${ifDefined(this.rel)}\n class=${clsx(\n buttonVariants({\n intent: this.variant,\n size: this.size,\n shape: this.shape,\n }),\n {\n default: true,\n danger: this.danger,\n disabled: this.disabled,\n loading: this.loading,\n },\n )}\n @click=${this.handleClick}>\n ${\n this.loading\n ? this._getLoadingSpinner()\n : html` <span part=\"content\" class=\"button__text\">\n <slot></slot>\n </span>`\n }\n </${unsafeStatic(this.href ? 'a' : 'button')}>\n `\n }\n\n private _getLoadingSpinner() {\n return html`\n <span class=\"button__spinner\">\n <dap-ds-icon-loading-spinner></dap-ds-icon-loading-spinner>\n </span>\n <span class=\"sr-only\">\n <slot></slot>\n </span>\n `\n }\n}\n","import clsx from 'clsx'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { nothing, PropertyValueMap, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { FocusableMixin } from '@/internal/mixin/focusableMixin'\nimport { t } from '@/localization/localization'\n\nimport styles from './calendar-cell.scss?inline'\n\n/**\n * `dap-ds-calendar-cell`\n * @summary Calendar cell represents a single cell in the calendar.\n * @element dap-ds-calendar-cell\n * @title - Calendar cell\n *\n * @attribute {Date} value - The value of the calendar cell.\n * @attribute {boolean} selected - Whether the calendar cell is selected.\n * @attribute {boolean} disabledDay - Whether the calendar cell is disabled.\n * @attribute {boolean} today - Whether the calendar cell is today.\n * @attribute {boolean} outOfRange - Whether the calendar cell is out of range.\n * @attribute {boolean} header - Whether the calendar cell is header.\n * @attribute {boolean} focused - Whether the calendar cell is focused.\n *\n * @csspart base - The main calendar cell container.\n * @csspart today-mark - The today mark of the calendar cell.\n *\n */\n@customElement('dap-ds-calendar-cell')\nexport default class DapDSCalendarCell extends FocusableMixin(DdsElement) {\n @property({ attribute: false }) value: Dayjs\n @property({ type: Boolean }) selected: boolean = false\n @property({ type: Boolean }) disabledDay: boolean = false\n @property({ type: Boolean }) today: boolean = false\n @property({ type: Boolean }) outOfRange: boolean = false\n @property({ type: Boolean }) header: boolean = false\n @property({ type: Boolean }) focused: boolean = false\n\n static styles = unsafeCSS(styles)\n\n get label(): string {\n if (this.value) {\n return `${dayjs(this.value).format('LL, dddd')} ${this.today ? t('calendar.today') : ''} ${this.selected ? t('selected') : ''}`\n }\n\n return ''\n }\n\n public get focusElement(): HTMLElement {\n return this\n }\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n\n this.setAttribute('aria-label', this.label)\n }\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n\n if (_changedProperties.has('disabledDay')) {\n this.setAttribute('aria-disabled', this.disabledDay ? 'true' : 'false')\n }\n\n if (_changedProperties.has('selected')) {\n this.setAttribute('aria-selected', this.selected ? 'true' : 'false')\n this.setAttribute('aria-label', this.label)\n }\n }\n\n getDayName(dateStr: string, locale: string) {\n const date = new Date(dateStr)\n return date.toLocaleDateString(locale, { weekday: 'long' })\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx(\n 'calendar-cell',\n { 'calendar-cell--selected': this.selected },\n { 'calendar-cell--disabled': this.disabledDay },\n { 'calendar-cell--today': this.today },\n { 'calendar-cell--out-of-range': this.outOfRange },\n { 'calendar-cell--header': this.header },\n { 'calendar-cell--focused': this.focused },\n )}>\n <slot></slot>\n ${this.today\n ? html`<span\n part=\"today-mark\"\n class=\"calendar-cell__today-mark\"></span>`\n : nothing}\n </div>\n `\n }\n}\n","import clsx from 'clsx'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { customElement, property, queryAll, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { translate } from '@/localization/localization'\n\nimport styles from './calendar.scss?inline'\nimport DapDSCalendarCell from './calendar-cell.component'\n\n/**\n * `dap-ds-calendar`\n * @summary A calendar is a visual representation of dates. It allows users to select a date.\n * @element dap-ds-calendar\n * @title - Calendar\n *\n * @attribute {Date} value - The value of the calendar.\n * @attribute {Date} currentDate - The current visible date of the calendar. Only the month and year are considered.\n * @attribute {Date} minDate - The minimum date of the calendar. Only the month and year are considered.\n * @attribute {Date} maxDate - The maximum date of the calendar. Only the month and year are considered.\n * @attribute {Function} disabledDate - The function to determine if the date is disabled.\n *\n * @event dds-change - Fired when the calendar value changes.\n *\n * @csspart base - The main calendar container.\n * @csspart header - The header of the calendar.\n * @csspart body - The body of the calendar.\n *\n */\n@customElement('dap-ds-calendar')\nexport default class DapDSCalendar extends DdsElement {\n @queryAll('dap-ds-calendar-cell:not([header])')\n cells: NodeListOf<DapDSCalendarCell>\n @property({ attribute: false }) value: Dayjs\n @property({ attribute: false }) currentDate = dayjs()\n @property({ attribute: false }) minDate = dayjs('1901-01-01')\n @property({ attribute: false }) maxDate = dayjs('2099-12-31')\n @property() disabledDate = (date: Dayjs) => {\n return !date\n }\n\n @state() private _currentCell: DapDSCalendarCell\n\n static styles = unsafeCSS(styles)\n\n get startDate() {\n if (dayjs.isDayjs(this.currentDate)) {\n return dayjs(this.currentDate.toDate()).startOf('month')\n }\n return dayjs(this.currentDate).startOf('month')\n }\n\n get endDate() {\n return dayjs(this.currentDate).endOf('month')\n }\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n const documentElementObserver = new MutationObserver(this.updateLocale)\n documentElementObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir', 'lang'],\n })\n\n this.setValue(this.value, false)\n }\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n\n if (_changedProperties.has('value')) {\n this.setValue(this.value, false)\n }\n }\n\n updateLocale = () => {\n this.requestUpdate()\n }\n\n setValue(value: Dayjs, setFocus = true) {\n if (value) {\n if (this.isOutOfRange(dayjs(this.currentDate), value)) {\n this.setToFirstDayOfMonth()\n } else {\n const selectedCell = this.getCellByDate(dayjs(value))\n this.setCurrentCell(selectedCell!, setFocus)\n }\n } else if (this.isOutOfRange(dayjs(this.currentDate), dayjs())) {\n this.setToFirstAllowedDayOfMonth()\n } else {\n this.setToToday()\n }\n }\n\n getWeeksInMonth = (date: Dayjs) => {\n const days = date.daysInMonth()\n const weekday = date.weekday()\n\n return Math.ceil((days + weekday) / 7)\n }\n\n isOutOfRange(currentDate: Dayjs, date: Dayjs) {\n return !dayjs(currentDate).isSame(date, 'month')\n }\n\n isToday(date: Dayjs) {\n return date.isSame(new Date(), 'day')\n }\n\n isSelected(date: Dayjs) {\n if (!this.value) {\n return false\n }\n\n return date.isSame(this.value, 'day')\n }\n\n getDatesInWeek(week: number, from: Dayjs) {\n let date = from.startOf('week').add(week, 'week')\n const dates: Dayjs[] = []\n\n while (dates.length < 7) {\n dates.push(date)\n const nextDate = date.add(1, 'day')\n if (date.isSame(from.endOf('month'))) {\n break\n }\n date = nextDate\n }\n\n return dates\n }\n\n isDateInAllowedRange(date: Dayjs) {\n //check if the date year and month is in the allowed range\n const minDate = dayjs(this.minDate)\n const maxDate = dayjs(this.maxDate)\n const minYear = minDate.year()\n const maxYear = maxDate.year()\n const minMonth = minDate.month()\n const maxMonth = maxDate.month()\n\n if (date.year() < minYear || date.year() > maxYear) {\n return false\n }\n\n if (date.year() === minYear && date.month() < minMonth) {\n return false\n }\n\n if (date.year() === minYear && date.month() > maxMonth) {\n return false\n }\n\n return true\n }\n\n isMonthInAllowedRange(year: number, month: number) {\n return this.isDateInAllowedRange(dayjs(new Date(year, month, 1)))\n }\n\n isDateInAllowedRangeByDate(year: number, month: number, date: number) {\n return this.isDateInAllowedRange(dayjs(new Date(year, month, date)))\n }\n\n setMonth(month: number) {\n if (\n month < 0 &&\n this.isMonthInAllowedRange(dayjs(this.currentDate).year() - 1, 11)\n ) {\n this.setYear(dayjs(this.currentDate).year() - 1)\n this.currentDate = this.currentDate.set('month', 11)\n this.requestUpdate()\n return\n }\n\n if (\n month > 11 &&\n this.isMonthInAllowedRange(dayjs(this.currentDate).year() + 1, 0)\n ) {\n this.setYear(dayjs(this.currentDate).year() + 1)\n this.currentDate = this.currentDate.set('month', 0)\n this.requestUpdate()\n return\n }\n\n if (!this.isMonthInAllowedRange(dayjs(this.currentDate).year(), month)) {\n return\n }\n\n this.currentDate = dayjs(this.currentDate).set('month', month)\n this.requestUpdate()\n }\n\n setDay(day: number) {\n const date = dayjs(this.currentDate)\n\n if (!this.isDateInAllowedRangeByDate(date.year(), date.month(), day)) {\n return\n }\n\n date.set('date', day)\n this.requestUpdate()\n }\n\n setYear(year: number) {\n const date = dayjs(this.currentDate)\n\n this.currentDate = date.set('year', year)\n this.requestUpdate()\n }\n\n setSelectedDate(date: Dayjs) {\n if (this.disabledDate(date)) {\n return\n }\n\n if (!this.isDateInAllowedRange(date)) {\n return\n }\n\n if (this.isOutOfRange(dayjs(this.currentDate), date)) {\n this.setMonth(date.month())\n }\n\n this.value = date\n this.setCurrentCell(this.getCellByDate(date)!)\n\n this.emit('dds-change', { value: this.value })\n }\n\n getFirstDayOfMonthCell() {\n return [...this.cells].find(cell => {\n return dayjs(cell.value).isSame(this.startDate, 'day')\n })\n }\n\n getCellByDate(date: Dayjs) {\n return [...this.cells].find(cell => {\n return dayjs(cell.value).isSame(date, 'day')\n })\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Tab') {\n return\n }\n\n event.preventDefault()\n const element = event.composedPath()[0]\n if (element instanceof DapDSCalendarCell) {\n switch (event.code) {\n case 'ArrowLeft':\n this.focusNextCell(element, -1)\n break\n case 'ArrowRight':\n this.focusNextCell(element, 1)\n break\n case 'ArrowUp':\n this.focusNextCell(element, -7)\n break\n case 'ArrowDown':\n this.focusNextCell(element, 7)\n break\n case 'PageUp':\n this.setMonth(dayjs(this.currentDate).month() - 1)\n break\n case 'PageDown':\n this.setMonth(dayjs(this.currentDate).month() + 1)\n break\n case 'Enter':\n this.setSelectedDate(element.value)\n break\n }\n }\n }\n\n setCurrentCell(cell: DapDSCalendarCell, setFocus = true) {\n if (this._currentCell) {\n this._currentCell.setAttribute('tabindex', '-1')\n }\n this._currentCell = cell\n this._currentCell.setAttribute('tabindex', '0')\n\n if (setFocus) {\n this._currentCell.focus()\n }\n }\n\n setToFirstDayOfMonth() {\n const firstDayofMonth = this.getFirstDayOfMonthCell()\n firstDayofMonth?.setAttribute('tabindex', '0')\n this._currentCell = firstDayofMonth!\n }\n\n setToToday() {\n const today = this.getCellByDate(dayjs())\n today?.setAttribute('tabindex', '0')\n this._currentCell = today!\n }\n\n setToFirstAllowedDayOfMonth(currentDate = this.currentDate) {\n const firstAllowedDay = this.getCellByDate(\n dayjs(currentDate).startOf('month'),\n )\n firstAllowedDay?.setAttribute('tabindex', '0')\n this._currentCell = firstAllowedDay!\n }\n\n focusNextCell(element: DapDSCalendarCell, offset: number) {\n const index = [...this.cells].indexOf(element)\n const nextIndex = index + offset\n const currentMonth = dayjs(this.currentDate).month()\n\n if (nextIndex >= 0 && nextIndex < this.cells.length) {\n const cell = this.cells[nextIndex]\n this.setCurrentCell(cell)\n } else if (nextIndex < 0) {\n this.setMonth(currentMonth - 1)\n\n if (this.currentDate.month() < currentMonth) {\n this.updateComplete.then(() => {\n const lastDay = dayjs(this.currentDate).endOf('month')\n const lastDayCell = this.getCellByDate(lastDay)\n this.setCurrentCell(lastDayCell!)\n })\n }\n } else if (nextIndex >= this.cells.length) {\n this.setMonth(currentMonth + 1)\n\n if (this.currentDate.month() > currentMonth) {\n this.updateComplete.then(() => {\n const firstDay = dayjs(this.currentDate).startOf('month')\n const firstDayCell = this.getCellByDate(firstDay)\n this.setCurrentCell(firstDayCell!)\n })\n }\n }\n }\n\n renderCalendarGridHeader() {\n return html`<thead part=\"calendar-grid-header\" class=\"calendar-grid-header\">\n <tr class=\"calendar-grid-header-row\">\n ${dayjs.weekdaysMin(true).map(\n day =>\n html`<th>\n <dap-ds-calendar-cell header>${day}</dap-ds-calendar-cell>\n </th>`,\n )}\n </tr>\n </thead>`\n }\n\n renderCalendarGridBody(date: Dayjs) {\n return html`<tbody part=\"body\" class=\"calendar-grid-body\">\n ${[...new Array(this.getWeeksInMonth(date || dayjs())).keys()].map(\n week =>\n html`<tr class=\"calendar-grid-row\">\n ${this.getDatesInWeek(week, date).map(d => {\n const isDisabled =\n !this.isDateInAllowedRange(d) || this.disabledDate(d)\n\n return html`<td role=\"gridcell\" aria-disabled=${isDisabled}>\n <dap-ds-calendar-cell\n ?outofrange=${this.isOutOfRange(this.currentDate, d)}\n ?today=${this.isToday(d)}\n ?selected=${this.isSelected(d)}\n .value=${d}\n ?disabledDay=${isDisabled}\n role=\"button\"\n @click=${() => !isDisabled && this.setSelectedDate(d)}\n @keydown=${this.handleKeyDown}\n >${d.date()}</dap-ds-calendar-cell\n >\n </td>`\n })}\n </tr> `,\n )}\n </tbody>`\n }\n\n renderCalendarHeader() {\n return html`\n <header part=\"header\" class=\"calendar__header\">\n <dap-ds-icon-button\n class=\"calendar__header-button-prev\"\n clean\n size=\"lg\"\n variant=\"brand\"\n aria-label=${translate('calendar.prevMonth')}\n @click=${() => {\n this.setMonth(this.currentDate.month() - 1)\n }}>\n <dap-ds-icon-arrow-left-l-line></dap-ds-icon-arrow-left-l-line>\n </dap-ds-icon-button>\n <dap-ds-select\n class=${clsx(\n 'calendar__header-select',\n 'calendar__header-year-select',\n )}\n size=\"sm\"\n noAnimation\n value=${dayjs(this.currentDate).year()}\n @dds-change=${(e: CustomEvent) => {\n e.preventDefault()\n e.stopPropagation()\n if (\n e.detail.value &&\n !isNaN(parseInt(e.detail.value)) &&\n parseInt(e.detail.value) !== dayjs(this.currentDate).year()\n ) {\n this.currentDate = dayjs(this.currentDate).set(\n 'year',\n parseInt(e.detail.value),\n )\n this.requestUpdate()\n }\n }}>\n <dap-ds-icon-expand-up-down-fill\n slot=\"indicator-icon\"\n size=\"16\"></dap-ds-icon-expand-up-down-fill>\n ${[\n ...new Array(\n dayjs(this.maxDate).year() - dayjs(this.minDate).year() + 1,\n ).keys(),\n ].map(\n year =>\n html`<dap-ds-option-item\n value=${dayjs(this.minDate).year() + year}>\n ${dayjs(this.minDate).year() + year}\n </dap-ds-option-item>`,\n )}\n </dap-ds-select>\n <dap-ds-select\n class=${clsx(\n 'calendar__header-select',\n 'calendar__header-month-select',\n )}\n size=\"sm\"\n noAnimation\n value=${dayjs(this.currentDate).month() + 1}\n @dds-change=${(e: CustomEvent) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (\n e.detail.value &&\n !isNaN(parseInt(e.detail.value)) &&\n parseInt(e.detail.value) !== dayjs(this.currentDate).month() + 1\n ) {\n this.setMonth(parseInt(e.detail.value) - 1)\n }\n }}>\n <dap-ds-icon-expand-up-down-fill\n slot=\"indicator-icon\"\n size=\"16\"></dap-ds-icon-expand-up-down-fill>\n ${dayjs\n .months()\n .map(\n (month, index) =>\n html`<dap-ds-option-item value=${index + 1}>\n ${month}\n </dap-ds-option-item>`,\n )}\n </dap-ds-select>\n <dap-ds-icon-button\n class=\"calendar__header-button-next\"\n clean\n size=\"lg\"\n variant=\"brand\"\n aria-label=${translate('calendar.nextMonth')}\n @click=${() => {\n this.setMonth(dayjs(this.currentDate).month() + 1)\n }}>\n <dap-ds-icon-arrow-right-l-line></dap-ds-icon-arrow-right-l-line>\n </dap-ds-icon-button>\n </header>\n `\n }\n\n render() {\n return html` <div class=\"calendar\">\n ${this.renderCalendarHeader()}\n <table\n part=\"base\"\n class=\"calendar__grid\"\n role=\"grid\"\n aria-label=${`${this.value ? dayjs(this.value).format('LL, dddd') : ''}`}>\n ${this.renderCalendarGridHeader()}\n ${this.renderCalendarGridBody(this.startDate)}\n </table>\n </div>`\n }\n}\n","import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { Alignment, BackgroundShade } from '@/common/types'\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { translate } from '@/localization/localization'\n\nimport styles from './callout.scss?inline'\n\nexport type CalloutVariant =\n | 'brand'\n | 'info'\n | 'positive'\n | 'warning'\n | 'negative'\n\n/**\n * `dap-ds-callout` is a custom callout component.\n * @element dap-ds-callout\n * @title - Callout\n *\n * @attribute {'brand' | 'info' | 'positive' | 'warning' | 'negative'} variant - The variant of the callout. Can be `brand`, `info`, `positive`, `warning`, or `negative`.\n * @attribute {'vertical' | 'horizontal'} alignment - The alignment of the callout. Can be `vertical` or `horizontal`.\n * @attribute {'subtle' | 'base' | 'medium' | 'strong'} shade - The strongness of the callout. Can be `subtle`, `base`, `medium`, or `strong`.\n * @attribute {boolean} border - The border of the callout.\n * @attribute {boolean} closeable - If the callout has a close button.\n * @attribute {string} closeButtonLabel - The label of the close button.\n * @attribute {string} opened - If the callout is opened.\n * @attribute {string} title - The header of the callout.\n *\n * @event dds-close - Fired when the close button is clicked.\n *\n * @slot - The content of the callout.\n * @slot title - The title of the callout.\n * @slot icon - The icon of the callout.\n * @slot actions - The actions of the callout.\n * @slot close - The close button of the callout.\n *\n * @csspart base - The main callout container.\n * @csspart icon - The icon of the callout.\n * @csspart title - The title of the callout.\n * @csspart description - The description of the callout.\n * @csspart actions - The actions of the callout.\n * @csspart close - The close button of the callout.\n */\n@customElement('dap-ds-callout')\nexport default class DapDScallout extends DdsElement {\n @property() variant: CalloutVariant = 'brand'\n @property() alignment: Alignment = 'horizontal'\n @property() shade: BackgroundShade = 'base'\n @property({ type: Boolean }) border: boolean = false\n @property({ type: Boolean }) closeable: boolean = false\n @property() title: string\n @property() closeButtonLabel: string\n @property({ reflect: true }) opened: string = 'true'\n\n static styles = unsafeCSS(styles)\n\n getDefaultIcon(variant: CalloutVariant) {\n switch (variant) {\n case 'brand':\n return html`<dap-ds-icon-information-2-fill></dap-ds-icon-information-2-fill>`\n case 'info':\n return html`<dap-ds-icon-information-2-fill></dap-ds-icon-information-2-fill>`\n case 'positive':\n return html`<dap-ds-icon-checkbox-circle-fill></dap-ds-icon-checkbox-circle-fill></dap-ds-icon-checkbox-circle-fill>`\n case 'warning':\n return html`<dap-ds-icon-alert-fill></dap-ds-icon-alert-fill>`\n case 'negative':\n return html`<dap-ds-icon-error-warning-fill></dap-ds-icon-error-warning-fill>`\n default:\n return html`<dap-ds-icon-information-2-fill></dap-ds-icon-information-2-fill>`\n }\n }\n\n handleClose() {\n this.emit('dds-close')\n }\n\n render() {\n return this.opened !== 'false'\n ? html`\n <dap-ds-card\n part=\"base\"\n class=${clsx(\n 'callout',\n `callout--${this.variant}`,\n `callout--${this.alignment}`,\n `callout--${this.shade}`,\n { 'callout--border': this.border },\n )}>\n <dap-ds-card-content class=\"callout__content\">\n <span class=\"callout__icon\">\n <slot name=\"icon\" part=\"icon\">\n ${this.getDefaultIcon(this.variant)}\n </slot>\n </span>\n <span class=\"callout__content-wrapper\">\n ${this.title\n ? html`<span part=\"title\" class=\"callout__title\">\n <slot name=\"title\">${this.title}</slot>\n </span>`\n : nothing}\n <span part=\"description\" class=\"callout__description\">\n <slot></slot>\n </span>\n <span part=\"actions\" class=\"callout__actions\">\n <slot name=\"actions\"></slot>\n </span>\n </span>\n ${this.closeable\n ? html` <span part=\"close\" class=\"callout__close\">\n <slot name=\"close\">\n <dap-ds-icon-button\n clean\n aria-label=${this.closeButtonLabel\n ? this.closeButtonLabel\n : translate('close')}\n @click=${this.handleClose}>\n <dap-ds-icon name=\"close-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </slot>\n </span>`\n : nothing}\n </dap-ds-card-content>\n </dap-ds-card>\n `\n : nothing\n }\n}\n","import clsx from 'clsx'\nimport { html, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { LinkTarget } from '@/common/types'\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport styles from './card.scss?inline'\n\n/**\n * `dap-ds-card`\n * @summary A card is a container for content, actions, and images in a consistent format.\n * @element dap-ds-card\n * @title - Card\n *\n * @attribute {boolean} interactive - Whether the card is interactive. Default is false. If true, the card will be rendered as an anchor element.\n * @attribute {boolean} disabled - Whether the card is disabled.\n * @attribute {'_blank' | '_self' | '_parent' | '_top'} target - The target of the card. Default is `_self`. Can be `_blank`, `_self`, `_parent`, or `_top`.\n * @attribute {string} href - The URL of the card.\n * @attribute {string} rel - The rel of the card link.\n *\n * @slot - The content of the card.\n *\n * @csspart base - The main card container.\n */\n@customElement('dap-ds-card')\nexport default class DapDSCard extends SizedMixin(DdsElement) {\n @property({ type: Boolean }) interactive = false\n @property({ type: Boolean, reflect: true }) disabled = false\n @property() target: LinkTarget = '_self'\n @property() href: string = '#'\n @property() rel = 'noreferrer noopener'\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n ${this.interactive\n ? html`<a\n part=\"base\"\n class=${clsx('card', {\n 'card--interactive': true,\n 'card--disabled': this.disabled,\n [`card--${this.size}`]: true,\n })}\n aria-label=${ifDefined(this.ariaLabel) || ''}\n target=${this.target}\n href=${this.href}\n rel=${this.target}>\n <slot></slot>\n </a>`\n : html`<div\n part=\"base\"\n class=\"${clsx('card', { [`card--${this.size}`]: true })}\">\n <slot></slot>\n </div>`}\n `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport styles from './card-actions.scss?inline'\n\n/**\n * `dap-ds-card-actions`\n * @summary A card actions is a container for actions in a card.\n * @element dap-ds-card-actions\n * @title - Card actions\n * @group card\n *\n * @attribute {string} parentSized - Whether the card actions should be sized from the parent. Default is true.\n *\n * @slot - The content of the card actions.\n *\n * @csspart base - The main card actions container.\n */\n@customElement('dap-ds-card-actions')\nexport default class DapDSCardActions extends SizedMixin(DdsElement) {\n @property() parentSized: string = 'true'\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx('card-actions', `card-actions--${this.size}`)}>\n <slot> </slot>\n </div>\n `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport styles from './card-content.scss?inline'\n\n/**\n * `dap-ds-card-content`\n * @summary A card content is a container for content in a card.\n * @element dap-ds-card-content\n * @title - Card content\n * @group card\n *\n * @attribute {string} renderAs - The component of the card content. Default is 'div'.\n * @attribute {string} parentSized - Whether the card content should be sized from the parent. Default is true.\n *\n * @slot - The content of the card-content.\n *\n * @csspart base - The main card content container.\n */\n@customElement('dap-ds-card-content')\nexport default class DapDSCardContent extends SizedMixin(DdsElement) {\n @property() renderAs = 'div'\n @property() parentSized: string = 'true'\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <${unsafeStatic(this.renderAs)} part=\"base\" class=${clsx(\n 'card-content',\n `card-content--${this.size}`,\n )}>\n <slot> </slot>\n </${unsafeStatic(this.renderAs)}>\n `\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport styles from './card-image.scss?inline'\n\n/**\n * `dap-ds-card-image`\n * @summary A card image is a container for images in a card.\n * @element dap-ds-card-image\n * @title - Card image\n * @group card\n *\n * @attribute {string} src - The source of the image.\n * @attribute {string} alt - The alt text of the image.\n * @attribute {number} width - The width of the image.\n * @attribute {number} height - The height of the image.\n *\n * @csspart base - The main card image container.\n */\n@customElement('dap-ds-card-image')\nexport default class DapDSCardImage extends DdsElement {\n @property() src: string\n @property() alt: string\n @property({ type: Number }) width: number\n @property({ type: Number }) height: number\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`<img\n part=\"base\"\n class=\"card-image\"\n style=${`width: ${this.width}px; height: ${this.height}px;`}\n alt=${this.alt}\n src=${this.src} /> `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport styles from './card-subtitle.scss?inline'\n\n/**\n * `dap-ds-card-subtitle`\n * @summary Subtitle of the card\n * @element dap-ds-card-subtitle\n * @title - Card subtitle\n * @group card\n *\n * @attribute {'sm' | 'lg'} size - The size of the card subtitle. Default is `sm`.\n * @attribute {string} parentSized - Whether the card content should be sized from the parent. Default is true.\n *\n * @slot - The content of the subtitle.\n *\n * @csspart base - The subtitle container.\n */\n@customElement('dap-ds-card-subtitle')\nexport default class DapDSCardSubtitle extends SizedMixin(DdsElement) {\n @property() renderAs = 'span'\n @property() parentSized: string = 'true'\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <${unsafeStatic(this.renderAs)} part=\"base\" class=${clsx('card-subtitle', `card-subtitle--${this.size}`)}>\n <slot></slot>\n </${unsafeStatic(this.renderAs)}>\n `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport styles from './card-title.scss?inline'\n\n/**\n * `dap-ds-card-title`\n * @summary Title of the card\n * @element dap-ds-card-title\n * @title - Card title\n * @group card\n *\n * @attribute {'sm' | 'lg'} size - The size of the card title. Default is `sm`.\n * @attribute {string} parentSized - Whether the card content should be sized from the parent. Default is true.\n * @attribute {string} component - The rendered component of the card title. Default is 'div'.\n *\n * @slot - The content of the title.\n *\n * @csspart base - The main card title container.\n */\n@customElement('dap-ds-card-title')\nexport default class DapDSCardTitle extends SizedMixin(DdsElement) {\n @property() renderAs = 'span'\n @property() parentSized: string = 'true'\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <${unsafeStatic(this.renderAs)} part=\"base\" class=${clsx('card-title', `card-title--${this.size}`)}>\n <slot></slot>\n </${unsafeStatic(this.renderAs)}>\n `\n }\n}\n","import { LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\n\ntype Constructor<T = Record<string, unknown>> = {\n new (...args: any[]): T\n prototype: T\n}\n\nexport interface ChoiceElementMixinInterface {\n checked: boolean\n}\n\nexport function ChoiceElementMixin<T extends Constructor<LitElement>>(\n constructor: T,\n): T & Constructor<ChoiceElementMixinInterface> {\n class ChoiceElement extends constructor {\n @property({ type: Boolean, reflect: true }) checked = false\n }\n\n return ChoiceElement as Constructor<ChoiceElementMixinInterface> & T\n}\n","import { LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport { DescriptionPlacement, LabelPlacement } from '@/common/types'\n\ntype Constructor<T = Record<string, unknown>> = {\n new (...args: any[]): T\n prototype: T\n}\n\nexport interface LabelPositionedElementInterface {\n labelPlacement: LabelPlacement\n descriptionPlacement: DescriptionPlacement\n}\n\nexport function LabelPositionedMixin<T extends Constructor<LitElement>>(\n constructor: T,\n): T & Constructor<LabelPositionedElementInterface> {\n class LabelPositionedElement extends constructor {\n @property() labelPlacement: LabelPlacement = 'right'\n @property()\n descriptionPlacement: DescriptionPlacement = 'bottom'\n }\n return LabelPositionedElement as Constructor<LabelPositionedElementInterface> &\n T\n}\n","import { DdsElement } from '../dds-hu-element'\nimport { ChoiceElementMixin } from './choiceElementMixin'\nimport { FocusableMixin } from './focusableMixin'\nimport { FormElementMixin } from './formElementMixin'\nimport { LabelableMixin } from './labelableMixin'\nimport { LabelPositionedMixin } from './labelPositionedMixin'\nimport { SizedMixin } from './sizedMixin'\n\nexport const LabelPositionedFormElement = LabelPositionedMixin(\n ChoiceElementMixin(\n FocusableMixin(LabelableMixin(SizedMixin(FormElementMixin(DdsElement)))),\n ),\n)\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize, CommonSize } from '@/common/types'\nimport { LabelPositionedFormElement } from '@/internal/mixin/labelPositionedFormElement'\n\nimport styles from './checkbox.scss?inline'\n\n/**\n * `dap-ds-checkbox`\n * @summary A checkbox is a form element that allows the user to select one or more options from a set.\n * @element dap-ds-checkbox\n * @title - Checkbox\n *\n * @event dds-change - Fired when the checkbox is checked or unchecked.\n * @event dds-blur - Emitted when the checkbox loses focus.\n * @event dds-focus - Emitted when the checkbox gains focus.\n * @event dds-input - Emitted when the checkbox receives input.\n *\n * @attribute {string} name - The name of the checkbox.\n * @attribute {string} value - The value of the checkbox.\n * @attribute {boolean} checked - Whether the checkbox is checked.\n * @attribute {boolean} indeterminate - Whether the checkbox is indeterminate.\n * @attribute {boolean} disabled - Whether the checkbox is disabled.\n * @attribute {boolean} required - Whether the checkbox is required.\n * @attribute {string} label - The label of the checkbox.\n * @attribute {string} description - The description of the checkbox.\n * @attribute {'sm' | 'md' | 'lg'} size - The size of the checkbox. Default is `md`. Can be `sm`, `md`, or `lg`.'\n * @attribute {'left' | 'right'} labelPlacement - The placement of the label. Can be `left` or `right`. Default is `right`.\n * @attribute {'top' | 'bottom'} descriptionPlacement - The placement of the description. Can be `top` or `bottom`. Default is `bottom`.\n * @attribute {string} ariaLabelCheckbox - The aria label of the checkbox.\n * @attribute {boolean} subtle - The weight of the label. Default is `false`\n * @attribute {string} feedback - The feedback of the checkbox.\n * @attribute {'info' | 'success' | 'error'} feedbackType - The feedback type of the checkbox. Can be `info`, `success`, or `error`.\n * @attribute {boolean} invalid - The invalid state of the checkbox.\n * @attribute {boolean} optional - The optional state of the checkbox.\n * @attribute {string} optionalLabel - The optional label of the checkbox.\n *\n * @csspart base - The main checkbox container.\n * @csspart label - The label of the checkbox.\n * @csspart input - The input of the checkbox.\n * @csspart control - The control of the checkbox.\n * @csspart icon - The icon of the checkbox.\n * @csspart label-container - The label container of the checkbox.\n * @csspart description - The description of the checkbox.\n */\n@customElement('dap-ds-checkbox')\nexport default class DapDSCheckbox extends LabelPositionedFormElement {\n @query('#input') input!: HTMLInputElement\n @property() ariaLabelCheckbox?: string\n @property({ type: Boolean, reflect: true }) indeterminate = false\n @property({ type: Boolean, reflect: true }) preventDefault = false\n\n static styles = unsafeCSS(styles)\n\n private handleClick() {\n if (!this.preventDefault) {\n if (this.indeterminate) {\n this.indeterminate = false\n this.checked = true\n } else {\n this.checked = !this.checked\n }\n\n const { checked, indeterminate, value, disabled } = this\n\n const event = new CustomEvent('dds-change', {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: { checked, indeterminate, value, disabled },\n })\n\n this.dispatchEvent(event)\n\n this.setValidity()\n }\n }\n\n private handleInput() {\n const { checked, indeterminate, value, disabled } = this\n\n const event = new CustomEvent('dds-input', {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: { checked, indeterminate, value, disabled },\n })\n\n this.dispatchEvent(event)\n }\n\n public get focusElement() {\n return this.input\n }\n\n renderIcon() {\n if (this.indeterminate) {\n return html`\n <dap-ds-icon-subtract-line\n class=\"checkbox__icon\"\n part=\"icon\"\n decorative></dap-ds-icon-subtract-line>\n `\n }\n\n if (this.checked) {\n return html`\n <dap-ds-icon-check-line2\n class=\"checkbox__icon\"\n part=\"icon\"\n decorative></dap-ds-icon-check-line2>\n `\n }\n\n return null\n }\n\n handleInvalid(event: Event) {\n event.preventDefault()\n }\n\n render() {\n return html`\n <div part=\"base\">\n <label\n part=\"base-label\"\n id=\"label\"\n class=${clsx('checkbox choice', {\n 'checkbox--checked': this.checked,\n 'checkbox--disabled': this.disabled,\n 'checkbox--indeterminate': this.indeterminate,\n 'checkbox--required': this.required,\n 'checkbox--sm': this.size === 'sm',\n 'checkbox--lg': this.size === 'lg',\n 'choice__label--right': this.labelPlacement === 'right',\n 'choice__label--left': this.labelPlacement === 'left',\n })}>\n <div>\n <input\n part=\"input\"\n type=\"checkbox\"\n class=\"input\"\n name=${this.name}\n id=\"input\"\n .indeterminate=${this.indeterminate}\n .checked=${this.checked}\n .disabled=${this.disabled}\n .required=${this.required}\n aria-label=${ifDefined(this.ariaLabelCheckbox)}\n aria-describedby=\"description ${this.feedback ? 'feedback' : ''}\"\n aria-checked=${this.checked ? 'true' : 'false'}\n .aria-invalid=${this.invalid ? 'true' : null}\n @invalid=${this.handleInvalid}\n @click=${this.handleClick}\n @input=${this.handleInput}\n @blur=${super.onBlur}\n @focus=${super.onFocus} />\n\n <span\n part=\"control\"\n class=${clsx('input__control', {\n 'input__control--checked': this.checked,\n 'input__control--disabled': this.disabled,\n 'input__control--indeterminate': this.indeterminate,\n 'input__control--invalid': this.invalid,\n 'input__control--sm': this.size === 'sm',\n 'input__control--lg': this.size === 'lg',\n })}>\n <slot name=\"iconcontent\"> ${this.renderIcon()} </slot>\n </span>\n <div\n part=\"label-container\"\n class=${clsx('choice__label-container', {\n 'choice__label-container--disabled': this.disabled,\n 'choice__label--bottom': this.descriptionPlacement === 'top',\n 'choice__label--top': this.descriptionPlacement === 'bottom',\n })}>\n <dap-ds-form-label\n id=\"label\"\n class=\"label\"\n part=\"label\"\n .size=${this.size}\n .required=${this.required}\n .optional=${this.optional}\n .optionalLabel=${this.optionalLabel}\n .disabled=${this.disabled}\n label=${ifDefined(this.label)}\n subtle\n renderAsText>\n </dap-ds-form-label>\n ${this.description &&\n html`\n <dap-ds-typography\n class=\"description\"\n variant=\"description\"\n part=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n </div>\n </div>\n ${this.feedback &&\n html`\n <dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=${ifDefined(this.size) as CommonSize}\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>\n `}\n </label>\n </div>\n `\n }\n}\n","import clsx from 'clsx'\nimport { nothing, PropertyValueMap, unsafeCSS } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize, PopupPlacement } from '@/common/types'\nimport { getValidityStateObject } from '@/common/utils'\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\nimport { t } from '@/localization/localization'\n\nimport DapDSOptionList from '../option-list/option-list.component'\nimport styles from './combobox.scss?inline'\n\nexport default class ComboboxBaseElement extends GenericFormElement {\n @query('input') triggerInput: HTMLInputElement\n @query('dap-ds-option-list') optionList: DapDSOptionList\n @property({ reflect: true }) placement: PopupPlacement = 'bottom-start'\n @property({ type: Boolean, reflect: true }) opened = false\n @property() searchMode: 'none' | 'typehead' | 'autocomplete' | 'manual' =\n 'autocomplete'\n @property({ type: Boolean }) search = false\n @property() clearButton?: string = 'true'\n @property() placeholder: string | null\n @property({ type: Boolean }) sync?: boolean\n @property({ type: Boolean }) allowManualInput?: boolean = false\n @property({ type: Boolean }) searchForText?: boolean = false\n @property({ type: String }) searchOnValueSet? = 'false'\n @property({ type: Boolean }) loading?: boolean = false\n @property() selectable?: string = 'true'\n @property({ type: Boolean }) noAnimation?: boolean = false\n @property({ type: Boolean }) noTextComplete?: boolean = false\n\n @state() selectedItem: any\n @state() currentItem: any\n @state() selectedText: string\n\n static styles = unsafeCSS(styles)\n\n protected async firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): Promise<void> {\n super.firstUpdated(_changedProperties)\n\n await this.optionList.updateComplete\n\n if (this.value) {\n this.selectedItem = this.optionList\n ?.getAllOptions()\n .find(option => option.value === this.value)\n this.selectedText = this.selectedItem?.optionText || ''\n }\n }\n\n attributeChangedCallback(\n name: string,\n _old: string | null,\n value: string | null,\n ): void {\n if (name === 'value' && !value) {\n this.clearSelection()\n }\n\n super.attributeChangedCallback(name, _old, value)\n }\n\n get isAutoComplete() {\n return this.searchMode === 'autocomplete' || this.searchMode === 'manual'\n }\n\n handleClick = () => {\n this.opened ? this.hideDropDown() : this.showDropDown()\n }\n\n handleKeyDown = async (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n return\n }\n\n if (event.key === 'Enter') {\n event.preventDefault()\n event.stopPropagation()\n\n if (this.allowManualInput) {\n this.emit('dds-search', { search: this.selectedText })\n this.setValidity()\n\n return this.hideDropDown()\n }\n\n if (this.opened && this.currentItem.value === this.selectedItem?.value) {\n this.hideDropDown()\n this.triggerInput.value = this.selectedItem.text\n this.triggerInput.focus()\n return\n }\n\n if (this.opened && this.currentItem.value !== this.selectedItem?.value) {\n if (!this.searchForText) {\n this.selectedItem = this.currentItem\n\n this.emit('dds-change', this.selectedItem)\n\n await this.updateComplete\n\n this.value = this.selectedItem.value\n this.selectedText = this.currentItem.text\n this.triggerInput.value = this.currentItem.text\n this.triggerInput.focus()\n this.setValidity()\n } else {\n this.value = this.currentItem.text\n this.selectedText = this.currentItem.text\n this.triggerInput.value = this.currentItem.text\n this.triggerInput.focus()\n this.emit('dds-search', { search: this.currentItem.text })\n this.setValidity()\n }\n\n return this.opened ? this.hideDropDown() : this.showDropDown()\n }\n\n if (this.search && !this.isAutoComplete) {\n this.emit('dds-search', { search: this.selectedText })\n this.setValidity()\n }\n }\n\n // if (event.key === 'Escape') {\n // this.hideDropDown()\n // return this.focus()\n // }\n\n if (\n (event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight') &&\n this.isAutoComplete\n ) {\n event.preventDefault()\n\n if (!this.opened) {\n this.showDropDown()\n }\n\n await this.updateComplete\n this.optionList.captureFocus(event.key)\n\n return\n }\n\n // typing\n this.showDropDown()\n }\n\n handleInput = async (event: InputEvent) => {\n const input = this.triggerInput\n if (\n event.inputType !== 'deleteContentBackward' ||\n (event.inputType === 'deleteContentBackward' && this.allowManualInput)\n ) {\n this.selectedText = input.value\n this.value = input.value\n } else if (\n input.value === '' &&\n event.inputType === 'deleteContentBackward'\n ) {\n this.clearSelection()\n }\n\n this.emit('dds-input', { input: input.value, originalEvent: event })\n this.setValidity()\n }\n\n async clearSelection() {\n if (this.selectedText) {\n this.triggerInput.value = ''\n this.selectedText = ''\n this.selectedItem = null\n\n this.value = undefined\n\n await this.updateComplete\n\n this.emit('dds-change', this.selectedItem)\n }\n }\n\n handleListKeyDown = (event: CustomEvent) => {\n if (event.detail.key === 'Escape') {\n this.hideDropDown()\n this.currentItem = this.selectedItem\n this.selectedText = ''\n this.triggerInput.value = this.selectedItem.text\n this.triggerInput.focus()\n }\n }\n\n handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n if (this && !path.includes(this)) {\n this.hideDropDown()\n }\n }\n\n handleFocus = () => {\n this.emit('dds-focus')\n }\n\n handleBlur = () => {\n this.emit('dds-blur')\n }\n\n async showDropDown() {\n if (this.disabled || this.readonly || !this.isAutoComplete || this.opened) {\n return\n }\n\n this.opened = true\n\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n }\n\n async hideDropDown() {\n if (!this.opened) {\n return\n }\n\n this.opened = false\n\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n await this.updateComplete\n this.focus()\n this.clearSelectionRange()\n }\n\n public get focusElement() {\n return this.triggerInput?.focus()\n }\n\n handleSelectedChange = async (event: CustomEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (this.searchForText) {\n this.selectedText = event.detail.text\n this.value = event.detail.text\n\n this.emit('dds-search', { search: this.selectedText })\n\n this.setValidity()\n } else {\n this.selectedItem = event.detail\n this.selectedText = event.detail.text\n\n if (this.value !== this.selectedItem?.value) {\n this.value = this.selectedItem.value\n this.emit('dds-change', this.selectedItem)\n\n await this.updateComplete\n\n this.triggerInput.value = this.currentItem.text\n this.triggerInput.focus()\n this.setValidity()\n }\n }\n\n this.hideDropDown()\n }\n\n handleCurrentOptionChange = (event: CustomEvent) => {\n this.currentItem = event.detail\n\n if (\n !this.noTextComplete &&\n this.searchMode !== 'manual' &&\n this.searchMode !== 'none'\n ) {\n this.triggerInput.value = event.detail.text\n }\n\n if (\n this.isAutoComplete &&\n this.selectedText &&\n this.selectedText !== '' &&\n !this.allowManualInput &&\n !this.noTextComplete\n ) {\n this.setSelectionRange(\n this.selectedText.length,\n this.triggerInput.value.length,\n )\n }\n }\n\n handleClearClick = () => {\n if (!this.disabled) {\n this.clearSelection()\n\n this.triggerInput.focus()\n this.setValidity()\n this.emit('dds-clear')\n }\n }\n\n handleSearchClick = (event: MouseEvent) => {\n event.stopPropagation()\n event.preventDefault()\n\n this.setValidity()\n this.emit('dds-search', { search: this.selectedText })\n }\n\n private setSelectionRange(start: number, end: number) {\n this.triggerInput.setSelectionRange(start, end)\n }\n\n private clearSelectionRange() {\n const controlValueLength = this.triggerInput.value.length\n\n this.setSelectionRange(controlValueLength, controlValueLength)\n }\n\n getValidity() {\n if (this.isAutoComplete) {\n if (this.allowManualInput) {\n return (this.triggerInput.value !== '' ? true : false) ||\n this.selectedItem\n ? true\n : false\n } else if (this.searchForText) {\n return this.triggerInput.value !== '' ? true : false\n } else {\n return this.selectedItem ? true : false\n }\n } else {\n return this.triggerInput.value !== '' ? true : false\n }\n }\n\n // custom validation\n get validity(): ValidityState {\n if (this.internals.validity) {\n return this.internals.validity\n } else {\n return getValidityStateObject({\n valueMissing: this.required && !this.getValidity(),\n })\n }\n }\n\n get validationMessage(): string {\n return t('form.validationMessage.select')\n }\n\n checkValidity() {\n return this.required ? this.getValidity() : true\n }\n\n reportValidity() {\n return this.required ? this.checkValidity() : true\n }\n\n setValidity() {\n if (!this.checkValidity()) {\n this.internals.setValidity(\n {\n valueMissing: this.required && !this.getValidity(),\n },\n this.validationMessage,\n this.triggerInput,\n )\n } else {\n this.internals.setValidity({})\n }\n }\n\n handleInvalid(event: Event) {\n event.preventDefault()\n }\n\n getActiveDescendant() {\n const activeOption = this.optionList?.getActiveOption()\n return activeOption\n }\n\n renderCombobox() {\n return html` <div class=\"label-container\">\n <dap-ds-form-label\n part=\"label\"\n id=\"label\"\n .size=${this.size}\n .required=${this.required}\n .optional=${this.optional}\n .disabled=${this.disabled}\n for=\"input\"\n label=${ifDefined(this.label)}>\n </dap-ds-form-label>\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\">\n <dap-ds-icon-button\n clean\n class=\"input-group__toggle-button\"\n size=\"lg\">\n <dap-ds-icon name=\"information-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-tooltip>`}\n </div>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n <div>\n <dap-ds-popup\n part=\"base\"\n class=\"select-popup\"\n ?opened=${this.opened}\n ?hasArrow=${false}\n placement=${this.placement}\n offset=\"4\"\n ?sync=${this.sync}>\n <div\n slot=\"trigger\"\n part=\"trigger\"\n class=\"${clsx('select', {\n 'select--sm': this.size === 'sm',\n 'select--lg': this.size === 'lg',\n 'select--disabled': this.disabled,\n 'select--readonly': this.readonly,\n 'select--opened': this.opened,\n 'select--loading': this.loading,\n 'select--success': this.status === 'success',\n 'select--error': this.status === 'error',\n 'select--no-animation': this.noAnimation,\n })}\">\n <input\n role=\"combobox\"\n class=\"${clsx('input', {\n 'input--sm': this.size === 'sm',\n 'input--lg': this.size === 'lg',\n 'input--disabled': this.disabled,\n })}\"\n .aria-expanded=${this.opened}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-describedby=\"description ${this.feedback ? 'feedback' : ''}\"\n aria-disabled=${this.disabled}\n aria-autocomplete=\"both\"\n aria-controls=\"option-list\"\n aria-activedescendant=${ifDefined(this.getActiveDescendant()?.id)}\n ?required=${this.required}\n ?readonly=${this.readonly}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n value=${this.selectedText !== ''\n ? this.selectedText\n : this.selectedItem?.text || ''}\n placeholder=${ifDefined(this.placeholder || '')}\n type=${this.search ? 'search' : 'text'}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @input=${this.handleInput}\n @keydown=${this.handleKeyDown}\n @click=${this.handleClick} />\n <div\n class=\"${clsx('select-action', {\n 'select-action--sm': this.size === 'sm',\n 'select-action--lg': this.size === 'lg',\n 'select-action--disabled': this.disabled,\n 'select-action--readonly': this.readonly,\n 'select-action--opened': this.opened,\n })}\">\n ${this.clearButton === 'true' &&\n html`<div\n class=\"${clsx('clear-icon', {\n 'clear-icon--disabled': this.disabled,\n })}\">\n ${this.triggerInput &&\n this.triggerInput.value &&\n html`<dap-ds-icon-button\n icon=\"close-line\"\n ?disabled=${this.disabled}\n @click=${this.handleClearClick}></dap-ds-icon-button>`}\n </div>`}\n <div\n class=\"${clsx('indicator-icon', {\n 'indicator-icon--loading': this.loading,\n })}\">\n ${(this.searchMode === 'autocomplete' ||\n this.searchMode === 'manual') &&\n !this.search\n ? this.loading\n ? html`<dap-ds-icon-loading-spinner></dap-ds-icon-loading-spinner>`\n : html`<dap-ds-icon-arrow-right-s-line></dap-ds-icon-arrow-right-s-line>`\n : nothing}\n ${this.search\n ? this.loading\n ? html`<dap-ds-icon-loading-spinner></dap-ds-icon-loading-spinner>`\n : html`<dap-ds-icon-button\n size=\"lg\"\n variant=\"inverted-brand\"\n @click=${this.handleSearchClick}\n ><dap-ds-icon name=\"search-line\"></dap-ds-icon\n ></dap-ds-icon-button>`\n : nothing}\n </div>\n </div>\n </div>\n <dap-ds-option-list\n class=\"option-list\"\n part=\"option-list\"\n id=\"option-list\"\n .search=${this.search}\n searchMode=${this.allowManualInput ? 'none' : this.searchMode}\n searchOnValueSet=${this.searchOnValueSet === 'true'}\n filterText=${this.selectedText}\n size=${ifDefined(this.size)}\n value=${ifDefined(this.value)}\n ?selectable=${this.selectable === 'true'}\n @dds-option-change=${this.handleSelectedChange}\n @dds-keydown=${this.handleListKeyDown}\n @dds-current-change=${this.handleCurrentOptionChange}>\n <slot></slot>\n </dap-ds-option-list>\n </dap-ds-popup>\n ${this.feedback &&\n html`<dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=\"${ifDefined(this.size as 'lg' | 'sm')}\"\n id=\"feedback\">\n ${this.feedback}\n </dap-ds-feedback>`}\n </div>`\n }\n}\n","import { customElement } from 'lit/decorators.js'\n\nimport ComboboxBaseElement from './comboboxBase'\n\n/**\n * `dap-ds-combobox`\n * @summary A select is a form element that allows the user to select one option from a set.\n * @element dap-ds-combobox\n * @title - Combobox\n *\n * @event dds-change - Fired when the select value changes.\n * @event dds-blur - Emitted when the select loses focus.\n * @event dds-focus - Emitted when the select gains focus.\n * @event dds-clear - Emitted when the select is cleared.\n * @event dds-search - Emitted when the manual input value changes.\n *\n * @attribute {string} value - The value of the select.\n * @attribute {string} placeholder - The placeholder of the select.\n * @attribute { 'top' | 'top-start' | 'top-end' | 'right' | 'right-start'| 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'} placement - The placement of the select dropdown. Default is 'bottom-start'.\n * @attribute {boolean} opened - Whether the select dropdown is opened.\n * @attribute {'width' | 'height' | 'both'} sync - The sync mode of the select dropdown. How the dropdown item size is synced to the trigger element'.\n * @attribute {string} label - The label of the select.\n * @attribute {string} description - The description of the select.\n * @attribute {string} tooltip - The tooltip of the select.\n * @attribute {'sm' | 'lg'} size - The size of the select. Default is 'md'.\n * @attribute {boolean} disabled - Whether the select is disabled.\n * @attribute {boolean} required - Whether the select is required.\n * @attribute {boolean} readonly - Whether the select is readonly.\n * @attribute {boolean} autofocus - Whether the select is autofocus.\n * @attribute {string} feedback - The feedback content of the select.\n * @attribute {'error' | 'warning' | 'info'} feedbackType - The feedback type of the select.\n * @attribute {'none' | 'typehead' | 'autocomplete' | 'manual'} searchMode - The search mode of the select.\n *\n * @csspart base - The main select container.\n * @csspart trigger - The trigger button of the select.\n * @csspart label - The label of the select.\n * @csspart description - The description of the select.\n * @csspart feedback - The feedback of the select.\n * @csspart tooltip - The tooltip of the select.\n * @csspart option-list - The option list of the select.\n */\n@customElement('dap-ds-combobox')\nexport default class DapDSCombobox extends ComboboxBaseElement {\n render() {\n return this.renderCombobox()\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DapDSContentSwitcherItem } from '@/dap-design-system'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './content-switcher.scss?inline'\n\n/**\n * `dap-ds-content-switcher`\n * @summary A content switcher is a set of two or more segments, each of which functions as a mutually exclusive button.\n * @element dap-ds-content-switcher\n * @title - Content switcher\n *\n * @slot - The content switcher items.\n *\n * @event dds-change - Fired when the content switcher is changed.\n *\n * @attribute {boolean} multiSelect - Whether the content switcher allows multiple selections.\n * @attribute {string} value - The value of the content switcher. A comma-separated list if `multiSelect` is `true`.\n *\n * @csspart base - The main content switcher container.\n */\n@customElement('dap-ds-content-switcher')\nexport default class DapDSContentSwitcher extends DdsElement {\n @property({ type: Boolean, reflect: true }) multiSelect: boolean = false\n @property() value: string\n\n static styles = unsafeCSS(styles)\n\n private getAllInputs() {\n return [\n ...this.querySelectorAll<DapDSContentSwitcherItem>(\n 'dap-ds-content-switcher-item',\n ),\n ]\n }\n\n private async syncInputElements() {\n const inputs = this.getAllInputs()\n\n await Promise.all(\n inputs.map(async input => {\n if (this.multiSelect && this.value) {\n const values = this.value?.split(',').map(item => item.trim())\n\n input.checked = values.includes(input.value)\n return\n } else {\n input.checked = input.value === this.value\n }\n }),\n )\n }\n\n private handleInputClick(event: MouseEvent) {\n const target = (\n event.target as HTMLElement\n ).closest<DapDSContentSwitcherItem>('dap-ds-content-switcher-item')\n const inputs = this.getAllInputs()\n const oldValue = this.value\n\n if (target!.disabled) {\n return\n }\n\n if (!this.multiSelect) {\n this.value = target!.value\n inputs.forEach(input => (input.checked = input === target))\n\n if (this.value !== oldValue) {\n this.emit('dds-change', { value: target!.value, selected: true })\n }\n } else {\n const values = inputs\n .filter(input => input.checked)\n .map(input => input.value)\n\n this.value = values.join(',')\n\n this.emit('dds-change', { value: this.value })\n }\n }\n\n render() {\n return html`\n <div part=\"base\" class=${clsx('content-switcher')}>\n <slot\n @click=${this.handleInputClick}\n @slotchange=${this.syncInputElements}></slot>\n </div>\n `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './content-switcher-item.scss?inline'\n\n/**\n * `dap-ds-content-switcher-item`\n * @summary Segmented control item component for the segmented control.\n * @element dap-ds-content-switcher-item\n * @title - Content switcher item\n *\n * @slot - The icon content of the segmented control item.\n *\n * @attribute {string} value - The value of the segmented control item.\n * @attribute {boolean} checked - The checked state of the segmented control item.\n * @attribute {boolean} selected - The selected state of the segmented control item.\n * @attribute {string} name - The name of the segmented control item.\n *\n * @csspart input - The input of the segmented control item.\n *\n */\n@customElement('dap-ds-content-switcher-item')\nexport default class DapDSSContentSwitcherItem extends DdsElement {\n @property({ type: String, reflect: true }) value: string\n @property({ type: Boolean }) checked: boolean = false\n @property({ type: Boolean, reflect: true }) disabled: boolean = false\n @property({ type: String, reflect: true }) name: string\n\n static styles = unsafeCSS(styles)\n\n get multiple() {\n return this.parentElement?.hasAttribute('multiselect')\n }\n\n handleClick = (e: MouseEvent) => {\n this.checked = !this.checked\n e.preventDefault()\n }\n\n render() {\n return this.multiple\n ? html`\n <dap-ds-checkbox\n part=\"input\"\n name=${this.name}\n id=\"input\"\n value=${ifDefined(this.value)}\n .checked=${this.checked}\n .disabled=${this.disabled}\n preventDefault\n class=\"content-switcher__input\"\n @click=${this.handleClick}>\n <slot slot=\"iconcontent\"></slot>\n </dap-ds-checkbox>\n `\n : html`\n <button\n part=\"input\"\n id=\"input\"\n name=${this.name}\n value=${ifDefined(this.value)}\n .checked=${this.checked}\n .disabled=${this.disabled}\n class=${clsx('content-switcher__input', {\n 'content-switcher__input--checked': this.checked,\n })}>\n <slot slot=\"iconcontent\"></slot>\n </button>\n `\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport styles from './datepicker.scss?inline'\n\n/**\n * `dap-ds-datepicker`\n * @summary A datepicker is a graphical user interface widget that allows the user to select a date from a calendar and/or time from a time range.\n * @element dap-ds-datepicker\n * @title - Datepicker\n *\n */\n@customElement('dap-ds-datepicker')\nexport default class DapDSDatePicker extends DdsElement {\n @property({ type: String }) value: string = ''\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html` <div class=\"datepicker\"></div> `\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { Spacing } from '@/common/types'\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport styles from './divider.scss?inline'\n\n/**\n * `dap-ds-divider`\n * @summary A divider is a visual separator between elements.\n * @element dap-ds-divider\n * @title - Divider\n *\n * @attribute {boolean} vertical - Whether the divider is vertical. Default is false.\n * @attribute {Spacing} spacing - The spacing of the divider. Default is 0. It is uses the design system values (100, 200, 300, etc...)\n */\n@customElement('dap-ds-divider')\nexport default class DapDSDivider extends DdsElement {\n @property({ type: Boolean, reflect: true }) vertical = false\n @property({ type: Number }) spacing: Spacing = 0\n\n static styles = unsafeCSS(styles)\n\n connectedCallback() {\n super.connectedCallback()\n this.setAttribute('role', 'separator')\n this.setAttribute('class', `divider-spacing-${this.spacing}`)\n }\n}\n","import clsx from 'clsx'\nimport { html, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { CommonSize } from '@/common/types'\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport styles from './feedback.scss?inline'\n\nexport type FeedbackType = 'negative' | 'positive' | 'warning'\n\nexport type FeedbackProps = {\n size?: CommonSize\n type: FeedbackType\n}\n\n/**\n * `dap-ds-feedback`\n * @summary A feedback is a container for feedback messages.\n * @element dap-ds-feedback\n * @title - Feedback\n *\n * @attribute {'negative' | 'positive' | 'warning'} type - The type of the feedback. Default is `positive`.\n * @attribute {'sm' | 'lg'} size - The size of the feedback. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {boolean} subtle - The weight of the label. Default is false.\n *\n * @slot icon - The custom icon of the feedback.\n * @slot - The text of the feedback.\n *\n * @csspart base - The main feedback container.\n * @csspart icon - The icon of the feedback.\n * @csspart text - The text of the feedback.\n */\n@customElement('dap-ds-feedback')\nexport default class DapDSFeedback extends SizedMixin(DdsElement) {\n static styles = unsafeCSS(styles)\n @property() type: FeedbackType = 'positive'\n @property({ type: Boolean, reflect: true }) subtle = false\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx(\n 'feedback',\n\n `feedback--${this.type}`,\n `feedback--${this.size}`,\n {\n 'feedback--subtle': this.subtle,\n },\n )}>\n <slot name=\"icon\" class=\"feedback__icon\">\n <dap-ds-icon\n part=\"icon\"\n size=\"${ifDefined(this.size)}\"\n name=\"${this._iconType(this.type)}\">\n </dap-ds-icon>\n </slot>\n <slot part=\"text\"></slot>\n </div>\n `\n }\n\n private _iconType(type: FeedbackType): string {\n switch (type) {\n case 'positive':\n return `checkbox-circle-${this.subtle ? 'line' : 'fill'}`\n case 'negative':\n return `error-warning-${this.subtle ? 'line' : 'fill'}`\n case 'warning':\n return `alert-${this.subtle ? 'line' : 'fill'}`\n default:\n return `information-${this.subtle ? 'line' : 'fill'}`\n }\n }\n}\n","export class HttpError extends Error {\n response: any\n status: number\n\n constructor(message: string, response: any, status: number) {\n super(message)\n this.response = response\n this.status = status\n }\n}\n\nexport class FileError extends Error {\n file: File\n type: string\n\n constructor(message: string, file: File, type: string) {\n super(message)\n this.file = file\n this.type = type\n }\n}\n","import clsx from 'clsx'\nimport { css, html, nothing, unsafeCSS } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { FileError, HttpError } from '@/common/errors'\nimport { CommonFormElementSize } from '@/common/types'\nimport { FileListElement } from '@/components/file-input/file-input-list-item.component'\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\nimport { t } from '@/localization/localization'\n\nimport style from './file-input.scss?inline'\nimport DapDSFileInputList from './file-input-list.component'\nimport DapDSFileInputListItem from './file-input-list-item.component'\n\n/**\n * `dap-ds-file-input`\n * @summary A file input is a control that allows users to select files to upload.\n * @element dap-ds-file-input\n * @title - File input\n *\n * @attribute {boolean} subtle - Font weight of the feedback label. Default is `false` which is bold.\n * @attribute {string} name - The name of the file input.\n * @attribute {string} value - The value of the file input.\n * @attribute {string} status - The status of the file input. Can be 'success' or 'error'.\n * @attribute {string} path - The server path for file uploads.\n * @attribute {boolean} autoupload - Whether to upload files immediately upon selection.\n * @attribute {string} uploadproperty - The name of the property to use when uploading files.\n * @attribute {string} uploadmethod - The HTTP method to use when uploading files.\n * @attribute {boolean} withcredentials - Whether to send credentials with the file upload request.\n * @attribute {string} maxfiles - The maximum number of files that can be uploaded.\n * @attribute {string} maxfilesize - The maximum size of files that can be uploaded.\n * @attribute {string} size - The size of the file input. Can be 'small', 'medium', or 'large'.\n * @attribute {string} label - The label for the file input.\n * @attribute {string} description - The description for the file input.\n * @attribute {string} feedback - The feedback for the file input.\n * @attribute {string} feedbacktype - The type of feedback for the file input. Can be 'error' or 'warning'.\n * @attribute {string} tooltip - The tooltip for the file input.\n * @attribute {boolean} required - Whether the file input is required.\n * @attribute {boolean} optional - Whether the file input is optional.\n * @attribute {boolean} disabled - Whether the file input is disabled.\n * @attribute {boolean} multiple - Whether the file input accepts multiple files.\n * @attribute {boolean} keepvalue - Whether to keep the value of the file input when new files are selected.\n *\n * @event dds-upload-start - Fired when a file upload starts.\n * @event dds-upload-progress - Fired during file upload progress.\n * @event dds-upload-complete - Fired when a file upload completes successfully.\n * @event dds-upload-error - Fired when a file upload encounters an error.\n * @event dds-all-uploads-complete - Fired when all file uploads are complete.\n * @event dds-file-removed - Fired when a file is removed from the file input.\n *\n * @csspart base - The main file input container.\n * @csspart input - The file input control.\n * @csspart label - The file input label.\n * @csspart description - The file input description.\n * @csspart feedback - The file input feedback.\n * @csspart tooltip - The file input tooltip.\n */\n@customElement('dap-ds-file-input')\nexport default class DapDSFileInput extends GenericFormElement {\n @query('#input') input!: HTMLInputElement\n @property() uploadButtonLabel: string\n @property() accept: string\n @property({ type: Boolean }) multiple = true\n @property({ type: Boolean }) keepValue: false\n @property({ type: Boolean }) showProgress = false\n @property() uploadUrl: string\n @property({ type: Boolean }) autoupload: boolean\n @property() uploadProperty = 'file'\n @property() uploadMethod = 'POST'\n @property({ type: Boolean }) withCredentials = false\n @property({ attribute: false }) fileList: DapDSFileInputList | null = null\n @property() maxFiles: string\n @property() maxFileSize: string\n\n @property({ type: Array, attribute: false })\n get files() {\n return this._files\n }\n\n @state() private _files: File[] = []\n @state() private _uploadProgress: Record<string, number> = {}\n\n static styles = css`\n ${unsafeCSS(style)}\n `\n\n checkFileEquality(\n file1: File | FileListElement,\n file2: File | FileListElement,\n ) {\n return (\n file1.name === file2.name &&\n file1.size === file2.size &&\n file1.type === file2.type &&\n file1.lastModified === file2.lastModified\n )\n }\n\n private removeFile(fileData: FileListElement) {\n new Promise((resolve, reject) => {\n this.emit(\n 'dds-file-removed',\n { file: fileData, cancel: { allow: resolve, reject } },\n {\n cancelable: true,\n },\n )\n }).then(() => {\n this._files = this._files.filter(\n (file: File) => !this.checkFileEquality(file, fileData),\n )\n\n if (this._files.length === 0 && this.required) {\n this.value = undefined\n this.input.value = ''\n }\n\n this.emit('dds-file-change', { files: this.files })\n\n this.setValidity()\n })\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n this.addEventListener('dds-file-remove', event => {\n this.removeFile((event as CustomEvent).detail.file)\n })\n }\n\n onCancel() {\n this.emit('dds-cancel')\n this.setValidity()\n }\n\n onClick() {\n this.input.click()\n }\n\n setFileLoadingState(file: File, loading: boolean) {\n if (!this.fileList) {\n return\n }\n\n const fileComponent = this.fileList.getFileByName(\n file.name,\n )! as DapDSFileInputListItem\n\n fileComponent.loading = loading\n\n return fileComponent\n }\n\n private async uploadFiles(files: File[]) {\n if (!this.uploadUrl) {\n console.error('Upload url is not set')\n return\n }\n\n const totalFiles = files.length\n let completedUploads = 0\n\n for (const file of files) {\n const formData = new FormData()\n formData.append(this.uploadProperty, file)\n\n try {\n this.emit('dds-upload-start', { file })\n\n const xhr = new XMLHttpRequest()\n xhr.withCredentials = this.withCredentials\n\n xhr.open(this.uploadMethod, this.uploadUrl)\n\n xhr.upload.onprogress = event => {\n if (event.lengthComputable) {\n const progress = (event.loaded / event.total) * 100\n this._uploadProgress = {\n ...this._uploadProgress,\n [file.name]: progress,\n }\n\n if (this.fileList) {\n this.setFileLoadingState(file, true)\n }\n\n this.emit('dds-upload-progress', { file, progress })\n }\n }\n\n const response = (await new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve(xhr.response)\n } else {\n const error = new HttpError(\n `HTTP error! status: ${xhr.status}`,\n xhr.response,\n xhr.status,\n )\n reject(error)\n }\n }\n xhr.onerror = () => {\n if (this.fileList) {\n this.setFileLoadingState(file, false)\n }\n reject(new Error('Network error'))\n }\n xhr.send(formData)\n })) as string\n\n const result = JSON.parse(response as string)\n\n if (this.fileList) {\n this.setFileLoadingState(file, false)\n }\n\n this.emit('dds-upload-complete', { file, result })\n\n completedUploads++\n if (completedUploads === totalFiles) {\n this.emit('dds-all-uploads-complete')\n }\n } catch (error) {\n if (this.fileList) {\n const fileComponent = this.setFileLoadingState(file, false)\n this.emit('dds-upload-error', { file, item: fileComponent, error })\n } else {\n this.emit('dds-upload-error', { file, error })\n }\n }\n }\n }\n\n private handleFileList(fileList: FileList | null) {\n const files = [...this._files]\n\n if (this.keepValue && this._files?.length) {\n Object.values(fileList!).forEach((file: File) => {\n const isFileInList = !!this._files.find((f: File) =>\n this.checkFileEquality(f, file),\n )\n\n if (!isFileInList) {\n files.push(file)\n }\n })\n\n this._files = files\n } else {\n this._files = fileList ? Object.values(fileList) : []\n }\n\n const dataTransfer = new DataTransfer()\n\n this._files.forEach(file => {\n dataTransfer.items.add(file)\n })\n this.input.files = dataTransfer.files\n\n if (this.autoupload) {\n this.uploadFiles(this._files)\n }\n }\n\n override onChange(event: InputEvent) {\n const target = event?.target as HTMLInputElement\n const targetFiles = target.files\n\n if (\n targetFiles &&\n this.maxFiles &&\n (targetFiles?.length || 0) > parseInt(this.maxFiles)\n ) {\n const errorFile = targetFiles[parseInt(this.maxFiles)]\n\n this.emit('dds-upload-error', {\n error: new FileError(\n `Maximum number of files exceeded. Maximum is ${this.maxFiles}`,\n errorFile,\n 'maxFiles',\n ),\n })\n return\n }\n\n if (targetFiles && this.maxFileSize) {\n let filesSize = 0\n const maxFileSize = parseInt(this.maxFileSize)\n let errorFile: File | undefined\n\n for (let i = 0; i < targetFiles.length; i++) {\n filesSize += targetFiles[i].size\n if (filesSize > maxFileSize) {\n errorFile = targetFiles[i]\n break\n }\n }\n\n if (errorFile) {\n this.emit('dds-upload-error', {\n error: new FileError(\n `Maximum file size exceeded. Maximum is ${this.maxFileSize}`,\n errorFile,\n 'maxFileSize',\n ),\n })\n return\n }\n }\n\n this.value = this.input.value\n\n this.handleFileList(targetFiles)\n\n this.emit('dds-file-change', { files: this._files })\n this.setValidity()\n }\n\n onDragenter(event: DragEvent) {\n event.preventDefault()\n }\n\n onDragover(event: DragEvent) {\n event.preventDefault()\n }\n\n onDrop(event: DragEvent) {\n event.preventDefault()\n\n this.handleFileList(event.dataTransfer?.files ?? null)\n\n this.emit('dds-file-change', { value: this._files })\n this.setValidity()\n }\n\n render() {\n return html`\n <div class=\"label-container\">\n <dap-ds-form-label\n part=\"label\"\n id=\"label\"\n for=\"input\"\n .size=${this.size}\n .required=${this.required}\n .optional=${this.optional}\n .disabled=${this.disabled}\n label=${ifDefined(this.label)}>\n </dap-ds-form-label>\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\">\n <dap-ds-icon-button\n clean\n class=\"input-group__toggle-button\"\n slot=\"trigger\"\n size=\"lg\">\n <dap-ds-icon name=\"information-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-tooltip>`}\n </div>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n <span\n part=\"base\"\n class=${clsx(\n 'input',\n { 'input--success': this.status === 'success' },\n { 'input--error': this.status === 'error' },\n { 'input--disabled': this.disabled },\n )}>\n <div class=\"input__holder\">\n <input\n id=\"input\"\n class=\"input__control sr-only\"\n part=\"input\"\n name=${this.name}\n type=\"file\"\n accept=${ifDefined(this.accept)}\n ?disabled=${this.disabled}\n ?multiple=${this.multiple}\n ?required=${this.required}\n aria-labelledby=\"label\"\n aria-describedby=\"description ${this.feedback\n ? 'feedback'\n : nothing}\"\n @change=${this.onChange}\n @cancel=${this.onCancel}\n @invalid=${this.handleInvalid}\n @blur=${this.onBlur}\n @focus=${this.onFocus} />\n <dap-ds-button\n class=\"input__button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n variant=\"secondary\"\n ?disabled=${this.disabled}\n size=${ifDefined(this.size) as CommonFormElementSize}\n @click=${this.onClick}\n @dragenter=${this.onDragenter}\n @dragover=${this.onDragover}\n @drop=${this.onDrop}\n >${this.uploadButtonLabel || t('fileInput.upload')}</dap-ds-button\n >\n </div>\n </span>\n ${this.feedback &&\n html`\n <dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=${ifDefined(this.size)}\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>\n `}\n ${this.showProgress && this._files.length > 0\n ? html`\n <div class=\"upload-progress\">\n ${this._files.map(\n file => html`\n <div class=\"file-progress\">\n <span>${file.name}</span>\n <progress\n value=${this._uploadProgress[file.name] || 0}\n max=\"100\"></progress>\n </div>\n `,\n )}\n </div>\n `\n : nothing}\n `\n }\n}\n","import { html, PropertyValueMap, unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport DapDSFileInput from './file-input.component'\nimport styles from './file-input-list.scss?inline'\nimport DapDSFileInputListItem from './file-input-list-item.component'\n\n/**\n * `dap-ds-file-input-list`\n * @summary A file input list is a container for file input items.\n * @element dap-ds-file-input-list\n * @title - File input list\n * @group fileinput\n *\n * @attribute {string} for - The id of the file input element to bind to.\n * @attribute {boolean} disabled - Disables the file input list.\n *\n * @event dds-file-remove - Dispatched when a file is removed from the list.\n *\n * @csspart base - The main file input list container.\n *\n */\n@customElement('dap-ds-file-input-list')\nexport default class DapDSFileInputList extends SizedMixin(DdsElement) {\n static styles = unsafeCSS(styles)\n fileInputElement: DapDSFileInput | null = null\n\n @property({ type: String }) for: string\n @property({ type: Boolean, reflect: true }) disabled = false\n\n @state()\n private _files: DapDSFileInputListItem[] = []\n\n get files() {\n return this.querySelectorAll('dap-ds-file-input-list-item')\n }\n\n getFileByName(name: string) {\n return this.shadowRoot!.querySelector(\n `dap-ds-file-input-list-item[filename=\"${name}\"]`,\n )\n }\n\n private _handleFileChange(event: Event) {\n const fileComponents = (event as CustomEvent).detail.files.map(\n (file: File) =>\n html`<dap-ds-file-input-list-item\n size=${this.size}\n .fileData=${file}\n fileName=${file.name}\n .disabled=${this.disabled}></dap-ds-file-input-list-item>`,\n )\n\n this._files = fileComponents\n }\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n if (this.for) {\n this.fileInputElement = document.querySelector(`#${this.for}`)\n if (this.fileInputElement) {\n this.fileInputElement.fileList = this\n this.fileInputElement?.addEventListener(\n 'dds-file-change',\n this._handleFileChange.bind(this),\n )\n }\n }\n }\n\n removeFile(event: CustomEvent) {\n this.fileInputElement?.dispatchEvent(\n new CustomEvent('dds-file-remove', {\n bubbles: false,\n composed: true,\n detail: event.detail,\n }),\n )\n }\n\n render() {\n return html`<ul\n class=\"file-input-list\"\n part=\"base\"\n @dds-file-remove=${this.removeFile}>\n ${this._files}\n </ul>`\n }\n}\n","import clsx from 'clsx'\nimport { css, html, nothing, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { JSONAttributeParser } from '@/common/utils'\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\nimport { t } from '@/localization/localization'\n\nimport { FeedbackType } from '../feedback/feedback.component'\nimport styles from './file-input-list-item.scss?inline'\n\nexport type FileListElement = {\n name: string\n type: string\n size: number\n lastModified: number\n}\n\n/**\n * `dap-ds-file-input-list-item`\n * @summary A file input list item is a container for file input list items.\n * @element dap-ds-file-input-list-item\n * @title - File input list item\n * @group fileinput\n *\n * @attribute {boolean} deletable - Show delete button. Default is `false`.\n * @attribute {boolean} showSize - Show file size. Default is `false`.\n * @attribute {boolean} loading - Show loading spinner. Default is `false`.\n * @attribute {boolean} disabled - Disables the file input list item.\n * @attribute {string} inputName - The name of the file input.\n * @attribute {string} feedbackType - The feedback type.\n * @attribute {string} feedback - The feedback message.\n * @attribute {boolean} subtle - Subtle style.\n * @attribute {string} progress - The progress of the file upload.\n *\n * @@csspart base - The main file input list item container.\n * @@csspart feedback - The feedback container.\n */\n@customElement('dap-ds-file-input-list-item')\nexport default class DapDSFileInputListItem extends SizedMixin(DdsElement) {\n static styles = css`\n ${unsafeCSS(styles)}\n `\n\n @property({ type: Boolean, reflect: true }) disabled = false\n @property({ type: String }) inputName: string\n @property({ type: String }) feedbackType: FeedbackType\n @property({ type: String }) feedback: string\n @property({ type: Boolean, reflect: true }) loading? = false\n @property({ type: Boolean }) deletable? = false\n @property({ type: Boolean }) showSize? = false\n @property({ type: Object, converter: JSONAttributeParser })\n fileData: FileListElement\n @property({ type: Boolean }) subtle = false\n @property({ type: String }) progress = '0'\n\n delete() {\n this.emit('dds-file-remove', { file: this.fileData })\n }\n\n get formattedSize() {\n const exponent = 1024\n const sizes = ['B', 'КB', 'МB', 'GB']\n const fractionDigits = 0\n const size = this.fileData.size\n\n if (!+size) {\n return `0 ${sizes[0]}`\n }\n\n const i = Math.floor(Math.log(size) / Math.log(exponent))\n\n return `${parseFloat((size / Math.pow(exponent, i)).toFixed(fractionDigits))} ${sizes[i]}`\n }\n\n render() {\n return (\n this.fileData &&\n html`\n <li\n part=\"base\"\n class=${clsx('file-list-item', {\n 'file-list-item--lg': this.size === 'lg',\n 'file-list-item--sm': this.size === 'sm',\n 'file-list-item--disabled': this.disabled,\n })}>\n <div class=\"content\">\n <span class=\"content__filename\">${this.fileData.name}</span>\n <span class=\"content__filesize\">${this.formattedSize}</span>\n <span class=\"content__markers\">\n ${this.loading\n ? html`<dap-ds-spinner\n size=\"sm\"\n type=\"neutral\"></dap-ds-spinner>`\n : nothing}\n\n <dap-ds-icon-button\n ?disabled=\"${this.disabled}\"\n size=\"lg\"\n arial-label=${`${t('fileInput.delete')} ${this.fileData.name}`}\n clean\n @click=\"${this.delete}\">\n <dap-ds-icon name=\"close-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </span>\n </div>\n ${this.feedback &&\n html`\n <dap-ds-feedback\n part=\"feedback\"\n class=\"feedback\"\n size=\"sm\"\n type=${ifDefined(this.feedbackType)}>\n <span class=\"feedback__text\">${this.feedback}</span>\n </dap-ds-feedback>\n `}\n </li>\n `\n )\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { LabelableMixin } from '@/internal/mixin/labelableMixin'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport styles from './form-label.scss?inline'\n\n/**\n * `dap-ds-form-label`\n * @summary A form label is a container for labels in a form.\n * @element dap-ds-form-label\n * @title - Form label\n * @group form\n *\n * @attribute {string} for - The id of the form element that the label is associated with.\n * @attribute {boolean} renderAsText - Whether the label should be rendered as text or a <label> tag. Default is false.\n * @attribute {string} optionalLabel - Label of optional text\n * @attribute {boolean} subtle - Text weight of the label.\n * @attribute {boolean} optional - If the label is optional.\n *\n * @csspart base - The main form label container.\n * @csspart required - The required indicator of the form label.\n * @csspart optional - The optional indicator of the form label.\n */\n@customElement('dap-ds-form-label')\nexport default class DapDSFormLabel extends SizedMixin(\n LabelableMixin(DdsElement),\n) {\n @property() for?: string\n @property({ type: Boolean })\n renderAsText?: boolean\n\n static styles = unsafeCSS(styles)\n\n createRenderRoot() {\n return this\n }\n\n render() {\n const LabelTag = `${this.renderAsText ? 'span' : 'label'}`\n\n return html`\n \n <${unsafeStatic(LabelTag)}\n class=${clsx('label', {\n 'label--disabled': this.disabled,\n 'label--required': this.required,\n 'label--optional': this.optional,\n 'label--subtle': this.subtle,\n [`label--${this.size}`]: this.size,\n })}\n for=${ifDefined(this.for)}>\n ${this.label}\n \n </${unsafeStatic(LabelTag)}>\n ${\n this.required\n ? html`<span\n part=\"required\"\n aria-hidden=\"true\"\n class=\"form-label__required\"\n >*</span\n >`\n : null\n }\n ${\n this.optional\n ? html`<span\n part=\"optional\"\n class=${clsx('form-label__optional', {\n [`form-label__optional--${this.size}`]: this.size,\n })}>\n ${this.optionalLabel}\n </span>`\n : null\n }`\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize } from '@/common/types'\nimport DapDSCheckbox from '@/components/checkbox/checkbox.component'\nimport DapDSSwitch from '@/components/switch/switch.component'\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport styles from './input-group.scss?inline'\n\n/**\n * `dap-ds-input-group`\n * @summary An input group is a container for inputs.\n * @element dap-ds-input-group\n * @title - Input group\n * @group form\n *\n * @attribute {string} label - The label of the input group.\n * @attribute {string} description - The description of the input group.\n * @attribute {string} tooltip - The tooltip of the input group.\n * @attribute {boolean} disabled - Whether the input group is disabled.\n * @attribute {'sm' | 'lg'} size - The size of the input group. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {boolean} required - Whether the input group is required.\n * @attribute {boolean} optional - Whether the input group is optional.\n * @attribute {string} feedback - The feedback of the input.\n * @attribute {string} feedbackType - The type of the feedback.\n * @attribute {boolean} subtle - Whether the input group label is subtle.\n *\n * @slot - The content of the input group items.\n * @slot feedback-icon - The custom icon of the feedback.\n *\n * @csspart base - The main input group container.\n * @csspart label - The label of the input group.\n * @csspart description - The description of the input group.\n * @csspart tooltip - The tooltip of the input group.\n * @csspart container - The container of the input group items.\n */\n@customElement('dap-ds-input-group')\nexport default class DapDSInputGroup extends GenericFormElement {\n static styles = unsafeCSS(styles)\n\n @queryAssignedElements() allInputs: DapDSCheckbox[] | DapDSSwitch[]\n\n handleLabelClick() {\n const checkedInput =\n this.allInputs.find(input => input.checked) ?? this.allInputs[0]\n\n checkedInput.focus()\n }\n\n private getItems() {\n return [\n ...this.querySelectorAll<DapDSSwitch | DapDSCheckbox>(\n 'dap-ds-switch, dap-ds-checkbox',\n ),\n ]\n }\n\n attributeChangedCallback(\n name: string,\n _old: string | null,\n value: string | null,\n ) {\n super.attributeChangedCallback(name, _old, value)\n if (name === 'disabled' || name === 'invalid') {\n this.getItems().forEach(item => {\n item[name] = value !== null\n })\n }\n }\n\n render() {\n return html`\n <fieldset\n id=\"input\"\n class=\"input-group\"\n part=\"base\"\n .disabled=${this.disabled}\n aria-labelledby=\"label\"\n aria-describedby=${`description ${this.feedbackId}`}\n aria-errormessage=${ifDefined(this.feedbackId)}>\n <legend class=\"input-group__legend\">\n <div class=\"label-container\">\n ${this.label &&\n html`<dap-ds-form-label\n part=\"label\"\n id=\"label\"\n .size=${this.size}\n .required=${this.required}\n .optional=${this.optional}\n .optionalLabel=${this.optionalLabel}\n .disabled=${this.disabled}\n .subtle=${this.subtle}\n label=${ifDefined(this.label)}\n @click=${this.handleLabelClick}>\n </dap-ds-form-label>`}\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\">\n <dap-ds-icon-button\n clean\n class=\"input-group__toggle-button\"\n slot=\"trigger\"\n size=\"lg\">\n <dap-ds-icon name=\"information-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-tooltip>`}\n </div>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n </legend>\n <div part=\"container\" class=\"input-group__items\">\n <slot></slot>\n </div>\n ${this.feedback && this._renderFeedback()}\n </fieldset>\n `\n }\n\n private _handleSlotChange(event: Event) {\n const target = event?.target as HTMLInputElement\n target.setAttribute('slot', 'icon')\n }\n\n private _renderFeedback() {\n return html`\n <dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=\"${ifDefined(this.size as 'lg' | 'sm')}\"\n id=\"feedback\"\n .subtle=${this.subtle}>\n <slot\n name=\"feedback-icon\"\n @slotchange=\"${this._handleSlotChange}\"></slot>\n ${this.feedback}\n </dap-ds-feedback>\n `\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize } from '@/common/types'\nimport DapDSRadioButton from '@/components/radio-button/radio-button.component'\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport styles from '../input-group/input-group.scss?inline'\n\nconst KEY_CODES = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', ' ']\n\n/**\n * `dap-ds-radio-group`\n * @summary A radio group is a form element that allows the user to select one option from a set.\n * @element dap-ds-radio-group\n * @title - Radio group\n * @group form\n *\n * @event dds-change - Fired when the radio group is checked.\n * @event dds-blur - Emitted when the radio group loses focus.\n * @event dds-focus - Emitted when the radio group gains focus.\n *\n * @attribute {string} name - The name of the radio group.\n * @attribute {string} value - The value of the radio group.\n * @attribute {boolean} disabled - Whether the radio group is disabled.\n * @attribute {boolean} required - Whether the radio group is required.\n * @attribute {string} label - The label of the radio group.\n * @attribute {string} description - The description of the radio group.\n * @attribute {string} tooltip - The tooltip of the radio group.\n * @attribute {string} feedback - The feedback of the radio group.\n * @attribute {'info' | 'success' | 'error'} feedbackType - The feedback type of the radio group. Can be `info`, `success`, or `error`.\n * @attribute {boolean} optional - The optional state of the radio group.\n * @attribute {string} optionalLabel - Text of optional label.\n * @attribute {boolean} subtle - The weight of the label. Default is `false`\n * @attribute {'sm' | 'lg'} size - The size of the radio group. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {boolean} subtle - Font weight of the feedback label. Default is `false` which is bold.\n *\n * @slot - The content of the radio group.\n * @slot feedback-icon - The custom icon of the feedback.\n *\n * @csspart base - The main radio group container.\n * @csspart label - The label of the radio group.\n * @csspart tooltip - The tooltip of the radio group.\n * @csspart container - The container of the radio group items.\n */\n@customElement('dap-ds-radio-group')\nexport default class DapDSRadioGroup extends GenericFormElement {\n @property() optionalLabel = ''\n static styles = unsafeCSS(styles)\n\n private _handleSlotChange(event: Event) {\n const target = event?.target as HTMLInputElement\n target.setAttribute('slot', 'icon')\n }\n\n private getAllRadios() {\n return [...this.querySelectorAll<DapDSRadioButton>('dap-ds-radio-button')]\n }\n\n private async syncRadioElements() {\n const radios = this.getAllRadios()\n\n await Promise.all(\n radios.map(async radio => {\n await radio.updateComplete\n radio.checked = radio.value === this.value\n radio.size = this.size\n }),\n )\n\n this.internals.setFormValue(this.value)\n this.setValidity()\n }\n\n private handleRadioClick(event: MouseEvent) {\n const target = (event.target as HTMLElement).closest<DapDSRadioButton>(\n 'dap-ds-radio-button',\n )\n const radios = this.getAllRadios()\n const oldValue = this.value\n\n if (target!.disabled) {\n return\n }\n\n this.value = target!.value\n radios.forEach(radio => (radio.checked = radio === target))\n\n if (this.value !== oldValue) {\n this.emit('dds-change', { value: target!.value, checked: true })\n\n this.internals.setFormValue(this.value)\n this.setValidity()\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!KEY_CODES.includes(event.key)) {\n return\n }\n\n const radios = this.getAllRadios().filter(radio => !radio.disabled)\n const checkedRadio = radios.find(radio => radio.checked) ?? radios[0]\n const step =\n event.key === ' '\n ? 0\n : ['ArrowUp', 'ArrowLeft'].includes(event.key)\n ? -1\n : 1\n const oldValue = this.value\n let index = radios.indexOf(checkedRadio) + step\n\n if (index < 0) {\n index = radios.length - 1\n }\n\n if (index > radios.length - 1) {\n index = 0\n }\n\n this.getAllRadios().forEach(radio => {\n radio.checked = false\n radio.tabIndex = -1\n })\n\n this.value = radios[index].value\n radios[index].checked = true\n\n radios[index].tabIndex = 0\n radios[index].focus()\n\n if (this.value !== oldValue) {\n this.emit('dds-change', { value: radios[index].value, checked: true })\n\n this.internals.setFormValue(this.value)\n this.setValidity()\n }\n\n event.preventDefault()\n }\n\n setValidity(): void {\n const radios = this.getAllRadios()\n const isValid = radios.some(radio => radio.checked)\n\n if (this.required && !isValid) {\n this.internals.setValidity(\n { valueMissing: true },\n 'Please select an option',\n this.innerInput,\n )\n } else {\n this.internals.setValidity({})\n }\n }\n\n checkValidity() {\n return this.required && !this.value\n }\n\n get validity() {\n return {\n ...this.internals.validity,\n valid: this.checkValidity(),\n valueMissing: this.required && !this.value,\n }\n }\n\n handleLabelClick() {\n const radios = this.getAllRadios()\n const checkedRadio = radios.find(radio => radio.checked) ?? radios[0]\n\n checkedRadio.focus()\n }\n\n attributeChangedCallback(\n name: string,\n _old: string | null,\n value: string | null,\n ) {\n super.attributeChangedCallback(name, _old, value)\n if (name === 'disabled' || name === 'invalid') {\n this.getAllRadios().forEach(item => {\n item[name] = value !== null\n })\n }\n }\n\n render() {\n return html`\n <fieldset\n id=\"input\"\n part=\"base\"\n class=\"input-group\"\n .disabled=${this.disabled}\n form=${ifDefined(this.form)}\n name=${this.name}\n role=\"radiogroup\"\n aria-labelledby=\"label\"\n aria-describedby=${`description ${this.feedbackId}`}\n aria-errormessage=${ifDefined(this.feedbackId)}>\n <legend class=\"input-group__legend\">\n <div class=\"label-container\">\n ${this.label &&\n html`<dap-ds-form-label\n part=\"label\"\n id=\"label\"\n .size=${this.size}\n .required=${this.required}\n .optionalLabel=${this.optionalLabel}\n .optional=${this.optional}\n .subtle=${this.subtle}\n .disabled=${this.disabled}\n label=${ifDefined(this.label)}\n @click=${this.handleLabelClick}>\n </dap-ds-form-label>`}\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\">\n <dap-ds-icon-button\n clean\n slot=\"trigger\"\n class=\"input-group__toggle-button\"\n size=\"lg\">\n <dap-ds-icon name=\"information-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-tooltip>`}\n </div>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n </legend>\n <div part=\"container\" class=\"input-group__items\">\n <slot\n @click=${this.handleRadioClick}\n @keydown=${this.handleKeyDown}\n @blur=${this.onBlur}\n @focus=${this.onFocus}\n @slotchange=${this.syncRadioElements}></slot>\n </div>\n ${this.feedback && this._renderFeedback()}\n </fieldset>\n `\n }\n\n private _renderFeedback() {\n return html`\n <dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=\"${ifDefined(this.size as 'lg' | 'sm')}\"\n id=\"feedback\"\n .subtle=${this.subtle}>\n <slot\n name=\"feedback-icon\"\n @slotchange=\"${this._handleSlotChange}\"></slot>\n ${this.feedback}\n </dap-ds-feedback>\n `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './icon.scss?inline'\n\nexport type IconSize = 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs'\n\n/**\n * `dap-ds-icon`\n * @summary An icon is a graphical symbol that represents an object or action.\n * @element dap-ds-icon\n * @title - Icon\n *\n * @attribute {string} name - The name of the icon.\n * @attribute {'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs'} size - The size of the icon. Default is `md`. Can be `lg`, `md`, `sm`, or `xs`.\n * @attribute {boolean} focusable - Whether the icon is focusable. Default is false.\n * @attribute {boolean} ariaHidden - Whether the icon is hidden from the accessibility tree. Default is true.\n * @attribute {number} staticSize - The size of the icon in pixels. This overrides the size attribute.\n *\n * @slot - The content of the icon for custom svg icons.\n *\n * @csspart base - The main icon container.\n * @csspart icon - The icon of the icon.\n */\n@customElement('dap-ds-icon')\nexport default class DapDSIcon extends DdsElement {\n @property() name: string\n @property() size: IconSize = 'md'\n @property({ type: Number }) staticSize?: number\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <span class=${clsx('icon', {})} part=\"base\">\n ${this.name ? this._getNamedIcon() : this._getSlotIcon()}\n </span>\n `\n }\n\n private _getNamedIcon() {\n const IconTag = `dap-ds-icon-${this.name}`\n\n return html`\n <${unsafeStatic(IconTag)}\n part=\"icon\"\n size=${this.staticSize ?? this._getIconSizePx(this.size)}\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=${this.ariaHidden ? 'true' : 'false'}\n tabindex=${this.focusable ? 0 : -1}\n >\n </${unsafeStatic(IconTag)}\n `\n }\n\n private _getSlotIcon() {\n return html`\n <span\n part=\"icon\"\n class=${clsx('icon--custom-icon', { [this.size]: true })}>\n <slot></slot>\n </span>\n `\n }\n\n private _getIconSizePx(size: IconSize): number {\n const defaultSize = 20\n switch (size) {\n case 'xxl':\n return 40\n case 'xl':\n return 32\n case 'lg':\n return 24\n case 'md':\n return defaultSize\n case 'sm':\n return 16\n case 'xs':\n return 12\n default:\n return defaultSize\n }\n }\n}\n","import clsx from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { Size } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './icon-button.scss?inline'\n\nexport type ButtonVariant = 'neutral' | 'brand' | 'inverted' | 'inverted-brand'\nexport type HtmlButtonType = 'button' | 'submit' | 'reset'\nexport type ButtonSize = Extract<Size, 'lg' | 'md' | 'sm'>\n\n/**\n * `dap-ds-icon-button`\n * @summary An icon button is a button with an icon.\n * @element dap-ds-icon-button\n * @title - Icon button\n *\n * @attribute {'neutral' | 'brand' | 'inverted'} variant - The type of the button. Can be `neutral`, `brand`, `inverted` or `inverted-brand` . Default is `neutral`.\n * @attribute {'lg' | 'md' | 'sm'} size - The size of the button. Default is `md`. Can be `lg`, `md`, or `sm`.\n * @attribute {boolean} disabled - If true, the button is disabled. Default is false.\n * @attribute {'button' | 'submit' | 'reset'} htmlType - The type of the button. Can be `button`, `submit`, or `reset`. Default is `button`.\n * @attribute {string} ariaLabel - The aria label of the button.\n * @attribute {string} name - The name of the button.\n * @attribute {string} icon - The icon of the button. You can use the icon name from the icon component.\n *\n * @slot - The icon of the button.\n *\n * @csspart base - The main button container.\n * @csspart content - The icon of the button.\n */\n@customElement('dap-ds-icon-button')\nexport default class DapDSIconButton extends DdsElement {\n @property({ reflect: true }) variant?: ButtonVariant = 'neutral'\n @property({ type: Boolean, reflect: true }) clean? = false\n @property({ reflect: true }) size: ButtonSize = 'md'\n @property({ type: Boolean, reflect: true }) disabled = false\n @property() htmlType: HtmlButtonType = 'button'\n @property() icon: string\n @property() name: string\n\n static styles = unsafeCSS(styles)\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n\n if (this.shadowRoot) {\n const iconSlot = this.shadowRoot.querySelector('slot') as HTMLSlotElement\n if (iconSlot) {\n if (iconSlot.assignedElements().length) {\n iconSlot.assignedElements()[0].setAttribute('size', this.size)\n }\n }\n }\n }\n\n render() {\n return html`\n <button\n .disabled=${this.disabled}\n aria-label=${ifDefined(this.ariaLabel) || ''}\n type=${this.htmlType}\n class=${clsx(\n 'icon-button',\n `icon-button--${this.size}`,\n { 'icon-button--disabled': this.disabled },\n { 'icon-button--clean': this.clean },\n `icon-button--${this.variant}`,\n )}>\n ${this.icon\n ? html` <dap-ds-icon\n part=\"content\"\n name=\"${this.icon}\"\n size=${this.size}>\n </dap-ds-icon>`\n : html` <slot></slot> `}\n </button>\n `\n }\n}\n","import clsx from 'clsx'\nimport { html, PropertyValueMap, unsafeCSS } from 'lit'\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { InputTypes } from '@/common/types'\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport { CommonFormElementSize } from '../../common/types'\nimport styles from './input.scss?inline'\n\nexport class InputBaseElement extends GenericFormElement {\n @query('#input') input!: HTMLInputElement\n @queryAssignedElements({ slot: 'addon-before' })\n private _addonBeforeNode!: NodeListOf<HTMLElement>\n @queryAssignedElements({ slot: 'addon-after' })\n private _addonAfterNode!: NodeListOf<HTMLElement>\n @queryAssignedElements({ slot: 'prefix' })\n private _prefixNode!: NodeListOf<HTMLElement>\n @queryAssignedElements({ slot: 'postfix' })\n private _postfixNode!: NodeListOf<HTMLElement>\n\n @property() type: InputTypes = 'text'\n @property() placeholder?: string\n @property({ type: Number }) minlength?: number\n @property({ type: Number }) maxlength?: number\n @property({ type: Number }) min?: number\n @property({ type: Number }) max?: number\n @property() pattern?: string\n @property({ type: Number }) step?: number | 'any'\n @property() inputmode?: string\n @property({ type: Boolean, reflect: true }) loading = false\n\n @state() private _hasAddonBefore = false\n @state() private _hasAddonAfter = false\n @state() private _hasPrefix = false\n @state() private _hasPostfix = false\n\n static styles = unsafeCSS(styles)\n\n public get nativeControl(): HTMLInputElement {\n return this.shadowRoot?.querySelector('.input__control') as HTMLInputElement\n }\n\n private _handleSlotChange(event: Event) {\n const target = event?.target as HTMLInputElement\n target.setAttribute('slot', 'icon')\n }\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n this._hasAddonBefore = !!this._addonBeforeNode.length\n this._hasAddonAfter = !!this._addonAfterNode.length\n this._hasPrefix = !!this._prefixNode.length\n this._hasPostfix = !!this._postfixNode.length\n }\n\n onInput = () => {\n this.value = this.input.value\n this.emit('dds-input', { value: this.input.value })\n\n this.setValidity()\n }\n\n onBlur() {\n this.emit('dds-blur')\n }\n\n onFocus() {\n this.emit('dds-focus')\n }\n\n onChange() {\n this.value = this.input.value\n\n this.emit('dds-change', { value: this.input.value })\n this.setValidity()\n }\n\n onKeydown(event: KeyboardEvent) {\n this.value = this.input.value\n this.emit('dds-keydown', { value: this.input.value, event })\n }\n\n public get focusElement() {\n return this.input\n }\n\n handleInvalid(event: Event) {\n event.preventDefault()\n }\n\n renderDefaultContent() {\n return html` <span\n part=\"prefix\"\n class=${clsx({ 'input__addon-prefix': !!this._hasPrefix })}>\n <slot name=\"prefix\"></slot>\n </span>\n <span\n part=\"postfix\"\n class=${clsx({\n 'input__addon-postfix': !!this._hasPostfix,\n })}>\n <slot name=\"postfix\"></slot>\n </span>`\n }\n\n renderInput(content?: unknown) {\n return html`\n <div class=\"label-container\">\n <dap-ds-form-label\n part=\"label\"\n id=\"label\"\n .size=${this.size}\n .required=${this.required}\n .disabled=${this.disabled}\n .subtle=${this.subtle}\n .optional=${this.optional}\n .optionalLabel=${this.optionalLabel}\n for=\"input\"\n label=${ifDefined(this.label)}>\n </dap-ds-form-label>\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\">\n <dap-ds-icon-button\n slot=\"trigger\"\n class=\"input-group__toggle-button\"\n size=\"lg\"\n clean>\n <dap-ds-icon name=\"information-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-tooltip>`}\n </div>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n <span\n part=\"base\"\n class=${clsx(\n 'input',\n { 'input--sm': this.size === 'sm' },\n { 'input--lg': this.size === 'lg' },\n { 'input--success': this.status === 'success' },\n { 'input--error': this.status === 'error' },\n { 'input--disabled': this.disabled },\n { 'input--readonly': this.readonly },\n { 'input--has-addon-before': !!this._hasAddonBefore },\n { 'input--has-addon-after': !!this._hasAddonAfter },\n { 'input--has-prefix': !!this._hasPrefix },\n { 'input--has-postfix': !!this._hasPostfix },\n )}>\n <span\n part=\"addon-before\"\n class=${clsx({ 'input__addon-before': !!this._hasAddonBefore })}>\n <slot name=\"addon-before\"></slot>\n </span>\n <div class=\"input__holder\">\n <input\n id=\"input\"\n class=\"input__control\"\n part=\"input\"\n name=${this.name}\n type=${this.type}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n placeholder=${ifDefined(this.placeholder)}\n value=${ifDefined(this.value)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n aria-labelledby=\"label\"\n aria-describedby=\"description ${this.feedback ? 'feedback' : ''}\"\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n pattern=${ifDefined(this.pattern)}\n step=${ifDefined(this.step as number)}\n inpputmode=${ifDefined(this.inputmode)}\n ?autofocus=${this.autofocus}\n autocapitalize=${ifDefined(this.autocapitalize ? 'on' : 'off')}\n @change=${this.onChange}\n @input=${this.onInput}\n @keydown=${this.onKeydown}\n @invalid=${this.handleInvalid}\n @blur=${this.onBlur}\n @focus=${this.onFocus} />\n ${content ? content : this.renderDefaultContent()}\n </div>\n <span\n part=\"addon-after\"\n class=${clsx({ 'input__addon-after': !!this._hasAddonAfter })}>\n <slot name=\"addon-after\"></slot>\n </span>\n </span>\n ${this.feedback && this._renderFeedback()}\n `\n }\n\n private _renderFeedback() {\n return html`\n <dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=\"${ifDefined(this.size as 'lg' | 'sm')}\"\n .subtle=${this.subtle}\n id=\"feedback\">\n <slot\n name=\"feedback-icon\"\n @slotchange=\"${this._handleSlotChange}\"></slot>\n ${this.feedback}\n </dap-ds-feedback>\n `\n }\n}\n","import clsx from 'clsx'\nimport { nothing } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { InputBaseElement } from './input-base-element'\n\n/**\n * `dap-ds-input`\n * @summary An input is a field used to collect user input.\n * @element dap-ds-input\n * @title - Input\n *\n * @attribute {string} label - The label of the input.\n * @attribute {string} optionalLabel - Text of optional label.\n * @attribute {boolean} subtle - Text weight of label. If true the label is subtle. Default value is false.\n * @attribute {string} placeholder - The placeholder of the input.\n * @attribute {string} description - The description of the input.\n * @attribute {string} tooltip - The tooltip of the input.\n * @attribute {string} status - The status of the input. Can be `success` or `error`.\n * @attribute {'sm' | 'lg'} size - The size of the input. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {string} name - The name of the input.\n * @attribute {string} value - The value of the input.\n * @attribute {string} type - The type of the input. Default is 'text'.\n * @attribute {boolean} disabled - The disabled state of the input. Default is false.\n * @attribute {boolean} required - The required state of the input. Default is false.\n * @attribute {boolean} readonly - The readonly state of the input. Default is false.\n * @attribute {boolean} autofocus - The autofocus state of the input. Default is false.\n * @attribute {boolean} autocapitalize - The autocapitalize state of the input. Default is false.\n * @attribute {number} minlength - The minimum length of the input.\n * @attribute {number} maxlength - The maximum length of the input.\n * @attribute {number} min - The minimum value of the number input.\n * @attribute {number} max - The maximum value of the number input.\n * @attribute {number} step - The step value of the number input.\n * @attribute {string} inputmode - The inputmode of the input.\n * @attribute {string} pattern - The regex pattern of the input.\n * @attribute {string} feedback - The feedback of the input.\n * @attribute {'info' | 'success' | 'error'} feedbackType - The feedback type of the input. Can be `info`, `success`, or `error`.\n * @attribute {boolean} loading - The loading state of the input. Default is false.\n *\n * @event dds-change - Fired when the input value changes.\n * @event dds-input - Fired when the input value changes.\n * @event dds-keydown - Fired when a key is pressed down.\n * @event dds-blur - Fired when the input loses focus.\n * @event dds-focus - Emitted when the input gains focus.\n *\n * @slot postfix - The postfix of the input.\n * @slot prefix - The prefix of the input.\n * @slot addon-before - The addon before the input.\n * @slot addon-after - The addon after the input.\n * @slot feedback-icon - The custom icon of the feedback.\n *\n * @csspart base - The main input container.\n * @csspart input - The input element.\n * @csspart label - The label of the input.\n * @csspart description - The description of the input.\n * @csspart feedback - The feedback of the input.\n * @csspart tooltip - The tooltip of the input.\n * @csspart addon-before - The addon before the input.\n * @csspart addon-after - The addon after the input.\n * @csspart prefix - The prefix of the input.\n * @csspart postfix - The postfix of the input.\n *\n */\n@customElement('dap-ds-input')\nexport default class DapDSInput extends InputBaseElement {\n render() {\n return this.renderInput(\n html` ${this.loading\n ? html`<dap-ds-spinner\n part=\"postfix\"\n class=\"${clsx('input__addon-postfix')}\"\n size=\"lg\"></dap-ds-spinner>`\n : nothing}`,\n )\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { LinkTarget, Size } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './link.scss?inline'\n\nexport type LinkSize = Extract<Size, 'lg' | 'md' | 'sm' | 'xs'>\nexport type LinkVariant = 'neutral' | 'brand' | 'inverted'\n\n/**\n * `dap-ds-link`\n * @summary A link is a reference to a web resource.\n * @element dap-ds-link\n * @title - Link\n *\n * @attribute {'lg' | 'md' | 'sm' | 'xs'} size - The size of the link. Default is `md`. Can be `lg`, `md`, `sm`, or `xs`.\n * @attribute {'neutral' | 'brand' | 'inverted'} variant - The theme of the link. Default is `neutral`. Can be `neutral` or `brand` or `inverted`.\n * @attribute {'_blank' | '_self' | '_parent' | '_top'} target - The target of the link. Default is `_self`. Can be `_blank`, `_self`, `_parent`, or `_top`.\n * @attribute {string} href - The href of the link.\n * @attribute {string} rel - The rel of the link. Default is 'noreferrer noopener'.\n * @attribute {boolean} disabled - The disabled state of the link. Default is false.\n * @attribute {boolean} bold - The bold state of the link. Default is false.\n * @attribute {boolean} noUnderline - The no underline state of the link. Default is false.\n *\n * @slot - The text of the link.\n *\n * @csspart base - The main link container.\n * @csspart text - The text of the link.\n */\n@customElement('dap-ds-link')\nexport default class DapDSLink extends DdsElement {\n @property({ reflect: true }) size?: LinkSize\n @property() variant: LinkVariant = 'brand'\n @property() target: LinkTarget = '_self'\n @property({ type: Boolean }) bold: boolean\n @property({ type: Boolean }) noUnderline: boolean\n @property() href: string = '#'\n @property({ type: Boolean, reflect: true }) disabled = false\n @property() rel = 'noreferrer noopener'\n\n static styles = unsafeCSS(styles)\n\n private handleClick(event: Event) {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n render() {\n return html`\n <a\n part=\"base\"\n disabled=${this.disabled}\n aria-disabled=${this.disabled}\n aria-label=${ifDefined(this.ariaLabel) || ''}\n target=${this.target}\n href=${this.href}\n rel=${ifDefined(this.target ? this.rel : undefined)}\n class=${clsx(\n 'link',\n `link--${this.size}`,\n { 'link--bold': this.bold },\n { 'link--no-under-line': this.noUnderline },\n { 'link--disabled': this.disabled },\n `link--${this.variant}`,\n )}\n @click=${this.handleClick}>\n <span part=\"text\" class=\"link__text\">\n <slot></slot>\n </span>\n </a>\n `\n }\n}\n","import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { Alignment, BackgroundShade } from '@/common/types'\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport styles from './list-item.scss?inline'\n\nexport type ListItemVariant =\n | 'info'\n | 'pass'\n | 'fail'\n | 'notapplicable'\n | 'empty'\n | 'number'\n\nexport type ListItemStatus = 'brand' | 'neutral' | 'positive' | 'negative'\n\n/**\n * `dap-ds-list-item` is a custom banner component.\n * @element dap-ds-list-item\n * @summary A list\n * @title - List item\n *\n * @attribute {'info' | 'pass' | 'fail' | 'notapplicable' | 'empty' | 'number'} variant - The type of the list item.\n * @attribute {'brand' | 'neutral' | 'positive' | 'negative'} status - The status of the list item.\n * @attribute {'horizontal' | 'vertical'} alignment - The alignment of the list item.\n * @attribute {'subtle' | 'base' | 'medium' | 'strong'} shade - The background strongness of the list item.\n * @attribute {string} title - The title of the list item.\n * @attribute {string} icon - The icon of the list item. This is an icon name from the built in icons.\n * @attribute {number} number - The number of the list item. Only used when variant is 'number'.\n *\n * @slot - The content of the list item.\n * @slot icon - The icon of the list item.\n * @slot title - The title of the list item.\n *\n * @csspart base - The main list item container.\n * @csspart icon - The icon of the list item.\n * @csspart title - The title of the list item.\n * @csspart description - The description of the list item.\n * @csspart container - The container of the list item.\n *\n */\n@customElement('dap-ds-list-item')\nexport default class DapDSListItem extends DdsElement {\n @property() variant: ListItemVariant = 'info'\n @property() shade: BackgroundShade = 'base'\n @property() status: ListItemStatus = 'neutral'\n @property() alignment: Alignment = 'horizontal'\n @property() title: string\n @property() icon: string\n @property({ type: Number }) number: number\n\n static styles = unsafeCSS(styles)\n\n getIcon = (\n icon: string,\n variant: ListItemVariant,\n status: ListItemStatus,\n number?: number,\n ) => {\n let staticIcon = 'lightbulb-fill'\n\n if (icon) {\n return html`\n <dap-ds-icon\n class=${clsx('list-item__icon', {\n [`list-item__icon--${status}`]: status,\n })}\n name=\"${icon}\"></dap-ds-icon>\n `\n }\n\n if (variant === 'number') {\n return html`\n <div\n class=${clsx('list-item__icon', {\n [`list-item__icon--${status}`]: status,\n })}>\n ${number}\n </div>\n `\n }\n\n switch (variant) {\n case 'info':\n staticIcon = 'lightbulb-fill'\n break\n case 'pass':\n staticIcon = 'checkbox-circle-fill'\n break\n case 'fail':\n staticIcon = 'close-circle-fill'\n break\n case 'notapplicable':\n staticIcon = 'forbid-fill'\n break\n case 'empty':\n staticIcon = 'checkbox-blank-circle-line'\n break\n default:\n staticIcon = 'lightbulb-fill'\n break\n }\n\n return html`\n <dap-ds-icon\n class=${clsx('list-item__icon', {\n [`list-item__icon--${status}`]: status,\n })}\n name=\"${staticIcon}\"></dap-ds-icon>\n `\n }\n\n render() {\n return html`\n <dap-ds-card>\n <dap-ds-card-content\n part=\"base\"\n class=${clsx(\n 'list-item',\n `list-item--${this.variant}`,\n `list-item--${this.status}`,\n `list-item--${this.shade}`,\n `list-item--${this.alignment}`,\n )}>\n <div class=${clsx('list-item__container')} part=\"container\">\n <div class=\"list-item__icon\">\n <slot part=\"icon\" name=\"icon\">\n ${this.getIcon(\n this.icon,\n this.variant,\n this.status,\n this.number,\n )}\n </slot>\n </div>\n <div class=${clsx('list-item__content')}>\n ${this.title\n ? html`<span part=\"title\" class=\"list-item__title\">\n <slot name=\"title\">${this.title}</slot>\n </span>`\n : nothing}\n <span part=\"description\" class=\"list-item__description\">\n <slot></slot>\n </span>\n </div>\n </div>\n </dap-ds-card-content>\n </dap-ds-card>\n `\n }\n}\n","import clsx from 'clsx'\nimport { html, nothing, PropertyValueMap, unsafeCSS } from 'lit'\nimport { property, query } from 'lit/decorators.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { translate } from '@/localization/localization'\n\nimport { ButtonVariant } from '../button/button.component'\nimport styles from './modal.scss?inline'\n\ntype CloseSource =\n | 'ok-button'\n | 'cancel-button'\n | 'close-button'\n | 'esc'\n | 'overlay'\nexport default class ModalBaseElement extends DdsElement {\n @query('.modal') dialog!: HTMLDialogElement\n @property({ type: Boolean, reflect: true }) open?: boolean = false\n @property({ type: String, reflect: true })\n closeOnEsc = 'true'\n @property({\n type: String,\n reflect: true,\n })\n closeOnOverlayClick = 'true'\n @property({ type: Boolean, reflect: true }) noCloseButton = false\n @property() header: string\n @property() description: string\n @property() okButtonLabel: string\n @property() cancelButtonLabel: string\n @property() closeButtonLabel: string\n @property() okButtonVariant: ButtonVariant = 'primary'\n @property() cancelButtonVariant: ButtonVariant = 'secondary'\n @property({ type: Boolean }) okButtonDanger = false\n @property({ type: Boolean }) noFooter = false\n @property({ type: Boolean }) noHeader = false\n\n private canceled = false\n\n static styles = unsafeCSS(styles)\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n if (_changedProperties.has('open')) {\n if (this.open) {\n this.emit('dds-before-open')\n this.dialog.showModal()\n this.dialog!.addEventListener(\n 'transitionend',\n () => {\n this.emit('dds-opened')\n },\n { once: true },\n )\n } else {\n this.emit('dds-before-close')\n this.dialog.close()\n this.dialog!.addEventListener(\n 'transitionend',\n () => {\n this.emit('dds-closed')\n },\n { once: true },\n )\n }\n }\n }\n\n public show(): void {\n this.open = true\n }\n\n public hide(): void {\n this.open = false\n }\n\n private handleClose(source: CloseSource) {\n const handleCloseEvent = this.emit(\n 'dds-close',\n {\n source,\n },\n {\n cancelable: true,\n },\n )\n\n if (handleCloseEvent.defaultPrevented) {\n return\n }\n\n this.hide()\n }\n\n private handleCancel(event: Event): void {\n if (this.closeOnEsc !== 'true') {\n event.preventDefault()\n this.canceled = true\n return\n }\n }\n\n private handleEscClose(event: Event): void {\n if (this.canceled) {\n event.preventDefault()\n return\n }\n\n this.handleClose('esc')\n }\n\n private handleOkButton(): void {\n this.emit('dds-ok')\n this.handleClose('ok-button')\n }\n\n private handleCancelButton(): void {\n this.emit('dds-cancel')\n this.handleClose('cancel-button')\n }\n\n private handleClick(event: MouseEvent): void {\n if (this.closeOnOverlayClick === 'true' && event.target === this.dialog) {\n this.handleClose('overlay')\n }\n\n event.preventDefault()\n }\n\n private handleKeDown(event: KeyboardEvent): void {\n if (event.key === 'Tab') {\n return\n }\n\n if (this.closeOnEsc === 'true' && event.key === 'Escape') {\n this.handleClose('esc')\n } else if (event.key === 'Escape') {\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n }\n\n renderModal() {\n return html`<dialog\n part=\"base\"\n class=${clsx('modal', {\n 'modal--open': this.open,\n })}\n @close=${this.handleEscClose}\n @cancel=${this.handleCancel}\n @click=${this.handleClick}\n @keydown=${this.handleKeDown}>\n <div\n part=\"panel\"\n class=\"modal__box\"\n aria-modal=\"true\"\n aria-hidden=${this.open ? 'false' : 'true'}>\n ${!this.noHeader\n ? html`<header class=\"modal__header\" part=\"header\">\n <slot name=\"title\">\n <dap-ds-typography variant=\"h3\" part=\"title\"\n >${this.header}</dap-ds-typography\n >\n </slot>\n <slot name=\"description\">\n <span class=\"modal__description\" part=\"description\">\n ${this.description}\n </span>\n </slot>\n </header>`\n : nothing}\n <div class=\"modal__content\" part=\"content\">\n <slot></slot>\n </div>\n ${!this.noFooter\n ? html`<footer class=\"modal__footer\" part=\"footer\">\n <slot name=\"footer\">\n <dap-ds-button\n @click=${this.handleOkButton}\n variant=${this.okButtonVariant}\n ?danger=${this.okButtonDanger}\n >${this.okButtonLabel ?? translate('ok')}</dap-ds-button\n >\n <dap-ds-button\n variant=${this.cancelButtonVariant}\n @click=${this.handleCancelButton}\n >${this.cancelButtonLabel ??\n translate('cancel')}</dap-ds-button\n >\n </slot>\n </footer>`\n : nothing}\n ${!this.noCloseButton\n ? html`<dap-ds-icon-button\n part=\"closebutton\"\n class=\"modal__close\"\n aria-label=${this.closeButtonLabel\n ? this.closeButtonLabel\n : translate('close')}\n @click=${() => this.handleClose('close-button')}>\n <dap-ds-icon name=\"close-line\"></dap-ds-icon>\n </dap-ds-icon-button>`\n : nothing}\n </div>\n </dialog>`\n }\n}\n","import { customElement } from 'lit/decorators.js'\n\nimport ModalBaseElement from './modal-base-element'\n\n/**\n * `dap-ds-modal`\n * @summary A modal is a container for modal content.\n * @element dap-ds-modal\n * @title - Modal\n *\n * @attribute {boolean} open - The open state of the modal.\n * @attribute {boolean} closeOnEsc - Whether the modal should close on pressing the escape key. Default is true.\n * @attribute {boolean} closeOnOverlayClick - Whether the modal should close on clicking the overlay. Default is true.\n * @attribute {boolean} noCloseButton - Whether the modal should have a close button. Default is false.\n * @attribute {string} title - The title of the modal.\n * @attribute {string} description - The description of the modal.\n * @attribute {string} okButtonLabel - The label of the OK button.\n * @attribute {string} cancelButtonLabel - The label of the Cancel button.\n * @attribute {boolean} noFooter - Whether the modal should have a footer. Default is false.\n * @attribute {boolean} noHeader - Whether the modal should have a header. Default is false.\n *\n * @event dds-before-open - Fires before the modal opens.\n * @event dds-opened - Fires after the modal opens.\n * @event dds-before-close - Fires before the modal closes.\n * @event dds-closed - Fires after the modal closed.\n * @event dds-close - Fires when the modal is closes. You can prevent the modal from closing by calling `event.preventDefault()`.\n *\n * @slot - The content of the modal.\n * @slot title - The title of the modal.\n * @slot description - The description of the modal.\n * @slot footer - The footer of the modal.\n *\n * @csspart base - The main modal container.\n * @csspart panel - The panel of the modal.\n * @csspart header - The header of the modal.\n * @csspart title - The title of the modal.\n * @csspart description - The description of the modal.\n * @csspart footer - The footer of the modal.\n * @csspart content - The body of the modal.\n * @csspart closebutton - The close button of the modal.\n *\n */\n@customElement('dap-ds-modal')\nexport default class DapDSModal extends ModalBaseElement {\n render() {\n return this.renderModal()\n }\n}\n","import clsx from 'clsx'\nimport { html, nothing } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { translate } from '@/localization/localization'\n\nimport { CommonFormElementSize } from '../../common/types'\nimport { InputBaseElement } from '../input/input-base-element'\n\n/**\n * `dap-ds-number-input`\n * @summary A number input is a field for entering a number.\n * @element dap-ds-number-input\n * @title - Number input\n *\n * @attribute {string} label - The label of the input.\n * @attribute {string} placeholder - The placeholder of the input.\n * @attribute {string} description - The description of the input.\n * @attribute {string} tooltip - The tooltip of the input.\n * @attribute {'success' | 'error'} status - The status of the input. Can be `success` or `error`.\n * @attribute {'sm' | 'lg'} size - The size of the input. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {string} name - The name of the input.\n * @attribute {string} value - The value of the input.\n * @attribute {boolean} disabled - The disabled state of the input. Default is false.\n * @attribute {boolean} required - The required state of the input. Default is false.\n * @attribute {boolean} readonly - The readonly state of the input. Default is false.\n * @attribute {boolean} autofocus - The autofocus state of the input. Default is false.\n * @attribute {number} min - The minimum value of the number input.\n * @attribute {number} max - The maximum value of the number input.\n * @attribute {number} step - The step value of the number input.\n * @attribute {string} feedback - The feedback of the input.\n * @attribute {'info' | 'success' | 'error'} feedbackType - The feedback type of the input. Can be `info`, `success`, or `error`.\n * @attribute {boolean} loading - The loading state of the input. Default is false.\n * @attribute {boolean} optional - The optional state of the input.\n * @attribute {string} optionalLabel - The optional label of the input.\n * @attribute {boolean} subtle - The weight of the label. Default is `false`\n *\n * @event dds-change - Fired when the input value changes.\n * @event dds-input - Fired when the input value changes.\n * @event dds-keydown - Fired when a key is pressed down.\n * @event dds-blur - Fired when the input loses focus.\n * @event dds-focus - Emitted when the input gains focus.\n *\n * @slot feedback-icon - The custom icon of the feedback.\n *\n * @csspart postfix - The postfix of the input.\n * @csspart decrement - The decrement button of the input.\n * @csspart increment - The increment button of the input.\n */\n@customElement('dap-ds-number-input')\nexport default class DapDSNumberInput extends InputBaseElement {\n constructor() {\n super()\n this.type = 'number'\n }\n\n private _increment() {\n ;(this.innerInput as HTMLInputElement).stepUp()\n this.onChange()\n }\n\n private _decrement() {\n ;(this.innerInput as HTMLInputElement).stepDown()\n this.onChange()\n }\n\n render() {\n return this.renderInput(\n html` <span\n part=\"postfix\"\n class=${clsx('input__addon-postfix number-input')}>\n ${!(this.disabled || this.readonly)\n ? html` <dap-ds-stack\n direction=\"row\"\n aria-hidden=\"true\"\n tabindex=\"-1\">\n ${this.loading\n ? html`<dap-ds-spinner size=\"lg\"></dap-ds-spinner>`\n : nothing}\n <dap-ds-icon-button\n part=\"decrement\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n @click=${this._decrement}\n arialabel=\"${translate('decrease')}\"\n .disabled=${this.disabled}>\n <dap-ds-icon size=\"lg\" name=\"subtract-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n <dap-ds-icon-button\n part=\"increment\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n @click=${this._increment}\n arialabel=\"${translate('increase')}\"\n .disabled=${this.disabled}>\n <dap-ds-icon size=\"lg\" name=\"add-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-stack>`\n : ``}\n </span>`,\n )\n }\n}\n","import clsx from 'clsx'\nimport { html, nothing, PropertyValueMap, unsafeCSS } from 'lit'\nimport {\n customElement,\n property,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport styles from './option-item.scss?inline'\n\n/**\n * `dap-ds-option-item`\n * @summary An option item is a selectable item in a list of options.\n * @element dap-ds-option-item\n * @title - Option item\n *\n * @attribute {boolean} selected - The selected state of the option item.\n * @attribute {any} value - The value of the option item.\n * @attribute {boolean} disabled - The disabled state of the option item.\n * @attribute {boolean} focused - The focused state of the option item.\n *\n * @csspart base - The main option item container.\n * @csspart prefix - The prefix of the option item.\n * @csspart label - The label of the option item.\n * @csspart suffix - The suffix of the option item.\n */\n@customElement('dap-ds-option-item')\nexport default class DapDSOptionItem extends SizedMixin(DdsElement) {\n @property({ type: Boolean, reflect: true }) selected?: boolean\n @property({ type: Boolean }) selectable?: boolean\n @property({ reflect: true }) value?: any\n @property({ type: Boolean, reflect: true }) disabled?: boolean\n @property({ type: Boolean }) focused?: boolean\n @property() label?: string\n @queryAssignedElements({ slot: 'prefix' })\n private _prefixNode!: NodeListOf<HTMLElement>\n @queryAssignedElements({ slot: 'suffix' })\n private _postfixNode!: NodeListOf<HTMLElement>\n\n @state() private _hasPrefix = false\n @state() private _hasSuffix = false\n\n static styles = unsafeCSS(styles)\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n\n this._hasPrefix = !!this._prefixNode.length\n this._hasSuffix = !!this._postfixNode.length\n\n this.addEventListener('click', this.handleClick)\n this.setAttribute('role', 'option')\n }\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n\n if (_changedProperties.has('disabled')) {\n this.setAttribute('tabindex', this.disabled ? '-1' : '0')\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false')\n }\n\n if (_changedProperties.has('selected')) {\n this.setAttribute('aria-selected', this.selected ? 'true' : 'false')\n }\n }\n\n handleClick(event: MouseEvent): void {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n public get optionText(): string {\n return this.label || this.textContent?.trim() || ''\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx('option-item', {\n 'option-item--selected': this.selected,\n 'option-item--disabled': this.disabled,\n 'option-item--sm': this.size === 'sm',\n 'option-item--lg': this.size === 'lg',\n 'option-item--focused': this.focused,\n })}>\n <dap-ds-stack direction=\"row\">\n ${this.selectable\n ? html`<div class=${'selected-icon'}>\n ${this.selected\n ? html`<dap-ds-icon-check-line\n size=\"16\"></dap-ds-icon-check-line>`\n : nothing}\n </div>`\n : nothing}\n <div\n part=\"prefix\"\n class=${clsx('option-item__prefix', {\n 'option-item__prefix--visible': !!this._hasPrefix,\n })}>\n <slot name=\"prefix\"></slot>\n </div>\n <div part=\"label\" class=\"label\">\n <slot></slot>\n </div>\n <div\n part=\"suffix\"\n class=${clsx('option-item__suffix', {\n 'option-item__suffix--visible': !!this._hasSuffix,\n })}>\n <slot name=\"suffix\"></slot>\n </div>\n </dap-ds-stack>\n </div>\n `\n }\n}\n","import clsx from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\n\nimport DapDSOptionItem from '../option-item/option-item.component'\nimport styles from './option-list.scss?inline'\n\n/**\n * `dap-ds-option-list`\n * @summary An option list is a list of selectable options.\n * @element dap-ds-option-list\n * @title - Option list\n *\n * @attribute {string} filterText - The filter text of the option list.\n * @attribute {string} value - The value of the option list.\n * @attribute {boolean} focused - The focused state of the option list.\n * @attribute {'none' | 'typehead' | 'search'} search-mode - The search mode of the option list. Default is `none`. Can be `none`, `typehead`, or `search`.\n * @attribute {any[]} options - The options of the option list.\n *\n * @event dds-cancel - Fired when the escape key is pressed.\n * @event dds-option-change - Fired when the option list value changes.\n * @event dds-keydown - Fired when a key is pressed down.\n *\n * @csspart base - The main option list container.\n */\n@customElement('dap-ds-option-list')\nexport default class DapDSOptionList extends SizedMixin(DdsElement) {\n @property() filterText = ''\n @property({ type: String, reflect: true }) value?: string\n @property({ type: Boolean }) focused = false\n @property({ type: Boolean }) search = false\n @property() searchMode: 'none' | 'typehead' | 'autocomplete' | 'manual' =\n 'none'\n @property({ type: String }) searchOnValueSet = 'true'\n @property({ type: Boolean }) selectable = false\n @property({ type: Array })\n public options?: any[]\n\n queryTimeout: number | undefined\n queryString = ''\n\n @state()\n private currentOption: any\n\n @state()\n public selectedIndex: number\n\n @state()\n private optionEls: DapDSOptionItem[] = []\n\n @state()\n private availableOptions: DapDSOptionItem[] = []\n\n get isAutoComplete() {\n return this.searchMode === 'autocomplete' || this.searchMode === 'manual'\n }\n\n static styles = unsafeCSS(styles)\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n\n this.setAttribute('role', 'listbox')\n }\n\n getAllOptions() {\n const mainSlot = this.shadowRoot?.querySelector('slot')\n const assignedElement = mainSlot?.assignedElements()[0]\n const embeddedSlot =\n assignedElement?.nodeName === 'SLOT'\n ? (\n mainSlot?.assignedElements()[0] as HTMLSlotElement\n ).assignedElements()\n : mainSlot?.assignedElements()\n\n if (!embeddedSlot) {\n return [...this.querySelectorAll<DapDSOptionItem>('dap-ds-option-item')]\n } else {\n return [...(embeddedSlot as DapDSOptionItem[])]\n }\n }\n\n private getAllRenderedOptions(): DapDSOptionItem[] {\n const ro =\n this.shadowRoot?.querySelectorAll<DapDSOptionItem>('dap-ds-option-item')\n return ro ? [...ro] : []\n }\n\n getActiveOption() {\n if (!this.currentOption) {\n return null\n }\n\n const activeOption = this.getAllRenderedOptions().find(\n el => el.value === this.currentOption.value,\n )\n\n return activeOption\n }\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n\n if (\n _changedProperties.has('value') &&\n !_changedProperties.has('currentOption') &&\n this.searchOnValueSet === 'true'\n ) {\n const option = this.availableOptions.find(\n option => option.value === this.value,\n )\n\n if (option) {\n this.changeOption(option, _changedProperties.get('value'))\n\n this.selectedIndex = this.findIndexByValue(\n this.availableOptions,\n this.value,\n )\n\n this.emit('dds-option-change', {\n ...this.getEventDetails(this.currentOption),\n })\n }\n }\n\n if (\n _changedProperties.has('options') ||\n _changedProperties.has('optionEls')\n ) {\n this.availableOptions = this.options || this.optionEls\n }\n }\n\n protected shouldUpdate(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): boolean {\n if (_changedProperties.has('filterText')) {\n if (\n this.filterText &&\n this.searchMode !== 'none' &&\n this.searchMode !== 'manual'\n ) {\n this.filterAvailableOptions()\n this.selectedIndex = 0\n this.setCurrentOption(this.availableOptions[0], false)\n } else if (this.filterText && this.searchMode === 'manual') {\n if (this.selectedIndex === -1 && this.availableOptions.length > 0) {\n this.selectedIndex = 0\n this.setCurrentOption(this.availableOptions[0], false)\n }\n } else if (this.filterText && this.searchMode === 'none') {\n this.filterAvailableOptions()\n this.selectedIndex = -1\n this.setCurrentOption(null, false)\n this.setSelectedOption()\n } else {\n this.availableOptions = this.options || this.optionEls\n this.selectedIndex = -1\n this.setCurrentOption(null, false)\n }\n }\n return super.shouldUpdate(_changedProperties)\n }\n\n public filterAvailableOptions(): void {\n const valueLowerCase = this.filterText.toLowerCase()\n this.availableOptions = (this.options || this.optionEls).filter(item => {\n if (!item.disabled) {\n const itemTextLowerCase = item.optionText.toLowerCase()\n return itemTextLowerCase.startsWith(valueLowerCase)\n }\n })\n }\n\n attributeChangedCallback(name: string, oldValue: any, newValue: any) {\n super.attributeChangedCallback(name, oldValue, newValue)\n switch (name) {\n case 'value':\n if (oldValue !== newValue && this.searchOnValueSet === 'true') {\n if (newValue) {\n const option = this.availableOptions.find(\n el => el.value === newValue,\n )\n\n this.setSelectedOption(option)\n this.selectionChanged(option)\n\n this.emit('dds-option-change', {\n ...this.getEventDetails(this.currentOption),\n })\n } else {\n this.setSelectedOption()\n this.selectionChanged()\n }\n break\n }\n }\n }\n\n public setOptionsFromSlottedItems(): void {\n const elements = this.getAllOptions()\n this.optionEls = elements\n }\n\n handleKeydown(event: KeyboardEvent): void {\n event.preventDefault()\n\n this.handleKeyCodes(event.key, event.code)\n }\n\n private scrollToActiveOption(): void {\n const activeOption = this.getAllRenderedOptions().find(\n el => el.value === this.currentOption.value,\n )\n\n if (activeOption) {\n activeOption.scrollIntoView({ block: 'nearest' })\n }\n }\n\n private handleKeyCodes(key: string, keyCode?: string) {\n if (this.focused) {\n if (key === 'ArrowDown') {\n this.selectedIndex = this.findNearestEnabled(\n this.availableOptions,\n this.selectedIndex,\n 1,\n )\n } else if (key === 'ArrowUp') {\n const nearest = this.findNearestEnabled(\n this.availableOptions,\n this.selectedIndex,\n this.selectedIndex === -1 ? 1 : -1,\n )\n this.selectedIndex =\n nearest === this.availableOptions.length ? -1 : nearest\n } else if (key === 'Home') {\n this.selectedIndex = this.availableOptions[0]?.disabled\n ? this.findNearestEnabled(this.availableOptions, -1, 1)\n : 0\n } else if (key === 'End') {\n const nearest = this.findNearestEnabled(\n this.availableOptions,\n this.availableOptions.length,\n -1,\n )\n this.selectedIndex =\n nearest === this.availableOptions.length ? -1 : nearest\n } else if (key === 'Escape') {\n this.emit('dds-cancel', event)\n } else if (key === 'Enter') {\n this.setSelectedOption(this.availableOptions[this.selectedIndex])\n this.selectionChanged(this.availableOptions[this.selectedIndex])\n this.emit('dds-option-change', {\n ...this.getEventDetails(this.currentOption),\n })\n }\n\n if (\n this.searchMode === 'typehead' &&\n (key?.length === 1 || key === 'Backspace')\n ) {\n this.buildQueryString(key)\n }\n\n if (this.selectedIndex >= 0) {\n const option = this.availableOptions[this.selectedIndex]\n this.setCurrentOption(option)\n this.emit('dds-keydown', {\n code: keyCode,\n key,\n ...this.getEventDetails(option),\n })\n }\n }\n }\n\n private getEventDetails(option?: DapDSOptionItem) {\n if (!option) {\n return undefined\n }\n\n let opt = option\n\n if (option.tagName !== 'DAP-DS-OPTION-ITEM') {\n opt = option.closest('dap-ds-option-item')!\n }\n\n return {\n opt,\n value: opt?.value,\n text: opt?.optionText,\n index: this.selectedIndex,\n }\n }\n\n private findNearestEnabled(\n allOptions: DapDSOptionItem[],\n current: number,\n step: number,\n ) {\n let nextIndex: number = current\n let nextOption: DapDSOptionItem\n\n do {\n nextIndex += step\n nextOption = allOptions[nextIndex]\n if (nextOption === undefined) {\n break\n }\n } while (nextOption?.disabled)\n\n return nextOption ? nextIndex : current\n }\n\n private findIndexByValue(\n allOptions: DapDSOptionItem[],\n value?: string,\n ): number {\n return allOptions.findIndex(option => option.value === value)\n }\n\n private clearItemFocusStates() {\n this.availableOptions.forEach(el => {\n el.focused = false\n el.tabIndex = -1\n })\n }\n\n // Only set the current option without selecting it, eg: focus\n private setCurrentOption(option?: DapDSOptionItem | null, setFocus = true) {\n this.clearItemFocusStates()\n\n if (option) {\n this.currentOption = option\n option.focused = true\n option.tabIndex = 0\n\n this.emit('dds-current-change', {\n ...this.getEventDetails(option),\n })\n\n if (setFocus) {\n this.setFocusedOption(option)\n } else {\n this.scrollToActiveOption()\n }\n }\n }\n\n private setFocusedOption(option: DapDSOptionItem) {\n const renderedItem = this.getAllRenderedOptions().find(\n el => el.value === option.value,\n )\n\n if (renderedItem) {\n renderedItem.focus()\n }\n }\n\n private setSelectedOption(option?: DapDSOptionItem | undefined) {\n this.availableOptions.forEach(el => (el.selected = false))\n\n if (option) {\n this.currentOption = option\n option.selected = true\n }\n }\n\n private selectionChanged(option?: DapDSOptionItem | undefined, value?: any) {\n const oldValue = value || this.value\n\n if (option) {\n if (option.value !== oldValue) {\n this.value = option.value\n }\n }\n }\n\n private changeOption(option: DapDSOptionItem, value?: any) {\n if (option && !option.disabled) {\n this.selectedIndex = this.findIndexByValue(\n this.availableOptions,\n option.value,\n )\n\n this.setSelectedOption(option)\n this.setCurrentOption(option)\n this.selectionChanged(option, value)\n }\n }\n\n handleOptionClick = (event: MouseEvent) => {\n this.focused = true\n const option = event.target as DapDSOptionItem\n\n if (option && !option.disabled) {\n this.setCurrentOption(option)\n this.setSelectedOption(option)\n this.selectionChanged(option)\n\n this.updateComplete.then(() => {\n this.selectedIndex = this.findIndexByValue(\n this.availableOptions,\n this.value,\n )\n\n this.emit('dds-option-change', {\n ...this.getEventDetails(this.currentOption),\n })\n })\n } else {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n getSearchString = (char: string) => {\n if (typeof this.queryTimeout === 'number') {\n window.clearTimeout(this.queryTimeout)\n }\n\n this.queryTimeout = window.setTimeout(() => {\n this.queryString = ''\n }, 500)\n\n this.queryString += char\n return this.queryString\n }\n\n buildQueryString = (char: string) => {\n const queryString = this.getSearchString(char)\n\n for (const option of this.availableOptions) {\n const label = option.optionText.toLowerCase()\n\n if (label.startsWith(queryString.toLowerCase())) {\n this.selectedIndex = this.findIndexByValue(\n this.availableOptions,\n option.value,\n )\n this.setCurrentOption(option)\n break\n }\n }\n }\n\n public captureFocus(key?: string): void {\n this.focused = true\n this.focus()\n\n if (!key) {\n if (!this.value && this.selectedIndex < 0) {\n this.selectedIndex = 0\n } else {\n const index = this.value\n ? this.findIndexByValue(this.availableOptions, this.value)\n : this.selectedIndex\n\n if (index !== -1 && !this.isAutoComplete) {\n this.selectedIndex = index\n\n this.setCurrentOption(this.availableOptions[this.selectedIndex])\n this.setSelectedOption(this.availableOptions[this.selectedIndex])\n if (this.value) {\n this.selectionChanged(this.availableOptions[this.selectedIndex])\n }\n }\n }\n\n if (!this.selectedIndex) {\n this.setCurrentOption(this.availableOptions[0])\n this.setSelectedOption(this.availableOptions[0])\n }\n }\n\n if (key && (this.isAutoComplete || this.searchMode === 'none')) {\n this.handleKeyCodes(key)\n this.setCurrentOption(this.availableOptions[this.selectedIndex], false)\n this.setSelectedOption(this.availableOptions[this.selectedIndex])\n }\n\n if (key && this.searchMode === 'typehead') {\n this.buildQueryString(key)\n }\n }\n\n public removeFocus(): void {\n this.focused = false\n this.clearItemFocusStates()\n }\n\n private handleSlotChange() {\n const allOptions = this.getAllOptions()\n this.setOptionsFromSlottedItems()\n\n if (\n this.value &&\n allOptions.length > 0 &&\n this.searchOnValueSet === 'true'\n ) {\n const option = allOptions.find(el => el.value === this.value)\n this.setSelectedOption(option)\n this.selectionChanged(option)\n\n if (this.currentOption) {\n this.selectedIndex = this.findIndexByValue(allOptions, this.value)\n this.emit('dds-option-change', {\n ...this.getEventDetails(this.currentOption),\n })\n }\n } else if (this.value && allOptions.length > 0 && !this.search) {\n const firstOption = allOptions.find(option => !option.disabled)\n this.selectedIndex = 0\n this.setCurrentOption(firstOption, false)\n\n this.emit('dds-current-change', {\n ...this.getEventDetails(firstOption),\n })\n }\n }\n\n render() {\n return html`<div\n part=\"base\"\n class=${clsx('option-list', {\n 'option-list--sm': this.size === 'sm',\n 'option-list--lg': this.size === 'lg',\n })}\n @keydown=${this.handleKeydown}\n @focus=${this.captureFocus}>\n ${this.availableOptions.map(\n (option, index) => html`\n <dap-ds-option-item\n size=${this.size}\n ?disabled=${option.disabled}\n ?selected=${this.value === option.value}\n ?focused=${index === this.selectedIndex}\n label=${ifDefined(option.label)}\n role=\"option\"\n value=${option.value}\n tabIndex=${option.tabIndex}\n id=${option.id || `dap-ds-option-${option.value}`}\n ?selectable=${this.selectable}\n @click=${this.handleOptionClick}>\n ${unsafeStatic(option.innerHTML)}\n </dap-ds-option-item>\n `,\n )}\n <slot hidden @slotchange=${this.handleSlotChange}></slot>\n </div> `\n }\n}\n","import { html, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport styles from './overlay.scss?inline'\n\n/**\n * `dap-ds-overlay`\n * @summary An overlay is a container for overlay content.\n * @element dap-ds-overlay\n * @title - Overlay\n *\n * @attribute {boolean} open - The open state of the overlay.\n *\n */\n@customElement('dap-ds-overlay')\nexport default class DapDSOverlay extends DdsElement {\n @property({ type: Boolean, reflect: true }) open?: boolean\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`<slot></slot>`\n }\n}\n","import clsx from 'clsx'\nimport { css, html, nothing, unsafeCSS } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { translate } from '@/localization/localization'\n\nimport { InputBaseElement } from '../input/input-base-element'\nimport style from './password-input.scss?inline'\n\n/**\n * `dap-ds-password-input`\n * @summary A password input a field for entering a password.\n * @element dap-ds-password-input\n * @title - Password input\n *\n * @attribute {string} label - The label of the password input.\n * @attribute {string} placeholder - The placeholder of the password input.\n * @attribute {string} description - The description of the password input.\n * @attribute {string} tooltip - The tooltip of the password input.\n * @attribute {string} status - The status of the password input. Can be `success` or `error`.\n * @attribute {'sm' | 'lg'} size - The size of the password input. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {string} name - The name of the password input.\n * @attribute {string} value - The value of the password input.\n * @attribute {boolean} disabled - The disabled state of the password input. Default is false.\n * @attribute {boolean} required - The required state of the password input. Default is false.\n * @attribute {boolean} readonly - The readonly state of the password input. Default is false.\n * @attribute {boolean} autofocus - The autofocus state of the password input. Default is false.\n * @attribute {string} feedback - The feedback of the input.\n * @attribute {'info' | 'success' | 'error'} feedbackType - The feedback type of the password input. Can be `info`, `success`, or `error`.\n * @attribute {boolean} loading - The loading state of the password input. Default is false.\n * @attribute {boolean} optional - The optional state of the password input.\n * @attribute {string} optionalLabel - The optional label of the password input.\n * @attribute {boolean} subtle - The weight of the label. Default is `false`\n *\n * @event dds-change - Fired when the input value changes.\n * @event dds-input - Fired when the input value changes.\n * @event dds-keydown - Fired when a key is pressed down.\n * @event dds-blur - Fired when the input loses focus.\n * @event dds-focus - Emitted when the input gains focus.\n *\n * @csspart postfix - The postfix of the password input.\n * @csspart password-input - The password input.\n * @csspart password-input--visible - The visible password input.\n */\n@customElement('dap-ds-password-input')\nexport default class DapDSPasswordInput extends InputBaseElement {\n @state() passwordVisibile: boolean = false\n\n static styles = css`\n ${unsafeCSS(InputBaseElement.styles)}\n ${unsafeCSS(style)}\n `\n constructor() {\n super()\n this.type = 'password'\n }\n\n private _toggleVisibility() {\n this.passwordVisibile = !this.passwordVisibile\n this.type = this.passwordVisibile ? 'text' : 'password'\n }\n\n render() {\n return this.renderInput(\n html` <span\n part=\"postfix\"\n class=${clsx('input__addon-postfix password-input', {\n 'password-input--visible': this.passwordVisibile,\n })}>\n <dap-ds-stack direction=\"row\" slot=\"postfix\">\n ${this.loading\n ? html`<dap-ds-spinner size=\"lg\"></dap-ds-spinner>`\n : nothing}\n <dap-ds-icon-button\n size=${ifDefined(this.size) as 'lg' | 'md' | 'sm'}\n role=\"switch\"\n arialabel=\"${this.passwordVisibile\n ? translate('hide')\n : translate('show')}\"\n aria-checked=${this.passwordVisibile === true ? 'true' : 'false'}\n .disabled=${this.disabled}\n @click=${this._toggleVisibility}>\n <dap-ds-icon name=\"eye-line\" class=\"input__icon-show\"></dap-ds-icon>\n <dap-ds-icon\n name=\"eye-off-line\"\n class=\"input__icon-hide\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-stack>\n </span>`,\n )\n }\n}\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(floating) {\n return topLayerSelectors.some(selector => {\n try {\n return floating.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element) || isTopLayer(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n// `OffsetOptions` in the core library were originally already `Derivable`. For\n// backwards-compatibility, re-define it here to use the DOM Derivable type.\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import {\n arrow,\n autoUpdate,\n computePosition,\n Coords,\n flip,\n offset,\n shift,\n size,\n} from '@floating-ui/dom'\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { PopupPlacement } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './popup.scss?inline'\n\n/**\n * `dap-ds-popup`\n * @summary A popup is a container for popup content.\n * @element dap-ds-popup\n * @title - Popup\n *\n * @attribute {boolean} disabled - The disabled state of the popup.\n * @attribute {boolean} opened - The open state of the popup.\n * @attribute {PopupPlacement} placement - The placement of the popup. Can be 'top', 'right', 'bottom', or 'left'. Default is 'bottom'.\n * @attribute {'absolute' | 'fixed'} floatingStrategy - The floating strategy of the popup. Default is `absolute`. Can be `absolute` or `fixed`.\n * @attribute {number} offset - The offset of the popup.\n * @attribute {boolean} sync - The sync state of the popup.\n * @attribute {boolean} hasArrow - The arrow state of the popup.\n *\n * @slot trigger - The trigger of the popup.\n * @slot - The content of the popup.\n *\n * @csspart popup - The main popup container.\n * @csspart arrow - The arrow of the popup.\n */\n@customElement('dap-ds-popup')\nexport default class DapDSPopup extends DdsElement {\n static styles = unsafeCSS(styles)\n\n private triggerElement: Element | null = null\n private cleanup: ReturnType<typeof autoUpdate> | undefined\n\n @query('.popup') popup!: HTMLDivElement\n @query('.popup__arrow') private arrowElement?: HTMLDivElement\n\n @property({ reflect: true, type: Boolean }) disabled? = false\n @property({ reflect: true, type: Boolean }) opened? = false\n @property({ reflect: true }) placement: PopupPlacement = 'bottom'\n @property({ reflect: true })\n floatingStrategy: 'absolute' | 'fixed' = 'absolute'\n @property({ type: Number }) offset = 0\n @property({ type: Boolean }) sync?: boolean\n @property({ type: Number }) maxHeight = 250\n @property({ type: Boolean }) hasArrow = false\n\n async connectedCallback() {\n super.connectedCallback()\n\n await this.updateComplete\n this.startUpdate()\n }\n\n async updated(changedProps: Map<string, unknown>) {\n super.updated(changedProps)\n\n if (changedProps.has('opened')) {\n if (this.opened) {\n this.startUpdate()\n } else {\n this.stopUpdate()\n }\n }\n\n if (changedProps.has('anchor')) {\n this.handleAnchorChange()\n }\n\n if (this.opened) {\n await this.updateComplete\n this.updatePosition()\n }\n }\n\n private async handleAnchorChange() {\n await this.stopUpdate()\n\n this.triggerElement = this.querySelector<HTMLElement>('[slot=\"trigger\"]')\n\n if (this.triggerElement instanceof HTMLSlotElement) {\n this.triggerElement = this.triggerElement.assignedElements({\n flatten: true,\n })[0] as HTMLElement\n }\n\n if (this.triggerElement) {\n this.startUpdate()\n }\n }\n\n private startUpdate() {\n if (!this.triggerElement) {\n return\n }\n\n this.cleanup = autoUpdate(this.triggerElement, this.popup, () => {\n this.updatePosition()\n })\n }\n\n private async stopUpdate(): Promise<void> {\n return new Promise(resolve => {\n if (this.cleanup) {\n this.cleanup()\n this.cleanup = undefined\n requestAnimationFrame(() => resolve())\n } else {\n resolve()\n }\n })\n }\n\n private async updatePosition() {\n if (this.disabled || !this.triggerElement) {\n return\n }\n\n const { x, y, placement, middlewareData } = await computePosition(\n this.triggerElement,\n this.popup,\n {\n placement: this.placement,\n strategy: this.floatingStrategy,\n middleware: [\n offset(this.offset),\n flip(),\n shift(),\n size({\n apply: ({ rects }) => {\n const syncWidth = this.sync\n this.popup.style.width = syncWidth\n ? `${rects.reference.width}px`\n : ''\n this.popup.style.maxHeight = this.maxHeight\n ? `${this.maxHeight}px`\n : ''\n\n this.popup.style.maxHeight = `${this.maxHeight}px`\n },\n }),\n ...(this.arrowElement\n ? [arrow({ element: this.arrowElement, padding: 8 })]\n : []),\n ],\n },\n )\n\n Object.assign(this.popup.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n\n if (this.arrowElement) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow as Coords\n const [side] = placement.split('-')\n const staticSide =\n {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[side] || ''\n\n Object.assign(this.arrowElement.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n [staticSide]: `-5px`,\n })\n }\n }\n\n render() {\n return html`\n <slot name=\"trigger\" @slotchange=${this.handleAnchorChange}></slot>\n <div\n part=\"popup\"\n aria-hidden=${this.opened ? 'false' : 'true'}\n class=${clsx('popup', {\n 'popup--opened': this.opened,\n 'popup--fixed': this.floatingStrategy === 'fixed',\n 'popup--has-arrow': this.hasArrow,\n })}>\n <slot></slot>\n ${this.hasArrow\n ? html`<div\n part=\"arrow\"\n class=${clsx('popup__arrow', {\n ['popup__arrow--' + this.placement.split('-')[0]]: true,\n })}\n role=\"presentation\"></div>`\n : ''}\n </div>\n `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { LabelPositionedFormElement } from '@/internal/mixin/labelPositionedFormElement'\n\nimport { CommonFormElementSize } from '../../common/types'\nimport styles from './radio-button.scss?inline'\n\n/**\n * `dap-ds-radio-button`\n * @summary A radio button is a graphical control element that allows the user to choose only one of a predefined set of mutually exclusive options.\n * @element dap-ds-radio-button\n * @title - Radio button\n *\n * @event dds-change - Fired when the radio button is checked.\n * @event dds-blur - Emitted when the radio button loses focus.\n * @event dds-focus - Emitted when the radio button gains focus.\n * @event dds-input - Emitted when the radio button receives input.\n *\n * @attribute {'sm' | 'md' | 'lg'} size - The size of the radio button. Default is `md`. Can be `sm`, `md`, or `lg`.\n * @attribute {string} name - The name of the radio button.\n * @attribute {string} value - The value of the radio button.\n * @attribute {boolean} checked - The checked state of the radio button.\n * @attribute {boolean} disabled - The disabled state of the radio button.\n * @attribute {boolean} required - The required state of the radio button.\n * @attribute {string} label - The label of the radio button.\n * @attribute {string} description - The description of the radio button.\n * @attribute {'left' | 'right'} labelPlacement - The placement of the label. Can be `left` or `right`. Default is `right`.\n * @attribute {'top' | 'bottom'} descriptionPlacement - The placement of the description. Can be `top` or `bottom`. Default is `bottom`.\n *\n * @csspart base - The main radio button container.\n * @csspart baselabel - The main label container\n * @csspart label - The label of the radio button.\n * @csspart input - The native input of the radio button.\n * @csspart control - The control of the radio button.\n * @csspart description - The description of the radio button.\n */\n@customElement('dap-ds-radio-button')\nexport default class DapDSRadioButton extends LabelPositionedFormElement {\n @query('#input') input!: HTMLInputElement\n static styles = unsafeCSS(styles)\n\n private handleClick(e: MouseEvent) {\n if (this.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n this.checked = true\n }\n\n public get focusElement() {\n return this.input.focus()\n }\n\n render() {\n return html`\n <div part=\"base\">\n <label\n part=\"baselabel\"\n id=\"label\"\n class=${clsx('radio choice', {\n 'radio--checked': this.checked,\n 'radio--disabled': this.disabled,\n 'radio--required': this.required,\n 'radio--sm': this.size === 'sm',\n 'radio--lg': this.size === 'lg',\n 'choice__label--right': this.labelPlacement === 'right',\n 'choice__label--left': this.labelPlacement === 'left',\n })}>\n <div>\n <input\n part=\"input\"\n type=\"radio\"\n class=${clsx('radio__input')}\n name=${this.name}\n id=\"input\"\n value=${ifDefined(this.value)}\n .checked=${this.checked}\n .disabled=${this.disabled}\n .required=${this.required}\n tabindex=${this.checked ? '0' : '-1'}\n aria-checked=${this.checked ? 'true' : 'false'}\n aria-disabled=${this.disabled}\n .aria-invalid=${this.invalid ? 'true' : null}\n @click=${this.handleClick}\n @change=${this.onChange}\n @input=${this.onInput}\n @focus=${this.onFocus}\n @blur=${this.onBlur} />\n <span\n part=\"control\"\n class=${clsx('input__control', {\n 'input__control--disabled': this.disabled,\n 'input__control--invalid': this.invalid,\n 'input__control--checked': this.checked,\n })}>\n <slot name=\"iconcontent\">\n <span class=\"radio__icon\"></span>\n </slot>\n </span>\n <div\n part=\"label-container\"\n class=${clsx('choice__label-container', {\n 'choice__label-container--disabled': this.disabled,\n 'choice__label--bottom': this.descriptionPlacement === 'top',\n 'choice__label--top': this.descriptionPlacement === 'bottom',\n })}>\n <dap-ds-form-label\n id=\"label\"\n class=\"label\"\n part=\"label\"\n .size=${this.size}\n .required=${this.required}\n .optional=${this.optional}\n .disabled=${this.disabled}\n subtle\n label=${ifDefined(this.label)}\n renderAsText>\n </dap-ds-form-label>\n ${this.description &&\n html`\n <dap-ds-typography\n class=\"description\"\n variant=\"description\"\n part=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n </div>\n </div>\n </label>\n </div>\n `\n }\n}\n","import { customElement } from 'lit/decorators.js'\n\nimport ComboboxBaseElement from '../combobox/comboboxBase'\n\n/**\n * `dap-ds-search`\n * @summary A select is a form element that allows the user to select one option from a set.\n * @element dap-ds-search\n * @title - Search\n *\n * @event dds-change - Fired when the search value changes.\n * @event dds-blur - Emitted when the search loses focus.\n * @event dds-focus - Emitted when the search gains focus.\n * @event dds-clear - Emitted when the search is cleared.\n * @event dds-search - Emitted when the search input value changes.\n * @event dds-input - Emitted when typing happens in the search input.\n *\n * @attribute {string} value - The value of the search.\n * @attribute {string} placeholder - The placeholder of the search.\n * @attribute { 'top' | 'top-start' | 'top-end' | 'right' | 'right-start'| 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'} placement - The placement of the select dropdown. Default is 'bottom-start'.\n * @attribute {boolean} opened - Whether the search dropdown is opened.\n * @attribute {'width' | 'height' | 'both'} sync - The sync mode of the search dropdown. How the dropdown item size is synced to the trigger element'.\n * @attribute {string} label - The label of the search.\n * @attribute {string} description - The description of the search.\n * @attribute {string} tooltip - The tooltip of the search.\n * @attribute {'sm' | 'lg'} size - The size of the search. Default is 'md'.\n * @attribute {boolean} disabled - Whether the search is disabled.\n * @attribute {boolean} required - Whether the search is required.\n * @attribute {boolean} readonly - Whether the search is readonly.\n * @attribute {boolean} autofocus - Whether the search is autofocus.\n * @attribute {boolean} clearable - Whether the search is clearable.\n * @attribute {boolean} autocomplete - Whether the search is autcomplete.\n * @attribute {string} feedback - The feedback content of the search.\n * @attribute {'error' | 'warning' | 'info'} feedbackType - The feedback type of the search.\n * @attribute {boolean} allowManualInput - Whether the search allows manual input, or free text.\n * @attribute {boolean} searchForText - Whether the search should search for the selected item text.\n * @attribute {boolean} noTextComplete - Whether the search should not complete the text.\n * @attribute {'none' | 'typehead' | 'autocomplete' | 'manual'} searchMode - The search mode of the select.\n *\n * @csspart base - The main search container.\n * @csspart trigger - The trigger button of the search.\n * @csspart label - The label of the search.\n * @csspart description - The description of the search.\n * @csspart feedback - The feedback of the search.\n * @csspart tooltip - The tooltip of the search.\n * @csspart option-list - The option list of the search.\n */\n@customElement('dap-ds-search')\nexport default class DapDSSearch extends ComboboxBaseElement {\n constructor() {\n super()\n this.selectable = 'false'\n this.search = true\n this.noAnimation = true\n this.searchOnValueSet = 'false'\n this.searchMode = 'none'\n }\n\n render() {\n return this.renderCombobox()\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize, PopupPlacement } from '@/common/types'\nimport { getValidityStateObject } from '@/common/utils'\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\nimport { t } from '@/localization/localization'\n\nimport DapDSOptionList from '../option-list/option-list.component'\nimport styles from './select.scss?inline'\n\n/**\n * `dap-ds-select`\n * @summary A select is a form element that allows the user to select one option from a set.\n * @element dap-ds-select\n * @title - Select\n *\n * @event dds-change - Fired when the select value changes.\n * @event dds-blur - Emitted when the select loses focus.\n * @event dds-focus - Emitted when the select gains focus.\n *\n * @attribute {string} value - The value of the select.\n * @attribute {string} placeholder - The placeholder of the select.\n * @attribute { 'top' | 'top-start' | 'top-end' | 'right' | 'right-start'| 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'} placement - The placement of the select dropdown. Default is 'bottom-start'. Can be 'top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'.\n * @attribute {boolean} opened - Whether the select dropdown is opened.\n * @attribute {'width' | 'height' | 'both'} sync - The sync mode of the select dropdown. How the dropdown item size is synced to the trigger element. Default is `both`. Can be `width`, `height`, or `both`.\n * @attribute {string} label - The label of the select.\n * @attribute {string} description - The description of the select.\n * @attribute {string} tooltip - The tooltip of the select.\n * @attribute {'sm' | 'lg'} size - The size of the select. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {boolean} disabled - Whether the select is disabled.\n * @attribute {boolean} required - Whether the select is required.\n * @attribute {boolean} readonly - Whether the select is readonly.\n * @attribute {boolean} autofocus - Whether the select is autofocus.\n * @attribute {boolean} loading - Whether the select is loading.\n * @attribute {number} maxHeight - The max height of the floating dropdown.\n * @attribute {string} feedback - The feedback of the select.\n * @attribute {'info' | 'success' | 'error'} feedbackType - The feedback type of the select. Can be `info`, `success`, or `error`.\n * @attribute {boolean} isMobile - Whether the select is in mobile mode.\n * @attribute {string} status - The status of the select. Can be `success` or `error`.\n * @attribute {boolean} optional - The optional state of the select.\n * @attribute {string} optionalLabel - The optional label of the select.\n * @attribute {boolean} subtle - The weight of the label. Default is `false`\n * @attribute {boolean} noAnimation - The animation state of the select. Default is `false`\n * @attribute {number} maxHeight - The max height of the floating dropdown.\n *\n * @csspart base - The main select container.\n * @csspart trigger - The trigger button of the select.\n * @csspart label - The label of the select.\n * @csspart description - The description of the select.\n * @csspart feedback - The feedback of the select.\n * @csspart tooltip - The tooltip of the select.\n * @csspart option-list - The option list of the select.\n */\n@customElement('dap-ds-select')\nexport default class DapDSSelect extends GenericFormElement {\n @query('button') triggerButton!: HTMLButtonElement\n @query('dap-ds-option-list') optionList!: DapDSOptionList\n @property({ reflect: true }) placement: PopupPlacement = 'bottom-start'\n @property({ type: Boolean, reflect: true }) opened? = false\n @property() placeholder: string | null\n @property({ type: Boolean }) sync?: boolean\n @property({ type: Boolean }) isMobile?: boolean = false\n @property({ type: Boolean }) loading?: boolean = false\n @property({ type: Number }) maxHeight?: number\n @property({ type: Boolean }) noAnimation?: boolean = false\n\n @state() selectedItem: any\n\n static styles = unsafeCSS(styles)\n\n handleClick = () => {\n this.opened ? this.hideDropDown() : this.showDropDown()\n }\n\n handleKeyDown = async (event: KeyboardEvent) => {\n if (event.key === 'Tab' || event.key === 'Shift') {\n return\n }\n\n event.preventDefault()\n\n if (event.key === 'Enter' || event.key === ' ') {\n return this.opened ? this.hideDropDown() : this.showDropDown()\n }\n\n if (event.key === 'Escape') {\n this.hideDropDown()\n return this.focus()\n }\n\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight'\n ) {\n if (!this.opened) {\n return this.showDropDown()\n }\n\n return\n }\n\n // typing\n this.showDropDown(event.key)\n }\n\n handleListKeyDown = (event: CustomEvent) => {\n if (event.detail.key === 'Escape') {\n this.hideDropDown()\n }\n }\n\n handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n if (this && !path.includes(this)) {\n this.hideDropDown()\n }\n }\n\n handleFocus = () => {\n this.emit('dds-focus')\n }\n\n handleBlur = () => {\n this.emit('dds-blur')\n }\n\n async showDropDown(key?: string) {\n if (this.opened) {\n return\n }\n\n this.opened = true\n\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n await this.updateComplete\n this.optionList.captureFocus(key)\n }\n\n async hideDropDown() {\n if (!this.opened) {\n return\n }\n\n this.opened = false\n\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n await this.updateComplete\n this.optionList.removeFocus()\n\n this.focus()\n }\n\n public get focusElement() {\n return this.triggerButton?.focus()\n }\n\n // custom validation\n get validity(): ValidityState {\n if (this.internals.validity) {\n return this.internals.validity\n } else {\n return getValidityStateObject({\n valueMissing: this.required && !this.selectedItem,\n })\n }\n }\n\n get validationMessage(): string {\n return t('form.validationMessage.select')\n }\n\n checkValidity() {\n return this.required ? (this.selectedItem ? true : false) : true\n }\n\n reportValidity() {\n return this.required ? this.checkValidity() : true\n }\n\n setValidity() {\n if (!this.checkValidity()) {\n this.internals.setValidity(\n {\n valueMissing: this.required && !this.selectedItem,\n },\n this.validationMessage,\n this.triggerButton,\n )\n } else {\n this.internals.setValidity({})\n }\n }\n\n handleInvalid(event: Event) {\n event.preventDefault()\n }\n\n handleSelectedChange = (event: CustomEvent) => {\n const val = Object.keys(event.detail).length ? event.detail : null\n this.selectedItem = val\n this.value = val?.value\n this.hideDropDown()\n this.value = this.selectedItem.value\n this.emit('dds-change', this.selectedItem)\n\n this.setValidity()\n }\n\n renderTriggerElement() {\n return html` <button\n slot=\"trigger\"\n part=\"trigger\"\n role=\"combobox\"\n class=\"${clsx('select', {\n 'select--sm': this.size === 'sm',\n 'select--lg': this.size === 'lg',\n 'select--disabled': this.disabled,\n 'select--readonly': this.readonly,\n 'select--opened': this.opened,\n 'select--loading': this.loading,\n 'select--success': this.status === 'success',\n 'select--error': this.status === 'error',\n 'select--no-animation': this.noAnimation,\n 'select--optional': this.optional,\n })}\"\n .aria-expanded=${this.opened}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-describedby=\"description ${this.feedback ? 'feedback' : ''}\"\n aria-disabled=${this.disabled}\n .aria-controls=${'option-list'}\n aria-activedescendant=${this.selectedItem?.id}\n ?required=${this.required}\n ?readonly=${this.readonly}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @keydown=${this.handleKeyDown}\n @click=${this.handleClick}>\n <span class=\"text\"\n >${this.selectedItem ? this.selectedItem.text : this.placeholder}</span\n >\n <div class=\"icon\">\n ${this.loading\n ? html`<dap-ds-icon-loading-spinner></dap-ds-icon-loading-spinner>`\n : html`<slot name=\"indicator-icon\"\n ><dap-ds-icon-arrow-right-s-line></dap-ds-icon-arrow-right-s-line\n ></slot>`}\n </div>\n </button>`\n }\n\n renderOptionList() {\n return html` <dap-ds-option-list\n class=\"option-list\"\n part=\"option-list\"\n id=\"option-list\"\n searchMode=\"typehead\"\n size=${ifDefined(this.size)}\n value=${ifDefined(this.value)}\n @dds-option-change=${this.handleSelectedChange}\n @dds-keydown=${this.handleListKeyDown}>\n <slot></slot>\n </dap-ds-option-list>`\n }\n\n render() {\n return html` <div class=\"label-container\">\n <dap-ds-form-label\n part=\"label\"\n id=\"label\"\n .size=${this.size}\n .required=${this.required}\n .optional=${this.optional}\n .optionalLabel=${this.optionalLabel}\n .subtle=${this.subtle}\n .disabled=${this.disabled}\n for=\"input\"\n label=${ifDefined(this.label)}>\n </dap-ds-form-label>\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\">\n <dap-ds-icon-button\n clean\n slot=\"trigger\"\n size=\"lg\"\n class=\"input-group__toggle-button\">\n <dap-ds-icon name=\"information-line\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-tooltip>`}\n </div>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n <div>\n ${!this.isMobile\n ? html`<dap-ds-popup\n part=\"base\"\n class=\"select-popup\"\n ?opened=${this.opened}\n ?hasArrow=${false}\n placement=${this.placement}\n maxHeight=${ifDefined(this.maxHeight)}\n ?sync=${this.sync}>\n ${this.renderTriggerElement()} ${this.renderOptionList()}\n </dap-ds-popup>`\n : html`\n ${this.renderTriggerElement()}\n <dap-ds-tray ?open=${this.opened}\n >${this.renderOptionList()}</dap-ds-tray\n >\n `}\n ${this.feedback &&\n html`<dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=\"${ifDefined(this.size as 'lg' | 'sm')}\"\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>`}\n </div>`\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonSize, Placement } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './skip-link.scss?inline'\n\n/**\n * `dap-ds-skip-link`\n * @summary A skip link is a link that allows keyboard users to skip to the main content of a page.\n * @element dap-ds-skip-link\n * @title - Skip link\n *\n * @attribute {string} href - The URL of the skip link.\n * @attribute {'sm' | 'lg'} size - The size of the skip link. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {boolean} noUnderLine - Whether the skip link should have an underline.\n * @attribute {'left' | 'center'} placement - The placement of the skip link. Default is `left`. Can be `left` or `center`.\n *\n * @slot - The content of the skip link.\n *\n * @csspart base - The main skip link container.\n */\n@customElement('dap-ds-skip-link')\nexport default class DapDSSkipLink extends DdsElement {\n @property({ reflect: true }) placement: Placement\n @property() href: string = '#'\n @property() size: CommonSize = 'sm'\n @property({ type: Boolean }) noUnderline = false\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <dap-ds-link\n ?noUnderLine=${this.noUnderline}\n part=\"base\"\n href=${this.href}\n class=${clsx(\n 'skip-link',\n `skip-link--${this.size}`,\n `skip-link--${this.placement}`,\n )}>\n <span part=\"text\" class=\"skip-link__text\">\n <slot></slot>\n </span>\n </dap-ds-link>\n `\n }\n}\n","import clsx from 'clsx'\nimport { html, nothing, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { IconSize } from '../icon/icon.component'\nimport styles from './spinner.scss?inline'\n\nexport type SpinnerVariant =\n | 'neutral'\n | 'brand'\n | 'negative'\n | 'positive'\n | 'inverted'\n\n/**\n * `dap-ds-spinner`\n * @summary Loading spinner component.\n * @element dap-ds-spinner\n * @title - Spinner\n *\n * @attribute {string} text - The loading text. Optional, default is empty.\n * @attribute {'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs'} size - The size of the spinner. It is based on the icon sizes. Default is `lg`.\n * @attribute {number} staticSize - The size of the spinner in pixels. This overrides the size attribute.\n * @attribute {\"neutral\" | \"brand\" | \"negative\" | \"positive\" | \"inverted\"} variant - The variant of the spinner. Default is `neutral`. Can be `neutral`, `brand`, `negative`, `positive`, or `inverted`.\n *\n * @csspart base - The main spinner container.\n * @csspart icon - The loading icon element.\n * @csspart text - The loading text element.\n *\n */\n@customElement('dap-ds-spinner')\nexport default class DapDSSpinner extends DdsElement {\n @property({ type: String, reflect: true }) variant: SpinnerVariant = 'neutral'\n @property({ type: String, reflect: true }) size: IconSize = 'lg'\n @property({ type: Number }) staticSize?: number\n @property({ type: String, reflect: true }) text: string\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <div\n part=\"base\"\n role=\"status\"\n name=\"icon-spinner\"\n class=\"${clsx('spinner', {\n [`spinner--${this.size}`]: this.size,\n [`spinner--${this.variant}`]: this.variant,\n })}\">\n <dap-ds-icon\n part=\"icon\"\n size=${this.size}\n staticSize=${ifDefined(this.staticSize)}\n name=\"loading-spinner\"\n class=\"spinner__icon\"></dap-ds-icon>\n ${this.text\n ? html` <span part=\"text\" class=\"spinner__text\"> ${this.text} </span>`\n : nothing}\n </div>\n `\n }\n}\n","import { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CSSFlexDirection, Spacing } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './stack.scss?inline'\n\n/**\n * `dap-ds-stack`\n * @summary A stack is a container for stacked content.\n * @element dap-ds-stack\n * @title - Stack\n *\n * @attribute {CSSFlexDirection} direction - The direction of the stack. Default is `column`. Can be `column`, `column-reverse`, `row`, or `row-reverse`.\n * @attribute {Spacing} spacing - The spacing of the stack. Uses the system spacing scale (100, 200, 300...etc)\n * @attribute {Boolean} endMargin - Adds margin to the end of the stack.\n * @attribute {Boolean} startMargin - Adds margin to the start of the stack.\n *\n * @slot - The content of the stack.\n *\n * @csspart stack - The main stack container.\n */\n@customElement('dap-ds-stack')\nexport default class DapDSStack extends DdsElement {\n @property() direction: CSSFlexDirection = 'column'\n @property({ type: Boolean }) endMargin?: boolean = false\n @property({ type: Boolean }) startMargin?: boolean = false\n\n private _spacing: Spacing = 0\n @property({ type: Number })\n set spacing(value: Spacing) {\n this._spacing = value\n }\n get spacing() {\n if (\n (!this._spacing && this.direction === 'column') ||\n this.direction === 'column-reverse'\n ) {\n return 600\n }\n\n if (\n (!this._spacing && this.direction === 'row') ||\n this.direction === 'row-reverse'\n ) {\n return 200\n }\n\n return this._spacing\n }\n\n static styles = unsafeCSS(styles)\n\n getMarginStyles(\n direction: CSSFlexDirection,\n spacing: number,\n startMargin?: boolean,\n endMargin?: boolean,\n ) {\n if (direction === 'row' || direction === 'row-reverse') {\n return `margin-left: ${startMargin ? `var(--dds-spacing-${spacing})` : '0'}; margin-right: ${endMargin ? `var(--dds-spacing-${spacing})` : '0'};`\n }\n\n return `margin-top: ${startMargin ? `var(--dds-spacing-${spacing})` : '0'}; margin-bottom: ${endMargin ? `var(--dds-spacing-${spacing})` : '0'};`\n }\n\n render() {\n return html`\n <div\n class=${clsx('stack', {\n [`stack-gap-${this.spacing}`]: this.spacing,\n [`stack-direction-${this.direction}`]: this.direction,\n })}\n style=${ifDefined(\n this.getMarginStyles(\n this.direction,\n this.spacing,\n this.startMargin,\n this.endMargin,\n ),\n )}>\n <slot></slot>\n </div>\n `\n }\n}\n","import { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { LabelPositionedFormElement } from '@/internal/mixin/labelPositionedFormElement'\n\nimport { CommonFormElementSize, CommonSize } from '../../common/types'\nimport styles from './switch.scss?inline'\n\n/**\n * `dap-ds-switch`\n * @summary A switch is a graphical control element that allows the user to toggle between two states.\n * @element dap-ds-switch\n * @title - Switch\n *\n * @attribute {'sm' | 'md' | 'lg'} size - The size of the switch. Default is `md`. Can be `sm`, `md`, or `lg`.\n * @attribute {string} name - The name of the switch.\n * @attribute {string} value - The value of the switch.\n * @attribute {boolean} checked - The checked state of the switch.\n * @attribute {boolean} disabled - The disabled state of the switch.\n * @attribute {boolean} required - The required state of the switch.\n * @attribute {string} label - The label of the switch.\n * @attribute {string} description - The description of the switch.\n * @attribute {'left' | 'right'} labelPlacement - The placement of the label. Can be `left` or `right`. Default is `right`.\n * @attribute {'top' | 'bottom'} descriptionPlacement - The placement of the description. Can be `top` or `bottom`. Default is `bottom`.\n * @attribute {string} ariaLabelCheckbox - The aria label of the checkbox.\n * @attribute {boolean} subtle - The weight of the label. Default is `false`\n * @attribute {string} feedback - The feedback of the switch.\n * @attribute {'info' | 'success' | 'error'} feedbackType - The feedback type of the switch. Can be `info`, `success`, or `error`.\n * @attribute {boolean} optional - The optional state of the switch.\n * @attribute {string} optionalLabel - The optional label of the switch.\n *\n * @event dds-change - Fired when the input value changes.\n * @event dds-blur - Emitted when the input loses focus.\n * @event dds-focus - Emitted when the input gains focus.\n * @event dds-input - Emitted when the input receives input.\n *\n * @csspart base - The main switch container.\n * @csspart baselabel - The main label container\n * @csspart label - The label of the switch.\n * @csspart input - The native input of the switch.\n * @csspart control - The control of the switch.\n * @csspart description - The description of the switch.\n */\n@customElement('dap-ds-switch')\nexport default class DapDSSwitch extends LabelPositionedFormElement {\n @query('#input') input!: HTMLInputElement\n @property() ariaLabelCheckbox?: string\n\n constructor() {\n super()\n }\n\n static styles = unsafeCSS(styles)\n\n private handleClick() {\n this.checked = !this.checked\n\n const { checked, value, disabled } = this\n\n const event = new CustomEvent('dds-change', {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: { checked, value, disabled },\n })\n\n this.dispatchEvent(event)\n\n this.setValidity()\n }\n\n public get focusElement() {\n return this.input\n }\n\n handleInvalid(event: Event) {\n event.preventDefault()\n\n console.log('handleInvalid switch')\n }\n\n render() {\n return html`\n <div part=\"base\">\n <label\n part=\"baselabel\"\n id=\"label\"\n class=${clsx('switch choice', {\n 'switch--checked': this.checked,\n 'switch--disabled': this.disabled,\n 'switch--required': this.required,\n 'switch--sm': this.size === 'sm',\n 'switch--lg': this.size === 'lg',\n 'choice__label--right': this.labelPlacement === 'right',\n 'choice__label--left': this.labelPlacement === 'left',\n })}>\n <div>\n <input\n part=\"input\"\n type=\"checkbox\"\n class=\"input\"\n id=\"input\"\n role=\"switch\"\n .checked=${this.checked}\n .required=${this.required}\n .disabled=${this.disabled}\n aria-label=${ifDefined(this.ariaLabelCheckbox)}\n aria-describedby=\"description ${this.feedback ? 'feedback' : ''}\"\n aria-checked=${this.checked ? 'true' : 'false'}\n .aria-invalid=${this.invalid ? 'true' : null}\n @invalid=${this.handleInvalid}\n @click=${this.handleClick}\n @focus=${this.onFocus}\n @blur=${this.onBlur}\n @input=${this.onInput} />\n <span\n part=\"control\"\n class=${clsx(\n 'input__control',\n { 'input__control--disabled': this.disabled },\n { 'input__control--invalid': this.invalid },\n { 'input__control--checked': this.checked },\n )}>\n <span class=\"input__control-toggle\">\n <dap-ds-icon\n name=\"checkbox-blank-circle-fill\"\n class=\"input__control-toggle-thumb\"></dap-ds-icon>\n </span>\n </span>\n <div\n part=\"label-container\"\n class=${clsx('choice__label-container', {\n 'choice__label-container--disabled': this.disabled,\n 'choice__label--bottom': this.descriptionPlacement === 'top',\n 'choice__label--top': this.descriptionPlacement === 'bottom',\n })}>\n <dap-ds-form-label\n id=\"label\"\n class=\"label\"\n part=\"label\"\n .size=${this.size}\n .required=${this.required}\n .optional=${this.optional}\n .optionalLabel=${this.optionalLabel}\n subtle\n .disabled=${this.disabled}\n label=${ifDefined(this.label)}\n renderAsText>\n </dap-ds-form-label>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n class=\"description\"\n variant=\"description\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n </div>\n </div>\n ${this.feedback &&\n html`\n <dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=${ifDefined(this.size) as CommonSize}\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>\n `}\n </label>\n </div>\n `\n }\n}\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { html } from 'lit-element'\n\nimport { DdsTabSelectEvent } from '@/dap-design-system'\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport styles from './tab.scss?inline'\n\n/**\n * `dap-ds-tab`\n * @summary A tab item component. It is used in dap-ds-tab-group component slot to create a tab item.\n * @element dap-ds-tab\n * @title - Tab\n *\n * @attribute {string} tabId - The tab id.\n * @attribute {boolean} disabled - The disabled state of the tab.\n *\n * @slot - The tab title template.\n * @slot content - The tab content. When KeepContent attribute is not set on dap-ds-tab-group component, then the content must be put inside the html template element with slot=\"content\".\n *\n * @csspart base - The main tab content container.\n */\n@customElement('dap-ds-tab')\nexport default class DapDSTab extends DdsElement {\n static styles = unsafeCSS(styles)\n\n @property({ type: String, reflect: true }) tabId: string\n @property({ type: Boolean, reflect: true }) disabled = false\n\n @state() private _selected: boolean = false\n\n private _contentTemplate: HTMLTemplateElement | undefined = undefined\n\n connectedCallback() {\n super.connectedCallback()\n\n this.parentElement?.addEventListener(\n 'dds-tab-select',\n (e: DdsTabSelectEvent) => {\n if (this.tabId === e.detail.tabId) {\n this._selected = true\n this.appendContent()\n } else if (this._selected) {\n this._selected = false\n this.removeContent()\n }\n },\n )\n }\n\n handleContentSlotChange(_event: Event) {\n if (this.parentElement?.getAttribute('keepcontent') === 'true') return\n\n const template = this.querySelector(\n 'template[slot=\"content\"]',\n ) as HTMLTemplateElement\n\n if (template) {\n this._contentTemplate = template\n\n template.remove()\n }\n }\n\n removeContent() {\n if (this.parentElement?.getAttribute('keepcontent') === 'true') return\n\n const content = this.querySelector('div[slot=\"content\"]')\n\n content?.remove()\n }\n\n appendContent() {\n if (this.parentElement?.getAttribute('keepcontent') === 'true') return\n\n if (this._contentTemplate) {\n const slotContent = document.createElement('div')\n slotContent.setAttribute('slot', 'content')\n slotContent.appendChild(this._contentTemplate.content.cloneNode(true))\n this.appendChild(slotContent)\n }\n }\n\n render() {\n return html`<div\n id=${this.tabId}\n part=\"base\"\n tabindex=${this._selected ? 0 : -1}\n class=${clsx('tab-panel', {\n 'tab-panel--selected': this._selected,\n })}\n role=\"tabpanel\">\n <slot></slot>\n <slot name=\"content\" @slotchange=${this.handleContentSlotChange}></slot>\n </div>`\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction*oo(o,f){if(void 0!==o){let i=0;for(const t of o)yield f(t,i++)}}export{oo as map};\n//# sourceMappingURL=map.js.map\n","import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property, queryAll } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { map } from 'lit/directives/map.js'\nimport { html } from 'lit-element'\n\nimport { CommonSize } from '@/common/types'\nimport DapDSTab from '@/components/tab/tab.component'\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport styles from './tab-group.scss?inline'\n\ninterface TabNavItem {\n titleTemplate: Node[]\n disabled: boolean\n tabId: string | null\n}\n\n/**\n * `dap-ds-tab-group`\n * @summary A tab group component. It is used with dap-ds-tab component to create a tab group.\n * @element dap-ds-tab-group\n * @title - Tab group\n *\n * @attribute {'sm' | 'lg'} size - Defines the size of the tab buttons. Default is `sm`. Can be `sm` or `lg`.\n * @attribute {string} selectedTabId - The selected tab id.\n * @attribute {'true' | 'false'} keepcontent - If true, the content of the tab will not be removed when the tab is not selected.\n * @attribute {boolean} mobile - If true, the tab group will be displayed in mobile mode.\n *\n * @event dds-tab-select - Fired when select a new tab.\n *\n * @slot - The tab items.\n *\n * @csspart base - The main container.\n * @csspart tab-nav - The tab navigation container.\n * @csspart tab-content - The tab content container.\n */\n@customElement('dap-ds-tab-group')\nexport default class DapDSTabGroup extends DdsElement {\n static styles = unsafeCSS(styles)\n\n @property({\n type: String,\n reflect: true,\n })\n selectedTabId: string\n @property({ type: String, reflect: true }) size: CommonSize = 'sm'\n @property({\n type: String,\n reflect: true,\n attribute: 'keepcontent',\n converter: {\n fromAttribute: (value: string) => (value === 'false' ? false : true),\n toAttribute: (value: boolean) => (value ? 'true' : 'false'),\n },\n })\n keepContent: boolean = true\n\n @property({ type: Boolean, reflect: true }) mobile: boolean = false\n\n @queryAll('.tab:not(.tab--disabled)') tabNavElements: HTMLElement[]\n\n private _tabNavItems: TabNavItem[] = []\n private _activeTabIds: string[] = []\n private _initialEmit = true\n\n emitTabSelect(tabId: string) {\n if (!tabId) {\n console.warn('Empty tab id!')\n return\n }\n\n this.emit('dds-tab-select', { tabId }, { bubbles: false })\n\n if (this._initialEmit) {\n this._initialEmit = false\n }\n }\n\n attributeChangedCallback(\n name: string,\n oldValue: string | null,\n value: string | null,\n ): void {\n super.attributeChangedCallback(name, oldValue, value)\n if (name.toLocaleLowerCase() === 'selectedtabid' && value !== oldValue) {\n customElements.whenDefined('dap-ds-tab').then(() => {\n if (value && this._activeTabIds.includes(value)) {\n this.emitTabSelect(value)\n }\n })\n }\n }\n\n handleSlotChange(event: Event) {\n const tabElements: NodeListOf<DapDSTab> = (\n event.target as any\n )?.assignedElements({\n flatten: true,\n selector: 'dap-ds-tab',\n })\n\n const tabNavItems: TabNavItem[] = []\n const activeTabIds: string[] = []\n\n tabElements.forEach(tab => {\n const tabId = tab.getAttribute('tabId')\n const disabled = tab.hasAttribute('disabled')\n\n const tabTitle = tab?.shadowRoot?.querySelector(\n 'slot:not([name=\"content\"])',\n ) as HTMLSlotElement\n\n tabNavItems.push({\n titleTemplate: tabTitle?.assignedNodes({ flatten: true }),\n disabled,\n tabId,\n })\n\n if (!disabled && tabId) {\n activeTabIds.push(tabId)\n }\n })\n\n this._tabNavItems = tabNavItems\n this._activeTabIds = activeTabIds\n\n if (!this.selectedTabId && this._activeTabIds.length) {\n this.selectedTabId = this._activeTabIds[0]\n } else if (this._initialEmit) {\n this.emitTabSelect(this.selectedTabId)\n }\n\n this.requestUpdate()\n }\n\n handleClick(tabId: string | null) {\n if (tabId === this.selectedTabId || !tabId) return\n\n this.selectedTabId = tabId\n this.emitTabSelect(tabId)\n }\n\n handleKeyDown(event: KeyboardEvent) {\n const currentTabIndex = this._activeTabIds.indexOf(this.selectedTabId)\n let flag = false\n\n switch (event.key) {\n case 'ArrowLeft':\n {\n if (currentTabIndex > 0) {\n const newTabIndex = currentTabIndex - 1\n this.handleClick(this._activeTabIds[newTabIndex])\n this.tabNavElements[newTabIndex].focus()\n }\n flag = true\n }\n break\n\n case 'ArrowRight':\n {\n if (currentTabIndex < this._activeTabIds.length - 1) {\n const newTabIndex = currentTabIndex + 1\n this.handleClick(this._activeTabIds[newTabIndex])\n this.tabNavElements[newTabIndex].focus()\n }\n flag = true\n }\n break\n\n case 'Home':\n this.handleClick(this._activeTabIds[0])\n this.tabNavElements[0].focus()\n flag = true\n break\n\n case 'End':\n this.handleClick(this._activeTabIds[this._activeTabIds.length - 1])\n this.tabNavElements[this._activeTabIds.length - 1].focus()\n flag = true\n break\n\n default:\n break\n }\n\n if (flag) {\n event.stopPropagation()\n event.preventDefault()\n }\n }\n\n render() {\n return html`\n <div part=\"base\" class=\"tab-group\">\n <div\n role=\"tablist\"\n class=\" ${clsx('tab-group__nav', {\n 'tab-group--mobile': this.mobile,\n })}\">\n ${map(\n this._tabNavItems,\n tab => html`\n <button\n part=\"tab-nav\"\n ?disabled=\"${tab.disabled}\"\n role=\"tab\"\n aria-controls=${ifDefined(tab.tabId ?? undefined)}\n aria-selected=\"${this.selectedTabId === tab.tabId}\"\n tabindex=\"${this.selectedTabId === tab.tabId ? 0 : -1}\"\n type=\"button\"\n class=${clsx('tab', {\n 'tab--selected': this.selectedTabId === tab.tabId,\n 'tab--disabled': tab.disabled,\n 'tab--sm': this.size === 'sm',\n 'tab--lg': this.size === 'lg',\n })}\n @click=${() => {\n this.handleClick(tab.tabId)\n }}\n @keydown=${this.handleKeyDown}>\n ${tab.titleTemplate}\n </button>\n `,\n )}\n </div>\n\n <div part=\"tab-group-content\" class=\"tab-group__content\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n </div>\n `\n }\n}\n","import { PropertyValueMap, unsafeCSS } from 'lit'\nimport {\n customElement,\n property,\n queryAssignedElements,\n} from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './table.scss?inline'\n\n/**\n * Data table component.\n * @element dap-ds-table\n * @title - Table\n *\n * @attribute {boolean} mobile - If the table is mobile design.\n *\n * @slot - The default slot. Accepts `dap-ds-table-row` elements.\n */\n@customElement('dap-ds-table')\nexport default class DapDSTable extends DdsElement {\n @queryAssignedElements() rows!: Array<HTMLElement>\n @property({ reflect: true }) public role = 'grid'\n @property({ type: Boolean, reflect: true }) mobile = false\n\n static styles = unsafeCSS(styles)\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n this.rows.forEach((row, index) => {\n if (index === this.rows.length - 1) {\n row.toggleAttribute('last')\n }\n })\n }\n\n render() {\n return html` <slot></slot> `\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './table-cell.scss?inline'\n\n/**\n * Table cell component.\n * @element dap-ds-table-cell\n * @title - Table cell\n *\n * @attribute {boolean} last - If the cell is the last one.\n *\n * @slot - The default slot.\n *\n * @csspart base - The main cell container.\n *\n */\n@customElement('dap-ds-table-cell')\nexport default class DapDSTableCell extends DdsElement {\n static styles = unsafeCSS(styles)\n\n @property({ type: Boolean, reflect: true }) last: boolean\n @property({ reflect: true })\n public role = 'gridcell'\n\n render() {\n return html` <slot></slot> `\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './table-header.scss?inline'\n\n/**\n * Table header cell component.\n * @element dap-ds-table-header\n * @title - Table header\n *\n * @attribute {boolean} last - If the header cell is the last one.\n *\n * @slot - The default slot.\n *\n * @csspart base - The main header cell container.\n *\n */\n@customElement('dap-ds-table-header')\nexport default class DapDSTableHeader extends DdsElement {\n static styles = unsafeCSS(styles)\n\n @property({ type: Boolean, reflect: true }) last: boolean\n @property({ reflect: true })\n public role = 'columnheader'\n\n render() {\n return html` <slot part=\"base\"></slot> `\n }\n}\n","import { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './table-row.scss?inline'\n\n/**\n * Table row component.\n * @element dap-ds-table-row\n * @title - Table row\n *\n * @attribute {boolean} mobile - If the row is mobile design.\n *\n * @slot - The default slot. Accepts `dap-ds-table-cell` and `dap-ds-table-header` elements.\n */\n@customElement('dap-ds-table-row')\nexport default class DapDSTableRow extends DdsElement {\n static styles = unsafeCSS(styles)\n\n @property({ reflect: true })\n public role = 'row'\n\n @property({ type: Boolean, reflect: true }) mobile = false\n\n render() {\n return html` <slot></slot> `\n }\n}\n","import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport { CommonFormElementSize, CommonSize } from '../../common/types'\nimport styles from './textarea.scss?inline'\n\n/**\n * `dap-ds-textarea`\n * @summary A textarea is a multi-line text input field.\n * @element dap-ds-textarea\n * @title - Textarea\n *\n * @attribute {'sm' | 'lg'} size - The size of the textarea. Default is `md`. Can be `sm` or `lg`.\n * @attribute {boolean} disabled - The disabled state of the textarea.\n * @attribute {number} maxlength - The maximum length of the textarea.\n * @attribute {number} minlength - The minimum length of the textarea.\n * @attribute {boolean} hideCounter - Hide character counter.\n * @attribute {number} rows - The number of rows in the textarea.\n * @attribute {number} cols - The number of columns in the textarea.\n * @attribute {string} value - The value of the textarea.\n * @attribute {string} placeholder - The placeholder of the textarea.\n * @attribute {InputStatus} status - The status of the textarea. Can be `success` or `error`.\n * @attribute {boolean} readonly - The readonly state of the textarea.\n * @attribute {boolean} required - The required state of the textarea.\n * @attribute {string} label - The label of the textarea.\n * @attribute {string} description - The description of the textarea.\n * @attribute {'hard' | 'soft'} wrap - Indicates how the control should wrap the value for form submission. Can be `hard` or `soft`.\n * @attribute {string} feedback - The feedback of the textarea.\n * @attribute {'info' | 'success' | 'error'} feedbackType - The feedback type of the textarea. Can be `info`, `success`, or `error`.\n * @attribute {boolean} optional - The optional state of the textarea.\n * @attribute {string} optionalLabel - The optional label of the textarea.\n * @attribute {boolean} subtle - The weight of the label. Default is `false`\n *\n * @event dds-count-change - Fires when the count of the textarea changes.\n * @event dds-change - Fired when the textarea value changes.\n * @event dds-input - Fired when the textarea value changes.\n * @event dds-keydown - Fired when a key is pressed down.\n * @event dds-blur - Fired when the textarea loses focus.\n * @event dds-focus - Emitted when the textarea gains focus.\n * @event dds-select - Emitted when select text in textarea.\n *\n * @slot feedback-icon - The custom icon of the feedback.\n *\n * @csspart base - The main textarea container.\n * @csspart input - The native input of the textarea.\n * @csspart counter - The counter of the textarea.\n */\n@customElement('dap-ds-textarea')\nexport default class DapDSTextarea extends GenericFormElement {\n @query('#input') input!: HTMLTextAreaElement\n @property({ type: Boolean, reflect: true }) disabled = false\n @property({ type: Boolean, reflect: true }) hideCounter = false\n @property({ type: Number }) minlength?: number\n @property({ type: Number }) maxlength?: number\n @property({ type: Number }) rows?: number = 6\n @property({ type: Number }) cols?: number\n @property() placeholder = ''\n @property() wrap: 'hard' | 'soft'\n\n @state() count = 0\n\n static styles = unsafeCSS(styles)\n\n public get focusElement() {\n return this.input\n }\n\n private _handleSlotChange(event: Event) {\n const target = event?.target as HTMLInputElement\n target.setAttribute('slot', 'icon')\n }\n\n async connectedCallback() {\n super.connectedCallback()\n\n await this.updateComplete\n this.input.value = this.value ?? ''\n this.count = this.input.value.length\n }\n\n onInput() {\n super.onInput()\n\n this.count = this.input.value.length\n this.value = this.input.value\n this.emit('dds-count-change', { value: this.count })\n\n this.setValidity()\n }\n\n onChange() {\n super.onChange()\n\n this.count = this.input.value.length\n this.value = this.input.value\n this.emit('dds-count-change', { value: this.count })\n\n this.setValidity()\n }\n\n onSelect(e: Event) {\n const target = e.target as HTMLTextAreaElement\n const selection = target.value.substring(\n target.selectionStart,\n target.selectionEnd,\n )\n this.emit('dds-select', { value: selection })\n }\n\n handleInvalid(event: Event) {\n event.preventDefault()\n }\n\n private _renderFooter() {\n const counter = !this.hideCounter\n ? html`\n <dap-ds-typography\n part=\"counter\"\n class=${clsx('textarea__counter', {\n 'textarea__counter--error': this.status === 'error',\n })}\n variant=\"caption\"\n size=\"${this.size as CommonFormElementSize}\"\n id=\"counter\"\n aria-hidden=\"true\">\n ${this.count}\n </dap-ds-typography>\n </div>\n `\n : nothing\n\n return html`\n <div class=\"textarea__footer\" part=\"footer\">\n ${this.feedback && this._renderFeedback()} ${counter}\n </div>\n `\n }\n\n render() {\n return this.renderLabel(html`\n <div\n part=\"base\"\n class=${clsx(\n 'textarea',\n { 'textarea--sm': this.size === 'sm' },\n { 'textarea--lg': this.size === 'lg' },\n { 'textarea--success': this.status === 'success' },\n { 'textarea--error': this.status === 'error' },\n { 'textarea--disabled': this.disabled },\n { 'textarea--readonly': this.readonly },\n { 'textarea--optional': this.optional },\n )}>\n <textarea\n id=\"input\"\n part=\"input\"\n class=\"textarea__control\"\n aria-disabled=${this.disabled}\n aria-describedby=\"description ${this.feedback ? 'feedback' : nothing}\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n wrap=${ifDefined(this.wrap)}\n cols=${ifDefined(this.cols)}\n rows=${ifDefined(this.rows)}\n placeholder=${ifDefined(this.placeholder)}\n ?value=${this.value}\n aria-labelledby=\"label\"\n @input=${this.onInput}\n @keydown=${this.onKeydown}\n @change=${this.onChange}\n @blur=${this.onBlur}\n @focus=${this.onFocus}\n @select=${this.onSelect}\n @invalid=${this.handleInvalid}></textarea>\n\n ${this._renderFooter()}\n </div>\n `)\n }\n\n private _renderFeedback() {\n return html`\n <dap-ds-feedback\n part=\"feedback\"\n type=${ifDefined(this.feedbackType)}\n size=${ifDefined(this.size) as CommonSize}\n class=${clsx('textarea__feedback', {\n 'textarea__feedback--sm': this.size === 'sm',\n })}\n id=\"feedback\"\n .subtle=${this.subtle}>\n <slot\n name=\"feedback-icon\"\n @slotchange=\"${this._handleSlotChange}\"></slot>\n ${this.feedback}\n </dap-ds-feedback>\n `\n }\n}\n","import clsx from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { anchorClass } from '@/common/const'\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { t } from '@/localization/localization'\n\nimport styles from './toc.scss?inline'\n\ntype Heading = { level: number; id: any; text: any }\n\n/**\n * @summary A table of contents (TOC) is a list of links that allows users to quickly navigate to sections within a document.\n * @element dap-ds-toc\n * @title - toc\n *\n * @attribute {string} root - The root element to observe [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#root)\n * @attribute {string} rootMargin - The margin around the root element to observe [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#rootmargin)\n * @attribute {number} threshold - The threshold to trigger [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#threshold)\n * @attribute {number} minHeadingLevel - The minimum heading level to include in the TOC. The default value is `2`.\n * @attribute {number} maxHeadingLevel - The maximum heading level to include in the TOC. The default value is `3`.\n * @attribute {boolean} noIndent - Whether to indent the TOC items.\n * @attribute {string} header - The header of the TOC.\n *\n * @event dds-anchor-change - Event that is triggered when the anchor changes.\n *\n * @csspart base - The main container of the toc.\n *\n */\n@customElement('dap-ds-toc')\nexport default class DapDSTOC extends DdsElement {\n @property() root: string = ''\n @property() rootMargin: string = '0px 0px -50% 0px'\n @property({ type: Number }) threshold: number = 1\n @property({ type: Number }) minHeadingLevel: number = 2\n @property({ type: Number }) maxHeadingLevel: number = 3\n @property({ type: Boolean }) noIndent: boolean = false\n @property() header: string\n\n private _observer: IntersectionObserver\n private _anchors: HTMLElement[]\n private _activeAnchor: HTMLAnchorElement\n private _selectors: string[] = []\n private _items: Heading[]\n\n static styles = unsafeCSS(styles)\n\n get activeAnchor() {\n return this._activeAnchor\n }\n\n get anchors() {\n return this._anchors\n }\n\n get items() {\n return this._items\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n const options = {\n root: this.root ? document.querySelector(this.root) : null,\n rootMargin: this.rootMargin,\n threshold: this.threshold,\n }\n\n this._observer = new IntersectionObserver(this._handleIntersect, options)\n }\n\n protected async firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): Promise<void> {\n super.firstUpdated(_changedProperties)\n await this.renderTree()\n }\n\n async attributeChangedCallback(name: string, oldValue: any, newValue: any) {\n super.attributeChangedCallback(name, oldValue, newValue)\n await this.renderTree()\n }\n\n async updated(changedProperties: Map<PropertyKey, unknown>) {\n super.updated(changedProperties)\n await this.renderTree()\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this._observer) {\n this._observer?.disconnect()\n }\n }\n\n async renderTree() {\n this._anchors = this.getAnchors(\n !this.minHeadingLevel ? 2 : this.minHeadingLevel,\n !this.maxHeadingLevel ? 3 : this.maxHeadingLevel,\n )\n\n if (this._anchors.length === 0 || !this._anchors) {\n return\n }\n\n this._anchors.forEach(anchor => {\n this._observer?.observe(anchor)\n })\n\n this._items = await this.getHeaders()\n const tree = this.buildTree(this._items)\n\n const baseElement = document.createElement('div')\n baseElement.setAttribute('part', 'base')\n baseElement.classList.add('toc')\n\n const base = `\n <span class=\"toc-title\">${this.header ?? t('tocTitle')}</span>\n <nav aria-label='${this.header ?? t('tocTitle')}''>${tree}</nav>`\n\n baseElement.innerHTML = base\n\n if (!this.shadowRoot) return\n\n this.shadowRoot.removeChild(this.shadowRoot.childNodes[0])\n this.shadowRoot.appendChild(baseElement)\n }\n\n getAnchors(minHeadingLevel: number, maxHeadingLevel: number): HTMLElement[] {\n this._selectors = []\n for (let i = minHeadingLevel; i <= maxHeadingLevel; i += 1) {\n this._selectors.push(`h${i}.${anchorClass}`)\n this._selectors.push(`dap-ds-typography[variant=h${i}][anchor]`)\n }\n\n return Array.from(document.querySelectorAll(this._selectors.join()))\n }\n\n setActiveAnchor(\n element: HTMLAnchorElement,\n entry: IntersectionObserverEntry,\n ) {\n this._activeAnchor?.removeAttribute('aria-current')\n element.setAttribute('aria-current', 'true')\n this._activeAnchor = element\n\n this.emit('dds-anchor-change', {\n selectedItem: element,\n anchorElement: entry,\n })\n }\n\n getHeaders = async () => {\n const headers: Heading[] = []\n\n await this._anchors.forEach(async (el, index) => {\n await (el as any).updateComplete\n const id = el.id || el.innerText.toLowerCase().split(' ').join('-')\n\n if (!el.id) {\n el.setAttribute('id', id)\n }\n\n let level = this._selectors.indexOf(\n `${el.tagName.toLowerCase()}.${anchorClass}`,\n )\n\n if (level === -1) {\n level = this._selectors.indexOf(\n `dap-ds-typography[variant=${el.getAttribute('variant')}][anchor]`,\n )\n }\n\n headers[index] = {\n id,\n text: el.innerText,\n level: Math.floor(level / 2),\n }\n })\n\n return headers\n }\n\n buildTree(headers: any[]) {\n const list: string[] = []\n let nextLevelHeaders: any[] = []\n let lastLevel = -1\n\n if (headers.length === 0) {\n return ''\n }\n\n const buildSubTree = () => {\n if (nextLevelHeaders.length > 0) {\n list[list.length - 1] += this.buildTree(nextLevelHeaders)\n }\n }\n\n headers.forEach((h: Heading) => {\n if (lastLevel !== -1 && lastLevel < h.level) {\n nextLevelHeaders.push(h)\n return\n }\n\n buildSubTree()\n\n lastLevel = h.level\n list.push(`<a href=\"#${h.id}\" class=\"toc-link\">${h.text}</a>`)\n nextLevelHeaders = []\n })\n\n buildSubTree()\n\n const listHTML = list\n .map(\n i => `<li class=\"toc-item ${'toc-item-level-' + lastLevel}\">${i}</li>`,\n )\n .join('')\n\n return `<ul class=\"${clsx({\n 'toc--no-indent': this.noIndent,\n })}\">${listHTML}</ul>`\n }\n\n _handleIntersect = (entries: IntersectionObserverEntry[]) => {\n entries.forEach(entry => {\n if (!entry.isIntersecting) return\n\n const link = this.shadowRoot!.querySelector(`[href=\"#${entry.target.id}\"`)\n if (link) {\n this.setActiveAnchor(link as HTMLAnchorElement, entry)\n }\n })\n }\n}\n","import { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { PopupPlacement } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './tooltip.scss?inline'\nexport type TooltipMode = 'tooltip' | 'toggle'\n\n/**\n * The distance in pixels between the tooltip and the trigger element.\n */\nconst TOOLTIP_OFFSET = 8\n\n/**\n * `dap-ds-tooltip`\n * @summary A tooltip is a container for tooltip content.\n * @element dap-ds-tooltip\n * @title - Tooltip\n *\n * @attribute {string} content - The content of the tooltip, supporting text only.\n * @attribute {PopupPlacement} placement - The position of the tooltip around the trigger element. Default is `bottom`. Can be `top`, `right`, `bottom`, or `left`.\n * @attribute {boolean} disabled - Disables the tooltip.\n * @attribute {boolean} opened - Sets the tooltip to opened by default (will still be closed on closing events).\n * @attribute {'tooltip' | 'toggle'} mode - Sets the tooltip to toggle mode. Default is `tooltip`. Can be `tooltip` or `toggle`.\n * @attribute {string} trigger - Sets custom trigger event (hover, focus, click). Default is `hover focus`.\n * @attribute {boolean} noArrow - Hides the arrow of the tooltip.\n * @attribute {'absolute' | 'fixed'} floatingStrategy - The floating strategy of the tooltip. Default is `absolute`. Can be `absolute` or `fixed`.\n *\n * @slot - The content of the tooltip.\n * @slot trigger - The trigger element of the tooltip.\n *\n * @csspart base - The main tooltip container.\n * @csspart trigger - The trigger element of the tooltip.\n * @csspart popup - The popup of the tooltip.\n * @csspart arrow - The arrow of the tooltip.\n *\n * @cssproperty --max-width - The maximum width of the tooltip before its content will wrap.\n */\n@customElement('dap-ds-tooltip')\nexport default class DapDSTooltip extends DdsElement {\n static styles = unsafeCSS(styles)\n\n @property() content: string\n @property({ reflect: true }) placement: PopupPlacement = 'bottom'\n @property({ type: Boolean, reflect: true }) opened? = false\n @property() mode?: TooltipMode = 'tooltip'\n @property({ type: Boolean, reflect: true }) noArrow? = false\n @property({ reflect: true })\n floatingStrategy: 'absolute' | 'fixed' = 'absolute'\n\n private _trigger: string = 'hover focus'\n @property()\n set trigger(value: string) {\n this._trigger = value\n }\n get trigger() {\n if (!this.mode) {\n return 'hover focus'\n }\n\n if (this.mode === 'toggle') {\n return 'click'\n }\n\n return this._trigger\n }\n\n @state() mouseOverTooltip: boolean = false\n\n connectedCallback() {\n super.connectedCallback()\n this.addEventListener('blur', this.handleBlur, true)\n this.addEventListener('focus', this.handleFocus, true)\n this.addEventListener('click', this.handleClick)\n this.addEventListener('mouseover', this.handleMouseOver)\n this.addEventListener('mouseout', this.handleMouseOut)\n }\n\n disconnectedCallback() {\n this.removeEventListener('blur', this.handleBlur, true)\n this.removeEventListener('focus', this.handleFocus, true)\n this.removeEventListener('click', this.handleClick)\n this.removeEventListener('mouseover', this.handleMouseOver)\n this.removeEventListener('mouseout', this.handleMouseOut)\n super.disconnectedCallback()\n }\n\n async showTooltip() {\n if (this.opened) {\n return\n }\n\n this.opened = true\n }\n\n async hideTooltip() {\n if (!this.opened) {\n return\n }\n\n this.opened = false\n }\n\n handleBlur = () => {\n if (this.hasTrigger('focus')) {\n this.hideTooltip()\n }\n }\n\n handleClick = () => {\n if (this.hasTrigger('click')) {\n this.opened && !this.hasTrigger('focus')\n ? this.hideTooltip()\n : this.showTooltip()\n }\n }\n\n handleFocus = () => {\n if (this.hasTrigger('focus')) {\n this.showTooltip()\n }\n }\n\n handleKeyDown = (event: KeyboardEvent) => {\n if (this.opened && event.key === 'Escape') {\n event.stopPropagation()\n this.hideTooltip()\n }\n }\n\n handleMouseOver = () => {\n if (this.hasTrigger('hover')) {\n this.showTooltip()\n }\n }\n\n handleMouseOut = () => {\n if (!this.mouseOverTooltip) {\n if (this.hasTrigger('hover')) {\n this.hideTooltip()\n }\n }\n }\n\n handleTooltipMouseOver = () => {\n this.mouseOverTooltip = true\n }\n\n handleTooltipBlur = () => {\n this.mouseOverTooltip = false\n this.handleMouseOut()\n }\n\n hasTrigger = (triggerType: string) => {\n const triggers = this.trigger.split(' ')\n return triggers.includes(triggerType)\n }\n\n render() {\n return html`\n <dap-ds-popup\n part=\"base\"\n exportparts=\"\n popup:base__popup,\n arrow:base__arrow\n \"\n class=${clsx('tooltip', {\n 'tooltip--open': this.opened,\n 'tooltip--tooltip': this.mode === 'tooltip',\n 'tooltip--toggle': this.mode === 'toggle',\n })}\n .opened=${this.opened}\n placement=${this.placement}\n offset=${TOOLTIP_OFFSET}\n floatingStrategy=${this.floatingStrategy}\n ?hasArrow=${!this.noArrow}>\n <slot\n part=\"trigger\"\n name=\"trigger\"\n slot=\"trigger\"\n aria-describedby=\"tooltip\"></slot>\n ${this.content ? html`${this.content}` : html`<slot></slot>`}\n </dap-ds-popup>\n `\n }\n}\n","import { css, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport ModalBaseElement from '../modal/modal-base-element'\nimport style from './tray.scss?inline'\n\n/**\n * `dap-ds-tray`\n * @summary A tray is a container for slide in content.\n * @element dap-ds-tray\n * @title - Tray\n *\n * @attribute {boolean} open - The open state of the tray.\n * @attribute {boolean} closeOnEsc - Whether the tray should close on pressing the escape key. Default is true.\n * @attribute {boolean} closeOnOverlayClick - Whether the tray should close on clicking the overlay. Default is true.\n * @attribute {boolean} noCloseButton - Whether the tray should have a close button. Default is false.\n * @attribute {string} title - The title of the tray.\n * @attribute {string} description - The description of the tray.\n * @attribute {string} okButtonLabel - The label of the OK button.\n * @attribute {string} cancelButtonLabel - The label of the Cancel button.\n * @attribute {boolean} noFooter - Whether the tray should have a footer. Default is false.\n * @attribute {boolean} noHeader - Whether the tray should have a header. Default is false.\n * @attribute {'left' | 'right' | 'top' | 'bottom'} placement - The placement of the tray. Default is `bottom`. Can be `left`, `right`, `top`, or `bottom`.\n *\n * @event dds-before-open - Fires before the tray opens.\n * @event dds-opened - Fires after the tray opens.\n * @event dds-before-close - Fires before the tray closes.\n * @event dds-closed - Fires after the tray closed.\n * @event dds-close - Fires when the tray is closes. You can prevent the tray from closing by calling `event.preventDefault()`.\n *\n * @slot - The content of the tray.\n * @slot header - The header of the tray.\n * @slot footer - The footer of the tray.\n *\n * @csspart base - The main tray container.\n * @csspart panel - The panel of the tray.\n * @csspart header - The header of the tray.\n * @csspart footer - The footer of the tray.\n * @csspart body - The body of the tray.\n *\n */\n@customElement('dap-ds-tray')\nexport default class DapDSTray extends ModalBaseElement {\n @property({ reflect: true }) placement: 'left' | 'right' | 'top' | 'bottom' =\n 'bottom'\n\n constructor() {\n super()\n this.noFooter = true\n this.noHeader = true\n }\n\n static styles = css`\n ${unsafeCSS(ModalBaseElement.styles)}\n ${unsafeCSS(style)}\n `\n\n render() {\n return this.renderModal()\n }\n}\n","import { cva } from 'class-variance-authority'\nimport { clsx } from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\nimport { kebabCase } from 'lodash-es'\n\nimport { anchorClass } from '@/common/const'\n\nimport { Common, Size } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './typography.scss?inline'\n\nexport type TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'body'\n | 'caption'\n | 'description'\n\nexport type TypographySize =\n | Extract<Size, 'lg' | 'md' | 'sm'>\n | null\n | undefined\n\ntype HeadingProps = {\n variant: Extract<TypographyVariant, 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'>\n size?: TypographySize\n}\n\ntype BodyProps = {\n variant: Extract<TypographyVariant, 'body'>\n size: TypographySize\n}\n\ntype CaptionProps = {\n variant: Extract<TypographyVariant, 'caption'>\n size: never\n}\n\ntype DescriptionProps = {\n variant: Extract<TypographyVariant, 'description'>\n size: Extract<TypographySize, 'lg' | 'sm'>\n}\n\nexport type TypographyProps =\n | HeadingProps\n | BodyProps\n | CaptionProps\n | DescriptionProps\n\nconst typographyStyles = cva('typography', {\n variants: {\n variant: {\n h1: 'heading typography-h1',\n h2: 'heading typography-h2',\n h3: 'heading typography-h3',\n h4: 'heading typography-h4',\n h5: 'heading typography-h5',\n h6: 'heading typography-h6',\n body: 'typography-body',\n caption: 'typography-caption',\n description: 'typography-description',\n },\n size: {\n lg: 'typography-size-lg',\n md: 'typography-size-md',\n sm: 'typography-size-sm',\n xs: 'typography-size-xs',\n },\n },\n compoundVariants: [\n {\n variant: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n class: '',\n },\n {\n variant: 'description',\n size: 'lg',\n class: 'typography-description-lg',\n },\n {\n variant: 'description',\n size: 'sm',\n class: 'typography-description-sm',\n },\n ],\n})\n\n/**\n * @element dap-ds-typography\n * @summary Typography is used to display text in different styles.\n * @title - Typography\n *\n * @attribute {'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body' | 'caption' | 'description'} variant - The variant of the typography. Can be `h1`, `h2`, `h3`, `h4`, `h5`, `h6`, `body`, `caption`, or `description`.\n * @attribute {'sm' | 'md' | 'lg'} size - The size of the typography. Can be `sm`, `md`, or `lg`.\n * @attribute {string} bodyAs - The element of the body typography. Default is `p`.\n * @attribute {string} elementId - The id of the typography.\n * @attribute {string} customClass - The custom class of the typography.\n * @attribute {boolean} anchor - Whether the typography is an anchor for the TOC component.\n *\n * @slot default - The content of the typography.\n *\n * @csspart base - The main typography container.\n */\n@customElement('dap-ds-typography')\nexport default class DapDSTypography\n extends DdsElement\n implements Common<TypographyProps>\n{\n @property() variant!: TypographyVariant\n @property() size?: TypographySize\n @property() bodyAs?: string = 'p'\n @property() customClass?: string\n @property({ type: Boolean, reflect: true }) anchor = false\n\n static styles = unsafeCSS(styles)\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n this.setAttribute('id', this.elementId)\n }\n\n get elementId() {\n return this.id ? this.id : kebabCase(this.innerHTML)\n }\n\n private _renderHeading(\n elementId: string,\n customClass: string,\n variant: TypographyVariant,\n size: TypographySize,\n ) {\n return html`\n <${unsafeStatic(variant)}\n part=\"base\"\n id=${ifDefined(elementId)}\n class=${clsx(\n typographyStyles({ variant, size }),\n { [anchorClass]: this.anchor },\n customClass,\n )}\n >\n <slot></slot>\n </${unsafeStatic(variant)}>\n `\n }\n\n private _renderBody(\n elementId: string,\n customClass: string,\n size: TypographySize,\n bodyAs: string,\n ) {\n return html`\n <${unsafeStatic(bodyAs)}\n id=${ifDefined(elementId)}\n part=\"base\"\n class=${clsx(typographyStyles({ variant: 'body', size }), customClass)}\n >\n <slot></slot>\n </${unsafeStatic(bodyAs)}>\n `\n }\n\n private _renderCaption(elementId: string, customClass: string) {\n return html`\n <span\n id=${ifDefined(elementId)}\n part=\"base\"\n class=${clsx(typographyStyles({ variant: 'caption' }), customClass)}>\n <slot></slot>\n </span>\n `\n }\n\n private _renderDesription(\n elementId: string,\n customClass: string,\n size: TypographySize,\n ) {\n return html`\n <span\n id=${ifDefined(elementId)}\n class=${clsx(\n typographyStyles({ variant: 'description', size }),\n customClass,\n )}>\n <slot></slot>\n </span>\n `\n }\n\n private _getElement(\n elementId: string = '',\n customClass: string = '',\n variant: TypographyVariant,\n size: TypographySize,\n bodyAs: string = '',\n ) {\n switch (variant) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return this._renderHeading(elementId, customClass, variant, size)\n case 'body':\n return this._renderBody(elementId, customClass, size, bodyAs)\n case 'caption':\n return this._renderCaption(elementId, customClass)\n case 'description':\n return this._renderDesription(elementId, customClass, size)\n default:\n return null\n }\n }\n\n render() {\n return this._getElement(\n this.elementId,\n this.customClass,\n this.variant,\n this.size,\n this.bodyAs,\n )\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-down-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-down-line\n * @title - ArrowsArrowDownLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-down-line')\nexport default class ArrowsArrowDownLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-down-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m13 16.172 5.364-5.364 1.414 1.414L12 20l-7.778-7.778 1.414-1.414L11 16.172V4h2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-down-s-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-down-s-line\n * @title - ArrowsArrowDownSLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-down-s-line')\nexport default class ArrowsArrowDownSLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-down-s-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m12 13.171 4.95-4.95 1.414 1.415L12 16 5.636 9.636 7.05 8.222z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-left-down-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-left-down-line\n * @title - ArrowsArrowLeftDownLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-left-down-line')\nexport default class ArrowsArrowLeftDownLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-left-down-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m9 13.589 8.607-8.607 1.414 1.415-8.607 8.606H18v2H7v-11h2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-left-l-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-left-l-line\n * @title - ArrowsArrowLeftLLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-left-l-line')\nexport default class ArrowsArrowLeftLLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-left-l-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path fill-rule=\"evenodd\" d=\"M15.294 3.293 6.587 12l8.707 8.707 1.414-1.414L9.415 12l7.293-7.293z\" clip-rule=\"evenodd\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-left-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-left-line\n * @title - ArrowsArrowLeftLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-left-line')\nexport default class ArrowsArrowLeftLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-left-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-left-s-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-left-s-line\n * @title - ArrowsArrowLeftSLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-left-s-line')\nexport default class ArrowsArrowLeftSLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-left-s-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m10.828 12 4.95 4.95-1.414 1.415L8 12l6.364-6.364 1.414 1.414z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-left-up-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-left-up-line\n * @title - ArrowsArrowLeftUpLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-left-up-line')\nexport default class ArrowsArrowLeftUpLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-left-up-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m9.414 8 8.607 8.607-1.414 1.414L8 9.414V17H6V6h11v2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-right-down-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-right-down-line\n * @title - ArrowsArrowRightDownLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-right-down-line')\nexport default class ArrowsArrowRightDownLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-right-down-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M14.59 16.003 5.983 7.397l1.414-1.415 8.607 8.607V7.003h2v11h-11v-2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-right-l-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-right-l-line\n * @title - ArrowsArrowRightLLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-right-l-line')\nexport default class ArrowsArrowRightLLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-right-l-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path fill-rule=\"evenodd\" d=\"M8.707 3.293 17.414 12l-8.707 8.707-1.414-1.414L14.586 12 7.293 4.707z\" clip-rule=\"evenodd\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-right-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-right-line\n * @title - ArrowsArrowRightLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-right-line')\nexport default class ArrowsArrowRightLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-right-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-right-s-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-right-s-line\n * @title - ArrowsArrowRightSLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-right-s-line')\nexport default class ArrowsArrowRightSLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-right-s-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m13.172 12-4.95-4.95 1.414-1.413L16 12l-6.364 6.364-1.414-1.415z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-right-up-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-right-up-line\n * @title - ArrowsArrowRightUpLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-right-up-line')\nexport default class ArrowsArrowRightUpLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-right-up-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m16.004 9.414-8.607 8.607-1.414-1.414L14.59 8H7.003V6h11v11h-2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-up-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-up-line\n * @title - ArrowsArrowUpLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-up-line')\nexport default class ArrowsArrowUpLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-up-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M13 7.828V20h-2V7.828l-5.364 5.364-1.414-1.414L12 4l7.778 7.778-1.414 1.414z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-arrow-up-s-line`\n * @summary An icon\n * @element dap-ds-icon-arrow-up-s-line\n * @title - ArrowsArrowUpSLine\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-arrow-up-s-line')\nexport default class ArrowsArrowUpSLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-arrow-up-s-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m12 10.828-4.95 4.95-1.414-1.414L12 8l6.364 6.364-1.414 1.414z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-expand-up-down-fill`\n * @summary An icon\n * @element dap-ds-icon-expand-up-down-fill\n * @title - ArrowsExpandUpDownFill\n * @group icon\n * @icontype arrows\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-expand-up-down-fill')\nexport default class ArrowsExpandUpDownFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-expand-up-down-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m18 9-6-6-6 6zm0 6-6 6-6-6z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-home-6-line`\n * @summary An icon\n * @element dap-ds-icon-home-6-line\n * @title - BuildingsHome6Line\n * @group icon\n * @icontype buildings\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-home-6-line')\nexport default class BuildingsHome6Line extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-home-6-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M21 20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.49a1 1 0 0 1 .386-.79l8-6.223a1 1 0 0 1 1.228 0l8 6.223a1 1 0 0 1 .386.79zm-2-1V9.978l-7-5.444-7 5.444V19zM7 15h10v2H7z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-clipboard-line`\n * @summary An icon\n * @element dap-ds-icon-clipboard-line\n * @title - DocumentClipboardLine\n * @group icon\n * @icontype document\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-clipboard-line')\nexport default class DocumentClipboardLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-clipboard-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M7 4V2h10v2h3.007c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.993.993 0 0 1 3 21.007V4.993C3 4.445 3.445 4 3.993 4zm0 2H5v14h14V6h-2v2H7zm2-2v2h6V4z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-file-copy-line`\n * @summary An icon\n * @element dap-ds-icon-file-copy-line\n * @title - DocumentFileCopyLine\n * @group icon\n * @icontype document\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-file-copy-line')\nexport default class DocumentFileCopyLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-file-copy-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1 1 0 0 1 3 21l.003-14c0-.552.45-1 1.006-1zM5.002 8 5 20h10V8zM9 6h8v10h2V4H9z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-cookie-line`\n * @summary An icon\n * @element dap-ds-icon-cookie-line\n * @title - OthersCookieLine\n * @group icon\n * @icontype others\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-cookie-line')\nexport default class OthersCookieLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-cookie-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path fill-rule=\"evenodd\" d=\"M19.999 11.893v.007zm-.062 1.116C19.439 16.945 16.067 20 12 20c-4.41 0-8-3.59-8-8 0-4.068 3.056-7.439 6.991-7.937.172.356.396.683.666.972-.22.95-.082 1.968.423 2.843a3.92 3.92 0 0 0 2.253 1.789 3.92 3.92 0 0 0 3.744 2.778q.451 0 .887-.103c.289.27.617.495.973.667M16.17 8.35a1.93 1.93 0 0 0 .951 1.837 1.92 1.92 0 0 0 2.067-.094.48.48 0 0 1 .711.19c.3.65.93 1.077 1.644 1.113a.48.48 0 0 1 .455.473l.001.04L22 12c0 5.514-4.486 10-10 10S2 17.514 2 12 6.486 2 12 2l.092.001h.04a.48.48 0 0 1 .472.456A1.91 1.91 0 0 0 13.716 4.1a.48.48 0 0 1 .19.712c-.43.61-.466 1.42-.094 2.066a1.93 1.93 0 0 0 1.837.951.48.48 0 0 1 .521.521m-3.293-2.435h-.002z\" clip-rule=\"evenodd\"></path><path d=\"M10 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0M8 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0M12 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2M12 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0M16 16a1 1 0 1 0 0-2 1 1 0 0 0 0 2\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-add-line`\n * @summary An icon\n * @element dap-ds-icon-add-line\n * @title - SystemAddLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-add-line')\nexport default class SystemAddLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-add-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-alert-fill`\n * @summary An icon\n * @element dap-ds-icon-alert-fill\n * @title - SystemAlertFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-alert-fill')\nexport default class SystemAlertFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-alert-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m12.866 3 9.526 16.5a1 1 0 0 1-.866 1.5H2.474a1 1 0 0 1-.866-1.5L11.134 3a1 1 0 0 1 1.732 0M11 16v2h2v-2zm0-7v5h2V9z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-alert-line`\n * @summary An icon\n * @element dap-ds-icon-alert-line\n * @title - SystemAlertLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-alert-line')\nexport default class SystemAlertLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-alert-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m12.866 3 9.526 16.5a1 1 0 0 1-.866 1.5H2.474a1 1 0 0 1-.866-1.5L11.134 3a1 1 0 0 1 1.732 0m-8.66 16h15.588L12 5.5zM11 16h2v2h-2zm0-7h2v5h-2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-check-line`\n * @summary An icon\n * @element dap-ds-icon-check-line\n * @title - SystemCheckLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-check-line')\nexport default class SystemCheckLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-check-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m10 15.17 9.192-9.191 1.414 1.414L10 17.999l-6.364-6.364 1.414-1.414z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-check-line2`\n * @summary An icon\n * @element dap-ds-icon-check-line2\n * @title - SystemCheckLine2\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-check-line2')\nexport default class SystemCheckLine2 extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-check-line2')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M19.71 6.393a1 1 0 0 1 0 1.414l-9.8 9.8a1 1 0 0 1-1.414 0l-4.2-4.2a1 1 0 1 1 1.414-1.414l3.493 3.493 9.093-9.093a1 1 0 0 1 1.414 0\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-checkbox-blank-circle-fill`\n * @summary An icon\n * @element dap-ds-icon-checkbox-blank-circle-fill\n * @title - SystemCheckboxBlankCircleFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-checkbox-blank-circle-fill')\nexport default class SystemCheckboxBlankCircleFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-checkbox-blank-circle-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-checkbox-blank-circle-line`\n * @summary An icon\n * @element dap-ds-icon-checkbox-blank-circle-line\n * @title - SystemCheckboxBlankCircleLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-checkbox-blank-circle-line')\nexport default class SystemCheckboxBlankCircleLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-checkbox-blank-circle-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-checkbox-circle-fill`\n * @summary An icon\n * @element dap-ds-icon-checkbox-circle-fill\n * @title - SystemCheckboxCircleFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-checkbox-circle-fill')\nexport default class SystemCheckboxCircleFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-checkbox-circle-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m-.997-6 7.07-7.071-1.413-1.414-5.657 5.657-2.829-2.829-1.414 1.414z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-checkbox-circle-line`\n * @summary An icon\n * @element dap-ds-icon-checkbox-circle-line\n * @title - SystemCheckboxCircleLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-checkbox-circle-line')\nexport default class SystemCheckboxCircleLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-checkbox-circle-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16m-.997-4L6.76 11.757l1.414-1.414 2.829 2.829 5.657-5.657 1.414 1.414z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-close-circle-fill`\n * @summary An icon\n * @element dap-ds-icon-close-circle-fill\n * @title - SystemCloseCircleFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-close-circle-fill')\nexport default class SystemCloseCircleFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-close-circle-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m0-11.414L9.172 7.757 7.757 9.172 10.586 12l-2.829 2.828 1.415 1.415L12 13.414l2.828 2.829 1.415-1.415L13.414 12l2.829-2.828-1.415-1.415z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-close-circle-line`\n * @summary An icon\n * @element dap-ds-icon-close-circle-line\n * @title - SystemCloseCircleLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-close-circle-line')\nexport default class SystemCloseCircleLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-close-circle-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16m0-9.414 2.828-2.829 1.415 1.415L13.414 12l2.829 2.828-1.415 1.415L12 13.414l-2.828 2.829-1.415-1.415L10.586 12 7.757 9.172l1.415-1.415z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-close-fill`\n * @summary An icon\n * @element dap-ds-icon-close-fill\n * @title - SystemCloseFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-close-fill')\nexport default class SystemCloseFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-close-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m12 10.587 4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.415 1.414-4.95-4.95-4.949 4.95-1.414-1.415 4.95-4.95-4.95-4.95L7.05 5.638z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-close-line`\n * @summary An icon\n * @element dap-ds-icon-close-line\n * @title - SystemCloseLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-close-line')\nexport default class SystemCloseLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-close-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m12 10.587 4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.415 1.414-4.95-4.95-4.949 4.95-1.414-1.415 4.95-4.95-4.95-4.95L7.05 5.638z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-download-line`\n * @summary An icon\n * @element dap-ds-icon-download-line\n * @title - SystemDownloadLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-download-line')\nexport default class SystemDownloadLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-download-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M3 19h18v2H3zm10-5.828L19.071 7.1l1.414 1.414L12 17 3.515 8.515 4.929 7.1 11 13.173V2h2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-error-warning-fill`\n * @summary An icon\n * @element dap-ds-icon-error-warning-fill\n * @title - SystemErrorWarningFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-error-warning-fill')\nexport default class SystemErrorWarningFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-error-warning-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m-1-7v2h2v-2zm0-8v6h2V7z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-error-warning-line`\n * @summary An icon\n * @element dap-ds-icon-error-warning-line\n * @title - SystemErrorWarningLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-error-warning-line')\nexport default class SystemErrorWarningLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-error-warning-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16m-1-5h2v2h-2zm0-8h2v6h-2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-external-link-line`\n * @summary An icon\n * @element dap-ds-icon-external-link-line\n * @title - SystemExternalLinkLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-external-link-line')\nexport default class SystemExternalLinkLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-external-link-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1zm11-3v8h-2V6.413l-7.793 7.794-1.414-1.414L17.585 5H13V3z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-eye-line`\n * @summary An icon\n * @element dap-ds-icon-eye-line\n * @title - SystemEyeLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-eye-line')\nexport default class SystemEyeLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-eye-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 3c5.392 0 9.878 3.88 10.819 9-.94 5.12-5.427 9-10.819 9s-9.878-3.88-10.818-9C2.122 6.88 6.608 3 12 3m0 16a9.005 9.005 0 0 0 8.778-7 9.005 9.005 0 0 0-17.555 0A9.005 9.005 0 0 0 12 19m0-2.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9m0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-eye-off-line`\n * @summary An icon\n * @element dap-ds-icon-eye-off-line\n * @title - SystemEyeOffLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-eye-off-line')\nexport default class SystemEyeOffLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-eye-off-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M17.883 19.297A10.95 10.95 0 0 1 12 21c-5.392 0-9.878-3.88-10.818-9A11 11 0 0 1 4.52 5.935L1.394 2.808l1.414-1.414 19.799 19.798-1.414 1.415zM5.936 7.35A8.97 8.97 0 0 0 3.223 12a9.005 9.005 0 0 0 13.201 5.838l-2.028-2.028A4.5 4.5 0 0 1 8.19 9.604zm6.978 6.978-3.242-3.241a2.5 2.5 0 0 0 3.241 3.241m7.893 2.265-1.431-1.431A8.9 8.9 0 0 0 20.778 12 9.005 9.005 0 0 0 9.552 5.338L7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.95 10.95 0 0 1-2.012 4.593m-9.084-9.084Q11.86 7.5 12 7.5a4.5 4.5 0 0 1 4.492 4.778z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-forbid-fill`\n * @summary An icon\n * @element dap-ds-icon-forbid-fill\n * @title - SystemForbidFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-forbid-fill')\nexport default class SystemForbidFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-forbid-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10M8.523 7.109A6 6 0 0 0 7.11 8.523l8.368 8.368a6 6 0 0 0 1.414-1.414z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-information-2-fill`\n * @summary An icon\n * @element dap-ds-icon-information-2-fill\n * @title - SystemInformation2Fill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-information-2-fill')\nexport default class SystemInformation2Fill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-information-2-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m0-12.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3m2 5.5h-1v-4.5h-3v2h1V15h-1v2h4z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-information-fill`\n * @summary An icon\n * @element dap-ds-icon-information-fill\n * @title - SystemInformationFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-information-fill')\nexport default class SystemInformationFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-information-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m-1-11v6h2v-6zm0-4v2h2V7z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-information-line`\n * @summary An icon\n * @element dap-ds-icon-information-line\n * @title - SystemInformationLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-information-line')\nexport default class SystemInformationLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-information-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10m0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16M11 7h2v2h-2zm0 4h2v6h-2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-lightbulb-fill`\n * @summary An icon\n * @element dap-ds-icon-lightbulb-fill\n * @title - SystemLightbulbFill\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-lightbulb-fill')\nexport default class SystemLightbulbFill extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-lightbulb-fill')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M11 18H7.941c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H13v-5h-2zm5 2v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-loading-spinner`\n * @summary An icon\n * @element dap-ds-icon-loading-spinner\n * @title - SystemLoadingSpinner\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-loading-spinner')\nexport default class SystemLoadingSpinner extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-loading-spinner')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M15.889 6.18A7 7 0 0 0 12 5V3a9 9 0 1 1-9 9h2a7 7 0 1 0 10.889-5.82\" clip-rule=\"evenodd\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-menu-line`\n * @summary An icon\n * @element dap-ds-icon-menu-line\n * @title - SystemMenuLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-menu-line')\nexport default class SystemMenuLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-menu-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M3 4h18v2H3zm0 7h18v2H3zm0 7h18v2H3z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-menu-line-s`\n * @summary An icon\n * @element dap-ds-icon-menu-line-s\n * @title - SystemMenuLineS\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-menu-line-s')\nexport default class SystemMenuLineS extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-menu-line-s')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M5.003 6h14v2h-14zm0 5h14v2h-14zm0 5h14v2h-14z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-search-line`\n * @summary An icon\n * @element dap-ds-icon-search-line\n * @title - SystemSearchLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-search-line')\nexport default class SystemSearchLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-search-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"m18.031 16.617 4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617m-2.006-.742A6.98 6.98 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7 3.133 7 7 7a6.98 6.98 0 0 0 4.875-1.975z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-subtract-line`\n * @summary An icon\n * @element dap-ds-icon-subtract-line\n * @title - SystemSubtractLine\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-subtract-line')\nexport default class SystemSubtractLine extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-subtract-line')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path d=\"M5 11v2h14v-2z\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n","/* eslint-disable prettier/prettier */\nimport { clsx } from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../../../internal/dds-hu-element'\nimport styles from '../../../icon/icon.scss?inline'\n\n/**\n * `dap-ds-icon-subtract-line2`\n * @summary An icon\n * @element dap-ds-icon-subtract-line2\n * @title - SystemSubtractLine2\n * @group icon\n * @icontype system\n * \n * @attribute {number} size - (optional) The width and height in pixels\n * @attribute {boolean} selected - (optional) Sets the icon color via the `fill` attribute\n * @attribute {boolean} decorative - (optional) If `true` the SVG element will get `aria-hidden=\"true\"`\n * @attribute {string} accessibilityTitle - (optional) When using the icon standalone, make it meaningful for accessibility\n * @attribute {boolean} focusable - (optional) If `true` the icon can receive focus\n *\n * @csspart base - The main icon container.\n */\n@customElement('dap-ds-icon-subtract-line2')\nexport default class SystemSubtractLine2 extends DdsElement {\n /** (optional) The width and height in pixels */\n @property({ type: Number, reflect: true }) size? = 24\n /** (optional) Sets the icon color via the `fill` attribute */\n @property({ type: Boolean, reflect: true }) selected?: boolean = false\n /** (optional) If `true` the SVG element will get `aria-hidden=\"true\"` */\n @property({ type: Boolean }) decorative?: boolean = false\n /** (optional) When using the icon standalone, make it meaningful for accessibility */\n @property() accessibilityTitle?: string\n /** (optional) If `true` the icon can receive focus */\n @property({ type: Boolean }) focusable?: boolean = false\n\n static styles = unsafeCSS(styles)\n\n render() {\n return html`\n <svg\n part=\"base\"\n class=${clsx('icon', 'dap-ds-icon-subtract-line2')}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=${this.size}\n height=${this.size}\n viewBox=\"0 0 24 24\"\n tabindex=${this.focusable ? 0 : -1}\n aria-hidden=${this.decorative ? 'true' : 'false'}>\n ${this.accessibilityTitle\n ? html`<title>{this.accessibilityTitle}</title>`\n : null}\n <g part=\"container\">\n <g>\n <path stroke=\"#fff\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14 10H6\"></path>\n </g>\n </g>\n </svg>\n `\n }\n}\n"],"names":["r","e","t","f","o","clsx","s","n$3","n","i","S","c","h","a","l","p","d","u","y","b","v","m","_","w","lt","st","g","$","x","T","E","k","O","j","M","P","ke","R","D","V","I","N","U","B","Y","Z","q","G","z","F","et","K","Re","Q","$e","xe","tr","Te","Ee","A","DdsElement","LitElement","name","value","options","event","DapDSAccordion","html","unsafeStatic","unsafeCSS","styles","__decorateClass","property","customElement","DapDSAccordionGroup","openedAccordion","accordion","queryAssignedElements","freeGlobal","freeSelf","root","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","arrayMap","array","iteratee","index","length","isArray","INFINITY","symbolProto","symbolToString","baseToString","toString","arrayReduce","accumulator","initAccum","basePropertyOf","object","key","deburredLetters","deburrLetter","reLatin","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsCombo","reComboMark","deburr","string","reAsciiWord","asciiWords","reHasUnicodeWord","hasUnicodeWord","rsAstralRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","reUnicodeWord","unicodeWords","words","pattern","guard","reApos","createCompounder","callback","kebabCase","word","anchorClass","adoptLightStyles","element","global","supportsAdoptingStyleSheets","myStyleSheet","style","nonce","DapDSAnchorHeading","typographyStyles","DapDSBadge","_changedProperties","iconSlot","size","rt","mt","_t","wt","gt","bt","yt","$t","i18n","i18nResolver","i18Provider","res","initLitI18n","i18nextInstance","setI18n","registry","registryCleanup","details","part","isConnected","initialized","updateAll","translation","translateAndInit","keys","opts","translateDirective","PartType","TranslateBase","AsyncDirective","noChange","Translate","translate","directive","iconNameMap","DapDSBanner","icon","nothing","to","DapDSBreadcrumbItem","ifDefined","DapDSBreadcrumb","clone","items","el","item","isLast","separator","mobileBreakpoint","query","FocusableMixin","constructor","FocusableElement","focusElement","CheckedAttributes","FormElementMixin","FormElement","args","oldValue","newValue","module","this","require$$0","consoleLogger","type","Logger","concreteLogger","_len","_key","_len2","_key2","_len3","_key3","_len4","_key4","lvl","prefix","debugOnly","moduleName","baseLogger","EventEmitter","events","listener","numListeners","_ref","observer","numTimesAdded","_ref2","defer","rej","promise","resolve","reject","makeString","copy","lastOfPathSeparatorRegExp","getLastOfPath","path","Empty","cleanKey","canNotTraverseDeeper","stack","stackIndex","setPath","obj","last","pushPath","concat","getPath","getPathWithDefaults","data","defaultData","deepExtend","target","source","overwrite","prop","regexEscape","str","_entityMap","escape","RegExpCache","capacity","regExpFromCache","regExpNew","chars","looksLikeObjectPathRegExpCache","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","matched","ki","deepFind","tokens","current","next","nextPath","getCleanedCode","code","ResourceStore","ns","lng","ignoreJSONStructure","resources","deep","pack","postProcessor","processors","translator","processor","checkedLoadedFor","Translator","services","resolved","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","parts","lastKey","returnDetails","namespace","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","needsPluralHandling","hasDefaultValue","defaultValueSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","defaultValue","resForMissing","updateMissing","fk","lngs","fallbackLngs","send","specificDefaultValue","defaultForMissing","language","suffixes","suffix","_this","skipOnVariables","nestBef","nb","na","nestAft","postProcess","postProcessorNames","found","exactUsedKey","usedLng","usedNS","extracted","needsContextHandling","codes","finalKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","possibleKey","optionsKeys","useOptionsReplaceForData","option","capitalize","LanguageUtil","specialCases","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","sets","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","createRules","rules","set","PluralResolver","languageUtils","rule","pluralCategory1","pluralCategory2","pluralCategory","number","count","idx","returnSuffix","deepFindWithDefaults","Interpolator","iOpts","getOrResetRegExp","existingRegExp","match","replaces","regexSafe","val","handleFormat","missingInterpolationHandler","todo","matchedVar","temp","safeValue","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","elem","parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","rest","createCachedFormatter","fn","cache","formatter","Formatter","format","mem","formatted","valOptions","error","removePending","Connector","backend","store","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","err","loaded","loadedKeys","fcName","tried","wait","resolver","fallbackValue","isUpdate","clb","get","ret","transformOptions","noop","bindMemberFunctions","inst","I18n","defOpts","createClassOnDemand","ClassOrObject","lu","deferred","load","finish","usedCallback","append","li","lngInLngs","_this2","setLngProps","done","setLng","keyPrefix","_this3","fixedT","resultKey","fallbackLng","lastLng","loadNotPending","loadState","preResult","preloaded","newLngs","rtlLngs","forkResourceStore","mergedOptions","instance","_classCallCheck","Constructor","_typeof","toPrimitive","toPropertyKey","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","arr","each","slice","defaults","fieldContentRegExp","serializeCookie","maxAge","sameSite","cookie","minutes","domain","cookieOptions","nameEQ","ca","cookie$1","querystring","search","params","pos","hasLocalStorageSupport","localStorageAvailable","testKey","localStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","navigator$1","htmlTag","subdomain","lookupFromSubdomainIndex","getDefaults","Browser","i18nOptions","detector","detectionOrder","detected","detectorName","lookup","caches","cacheName","dayjs","localeData","weekday","LocalizedFormat","DEFAULT_LOCALE","getDefaultLang","lang","i18next","LanguageDetector","en","hu","documentElementObserver","update","LabelableMixin","base","LabelableElement","content","setFromParentSize","JSONAttributeParser","convertedValue","getValidityStateObject","state","SizedMixin","SizedElement","changes","GenericFormElement","falsyToString","cx","cva","config","ref","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","param1","cvClass","cvClassName","compoundVariantOptions","buttonVariants","DapDSButton","handled","proxy","DapDSCalendarCell","dateStr","locale","DapDSCalendar","date","days","setFocus","selectedCell","currentDate","week","from","dates","nextDate","minDate","maxDate","minYear","maxYear","minMonth","maxMonth","year","month","day","cell","firstDayofMonth","today","firstAllowedDay","offset","nextIndex","currentMonth","lastDay","lastDayCell","firstDay","firstDayCell","isDisabled","queryAll","DapDScallout","DapDSCard","DapDSCardActions","DapDSCardContent","DapDSCardImage","DapDSCardSubtitle","DapDSCardTitle","ChoiceElementMixin","ChoiceElement","LabelPositionedMixin","LabelPositionedElement","LabelPositionedFormElement","DapDSCheckbox","checked","indeterminate","disabled","ComboboxBaseElement","input","_old","start","end","controlValueLength","DapDSCombobox","DapDSContentSwitcher","inputs","values","DapDSSContentSwitcherItem","DapDSDatePicker","DapDSDivider","DapDSFeedback","HttpError","message","response","status","FileError","file","DapDSFileInput","file1","file2","fileData","loading","fileComponent","files","totalFiles","completedUploads","formData","xhr","progress","fileList","dataTransfer","targetFiles","errorFile","filesSize","maxFileSize","css","DapDSFileInputList","fileComponents","DapDSFileInputListItem","sizes","DapDSFormLabel","LabelTag","DapDSInputGroup","KEY_CODES","DapDSRadioGroup","radios","radio","checkedRadio","step","isValid","DapDSIcon","IconTag","DapDSIconButton","InputBaseElement","DapDSInput","DapDSLink","DapDSListItem","staticIcon","ModalBaseElement","DapDSModal","DapDSNumberInput","DapDSOptionItem","DapDSOptionList","char","queryString","mainSlot","embeddedSlot","ro","valueLowerCase","elements","activeOption","keyCode","nearest","allOptions","nextOption","renderedItem","firstOption","DapDSOverlay","DapDSPasswordInput","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","evaluate","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","side","isStart","lr","rl","tb","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","reset","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","isBasePlacement","fallbackPlacements","placements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$map$so","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","apply","heightSide","widthSide","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","maximumClippingWidth","maximumClippingHeight","xMin","xMax","yMin","yMax","nextDimensions","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","isOverflowElement","overflowX","overflowY","display","getComputedStyle","isTableElement","isContainingBlock","webkit","isWebKit","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","getNodeScroll","getNearestOverflowAncestor","parentNode","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","topLayerSelectors","isTopLayer","selector","convertOffsetParentRelativeRectToViewportRelativeRect","documentElement","topLayer","scroll","offsets","isOffsetParentAnElement","offsetRect","getClientRects","getWindowScrollBarX","getDocumentRect","body","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","getTrueOffsetParent","polyfill","getOffsetParent","window","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","observeMove","onMove","io","timeoutId","cleanup","_io","refresh","skip","threshold","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","arrow$1","platformWithCache","computePosition$1","DapDSPopup","changedProps","syncWidth","arrowX","arrowY","staticSide","DapDSRadioButton","DapDSSearch","DapDSSelect","DapDSSkipLink","DapDSSpinner","DapDSStack","spacing","startMargin","endMargin","DapDSSwitch","DapDSTab","_event","template","slotContent","oo","DapDSTabGroup","tabId","tabElements","tabNavItems","activeTabIds","tab","tabTitle","currentTabIndex","flag","newTabIndex","map","DapDSTable","row","DapDSTableCell","DapDSTableHeader","DapDSTableRow","DapDSTextarea","selection","counter","DapDSTOC","headers","id","level","entry","link","changedProperties","anchor","tree","baseElement","minHeadingLevel","maxHeadingLevel","nextLevelHeaders","lastLevel","buildSubTree","listHTML","TOOLTIP_OFFSET","DapDSTooltip","triggerType","DapDSTray","DapDSTypography","elementId","customClass","bodyAs","ArrowsArrowDownLine","ArrowsArrowDownSLine","ArrowsArrowLeftDownLine","ArrowsArrowLeftLLine","ArrowsArrowLeftLine","ArrowsArrowLeftSLine","ArrowsArrowLeftUpLine","ArrowsArrowRightDownLine","ArrowsArrowRightLLine","ArrowsArrowRightLine","ArrowsArrowRightSLine","ArrowsArrowRightUpLine","ArrowsArrowUpLine","ArrowsArrowUpSLine","ArrowsExpandUpDownFill","BuildingsHome6Line","DocumentClipboardLine","DocumentFileCopyLine","OthersCookieLine","SystemAddLine","SystemAlertFill","SystemAlertLine","SystemCheckLine","SystemCheckLine2","SystemCheckboxBlankCircleFill","SystemCheckboxBlankCircleLine","SystemCheckboxCircleFill","SystemCheckboxCircleLine","SystemCloseCircleFill","SystemCloseCircleLine","SystemCloseFill","SystemCloseLine","SystemDownloadLine","SystemErrorWarningFill","SystemErrorWarningLine","SystemExternalLinkLine","SystemEyeLine","SystemEyeOffLine","SystemForbidFill","SystemInformation2Fill","SystemInformationFill","SystemInformationLine","SystemLightbulbFill","SystemLoadingSpinner","SystemMenuLine","SystemMenuLineS","SystemSearchLine","SystemSubtractLine","SystemSubtractLine2"],"mappings":"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AM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACvE,GAAU;AAAA,EAAM,GAAU;AAAA,EAC1B,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACvE,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACvE,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACxD,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACxD,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACxD,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACxD,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACtF,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EAAK,GAAU;AAAA,EACtF,GAAU;AAAA,EAAM,GAAU;AAAA,EAC1B,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAAK,GAAU;AAAA,EACzC,GAAU;AAAA,EAAM,GAAU;AAAA,EAC1B,GAAU;AAAA,EAAM,GAAU;AAAA,EAC1B,GAAU;AAAA,EAAM,GAAU;AAC5B,GAUIC,KAAeJ,GAAeG,EAAe,GChE7CE,KAAU,+CAGVC,KAAoB,mBACpBC,KAAwB,mBACxBC,KAAsB,mBACtBC,KAAeH,KAAoBC,KAAwBC,IAG3DE,KAAU,MAAMD,KAAe,KAM/BE,KAAc,OAAOD,IAAS,GAAG;AAoBrC,SAASE,GAAOC,GAAQ;AACtB,SAAAA,IAASjB,GAASiB,CAAM,GACjBA,KAAUA,EAAO,QAAQR,IAASD,EAAY,EAAE,QAAQO,IAAa,EAAE;AAChF;ACzCA,IAAIG,KAAc;AASlB,SAASC,GAAWF,GAAQ;AAC1B,SAAOA,EAAO,MAAMC,EAAW,KAAK,CAAA;AACtC;ACXA,IAAIE,KAAmB;AASvB,SAASC,GAAeJ,GAAQ;AAC9B,SAAOG,GAAiB,KAAKH,CAAM;AACrC;ACXA,IAAIK,KAAgB,mBAChBZ,KAAoB,mBACpBC,KAAwB,mBACxBC,KAAsB,mBACtBC,KAAeH,KAAoBC,KAAwBC,IAC3DW,KAAiB,mBACjBC,KAAe,6BACfC,KAAgB,wBAChBC,KAAiB,gDACjBC,KAAqB,mBACrBC,KAAe,gKACfC,KAAe,6BACfC,KAAa,kBACbC,KAAeN,KAAgBC,KAAiBC,KAAqBC,IAGrEI,KAAS,QACTC,KAAU,MAAMF,KAAe,KAC/BjB,KAAU,MAAMD,KAAe,KAC/BqB,KAAW,QACXC,KAAY,MAAMZ,KAAiB,KACnCa,KAAU,MAAMZ,KAAe,KAC/Ba,KAAS,OAAOf,KAAgBS,KAAeG,KAAWX,KAAiBC,KAAeK,KAAe,KACzGS,KAAS,4BACTC,KAAa,QAAQzB,KAAU,MAAMwB,KAAS,KAC9CE,KAAc,OAAOlB,KAAgB,KACrCmB,KAAa,mCACbC,KAAa,sCACbC,KAAU,MAAMd,KAAe,KAC/Be,KAAQ,WAGRC,KAAc,QAAQT,KAAU,MAAMC,KAAS,KAC/CS,KAAc,QAAQH,KAAU,MAAMN,KAAS,KAC/CU,KAAkB,QAAQf,KAAS,0BACnCgB,KAAkB,QAAQhB,KAAS,0BACnCiB,KAAWV,KAAa,KACxBW,KAAW,MAAMpB,KAAa,MAC9BqB,KAAY,QAAQP,KAAQ,QAAQ,CAACJ,IAAaC,IAAYC,EAAU,EAAE,KAAK,GAAG,IAAI,MAAMQ,KAAWD,KAAW,MAClHG,KAAa,oDACbC,KAAa,oDACbC,KAAQJ,KAAWD,KAAWE,IAC9BI,KAAU,QAAQ,CAACpB,IAAWM,IAAYC,EAAU,EAAE,KAAK,GAAG,IAAI,MAAMY,IAGxEE,KAAgB,OAAO;AAAA,EACzBb,KAAU,MAAMP,KAAU,MAAMW,KAAkB,QAAQ,CAACd,IAASU,IAAS,GAAG,EAAE,KAAK,GAAG,IAAI;AAAA,EAC9FG,KAAc,MAAME,KAAkB,QAAQ,CAACf,IAASU,KAAUE,IAAa,GAAG,EAAE,KAAK,GAAG,IAAI;AAAA,EAChGF,KAAU,MAAME,KAAc,MAAME;AAAA,EACpCJ,KAAU,MAAMK;AAAA,EAChBK;AAAA,EACAD;AAAA,EACAlB;AAAA,EACAqB;AACF,EAAE,KAAK,GAAG,GAAG,GAAG;AAShB,SAASE,GAAaxC,GAAQ;AAC5B,SAAOA,EAAO,MAAMuC,EAAa,KAAK,CAAA;AACxC;AC1CA,SAASE,GAAMzC,GAAQ0C,GAASC,GAAO;AAIrC,SAHA3C,IAASjB,GAASiB,CAAM,GACxB0C,IAA8BA,GAE1BA,MAAY,SACPtC,GAAeJ,CAAM,IAAIwC,GAAaxC,CAAM,IAAIE,GAAWF,CAAM,IAEnEA,EAAO,MAAM0C,CAAO,KAAK,CAAA;AAClC;AC3BA,IAAI3B,KAAS,QAGT6B,KAAS,OAAO7B,IAAQ,GAAG;AAS/B,SAAS8B,GAAiBC,GAAU;AAClC,SAAO,SAAS9C,GAAQ;AACtB,WAAOhB,GAAYyD,GAAM1C,GAAOC,CAAM,EAAE,QAAQ4C,IAAQ,EAAE,CAAC,GAAGE,GAAU,EAAE;AAAA,EAC9E;AACA;ACEA,IAAIC,KAAYF,GAAiB,SAAShF,GAAQmF,GAAMxE,GAAO;AAC7D,SAAOX,KAAUW,IAAQ,MAAM,MAAMwE,EAAK;AAC5C,CAAC;ACzBM,MAAMC,KAAc,cCAdC,KAAmB,CAACC,MAAyB;AACxD,QAAMC,IAAS,QACTC,IACJD,EAAO,eACNA,EAAO,aAAa,UAAaA,EAAO,SAAS,iBAClD,wBAAwB,SAAS,aACjC,aAAa,cAAc,WAEvB3G,IAAU0G,EAAQ,YAAoB,QAEtCG,IAAe,IAAI;AACzB,EAAAA,EAAa,QAAQ7G,CAAM,GAEvB4G,IACF,SAAS,qBAAqB,CAAC,GAAG,SAAS,oBAAoBC,CAAY,IAEpE7G,EAAA,QAAQ,CAAChE,MAAW;AACnB,UAAA8K,IAAQ,SAAS,cAAc,OAAO,GACtCC,IAASJ,EAAe;AAC9B,IAAII,MAAU,UACND,EAAA,aAAa,SAASC,CAAK,GAEnCD,EAAM,cAAc9K,EAAE,SACb,SAAA,KAAK,YAAY8K,CAAK;AAAA,EAAA,CAChC;AAEL;;;;;;ACCqB,IAAAE,KAArB,cAAgD1H,EAAW;AAAA,EAMzD,mBAAmB;AACjB,WAAAmH,GAAiB,IAAI,GACd;AAAA,EACT;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,KAAK,KAAK,KAAKH,GAAU,KAAK,KAAK;AAAA,EACjD;AAAA,EAEA,IAAI,cAAc;AACT,WAAA,WAAW,KAAK,KAAK;AAAA,EAC9B;AAAA,EAEA,SAAS;AACA,WAAAzG;AAAAA,OACJC,EAAa,KAAK,OAAO,CAAC;AAAA,WACtB,KAAK,SAAS;AAAA,cACX/D,EAAKyK,IAAa,EAAE,CAAC,cAAc,KAAK,OAAO,EAAE,GAAG,KAAK,QAAS,CAAA,CAAC;AAAA;AAAA,QAEzE,KAAK,KAAK;AAAA;AAAA;AAAA,eAGH,IAAI,KAAK,SAAS,EAAE;AAAA,qBACd,KAAK,WAAW;AAAA,gBACrB,KAAK,WAAW;AAAA;AAAA;AAAA,QAGxB1G,EAAa,KAAK,OAAO,CAAC;AAAA;AAAA,EAEhC;AACF;AApCqBkH,GAIZ,SAAS,CAACjH,EAAUC,EAAM,GAAGD,EAAUkH,EAAgB,CAAC;AAHnDhH,GAAA;AAAA,EAAXC,EAAS;AAAA,GADS8G,GACP,WAAA,WAAA,CAAA;AACA/G,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFS8G,GAEP,WAAA,SAAA,CAAA;AAFOA,KAArB/G,GAAA;AAAA,EADCE,EAAc,uBAAuB;AAAA,GACjB6G,EAAA;;;;;;;ACQA,IAAAE,KAArB,cAAwC5H,EAAW;AAAA,EAAnD,cAAA;AAAA,UAAA,GAAA,SAAA,GACgC,KAAA,OAAA,WACC,KAAA,OAAA;AAAA,EAAA;AAAA,EAKrB,aACR6H,GACM;AAIN,QAHA,MAAM,aAAaA,CAAkB,GAChC,KAAA,aAAa,QAAQ,QAAQ,GAE9B,KAAK,YAAY;AACb,YAAAC,IAAW,KAAK,WAAW;AAAA,QAC/B;AAAA,MAAA;AAEF,MAAIA,KACEA,EAAS,iBAAiB,EAAE,UAE3BA,EAAA,iBAAA,EAAmB,CAAC,EACpB,aAAa,cAAc,KAAK,YAAY,KAAK,IAAI,CAAC;AAAA,IAG/D;AAAA,EACF;AAAA,EAEQ,YAAYC,GAAkB;AAC7B,WAAAA,MAAS,OAAO,OAAO;AAAA,EAChC;AAAA,EAEA,SAAS;AACA,WAAAxH;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,SAAS,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;AAAA;AAAA,YAE/D,KAAK,OACH8D;AAAAA;AAAAA,wBAEU,KAAK,IAAI;AAAA,6BACJ,KAAK,YAAY,KAAK,IAAI,CAAC;AAAA,gCAE1CA,0CAA6C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzD;AACF;AAjDqBqH,GAKZ,SAASnH,EAAUC,EAAM;AAJpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSgH,GACP,WAAA,QAAA,CAAA;AACAjH,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSgH,GAEP,WAAA,QAAA,CAAA;AACAjH,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHSgH,GAGP,WAAA,QAAA,CAAA;AAHOA,KAArBjH,GAAA;AAAA,EADCE,EAAc,cAAc;AAAA,GACR+G,EAAA;AClCrB;AAAA;AAAA;AAAA;AAAA;AAIO,MAAqPI,KAAG,CAAAxL,MAAYA,EAAE,YAAX;ACLlQ;AAAA;AAAA;AAAA;AAAA;AAKA,MAAMF,KAAE,EAAC,WAAU,GAAE,OAAM,GAAE,UAAS,GAAE,mBAAkB,GAAE,OAAM,GAAE,SAAQ,EAAC,GAAED,KAAE,OAAG,IAAI,OAAK,EAAC,iBAAgB,GAAE,QAAO,EAAC;AAAG,MAAMQ,GAAC;AAAA,EAAC,YAAYP,GAAE;AAAA,EAAE;AAAA,EAAA,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKA,GAAED,GAAEQ,GAAE;AAAC,SAAK,IAAEP,GAAE,KAAK,OAAKD,GAAE,KAAK,IAAEQ;AAAA,EAAC;AAAA,EAAC,KAAKP,GAAED,GAAE;AAAC,WAAO,KAAK,OAAOC,GAAED,CAAC;AAAA,EAAC;AAAA,EAAC,OAAOC,GAAED,GAAE;AAAC,WAAO,KAAK,OAAO,GAAGA,CAAC;AAAA,EAAC;AAAC;ACJrS;AAAA;AAAA;AAAA;AAAA;AAIG,MAAM4L,KAAG,CAACpL,GAAEP,MAAI;AAAC,QAAMD,IAAEQ,EAAE;AAAK,MAAYR,MAAT;AAAW,WAAM;AAAG,aAAUQ,KAAKR;AAAE,IAAAQ,EAAE,OAAOP,GAAE,EAAE,GAAE2L,GAAGpL,GAAEP,CAAC;AAAE,SAAM;AAAE,GAAE4L,KAAG,CAAArL,MAAG;AAAC,MAAIP,GAAED;AAAE,KAAE;AAAC,SAAaC,IAAEO,EAAE,UAAd;AAAoB;AAAM,IAAAR,IAAEC,EAAE,MAAKD,EAAE,OAAOQ,CAAC,GAAEA,IAAEP;AAAA,EAAC,SAAWD,GAAG,SAAP;AAAY,GAAE8L,KAAG,CAAAtL,MAAG;AAAC,WAAQP,GAAEA,IAAEO,EAAE,MAAKA,IAAEP,GAAE;AAAC,QAAID,IAAEC,EAAE;AAAK,QAAYD,MAAT;AAAW,MAAAC,EAAE,OAAKD,IAAE,oBAAI;AAAA,aAAYA,EAAE,IAAIQ,CAAC;AAAE;AAAM,IAAAR,EAAE,IAAIQ,CAAC,GAAEuL,GAAG9L,CAAC;AAAA,EAAC;AAAC;AAAE,SAAS+L,GAAGxL,GAAE;AAAC,EAAS,KAAK,SAAd,UAAoBqL,GAAG,IAAI,GAAE,KAAK,OAAKrL,GAAEsL,GAAG,IAAI,KAAG,KAAK,OAAKtL;AAAC;AAAC,SAASyL,GAAGzL,GAAEP,IAAE,IAAGD,IAAE,GAAE;AAAC,QAAMK,IAAE,KAAK,MAAKF,IAAE,KAAK;AAAK,MAAYA,MAAT,UAAgBA,EAAE,SAAN;AAAW,QAAGF;AAAE,UAAG,MAAM,QAAQI,CAAC;AAAE,iBAAQG,IAAER,GAAEQ,IAAEH,EAAE,QAAOG;AAAI,UAAAoL,GAAGvL,EAAEG,CAAC,GAAE,EAAE,GAAEqL,GAAGxL,EAAEG,CAAC,CAAC;AAAA;AAAO,QAAMH,KAAN,SAAUuL,GAAGvL,GAAE,EAAE,GAAEwL,GAAGxL,CAAC;AAAA;AAAQ,MAAAuL,GAAG,MAAKpL,CAAC;AAAC;AAAC,MAAMuL,KAAG,CAAAvL,MAAG;AAAC,EAAAA,EAAE,QAAMP,GAAE,UAAQO,EAAE,SAAOyL,IAAGzL,EAAE,SAAOwL;AAAG;AAAE,MAAME,WAAW1L,GAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAM;AAAA,EAAC,KAAKA,GAAEP,GAAED,GAAE;AAAC,UAAM,KAAKQ,GAAEP,GAAED,CAAC,GAAE8L,GAAG,IAAI,GAAE,KAAK,cAAYtL,EAAE;AAAA,EAAI;AAAA,EAAC,KAAKA,GAAEP,IAAE,IAAG;AAAC,IAAAO,MAAI,KAAK,gBAAc,KAAK,cAAYA,GAAEA,IAAE,KAAK,cAAW,IAAK,KAAK,eAAgB,IAAEP,MAAI2L,GAAG,MAAKpL,CAAC,GAAEqL,GAAG,IAAI;AAAA,EAAE;AAAA,EAAC,SAASrL,GAAE;AAAC,QAAGmL,GAAG,KAAK,CAAC;AAAE,WAAK,EAAE,KAAKnL,GAAE,IAAI;AAAA,SAAM;AAAC,YAAMP,IAAE,CAAC,GAAG,KAAK,EAAE,IAAI;AAAE,MAAAA,EAAE,KAAK,CAAC,IAAEO,GAAE,KAAK,EAAE,KAAKP,GAAE,MAAK,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,eAAc;AAAA,EAAE;AAAA,EAAA,cAAa;AAAA,EAAE;AAAA;ACC3hC,IAAIkM,KAAO,MAGPC,KAAe,MAAM;AAAA;AAEzB,MAAMC,KAAc,IAAI,QAAQ,CAACC,MAAQ;AACrC,EAAAF,KAAeE;AACnB,CAAC,GAGYC,KAAc;AAAA,EACvB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,EAMN,KAAKC,GAAiB;AAClB,IAAAC,GAAQD,CAAe;AAAA,EAC1B;AACL,GAWaC,KAAU,CAACD,MAAoB;AACxC,EAAAL,KAAOK,GACPJ,GAAaD,EAAI;AACrB,GAMaO,KAAW,oBAAI,OAMfC,KAAkB,MAAM;AACjC,EAAAD,GAAS,QAAQ,CAACE,GAASC,MAAS;AAChC,KAAIA,EAAK,gBAAgB,MAASC,GAAYD,CAAI,MAAM,OACpDH,GAAS,OAAOG,CAAI;AAAA,EAEhC,CAAK;AACL;AAGA,YAAYF,IAAiB,GAAK;AAElC,IAAII,KAAc;AAGlB,MAAMC,KAAY,MAAM;AACpB,EAAAN,GAAS,QAAQ,CAACE,GAASC,MAAS;AAChC,QAAIA,EAAK,eAAeC,GAAYD,CAAI,GAAG;AACvC,YAAMI,IAAcC,GAAiBN,EAAQ,MAAMA,EAAQ,OAAO;AAClE,MAAAC,EAAK,SAASI,CAAW;AAAA,IAC5B;AAAA,EACT,CAAK;AACL;AASA,SAASC,GAAiBC,GAAMC,GAAM;AAClC,MAAI,CAACjB;AACD,WAAO;AAGX,EAAIY,OAAgB,OAEhBZ,GAAK,GAAG,mBAAmBa,EAAS,GAEpCb,GAAK,MAAM,GAAG,SAASa,EAAS,GAChCD,KAAc;AAGlB,QAAME,IAAcd,GAAK,EAAEgB,GAAMC,CAAI;AAErC,SAAI,OAAOH,KAAgB,WAChBA,IAGJ;AACX;AAMA,MAAMH,KAAc,CAACO,MAAuB;AAExC,QAAMR;AAAA;AAAA,IAA4DQ,EAAmB;AAAA;AACrF,MAAIR,EAAK,SAASS,GAAS;AAAW,WAAOT,EAAK,QAAQ;AAC1D,MAAIA,EAAK,SAASS,GAAS;AAAO,WAAOT,EAAK,aAAaA,EAAK,WAAW,cAAc;AAIzF,MAHIA,EAAK,SAASS,GAAS,YACvBT,EAAK,SAASS,GAAS,qBACvBT,EAAK,SAASS,GAAS,SACvBT,EAAK,SAASS,GAAS;AAAS,WAAOT,EAAK,QAAQ;AACxD,QAAM,IAAI,MAAM,kBAAkB;AACtC;AAGA,MAAMU,WAAsBC,GAAe;AAAA;AAAA,EAEvC,SAAS;AAAA,EAAE;AAAA;AAAA,EAGX,YAAYX,GAAM;AACd,UAAMA,CAAI,GAEV,KAAK,QAAQ,IAEb,KAAK,OAAOA;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,UAAUM,GAAMpJ,GAAS;AACrB,QAAIqJ,IAAOrJ;AACX,IAAA2I,GAAS,IAAI,MAAM,EAAE,MAAAS,GAAM,SAASC,EAAI,CAAE,GAEtC,OAAOrJ,KAAY,eACnBqJ,IAAOrJ,EAAO;AAGlB,UAAMkJ,IAAcC,GAAiBC,GAAMC,CAAI;AAE/C,WAAI,KAAK,gBAAgB,MAASH,MAAgB,UAAa,KAAK,UAAUA,IACnEQ,KAGJR;AAAA,EACV;AAAA;AAAA,EAGD,eAAe;AACX,IAAAP,GAAS,OAAO,IAAI;AAAA,EACvB;AACL;AAGA,MAAMgB,WAAkBH,GAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlC,OAAOJ,GAAMpJ,GAAS;AAClB,WAAAsI,IAAa,KAAK,MAAM;AACpB,WAAK,SAAS,KAAK,UAAUc,GAAMpJ,CAAO,CAAC;AAAA,IACvD,CAAS,GACM0J;AAAAA,EACV;AACL;AAyCO,MAAME,KAAYC,GAAUF,EAAS;;;;;;ACrM5C,MAAMG,KAAc;AAAA,EAClB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AACZ;AA4BqB,IAAAC,KAArB,cAAyCnK,EAAW;AAAA,EAApD,cAAA;AAAA,UAAA,GAAA,SAAA,GACuC,KAAA,UAAA,SAGS,KAAA,SAAA,QAE3B,KAAA,mBAAA;AAAA,EAAA;AAAA,EAKX,eAAe;AACrB,SAAK,KAAK,WAAW;AAAA,EACvB;AAAA,EAEA,SAAS;AACD,UAAAoK,IAAOF,GAAY,KAAK,OAAO;AAEjC,WAAA,KAAK,UAAU,UACVG,IAEF9J;AAAAA;AAAAA,qCAE0B9D,EAAK,WAAW,KAAK,OAAO,EAAE,CAAC;AAAA,uBAC7CA,EAAK,UAAU,WAAW,KAAK,OAAO,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAMtC,KAAK,QAAQ2N,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAY7B,KAAK,YACH7J;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,8BAOc,KAAK,YAAY;AAAA,gCACf,KAAK,oBAAoByJ,GAAU,OAAO,CAAC;AAAA;AAAA;AAAA,oBAI3DK,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB;AACF;AA7DqBF,GASZ,SAAS1J,EAAUC,EAAM;AARpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSuJ,GACP,WAAA,WAAA,CAAA;AAEiBxJ,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAHRuJ,GAGU,WAAA,aAAA,CAAA;AACAxJ,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAJRuJ,GAIU,WAAA,UAAA,CAAA;AAE7BxJ,GAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ;AAAA,GALPuJ,GAMnB,WAAA,oBAAA,CAAA;AAC4BxJ,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAPPuJ,GAOS,WAAA,QAAA,CAAA;AAPTA,KAArBxJ,GAAA;AAAA,EADCE,EAAc,eAAe;AAAA,GACTsJ,EAAA;ACpDrB;AAAA;AAAA;AAAA;AAAA;AAIG,MAAMG,IAAG,OAAG,KAAG5L;;;;;;ACuBG,IAAA6L,KAArB,cAAiDvK,EAAW;AAAA,EAA5D,cAAA;AAAA,UAAA,GAAA,SAAA,GAGoB,KAAA,MAAA,uBACsB,KAAA,WAAA,IACA,KAAA,WAAA;AAAA,EAAA;AAAA,EAIxC,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,mBAAmB;AAAA,MAC9B,6BAA6B,KAAK;AAAA,IAAA,CACnC,CAAC;AAAA,UACA,KAAK,OACH8D;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,wBAKY9D,EAAK,mBAAmB;AAAA,MAC9B,yBAAyB,KAAK;AAAA,MAC9B,6BAA6B,KAAK;AAAA,IAAA,CACnC,CAAC;AAAA,wBACM,KAAK,IAAK;AAAA,0BACR+N,EAAU,KAAK,MAAM,CAAC;AAAA,sBAC1BA,EAAU,KAAK,SAAS,KAAK,MAAM,MAAS,CAAC;AAAA,4BACvC,KAAK,QAAQ;AAAA;AAAA;AAAA,gBAI7BjK,gBAAmB9D,EAAK,wBAAwB,CAAC;AAAA;AAAA,oBAEzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYlB;AACF;AAhDqB8N,GAOZ,SAAS9J,EAAUC,EAAM;AANpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADS2J,GACP,WAAA,QAAA,CAAA;AACA5J,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFS2J,GAEP,WAAA,UAAA,CAAA;AACA5J,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHS2J,GAGP,WAAA,OAAA,CAAA;AACiB5J,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJR2J,GAIU,WAAA,YAAA,CAAA;AACA5J,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GALR2J,GAKU,WAAA,YAAA,CAAA;AALVA,KAArB5J,GAAA;AAAA,EADCE,EAAc,wBAAwB;AAAA,GAClB0J,EAAA;;;;;;;ACHA,IAAAE,KAArB,cAA6CzK,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GAIsC,KAAA,QAAA,IACI,KAAA,WAAA,IACF,KAAA,SAAA;AAAA,EAAA;AAAA,EAE9B,iBAAiB;AAKjB,UAAA0K,IAJY,KAAK,cAAc,iBAAiB;AAAA,MACpD,SAAS;AAAA,IAAA,CACV,EAAE,CAAC,EAEoB,UAAU,EAAI;AACtC,WAAAA,EAAM,OAAO,aAENA;AAAA,EACT;AAAA,EAEQ,mBAAyB;AAC/B,UAAMC,IAAQ,MAAM;AAAA,MAClB,KAAK,YAAY,iBAAiB,EAAE,SAAS,IAAM;AAAA,IAAA,EACnD;AAAA,MACA,CAACC,MAAkCA,aAAcL;AAAA,IAAA;AAG7C,IAAAI,EAAA,QAAQ,CAACE,GAAMpI,MAAU;AACvB,YAAAqI,IAASrI,MAAUkI,EAAM,SAAS;AAExC,UAAI,KAAK,UAAUlI,MAAU,KAAK,CAACqI,GAAQ;AACzC,QAAAD,EAAK,OAAO;AACZ;AAAA,MACF;AAEK,MAAAA,EAAA,gBAAgB,YAAY,KAAK,QAAQ,GAC1CC,KACGD,EAAA,aAAa,gBAAgB,MAAM,GAErCA,EAAA,gBAAgB,YAAYC,CAAM;AAEjC,YAAAC,IAAYF,EAAK,cAAc,oBAAoB;AACrD,MAAA,CAACC,KAAU,CAACC,KACTF,EAAA,OAAO,KAAK,eAAgB,CAAA;AAAA,IACnC,CACD;AAAA,EACH;AAAA,EAEA,SAAS;AACA,WAAAtK;AAAAA;AAAAA;AAAAA,sBAGWiK,EAAU,KAAK,SAAS,KAAK,EAAE;AAAA,iBACpC/N,EAAK,YAAY,CAAC;AAAA;AAAA,+BAEJ,KAAK,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlD;AAAA,EAEA,gBAAgB;AACR,UAAAuO,IAAmB,iBAAiB,SAAS,eAAe,EAC/D,iBAAiB,yBAAyB,EAC1C;AAMI,WAJc,OAAO;AAAA,MAC1B,eAAeA,CAAgB;AAAA,IAC/B,EAAA;AAAA,EAGJ;AACF;AA1EqBP,GACZ,SAAShK,EAAUC,EAAM;AACjBC,GAAA;AAAA,EAAdsK,GAAM,MAAM;AAAA,GAFMR,GAEJ,WAAA,eAAA,CAAA;AACkB9J,GAAA;AAAA,EAAhCsK,GAAM,wBAAwB;AAAA,GAHZR,GAGc,WAAA,iBAAA,CAAA;AACL9J,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAJP6J,GAIS,WAAA,SAAA,CAAA;AACC9J,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GALR6J,GAKU,WAAA,YAAA,CAAA;AACA9J,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR6J,GAMU,WAAA,UAAA,CAAA;AANVA,KAArB9J,GAAA;AAAA,EADCE,EAAc,mBAAmB;AAAA,GACb4J,EAAA;;;;;;ACVd,SAASS,GACdC,GAC4C;AAAA,EAC5C,MAAMC,UAAyBD,EAAY;AAAA,IAA3C,cAAA;AAAA,YAAA,GAAA,SAAA,GAEE,KAAO,WAAW,IAElB,KAAgB,YAAY;AAAA,IAAA;AAAA,IAE5B,IAAI,eAAmC;AAC/B,YAAA,IAAI,MAAM,qCAAqC;AAAA,IACvD;AAAA,IAEgB,MAAM/K,GAA8B;AAClD,MAAI,KAAK,YAAY,CAAC,KAAK,iBAIvB,KAAK,iBAAiB,OACnB,KAAA,aAAa,MAAMA,CAAO,IAE/B,YAAY,UAAU,MAAM,MAAM,MAAM,CAACA,CAAO,CAAC;AAAA,IAErD;AAAA,IAEgB,OAAa;AACrB,YAAAiL,IAAe,KAAK,gBAAgB;AAC1C,MAAIA,MAAiB,OACnBA,EAAa,KAAK,IAEN,YAAA,UAAU,KAAK,MAAM,IAAI;AAAA,IAEzC;AAAA,IAEgB,QAAc;AAC5B,UAAI,KAAK;AACP;AAGI,YAAAA,IAAe,KAAK,gBAAgB;AAC1C,MAAIA,MAAiB,OACnBA,EAAa,MAAM,IAEP,YAAA,UAAU,MAAM,MAAM,IAAI;AAAA,IAE1C;AAAA,EACF;AAzCS1K,SAAAA,GAAA;AAAA,IADNC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GADtCwK,EAEG,WAAA,UAAA,GAESzK,GAAA;AAAA,IADfC,EAAS,EAAE,MAAM,SAAS;AAAA,EAAA,GAHvBwK,EAIY,WAAA,WAAA,GAyCXA;AACT;;;;;;ACzDA,MAAME,KAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAkCO,SAASC,GACdJ,GACuC;AAAA,EACvC,MAAMK,UAAoBL,EAAY;AAAA,IA0BpC,eAAeM,GAAa;AAC1B,YAAM,GAAGA,CAAI,GAzBqB,KAAA,OAAA,IAGmB,KAAA,WAAA,IAErD,KAAA,WAAA,IACqD,KAAA,WAAA,IACjB,KAAA,SAAA,IACgB,KAAA,UAAA,IAMtD,KAAO,cAAkD,MAYlD,KAAA,YAAY,KAAK;IACxB;AAAA,IAXA,IAAW,aAAa;AACtB,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,WAAW,iBAAiB;AACnB,aAAA;AAAA,IACT;AAAA,IAOA,oBAAoB;AAClB,YAAM,kBAAkB,GACnB,KAAA,cAAc,KAAK,QAAQ,MAAM,GACjC,KAAK,iBACR,KAAK,eAAe,KAAK;AAAA,IAE7B;AAAA,IAEA,yBAAyBvL,GAAcwL,GAAeC,GAAe;AAEnE,UADM,MAAA,yBAAyBzL,GAAMwL,GAAUC,CAAQ,GACnDL,GAAkB,SAASpL,CAAI,KAAKyL,MAAaD;AACnD,gBAAQxL,GAAM;AAAA,UACZ,KAAK;AACC,YAAA,KAAK,aAAa,mBACf,KAAA,UAAU,aAAayL,CAAQ;AAEtC;AAAA,UACF,KAAK;AACH,iBAAK,UAAU,aAAaA,MAAa,OAAO,OAAO,IAAI;AAAA,QAC/D;AAAA,IAEJ;AAAA,IAEA,UAAU;AACR,WAAK,KAAK,aAAa,EAAE,OAAO,KAAK,OAAO,OAAO;AAAA,IACrD;AAAA,IAEA,SAAS;AACP,WAAK,KAAK,UAAU;AAAA,IACtB;AAAA,IAEA,UAAU;AACR,WAAK,KAAK,WAAW;AAAA,IACvB;AAAA,IAEA,WAAW;AACT,WAAK,KAAK,cAAc,EAAE,OAAO,KAAK,OAAO,OAAO;AAAA,IACtD;AAAA,IAEA,UAAUtL,GAAsB;AACzB,WAAA,KAAK,eAAe,EAAE,OAAO,KAAK,OAAO,OAAO,OAAAA,GAAO;AAAA,IAC9D;AAAA,IAEA,cAAcA,GAAc;AAC1B,MAAI,KAAK,UACPA,EAAM,eAAe;AAAA,IAEzB;AAAA,IAEA,IAAI,eAAe;AACjB,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,MAAgB,aACdwH,GACA;AACA,WAAK,SAAS,KAAK,YAAY,eAAe,OAAO,GAEjD,KAAK,aAAa,oBACf,KAAA,UAAU,aAAa,KAAK,KAAK,GACtC,KAAK,YAAY;AAAA,IAErB;AAAA,IAEA,cAAc;AACZ,MAAI,KAAK,WACF,KAAK,OAAO,kBAOV,KAAA,UAAU,YAAY,CAAA,CAAE,IAN7B,KAAK,UAAU;AAAA,QACb,KAAK,OAAO;AAAA,QACZ,KAAK,OAAO;AAAA,QACZ,KAAK;AAAA,MAAA;AAAA,IAMb;AAAA,IAEA,IAAI,WAAW;AACb,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IAEA,IAAI,oBAAoB;AACtB,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IAEA,IAAI,eAAe;AACjB,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IAEA,gBAAgB;AACP,aAAA,KAAK,OAAO;IACrB;AAAA,IAEA,iBAAiB;AACR,aAAA,KAAK,OAAO;IACrB;AAAA,EACF;AA9H+BlH,SAAAA,GAAA;AAAA,IAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,EAAA,GAFvB4K,EAEyB,WAAA,MAAA,GACjB7K,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GAHN4K,EAGQ,WAAA,cAAA,GACiB7K,GAAA;AAAA,IAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,EAAA,GAJvB4K,EAIyB,WAAA,MAAA,GACe7K,GAAA;AAAA,IAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GALtC4K,EAKwC,WAAA,UAAA,GACiB7K,GAAA;AAAA,IAA5DC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM,WAAW,IAAM;AAAA,EAAA,GANvD4K,EAMyD,WAAA,UAAA,GAEjB7K,GAAA;AAAA,IAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GARtC4K,EAQwC,WAAA,UAAA,GACf7K,GAAA;AAAA,IAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,EAAA,GATvB4K,EASyB,WAAA,QAAA,GACe7K,GAAA;AAAA,IAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GAVtC4K,EAUwC,WAAA,SAAA,GACf7K,GAAA;AAAA,IAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,EAAA,GAXvB4K,EAWyB,WAAA,QAAA,GAEiB7K,GAAA;AAAA,IAA7CC,EAAS,EAAE,WAAW,IAAM,SAAS,IAAM;AAAA,EAAA,GAbxC4K,EAa0C,WAAA,OAAA,GAEd7K,GAAA;AAAA,IAA/BC,EAAS,EAAE,WAAW,IAAO;AAAA,EAAA,GAf1B4K,EAe4B,WAAA,WAAA,GAmH3BA;AACT;;;;;;;ACrLA,GAAC,SAASlP,GAAED,GAAE;AAAsD,IAAAuP,YAAevP,EAAmH;AAAA,EAAA,GAAEwP,IAAM,WAAU;AAAc,QAAIvP,IAAE,KAAID,IAAE,KAAIO,IAAE,MAAKR,IAAE,eAAcS,IAAE,UAASH,IAAE,UAASW,IAAE,QAAOJ,IAAE,OAAMT,IAAE,QAAOO,IAAE,SAAQR,IAAE,WAAUS,IAAE,QAAOI,IAAE,QAAOF,IAAE,gBAAea,IAAE,8FAA6FT,IAAE,uFAAsFgB,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAAShC,GAAE;AAAC,UAAID,IAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEO,IAAEN,IAAE;AAAI,aAAM,MAAIA,KAAGD,GAAGO,IAAE,MAAI,EAAE,KAAGP,EAAEO,CAAC,KAAGP,EAAE,CAAC,KAAG;AAAA,IAAG,EAAC,GAAEoB,IAAE,SAASnB,GAAED,GAAEO,GAAE;AAAC,UAAIR,IAAE,OAAOE,CAAC;AAAE,aAAM,CAACF,KAAGA,EAAE,UAAQC,IAAEC,IAAE,KAAG,MAAMD,IAAE,IAAED,EAAE,MAAM,EAAE,KAAKQ,CAAC,IAAEN;AAAA,IAAC,GAAEkB,IAAE,EAAC,GAAEC,GAAE,GAAE,SAASnB,GAAE;AAAC,UAAID,IAAE,CAACC,EAAE,UAAS,GAAGM,IAAE,KAAK,IAAIP,CAAC,GAAED,IAAE,KAAK,MAAMQ,IAAE,EAAE,GAAEC,IAAED,IAAE;AAAG,cAAOP,KAAG,IAAE,MAAI,OAAKoB,EAAErB,GAAE,GAAE,GAAG,IAAE,MAAIqB,EAAEZ,GAAE,GAAE,GAAG;AAAA,IAAC,GAAE,GAAE,SAASP,EAAED,GAAEO,GAAE;AAAC,UAAGP,EAAE,KAAM,IAACO,EAAE,KAAM;AAAC,eAAM,CAACN,EAAEM,GAAEP,CAAC;AAAE,UAAID,IAAE,MAAIQ,EAAE,KAAM,IAACP,EAAE,KAAI,MAAKO,EAAE,MAAK,IAAGP,EAAE,MAAK,IAAIQ,IAAER,EAAE,MAAK,EAAG,IAAID,GAAEW,CAAC,GAAEL,IAAEE,IAAEC,IAAE,GAAEQ,IAAEhB,EAAE,MAAO,EAAC,IAAID,KAAGM,IAAE,KAAG,IAAGK,CAAC;AAAE,aAAM,EAAE,EAAEX,KAAGQ,IAAEC,MAAIH,IAAEG,IAAEQ,IAAEA,IAAER,OAAK;AAAA,IAAE,GAAE,GAAE,SAASP,GAAE;AAAC,aAAOA,IAAE,IAAE,KAAK,KAAKA,CAAC,KAAG,IAAE,KAAK,MAAMA,CAAC;AAAA,IAAC,GAAE,GAAE,SAASA,GAAE;AAAC,aAAM,EAAC,GAAES,GAAE,GAAEC,GAAE,GAAER,GAAE,GAAES,GAAE,GAAEG,GAAE,GAAEC,GAAE,GAAEX,GAAE,GAAEG,GAAE,IAAGT,GAAE,GAAEG,EAAC,EAAED,CAAC,KAAG,OAAOA,KAAG,EAAE,EAAE,YAAa,EAAC,QAAQ,MAAK,EAAE;AAAA,IAAC,GAAE,GAAE,SAASA,GAAE;AAAC,aAAgBA,MAAT;AAAA,IAAU,EAAC,GAAEwB,IAAE,MAAKY,IAAE,CAAE;AAAC,IAAAA,EAAEZ,CAAC,IAAEQ;AAAE,QAAInB,IAAE,kBAAiBL,IAAE,SAASR,GAAE;AAAC,aAAOA,aAAaoB,MAAG,EAAE,CAACpB,KAAG,CAACA,EAAEa,CAAC;AAAA,IAAE,GAAEQ,KAAE,SAASrB,EAAED,GAAEO,GAAER,GAAE;AAAC,UAAIS;AAAE,UAAG,CAACR;AAAE,eAAOyB;AAAE,UAAa,OAAOzB,KAAjB,UAAmB;AAAC,YAAIK,IAAEL,EAAE,YAAa;AAAC,QAAAqC,EAAEhC,CAAC,MAAIG,IAAEH,IAAGE,MAAI8B,EAAEhC,CAAC,IAAEE,GAAEC,IAAEH;AAAG,YAAIW,IAAEhB,EAAE,MAAM,GAAG;AAAE,YAAG,CAACQ,KAAGQ,EAAE,SAAO;AAAE,iBAAOf,EAAEe,EAAE,CAAC,CAAC;AAAA,MAAC,OAAK;AAAC,YAAIJ,IAAEZ,EAAE;AAAK,QAAAqC,EAAEzB,CAAC,IAAEZ,GAAEQ,IAAEI;AAAA,MAAC;AAAC,aAAM,CAACb,KAAGS,MAAIiB,IAAEjB,IAAGA,KAAG,CAACT,KAAG0B;AAAA,IAAC,GAAEM,IAAE,SAAS9B,GAAED,GAAE;AAAC,UAAGS,EAAER,CAAC;AAAE,eAAOA,EAAE,MAAO;AAAC,UAAIM,IAAY,OAAOP,KAAjB,WAAmBA,IAAE;AAAG,aAAOO,EAAE,OAAKN,GAAEM,EAAE,OAAK,WAAU,IAAIc,GAAEd,CAAC;AAAA,IAAC,GAAEW,IAAEC;AAAE,IAAAD,EAAE,IAAEI,IAAEJ,EAAE,IAAET,GAAES,EAAE,IAAE,SAASjB,GAAED,GAAE;AAAC,aAAO+B,EAAE9B,GAAE,EAAC,QAAOD,EAAE,IAAG,KAAIA,EAAE,IAAG,GAAEA,EAAE,IAAG,SAAQA,EAAE,QAAO,CAAC;AAAA,IAAC;AAAE,QAAIqB,KAAE,WAAU;AAAC,eAASY,EAAEhC,GAAE;AAAC,aAAK,KAAGqB,GAAErB,EAAE,QAAO,MAAK,EAAE,GAAE,KAAK,MAAMA,CAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,EAAE,KAAG,CAAA,GAAG,KAAKa,CAAC,IAAE;AAAA,MAAE;AAAC,UAAIM,IAAEa,EAAE;AAAU,aAAOb,EAAE,QAAM,SAASnB,GAAE;AAAC,aAAK,KAAG,SAASA,GAAE;AAAC,cAAID,IAAEC,EAAE,MAAKM,IAAEN,EAAE;AAAI,cAAUD,MAAP;AAAS,mBAAO,oBAAI,KAAK,GAAG;AAAE,cAAGkB,EAAE,EAAElB,CAAC;AAAE,mBAAO,oBAAI;AAAK,cAAGA,aAAa;AAAK,mBAAO,IAAI,KAAKA,CAAC;AAAE,cAAa,OAAOA,KAAjB,YAAoB,CAAC,MAAM,KAAKA,CAAC,GAAE;AAAC,gBAAID,IAAEC,EAAE,MAAM0B,CAAC;AAAE,gBAAG3B,GAAE;AAAC,kBAAIS,IAAET,EAAE,CAAC,IAAE,KAAG,GAAEM,KAAGN,EAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,qBAAOQ,IAAE,IAAI,KAAK,KAAK,IAAIR,EAAE,CAAC,GAAES,GAAET,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEM,CAAC,CAAC,IAAE,IAAI,KAAKN,EAAE,CAAC,GAAES,GAAET,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEM,CAAC;AAAA,YAAC;AAAA,UAAC;AAAC,iBAAO,IAAI,KAAKL,CAAC;AAAA,QAAC,EAAEC,CAAC,GAAE,KAAK,KAAM;AAAA,MAAA,GAAEmB,EAAE,OAAK,WAAU;AAAC,YAAInB,IAAE,KAAK;AAAG,aAAK,KAAGA,EAAE,eAAc,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,QAAO,GAAG,KAAK,KAAGA,EAAE,UAAS,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,WAAY,GAAC,KAAK,KAAGA,EAAE,WAAY,GAAC,KAAK,MAAIA,EAAE;MAAiB,GAAEmB,EAAE,SAAO,WAAU;AAAC,eAAOF;AAAA,MAAC,GAAEE,EAAE,UAAQ,WAAU;AAAC,eAAQ,KAAK,GAAG,eAAaP;AAAA,MAAE,GAAEO,EAAE,SAAO,SAASnB,GAAED,GAAE;AAAC,YAAIO,IAAEwB,EAAE9B,CAAC;AAAE,eAAO,KAAK,QAAQD,CAAC,KAAGO,KAAGA,KAAG,KAAK,MAAMP,CAAC;AAAA,MAAC,GAAEoB,EAAE,UAAQ,SAASnB,GAAED,GAAE;AAAC,eAAO+B,EAAE9B,CAAC,IAAE,KAAK,QAAQD,CAAC;AAAA,MAAC,GAAEoB,EAAE,WAAS,SAASnB,GAAED,GAAE;AAAC,eAAO,KAAK,MAAMA,CAAC,IAAE+B,EAAE9B,CAAC;AAAA,MAAC,GAAEmB,EAAE,KAAG,SAASnB,GAAED,GAAEO,GAAE;AAAC,eAAOW,EAAE,EAAEjB,CAAC,IAAE,KAAKD,CAAC,IAAE,KAAK,IAAIO,GAAEN,CAAC;AAAA,MAAC,GAAEmB,EAAE,OAAK,WAAU;AAAC,eAAO,KAAK,MAAM,KAAK,QAAO,IAAG,GAAG;AAAA,MAAC,GAAEA,EAAE,UAAQ,WAAU;AAAC,eAAO,KAAK,GAAG,QAAS;AAAA,MAAA,GAAEA,EAAE,UAAQ,SAASnB,GAAED,GAAE;AAAC,YAAIO,IAAE,MAAKR,IAAE,CAAC,CAACmB,EAAE,EAAElB,CAAC,KAAGA,GAAEE,IAAEgB,EAAE,EAAEjB,CAAC,GAAEY,IAAE,SAASZ,IAAED,IAAE;AAAC,cAAIQ,KAAEU,EAAE,EAAEX,EAAE,KAAG,KAAK,IAAIA,EAAE,IAAGP,IAAEC,EAAC,IAAE,IAAI,KAAKM,EAAE,IAAGP,IAAEC,EAAC,GAAEM,CAAC;AAAE,iBAAOR,IAAES,KAAEA,GAAE,MAAMI,CAAC;AAAA,QAAC,GAAEc,IAAE,SAASzB,IAAED,IAAE;AAAC,iBAAOkB,EAAE,EAAEX,EAAE,OAAM,EAAGN,EAAC,EAAE,MAAMM,EAAE,OAAO,GAAG,IAAGR,IAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMC,EAAC,CAAC,GAAEO,CAAC;AAAA,QAAC,GAAEU,KAAE,KAAK,IAAGgB,KAAE,KAAK,IAAGb,KAAE,KAAK,IAAGD,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,gBAAOjB;UAAG,KAAKS;AAAE,mBAAOZ,IAAEc,EAAE,GAAE,CAAC,IAAEA,EAAE,IAAG,EAAE;AAAA,UAAE,KAAKH;AAAE,mBAAOX,IAAEc,EAAE,GAAEoB,EAAC,IAAEpB,EAAE,GAAEoB,KAAE,CAAC;AAAA,UAAE,KAAK9B;AAAE,gBAAIsB,KAAE,KAAK,UAAU,aAAW,GAAEY,MAAGpB,KAAEQ,KAAER,KAAE,IAAEA,MAAGQ;AAAE,mBAAOZ,EAAEd,IAAEqB,KAAEiB,KAAEjB,MAAG,IAAEiB,KAAGJ,EAAC;AAAA,UAAE,KAAKrB;AAAA,UAAE,KAAKG;AAAE,mBAAOW,EAAEP,KAAE,SAAQ,CAAC;AAAA,UAAE,KAAKH;AAAE,mBAAOU,EAAEP,KAAE,WAAU,CAAC;AAAA,UAAE,KAAKd;AAAE,mBAAOqB,EAAEP,KAAE,WAAU,CAAC;AAAA,UAAE,KAAKX;AAAE,mBAAOkB,EAAEP,KAAE,gBAAe,CAAC;AAAA,UAAE;AAAQ,mBAAO,KAAK,MAAO;AAAA,QAAA;AAAA,MAAC,GAAEC,EAAE,QAAM,SAASnB,GAAE;AAAC,eAAO,KAAK,QAAQA,GAAE,EAAE;AAAA,MAAC,GAAEmB,EAAE,OAAK,SAASnB,GAAED,GAAE;AAAC,YAAIO,GAAEJ,IAAEe,EAAE,EAAEjB,CAAC,GAAEC,IAAE,SAAO,KAAK,KAAG,QAAM,KAAIW,KAAGN,IAAE,CAAA,GAAGA,EAAEK,CAAC,IAAEV,IAAE,QAAOK,EAAEQ,CAAC,IAAEb,IAAE,QAAOK,EAAEG,CAAC,IAAER,IAAE,SAAQK,EAAEI,CAAC,IAAET,IAAE,YAAWK,EAAES,CAAC,IAAEd,IAAE,SAAQK,EAAEF,CAAC,IAAEH,IAAE,WAAUK,EAAEC,CAAC,IAAEN,IAAE,WAAUK,EAAER,CAAC,IAAEG,IAAE,gBAAeK,GAAGJ,CAAC,GAAEuB,IAAEvB,MAAIS,IAAE,KAAK,MAAIZ,IAAE,KAAK,MAAIA;AAAE,YAAGG,MAAIO,KAAGP,MAAIQ,GAAE;AAAC,cAAIM,KAAE,KAAK,QAAQ,IAAIF,GAAE,CAAC;AAAE,UAAAE,GAAE,GAAGJ,CAAC,EAAEa,CAAC,GAAET,GAAE,KAAI,GAAG,KAAK,KAAGA,GAAE,IAAIF,GAAE,KAAK,IAAI,KAAK,IAAGE,GAAE,YAAW,CAAE,CAAC,EAAE;AAAA,QAAE;AAAM,UAAAJ,KAAG,KAAK,GAAGA,CAAC,EAAEa,CAAC;AAAE,eAAO,KAAK,KAAM,GAAC;AAAA,MAAI,GAAEN,EAAE,MAAI,SAASnB,GAAED,GAAE;AAAC,eAAO,KAAK,MAAO,EAAC,KAAKC,GAAED,CAAC;AAAA,MAAC,GAAEoB,EAAE,MAAI,SAASnB,GAAE;AAAC,eAAO,KAAKiB,EAAE,EAAEjB,CAAC,CAAC;MAAG,GAAEmB,EAAE,MAAI,SAASrB,GAAEG,GAAE;AAAC,YAAIa,GAAEF,IAAE;AAAK,QAAAd,IAAE,OAAOA,CAAC;AAAE,YAAI2B,IAAER,EAAE,EAAEhB,CAAC,GAAEe,IAAE,SAAShB,IAAE;AAAC,cAAID,KAAE+B,EAAElB,CAAC;AAAE,iBAAOK,EAAE,EAAElB,GAAE,KAAKA,GAAE,KAAM,IAAC,KAAK,MAAMC,KAAEF,CAAC,CAAC,GAAEc,CAAC;AAAA,QAAC;AAAE,YAAGa,MAAIhB;AAAE,iBAAO,KAAK,IAAIA,GAAE,KAAK,KAAGX,CAAC;AAAE,YAAG2B,MAAIf;AAAE,iBAAO,KAAK,IAAIA,GAAE,KAAK,KAAGZ,CAAC;AAAE,YAAG2B,MAAId;AAAE,iBAAOK,EAAE,CAAC;AAAE,YAAGS,MAAIvB;AAAE,iBAAOc,EAAE,CAAC;AAAE,YAAIgB,KAAGlB,IAAE,CAAE,GAACA,EAAEV,CAAC,IAAEL,GAAEe,EAAEC,CAAC,IAAET,GAAEQ,EAAEP,CAAC,IAAEP,GAAEc,GAAGW,CAAC,KAAG,GAAEN,KAAE,KAAK,GAAG,QAAS,IAACrB,IAAEkC;AAAE,eAAOf,EAAE,EAAEE,IAAE,IAAI;AAAA,MAAC,GAAEA,EAAE,WAAS,SAASnB,GAAED,GAAE;AAAC,eAAO,KAAK,IAAI,KAAGC,GAAED,CAAC;AAAA,MAAC,GAAEoB,EAAE,SAAO,SAASnB,GAAE;AAAC,YAAID,IAAE,MAAKO,IAAE,KAAK,QAAO;AAAG,YAAG,CAAC,KAAK,QAAO;AAAG,iBAAOA,EAAE,eAAaM;AAAE,YAAId,IAAEE,KAAG,wBAAuBO,IAAEU,EAAE,EAAE,IAAI,GAAEb,IAAE,KAAK,IAAGW,IAAE,KAAK,IAAGJ,KAAE,KAAK,IAAGT,KAAEI,EAAE,UAASG,KAAEH,EAAE,QAAOL,KAAEK,EAAE,UAASI,KAAE,SAASV,IAAEM,IAAEC,IAAEH,IAAE;AAAC,iBAAOJ,OAAIA,GAAEM,EAAC,KAAGN,GAAED,GAAED,CAAC,MAAIS,GAAED,EAAC,EAAE,MAAM,GAAEF,EAAC;AAAA,QAAC,GAAEU,KAAE,SAASd,IAAE;AAAC,iBAAOiB,EAAE,EAAEb,IAAE,MAAI,IAAGJ,IAAE,GAAG;AAAA,QAAC,GAAEyB,KAAExB,MAAG,SAASD,IAAED,IAAEO,IAAE;AAAC,cAAIR,KAAEE,KAAE,KAAG,OAAK;AAAK,iBAAOM,KAAER,GAAE,YAAa,IAACA;AAAA,QAAC;AAAE,eAAOA,EAAE,QAAQkB,GAAG,SAAShB,IAAEF,IAAE;AAAC,iBAAOA,MAAG,SAASE,IAAE;AAAC,oBAAOA,IAAC;AAAA,cAAE,KAAI;AAAK,uBAAO,OAAOD,EAAE,EAAE,EAAE,MAAM,EAAE;AAAA,cAAE,KAAI;AAAO,uBAAOkB,EAAE,EAAElB,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOY,KAAE;AAAA,cAAE,KAAI;AAAK,uBAAOM,EAAE,EAAEN,KAAE,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAM,uBAAOD,GAAEJ,EAAE,aAAYK,IAAEF,IAAE,CAAC;AAAA,cAAE,KAAI;AAAO,uBAAOC,GAAED,IAAEE,EAAC;AAAA,cAAE,KAAI;AAAI,uBAAOZ,EAAE;AAAA,cAAG,KAAI;AAAK,uBAAOkB,EAAE,EAAElB,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOA,EAAE,EAAE;AAAA,cAAE,KAAI;AAAK,uBAAOW,GAAEJ,EAAE,aAAYP,EAAE,IAAGG,IAAE,CAAC;AAAA,cAAE,KAAI;AAAM,uBAAOQ,GAAEJ,EAAE,eAAcP,EAAE,IAAGG,IAAE,CAAC;AAAA,cAAE,KAAI;AAAO,uBAAOA,GAAEH,EAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOK,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAOa,EAAE,EAAEb,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOU,GAAE,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAOA,GAAE,CAAC;AAAA,cAAE,KAAI;AAAI,uBAAOW,GAAErB,GAAEW,GAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAOU,GAAErB,GAAEW,GAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOA,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAOE,EAAE,EAAEF,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOhB,EAAE,EAAE;AAAA,cAAE,KAAI;AAAK,uBAAOkB,EAAE,EAAElB,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAM,uBAAOkB,EAAE,EAAElB,EAAE,KAAI,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOQ;AAAA,YAAC;AAAC,mBAAO;AAAA,UAAI,EAAEP,EAAC,KAAGO,EAAE,QAAQ,KAAI,EAAE;AAAA,QAAC,CAAC;AAAA,MAAE,GAAEY,EAAE,YAAU,WAAU;AAAC,eAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAmB,IAAC,EAAE;AAAA,MAAC,GAAEA,EAAE,OAAK,SAASrB,GAAEgB,GAAEF,GAAE;AAAC,YAAIa,GAAET,IAAE,MAAKgB,IAAEf,EAAE,EAAEH,CAAC,GAAEK,IAAEW,EAAEhC,CAAC,GAAEoB,MAAGC,EAAE,UAAS,IAAG,KAAK,eAAapB,GAAEyB,KAAE,OAAKL,GAAEiB,KAAE,WAAU;AAAC,iBAAOnB,EAAE,EAAED,GAAEG,CAAC;AAAA,QAAC;AAAE,gBAAOa,GAAG;AAAA,UAAA,KAAKtB;AAAE,YAAAe,IAAEW,GAAC,IAAG;AAAG;AAAA,UAAM,KAAK3B;AAAE,YAAAgB,IAAEW;AAAI;AAAA,UAAM,KAAKnC;AAAE,YAAAwB,IAAEW,GAAC,IAAG;AAAE;AAAA,UAAM,KAAKlC;AAAE,YAAAuB,KAAGD,KAAEN,MAAG;AAAO;AAAA,UAAM,KAAKP;AAAE,YAAAc,KAAGD,KAAEN,MAAG;AAAM;AAAA,UAAM,KAAKH;AAAE,YAAAU,IAAED,KAAElB;AAAE;AAAA,UAAM,KAAKF;AAAE,YAAAqB,IAAED,KAAEzB;AAAE;AAAA,UAAM,KAAKQ;AAAE,YAAAkB,IAAED,KAAExB;AAAE;AAAA,UAAM;AAAQ,YAAAyB,IAAED;AAAA,QAAC;AAAC,eAAOZ,IAAEa,IAAER,EAAE,EAAEQ,CAAC;AAAA,MAAC,GAAEN,EAAE,cAAY,WAAU;AAAC,eAAO,KAAK,MAAMV,CAAC,EAAE;AAAA,MAAE,GAAEU,EAAE,UAAQ,WAAU;AAAC,eAAOiB,EAAE,KAAK,EAAE;AAAA,MAAC,GAAEjB,EAAE,SAAO,SAASnB,GAAED,GAAE;AAAC,YAAG,CAACC;AAAE,iBAAO,KAAK;AAAG,YAAIM,IAAE,KAAK,SAAQR,IAAEuB,GAAErB,GAAED,GAAE,EAAE;AAAE,eAAOD,MAAIQ,EAAE,KAAGR,IAAGQ;AAAA,MAAC,GAAEa,EAAE,QAAM,WAAU;AAAC,eAAOF,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,MAAC,GAAEE,EAAE,SAAO,WAAU;AAAC,eAAO,IAAI,KAAK,KAAK,SAAS;AAAA,MAAC,GAAEA,EAAE,SAAO,WAAU;AAAC,eAAO,KAAK,QAAS,IAAC,KAAK,gBAAc;AAAA,MAAI,GAAEA,EAAE,cAAY,WAAU;AAAC,eAAO,KAAK,GAAG,YAAa;AAAA,MAAA,GAAEA,EAAE,WAAS,WAAU;AAAC,eAAO,KAAK,GAAG,YAAa;AAAA,MAAA,GAAEa;AAAA,IAAC,KAAIH,KAAET,GAAE;AAAU,WAAOU,EAAE,YAAUD,IAAE,CAAC,CAAC,OAAM/B,CAAC,GAAE,CAAC,MAAKS,CAAC,GAAE,CAAC,MAAKH,CAAC,GAAE,CAAC,MAAKW,CAAC,GAAE,CAAC,MAAKJ,CAAC,GAAE,CAAC,MAAKF,CAAC,GAAE,CAAC,MAAKC,CAAC,GAAE,CAAC,MAAKI,CAAC,CAAC,EAAE,QAAS,SAASd,GAAE;AAAC,MAAA6B,GAAE7B,EAAE,CAAC,CAAC,IAAE,SAASD,GAAE;AAAC,eAAO,KAAK,GAAGA,GAAEC,EAAE,CAAC,GAAEA,EAAE,CAAC,CAAC;AAAA,MAAC;AAAA,IAAC,IAAI8B,EAAE,SAAO,SAAS9B,GAAED,GAAE;AAAC,aAAOC,EAAE,OAAKA,EAAED,GAAEqB,IAAEU,CAAC,GAAE9B,EAAE,KAAG,KAAI8B;AAAA,IAAC,GAAEA,EAAE,SAAOT,IAAES,EAAE,UAAQtB,GAAEsB,EAAE,OAAK,SAAS9B,GAAE;AAAC,aAAO8B,EAAE,MAAI9B,CAAC;AAAA,IAAC,GAAE8B,EAAE,KAAGM,EAAEZ,CAAC,GAAEM,EAAE,KAAGM,GAAEN,EAAE,IAAE,IAAGA;AAAA,EAAC,CAAC;;;;;ACAr/N,GAAC,SAAS/B,GAAE,GAAE;AAAsD,IAAAuP,EAAe,UAAA,EAAEE,EAAgB;AAAA,EAA4I,GAAED,IAAM,SAASxP,GAAE;AAAc,aAAS,EAAEA,GAAE;AAAC,aAAOA,KAAa,OAAOA,KAAjB,YAAoB,aAAYA,IAAEA,IAAE,EAAC,SAAQA,EAAC;AAAA,IAAC;AAAC,QAAIC,IAAE,EAAED,CAAC,GAAED,IAAE,EAAC,MAAK,MAAK,UAAS,sDAAsD,MAAM,GAAG,GAAE,eAAc,gCAAgC,MAAM,GAAG,GAAE,aAAY,qBAAqB,MAAM,GAAG,GAAE,QAAO,oGAAoG,MAAM,GAAG,GAAE,aAAY,qDAAqD,MAAM,GAAG,GAAE,SAAQ,SAASC,GAAE;AAAC,aAAOA,IAAE;AAAA,IAAG,GAAE,WAAU,GAAE,cAAa,EAAC,QAAO,YAAW,MAAK,MAAK,GAAE,SAASA,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAM,sBAAoBA,KAAGQ,IAAE,KAAG;AAAA,IAAI,GAAE,GAAE,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAM,cAAYA,KAAGQ,IAAE,KAAG;AAAA,IAAI,GAAE,IAAG,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAOC,IAAE,WAASD,KAAGQ,IAAE,KAAG;AAAA,IAAI,GAAE,GAAE,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAM,UAAQA,KAAGQ,IAAE,QAAM;AAAA,IAAQ,GAAE,IAAG,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAOC,IAAE,OAAKD,KAAGQ,IAAE,QAAM;AAAA,IAAQ,GAAE,GAAE,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAM,UAAQA,KAAGQ,IAAE,QAAM;AAAA,IAAQ,GAAE,IAAG,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAOC,IAAE,OAAKD,KAAGQ,IAAE,QAAM;AAAA,IAAQ,GAAE,GAAE,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAM,UAAQA,KAAGQ,IAAE,UAAQ;AAAA,IAAU,GAAE,IAAG,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAOC,IAAE,OAAKD,KAAGQ,IAAE,UAAQ;AAAA,IAAU,GAAE,GAAE,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAM,UAAQA,KAAGQ,IAAE,OAAK;AAAA,IAAM,GAAE,IAAG,SAASP,GAAEO,GAAEN,GAAEF,GAAE;AAAC,aAAOC,IAAE,OAAKD,KAAGQ,IAAE,OAAK;AAAA,IAAM,EAAC,GAAE,SAAQ,EAAC,IAAG,QAAO,KAAI,WAAU,GAAE,eAAc,IAAG,iBAAgB,KAAI,sBAAqB,MAAK,2BAA0B,EAAC;AAAE,WAAON,EAAE,QAAQ,OAAOF,GAAE,MAAK,EAAE,GAAEA;AAAA,EAAC,CAAC;;;;ACAnkD,GAAC,SAASC,GAAE,GAAE;AAAsD,IAAAuP,EAAA,UAAe,EAAC;AAAA,EAA4H,GAAEC,IAAM,WAAU;AAAc,WAAM,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASxP,GAAE;AAAC,UAAI,IAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEC,IAAED,IAAE;AAAI,aAAM,MAAIA,KAAG,GAAGC,IAAE,MAAI,EAAE,KAAG,EAAEA,CAAC,KAAG,EAAE,CAAC,KAAG;AAAA,IAAG,EAAC;AAAA,EAAC,CAAC;;;;ACA/hB,GAAC,SAASM,GAAEP,GAAE;AAAsD,IAAAuP,YAAevP,EAAC;AAAA,EAAoI,GAAEwP,IAAM,WAAU;AAAc,WAAO,SAASjP,GAAEP,GAAEC,GAAE;AAAC,UAAIF,IAAEC,EAAE,WAAUG,IAAE,SAASI,GAAE;AAAC,eAAOA,MAAIA,EAAE,UAAQA,IAAEA,EAAE;AAAA,MAAE,GAAES,IAAE,SAAST,GAAEP,GAAEC,GAAEF,GAAEiB,GAAE;AAAC,YAAIR,IAAED,EAAE,OAAKA,IAAEA,EAAE,QAAO,GAAGK,IAAET,EAAEK,EAAER,CAAC,CAAC,GAAEK,IAAEF,EAAEK,EAAEP,CAAC,CAAC,GAAEC,IAAEU,KAAGP,EAAE,IAAK,SAASE,GAAE;AAAC,iBAAOA,EAAE,MAAM,GAAER,CAAC;AAAA,QAAC,CAAC;AAAG,YAAG,CAACiB;AAAE,iBAAOd;AAAE,YAAIa,IAAEP,EAAE;AAAU,eAAON,EAAE,IAAK,SAASK,GAAEP,GAAE;AAAC,iBAAOE,GAAGF,KAAGe,KAAG,MAAI,CAAC;AAAA,QAAC,CAAC;AAAA,MAAE,GAAEP,IAAE,WAAU;AAAC,eAAOP,EAAE,GAAGA,EAAE,OAAM,CAAE;AAAA,MAAC,GAAEW,IAAE,SAASL,GAAEP,GAAE;AAAC,eAAOO,EAAE,QAAQP,CAAC,KAAG,SAASO,GAAE;AAAC,iBAAOA,EAAE,QAAQ,kCAAkC,SAASA,GAAEP,GAAEC,GAAE;AAAC,mBAAOD,KAAGC,EAAE,MAAM,CAAC;AAAA,UAAC,CAAG;AAAA,QAAA,EAAEM,EAAE,QAAQP,EAAE,YAAW,CAAE,CAAC;AAAA,MAAC,GAAEK,IAAE,WAAU;AAAC,YAAIE,IAAE;AAAK,eAAM,EAAC,QAAO,SAASP,GAAE;AAAC,iBAAOA,IAAEA,EAAE,OAAO,MAAM,IAAEgB,EAAET,GAAE,QAAQ;AAAA,QAAC,GAAE,aAAY,SAASP,GAAE;AAAC,iBAAOA,IAAEA,EAAE,OAAO,KAAK,IAAEgB,EAAET,GAAE,eAAc,UAAS,CAAC;AAAA,QAAC,GAAE,gBAAe,WAAU;AAAC,iBAAOA,EAAE,QAAS,EAAC,aAAW;AAAA,QAAC,GAAE,UAAS,SAASP,GAAE;AAAC,iBAAOA,IAAEA,EAAE,OAAO,MAAM,IAAEgB,EAAET,GAAE,UAAU;AAAA,QAAC,GAAE,aAAY,SAASP,GAAE;AAAC,iBAAOA,IAAEA,EAAE,OAAO,IAAI,IAAEgB,EAAET,GAAE,eAAc,YAAW,CAAC;AAAA,QAAC,GAAE,eAAc,SAASP,GAAE;AAAC,iBAAOA,IAAEA,EAAE,OAAO,KAAK,IAAEgB,EAAET,GAAE,iBAAgB,YAAW,CAAC;AAAA,QAAC,GAAE,gBAAe,SAASP,GAAE;AAAC,iBAAOY,EAAEL,EAAE,QAAS,GAACP,CAAC;AAAA,QAAC,GAAE,UAAS,KAAK,QAAS,EAAC,UAAS,SAAQ,KAAK,UAAU,QAAO;AAAA,MAAC;AAAE,MAAAD,EAAE,aAAW,WAAU;AAAC,eAAOM,EAAE,KAAK,IAAI,EAAG;AAAA,MAAA,GAAEJ,EAAE,aAAW,WAAU;AAAC,YAAIM,IAAEC;AAAI,eAAM,EAAC,gBAAe,WAAU;AAAC,iBAAOD,EAAE,aAAW;AAAA,QAAC,GAAE,UAAS,WAAU;AAAC,iBAAON,EAAE;QAAU,GAAE,eAAc,WAAU;AAAC,iBAAOA,EAAE;QAAe,GAAE,aAAY,WAAU;AAAC,iBAAOA,EAAE,YAAa;AAAA,QAAA,GAAE,QAAO,WAAU;AAAC,iBAAOA,EAAE,OAAQ;AAAA,QAAA,GAAE,aAAY,WAAU;AAAC,iBAAOA,EAAE,YAAW;AAAA,QAAE,GAAE,gBAAe,SAASD,GAAE;AAAC,iBAAOY,EAAEL,GAAEP,CAAC;AAAA,QAAC,GAAE,UAASO,EAAE,UAAS,SAAQA,EAAE,QAAO;AAAA,MAAC,GAAEN,EAAE,SAAO,WAAU;AAAC,eAAOe,EAAER,EAAG,GAAC,QAAQ;AAAA,MAAC,GAAEP,EAAE,cAAY,WAAU;AAAC,eAAOe,EAAER,EAAG,GAAC,eAAc,UAAS,CAAC;AAAA,MAAC,GAAEP,EAAE,WAAS,SAASM,GAAE;AAAC,eAAOS,EAAER,EAAC,GAAG,YAAW,MAAK,MAAKD,CAAC;AAAA,MAAC,GAAEN,EAAE,gBAAc,SAASM,GAAE;AAAC,eAAOS,EAAER,EAAG,GAAC,iBAAgB,YAAW,GAAED,CAAC;AAAA,MAAC,GAAEN,EAAE,cAAY,SAASM,GAAE;AAAC,eAAOS,EAAER,EAAG,GAAC,eAAc,YAAW,GAAED,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;;;;;;ACA/hE,GAAC,SAASP,GAAEC,GAAE;AAAsD,IAAAsP,EAAA,UAAetP,EAA0I;AAAA,EAAA,GAAEuP,IAAM,WAAU;AAAc,QAAIxP,IAAE,EAAC,KAAI,aAAY,IAAG,UAAS,GAAE,cAAa,IAAG,gBAAe,KAAI,uBAAsB,MAAK,4BAA2B;AAAE,WAAO,SAASC,GAAEE,GAAEI,GAAE;AAAC,UAAI,IAAEJ,EAAE,WAAUK,IAAE,EAAE;AAAO,MAAAD,EAAE,GAAG,UAAQP,GAAE,EAAE,SAAO,SAASC,GAAE;AAAC,QAASA,MAAT,WAAaA,IAAE;AAAwB,YAAIE,IAAE,KAAK,QAAS,EAAC,SAAQI,IAAE,SAASN,GAAEE,GAAE;AAAC,iBAAOF,EAAE,QAAQ,qCAAqC,SAASA,GAAEM,GAAER,GAAE;AAAC,gBAAIS,IAAET,KAAGA,EAAE,YAAa;AAAC,mBAAOQ,KAAGJ,EAAEJ,CAAC,KAAGC,EAAED,CAAC,KAAGI,EAAEK,CAAC,EAAE,QAAQ,kCAAkC,SAASR,GAAEC,GAAEE,GAAE;AAAC,qBAAOF,KAAGE,EAAE,MAAM,CAAC;AAAA,YAAC,CAAC;AAAA,UAAE,CAAC;AAAA,QAAE,EAAEF,GAAWE,MAAT,SAAW,CAAE,IAACA,CAAC;AAAE,eAAOK,EAAE,KAAK,MAAKD,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC,CAAC;;;;;;ACApyB,GAAC,SAASP,GAAEC,GAAE;AAAsD,IAAAsP,EAAA,UAAetP,EAAkI;AAAA,EAAA,GAAEuP,IAAM,WAAU;AAAc,WAAO,SAASxP,GAAEC,GAAE;AAAC,MAAAA,EAAE,UAAU,UAAQ,SAASD,GAAE;AAAC,YAAIC,IAAE,KAAK,QAAO,EAAG,aAAW,GAAEO,IAAE,KAAK,IAAGD,KAAGC,IAAEP,IAAEO,IAAE,IAAEA,KAAGP;AAAE,eAAO,KAAK,OAAM,EAAG,EAAED,CAAC,IAAEO,IAAE,KAAK,SAASA,GAAE,KAAK,EAAE,IAAIP,GAAE,KAAK;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC,CAAC;;;mCCAla0P,KAAgB;AAAA,EACpB,MAAM;AAAA,EACN,IAAIN,GAAM;AACR,SAAK,OAAO,OAAOA,CAAI;AAAA,EACxB;AAAA,EACD,KAAKA,GAAM;AACT,SAAK,OAAO,QAAQA,CAAI;AAAA,EACzB;AAAA,EACD,MAAMA,GAAM;AACV,SAAK,OAAO,SAASA,CAAI;AAAA,EAC1B;AAAA,EACD,OAAOO,GAAMP,GAAM;AACjB,IAAI,WAAW,QAAQO,CAAI,KAAG,QAAQA,CAAI,EAAE,MAAM,SAASP,CAAI;AAAA,EAChE;AACH;AACA,MAAMQ,GAAO;AAAA,EACX,YAAYC,GAAgB;AAC1B,QAAI9L,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,SAAK,KAAK8L,GAAgB9L,CAAO;AAAA,EAClC;AAAA,EACD,KAAK8L,GAAgB;AACnB,QAAI9L,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,SAAK,SAASA,EAAQ,UAAU,YAChC,KAAK,SAAS8L,KAAkBH,IAChC,KAAK,UAAU3L,GACf,KAAK,QAAQA,EAAQ;AAAA,EACtB;AAAA,EACD,MAAM;AACJ,aAAS+L,IAAO,UAAU,QAAQV,IAAO,IAAI,MAAMU,CAAI,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AAC/E,MAAAX,EAAKW,CAAI,IAAI,UAAUA,CAAI;AAE7B,WAAO,KAAK,QAAQX,GAAM,OAAO,IAAI,EAAI;AAAA,EAC1C;AAAA,EACD,OAAO;AACL,aAASY,IAAQ,UAAU,QAAQZ,IAAO,IAAI,MAAMY,CAAK,GAAGC,IAAQ,GAAGA,IAAQD,GAAOC;AACpF,MAAAb,EAAKa,CAAK,IAAI,UAAUA,CAAK;AAE/B,WAAO,KAAK,QAAQb,GAAM,QAAQ,IAAI,EAAI;AAAA,EAC3C;AAAA,EACD,QAAQ;AACN,aAASc,IAAQ,UAAU,QAAQd,IAAO,IAAI,MAAMc,CAAK,GAAGC,IAAQ,GAAGA,IAAQD,GAAOC;AACpF,MAAAf,EAAKe,CAAK,IAAI,UAAUA,CAAK;AAE/B,WAAO,KAAK,QAAQf,GAAM,SAAS,EAAE;AAAA,EACtC;AAAA,EACD,YAAY;AACV,aAASgB,IAAQ,UAAU,QAAQhB,IAAO,IAAI,MAAMgB,CAAK,GAAGC,IAAQ,GAAGA,IAAQD,GAAOC;AACpF,MAAAjB,EAAKiB,CAAK,IAAI,UAAUA,CAAK;AAE/B,WAAO,KAAK,QAAQjB,GAAM,QAAQ,wBAAwB,EAAI;AAAA,EAC/D;AAAA,EACD,QAAQA,GAAMkB,GAAKC,GAAQC,GAAW;AACpC,WAAIA,KAAa,CAAC,KAAK,QAAc,QACjC,OAAOpB,EAAK,CAAC,KAAM,aAAUA,EAAK,CAAC,IAAI,GAAGmB,CAAM,GAAG,KAAK,MAAM,IAAInB,EAAK,CAAC,CAAC,KACtE,KAAK,OAAOkB,CAAG,EAAElB,CAAI;AAAA,EAC7B;AAAA,EACD,OAAOqB,GAAY;AACjB,WAAO,IAAIb,GAAO,KAAK,QAAQ;AAAA,MAE3B,QAAQ,GAAG,KAAK,MAAM,IAAIa,CAAU;AAAA,MAEtC,GAAG,KAAK;AAAA,IACd,CAAK;AAAA,EACF;AAAA,EACD,MAAM1M,GAAS;AACb,WAAAA,IAAUA,KAAW,KAAK,SAC1BA,EAAQ,SAASA,EAAQ,UAAU,KAAK,QACjC,IAAI6L,GAAO,KAAK,QAAQ7L,CAAO;AAAA,EACvC;AACH;AACA,IAAI2M,KAAa,IAAId;AAErB,MAAMe,GAAa;AAAA,EACjB,cAAc;AACZ,SAAK,YAAY;EAClB;AAAA,EACD,GAAGC,GAAQC,GAAU;AACnB,WAAAD,EAAO,MAAM,GAAG,EAAE,QAAQ,CAAA5M,MAAS;AACjC,MAAK,KAAK,UAAUA,CAAK,MAAG,KAAK,UAAUA,CAAK,IAAI,oBAAI;AACxD,YAAM8M,IAAe,KAAK,UAAU9M,CAAK,EAAE,IAAI6M,CAAQ,KAAK;AAC5D,WAAK,UAAU7M,CAAK,EAAE,IAAI6M,GAAUC,IAAe,CAAC;AAAA,IAC1D,CAAK,GACM;AAAA,EACR;AAAA,EACD,IAAI9M,GAAO6M,GAAU;AACnB,QAAK,KAAK,UAAU7M,CAAK,GACzB;AAAA,UAAI,CAAC6M,GAAU;AACb,eAAO,KAAK,UAAU7M,CAAK;AAC3B;AAAA,MACD;AACD,WAAK,UAAUA,CAAK,EAAE,OAAO6M,CAAQ;AAAA;AAAA,EACtC;AAAA,EACD,KAAK7M,GAAO;AACV,aAAS8L,IAAO,UAAU,QAAQV,IAAO,IAAI,MAAMU,IAAO,IAAIA,IAAO,IAAI,CAAC,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AAClG,MAAAX,EAAKW,IAAO,CAAC,IAAI,UAAUA,CAAI;AAEjC,IAAI,KAAK,UAAU/L,CAAK,KACP,MAAM,KAAK,KAAK,UAAUA,CAAK,EAAE,QAAO,CAAE,EAClD,QAAQ,CAAA+M,MAAQ;AACrB,UAAI,CAACC,GAAUC,CAAa,IAAIF;AAChC,eAASvQ,IAAI,GAAGA,IAAIyQ,GAAezQ;AACjC,QAAAwQ,EAAS,GAAG5B,CAAI;AAAA,IAE1B,CAAO,GAEC,KAAK,UAAU,GAAG,KACL,MAAM,KAAK,KAAK,UAAU,GAAG,EAAE,QAAO,CAAE,EAChD,QAAQ,CAAA8B,MAAS;AACtB,UAAI,CAACF,GAAUC,CAAa,IAAIC;AAChC,eAAS1Q,IAAI,GAAGA,IAAIyQ,GAAezQ;AACjC,QAAAwQ,EAAS,MAAMA,GAAU,CAAChN,GAAO,GAAGoL,CAAI,CAAC;AAAA,IAEnD,CAAO;AAAA,EAEJ;AACH;AAEA,SAAS+B,KAAQ;AACf,MAAI7E,GACA8E;AACJ,QAAMC,IAAU,IAAI,QAAQ,CAACC,GAASC,MAAW;AAC/C,IAAAjF,IAAMgF,GACNF,IAAMG;AAAA,EACV,CAAG;AACD,SAAAF,EAAQ,UAAU/E,GAClB+E,EAAQ,SAASD,GACVC;AACT;AACA,SAASG,GAAWxK,GAAQ;AAC1B,SAAIA,KAAU,OAAa,KACpB,KAAKA;AACd;AACA,SAASyK,GAAK7Q,GAAGP,GAAGJ,GAAG;AACrB,EAAAW,EAAE,QAAQ,CAAAQ,MAAK;AACb,IAAIf,EAAEe,CAAC,MAAGnB,EAAEmB,CAAC,IAAIf,EAAEe,CAAC;AAAA,EACxB,CAAG;AACH;AACA,MAAMsQ,KAA4B;AAClC,SAASC,GAAc3K,GAAQ4K,GAAMC,GAAO;AAC1C,WAASC,EAAS7K,GAAK;AACrB,WAAOA,KAAOA,EAAI,QAAQ,KAAK,IAAI,KAAKA,EAAI,QAAQyK,IAA2B,GAAG,IAAIzK;AAAA,EACvF;AACD,WAAS8K,IAAuB;AAC9B,WAAO,CAAC/K,KAAU,OAAOA,KAAW;AAAA,EACrC;AACD,QAAMgL,IAAQ,OAAOJ,KAAS,WAAWA,IAAOA,EAAK,MAAM,GAAG;AAC9D,MAAIK,IAAa;AACjB,SAAOA,IAAaD,EAAM,SAAS,KAAG;AACpC,QAAID,EAAoB;AAAI,aAAO;AACnC,UAAM9K,IAAM6K,EAASE,EAAMC,CAAU,CAAC;AACtC,IAAI,CAACjL,EAAOC,CAAG,KAAK4K,MAAO7K,EAAOC,CAAG,IAAI,IAAI4K,MACzC,OAAO,UAAU,eAAe,KAAK7K,GAAQC,CAAG,IAClDD,IAASA,EAAOC,CAAG,IAEnBD,IAAS,CAAA,GAEX,EAAEiL;AAAA,EACH;AACD,SAAIF,EAAoB,IAAW,KAC5B;AAAA,IACL,KAAK/K;AAAA,IACL,GAAG8K,EAASE,EAAMC,CAAU,CAAC;AAAA,EACjC;AACA;AACA,SAASC,GAAQlL,GAAQ4K,GAAMtC,GAAU;AACvC,QAAM;AAAA,IACJ,KAAA6C;AAAA,IACA,GAAArQ;AAAA,EACD,IAAG6P,GAAc3K,GAAQ4K,GAAM,MAAM;AACtC,MAAIO,MAAQ,UAAaP,EAAK,WAAW,GAAG;AAC1C,IAAAO,EAAIrQ,CAAC,IAAIwN;AACT;AAAA,EACD;AACD,MAAItP,IAAI4R,EAAKA,EAAK,SAAS,CAAC,GACxB9Q,IAAI8Q,EAAK,MAAM,GAAGA,EAAK,SAAS,CAAC,GACjCQ,IAAOT,GAAc3K,GAAQlG,GAAG,MAAM;AAC1C,SAAOsR,EAAK,QAAQ,UAAatR,EAAE;AACjC,IAAAd,IAAI,GAAGc,EAAEA,EAAE,SAAS,CAAC,CAAC,IAAId,CAAC,IAC3Bc,IAAIA,EAAE,MAAM,GAAGA,EAAE,SAAS,CAAC,GAC3BsR,IAAOT,GAAc3K,GAAQlG,GAAG,MAAM,GAClCsR,KAAQA,EAAK,OAAO,OAAOA,EAAK,IAAI,GAAGA,EAAK,CAAC,IAAIpS,CAAC,EAAE,IAAM,QAC5DoS,EAAK,MAAM;AAGf,EAAAA,EAAK,IAAI,GAAGA,EAAK,CAAC,IAAIpS,CAAC,EAAE,IAAIsP;AAC/B;AACA,SAAS+C,GAASrL,GAAQ4K,GAAMtC,GAAUgD,GAAQ;AAChD,QAAM;AAAA,IACJ,KAAAH;AAAA,IACA,GAAArQ;AAAA,EACD,IAAG6P,GAAc3K,GAAQ4K,GAAM,MAAM;AACtC,EAAAO,EAAIrQ,CAAC,IAAIqQ,EAAIrQ,CAAC,KAAK,CAAA,GAENqQ,EAAIrQ,CAAC,EAAE,KAAKwN,CAAQ;AACnC;AACA,SAASiD,GAAQvL,GAAQ4K,GAAM;AAC7B,QAAM;AAAA,IACJ,KAAAO;AAAA,IACA,GAAArQ;AAAA,EACJ,IAAM6P,GAAc3K,GAAQ4K,CAAI;AAC9B,MAAKO;AACL,WAAOA,EAAIrQ,CAAC;AACd;AACA,SAAS0Q,GAAoBC,GAAMC,GAAazL,GAAK;AACnD,QAAMnD,IAAQyO,GAAQE,GAAMxL,CAAG;AAC/B,SAAInD,MAAU,SACLA,IAEFyO,GAAQG,GAAazL,CAAG;AACjC;AACA,SAAS0L,GAAWC,GAAQC,GAAQC,GAAW;AAC7C,aAAWC,KAAQF;AACjB,IAAIE,MAAS,eAAeA,MAAS,kBAC/BA,KAAQH,IACN,OAAOA,EAAOG,CAAI,KAAM,YAAYH,EAAOG,CAAI,aAAa,UAAU,OAAOF,EAAOE,CAAI,KAAM,YAAYF,EAAOE,CAAI,aAAa,SAChID,MAAWF,EAAOG,CAAI,IAAIF,EAAOE,CAAI,KAEzCJ,GAAWC,EAAOG,CAAI,GAAGF,EAAOE,CAAI,GAAGD,CAAS,IAGlDF,EAAOG,CAAI,IAAIF,EAAOE,CAAI;AAIhC,SAAOH;AACT;AACA,SAASI,GAAYC,GAAK;AACxB,SAAOA,EAAI,QAAQ,uCAAuC,MAAM;AAClE;AACA,IAAIC,KAAa;AAAA,EACf,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AACA,SAASC,GAAOV,GAAM;AACpB,SAAI,OAAOA,KAAS,WACXA,EAAK,QAAQ,cAAc,CAAApS,MAAK6S,GAAW7S,CAAC,CAAC,IAE/CoS;AACT;AACA,MAAMW,GAAY;AAAA,EAChB,YAAYC,GAAU;AACpB,SAAK,WAAWA,GAChB,KAAK,YAAY,oBAAI,OACrB,KAAK,cAAc;EACpB;AAAA,EACD,UAAU/I,GAAS;AACjB,UAAMgJ,IAAkB,KAAK,UAAU,IAAIhJ,CAAO;AAClD,QAAIgJ,MAAoB;AACtB,aAAOA;AAET,UAAMC,IAAY,IAAI,OAAOjJ,CAAO;AACpC,WAAI,KAAK,YAAY,WAAW,KAAK,YACnC,KAAK,UAAU,OAAO,KAAK,YAAY,MAAK,CAAE,GAEhD,KAAK,UAAU,IAAIA,GAASiJ,CAAS,GACrC,KAAK,YAAY,KAAKjJ,CAAO,GACtBiJ;AAAA,EACR;AACH;AACA,MAAMC,KAAQ,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAChCC,KAAiC,IAAIL,GAAY,EAAE;AACzD,SAASM,GAAoBzM,GAAK0M,GAAaC,GAAc;AAC3D,EAAAD,IAAcA,KAAe,IAC7BC,IAAeA,KAAgB;AAC/B,QAAMC,IAAgBL,GAAM,OAAO,CAAA9S,MAAKiT,EAAY,QAAQjT,CAAC,IAAI,KAAKkT,EAAa,QAAQlT,CAAC,IAAI,CAAC;AACjG,MAAImT,EAAc,WAAW;AAAG,WAAO;AACvC,QAAM9T,IAAI0T,GAA+B,UAAU,IAAII,EAAc,IAAI,CAAAnT,MAAKA,MAAM,MAAM,QAAQA,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG;AACjH,MAAIoT,IAAU,CAAC/T,EAAE,KAAKkH,CAAG;AACzB,MAAI,CAAC6M,GAAS;AACZ,UAAMC,IAAK9M,EAAI,QAAQ2M,CAAY;AACnC,IAAIG,IAAK,KAAK,CAAChU,EAAE,KAAKkH,EAAI,UAAU,GAAG8M,CAAE,CAAC,MACxCD,IAAU;AAAA,EAEb;AACD,SAAOA;AACT;AACA,SAASE,GAAS7B,GAAKP,GAAM;AAC3B,MAAIgC,IAAe,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACvF,MAAI,CAACzB;AAAK;AACV,MAAIA,EAAIP,CAAI;AAAG,WAAOO,EAAIP,CAAI;AAC9B,QAAMqC,IAASrC,EAAK,MAAMgC,CAAY;AACtC,MAAIM,IAAU/B;AACd,WAAS3R,IAAI,GAAGA,IAAIyT,EAAO,UAAS;AAClC,QAAI,CAACC,KAAW,OAAOA,KAAY;AACjC;AAEF,QAAIC,GACAC,IAAW;AACf,aAASpS,IAAIxB,GAAGwB,IAAIiS,EAAO,QAAQ,EAAEjS;AAMnC,UALIA,MAAMxB,MACR4T,KAAYR,IAEdQ,KAAYH,EAAOjS,CAAC,GACpBmS,IAAOD,EAAQE,CAAQ,GACnBD,MAAS,QAAW;AACtB,YAAI,CAAC,UAAU,UAAU,SAAS,EAAE,QAAQ,OAAOA,CAAI,IAAI,MAAMnS,IAAIiS,EAAO,SAAS;AACnF;AAEF,QAAAzT,KAAKwB,IAAIxB,IAAI;AACb;AAAA,MACD;AAEH,IAAA0T,IAAUC;AAAA,EACX;AACD,SAAOD;AACT;AACA,SAASG,GAAeC,GAAM;AAC5B,SAAIA,KAAQA,EAAK,QAAQ,GAAG,IAAI,IAAUA,EAAK,QAAQ,KAAK,GAAG,IACxDA;AACT;AAEA,MAAMC,WAAsB5D,GAAa;AAAA,EACvC,YAAY8B,GAAM;AAChB,QAAI1O,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MAChF,IAAI,CAAC,aAAa;AAAA,MAClB,WAAW;AAAA,IACjB;AACI,aACA,KAAK,OAAO0O,KAAQ,IACpB,KAAK,UAAU1O,GACX,KAAK,QAAQ,iBAAiB,WAChC,KAAK,QAAQ,eAAe,MAE1B,KAAK,QAAQ,wBAAwB,WACvC,KAAK,QAAQ,sBAAsB;AAAA,EAEtC;AAAA,EACD,cAAcyQ,GAAI;AAChB,IAAI,KAAK,QAAQ,GAAG,QAAQA,CAAE,IAAI,KAChC,KAAK,QAAQ,GAAG,KAAKA,CAAE;AAAA,EAE1B;AAAA,EACD,iBAAiBA,GAAI;AACnB,UAAMpO,IAAQ,KAAK,QAAQ,GAAG,QAAQoO,CAAE;AACxC,IAAIpO,IAAQ,MACV,KAAK,QAAQ,GAAG,OAAOA,GAAO,CAAC;AAAA,EAElC;AAAA,EACD,YAAYqO,GAAKD,GAAIvN,GAAK;AACxB,QAAIlD,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,UAAM6P,IAAe7P,EAAQ,iBAAiB,SAAYA,EAAQ,eAAe,KAAK,QAAQ,cACxF2Q,IAAsB3Q,EAAQ,wBAAwB,SAAYA,EAAQ,sBAAsB,KAAK,QAAQ;AACnH,QAAI6N;AACJ,IAAI6C,EAAI,QAAQ,GAAG,IAAI,KACrB7C,IAAO6C,EAAI,MAAM,GAAG,KAEpB7C,IAAO,CAAC6C,GAAKD,CAAE,GACXvN,MACE,MAAM,QAAQA,CAAG,IACnB2K,EAAK,KAAK,GAAG3K,CAAG,IACP,OAAOA,KAAQ,YAAY2M,IACpChC,EAAK,KAAK,GAAG3K,EAAI,MAAM2M,CAAY,CAAC,IAEpChC,EAAK,KAAK3K,CAAG;AAInB,UAAMxB,IAAS8M,GAAQ,KAAK,MAAMX,CAAI;AAMtC,WALI,CAACnM,KAAU,CAAC+O,KAAM,CAACvN,KAAOwN,EAAI,QAAQ,GAAG,IAAI,OAC/CA,IAAM7C,EAAK,CAAC,GACZ4C,IAAK5C,EAAK,CAAC,GACX3K,IAAM2K,EAAK,MAAM,CAAC,EAAE,KAAK,GAAG,IAE1BnM,KAAU,CAACiP,KAAuB,OAAOzN,KAAQ,WAAiBxB,IAC/DuO,GAAS,KAAK,QAAQ,KAAK,KAAKS,CAAG,KAAK,KAAK,KAAKA,CAAG,EAAED,CAAE,GAAGvN,GAAK2M,CAAY;AAAA,EACrF;AAAA,EACD,YAAYa,GAAKD,GAAIvN,GAAKnD,GAAO;AAC/B,QAAIC,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MAChF,QAAQ;AAAA,IACd;AACI,UAAM6P,IAAe7P,EAAQ,iBAAiB,SAAYA,EAAQ,eAAe,KAAK,QAAQ;AAC9F,QAAI6N,IAAO,CAAC6C,GAAKD,CAAE;AACnB,IAAIvN,MAAK2K,IAAOA,EAAK,OAAOgC,IAAe3M,EAAI,MAAM2M,CAAY,IAAI3M,CAAG,IACpEwN,EAAI,QAAQ,GAAG,IAAI,OACrB7C,IAAO6C,EAAI,MAAM,GAAG,GACpB3Q,IAAQ0Q,GACRA,IAAK5C,EAAK,CAAC,IAEb,KAAK,cAAc4C,CAAE,GACrBtC,GAAQ,KAAK,MAAMN,GAAM9N,CAAK,GACzBC,EAAQ,UAAQ,KAAK,KAAK,SAAS0Q,GAAKD,GAAIvN,GAAKnD,CAAK;AAAA,EAC5D;AAAA,EACD,aAAa2Q,GAAKD,GAAIG,GAAW;AAC/B,QAAI5Q,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MAChF,QAAQ;AAAA,IACd;AACI,eAAW3C,KAAKuT;AACd,OAAI,OAAOA,EAAUvT,CAAC,KAAM,YAAY,OAAO,UAAU,SAAS,MAAMuT,EAAUvT,CAAC,CAAC,MAAM,qBAAkB,KAAK,YAAYqT,GAAKD,GAAIpT,GAAGuT,EAAUvT,CAAC,GAAG;AAAA,QACrJ,QAAQ;AAAA,MAChB,CAAO;AAEH,IAAK2C,EAAQ,UAAQ,KAAK,KAAK,SAAS0Q,GAAKD,GAAIG,CAAS;AAAA,EAC3D;AAAA,EACD,kBAAkBF,GAAKD,GAAIG,GAAWC,GAAM9B,GAAW;AACrD,QAAI/O,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MAChF,QAAQ;AAAA,MACR,UAAU;AAAA,IAChB,GACQ6N,IAAO,CAAC6C,GAAKD,CAAE;AACnB,IAAIC,EAAI,QAAQ,GAAG,IAAI,OACrB7C,IAAO6C,EAAI,MAAM,GAAG,GACpBG,IAAOD,GACPA,IAAYH,GACZA,IAAK5C,EAAK,CAAC,IAEb,KAAK,cAAc4C,CAAE;AACrB,QAAIK,IAAOtC,GAAQ,KAAK,MAAMX,CAAI,KAAK;AACvC,IAAK7N,EAAQ,aAAU4Q,IAAY,KAAK,MAAM,KAAK,UAAUA,CAAS,CAAC,IACnEC,IACFjC,GAAWkC,GAAMF,GAAW7B,CAAS,IAErC+B,IAAO;AAAA,MACL,GAAGA;AAAA,MACH,GAAGF;AAAA,IACX,GAEIzC,GAAQ,KAAK,MAAMN,GAAMiD,CAAI,GACxB9Q,EAAQ,UAAQ,KAAK,KAAK,SAAS0Q,GAAKD,GAAIG,CAAS;AAAA,EAC3D;AAAA,EACD,qBAAqBF,GAAKD,GAAI;AAC5B,IAAI,KAAK,kBAAkBC,GAAKD,CAAE,KAChC,OAAO,KAAK,KAAKC,CAAG,EAAED,CAAE,GAE1B,KAAK,iBAAiBA,CAAE,GACxB,KAAK,KAAK,WAAWC,GAAKD,CAAE;AAAA,EAC7B;AAAA,EACD,kBAAkBC,GAAKD,GAAI;AACzB,WAAO,KAAK,YAAYC,GAAKD,CAAE,MAAM;AAAA,EACtC;AAAA,EACD,kBAAkBC,GAAKD,GAAI;AAEzB,WADKA,MAAIA,IAAK,KAAK,QAAQ,YACvB,KAAK,QAAQ,qBAAqB,OAAa;AAAA,MAEjD,GAAG,KAAK,YAAYC,GAAKD,CAAE;AAAA,IACjC,IACW,KAAK,YAAYC,GAAKD,CAAE;AAAA,EAChC;AAAA,EACD,kBAAkBC,GAAK;AACrB,WAAO,KAAK,KAAKA,CAAG;AAAA,EACrB;AAAA,EACD,4BAA4BA,GAAK;AAC/B,UAAMhC,IAAO,KAAK,kBAAkBgC,CAAG;AAEvC,WAAO,CAAC,EADEhC,KAAQ,OAAO,KAAKA,CAAI,KAAK,IAC5B,KAAK,CAAAtR,MAAKsR,EAAKtR,CAAC,KAAK,OAAO,KAAKsR,EAAKtR,CAAC,CAAC,EAAE,SAAS,CAAC;AAAA,EAChE;AAAA,EACD,SAAS;AACP,WAAO,KAAK;AAAA,EACb;AACH;AAEA,IAAI2T,KAAgB;AAAA,EAClB,YAAY,CAAE;AAAA,EACd,iBAAiBvF,GAAQ;AACvB,SAAK,WAAWA,EAAO,IAAI,IAAIA;AAAA,EAChC;AAAA,EACD,OAAOwF,GAAYjR,GAAOmD,GAAKlD,GAASiR,GAAY;AAClD,WAAAD,EAAW,QAAQ,CAAAE,MAAa;AAC9B,MAAI,KAAK,WAAWA,CAAS,MAAGnR,IAAQ,KAAK,WAAWmR,CAAS,EAAE,QAAQnR,GAAOmD,GAAKlD,GAASiR,CAAU;AAAA,IAChH,CAAK,GACMlR;AAAA,EACR;AACH;AAEA,MAAMoR,KAAmB,CAAA;AACzB,MAAMC,WAAmBxE,GAAa;AAAA,EACpC,YAAYyE,GAAU;AACpB,QAAIrR,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,aACA0N,GAAK,CAAC,iBAAiB,iBAAiB,kBAAkB,gBAAgB,oBAAoB,cAAc,OAAO,GAAG2D,GAAU,IAAI,GACpI,KAAK,UAAUrR,GACX,KAAK,QAAQ,iBAAiB,WAChC,KAAK,QAAQ,eAAe,MAE9B,KAAK,SAAS2M,GAAW,OAAO,YAAY;AAAA,EAC7C;AAAA,EACD,eAAe+D,GAAK;AAClB,IAAIA,MAAK,KAAK,WAAWA;AAAA,EAC1B;AAAA,EACD,OAAOxN,GAAK;AACV,QAAIlD,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MAChF,eAAe,CAAE;AAAA,IACvB;AACI,QAAyBkD,KAAQ;AAC/B,aAAO;AAET,UAAMoO,IAAW,KAAK,QAAQpO,GAAKlD,CAAO;AAC1C,WAAOsR,KAAYA,EAAS,QAAQ;AAAA,EACrC;AAAA,EACD,eAAepO,GAAKlD,GAAS;AAC3B,QAAI4P,IAAc5P,EAAQ,gBAAgB,SAAYA,EAAQ,cAAc,KAAK,QAAQ;AACzF,IAAI4P,MAAgB,WAAWA,IAAc;AAC7C,UAAMC,IAAe7P,EAAQ,iBAAiB,SAAYA,EAAQ,eAAe,KAAK,QAAQ;AAC9F,QAAIuR,IAAavR,EAAQ,MAAM,KAAK,QAAQ,aAAa;AACzD,UAAMwR,IAAuB5B,KAAe1M,EAAI,QAAQ0M,CAAW,IAAI,IACjE6B,IAAuB,CAAC,KAAK,QAAQ,2BAA2B,CAACzR,EAAQ,gBAAgB,CAAC,KAAK,QAAQ,0BAA0B,CAACA,EAAQ,eAAe,CAAC2P,GAAoBzM,GAAK0M,GAAaC,CAAY;AAClN,QAAI2B,KAAwB,CAACC,GAAsB;AACjD,YAAMpU,IAAI6F,EAAI,MAAM,KAAK,aAAa,aAAa;AACnD,UAAI7F,KAAKA,EAAE,SAAS;AAClB,eAAO;AAAA,UACL,KAAA6F;AAAA,UACA,YAAAqO;AAAA,QACV;AAEM,YAAMG,IAAQxO,EAAI,MAAM0M,CAAW;AACnC,OAAIA,MAAgBC,KAAgBD,MAAgBC,KAAgB,KAAK,QAAQ,GAAG,QAAQ6B,EAAM,CAAC,CAAC,IAAI,QAAIH,IAAaG,EAAM,UAC/HxO,IAAMwO,EAAM,KAAK7B,CAAY;AAAA,IAC9B;AACD,WAAI,OAAO0B,KAAe,aAAUA,IAAa,CAACA,CAAU,IACrD;AAAA,MACL,KAAArO;AAAA,MACA,YAAAqO;AAAA,IACN;AAAA,EACG;AAAA,EACD,UAAUnI,GAAMpJ,GAAS2R,GAAS;AAQhC,QAPI,OAAO3R,KAAY,YAAY,KAAK,QAAQ,qCAC9CA,IAAU,KAAK,QAAQ,iCAAiC,SAAS,IAE/D,OAAOA,KAAY,aAAUA,IAAU;AAAA,MACzC,GAAGA;AAAA,IACT,IACSA,MAASA,IAAU,KACEoJ,KAAS;AAAM,aAAO;AAChD,IAAK,MAAM,QAAQA,CAAI,MAAGA,IAAO,CAAC,OAAOA,CAAI,CAAC;AAC9C,UAAMwI,IAAgB5R,EAAQ,kBAAkB,SAAYA,EAAQ,gBAAgB,KAAK,QAAQ,eAC3F6P,IAAe7P,EAAQ,iBAAiB,SAAYA,EAAQ,eAAe,KAAK,QAAQ,cACxF;AAAA,MACJ,KAAAkD;AAAA,MACA,YAAAqO;AAAA,IACN,IAAQ,KAAK,eAAenI,EAAKA,EAAK,SAAS,CAAC,GAAGpJ,CAAO,GAChD6R,IAAYN,EAAWA,EAAW,SAAS,CAAC,GAC5Cb,IAAM1Q,EAAQ,OAAO,KAAK,UAC1B8R,IAA0B9R,EAAQ,2BAA2B,KAAK,QAAQ;AAChF,QAAI0Q,KAAOA,EAAI,YAAW,MAAO,UAAU;AACzC,UAAIoB,GAAyB;AAC3B,cAAMlC,IAAc5P,EAAQ,eAAe,KAAK,QAAQ;AACxD,eAAI4R,IACK;AAAA,UACL,KAAK,GAAGC,CAAS,GAAGjC,CAAW,GAAG1M,CAAG;AAAA,UACrC,SAASA;AAAA,UACT,cAAcA;AAAA,UACd,SAASwN;AAAA,UACT,QAAQmB;AAAA,UACR,YAAY,KAAK,qBAAqB7R,CAAO;AAAA,QACzD,IAEe,GAAG6R,CAAS,GAAGjC,CAAW,GAAG1M,CAAG;AAAA,MACxC;AACD,aAAI0O,IACK;AAAA,QACL,KAAK1O;AAAA,QACL,SAASA;AAAA,QACT,cAAcA;AAAA,QACd,SAASwN;AAAA,QACT,QAAQmB;AAAA,QACR,YAAY,KAAK,qBAAqB7R,CAAO;AAAA,MACvD,IAEakD;AAAA,IACR;AACD,UAAMoO,IAAW,KAAK,QAAQlI,GAAMpJ,CAAO;AAC3C,QAAIuI,IAAM+I,KAAYA,EAAS;AAC/B,UAAMS,IAAaT,KAAYA,EAAS,WAAWpO,GAC7C8O,IAAkBV,KAAYA,EAAS,gBAAgBpO,GACvD+O,IAAU,OAAO,UAAU,SAAS,MAAM1J,CAAG,GAC7C2J,IAAW,CAAC,mBAAmB,qBAAqB,iBAAiB,GACrEC,IAAanS,EAAQ,eAAe,SAAYA,EAAQ,aAAa,KAAK,QAAQ,YAClFoS,IAA6B,CAAC,KAAK,cAAc,KAAK,WAAW;AAEvE,QAAIA,KAA8B7J,MADX,OAAOA,KAAQ,YAAY,OAAOA,KAAQ,aAAa,OAAOA,KAAQ,aAClC2J,EAAS,QAAQD,CAAO,IAAI,KAAK,EAAE,OAAOE,KAAe,YAAYF,MAAY,mBAAmB;AAC7J,UAAI,CAACjS,EAAQ,iBAAiB,CAAC,KAAK,QAAQ,eAAe;AACzD,QAAK,KAAK,QAAQ,yBAChB,KAAK,OAAO,KAAK,iEAAiE;AAEpF,cAAMhE,IAAI,KAAK,QAAQ,wBAAwB,KAAK,QAAQ,sBAAsB+V,GAAYxJ,GAAK;AAAA,UACjG,GAAGvI;AAAA,UACH,IAAIuR;AAAA,QACd,CAAS,IAAI,QAAQrO,CAAG,KAAK,KAAK,QAAQ;AAClC,eAAI0O,KACFN,EAAS,MAAMtV,GACfsV,EAAS,aAAa,KAAK,qBAAqBtR,CAAO,GAChDsR,KAEFtV;AAAA,MACR;AACD,UAAI6T,GAAc;AAChB,cAAMwC,IAAiBJ,MAAY,kBAC7BvE,IAAO2E,IAAiB,CAAE,IAAG,IAC7BC,IAAcD,IAAiBL,IAAkBD;AACvD,mBAAW1U,KAAKkL;AACd,cAAI,OAAO,UAAU,eAAe,KAAKA,GAAKlL,CAAC,GAAG;AAChD,kBAAMkV,IAAU,GAAGD,CAAW,GAAGzC,CAAY,GAAGxS,CAAC;AACjD,YAAAqQ,EAAKrQ,CAAC,IAAI,KAAK,UAAUkV,GAAS;AAAA,cAChC,GAAGvS;AAAA,cAED,YAAY;AAAA,cACZ,IAAIuR;AAAA,YAEpB,CAAa,GACG7D,EAAKrQ,CAAC,MAAMkV,MAAS7E,EAAKrQ,CAAC,IAAIkL,EAAIlL,CAAC;AAAA,UACzC;AAEH,QAAAkL,IAAMmF;AAAA,MACP;AAAA,IACP,WAAe0E,KAA8B,OAAOD,KAAe,YAAYF,MAAY;AACrF,MAAA1J,IAAMA,EAAI,KAAK4J,CAAU,GACrB5J,MAAKA,IAAM,KAAK,kBAAkBA,GAAKa,GAAMpJ,GAAS2R,CAAO;AAAA,SAC5D;AACL,UAAIa,IAAc,IACdC,IAAU;AACd,YAAMC,IAAsB1S,EAAQ,UAAU,UAAa,OAAOA,EAAQ,SAAU,UAC9E2S,IAAkBvB,GAAW,gBAAgBpR,CAAO,GACpD4S,IAAqBF,IAAsB,KAAK,eAAe,UAAUhC,GAAK1Q,EAAQ,OAAOA,CAAO,IAAI,IACxG6S,KAAoC7S,EAAQ,WAAW0S,IAAsB,KAAK,eAAe,UAAUhC,GAAK1Q,EAAQ,OAAO;AAAA,QACnI,SAAS;AAAA,MACV,CAAA,IAAI,IACC8S,IAAwBJ,KAAuB,CAAC1S,EAAQ,WAAWA,EAAQ,UAAU,KAAK,KAAK,eAAe,iBAAgB,GAC9H+S,IAAeD,KAAyB9S,EAAQ,eAAe,KAAK,QAAQ,eAAe,MAAM,KAAKA,EAAQ,eAAe4S,CAAkB,EAAE,KAAK5S,EAAQ,eAAe6S,EAAiC,EAAE,KAAK7S,EAAQ;AACnO,MAAI,CAAC,KAAK,cAAcuI,CAAG,KAAKoK,MAC9BH,IAAc,IACdjK,IAAMwK,IAEH,KAAK,cAAcxK,CAAG,MACzBkK,IAAU,IACVlK,IAAMrF;AAGR,YAAM8P,MADiChT,EAAQ,kCAAkC,KAAK,QAAQ,mCACtCyS,IAAU,SAAYlK,GACxE0K,IAAgBN,KAAmBI,MAAiBxK,KAAO,KAAK,QAAQ;AAC9E,UAAIkK,KAAWD,KAAeS,GAAe;AAE3C,YADA,KAAK,OAAO,IAAIA,IAAgB,cAAc,cAAcvC,GAAKmB,GAAW3O,GAAK+P,IAAgBF,IAAexK,CAAG,GAC/GsH,GAAc;AAChB,gBAAMqD,IAAK,KAAK,QAAQhQ,GAAK;AAAA,YAC3B,GAAGlD;AAAA,YACH,cAAc;AAAA,UAC1B,CAAW;AACD,UAAIkT,KAAMA,EAAG,OAAK,KAAK,OAAO,KAAK,iLAAiL;AAAA,QACrN;AACD,YAAIC,IAAO,CAAA;AACX,cAAMC,IAAe,KAAK,cAAc,iBAAiB,KAAK,QAAQ,aAAapT,EAAQ,OAAO,KAAK,QAAQ;AAC/G,YAAI,KAAK,QAAQ,kBAAkB,cAAcoT,KAAgBA,EAAa,CAAC;AAC7E,mBAAS3W,IAAI,GAAGA,IAAI2W,EAAa,QAAQ3W;AACvC,YAAA0W,EAAK,KAAKC,EAAa3W,CAAC,CAAC;AAAA;AAEtB,UAAI,KAAK,QAAQ,kBAAkB,QACxC0W,IAAO,KAAK,cAAc,mBAAmBnT,EAAQ,OAAO,KAAK,QAAQ,IAEzEmT,EAAK,KAAKnT,EAAQ,OAAO,KAAK,QAAQ;AAExC,cAAMqT,IAAO,CAACvW,GAAGiB,GAAGuV,MAAyB;AAC3C,gBAAMC,IAAoBZ,KAAmBW,MAAyB/K,IAAM+K,IAAuBN;AACnG,UAAI,KAAK,QAAQ,oBACf,KAAK,QAAQ,kBAAkBlW,GAAG+U,GAAW9T,GAAGwV,GAAmBN,GAAejT,CAAO,IAChF,KAAK,oBAAoB,KAAK,iBAAiB,eACxD,KAAK,iBAAiB,YAAYlD,GAAG+U,GAAW9T,GAAGwV,GAAmBN,GAAejT,CAAO,GAE9F,KAAK,KAAK,cAAclD,GAAG+U,GAAW9T,GAAGwK,CAAG;AAAA,QACtD;AACQ,QAAI,KAAK,QAAQ,gBACX,KAAK,QAAQ,sBAAsBmK,IACrCS,EAAK,QAAQ,CAAAK,MAAY;AACvB,gBAAMC,IAAW,KAAK,eAAe,YAAYD,GAAUxT,CAAO;AAClE,UAAI8S,KAAyB9S,EAAQ,eAAe,KAAK,QAAQ,eAAe,MAAM,KAAKyT,EAAS,QAAQ,GAAG,KAAK,QAAQ,eAAe,MAAM,IAAI,KACnJA,EAAS,KAAK,GAAG,KAAK,QAAQ,eAAe,MAAM,GAErDA,EAAS,QAAQ,CAAAC,MAAU;AACzB,YAAAL,EAAK,CAACG,CAAQ,GAAGtQ,IAAMwQ,GAAQ1T,EAAQ,eAAe0T,CAAM,EAAE,KAAKX,CAAY;AAAA,UAC/F,CAAe;AAAA,QACf,CAAa,IAEDM,EAAKF,GAAMjQ,GAAK6P,CAAY;AAAA,MAGjC;AACD,MAAAxK,IAAM,KAAK,kBAAkBA,GAAKa,GAAMpJ,GAASsR,GAAUK,CAAO,GAC9Dc,KAAWlK,MAAQrF,KAAO,KAAK,QAAQ,gCAA6BqF,IAAM,GAAGsJ,CAAS,IAAI3O,CAAG,MAC5FuP,KAAWD,MAAgB,KAAK,QAAQ,2BACvC,KAAK,QAAQ,qBAAqB,OACpCjK,IAAM,KAAK,QAAQ,uBAAuB,KAAK,QAAQ,8BAA8B,GAAGsJ,CAAS,IAAI3O,CAAG,KAAKA,GAAKsP,IAAcjK,IAAM,MAAS,IAE/IA,IAAM,KAAK,QAAQ,uBAAuBA,CAAG;AAAA,IAGlD;AACD,WAAIqJ,KACFN,EAAS,MAAM/I,GACf+I,EAAS,aAAa,KAAK,qBAAqBtR,CAAO,GAChDsR,KAEF/I;AAAA,EACR;AAAA,EACD,kBAAkBA,GAAKrF,GAAKlD,GAASsR,GAAUK,GAAS;AACtD,QAAIgC,IAAQ;AACZ,QAAI,KAAK,cAAc,KAAK,WAAW;AACrC,MAAApL,IAAM,KAAK,WAAW,MAAMA,GAAK;AAAA,QAC/B,GAAG,KAAK,QAAQ,cAAc;AAAA,QAC9B,GAAGvI;AAAA,MACJ,GAAEA,EAAQ,OAAO,KAAK,YAAYsR,EAAS,SAASA,EAAS,QAAQA,EAAS,SAAS;AAAA,QACtF,UAAAA;AAAA,MACR,CAAO;AAAA,aACQ,CAACtR,EAAQ,mBAAmB;AACrC,MAAIA,EAAQ,iBAAe,KAAK,aAAa,KAAK;AAAA,QAChD,GAAGA;AAAA,QAED,eAAe;AAAA,UACb,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAGA,EAAQ;AAAA,QACZ;AAAA,MAEX,CAAO;AACD,YAAM4T,IAAkB,OAAOrL,KAAQ,aAAavI,KAAWA,EAAQ,iBAAiBA,EAAQ,cAAc,oBAAoB,SAAYA,EAAQ,cAAc,kBAAkB,KAAK,QAAQ,cAAc;AACjN,UAAI6T;AACJ,UAAID,GAAiB;AACnB,cAAME,IAAKvL,EAAI,MAAM,KAAK,aAAa,aAAa;AACpD,QAAAsL,IAAUC,KAAMA,EAAG;AAAA,MACpB;AACD,UAAIpF,IAAO1O,EAAQ,WAAW,OAAOA,EAAQ,WAAY,WAAWA,EAAQ,UAAUA;AAMtF,UALI,KAAK,QAAQ,cAAc,qBAAkB0O,IAAO;AAAA,QACtD,GAAG,KAAK,QAAQ,cAAc;AAAA,QAC9B,GAAGA;AAAA,MACX,IACMnG,IAAM,KAAK,aAAa,YAAYA,GAAKmG,GAAM1O,EAAQ,OAAO,KAAK,UAAUA,CAAO,GAChF4T,GAAiB;AACnB,cAAMG,IAAKxL,EAAI,MAAM,KAAK,aAAa,aAAa,GAC9CyL,IAAUD,KAAMA,EAAG;AACzB,QAAIF,IAAUG,MAAShU,EAAQ,OAAO;AAAA,MACvC;AACD,MAAI,CAACA,EAAQ,OAAO,KAAK,QAAQ,qBAAqB,QAAQsR,KAAYA,EAAS,QAAKtR,EAAQ,MAAMsR,EAAS,UAC3GtR,EAAQ,SAAS,OAAOuI,IAAM,KAAK,aAAa,KAAKA,GAAK,WAAY;AACxE,iBAASwD,IAAO,UAAU,QAAQV,IAAO,IAAI,MAAMU,CAAI,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AAC/E,UAAAX,EAAKW,CAAI,IAAI,UAAUA,CAAI;AAE7B,eAAI2F,KAAWA,EAAQ,CAAC,MAAMtG,EAAK,CAAC,KAAK,CAACrL,EAAQ,WAChD2T,EAAM,OAAO,KAAK,6CAA6CtI,EAAK,CAAC,CAAC,YAAYnI,EAAI,CAAC,CAAC,EAAE,GACnF,QAEFyQ,EAAM,UAAU,GAAGtI,GAAMnI,CAAG;AAAA,MACpC,GAAElD,CAAO,IACNA,EAAQ,iBAAe,KAAK,aAAa,MAAK;AAAA,IACnD;AACD,UAAMiU,IAAcjU,EAAQ,eAAe,KAAK,QAAQ,aAClDkU,IAAqB,OAAOD,KAAgB,WAAW,CAACA,CAAW,IAAIA;AAC7E,WAAyB1L,KAAQ,QAAQ2L,KAAsBA,EAAmB,UAAUlU,EAAQ,uBAAuB,OACzHuI,IAAMwI,GAAc,OAAOmD,GAAoB3L,GAAKrF,GAAK,KAAK,WAAW,KAAK,QAAQ,0BAA0B;AAAA,MAC9G,cAAc;AAAA,QACZ,GAAGoO;AAAA,QACH,YAAY,KAAK,qBAAqBtR,CAAO;AAAA,MAC9C;AAAA,MACD,GAAGA;AAAA,IACX,IAAUA,GAAS,IAAI,IAEZuI;AAAA,EACR;AAAA,EACD,QAAQa,GAAM;AACZ,QAAIpJ,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9EmU,GACA1B,GACA2B,GACAC,GACAC;AACJ,WAAI,OAAOlL,KAAS,aAAUA,IAAO,CAACA,CAAI,IAC1CA,EAAK,QAAQ,CAAArL,MAAK;AAChB,UAAI,KAAK,cAAcoW,CAAK;AAAG;AAC/B,YAAMI,IAAY,KAAK,eAAexW,GAAGiC,CAAO,GAC1CkD,IAAMqR,EAAU;AACtB,MAAA9B,IAAUvP;AACV,UAAIqO,IAAagD,EAAU;AAC3B,MAAI,KAAK,QAAQ,eAAYhD,IAAaA,EAAW,OAAO,KAAK,QAAQ,UAAU;AACnF,YAAMmB,IAAsB1S,EAAQ,UAAU,UAAa,OAAOA,EAAQ,SAAU,UAC9E8S,IAAwBJ,KAAuB,CAAC1S,EAAQ,WAAWA,EAAQ,UAAU,KAAK,KAAK,eAAe,iBAAgB,GAC9HwU,IAAuBxU,EAAQ,YAAY,WAAc,OAAOA,EAAQ,WAAY,YAAY,OAAOA,EAAQ,WAAY,aAAaA,EAAQ,YAAY,IAC5JyU,IAAQzU,EAAQ,OAAOA,EAAQ,OAAO,KAAK,cAAc,mBAAmBA,EAAQ,OAAO,KAAK,UAAUA,EAAQ,WAAW;AACnI,MAAAuR,EAAW,QAAQ,CAAAd,MAAM;AACvB,QAAI,KAAK,cAAc0D,CAAK,MAC5BG,IAAS7D,GACL,CAACU,GAAiB,GAAGsD,EAAM,CAAC,CAAC,IAAIhE,CAAE,EAAE,KAAK,KAAK,SAAS,KAAK,MAAM,sBAAsB,CAAC,KAAK,MAAM,mBAAmB6D,CAAM,MAChInD,GAAiB,GAAGsD,EAAM,CAAC,CAAC,IAAIhE,CAAE,EAAE,IAAI,IACxC,KAAK,OAAO,KAAK,QAAQgC,CAAO,oBAAoBgC,EAAM,KAAK,IAAI,CAAC,sCAAsCH,CAAM,wBAAwB,0NAA0N,IAEpWG,EAAM,QAAQ,CAAAlE,MAAQ;AACpB,cAAI,KAAK,cAAc4D,CAAK;AAAG;AAC/B,UAAAE,IAAU9D;AACV,gBAAMmE,IAAY,CAACxR,CAAG;AACtB,cAAI,KAAK,cAAc,KAAK,WAAW;AACrC,iBAAK,WAAW,cAAcwR,GAAWxR,GAAKqN,GAAME,GAAIzQ,CAAO;AAAA,eAC1D;AACL,gBAAI2U;AACJ,YAAIjC,MAAqBiC,IAAe,KAAK,eAAe,UAAUpE,GAAMvQ,EAAQ,OAAOA,CAAO;AAClG,kBAAM4U,IAAa,GAAG,KAAK,QAAQ,eAAe,QAC5CC,IAAgB,GAAG,KAAK,QAAQ,eAAe,UAAU,KAAK,QAAQ,eAAe;AAU3F,gBATInC,MACFgC,EAAU,KAAKxR,IAAMyR,CAAY,GAC7B3U,EAAQ,WAAW2U,EAAa,QAAQE,CAAa,MAAM,KAC7DH,EAAU,KAAKxR,IAAMyR,EAAa,QAAQE,GAAe,KAAK,QAAQ,eAAe,CAAC,GAEpF/B,KACF4B,EAAU,KAAKxR,IAAM0R,CAAU,IAG/BJ,GAAsB;AACxB,oBAAMM,IAAa,GAAG5R,CAAG,GAAG,KAAK,QAAQ,gBAAgB,GAAGlD,EAAQ,OAAO;AAC3E,cAAA0U,EAAU,KAAKI,CAAU,GACrBpC,MACFgC,EAAU,KAAKI,IAAaH,CAAY,GACpC3U,EAAQ,WAAW2U,EAAa,QAAQE,CAAa,MAAM,KAC7DH,EAAU,KAAKI,IAAaH,EAAa,QAAQE,GAAe,KAAK,QAAQ,eAAe,CAAC,GAE3F/B,KACF4B,EAAU,KAAKI,IAAaF,CAAU;AAAA,YAG3C;AAAA,UACF;AACD,cAAIG;AACJ,iBAAOA,IAAcL,EAAU;AAC7B,YAAK,KAAK,cAAcP,CAAK,MAC3BC,IAAeW,GACfZ,IAAQ,KAAK,YAAY5D,GAAME,GAAIsE,GAAa/U,CAAO;AAAA,QAGrE,CAAS;AAAA,MACT,CAAO;AAAA,IACP,CAAK,GACM;AAAA,MACL,KAAKmU;AAAA,MACL,SAAA1B;AAAA,MACA,cAAA2B;AAAA,MACA,SAAAC;AAAA,MACA,QAAAC;AAAA,IACN;AAAA,EACG;AAAA,EACD,cAAc/L,GAAK;AACjB,WAAOA,MAAQ,UAAa,EAAE,CAAC,KAAK,QAAQ,cAAcA,MAAQ,SAAS,EAAE,CAAC,KAAK,QAAQ,qBAAqBA,MAAQ;AAAA,EACzH;AAAA,EACD,YAAYgI,GAAME,GAAIvN,GAAK;AACzB,QAAIlD,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,WAAI,KAAK,cAAc,KAAK,WAAW,cAAoB,KAAK,WAAW,YAAYuQ,GAAME,GAAIvN,GAAKlD,CAAO,IACtG,KAAK,cAAc,YAAYuQ,GAAME,GAAIvN,GAAKlD,CAAO;AAAA,EAC7D;AAAA,EACD,uBAAuB;AACrB,QAAIA,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,UAAMgV,IAAc,CAAC,gBAAgB,WAAW,WAAW,WAAW,OAAO,QAAQ,eAAe,MAAM,gBAAgB,eAAe,iBAAiB,iBAAiB,cAAc,eAAe,eAAe,GACjNC,IAA2BjV,EAAQ,WAAW,OAAOA,EAAQ,WAAY;AAC/E,QAAI0O,IAAOuG,IAA2BjV,EAAQ,UAAUA;AAUxD,QATIiV,KAA4B,OAAOjV,EAAQ,QAAU,QACvD0O,EAAK,QAAQ1O,EAAQ,QAEnB,KAAK,QAAQ,cAAc,qBAC7B0O,IAAO;AAAA,MACL,GAAG,KAAK,QAAQ,cAAc;AAAA,MAC9B,GAAGA;AAAA,IACX,IAEQ,CAACuG,GAA0B;AAC7B,MAAAvG,IAAO;AAAA,QACL,GAAGA;AAAA,MACX;AACM,iBAAWxL,KAAO8R;AAChB,eAAOtG,EAAKxL,CAAG;AAAA,IAElB;AACD,WAAOwL;AAAA,EACR;AAAA,EACD,OAAO,gBAAgB1O,GAAS;AAC9B,UAAMwM,IAAS;AACf,eAAW0I,KAAUlV;AACnB,UAAI,OAAO,UAAU,eAAe,KAAKA,GAASkV,CAAM,KAAK1I,MAAW0I,EAAO,UAAU,GAAG1I,EAAO,MAAM,KAAmBxM,EAAQkV,CAAM,MAA5B;AAC5G,eAAO;AAGX,WAAO;AAAA,EACR;AACH;AAEA,SAASC,GAAWtR,GAAQ;AAC1B,SAAOA,EAAO,OAAO,CAAC,EAAE,YAAW,IAAKA,EAAO,MAAM,CAAC;AACxD;AACA,MAAMuR,GAAa;AAAA,EACjB,YAAYpV,GAAS;AACnB,SAAK,UAAUA,GACf,KAAK,gBAAgB,KAAK,QAAQ,iBAAiB,IACnD,KAAK,SAAS2M,GAAW,OAAO,eAAe;AAAA,EAChD;AAAA,EACD,sBAAsB4D,GAAM;AAE1B,QADAA,IAAOD,GAAeC,CAAI,GACtB,CAACA,KAAQA,EAAK,QAAQ,GAAG,IAAI;AAAG,aAAO;AAC3C,UAAMxT,IAAIwT,EAAK,MAAM,GAAG;AAGxB,WAFIxT,EAAE,WAAW,MACjBA,EAAE,IAAG,GACDA,EAAEA,EAAE,SAAS,CAAC,EAAE,YAAa,MAAK,OAAY,OAC3C,KAAK,mBAAmBA,EAAE,KAAK,GAAG,CAAC;AAAA,EAC3C;AAAA,EACD,wBAAwBwT,GAAM;AAE5B,QADAA,IAAOD,GAAeC,CAAI,GACtB,CAACA,KAAQA,EAAK,QAAQ,GAAG,IAAI;AAAG,aAAOA;AAC3C,UAAMxT,IAAIwT,EAAK,MAAM,GAAG;AACxB,WAAO,KAAK,mBAAmBxT,EAAE,CAAC,CAAC;AAAA,EACpC;AAAA,EACD,mBAAmBwT,GAAM;AACvB,QAAI,OAAOA,KAAS,YAAYA,EAAK,QAAQ,GAAG,IAAI,IAAI;AACtD,YAAM8E,IAAe,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAC5E,UAAItY,IAAIwT,EAAK,MAAM,GAAG;AACtB,aAAI,KAAK,QAAQ,eACfxT,IAAIA,EAAE,IAAI,CAAA+L,MAAQA,EAAK,YAAW,CAAE,IAC3B/L,EAAE,WAAW,KACtBA,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,YAAW,GACvBA,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,YAAW,GACnBsY,EAAa,QAAQtY,EAAE,CAAC,EAAE,YAAa,CAAA,IAAI,OAAIA,EAAE,CAAC,IAAIoY,GAAWpY,EAAE,CAAC,EAAE,YAAW,CAAE,MAC9EA,EAAE,WAAW,MACtBA,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,YAAW,GACnBA,EAAE,CAAC,EAAE,WAAW,MAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,YAAW,IAC1CA,EAAE,CAAC,MAAM,SAASA,EAAE,CAAC,EAAE,WAAW,MAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,gBACjDsY,EAAa,QAAQtY,EAAE,CAAC,EAAE,YAAa,CAAA,IAAI,OAAIA,EAAE,CAAC,IAAIoY,GAAWpY,EAAE,CAAC,EAAE,YAAW,CAAE,IACnFsY,EAAa,QAAQtY,EAAE,CAAC,EAAE,YAAa,CAAA,IAAI,OAAIA,EAAE,CAAC,IAAIoY,GAAWpY,EAAE,CAAC,EAAE,YAAW,CAAE,KAElFA,EAAE,KAAK,GAAG;AAAA,IAClB;AACD,WAAO,KAAK,QAAQ,aAAa,KAAK,QAAQ,eAAewT,EAAK,YAAa,IAAGA;AAAA,EACnF;AAAA,EACD,gBAAgBA,GAAM;AACpB,YAAI,KAAK,QAAQ,SAAS,kBAAkB,KAAK,QAAQ,8BACvDA,IAAO,KAAK,wBAAwBA,CAAI,IAEnC,CAAC,KAAK,iBAAiB,CAAC,KAAK,cAAc,UAAU,KAAK,cAAc,QAAQA,CAAI,IAAI;AAAA,EAChG;AAAA,EACD,sBAAsBkE,GAAO;AAC3B,QAAI,CAACA;AAAO,aAAO;AACnB,QAAIN;AACJ,WAAAM,EAAM,QAAQ,CAAAlE,MAAQ;AACpB,UAAI4D;AAAO;AACX,YAAMmB,IAAa,KAAK,mBAAmB/E,CAAI;AAC/C,OAAI,CAAC,KAAK,QAAQ,iBAAiB,KAAK,gBAAgB+E,CAAU,OAAGnB,IAAQmB;AAAA,IACnF,CAAK,GACG,CAACnB,KAAS,KAAK,QAAQ,iBACzBM,EAAM,QAAQ,CAAAlE,MAAQ;AACpB,UAAI4D;AAAO;AACX,YAAMoB,IAAU,KAAK,wBAAwBhF,CAAI;AACjD,UAAI,KAAK,gBAAgBgF,CAAO;AAAG,eAAOpB,IAAQoB;AAClD,MAAApB,IAAQ,KAAK,QAAQ,cAAc,KAAK,CAAAqB,MAAgB;AACtD,YAAIA,MAAiBD;AAAS,iBAAOC;AACrC,YAAI,EAAAA,EAAa,QAAQ,GAAG,IAAI,KAAKD,EAAQ,QAAQ,GAAG,IAAI,OACxDC,EAAa,QAAQ,GAAG,IAAI,KAAKD,EAAQ,QAAQ,GAAG,IAAI,KAAKC,EAAa,UAAU,GAAGA,EAAa,QAAQ,GAAG,CAAC,MAAMD,KACtHC,EAAa,QAAQD,CAAO,MAAM,KAAKA,EAAQ,SAAS;AAAG,iBAAOC;AAAA,MAChF,CAAS;AAAA,IACT,CAAO,GAEErB,MAAOA,IAAQ,KAAK,iBAAiB,KAAK,QAAQ,WAAW,EAAE,CAAC,IAC9DA;AAAA,EACR;AAAA,EACD,iBAAiBsB,GAAWlF,GAAM;AAChC,QAAI,CAACkF;AAAW,aAAO;AAGvB,QAFI,OAAOA,KAAc,eAAYA,IAAYA,EAAUlF,CAAI,IAC3D,OAAOkF,KAAc,aAAUA,IAAY,CAACA,CAAS,IACrD,OAAO,UAAU,SAAS,MAAMA,CAAS,MAAM;AAAkB,aAAOA;AAC5E,QAAI,CAAClF;AAAM,aAAOkF,EAAU,WAAW,CAAA;AACvC,QAAItB,IAAQsB,EAAUlF,CAAI;AAC1B,WAAK4D,MAAOA,IAAQsB,EAAU,KAAK,sBAAsBlF,CAAI,CAAC,IACzD4D,MAAOA,IAAQsB,EAAU,KAAK,mBAAmBlF,CAAI,CAAC,IACtD4D,MAAOA,IAAQsB,EAAU,KAAK,wBAAwBlF,CAAI,CAAC,IAC3D4D,MAAOA,IAAQsB,EAAU,UACvBtB,KAAS,CAAA;AAAA,EACjB;AAAA,EACD,mBAAmB5D,GAAMmF,GAAc;AACrC,UAAMC,IAAgB,KAAK,iBAAiBD,KAAgB,KAAK,QAAQ,eAAe,IAAInF,CAAI,GAC1FkE,IAAQ,CAAA,GACRmB,IAAU,CAAAjZ,MAAK;AACnB,MAAKA,MACD,KAAK,gBAAgBA,CAAC,IACxB8X,EAAM,KAAK9X,CAAC,IAEZ,KAAK,OAAO,KAAK,uDAAuDA,CAAC,EAAE;AAAA,IAEnF;AACI,WAAI,OAAO4T,KAAS,aAAaA,EAAK,QAAQ,GAAG,IAAI,MAAMA,EAAK,QAAQ,GAAG,IAAI,OACzE,KAAK,QAAQ,SAAS,kBAAgBqF,EAAQ,KAAK,mBAAmBrF,CAAI,CAAC,GAC3E,KAAK,QAAQ,SAAS,kBAAkB,KAAK,QAAQ,SAAS,iBAAeqF,EAAQ,KAAK,sBAAsBrF,CAAI,CAAC,GACrH,KAAK,QAAQ,SAAS,iBAAeqF,EAAQ,KAAK,wBAAwBrF,CAAI,CAAC,KAC1E,OAAOA,KAAS,YACzBqF,EAAQ,KAAK,mBAAmBrF,CAAI,CAAC,GAEvCoF,EAAc,QAAQ,CAAAE,MAAM;AAC1B,MAAIpB,EAAM,QAAQoB,CAAE,IAAI,KAAGD,EAAQ,KAAK,mBAAmBC,CAAE,CAAC;AAAA,IACpE,CAAK,GACMpB;AAAA,EACR;AACH;AAEA,IAAIqB,KAAO,CAAC;AAAA,EACV,MAAM,CAAC,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,SAAS,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,EACrI,IAAI,CAAC,GAAG,CAAC;AAAA,EACT,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,SAAS,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,EAC7Y,IAAI,CAAC,GAAG,CAAC;AAAA,EACT,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,EAC5I,IAAI,CAAC,CAAC;AAAA,EACN,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,EACtD,IAAI,CAAC,GAAG,GAAG,CAAC;AAAA,EACZ,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG;AAAA,EACxB,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,MAAM,IAAI;AAAA,EACjB,IAAI,CAAC,GAAG,GAAG,CAAC;AAAA,EACZ,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,OAAO,IAAI;AAAA,EAClB,IAAI,CAAC,GAAG,GAAG,CAAC;AAAA,EACZ,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,EACf,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,CAAC;AAAA,EACT,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,EACnB,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;AAAA,EAChB,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,CAAC;AAAA,EACT,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,CAAC;AAAA,EACT,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,EACf,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,EAAE;AAAA,EACb,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,CAAC;AAAA,EACZ,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,CAAC;AAAA,EACT,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,KAAK;AAAA,EACZ,IAAI,CAAC,GAAG,GAAG,CAAC;AAAA,EACZ,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE;AAAA,EACjB,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,CAAC;AAAA,EACT,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,EAAE;AAAA,EACb,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,IAAI;AAAA,EACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,EACf,IAAI;AACN,GAAG;AAAA,EACD,MAAM,CAAC,MAAM,IAAI;AAAA,EACjB,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE;AAAA,EACjB,IAAI;AACN,CAAC,GACGC,KAAqB;AAAA,EACvB,GAAG,SAAUvZ,GAAG;AACd,WAAO,EAAOA,IAAI;AAAA,EACnB;AAAA,EACD,GAAG,SAAUA,GAAG;AACd,WAAO,EAAOA,KAAK;AAAA,EACpB;AAAA,EACD,GAAG,SAAUA,GAAG;AACd,WAAO;AAAA,EACR;AAAA,EACD,GAAG,SAAUA,GAAG;AACd,WAAcA,IAAI,MAAM,KAAKA,IAAI,OAAO,KAAK,IAAIA,IAAI,MAAM,KAAKA,IAAI,MAAM,MAAMA,IAAI,MAAM,MAAMA,IAAI,OAAO,MAAM,IAAI;AAAA,EACtH;AAAA,EACD,GAAG,SAAUA,GAAG;AACd,WAAcA,KAAK,IAAI,IAAIA,KAAK,IAAI,IAAIA,KAAK,IAAI,IAAIA,IAAI,OAAO,KAAKA,IAAI,OAAO,KAAK,IAAIA,IAAI,OAAO,KAAK,IAAI;AAAA,EAC9G;AAAA,EACD,GAAG,SAAUA,GAAG;AACd,WAAcA,KAAK,IAAI,IAAIA,KAAK,KAAKA,KAAK,IAAI,IAAI;AAAA,EACnD;AAAA,EACD,GAAG,SAAUA,GAAG;AACd,WAAcA,KAAK,IAAI,IAAIA,IAAI,MAAM,KAAKA,IAAI,MAAM,MAAMA,IAAI,MAAM,MAAMA,IAAI,OAAO,MAAM,IAAI;AAAA,EAChG;AAAA,EACD,GAAG,SAAUA,GAAG;AACd,WAAcA,KAAK,IAAI,IAAIA,KAAK,IAAI,IAAIA,KAAK,KAAKA,KAAK,KAAK,IAAI;AAAA,EACjE;AAAA,EACD,GAAG,SAAUA,GAAG;AACd,WAAO,EAAOA,KAAK;AAAA,EACpB;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,KAAK,IAAI,IAAIA,KAAK,IAAI,IAAIA,IAAI,IAAI,IAAIA,IAAI,KAAK,IAAI;AAAA,EAClE;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,KAAK,KAAKA,KAAK,KAAK,IAAIA,KAAK,KAAKA,KAAK,KAAK,IAAIA,IAAI,KAAKA,IAAI,KAAK,IAAI;AAAA,EACrF;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAO,EAAOA,IAAI,MAAM,KAAKA,IAAI,OAAO;AAAA,EACzC;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAO,EAAOA,MAAM;AAAA,EACrB;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,KAAK,IAAI,IAAIA,KAAK,IAAI,IAAIA,KAAK,IAAI,IAAI;AAAA,EACtD;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,IAAI,MAAM,KAAKA,IAAI,OAAO,KAAK,IAAIA,IAAI,MAAM,MAAMA,IAAI,MAAM,MAAMA,IAAI,OAAO,MAAM,IAAI;AAAA,EACvG;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,IAAI,MAAM,KAAKA,IAAI,OAAO,KAAK,IAAIA,MAAM,IAAI,IAAI;AAAA,EAChE;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,KAAK,KAAKA,IAAI,MAAM,KAAKA,IAAI,OAAO,KAAK,IAAI;AAAA,EAC5D;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,KAAK,IAAI,IAAIA,KAAK,IAAI,IAAI;AAAA,EACzC;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,KAAK,IAAI,IAAIA,KAAK,KAAKA,IAAI,MAAM,KAAKA,IAAI,MAAM,KAAK,IAAIA,IAAI,MAAM,MAAMA,IAAI,MAAM,KAAK,IAAI;AAAA,EAC3G;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,KAAK,IAAI,IAAIA,KAAK,KAAKA,IAAI,MAAM,KAAKA,IAAI,MAAM,KAAK,IAAI;AAAA,EACxE;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,IAAI,OAAO,IAAI,IAAIA,IAAI,OAAO,IAAI,IAAIA,IAAI,OAAO,KAAKA,IAAI,OAAO,IAAI,IAAI;AAAA,EACxF;AAAA,EACD,IAAI,SAAUA,GAAG;AACf,WAAcA,KAAK,IAAI,IAAIA,KAAK,IAAI,KAAKA,IAAI,KAAKA,IAAI,OAAOA,IAAI,MAAM,IAAI,IAAI;AAAA,EAChF;AACH;AACA,MAAMwZ,KAAkB,CAAC,MAAM,MAAM,IAAI,GACnCC,KAAe,CAAC,IAAI,GACpBC,KAAgB;AAAA,EACpB,MAAM;AAAA,EACN,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AACT;AACA,SAASC,KAAc;AACrB,QAAMC,IAAQ,CAAA;AACd,SAAAN,GAAK,QAAQ,CAAAO,MAAO;AAClB,IAAAA,EAAI,KAAK,QAAQ,CAAAvZ,MAAK;AACpB,MAAAsZ,EAAMtZ,CAAC,IAAI;AAAA,QACT,SAASuZ,EAAI;AAAA,QACb,SAASN,GAAmBM,EAAI,EAAE;AAAA,MAC1C;AAAA,IACA,CAAK;AAAA,EACL,CAAG,GACMD;AACT;AACA,MAAME,GAAe;AAAA,EACnB,YAAYC,GAAe;AACzB,QAAIvW,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,SAAK,gBAAgBuW,GACrB,KAAK,UAAUvW,GACf,KAAK,SAAS2M,GAAW,OAAO,gBAAgB,IAC3C,CAAC,KAAK,QAAQ,qBAAqBsJ,GAAa,SAAS,KAAK,QAAQ,iBAAiB,OAAO,OAAO,OAAS,OAAe,CAAC,KAAK,iBACtI,KAAK,QAAQ,oBAAoB,MACjC,KAAK,OAAO,MAAM,oJAAoJ,IAExK,KAAK,QAAQE;EACd;AAAA,EACD,QAAQzF,GAAKtC,GAAK;AAChB,SAAK,MAAMsC,CAAG,IAAItC;AAAA,EACnB;AAAA,EACD,QAAQmC,GAAM;AACZ,QAAIvQ,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,QAAI,KAAK;AACP,UAAI;AACF,eAAO,IAAI,KAAK,YAAYsQ,GAAeC,MAAS,QAAQ,OAAOA,CAAI,GAAG;AAAA,UACxE,MAAMvQ,EAAQ,UAAU,YAAY;AAAA,QAC9C,CAAS;AAAA,MACF,QAAa;AACZ;AAAA,MACD;AAEH,WAAO,KAAK,MAAMuQ,CAAI,KAAK,KAAK,MAAM,KAAK,cAAc,wBAAwBA,CAAI,CAAC;AAAA,EACvF;AAAA,EACD,YAAYA,GAAM;AAChB,QAAIvQ,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,UAAMwW,IAAO,KAAK,QAAQjG,GAAMvQ,CAAO;AACvC,WAAI,KAAK,qBACAwW,KAAQA,EAAK,gBAAiB,EAAC,iBAAiB,SAAS,IAE3DA,KAAQA,EAAK,QAAQ,SAAS;AAAA,EACtC;AAAA,EACD,oBAAoBjG,GAAMrN,GAAK;AAC7B,QAAIlD,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,WAAO,KAAK,YAAYuQ,GAAMvQ,CAAO,EAAE,IAAI,CAAA0T,MAAU,GAAGxQ,CAAG,GAAGwQ,CAAM,EAAE;AAAA,EACvE;AAAA,EACD,YAAYnD,GAAM;AAChB,QAAIvQ,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,UAAMwW,IAAO,KAAK,QAAQjG,GAAMvQ,CAAO;AACvC,WAAKwW,IAGD,KAAK,qBACAA,EAAK,gBAAiB,EAAC,iBAAiB,KAAK,CAACC,GAAiBC,MAAoBR,GAAcO,CAAe,IAAIP,GAAcQ,CAAe,CAAC,EAAE,IAAI,CAAAC,MAAkB,GAAG,KAAK,QAAQ,OAAO,GAAG3W,EAAQ,UAAU,UAAU,KAAK,QAAQ,OAAO,KAAK,EAAE,GAAG2W,CAAc,EAAE,IAEhRH,EAAK,QAAQ,IAAI,CAAAI,MAAU,KAAK,UAAUrG,GAAMqG,GAAQ5W,CAAO,CAAC,IAL9D;EAMV;AAAA,EACD,UAAUuQ,GAAMsG,GAAO;AACrB,QAAI7W,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,UAAMwW,IAAO,KAAK,QAAQjG,GAAMvQ,CAAO;AACvC,WAAIwW,IACE,KAAK,qBACA,GAAG,KAAK,QAAQ,OAAO,GAAGxW,EAAQ,UAAU,UAAU,KAAK,QAAQ,OAAO,KAAK,EAAE,GAAGwW,EAAK,OAAOK,CAAK,CAAC,KAExG,KAAK,yBAAyBL,GAAMK,CAAK,KAElD,KAAK,OAAO,KAAK,6BAA6BtG,CAAI,EAAE,GAC7C;AAAA,EACR;AAAA,EACD,yBAAyBiG,GAAMK,GAAO;AACpC,UAAMC,IAAMN,EAAK,QAAQA,EAAK,QAAQK,CAAK,IAAIL,EAAK,QAAQ,KAAK,IAAIK,CAAK,CAAC;AAC3E,QAAInD,IAAS8C,EAAK,QAAQM,CAAG;AAC7B,IAAI,KAAK,QAAQ,wBAAwBN,EAAK,QAAQ,WAAW,KAAKA,EAAK,QAAQ,CAAC,MAAM,MACpF9C,MAAW,IACbA,IAAS,WACAA,MAAW,MACpBA,IAAS;AAGb,UAAMqD,IAAe,MAAM,KAAK,QAAQ,WAAWrD,EAAO,SAAU,IAAG,KAAK,QAAQ,UAAUA,EAAO,SAAQ,IAAKA,EAAO;AACzH,WAAI,KAAK,QAAQ,sBAAsB,OACjCA,MAAW,IAAU,KACrB,OAAOA,KAAW,WAAiB,WAAWA,EAAO,SAAU,CAAA,KAC5DqD,EAAY,IACV,KAAK,QAAQ,sBAAsB,QAEnC,KAAK,QAAQ,wBAAwBP,EAAK,QAAQ,WAAW,KAAKA,EAAK,QAAQ,CAAC,MAAM,IADxFO,EAAY,IAId,KAAK,QAAQ,WAAWD,EAAI,SAAQ,IAAK,KAAK,QAAQ,UAAUA,EAAI,SAAU,IAAGA,EAAI,SAAQ;AAAA,EACrG;AAAA,EACD,mBAAmB;AACjB,WAAO,CAACd,GAAgB,SAAS,KAAK,QAAQ,iBAAiB;AAAA,EAChE;AACH;AAEA,SAASgB,GAAqBtI,GAAMC,GAAazL,GAAK;AACpD,MAAI2M,IAAe,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,KACnFc,IAAsB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,IAC1F9C,IAAOY,GAAoBC,GAAMC,GAAazL,CAAG;AACrD,SAAI,CAAC2K,KAAQ8C,KAAuB,OAAOzN,KAAQ,aACjD2K,IAAOoC,GAASvB,GAAMxL,GAAK2M,CAAY,GACnChC,MAAS,WAAWA,IAAOoC,GAAStB,GAAazL,GAAK2M,CAAY,KAEjEhC;AACT;AACA,MAAMoJ,GAAa;AAAA,EACjB,cAAc;AACZ,QAAIjX,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,SAAK,SAAS2M,GAAW,OAAO,cAAc,GAC9C,KAAK,UAAU3M,GACf,KAAK,SAASA,EAAQ,iBAAiBA,EAAQ,cAAc,WAAW,CAAAD,MAASA,IACjF,KAAK,KAAKC,CAAO;AAAA,EAClB;AAAA,EACD,OAAO;AACL,QAAIA,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,IAAKA,EAAQ,kBAAeA,EAAQ,gBAAgB;AAAA,MAClD,aAAa;AAAA,IACnB;AACI,UAAMkX,IAAQlX,EAAQ;AACtB,SAAK,SAASkX,EAAM,WAAW,SAAYA,EAAM,SAAS9H,IAC1D,KAAK,cAAc8H,EAAM,gBAAgB,SAAYA,EAAM,cAAc,IACzE,KAAK,sBAAsBA,EAAM,wBAAwB,SAAYA,EAAM,sBAAsB,IACjG,KAAK,SAASA,EAAM,SAASjI,GAAYiI,EAAM,MAAM,IAAIA,EAAM,iBAAiB,MAChF,KAAK,SAASA,EAAM,SAASjI,GAAYiI,EAAM,MAAM,IAAIA,EAAM,iBAAiB,MAChF,KAAK,kBAAkBA,EAAM,kBAAkBA,EAAM,kBAAkBA,EAAM,mBAAmB,KAChG,KAAK,iBAAiBA,EAAM,iBAAiB,KAAKA,EAAM,kBAAkB,KAC1E,KAAK,iBAAiB,KAAK,iBAAiB,KAAKA,EAAM,kBAAkB,IACzE,KAAK,gBAAgBA,EAAM,gBAAgBjI,GAAYiI,EAAM,aAAa,IAAIA,EAAM,wBAAwBjI,GAAY,KAAK,GAC7H,KAAK,gBAAgBiI,EAAM,gBAAgBjI,GAAYiI,EAAM,aAAa,IAAIA,EAAM,wBAAwBjI,GAAY,GAAG,GAC3H,KAAK,0BAA0BiI,EAAM,0BAA0BA,EAAM,0BAA0BA,EAAM,2BAA2B,KAChI,KAAK,cAAcA,EAAM,cAAcA,EAAM,cAAc,KAC3D,KAAK,eAAeA,EAAM,iBAAiB,SAAYA,EAAM,eAAe,IAC5E,KAAK,YAAW;AAAA,EACjB;AAAA,EACD,QAAQ;AACN,IAAI,KAAK,WAAS,KAAK,KAAK,KAAK,OAAO;AAAA,EACzC;AAAA,EACD,cAAc;AACZ,UAAMC,IAAmB,CAACC,GAAgB7Q,MACpC6Q,KAAkBA,EAAe,WAAW7Q,KAC9C6Q,EAAe,YAAY,GACpBA,KAEF,IAAI,OAAO7Q,GAAS,GAAG;AAEhC,SAAK,SAAS4Q,EAAiB,KAAK,QAAQ,GAAG,KAAK,MAAM,QAAQ,KAAK,MAAM,EAAE,GAC/E,KAAK,iBAAiBA,EAAiB,KAAK,gBAAgB,GAAG,KAAK,MAAM,GAAG,KAAK,cAAc,QAAQ,KAAK,cAAc,GAAG,KAAK,MAAM,EAAE,GAC3I,KAAK,gBAAgBA,EAAiB,KAAK,eAAe,GAAG,KAAK,aAAa,QAAQ,KAAK,aAAa,EAAE;AAAA,EAC5G;AAAA,EACD,YAAYjI,GAAKR,GAAMgC,GAAK1Q,GAAS;AACnC,QAAIqX,GACAtX,GACAuX;AACJ,UAAM3I,IAAc,KAAK,WAAW,KAAK,QAAQ,iBAAiB,KAAK,QAAQ,cAAc,oBAAoB,CAAA;AACjH,aAAS4I,EAAUC,GAAK;AACtB,aAAOA,EAAI,QAAQ,OAAO,MAAM;AAAA,IACjC;AACD,UAAMC,IAAe,CAAAvU,MAAO;AAC1B,UAAIA,EAAI,QAAQ,KAAK,eAAe,IAAI,GAAG;AACzC,cAAM2K,IAAOmJ,GAAqBtI,GAAMC,GAAazL,GAAK,KAAK,QAAQ,cAAc,KAAK,QAAQ,mBAAmB;AACrH,eAAO,KAAK,eAAe,KAAK,OAAO2K,GAAM,QAAW6C,GAAK;AAAA,UAC3D,GAAG1Q;AAAA,UACH,GAAG0O;AAAA,UACH,kBAAkBxL;AAAA,QACnB,CAAA,IAAI2K;AAAA,MACN;AACD,YAAM9Q,IAAImG,EAAI,MAAM,KAAK,eAAe,GAClCnF,IAAIhB,EAAE,MAAO,EAAC,KAAI,GAClBZ,IAAIY,EAAE,KAAK,KAAK,eAAe,EAAE;AACvC,aAAO,KAAK,OAAOia,GAAqBtI,GAAMC,GAAa5Q,GAAG,KAAK,QAAQ,cAAc,KAAK,QAAQ,mBAAmB,GAAG5B,GAAGuU,GAAK;AAAA,QAClI,GAAG1Q;AAAA,QACH,GAAG0O;AAAA,QACH,kBAAkB3Q;AAAA,MAC1B,CAAO;AAAA,IACP;AACI,SAAK,YAAW;AAChB,UAAM2Z,IAA8B1X,KAAWA,EAAQ,+BAA+B,KAAK,QAAQ,6BAC7F4T,IAAkB5T,KAAWA,EAAQ,iBAAiBA,EAAQ,cAAc,oBAAoB,SAAYA,EAAQ,cAAc,kBAAkB,KAAK,QAAQ,cAAc;AAQrL,WAPc,CAAC;AAAA,MACb,OAAO,KAAK;AAAA,MACZ,WAAW,CAAAwX,MAAOD,EAAUC,CAAG;AAAA,IACrC,GAAO;AAAA,MACD,OAAO,KAAK;AAAA,MACZ,WAAW,CAAAA,MAAO,KAAK,cAAcD,EAAU,KAAK,OAAOC,CAAG,CAAC,IAAID,EAAUC,CAAG;AAAA,IACtF,CAAK,EACK,QAAQ,CAAAG,MAAQ;AAEpB,WADAL,IAAW,GACJD,IAAQM,EAAK,MAAM,KAAKzI,CAAG,KAAG;AACnC,cAAM0I,IAAaP,EAAM,CAAC,EAAE,KAAI;AAEhC,YADAtX,IAAQ0X,EAAaG,CAAU,GAC3B7X,MAAU;AACZ,cAAI,OAAO2X,KAAgC,YAAY;AACrD,kBAAMG,IAAOH,EAA4BxI,GAAKmI,GAAOrX,CAAO;AAC5D,YAAAD,IAAQ,OAAO8X,KAAS,WAAWA,IAAO;AAAA,UACtD,WAAqB7X,KAAW,OAAO,UAAU,eAAe,KAAKA,GAAS4X,CAAU;AAC5E,YAAA7X,IAAQ;AAAA,mBACC6T,GAAiB;AAC1B,YAAA7T,IAAQsX,EAAM,CAAC;AACf;AAAA,UACZ;AACY,iBAAK,OAAO,KAAK,8BAA8BO,CAAU,sBAAsB1I,CAAG,EAAE,GACpFnP,IAAQ;AAAA;AAEL,UAAI,OAAOA,KAAU,YAAY,CAAC,KAAK,wBAC5CA,IAAQ0N,GAAW1N,CAAK;AAE1B,cAAM+X,IAAYH,EAAK,UAAU5X,CAAK;AAStC,YARAmP,IAAMA,EAAI,QAAQmI,EAAM,CAAC,GAAGS,CAAS,GACjClE,KACF+D,EAAK,MAAM,aAAa5X,EAAM,QAC9B4X,EAAK,MAAM,aAAaN,EAAM,CAAC,EAAE,UAEjCM,EAAK,MAAM,YAAY,GAEzBL,KACIA,KAAY,KAAK;AACnB;AAAA,MAEH;AAAA,IACP,CAAK,GACMpI;AAAA,EACR;AAAA,EACD,KAAKA,GAAK2G,GAAI;AACZ,QAAI7V,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9EqX,GACAtX,GACAgY;AACJ,aAASC,EAAiB9U,GAAK+U,GAAkB;AAC/C,YAAMC,IAAM,KAAK;AACjB,UAAIhV,EAAI,QAAQgV,CAAG,IAAI;AAAG,eAAOhV;AACjC,YAAMvG,IAAIuG,EAAI,MAAM,IAAI,OAAO,GAAGgV,CAAG,OAAO,CAAC;AAC7C,UAAIC,IAAgB,IAAIxb,EAAE,CAAC,CAAC;AAC5B,MAAAuG,IAAMvG,EAAE,CAAC,GACTwb,IAAgB,KAAK,YAAYA,GAAeJ,CAAa;AAC7D,YAAMK,IAAsBD,EAAc,MAAM,IAAI,GAC9CE,IAAsBF,EAAc,MAAM,IAAI;AACpD,OAAIC,KAAuBA,EAAoB,SAAS,MAAM,KAAK,CAACC,KAAuBA,EAAoB,SAAS,MAAM,OAC5HF,IAAgBA,EAAc,QAAQ,MAAM,GAAG;AAEjD,UAAI;AACF,QAAAJ,IAAgB,KAAK,MAAMI,CAAa,GACpCF,MAAkBF,IAAgB;AAAA,UACpC,GAAGE;AAAA,UACH,GAAGF;AAAA,QACb;AAAA,MACO,SAAQ9b,GAAG;AACV,oBAAK,OAAO,KAAK,oDAAoDiH,CAAG,IAAIjH,CAAC,GACtE,GAAGiH,CAAG,GAAGgV,CAAG,GAAGC,CAAa;AAAA,MACpC;AACD,aAAIJ,EAAc,gBAAgBA,EAAc,aAAa,QAAQ,KAAK,MAAM,IAAI,MAAI,OAAOA,EAAc,cACtG7U;AAAA,IACR;AACD,WAAOmU,IAAQ,KAAK,cAAc,KAAKnI,CAAG,KAAG;AAC3C,UAAIoJ,IAAa,CAAA;AACjB,MAAAP,IAAgB;AAAA,QACd,GAAG/X;AAAA,MACX,GACM+X,IAAgBA,EAAc,WAAW,OAAOA,EAAc,WAAY,WAAWA,EAAc,UAAUA,GAC7GA,EAAc,qBAAqB,IACnC,OAAOA,EAAc;AACrB,UAAIQ,IAAW;AACf,UAAIlB,EAAM,CAAC,EAAE,QAAQ,KAAK,eAAe,MAAM,MAAM,CAAC,OAAO,KAAKA,EAAM,CAAC,CAAC,GAAG;AAC3E,cAAMrb,IAAIqb,EAAM,CAAC,EAAE,MAAM,KAAK,eAAe,EAAE,IAAI,CAAAmB,MAAQA,EAAK,KAAM,CAAA;AACtE,QAAAnB,EAAM,CAAC,IAAIrb,EAAE,MAAK,GAClBsc,IAAatc,GACbuc,IAAW;AAAA,MACZ;AAED,UADAxY,IAAQ8V,EAAGmC,EAAiB,KAAK,MAAMX,EAAM,CAAC,EAAE,KAAM,GAAEU,CAAa,GAAGA,CAAa,GACjFhY,KAASsX,EAAM,CAAC,MAAMnI,KAAO,OAAOnP,KAAU;AAAU,eAAOA;AACnE,MAAI,OAAOA,KAAU,aAAUA,IAAQ0N,GAAW1N,CAAK,IAClDA,MACH,KAAK,OAAO,KAAK,qBAAqBsX,EAAM,CAAC,CAAC,gBAAgBnI,CAAG,EAAE,GACnEnP,IAAQ,KAENwY,MACFxY,IAAQuY,EAAW,OAAO,CAAClb,GAAGjB,MAAM,KAAK,OAAOiB,GAAGjB,GAAG6D,EAAQ,KAAK;AAAA,QACjE,GAAGA;AAAA,QACH,kBAAkBqX,EAAM,CAAC,EAAE,KAAM;AAAA,MAC3C,CAAS,GAAGtX,EAAM,KAAI,CAAE,IAElBmP,IAAMA,EAAI,QAAQmI,EAAM,CAAC,GAAGtX,CAAK,GACjC,KAAK,OAAO,YAAY;AAAA,IACzB;AACD,WAAOmP;AAAA,EACR;AACH;AAEA,SAASuJ,GAAeC,GAAW;AACjC,MAAIC,IAAaD,EAAU,YAAa,EAAC,KAAI;AAC7C,QAAME,IAAgB,CAAA;AACtB,MAAIF,EAAU,QAAQ,GAAG,IAAI,IAAI;AAC/B,UAAM3b,IAAI2b,EAAU,MAAM,GAAG;AAC7B,IAAAC,IAAa5b,EAAE,CAAC,EAAE,YAAa,EAAC,KAAI;AACpC,UAAM8b,IAAS9b,EAAE,CAAC,EAAE,UAAU,GAAGA,EAAE,CAAC,EAAE,SAAS,CAAC;AAChD,IAAI4b,MAAe,cAAcE,EAAO,QAAQ,GAAG,IAAI,IAChDD,EAAc,aAAUA,EAAc,WAAWC,EAAO,UACpDF,MAAe,kBAAkBE,EAAO,QAAQ,GAAG,IAAI,IAC3DD,EAAc,UAAOA,EAAc,QAAQC,EAAO,UAE1CA,EAAO,MAAM,GAAG,EACxB,QAAQ,CAAAC,MAAO;AAClB,UAAI,CAACA;AAAK;AACV,YAAM,CAAC5V,GAAK,GAAG6V,CAAI,IAAID,EAAI,MAAM,GAAG,GAC9BtB,IAAMuB,EAAK,KAAK,GAAG,EAAE,KAAI,EAAG,QAAQ,YAAY,EAAE;AACxD,MAAKH,EAAc1V,EAAI,KAAM,CAAA,MAAG0V,EAAc1V,EAAI,MAAM,IAAIsU,IACxDA,MAAQ,YAASoB,EAAc1V,EAAI,KAAI,CAAE,IAAI,KAC7CsU,MAAQ,WAAQoB,EAAc1V,EAAI,KAAI,CAAE,IAAI,KAC3C,MAAMsU,CAAG,MAAGoB,EAAc1V,EAAI,KAAI,CAAE,IAAI,SAASsU,GAAK,EAAE;AAAA,IACrE,CAAO;AAAA,EAEJ;AACD,SAAO;AAAA,IACL,YAAAmB;AAAA,IACA,eAAAC;AAAA,EACJ;AACA;AACA,SAASI,GAAsBC,GAAI;AACjC,QAAMC,IAAQ,CAAA;AACd,SAAO,SAAyB1B,GAAK9G,GAAK1Q,GAAS;AACjD,UAAMkD,IAAMwN,IAAM,KAAK,UAAU1Q,CAAO;AACxC,QAAImZ,IAAYD,EAAMhW,CAAG;AACzB,WAAKiW,MACHA,IAAYF,EAAG3I,GAAeI,CAAG,GAAG1Q,CAAO,GAC3CkZ,EAAMhW,CAAG,IAAIiW,IAERA,EAAU3B,CAAG;AAAA,EACxB;AACA;AACA,MAAM4B,GAAU;AAAA,EACd,cAAc;AACZ,QAAIpZ,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,SAAK,SAAS2M,GAAW,OAAO,WAAW,GAC3C,KAAK,UAAU3M,GACf,KAAK,UAAU;AAAA,MACb,QAAQgZ,GAAsB,CAACtI,GAAKoI,MAAQ;AAC1C,cAAMK,IAAY,IAAI,KAAK,aAAazI,GAAK;AAAA,UAC3C,GAAGoI;AAAA,QACb,CAAS;AACD,eAAO,CAAAtB,MAAO2B,EAAU,OAAO3B,CAAG;AAAA,MAC1C,CAAO;AAAA,MACD,UAAUwB,GAAsB,CAACtI,GAAKoI,MAAQ;AAC5C,cAAMK,IAAY,IAAI,KAAK,aAAazI,GAAK;AAAA,UAC3C,GAAGoI;AAAA,UACH,OAAO;AAAA,QACjB,CAAS;AACD,eAAO,CAAAtB,MAAO2B,EAAU,OAAO3B,CAAG;AAAA,MAC1C,CAAO;AAAA,MACD,UAAUwB,GAAsB,CAACtI,GAAKoI,MAAQ;AAC5C,cAAMK,IAAY,IAAI,KAAK,eAAezI,GAAK;AAAA,UAC7C,GAAGoI;AAAA,QACb,CAAS;AACD,eAAO,CAAAtB,MAAO2B,EAAU,OAAO3B,CAAG;AAAA,MAC1C,CAAO;AAAA,MACD,cAAcwB,GAAsB,CAACtI,GAAKoI,MAAQ;AAChD,cAAMK,IAAY,IAAI,KAAK,mBAAmBzI,GAAK;AAAA,UACjD,GAAGoI;AAAA,QACb,CAAS;AACD,eAAO,CAAAtB,MAAO2B,EAAU,OAAO3B,GAAKsB,EAAI,SAAS,KAAK;AAAA,MAC9D,CAAO;AAAA,MACD,MAAME,GAAsB,CAACtI,GAAKoI,MAAQ;AACxC,cAAMK,IAAY,IAAI,KAAK,WAAWzI,GAAK;AAAA,UACzC,GAAGoI;AAAA,QACb,CAAS;AACD,eAAO,CAAAtB,MAAO2B,EAAU,OAAO3B,CAAG;AAAA,MAC1C,CAAO;AAAA,IACP,GACI,KAAK,KAAKxX,CAAO;AAAA,EAClB;AAAA,EACD,KAAKqR,GAAU;AAIb,UAAM6F,KAHQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MAChF,eAAe,CAAE;AAAA,IACvB,GAC0B;AACtB,SAAK,kBAAkBA,EAAM,kBAAkBA,EAAM,kBAAkBA,EAAM,mBAAmB;AAAA,EACjG;AAAA,EACD,IAAIpX,GAAM+V,GAAI;AACZ,SAAK,QAAQ/V,EAAK,YAAa,EAAC,KAAI,CAAE,IAAI+V;AAAA,EAC3C;AAAA,EACD,UAAU/V,GAAM+V,GAAI;AAClB,SAAK,QAAQ/V,EAAK,YAAW,EAAG,MAAM,IAAIkZ,GAAsBnD,CAAE;AAAA,EACnE;AAAA,EACD,OAAO9V,GAAOsZ,GAAQ3I,GAAK;AACzB,QAAI1Q,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AA0BlF,WAzBgBqZ,EAAO,MAAM,KAAK,eAAe,EAC1B,OAAO,CAACC,GAAKnd,MAAM;AACxC,YAAM;AAAA,QACJ,YAAAwc;AAAA,QACA,eAAAC;AAAA,MACR,IAAUH,GAAetc,CAAC;AACpB,UAAI,KAAK,QAAQwc,CAAU,GAAG;AAC5B,YAAIY,IAAYD;AAChB,YAAI;AACF,gBAAME,IAAaxZ,KAAWA,EAAQ,gBAAgBA,EAAQ,aAAaA,EAAQ,gBAAgB,KAAK,IAClGlD,IAAI0c,EAAW,UAAUA,EAAW,OAAOxZ,EAAQ,UAAUA,EAAQ,OAAO0Q;AAClF,UAAA6I,IAAY,KAAK,QAAQZ,CAAU,EAAEW,GAAKxc,GAAG;AAAA,YAC3C,GAAG8b;AAAA,YACH,GAAG5Y;AAAA,YACH,GAAGwZ;AAAA,UACf,CAAW;AAAA,QACF,SAAQC,GAAO;AACd,eAAK,OAAO,KAAKA,CAAK;AAAA,QACvB;AACD,eAAOF;AAAA,MACf;AACQ,aAAK,OAAO,KAAK,oCAAoCZ,CAAU,EAAE;AAEnE,aAAOW;AAAA,IACR,GAAEvZ,CAAK;AAAA,EAET;AACH;AAEA,SAAS2Z,GAAc5a,GAAGgB,GAAM;AAC9B,EAAIhB,EAAE,QAAQgB,CAAI,MAAM,WACtB,OAAOhB,EAAE,QAAQgB,CAAI,GACrBhB,EAAE;AAEN;AACA,MAAM6a,WAAkB/M,GAAa;AAAA,EACnC,YAAYgN,GAASC,GAAOxI,GAAU;AACpC,QAAIrR,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,aACA,KAAK,UAAU4Z,GACf,KAAK,QAAQC,GACb,KAAK,WAAWxI,GAChB,KAAK,gBAAgBA,EAAS,eAC9B,KAAK,UAAUrR,GACf,KAAK,SAAS2M,GAAW,OAAO,kBAAkB,GAClD,KAAK,eAAe,IACpB,KAAK,mBAAmB3M,EAAQ,oBAAoB,IACpD,KAAK,eAAe,GACpB,KAAK,aAAaA,EAAQ,cAAc,IAAIA,EAAQ,aAAa,GACjE,KAAK,eAAeA,EAAQ,gBAAgB,IAAIA,EAAQ,eAAe,KACvE,KAAK,QAAQ,IACb,KAAK,QAAQ,IACT,KAAK,WAAW,KAAK,QAAQ,QAC/B,KAAK,QAAQ,KAAKqR,GAAUrR,EAAQ,SAASA,CAAO;AAAA,EAEvD;AAAA,EACD,UAAU8Z,GAAWvI,GAAYvR,GAAS2G,GAAU;AAClD,UAAMoT,IAAS,CAAA,GACTC,IAAU,CAAA,GACVC,IAAkB,CAAA,GAClBC,IAAmB,CAAA;AACzB,WAAAJ,EAAU,QAAQ,CAAApJ,MAAO;AACvB,UAAIyJ,IAAmB;AACvB,MAAA5I,EAAW,QAAQ,CAAAd,MAAM;AACvB,cAAM3Q,IAAO,GAAG4Q,CAAG,IAAID,CAAE;AACzB,QAAI,CAACzQ,EAAQ,UAAU,KAAK,MAAM,kBAAkB0Q,GAAKD,CAAE,IACzD,KAAK,MAAM3Q,CAAI,IAAI,IACV,KAAK,MAAMA,CAAI,IAAI,MAAc,KAAK,MAAMA,CAAI,MAAM,IAC3Dka,EAAQla,CAAI,MAAM,WAAWka,EAAQla,CAAI,IAAI,OAEjD,KAAK,MAAMA,CAAI,IAAI,GACnBqa,IAAmB,IACfH,EAAQla,CAAI,MAAM,WAAWka,EAAQla,CAAI,IAAI,KAC7Cia,EAAOja,CAAI,MAAM,WAAWia,EAAOja,CAAI,IAAI,KAC3Coa,EAAiBzJ,CAAE,MAAM,WAAWyJ,EAAiBzJ,CAAE,IAAI;AAAA,MAEzE,CAAO,GACI0J,MAAkBF,EAAgBvJ,CAAG,IAAI;AAAA,IACpD,CAAK,IACG,OAAO,KAAKqJ,CAAM,EAAE,UAAU,OAAO,KAAKC,CAAO,EAAE,WACrD,KAAK,MAAM,KAAK;AAAA,MACd,SAAAA;AAAA,MACA,cAAc,OAAO,KAAKA,CAAO,EAAE;AAAA,MACnC,QAAQ,CAAE;AAAA,MACV,QAAQ,CAAE;AAAA,MACV,UAAArT;AAAA,IACR,CAAO,GAEI;AAAA,MACL,QAAQ,OAAO,KAAKoT,CAAM;AAAA,MAC1B,SAAS,OAAO,KAAKC,CAAO;AAAA,MAC5B,iBAAiB,OAAO,KAAKC,CAAe;AAAA,MAC5C,kBAAkB,OAAO,KAAKC,CAAgB;AAAA,IACpD;AAAA,EACG;AAAA,EACD,OAAOpa,GAAMsa,GAAK1L,GAAM;AACtB,UAAM,IAAI5O,EAAK,MAAM,GAAG,GAClB4Q,IAAM,EAAE,CAAC,GACTD,IAAK,EAAE,CAAC;AACd,IAAI2J,KAAK,KAAK,KAAK,iBAAiB1J,GAAKD,GAAI2J,CAAG,GAC5C1L,KACF,KAAK,MAAM,kBAAkBgC,GAAKD,GAAI/B,GAAM,QAAW,QAAW;AAAA,MAChE,UAAU;AAAA,IAClB,CAAO,GAEH,KAAK,MAAM5O,CAAI,IAAIsa,IAAM,KAAK;AAC9B,UAAMC,IAAS,CAAA;AACf,SAAK,MAAM,QAAQ,CAAAvb,MAAK;AACtB,MAAAwP,GAASxP,EAAE,QAAQ,CAAC4R,CAAG,GAAGD,CAAE,GAC5BiJ,GAAc5a,GAAGgB,CAAI,GACjBsa,KAAKtb,EAAE,OAAO,KAAKsb,CAAG,GACtBtb,EAAE,iBAAiB,KAAK,CAACA,EAAE,SAC7B,OAAO,KAAKA,EAAE,MAAM,EAAE,QAAQ,CAAAhC,MAAK;AACjC,QAAKud,EAAOvd,CAAC,MAAGud,EAAOvd,CAAC,IAAI;AAC5B,cAAMwd,IAAaxb,EAAE,OAAOhC,CAAC;AAC7B,QAAIwd,EAAW,UACbA,EAAW,QAAQ,CAAA9d,MAAK;AACtB,UAAI6d,EAAOvd,CAAC,EAAEN,CAAC,MAAM,WAAW6d,EAAOvd,CAAC,EAAEN,CAAC,IAAI;AAAA,QAC7D,CAAa;AAAA,MAEb,CAAS,GACDsC,EAAE,OAAO,IACLA,EAAE,OAAO,SACXA,EAAE,SAASA,EAAE,MAAM,IAEnBA,EAAE,SAAQ;AAAA,IAGpB,CAAK,GACD,KAAK,KAAK,UAAUub,CAAM,GAC1B,KAAK,QAAQ,KAAK,MAAM,OAAO,CAAAvb,MAAK,CAACA,EAAE,IAAI;AAAA,EAC5C;AAAA,EACD,KAAK4R,GAAKD,GAAI8J,GAAQ;AACpB,QAAIC,IAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,GAC5EC,IAAO,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,KAAK,cAChF9T,IAAW,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AACrD,QAAI,CAAC+J,EAAI;AAAQ,aAAO/J,EAAS,MAAM,CAAA,CAAE;AACzC,QAAI,KAAK,gBAAgB,KAAK,kBAAkB;AAC9C,WAAK,aAAa,KAAK;AAAA,QACrB,KAAA+J;AAAA,QACA,IAAAD;AAAA,QACA,QAAA8J;AAAA,QACA,OAAAC;AAAA,QACA,MAAAC;AAAA,QACA,UAAA9T;AAAA,MACR,CAAO;AACD;AAAA,IACD;AACD,SAAK;AACL,UAAM+T,IAAW,CAACN,GAAK1L,MAAS;AAE9B,UADA,KAAK,gBACD,KAAK,aAAa,SAAS,GAAG;AAChC,cAAM0B,IAAO,KAAK,aAAa,MAAK;AACpC,aAAK,KAAKA,EAAK,KAAKA,EAAK,IAAIA,EAAK,QAAQA,EAAK,OAAOA,EAAK,MAAMA,EAAK,QAAQ;AAAA,MAC/E;AACD,UAAIgK,KAAO1L,KAAQ8L,IAAQ,KAAK,YAAY;AAC1C,mBAAW,MAAM;AACf,eAAK,KAAK,KAAK,MAAM9J,GAAKD,GAAI8J,GAAQC,IAAQ,GAAGC,IAAO,GAAG9T,CAAQ;AAAA,QACpE,GAAE8T,CAAI;AACP;AAAA,MACD;AACD,MAAA9T,EAASyT,GAAK1L,CAAI;AAAA,IACxB,GACUmH,IAAK,KAAK,QAAQ0E,CAAM,EAAE,KAAK,KAAK,OAAO;AACjD,QAAI1E,EAAG,WAAW,GAAG;AACnB,UAAI;AACF,cAAM7Z,IAAI6Z,EAAGnF,GAAKD,CAAE;AACpB,QAAIzU,KAAK,OAAOA,EAAE,QAAS,aACzBA,EAAE,KAAK,CAAA0S,MAAQgM,EAAS,MAAMhM,CAAI,CAAC,EAAE,MAAMgM,CAAQ,IAEnDA,EAAS,MAAM1e,CAAC;AAAA,MAEnB,SAAQoe,GAAK;AACZ,QAAAM,EAASN,CAAG;AAAA,MACb;AACD;AAAA,IACD;AACD,WAAOvE,EAAGnF,GAAKD,GAAIiK,CAAQ;AAAA,EAC5B;AAAA,EACD,eAAeZ,GAAWvI,GAAY;AACpC,QAAIvR,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9E2G,IAAW,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AACrD,QAAI,CAAC,KAAK;AACR,kBAAK,OAAO,KAAK,gEAAgE,GAC1EA,KAAYA;AAErB,IAAI,OAAOmT,KAAc,aAAUA,IAAY,KAAK,cAAc,mBAAmBA,CAAS,IAC1F,OAAOvI,KAAe,aAAUA,IAAa,CAACA,CAAU;AAC5D,UAAMwI,IAAS,KAAK,UAAUD,GAAWvI,GAAYvR,GAAS2G,CAAQ;AACtE,QAAI,CAACoT,EAAO,OAAO;AACjB,aAAKA,EAAO,QAAQ,UAAQpT,EAAQ,GAC7B;AAET,IAAAoT,EAAO,OAAO,QAAQ,CAAAja,MAAQ;AAC5B,WAAK,QAAQA,CAAI;AAAA,IACvB,CAAK;AAAA,EACF;AAAA,EACD,KAAKga,GAAWvI,GAAY5K,GAAU;AACpC,SAAK,eAAemT,GAAWvI,GAAY,CAAE,GAAE5K,CAAQ;AAAA,EACxD;AAAA,EACD,OAAOmT,GAAWvI,GAAY5K,GAAU;AACtC,SAAK,eAAemT,GAAWvI,GAAY;AAAA,MACzC,QAAQ;AAAA,IACT,GAAE5K,CAAQ;AAAA,EACZ;AAAA,EACD,QAAQ7G,GAAM;AACZ,QAAI0M,IAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACjF,UAAMlQ,IAAIwD,EAAK,MAAM,GAAG,GAClB4Q,IAAMpU,EAAE,CAAC,GACTmU,IAAKnU,EAAE,CAAC;AACd,SAAK,KAAKoU,GAAKD,GAAI,QAAQ,QAAW,QAAW,CAAC2J,GAAK1L,MAAS;AAC9D,MAAI0L,KAAK,KAAK,OAAO,KAAK,GAAG5N,CAAM,qBAAqBiE,CAAE,iBAAiBC,CAAG,WAAW0J,CAAG,GACxF,CAACA,KAAO1L,KAAM,KAAK,OAAO,IAAI,GAAGlC,CAAM,oBAAoBiE,CAAE,iBAAiBC,CAAG,IAAIhC,CAAI,GAC7F,KAAK,OAAO5O,GAAMsa,GAAK1L,CAAI;AAAA,IACjC,CAAK;AAAA,EACF;AAAA,EACD,YAAYoL,GAAWjI,GAAW3O,GAAKyX,GAAeC,GAAU;AAC9D,QAAI5a,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9E6a,IAAM,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,MAAM;AAAA,IAAA;AACpF,QAAI,KAAK,SAAS,SAAS,KAAK,SAAS,MAAM,sBAAsB,CAAC,KAAK,SAAS,MAAM,mBAAmBhJ,CAAS,GAAG;AACvH,WAAK,OAAO,KAAK,qBAAqB3O,CAAG,uBAAuB2O,CAAS,wBAAwB,0NAA0N;AAC3T;AAAA,IACD;AACD,QAAI,EAAqB3O,KAAQ,QAAQA,MAAQ,KACjD;AAAA,UAAI,KAAK,WAAW,KAAK,QAAQ,QAAQ;AACvC,cAAMmG,IAAO;AAAA,UACX,GAAGrJ;AAAA,UACH,UAAA4a;AAAA,QACR,GACY/E,IAAK,KAAK,QAAQ,OAAO,KAAK,KAAK,OAAO;AAChD,YAAIA,EAAG,SAAS;AACd,cAAI;AACF,gBAAI7Z;AACJ,YAAI6Z,EAAG,WAAW,IAChB7Z,IAAI6Z,EAAGiE,GAAWjI,GAAW3O,GAAKyX,GAAetR,CAAI,IAErDrN,IAAI6Z,EAAGiE,GAAWjI,GAAW3O,GAAKyX,CAAa,GAE7C3e,KAAK,OAAOA,EAAE,QAAS,aACzBA,EAAE,KAAK,CAAA0S,MAAQmM,EAAI,MAAMnM,CAAI,CAAC,EAAE,MAAMmM,CAAG,IAEzCA,EAAI,MAAM7e,CAAC;AAAA,UAEd,SAAQoe,GAAK;AACZ,YAAAS,EAAIT,CAAG;AAAA,UACR;AAAA;AAED,UAAAvE,EAAGiE,GAAWjI,GAAW3O,GAAKyX,GAAeE,GAAKxR,CAAI;AAAA,MAEzD;AACD,MAAI,CAACyQ,KAAa,CAACA,EAAU,CAAC,KAC9B,KAAK,MAAM,YAAYA,EAAU,CAAC,GAAGjI,GAAW3O,GAAKyX,CAAa;AAAA;AAAA,EACnE;AACH;AAEA,SAASG,KAAM;AACb,SAAO;AAAA,IACL,OAAO;AAAA,IACP,eAAe;AAAA,IACf,IAAI,CAAC,aAAa;AAAA,IAClB,WAAW,CAAC,aAAa;AAAA,IACzB,aAAa,CAAC,KAAK;AAAA,IACnB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,0BAA0B;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,IACT,sBAAsB;AAAA,IACtB,cAAc;AAAA,IACd,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,yBAAyB;AAAA,IACzB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,IACnB,6BAA6B;AAAA,IAC7B,aAAa;AAAA,IACb,yBAAyB;AAAA,IACzB,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,uBAAuB;AAAA,IACvB,wBAAwB;AAAA,IACxB,6BAA6B;AAAA,IAC7B,yBAAyB;AAAA,IACzB,kCAAkC,SAAgBzP,GAAM;AACtD,UAAI0P,IAAM,CAAA;AAIV,UAHI,OAAO1P,EAAK,CAAC,KAAM,aAAU0P,IAAM1P,EAAK,CAAC,IACzC,OAAOA,EAAK,CAAC,KAAM,aAAU0P,EAAI,eAAe1P,EAAK,CAAC,IACtD,OAAOA,EAAK,CAAC,KAAM,aAAU0P,EAAI,eAAe1P,EAAK,CAAC,IACtD,OAAOA,EAAK,CAAC,KAAM,YAAY,OAAOA,EAAK,CAAC,KAAM,UAAU;AAC9D,cAAMrL,IAAUqL,EAAK,CAAC,KAAKA,EAAK,CAAC;AACjC,eAAO,KAAKrL,CAAO,EAAE,QAAQ,CAAAkD,MAAO;AAClC,UAAA6X,EAAI7X,CAAG,IAAIlD,EAAQkD,CAAG;AAAA,QAChC,CAAS;AAAA,MACF;AACD,aAAO6X;AAAA,IACR;AAAA,IACD,eAAe;AAAA,MACb,aAAa;AAAA,MACb,QAAQ,CAAAhb,MAASA;AAAA,MACjB,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,eAAe;AAAA,MACf,yBAAyB;AAAA,MACzB,aAAa;AAAA,MACb,iBAAiB;AAAA,IAClB;AAAA,EACL;AACA;AACA,SAASib,GAAiBhb,GAAS;AACjC,SAAI,OAAOA,EAAQ,MAAO,aAAUA,EAAQ,KAAK,CAACA,EAAQ,EAAE,IACxD,OAAOA,EAAQ,eAAgB,aAAUA,EAAQ,cAAc,CAACA,EAAQ,WAAW,IACnF,OAAOA,EAAQ,cAAe,aAAUA,EAAQ,aAAa,CAACA,EAAQ,UAAU,IAChFA,EAAQ,iBAAiBA,EAAQ,cAAc,QAAQ,QAAQ,IAAI,MACrEA,EAAQ,gBAAgBA,EAAQ,cAAc,OAAO,CAAC,QAAQ,CAAC,IAE1DA;AACT;AAEA,SAASib,KAAO;AAAE;AAClB,SAASC,GAAoBC,GAAM;AAEjC,EADa,OAAO,oBAAoB,OAAO,eAAeA,CAAI,CAAC,EAC9D,QAAQ,CAAA7B,MAAO;AAClB,IAAI,OAAO6B,EAAK7B,CAAG,KAAM,eACvB6B,EAAK7B,CAAG,IAAI6B,EAAK7B,CAAG,EAAE,KAAK6B,CAAI;AAAA,EAErC,CAAG;AACH;AACA,MAAMC,WAAaxO,GAAa;AAAA,EAC9B,cAAc;AACZ,QAAI5M,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9E2G,IAAW,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AASrD,QARA,SACA,KAAK,UAAUqU,GAAiBhb,CAAO,GACvC,KAAK,WAAW,IAChB,KAAK,SAAS2M,IACd,KAAK,UAAU;AAAA,MACb,UAAU,CAAE;AAAA,IAClB,GACIuO,GAAoB,IAAI,GACpBvU,KAAY,CAAC,KAAK,iBAAiB,CAAC3G,EAAQ,SAAS;AACvD,UAAI,CAAC,KAAK,QAAQ;AAChB,oBAAK,KAAKA,GAAS2G,CAAQ,GACpB;AAET,iBAAW,MAAM;AACf,aAAK,KAAK3G,GAAS2G,CAAQ;AAAA,MAC5B,GAAE,CAAC;AAAA,IACL;AAAA,EACF;AAAA,EACD,OAAO;AACL,QAAIgN,IAAQ;AACZ,QAAI3T,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9E2G,IAAW,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AACrD,SAAK,iBAAiB,IAClB,OAAO3G,KAAY,eACrB2G,IAAW3G,GACXA,IAAU,CAAA,IAER,CAACA,EAAQ,aAAaA,EAAQ,cAAc,MAASA,EAAQ,OAC3D,OAAOA,EAAQ,MAAO,WACxBA,EAAQ,YAAYA,EAAQ,KACnBA,EAAQ,GAAG,QAAQ,aAAa,IAAI,MAC7CA,EAAQ,YAAYA,EAAQ,GAAG,CAAC;AAGpC,UAAMqb,IAAUP;AAChB,SAAK,UAAU;AAAA,MACb,GAAGO;AAAA,MACH,GAAG,KAAK;AAAA,MACR,GAAGL,GAAiBhb,CAAO;AAAA,IACjC,GACQ,KAAK,QAAQ,qBAAqB,SACpC,KAAK,QAAQ,gBAAgB;AAAA,MAC3B,GAAGqb,EAAQ;AAAA,MACX,GAAG,KAAK,QAAQ;AAAA,IACxB,IAEQrb,EAAQ,iBAAiB,WAC3B,KAAK,QAAQ,0BAA0BA,EAAQ,eAE7CA,EAAQ,gBAAgB,WAC1B,KAAK,QAAQ,yBAAyBA,EAAQ;AAEhD,aAASsb,EAAoBC,GAAe;AAC1C,aAAKA,IACD,OAAOA,KAAkB,aAAmB,IAAIA,EAAa,IAC1DA,IAFoB;AAAA,IAG5B;AACD,QAAI,CAAC,KAAK,QAAQ,SAAS;AACzB,MAAI,KAAK,QAAQ,SACf5O,GAAW,KAAK2O,EAAoB,KAAK,QAAQ,MAAM,GAAG,KAAK,OAAO,IAEtE3O,GAAW,KAAK,MAAM,KAAK,OAAO;AAEpC,UAAIwM;AACJ,MAAI,KAAK,QAAQ,YACfA,IAAY,KAAK,QAAQ,YAChB,OAAO,OAAS,QACzBA,IAAYC;AAEd,YAAMoC,IAAK,IAAIpG,GAAa,KAAK,OAAO;AACxC,WAAK,QAAQ,IAAI5E,GAAc,KAAK,QAAQ,WAAW,KAAK,OAAO;AACnE,YAAMlU,IAAI,KAAK;AACf,MAAAA,EAAE,SAASqQ,IACXrQ,EAAE,gBAAgB,KAAK,OACvBA,EAAE,gBAAgBkf,GAClBlf,EAAE,iBAAiB,IAAIga,GAAekF,GAAI;AAAA,QACxC,SAAS,KAAK,QAAQ;AAAA,QACtB,mBAAmB,KAAK,QAAQ;AAAA,QAChC,sBAAsB,KAAK,QAAQ;AAAA,MAC3C,CAAO,GACGrC,MAAc,CAAC,KAAK,QAAQ,cAAc,UAAU,KAAK,QAAQ,cAAc,WAAWkC,EAAQ,cAAc,YAClH/e,EAAE,YAAYgf,EAAoBnC,CAAS,GAC3C7c,EAAE,UAAU,KAAKA,GAAG,KAAK,OAAO,GAChC,KAAK,QAAQ,cAAc,SAASA,EAAE,UAAU,OAAO,KAAKA,EAAE,SAAS,IAEzEA,EAAE,eAAe,IAAI2a,GAAa,KAAK,OAAO,GAC9C3a,EAAE,QAAQ;AAAA,QACR,oBAAoB,KAAK,mBAAmB,KAAK,IAAI;AAAA,MAC7D,GACMA,EAAE,mBAAmB,IAAIqd,GAAU2B,EAAoB,KAAK,QAAQ,OAAO,GAAGhf,EAAE,eAAeA,GAAG,KAAK,OAAO,GAC9GA,EAAE,iBAAiB,GAAG,KAAK,SAAU2D,GAAO;AAC1C,iBAAS8L,IAAO,UAAU,QAAQV,IAAO,IAAI,MAAMU,IAAO,IAAIA,IAAO,IAAI,CAAC,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AAClG,UAAAX,EAAKW,IAAO,CAAC,IAAI,UAAUA,CAAI;AAEjC,QAAA2H,EAAM,KAAK1T,GAAO,GAAGoL,CAAI;AAAA,MACjC,CAAO,GACG,KAAK,QAAQ,qBACf/O,EAAE,mBAAmBgf,EAAoB,KAAK,QAAQ,gBAAgB,GAClEhf,EAAE,iBAAiB,QAAMA,EAAE,iBAAiB,KAAKA,GAAG,KAAK,QAAQ,WAAW,KAAK,OAAO,IAE1F,KAAK,QAAQ,eACfA,EAAE,aAAagf,EAAoB,KAAK,QAAQ,UAAU,GACtDhf,EAAE,WAAW,QAAMA,EAAE,WAAW,KAAK,IAAI,IAE/C,KAAK,aAAa,IAAI8U,GAAW,KAAK,UAAU,KAAK,OAAO,GAC5D,KAAK,WAAW,GAAG,KAAK,SAAUnR,GAAO;AACvC,iBAASgM,IAAQ,UAAU,QAAQZ,IAAO,IAAI,MAAMY,IAAQ,IAAIA,IAAQ,IAAI,CAAC,GAAGC,IAAQ,GAAGA,IAAQD,GAAOC;AACxG,UAAAb,EAAKa,IAAQ,CAAC,IAAI,UAAUA,CAAK;AAEnC,QAAAyH,EAAM,KAAK1T,GAAO,GAAGoL,CAAI;AAAA,MACjC,CAAO,GACD,KAAK,QAAQ,SAAS,QAAQ,CAAAhO,MAAK;AACjC,QAAIA,EAAE,QAAMA,EAAE,KAAK,IAAI;AAAA,MAC/B,CAAO;AAAA,IACF;AAGD,QAFA,KAAK,SAAS,KAAK,QAAQ,cAAc,QACpCsJ,MAAUA,IAAWsU,KACtB,KAAK,QAAQ,eAAe,CAAC,KAAK,SAAS,oBAAoB,CAAC,KAAK,QAAQ,KAAK;AACpF,YAAMxG,IAAQ,KAAK,SAAS,cAAc,iBAAiB,KAAK,QAAQ,WAAW;AACnF,MAAIA,EAAM,SAAS,KAAKA,EAAM,CAAC,MAAM,UAAO,KAAK,QAAQ,MAAMA,EAAM,CAAC;AAAA,IACvE;AACD,IAAI,CAAC,KAAK,SAAS,oBAAoB,CAAC,KAAK,QAAQ,OACnD,KAAK,OAAO,KAAK,yDAAyD,GAE3D,CAAC,eAAe,qBAAqB,qBAAqB,mBAAmB,EACrF,QAAQ,CAAA8F,MAAU;AACzB,WAAKA,CAAM,IAAI,WAAY;AACzB,eAAO5G,EAAM,MAAM4G,CAAM,EAAE,GAAG,SAAS;AAAA,MAC/C;AAAA,IACA,CAAK,GACuB,CAAC,eAAe,gBAAgB,qBAAqB,sBAAsB,EACnF,QAAQ,CAAAA,MAAU;AAChC,WAAKA,CAAM,IAAI,WAAY;AACzB,eAAA5G,EAAM,MAAM4G,CAAM,EAAE,GAAG,SAAS,GACzB5G;AAAA,MACf;AAAA,IACA,CAAK;AACD,UAAM8H,IAAWrO,MACXsO,IAAO,MAAM;AACjB,YAAMC,IAAS,CAACvB,GAAKle,MAAM;AACzB,aAAK,iBAAiB,IAClB,KAAK,iBAAiB,CAAC,KAAK,wBAAsB,KAAK,OAAO,KAAK,uEAAuE,GAC9I,KAAK,gBAAgB,IAChB,KAAK,QAAQ,WAAS,KAAK,OAAO,IAAI,eAAe,KAAK,OAAO,GACtE,KAAK,KAAK,eAAe,KAAK,OAAO,GACrCuf,EAAS,QAAQvf,CAAC,GAClByK,EAASyT,GAAKle,CAAC;AAAA,MACvB;AACM,UAAI,KAAK,aAAa,KAAK,QAAQ,qBAAqB,QAAQ,CAAC,KAAK;AAAe,eAAOyf,EAAO,MAAM,KAAK,EAAE,KAAK,IAAI,CAAC;AAC1H,WAAK,eAAe,KAAK,QAAQ,KAAKA,CAAM;AAAA,IAClD;AACI,WAAI,KAAK,QAAQ,aAAa,CAAC,KAAK,QAAQ,gBAC1CD,MAEA,WAAWA,GAAM,CAAC,GAEbD;AAAA,EACR;AAAA,EACD,cAAcjI,GAAU;AAEtB,QAAIoI,IADW,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAIX;AAEnF,UAAM5G,IAAU,OAAOb,KAAa,WAAWA,IAAW,KAAK;AAE/D,QADI,OAAOA,KAAa,eAAYoI,IAAepI,IAC/C,CAAC,KAAK,QAAQ,aAAa,KAAK,QAAQ,yBAAyB;AACnE,UAAIa,KAAWA,EAAQ,YAAa,MAAK,aAAa,CAAC,KAAK,QAAQ,WAAW,KAAK,QAAQ,QAAQ,WAAW;AAAI,eAAOuH;AAC1H,YAAM7B,IAAS,CAAA,GACT8B,IAAS,CAAAnL,MAAO;AAEpB,YADI,CAACA,KACDA,MAAQ;AAAU;AAEtB,QADa,KAAK,SAAS,cAAc,mBAAmBA,CAAG,EAC1D,QAAQ,CAAA5T,MAAK;AAChB,UAAIA,MAAM,YACNid,EAAO,QAAQjd,CAAC,IAAI,KAAGid,EAAO,KAAKjd,CAAC;AAAA,QAClD,CAAS;AAAA,MACT;AACM,MAAKuX,IAIHwH,EAAOxH,CAAO,IAHI,KAAK,SAAS,cAAc,iBAAiB,KAAK,QAAQ,WAAW,EAC7E,QAAQ,CAAAvX,MAAK+e,EAAO/e,CAAC,CAAC,GAI9B,KAAK,QAAQ,WACf,KAAK,QAAQ,QAAQ,QAAQ,OAAK+e,EAAO,CAAC,CAAC,GAE7C,KAAK,SAAS,iBAAiB,KAAK9B,GAAQ,KAAK,QAAQ,IAAI,CAAA9d,MAAK;AAChE,QAAI,CAACA,KAAK,CAAC,KAAK,oBAAoB,KAAK,YAAU,KAAK,oBAAoB,KAAK,QAAQ,GACzF2f,EAAa3f,CAAC;AAAA,MACtB,CAAO;AAAA,IACP;AACM,MAAA2f,EAAa,IAAI;AAAA,EAEpB;AAAA,EACD,gBAAgBzI,GAAM1C,GAAI9J,GAAU;AAClC,UAAM8U,IAAWrO;AACjB,WAAK+F,MAAMA,IAAO,KAAK,YAClB1C,MAAIA,IAAK,KAAK,QAAQ,KACtB9J,MAAUA,IAAWsU,KAC1B,KAAK,SAAS,iBAAiB,OAAO9H,GAAM1C,GAAI,CAAA2J,MAAO;AACrD,MAAAqB,EAAS,QAAO,GAChB9U,EAASyT,CAAG;AAAA,IAClB,CAAK,GACMqB;AAAA,EACR;AAAA,EACD,IAAIjQ,GAAQ;AACV,QAAI,CAACA;AAAQ,YAAM,IAAI,MAAM,+FAA+F;AAC5H,QAAI,CAACA,EAAO;AAAM,YAAM,IAAI,MAAM,0FAA0F;AAC5H,WAAIA,EAAO,SAAS,cAClB,KAAK,QAAQ,UAAUA,KAErBA,EAAO,SAAS,YAAYA,EAAO,OAAOA,EAAO,QAAQA,EAAO,WAClE,KAAK,QAAQ,SAASA,IAEpBA,EAAO,SAAS,uBAClB,KAAK,QAAQ,mBAAmBA,IAE9BA,EAAO,SAAS,iBAClB,KAAK,QAAQ,aAAaA,IAExBA,EAAO,SAAS,mBAClBuF,GAAc,iBAAiBvF,CAAM,GAEnCA,EAAO,SAAS,gBAClB,KAAK,QAAQ,YAAYA,IAEvBA,EAAO,SAAS,cAClB,KAAK,QAAQ,SAAS,KAAKA,CAAM,GAE5B;AAAA,EACR;AAAA,EACD,oBAAoB1O,GAAG;AACrB,QAAI,GAACA,KAAK,CAAC,KAAK,cACZ,GAAC,UAAU,KAAK,EAAE,QAAQA,CAAC,IAAI;AACnC,eAASgf,IAAK,GAAGA,IAAK,KAAK,UAAU,QAAQA,KAAM;AACjD,cAAMC,IAAY,KAAK,UAAUD,CAAE;AACnC,YAAI,GAAC,UAAU,KAAK,EAAE,QAAQC,CAAS,IAAI,OACvC,KAAK,MAAM,4BAA4BA,CAAS,GAAG;AACrD,eAAK,mBAAmBA;AACxB;AAAA,QACD;AAAA,MACF;AAAA,EACF;AAAA,EACD,eAAerL,GAAK/J,GAAU;AAC5B,QAAIqV,IAAS;AACb,SAAK,uBAAuBtL;AAC5B,UAAM+K,IAAWrO;AACjB,SAAK,KAAK,oBAAoBsD,CAAG;AACjC,UAAMuL,IAAc,CAAAnf,MAAK;AACvB,WAAK,WAAWA,GAChB,KAAK,YAAY,KAAK,SAAS,cAAc,mBAAmBA,CAAC,GACjE,KAAK,mBAAmB,QACxB,KAAK,oBAAoBA,CAAC;AAAA,IAChC,GACUof,IAAO,CAAC9B,GAAKtd,MAAM;AACvB,MAAIA,KACFmf,EAAYnf,CAAC,GACb,KAAK,WAAW,eAAeA,CAAC,GAChC,KAAK,uBAAuB,QAC5B,KAAK,KAAK,mBAAmBA,CAAC,GAC9B,KAAK,OAAO,IAAI,mBAAmBA,CAAC,KAEpC,KAAK,uBAAuB,QAE9B2e,EAAS,QAAQ,WAAY;AAC3B,eAAOO,EAAO,EAAE,GAAG,SAAS;AAAA,MACpC,CAAO,GACGrV,KAAUA,EAASyT,GAAK,WAAY;AACtC,eAAO4B,EAAO,EAAE,GAAG,SAAS;AAAA,MACpC,CAAO;AAAA,IACP,GACUG,IAAS,CAAAhJ,MAAQ;AACrB,MAAI,CAACzC,KAAO,CAACyC,KAAQ,KAAK,SAAS,qBAAkBA,IAAO;AAC5D,YAAMrW,IAAI,OAAOqW,KAAS,WAAWA,IAAO,KAAK,SAAS,cAAc,sBAAsBA,CAAI;AAClG,MAAIrW,MACG,KAAK,YACRmf,EAAYnf,CAAC,GAEV,KAAK,WAAW,YAAU,KAAK,WAAW,eAAeA,CAAC,GAC3D,KAAK,SAAS,oBAAoB,KAAK,SAAS,iBAAiB,qBAAmB,KAAK,SAAS,iBAAiB,kBAAkBA,CAAC,IAE5I,KAAK,cAAcA,GAAG,CAAAsd,MAAO;AAC3B,QAAA8B,EAAK9B,GAAKtd,CAAC;AAAA,MACnB,CAAO;AAAA,IACP;AACI,WAAI,CAAC4T,KAAO,KAAK,SAAS,oBAAoB,CAAC,KAAK,SAAS,iBAAiB,QAC5EyL,EAAO,KAAK,SAAS,iBAAiB,OAAQ,CAAA,IACrC,CAACzL,KAAO,KAAK,SAAS,oBAAoB,KAAK,SAAS,iBAAiB,QAC9E,KAAK,SAAS,iBAAiB,OAAO,WAAW,IACnD,KAAK,SAAS,iBAAiB,OAAM,EAAG,KAAKyL,CAAM,IAEnD,KAAK,SAAS,iBAAiB,OAAOA,CAAM,IAG9CA,EAAOzL,CAAG,GAEL+K;AAAA,EACR;AAAA,EACD,UAAU/K,GAAKD,GAAI2L,GAAW;AAC5B,QAAIC,IAAS;AACb,UAAMC,IAAS,SAAUpZ,GAAKmG,GAAM;AAClC,UAAIrJ;AACJ,UAAI,OAAOqJ,KAAS,UAAU;AAC5B,iBAAS8C,IAAQ,UAAU,QAAQ4M,IAAO,IAAI,MAAM5M,IAAQ,IAAIA,IAAQ,IAAI,CAAC,GAAGC,IAAQ,GAAGA,IAAQD,GAAOC;AACxG,UAAA2M,EAAK3M,IAAQ,CAAC,IAAI,UAAUA,CAAK;AAEnC,QAAApM,IAAUqc,EAAO,QAAQ,iCAAiC,CAACnZ,GAAKmG,CAAI,EAAE,OAAO0P,CAAI,CAAC;AAAA,MAC1F;AACQ,QAAA/Y,IAAU;AAAA,UACR,GAAGqJ;AAAA,QACb;AAEM,MAAArJ,EAAQ,MAAMA,EAAQ,OAAOsc,EAAO,KACpCtc,EAAQ,OAAOA,EAAQ,QAAQsc,EAAO,MACtCtc,EAAQ,KAAKA,EAAQ,MAAMsc,EAAO,IAClCtc,EAAQ,YAAYA,EAAQ,aAAaoc,KAAaE,EAAO;AAC7D,YAAMzM,IAAewM,EAAO,QAAQ,gBAAgB;AACpD,UAAIE;AACJ,aAAIvc,EAAQ,aAAa,MAAM,QAAQkD,CAAG,IACxCqZ,IAAYrZ,EAAI,IAAI,CAAAnF,MAAK,GAAGiC,EAAQ,SAAS,GAAG6P,CAAY,GAAG9R,CAAC,EAAE,IAElEwe,IAAYvc,EAAQ,YAAY,GAAGA,EAAQ,SAAS,GAAG6P,CAAY,GAAG3M,CAAG,KAAKA,GAEzEmZ,EAAO,EAAEE,GAAWvc,CAAO;AAAA,IACxC;AACI,WAAI,OAAO0Q,KAAQ,WACjB4L,EAAO,MAAM5L,IAEb4L,EAAO,OAAO5L,GAEhB4L,EAAO,KAAK7L,GACZ6L,EAAO,YAAYF,GACZE;AAAA,EACR;AAAA,EACD,IAAI;AACF,WAAO,KAAK,cAAc,KAAK,WAAW,UAAU,GAAG,SAAS;AAAA,EACjE;AAAA,EACD,SAAS;AACP,WAAO,KAAK,cAAc,KAAK,WAAW,OAAO,GAAG,SAAS;AAAA,EAC9D;AAAA,EACD,oBAAoB7L,GAAI;AACtB,SAAK,QAAQ,YAAYA;AAAA,EAC1B;AAAA,EACD,mBAAmBA,GAAI;AACrB,QAAIzQ,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,QAAI,CAAC,KAAK;AACR,kBAAK,OAAO,KAAK,mDAAmD,KAAK,SAAS,GAC3E;AAET,QAAI,CAAC,KAAK,aAAa,CAAC,KAAK,UAAU;AACrC,kBAAK,OAAO,KAAK,8DAA8D,KAAK,SAAS,GACtF;AAET,UAAM0Q,IAAM1Q,EAAQ,OAAO,KAAK,oBAAoB,KAAK,UAAU,CAAC,GAC9Dwc,IAAc,KAAK,UAAU,KAAK,QAAQ,cAAc,IACxDC,IAAU,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC;AACxD,QAAI/L,EAAI,YAAW,MAAO;AAAU,aAAO;AAC3C,UAAMgM,IAAiB,CAAC,GAAGlgB,MAAM;AAC/B,YAAMmgB,IAAY,KAAK,SAAS,iBAAiB,MAAM,GAAG,CAAC,IAAIngB,CAAC,EAAE;AAClE,aAAOmgB,MAAc,MAAMA,MAAc;AAAA,IAC/C;AACI,QAAI3c,EAAQ,UAAU;AACpB,YAAM4c,IAAY5c,EAAQ,SAAS,MAAM0c,CAAc;AACvD,UAAIE,MAAc;AAAW,eAAOA;AAAA,IACrC;AAGD,WAFI,QAAK,kBAAkBlM,GAAKD,CAAE,KAC9B,CAAC,KAAK,SAAS,iBAAiB,WAAW,KAAK,QAAQ,aAAa,CAAC,KAAK,QAAQ,2BACnFiM,EAAehM,GAAKD,CAAE,MAAM,CAAC+L,KAAeE,EAAeD,GAAShM,CAAE;AAAA,EAE3E;AAAA,EACD,eAAeA,GAAI9J,GAAU;AAC3B,UAAM8U,IAAWrO;AACjB,WAAK,KAAK,QAAQ,MAId,OAAOqD,KAAO,aAAUA,IAAK,CAACA,CAAE,IACpCA,EAAG,QAAQ,CAAAjU,MAAK;AACd,MAAI,KAAK,QAAQ,GAAG,QAAQA,CAAC,IAAI,KAAG,KAAK,QAAQ,GAAG,KAAKA,CAAC;AAAA,IAChE,CAAK,GACD,KAAK,cAAc,CAAA4d,MAAO;AACxB,MAAAqB,EAAS,QAAO,GACZ9U,KAAUA,EAASyT,CAAG;AAAA,IAChC,CAAK,GACMqB,MAXD9U,KAAUA,KACP,QAAQ;EAWlB;AAAA,EACD,cAAcwM,GAAMxM,GAAU;AAC5B,UAAM8U,IAAWrO;AACjB,IAAI,OAAO+F,KAAS,aAAUA,IAAO,CAACA,CAAI;AAC1C,UAAM0J,IAAY,KAAK,QAAQ,WAAW,CAAA,GACpCC,IAAU3J,EAAK,OAAO,CAAAzC,MAAOmM,EAAU,QAAQnM,CAAG,IAAI,KAAK,KAAK,SAAS,cAAc,gBAAgBA,CAAG,CAAC;AACjH,WAAKoM,EAAQ,UAIb,KAAK,QAAQ,UAAUD,EAAU,OAAOC,CAAO,GAC/C,KAAK,cAAc,CAAA1C,MAAO;AACxB,MAAAqB,EAAS,QAAO,GACZ9U,KAAUA,EAASyT,CAAG;AAAA,IAChC,CAAK,GACMqB,MARD9U,KAAUA,KACP,QAAQ;EAQlB;AAAA,EACD,IAAI+J,GAAK;AAEP,QADKA,MAAKA,IAAM,KAAK,qBAAqB,KAAK,aAAa,KAAK,UAAU,SAAS,IAAI,KAAK,UAAU,CAAC,IAAI,KAAK,YAC7G,CAACA;AAAK,aAAO;AACjB,UAAMqM,IAAU,CAAC,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,KAAK,GACjbxG,IAAgB,KAAK,YAAY,KAAK,SAAS,iBAAiB,IAAInB,GAAa0F,GAAG,CAAE;AAC5F,WAAOiC,EAAQ,QAAQxG,EAAc,wBAAwB7F,CAAG,CAAC,IAAI,MAAMA,EAAI,YAAa,EAAC,QAAQ,OAAO,IAAI,IAAI,QAAQ;AAAA,EAC7H;AAAA,EACD,OAAO,iBAAiB;AACtB,QAAI1Q,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9E2G,IAAW,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI;AACrD,WAAO,IAAIyU,GAAKpb,GAAS2G,CAAQ;AAAA,EAClC;AAAA,EACD,gBAAgB;AACd,QAAI3G,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9E2G,IAAW,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAIsU;AACnF,UAAM+B,IAAoBhd,EAAQ;AAClC,IAAIgd,KAAmB,OAAOhd,EAAQ;AACtC,UAAMid,IAAgB;AAAA,MACpB,GAAG,KAAK;AAAA,MACR,GAAGjd;AAAA,MAED,SAAS;AAAA,IAEjB,GACUsK,IAAQ,IAAI8Q,GAAK6B,CAAa;AACpC,YAAIjd,EAAQ,UAAU,UAAaA,EAAQ,WAAW,YACpDsK,EAAM,SAASA,EAAM,OAAO,MAAMtK,CAAO,IAErB,CAAC,SAAS,YAAY,UAAU,EACxC,QAAQ,CAAA3C,MAAK;AACzB,MAAAiN,EAAMjN,CAAC,IAAI,KAAKA,CAAC;AAAA,IACvB,CAAK,GACDiN,EAAM,WAAW;AAAA,MACf,GAAG,KAAK;AAAA,IACd,GACIA,EAAM,SAAS,QAAQ;AAAA,MACrB,oBAAoBA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,IAC7D,GACQ0S,MACF1S,EAAM,QAAQ,IAAIkG,GAAc,KAAK,MAAM,MAAMyM,CAAa,GAC9D3S,EAAM,SAAS,gBAAgBA,EAAM,QAEvCA,EAAM,aAAa,IAAI8G,GAAW9G,EAAM,UAAU2S,CAAa,GAC/D3S,EAAM,WAAW,GAAG,KAAK,SAAUrK,GAAO;AACxC,eAASoM,IAAQ,UAAU,QAAQhB,IAAO,IAAI,MAAMgB,IAAQ,IAAIA,IAAQ,IAAI,CAAC,GAAGC,IAAQ,GAAGA,IAAQD,GAAOC;AACxG,QAAAjB,EAAKiB,IAAQ,CAAC,IAAI,UAAUA,CAAK;AAEnC,MAAAhC,EAAM,KAAKrK,GAAO,GAAGoL,CAAI;AAAA,IAC/B,CAAK,GACDf,EAAM,KAAK2S,GAAetW,CAAQ,GAClC2D,EAAM,WAAW,UAAU2S,GAC3B3S,EAAM,WAAW,iBAAiB,SAAS,QAAQ;AAAA,MACjD,oBAAoBA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,IAC7D,GACWA;AAAA,EACR;AAAA,EACD,SAAS;AACP,WAAO;AAAA,MACL,SAAS,KAAK;AAAA,MACd,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,kBAAkB,KAAK;AAAA,IAC7B;AAAA,EACG;AACH;AACA,MAAM4S,KAAW9B,GAAK;AACtB8B,GAAS,iBAAiB9B,GAAK;AAER8B,GAAS;AACpBA,GAAS;AACRA,GAAS;AACAA,GAAS;AACPA,GAAS;AACrBA,GAAS;AACEA,GAAS;AACdA,GAAS;AAC3B,MAAMhhB,KAAIghB,GAAS;AACJA,GAAS;AACIA,GAAS;AACVA,GAAS;AACbA,GAAS;AACVA,GAAS;ACr0EhB,SAASC,GAAgBD,GAAUE,GAAa;AAC7D,MAAI,EAAEF,aAAoBE;AACxB,UAAM,IAAI,UAAU,mCAAmC;AAE3D;ACJe,SAASC,GAAQjhB,GAAG;AACjC;AAEA,SAAOihB,KAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAUjhB,GAAG;AAChG,WAAO,OAAOA;AAAA,EACf,IAAG,SAAUA,GAAG;AACf,WAAOA,KAAmB,OAAO,UAArB,cAA+BA,EAAE,gBAAgB,UAAUA,MAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EACtH,GAAKihB,GAAQjhB,CAAC;AACd;ACPe,SAASkhB,GAAY,GAAGthB,GAAG;AACxC,MAAgBqhB,GAAQ,CAAC,KAArB,YAA0B,CAAC;AAAG,WAAO;AACzC,MAAIphB,IAAI,EAAE,OAAO,WAAW;AAC5B,MAAeA,MAAX,QAAc;AAChB,QAAIQ,IAAIR,EAAE,KAAK,GAAGD,CAAc;AAChC,QAAgBqhB,GAAQ5gB,CAAC,KAArB;AAAwB,aAAOA;AACnC,UAAM,IAAI,UAAU,8CAA8C;AAAA,EACnE;AACD,SAAyB,OAAiB,CAAC;AAC7C;ACRe,SAAS8gB,GAAc,GAAG;AACvC,MAAI9gB,IAAI6gB,GAAY,GAAG,QAAQ;AAC/B,SAAmBD,GAAQ5gB,CAAC,KAArB,WAAyBA,IAAIA,IAAI;AAC1C;ACJA,SAAS+gB,GAAkB3O,GAAQ4O,GAAO;AACxC,WAAS,IAAI,GAAG,IAAIA,EAAM,QAAQ,KAAK;AACrC,QAAIC,IAAaD,EAAM,CAAC;AACxB,IAAAC,EAAW,aAAaA,EAAW,cAAc,IACjDA,EAAW,eAAe,IACtB,WAAWA,MAAYA,EAAW,WAAW,KACjD,OAAO,eAAe7O,GAAQ0O,GAAcG,EAAW,GAAG,GAAGA,CAAU;AAAA,EACxE;AACH;AACe,SAASC,GAAaP,GAAaQ,GAAYC,GAAa;AACzE,SAAID,KAAYJ,GAAkBJ,EAAY,WAAWQ,CAAU,GAEnE,OAAO,eAAeR,GAAa,aAAa;AAAA,IAC9C,UAAU;AAAA,EACd,CAAG,GACMA;AACT;ACdA,IAAIU,KAAM,CAAA,GACNC,KAAOD,GAAI,SACXE,KAAQF,GAAI;AAChB,SAASG,GAAS7P,GAAK;AACrB,SAAA2P,GAAK,KAAKC,GAAM,KAAK,WAAW,CAAC,GAAG,SAAUlP,GAAQ;AACpD,QAAIA;AACF,eAASE,KAAQF;AACf,QAAIV,EAAIY,CAAI,MAAM,WAAWZ,EAAIY,CAAI,IAAIF,EAAOE,CAAI;AAAA,EAG5D,CAAG,GACMZ;AACT;AAGA,IAAI8P,KAAqB,yCACrBC,KAAkB,SAAyBre,GAAM0X,GAAKxX,GAAS;AACjE,MAAI8Y,IAAM9Y,KAAW;AACrB,EAAA8Y,EAAI,OAAOA,EAAI,QAAQ;AACvB,MAAI/Y,IAAQ,mBAAmByX,CAAG,GAC9BtI,IAAM,GAAG,OAAOpP,GAAM,GAAG,EAAE,OAAOC,CAAK;AAC3C,MAAI+Y,EAAI,SAAS,GAAG;AAClB,QAAIsF,IAAStF,EAAI,SAAS;AAC1B,QAAI,OAAO,MAAMsF,CAAM;AAAG,YAAM,IAAI,MAAM,2BAA2B;AACrE,IAAAlP,KAAO,aAAa,OAAO,KAAK,MAAMkP,CAAM,CAAC;AAAA,EAC9C;AACD,MAAItF,EAAI,QAAQ;AACd,QAAI,CAACoF,GAAmB,KAAKpF,EAAI,MAAM;AACrC,YAAM,IAAI,UAAU,0BAA0B;AAEhD,IAAA5J,KAAO,YAAY,OAAO4J,EAAI,MAAM;AAAA,EACrC;AACD,MAAIA,EAAI,MAAM;AACZ,QAAI,CAACoF,GAAmB,KAAKpF,EAAI,IAAI;AACnC,YAAM,IAAI,UAAU,wBAAwB;AAE9C,IAAA5J,KAAO,UAAU,OAAO4J,EAAI,IAAI;AAAA,EACjC;AACD,MAAIA,EAAI,SAAS;AACf,QAAI,OAAOA,EAAI,QAAQ,eAAgB;AACrC,YAAM,IAAI,UAAU,2BAA2B;AAEjD,IAAA5J,KAAO,aAAa,OAAO4J,EAAI,QAAQ,YAAW,CAAE;AAAA,EACrD;AAGD,MAFIA,EAAI,aAAU5J,KAAO,eACrB4J,EAAI,WAAQ5J,KAAO,aACnB4J,EAAI,UAAU;AAChB,QAAIuF,IAAW,OAAOvF,EAAI,YAAa,WAAWA,EAAI,SAAS,YAAW,IAAKA,EAAI;AACnF,YAAQuF,GAAQ;AAAA,MACd,KAAK;AACH,QAAAnP,KAAO;AACP;AAAA,MACF,KAAK;AACH,QAAAA,KAAO;AACP;AAAA,MACF,KAAK;AACH,QAAAA,KAAO;AACP;AAAA,MACF,KAAK;AACH,QAAAA,KAAO;AACP;AAAA,MACF;AACE,cAAM,IAAI,UAAU,4BAA4B;AAAA,IACnD;AAAA,EACF;AACD,SAAOA;AACT,GACIoP,KAAS;AAAA,EACX,QAAQ,SAAgBxe,GAAMC,GAAOwe,GAASC,GAAQ;AACpD,QAAIC,IAAgB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MACtF,MAAM;AAAA,MACN,UAAU;AAAA,IAChB;AACI,IAAIF,MACFE,EAAc,UAAU,oBAAI,QAC5BA,EAAc,QAAQ,QAAQA,EAAc,QAAQ,QAAO,IAAKF,IAAU,KAAK,GAAI,IAEjFC,MAAQC,EAAc,SAASD,IACnC,SAAS,SAASL,GAAgBre,GAAM,mBAAmBC,CAAK,GAAG0e,CAAa;AAAA,EACjF;AAAA,EACD,MAAM,SAAc3e,GAAM;AAGxB,aAFI4e,IAAS,GAAG,OAAO5e,GAAM,GAAG,GAC5B6e,IAAK,SAAS,OAAO,MAAM,GAAG,GACzBliB,IAAI,GAAGA,IAAIkiB,EAAG,QAAQliB,KAAK;AAElC,eADIE,IAAIgiB,EAAGliB,CAAC,GACLE,EAAE,OAAO,CAAC,MAAM;AAAK,QAAAA,IAAIA,EAAE,UAAU,GAAGA,EAAE,MAAM;AACvD,UAAIA,EAAE,QAAQ+hB,CAAM,MAAM;AAAG,eAAO/hB,EAAE,UAAU+hB,EAAO,QAAQ/hB,EAAE,MAAM;AAAA,IACxE;AACD,WAAO;AAAA,EACR;AAAA,EACD,QAAQ,SAAgBmD,GAAM;AAC5B,SAAK,OAAOA,GAAM,IAAI,EAAE;AAAA,EACzB;AACH,GACI8e,KAAW;AAAA,EACb,MAAM;AAAA,EACN,QAAQ,SAAgB5e,GAAS;AAC/B,QAAImU;AACJ,QAAInU,EAAQ,gBAAgB,OAAO,WAAa,KAAa;AAC3D,UAAIrD,IAAI2hB,GAAO,KAAKte,EAAQ,YAAY;AACxC,MAAIrD,MAAGwX,IAAQxX;AAAA,IAChB;AACD,WAAOwX;AAAA,EACR;AAAA,EACD,mBAAmB,SAA2BzD,GAAK1Q,GAAS;AAC1D,IAAIA,EAAQ,gBAAgB,OAAO,WAAa,OAC9Cse,GAAO,OAAOte,EAAQ,cAAc0Q,GAAK1Q,EAAQ,eAAeA,EAAQ,cAAcA,EAAQ,aAAa;AAAA,EAE9G;AACH,GAEI6e,KAAc;AAAA,EAChB,MAAM;AAAA,EACN,QAAQ,SAAgB7e,GAAS;AAC/B,QAAImU;AACJ,QAAI,OAAO,SAAW,KAAa;AACjC,UAAI2K,IAAS,OAAO,SAAS;AAC7B,MAAI,CAAC,OAAO,SAAS,UAAU,OAAO,SAAS,QAAQ,OAAO,SAAS,KAAK,QAAQ,GAAG,IAAI,OACzFA,IAAS,OAAO,SAAS,KAAK,UAAU,OAAO,SAAS,KAAK,QAAQ,GAAG,CAAC;AAI3E,eAFIjU,IAAQiU,EAAO,UAAU,CAAC,GAC1BC,IAASlU,EAAM,MAAM,GAAG,GACnBpO,IAAI,GAAGA,IAAIsiB,EAAO,QAAQtiB,KAAK;AACtC,YAAIuiB,IAAMD,EAAOtiB,CAAC,EAAE,QAAQ,GAAG;AAC/B,YAAIuiB,IAAM,GAAG;AACX,cAAI9b,IAAM6b,EAAOtiB,CAAC,EAAE,UAAU,GAAGuiB,CAAG;AACpC,UAAI9b,MAAQlD,EAAQ,sBAClBmU,IAAQ4K,EAAOtiB,CAAC,EAAE,UAAUuiB,IAAM,CAAC;AAAA,QAEtC;AAAA,MACF;AAAA,IACF;AACD,WAAO7K;AAAA,EACR;AACH,GAEI8K,KAAyB,MACzBC,KAAwB,WAAiC;AAC3D,MAAID,OAA2B;AAAM,WAAOA;AAC5C,MAAI;AACF,IAAAA,KAAyB,WAAW,eAAe,OAAO,iBAAiB;AAC3E,QAAIE,IAAU;AACd,WAAO,aAAa,QAAQA,GAAS,KAAK,GAC1C,OAAO,aAAa,WAAWA,CAAO;AAAA,EACvC,QAAW;AACV,IAAAF,KAAyB;AAAA,EAC1B;AACD,SAAOA;AACT,GACIG,KAAe;AAAA,EACjB,MAAM;AAAA,EACN,QAAQ,SAAgBpf,GAAS;AAC/B,QAAImU;AACJ,QAAInU,EAAQ,sBAAsBkf,MAAyB;AACzD,UAAIxO,IAAM,OAAO,aAAa,QAAQ1Q,EAAQ,kBAAkB;AAChE,MAAI0Q,MAAKyD,IAAQzD;AAAA,IAClB;AACD,WAAOyD;AAAA,EACR;AAAA,EACD,mBAAmB,SAA2BzD,GAAK1Q,GAAS;AAC1D,IAAIA,EAAQ,sBAAsBkf,QAChC,OAAO,aAAa,QAAQlf,EAAQ,oBAAoB0Q,CAAG;AAAA,EAE9D;AACH,GAEI2O,KAA2B,MAC3BC,KAA0B,WAAmC;AAC/D,MAAID,OAA6B;AAAM,WAAOA;AAC9C,MAAI;AACF,IAAAA,KAA2B,WAAW,eAAe,OAAO,mBAAmB;AAC/E,QAAIF,IAAU;AACd,WAAO,eAAe,QAAQA,GAAS,KAAK,GAC5C,OAAO,eAAe,WAAWA,CAAO;AAAA,EACzC,QAAW;AACV,IAAAE,KAA2B;AAAA,EAC5B;AACD,SAAOA;AACT,GACIE,KAAiB;AAAA,EACnB,MAAM;AAAA,EACN,QAAQ,SAAgBvf,GAAS;AAC/B,QAAImU;AACJ,QAAInU,EAAQ,wBAAwBsf,MAA2B;AAC7D,UAAI5O,IAAM,OAAO,eAAe,QAAQ1Q,EAAQ,oBAAoB;AACpE,MAAI0Q,MAAKyD,IAAQzD;AAAA,IAClB;AACD,WAAOyD;AAAA,EACR;AAAA,EACD,mBAAmB,SAA2BzD,GAAK1Q,GAAS;AAC1D,IAAIA,EAAQ,wBAAwBsf,QAClC,OAAO,eAAe,QAAQtf,EAAQ,sBAAsB0Q,CAAG;AAAA,EAElE;AACH,GAEI8O,KAAc;AAAA,EAChB,MAAM;AAAA,EACN,QAAQ,SAAgBxf,GAAS;AAC/B,QAAImU,IAAQ,CAAA;AACZ,QAAI,OAAO,YAAc,KAAa;AACpC,UAAI,UAAU;AAEZ,iBAAS1X,IAAI,GAAGA,IAAI,UAAU,UAAU,QAAQA;AAC9C,UAAA0X,EAAM,KAAK,UAAU,UAAU1X,CAAC,CAAC;AAGrC,MAAI,UAAU,gBACZ0X,EAAM,KAAK,UAAU,YAAY,GAE/B,UAAU,YACZA,EAAM,KAAK,UAAU,QAAQ;AAAA,IAEhC;AACD,WAAOA,EAAM,SAAS,IAAIA,IAAQ;AAAA,EACnC;AACH,GAEIsL,KAAU;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ,SAAgBzf,GAAS;AAC/B,QAAImU,GACAsL,IAAUzf,EAAQ,YAAY,OAAO,WAAa,MAAc,SAAS,kBAAkB;AAC/F,WAAIyf,KAAW,OAAOA,EAAQ,gBAAiB,eAC7CtL,IAAQsL,EAAQ,aAAa,MAAM,IAE9BtL;AAAA,EACR;AACH,GAEItG,KAAO;AAAA,EACT,MAAM;AAAA,EACN,QAAQ,SAAgB7N,GAAS;AAC/B,QAAImU;AACJ,QAAI,OAAO,SAAW,KAAa;AACjC,UAAIX,IAAW,OAAO,SAAS,SAAS,MAAM,iBAAiB;AAC/D,UAAIA,aAAoB;AACtB,YAAI,OAAOxT,EAAQ,uBAAwB,UAAU;AACnD,cAAI,OAAOwT,EAASxT,EAAQ,mBAAmB,KAAM;AACnD;AAEF,UAAAmU,IAAQX,EAASxT,EAAQ,mBAAmB,EAAE,QAAQ,KAAK,EAAE;AAAA,QACvE;AACU,UAAAmU,IAAQX,EAAS,CAAC,EAAE,QAAQ,KAAK,EAAE;AAAA,IAGxC;AACD,WAAOW;AAAA,EACR;AACH,GAEIuL,KAAY;AAAA,EACd,MAAM;AAAA,EACN,QAAQ,SAAgB1f,GAAS;AAE/B,QAAI2f,IAA2B,OAAO3f,EAAQ,4BAA6B,WAAWA,EAAQ,2BAA2B,IAAI,GAIzHwT,IAAW,OAAO,SAAW,OAAe,OAAO,YAAY,OAAO,SAAS,YAAY,OAAO,SAAS,SAAS,MAAM,wDAAwD;AAGtL,QAAKA;AAEL,aAAOA,EAASmM,CAAwB;AAAA,EACzC;AACH;AAEA,SAASC,KAAc;AACrB,SAAO;AAAA,IACL,OAAO,CAAC,eAAe,UAAU,gBAAgB,kBAAkB,aAAa,SAAS;AAAA,IACzF,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd,oBAAoB;AAAA,IACpB,sBAAsB;AAAA;AAAA,IAEtB,QAAQ,CAAC,cAAc;AAAA,IACvB,iBAAiB,CAAC,QAAQ;AAAA;AAAA;AAAA,IAI1B,yBAAyB,SAAiC9iB,GAAG;AAC3D,aAAOA;AAAA,IACR;AAAA,EACL;AACA;AACA,IAAI+iB,KAAuB,2BAAY;AACrC,WAASA,EAAQxO,GAAU;AACzB,QAAIrR,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,IAAAmd,GAAgB,MAAM0C,CAAO,GAC7B,KAAK,OAAO,oBACZ,KAAK,YAAY,IACjB,KAAK,KAAKxO,GAAUrR,CAAO;AAAA,EAC5B;AACD,SAAA2d,GAAakC,GAAS,CAAC;AAAA,IACrB,KAAK;AAAA,IACL,OAAO,SAAcxO,GAAU;AAC7B,UAAIrR,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9E8f,IAAc,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AACtF,WAAK,WAAWzO,KAAY;AAAA,QAC1B,eAAe,CAAE;AAAA,MACzB,GACM,KAAK,UAAU4M,GAASje,GAAS,KAAK,WAAW,CAAA,GAAI4f,GAAW,CAAE,GAC9D,OAAO,KAAK,QAAQ,2BAA4B,YAAY,KAAK,QAAQ,wBAAwB,QAAQ,OAAO,IAAI,OACtH,KAAK,QAAQ,0BAA0B,SAAU9iB,GAAG;AAClD,eAAOA,EAAE,QAAQ,KAAK,GAAG;AAAA,MACnC,IAIU,KAAK,QAAQ,uBAAoB,KAAK,QAAQ,sBAAsB,KAAK,QAAQ,qBACrF,KAAK,cAAcgjB,GACnB,KAAK,YAAYlB,EAAQ,GACzB,KAAK,YAAYC,EAAW,GAC5B,KAAK,YAAYO,EAAY,GAC7B,KAAK,YAAYG,EAAc,GAC/B,KAAK,YAAYC,EAAW,GAC5B,KAAK,YAAYC,EAAO,GACxB,KAAK,YAAY5R,EAAI,GACrB,KAAK,YAAY6R,EAAS;AAAA,IAC3B;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,SAAqBK,GAAU;AACpC,kBAAK,UAAUA,EAAS,IAAI,IAAIA,GACzB;AAAA,IACR;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,SAAgBC,GAAgB;AACrC,UAAIrM,IAAQ;AACZ,MAAKqM,MAAgBA,IAAiB,KAAK,QAAQ;AACnD,UAAIC,IAAW,CAAA;AAWf,aAVAD,EAAe,QAAQ,SAAUE,GAAc;AAC7C,YAAIvM,EAAM,UAAUuM,CAAY,GAAG;AACjC,cAAIC,IAASxM,EAAM,UAAUuM,CAAY,EAAE,OAAOvM,EAAM,OAAO;AAC/D,UAAIwM,KAAU,OAAOA,KAAW,aAAUA,IAAS,CAACA,CAAM,IACtDA,MAAQF,IAAWA,EAAS,OAAOE,CAAM;AAAA,QAC9C;AAAA,MACT,CAAO,GACDF,IAAWA,EAAS,IAAI,SAAUjjB,GAAG;AACnC,eAAO2W,EAAM,QAAQ,wBAAwB3W,CAAC;AAAA,MACtD,CAAO,GACG,KAAK,SAAS,cAAc,wBAA8BijB,IACvDA,EAAS,SAAS,IAAIA,EAAS,CAAC,IAAI;AAAA,IAC5C;AAAA,EACL,GAAK;AAAA,IACD,KAAK;AAAA,IACL,OAAO,SAA2BvP,GAAK0P,GAAQ;AAC7C,UAAIpE,IAAS;AAEb,MADKoE,MAAQA,IAAS,KAAK,QAAQ,SAC9BA,MACD,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,gBAAgB,QAAQ1P,CAAG,IAAI,MAChF0P,EAAO,QAAQ,SAAUC,GAAW;AAClC,QAAIrE,EAAO,UAAUqE,CAAS,KAAGrE,EAAO,UAAUqE,CAAS,EAAE,kBAAkB3P,GAAKsL,EAAO,OAAO;AAAA,MAC1G,CAAO;AAAA,IACF;AAAA,EACF,CAAA,CAAC,GACK6D;AACT;AACAA,GAAQ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7VfS,EAAM,OAAOC,EAAU;AACvBD,EAAM,OAAOE,EAAO;AACpBF,EAAM,OAAOG,EAAe;AAE5B,MAAMC,KAAiB,MAEjBC,KAAiB,MAAM;AAC3B,MAAIC,IACF,SAAS,gBAAgB,QAAQ,UAAU,YAAYF;AAClD,SAAAE,IAAAA,EAAK,MAAM,GAAG,CAAC,GACfA;AACT;AAEAC,GACG,IAAIC,EAAgB,EACpB,IAAItY,EAAW,EACf,KAAK;AAAA,EACJ,aAAa;AAAA,EACb,eAAe;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,MACF,aAAa;AAAA,QACX,GAAGuY;AAAA,MACL;AAAA,IACF;AAAA,IACA,IAAI;AAAA,MACF,aAAa;AAAA,QACX,GAAGC;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAEHV,EAAM,OAAOK,IAAgB;AAE7B,MAAMM,KAA0B,IAAI,iBAAiBC,EAAM;AAC3DD,GAAwB,QAAQ,SAAS,iBAAiB;AAAA,EACxD,YAAY;AAAA,EACZ,iBAAiB,CAAC,OAAO,MAAM;AACjC,CAAC;AAEM,SAASC,KAAS;AACvB,QAAMN,IAAOD;AAEb,EAAAL,EAAM,OAAOM,CAAI,GACjBC,GAAQ,eAAeD,CAAI;AAC7B;;;;;;AChCa,MAAAO,KAAiB,CAAoCC,MAAY;AAAA,EAC5E,MAAMC,UAAyBD,EAAK;AAAA,IAApC,cAAA;AAAA,YAAA,GAAA,SAAA,GAM2B,KAAA,OAAA,MAC8B,KAAA,WAAA,IAC3C,KAAA,gBAAgBllB,GAAE,gBAAgB,GACO,KAAA,SAAA,IACE,KAAA,WAAA,IACA,KAAA,WAAA;AAAA,IAAA;AAAA,IAEvD,YAAYolB,GAAkB;AACrB,aAAAnhB,IAAO,KAAK,SACnBA;AAAAA;AAAAA;AAAAA;AAAAA,kBAIY,KAAK,IAAI;AAAA,sBACL,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,oBACf,KAAK,MAAM;AAAA,sBACT,KAAK,QAAQ;AAAA,2BACR,KAAK,aAAa;AAAA;AAAA,kBAE3BiK,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA,UAE7B,KAAK,WACPjK;AAAAA;AAAAA,oBAEY,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAMbiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA;AAAA,0BAGtC;AAAA,aACb;AAAA,QACL,KAAK,eACPjK;AAAAA;AAAAA;AAAAA;AAAAA,iBAIWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,YAElD,KAAK,WAAW;AAAA;AAAA,OAErB;AAAA,QACCkX,CAAO;AAAA,IACX;AAAA,EACF;AArDc/gB,SAAAA,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GADN6gB,EACQ,WAAA,OAAA,GACA9gB,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GAFN6gB,EAEQ,WAAA,aAAA,GACA9gB,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GAHN6gB,EAGQ,WAAA,UAAA,GACA9gB,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GAJN6gB,EAIQ,WAAA,cAAA,GACA9gB,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GALN6gB,EAKQ,WAAA,SAAA,GACA9gB,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GANN6gB,EAMQ,WAAA,MAAA,GACgC9gB,GAAA;AAAA,IAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GAPtC6gB,EAOwC,WAAA,UAAA,GAChC9gB,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GARN6gB,EAQQ,WAAA,eAAA,GACgC9gB,GAAA;AAAA,IAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GATtC6gB,EASwC,WAAA,QAAA,GACA9gB,GAAA;AAAA,IAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GAVtC6gB,EAUwC,WAAA,UAAA,GACA9gB,GAAA;AAAA,IAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GAXtC6gB,EAWwC,WAAA,UAAA,GA6CvCA;AACT;ACxF+B,OAAO;AAAA,EACpC;AACF,EAAE;AAcK,SAASE,GAAkBva,GAAsB;AACtD,QAAMW,IAAOX,EAAQ,QAAQ,aAAa,GAAG,aAAa,MAAM;AACxD,EAAAA,EAAA,aAAa,QAAQW,KAAQ,IAAI;AAC3C;AAMa,MAAA6Z,KAAsB,CAACzhB,MAAyB;AAC3D,MAAI0hB,IAAiB,CAAA;AACjB,MAAA;AACe,IAAAA,IAAA,KAAK,MAAM1hB,KAAS,EAAE;AAAA,UACzB;AACd,YAAQ,MAAM,8BAA8B;AAAA,MAC1C,MAAMA;AAAA,IAAA,CACP;AAAA,EACH;AAEO,SAAA0hB;AACT;AAEO,SAASC,GAAuBC,GAA+B;AAC7D,SAAA;AAAA,IACL,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,SAAS;AAAA,IACT,UAAU;AAAA,IACV,cAAc;AAAA,IACd,OAAO;AAAA,IACP,cAAc;AAAA,IACd,GAAGA;AAAA,EAAA;AAEP;;;;;;ACrCO,SAASC,GACd7W,GACwC;AAAA,EACxC,MAAM8W,UAAqB9W,EAAY;AAAA,IAAvC,cAAA;AAAA,YAAA,GAAA,SAAA,GAC2B,KAAA,OAAA,MACC,KAAA,cAAA;AAAA,IAAA;AAAA,IAEP,OAAO+W,GAA+B;AACvD,MAAK,KAAK,aAAa,MAAM,KACtB,KAAA,aAAa,QAAQ,KAAK,IAAI,GAGjC,KAAK,gBAAgB,UACvBP,GAAkB,IAAI,GAGxB,MAAM,OAAOO,CAAO;AAAA,IACtB;AAAA,EACF;AAdcvhB,SAAAA,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GADNqhB,EACQ,WAAA,MAAA,GACAthB,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GAFNqhB,EAEQ,WAAA,aAAA,GAcPA;AACT;AC9BO,MAAME,KAAqBjX;AAAA,EAChCqW,GAAeS,GAAWzW,GAAiBvL,CAAU,CAAC,CAAC;AACzD;ACRA,SAAS5D,GAAEC,GAAE;AAAC,MAAIC,GAAEC,GAAE,IAAE;AAAG,MAAa,OAAOF,KAAjB,YAA8B,OAAOA,KAAjB;AAAmB,SAAGA;AAAA,WAAoB,OAAOA,KAAjB;AAAmB,QAAG,MAAM,QAAQA,CAAC;AAAE,WAAIC,IAAE,GAAEA,IAAED,EAAE,QAAOC;AAAI,QAAAD,EAAEC,CAAC,MAAIC,IAAEH,GAAEC,EAAEC,CAAC,CAAC,OAAK,MAAI,KAAG,MAAK,KAAGC;AAAA;AAAQ,WAAID,KAAKD;AAAE,QAAAA,EAAEC,CAAC,MAAI,MAAI,KAAG,MAAK,KAAGA;AAAG,SAAO;AAAC;AAAQ,SAASG,KAAM;AAAC,WAAQJ,GAAEC,GAAEC,IAAE,GAAE,IAAE,IAAGA,IAAE,UAAU;AAAQ,KAACF,IAAE,UAAUE,GAAG,OAAKD,IAAEF,GAAEC,CAAC,OAAK,MAAI,KAAG,MAAK,KAAGC;AAAG,SAAO;AAAC;ACCjW,MAAM8lB,KAAgB,CAACjiB,MAAQ,OAAOA,KAAU,YAAY,GAAG,OAAOA,CAAK,IAAIA,MAAU,IAAI,MAAMA,GACtFkiB,KAAK5lB,IACL6lB,KAAM,CAACd,GAAMe,MACf,CAAC1E,MAAQ;AACZ,MAAI2E;AACJ,MAAqDD,GAAO,YAAa;AAAM,WAAOF,GAAGb,GAAoD3D,GAAM,OAAqDA,GAAM,SAAS;AACvN,QAAM,EAAE,UAAA4E,GAAW,iBAAAC,EAAkB,IAAGH,GAClCI,IAAuB,OAAO,KAAKF,CAAQ,EAAE,IAAI,CAACG,MAAU;AAC9D,UAAMC,IAA4DhF,IAAM+E,CAAO,GACzEE,IAAuFJ,IAAgBE,CAAO;AACpH,QAAIC,MAAgB;AAAM,aAAO;AACjC,UAAME,IAAaX,GAAcS,CAAW,KAAKT,GAAcU,CAAkB;AACjF,WAAOL,EAASG,CAAO,EAAEG,CAAU;AAAA,EAC/C,CAAS,GACKC,IAAwBnF,KAAS,OAAO,QAAQA,CAAK,EAAE,OAAO,CAACoF,GAAKC,MAAQ;AAC9E,QAAI,CAAC5f,GAAKnD,CAAK,IAAI+iB;AACnB,WAAI/iB,MAAU,WAGd8iB,EAAI3f,CAAG,IAAInD,IACJ8iB;AAAA,EACV,GAAE,CAAE,CAAA,GACCE,IAA+BZ,KAAW,SAAsCC,IAAMD,EAAO,sBAAsB,QAAQC,MAAQ,SAA7D,SAA+EA,EAAI,OAAO,CAACS,GAAKG,MAAS;AACjL,QAAI,EAAE,OAAOC,GAAU,WAAWC,GAAc,GAAGC,EAAwB,IAAGH;AAC9E,WAAO,OAAO,QAAQG,CAAsB,EAAE,MAAM,CAACL,MAAQ;AACzD,UAAI,CAAC5f,GAAKnD,CAAK,IAAI+iB;AACnB,aAAO,MAAM,QAAQ/iB,CAAK,IAAIA,EAAM,SAAS;AAAA,QACzC,GAAGuiB;AAAA,QACH,GAAGM;AAAA,MACvB,EAAkB1f,CAAG,CAAC,IAAK;AAAA,QACP,GAAGof;AAAA,QACH,GAAGM;AAAA,MACvB,EAAmB1f,CAAG,MAAMnD;AAAA,IAC5B,CAAa,IAAI;AAAA,MACD,GAAG8iB;AAAA,MACHI;AAAA,MACAC;AAAA,IACH,IAAGL;AAAA,EACP,GAAE,CAAE,CAAA;AACL,SAAOZ,GAAGb,GAAMmB,GAAsBQ,GAA4EtF,GAAM,OAAqDA,GAAM,SAAS;AACpM,GCvCa2F,KAAiBlB,GAAI,UAAU;AAAA,EAC1C,UAAU;AAAA,IACR,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB,EAAE,OAAO,UAAU,MAAM,MAAM,OAAO,oBAAoB;AAAA,IAC1D,EAAE,OAAO,UAAU,MAAM,MAAM,OAAO,oBAAoB;AAAA,IAC1D,EAAE,OAAO,UAAU,MAAM,MAAM,OAAO,oBAAoB;AAAA,IAC1D,EAAE,OAAO,UAAU,MAAM,MAAM,OAAO,oBAAoB;AAAA,EAC5D;AAAA,EACA,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF,CAAC;;;;;;ACMoB,IAAAmB,KAArB,cAAyCtB,GAAmB;AAAA,EAA5D,cAAA;AAAA,UAAA,GAAA,SAAA,GAGwD,KAAA,UAAA,WACN,KAAA,OAAA,MACM,KAAA,UAAA,IAChB,KAAA,SAAA,IACY,KAAA,QAAA,UACX,KAAA,WAAA,UAGN,KAAA,SAAA,SACf,KAAA,MAAA;AAAA,EAAA;AAAA,EAIV,cAAuB;AAC7B,QAAIuB,IAAU;AACV,QAAA,KAAK,aAAa,UAAU;AACxB,YAAAC,IAAQ,SAAS,cAAc,QAAQ;AAC7C,MAAAA,EAAM,OAAO,KAAK,UACb,KAAA,sBAAsB,YAAYA,CAAK,GAC5CA,EAAM,MAAM,GACZA,EAAM,OAAO,GACHD,IAAA;AAAA,IACZ;AACO,WAAAA;AAAA,EACT;AAAA,EAEA,MAAMtjB,GAAwB;AACvB,SAAA,OAAO,MAAMA,CAAO;AAAA,EAC3B;AAAA,EAEA,IAAW,eAAe;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAS;AACA,WAAAG;AAAAA,SACFC,EAAa,KAAK,OAAO,MAAM,QAAQ,CAAC;AAAA;AAAA,oBAE7B,KAAK,QAAQ;AAAA,wBACT,KAAK,QAAQ;AAAA,qBAChBgK,EAAU,KAAK,SAAS,CAAC;AAAA,qBACzB,KAAK,SAAS;AAAA,eACpBA,EAAU,KAAK,OAAO,OAAO,KAAK,QAAQ,CAAC;AAAA,eAC3CA,EAAU,KAAK,IAAI,CAAC;AAAA,iBAClBA,EAAU,KAAK,MAAM,CAAC;AAAA,cACzBA,EAAU,KAAK,GAAG,CAAC;AAAA,gBACjB/N;AAAAA,MACN+mB,GAAe;AAAA,QACb,QAAQ,KAAK;AAAA,QACb,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,MAAA,CACb;AAAA,MACD;AAAA,QACE,SAAS;AAAA,QACT,QAAQ,KAAK;AAAA,QACb,UAAU,KAAK;AAAA,QACf,SAAS,KAAK;AAAA,MAChB;AAAA,IAAA,CACD;AAAA,iBACQ,KAAK,WAAW;AAAA,UAEvB,KAAK,UACD,KAAK,mBAAA,IACLjjB;AAAAA;AAAAA,sBAGN;AAAA,UACEC,EAAa,KAAK,OAAO,MAAM,QAAQ,CAAC;AAAA;AAAA,EAEhD;AAAA,EAEQ,qBAAqB;AACpB,WAAAD;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAQT;AACF;AApFqBkjB,GAcZ,SAAShjB,EAAUC,EAAM;AAbdC,GAAA;AAAA,EAAjBsK,GAAM,SAAS;AAAA,GADGwY,GACD,WAAA,UAAA,CAAA;AAEW9iB,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAHR6iB,GAGU,WAAA,WAAA,CAAA;AACA9iB,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAJR6iB,GAIU,WAAA,QAAA,CAAA;AACe9iB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GALvB6iB,GAKyB,WAAA,WAAA,CAAA;AACf9iB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR6iB,GAMU,WAAA,UAAA,CAAA;AACA9iB,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAPR6iB,GAOU,WAAA,SAAA,CAAA;AACjB9iB,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS6iB,GAQP,WAAA,YAAA,CAAA;AACA9iB,GAAA;AAAA,EAAXC,EAAS;AAAA,GATS6iB,GASP,WAAA,QAAA,CAAA;AACA9iB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAVS6iB,GAUP,WAAA,QAAA,CAAA;AACA9iB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAXS6iB,GAWP,WAAA,UAAA,CAAA;AACA9iB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAZS6iB,GAYP,WAAA,OAAA,CAAA;AAZOA,KAArB9iB,GAAA;AAAA,EADCE,EAAc,eAAe;AAAA,GACT4iB,EAAA;;;;;;;ACRrB,IAAqBG,KAArB,cAA+C1Y,GAAelL,CAAU,EAAE;AAAA,EAA1E,cAAA;AAAA,UAAA,GAAA,SAAA,GAEmD,KAAA,WAAA,IACG,KAAA,cAAA,IACN,KAAA,QAAA,IACK,KAAA,aAAA,IACJ,KAAA,SAAA,IACC,KAAA,UAAA;AAAA,EAAA;AAAA,EAIhD,IAAI,QAAgB;AAClB,WAAI,KAAK,QACA,GAAG0gB,EAAM,KAAK,KAAK,EAAE,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQpkB,GAAE,gBAAgB,IAAI,EAAE,IAAI,KAAK,WAAWA,GAAE,UAAU,IAAI,EAAE,KAGxH;AAAA,EACT;AAAA,EAEA,IAAW,eAA4B;AAC9B,WAAA;AAAA,EACT;AAAA,EAEU,aACRuL,GACM;AACN,UAAM,aAAaA,CAAkB,GAEhC,KAAA,aAAa,cAAc,KAAK,KAAK;AAAA,EAC5C;AAAA,EAEU,QACRA,GACM;AACN,UAAM,QAAQA,CAAkB,GAE5BA,EAAmB,IAAI,aAAa,KACtC,KAAK,aAAa,iBAAiB,KAAK,cAAc,SAAS,OAAO,GAGpEA,EAAmB,IAAI,UAAU,MACnC,KAAK,aAAa,iBAAiB,KAAK,WAAW,SAAS,OAAO,GAC9D,KAAA,aAAa,cAAc,KAAK,KAAK;AAAA,EAE9C;AAAA,EAEA,WAAWgc,GAAiBC,GAAgB;AAE1C,WADa,IAAI,KAAKD,CAAO,EACjB,mBAAmBC,GAAQ,EAAE,SAAS,QAAQ;AAAA,EAC5D;AAAA,EAEA,SAAS;AACA,WAAAvjB;AAAAA;AAAAA;AAAAA,gBAGK9D;AAAAA,MACN;AAAA,MACA,EAAE,2BAA2B,KAAK,SAAS;AAAA,MAC3C,EAAE,2BAA2B,KAAK,YAAY;AAAA,MAC9C,EAAE,wBAAwB,KAAK,MAAM;AAAA,MACrC,EAAE,+BAA+B,KAAK,WAAW;AAAA,MACjD,EAAE,yBAAyB,KAAK,OAAO;AAAA,MACvC,EAAE,0BAA0B,KAAK,QAAQ;AAAA,IAAA,CAC1C;AAAA;AAAA,UAEC,KAAK,QACH8D;AAAAA;AAAAA,2DAGA8J,CAAO;AAAA;AAAA;AAAA,EAGjB;AACF;AAzEqBuZ,GASZ,SAASnjB,EAAUC,EAAM;AARAC,GAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,IAAO;AAAA,GADXgjB,GACa,WAAA,SAAA,CAAA;AACHjjB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAFRgjB,GAEU,WAAA,YAAA,CAAA;AACAjjB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAHRgjB,GAGU,WAAA,eAAA,CAAA;AACAjjB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJRgjB,GAIU,WAAA,SAAA,CAAA;AACAjjB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GALRgjB,GAKU,WAAA,cAAA,CAAA;AACAjjB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRgjB,GAMU,WAAA,UAAA,CAAA;AACAjjB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAPRgjB,GAOU,WAAA,WAAA,CAAA;AAPVA,KAArBjjB,GAAA;AAAA,EADCE,EAAc,sBAAsB;AAAA,GAChB+iB,EAAA;;;;;;ACCA,IAAAG,KAArB,cAA2C/jB,EAAW;AAAA,EAAtD,cAAA;AAAA,UAAA,GAAA,SAAA,GAIkC,KAAA,cAAc0gB,KACd,KAAA,UAAUA,EAAM,YAAY,GAC5B,KAAA,UAAUA,EAAM,YAAY,GAChD,KAAA,eAAe,CAACsD,MACnB,CAACA,GAyCV,KAAA,eAAe,MAAM;AACnB,WAAK,cAAc;AAAA,IAAA,GAkBrB,KAAA,kBAAkB,CAACA,MAAgB;AAC3B,YAAAC,IAAOD,EAAK,eACZpD,IAAUoD,EAAK;AAErB,aAAO,KAAK,MAAMC,IAAOrD,KAAW,CAAC;AAAA,IAAA;AAAA,EACvC;AAAA,EA1DA,IAAI,YAAY;AACd,WAAIF,EAAM,QAAQ,KAAK,WAAW,IACzBA,EAAM,KAAK,YAAY,QAAQ,EAAE,QAAQ,OAAO,IAElDA,EAAM,KAAK,WAAW,EAAE,QAAQ,OAAO;AAAA,EAChD;AAAA,EAEA,IAAI,UAAU;AACZ,WAAOA,EAAM,KAAK,WAAW,EAAE,MAAM,OAAO;AAAA,EAC9C;AAAA,EAEU,aACR7Y,GACM;AACN,UAAM,aAAaA,CAAkB,GACL,IAAI,iBAAiB,KAAK,YAAY,EAC9C,QAAQ,SAAS,iBAAiB;AAAA,MACxD,YAAY;AAAA,MACZ,iBAAiB,CAAC,OAAO,MAAM;AAAA,IAAA,CAChC,GAEI,KAAA,SAAS,KAAK,OAAO,EAAK;AAAA,EACjC;AAAA,EAEU,QACRA,GACM;AACN,UAAM,QAAQA,CAAkB,GAE5BA,EAAmB,IAAI,OAAO,KAC3B,KAAA,SAAS,KAAK,OAAO,EAAK;AAAA,EAEnC;AAAA,EAMA,SAAS1H,GAAc+jB,IAAW,IAAM;AACtC,QAAI/jB;AACF,UAAI,KAAK,aAAaugB,EAAM,KAAK,WAAW,GAAGvgB,CAAK;AAClD,aAAK,qBAAqB;AAAA,WACrB;AACL,cAAMgkB,IAAe,KAAK,cAAczD,EAAMvgB,CAAK,CAAC;AAC/C,aAAA,eAAegkB,GAAeD,CAAQ;AAAA,MAC7C;AAAA;AACF,MAAW,KAAK,aAAaxD,EAAM,KAAK,WAAW,GAAGA,EAAM,CAAC,IAC3D,KAAK,4BAA4B,IAEjC,KAAK,WAAW;AAAA,EAEpB;AAAA,EASA,aAAa0D,GAAoBJ,GAAa;AAC5C,WAAO,CAACtD,EAAM0D,CAAW,EAAE,OAAOJ,GAAM,OAAO;AAAA,EACjD;AAAA,EAEA,QAAQA,GAAa;AACnB,WAAOA,EAAK,OAAW,oBAAA,QAAQ,KAAK;AAAA,EACtC;AAAA,EAEA,WAAWA,GAAa;AAClB,WAAC,KAAK,QAIHA,EAAK,OAAO,KAAK,OAAO,KAAK,IAH3B;AAAA,EAIX;AAAA,EAEA,eAAeK,GAAcC,GAAa;AACxC,QAAIN,IAAOM,EAAK,QAAQ,MAAM,EAAE,IAAID,GAAM,MAAM;AAChD,UAAME,IAAiB,CAAA;AAEhB,WAAAA,EAAM,SAAS,KAAG;AACvB,MAAAA,EAAM,KAAKP,CAAI;AACf,YAAMQ,IAAWR,EAAK,IAAI,GAAG,KAAK;AAClC,UAAIA,EAAK,OAAOM,EAAK,MAAM,OAAO,CAAC;AACjC;AAEK,MAAAN,IAAAQ;AAAA,IACT;AAEO,WAAAD;AAAA,EACT;AAAA,EAEA,qBAAqBP,GAAa;AAE1B,UAAAS,IAAU/D,EAAM,KAAK,OAAO,GAC5BgE,IAAUhE,EAAM,KAAK,OAAO,GAC5BiE,IAAUF,EAAQ,QAClBG,IAAUF,EAAQ,QAClBG,IAAWJ,EAAQ,SACnBK,IAAWJ,EAAQ;AAUzB,WARI,EAAAV,EAAK,SAASW,KAAWX,EAAK,SAASY,KAIvCZ,EAAK,WAAWW,KAAWX,EAAK,UAAUa,KAI1Cb,EAAK,WAAWW,KAAWX,EAAK,UAAUc;AAAA,EAKhD;AAAA,EAEA,sBAAsBC,GAAcC,GAAe;AAC1C,WAAA,KAAK,qBAAqBtE,EAAM,IAAI,KAAKqE,GAAMC,GAAO,CAAC,CAAC,CAAC;AAAA,EAClE;AAAA,EAEA,2BAA2BD,GAAcC,GAAehB,GAAc;AAC7D,WAAA,KAAK,qBAAqBtD,EAAM,IAAI,KAAKqE,GAAMC,GAAOhB,CAAI,CAAC,CAAC;AAAA,EACrE;AAAA,EAEA,SAASgB,GAAe;AACtB,QACEA,IAAQ,KACR,KAAK,sBAAsBtE,EAAM,KAAK,WAAW,EAAE,KAAK,IAAI,GAAG,EAAE,GACjE;AACA,WAAK,QAAQA,EAAM,KAAK,WAAW,EAAE,KAAA,IAAS,CAAC,GAC/C,KAAK,cAAc,KAAK,YAAY,IAAI,SAAS,EAAE,GACnD,KAAK,cAAc;AACnB;AAAA,IACF;AAEA,QACEsE,IAAQ,MACR,KAAK,sBAAsBtE,EAAM,KAAK,WAAW,EAAE,KAAK,IAAI,GAAG,CAAC,GAChE;AACA,WAAK,QAAQA,EAAM,KAAK,WAAW,EAAE,KAAA,IAAS,CAAC,GAC/C,KAAK,cAAc,KAAK,YAAY,IAAI,SAAS,CAAC,GAClD,KAAK,cAAc;AACnB;AAAA,IACF;AAEI,IAAC,KAAK,sBAAsBA,EAAM,KAAK,WAAW,EAAE,QAAQsE,CAAK,MAIrE,KAAK,cAActE,EAAM,KAAK,WAAW,EAAE,IAAI,SAASsE,CAAK,GAC7D,KAAK,cAAc;AAAA,EACrB;AAAA,EAEA,OAAOC,GAAa;AACZ,UAAAjB,IAAOtD,EAAM,KAAK,WAAW;AAE/B,IAAC,KAAK,2BAA2BsD,EAAK,QAAQA,EAAK,SAASiB,CAAG,MAI9DjB,EAAA,IAAI,QAAQiB,CAAG,GACpB,KAAK,cAAc;AAAA,EACrB;AAAA,EAEA,QAAQF,GAAc;AACd,UAAAf,IAAOtD,EAAM,KAAK,WAAW;AAEnC,SAAK,cAAcsD,EAAK,IAAI,QAAQe,CAAI,GACxC,KAAK,cAAc;AAAA,EACrB;AAAA,EAEA,gBAAgBf,GAAa;AACvB,IAAA,KAAK,aAAaA,CAAI,KAIrB,KAAK,qBAAqBA,CAAI,MAI/B,KAAK,aAAatD,EAAM,KAAK,WAAW,GAAGsD,CAAI,KAC5C,KAAA,SAASA,EAAK,MAAO,CAAA,GAG5B,KAAK,QAAQA,GACb,KAAK,eAAe,KAAK,cAAcA,CAAI,CAAE,GAE7C,KAAK,KAAK,cAAc,EAAE,OAAO,KAAK,OAAO;AAAA,EAC/C;AAAA,EAEA,yBAAyB;AACvB,WAAO,CAAC,GAAG,KAAK,KAAK,EAAE,KAAK,CAAQkB,MAC3BxE,EAAMwE,EAAK,KAAK,EAAE,OAAO,KAAK,WAAW,KAAK,CACtD;AAAA,EACH;AAAA,EAEA,cAAclB,GAAa;AACzB,WAAO,CAAC,GAAG,KAAK,KAAK,EAAE,KAAK,CAAQkB,MAC3BxE,EAAMwE,EAAK,KAAK,EAAE,OAAOlB,GAAM,KAAK,CAC5C;AAAA,EACH;AAAA,EAEA,cAAc3jB,GAAsB;AAC9B,QAAAA,EAAM,QAAQ;AAChB;AAGF,IAAAA,EAAM,eAAe;AACrB,UAAM+G,IAAU/G,EAAM,aAAa,EAAE,CAAC;AACtC,QAAI+G,aAAmBwc;AACrB,cAAQvjB,EAAM,MAAM;AAAA,QAClB,KAAK;AACE,eAAA,cAAc+G,GAAS,EAAE;AAC9B;AAAA,QACF,KAAK;AACE,eAAA,cAAcA,GAAS,CAAC;AAC7B;AAAA,QACF,KAAK;AACE,eAAA,cAAcA,GAAS,EAAE;AAC9B;AAAA,QACF,KAAK;AACE,eAAA,cAAcA,GAAS,CAAC;AAC7B;AAAA,QACF,KAAK;AACH,eAAK,SAASsZ,EAAM,KAAK,WAAW,EAAE,MAAA,IAAU,CAAC;AACjD;AAAA,QACF,KAAK;AACH,eAAK,SAASA,EAAM,KAAK,WAAW,EAAE,MAAA,IAAU,CAAC;AACjD;AAAA,QACF,KAAK;AACE,eAAA,gBAAgBtZ,EAAQ,KAAK;AAClC;AAAA,MACJ;AAAA,EAEJ;AAAA,EAEA,eAAe8d,GAAyBhB,IAAW,IAAM;AACvD,IAAI,KAAK,gBACF,KAAA,aAAa,aAAa,YAAY,IAAI,GAEjD,KAAK,eAAegB,GACf,KAAA,aAAa,aAAa,YAAY,GAAG,GAE1ChB,KACF,KAAK,aAAa;EAEtB;AAAA,EAEA,uBAAuB;AACf,UAAAiB,IAAkB,KAAK;AACZ,IAAAA,GAAA,aAAa,YAAY,GAAG,GAC7C,KAAK,eAAeA;AAAA,EACtB;AAAA,EAEA,aAAa;AACX,UAAMC,IAAQ,KAAK,cAAc1E,EAAO,CAAA;AACjC,IAAA0E,GAAA,aAAa,YAAY,GAAG,GACnC,KAAK,eAAeA;AAAA,EACtB;AAAA,EAEA,4BAA4BhB,IAAc,KAAK,aAAa;AAC1D,UAAMiB,IAAkB,KAAK;AAAA,MAC3B3E,EAAM0D,CAAW,EAAE,QAAQ,OAAO;AAAA,IAAA;AAEnB,IAAAiB,GAAA,aAAa,YAAY,GAAG,GAC7C,KAAK,eAAeA;AAAA,EACtB;AAAA,EAEA,cAAcje,GAA4Bke,GAAgB;AAExD,UAAMC,IADQ,CAAC,GAAG,KAAK,KAAK,EAAE,QAAQne,CAAO,IACnBke,GACpBE,IAAe9E,EAAM,KAAK,WAAW,EAAE,MAAM;AAEnD,QAAI6E,KAAa,KAAKA,IAAY,KAAK,MAAM,QAAQ;AAC7C,YAAAL,IAAO,KAAK,MAAMK,CAAS;AACjC,WAAK,eAAeL,CAAI;AAAA,IAAA;AAC1B,MAAWK,IAAY,KAChB,KAAA,SAASC,IAAe,CAAC,GAE1B,KAAK,YAAY,MAAM,IAAIA,KACxB,KAAA,eAAe,KAAK,MAAM;AAC7B,cAAMC,IAAU/E,EAAM,KAAK,WAAW,EAAE,MAAM,OAAO,GAC/CgF,IAAc,KAAK,cAAcD,CAAO;AAC9C,aAAK,eAAeC,CAAY;AAAA,MAAA,CACjC,KAEMH,KAAa,KAAK,MAAM,WAC5B,KAAA,SAASC,IAAe,CAAC,GAE1B,KAAK,YAAY,MAAM,IAAIA,KACxB,KAAA,eAAe,KAAK,MAAM;AAC7B,cAAMG,IAAWjF,EAAM,KAAK,WAAW,EAAE,QAAQ,OAAO,GAClDkF,IAAe,KAAK,cAAcD,CAAQ;AAChD,aAAK,eAAeC,CAAa;AAAA,MAAA,CAClC;AAAA,EAGP;AAAA,EAEA,2BAA2B;AAClB,WAAArlB;AAAAA;AAAAA,UAEDmgB,EAAM,YAAY,EAAI,EAAE;AAAA,MACxB,CACEuE,MAAA1kB;AAAAA,6CACiC0kB,CAAG;AAAA;AAAA,IAAA,CAEvC;AAAA;AAAA;AAAA,EAGP;AAAA,EAEA,uBAAuBjB,GAAa;AAC3B,WAAAzjB;AAAAA,QACH,CAAC,GAAG,IAAI,MAAM,KAAK,gBAAgByjB,KAAQtD,GAAO,CAAC,EAAE,KAAA,CAAM,EAAE;AAAA,MAC7D,CACE2D,MAAA9jB;AAAAA,cACI,KAAK,eAAe8jB,GAAML,CAAI,EAAE,IAAI,CAAK5mB,MAAA;AACnC,cAAAyoB,IACJ,CAAC,KAAK,qBAAqBzoB,CAAC,KAAK,KAAK,aAAaA,CAAC;AAEtD,eAAOmD,sCAAyCslB,CAAU;AAAA;AAAA,gCAExC,KAAK,aAAa,KAAK,aAAazoB,CAAC,CAAC;AAAA,2BAC3C,KAAK,QAAQA,CAAC,CAAC;AAAA,8BACZ,KAAK,WAAWA,CAAC,CAAC;AAAA,2BACrBA,CAAC;AAAA,iCACKyoB,CAAU;AAAA;AAAA,2BAEhB,MAAM,CAACA,KAAc,KAAK,gBAAgBzoB,CAAC,CAAC;AAAA,6BAC1C,KAAK,aAAa;AAAA,qBAC1BA,EAAE,MAAM;AAAA;AAAA;AAAA,MAAA,CAGhB,CAAC;AAAA;AAAA,IAAA,CAEP;AAAA;AAAA,EAEL;AAAA,EAEA,uBAAuB;AACd,WAAAmD;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,uBAOYyJ,GAAU,oBAAoB,CAAC;AAAA,mBACnC,MAAM;AACb,WAAK,SAAS,KAAK,YAAY,MAAA,IAAU,CAAC;AAAA,IAAA,CAC3C;AAAA;AAAA;AAAA;AAAA,kBAIOvN;AAAAA,MACN;AAAA,MACA;AAAA,IAAA,CACD;AAAA;AAAA;AAAA,kBAGOikB,EAAM,KAAK,WAAW,EAAE,MAAM;AAAA,wBACxB,CAACrkB,MAAmB;AAChC,MAAAA,EAAE,eAAe,GACjBA,EAAE,gBAAgB,GAEhBA,EAAE,OAAO,SACT,CAAC,MAAM,SAASA,EAAE,OAAO,KAAK,CAAC,KAC/B,SAASA,EAAE,OAAO,KAAK,MAAMqkB,EAAM,KAAK,WAAW,EAAE,WAErD,KAAK,cAAcA,EAAM,KAAK,WAAW,EAAE;AAAA,QACzC;AAAA,QACA,SAASrkB,EAAE,OAAO,KAAK;AAAA,MAAA,GAEzB,KAAK,cAAc;AAAA,IACrB,CACD;AAAA;AAAA;AAAA;AAAA,YAIC;AAAA,MACA,GAAG,IAAI;AAAA,QACLqkB,EAAM,KAAK,OAAO,EAAE,KAAS,IAAAA,EAAM,KAAK,OAAO,EAAE,KAAA,IAAS;AAAA,QAC1D,KAAK;AAAA,IAAA,EACP;AAAA,MACA,CACEqE,MAAAxkB;AAAAA,wBACUmgB,EAAM,KAAK,OAAO,EAAE,KAAA,IAASqE,CAAI;AAAA,kBACvCrE,EAAM,KAAK,OAAO,EAAE,KAAA,IAASqE,CAAI;AAAA;AAAA,IAAA,CAExC;AAAA;AAAA;AAAA,kBAGOtoB;AAAAA,MACN;AAAA,MACA;AAAA,IAAA,CACD;AAAA;AAAA;AAAA,kBAGOikB,EAAM,KAAK,WAAW,EAAE,MAAA,IAAU,CAAC;AAAA,wBAC7B,CAACrkB,MAAmB;AAChC,MAAAA,EAAE,eAAe,GACjBA,EAAE,gBAAgB,GAGhBA,EAAE,OAAO,SACT,CAAC,MAAM,SAASA,EAAE,OAAO,KAAK,CAAC,KAC/B,SAASA,EAAE,OAAO,KAAK,MAAMqkB,EAAM,KAAK,WAAW,EAAE,MAAM,IAAI,KAE/D,KAAK,SAAS,SAASrkB,EAAE,OAAO,KAAK,IAAI,CAAC;AAAA,IAC5C,CACD;AAAA;AAAA;AAAA;AAAA,YAICqkB,EACC,SACA;AAAA,MACC,CAACsE,GAAOviB,MACNlC,8BAAiCkC,IAAQ,CAAC;AAAA,oBACtCuiB,CAAK;AAAA;AAAA,IAAA,CAEZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAOUhb,GAAU,oBAAoB,CAAC;AAAA,mBACnC,MAAM;AACb,WAAK,SAAS0W,EAAM,KAAK,WAAW,EAAE,MAAA,IAAU,CAAC;AAAA,IAAA,CAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKT;AAAA,EAEA,SAAS;AACA,WAAAngB;AAAAA,QACH,KAAK,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,qBAKd,GAAG,KAAK,QAAQmgB,EAAM,KAAK,KAAK,EAAE,OAAO,UAAU,IAAI,EAAE,EAAE;AAAA,UACtE,KAAK,0BAA0B;AAAA,UAC/B,KAAK,uBAAuB,KAAK,SAAS,CAAC;AAAA;AAAA;AAAA,EAGnD;AACF;AAndqBqD,GAaZ,SAAStjB,EAAUC,EAAM;AAXhCC,GAAA;AAAA,EADCmlB,GAAS,oCAAoC;AAAA,GAD3B/B,GAEnB,WAAA,SAAA,CAAA;AACgCpjB,GAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,IAAO;AAAA,GAHXmjB,GAGa,WAAA,SAAA,CAAA;AACApjB,GAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,IAAO;AAAA,GAJXmjB,GAIa,WAAA,eAAA,CAAA;AACApjB,GAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,IAAO;AAAA,GALXmjB,GAKa,WAAA,WAAA,CAAA;AACApjB,GAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,IAAO;AAAA,GANXmjB,GAMa,WAAA,WAAA,CAAA;AACpBpjB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAPSmjB,GAOP,WAAA,gBAAA,CAAA;AAIKpjB,GAAA;AAAA,EAAhBohB,EAAM;AAAA,GAXYgC,GAWF,WAAA,gBAAA,CAAA;AAXEA,KAArBpjB,GAAA;AAAA,EADCE,EAAc,iBAAiB;AAAA,GACXkjB,EAAA;;;;;;;ACgBA,IAAAgC,KAArB,cAA0C/lB,EAAW;AAAA,EAArD,cAAA;AAAA,UAAA,GAAA,SAAA,GACwC,KAAA,UAAA,SACH,KAAA,YAAA,cACE,KAAA,QAAA,QACU,KAAA,SAAA,IACG,KAAA,YAAA,IAGJ,KAAA,SAAA;AAAA,EAAA;AAAA,EAI9C,eAAe4iB,GAAyB;AACtC,YAAQA,GAAS;AAAA,MACf,KAAK;AACI,eAAAriB;AAAAA,MACT,KAAK;AACI,eAAAA;AAAAA,MACT,KAAK;AACI,eAAAA;AAAAA,MACT,KAAK;AACI,eAAAA;AAAAA,MACT,KAAK;AACI,eAAAA;AAAAA,MACT;AACS,eAAAA;AAAAA,IACX;AAAA,EACF;AAAA,EAEA,cAAc;AACZ,SAAK,KAAK,WAAW;AAAA,EACvB;AAAA,EAEA,SAAS;AACA,WAAA,KAAK,WAAW,UACnBA;AAAAA;AAAAA;AAAAA,oBAGY9D;AAAAA,MACN;AAAA,MACA,YAAY,KAAK,OAAO;AAAA,MACxB,YAAY,KAAK,SAAS;AAAA,MAC1B,YAAY,KAAK,KAAK;AAAA,MACtB,EAAE,mBAAmB,KAAK,OAAO;AAAA,IAAA,CAClC;AAAA;AAAA;AAAA;AAAA,oBAIO,KAAK,eAAe,KAAK,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,kBAInC,KAAK,QACH8D;AAAAA,2CACuB,KAAK,KAAK;AAAA,+BAEjC8J,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAQX,KAAK,YACH9J;AAAAA;AAAAA;AAAAA;AAAAA,qCAImB,KAAK,mBACd,KAAK,mBACLyJ,GAAU,OAAO,CAAC;AAAA,iCACb,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA,6BAK/BK,CAAO;AAAA;AAAA;AAAA,YAIjBA;AAAAA,EACN;AACF;AAnFqB0b,GAUZ,SAAStlB,EAAUC,EAAM;AATpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSmlB,GACP,WAAA,WAAA,CAAA;AACAplB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSmlB,GAEP,WAAA,aAAA,CAAA;AACAplB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHSmlB,GAGP,WAAA,SAAA,CAAA;AACiBplB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJRmlB,GAIU,WAAA,UAAA,CAAA;AACAplB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GALRmlB,GAKU,WAAA,aAAA,CAAA;AACjBplB,GAAA;AAAA,EAAXC,EAAS;AAAA,GANSmlB,GAMP,WAAA,SAAA,CAAA;AACAplB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAPSmlB,GAOP,WAAA,oBAAA,CAAA;AACiBplB,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GARRmlB,GAQU,WAAA,UAAA,CAAA;AARVA,KAArBplB,GAAA;AAAA,EADCE,EAAc,gBAAgB;AAAA,GACVklB,EAAA;;;;;;;ACpBrB,IAAqBC,KAArB,cAAuChE,GAAWhiB,CAAU,EAAE;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAC6C,KAAA,cAAA,IACY,KAAA,WAAA,IACtB,KAAA,SAAA,SACN,KAAA,OAAA,KACT,KAAA,MAAA;AAAA,EAAA;AAAA,EAIlB,SAAS;AACA,WAAAO;AAAAA,QACH,KAAK,cACHA;AAAAA;AAAAA,oBAEU9D,EAAK,QAAQ;AAAA,MACnB,qBAAqB;AAAA,MACrB,kBAAkB,KAAK;AAAA,MACvB,CAAC,SAAS,KAAK,IAAI,EAAE,GAAG;AAAA,IAAA,CACzB,CAAC;AAAA,yBACW+N,EAAU,KAAK,SAAS,KAAK,EAAE;AAAA,qBACnC,KAAK,MAAM;AAAA,mBACb,KAAK,IAAI;AAAA,kBACV,KAAK,MAAM;AAAA;AAAA,kBAGnBjK;AAAAA;AAAAA,qBAEW9D,EAAK,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI,EAAE,GAAG,GAAK,CAAC,CAAC;AAAA;AAAA,iBAElD;AAAA;AAAA,EAEf;AACF;AAhCqBupB,GAOZ,SAASvlB,EAAUC,EAAM;AANHC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GADRolB,GACU,WAAA,eAAA,CAAA;AACerlB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAFvBolB,GAEyB,WAAA,YAAA,CAAA;AAChCrlB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHSolB,GAGP,WAAA,UAAA,CAAA;AACArlB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAJSolB,GAIP,WAAA,QAAA,CAAA;AACArlB,GAAA;AAAA,EAAXC,EAAS;AAAA,GALSolB,GAKP,WAAA,OAAA,CAAA;AALOA,KAArBrlB,GAAA;AAAA,EADCE,EAAc,aAAa;AAAA,GACPmlB,EAAA;;;;;;;ACJrB,IAAqBC,KAArB,cAA8CjE,GAAWhiB,CAAU,EAAE;AAAA,EAArE,cAAA;AAAA,UAAA,GAAA,SAAA,GACoC,KAAA,cAAA;AAAA,EAAA;AAAA,EAIlC,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,gBAAgB,iBAAiB,KAAK,IAAI,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA,EAIhE;AACF;AAdqBwpB,GAGZ,SAASxlB,EAAUC,EAAM;AAFpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSqlB,GACP,WAAA,eAAA,CAAA;AADOA,KAArBtlB,GAAA;AAAA,EADCE,EAAc,qBAAqB;AAAA,GACfolB,EAAA;;;;;;;ACCrB,IAAqBC,KAArB,cAA8ClE,GAAWhiB,CAAU,EAAE;AAAA,EAArE,cAAA;AAAA,UAAA,GAAA,SAAA,GACyB,KAAA,WAAA,OACW,KAAA,cAAA;AAAA,EAAA;AAAA,EAIlC,SAAS;AACA,WAAAO;AAAAA,SACFC,EAAa,KAAK,QAAQ,CAAC,sBAAsB/D;AAAAA,MAClD;AAAA,MACA,iBAAiB,KAAK,IAAI;AAAA,IAAA,CAC3B;AAAA;AAAA,UAEG+D,EAAa,KAAK,QAAQ,CAAC;AAAA;AAAA,EAEnC;AACF;AAhBqB0lB,GAIZ,SAASzlB,EAAUC,EAAM;AAHpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSslB,GACP,WAAA,YAAA,CAAA;AACAvlB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSslB,GAEP,WAAA,eAAA,CAAA;AAFOA,KAArBvlB,GAAA;AAAA,EADCE,EAAc,qBAAqB;AAAA,GACfqlB,EAAA;;;;;;;ACFA,IAAAC,KAArB,cAA4CnmB,EAAW;AAAA,EAQrD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,cAGG,UAAU,KAAK,KAAK,eAAe,KAAK,MAAM,KAAK;AAAA,YACrD,KAAK,GAAG;AAAA,YACR,KAAK,GAAG;AAAA,EAClB;AACF;AAhBqB4lB,GAMZ,SAAS1lB,EAAUC,EAAM;AALpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSulB,GACP,WAAA,OAAA,CAAA;AACAxlB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSulB,GAEP,WAAA,OAAA,CAAA;AACgBxlB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAHPulB,GAGS,WAAA,SAAA,CAAA;AACAxlB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAJPulB,GAIS,WAAA,UAAA,CAAA;AAJTA,KAArBxlB,GAAA;AAAA,EADCE,EAAc,mBAAmB;AAAA,GACbslB,EAAA;;;;;;;ACErB,IAAqBC,KAArB,cAA+CpE,GAAWhiB,CAAU,EAAE;AAAA,EAAtE,cAAA;AAAA,UAAA,GAAA,SAAA,GACyB,KAAA,WAAA,QACW,KAAA,cAAA;AAAA,EAAA;AAAA,EAIlC,SAAS;AACA,WAAAO;AAAAA,SACFC,EAAa,KAAK,QAAQ,CAAC,sBAAsB/D,EAAK,iBAAiB,kBAAkB,KAAK,IAAI,EAAE,CAAC;AAAA;AAAA,UAEpG+D,EAAa,KAAK,QAAQ,CAAC;AAAA;AAAA,EAEnC;AACF;AAbqB4lB,GAIZ,SAAS3lB,EAAUC,EAAM;AAHpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSwlB,GACP,WAAA,YAAA,CAAA;AACAzlB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSwlB,GAEP,WAAA,eAAA,CAAA;AAFOA,KAArBzlB,GAAA;AAAA,EADCE,EAAc,sBAAsB;AAAA,GAChBulB,EAAA;;;;;;;ACCrB,IAAqBC,KAArB,cAA4CrE,GAAWhiB,CAAU,EAAE;AAAA,EAAnE,cAAA;AAAA,UAAA,GAAA,SAAA,GACyB,KAAA,WAAA,QACW,KAAA,cAAA;AAAA,EAAA;AAAA,EAIlC,SAAS;AACA,WAAAO;AAAAA,SACFC,EAAa,KAAK,QAAQ,CAAC,sBAAsB/D,EAAK,cAAc,eAAe,KAAK,IAAI,EAAE,CAAC;AAAA;AAAA,UAE9F+D,EAAa,KAAK,QAAQ,CAAC;AAAA;AAAA,EAEnC;AACF;AAbqB6lB,GAIZ,SAAS5lB,EAAUC,EAAM;AAHpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSylB,GACP,WAAA,YAAA,CAAA;AACA1lB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSylB,GAEP,WAAA,eAAA,CAAA;AAFOA,KAArB1lB,GAAA;AAAA,EADCE,EAAc,mBAAmB;AAAA,GACbwlB,EAAA;;;;;;ACdd,SAASC,GACdnb,GAC8C;AAAA,EAC9C,MAAMob,UAAsBpb,EAAY;AAAA,IAAxC,cAAA;AAAA,YAAA,GAAA,SAAA,GACwD,KAAA,UAAA;AAAA,IAAA;AAAA,EACxD;AAD8CxK,SAAAA,GAAA;AAAA,IAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,EAAA,GADtC2lB,EACwC,WAAA,SAAA,GAGvCA;AACT;;;;;;ACLO,SAASC,GACdrb,GACkD;AAAA,EAClD,MAAMsb,UAA+Btb,EAAY;AAAA,IAAjD,cAAA;AAAA,YAAA,GAAA,SAAA,GAC+C,KAAA,iBAAA,SAEA,KAAA,uBAAA;AAAA,IAAA;AAAA,EAC/C;AAHcxK,SAAAA,GAAA;AAAA,IAAXC,EAAS;AAAA,EAAA,GADN6lB,EACQ,WAAA,gBAAA,GAEZ9lB,GAAA;AAAA,IADCC,EAAS;AAAA,EAAA,GAFN6lB,EAGJ,WAAA,sBAAA,GAEKA;AAET;ACjBO,MAAMC,KAA6BF;AAAA,EACxCF;AAAA,IACEpb,GAAeqW,GAAeS,GAAWzW,GAAiBvL,CAAU,CAAC,CAAC,CAAC;AAAA,EACzE;AACF;;;;;;ACsCqB,IAAA2mB,KAArB,cAA2CD,GAA2B;AAAA,EAAtE,cAAA;AAAA,UAAA,GAAA,SAAA,GAG8D,KAAA,gBAAA,IACC,KAAA,iBAAA;AAAA,EAAA;AAAA,EAIrD,cAAc;AAChB,QAAA,CAAC,KAAK,gBAAgB;AACxB,MAAI,KAAK,iBACP,KAAK,gBAAgB,IACrB,KAAK,UAAU,MAEV,KAAA,UAAU,CAAC,KAAK;AAGvB,YAAM,EAAE,SAAAE,GAAS,eAAAC,GAAe,OAAA1mB,GAAO,UAAA2mB,MAAa,MAE9CzmB,IAAQ,IAAI,YAAY,cAAc;AAAA,QAC1C,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,QAAQ,EAAE,SAAAumB,GAAS,eAAAC,GAAe,OAAA1mB,GAAO,UAAA2mB,EAAS;AAAA,MAAA,CACnD;AAED,WAAK,cAAczmB,CAAK,GAExB,KAAK,YAAY;AAAA,IACnB;AAAA,EACF;AAAA,EAEQ,cAAc;AACpB,UAAM,EAAE,SAAAumB,GAAS,eAAAC,GAAe,OAAA1mB,GAAO,UAAA2mB,MAAa,MAE9CzmB,IAAQ,IAAI,YAAY,aAAa;AAAA,MACzC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQ,EAAE,SAAAumB,GAAS,eAAAC,GAAe,OAAA1mB,GAAO,UAAA2mB,EAAS;AAAA,IAAA,CACnD;AAED,SAAK,cAAczmB,CAAK;AAAA,EAC1B;AAAA,EAEA,IAAW,eAAe;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,aAAa;AACX,WAAI,KAAK,gBACAE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAQL,KAAK,UACAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAQF;AAAA,EACT;AAAA,EAEA,cAAcF,GAAc;AAC1B,IAAAA,EAAM,eAAe;AAAA,EACvB;AAAA,EAEA,SAAS;AACA,WAAAE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAKO9D,EAAK,mBAAmB;AAAA,MAC9B,qBAAqB,KAAK;AAAA,MAC1B,sBAAsB,KAAK;AAAA,MAC3B,2BAA2B,KAAK;AAAA,MAChC,sBAAsB,KAAK;AAAA,MAC3B,gBAAgB,KAAK,SAAS;AAAA,MAC9B,gBAAgB,KAAK,SAAS;AAAA,MAC9B,wBAAwB,KAAK,mBAAmB;AAAA,MAChD,uBAAuB,KAAK,mBAAmB;AAAA,IAAA,CAChD,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAMS,KAAK,IAAI;AAAA;AAAA,+BAEC,KAAK,aAAa;AAAA,yBACxB,KAAK,OAAO;AAAA,0BACX,KAAK,QAAQ;AAAA,0BACb,KAAK,QAAQ;AAAA,2BACZ+N,EAAU,KAAK,iBAAiB,CAAC;AAAA,8CACd,KAAK,WAAW,aAAa,EAAE;AAAA,6BAChD,KAAK,UAAU,SAAS,OAAO;AAAA,8BAC9B,KAAK,UAAU,SAAS,IAAI;AAAA,yBACjC,KAAK,aAAa;AAAA,uBACpB,KAAK,WAAW;AAAA,uBAChB,KAAK,WAAW;AAAA,sBACjB,MAAM,MAAM;AAAA,uBACX,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,sBAId/N,EAAK,kBAAkB;AAAA,MAC7B,2BAA2B,KAAK;AAAA,MAChC,4BAA4B,KAAK;AAAA,MACjC,iCAAiC,KAAK;AAAA,MACtC,2BAA2B,KAAK;AAAA,MAChC,sBAAsB,KAAK,SAAS;AAAA,MACpC,sBAAsB,KAAK,SAAS;AAAA,IAAA,CACrC,CAAC;AAAA,0CAC0B,KAAK,YAAY;AAAA;AAAA;AAAA;AAAA,sBAIrCA,EAAK,2BAA2B;AAAA,MACtC,qCAAqC,KAAK;AAAA,MAC1C,yBAAyB,KAAK,yBAAyB;AAAA,MACvD,sBAAsB,KAAK,yBAAyB;AAAA,IAAA,CACrD,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKQ,KAAK,IAAI;AAAA,4BACL,KAAK,QAAQ;AAAA,4BACb,KAAK,QAAQ;AAAA,iCACR,KAAK,aAAa;AAAA,4BACvB,KAAK,QAAQ;AAAA,wBACjB+N,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,gBAI7B,KAAK,eACPjK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,yBAKWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,oBAElD,KAAK,WAAW;AAAA;AAAA,eAErB;AAAA;AAAA;AAAA,YAGH,KAAK,YACPjK;AAAAA;AAAAA;AAAAA,qBAGWiK,EAAU,KAAK,YAAY,CAAC;AAAA,qBAC5BA,EAAU,KAAK,IAAI,CAAe;AAAA;AAAA,wBAE/B,KAAK,MAAM;AAAA,gBACnB,KAAK,QAAQ;AAAA;AAAA,WAElB;AAAA;AAAA;AAAA;AAAA,EAIT;AACF;AA5KqBmc,GAMZ,SAASlmB,EAAUC,EAAM;AALfC,GAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GADI0b,GACF,WAAA,SAAA,CAAA;AACLhmB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFS+lB,GAEP,WAAA,qBAAA,CAAA;AACgChmB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAHvB+lB,GAGyB,WAAA,iBAAA,CAAA;AACAhmB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB+lB,GAIyB,WAAA,kBAAA,CAAA;AAJzBA,KAArBhmB,GAAA;AAAA,EADCE,EAAc,iBAAiB;AAAA,GACX8lB,EAAA;;;;;;;ACpCrB,MAAqBI,UAA4B5E,GAAmB;AAAA,EAApE,cAAA;AAAA,UAAA,GAAA,SAAA,GAG2D,KAAA,YAAA,gBACJ,KAAA,SAAA,IAEnD,KAAA,aAAA,gBACoC,KAAA,SAAA,IACH,KAAA,cAAA,QAGuB,KAAA,mBAAA,IACH,KAAA,gBAAA,IACP,KAAA,mBAAA,SACC,KAAA,UAAA,IACf,KAAA,aAAA,QACmB,KAAA,cAAA,IACG,KAAA,iBAAA,IAuCxD,KAAA,cAAc,MAAM;AAClB,WAAK,SAAS,KAAK,aAAa,IAAI,KAAK;IAAa,GAGxD,KAAA,gBAAgB,OAAO9hB,MAAyB;AAC1C,UAAAA,EAAM,QAAQ,OAId;AAAA,YAAAA,EAAM,QAAQ,SAAS;AAIzB,cAHAA,EAAM,eAAe,GACrBA,EAAM,gBAAgB,GAElB,KAAK;AACP,wBAAK,KAAK,cAAc,EAAE,QAAQ,KAAK,cAAc,GACrD,KAAK,YAAY,GAEV,KAAK;AAGd,cAAI,KAAK,UAAU,KAAK,YAAY,UAAU,KAAK,cAAc,OAAO;AACtE,iBAAK,aAAa,GACb,KAAA,aAAa,QAAQ,KAAK,aAAa,MAC5C,KAAK,aAAa;AAClB;AAAA,UACF;AAEA,cAAI,KAAK,UAAU,KAAK,YAAY,UAAU,KAAK,cAAc;AAC3D,mBAAC,KAAK,iBAaH,KAAA,QAAQ,KAAK,YAAY,MACzB,KAAA,eAAe,KAAK,YAAY,MAChC,KAAA,aAAa,QAAQ,KAAK,YAAY,MAC3C,KAAK,aAAa,SAClB,KAAK,KAAK,cAAc,EAAE,QAAQ,KAAK,YAAY,MAAM,GACzD,KAAK,YAAY,MAjBjB,KAAK,eAAe,KAAK,aAEpB,KAAA,KAAK,cAAc,KAAK,YAAY,GAEzC,MAAM,KAAK,gBAEN,KAAA,QAAQ,KAAK,aAAa,OAC1B,KAAA,eAAe,KAAK,YAAY,MAChC,KAAA,aAAa,QAAQ,KAAK,YAAY,MAC3C,KAAK,aAAa,SAClB,KAAK,YAAY,IAUZ,KAAK,SAAS,KAAK,aAAa,IAAI,KAAK;AAGlD,UAAI,KAAK,UAAU,CAAC,KAAK,mBACvB,KAAK,KAAK,cAAc,EAAE,QAAQ,KAAK,cAAc,GACrD,KAAK,YAAY;AAAA,QAErB;AAOA,aACGA,EAAM,QAAQ,eACbA,EAAM,QAAQ,aACdA,EAAM,QAAQ,eACdA,EAAM,QAAQ,iBAChB,KAAK,gBACL;AACA,UAAAA,EAAM,eAAe,GAEhB,KAAK,UACR,KAAK,aAAa,GAGpB,MAAM,KAAK,gBACN,KAAA,WAAW,aAAaA,EAAM,GAAG;AAEtC;AAAA,QACF;AAGA,aAAK,aAAa;AAAA;AAAA,IAAA,GAGpB,KAAA,cAAc,OAAOA,MAAsB;AACzC,YAAM2mB,IAAQ,KAAK;AACnB,MACE3mB,EAAM,cAAc,2BACnBA,EAAM,cAAc,2BAA2B,KAAK,oBAErD,KAAK,eAAe2mB,EAAM,OAC1B,KAAK,QAAQA,EAAM,SAEnBA,EAAM,UAAU,MAChB3mB,EAAM,cAAc,2BAEpB,KAAK,eAAe,GAGjB,KAAA,KAAK,aAAa,EAAE,OAAO2mB,EAAM,OAAO,eAAe3mB,GAAO,GACnE,KAAK,YAAY;AAAA,IAAA,GAiBnB,KAAA,oBAAoB,CAACA,MAAuB;AACtC,MAAAA,EAAM,OAAO,QAAQ,aACvB,KAAK,aAAa,GAClB,KAAK,cAAc,KAAK,cACxB,KAAK,eAAe,IACf,KAAA,aAAa,QAAQ,KAAK,aAAa,MAC5C,KAAK,aAAa;IACpB,GAGF,KAAA,0BAA0B,CAACA,MAAsB;AACzC,YAAA4N,IAAO5N,EAAM;AACnB,MAAI,QAAQ,CAAC4N,EAAK,SAAS,IAAI,KAC7B,KAAK,aAAa;AAAA,IACpB,GAGF,KAAA,cAAc,MAAM;AAClB,WAAK,KAAK,WAAW;AAAA,IAAA,GAGvB,KAAA,aAAa,MAAM;AACjB,WAAK,KAAK,UAAU;AAAA,IAAA,GA+BtB,KAAA,uBAAuB,OAAO5N,MAAuB;AACnD,MAAAA,EAAM,eAAe,GACrBA,EAAM,gBAAgB,GAElB,KAAK,iBACF,KAAA,eAAeA,EAAM,OAAO,MAC5B,KAAA,QAAQA,EAAM,OAAO,MAE1B,KAAK,KAAK,cAAc,EAAE,QAAQ,KAAK,cAAc,GAErD,KAAK,YAAY,MAEjB,KAAK,eAAeA,EAAM,QACrB,KAAA,eAAeA,EAAM,OAAO,MAE7B,KAAK,UAAU,KAAK,cAAc,UAC/B,KAAA,QAAQ,KAAK,aAAa,OAC1B,KAAA,KAAK,cAAc,KAAK,YAAY,GAEzC,MAAM,KAAK,gBAEN,KAAA,aAAa,QAAQ,KAAK,YAAY,MAC3C,KAAK,aAAa,SAClB,KAAK,YAAY,KAIrB,KAAK,aAAa;AAAA,IAAA,GAGpB,KAAA,4BAA4B,CAACA,MAAuB;AAClD,WAAK,cAAcA,EAAM,QAGvB,CAAC,KAAK,kBACN,KAAK,eAAe,YACpB,KAAK,eAAe,WAEf,KAAA,aAAa,QAAQA,EAAM,OAAO,OAIvC,KAAK,kBACL,KAAK,gBACL,KAAK,iBAAiB,MACtB,CAAC,KAAK,oBACN,CAAC,KAAK,kBAED,KAAA;AAAA,QACH,KAAK,aAAa;AAAA,QAClB,KAAK,aAAa,MAAM;AAAA,MAAA;AAAA,IAE5B,GAGF,KAAA,mBAAmB,MAAM;AACnB,MAAC,KAAK,aACR,KAAK,eAAe,GAEpB,KAAK,aAAa,SAClB,KAAK,YAAY,GACjB,KAAK,KAAK,WAAW;AAAA,IACvB,GAGF,KAAA,oBAAoB,CAACA,MAAsB;AACzC,MAAAA,EAAM,gBAAgB,GACtBA,EAAM,eAAe,GAErB,KAAK,YAAY,GACjB,KAAK,KAAK,cAAc,EAAE,QAAQ,KAAK,cAAc;AAAA,IAAA;AAAA,EACvD;AAAA,EApRA,OAAA;AAAO,SAAA,SAASI,EAAUC,EAAM;AAAA,EAAA;AAAA,EAEhC,MAAgB,aACdmH,GACe;AACf,UAAM,aAAaA,CAAkB,GAErC,MAAM,KAAK,WAAW,gBAElB,KAAK,UACF,KAAA,eAAe,KAAK,YACrB,cAAc,EACf,KAAK,CAAUyN,MAAAA,EAAO,UAAU,KAAK,KAAK,GACxC,KAAA,eAAe,KAAK,cAAc,cAAc;AAAA,EAEzD;AAAA,EAEA,yBACEpV,GACA+mB,GACA9mB,GACM;AACF,IAAAD,MAAS,WAAW,CAACC,KACvB,KAAK,eAAe,GAGhB,MAAA,yBAAyBD,GAAM+mB,GAAM9mB,CAAK;AAAA,EAClD;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,eAAe,kBAAkB,KAAK,eAAe;AAAA,EACnE;AAAA,EA2GA,MAAM,iBAAiB;AACrB,IAAI,KAAK,iBACP,KAAK,aAAa,QAAQ,IAC1B,KAAK,eAAe,IACpB,KAAK,eAAe,MAEpB,KAAK,QAAQ,QAEb,MAAM,KAAK,gBAEN,KAAA,KAAK,cAAc,KAAK,YAAY;AAAA,EAE7C;AAAA,EA2BA,MAAM,eAAe;AACf,IAAA,KAAK,YAAY,KAAK,YAAY,CAAC,KAAK,kBAAkB,KAAK,WAInE,KAAK,SAAS,IAEL,SAAA,iBAAiB,aAAa,KAAK,uBAAuB;AAAA,EACrE;AAAA,EAEA,MAAM,eAAe;AACf,IAAC,KAAK,WAIV,KAAK,SAAS,IAEL,SAAA,oBAAoB,aAAa,KAAK,uBAAuB,GAEtE,MAAM,KAAK,gBACX,KAAK,MAAM,GACX,KAAK,oBAAoB;AAAA,EAC3B;AAAA,EAEA,IAAW,eAAe;AACjB,WAAA,KAAK,cAAc;EAC5B;AAAA,EA2EQ,kBAAkB+mB,GAAeC,GAAa;AAC/C,SAAA,aAAa,kBAAkBD,GAAOC,CAAG;AAAA,EAChD;AAAA,EAEQ,sBAAsB;AACtB,UAAAC,IAAqB,KAAK,aAAa,MAAM;AAE9C,SAAA,kBAAkBA,GAAoBA,CAAkB;AAAA,EAC/D;AAAA,EAEA,cAAc;AACZ,WAAI,KAAK,iBACH,KAAK,mBACC,QAAK,aAAa,UAAU,MAClC,KAAK,gBAGE,KAAK,gBACP,KAAK,aAAa,UAAU,KAE5B,OAAK,eAGP,KAAK,aAAa,UAAU;AAAA,EAEvC;AAAA;AAAA,EAGA,IAAI,WAA0B;AACxB,WAAA,KAAK,UAAU,WACV,KAAK,UAAU,WAEftF,GAAuB;AAAA,MAC5B,cAAc,KAAK,YAAY,CAAC,KAAK,YAAY;AAAA,IAAA,CAClD;AAAA,EAEL;AAAA,EAEA,IAAI,oBAA4B;AAC9B,WAAOxlB,GAAE,+BAA+B;AAAA,EAC1C;AAAA,EAEA,gBAAgB;AACd,WAAO,KAAK,WAAW,KAAK,YAAA,IAAgB;AAAA,EAC9C;AAAA,EAEA,iBAAiB;AACf,WAAO,KAAK,WAAW,KAAK,cAAA,IAAkB;AAAA,EAChD;AAAA,EAEA,cAAc;AACR,IAAC,KAAK,kBASH,KAAA,UAAU,YAAY,CAAA,CAAE,IAR7B,KAAK,UAAU;AAAA,MACb;AAAA,QACE,cAAc,KAAK,YAAY,CAAC,KAAK,YAAY;AAAA,MACnD;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAKX;AAAA,EAEA,cAAc+D,GAAc;AAC1B,IAAAA,EAAM,eAAe;AAAA,EACvB;AAAA,EAEA,sBAAsB;AAEb,WADc,KAAK,YAAY,gBAAgB;AAAA,EAExD;AAAA,EAEA,iBAAiB;AACR,WAAAE;AAAAA;AAAAA;AAAAA;AAAAA,kBAIO,KAAK,IAAI;AAAA,sBACL,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA;AAAA,kBAEjBiK,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA,UAE7B,KAAK,WACPjK;AAAAA;AAAAA,oBAEY,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAQN;AAAA;AAAA,QAElB,KAAK,eACPA;AAAAA;AAAAA;AAAAA;AAAAA,iBAIWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,YAElD,KAAK,WAAW;AAAA;AAAA,OAErB;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKa,KAAK,MAAM;AAAA,sBACT,EAAK;AAAA,sBACL,KAAK,SAAS;AAAA;AAAA,kBAElB,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA,qBAIN/N,EAAK,UAAU;AAAA,MACtB,cAAc,KAAK,SAAS;AAAA,MAC5B,cAAc,KAAK,SAAS;AAAA,MAC5B,oBAAoB,KAAK;AAAA,MACzB,oBAAoB,KAAK;AAAA,MACzB,kBAAkB,KAAK;AAAA,MACvB,mBAAmB,KAAK;AAAA,MACxB,mBAAmB,KAAK,WAAW;AAAA,MACnC,iBAAiB,KAAK,WAAW;AAAA,MACjC,wBAAwB,KAAK;AAAA,IAAA,CAC9B,CAAC;AAAA;AAAA;AAAA,uBAGSA,EAAK,SAAS;AAAA,MACrB,aAAa,KAAK,SAAS;AAAA,MAC3B,aAAa,KAAK,SAAS;AAAA,MAC3B,mBAAmB,KAAK;AAAA,IAAA,CACzB,CAAC;AAAA,+BACe,KAAK,MAAM;AAAA;AAAA;AAAA,8CAGI,KAAK,WAAW,aAAa,EAAE;AAAA,8BAC/C,KAAK,QAAQ;AAAA;AAAA;AAAA,sCAGL+N,EAAU,KAAK,oBAAoB,GAAG,EAAE,CAAC;AAAA,0BACrD,KAAK,QAAQ;AAAA,0BACb,KAAK,QAAQ;AAAA,2BACZ,KAAK,SAAS;AAAA,0BACf,KAAK,QAAQ;AAAA,sBACjB,KAAK,iBAAiB,KAC1B,KAAK,eACL,KAAK,cAAc,QAAQ,EAAE;AAAA,4BACnBA,EAAU,KAAK,eAAe,EAAE,CAAC;AAAA,qBACxC,KAAK,SAAS,WAAW,MAAM;AAAA,sBAC9B,KAAK,UAAU;AAAA,uBACd,KAAK,WAAW;AAAA,uBAChB,KAAK,WAAW;AAAA,yBACd,KAAK,aAAa;AAAA,uBACpB,KAAK,WAAW;AAAA;AAAA,uBAEhB/N,EAAK,iBAAiB;AAAA,MAC7B,qBAAqB,KAAK,SAAS;AAAA,MACnC,qBAAqB,KAAK,SAAS;AAAA,MACnC,2BAA2B,KAAK;AAAA,MAChC,2BAA2B,KAAK;AAAA,MAChC,yBAAyB,KAAK;AAAA,IAAA,CAC/B,CAAC;AAAA,gBACA,KAAK,gBAAgB,UACvB8D;AAAAA,yBACW9D,EAAK,cAAc;AAAA,MAC1B,wBAAwB,KAAK;AAAA,IAAA,CAC9B,CAAC;AAAA,kBACA,KAAK,gBACP,KAAK,aAAa,SAClB8D;AAAAA;AAAAA,8BAEc,KAAK,QAAQ;AAAA,2BAChB,KAAK,gBAAgB,wBAAwB;AAAA,qBACnD;AAAA;AAAA,yBAEI9D,EAAK,kBAAkB;AAAA,MAC9B,2BAA2B,KAAK;AAAA,IAAA,CACjC,CAAC;AAAA,mBACC,KAAK,eAAe,kBACrB,KAAK,eAAe,aACtB,CAAC,KAAK,SACF,KAAK,UACH8D,iEACAA,uEACF8J,CAAO;AAAA,kBACT,KAAK,SACH,KAAK,UACH9J,iEACAA;AAAAA;AAAAA;AAAAA,iCAGW,KAAK,iBAAiB;AAAA;AAAA,gDAGnC8J,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAQL,KAAK,MAAM;AAAA,yBACR,KAAK,mBAAmB,SAAS,KAAK,UAAU;AAAA,+BAC1C,KAAK,qBAAqB,MAAM;AAAA,yBACtC,KAAK,YAAY;AAAA,mBACvBG,EAAU,KAAK,IAAI,CAAC;AAAA,oBACnBA,EAAU,KAAK,KAAK,CAAC;AAAA,0BACf,KAAK,eAAe,MAAM;AAAA,iCACnB,KAAK,oBAAoB;AAAA,2BAC/B,KAAK,iBAAiB;AAAA,kCACf,KAAK,yBAAyB;AAAA;AAAA;AAAA;AAAA,UAItD,KAAK,YACPjK;AAAAA;AAAAA,iBAESiK,EAAU,KAAK,YAAY,CAAC;AAAA,kBAC3BA,EAAU,KAAK,IAAmB,CAAC;AAAA;AAAA,YAEzC,KAAK,QAAQ;AAAA,2BACE;AAAA;AAAA,EAEzB;AACF;AAnhBkB7J,EAAA;AAAA,EAAfsK,GAAM,OAAO;AAAA,GADK8b,EACH,WAAA,cAAA;AACapmB,EAAA;AAAA,EAA5BsK,GAAM,oBAAoB;AAAA,GAFR8b,EAEU,WAAA,YAAA;AACApmB,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAHRmmB,EAGU,WAAA,WAAA;AACepmB,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBmmB,EAIyB,WAAA,QAAA;AAChCpmB,EAAA;AAAA,EAAXC,EAAS;AAAA,GALSmmB,EAKP,WAAA,YAAA;AAEiBpmB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAPRmmB,EAOU,WAAA,QAAA;AACjBpmB,EAAA;AAAA,EAAXC,EAAS;AAAA,GARSmmB,EAQP,WAAA,aAAA;AACApmB,EAAA;AAAA,EAAXC,EAAS;AAAA,GATSmmB,EASP,WAAA,aAAA;AACiBpmB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRmmB,EAUU,WAAA,MAAA;AACApmB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAXRmmB,EAWU,WAAA,kBAAA;AACApmB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAZRmmB,EAYU,WAAA,eAAA;AACDpmB,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAbPmmB,EAaS,WAAA,kBAAA;AACCpmB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAdRmmB,EAcU,WAAA,SAAA;AACjBpmB,EAAA;AAAA,EAAXC,EAAS;AAAA,GAfSmmB,EAeP,WAAA,YAAA;AACiBpmB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAhBRmmB,EAgBU,WAAA,aAAA;AACApmB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAjBRmmB,EAiBU,WAAA,gBAAA;AAEpBpmB,EAAA;AAAA,EAARohB,EAAM;AAAA,GAnBYgF,EAmBV,WAAA,cAAA;AACApmB,EAAA;AAAA,EAARohB,EAAM;AAAA,GApBYgF,EAoBV,WAAA,aAAA;AACApmB,EAAA;AAAA,EAARohB,EAAM;AAAA,GArBYgF,EAqBV,WAAA,cAAA;;;;;;ACOU,IAAAM,KAArB,cAA2CN,EAAoB;AAAA,EAC7D,SAAS;AACP,WAAO,KAAK;EACd;AACF;AAJqBM,KAArB1mB,GAAA;AAAA,EADCE,EAAc,iBAAiB;AAAA,GACXwmB,EAAA;;;;;;;AChBA,IAAAC,KAArB,cAAkDtnB,EAAW;AAAA,EAA7D,cAAA;AAAA,UAAA,GAAA,SAAA,GACqE,KAAA,cAAA;AAAA,EAAA;AAAA,EAK3D,eAAe;AACd,WAAA;AAAA,MACL,GAAG,KAAK;AAAA,QACN;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,MAAc,oBAAoB;AAC1B,UAAAunB,IAAS,KAAK;AAEpB,UAAM,QAAQ;AAAA,MACZA,EAAO,IAAI,OAAMP,MAAS;AACpB,YAAA,KAAK,eAAe,KAAK,OAAO;AAC5B,gBAAAQ,IAAS,KAAK,OAAO,MAAM,GAAG,EAAE,IAAI,CAAA3c,MAAQA,EAAK,KAAM,CAAA;AAE7D,UAAAmc,EAAM,UAAUQ,EAAO,SAASR,EAAM,KAAK;AAC3C;AAAA,QAAA;AAEM,UAAAA,EAAA,UAAUA,EAAM,UAAU,KAAK;AAAA,MACvC,CACD;AAAA,IAAA;AAAA,EAEL;AAAA,EAEQ,iBAAiB3mB,GAAmB;AAC1C,UAAM4O,IACJ5O,EAAM,OACN,QAAkC,8BAA8B,GAC5DknB,IAAS,KAAK,gBACd7b,IAAW,KAAK;AAEtB,QAAI,CAAAuD,EAAQ;AAIR,UAAA,CAAC,KAAK;AACR,aAAK,QAAQA,EAAQ,OACrBsY,EAAO,QAAQ,CAAAP,MAAUA,EAAM,UAAUA,MAAU/X,CAAO,GAEtD,KAAK,UAAUvD,KACZ,KAAA,KAAK,cAAc,EAAE,OAAOuD,EAAQ,OAAO,UAAU,IAAM;AAAA,WAE7D;AACC,cAAAuY,IAASD,EACZ,OAAO,CAASP,MAAAA,EAAM,OAAO,EAC7B,IAAI,CAASA,MAAAA,EAAM,KAAK;AAEtB,aAAA,QAAQQ,EAAO,KAAK,GAAG,GAE5B,KAAK,KAAK,cAAc,EAAE,OAAO,KAAK,OAAO;AAAA,MAC/C;AAAA,EACF;AAAA,EAEA,SAAS;AACA,WAAAjnB;AAAAA,+BACoB9D,EAAK,kBAAkB,CAAC;AAAA;AAAA,mBAEpC,KAAK,gBAAgB;AAAA,wBAChB,KAAK,iBAAiB;AAAA;AAAA;AAAA,EAG5C;AACF;AArEqB6qB,GAIZ,SAAS7mB,EAAUC,EAAM;AAHYC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GADvB0mB,GACyB,WAAA,eAAA,CAAA;AAChC3mB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFS0mB,GAEP,WAAA,SAAA,CAAA;AAFOA,KAArB3mB,GAAA;AAAA,EADCE,EAAc,yBAAyB;AAAA,GACnBymB,EAAA;;;;;;;ACAA,IAAAG,KAArB,cAAuDznB,EAAW;AAAA,EAAlE,cAAA;AAAA,UAAA,GAAA,SAAA,GAEkD,KAAA,UAAA,IACgB,KAAA,WAAA,IAShE,KAAA,cAAc,CAAC3D,MAAkB;AAC1B,WAAA,UAAU,CAAC,KAAK,SACrBA,EAAE,eAAe;AAAA,IAAA;AAAA,EACnB;AAAA,EAPA,IAAI,WAAW;AACN,WAAA,KAAK,eAAe,aAAa,aAAa;AAAA,EACvD;AAAA,EAOA,SAAS;AACP,WAAO,KAAK,WACRkE;AAAAA;AAAAA;AAAAA,mBAGW,KAAK,IAAI;AAAA;AAAA,oBAERiK,EAAU,KAAK,KAAK,CAAC;AAAA,uBAClB,KAAK,OAAO;AAAA,wBACX,KAAK,QAAQ;AAAA;AAAA;AAAA,qBAGhB,KAAK,WAAW;AAAA;AAAA;AAAA,YAI7BjK;AAAAA;AAAAA;AAAAA;AAAAA,mBAIW,KAAK,IAAI;AAAA,oBACRiK,EAAU,KAAK,KAAK,CAAC;AAAA,uBAClB,KAAK,OAAO;AAAA,wBACX,KAAK,QAAQ;AAAA,oBACjB/N,EAAK,2BAA2B;AAAA,MACtC,oCAAoC,KAAK;AAAA,IAAA,CAC1C,CAAC;AAAA;AAAA;AAAA;AAAA,EAIZ;AACF;AAhDqBgrB,GAMZ,SAAShnB,EAAUC,EAAM;AALWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GADtB6mB,GACwB,WAAA,SAAA,CAAA;AACd9mB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAFR6mB,GAEU,WAAA,WAAA,CAAA;AACe9mB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAHvB6mB,GAGyB,WAAA,YAAA,CAAA;AACD9mB,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAJtB6mB,GAIwB,WAAA,QAAA,CAAA;AAJxBA,KAArB9mB,GAAA;AAAA,EADCE,EAAc,8BAA8B;AAAA,GACxB4mB,EAAA;;;;;;;ACVA,IAAAC,KAArB,cAA6C1nB,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GAC8C,KAAA,QAAA;AAAA,EAAA;AAAA,EAI5C,SAAS;AACA,WAAAO;AAAAA,EACT;AACF;AARqBmnB,GAGZ,SAASjnB,EAAUC,EAAM;AAFJC,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GADP8mB,GACS,WAAA,SAAA,CAAA;AADTA,KAArB/mB,GAAA;AAAA,EADCE,EAAc,mBAAmB;AAAA,GACb6mB,EAAA;;;;;;;ACEA,IAAAC,KAArB,cAA0C3nB,EAAW;AAAA,EAArD,cAAA;AAAA,UAAA,GAAA,SAAA,GACyD,KAAA,WAAA,IACR,KAAA,UAAA;AAAA,EAAA;AAAA,EAI/C,oBAAoB;AAClB,UAAM,kBAAkB,GACnB,KAAA,aAAa,QAAQ,WAAW,GACrC,KAAK,aAAa,SAAS,mBAAmB,KAAK,OAAO,EAAE;AAAA,EAC9D;AACF;AAXqB2nB,GAIZ,SAASlnB,EAAUC,EAAM;AAHYC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GADvB+mB,GACyB,WAAA,YAAA,CAAA;AAChBhnB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAFP+mB,GAES,WAAA,WAAA,CAAA;AAFTA,KAArBhnB,GAAA;AAAA,EADCE,EAAc,gBAAgB;AAAA,GACV8mB,EAAA;;;;;;;ACkBrB,IAAqBC,KAArB,cAA2C5F,GAAWhiB,CAAU,EAAE;AAAA,EAAlE,cAAA;AAAA,UAAA,GAAA,SAAA,GAEmC,KAAA,OAAA,YACoB,KAAA,SAAA;AAAA,EAAA;AAAA,EAErD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D;AAAAA,MACN;AAAA,MAEA,aAAa,KAAK,IAAI;AAAA,MACtB,aAAa,KAAK,IAAI;AAAA,MACtB;AAAA,QACE,oBAAoB,KAAK;AAAA,MAC3B;AAAA,IAAA,CACD;AAAA;AAAA;AAAA;AAAA,oBAIW+N,EAAU,KAAK,IAAI,CAAC;AAAA,oBACpB,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3C;AAAA,EAEQ,UAAUwB,GAA4B;AAC5C,YAAQA,GAAM;AAAA,MACZ,KAAK;AACH,eAAO,mBAAmB,KAAK,SAAS,SAAS,MAAM;AAAA,MACzD,KAAK;AACH,eAAO,iBAAiB,KAAK,SAAS,SAAS,MAAM;AAAA,MACvD,KAAK;AACH,eAAO,SAAS,KAAK,SAAS,SAAS,MAAM;AAAA,MAC/C;AACE,eAAO,eAAe,KAAK,SAAS,SAAS,MAAM;AAAA,IACvD;AAAA,EACF;AACF;AA1CqB4b,GACZ,SAASnnB,EAAUC,EAAM;AACpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSgnB,GAEP,WAAA,QAAA,CAAA;AACgCjnB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAHvBgnB,GAGyB,WAAA,UAAA,CAAA;AAHzBA,KAArBjnB,GAAA;AAAA,EADCE,EAAc,iBAAiB;AAAA,GACX+mB,EAAA;ACpCd,MAAMC,WAAkB,MAAM;AAAA,EAInC,YAAYC,GAAiBC,GAAeC,GAAgB;AAC1D,UAAMF,CAAO,GACb,KAAK,WAAWC,GAChB,KAAK,SAASC;AAAA,EAChB;AACF;AAEO,MAAMC,WAAkB,MAAM;AAAA,EAInC,YAAYH,GAAiBI,GAAYlc,GAAc;AACrD,UAAM8b,CAAO,GACb,KAAK,OAAOI,GACZ,KAAK,OAAOlc;AAAA,EACd;AACF;;;;;;;ACuCqB,IAAAmc,IAArB,cAA4ChG,GAAmB;AAAA,EAA/D,cAAA;AAAA,UAAA,GAAA,SAAA,GAI0C,KAAA,WAAA,IAEI,KAAA,eAAA,IAGf,KAAA,iBAAA,QACF,KAAA,eAAA,QACoB,KAAA,kBAAA,IACuB,KAAA,WAAA,MAS7D,KAAQ,SAAiB,IACzB,KAAQ,kBAA0C;EAAC;AAAA,EAL5D,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACd;AAAA,EASA,kBACEiG,GACAC,GACA;AACA,WACED,EAAM,SAASC,EAAM,QACrBD,EAAM,SAASC,EAAM,QACrBD,EAAM,SAASC,EAAM,QACrBD,EAAM,iBAAiBC,EAAM;AAAA,EAEjC;AAAA,EAEQ,WAAWC,GAA2B;AACxC,QAAA,QAAQ,CAAC3a,GAASC,MAAW;AAC1B,WAAA;AAAA,QACH;AAAA,QACA,EAAE,MAAM0a,GAAU,QAAQ,EAAE,OAAO3a,GAAS,QAAAC,IAAS;AAAA,QACrD;AAAA,UACE,YAAY;AAAA,QACd;AAAA,MAAA;AAAA,IACF,CACD,EAAE,KAAK,MAAM;AACP,WAAA,SAAS,KAAK,OAAO;AAAA,QACxB,CAACsa,MAAe,CAAC,KAAK,kBAAkBA,GAAMI,CAAQ;AAAA,MAAA,GAGpD,KAAK,OAAO,WAAW,KAAK,KAAK,aACnC,KAAK,QAAQ,QACb,KAAK,MAAM,QAAQ,KAGrB,KAAK,KAAK,mBAAmB,EAAE,OAAO,KAAK,OAAO,GAElD,KAAK,YAAY;AAAA,IAAA,CAClB;AAAA,EACH;AAAA,EAEA,oBAAoB;AAClB,UAAM,kBAAkB,GAEnB,KAAA,iBAAiB,mBAAmB,CAASjoB,MAAA;AAC3C,WAAA,WAAYA,EAAsB,OAAO,IAAI;AAAA,IAAA,CACnD;AAAA,EACH;AAAA,EAEA,WAAW;AACT,SAAK,KAAK,YAAY,GACtB,KAAK,YAAY;AAAA,EACnB;AAAA,EAEA,UAAU;AACR,SAAK,MAAM;EACb;AAAA,EAEA,oBAAoB6nB,GAAYK,GAAkB;AAC5C,QAAA,CAAC,KAAK;AACR;AAGI,UAAAC,IAAgB,KAAK,SAAS;AAAA,MAClCN,EAAK;AAAA,IAAA;AAGP,WAAAM,EAAc,UAAUD,GAEjBC;AAAA,EACT;AAAA,EAEA,MAAc,YAAYC,GAAe;AACnC,QAAA,CAAC,KAAK,WAAW;AACnB,cAAQ,MAAM,uBAAuB;AACrC;AAAA,IACF;AAEA,UAAMC,IAAaD,EAAM;AACzB,QAAIE,IAAmB;AAEvB,eAAWT,KAAQO,GAAO;AAClB,YAAAG,IAAW,IAAI;AACZ,MAAAA,EAAA,OAAO,KAAK,gBAAgBV,CAAI;AAErC,UAAA;AACF,aAAK,KAAK,oBAAoB,EAAE,MAAAA,EAAM,CAAA;AAEhC,cAAAW,IAAM,IAAI;AAChB,QAAAA,EAAI,kBAAkB,KAAK,iBAE3BA,EAAI,KAAK,KAAK,cAAc,KAAK,SAAS,GAEtCA,EAAA,OAAO,aAAa,CAASxoB,MAAA;AAC/B,cAAIA,EAAM,kBAAkB;AAC1B,kBAAMyoB,IAAYzoB,EAAM,SAASA,EAAM,QAAS;AAChD,iBAAK,kBAAkB;AAAA,cACrB,GAAG,KAAK;AAAA,cACR,CAAC6nB,EAAK,IAAI,GAAGY;AAAA,YAAA,GAGX,KAAK,YACF,KAAA,oBAAoBZ,GAAM,EAAI,GAGrC,KAAK,KAAK,uBAAuB,EAAE,MAAAA,GAAM,UAAAY,EAAU,CAAA;AAAA,UACrD;AAAA,QAAA;AAGF,cAAMf,IAAY,MAAM,IAAI,QAAQ,CAACpa,GAASC,MAAW;AACvD,UAAAib,EAAI,SAAS,MAAM;AACjB,gBAAIA,EAAI,UAAU,OAAOA,EAAI,SAAS;AACpC,cAAAlb,EAAQkb,EAAI,QAAQ;AAAA,iBACf;AACL,oBAAMhP,IAAQ,IAAIgO;AAAA,gBAChB,uBAAuBgB,EAAI,MAAM;AAAA,gBACjCA,EAAI;AAAA,gBACJA,EAAI;AAAA,cAAA;AAEN,cAAAjb,EAAOiM,CAAK;AAAA,YACd;AAAA,UAAA,GAEFgP,EAAI,UAAU,MAAM;AAClB,YAAI,KAAK,YACF,KAAA,oBAAoBX,GAAM,EAAK,GAE/Bta,EAAA,IAAI,MAAM,eAAe,CAAC;AAAA,UAAA,GAEnCib,EAAI,KAAKD,CAAQ;AAAA,QAAA,CAClB,GAEK9mB,IAAS,KAAK,MAAMimB,CAAkB;AAE5C,QAAI,KAAK,YACF,KAAA,oBAAoBG,GAAM,EAAK,GAGtC,KAAK,KAAK,uBAAuB,EAAE,MAAAA,GAAM,QAAApmB,EAAQ,CAAA,GAEjD6mB,KACIA,MAAqBD,KACvB,KAAK,KAAK,0BAA0B;AAAA,eAE/B7O,GAAO;AACd,YAAI,KAAK,UAAU;AACjB,gBAAM2O,IAAgB,KAAK,oBAAoBN,GAAM,EAAK;AAC1D,eAAK,KAAK,oBAAoB,EAAE,MAAAA,GAAM,MAAMM,GAAe,OAAA3O,GAAO;AAAA,QAAA;AAElE,eAAK,KAAK,oBAAoB,EAAE,MAAAqO,GAAM,OAAArO,EAAO,CAAA;AAAA,MAEjD;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,eAAekP,GAA2B;AAChD,UAAMN,IAAQ,CAAC,GAAG,KAAK,MAAM;AAE7B,IAAI,KAAK,aAAa,KAAK,QAAQ,UACjC,OAAO,OAAOM,CAAS,EAAE,QAAQ,CAACb,MAAe;AAK/C,MAJqB,CAAC,CAAC,KAAK,OAAO;AAAA,QAAK,CAAC3rB,MACvC,KAAK,kBAAkBA,GAAG2rB,CAAI;AAAA,MAAA,KAI9BO,EAAM,KAAKP,CAAI;AAAA,IACjB,CACD,GAED,KAAK,SAASO,KAEd,KAAK,SAASM,IAAW,OAAO,OAAOA,CAAQ,IAAI;AAG/C,UAAAC,IAAe,IAAI;AAEpB,SAAA,OAAO,QAAQ,CAAQd,MAAA;AACb,MAAAc,EAAA,MAAM,IAAId,CAAI;AAAA,IAAA,CAC5B,GACI,KAAA,MAAM,QAAQc,EAAa,OAE5B,KAAK,cACF,KAAA,YAAY,KAAK,MAAM;AAAA,EAEhC;AAAA,EAES,SAAS3oB,GAAmB;AAEnC,UAAM4oB,KADS5oB,GAAO,QACK;AAGzB,QAAA4oB,KACA,KAAK,aACJA,GAAa,UAAU,KAAK,SAAS,KAAK,QAAQ,GACnD;AACA,YAAMC,IAAYD,EAAY,SAAS,KAAK,QAAQ,CAAC;AAErD,WAAK,KAAK,oBAAoB;AAAA,QAC5B,OAAO,IAAIhB;AAAA,UACT,gDAAgD,KAAK,QAAQ;AAAA,UAC7DiB;AAAA,UACA;AAAA,QACF;AAAA,MAAA,CACD;AACD;AAAA,IACF;AAEI,QAAAD,KAAe,KAAK,aAAa;AACnC,UAAIE,IAAY;AACV,YAAAC,IAAc,SAAS,KAAK,WAAW;AACzC,UAAAF;AAEJ,eAASrsB,IAAI,GAAGA,IAAIosB,EAAY,QAAQpsB;AAEtC,YADassB,KAAAF,EAAYpsB,CAAC,EAAE,MACxBssB,IAAYC,GAAa;AAC3B,UAAAF,IAAYD,EAAYpsB,CAAC;AACzB;AAAA,QACF;AAGF,UAAIqsB,GAAW;AACb,aAAK,KAAK,oBAAoB;AAAA,UAC5B,OAAO,IAAIjB;AAAA,YACT,0CAA0C,KAAK,WAAW;AAAA,YAC1DiB;AAAA,YACA;AAAA,UACF;AAAA,QAAA,CACD;AACD;AAAA,MACF;AAAA,IACF;AAEK,SAAA,QAAQ,KAAK,MAAM,OAExB,KAAK,eAAeD,CAAW,GAE/B,KAAK,KAAK,mBAAmB,EAAE,OAAO,KAAK,QAAQ,GACnD,KAAK,YAAY;AAAA,EACnB;AAAA,EAEA,YAAY5oB,GAAkB;AAC5B,IAAAA,EAAM,eAAe;AAAA,EACvB;AAAA,EAEA,WAAWA,GAAkB;AAC3B,IAAAA,EAAM,eAAe;AAAA,EACvB;AAAA,EAEA,OAAOA,GAAkB;AACvB,IAAAA,EAAM,eAAe,GAErB,KAAK,eAAeA,EAAM,cAAc,SAAS,IAAI,GAErD,KAAK,KAAK,mBAAmB,EAAE,OAAO,KAAK,QAAQ,GACnD,KAAK,YAAY;AAAA,EACnB;AAAA,EAEA,SAAS;AACA,WAAAE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAMO,KAAK,IAAI;AAAA,sBACL,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,kBACjBiK,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA,UAE7B,KAAK,WACPjK;AAAAA;AAAAA,oBAEY,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BASN;AAAA;AAAA,QAElB,KAAK,eACPA;AAAAA;AAAAA;AAAAA;AAAAA,iBAIWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,YAElD,KAAK,WAAW;AAAA;AAAA,OAErB;AAAA;AAAA;AAAA,gBAGS/N;AAAAA,MACN;AAAA,MACA,EAAE,kBAAkB,KAAK,WAAW,UAAU;AAAA,MAC9C,EAAE,gBAAgB,KAAK,WAAW,QAAQ;AAAA,MAC1C,EAAE,mBAAmB,KAAK,SAAS;AAAA,IAAA,CACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAMU,KAAK,IAAI;AAAA;AAAA,qBAEP+N,EAAU,KAAK,MAAM,CAAC;AAAA,wBACnB,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA;AAAA,4CAEO,KAAK,WACjC,aACAH,CAAO;AAAA,sBACD,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,uBACZ,KAAK,aAAa;AAAA,oBACrB,KAAK,MAAM;AAAA,qBACV,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAMT,KAAK,QAAQ;AAAA,mBAClBG,EAAU,KAAK,IAAI,CAA0B;AAAA,qBAC3C,KAAK,OAAO;AAAA,yBACR,KAAK,WAAW;AAAA,wBACjB,KAAK,UAAU;AAAA,oBACnB,KAAK,MAAM;AAAA,eAChB,KAAK,qBAAqBlO,GAAE,kBAAkB,CAAC;AAAA;AAAA;AAAA;AAAA,QAItD,KAAK,YACPiE;AAAAA;AAAAA;AAAAA,iBAGWiK,EAAU,KAAK,YAAY,CAAC;AAAA,iBAC5BA,EAAU,KAAK,IAAI,CAAC;AAAA;AAAA,oBAEjB,KAAK,MAAM;AAAA,YACnB,KAAK,QAAQ;AAAA;AAAA,OAElB;AAAA,QACC,KAAK,gBAAgB,KAAK,OAAO,SAAS,IACxCjK;AAAAA;AAAAA,gBAEM,KAAK,OAAO;AAAA,MACZ,CAAQ2nB,MAAA3nB;AAAAA;AAAAA,4BAEI2nB,EAAK,IAAI;AAAA;AAAA,8BAEP,KAAK,gBAAgBA,EAAK,IAAI,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,IAAA,CAInD;AAAA;AAAA,cAGL7d,CAAO;AAAA;AAAA,EAEf;AACF;AArYqB8d,EAwBZ,SAASkB;AAAAA,MACZ5oB,EAAU+G,EAAK,CAAC;AAAA;AAxBH7G,GAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GADIkd,EACF,WAAA,SAAA,CAAA;AACLxnB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSunB,EAEP,WAAA,qBAAA,CAAA;AACAxnB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHSunB,EAGP,WAAA,UAAA,CAAA;AACiBxnB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJRunB,EAIU,WAAA,YAAA,CAAA;AACAxnB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GALRunB,EAKU,WAAA,aAAA,CAAA;AACAxnB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRunB,EAMU,WAAA,gBAAA,CAAA;AACjBxnB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAPSunB,EAOP,WAAA,aAAA,CAAA;AACiBxnB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GARRunB,EAQU,WAAA,cAAA,CAAA;AACjBxnB,GAAA;AAAA,EAAXC,EAAS;AAAA,GATSunB,EASP,WAAA,kBAAA,CAAA;AACAxnB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAVSunB,EAUP,WAAA,gBAAA,CAAA;AACiBxnB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAXRunB,EAWU,WAAA,mBAAA,CAAA;AACGxnB,GAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,IAAO;AAAA,GAZXunB,EAYa,WAAA,YAAA,CAAA;AACpBxnB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAbSunB,EAaP,WAAA,YAAA,CAAA;AACAxnB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAdSunB,EAcP,WAAA,eAAA,CAAA;AAGRxnB,GAAA;AAAA,EADHC,EAAS,EAAE,MAAM,OAAO,WAAW,IAAO;AAAA,GAhBxBunB,EAiBf,WAAA,SAAA,CAAA;AAIaxnB,GAAA;AAAA,EAAhBohB,EAAM;AAAA,GArBYoG,EAqBF,WAAA,UAAA,CAAA;AACAxnB,GAAA;AAAA,EAAhBohB,EAAM;AAAA,GAtBYoG,EAsBF,WAAA,mBAAA,CAAA;AAtBEA,IAArBxnB,GAAA;AAAA,EADCE,EAAc,mBAAmB;AAAA,GACbsnB,CAAA;;;;;;;ACjCrB,IAAqBmB,KAArB,cAAgDtH,GAAWhiB,CAAU,EAAE;AAAA,EAAvE,cAAA;AAAA,UAAA,GAAA,SAAA,GAE4C,KAAA,mBAAA,MAGa,KAAA,WAAA,IAGvD,KAAQ,SAAmC;EAAC;AAAA,EAE5C,IAAI,QAAQ;AACH,WAAA,KAAK,iBAAiB,6BAA6B;AAAA,EAC5D;AAAA,EAEA,cAAcE,GAAc;AAC1B,WAAO,KAAK,WAAY;AAAA,MACtB,yCAAyCA,CAAI;AAAA,IAAA;AAAA,EAEjD;AAAA,EAEQ,kBAAkBG,GAAc;AAChC,UAAAkpB,IAAkBlpB,EAAsB,OAAO,MAAM;AAAA,MACzD,CAAC6nB,MACC3nB;AAAAA,iBACS,KAAK,IAAI;AAAA,sBACJ2nB,CAAI;AAAA,qBACLA,EAAK,IAAI;AAAA,sBACR,KAAK,QAAQ;AAAA,IAAA;AAG/B,SAAK,SAASqB;AAAA,EAChB;AAAA,EAEU,aACR1hB,GACM;AACN,UAAM,aAAaA,CAAkB,GACjC,KAAK,QACP,KAAK,mBAAmB,SAAS,cAAc,IAAI,KAAK,GAAG,EAAE,GACzD,KAAK,qBACP,KAAK,iBAAiB,WAAW,MACjC,KAAK,kBAAkB;AAAA,MACrB;AAAA,MACA,KAAK,kBAAkB,KAAK,IAAI;AAAA,IAAA;AAAA,EAIxC;AAAA,EAEA,WAAWxH,GAAoB;AAC7B,SAAK,kBAAkB;AAAA,MACrB,IAAI,YAAY,mBAAmB;AAAA,QACjC,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQA,EAAM;AAAA,MAAA,CACf;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,SAAS;AACA,WAAAE;AAAAA;AAAAA;AAAAA,yBAGc,KAAK,UAAU;AAAA,QAChC,KAAK,MAAM;AAAA;AAAA,EAEjB;AACF;AAnEqB+oB,GACZ,SAAS7oB,EAAUC,EAAM;AAGJC,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAJP0oB,GAIS,WAAA,OAAA,CAAA;AACgB3oB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GALvB0oB,GAKyB,WAAA,YAAA,CAAA;AAGpC3oB,GAAA;AAAA,EADPohB,EAAM;AAAA,GAPYuH,GAQX,WAAA,UAAA,CAAA;AARWA,KAArB3oB,GAAA;AAAA,EADCE,EAAc,wBAAwB;AAAA,GAClByoB,EAAA;;;;;;;ACerB,IAAqBE,KAArB,cAAoDxH,GAAWhiB,CAAU,EAAE;AAAA,EAA3E,cAAA;AAAA,UAAA,GAAA,SAAA,GAKyD,KAAA,WAAA,IAIA,KAAA,UAAA,IACb,KAAA,YAAA,IACD,KAAA,WAAA,IAGH,KAAA,SAAA,IACC,KAAA,WAAA;AAAA,EAAA;AAAA,EAEvC,SAAS;AACP,SAAK,KAAK,mBAAmB,EAAE,MAAM,KAAK,UAAU;AAAA,EACtD;AAAA,EAEA,IAAI,gBAAgB;AAElB,UAAMypB,IAAQ,CAAC,KAAK,MAAM,MAAM,IAAI,GAE9B1hB,IAAO,KAAK,SAAS;AAEvB,QAAA,CAAC,CAACA;AACG,aAAA,KAAK0hB,EAAM,CAAC,CAAC;AAGhB,UAAA5sB,IAAI,KAAK,MAAM,KAAK,IAAIkL,CAAI,IAAI,KAAK,IAAI,IAAQ,CAAC;AAExD,WAAO,GAAG,YAAYA,IAAO,KAAK,IAAI,MAAUlL,CAAC,GAAG,QAAQ,CAAc,CAAC,CAAC,IAAI4sB,EAAM5sB,CAAC,CAAC;AAAA,EAC1F;AAAA,EAEA,SAAS;AACP,WACE,KAAK,YACL0D;AAAAA;AAAAA;AAAAA,kBAGY9D,EAAK,kBAAkB;AAAA,MAC7B,sBAAsB,KAAK,SAAS;AAAA,MACpC,sBAAsB,KAAK,SAAS;AAAA,MACpC,4BAA4B,KAAK;AAAA,IAAA,CAClC,CAAC;AAAA;AAAA,8CAEkC,KAAK,SAAS,IAAI;AAAA,8CAClB,KAAK,aAAa;AAAA;AAAA,gBAEhD,KAAK,UACH8D;AAAAA;AAAAA,wDAGA8J,CAAO;AAAA;AAAA;AAAA,6BAGI,KAAK,QAAQ;AAAA;AAAA,8BAEZ,GAAG/N,GAAE,kBAAkB,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE;AAAA;AAAA,0BAEpD,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,YAKzB,KAAK,YACPiE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,qBAKWiK,EAAU,KAAK,YAAY,CAAC;AAAA,6CACJ,KAAK,QAAQ;AAAA;AAAA,WAE/C;AAAA;AAAA;AAAA,EAIT;AACF;AAjFqBgf,GACZ,SAASH;AAAAA,MACZ5oB,EAAUC,EAAM,CAAC;AAAA;AAGuBC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GALvB4oB,GAKyB,WAAA,YAAA,CAAA;AAChB7oB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GANP4oB,GAMS,WAAA,aAAA,CAAA;AACA7oB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAPP4oB,GAOS,WAAA,gBAAA,CAAA;AACA7oB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GARP4oB,GAQS,WAAA,YAAA,CAAA;AACgB7oB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GATvB4oB,GASyB,WAAA,WAAA,CAAA;AACf7oB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR4oB,GAUU,WAAA,aAAA,CAAA;AACA7oB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAXR4oB,GAWU,WAAA,YAAA,CAAA;AAE7B7oB,GAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,WAAWghB,IAAqB;AAAA,GAZvC4H,GAanB,WAAA,YAAA,CAAA;AAC6B7oB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAdR4oB,GAcU,WAAA,UAAA,CAAA;AACD7oB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAfP4oB,GAeS,WAAA,YAAA,CAAA;AAfTA,KAArB7oB,GAAA;AAAA,EADCE,EAAc,6BAA6B;AAAA,GACvB2oB,EAAA;;;;;;;ACXrB,IAAqBE,KAArB,cAA4C1H;AAAA,EAC1CT,GAAevhB,CAAU;AAC3B,EAAE;AAAA,EAOA,mBAAmB;AACV,WAAA;AAAA,EACT;AAAA,EAEA,SAAS;AACP,UAAM2pB,IAAW,GAAG,KAAK,eAAe,SAAS,OAAO;AAEjD,WAAAppB;AAAAA;AAAAA,OAEJC,EAAampB,CAAQ,CAAC;AAAA,kBACXltB,EAAK,SAAS;AAAA,MACpB,mBAAmB,KAAK;AAAA,MACxB,mBAAmB,KAAK;AAAA,MACxB,mBAAmB,KAAK;AAAA,MACxB,iBAAiB,KAAK;AAAA,MACtB,CAAC,UAAU,KAAK,IAAI,EAAE,GAAG,KAAK;AAAA,IAAA,CAC/B,CAAC;AAAA,gBACI+N,EAAU,KAAK,GAAG,CAAC;AAAA,YACvB,KAAK,KAAK;AAAA;AAAA,YAEVhK,EAAampB,CAAQ,CAAC;AAAA,UAExB,KAAK,WACDppB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,mBAMA,IACN;AAAA,YAEI,KAAK,WACDA;AAAAA;AAAAA,0BAEU9D,EAAK,wBAAwB;AAAA,MACnC,CAAC,yBAAyB,KAAK,IAAI,EAAE,GAAG,KAAK;AAAA,IAAA,CAC9C,CAAC;AAAA,oBACA,KAAK,aAAa;AAAA,2BAEtB,IACN;AAAA,EACR;AACF;AApDqBitB,GAOZ,SAASjpB,EAAUC,EAAM;AAJpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHS8oB,GAGP,WAAA,OAAA,CAAA;AAEZ/oB,GAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJR8oB,GAKnB,WAAA,gBAAA,CAAA;AALmBA,KAArB/oB,GAAA;AAAA,EADCE,EAAc,mBAAmB;AAAA,GACb6oB,EAAA;;;;;;;ACUA,IAAAE,KAArB,cAA6CzH,GAAmB;AAAA,EAK9D,mBAAmB;AAIjB,KAFE,KAAK,UAAU,KAAK,CAAA6E,MAASA,EAAM,OAAO,KAAK,KAAK,UAAU,CAAC,GAEpD,MAAM;AAAA,EACrB;AAAA,EAEQ,WAAW;AACV,WAAA;AAAA,MACL,GAAG,KAAK;AAAA,QACN;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,yBACE9mB,GACA+mB,GACA9mB,GACA;AACM,UAAA,yBAAyBD,GAAM+mB,GAAM9mB,CAAK,IAC5CD,MAAS,cAAcA,MAAS,cAC7B,KAAA,SAAA,EAAW,QAAQ,CAAQ2K,MAAA;AACzB,MAAAA,EAAA3K,CAAI,IAAIC,MAAU;AAAA,IAAA,CACxB;AAAA,EAEL;AAAA,EAEA,SAAS;AACA,WAAAI;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,oBAKS,KAAK,QAAQ;AAAA;AAAA,2BAEN,eAAe,KAAK,UAAU,EAAE;AAAA,4BAC/BiK,EAAU,KAAK,UAAU,CAAC;AAAA;AAAA;AAAA,cAGxC,KAAK,SACPjK;AAAAA;AAAAA;AAAAA,sBAGU,KAAK,IAAI;AAAA,0BACL,KAAK,QAAQ;AAAA,0BACb,KAAK,QAAQ;AAAA,+BACR,KAAK,aAAa;AAAA,0BACvB,KAAK,QAAQ;AAAA,wBACf,KAAK,MAAM;AAAA,sBACbiK,EAAU,KAAK,KAAK,CAAC;AAAA,uBACpB,KAAK,gBAAgB;AAAA,iCACX;AAAA,cACnB,KAAK,WACPjK;AAAAA;AAAAA,wBAEY,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BASN;AAAA;AAAA,YAElB,KAAK,eACPA;AAAAA;AAAAA;AAAAA;AAAAA,qBAIWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,gBAElD,KAAK,WAAW;AAAA;AAAA,WAErB;AAAA;AAAA;AAAA;AAAA;AAAA,UAKD,KAAK,YAAY,KAAK,gBAAA,CAAiB;AAAA;AAAA;AAAA,EAG/C;AAAA,EAEQ,kBAAkBnK,GAAc;AAE/B,KADQA,GAAO,QACf,aAAa,QAAQ,MAAM;AAAA,EACpC;AAAA,EAEQ,kBAAkB;AACjB,WAAAE;AAAAA;AAAAA;AAAAA,eAGIiK,EAAU,KAAK,YAAY,CAAC;AAAA,gBAC3BA,EAAU,KAAK,IAAmB,CAAC;AAAA;AAAA,kBAEjC,KAAK,MAAM;AAAA;AAAA;AAAA,yBAGJ,KAAK,iBAAiB;AAAA,UACrC,KAAK,QAAQ;AAAA;AAAA;AAAA,EAGrB;AACF;AA/GqBof,GACZ,SAASnpB,EAAUC,EAAM;AAEPC,GAAA;AAAA,EAAxBM,GAAsB;AAAA,GAHJ2oB,GAGM,WAAA,aAAA,CAAA;AAHNA,KAArBjpB,GAAA;AAAA,EADCE,EAAc,oBAAoB;AAAA,GACd+oB,EAAA;;;;;;AC7BrB,MAAMC,KAAY,CAAC,WAAW,aAAa,aAAa,cAAc,GAAG;AAqCpD,IAAAC,KAArB,cAA6C3H,GAAmB;AAAA,EAAhE,cAAA;AAAA,UAAA,GAAA,SAAA,GAC8B,KAAA,gBAAA;AAAA,EAAA;AAAA,EAGpB,kBAAkB9hB,GAAc;AAE/B,KADQA,GAAO,QACf,aAAa,QAAQ,MAAM;AAAA,EACpC;AAAA,EAEQ,eAAe;AACrB,WAAO,CAAC,GAAG,KAAK,iBAAmC,qBAAqB,CAAC;AAAA,EAC3E;AAAA,EAEA,MAAc,oBAAoB;AAC1B,UAAA0pB,IAAS,KAAK;AAEpB,UAAM,QAAQ;AAAA,MACZA,EAAO,IAAI,OAAMC,MAAS;AACxB,cAAMA,EAAM,gBACNA,EAAA,UAAUA,EAAM,UAAU,KAAK,OACrCA,EAAM,OAAO,KAAK;AAAA,MAAA,CACnB;AAAA,IAAA,GAGE,KAAA,UAAU,aAAa,KAAK,KAAK,GACtC,KAAK,YAAY;AAAA,EACnB;AAAA,EAEQ,iBAAiB3pB,GAAmB;AACpC,UAAA4O,IAAU5O,EAAM,OAAuB;AAAA,MAC3C;AAAA,IAAA,GAEI0pB,IAAS,KAAK,gBACdre,IAAW,KAAK;AAEtB,IAAIuD,EAAQ,aAIZ,KAAK,QAAQA,EAAQ,OACrB8a,EAAO,QAAQ,CAAAC,MAAUA,EAAM,UAAUA,MAAU/a,CAAO,GAEtD,KAAK,UAAUvD,MACZ,KAAA,KAAK,cAAc,EAAE,OAAOuD,EAAQ,OAAO,SAAS,IAAM,GAE1D,KAAA,UAAU,aAAa,KAAK,KAAK,GACtC,KAAK,YAAY;AAAA,EAErB;AAAA,EAEQ,cAAc5O,GAAsB;AAC1C,QAAI,CAACwpB,GAAU,SAASxpB,EAAM,GAAG;AAC/B;AAGI,UAAA0pB,IAAS,KAAK,eAAe,OAAO,CAASC,MAAA,CAACA,EAAM,QAAQ,GAC5DC,IAAeF,EAAO,KAAK,CAAAC,MAASA,EAAM,OAAO,KAAKD,EAAO,CAAC,GAC9DG,IACJ7pB,EAAM,QAAQ,MACV,IACA,CAAC,WAAW,WAAW,EAAE,SAASA,EAAM,GAAG,IACzC,KACA,GACFqL,IAAW,KAAK;AACtB,QAAIjJ,IAAQsnB,EAAO,QAAQE,CAAY,IAAIC;AAE3C,IAAIznB,IAAQ,MACVA,IAAQsnB,EAAO,SAAS,IAGtBtnB,IAAQsnB,EAAO,SAAS,MAClBtnB,IAAA,IAGL,KAAA,aAAA,EAAe,QAAQ,CAASunB,MAAA;AACnC,MAAAA,EAAM,UAAU,IAChBA,EAAM,WAAW;AAAA,IAAA,CAClB,GAEI,KAAA,QAAQD,EAAOtnB,CAAK,EAAE,OACpBsnB,EAAAtnB,CAAK,EAAE,UAAU,IAEjBsnB,EAAAtnB,CAAK,EAAE,WAAW,GAClBsnB,EAAAtnB,CAAK,EAAE,SAEV,KAAK,UAAUiJ,MACZ,KAAA,KAAK,cAAc,EAAE,OAAOqe,EAAOtnB,CAAK,EAAE,OAAO,SAAS,GAAM,CAAA,GAEhE,KAAA,UAAU,aAAa,KAAK,KAAK,GACtC,KAAK,YAAY,IAGnBpC,EAAM,eAAe;AAAA,EACvB;AAAA,EAEA,cAAoB;AAElB,UAAM8pB,IADS,KAAK,eACG,KAAK,CAAAH,MAASA,EAAM,OAAO;AAE9C,IAAA,KAAK,YAAY,CAACG,IACpB,KAAK,UAAU;AAAA,MACb,EAAE,cAAc,GAAK;AAAA,MACrB;AAAA,MACA,KAAK;AAAA,IAAA,IAGF,KAAA,UAAU,YAAY,CAAA,CAAE;AAAA,EAEjC;AAAA,EAEA,gBAAgB;AACP,WAAA,KAAK,YAAY,CAAC,KAAK;AAAA,EAChC;AAAA,EAEA,IAAI,WAAW;AACN,WAAA;AAAA,MACL,GAAG,KAAK,UAAU;AAAA,MAClB,OAAO,KAAK,cAAc;AAAA,MAC1B,cAAc,KAAK,YAAY,CAAC,KAAK;AAAA,IAAA;AAAA,EAEzC;AAAA,EAEA,mBAAmB;AACX,UAAAJ,IAAS,KAAK;AAGpB,KAFqBA,EAAO,KAAK,CAAAC,MAASA,EAAM,OAAO,KAAKD,EAAO,CAAC,GAEvD,MAAM;AAAA,EACrB;AAAA,EAEA,yBACE7pB,GACA+mB,GACA9mB,GACA;AACM,UAAA,yBAAyBD,GAAM+mB,GAAM9mB,CAAK,IAC5CD,MAAS,cAAcA,MAAS,cAC7B,KAAA,aAAA,EAAe,QAAQ,CAAQ2K,MAAA;AAC7B,MAAAA,EAAA3K,CAAI,IAAIC,MAAU;AAAA,IAAA,CACxB;AAAA,EAEL;AAAA,EAEA,SAAS;AACA,WAAAI;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,oBAKS,KAAK,QAAQ;AAAA,eAClBiK,EAAU,KAAK,IAAI,CAAC;AAAA,eACpB,KAAK,IAAI;AAAA;AAAA;AAAA,2BAGG,eAAe,KAAK,UAAU,EAAE;AAAA,4BAC/BA,EAAU,KAAK,UAAU,CAAC;AAAA;AAAA;AAAA,cAGxC,KAAK,SACPjK;AAAAA;AAAAA;AAAAA,sBAGU,KAAK,IAAI;AAAA,0BACL,KAAK,QAAQ;AAAA,+BACR,KAAK,aAAa;AAAA,0BACvB,KAAK,QAAQ;AAAA,wBACf,KAAK,MAAM;AAAA,0BACT,KAAK,QAAQ;AAAA,sBACjBiK,EAAU,KAAK,KAAK,CAAC;AAAA,uBACpB,KAAK,gBAAgB;AAAA,iCACX;AAAA,cACnB,KAAK,WACPjK;AAAAA;AAAAA,wBAEY,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BASN;AAAA;AAAA,YAElB,KAAK,eACPA;AAAAA;AAAAA;AAAAA;AAAAA,qBAIWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,gBAElD,KAAK,WAAW;AAAA;AAAA,WAErB;AAAA;AAAA;AAAA;AAAA,qBAIU,KAAK,gBAAgB;AAAA,uBACnB,KAAK,aAAa;AAAA,oBACrB,KAAK,MAAM;AAAA,qBACV,KAAK,OAAO;AAAA,0BACP,KAAK,iBAAiB;AAAA;AAAA,UAEtC,KAAK,YAAY,KAAK,gBAAA,CAAiB;AAAA;AAAA;AAAA,EAG/C;AAAA,EAEQ,kBAAkB;AACjB,WAAAjK;AAAAA;AAAAA;AAAAA,eAGIiK,EAAU,KAAK,YAAY,CAAC;AAAA,gBAC3BA,EAAU,KAAK,IAAmB,CAAC;AAAA;AAAA,kBAEjC,KAAK,MAAM;AAAA;AAAA;AAAA,yBAGJ,KAAK,iBAAiB;AAAA,UACrC,KAAK,QAAQ;AAAA;AAAA;AAAA,EAGrB;AACF;AA/NqBsf,GAEZ,SAASrpB,EAAUC,EAAM;AADpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSkpB,GACP,WAAA,iBAAA,CAAA;AADOA,KAArBnpB,GAAA;AAAA,EADCE,EAAc,oBAAoB;AAAA,GACdipB,EAAA;;;;;;;ACpBA,IAAAM,KAArB,cAAuCpqB,EAAW;AAAA,EAAlD,cAAA;AAAA,UAAA,GAAA,SAAA,GAE+B,KAAA,OAAA,MAEsB,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA,oBACS9D,EAAK,QAAQ,CAAA,CAAE,CAAC;AAAA,UAC1B,KAAK,OAAO,KAAK,kBAAkB,KAAK,cAAc;AAAA;AAAA;AAAA,EAG9D;AAAA,EAEQ,gBAAgB;AAChB,UAAA4tB,IAAU,eAAe,KAAK,IAAI;AAEjC,WAAA9pB;AAAAA,QACHC,EAAa6pB,CAAO,CAAC;AAAA;AAAA,eAEd,KAAK,cAAc,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA,sBAG1C,KAAK,aAAa,SAAS,OAAO;AAAA,mBACrC,KAAK,YAAY,IAAI,EAAE;AAAA;AAAA,UAEhC7pB,EAAa6pB,CAAO,CAAC;AAAA;AAAA,EAE7B;AAAA,EAEQ,eAAe;AACd,WAAA9pB;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,qBAAqB,EAAE,CAAC,KAAK,IAAI,GAAG,GAAK,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAI9D;AAAA,EAEQ,eAAesL,GAAwB;AAE7C,YAAQA,GAAM;AAAA,MACZ,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT;AACS,eAAA;AAAA,IACX;AAAA,EACF;AACF;AA7DqBqiB,GAMZ,SAAS3pB,EAAUC,CAAM;AALpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSwpB,GACP,WAAA,QAAA,CAAA;AACAzpB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSwpB,GAEP,WAAA,QAAA,CAAA;AACgBzpB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAHPwpB,GAGS,WAAA,cAAA,CAAA;AACCzpB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJRwpB,GAIU,WAAA,aAAA,CAAA;AAJVA,KAArBzpB,GAAA;AAAA,EADCE,EAAc,aAAa;AAAA,GACPupB,EAAA;;;;;;;ACMA,IAAAE,KAArB,cAA6CtqB,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GACyD,KAAA,UAAA,WACF,KAAA,QAAA,IACL,KAAA,OAAA,MACO,KAAA,WAAA,IAChB,KAAA,WAAA;AAAA,EAAA;AAAA,EAM7B,aACR6H,GACM;AAGN,QAFA,MAAM,aAAaA,CAAkB,GAEjC,KAAK,YAAY;AACnB,YAAMC,IAAW,KAAK,WAAW,cAAc,MAAM;AACrD,MAAIA,KACEA,EAAS,iBAAiB,EAAE,UAC9BA,EAAS,iBAAmB,EAAA,CAAC,EAAE,aAAa,QAAQ,KAAK,IAAI;AAAA,IAGnE;AAAA,EACF;AAAA,EAEA,SAAS;AACA,WAAAvH;AAAAA;AAAAA,oBAES,KAAK,QAAQ;AAAA,qBACZiK,EAAU,KAAK,SAAS,KAAK,EAAE;AAAA,eACrC,KAAK,QAAQ;AAAA,gBACZ/N;AAAAA,MACN;AAAA,MACA,gBAAgB,KAAK,IAAI;AAAA,MACzB,EAAE,yBAAyB,KAAK,SAAS;AAAA,MACzC,EAAE,sBAAsB,KAAK,MAAM;AAAA,MACnC,gBAAgB,KAAK,OAAO;AAAA,IAAA,CAC7B;AAAA,UACC,KAAK,OACH8D;AAAAA;AAAAA,sBAEU,KAAK,IAAI;AAAA,qBACV,KAAK,IAAI;AAAA,8BAElBA,kBAAqB;AAAA;AAAA;AAAA,EAG/B;AACF;AAjDqB+pB,GASZ,SAAS7pB,EAAUC,EAAM;AARHC,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GADR0pB,GACU,WAAA,WAAA,CAAA;AACe3pB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAFvB0pB,GAEyB,WAAA,SAAA,CAAA;AACf3pB,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAHR0pB,GAGU,WAAA,QAAA,CAAA;AACe3pB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB0pB,GAIyB,WAAA,YAAA,CAAA;AAChC3pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GALS0pB,GAKP,WAAA,YAAA,CAAA;AACA3pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GANS0pB,GAMP,WAAA,QAAA,CAAA;AACA3pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAPS0pB,GAOP,WAAA,QAAA,CAAA;AAPOA,KAArB3pB,GAAA;AAAA,EADCE,EAAc,oBAAoB;AAAA,GACdypB,EAAA;;;;;;;AClBd,MAAMC,UAAyBpI,GAAmB;AAAA,EAAlD,cAAA;AAAA,UAAA,GAAA,SAAA,GAW0B,KAAA,OAAA,QASuB,KAAA,UAAA,IAE7C,KAAQ,kBAAkB,IAC1B,KAAQ,iBAAiB,IACzB,KAAQ,aAAa,IACrB,KAAQ,cAAc,IAuB/B,KAAA,UAAU,MAAM;AACT,WAAA,QAAQ,KAAK,MAAM,OACxB,KAAK,KAAK,aAAa,EAAE,OAAO,KAAK,MAAM,OAAO,GAElD,KAAK,YAAY;AAAA,IAAA;AAAA,EACnB;AAAA,EA1BA,OAAA;AAAO,SAAA,SAAS1hB,EAAUC,EAAM;AAAA,EAAA;AAAA,EAEhC,IAAW,gBAAkC;AACpC,WAAA,KAAK,YAAY,cAAc,iBAAiB;AAAA,EACzD;AAAA,EAEQ,kBAAkBL,GAAc;AAE/B,KADQA,GAAO,QACf,aAAa,QAAQ,MAAM;AAAA,EACpC;AAAA,EAEU,aACRwH,GACM;AACN,UAAM,aAAaA,CAAkB,GACrC,KAAK,kBAAkB,CAAC,CAAC,KAAK,iBAAiB,QAC/C,KAAK,iBAAiB,CAAC,CAAC,KAAK,gBAAgB,QAC7C,KAAK,aAAa,CAAC,CAAC,KAAK,YAAY,QACrC,KAAK,cAAc,CAAC,CAAC,KAAK,aAAa;AAAA,EACzC;AAAA,EASA,SAAS;AACP,SAAK,KAAK,UAAU;AAAA,EACtB;AAAA,EAEA,UAAU;AACR,SAAK,KAAK,WAAW;AAAA,EACvB;AAAA,EAEA,WAAW;AACJ,SAAA,QAAQ,KAAK,MAAM,OAExB,KAAK,KAAK,cAAc,EAAE,OAAO,KAAK,MAAM,OAAO,GACnD,KAAK,YAAY;AAAA,EACnB;AAAA,EAEA,UAAUxH,GAAsB;AACzB,SAAA,QAAQ,KAAK,MAAM,OACnB,KAAA,KAAK,eAAe,EAAE,OAAO,KAAK,MAAM,OAAO,OAAAA,GAAO;AAAA,EAC7D;AAAA,EAEA,IAAW,eAAe;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAcA,GAAc;AAC1B,IAAAA,EAAM,eAAe;AAAA,EACvB;AAAA,EAEA,uBAAuB;AACd,WAAAE;AAAAA;AAAAA,gBAEK9D,EAAK,EAAE,uBAAuB,CAAC,CAAC,KAAK,WAAA,CAAY,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKlDA,EAAK;AAAA,MACX,wBAAwB,CAAC,CAAC,KAAK;AAAA,IAAA,CAChC,CAAC;AAAA;AAAA;AAAA,EAGR;AAAA,EAEA,YAAYilB,GAAmB;AACtB,WAAAnhB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAKO,KAAK,IAAI;AAAA,sBACL,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,oBACf,KAAK,MAAM;AAAA,sBACT,KAAK,QAAQ;AAAA,2BACR,KAAK,aAAa;AAAA;AAAA,kBAE3BiK,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA,UAE7B,KAAK,WACPjK;AAAAA;AAAAA,oBAEY,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BASN;AAAA;AAAA,QAElB,KAAK,eACPA;AAAAA;AAAAA;AAAAA;AAAAA,iBAIWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,YAElD,KAAK,WAAW;AAAA;AAAA,OAErB;AAAA;AAAA;AAAA,gBAGS/N;AAAAA,MACN;AAAA,MACA,EAAE,aAAa,KAAK,SAAS,KAAK;AAAA,MAClC,EAAE,aAAa,KAAK,SAAS,KAAK;AAAA,MAClC,EAAE,kBAAkB,KAAK,WAAW,UAAU;AAAA,MAC9C,EAAE,gBAAgB,KAAK,WAAW,QAAQ;AAAA,MAC1C,EAAE,mBAAmB,KAAK,SAAS;AAAA,MACnC,EAAE,mBAAmB,KAAK,SAAS;AAAA,MACnC,EAAE,2BAA2B,CAAC,CAAC,KAAK,gBAAgB;AAAA,MACpD,EAAE,0BAA0B,CAAC,CAAC,KAAK,eAAe;AAAA,MAClD,EAAE,qBAAqB,CAAC,CAAC,KAAK,WAAW;AAAA,MACzC,EAAE,sBAAsB,CAAC,CAAC,KAAK,YAAY;AAAA,IAAA,CAC5C;AAAA;AAAA;AAAA,kBAGSA,EAAK,EAAE,uBAAuB,CAAC,CAAC,KAAK,gBAAA,CAAiB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAQtD,KAAK,IAAI;AAAA,mBACT,KAAK,IAAI;AAAA,wBACJ,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,0BACX+N,EAAU,KAAK,WAAW,CAAC;AAAA,oBACjCA,EAAU,KAAK,KAAK,CAAC;AAAA,wBACjBA,EAAU,KAAK,SAAS,CAAC;AAAA,wBACzBA,EAAU,KAAK,SAAS,CAAC;AAAA;AAAA,4CAEL,KAAK,WAAW,aAAa,EAAE;AAAA,kBACzDA,EAAU,KAAK,GAAG,CAAC;AAAA,kBACnBA,EAAU,KAAK,GAAG,CAAC;AAAA,sBACfA,EAAU,KAAK,OAAO,CAAC;AAAA,mBAC1BA,EAAU,KAAK,IAAc,CAAC;AAAA,yBACxBA,EAAU,KAAK,SAAS,CAAC;AAAA,yBACzB,KAAK,SAAS;AAAA,6BACVA,EAAU,KAAK,iBAAiB,OAAO,KAAK,CAAC;AAAA,sBACpD,KAAK,QAAQ;AAAA,qBACd,KAAK,OAAO;AAAA,uBACV,KAAK,SAAS;AAAA,uBACd,KAAK,aAAa;AAAA,oBACrB,KAAK,MAAM;AAAA,qBACV,KAAK,OAAO;AAAA,YACrBkX,KAAoB,KAAK,qBAAA,CAAsB;AAAA;AAAA;AAAA;AAAA,kBAIzCjlB,EAAK,EAAE,sBAAsB,CAAC,CAAC,KAAK,eAAA,CAAgB,CAAC;AAAA;AAAA;AAAA;AAAA,QAI/D,KAAK,YAAY,KAAK,gBAAA,CAAiB;AAAA;AAAA,EAE7C;AAAA,EAEQ,kBAAkB;AACjB,WAAA8D;AAAAA;AAAAA;AAAAA,eAGIiK,EAAU,KAAK,YAAY,CAAC;AAAA,gBAC3BA,EAAU,KAAK,IAAmB,CAAC;AAAA,kBACjC,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA,yBAIJ,KAAK,iBAAiB;AAAA,UACrC,KAAK,QAAQ;AAAA;AAAA;AAAA,EAGrB;AACF;AApNmB7J,EAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GADJsf,EACM,WAAA,OAAA;AAET5pB,EAAA;AAAA,EADPM,GAAsB,EAAE,MAAM,gBAAgB;AAAA,GAFpCspB,EAGH,WAAA,kBAAA;AAEA5pB,EAAA;AAAA,EADPM,GAAsB,EAAE,MAAM,eAAe;AAAA,GAJnCspB,EAKH,WAAA,iBAAA;AAEA5pB,EAAA;AAAA,EADPM,GAAsB,EAAE,MAAM,UAAU;AAAA,GAN9BspB,EAOH,WAAA,aAAA;AAEA5pB,EAAA;AAAA,EADPM,GAAsB,EAAE,MAAM,WAAW;AAAA,GAR/BspB,EASH,WAAA,cAAA;AAEI5pB,EAAA;AAAA,EAAXC,EAAS;AAAA,GAXC2pB,EAWC,WAAA,MAAA;AACA5pB,EAAA;AAAA,EAAXC,EAAS;AAAA,GAZC2pB,EAYC,WAAA,aAAA;AACgB5pB,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAbf2pB,EAaiB,WAAA,WAAA;AACA5pB,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAdf2pB,EAciB,WAAA,WAAA;AACA5pB,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAff2pB,EAeiB,WAAA,KAAA;AACA5pB,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAhBf2pB,EAgBiB,WAAA,KAAA;AAChB5pB,EAAA;AAAA,EAAXC,EAAS;AAAA,GAjBC2pB,EAiBC,WAAA,SAAA;AACgB5pB,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAlBf2pB,EAkBiB,WAAA,MAAA;AAChB5pB,EAAA;AAAA,EAAXC,EAAS;AAAA,GAnBC2pB,EAmBC,WAAA,WAAA;AACgC5pB,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GApB/B2pB,EAoBiC,WAAA,SAAA;AAE3B5pB,EAAA;AAAA,EAAhBohB,EAAM;AAAA,GAtBIwI,EAsBM,WAAA,iBAAA;AACA5pB,EAAA;AAAA,EAAhBohB,EAAM;AAAA,GAvBIwI,EAuBM,WAAA,gBAAA;AACA5pB,EAAA;AAAA,EAAhBohB,EAAM;AAAA,GAxBIwI,EAwBM,WAAA,YAAA;AACA5pB,EAAA;AAAA,EAAhBohB,EAAM;AAAA,GAzBIwI,EAyBM,WAAA,aAAA;;;;;;ACwBE,IAAAC,KAArB,cAAwCD,EAAiB;AAAA,EACvD,SAAS;AACP,WAAO,KAAK;AAAA,MACVhqB,KAAQ,KAAK,UACTA;AAAAA;AAAAA,qBAEW9D,EAAK,sBAAsB,CAAC;AAAA,2CAEvC4N,CAAO;AAAA,IAAA;AAAA,EAEf;AACF;AAXqBmgB,KAArB7pB,GAAA;AAAA,EADCE,EAAc,cAAc;AAAA,GACR2pB,EAAA;;;;;;;AC/BA,IAAAC,KAArB,cAAuCzqB,EAAW;AAAA,EAAlD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqC,KAAA,UAAA,SACF,KAAA,SAAA,SAGN,KAAA,OAAA,KAC4B,KAAA,WAAA,IACrC,KAAA,MAAA;AAAA,EAAA;AAAA,EAIV,YAAYK,GAAc;AAChC,IAAI,KAAK,aACPA,EAAM,eAAe,GACrBA,EAAM,gBAAgB;AAAA,EAE1B;AAAA,EAEA,SAAS;AACA,WAAAE;AAAAA;AAAAA;AAAAA,mBAGQ,KAAK,QAAQ;AAAA,wBACR,KAAK,QAAQ;AAAA,qBAChBiK,EAAU,KAAK,SAAS,KAAK,EAAE;AAAA,iBACnC,KAAK,MAAM;AAAA,eACb,KAAK,IAAI;AAAA,cACVA,EAAU,KAAK,SAAS,KAAK,MAAM,MAAS,CAAC;AAAA,gBAC3C/N;AAAAA,MACN;AAAA,MACA,SAAS,KAAK,IAAI;AAAA,MAClB,EAAE,cAAc,KAAK,KAAK;AAAA,MAC1B,EAAE,uBAAuB,KAAK,YAAY;AAAA,MAC1C,EAAE,kBAAkB,KAAK,SAAS;AAAA,MAClC,SAAS,KAAK,OAAO;AAAA,IAAA,CACtB;AAAA,iBACQ,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B;AACF;AA5CqBguB,GAUZ,SAAShqB,EAAUC,EAAM;AATHC,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GADR6pB,GACU,WAAA,QAAA,CAAA;AACjB9pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFS6pB,GAEP,WAAA,WAAA,CAAA;AACA9pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHS6pB,GAGP,WAAA,UAAA,CAAA;AACiB9pB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJR6pB,GAIU,WAAA,QAAA,CAAA;AACA9pB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GALR6pB,GAKU,WAAA,eAAA,CAAA;AACjB9pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GANS6pB,GAMP,WAAA,QAAA,CAAA;AACgC9pB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAPvB6pB,GAOyB,WAAA,YAAA,CAAA;AAChC9pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS6pB,GAQP,WAAA,OAAA,CAAA;AAROA,KAArB9pB,GAAA;AAAA,EADCE,EAAc,aAAa;AAAA,GACP4pB,EAAA;;;;;;;ACYA,IAAAC,KAArB,cAA2C1qB,EAAW;AAAA,EAAtD,cAAA;AAAA,UAAA,GAAA,SAAA,GACyC,KAAA,UAAA,QACF,KAAA,QAAA,QACA,KAAA,SAAA,WACF,KAAA,YAAA,cAOnC,KAAA,UAAU,CACRoK,GACAwY,GACAoF,GACAhR,MACG;AACH,UAAI2T,IAAa;AAEjB,UAAIvgB;AACK,eAAA7J;AAAAA;AAAAA,kBAEK9D,EAAK,mBAAmB;AAAA,UAC9B,CAAC,oBAAoBurB,CAAM,EAAE,GAAGA;AAAA,QAAA,CACjC,CAAC;AAAA,kBACM5d,CAAI;AAAA;AAIlB,UAAIwY,MAAY;AACP,eAAAriB;AAAAA;AAAAA,kBAEK9D,EAAK,mBAAmB;AAAA,UAC9B,CAAC,oBAAoBurB,CAAM,EAAE,GAAGA;AAAA,QAAA,CACjC,CAAC;AAAA,YACAhR,CAAM;AAAA;AAAA;AAKd,cAAQ4L,GAAS;AAAA,QACf,KAAK;AACU,UAAA+H,IAAA;AACb;AAAA,QACF,KAAK;AACU,UAAAA,IAAA;AACb;AAAA,QACF,KAAK;AACU,UAAAA,IAAA;AACb;AAAA,QACF,KAAK;AACU,UAAAA,IAAA;AACb;AAAA,QACF,KAAK;AACU,UAAAA,IAAA;AACb;AAAA,QACF;AACe,UAAAA,IAAA;AACb;AAAA,MACJ;AAEO,aAAApqB;AAAAA;AAAAA,gBAEK9D,EAAK,mBAAmB;AAAA,QAC9B,CAAC,oBAAoBurB,CAAM,EAAE,GAAGA;AAAA,MAAA,CACjC,CAAC;AAAA,gBACM2C,CAAU;AAAA;AAAA,IAAA;AAAA,EAExB;AAAA,EAEA,SAAS;AACA,WAAApqB;AAAAA;AAAAA;AAAAA;AAAAA,kBAIO9D;AAAAA,MACN;AAAA,MACA,cAAc,KAAK,OAAO;AAAA,MAC1B,cAAc,KAAK,MAAM;AAAA,MACzB,cAAc,KAAK,KAAK;AAAA,MACxB,cAAc,KAAK,SAAS;AAAA,IAAA,CAC7B;AAAA,uBACYA,EAAK,sBAAsB,CAAC;AAAA;AAAA;AAAA,kBAGjC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,CACN;AAAA;AAAA;AAAA,yBAGQA,EAAK,oBAAoB,CAAC;AAAA,gBACnC,KAAK,QACH8D;AAAAA,yCACuB,KAAK,KAAK;AAAA,6BAEjC8J,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvB;AACF;AA5GqBqgB,GASZ,SAASjqB,EAAUC,EAAM;AARpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADS8pB,GACP,WAAA,WAAA,CAAA;AACA/pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFS8pB,GAEP,WAAA,SAAA,CAAA;AACA/pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHS8pB,GAGP,WAAA,UAAA,CAAA;AACA/pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAJS8pB,GAIP,WAAA,aAAA,CAAA;AACA/pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GALS8pB,GAKP,WAAA,SAAA,CAAA;AACA/pB,GAAA;AAAA,EAAXC,EAAS;AAAA,GANS8pB,GAMP,WAAA,QAAA,CAAA;AACgB/pB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAPP8pB,GAOS,WAAA,UAAA,CAAA;AAPTA,KAArB/pB,GAAA;AAAA,EADCE,EAAc,kBAAkB;AAAA,GACZ6pB,EAAA;;;;;;;AC9BrB,MAAqBE,WAAyB5qB,EAAW;AAAA,EAAzD,cAAA;AAAA,UAAA,GAAA,SAAA,GAE+D,KAAA,OAAA,IAEhD,KAAA,aAAA,QAKS,KAAA,sBAAA,QACsC,KAAA,gBAAA,IAMf,KAAA,kBAAA,WACI,KAAA,sBAAA,aACH,KAAA,iBAAA,IACN,KAAA,WAAA,IACA,KAAA,WAAA,IAExC,KAAQ,WAAW;AAAA,EAAA;AAAA,EAEnB,OAAA;AAAO,SAAA,SAASS,EAAUC,EAAM;AAAA,EAAA;AAAA,EAEtB,QACRmH,GACM;AACN,UAAM,QAAQA,CAAkB,GAC5BA,EAAmB,IAAI,MAAM,MAC3B,KAAK,QACP,KAAK,KAAK,iBAAiB,GAC3B,KAAK,OAAO,aACZ,KAAK,OAAQ;AAAA,MACX;AAAA,MACA,MAAM;AACJ,aAAK,KAAK,YAAY;AAAA,MACxB;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,MAGf,KAAK,KAAK,kBAAkB,GAC5B,KAAK,OAAO,SACZ,KAAK,OAAQ;AAAA,MACX;AAAA,MACA,MAAM;AACJ,aAAK,KAAK,YAAY;AAAA,MACxB;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA;AAAA,EAIrB;AAAA,EAEO,OAAa;AAClB,SAAK,OAAO;AAAA,EACd;AAAA,EAEO,OAAa;AAClB,SAAK,OAAO;AAAA,EACd;AAAA,EAEQ,YAAYqH,GAAqB;AAWvC,IAVyB,KAAK;AAAA,MAC5B;AAAA,MACA;AAAA,QACE,QAAAA;AAAA,MACF;AAAA,MACA;AAAA,QACE,YAAY;AAAA,MACd;AAAA,IAAA,EAGmB,oBAIrB,KAAK,KAAK;AAAA,EACZ;AAAA,EAEQ,aAAa7O,GAAoB;AACnC,QAAA,KAAK,eAAe,QAAQ;AAC9B,MAAAA,EAAM,eAAe,GACrB,KAAK,WAAW;AAChB;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,eAAeA,GAAoB;AACzC,QAAI,KAAK,UAAU;AACjB,MAAAA,EAAM,eAAe;AACrB;AAAA,IACF;AAEA,SAAK,YAAY,KAAK;AAAA,EACxB;AAAA,EAEQ,iBAAuB;AAC7B,SAAK,KAAK,QAAQ,GAClB,KAAK,YAAY,WAAW;AAAA,EAC9B;AAAA,EAEQ,qBAA2B;AACjC,SAAK,KAAK,YAAY,GACtB,KAAK,YAAY,eAAe;AAAA,EAClC;AAAA,EAEQ,YAAYA,GAAyB;AAC3C,IAAI,KAAK,wBAAwB,UAAUA,EAAM,WAAW,KAAK,UAC/D,KAAK,YAAY,SAAS,GAG5BA,EAAM,eAAe;AAAA,EACvB;AAAA,EAEQ,aAAaA,GAA4B;AAC3C,IAAAA,EAAM,QAAQ,UAId,KAAK,eAAe,UAAUA,EAAM,QAAQ,WAC9C,KAAK,YAAY,KAAK,IACbA,EAAM,QAAQ,aACvBA,EAAM,eAAe,GACrBA,EAAM,yBAAyB;AAAA,EAEnC;AAAA,EAEA,cAAc;AACL,WAAAE;AAAAA;AAAAA,cAEG9D,EAAK,SAAS;AAAA,MACpB,eAAe,KAAK;AAAA,IAAA,CACrB,CAAC;AAAA,eACO,KAAK,cAAc;AAAA,gBAClB,KAAK,YAAY;AAAA,eAClB,KAAK,WAAW;AAAA,iBACd,KAAK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,sBAKZ,KAAK,OAAO,UAAU,MAAM;AAAA,UACvC,KAAK,WAaJ4N,IAZA9J;AAAAA;AAAAA;AAAAA,qBAGS,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKZ,KAAK,WAAW;AAAA;AAAA;AAAA,sBAIjB;AAAA;AAAA;AAAA;AAAA,UAIR,KAAK,WAiBJ8J,IAhBA9J;AAAAA;AAAAA;AAAAA,2BAGe,KAAK,cAAc;AAAA,4BAClB,KAAK,eAAe;AAAA,4BACpB,KAAK,cAAc;AAAA,qBAC1B,KAAK,iBAAiByJ,GAAU,IAAI,CAAC;AAAA;AAAA;AAAA,4BAG9B,KAAK,mBAAmB;AAAA,2BACzB,KAAK,kBAAkB;AAAA,qBAC7B,KAAK,qBACRA,GAAU,QAAQ,CAAC;AAAA;AAAA;AAAA,sBAIlB;AAAA,UACR,KAAK,gBAUJK,IATA9J;AAAAA;AAAAA;AAAAA,2BAGe,KAAK,mBACd,KAAK,mBACLyJ,GAAU,OAAO,CAAC;AAAA,uBACb,MAAM,KAAK,YAAY,cAAc,CAAC;AAAA;AAAA,kCAG1C;AAAA;AAAA;AAAA,EAGjB;AACF;AAhMmBrJ,GAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GADI2f,GACF,WAAA,QAAA;AAC2BjqB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAFvBgqB,GAEyB,WAAA,MAAA;AAE5CjqB,GAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAHtBgqB,GAInB,WAAA,YAAA;AAKAjqB,GAAA;AAAA,EAJCC,EAAS;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EAAA,CACV;AAAA,GARkBgqB,GASnB,WAAA,qBAAA;AAC4CjqB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAVvBgqB,GAUyB,WAAA,eAAA;AAChCjqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAXSgqB,GAWP,WAAA,QAAA;AACAjqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAZSgqB,GAYP,WAAA,aAAA;AACAjqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAbSgqB,GAaP,WAAA,eAAA;AACAjqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAdSgqB,GAcP,WAAA,mBAAA;AACAjqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAfSgqB,GAeP,WAAA,kBAAA;AACAjqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAhBSgqB,GAgBP,WAAA,iBAAA;AACAjqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GAjBSgqB,GAiBP,WAAA,qBAAA;AACiBjqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAlBRgqB,GAkBU,WAAA,gBAAA;AACAjqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAnBRgqB,GAmBU,WAAA,UAAA;AACAjqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GApBRgqB,GAoBU,WAAA,UAAA;;;;;;ACOV,IAAAC,KAArB,cAAwCD,GAAiB;AAAA,EACvD,SAAS;AACP,WAAO,KAAK;EACd;AACF;AAJqBC,KAArBlqB,GAAA;AAAA,EADCE,EAAc,cAAc;AAAA,GACRgqB,EAAA;;;;;;ACQA,IAAAC,KAArB,cAA8CP,EAAiB;AAAA,EAC7D,cAAc;AACN,aACN,KAAK,OAAO;AAAA,EACd;AAAA,EAEQ,aAAa;AACjB,SAAK,WAAgC,UACvC,KAAK,SAAS;AAAA,EAChB;AAAA,EAEQ,aAAa;AACjB,SAAK,WAAgC,YACvC,KAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAAS;AACP,WAAO,KAAK;AAAA,MACVhqB;AAAAA;AAAAA,gBAEU9D,EAAK,mCAAmC,CAAC;AAAA,UAC7C,KAAK,YAAY,KAAK,WAyBtB,KAxBA8D;AAAAA;AAAAA;AAAAA;AAAAA,gBAII,KAAK,UACHA,iDACA8J,CAAO;AAAA;AAAA;AAAA,uBAGFG,EAAU,KAAK,IAA6B,CAAC;AAAA,yBAC3C,KAAK,UAAU;AAAA,6BACXR,GAAU,UAAU,CAAC;AAAA,4BACtB,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,uBAKlBQ,EAAU,KAAK,IAA6B,CAAC;AAAA,yBAC3C,KAAK,UAAU;AAAA,6BACXR,GAAU,UAAU,CAAC;AAAA,4BACtB,KAAK,QAAQ;AAAA;AAAA;AAAA,4BAI3B;AAAA;AAAA,IAAA;AAAA,EAGZ;AACF;AAlDqB8gB,KAArBnqB,GAAA;AAAA,EADCE,EAAc,qBAAqB;AAAA,GACfiqB,EAAA;;;;;;;ACpBrB,IAAqBC,KAArB,cAA6C/I,GAAWhiB,CAAU,EAAE;AAAA,EAApE,cAAA;AAAA,UAAA,GAAA,SAAA,GAYW,KAAQ,aAAa,IACrB,KAAQ,aAAa;AAAA,EAAA;AAAA,EAIpB,aACR6H,GACM;AACN,UAAM,aAAaA,CAAkB,GAErC,KAAK,aAAa,CAAC,CAAC,KAAK,YAAY,QACrC,KAAK,aAAa,CAAC,CAAC,KAAK,aAAa,QAEjC,KAAA,iBAAiB,SAAS,KAAK,WAAW,GAC1C,KAAA,aAAa,QAAQ,QAAQ;AAAA,EACpC;AAAA,EAEU,QACRA,GACM;AACN,UAAM,QAAQA,CAAkB,GAE5BA,EAAmB,IAAI,UAAU,MACnC,KAAK,aAAa,YAAY,KAAK,WAAW,OAAO,GAAG,GACxD,KAAK,aAAa,iBAAiB,KAAK,WAAW,SAAS,OAAO,IAGjEA,EAAmB,IAAI,UAAU,KACnC,KAAK,aAAa,iBAAiB,KAAK,WAAW,SAAS,OAAO;AAAA,EAEvE;AAAA,EAEA,YAAYxH,GAAyB;AACnC,IAAI,KAAK,aACPA,EAAM,eAAe,GACrBA,EAAM,gBAAgB;AAAA,EAE1B;AAAA,EAEA,IAAW,aAAqB;AAC9B,WAAO,KAAK,SAAS,KAAK,aAAa,KAAU,KAAA;AAAA,EACnD;AAAA,EAEA,SAAS;AACA,WAAAE;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,eAAe;AAAA,MAC1B,yBAAyB,KAAK;AAAA,MAC9B,yBAAyB,KAAK;AAAA,MAC9B,mBAAmB,KAAK,SAAS;AAAA,MACjC,mBAAmB,KAAK,SAAS;AAAA,MACjC,wBAAwB,KAAK;AAAA,IAAA,CAC9B,CAAC;AAAA;AAAA,YAEE,KAAK,aACH8D,eAAkB,eAAe;AAAA,kBAC7B,KAAK,WACHA;AAAAA,6DAEA8J,CAAO;AAAA,wBAEbA,CAAO;AAAA;AAAA;AAAA,oBAGD5N,EAAK,uBAAuB;AAAA,MAClC,gCAAgC,CAAC,CAAC,KAAK;AAAA,IAAA,CACxC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQMA,EAAK,uBAAuB;AAAA,MAClC,gCAAgC,CAAC,CAAC,KAAK;AAAA,IAAA,CACxC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMZ;AACF;AAhGqBsuB,GAeZ,SAAStqB,EAAUC,EAAM;AAdYC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GADvBmqB,GACyB,WAAA,YAAA,CAAA;AACfpqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAFRmqB,GAEU,WAAA,cAAA,CAAA;AACApqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAHRmqB,GAGU,WAAA,SAAA,CAAA;AACepqB,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBmqB,GAIyB,WAAA,YAAA,CAAA;AACfpqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GALRmqB,GAKU,WAAA,WAAA,CAAA;AACjBpqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GANSmqB,GAMP,WAAA,SAAA,CAAA;AAEJpqB,GAAA;AAAA,EADPM,GAAsB,EAAE,MAAM,UAAU;AAAA,GAPtB8pB,GAQX,WAAA,eAAA,CAAA;AAEApqB,GAAA;AAAA,EADPM,GAAsB,EAAE,MAAM,UAAU;AAAA,GATtB8pB,GAUX,WAAA,gBAAA,CAAA;AAESpqB,GAAA;AAAA,EAAhBohB,EAAM;AAAA,GAZYgJ,GAYF,WAAA,cAAA,CAAA;AACApqB,GAAA;AAAA,EAAhBohB,EAAM;AAAA,GAbYgJ,GAaF,WAAA,cAAA,CAAA;AAbEA,KAArBpqB,GAAA;AAAA,EADCE,EAAc,oBAAoB;AAAA,GACdkqB,EAAA;;;;;;;ACArB,IAAqBC,KAArB,cAA6ChJ,GAAWhiB,CAAU,EAAE;AAAA,EAApE,cAAA;AAAA,UAAA,GAAA,SAAA,GAC2B,KAAA,aAAA,IAEc,KAAA,UAAA,IACD,KAAA,SAAA,IAEpC,KAAA,aAAA,QAC6C,KAAA,mBAAA,QACL,KAAA,aAAA,IAK5B,KAAA,cAAA,IASd,KAAQ,YAA+B,IAGvC,KAAQ,mBAAsC,IA0V9C,KAAA,oBAAoB,CAACK,MAAsB;AACzC,WAAK,UAAU;AACf,YAAMiV,IAASjV,EAAM;AAEjB,MAAAiV,KAAU,CAACA,EAAO,YACpB,KAAK,iBAAiBA,CAAM,GAC5B,KAAK,kBAAkBA,CAAM,GAC7B,KAAK,iBAAiBA,CAAM,GAEvB,KAAA,eAAe,KAAK,MAAM;AAC7B,aAAK,gBAAgB,KAAK;AAAA,UACxB,KAAK;AAAA,UACL,KAAK;AAAA,QAAA,GAGP,KAAK,KAAK,qBAAqB;AAAA,UAC7B,GAAG,KAAK,gBAAgB,KAAK,aAAa;AAAA,QAAA,CAC3C;AAAA,MAAA,CACF,MAEDjV,EAAM,eAAe,GACrBA,EAAM,gBAAgB;AAAA,IACxB,GAGF,KAAA,kBAAkB,CAAC4qB,OACb,OAAO,KAAK,gBAAiB,YACxB,OAAA,aAAa,KAAK,YAAY,GAGlC,KAAA,eAAe,OAAO,WAAW,MAAM;AAC1C,WAAK,cAAc;AAAA,OAClB,GAAG,GAEN,KAAK,eAAeA,GACb,KAAK,cAGd,KAAA,mBAAmB,CAACA,MAAiB;AAC7B,YAAAC,IAAc,KAAK,gBAAgBD,CAAI;AAElC,iBAAA3V,KAAU,KAAK;AAGxB,YAFcA,EAAO,WAAW,YAAY,EAElC,WAAW4V,EAAY,YAAa,CAAA,GAAG;AAC/C,eAAK,gBAAgB,KAAK;AAAA,YACxB,KAAK;AAAA,YACL5V,EAAO;AAAA,UAAA,GAET,KAAK,iBAAiBA,CAAM;AAC5B;AAAA,QACF;AAAA,IACF;AAAA,EACF;AAAA,EA7YA,IAAI,iBAAiB;AACnB,WAAO,KAAK,eAAe,kBAAkB,KAAK,eAAe;AAAA,EACnE;AAAA,EAIU,aACRzN,GACM;AACN,UAAM,aAAaA,CAAkB,GAEhC,KAAA,aAAa,QAAQ,SAAS;AAAA,EACrC;AAAA,EAEA,gBAAgB;AACd,UAAMsjB,IAAW,KAAK,YAAY,cAAc,MAAM,GAEhDC,IADkBD,GAAU,iBAAiB,EAAE,CAAC,GAEnC,aAAa,UAExBA,GAAU,iBAAmB,EAAA,CAAC,GAC9B,iBACF,IAAAA,GAAU,iBAAiB;AAEjC,WAAKC,IAGI,CAAC,GAAIA,CAAkC,IAFvC,CAAC,GAAG,KAAK,iBAAkC,oBAAoB,CAAC;AAAA,EAI3E;AAAA,EAEQ,wBAA2C;AACjD,UAAMC,IACJ,KAAK,YAAY,iBAAkC,oBAAoB;AACzE,WAAOA,IAAK,CAAC,GAAGA,CAAE,IAAI,CAAA;AAAA,EACxB;AAAA,EAEA,kBAAkB;AACZ,WAAC,KAAK,gBAIW,KAAK,sBAAA,EAAwB;AAAA,MAChD,CAAMzgB,MAAAA,EAAG,UAAU,KAAK,cAAc;AAAA,IAAA,IAJ/B;AAAA,EAQX;AAAA,EAEU,QACR/C,GACM;AAIJ,QAHF,MAAM,QAAQA,CAAkB,GAG9BA,EAAmB,IAAI,OAAO,KAC9B,CAACA,EAAmB,IAAI,eAAe,KACvC,KAAK,qBAAqB,QAC1B;AACM,YAAAyN,IAAS,KAAK,iBAAiB;AAAA,QACnC,CAAAA,MAAUA,EAAO,UAAU,KAAK;AAAA,MAAA;AAGlC,MAAIA,MACF,KAAK,aAAaA,GAAQzN,EAAmB,IAAI,OAAO,CAAC,GAEzD,KAAK,gBAAgB,KAAK;AAAA,QACxB,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,GAGP,KAAK,KAAK,qBAAqB;AAAA,QAC7B,GAAG,KAAK,gBAAgB,KAAK,aAAa;AAAA,MAAA,CAC3C;AAAA,IAEL;AAEA,KACEA,EAAmB,IAAI,SAAS,KAChCA,EAAmB,IAAI,WAAW,OAE7B,KAAA,mBAAmB,KAAK,WAAW,KAAK;AAAA,EAEjD;AAAA,EAEU,aACRA,GACS;AACL,WAAAA,EAAmB,IAAI,YAAY,MAEnC,KAAK,cACL,KAAK,eAAe,UACpB,KAAK,eAAe,YAEpB,KAAK,uBAAuB,GAC5B,KAAK,gBAAgB,GACrB,KAAK,iBAAiB,KAAK,iBAAiB,CAAC,GAAG,EAAK,KAC5C,KAAK,cAAc,KAAK,eAAe,WAC5C,KAAK,kBAAkB,MAAM,KAAK,iBAAiB,SAAS,MAC9D,KAAK,gBAAgB,GACrB,KAAK,iBAAiB,KAAK,iBAAiB,CAAC,GAAG,EAAK,KAE9C,KAAK,cAAc,KAAK,eAAe,UAChD,KAAK,uBAAuB,GAC5B,KAAK,gBAAgB,IAChB,KAAA,iBAAiB,MAAM,EAAK,GACjC,KAAK,kBAAkB,MAElB,KAAA,mBAAmB,KAAK,WAAW,KAAK,WAC7C,KAAK,gBAAgB,IAChB,KAAA,iBAAiB,MAAM,EAAK,KAG9B,MAAM,aAAaA,CAAkB;AAAA,EAC9C;AAAA,EAEO,yBAA+B;AAC9B,UAAAyjB,IAAiB,KAAK,WAAW,YAAY;AACnD,SAAK,oBAAoB,KAAK,WAAW,KAAK,WAAW,OAAO,CAAQzgB,MAAA;AAClE,UAAA,CAACA,EAAK;AAED,eADmBA,EAAK,WAAW,YAAY,EAC7B,WAAWygB,CAAc;AAAA,IACpD,CACD;AAAA,EACH;AAAA,EAEA,yBAAyBprB,GAAcwL,GAAeC,GAAe;AAEnE,YADM,MAAA,yBAAyBzL,GAAMwL,GAAUC,CAAQ,GAC/CzL,GAAM;AAAA,MACZ,KAAK;AACH,YAAIwL,MAAaC,KAAY,KAAK,qBAAqB,QAAQ;AAC7D,cAAIA,GAAU;AACN,kBAAA2J,IAAS,KAAK,iBAAiB;AAAA,cACnC,CAAA1K,MAAMA,EAAG,UAAUe;AAAA,YAAA;AAGrB,iBAAK,kBAAkB2J,CAAM,GAC7B,KAAK,iBAAiBA,CAAM,GAE5B,KAAK,KAAK,qBAAqB;AAAA,cAC7B,GAAG,KAAK,gBAAgB,KAAK,aAAa;AAAA,YAAA,CAC3C;AAAA,UAAA;AAED,iBAAK,kBAAkB,GACvB,KAAK,iBAAiB;AAExB;AAAA,QACF;AAAA,IACJ;AAAA,EACF;AAAA,EAEO,6BAAmC;AAClC,UAAAiW,IAAW,KAAK;AACtB,SAAK,YAAYA;AAAA,EACnB;AAAA,EAEA,cAAclrB,GAA4B;AACxCA,IAAAA,EAAM,eAAe,GAErB,KAAK,eAAeA,EAAM,KAAKA,EAAM,IAAI;AAAA,EAC3C;AAAA,EAEQ,uBAA6B;AAC7B,UAAAmrB,IAAe,KAAK,sBAAA,EAAwB;AAAA,MAChD,CAAM5gB,MAAAA,EAAG,UAAU,KAAK,cAAc;AAAA,IAAA;AAGxC,IAAI4gB,KACFA,EAAa,eAAe,EAAE,OAAO,UAAW,CAAA;AAAA,EAEpD;AAAA,EAEQ,eAAeloB,GAAamoB,GAAkB;AACpD,QAAI,KAAK,SAAS;AAChB,UAAInoB,MAAQ;AACV,aAAK,gBAAgB,KAAK;AAAA,UACxB,KAAK;AAAA,UACL,KAAK;AAAA,UACL;AAAA,QAAA;AAAA,eAEOA,MAAQ,WAAW;AAC5B,cAAMooB,IAAU,KAAK;AAAA,UACnB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK,kBAAkB,KAAK,IAAI;AAAA,QAAA;AAElC,aAAK,gBACHA,MAAY,KAAK,iBAAiB,SAAS,KAAKA;AAAA,MAAA,WACzCpoB,MAAQ;AACjB,aAAK,gBAAgB,KAAK,iBAAiB,CAAC,GAAG,WAC3C,KAAK,mBAAmB,KAAK,kBAAkB,IAAI,CAAC,IACpD;AAAA,eACKA,MAAQ,OAAO;AACxB,cAAMooB,IAAU,KAAK;AAAA,UACnB,KAAK;AAAA,UACL,KAAK,iBAAiB;AAAA,UACtB;AAAA,QAAA;AAEF,aAAK,gBACHA,MAAY,KAAK,iBAAiB,SAAS,KAAKA;AAAA,MAAA;AACpD,QAAWpoB,MAAQ,WACZ,KAAA,KAAK,cAAc,KAAK,IACpBA,MAAQ,YACjB,KAAK,kBAAkB,KAAK,iBAAiB,KAAK,aAAa,CAAC,GAChE,KAAK,iBAAiB,KAAK,iBAAiB,KAAK,aAAa,CAAC,GAC/D,KAAK,KAAK,qBAAqB;AAAA,UAC7B,GAAG,KAAK,gBAAgB,KAAK,aAAa;AAAA,QAAA,CAC3C;AAUC,UANF,KAAK,eAAe,eACnBA,GAAK,WAAW,KAAKA,MAAQ,gBAE9B,KAAK,iBAAiBA,CAAG,GAGvB,KAAK,iBAAiB,GAAG;AAC3B,cAAMgS,IAAS,KAAK,iBAAiB,KAAK,aAAa;AACvD,aAAK,iBAAiBA,CAAM,GAC5B,KAAK,KAAK,eAAe;AAAA,UACvB,MAAMmW;AAAA,UACN,KAAAnoB;AAAA,UACA,GAAG,KAAK,gBAAgBgS,CAAM;AAAA,QAAA,CAC/B;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,gBAAgBA,GAA0B;AAChD,QAAI,CAACA;AACI;AAGT,QAAI4D,IAAM5D;AAEN,WAAAA,EAAO,YAAY,yBACf4D,IAAA5D,EAAO,QAAQ,oBAAoB,IAGpC;AAAA,MACL,KAAA4D;AAAA,MACA,OAAOA,GAAK;AAAA,MACZ,MAAMA,GAAK;AAAA,MACX,OAAO,KAAK;AAAA,IAAA;AAAA,EAEhB;AAAA,EAEQ,mBACNyS,GACApb,GACA2Z,GACA;AACA,QAAI3E,IAAoBhV,GACpBqb;AAED;AAGD,UAFarG,KAAA2E,GACb0B,IAAaD,EAAWpG,CAAS,GAC7BqG,MAAe;AACjB;AAAA,WAEKA,GAAY;AAErB,WAAOA,IAAarG,IAAYhV;AAAA,EAClC;AAAA,EAEQ,iBACNob,GACAxrB,GACQ;AACR,WAAOwrB,EAAW,UAAU,CAAUrW,MAAAA,EAAO,UAAUnV,CAAK;AAAA,EAC9D;AAAA,EAEQ,uBAAuB;AACxB,SAAA,iBAAiB,QAAQ,CAAMyK,MAAA;AAClC,MAAAA,EAAG,UAAU,IACbA,EAAG,WAAW;AAAA,IAAA,CACf;AAAA,EACH;AAAA;AAAA,EAGQ,iBAAiB0K,GAAiC4O,IAAW,IAAM;AACzE,SAAK,qBAAqB,GAEtB5O,MACF,KAAK,gBAAgBA,GACrBA,EAAO,UAAU,IACjBA,EAAO,WAAW,GAElB,KAAK,KAAK,sBAAsB;AAAA,MAC9B,GAAG,KAAK,gBAAgBA,CAAM;AAAA,IAAA,CAC/B,GAEG4O,IACF,KAAK,iBAAiB5O,CAAM,IAE5B,KAAK,qBAAqB;AAAA,EAGhC;AAAA,EAEQ,iBAAiBA,GAAyB;AAC1C,UAAAuW,IAAe,KAAK,sBAAA,EAAwB;AAAA,MAChD,CAAAjhB,MAAMA,EAAG,UAAU0K,EAAO;AAAA,IAAA;AAG5B,IAAIuW,KACFA,EAAa,MAAM;AAAA,EAEvB;AAAA,EAEQ,kBAAkBvW,GAAsC;AAC9D,SAAK,iBAAiB,QAAQ,CAAO1K,MAAAA,EAAG,WAAW,EAAM,GAErD0K,MACF,KAAK,gBAAgBA,GACrBA,EAAO,WAAW;AAAA,EAEtB;AAAA,EAEQ,iBAAiBA,GAAsCnV,GAAa;AACpE,UAAAuL,IAAWvL,KAAS,KAAK;AAE/B,IAAImV,KACEA,EAAO,UAAU5J,MACnB,KAAK,QAAQ4J,EAAO;AAAA,EAG1B;AAAA,EAEQ,aAAaA,GAAyBnV,GAAa;AACrD,IAAAmV,KAAU,CAACA,EAAO,aACpB,KAAK,gBAAgB,KAAK;AAAA,MACxB,KAAK;AAAA,MACLA,EAAO;AAAA,IAAA,GAGT,KAAK,kBAAkBA,CAAM,GAC7B,KAAK,iBAAiBA,CAAM,GACvB,KAAA,iBAAiBA,GAAQnV,CAAK;AAAA,EAEvC;AAAA,EAyDO,aAAamD,GAAoB;AAItC,QAHA,KAAK,UAAU,IACf,KAAK,MAAM,GAEP,CAACA,GAAK;AACR,UAAI,CAAC,KAAK,SAAS,KAAK,gBAAgB;AACtC,aAAK,gBAAgB;AAAA,WAChB;AACC,cAAAb,IAAQ,KAAK,QACf,KAAK,iBAAiB,KAAK,kBAAkB,KAAK,KAAK,IACvD,KAAK;AAET,QAAIA,MAAU,MAAM,CAAC,KAAK,mBACxB,KAAK,gBAAgBA,GAErB,KAAK,iBAAiB,KAAK,iBAAiB,KAAK,aAAa,CAAC,GAC/D,KAAK,kBAAkB,KAAK,iBAAiB,KAAK,aAAa,CAAC,GAC5D,KAAK,SACP,KAAK,iBAAiB,KAAK,iBAAiB,KAAK,aAAa,CAAC;AAAA,MAGrE;AAEI,MAAC,KAAK,kBACR,KAAK,iBAAiB,KAAK,iBAAiB,CAAC,CAAC,GAC9C,KAAK,kBAAkB,KAAK,iBAAiB,CAAC,CAAC;AAAA,IAEnD;AAEA,IAAIa,MAAQ,KAAK,kBAAkB,KAAK,eAAe,YACrD,KAAK,eAAeA,CAAG,GACvB,KAAK,iBAAiB,KAAK,iBAAiB,KAAK,aAAa,GAAG,EAAK,GACtE,KAAK,kBAAkB,KAAK,iBAAiB,KAAK,aAAa,CAAC,IAG9DA,KAAO,KAAK,eAAe,cAC7B,KAAK,iBAAiBA,CAAG;AAAA,EAE7B;AAAA,EAEO,cAAoB;AACzB,SAAK,UAAU,IACf,KAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEQ,mBAAmB;AACnB,UAAAqoB,IAAa,KAAK;AAGxB,QAFA,KAAK,2BAA2B,GAG9B,KAAK,SACLA,EAAW,SAAS,KACpB,KAAK,qBAAqB,QAC1B;AACA,YAAMrW,IAASqW,EAAW,KAAK,OAAM/gB,EAAG,UAAU,KAAK,KAAK;AAC5D,WAAK,kBAAkB0K,CAAM,GAC7B,KAAK,iBAAiBA,CAAM,GAExB,KAAK,kBACP,KAAK,gBAAgB,KAAK,iBAAiBqW,GAAY,KAAK,KAAK,GACjE,KAAK,KAAK,qBAAqB;AAAA,QAC7B,GAAG,KAAK,gBAAgB,KAAK,aAAa;AAAA,MAAA,CAC3C;AAAA,IACH,WACS,KAAK,SAASA,EAAW,SAAS,KAAK,CAAC,KAAK,QAAQ;AAC9D,YAAMG,IAAcH,EAAW,KAAK,CAAUrW,MAAA,CAACA,EAAO,QAAQ;AAC9D,WAAK,gBAAgB,GAChB,KAAA,iBAAiBwW,GAAa,EAAK,GAExC,KAAK,KAAK,sBAAsB;AAAA,QAC9B,GAAG,KAAK,gBAAgBA,CAAW;AAAA,MAAA,CACpC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,SAAS;AACA,WAAAvrB;AAAAA;AAAAA,cAEG9D,EAAK,eAAe;AAAA,MAC1B,mBAAmB,KAAK,SAAS;AAAA,MACjC,mBAAmB,KAAK,SAAS;AAAA,IAAA,CAClC,CAAC;AAAA,iBACS,KAAK,aAAa;AAAA,eACpB,KAAK,YAAY;AAAA,QACxB,KAAK,iBAAiB;AAAA,MACtB,CAAC6Y,GAAQ7S,MAAUlC;AAAAA;AAAAA,mBAER,KAAK,IAAI;AAAA,wBACJ+U,EAAO,QAAQ;AAAA,wBACf,KAAK,UAAUA,EAAO,KAAK;AAAA,uBAC5B7S,MAAU,KAAK,aAAa;AAAA,oBAC/B+H,EAAU8K,EAAO,KAAK,CAAC;AAAA;AAAA,oBAEvBA,EAAO,KAAK;AAAA,uBACTA,EAAO,QAAQ;AAAA,iBACrBA,EAAO,MAAM,iBAAiBA,EAAO,KAAK,EAAE;AAAA,0BACnC,KAAK,UAAU;AAAA,qBACpB,KAAK,iBAAiB;AAAA,cAC7B9U,EAAa8U,EAAO,SAAS,CAAC;AAAA;AAAA;AAAA,IAAA,CAGrC;AAAA,iCAC0B,KAAK,gBAAgB;AAAA;AAAA,EAEpD;AACF;AAnhBqB0V,GA+BZ,SAASvqB,EAAUC,EAAM;AA9BpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSoqB,GACP,WAAA,cAAA,CAAA;AAC+BrqB,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBoqB,GAEwB,WAAA,SAAA,CAAA;AACdrqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAHRoqB,GAGU,WAAA,WAAA,CAAA;AACArqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJRoqB,GAIU,WAAA,UAAA,CAAA;AACjBrqB,GAAA;AAAA,EAAXC,EAAS;AAAA,GALSoqB,GAKP,WAAA,cAAA,CAAA;AAEgBrqB,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAPPoqB,GAOS,WAAA,oBAAA,CAAA;AACCrqB,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GARRoqB,GAQU,WAAA,cAAA,CAAA;AAEtBrqB,GAAA;AAAA,EADNC,EAAS,EAAE,MAAM,OAAO;AAAA,GATNoqB,GAUZ,WAAA,WAAA,CAAA;AAMCrqB,GAAA;AAAA,EADPohB,EAAM;AAAA,GAfYiJ,GAgBX,WAAA,iBAAA,CAAA;AAGDrqB,GAAA;AAAA,EADNohB,EAAM;AAAA,GAlBYiJ,GAmBZ,WAAA,iBAAA,CAAA;AAGCrqB,GAAA;AAAA,EADPohB,EAAM;AAAA,GArBYiJ,GAsBX,WAAA,aAAA,CAAA;AAGArqB,GAAA;AAAA,EADPohB,EAAM;AAAA,GAxBYiJ,GAyBX,WAAA,oBAAA,CAAA;AAzBWA,KAArBrqB,GAAA;AAAA,EADCE,EAAc,oBAAoB;AAAA,GACdmqB,EAAA;;;;;;;ACdA,IAAAe,KAArB,cAA0C/rB,EAAW;AAAA,EAKnD,SAAS;AACA,WAAAO;AAAAA,EACT;AACF;AARqBwrB,GAGZ,SAAStrB,EAAUC,EAAM;AAFYC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GADvBmrB,GACyB,WAAA,QAAA,CAAA;AADzBA,KAArBprB,GAAA;AAAA,EADCE,EAAc,gBAAgB;AAAA,GACVkrB,EAAA;;;;;;;AC6BA,IAAAC,KAArB,cAAgDzB,EAAiB;AAAA,EAO/D,cAAc;AACN,aAP6B,KAAA,mBAAA,IAQnC,KAAK,OAAO;AAAA,EACd;AAAA,EAEQ,oBAAoB;AACrB,SAAA,mBAAmB,CAAC,KAAK,kBACzB,KAAA,OAAO,KAAK,mBAAmB,SAAS;AAAA,EAC/C;AAAA,EAEA,SAAS;AACP,WAAO,KAAK;AAAA,MACVhqB;AAAAA;AAAAA,gBAEU9D,EAAK,uCAAuC;AAAA,QAClD,2BAA2B,KAAK;AAAA,MAAA,CACjC,CAAC;AAAA;AAAA,YAEE,KAAK,UACH8D,iDACA8J,CAAO;AAAA;AAAA,mBAEFG,EAAU,KAAK,IAAI,CAAuB;AAAA;AAAA,yBAEpC,KAAK,mBACdR,GAAU,MAAM,IAChBA,GAAU,MAAM,CAAC;AAAA,2BACN,KAAK,qBAAqB,KAAO,SAAS,OAAO;AAAA,wBACpD,KAAK,QAAQ;AAAA,qBAChB,KAAK,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,EASzC;AACF;AA9CqBgiB,GAGZ,SAAS3C;AAAAA,MACZ5oB,EAAU8pB,EAAiB,MAAM,CAAC;AAAA,MAClC9pB,EAAU+G,EAAK,CAAC;AAAA;AAJX7G,GAAA;AAAA,EAARohB,EAAM;AAAA,GADYiK,GACV,WAAA,oBAAA,CAAA;AADUA,KAArBrrB,GAAA;AAAA,EADCE,EAAc,uBAAuB;AAAA,GACjBmrB,EAAA;ACtCrB,MAAMC,KAAM,KAAK,KACXC,KAAM,KAAK,KACXC,KAAQ,KAAK,OACbC,KAAQ,KAAK,OACbC,KAAe,CAAA7uB,OAAM;AAAA,EACzB,GAAGA;AAAA,EACH,GAAGA;AACL,IACM8uB,KAAkB;AAAA,EACtB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AACP,GACMC,KAAuB;AAAA,EAC3B,OAAO;AAAA,EACP,KAAK;AACP;AACA,SAASC,GAAMtF,GAAO/mB,GAAOgnB,GAAK;AAChC,SAAO+E,GAAIhF,GAAO+E,GAAI9rB,GAAOgnB,CAAG,CAAC;AACnC;AACA,SAASsF,GAAStsB,GAAO+iB,GAAO;AAC9B,SAAO,OAAO/iB,KAAU,aAAaA,EAAM+iB,CAAK,IAAI/iB;AACtD;AACA,SAASusB,GAAQC,GAAW;AAC1B,SAAOA,EAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AACA,SAASC,GAAaD,GAAW;AAC/B,SAAOA,EAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AACA,SAASE,GAAgBC,GAAM;AAC7B,SAAOA,MAAS,MAAM,MAAM;AAC9B;AACA,SAASC,GAAcD,GAAM;AAC3B,SAAOA,MAAS,MAAM,WAAW;AACnC;AACA,SAASE,GAAYL,GAAW;AAC9B,SAAO,CAAC,OAAO,QAAQ,EAAE,SAASD,GAAQC,CAAS,CAAC,IAAI,MAAM;AAChE;AACA,SAASM,GAAiBN,GAAW;AACnC,SAAOE,GAAgBG,GAAYL,CAAS,CAAC;AAC/C;AACA,SAASO,GAAkBP,GAAWQ,GAAOC,GAAK;AAChD,EAAIA,MAAQ,WACVA,IAAM;AAER,QAAMC,IAAYT,GAAaD,CAAS,GAClCW,IAAgBL,GAAiBN,CAAS,GAC1CjqB,IAASqqB,GAAcO,CAAa;AAC1C,MAAIC,IAAoBD,MAAkB,MAAMD,OAAeD,IAAM,QAAQ,WAAW,UAAU,SAASC,MAAc,UAAU,WAAW;AAC9I,SAAIF,EAAM,UAAUzqB,CAAM,IAAIyqB,EAAM,SAASzqB,CAAM,MACjD6qB,IAAoBC,GAAqBD,CAAiB,IAErD,CAACA,GAAmBC,GAAqBD,CAAiB,CAAC;AACpE;AACA,SAASE,GAAsBd,GAAW;AACxC,QAAMe,IAAoBF,GAAqBb,CAAS;AACxD,SAAO,CAACgB,GAA8BhB,CAAS,GAAGe,GAAmBC,GAA8BD,CAAiB,CAAC;AACvH;AACA,SAASC,GAA8BhB,GAAW;AAChD,SAAOA,EAAU,QAAQ,cAAc,CAAAU,MAAad,GAAqBc,CAAS,CAAC;AACrF;AACA,SAASO,GAAYC,GAAMC,GAASV,GAAK;AACvC,QAAMW,IAAK,CAAC,QAAQ,OAAO,GACrBC,IAAK,CAAC,SAAS,MAAM,GACrBC,IAAK,CAAC,OAAO,QAAQ,GACrB5lB,IAAK,CAAC,UAAU,KAAK;AAC3B,UAAQwlB,GAAI;AAAA,IACV,KAAK;AAAA,IACL,KAAK;AACH,aAAIT,IAAYU,IAAUE,IAAKD,IACxBD,IAAUC,IAAKC;AAAA,IACxB,KAAK;AAAA,IACL,KAAK;AACH,aAAOF,IAAUG,IAAK5lB;AAAA,IACxB;AACE,aAAO;EACV;AACH;AACA,SAAS6lB,GAA0BvB,GAAWwB,GAAeC,GAAWhB,GAAK;AAC3E,QAAMC,IAAYT,GAAaD,CAAS;AACxC,MAAI0B,IAAOT,GAAYlB,GAAQC,CAAS,GAAGyB,MAAc,SAAShB,CAAG;AACrE,SAAIC,MACFgB,IAAOA,EAAK,IAAI,CAAAR,MAAQA,IAAO,MAAMR,CAAS,GAC1Cc,MACFE,IAAOA,EAAK,OAAOA,EAAK,IAAIV,EAA6B,CAAC,KAGvDU;AACT;AACA,SAASb,GAAqBb,GAAW;AACvC,SAAOA,EAAU,QAAQ,0BAA0B,CAAAkB,MAAQvB,GAAgBuB,CAAI,CAAC;AAClF;AACA,SAASS,GAAoBC,GAAS;AACpC,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,GAAGA;AAAA,EACP;AACA;AACA,SAASC,GAAiBD,GAAS;AACjC,SAAO,OAAOA,KAAY,WAAWD,GAAoBC,CAAO,IAAI;AAAA,IAClE,KAAKA;AAAA,IACL,OAAOA;AAAA,IACP,QAAQA;AAAA,IACR,MAAMA;AAAA,EACV;AACA;AACA,SAASE,GAAiBC,GAAM;AAC9B,QAAM;AAAA,IACJ,GAAA1wB;AAAA,IACA,GAAAV;AAAA,IACA,OAAAqxB;AAAA,IACA,QAAAC;AAAA,EACD,IAAGF;AACJ,SAAO;AAAA,IACL,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,KAAKtxB;AAAA,IACL,MAAMU;AAAA,IACN,OAAOA,IAAI2wB;AAAA,IACX,QAAQrxB,IAAIsxB;AAAA,IACZ,GAAA5wB;AAAA,IACA,GAAAV;AAAA,EACJ;AACA;ACpIA,SAASuxB,GAA2BzhB,GAAMuf,GAAWS,GAAK;AACxD,MAAI;AAAA,IACF,WAAA0B;AAAA,IACA,UAAAC;AAAA,EACD,IAAG3hB;AACJ,QAAM4hB,IAAWhC,GAAYL,CAAS,GAChCW,IAAgBL,GAAiBN,CAAS,GAC1CsC,IAAclC,GAAcO,CAAa,GACzCO,IAAOnB,GAAQC,CAAS,GACxBuC,IAAaF,MAAa,KAC1BG,IAAUL,EAAU,IAAIA,EAAU,QAAQ,IAAIC,EAAS,QAAQ,GAC/DK,IAAUN,EAAU,IAAIA,EAAU,SAAS,IAAIC,EAAS,SAAS,GACjEM,IAAcP,EAAUG,CAAW,IAAI,IAAIF,EAASE,CAAW,IAAI;AACzE,MAAIK;AACJ,UAAQzB,GAAI;AAAA,IACV,KAAK;AACH,MAAAyB,IAAS;AAAA,QACP,GAAGH;AAAA,QACH,GAAGL,EAAU,IAAIC,EAAS;AAAA,MAClC;AACM;AAAA,IACF,KAAK;AACH,MAAAO,IAAS;AAAA,QACP,GAAGH;AAAA,QACH,GAAGL,EAAU,IAAIA,EAAU;AAAA,MACnC;AACM;AAAA,IACF,KAAK;AACH,MAAAQ,IAAS;AAAA,QACP,GAAGR,EAAU,IAAIA,EAAU;AAAA,QAC3B,GAAGM;AAAA,MACX;AACM;AAAA,IACF,KAAK;AACH,MAAAE,IAAS;AAAA,QACP,GAAGR,EAAU,IAAIC,EAAS;AAAA,QAC1B,GAAGK;AAAA,MACX;AACM;AAAA,IACF;AACE,MAAAE,IAAS;AAAA,QACP,GAAGR,EAAU;AAAA,QACb,GAAGA,EAAU;AAAA,MACrB;AAAA,EACG;AACD,UAAQlC,GAAaD,CAAS,GAAC;AAAA,IAC7B,KAAK;AACH,MAAA2C,EAAOhC,CAAa,KAAK+B,KAAejC,KAAO8B,IAAa,KAAK;AACjE;AAAA,IACF,KAAK;AACH,MAAAI,EAAOhC,CAAa,KAAK+B,KAAejC,KAAO8B,IAAa,KAAK;AACjE;AAAA,EACH;AACD,SAAOI;AACT;AASA,MAAMC,KAAkB,OAAOT,GAAWC,GAAUxM,MAAW;AAC7D,QAAM;AAAA,IACJ,WAAAoK,IAAY;AAAA,IACZ,UAAA6C,IAAW;AAAA,IACX,YAAAC,IAAa,CAAE;AAAA,IACf,UAAAC;AAAA,EACD,IAAGnN,GACEoN,IAAkBF,EAAW,OAAO,OAAO,GAC3CrC,IAAM,OAAOsC,EAAS,SAAS,OAAO,SAASA,EAAS,MAAMX,CAAQ;AAC5E,MAAI5B,IAAQ,MAAMuC,EAAS,gBAAgB;AAAA,IACzC,WAAAZ;AAAA,IACA,UAAAC;AAAA,IACA,UAAAS;AAAA,EACJ,CAAG,GACG;AAAA,IACF,GAAAxxB;AAAA,IACA,GAAAV;AAAA,EACD,IAAGuxB,GAA2B1B,GAAOR,GAAWS,CAAG,GAChDwC,IAAoBjD,GACpBkD,IAAiB,CAAA,GACjBC,IAAa;AACjB,WAASjzB,IAAI,GAAGA,IAAI8yB,EAAgB,QAAQ9yB,KAAK;AAC/C,UAAM;AAAA,MACJ,MAAAqD;AAAA,MACA,IAAAmZ;AAAA,IACN,IAAQsW,EAAgB9yB,CAAC,GACf;AAAA,MACJ,GAAGkzB;AAAA,MACH,GAAGC;AAAA,MACH,MAAAlhB;AAAA,MACA,OAAAmhB;AAAA,IACD,IAAG,MAAM5W,EAAG;AAAA,MACX,GAAArb;AAAA,MACA,GAAAV;AAAA,MACA,kBAAkBqvB;AAAA,MAClB,WAAWiD;AAAA,MACX,UAAAJ;AAAA,MACA,gBAAAK;AAAA,MACA,OAAA1C;AAAA,MACA,UAAAuC;AAAA,MACA,UAAU;AAAA,QACR,WAAAZ;AAAA,QACA,UAAAC;AAAA,MACD;AAAA,IACP,CAAK;AACD,IAAA/wB,IAAI+xB,KAAwB/xB,GAC5BV,IAAI0yB,KAAwB1yB,GAC5BuyB,IAAiB;AAAA,MACf,GAAGA;AAAA,MACH,CAAC3vB,CAAI,GAAG;AAAA,QACN,GAAG2vB,EAAe3vB,CAAI;AAAA,QACtB,GAAG4O;AAAA,MACJ;AAAA,IACP,GACQmhB,KAASH,KAAc,OACzBA,KACI,OAAOG,KAAU,aACfA,EAAM,cACRL,IAAoBK,EAAM,YAExBA,EAAM,UACR9C,IAAQ8C,EAAM,UAAU,KAAO,MAAMP,EAAS,gBAAgB;AAAA,MAC5D,WAAAZ;AAAA,MACA,UAAAC;AAAA,MACA,UAAAS;AAAA,IACZ,CAAW,IAAIS,EAAM,QAEZ;AAAA,MACC,GAAAjyB;AAAA,MACA,GAAAV;AAAA,IACD,IAAGuxB,GAA2B1B,GAAOyC,GAAmBxC,CAAG,IAE9DvwB,IAAI;AAAA,EAEP;AACD,SAAO;AAAA,IACL,GAAAmB;AAAA,IACA,GAAAV;AAAA,IACA,WAAWsyB;AAAA,IACX,UAAAJ;AAAA,IACA,gBAAAK;AAAA,EACJ;AACA;AAUA,eAAeK,GAAenO,GAAO3hB,GAAS;AAC5C,MAAI+vB;AACJ,EAAI/vB,MAAY,WACdA,IAAU,CAAA;AAEZ,QAAM;AAAA,IACJ,GAAApC;AAAA,IACA,GAAAV;AAAA,IACA,UAAAoyB;AAAA,IACA,OAAAvC;AAAA,IACA,UAAA5B;AAAA,IACA,UAAAiE;AAAA,EACD,IAAGzN,GACE;AAAA,IACJ,UAAAqO,IAAW;AAAA,IACX,cAAAC,IAAe;AAAA,IACf,gBAAAC,IAAiB;AAAA,IACjB,aAAAC,IAAc;AAAA,IACd,SAAAhC,IAAU;AAAA,EACd,IAAM9B,GAASrsB,GAAS2hB,CAAK,GACrByO,IAAgBhC,GAAiBD,CAAO,GAExCnnB,IAAUmkB,EAASgF,IADND,MAAmB,aAAa,cAAc,aACbA,CAAc,GAC5DG,IAAqBhC,GAAiB,MAAMiB,EAAS,gBAAgB;AAAA,IACzE,UAAWS,IAAwB,OAAOT,EAAS,aAAa,OAAO,SAASA,EAAS,UAAUtoB,CAAO,OAAO,QAAO+oB,IAAgC/oB,IAAUA,EAAQ,kBAAmB,OAAOsoB,EAAS,sBAAsB,OAAO,SAASA,EAAS,mBAAmBnE,EAAS,QAAQ;AAAA,IAChS,UAAA6E;AAAA,IACA,cAAAC;AAAA,IACA,UAAAb;AAAA,EACD,CAAA,CAAC,GACId,IAAO4B,MAAmB,aAAa;AAAA,IAC3C,GAAAtyB;AAAA,IACA,GAAAV;AAAA,IACA,OAAO6vB,EAAM,SAAS;AAAA,IACtB,QAAQA,EAAM,SAAS;AAAA,EAC3B,IAAMA,EAAM,WACJuD,IAAe,OAAOhB,EAAS,mBAAmB,OAAO,SAASA,EAAS,gBAAgBnE,EAAS,QAAQ,IAC5GoF,IAAe,OAAOjB,EAAS,aAAa,OAAO,SAASA,EAAS,UAAUgB,CAAY,KAAO,OAAOhB,EAAS,YAAY,OAAO,SAASA,EAAS,SAASgB,CAAY,MAAO;AAAA,IACvL,GAAG;AAAA,IACH,GAAG;AAAA,EACP,IAAM;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,EACP,GACQE,IAAoBnC,GAAiBiB,EAAS,wDAAwD,MAAMA,EAAS,sDAAsD;AAAA,IAC/K,UAAAnE;AAAA,IACA,MAAAmD;AAAA,IACA,cAAAgC;AAAA,IACA,UAAAlB;AAAA,EACJ,CAAG,IAAId,CAAI;AACT,SAAO;AAAA,IACL,MAAM+B,EAAmB,MAAMG,EAAkB,MAAMJ,EAAc,OAAOG,EAAY;AAAA,IACxF,SAASC,EAAkB,SAASH,EAAmB,SAASD,EAAc,UAAUG,EAAY;AAAA,IACpG,OAAOF,EAAmB,OAAOG,EAAkB,OAAOJ,EAAc,QAAQG,EAAY;AAAA,IAC5F,QAAQC,EAAkB,QAAQH,EAAmB,QAAQD,EAAc,SAASG,EAAY;AAAA,EACpG;AACA;AAOA,MAAME,KAAQ,CAAAzwB,OAAY;AAAA,EACxB,MAAM;AAAA,EACN,SAAAA;AAAA,EACA,MAAM,GAAG2hB,GAAO;AACd,UAAM;AAAA,MACJ,GAAA/jB;AAAA,MACA,GAAAV;AAAA,MACA,WAAAqvB;AAAA,MACA,OAAAQ;AAAA,MACA,UAAAuC;AAAA,MACA,UAAAnE;AAAA,MACA,gBAAAsE;AAAA,IACD,IAAG9N,GAEE;AAAA,MACJ,SAAA3a;AAAA,MACA,SAAAmnB,IAAU;AAAA,IACX,IAAG9B,GAASrsB,GAAS2hB,CAAK,KAAK,CAAA;AAChC,QAAI3a,KAAW;AACb,aAAO;AAET,UAAMopB,IAAgBhC,GAAiBD,CAAO,GACxCe,IAAS;AAAA,MACb,GAAAtxB;AAAA,MACA,GAAAV;AAAA,IACN,GACUwvB,IAAOG,GAAiBN,CAAS,GACjCjqB,IAASqqB,GAAcD,CAAI,GAC3BgE,IAAkB,MAAMpB,EAAS,cAActoB,CAAO,GACtD2pB,IAAUjE,MAAS,KACnBkE,IAAUD,IAAU,QAAQ,QAC5BE,IAAUF,IAAU,WAAW,SAC/BG,IAAaH,IAAU,iBAAiB,eACxCI,IAAUhE,EAAM,UAAUzqB,CAAM,IAAIyqB,EAAM,UAAUL,CAAI,IAAIwC,EAAOxC,CAAI,IAAIK,EAAM,SAASzqB,CAAM,GAChG0uB,IAAY9B,EAAOxC,CAAI,IAAIK,EAAM,UAAUL,CAAI,GAC/CuE,IAAoB,OAAO3B,EAAS,mBAAmB,OAAO,SAASA,EAAS,gBAAgBtoB,CAAO;AAC7G,QAAIkqB,IAAaD,IAAoBA,EAAkBH,CAAU,IAAI;AAGrE,KAAI,CAACI,KAAc,CAAE,OAAO5B,EAAS,aAAa,OAAO,SAASA,EAAS,UAAU2B,CAAiB,QACpGC,IAAa/F,EAAS,SAAS2F,CAAU,KAAK/D,EAAM,SAASzqB,CAAM;AAErE,UAAM6uB,IAAoBJ,IAAU,IAAIC,IAAY,GAI9CI,KAAyBF,IAAa,IAAIR,EAAgBpuB,CAAM,IAAI,IAAI,GACxE+uB,IAAaxF,GAAIuE,EAAcQ,CAAO,GAAGQ,EAAsB,GAC/DE,IAAazF,GAAIuE,EAAcS,CAAO,GAAGO,EAAsB,GAI/DG,KAAQF,GACRvF,KAAMoF,IAAaR,EAAgBpuB,CAAM,IAAIgvB,GAC7CE,IAASN,IAAa,IAAIR,EAAgBpuB,CAAM,IAAI,IAAI6uB,GACxDjM,IAASkH,GAAMmF,IAAOC,GAAQ1F,EAAG,GAMjC2F,IAAkB,CAAChC,EAAe,SAASjD,GAAaD,CAAS,KAAK,QAAQiF,MAAWtM,KAAU6H,EAAM,UAAUzqB,CAAM,IAAI,KAAKkvB,IAASD,KAAQF,IAAaC,KAAcZ,EAAgBpuB,CAAM,IAAI,IAAI,GAC5MovB,IAAkBD,IAAkBD,IAASD,KAAQC,IAASD,KAAQC,IAAS1F,KAAM;AAC3F,WAAO;AAAA,MACL,CAACY,CAAI,GAAGwC,EAAOxC,CAAI,IAAIgF;AAAA,MACvB,MAAM;AAAA,QACJ,CAAChF,CAAI,GAAGxH;AAAA,QACR,cAAcsM,IAAStM,IAASwM;AAAA,QAChC,GAAID,KAAmB;AAAA,UACrB,iBAAAC;AAAA,QACD;AAAA,MACF;AAAA,MACD,OAAOD;AAAA,IACb;AAAA,EACG;AACH,IA+GME,KAAO,SAAU3xB,GAAS;AAC9B,SAAIA,MAAY,WACdA,IAAU,CAAA,IAEL;AAAA,IACL,MAAM;AAAA,IACN,SAAAA;AAAA,IACA,MAAM,GAAG2hB,GAAO;AACd,UAAIiQ,GAAuBC;AAC3B,YAAM;AAAA,QACJ,WAAAtF;AAAA,QACA,gBAAAkD;AAAA,QACA,OAAA1C;AAAA,QACA,kBAAA+E;AAAA,QACA,UAAAxC;AAAA,QACA,UAAAnE;AAAA,MACD,IAAGxJ,GACE;AAAA,QACJ,UAAUoQ,IAAgB;AAAA,QAC1B,WAAWC,IAAiB;AAAA,QAC5B,oBAAoBC;AAAA,QACpB,kBAAAC,IAAmB;AAAA,QACnB,2BAAAC,IAA4B;AAAA,QAC5B,eAAApE,IAAgB;AAAA,QAChB,GAAGqE;AAAA,MACX,IAAU/F,GAASrsB,GAAS2hB,CAAK;AAM3B,WAAKiQ,IAAwBnC,EAAe,UAAU,QAAQmC,EAAsB;AAClF,eAAO;AAET,YAAMnE,IAAOnB,GAAQC,CAAS,GACxB8F,IAAkB/F,GAAQwF,CAAgB,MAAMA,GAChD9E,IAAM,OAAOsC,EAAS,SAAS,OAAO,SAASA,EAAS,MAAMnE,EAAS,QAAQ,IAC/EmH,IAAqBL,MAAgCI,KAAmB,CAACtE,IAAgB,CAACX,GAAqB0E,CAAgB,CAAC,IAAIzE,GAAsByE,CAAgB;AAChL,MAAI,CAACG,KAA+BE,MAA8B,UAChEG,EAAmB,KAAK,GAAGxE,GAA0BgE,GAAkB/D,GAAeoE,GAA2BnF,CAAG,CAAC;AAEvH,YAAMuF,IAAa,CAACT,GAAkB,GAAGQ,CAAkB,GACrDE,IAAW,MAAM1C,GAAenO,GAAOyQ,CAAqB,GAC5DK,IAAY,CAAA;AAClB,UAAIC,MAAkBb,IAAuBpC,EAAe,SAAS,OAAO,SAASoC,EAAqB,cAAc,CAAA;AAIxH,UAHIE,KACFU,EAAU,KAAKD,EAAS/E,CAAI,CAAC,GAE3BuE,GAAgB;AAClB,cAAMW,KAAQ7F,GAAkBP,GAAWQ,GAAOC,CAAG;AACrD,QAAAyF,EAAU,KAAKD,EAASG,GAAM,CAAC,CAAC,GAAGH,EAASG,GAAM,CAAC,CAAC,CAAC;AAAA,MACtD;AAOD,UANAD,IAAgB,CAAC,GAAGA,GAAe;AAAA,QACjC,WAAAnG;AAAA,QACA,WAAAkG;AAAA,MACR,CAAO,GAGG,CAACA,EAAU,MAAM,CAAAhF,OAAQA,MAAQ,CAAC,GAAG;AACvC,YAAImF,IAAuBC;AAC3B,cAAM1N,QAAeyN,KAAwBnD,EAAe,SAAS,OAAO,SAASmD,GAAsB,UAAU,KAAK,GACpHE,KAAgBP,EAAWpN,EAAS;AAC1C,YAAI2N;AAEF,iBAAO;AAAA,YACL,MAAM;AAAA,cACJ,OAAO3N;AAAA,cACP,WAAWuN;AAAA,YACZ;AAAA,YACD,OAAO;AAAA,cACL,WAAWI;AAAA,YACZ;AAAA,UACb;AAKQ,YAAIC,KAAkBF,IAAwBH,EAAc,OAAO,CAAA11B,MAAKA,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAACH,GAAGM,MAAMN,EAAE,UAAU,CAAC,IAAIM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,OAAO,SAAS01B,EAAsB;AAG1L,YAAI,CAACE;AACH,kBAAQb,GAAgB;AAAA,YACtB,KAAK,WACH;AACE,kBAAIc;AACJ,oBAAMzG,KAAayG,IAAwBN,EAAc,IAAI,CAAA11B,MAAK,CAACA,EAAE,WAAWA,EAAE,UAAU,OAAO,CAAAw1B,MAAYA,IAAW,CAAC,EAAE,OAAO,CAAC3P,GAAK2P,MAAa3P,IAAM2P,GAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC31B,GAAGM,MAAMN,EAAE,CAAC,IAAIM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,OAAO,SAAS61B,EAAsB,CAAC;AACtP,cAAIzG,MACFwG,IAAiBxG;AAEnB;AAAA,YACD;AAAA,YACH,KAAK;AACH,cAAAwG,IAAiBjB;AACjB;AAAA,UACH;AAEH,YAAIvF,MAAcwG;AAChB,iBAAO;AAAA,YACL,OAAO;AAAA,cACL,WAAWA;AAAA,YACZ;AAAA,UACb;AAAA,MAEO;AACD,aAAO;IACR;AAAA,EACL;AACA;AA6MA,eAAeE,GAAqBtR,GAAO3hB,GAAS;AAClD,QAAM;AAAA,IACJ,WAAAusB;AAAA,IACA,UAAA+C;AAAA,IACA,UAAAnE;AAAA,EACD,IAAGxJ,GACEqL,IAAM,OAAOsC,EAAS,SAAS,OAAO,SAASA,EAAS,MAAMnE,EAAS,QAAQ,IAC/EsC,IAAOnB,GAAQC,CAAS,GACxBU,IAAYT,GAAaD,CAAS,GAClCuC,IAAalC,GAAYL,CAAS,MAAM,KACxC2G,IAAgB,CAAC,QAAQ,KAAK,EAAE,SAASzF,CAAI,IAAI,KAAK,GACtD0F,IAAiBnG,KAAO8B,IAAa,KAAK,GAC1CsE,IAAW/G,GAASrsB,GAAS2hB,CAAK;AAGxC,MAAI;AAAA,IACF,UAAA0R;AAAA,IACA,WAAAC;AAAA,IACA,eAAApG;AAAA,EACJ,IAAM,OAAOkG,KAAa,WAAW;AAAA,IACjC,UAAUA;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,EACnB,IAAM;AAAA,IACF,UAAU;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,GAAGA;AAAA,EACP;AACE,SAAInG,KAAa,OAAOC,KAAkB,aACxCoG,IAAYrG,MAAc,QAAQC,IAAgB,KAAKA,IAElD4B,IAAa;AAAA,IAClB,GAAGwE,IAAYH;AAAA,IACf,GAAGE,IAAWH;AAAA,EAClB,IAAM;AAAA,IACF,GAAGG,IAAWH;AAAA,IACd,GAAGI,IAAYH;AAAA,EACnB;AACA;AASA,MAAMjO,KAAS,SAAUllB,GAAS;AAChC,SAAIA,MAAY,WACdA,IAAU,IAEL;AAAA,IACL,MAAM;AAAA,IACN,SAAAA;AAAA,IACA,MAAM,GAAG2hB,GAAO;AACd,UAAI4R,GAAuB3B;AAC3B,YAAM;AAAA,QACJ,GAAAh0B;AAAA,QACA,GAAAV;AAAA,QACA,WAAAqvB;AAAA,QACA,gBAAAkD;AAAA,MACD,IAAG9N,GACE6R,IAAa,MAAMP,GAAqBtR,GAAO3hB,CAAO;AAI5D,aAAIusB,QAAgBgH,IAAwB9D,EAAe,WAAW,OAAO,SAAS8D,EAAsB,eAAe3B,IAAwBnC,EAAe,UAAU,QAAQmC,EAAsB,kBACjM,KAEF;AAAA,QACL,GAAGh0B,IAAI41B,EAAW;AAAA,QAClB,GAAGt2B,IAAIs2B,EAAW;AAAA,QAClB,MAAM;AAAA,UACJ,GAAGA;AAAA,UACH,WAAAjH;AAAA,QACD;AAAA,MACT;AAAA,IACK;AAAA,EACL;AACA,GAOMkH,KAAQ,SAAUzzB,GAAS;AAC/B,SAAIA,MAAY,WACdA,IAAU,CAAA,IAEL;AAAA,IACL,MAAM;AAAA,IACN,SAAAA;AAAA,IACA,MAAM,GAAG2hB,GAAO;AACd,YAAM;AAAA,QACJ,GAAA/jB;AAAA,QACA,GAAAV;AAAA,QACA,WAAAqvB;AAAA,MACD,IAAG5K,GACE;AAAA,QACJ,UAAUoQ,IAAgB;AAAA,QAC1B,WAAWC,IAAiB;AAAA,QAC5B,SAAA0B,IAAU;AAAA,UACR,IAAI,CAAA1mB,MAAQ;AACV,gBAAI;AAAA,cACF,GAAApP;AAAA,cACA,GAAAV;AAAA,YACD,IAAG8P;AACJ,mBAAO;AAAA,cACL,GAAApP;AAAA,cACA,GAAAV;AAAA,YACd;AAAA,UACW;AAAA,QACF;AAAA,QACD,GAAGk1B;AAAA,MACX,IAAU/F,GAASrsB,GAAS2hB,CAAK,GACrBuN,IAAS;AAAA,QACb,GAAAtxB;AAAA,QACA,GAAAV;AAAA,MACR,GACYs1B,IAAW,MAAM1C,GAAenO,GAAOyQ,CAAqB,GAC5DkB,IAAY1G,GAAYN,GAAQC,CAAS,CAAC,GAC1C8G,IAAW5G,GAAgB6G,CAAS;AAC1C,UAAIK,IAAgBzE,EAAOmE,CAAQ,GAC/BO,IAAiB1E,EAAOoE,CAAS;AACrC,UAAIvB,GAAe;AACjB,cAAM8B,IAAUR,MAAa,MAAM,QAAQ,QACrCS,IAAUT,MAAa,MAAM,WAAW,SACxCxH,IAAM8H,IAAgBnB,EAASqB,CAAO,GACtC/H,IAAM6H,IAAgBnB,EAASsB,CAAO;AAC5C,QAAAH,IAAgBvH,GAAMP,GAAK8H,GAAe7H,CAAG;AAAA,MAC9C;AACD,UAAIkG,GAAgB;AAClB,cAAM6B,IAAUP,MAAc,MAAM,QAAQ,QACtCQ,IAAUR,MAAc,MAAM,WAAW,SACzCzH,IAAM+H,IAAiBpB,EAASqB,CAAO,GACvC/H,IAAM8H,IAAiBpB,EAASsB,CAAO;AAC7C,QAAAF,IAAiBxH,GAAMP,GAAK+H,GAAgB9H,CAAG;AAAA,MAChD;AACD,YAAMiI,IAAgBL,EAAQ,GAAG;AAAA,QAC/B,GAAG/R;AAAA,QACH,CAAC0R,CAAQ,GAAGM;AAAA,QACZ,CAACL,CAAS,GAAGM;AAAA,MACrB,CAAO;AACD,aAAO;AAAA,QACL,GAAGG;AAAA,QACH,MAAM;AAAA,UACJ,GAAGA,EAAc,IAAIn2B;AAAA,UACrB,GAAGm2B,EAAc,IAAI72B;AAAA,QACtB;AAAA,MACT;AAAA,IACK;AAAA,EACL;AACA,GA4EMyK,KAAO,SAAU3H,GAAS;AAC9B,SAAIA,MAAY,WACdA,IAAU,CAAA,IAEL;AAAA,IACL,MAAM;AAAA,IACN,SAAAA;AAAA,IACA,MAAM,GAAG2hB,GAAO;AACd,YAAM;AAAA,QACJ,WAAA4K;AAAA,QACA,OAAAQ;AAAA,QACA,UAAAuC;AAAA,QACA,UAAAnE;AAAA,MACD,IAAGxJ,GACE;AAAA,QACJ,OAAAqS,IAAQ,MAAM;AAAA,QAAE;AAAA,QAChB,GAAG5B;AAAA,MACX,IAAU/F,GAASrsB,GAAS2hB,CAAK,GACrB6Q,IAAW,MAAM1C,GAAenO,GAAOyQ,CAAqB,GAC5D3E,IAAOnB,GAAQC,CAAS,GACxBU,IAAYT,GAAaD,CAAS,GAClCoE,IAAU/D,GAAYL,CAAS,MAAM,KACrC;AAAA,QACJ,OAAAgC;AAAA,QACA,QAAAC;AAAA,MACR,IAAUzB,EAAM;AACV,UAAIkH,GACAC;AACJ,MAAIzG,MAAS,SAASA,MAAS,YAC7BwG,IAAaxG,GACbyG,IAAYjH,OAAgB,OAAOqC,EAAS,SAAS,OAAO,SAASA,EAAS,MAAMnE,EAAS,QAAQ,KAAM,UAAU,SAAS,SAAS,YAEvI+I,IAAYzG,GACZwG,IAAahH,MAAc,QAAQ,QAAQ;AAE7C,YAAMkH,IAA0B3F,IAASgE,EAASyB,CAAU,GACtDG,IAAyB7F,IAAQiE,EAAS0B,CAAS,GACnDG,IAAU,CAAC1S,EAAM,eAAe;AACtC,UAAI2S,IAAkBH,GAClBI,IAAiBH;AACrB,UAAIzD,GAAS;AACX,cAAM6D,IAAuBjG,IAAQiE,EAAS,OAAOA,EAAS;AAC9D,QAAA+B,IAAiBtH,KAAaoH,IAAUxI,GAAIuI,GAAwBI,CAAoB,IAAIA;AAAA,MACpG,OAAa;AACL,cAAMC,IAAwBjG,IAASgE,EAAS,MAAMA,EAAS;AAC/D,QAAA8B,IAAkBrH,KAAaoH,IAAUxI,GAAIsI,GAAyBM,CAAqB,IAAIA;AAAA,MAChG;AACD,UAAIJ,KAAW,CAACpH,GAAW;AACzB,cAAMyH,IAAO5I,GAAI0G,EAAS,MAAM,CAAC,GAC3BmC,IAAO7I,GAAI0G,EAAS,OAAO,CAAC,GAC5BoC,IAAO9I,GAAI0G,EAAS,KAAK,CAAC,GAC1BqC,KAAO/I,GAAI0G,EAAS,QAAQ,CAAC;AACnC,QAAI7B,IACF4D,IAAiBhG,IAAQ,KAAKmG,MAAS,KAAKC,MAAS,IAAID,IAAOC,IAAO7I,GAAI0G,EAAS,MAAMA,EAAS,KAAK,KAExG8B,IAAkB9F,IAAS,KAAKoG,MAAS,KAAKC,OAAS,IAAID,IAAOC,KAAO/I,GAAI0G,EAAS,KAAKA,EAAS,MAAM;AAAA,MAE7G;AACD,YAAMwB,EAAM;AAAA,QACV,GAAGrS;AAAA,QACH,gBAAA4S;AAAA,QACA,iBAAAD;AAAA,MACR,CAAO;AACD,YAAMQ,IAAiB,MAAMxF,EAAS,cAAcnE,EAAS,QAAQ;AACrE,aAAIoD,MAAUuG,EAAe,SAAStG,MAAWsG,EAAe,SACvD;AAAA,QACL,OAAO;AAAA,UACL,OAAO;AAAA,QACR;AAAA,MACX,IAEa;IACR;AAAA,EACL;AACA;AC9/BA,SAASC,GAAYC,GAAM;AACzB,SAAIC,GAAOD,CAAI,KACLA,EAAK,YAAY,IAAI,YAAW,IAKnC;AACT;AACA,SAASE,GAAUF,GAAM;AACvB,MAAIG;AACJ,UAAQH,KAAQ,SAASG,IAAsBH,EAAK,kBAAkB,OAAO,SAASG,EAAoB,gBAAgB;AAC5H;AACA,SAASC,GAAmBJ,GAAM;AAChC,MAAIhoB;AACJ,UAAQA,KAAQioB,GAAOD,CAAI,IAAIA,EAAK,gBAAgBA,EAAK,aAAa,OAAO,aAAa,OAAO,SAAShoB,EAAK;AACjH;AACA,SAASioB,GAAOl1B,GAAO;AACrB,SAAOA,aAAiB,QAAQA,aAAiBm1B,GAAUn1B,CAAK,EAAE;AACpE;AACA,SAASs1B,GAAUt1B,GAAO;AACxB,SAAOA,aAAiB,WAAWA,aAAiBm1B,GAAUn1B,CAAK,EAAE;AACvE;AACA,SAASu1B,GAAcv1B,GAAO;AAC5B,SAAOA,aAAiB,eAAeA,aAAiBm1B,GAAUn1B,CAAK,EAAE;AAC3E;AACA,SAASw1B,GAAax1B,GAAO;AAE3B,SAAI,OAAO,aAAe,MACjB,KAEFA,aAAiB,cAAcA,aAAiBm1B,GAAUn1B,CAAK,EAAE;AAC1E;AACA,SAASy1B,GAAkBxuB,GAAS;AAClC,QAAM;AAAA,IACJ,UAAAwrB;AAAA,IACA,WAAAiD;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC;AAAA,EACJ,IAAMC,GAAiB5uB,CAAO;AAC5B,SAAO,kCAAkC,KAAKwrB,IAAWkD,IAAYD,CAAS,KAAK,CAAC,CAAC,UAAU,UAAU,EAAE,SAASE,CAAO;AAC7H;AACA,SAASE,GAAe7uB,GAAS;AAC/B,SAAO,CAAC,SAAS,MAAM,IAAI,EAAE,SAAS+tB,GAAY/tB,CAAO,CAAC;AAC5D;AACA,SAAS8uB,GAAkB9uB,GAAS;AAClC,QAAM+uB,IAASC,MACT/M,IAAM2M,GAAiB5uB,CAAO;AAGpC,SAAOiiB,EAAI,cAAc,UAAUA,EAAI,gBAAgB,WAAWA,EAAI,gBAAgBA,EAAI,kBAAkB,WAAW,OAAU,CAAC8M,MAAW9M,EAAI,iBAAiBA,EAAI,mBAAmB,SAAS,OAAU,CAAC8M,MAAW9M,EAAI,SAASA,EAAI,WAAW,SAAS,OAAU,CAAC,aAAa,eAAe,QAAQ,EAAE,KAAK,CAAAlpB,OAAUkpB,EAAI,cAAc,IAAI,SAASlpB,CAAK,CAAC,KAAK,CAAC,SAAS,UAAU,UAAU,SAAS,EAAE,KAAK,CAAAA,OAAUkpB,EAAI,WAAW,IAAI,SAASlpB,CAAK,CAAC;AACnc;AACA,SAASk2B,GAAmBjvB,GAAS;AACnC,MAAIkvB,IAAcC,GAAcnvB,CAAO;AACvC,SAAOsuB,GAAcY,CAAW,KAAK,CAACE,GAAsBF,CAAW,KAAG;AACxE,QAAIJ,GAAkBI,CAAW;AAC/B,aAAOA;AAET,IAAAA,IAAcC,GAAcD,CAAW;AAAA,EACxC;AACD,SAAO;AACT;AACA,SAASF,KAAW;AAClB,SAAI,OAAO,MAAQ,OAAe,CAAC,IAAI,WAAiB,KACjD,IAAI,SAAS,2BAA2B,MAAM;AACvD;AACA,SAASI,GAAsBpB,GAAM;AACnC,SAAO,CAAC,QAAQ,QAAQ,WAAW,EAAE,SAASD,GAAYC,CAAI,CAAC;AACjE;AACA,SAASY,GAAiB5uB,GAAS;AACjC,SAAOkuB,GAAUluB,CAAO,EAAE,iBAAiBA,CAAO;AACpD;AACA,SAASqvB,GAAcrvB,GAAS;AAC9B,SAAIquB,GAAUruB,CAAO,IACZ;AAAA,IACL,YAAYA,EAAQ;AAAA,IACpB,WAAWA,EAAQ;AAAA,EACzB,IAES;AAAA,IACL,YAAYA,EAAQ;AAAA,IACpB,WAAWA,EAAQ;AAAA,EACvB;AACA;AACA,SAASmvB,GAAcnB,GAAM;AAC3B,MAAID,GAAYC,CAAI,MAAM;AACxB,WAAOA;AAET,QAAMtzB;AAAA;AAAA,IAENszB,EAAK;AAAA,IAELA,EAAK;AAAA,IAELO,GAAaP,CAAI,KAAKA,EAAK;AAAA,IAE3BI,GAAmBJ,CAAI;AAAA;AACvB,SAAOO,GAAa7zB,CAAM,IAAIA,EAAO,OAAOA;AAC9C;AACA,SAAS40B,GAA2BtB,GAAM;AACxC,QAAMuB,IAAaJ,GAAcnB,CAAI;AACrC,SAAIoB,GAAsBG,CAAU,IAC3BvB,EAAK,gBAAgBA,EAAK,cAAc,OAAOA,EAAK,OAEzDM,GAAciB,CAAU,KAAKf,GAAkBe,CAAU,IACpDA,IAEFD,GAA2BC,CAAU;AAC9C;AACA,SAASC,GAAqBxB,GAAM/G,GAAMwI,GAAiB;AACzD,MAAIC;AACJ,EAAIzI,MAAS,WACXA,IAAO,CAAA,IAELwI,MAAoB,WACtBA,IAAkB;AAEpB,QAAME,IAAqBL,GAA2BtB,CAAI,GACpD4B,IAASD,QAAyBD,IAAuB1B,EAAK,kBAAkB,OAAO,SAAS0B,EAAqB,OACrHG,IAAM3B,GAAUyB,CAAkB;AACxC,SAAIC,IACK3I,EAAK,OAAO4I,GAAKA,EAAI,kBAAkB,CAAE,GAAErB,GAAkBmB,CAAkB,IAAIA,IAAqB,IAAIE,EAAI,gBAAgBJ,IAAkBD,GAAqBK,EAAI,YAAY,IAAI,CAAA,CAAE,IAE/L5I,EAAK,OAAO0I,GAAoBH,GAAqBG,GAAoB,CAAE,GAAEF,CAAe,CAAC;AACtG;ACvHA,SAASK,GAAiB9vB,GAAS;AACjC,QAAMiiB,IAAM2M,GAAiB5uB,CAAO;AAGpC,MAAIunB,IAAQ,WAAWtF,EAAI,KAAK,KAAK,GACjCuF,IAAS,WAAWvF,EAAI,MAAM,KAAK;AACvC,QAAM8N,IAAYzB,GAActuB,CAAO,GACjCgwB,IAAcD,IAAY/vB,EAAQ,cAAcunB,GAChD0I,IAAeF,IAAY/vB,EAAQ,eAAewnB,GAClD0I,IAAiBnL,GAAMwC,CAAK,MAAMyI,KAAejL,GAAMyC,CAAM,MAAMyI;AACzE,SAAIC,MACF3I,IAAQyI,GACRxI,IAASyI,IAEJ;AAAA,IACL,OAAA1I;AAAA,IACA,QAAAC;AAAA,IACA,GAAG0I;AAAA,EACP;AACA;AAEA,SAASC,GAAcnwB,GAAS;AAC9B,SAAQquB,GAAUruB,CAAO,IAA6BA,IAAzBA,EAAQ;AACvC;AAEA,SAASowB,GAASpwB,GAAS;AACzB,QAAMqwB,IAAaF,GAAcnwB,CAAO;AACxC,MAAI,CAACsuB,GAAc+B,CAAU;AAC3B,WAAOpL,GAAa,CAAC;AAEvB,QAAMqC,IAAO+I,EAAW,yBAClB;AAAA,IACJ,OAAA9I;AAAA,IACA,QAAAC;AAAA,IACA,GAAA7wB;AAAA,EACJ,IAAMm5B,GAAiBO,CAAU;AAC/B,MAAIz5B,KAAKD,IAAIouB,GAAMuC,EAAK,KAAK,IAAIA,EAAK,SAASC,GAC3CrxB,KAAKS,IAAIouB,GAAMuC,EAAK,MAAM,IAAIA,EAAK,UAAUE;AAIjD,UAAI,CAAC5wB,KAAK,CAAC,OAAO,SAASA,CAAC,OAC1BA,IAAI,KAEF,CAACV,KAAK,CAAC,OAAO,SAASA,CAAC,OAC1BA,IAAI,IAEC;AAAA,IACL,GAAAU;AAAA,IACA,GAAAV;AAAA,EACJ;AACA;AAEA,MAAMo6B,KAAyB,gBAAArL,GAAa,CAAC;AAC7C,SAASsL,GAAiBvwB,GAAS;AACjC,QAAM6vB,IAAM3B,GAAUluB,CAAO;AAC7B,SAAI,CAACgvB,GAAQ,KAAM,CAACa,EAAI,iBACfS,KAEF;AAAA,IACL,GAAGT,EAAI,eAAe;AAAA,IACtB,GAAGA,EAAI,eAAe;AAAA,EAC1B;AACA;AACA,SAASW,GAAuBxwB,GAASywB,GAASC,GAAsB;AAItE,SAHID,MAAY,WACdA,IAAU,KAER,CAACC,KAAwBD,KAAWC,MAAyBxC,GAAUluB,CAAO,IACzE,KAEFywB;AACT;AAEA,SAASE,GAAsB3wB,GAAS4wB,GAAcC,GAAiBvH,GAAc;AACnF,EAAIsH,MAAiB,WACnBA,IAAe,KAEbC,MAAoB,WACtBA,IAAkB;AAEpB,QAAMC,IAAa9wB,EAAQ,yBACrBqwB,IAAaF,GAAcnwB,CAAO;AACxC,MAAI+wB,IAAQ9L,GAAa,CAAC;AAC1B,EAAI2L,MACEtH,IACE+E,GAAU/E,CAAY,MACxByH,IAAQX,GAAS9G,CAAY,KAG/ByH,IAAQX,GAASpwB,CAAO;AAG5B,QAAMgxB,IAAgBR,GAAuBH,GAAYQ,GAAiBvH,CAAY,IAAIiH,GAAiBF,CAAU,IAAIpL,GAAa,CAAC;AACvI,MAAIruB,KAAKk6B,EAAW,OAAOE,EAAc,KAAKD,EAAM,GAChD76B,KAAK46B,EAAW,MAAME,EAAc,KAAKD,EAAM,GAC/CxJ,IAAQuJ,EAAW,QAAQC,EAAM,GACjCvJ,IAASsJ,EAAW,SAASC,EAAM;AACvC,MAAIV,GAAY;AACd,UAAMR,IAAM3B,GAAUmC,CAAU,GAC1BY,IAAY3H,KAAgB+E,GAAU/E,CAAY,IAAI4E,GAAU5E,CAAY,IAAIA;AACtF,QAAI4H,IAAarB,GACbsB,IAAgBD,EAAW;AAC/B,WAAOC,KAAiB7H,KAAgB2H,MAAcC,KAAY;AAChE,YAAME,IAAchB,GAASe,CAAa,GACpCE,IAAaF,EAAc,yBAC3BlP,IAAM2M,GAAiBuC,CAAa,GACpCG,IAAOD,EAAW,QAAQF,EAAc,aAAa,WAAWlP,EAAI,WAAW,KAAKmP,EAAY,GAChGG,IAAMF,EAAW,OAAOF,EAAc,YAAY,WAAWlP,EAAI,UAAU,KAAKmP,EAAY;AAClG,MAAAx6B,KAAKw6B,EAAY,GACjBl7B,KAAKk7B,EAAY,GACjB7J,KAAS6J,EAAY,GACrB5J,KAAU4J,EAAY,GACtBx6B,KAAK06B,GACLp7B,KAAKq7B,GACLL,IAAahD,GAAUiD,CAAa,GACpCA,IAAgBD,EAAW;AAAA,IAC5B;AAAA,EACF;AACD,SAAO7J,GAAiB;AAAA,IACtB,OAAAE;AAAA,IACA,QAAAC;AAAA,IACA,GAAA5wB;AAAA,IACA,GAAAV;AAAA,EACJ,CAAG;AACH;AAEA,MAAMs7B,KAAoB,CAAC,iBAAiB,QAAQ;AACpD,SAASC,GAAW9J,GAAU;AAC5B,SAAO6J,GAAkB,KAAK,CAAAE,MAAY;AACxC,QAAI;AACF,aAAO/J,EAAS,QAAQ+J,CAAQ;AAAA,IACjC,QAAW;AACV,aAAO;AAAA,IACR;AAAA,EACL,CAAG;AACH;AAEA,SAASC,GAAsD3rB,GAAM;AACnE,MAAI;AAAA,IACF,UAAAme;AAAA,IACA,MAAAmD;AAAA,IACA,cAAAgC;AAAA,IACA,UAAAlB;AAAA,EACD,IAAGpiB;AACJ,QAAMyqB,IAAUrI,MAAa,SACvBwJ,IAAkBxD,GAAmB9E,CAAY,GACjDuI,IAAW1N,IAAWsN,GAAWtN,EAAS,QAAQ,IAAI;AAC5D,MAAImF,MAAiBsI,KAAmBC,KAAYpB;AAClD,WAAOnJ;AAET,MAAIwK,IAAS;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACf,GACMf,IAAQ9L,GAAa,CAAC;AAC1B,QAAM8M,IAAU9M,GAAa,CAAC,GACxB+M,IAA0B1D,GAAchF,CAAY;AAC1D,OAAI0I,KAA2B,CAACA,KAA2B,CAACvB,QACtD1C,GAAYzE,CAAY,MAAM,UAAUkF,GAAkBoD,CAAe,OAC3EE,IAASzC,GAAc/F,CAAY,IAEjCgF,GAAchF,CAAY,IAAG;AAC/B,UAAM2I,IAAatB,GAAsBrH,CAAY;AACrD,IAAAyH,IAAQX,GAAS9G,CAAY,GAC7ByI,EAAQ,IAAIE,EAAW,IAAI3I,EAAa,YACxCyI,EAAQ,IAAIE,EAAW,IAAI3I,EAAa;AAAA,EACzC;AAEH,SAAO;AAAA,IACL,OAAOhC,EAAK,QAAQyJ,EAAM;AAAA,IAC1B,QAAQzJ,EAAK,SAASyJ,EAAM;AAAA,IAC5B,GAAGzJ,EAAK,IAAIyJ,EAAM,IAAIe,EAAO,aAAaf,EAAM,IAAIgB,EAAQ;AAAA,IAC5D,GAAGzK,EAAK,IAAIyJ,EAAM,IAAIe,EAAO,YAAYf,EAAM,IAAIgB,EAAQ;AAAA,EAC/D;AACA;AAEA,SAASG,GAAelyB,GAAS;AAC/B,SAAO,MAAM,KAAKA,EAAQ,eAAgB,CAAA;AAC5C;AAEA,SAASmyB,GAAoBnyB,GAAS;AAGpC,SAAO2wB,GAAsBvC,GAAmBpuB,CAAO,CAAC,EAAE,OAAOqvB,GAAcrvB,CAAO,EAAE;AAC1F;AAIA,SAASoyB,GAAgBpyB,GAAS;AAChC,QAAM7G,IAAOi1B,GAAmBpuB,CAAO,GACjC8xB,IAASzC,GAAcrvB,CAAO,GAC9BqyB,IAAOryB,EAAQ,cAAc,MAC7BunB,IAAQzC,GAAI3rB,EAAK,aAAaA,EAAK,aAAak5B,EAAK,aAAaA,EAAK,WAAW,GAClF7K,IAAS1C,GAAI3rB,EAAK,cAAcA,EAAK,cAAck5B,EAAK,cAAcA,EAAK,YAAY;AAC7F,MAAIz7B,IAAI,CAACk7B,EAAO,aAAaK,GAAoBnyB,CAAO;AACxD,QAAM9J,IAAI,CAAC47B,EAAO;AAClB,SAAIlD,GAAiByD,CAAI,EAAE,cAAc,UACvCz7B,KAAKkuB,GAAI3rB,EAAK,aAAak5B,EAAK,WAAW,IAAI9K,IAE1C;AAAA,IACL,OAAAA;AAAA,IACA,QAAAC;AAAA,IACA,GAAA5wB;AAAA,IACA,GAAAV;AAAA,EACJ;AACA;AAEA,SAASo8B,GAAgBtyB,GAASooB,GAAU;AAC1C,QAAMyH,IAAM3B,GAAUluB,CAAO,GACvB7G,IAAOi1B,GAAmBpuB,CAAO,GACjCuyB,IAAiB1C,EAAI;AAC3B,MAAItI,IAAQpuB,EAAK,aACbquB,IAASruB,EAAK,cACdvC,IAAI,GACJV,IAAI;AACR,MAAIq8B,GAAgB;AAClB,IAAAhL,IAAQgL,EAAe,OACvB/K,IAAS+K,EAAe;AACxB,UAAMC,IAAsBxD;AAC5B,KAAI,CAACwD,KAAuBA,KAAuBpK,MAAa,aAC9DxxB,IAAI27B,EAAe,YACnBr8B,IAAIq8B,EAAe;AAAA,EAEtB;AACD,SAAO;AAAA,IACL,OAAAhL;AAAA,IACA,QAAAC;AAAA,IACA,GAAA5wB;AAAA,IACA,GAAAV;AAAA,EACJ;AACA;AAGA,SAASu8B,GAA2BzyB,GAASooB,GAAU;AACrD,QAAM0I,IAAaH,GAAsB3wB,GAAS,IAAMooB,MAAa,OAAO,GACtEmJ,IAAMT,EAAW,MAAM9wB,EAAQ,WAC/BsxB,IAAOR,EAAW,OAAO9wB,EAAQ,YACjC+wB,IAAQzC,GAActuB,CAAO,IAAIowB,GAASpwB,CAAO,IAAIilB,GAAa,CAAC,GACnEsC,IAAQvnB,EAAQ,cAAc+wB,EAAM,GACpCvJ,IAASxnB,EAAQ,eAAe+wB,EAAM,GACtCn6B,IAAI06B,IAAOP,EAAM,GACjB76B,IAAIq7B,IAAMR,EAAM;AACtB,SAAO;AAAA,IACL,OAAAxJ;AAAA,IACA,QAAAC;AAAA,IACA,GAAA5wB;AAAA,IACA,GAAAV;AAAA,EACJ;AACA;AACA,SAASw8B,GAAkC1yB,GAAS2yB,GAAkBvK,GAAU;AAC9E,MAAId;AACJ,MAAIqL,MAAqB;AACvB,IAAArL,IAAOgL,GAAgBtyB,GAASooB,CAAQ;AAAA,WAC/BuK,MAAqB;AAC9B,IAAArL,IAAO8K,GAAgBhE,GAAmBpuB,CAAO,CAAC;AAAA,WACzCquB,GAAUsE,CAAgB;AACnC,IAAArL,IAAOmL,GAA2BE,GAAkBvK,CAAQ;AAAA,OACvD;AACL,UAAM4I,IAAgBT,GAAiBvwB,CAAO;AAC9C,IAAAsnB,IAAO;AAAA,MACL,GAAGqL;AAAA,MACH,GAAGA,EAAiB,IAAI3B,EAAc;AAAA,MACtC,GAAG2B,EAAiB,IAAI3B,EAAc;AAAA,IAC5C;AAAA,EACG;AACD,SAAO3J,GAAiBC,CAAI;AAC9B;AACA,SAASsL,GAAyB5yB,GAAS6yB,GAAU;AACnD,QAAMtD,IAAaJ,GAAcnvB,CAAO;AACxC,SAAIuvB,MAAesD,KAAY,CAACxE,GAAUkB,CAAU,KAAKH,GAAsBG,CAAU,IAChF,KAEFX,GAAiBW,CAAU,EAAE,aAAa,WAAWqD,GAAyBrD,GAAYsD,CAAQ;AAC3G;AAKA,SAASC,GAA4B9yB,GAASkS,GAAO;AACnD,QAAM6gB,IAAe7gB,EAAM,IAAIlS,CAAO;AACtC,MAAI+yB;AACF,WAAOA;AAET,MAAIr4B,IAAS80B,GAAqBxvB,GAAS,CAAA,GAAI,EAAK,EAAE,OAAO,CAAAwD,MAAM6qB,GAAU7qB,CAAE,KAAKuqB,GAAYvqB,CAAE,MAAM,MAAM,GAC1GwvB,IAAsC;AAC1C,QAAMC,IAAiBrE,GAAiB5uB,CAAO,EAAE,aAAa;AAC9D,MAAIkvB,IAAc+D,IAAiB9D,GAAcnvB,CAAO,IAAIA;AAG5D,SAAOquB,GAAUa,CAAW,KAAK,CAACE,GAAsBF,CAAW,KAAG;AACpE,UAAMgE,IAAgBtE,GAAiBM,CAAW,GAC5CiE,IAA0BrE,GAAkBI,CAAW;AAC7D,IAAI,CAACiE,KAA2BD,EAAc,aAAa,YACzDF,IAAsC,QAEVC,IAAiB,CAACE,KAA2B,CAACH,IAAsC,CAACG,KAA2BD,EAAc,aAAa,YAAY,CAAC,CAACF,KAAuC,CAAC,YAAY,OAAO,EAAE,SAASA,EAAoC,QAAQ,KAAKxE,GAAkBU,CAAW,KAAK,CAACiE,KAA2BP,GAAyB5yB,GAASkvB,CAAW,KAGvZx0B,IAASA,EAAO,OAAO,CAAA04B,MAAYA,MAAalE,CAAW,IAG3D8D,IAAsCE,GAExChE,IAAcC,GAAcD,CAAW;AAAA,EACxC;AACD,SAAAhd,EAAM,IAAIlS,GAAStF,CAAM,GAClBA;AACT;AAIA,SAAS24B,GAAgBrtB,GAAM;AAC7B,MAAI;AAAA,IACF,SAAAhG;AAAA,IACA,UAAAgpB;AAAA,IACA,cAAAC;AAAA,IACA,UAAAb;AAAA,EACD,IAAGpiB;AAEJ,QAAMstB,IAAoB,CAAC,GADMtK,MAAa,sBAAsB8J,GAA4B9yB,GAAS,KAAK,EAAE,IAAI,CAAA,EAAG,OAAOgpB,CAAQ,GAC9EC,CAAY,GAC9DsK,IAAwBD,EAAkB,CAAC,GAC3CE,IAAeF,EAAkB,OAAO,CAACG,GAASd,MAAqB;AAC3E,UAAMrL,IAAOoL,GAAkC1yB,GAAS2yB,GAAkBvK,CAAQ;AAClF,WAAAqL,EAAQ,MAAM3O,GAAIwC,EAAK,KAAKmM,EAAQ,GAAG,GACvCA,EAAQ,QAAQ5O,GAAIyC,EAAK,OAAOmM,EAAQ,KAAK,GAC7CA,EAAQ,SAAS5O,GAAIyC,EAAK,QAAQmM,EAAQ,MAAM,GAChDA,EAAQ,OAAO3O,GAAIwC,EAAK,MAAMmM,EAAQ,IAAI,GACnCA;AAAA,EACR,GAAEf,GAAkC1yB,GAASuzB,GAAuBnL,CAAQ,CAAC;AAC9E,SAAO;AAAA,IACL,OAAOoL,EAAa,QAAQA,EAAa;AAAA,IACzC,QAAQA,EAAa,SAASA,EAAa;AAAA,IAC3C,GAAGA,EAAa;AAAA,IAChB,GAAGA,EAAa;AAAA,EACpB;AACA;AAEA,SAASE,GAAc1zB,GAAS;AAC9B,QAAM;AAAA,IACJ,OAAAunB;AAAA,IACA,QAAAC;AAAA,EACJ,IAAMsI,GAAiB9vB,CAAO;AAC5B,SAAO;AAAA,IACL,OAAAunB;AAAA,IACA,QAAAC;AAAA,EACJ;AACA;AAEA,SAASmM,GAA8B3zB,GAASspB,GAAclB,GAAU;AACtE,QAAM4J,IAA0B1D,GAAchF,CAAY,GACpDsI,IAAkBxD,GAAmB9E,CAAY,GACjDmH,IAAUrI,MAAa,SACvBd,IAAOqJ,GAAsB3wB,GAAS,IAAMywB,GAASnH,CAAY;AACvE,MAAIwI,IAAS;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACf;AACE,QAAMC,IAAU9M,GAAa,CAAC;AAC9B,MAAI+M,KAA2B,CAACA,KAA2B,CAACvB;AAI1D,SAHI1C,GAAYzE,CAAY,MAAM,UAAUkF,GAAkBoD,CAAe,OAC3EE,IAASzC,GAAc/F,CAAY,IAEjC0I,GAAyB;AAC3B,YAAMC,IAAatB,GAAsBrH,GAAc,IAAMmH,GAASnH,CAAY;AAClF,MAAAyI,EAAQ,IAAIE,EAAW,IAAI3I,EAAa,YACxCyI,EAAQ,IAAIE,EAAW,IAAI3I,EAAa;AAAA,IACzC;AAAM,MAAIsI,MACTG,EAAQ,IAAII,GAAoBP,CAAe;AAGnD,QAAMh7B,IAAI0wB,EAAK,OAAOwK,EAAO,aAAaC,EAAQ,GAC5C77B,IAAIoxB,EAAK,MAAMwK,EAAO,YAAYC,EAAQ;AAChD,SAAO;AAAA,IACL,GAAAn7B;AAAA,IACA,GAAAV;AAAA,IACA,OAAOoxB,EAAK;AAAA,IACZ,QAAQA,EAAK;AAAA,EACjB;AACA;AAEA,SAASsM,GAAoB5zB,GAAS6zB,GAAU;AAC9C,SAAI,CAACvF,GAActuB,CAAO,KAAK4uB,GAAiB5uB,CAAO,EAAE,aAAa,UAC7D,OAEL6zB,IACKA,EAAS7zB,CAAO,IAElBA,EAAQ;AACjB;AAIA,SAAS8zB,GAAgB9zB,GAAS6zB,GAAU;AAC1C,QAAME,IAAS7F,GAAUluB,CAAO;AAChC,MAAI,CAACsuB,GAActuB,CAAO,KAAKyxB,GAAWzxB,CAAO;AAC/C,WAAO+zB;AAET,MAAIzK,IAAesK,GAAoB5zB,GAAS6zB,CAAQ;AACxD,SAAOvK,KAAgBuF,GAAevF,CAAY,KAAKsF,GAAiBtF,CAAY,EAAE,aAAa;AACjG,IAAAA,IAAesK,GAAoBtK,GAAcuK,CAAQ;AAE3D,SAAIvK,MAAiByE,GAAYzE,CAAY,MAAM,UAAUyE,GAAYzE,CAAY,MAAM,UAAUsF,GAAiBtF,CAAY,EAAE,aAAa,YAAY,CAACwF,GAAkBxF,CAAY,KACnLyK,IAEFzK,KAAgB2F,GAAmBjvB,CAAO,KAAK+zB;AACxD;AAEA,MAAMC,KAAkB,eAAgBtsB,GAAM;AAC5C,QAAMusB,IAAoB,KAAK,mBAAmBH,IAC5CI,IAAkB,KAAK,eACvBC,IAAqB,MAAMD,EAAgBxsB,EAAK,QAAQ;AAC9D,SAAO;AAAA,IACL,WAAWisB,GAA8BjsB,EAAK,WAAW,MAAMusB,EAAkBvsB,EAAK,QAAQ,GAAGA,EAAK,QAAQ;AAAA,IAC9G,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAOysB,EAAmB;AAAA,MAC1B,QAAQA,EAAmB;AAAA,IAC5B;AAAA,EACL;AACA;AAEA,SAASC,GAAMp0B,GAAS;AACtB,SAAO4uB,GAAiB5uB,CAAO,EAAE,cAAc;AACjD;AAEA,MAAMsoB,KAAW;AAAA,EACf,uDAAAqJ;AAAA,EACA,oBAAAvD;AAAA,EACA,iBAAAiF;AAAA,EACA,iBAAAS;AAAA,EACA,iBAAAE;AAAA,EACA,gBAAA9B;AAAA,EACA,eAAAwB;AAAA,EACA,UAAAtD;AAAA,EACA,WAAA/B;AAAA,EACA,OAAA+F;AACF;AAGA,SAASC,GAAYr0B,GAASs0B,GAAQ;AACpC,MAAIC,IAAK,MACLC;AACJ,QAAMx6B,IAAOo0B,GAAmBpuB,CAAO;AACvC,WAASy0B,IAAU;AACjB,QAAIC;AACJ,iBAAaF,CAAS,IACrBE,IAAMH,MAAO,QAAQG,EAAI,WAAU,GACpCH,IAAK;AAAA,EACN;AACD,WAASI,EAAQC,GAAMC,GAAW;AAChC,IAAID,MAAS,WACXA,IAAO,KAELC,MAAc,WAChBA,IAAY,IAEdJ;AACA,UAAM;AAAA,MACJ,MAAAnD;AAAA,MACA,KAAAC;AAAA,MACA,OAAAhK;AAAA,MACA,QAAAC;AAAA,IACN,IAAQxnB,EAAQ;AAIZ,QAHK40B,KACHN,KAEE,CAAC/M,KAAS,CAACC;AACb;AAEF,UAAMsN,IAAW9P,GAAMuM,CAAG,GACpBwD,IAAa/P,GAAMhrB,EAAK,eAAes3B,IAAO/J,EAAM,GACpDyN,IAAchQ,GAAMhrB,EAAK,gBAAgBu3B,IAAM/J,EAAO,GACtDyN,IAAYjQ,GAAMsM,CAAI,GAEtBt4B,IAAU;AAAA,MACd,YAFiB,CAAC87B,IAAW,QAAQ,CAACC,IAAa,QAAQ,CAACC,IAAc,QAAQ,CAACC,IAAY;AAAA,MAG/F,WAAWnQ,GAAI,GAAGD,GAAI,GAAGgQ,CAAS,CAAC,KAAK;AAAA,IAC9C;AACI,QAAIK,IAAgB;AACpB,aAASC,EAAcC,GAAS;AAC9B,YAAMC,IAAQD,EAAQ,CAAC,EAAE;AACzB,UAAIC,MAAUR,GAAW;AACvB,YAAI,CAACK;AACH,iBAAOP,EAAO;AAEhB,QAAKU,IAOHV,EAAQ,IAAOU,CAAK,IAJpBb,IAAY,WAAW,MAAM;AAC3B,UAAAG,EAAQ,IAAO,IAAI;AAAA,QACpB,GAAE,GAAI;AAAA,MAIV;AACD,MAAAO,IAAgB;AAAA,IACjB;AAID,QAAI;AACF,MAAAX,IAAK,IAAI,qBAAqBY,GAAe;AAAA,QAC3C,GAAGn8B;AAAA;AAAA,QAEH,MAAMgB,EAAK;AAAA,MACnB,CAAO;AAAA,IACF,QAAW;AACV,MAAAu6B,IAAK,IAAI,qBAAqBY,GAAen8B,CAAO;AAAA,IACrD;AACD,IAAAu7B,EAAG,QAAQv0B,CAAO;AAAA,EACnB;AACD,SAAA20B,EAAQ,EAAI,GACLF;AACT;AAUA,SAASa,GAAW5N,GAAWC,GAAUzN,GAAQlhB,GAAS;AACxD,EAAIA,MAAY,WACdA,IAAU,CAAA;AAEZ,QAAM;AAAA,IACJ,gBAAAu8B,IAAiB;AAAA,IACjB,gBAAAC,IAAiB;AAAA,IACjB,eAAAC,IAAgB,OAAO,kBAAmB;AAAA,IAC1C,aAAAC,IAAc,OAAO,wBAAyB;AAAA,IAC9C,gBAAAC,IAAiB;AAAA,EAClB,IAAG38B,GACE48B,IAAczF,GAAczI,CAAS,GACrCmO,IAAYN,KAAkBC,IAAiB,CAAC,GAAII,IAAcpG,GAAqBoG,CAAW,IAAI,CAAE,GAAG,GAAGpG,GAAqB7H,CAAQ,CAAC,IAAI,CAAA;AACtJ,EAAAkO,EAAU,QAAQ,CAAAzC,MAAY;AAC5B,IAAAmC,KAAkBnC,EAAS,iBAAiB,UAAUlZ,GAAQ;AAAA,MAC5D,SAAS;AAAA,IACf,CAAK,GACDsb,KAAkBpC,EAAS,iBAAiB,UAAUlZ,CAAM;AAAA,EAChE,CAAG;AACD,QAAM4b,IAAYF,KAAeF,IAAcrB,GAAYuB,GAAa1b,CAAM,IAAI;AAClF,MAAI6b,IAAiB,IACjBC,IAAiB;AACrB,EAAIP,MACFO,IAAiB,IAAI,eAAe,CAAAhwB,MAAQ;AAC1C,QAAI,CAACiwB,CAAU,IAAIjwB;AACnB,IAAIiwB,KAAcA,EAAW,WAAWL,KAAeI,MAGrDA,EAAe,UAAUrO,CAAQ,GACjC,qBAAqBoO,CAAc,GACnCA,IAAiB,sBAAsB,MAAM;AAC3C,UAAIG;AACJ,OAACA,IAAkBF,MAAmB,QAAQE,EAAgB,QAAQvO,CAAQ;AAAA,IACxF,CAAS,IAEHzN;EACN,CAAK,GACG0b,KAAe,CAACD,KAClBK,EAAe,QAAQJ,CAAW,GAEpCI,EAAe,QAAQrO,CAAQ;AAEjC,MAAIwO,GACAC,IAAcT,IAAiBhF,GAAsBjJ,CAAS,IAAI;AACtE,EAAIiO,KACFU;AAEF,WAASA,IAAY;AACnB,UAAMC,IAAc3F,GAAsBjJ,CAAS;AACnD,IAAI0O,MAAgBE,EAAY,MAAMF,EAAY,KAAKE,EAAY,MAAMF,EAAY,KAAKE,EAAY,UAAUF,EAAY,SAASE,EAAY,WAAWF,EAAY,WACtKlc,KAEFkc,IAAcE,GACdH,IAAU,sBAAsBE,CAAS;AAAA,EAC1C;AACD,SAAAnc,KACO,MAAM;AACX,QAAIqc;AACJ,IAAAV,EAAU,QAAQ,CAAAzC,MAAY;AAC5B,MAAAmC,KAAkBnC,EAAS,oBAAoB,UAAUlZ,CAAM,GAC/Dsb,KAAkBpC,EAAS,oBAAoB,UAAUlZ,CAAM;AAAA,IACrE,CAAK,GACoB4b,QACpBS,IAAmBP,MAAmB,QAAQO,EAAiB,WAAU,GAC1EP,IAAiB,MACbL,KACF,qBAAqBQ,CAAO;AAAA,EAElC;AACA;AAsBA,MAAMjY,KAASsY,IAeT/J,KAAQgK,IAQR9L,KAAO+L,IAQP/1B,KAAOg2B,IAcPlN,KAAQmN,IAkBRzO,KAAkB,CAACT,GAAWC,GAAU3uB,MAAY;AAIxD,QAAMkZ,IAAQ,oBAAI,OACZ+D,IAAgB;AAAA,IACpB,UAAAqS;AAAA,IACA,GAAGtvB;AAAA,EACP,GACQ69B,IAAoB;AAAA,IACxB,GAAG5gB,EAAc;AAAA,IACjB,IAAI/D;AAAA,EACR;AACE,SAAO4kB,GAAkBpP,GAAWC,GAAU;AAAA,IAC5C,GAAG1R;AAAA,IACH,UAAU4gB;AAAA,EACd,CAAG;AACH;;;;;;ACrpBqB,IAAAE,KAArB,cAAwCn+B,EAAW;AAAA,EAAnD,cAAA;AAAA,UAAA,GAAA,SAAA,GAGE,KAAQ,iBAAiC,MAMe,KAAA,WAAA,IACF,KAAA,SAAA,IACG,KAAA,YAAA,UAEhB,KAAA,mBAAA,YACJ,KAAA,SAAA,GAEG,KAAA,YAAA,KACA,KAAA,WAAA;AAAA,EAAA;AAAA,EAExC,MAAM,oBAAoB;AACxB,UAAM,kBAAkB,GAExB,MAAM,KAAK,gBACX,KAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,QAAQo+B,GAAoC;AAChD,UAAM,QAAQA,CAAY,GAEtBA,EAAa,IAAI,QAAQ,MACvB,KAAK,SACP,KAAK,YAAY,IAEjB,KAAK,WAAW,IAIhBA,EAAa,IAAI,QAAQ,KAC3B,KAAK,mBAAmB,GAGtB,KAAK,WACP,MAAM,KAAK,gBACX,KAAK,eAAe;AAAA,EAExB;AAAA,EAEA,MAAc,qBAAqB;AACjC,UAAM,KAAK,cAEN,KAAA,iBAAiB,KAAK,cAA2B,kBAAkB,GAEpE,KAAK,0BAA0B,oBAC5B,KAAA,iBAAiB,KAAK,eAAe,iBAAiB;AAAA,MACzD,SAAS;AAAA,IAAA,CACV,EAAE,CAAC,IAGF,KAAK,kBACP,KAAK,YAAY;AAAA,EAErB;AAAA,EAEQ,cAAc;AAChB,IAAC,KAAK,mBAIV,KAAK,UAAU1B,GAAW,KAAK,gBAAgB,KAAK,OAAO,MAAM;AAC/D,WAAK,eAAe;AAAA,IAAA,CACrB;AAAA,EACH;AAAA,EAEA,MAAc,aAA4B;AACjC,WAAA,IAAI,QAAQ,CAAW/uB,MAAA;AAC5B,MAAI,KAAK,WACP,KAAK,QAAQ,GACb,KAAK,UAAU,QACO,sBAAA,MAAMA,GAAS,KAE7BA;IACV,CACD;AAAA,EACH;AAAA,EAEA,MAAc,iBAAiB;AAC7B,QAAI,KAAK,YAAY,CAAC,KAAK;AACzB;AAGF,UAAM,EAAE,GAAA3P,GAAG,GAAAV,GAAG,WAAAqvB,GAAW,gBAAAkD,EAAA,IAAmB,MAAMN;AAAA,MAChD,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,QACE,WAAW,KAAK;AAAA,QAChB,UAAU,KAAK;AAAA,QACf,YAAY;AAAA,UACVjK,GAAO,KAAK,MAAM;AAAA,UAClByM,GAAK;AAAA,UACL8B,GAAM;AAAA,UACN9rB,GAAK;AAAA,YACH,OAAO,CAAC,EAAE,OAAAolB,QAAY;AACpB,oBAAMkR,IAAY,KAAK;AAClB,mBAAA,MAAM,MAAM,QAAQA,IACrB,GAAGlR,EAAM,UAAU,KAAK,OACxB,IACC,KAAA,MAAM,MAAM,YAAY,KAAK,YAC9B,GAAG,KAAK,SAAS,OACjB,IAEJ,KAAK,MAAM,MAAM,YAAY,GAAG,KAAK,SAAS;AAAA,YAChD;AAAA,UAAA,CACD;AAAA,UACD,GAAI,KAAK,eACL,CAAC0D,GAAM,EAAE,SAAS,KAAK,cAAc,SAAS,EAAG,CAAA,CAAC,IAClD,CAAC;AAAA,QACP;AAAA,MACF;AAAA,IAAA;AAQF,QALO,OAAA,OAAO,KAAK,MAAM,OAAO;AAAA,MAC9B,MAAM,GAAG7yB,CAAC;AAAA,MACV,KAAK,GAAGV,CAAC;AAAA,IAAA,CACV,GAEG,KAAK,cAAc;AACrB,YAAM,EAAE,GAAGghC,GAAQ,GAAGC,MAAW1O,EAAe,OAC1C,CAAChC,CAAI,IAAIlB,EAAU,MAAM,GAAG,GAC5B6R,IACJ;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA,EACN3Q,CAAI,KAAK;AAEN,aAAA,OAAO,KAAK,aAAa,OAAO;AAAA,QACrC,MAAMyQ,KAAU,OAAO,GAAGA,CAAM,OAAO;AAAA,QACvC,KAAKC,KAAU,OAAO,GAAGA,CAAM,OAAO;AAAA,QACtC,CAACC,CAAU,GAAG;AAAA,MAAA,CACf;AAAA,IACH;AAAA,EACF;AAAA,EAEA,SAAS;AACA,WAAAj+B;AAAAA,yCAC8B,KAAK,kBAAkB;AAAA;AAAA;AAAA,sBAG1C,KAAK,SAAS,UAAU,MAAM;AAAA,gBACpC9D,EAAK,SAAS;AAAA,MACpB,iBAAiB,KAAK;AAAA,MACtB,gBAAgB,KAAK,qBAAqB;AAAA,MAC1C,oBAAoB,KAAK;AAAA,IAAA,CAC1B,CAAC;AAAA;AAAA,UAEA,KAAK,WACH8D;AAAAA;AAAAA,sBAEU9D,EAAK,gBAAgB;AAAA,MAC3B,CAAC,mBAAmB,KAAK,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG;AAAA,IAAA,CACpD,CAAC;AAAA,4CAEJ,EAAE;AAAA;AAAA;AAAA,EAGZ;AACF;AAvKqB0hC,GACZ,SAAS19B,EAAUC,EAAM;AAKfC,GAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GANIkzB,GAMF,WAAA,SAAA,CAAA;AACex9B,GAAA;AAAA,EAA/BsK,GAAM,eAAe;AAAA,GAPHkzB,GAOa,WAAA,gBAAA,CAAA;AAEYx9B,GAAA;AAAA,EAA3CC,EAAS,EAAE,SAAS,IAAM,MAAM,SAAS;AAAA,GATvBu9B,GASyB,WAAA,YAAA,CAAA;AACAx9B,GAAA;AAAA,EAA3CC,EAAS,EAAE,SAAS,IAAM,MAAM,SAAS;AAAA,GAVvBu9B,GAUyB,WAAA,UAAA,CAAA;AACfx9B,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAXRu9B,GAWU,WAAA,aAAA,CAAA;AAE7Bx9B,GAAA;AAAA,EADCC,EAAS,EAAE,SAAS,IAAM;AAAA,GAZRu9B,GAanB,WAAA,oBAAA,CAAA;AAC4Bx9B,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAdPu9B,GAcS,WAAA,UAAA,CAAA;AACCx9B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAfRu9B,GAeU,WAAA,QAAA,CAAA;AACDx9B,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAhBPu9B,GAgBS,WAAA,aAAA,CAAA;AACCx9B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAjBRu9B,GAiBU,WAAA,YAAA,CAAA;AAjBVA,KAArBx9B,GAAA;AAAA,EADCE,EAAc,cAAc;AAAA,GACRs9B,EAAA;;;;;;;ACCA,IAAAM,KAArB,cAA8C/X,GAA2B;AAAA,EAI/D,YAAYrqB,GAAe;AACjC,QAAI,KAAK,UAAU;AACjB,MAAAA,EAAE,eAAe,GACjBA,EAAE,gBAAgB;AAClB;AAAA,IACF;AAEA,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAW,eAAe;AACjB,WAAA,KAAK,MAAM;EACpB;AAAA,EAEA,SAAS;AACA,WAAAkE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAKO9D,EAAK,gBAAgB;AAAA,MAC3B,kBAAkB,KAAK;AAAA,MACvB,mBAAmB,KAAK;AAAA,MACxB,mBAAmB,KAAK;AAAA,MACxB,aAAa,KAAK,SAAS;AAAA,MAC3B,aAAa,KAAK,SAAS;AAAA,MAC3B,wBAAwB,KAAK,mBAAmB;AAAA,MAChD,uBAAuB,KAAK,mBAAmB;AAAA,IAAA,CAChD,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,sBAKUA,EAAK,cAAc,CAAC;AAAA,qBACrB,KAAK,IAAI;AAAA;AAAA,sBAER+N,EAAU,KAAK,KAAK,CAAC;AAAA,yBAClB,KAAK,OAAO;AAAA,0BACX,KAAK,QAAQ;AAAA,0BACb,KAAK,QAAQ;AAAA,yBACd,KAAK,UAAU,MAAM,IAAI;AAAA,6BACrB,KAAK,UAAU,SAAS,OAAO;AAAA,8BAC9B,KAAK,QAAQ;AAAA,8BACb,KAAK,UAAU,SAAS,IAAI;AAAA,uBACnC,KAAK,WAAW;AAAA,wBACf,KAAK,QAAQ;AAAA,uBACd,KAAK,OAAO;AAAA,uBACZ,KAAK,OAAO;AAAA,sBACb,KAAK,MAAM;AAAA;AAAA;AAAA,sBAGX/N,EAAK,kBAAkB;AAAA,MAC7B,4BAA4B,KAAK;AAAA,MACjC,2BAA2B,KAAK;AAAA,MAChC,2BAA2B,KAAK;AAAA,IAAA,CACjC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOMA,EAAK,2BAA2B;AAAA,MACtC,qCAAqC,KAAK;AAAA,MAC1C,yBAAyB,KAAK,yBAAyB;AAAA,MACvD,sBAAsB,KAAK,yBAAyB;AAAA,IAAA,CACrD,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKQ,KAAK,IAAI;AAAA,4BACL,KAAK,QAAQ;AAAA,4BACb,KAAK,QAAQ;AAAA,4BACb,KAAK,QAAQ;AAAA;AAAA,wBAEjB+N,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,gBAG7B,KAAK,eACPjK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,yBAKWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,oBAElD,KAAK,WAAW;AAAA;AAAA,eAErB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMb;AACF;AApGqBi0B,GAEZ,SAASh+B,EAAUC,EAAM;AADfC,GAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GADIwzB,GACF,WAAA,SAAA,CAAA;AADEA,KAArB99B,GAAA;AAAA,EADCE,EAAc,qBAAqB;AAAA,GACf49B,EAAA;;;;;;ACOA,IAAAC,KAArB,cAAyC3X,EAAoB;AAAA,EAC3D,cAAc;AACN,aACN,KAAK,aAAa,SAClB,KAAK,SAAS,IACd,KAAK,cAAc,IACnB,KAAK,mBAAmB,SACxB,KAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS;AACP,WAAO,KAAK;EACd;AACF;AAbqB2X,KAArB/9B,GAAA;AAAA,EADCE,EAAc,eAAe;AAAA,GACT69B,EAAA;;;;;;;ACUA,IAAAC,KAArB,cAAyCxc,GAAmB;AAAA,EAA5D,cAAA;AAAA,UAAA,GAAA,SAAA,GAG2D,KAAA,YAAA,gBACH,KAAA,SAAA,IAGJ,KAAA,WAAA,IACD,KAAA,UAAA,IAEI,KAAA,cAAA,IAMrD,KAAA,cAAc,MAAM;AAClB,WAAK,SAAS,KAAK,aAAa,IAAI,KAAK;IAAa,GAGxD,KAAA,gBAAgB,OAAO9hB,MAAyB;AAC9C,UAAI,EAAAA,EAAM,QAAQ,SAASA,EAAM,QAAQ,UAMzC;AAAA,YAFAA,EAAM,eAAe,GAEjBA,EAAM,QAAQ,WAAWA,EAAM,QAAQ;AACzC,iBAAO,KAAK,SAAS,KAAK,aAAa,IAAI,KAAK;AAG9C,YAAAA,EAAM,QAAQ;AAChB,sBAAK,aAAa,GACX,KAAK;AAIZ,YAAAA,EAAM,QAAQ,eACdA,EAAM,QAAQ,aACdA,EAAM,QAAQ,eACdA,EAAM,QAAQ;AAEV,iBAAC,KAAK,SAIV,SAHS,KAAK;AAOX,aAAA,aAAaA,EAAM,GAAG;AAAA;AAAA,IAAA,GAG7B,KAAA,oBAAoB,CAACA,MAAuB;AACtC,MAAAA,EAAM,OAAO,QAAQ,YACvB,KAAK,aAAa;AAAA,IACpB,GAGF,KAAA,0BAA0B,CAACA,MAAsB;AACzC,YAAA4N,IAAO5N,EAAM;AACnB,MAAI,QAAQ,CAAC4N,EAAK,SAAS,IAAI,KAC7B,KAAK,aAAa;AAAA,IACpB,GAGF,KAAA,cAAc,MAAM;AAClB,WAAK,KAAK,WAAW;AAAA,IAAA,GAGvB,KAAA,aAAa,MAAM;AACjB,WAAK,KAAK,UAAU;AAAA,IAAA,GA4EtB,KAAA,uBAAuB,CAAC5N,MAAuB;AACvC,YAAAuX,IAAM,OAAO,KAAKvX,EAAM,MAAM,EAAE,SAASA,EAAM,SAAS;AAC9D,WAAK,eAAeuX,GACpB,KAAK,QAAQA,GAAK,OAClB,KAAK,aAAa,GACb,KAAA,QAAQ,KAAK,aAAa,OAC1B,KAAA,KAAK,cAAc,KAAK,YAAY,GAEzC,KAAK,YAAY;AAAA,IAAA;AAAA,EACnB;AAAA,EAlFA,MAAM,aAAatU,GAAc;AAC/B,IAAI,KAAK,WAIT,KAAK,SAAS,IAEL,SAAA,iBAAiB,aAAa,KAAK,uBAAuB,GAEnE,MAAM,KAAK,gBACN,KAAA,WAAW,aAAaA,CAAG;AAAA,EAClC;AAAA,EAEA,MAAM,eAAe;AACf,IAAC,KAAK,WAIV,KAAK,SAAS,IAEL,SAAA,oBAAoB,aAAa,KAAK,uBAAuB,GAEtE,MAAM,KAAK,gBACX,KAAK,WAAW,eAEhB,KAAK,MAAM;AAAA,EACb;AAAA,EAEA,IAAW,eAAe;AACjB,WAAA,KAAK,eAAe;EAC7B;AAAA;AAAA,EAGA,IAAI,WAA0B;AACxB,WAAA,KAAK,UAAU,WACV,KAAK,UAAU,WAEfwe,GAAuB;AAAA,MAC5B,cAAc,KAAK,YAAY,CAAC,KAAK;AAAA,IAAA,CACtC;AAAA,EAEL;AAAA,EAEA,IAAI,oBAA4B;AAC9B,WAAOxlB,GAAE,+BAA+B;AAAA,EAC1C;AAAA,EAEA,gBAAgB;AACd,WAAO,KAAK,WAAY,OAAK,eAA+B;AAAA,EAC9D;AAAA,EAEA,iBAAiB;AACf,WAAO,KAAK,WAAW,KAAK,cAAA,IAAkB;AAAA,EAChD;AAAA,EAEA,cAAc;AACR,IAAC,KAAK,kBASH,KAAA,UAAU,YAAY,CAAA,CAAE,IAR7B,KAAK,UAAU;AAAA,MACb;AAAA,QACE,cAAc,KAAK,YAAY,CAAC,KAAK;AAAA,MACvC;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAKX;AAAA,EAEA,cAAc+D,GAAc;AAC1B,IAAAA,EAAM,eAAe;AAAA,EACvB;AAAA,EAaA,uBAAuB;AACd,WAAAE;AAAAA;AAAAA;AAAAA;AAAAA,eAII9D,EAAK,UAAU;AAAA,MACtB,cAAc,KAAK,SAAS;AAAA,MAC5B,cAAc,KAAK,SAAS;AAAA,MAC5B,oBAAoB,KAAK;AAAA,MACzB,oBAAoB,KAAK;AAAA,MACzB,kBAAkB,KAAK;AAAA,MACvB,mBAAmB,KAAK;AAAA,MACxB,mBAAmB,KAAK,WAAW;AAAA,MACnC,iBAAiB,KAAK,WAAW;AAAA,MACjC,wBAAwB,KAAK;AAAA,MAC7B,oBAAoB,KAAK;AAAA,IAAA,CAC1B,CAAC;AAAA,uBACe,KAAK,MAAM;AAAA;AAAA;AAAA,sCAGI,KAAK,WAAW,aAAa,EAAE;AAAA,sBAC/C,KAAK,QAAQ;AAAA,uBACZ,aAAa;AAAA,8BACN,KAAK,cAAc,EAAE;AAAA,kBACjC,KAAK,QAAQ;AAAA,kBACb,KAAK,QAAQ;AAAA,mBACZ,KAAK,SAAS;AAAA,kBACf,KAAK,QAAQ;AAAA,cACjB,KAAK,UAAU;AAAA,eACd,KAAK,WAAW;AAAA,iBACd,KAAK,aAAa;AAAA,eACpB,KAAK,WAAW;AAAA;AAAA,WAEpB,KAAK,eAAe,KAAK,aAAa,OAAO,KAAK,WAAW;AAAA;AAAA;AAAA,UAG9D,KAAK,UACH8D,iEACAA;AAAAA;AAAAA,qBAES;AAAA;AAAA;AAAA,EAGnB;AAAA,EAEA,mBAAmB;AACV,WAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,aAKEiK,EAAU,KAAK,IAAI,CAAC;AAAA,cACnBA,EAAU,KAAK,KAAK,CAAC;AAAA,2BACR,KAAK,oBAAoB;AAAA,qBAC/B,KAAK,iBAAiB;AAAA;AAAA;AAAA,EAGzC;AAAA,EAEA,SAAS;AACA,WAAAjK;AAAAA;AAAAA;AAAAA;AAAAA,kBAIO,KAAK,IAAI;AAAA,sBACL,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,2BACR,KAAK,aAAa;AAAA,oBACzB,KAAK,MAAM;AAAA,sBACT,KAAK,QAAQ;AAAA;AAAA,kBAEjBiK,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA,UAE7B,KAAK,WACPjK;AAAAA;AAAAA,oBAEY,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BASN;AAAA;AAAA,QAElB,KAAK,eACPA;AAAAA;AAAAA;AAAAA;AAAAA,iBAIWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,YAElD,KAAK,WAAW;AAAA;AAAA,OAErB;AAAA;AAAA,UAEI,KAAK,WAWJjK;AAAAA,gBACI,KAAK,sBAAsB;AAAA,mCACR,KAAK,MAAM;AAAA,mBAC3B,KAAK,kBAAkB;AAAA;AAAA,gBAb9BA;AAAAA;AAAAA;AAAAA,wBAGY,KAAK,MAAM;AAAA,0BACT,EAAK;AAAA,0BACL,KAAK,SAAS;AAAA,0BACdiK,EAAU,KAAK,SAAS,CAAC;AAAA,sBAC7B,KAAK,IAAI;AAAA,gBACf,KAAK,qBAAsB,CAAA,IAAI,KAAK,kBAAkB;AAAA,4BAOzD;AAAA,UACH,KAAK,YACPjK;AAAAA;AAAAA,iBAESiK,EAAU,KAAK,YAAY,CAAC;AAAA,kBAC3BA,EAAU,KAAK,IAAmB,CAAC;AAAA;AAAA,oBAEjC,KAAK,MAAM;AAAA,YACnB,KAAK,QAAQ;AAAA,2BACE;AAAA;AAAA,EAEzB;AACF;AA5RqBm0B,GAcZ,SAASl+B,EAAUC,EAAM;AAbfC,GAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GADI0zB,GACF,WAAA,iBAAA,CAAA;AACYh+B,GAAA;AAAA,EAA5BsK,GAAM,oBAAoB;AAAA,GAFR0zB,GAEU,WAAA,cAAA,CAAA;AACAh+B,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAHR+9B,GAGU,WAAA,aAAA,CAAA;AACeh+B,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB+9B,GAIyB,WAAA,UAAA,CAAA;AAChCh+B,GAAA;AAAA,EAAXC,EAAS;AAAA,GALS+9B,GAKP,WAAA,eAAA,CAAA;AACiBh+B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR+9B,GAMU,WAAA,QAAA,CAAA;AACAh+B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAPR+9B,GAOU,WAAA,YAAA,CAAA;AACAh+B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GARR+9B,GAQU,WAAA,WAAA,CAAA;AACDh+B,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GATP+9B,GASS,WAAA,aAAA,CAAA;AACCh+B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR+9B,GAUU,WAAA,eAAA,CAAA;AAEpBh+B,GAAA;AAAA,EAARohB,EAAM;AAAA,GAZY4c,GAYV,WAAA,gBAAA,CAAA;AAZUA,KAArBh+B,GAAA;AAAA,EADCE,EAAc,eAAe;AAAA,GACT89B,EAAA;;;;;;;ACjCA,IAAAC,KAArB,cAA2C5+B,EAAW;AAAA,EAAtD,cAAA;AAAA,UAAA,GAAA,SAAA,GAE6B,KAAA,OAAA,KACI,KAAA,OAAA,MACY,KAAA,cAAA;AAAA,EAAA;AAAA,EAG3C,SAAS;AACA,WAAAO;AAAAA;AAAAA,uBAEY,KAAK,WAAW;AAAA;AAAA,eAExB,KAAK,IAAI;AAAA,gBACR9D;AAAAA,MACN;AAAA,MACA,cAAc,KAAK,IAAI;AAAA,MACvB,cAAc,KAAK,SAAS;AAAA,IAAA,CAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP;AACF;AAxBqBmiC,GAKZ,SAASn+B,EAAUC,EAAM;AAJHC,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GADRg+B,GACU,WAAA,aAAA,CAAA;AACjBj+B,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSg+B,GAEP,WAAA,QAAA,CAAA;AACAj+B,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHSg+B,GAGP,WAAA,QAAA,CAAA;AACiBj+B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAJRg+B,GAIU,WAAA,eAAA,CAAA;AAJVA,KAArBj+B,GAAA;AAAA,EADCE,EAAc,kBAAkB;AAAA,GACZ+9B,EAAA;;;;;;;ACQA,IAAAC,KAArB,cAA0C7+B,EAAW;AAAA,EAArD,cAAA;AAAA,UAAA,GAAA,SAAA,GACuE,KAAA,UAAA,WACT,KAAA,OAAA;AAAA,EAAA;AAAA,EAM5D,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iBAKM9D,EAAK,WAAW;AAAA,MACvB,CAAC,YAAY,KAAK,IAAI,EAAE,GAAG,KAAK;AAAA,MAChC,CAAC,YAAY,KAAK,OAAO,EAAE,GAAG,KAAK;AAAA,IAAA,CACpC,CAAC;AAAA;AAAA;AAAA,iBAGO,KAAK,IAAI;AAAA,uBACH+N,EAAU,KAAK,UAAU,CAAC;AAAA;AAAA;AAAA,UAGvC,KAAK,OACHjK,8CAAiD,KAAK,IAAI,aAC1D8J,CAAO;AAAA;AAAA;AAAA,EAGjB;AACF;AA9BqBw0B,GAMZ,SAASp+B,EAAUC,EAAM;AALWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GADtBi+B,GACwB,WAAA,WAAA,CAAA;AACAl+B,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBi+B,GAEwB,WAAA,QAAA,CAAA;AACfl+B,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAHPi+B,GAGS,WAAA,cAAA,CAAA;AACel+B,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAJtBi+B,GAIwB,WAAA,QAAA,CAAA;AAJxBA,KAArBl+B,GAAA;AAAA,EADCE,EAAc,gBAAgB;AAAA,GACVg+B,EAAA;;;;;;;ACPA,IAAAC,KAArB,cAAwC9+B,EAAW;AAAA,EAAnD,cAAA;AAAA,UAAA,GAAA,SAAA,GAC4C,KAAA,YAAA,UACS,KAAA,YAAA,IACE,KAAA,cAAA,IAErD,KAAQ,WAAoB;AAAA,EAAA;AAAA,EAE5B,IAAI,QAAQG,GAAgB;AAC1B,SAAK,WAAWA;AAAA,EAClB;AAAA,EACA,IAAI,UAAU;AAET,WAAA,CAAC,KAAK,YAAY,KAAK,cAAc,YACtC,KAAK,cAAc,mBAEZ,MAIN,CAAC,KAAK,YAAY,KAAK,cAAc,SACtC,KAAK,cAAc,gBAEZ,MAGF,KAAK;AAAA,EACd;AAAA,EAIA,gBACEiuB,GACA2Q,GACAC,GACAC,GACA;AACI,WAAA7Q,MAAc,SAASA,MAAc,gBAChC,gBAAgB4Q,IAAc,qBAAqBD,CAAO,MAAM,GAAG,mBAAmBE,IAAY,qBAAqBF,CAAO,MAAM,GAAG,MAGzI,eAAeC,IAAc,qBAAqBD,CAAO,MAAM,GAAG,oBAAoBE,IAAY,qBAAqBF,CAAO,MAAM,GAAG;AAAA,EAChJ;AAAA,EAEA,SAAS;AACA,WAAAx+B;AAAAA;AAAAA,gBAEK9D,EAAK,SAAS;AAAA,MACpB,CAAC,aAAa,KAAK,OAAO,EAAE,GAAG,KAAK;AAAA,MACpC,CAAC,mBAAmB,KAAK,SAAS,EAAE,GAAG,KAAK;AAAA,IAAA,CAC7C,CAAC;AAAA,gBACM+N;AAAAA,MACN,KAAK;AAAA,QACH,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,IAAA,CACD;AAAA;AAAA;AAAA;AAAA,EAIP;AACF;AA9DqBs0B,GA4BZ,SAASr+B,EAAUC,EAAM;AA3BpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADSk+B,GACP,WAAA,aAAA,CAAA;AACiBn+B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAFRk+B,GAEU,WAAA,aAAA,CAAA;AACAn+B,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAHRk+B,GAGU,WAAA,eAAA,CAAA;AAIzBn+B,GAAA;AAAA,EADHC,EAAS,EAAE,MAAM,QAAQ;AAAA,GANPk+B,GAOf,WAAA,WAAA,CAAA;AAPeA,KAArBn+B,GAAA;AAAA,EADCE,EAAc,cAAc;AAAA,GACRi+B,EAAA;;;;;;;ACqBA,IAAAI,KAArB,cAAyCxY,GAA2B;AAAA,EAIlE,cAAc;AACN;EACR;AAAA,EAIQ,cAAc;AACf,SAAA,UAAU,CAAC,KAAK;AAErB,UAAM,EAAE,SAAAE,GAAS,OAAAzmB,GAAO,UAAA2mB,EAAA,IAAa,MAE/BzmB,IAAQ,IAAI,YAAY,cAAc;AAAA,MAC1C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQ,EAAE,SAAAumB,GAAS,OAAAzmB,GAAO,UAAA2mB,EAAS;AAAA,IAAA,CACpC;AAED,SAAK,cAAczmB,CAAK,GAExB,KAAK,YAAY;AAAA,EACnB;AAAA,EAEA,IAAW,eAAe;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAcA,GAAc;AAC1B,IAAAA,EAAM,eAAe,GAErB,QAAQ,IAAI,sBAAsB;AAAA,EACpC;AAAA,EAEA,SAAS;AACA,WAAAE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAKO9D,EAAK,iBAAiB;AAAA,MAC5B,mBAAmB,KAAK;AAAA,MACxB,oBAAoB,KAAK;AAAA,MACzB,oBAAoB,KAAK;AAAA,MACzB,cAAc,KAAK,SAAS;AAAA,MAC5B,cAAc,KAAK,SAAS;AAAA,MAC5B,wBAAwB,KAAK,mBAAmB;AAAA,MAChD,uBAAuB,KAAK,mBAAmB;AAAA,IAAA,CAChD,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAQa,KAAK,OAAO;AAAA,0BACX,KAAK,QAAQ;AAAA,0BACb,KAAK,QAAQ;AAAA,2BACZ+N,EAAU,KAAK,iBAAiB,CAAC;AAAA,8CACd,KAAK,WAAW,aAAa,EAAE;AAAA,6BAChD,KAAK,UAAU,SAAS,OAAO;AAAA,8BAC9B,KAAK,UAAU,SAAS,IAAI;AAAA,yBACjC,KAAK,aAAa;AAAA,uBACpB,KAAK,WAAW;AAAA,uBAChB,KAAK,OAAO;AAAA,sBACb,KAAK,MAAM;AAAA,uBACV,KAAK,OAAO;AAAA;AAAA;AAAA,sBAGb/N;AAAAA,MACN;AAAA,MACA,EAAE,4BAA4B,KAAK,SAAS;AAAA,MAC5C,EAAE,2BAA2B,KAAK,QAAQ;AAAA,MAC1C,EAAE,2BAA2B,KAAK,QAAQ;AAAA,IAAA,CAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBASOA,EAAK,2BAA2B;AAAA,MACtC,qCAAqC,KAAK;AAAA,MAC1C,yBAAyB,KAAK,yBAAyB;AAAA,MACvD,sBAAsB,KAAK,yBAAyB;AAAA,IAAA,CACrD,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKQ,KAAK,IAAI;AAAA,4BACL,KAAK,QAAQ;AAAA,4BACb,KAAK,QAAQ;AAAA,iCACR,KAAK,aAAa;AAAA;AAAA,4BAEvB,KAAK,QAAQ;AAAA,wBACjB+N,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,gBAG7B,KAAK,eACPjK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,yBAKWiK,EAAU,KAAK,IAA6B,CAAC;AAAA;AAAA,oBAElD,KAAK,WAAW;AAAA;AAAA,eAErB;AAAA;AAAA;AAAA,YAGH,KAAK,YACPjK;AAAAA;AAAAA;AAAAA,qBAGWiK,EAAU,KAAK,YAAY,CAAC;AAAA,qBAC5BA,EAAU,KAAK,IAAI,CAAe;AAAA;AAAA,wBAE/B,KAAK,MAAM;AAAA,gBACnB,KAAK,QAAQ;AAAA;AAAA,WAElB;AAAA;AAAA;AAAA;AAAA,EAIT;AACF;AArIqB00B,GAQZ,SAASz+B,EAAUC,EAAM;AAPfC,GAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GADIi0B,GACF,WAAA,SAAA,CAAA;AACLv+B,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFSs+B,GAEP,WAAA,qBAAA,CAAA;AAFOA,KAArBv+B,GAAA;AAAA,EADCE,EAAc,eAAe;AAAA,GACTq+B,EAAA;;;;;;;ACtBA,IAAAC,KAArB,cAAsCn/B,EAAW;AAAA,EAAjD,cAAA;AAAA,UAAA,GAAA,SAAA,GAIyD,KAAA,WAAA,IAE9C,KAAQ,YAAqB,IAEtC,KAAQ,mBAAoD;AAAA,EAAA;AAAA,EAE5D,oBAAoB;AAClB,UAAM,kBAAkB,GAExB,KAAK,eAAe;AAAA,MAClB;AAAA,MACA,CAAC3D,MAAyB;AACxB,QAAI,KAAK,UAAUA,EAAE,OAAO,SAC1B,KAAK,YAAY,IACjB,KAAK,cAAc,KACV,KAAK,cACd,KAAK,YAAY,IACjB,KAAK,cAAc;AAAA,MAEvB;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,wBAAwB+iC,GAAe;AACrC,QAAI,KAAK,eAAe,aAAa,aAAa,MAAM;AAAQ;AAEhE,UAAMC,IAAW,KAAK;AAAA,MACpB;AAAA,IAAA;AAGF,IAAIA,MACF,KAAK,mBAAmBA,GAExBA,EAAS,OAAO;AAAA,EAEpB;AAAA,EAEA,gBAAgB;AACd,QAAI,KAAK,eAAe,aAAa,aAAa,MAAM;AAAQ;AAIhE,IAFgB,KAAK,cAAc,qBAAqB,GAE/C,OAAO;AAAA,EAClB;AAAA,EAEA,gBAAgB;AACd,QAAI,KAAK,eAAe,aAAa,aAAa,MAAM,UAEpD,KAAK,kBAAkB;AACnB,YAAAC,IAAc,SAAS,cAAc,KAAK;AACpC,MAAAA,EAAA,aAAa,QAAQ,SAAS,GAC1CA,EAAY,YAAY,KAAK,iBAAiB,QAAQ,UAAU,EAAI,CAAC,GACrE,KAAK,YAAYA,CAAW;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,SAAS;AACA,WAAA/+B;AAAAA,WACA,KAAK,KAAK;AAAA;AAAA,iBAEJ,KAAK,YAAY,IAAI,EAAE;AAAA,cAC1B9D,EAAK,aAAa;AAAA,MACxB,uBAAuB,KAAK;AAAA,IAAA,CAC7B,CAAC;AAAA;AAAA;AAAA,yCAGiC,KAAK,uBAAuB;AAAA;AAAA,EAEnE;AACF;AAzEqB0iC,GACZ,SAAS1+B,EAAUC,EAAM;AAEWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAHtBu+B,GAGwB,WAAA,SAAA,CAAA;AACCx+B,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBu+B,GAIyB,WAAA,YAAA,CAAA;AAE3Bx+B,GAAA;AAAA,EAAhBohB,EAAM;AAAA,GANYod,GAMF,WAAA,aAAA,CAAA;AANEA,KAArBx+B,GAAA;AAAA,EADCE,EAAc,YAAY;AAAA,GACNs+B,EAAA;ACzBrB;AAAA;AAAA;AAAA;AAAA;AAKA,UAASI,GAAG/iC,GAAED,GAAE;AAAC,MAAYC,MAAT,QAAW;AAAC,QAAI,IAAE;AAAE,eAAUF,KAAKE;AAAE,YAAMD,EAAED,GAAE,GAAG;AAAA,EAAC;AAAC;;;;;;;ACkCnD,IAAAkjC,KAArB,cAA2Cx/B,EAAW;AAAA,EAAtD,cAAA;AAAA,UAAA,GAAA,SAAA,GAQgE,KAAA,OAAA,MAUvC,KAAA,cAAA,IAEuC,KAAA,SAAA,IAI9D,KAAQ,eAA6B,IACrC,KAAQ,gBAA0B,IAClC,KAAQ,eAAe;AAAA,EAAA;AAAA,EAEvB,cAAcy/B,GAAe;AAC3B,QAAI,CAACA,GAAO;AACV,cAAQ,KAAK,eAAe;AAC5B;AAAA,IACF;AAEK,SAAA,KAAK,kBAAkB,EAAE,OAAAA,KAAS,EAAE,SAAS,IAAO,GAErD,KAAK,iBACP,KAAK,eAAe;AAAA,EAExB;AAAA,EAEA,yBACEv/B,GACAwL,GACAvL,GACM;AACA,UAAA,yBAAyBD,GAAMwL,GAAUvL,CAAK,GAChDD,EAAK,kBAAA,MAAwB,mBAAmBC,MAAUuL,KAC5D,eAAe,YAAY,YAAY,EAAE,KAAK,MAAM;AAClD,MAAIvL,KAAS,KAAK,cAAc,SAASA,CAAK,KAC5C,KAAK,cAAcA,CAAK;AAAA,IAC1B,CACD;AAAA,EAEL;AAAA,EAEA,iBAAiBE,GAAc;AACvB,UAAAq/B,IACJr/B,EAAM,QACL,iBAAiB;AAAA,MAClB,SAAS;AAAA,MACT,UAAU;AAAA,IAAA,CACX,GAEKs/B,IAA4B,CAAA,GAC5BC,IAAyB,CAAA;AAE/B,IAAAF,EAAY,QAAQ,CAAOG,MAAA;AACnB,YAAAJ,IAAQI,EAAI,aAAa,OAAO,GAChC/Y,IAAW+Y,EAAI,aAAa,UAAU,GAEtCC,IAAWD,GAAK,YAAY;AAAA,QAChC;AAAA,MAAA;AAGF,MAAAF,EAAY,KAAK;AAAA,QACf,eAAeG,GAAU,cAAc,EAAE,SAAS,IAAM;AAAA,QACxD,UAAAhZ;AAAA,QACA,OAAA2Y;AAAA,MAAA,CACD,GAEG,CAAC3Y,KAAY2Y,KACfG,EAAa,KAAKH,CAAK;AAAA,IACzB,CACD,GAED,KAAK,eAAeE,GACpB,KAAK,gBAAgBC,GAEjB,CAAC,KAAK,iBAAiB,KAAK,cAAc,SACvC,KAAA,gBAAgB,KAAK,cAAc,CAAC,IAChC,KAAK,gBACT,KAAA,cAAc,KAAK,aAAa,GAGvC,KAAK,cAAc;AAAA,EACrB;AAAA,EAEA,YAAYH,GAAsB;AAC5B,IAAAA,MAAU,KAAK,iBAAiB,CAACA,MAErC,KAAK,gBAAgBA,GACrB,KAAK,cAAcA,CAAK;AAAA,EAC1B;AAAA,EAEA,cAAcp/B,GAAsB;AAClC,UAAM0/B,IAAkB,KAAK,cAAc,QAAQ,KAAK,aAAa;AACrE,QAAIC,IAAO;AAEX,YAAQ3/B,EAAM,KAAK;AAAA,MACjB,KAAK;AACH;AACE,cAAI0/B,IAAkB,GAAG;AACvB,kBAAME,IAAcF,IAAkB;AACtC,iBAAK,YAAY,KAAK,cAAcE,CAAW,CAAC,GAC3C,KAAA,eAAeA,CAAW,EAAE,MAAM;AAAA,UACzC;AACO,UAAAD,IAAA;AAAA,QACT;AACA;AAAA,MAEF,KAAK;AACH;AACE,cAAID,IAAkB,KAAK,cAAc,SAAS,GAAG;AACnD,kBAAME,IAAcF,IAAkB;AACtC,iBAAK,YAAY,KAAK,cAAcE,CAAW,CAAC,GAC3C,KAAA,eAAeA,CAAW,EAAE,MAAM;AAAA,UACzC;AACO,UAAAD,IAAA;AAAA,QACT;AACA;AAAA,MAEF,KAAK;AACH,aAAK,YAAY,KAAK,cAAc,CAAC,CAAC,GACjC,KAAA,eAAe,CAAC,EAAE,MAAM,GACtBA,IAAA;AACP;AAAA,MAEF,KAAK;AACH,aAAK,YAAY,KAAK,cAAc,KAAK,cAAc,SAAS,CAAC,CAAC,GAClE,KAAK,eAAe,KAAK,cAAc,SAAS,CAAC,EAAE,SAC5CA,IAAA;AACP;AAAA,IAIJ;AAEA,IAAIA,MACF3/B,EAAM,gBAAgB,GACtBA,EAAM,eAAe;AAAA,EAEzB;AAAA,EAEA,SAAS;AACA,WAAAE;AAAAA;AAAAA;AAAAA;AAAAA,uBAIY9D,EAAK,kBAAkB;AAAA,MAClC,qBAAqB,KAAK;AAAA,IAAA,CAC3B,CAAC;AAAA,YACAyjC;AAAAA,MACA,KAAK;AAAA,MACL,CAAOL,MAAAt/B;AAAAA;AAAAA;AAAAA,6BAGUs/B,EAAI,QAAQ;AAAA;AAAA,gCAETr1B,EAAUq1B,EAAI,SAAS,MAAS,CAAC;AAAA,iCAChC,KAAK,kBAAkBA,EAAI,KAAK;AAAA,4BACrC,KAAK,kBAAkBA,EAAI,QAAQ,IAAI,EAAE;AAAA;AAAA,wBAE7CpjC,EAAK,OAAO;AAAA,QAClB,iBAAiB,KAAK,kBAAkBojC,EAAI;AAAA,QAC5C,iBAAiBA,EAAI;AAAA,QACrB,WAAW,KAAK,SAAS;AAAA,QACzB,WAAW,KAAK,SAAS;AAAA,MAAA,CAC1B,CAAC;AAAA,yBACO,MAAM;AACR,aAAA,YAAYA,EAAI,KAAK;AAAA,MAAA,CAC3B;AAAA,2BACU,KAAK,aAAa;AAAA,kBAC3BA,EAAI,aAAa;AAAA;AAAA;AAAA,IAAA,CAGxB;AAAA;AAAA;AAAA;AAAA,8BAImB,KAAK,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAIjD;AACF;AAnMqBL,GACZ,SAAS/+B,EAAUC,EAAM;AAMhCC,GAAA;AAAA,EAJCC,EAAS;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EAAA,CACV;AAAA,GANkB4+B,GAOnB,WAAA,iBAAA,CAAA;AAC2C7+B,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GARtB4+B,GAQwB,WAAA,QAAA,CAAA;AAU3C7+B,GAAA;AAAA,EATCC,EAAS;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,MACT,eAAe,CAACT,MAAmBA,MAAU;AAAA,MAC7C,aAAa,CAACA,MAAoBA,IAAQ,SAAS;AAAA,IACrD;AAAA,EAAA,CACD;AAAA,GAjBkBq/B,GAkBnB,WAAA,eAAA,CAAA;AAE4C7+B,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GApBvB4+B,GAoByB,WAAA,UAAA,CAAA;AAEN7+B,GAAA;AAAA,EAArCmlB,GAAS,0BAA0B;AAAA,GAtBjB0Z,GAsBmB,WAAA,kBAAA,CAAA;AAtBnBA,KAArB7+B,GAAA;AAAA,EADCE,EAAc,kBAAkB;AAAA,GACZ2+B,EAAA;;;;;;;AClBA,IAAAW,KAArB,cAAwCngC,EAAW;AAAA,EAAnD,cAAA;AAAA,UAAA,GAAA,SAAA,GAE+B,KAAO,OAAO,QACU,KAAA,SAAA;AAAA,EAAA;AAAA,EAI3C,aACR6H,GACM;AACN,SAAK,KAAK,QAAQ,CAACu4B,GAAK39B,MAAU;AAChC,MAAIA,MAAU,KAAK,KAAK,SAAS,KAC/B29B,EAAI,gBAAgB,MAAM;AAAA,IAC5B,CACD;AAAA,EACH;AAAA,EAEA,SAAS;AACA,WAAA7/B;AAAAA,EACT;AACF;AApBqB4/B,GAKZ,SAAS1/B,EAAUC,EAAM;AAJPC,GAAA;AAAA,EAAxBM,GAAsB;AAAA,GADJk/B,GACM,WAAA,QAAA,CAAA;AACWx/B,GAAA;AAAA,EAAnCC,EAAS,EAAE,SAAS,IAAM;AAAA,GAFRu/B,GAEiB,WAAA,QAAA,CAAA;AACQx/B,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAHvBu/B,GAGyB,WAAA,UAAA,CAAA;AAHzBA,KAArBx/B,GAAA;AAAA,EADCE,EAAc,cAAc;AAAA,GACRs/B,EAAA;;;;;;;ACDA,IAAAE,KAArB,cAA4CrgC,EAAW;AAAA,EAAvD,cAAA;AAAA,UAAA,GAAA,SAAA,GAKE,KAAO,OAAO;AAAA,EAAA;AAAA,EAEd,SAAS;AACA,WAAAO;AAAAA,EACT;AACF;AAVqB8/B,GACZ,SAAS5/B,EAAUC,EAAM;AAEYC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAHvBy/B,GAGyB,WAAA,QAAA,CAAA;AAErC1/B,GAAA;AAAA,EADNC,EAAS,EAAE,SAAS,IAAM;AAAA,GAJRy/B,GAKZ,WAAA,QAAA,CAAA;AALYA,KAArB1/B,GAAA;AAAA,EADCE,EAAc,mBAAmB;AAAA,GACbw/B,EAAA;;;;;;;ACAA,IAAAC,KAArB,cAA8CtgC,EAAW;AAAA,EAAzD,cAAA;AAAA,UAAA,GAAA,SAAA,GAKE,KAAO,OAAO;AAAA,EAAA;AAAA,EAEd,SAAS;AACA,WAAAO;AAAAA,EACT;AACF;AAVqB+/B,GACZ,SAAS7/B,EAAUC,EAAM;AAEYC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAHvB0/B,GAGyB,WAAA,QAAA,CAAA;AAErC3/B,GAAA;AAAA,EADNC,EAAS,EAAE,SAAS,IAAM;AAAA,GAJR0/B,GAKZ,WAAA,QAAA,CAAA;AALYA,KAArB3/B,GAAA;AAAA,EADCE,EAAc,qBAAqB;AAAA,GACfy/B,EAAA;;;;;;;ACHA,IAAAC,KAArB,cAA2CvgC,EAAW;AAAA,EAAtD,cAAA;AAAA,UAAA,GAAA,SAAA,GAIE,KAAO,OAAO,OAEuC,KAAA,SAAA;AAAA,EAAA;AAAA,EAErD,SAAS;AACA,WAAAO;AAAAA,EACT;AACF;AAXqBggC,GACZ,SAAS9/B,EAAUC,EAAM;AAGzBC,GAAA;AAAA,EADNC,EAAS,EAAE,SAAS,IAAM;AAAA,GAHR2/B,GAIZ,WAAA,QAAA,CAAA;AAEqC5/B,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GANvB2/B,GAMyB,WAAA,UAAA,CAAA;AANzBA,KAArB5/B,GAAA;AAAA,EADCE,EAAc,kBAAkB;AAAA,GACZ0/B,EAAA;;;;;;;ACoCA,IAAAC,KAArB,cAA2Cre,GAAmB;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEyD,KAAA,WAAA,IACG,KAAA,cAAA,IAGd,KAAA,OAAA,GAElB,KAAA,cAAA,IAGT,KAAA,QAAA;AAAA,EAAA;AAAA,EAIjB,IAAW,eAAe;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ,kBAAkB9hB,GAAc;AAE/B,KADQA,GAAO,QACf,aAAa,QAAQ,MAAM;AAAA,EACpC;AAAA,EAEA,MAAM,oBAAoB;AACxB,UAAM,kBAAkB,GAExB,MAAM,KAAK,gBACN,KAAA,MAAM,QAAQ,KAAK,SAAS,IAC5B,KAAA,QAAQ,KAAK,MAAM,MAAM;AAAA,EAChC;AAAA,EAEA,UAAU;AACR,UAAM,QAAQ,GAET,KAAA,QAAQ,KAAK,MAAM,MAAM,QACzB,KAAA,QAAQ,KAAK,MAAM,OACxB,KAAK,KAAK,oBAAoB,EAAE,OAAO,KAAK,OAAO,GAEnD,KAAK,YAAY;AAAA,EACnB;AAAA,EAEA,WAAW;AACT,UAAM,SAAS,GAEV,KAAA,QAAQ,KAAK,MAAM,MAAM,QACzB,KAAA,QAAQ,KAAK,MAAM,OACxB,KAAK,KAAK,oBAAoB,EAAE,OAAO,KAAK,OAAO,GAEnD,KAAK,YAAY;AAAA,EACnB;AAAA,EAEA,SAAShE,GAAU;AACjB,UAAM4S,IAAS5S,EAAE,QACXokC,IAAYxxB,EAAO,MAAM;AAAA,MAC7BA,EAAO;AAAA,MACPA,EAAO;AAAA,IAAA;AAET,SAAK,KAAK,cAAc,EAAE,OAAOwxB,EAAW,CAAA;AAAA,EAC9C;AAAA,EAEA,cAAcpgC,GAAc;AAC1B,IAAAA,EAAM,eAAe;AAAA,EACvB;AAAA,EAEQ,gBAAgB;AAChB,UAAAqgC,IAAW,KAAK,cAelBr2B,IAdA9J;AAAAA;AAAAA;AAAAA,kBAGU9D,EAAK,qBAAqB;AAAA,MAChC,4BAA4B,KAAK,WAAW;AAAA,IAAA,CAC7C,CAAC;AAAA;AAAA,kBAEM,KAAK,IAA6B;AAAA;AAAA;AAAA,YAGxC,KAAK,KAAK;AAAA;AAAA;AAAA;AAMX,WAAA8D;AAAAA;AAAAA,UAED,KAAK,YAAY,KAAK,gBAAiB,CAAA,IAAImgC,CAAO;AAAA;AAAA;AAAA,EAG1D;AAAA,EAEA,SAAS;AACP,WAAO,KAAK,YAAYngC;AAAAA;AAAAA;AAAAA,gBAGZ9D;AAAAA,MACN;AAAA,MACA,EAAE,gBAAgB,KAAK,SAAS,KAAK;AAAA,MACrC,EAAE,gBAAgB,KAAK,SAAS,KAAK;AAAA,MACrC,EAAE,qBAAqB,KAAK,WAAW,UAAU;AAAA,MACjD,EAAE,mBAAmB,KAAK,WAAW,QAAQ;AAAA,MAC7C,EAAE,sBAAsB,KAAK,SAAS;AAAA,MACtC,EAAE,sBAAsB,KAAK,SAAS;AAAA,MACtC,EAAE,sBAAsB,KAAK,SAAS;AAAA,IAAA,CACvC;AAAA;AAAA;AAAA;AAAA;AAAA,0BAKiB,KAAK,QAAQ;AAAA,0CACG,KAAK,WAAW,aAAa4N,CAAO;AAAA,sBACxD,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,sBACb,KAAK,QAAQ;AAAA,sBACbG,EAAU,KAAK,SAAS,CAAC;AAAA,sBACzBA,EAAU,KAAK,SAAS,CAAC;AAAA,iBAC9BA,EAAU,KAAK,IAAI,CAAC;AAAA,iBACpBA,EAAU,KAAK,IAAI,CAAC;AAAA,iBACpBA,EAAU,KAAK,IAAI,CAAC;AAAA,wBACbA,EAAU,KAAK,WAAW,CAAC;AAAA,mBAChC,KAAK,KAAK;AAAA;AAAA,mBAEV,KAAK,OAAO;AAAA,qBACV,KAAK,SAAS;AAAA,oBACf,KAAK,QAAQ;AAAA,kBACf,KAAK,MAAM;AAAA,mBACV,KAAK,OAAO;AAAA,oBACX,KAAK,QAAQ;AAAA,qBACZ,KAAK,aAAa;AAAA;AAAA,UAE7B,KAAK,eAAe;AAAA;AAAA,KAEzB;AAAA,EACH;AAAA,EAEQ,kBAAkB;AACjB,WAAAjK;AAAAA;AAAAA;AAAAA,eAGIiK,EAAU,KAAK,YAAY,CAAC;AAAA,eAC5BA,EAAU,KAAK,IAAI,CAAe;AAAA,gBACjC/N,EAAK,sBAAsB;AAAA,MACjC,0BAA0B,KAAK,SAAS;AAAA,IAAA,CACzC,CAAC;AAAA;AAAA,kBAEQ,KAAK,MAAM;AAAA;AAAA;AAAA,yBAGJ,KAAK,iBAAiB;AAAA,UACrC,KAAK,QAAQ;AAAA;AAAA;AAAA,EAGrB;AACF;AAxJqB+jC,GAaZ,SAAS//B,EAAUC,EAAM;AAZfC,GAAA;AAAA,EAAhBsK,GAAM,QAAQ;AAAA,GADIu1B,GACF,WAAA,SAAA,CAAA;AAC2B7/B,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAFvB4/B,GAEyB,WAAA,YAAA,CAAA;AACA7/B,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAHvB4/B,GAGyB,WAAA,eAAA,CAAA;AAChB7/B,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAJP4/B,GAIS,WAAA,aAAA,CAAA;AACA7/B,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GALP4/B,GAKS,WAAA,aAAA,CAAA;AACA7/B,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GANP4/B,GAMS,WAAA,QAAA,CAAA;AACA7/B,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAPP4/B,GAOS,WAAA,QAAA,CAAA;AAChB7/B,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS4/B,GAQP,WAAA,eAAA,CAAA;AACA7/B,GAAA;AAAA,EAAXC,EAAS;AAAA,GATS4/B,GASP,WAAA,QAAA,CAAA;AAEH7/B,GAAA;AAAA,EAARohB,EAAM;AAAA,GAXYye,GAWV,WAAA,SAAA,CAAA;AAXUA,KAArB7/B,GAAA;AAAA,EADCE,EAAc,iBAAiB;AAAA,GACX2/B,EAAA;;;;;;;ACtBA,IAAAG,KAArB,cAAsC3gC,EAAW;AAAA,EAAjD,cAAA;AAAA,UAAA,GAAA,SAAA,GAC6B,KAAA,OAAA,IACM,KAAA,aAAA,oBACe,KAAA,YAAA,GACM,KAAA,kBAAA,GACA,KAAA,kBAAA,GACL,KAAA,WAAA,IAMjD,KAAQ,aAAuB,IA8G/B,KAAA,aAAa,YAAY;AACvB,YAAM4gC,IAAqB,CAAA;AAE3B,mBAAM,KAAK,SAAS,QAAQ,OAAOh2B,GAAInI,MAAU;AAC/C,cAAOmI,EAAW;AACZ,cAAAi2B,IAAKj2B,EAAG,MAAMA,EAAG,UAAU,YAAY,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG;AAE9D,QAACA,EAAG,MACHA,EAAA,aAAa,MAAMi2B,CAAE;AAGtB,YAAAC,IAAQ,KAAK,WAAW;AAAA,UAC1B,GAAGl2B,EAAG,QAAQ,YAAY,CAAC,IAAI1D,EAAW;AAAA,QAAA;AAG5C,QAAI45B,MAAU,OACZA,IAAQ,KAAK,WAAW;AAAA,UACtB,6BAA6Bl2B,EAAG,aAAa,SAAS,CAAC;AAAA,QAAA,IAI3Dg2B,EAAQn+B,CAAK,IAAI;AAAA,UACf,IAAAo+B;AAAA,UACA,MAAMj2B,EAAG;AAAA,UACT,OAAO,KAAK,MAAMk2B,IAAQ,CAAC;AAAA,QAAA;AAAA,MAC7B,CACD,GAEMF;AAAA,IAAA,GA4CT,KAAA,mBAAmB,CAACpE,MAAyC;AAC3D,MAAAA,EAAQ,QAAQ,CAASuE,MAAA;AACvB,YAAI,CAACA,EAAM;AAAgB;AAErB,cAAAC,IAAO,KAAK,WAAY,cAAc,WAAWD,EAAM,OAAO,EAAE,GAAG;AACzE,QAAIC,KACG,KAAA,gBAAgBA,GAA2BD,CAAK;AAAA,MACvD,CACD;AAAA,IAAA;AAAA,EACH;AAAA,EA1LA,IAAI,eAAe;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,oBAAoB;AAClB,UAAM,kBAAkB;AAExB,UAAM3gC,IAAU;AAAA,MACd,MAAM,KAAK,OAAO,SAAS,cAAc,KAAK,IAAI,IAAI;AAAA,MACtD,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,IAAA;AAGlB,SAAK,YAAY,IAAI,qBAAqB,KAAK,kBAAkBA,CAAO;AAAA,EAC1E;AAAA,EAEA,MAAgB,aACdyH,GACe;AACf,UAAM,aAAaA,CAAkB,GACrC,MAAM,KAAK;EACb;AAAA,EAEA,MAAM,yBAAyB3H,GAAcwL,GAAeC,GAAe;AACnE,UAAA,yBAAyBzL,GAAMwL,GAAUC,CAAQ,GACvD,MAAM,KAAK;EACb;AAAA,EAEA,MAAM,QAAQs1B,GAA8C;AAC1D,UAAM,QAAQA,CAAiB,GAC/B,MAAM,KAAK;EACb;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAqB,GACvB,KAAK,aACP,KAAK,WAAW;EAEpB;AAAA,EAEA,MAAM,aAAa;AAMjB,QALA,KAAK,WAAW,KAAK;AAAA,MAClB,KAAK,kBAAsB,KAAK,kBAAT;AAAA,MACvB,KAAK,kBAAsB,KAAK,kBAAT;AAAA,IAAS,GAG/B,KAAK,SAAS,WAAW,KAAK,CAAC,KAAK;AACtC;AAGG,SAAA,SAAS,QAAQ,CAAUC,MAAA;AACzB,WAAA,WAAW,QAAQA,CAAM;AAAA,IAAA,CAC/B,GAEI,KAAA,SAAS,MAAM,KAAK,WAAW;AACpC,UAAMC,IAAO,KAAK,UAAU,KAAK,MAAM,GAEjCC,IAAc,SAAS,cAAc,KAAK;AACpC,IAAAA,EAAA,aAAa,QAAQ,MAAM,GAC3BA,EAAA,UAAU,IAAI,KAAK;AAE/B,UAAM5f,IAAO;AAAA,kCACiB,KAAK,UAAUllB,GAAE,UAAU,CAAC;AAAA,2BACnC,KAAK,UAAUA,GAAE,UAAU,CAAC,MAAM6kC,CAAI;AAI7D,IAFAC,EAAY,YAAY5f,GAEnB,KAAK,eAEV,KAAK,WAAW,YAAY,KAAK,WAAW,WAAW,CAAC,CAAC,GACpD,KAAA,WAAW,YAAY4f,CAAW;AAAA,EACzC;AAAA,EAEA,WAAWC,GAAyBC,GAAwC;AAC1E,SAAK,aAAa;AAClB,aAAS,IAAID,GAAiB,KAAKC,GAAiB,KAAK;AACvD,WAAK,WAAW,KAAK,IAAI,CAAC,IAAIp6B,EAAW,EAAE,GAC3C,KAAK,WAAW,KAAK,8BAA8B,CAAC,WAAW;AAG1D,WAAA,MAAM,KAAK,SAAS,iBAAiB,KAAK,WAAW,KAAM,CAAA,CAAC;AAAA,EACrE;AAAA,EAEA,gBACEE,GACA25B,GACA;AACK,SAAA,eAAe,gBAAgB,cAAc,GAC1C35B,EAAA,aAAa,gBAAgB,MAAM,GAC3C,KAAK,gBAAgBA,GAErB,KAAK,KAAK,qBAAqB;AAAA,MAC7B,cAAcA;AAAA,MACd,eAAe25B;AAAA,IAAA,CAChB;AAAA,EACH;AAAA,EAiCA,UAAUH,GAAgB;AACxB,UAAMvS,IAAiB,CAAA;AACvB,QAAIkT,IAA0B,CAAA,GAC1BC,IAAY;AAEZ,QAAAZ,EAAQ,WAAW;AACd,aAAA;AAGT,UAAMa,IAAe,MAAM;AACrB,MAAAF,EAAiB,SAAS,MAC5BlT,EAAKA,EAAK,SAAS,CAAC,KAAK,KAAK,UAAUkT,CAAgB;AAAA,IAC1D;AAGM,IAAAX,EAAA,QAAQ,CAAC5jC,MAAe;AAC9B,UAAIwkC,MAAc,MAAMA,IAAYxkC,EAAE,OAAO;AAC3C,QAAAukC,EAAiB,KAAKvkC,CAAC;AACvB;AAAA,MACF;AAEa,MAAAykC,KAEbD,IAAYxkC,EAAE,OACdqxB,EAAK,KAAK,aAAarxB,EAAE,EAAE,sBAAsBA,EAAE,IAAI,MAAM,GAC7DukC,IAAmB,CAAA;AAAA,IAAC,CACrB,GAEYE;AAEb,UAAMC,IAAWrT,EACd;AAAA,MACC,CAAKxxB,MAAA,uBAAuB,oBAAoB2kC,CAAS,KAAK3kC,CAAC;AAAA,IAAA,EAEhE,KAAK,EAAE;AAEV,WAAO,cAAcJ,EAAK;AAAA,MACxB,kBAAkB,KAAK;AAAA,IACxB,CAAA,CAAC,KAAKilC,CAAQ;AAAA,EACjB;AAYF;AA5MqBf,GAeZ,SAASlgC,EAAUC,EAAM;AAdpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GADS+/B,GACP,WAAA,QAAA,CAAA;AACAhgC,GAAA;AAAA,EAAXC,EAAS;AAAA,GAFS+/B,GAEP,WAAA,cAAA,CAAA;AACgBhgC,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAHP+/B,GAGS,WAAA,aAAA,CAAA;AACAhgC,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAJP+/B,GAIS,WAAA,mBAAA,CAAA;AACAhgC,GAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,QAAQ;AAAA,GALP+/B,GAKS,WAAA,mBAAA,CAAA;AACChgC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR+/B,GAMU,WAAA,YAAA,CAAA;AACjBhgC,GAAA;AAAA,EAAXC,EAAS;AAAA,GAPS+/B,GAOP,WAAA,UAAA,CAAA;AAPOA,KAArBhgC,GAAA;AAAA,EADCE,EAAc,YAAY;AAAA,GACN8/B,EAAA;;;;;;;AClBrB,MAAMgB,KAAiB;AA4BF,IAAAC,KAArB,cAA0C5hC,EAAW;AAAA,EAArD,cAAA;AAAA,UAAA,GAAA,SAAA,GAI2D,KAAA,YAAA,UACH,KAAA,SAAA,IACrB,KAAA,OAAA,WACsB,KAAA,UAAA,IAEd,KAAA,mBAAA,YAEzC,KAAQ,WAAmB,eAiBU,KAAA,mBAAA,IAoCrC,KAAA,aAAa,MAAM;AACb,MAAA,KAAK,WAAW,OAAO,KACzB,KAAK,YAAY;AAAA,IACnB,GAGF,KAAA,cAAc,MAAM;AACd,MAAA,KAAK,WAAW,OAAO,MACpB,KAAA,UAAU,CAAC,KAAK,WAAW,OAAO,IACnC,KAAK,YAAA,IACL,KAAK,YAAY;AAAA,IACvB,GAGF,KAAA,cAAc,MAAM;AACd,MAAA,KAAK,WAAW,OAAO,KACzB,KAAK,YAAY;AAAA,IACnB,GAGF,KAAA,gBAAgB,CAACK,MAAyB;AACxC,MAAI,KAAK,UAAUA,EAAM,QAAQ,aAC/BA,EAAM,gBAAgB,GACtB,KAAK,YAAY;AAAA,IACnB,GAGF,KAAA,kBAAkB,MAAM;AAClB,MAAA,KAAK,WAAW,OAAO,KACzB,KAAK,YAAY;AAAA,IACnB,GAGF,KAAA,iBAAiB,MAAM;AACjB,MAAC,KAAK,oBACJ,KAAK,WAAW,OAAO,KACzB,KAAK,YAAY;AAAA,IAErB,GAGF,KAAA,yBAAyB,MAAM;AAC7B,WAAK,mBAAmB;AAAA,IAAA,GAG1B,KAAA,oBAAoB,MAAM;AACxB,WAAK,mBAAmB,IACxB,KAAK,eAAe;AAAA,IAAA,GAGtB,KAAA,aAAa,CAACwhC,MACK,KAAK,QAAQ,MAAM,GAAG,EACvB,SAASA,CAAW;AAAA,EACtC;AAAA,EAxGA,IAAI,QAAQ1hC,GAAe;AACzB,SAAK,WAAWA;AAAA,EAClB;AAAA,EACA,IAAI,UAAU;AACR,WAAC,KAAK,OAIN,KAAK,SAAS,WACT,UAGF,KAAK,WAPH;AAAA,EAQX;AAAA,EAIA,oBAAoB;AAClB,UAAM,kBAAkB,GACxB,KAAK,iBAAiB,QAAQ,KAAK,YAAY,EAAI,GACnD,KAAK,iBAAiB,SAAS,KAAK,aAAa,EAAI,GAChD,KAAA,iBAAiB,SAAS,KAAK,WAAW,GAC1C,KAAA,iBAAiB,aAAa,KAAK,eAAe,GAClD,KAAA,iBAAiB,YAAY,KAAK,cAAc;AAAA,EACvD;AAAA,EAEA,uBAAuB;AACrB,SAAK,oBAAoB,QAAQ,KAAK,YAAY,EAAI,GACtD,KAAK,oBAAoB,SAAS,KAAK,aAAa,EAAI,GACnD,KAAA,oBAAoB,SAAS,KAAK,WAAW,GAC7C,KAAA,oBAAoB,aAAa,KAAK,eAAe,GACrD,KAAA,oBAAoB,YAAY,KAAK,cAAc,GACxD,MAAM,qBAAqB;AAAA,EAC7B;AAAA,EAEA,MAAM,cAAc;AAClB,IAAI,KAAK,WAIT,KAAK,SAAS;AAAA,EAChB;AAAA,EAEA,MAAM,cAAc;AACd,IAAC,KAAK,WAIV,KAAK,SAAS;AAAA,EAChB;AAAA,EAyDA,SAAS;AACA,WAAAI;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gBAOK9D,EAAK,WAAW;AAAA,MACtB,iBAAiB,KAAK;AAAA,MACtB,oBAAoB,KAAK,SAAS;AAAA,MAClC,mBAAmB,KAAK,SAAS;AAAA,IAAA,CAClC,CAAC;AAAA,kBACQ,KAAK,MAAM;AAAA,oBACT,KAAK,SAAS;AAAA,iBACjBklC,EAAc;AAAA,2BACJ,KAAK,gBAAgB;AAAA,oBAC5B,CAAC,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMvB,KAAK,UAAUphC,IAAO,KAAK,OAAO,KAAKA,gBAAmB;AAAA;AAAA;AAAA,EAGlE;AACF;AAlJqBqhC,GACZ,SAASnhC,EAAUC,EAAM;AAEpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GAHSghC,GAGP,WAAA,WAAA,CAAA;AACiBjhC,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GAJRghC,GAIU,WAAA,aAAA,CAAA;AACejhC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GALvBghC,GAKyB,WAAA,UAAA,CAAA;AAChCjhC,GAAA;AAAA,EAAXC,EAAS;AAAA,GANSghC,GAMP,WAAA,QAAA,CAAA;AACgCjhC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAPvBghC,GAOyB,WAAA,WAAA,CAAA;AAE5CjhC,GAAA;AAAA,EADCC,EAAS,EAAE,SAAS,IAAM;AAAA,GARRghC,GASnB,WAAA,oBAAA,CAAA;AAIIjhC,GAAA;AAAA,EADHC,EAAS;AAAA,GAZSghC,GAaf,WAAA,WAAA,CAAA;AAeKjhC,GAAA;AAAA,EAARohB,EAAM;AAAA,GA5BY6f,GA4BV,WAAA,oBAAA,CAAA;AA5BUA,KAArBjhC,GAAA;AAAA,EADCE,EAAc,gBAAgB;AAAA,GACV+gC,EAAA;;;;;;;ACCA,IAAAE,KAArB,cAAuClX,GAAiB;AAAA,EAItD,cAAc;AACN,aAHN,KAAA,YAAA,UAIA,KAAK,WAAW,IAChB,KAAK,WAAW;AAAA,EAClB;AAAA,EAOA,SAAS;AACP,WAAO,KAAK;EACd;AACF;AAlBqBkX,GAUZ,SAASzY;AAAAA,MACZ5oB,EAAUmqB,GAAiB,MAAM,CAAC;AAAA,MAClCnqB,EAAU+G,EAAK,CAAC;AAAA;AAXS7G,GAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,IAAM;AAAA,GADRkhC,GACU,WAAA,aAAA,CAAA;AADVA,KAArBnhC,GAAA;AAAA,EADCE,EAAc,aAAa;AAAA,GACPihC,EAAA;;;;;;ACcrB,MAAMn6B,KAAmB2a,GAAI,cAAc;AAAA,EACzC,UAAU;AAAA,IACR,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC5C,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAmBoB,IAAAyf,KAArB,cACU/hC,EAEV;AAAA,EAHA,cAAA;AAAA,UAAA,GAAA,SAAA,GAMgC,KAAA,SAAA,KAEuB,KAAA,SAAA;AAAA,EAAA;AAAA,EAI3C,aACR6H,GACM;AACN,UAAM,aAAaA,CAAkB,GAChC,KAAA,aAAa,MAAM,KAAK,SAAS;AAAA,EACxC;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,KAAK,KAAK,KAAKb,GAAU,KAAK,SAAS;AAAA,EACrD;AAAA,EAEQ,eACNg7B,GACAC,GACArf,GACA7a,GACA;AACO,WAAAxH;AAAAA,SACFC,EAAaoiB,CAAO,CAAC;AAAA;AAAA,aAEjBpY,EAAUw3B,CAAS,CAAC;AAAA,gBACjBvlC;AAAAA,MACNkL,GAAiB,EAAE,SAAAib,GAAS,MAAA7a,GAAM;AAAA,MAClC,EAAE,CAACb,EAAW,GAAG,KAAK,OAAO;AAAA,MAC7B+6B;AAAA,IAAA,CACD;AAAA;AAAA;AAAA,UAGCzhC,EAAaoiB,CAAO,CAAC;AAAA;AAAA,EAE7B;AAAA,EAEQ,YACNof,GACAC,GACAl6B,GACAm6B,GACA;AACO,WAAA3hC;AAAAA,SACFC,EAAa0hC,CAAM,CAAC;AAAA,aAChB13B,EAAUw3B,CAAS,CAAC;AAAA;AAAA,gBAEjBvlC,EAAKkL,GAAiB,EAAE,SAAS,QAAQ,MAAAI,EAAM,CAAA,GAAGk6B,CAAW,CAAC;AAAA;AAAA;AAAA,UAGpEzhC,EAAa0hC,CAAM,CAAC;AAAA;AAAA,EAE5B;AAAA,EAEQ,eAAeF,GAAmBC,GAAqB;AACtD,WAAA1hC;AAAAA;AAAAA,aAEEiK,EAAUw3B,CAAS,CAAC;AAAA;AAAA,gBAEjBvlC,EAAKkL,GAAiB,EAAE,SAAS,UAAW,CAAA,GAAGs6B,CAAW,CAAC;AAAA;AAAA;AAAA;AAAA,EAIzE;AAAA,EAEQ,kBACND,GACAC,GACAl6B,GACA;AACO,WAAAxH;AAAAA;AAAAA,aAEEiK,EAAUw3B,CAAS,CAAC;AAAA,gBACjBvlC;AAAAA,MACNkL,GAAiB,EAAE,SAAS,eAAe,MAAAI,GAAM;AAAA,MACjDk6B;AAAA,IAAA,CACD;AAAA;AAAA;AAAA;AAAA,EAIP;AAAA,EAEQ,YACND,IAAoB,IACpBC,IAAsB,IACtBrf,GACA7a,GACAm6B,IAAiB,IACjB;AACA,YAAQtf,GAAS;AAAA,MACf,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO,KAAK,eAAeof,GAAWC,GAAarf,GAAS7a,CAAI;AAAA,MAClE,KAAK;AACH,eAAO,KAAK,YAAYi6B,GAAWC,GAAal6B,GAAMm6B,CAAM;AAAA,MAC9D,KAAK;AACI,eAAA,KAAK,eAAeF,GAAWC,CAAW;AAAA,MACnD,KAAK;AACH,eAAO,KAAK,kBAAkBD,GAAWC,GAAal6B,CAAI;AAAA,MAC5D;AACS,eAAA;AAAA,IACX;AAAA,EACF;AAAA,EAEA,SAAS;AACP,WAAO,KAAK;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAET;AACF;AA5HqBg6B,GAUZ,SAASthC,EAAUC,EAAM;AANpBC,GAAA;AAAA,EAAXC,EAAS;AAAA,GAJSmhC,GAIP,WAAA,WAAA,CAAA;AACAphC,GAAA;AAAA,EAAXC,EAAS;AAAA,GALSmhC,GAKP,WAAA,QAAA,CAAA;AACAphC,GAAA;AAAA,EAAXC,EAAS;AAAA,GANSmhC,GAMP,WAAA,UAAA,CAAA;AACAphC,GAAA;AAAA,EAAXC,EAAS;AAAA,GAPSmhC,GAOP,WAAA,eAAA,CAAA;AACgCphC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GARvBmhC,GAQyB,WAAA,UAAA,CAAA;AARzBA,KAArBphC,GAAA;AAAA,EADCE,EAAc,mBAAmB;AAAA,GACbkhC,EAAA;;;;;;ACrFA,IAAAI,KAArB,cAAiDniC,EAAW;AAAA,EAA5D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,6BAA6B,CAAC;AAAA;AAAA,gBAE3C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB4hC,GAYZ,SAAS1hC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBuhC,GAEwB,WAAA,QAAA,CAAA;AAECxhC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBuhC,GAIyB,WAAA,YAAA,CAAA;AAEfxhC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRuhC,GAMU,WAAA,cAAA,CAAA;AAEjBxhC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSuhC,GAQP,WAAA,sBAAA,CAAA;AAEiBxhC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRuhC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBxhC,GAAA;AAAA,EADCE,EAAc,6BAA6B;AAAA,GACvBshC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAkDpiC,EAAW;AAAA,EAA7D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,+BAA+B,CAAC;AAAA;AAAA,gBAE7C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB6hC,GAYZ,SAAS3hC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBwhC,GAEwB,WAAA,QAAA,CAAA;AAECzhC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBwhC,GAIyB,WAAA,YAAA,CAAA;AAEfzhC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRwhC,GAMU,WAAA,cAAA,CAAA;AAEjBzhC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSwhC,GAQP,WAAA,sBAAA,CAAA;AAEiBzhC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRwhC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBzhC,GAAA;AAAA,EADCE,EAAc,+BAA+B;AAAA,GACzBuhC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAqDriC,EAAW;AAAA,EAAhE,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,kCAAkC,CAAC;AAAA;AAAA,gBAEhD,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB8hC,GAYZ,SAAS5hC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtByhC,GAEwB,WAAA,QAAA,CAAA;AAEC1hC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvByhC,GAIyB,WAAA,YAAA,CAAA;AAEf1hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRyhC,GAMU,WAAA,cAAA,CAAA;AAEjB1hC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSyhC,GAQP,WAAA,sBAAA,CAAA;AAEiB1hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRyhC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB1hC,GAAA;AAAA,EADCE,EAAc,kCAAkC;AAAA,GAC5BwhC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAkDtiC,EAAW;AAAA,EAA7D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,+BAA+B,CAAC;AAAA;AAAA,gBAE7C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB+hC,GAYZ,SAAS7hC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB0hC,GAEwB,WAAA,QAAA,CAAA;AAEC3hC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB0hC,GAIyB,WAAA,YAAA,CAAA;AAEf3hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR0hC,GAMU,WAAA,cAAA,CAAA;AAEjB3hC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS0hC,GAQP,WAAA,sBAAA,CAAA;AAEiB3hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR0hC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB3hC,GAAA;AAAA,EADCE,EAAc,+BAA+B;AAAA,GACzByhC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAiDviC,EAAW;AAAA,EAA5D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,6BAA6B,CAAC;AAAA;AAAA,gBAE3C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBgiC,GAYZ,SAAS9hC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB2hC,GAEwB,WAAA,QAAA,CAAA;AAEC5hC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB2hC,GAIyB,WAAA,YAAA,CAAA;AAEf5hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR2hC,GAMU,WAAA,cAAA,CAAA;AAEjB5hC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS2hC,GAQP,WAAA,sBAAA,CAAA;AAEiB5hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR2hC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB5hC,GAAA;AAAA,EADCE,EAAc,6BAA6B;AAAA,GACvB0hC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAkDxiC,EAAW;AAAA,EAA7D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,+BAA+B,CAAC;AAAA;AAAA,gBAE7C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBiiC,GAYZ,SAAS/hC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB4hC,GAEwB,WAAA,QAAA,CAAA;AAEC7hC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB4hC,GAIyB,WAAA,YAAA,CAAA;AAEf7hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR4hC,GAMU,WAAA,cAAA,CAAA;AAEjB7hC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS4hC,GAQP,WAAA,sBAAA,CAAA;AAEiB7hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR4hC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB7hC,GAAA;AAAA,EADCE,EAAc,+BAA+B;AAAA,GACzB2hC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAmDziC,EAAW;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,gCAAgC,CAAC;AAAA;AAAA,gBAE9C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBkiC,GAYZ,SAAShiC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB6hC,GAEwB,WAAA,QAAA,CAAA;AAEC9hC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB6hC,GAIyB,WAAA,YAAA,CAAA;AAEf9hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR6hC,GAMU,WAAA,cAAA,CAAA;AAEjB9hC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS6hC,GAQP,WAAA,sBAAA,CAAA;AAEiB9hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR6hC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB9hC,GAAA;AAAA,EADCE,EAAc,gCAAgC;AAAA,GAC1B4hC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAsD1iC,EAAW;AAAA,EAAjE,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,mCAAmC,CAAC;AAAA;AAAA,gBAEjD,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBmiC,GAYZ,SAASjiC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB8hC,GAEwB,WAAA,QAAA,CAAA;AAEC/hC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB8hC,GAIyB,WAAA,YAAA,CAAA;AAEf/hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR8hC,GAMU,WAAA,cAAA,CAAA;AAEjB/hC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS8hC,GAQP,WAAA,sBAAA,CAAA;AAEiB/hC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR8hC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB/hC,GAAA;AAAA,EADCE,EAAc,mCAAmC;AAAA,GAC7B6hC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAmD3iC,EAAW;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,gCAAgC,CAAC;AAAA;AAAA,gBAE9C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBoiC,GAYZ,SAASliC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB+hC,GAEwB,WAAA,QAAA,CAAA;AAEChiC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB+hC,GAIyB,WAAA,YAAA,CAAA;AAEfhiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR+hC,GAMU,WAAA,cAAA,CAAA;AAEjBhiC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS+hC,GAQP,WAAA,sBAAA,CAAA;AAEiBhiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR+hC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBhiC,GAAA;AAAA,EADCE,EAAc,gCAAgC;AAAA,GAC1B8hC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAkD5iC,EAAW;AAAA,EAA7D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,8BAA8B,CAAC;AAAA;AAAA,gBAE5C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBqiC,GAYZ,SAASniC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBgiC,GAEwB,WAAA,QAAA,CAAA;AAECjiC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBgiC,GAIyB,WAAA,YAAA,CAAA;AAEfjiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRgiC,GAMU,WAAA,cAAA,CAAA;AAEjBjiC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSgiC,GAQP,WAAA,sBAAA,CAAA;AAEiBjiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRgiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBjiC,GAAA;AAAA,EADCE,EAAc,8BAA8B;AAAA,GACxB+hC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAmD7iC,EAAW;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,gCAAgC,CAAC;AAAA;AAAA,gBAE9C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBsiC,GAYZ,SAASpiC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBiiC,GAEwB,WAAA,QAAA,CAAA;AAECliC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBiiC,GAIyB,WAAA,YAAA,CAAA;AAEfliC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRiiC,GAMU,WAAA,cAAA,CAAA;AAEjBliC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSiiC,GAQP,WAAA,sBAAA,CAAA;AAEiBliC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRiiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBliC,GAAA;AAAA,EADCE,EAAc,gCAAgC;AAAA,GAC1BgiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAoD9iC,EAAW;AAAA,EAA/D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,iCAAiC,CAAC;AAAA;AAAA,gBAE/C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBuiC,GAYZ,SAASriC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBkiC,GAEwB,WAAA,QAAA,CAAA;AAECniC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBkiC,GAIyB,WAAA,YAAA,CAAA;AAEfniC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRkiC,GAMU,WAAA,cAAA,CAAA;AAEjBniC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSkiC,GAQP,WAAA,sBAAA,CAAA;AAEiBniC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRkiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBniC,GAAA;AAAA,EADCE,EAAc,iCAAiC;AAAA,GAC3BiiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA+C/iC,EAAW;AAAA,EAA1D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,2BAA2B,CAAC;AAAA;AAAA,gBAEzC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBwiC,GAYZ,SAAStiC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBmiC,GAEwB,WAAA,QAAA,CAAA;AAECpiC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBmiC,GAIyB,WAAA,YAAA,CAAA;AAEfpiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRmiC,GAMU,WAAA,cAAA,CAAA;AAEjBpiC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSmiC,GAQP,WAAA,sBAAA,CAAA;AAEiBpiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRmiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBpiC,GAAA;AAAA,EADCE,EAAc,2BAA2B;AAAA,GACrBkiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAgDhjC,EAAW;AAAA,EAA3D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,6BAA6B,CAAC;AAAA;AAAA,gBAE3C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqByiC,GAYZ,SAASviC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBoiC,GAEwB,WAAA,QAAA,CAAA;AAECriC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBoiC,GAIyB,WAAA,YAAA,CAAA;AAEfriC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRoiC,GAMU,WAAA,cAAA,CAAA;AAEjBriC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSoiC,GAQP,WAAA,sBAAA,CAAA;AAEiBriC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRoiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBriC,GAAA;AAAA,EADCE,EAAc,6BAA6B;AAAA,GACvBmiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAoDjjC,EAAW;AAAA,EAA/D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,iCAAiC,CAAC;AAAA;AAAA,gBAE/C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB0iC,GAYZ,SAASxiC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBqiC,GAEwB,WAAA,QAAA,CAAA;AAECtiC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBqiC,GAIyB,WAAA,YAAA,CAAA;AAEftiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRqiC,GAMU,WAAA,cAAA,CAAA;AAEjBtiC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSqiC,GAQP,WAAA,sBAAA,CAAA;AAEiBtiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRqiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBtiC,GAAA;AAAA,EADCE,EAAc,iCAAiC;AAAA,GAC3BoiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAgDljC,EAAW;AAAA,EAA3D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,yBAAyB,CAAC;AAAA;AAAA,gBAEvC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB2iC,GAYZ,SAASziC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBsiC,GAEwB,WAAA,QAAA,CAAA;AAECviC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBsiC,GAIyB,WAAA,YAAA,CAAA;AAEfviC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRsiC,GAMU,WAAA,cAAA,CAAA;AAEjBviC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSsiC,GAQP,WAAA,sBAAA,CAAA;AAEiBviC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRsiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBviC,GAAA;AAAA,EADCE,EAAc,yBAAyB;AAAA,GACnBqiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAmDnjC,EAAW;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,4BAA4B,CAAC;AAAA;AAAA,gBAE1C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB4iC,GAYZ,SAAS1iC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBuiC,GAEwB,WAAA,QAAA,CAAA;AAECxiC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBuiC,GAIyB,WAAA,YAAA,CAAA;AAEfxiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRuiC,GAMU,WAAA,cAAA,CAAA;AAEjBxiC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSuiC,GAQP,WAAA,sBAAA,CAAA;AAEiBxiC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRuiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBxiC,GAAA;AAAA,EADCE,EAAc,4BAA4B;AAAA,GACtBsiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAkDpjC,EAAW;AAAA,EAA7D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,4BAA4B,CAAC;AAAA;AAAA,gBAE1C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB6iC,GAYZ,SAAS3iC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBwiC,GAEwB,WAAA,QAAA,CAAA;AAECziC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBwiC,GAIyB,WAAA,YAAA,CAAA;AAEfziC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRwiC,GAMU,WAAA,cAAA,CAAA;AAEjBziC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSwiC,GAQP,WAAA,sBAAA,CAAA;AAEiBziC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRwiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBziC,GAAA;AAAA,EADCE,EAAc,4BAA4B;AAAA,GACtBuiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA8CrjC,EAAW;AAAA,EAAzD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,yBAAyB,CAAC;AAAA;AAAA,gBAEvC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB8iC,GAYZ,SAAS5iC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtByiC,GAEwB,WAAA,QAAA,CAAA;AAEC1iC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvByiC,GAIyB,WAAA,YAAA,CAAA;AAEf1iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRyiC,GAMU,WAAA,cAAA,CAAA;AAEjB1iC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSyiC,GAQP,WAAA,sBAAA,CAAA;AAEiB1iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRyiC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB1iC,GAAA;AAAA,EADCE,EAAc,yBAAyB;AAAA,GACnBwiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA2CtjC,EAAW;AAAA,EAAtD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,sBAAsB,CAAC;AAAA;AAAA,gBAEpC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB+iC,GAYZ,SAAS7iC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB0iC,GAEwB,WAAA,QAAA,CAAA;AAEC3iC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB0iC,GAIyB,WAAA,YAAA,CAAA;AAEf3iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR0iC,GAMU,WAAA,cAAA,CAAA;AAEjB3iC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS0iC,GAQP,WAAA,sBAAA,CAAA;AAEiB3iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR0iC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB3iC,GAAA;AAAA,EADCE,EAAc,sBAAsB;AAAA,GAChByiC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA6CvjC,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,wBAAwB,CAAC;AAAA;AAAA,gBAEtC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBgjC,GAYZ,SAAS9iC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB2iC,GAEwB,WAAA,QAAA,CAAA;AAEC5iC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB2iC,GAIyB,WAAA,YAAA,CAAA;AAEf5iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR2iC,GAMU,WAAA,cAAA,CAAA;AAEjB5iC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS2iC,GAQP,WAAA,sBAAA,CAAA;AAEiB5iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR2iC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB5iC,GAAA;AAAA,EADCE,EAAc,wBAAwB;AAAA,GAClB0iC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA6CxjC,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,wBAAwB,CAAC;AAAA;AAAA,gBAEtC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBijC,GAYZ,SAAS/iC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB4iC,GAEwB,WAAA,QAAA,CAAA;AAEC7iC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB4iC,GAIyB,WAAA,YAAA,CAAA;AAEf7iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR4iC,GAMU,WAAA,cAAA,CAAA;AAEjB7iC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS4iC,GAQP,WAAA,sBAAA,CAAA;AAEiB7iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR4iC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB7iC,GAAA;AAAA,EADCE,EAAc,wBAAwB;AAAA,GAClB2iC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA6CzjC,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,wBAAwB,CAAC;AAAA;AAAA,gBAEtC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBkjC,GAYZ,SAAShjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB6iC,GAEwB,WAAA,QAAA,CAAA;AAEC9iC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB6iC,GAIyB,WAAA,YAAA,CAAA;AAEf9iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR6iC,GAMU,WAAA,cAAA,CAAA;AAEjB9iC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS6iC,GAQP,WAAA,sBAAA,CAAA;AAEiB9iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR6iC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB9iC,GAAA;AAAA,EADCE,EAAc,wBAAwB;AAAA,GAClB4iC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA8C1jC,EAAW;AAAA,EAAzD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,yBAAyB,CAAC;AAAA;AAAA,gBAEvC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBmjC,GAYZ,SAASjjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB8iC,GAEwB,WAAA,QAAA,CAAA;AAEC/iC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB8iC,GAIyB,WAAA,YAAA,CAAA;AAEf/iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR8iC,GAMU,WAAA,cAAA,CAAA;AAEjB/iC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS8iC,GAQP,WAAA,sBAAA,CAAA;AAEiB/iC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR8iC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB/iC,GAAA;AAAA,EADCE,EAAc,yBAAyB;AAAA,GACnB6iC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA2D3jC,EAAW;AAAA,EAAtE,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,wCAAwC,CAAC;AAAA;AAAA,gBAEtD,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBojC,GAYZ,SAASljC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB+iC,GAEwB,WAAA,QAAA,CAAA;AAEChjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB+iC,GAIyB,WAAA,YAAA,CAAA;AAEfhjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR+iC,GAMU,WAAA,cAAA,CAAA;AAEjBhjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS+iC,GAQP,WAAA,sBAAA,CAAA;AAEiBhjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR+iC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBhjC,GAAA;AAAA,EADCE,EAAc,wCAAwC;AAAA,GAClC8iC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA2D5jC,EAAW;AAAA,EAAtE,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,wCAAwC,CAAC;AAAA;AAAA,gBAEtD,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBqjC,GAYZ,SAASnjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBgjC,GAEwB,WAAA,QAAA,CAAA;AAECjjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBgjC,GAIyB,WAAA,YAAA,CAAA;AAEfjjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRgjC,GAMU,WAAA,cAAA,CAAA;AAEjBjjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSgjC,GAQP,WAAA,sBAAA,CAAA;AAEiBjjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRgjC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBjjC,GAAA;AAAA,EADCE,EAAc,wCAAwC;AAAA,GAClC+iC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAsD7jC,EAAW;AAAA,EAAjE,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,kCAAkC,CAAC;AAAA;AAAA,gBAEhD,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBsjC,GAYZ,SAASpjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBijC,GAEwB,WAAA,QAAA,CAAA;AAECljC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBijC,GAIyB,WAAA,YAAA,CAAA;AAEfljC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRijC,GAMU,WAAA,cAAA,CAAA;AAEjBljC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSijC,GAQP,WAAA,sBAAA,CAAA;AAEiBljC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRijC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBljC,GAAA;AAAA,EADCE,EAAc,kCAAkC;AAAA,GAC5BgjC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAsD9jC,EAAW;AAAA,EAAjE,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,kCAAkC,CAAC;AAAA;AAAA,gBAEhD,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBujC,GAYZ,SAASrjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBkjC,GAEwB,WAAA,QAAA,CAAA;AAECnjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBkjC,GAIyB,WAAA,YAAA,CAAA;AAEfnjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRkjC,GAMU,WAAA,cAAA,CAAA;AAEjBnjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSkjC,GAQP,WAAA,sBAAA,CAAA;AAEiBnjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRkjC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBnjC,GAAA;AAAA,EADCE,EAAc,kCAAkC;AAAA,GAC5BijC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAmD/jC,EAAW;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,+BAA+B,CAAC;AAAA;AAAA,gBAE7C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBwjC,GAYZ,SAAStjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBmjC,GAEwB,WAAA,QAAA,CAAA;AAECpjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBmjC,GAIyB,WAAA,YAAA,CAAA;AAEfpjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRmjC,GAMU,WAAA,cAAA,CAAA;AAEjBpjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSmjC,GAQP,WAAA,sBAAA,CAAA;AAEiBpjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRmjC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBpjC,GAAA;AAAA,EADCE,EAAc,+BAA+B;AAAA,GACzBkjC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAmDhkC,EAAW;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,+BAA+B,CAAC;AAAA;AAAA,gBAE7C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqByjC,GAYZ,SAASvjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBojC,GAEwB,WAAA,QAAA,CAAA;AAECrjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBojC,GAIyB,WAAA,YAAA,CAAA;AAEfrjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRojC,GAMU,WAAA,cAAA,CAAA;AAEjBrjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSojC,GAQP,WAAA,sBAAA,CAAA;AAEiBrjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRojC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBrjC,GAAA;AAAA,EADCE,EAAc,+BAA+B;AAAA,GACzBmjC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA6CjkC,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,wBAAwB,CAAC;AAAA;AAAA,gBAEtC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB0jC,GAYZ,SAASxjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBqjC,GAEwB,WAAA,QAAA,CAAA;AAECtjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBqjC,GAIyB,WAAA,YAAA,CAAA;AAEftjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRqjC,GAMU,WAAA,cAAA,CAAA;AAEjBtjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSqjC,GAQP,WAAA,sBAAA,CAAA;AAEiBtjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRqjC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBtjC,GAAA;AAAA,EADCE,EAAc,wBAAwB;AAAA,GAClBojC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA6ClkC,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,wBAAwB,CAAC;AAAA;AAAA,gBAEtC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB2jC,GAYZ,SAASzjC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBsjC,GAEwB,WAAA,QAAA,CAAA;AAECvjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBsjC,GAIyB,WAAA,YAAA,CAAA;AAEfvjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRsjC,GAMU,WAAA,cAAA,CAAA;AAEjBvjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSsjC,GAQP,WAAA,sBAAA,CAAA;AAEiBvjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRsjC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBvjC,GAAA;AAAA,EADCE,EAAc,wBAAwB;AAAA,GAClBqjC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAgDnkC,EAAW;AAAA,EAA3D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,2BAA2B,CAAC;AAAA;AAAA,gBAEzC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB4jC,GAYZ,SAAS1jC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBujC,GAEwB,WAAA,QAAA,CAAA;AAECxjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBujC,GAIyB,WAAA,YAAA,CAAA;AAEfxjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRujC,GAMU,WAAA,cAAA,CAAA;AAEjBxjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSujC,GAQP,WAAA,sBAAA,CAAA;AAEiBxjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRujC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBxjC,GAAA;AAAA,EADCE,EAAc,2BAA2B;AAAA,GACrBsjC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAoDpkC,EAAW;AAAA,EAA/D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,gCAAgC,CAAC;AAAA;AAAA,gBAE9C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB6jC,GAYZ,SAAS3jC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBwjC,GAEwB,WAAA,QAAA,CAAA;AAECzjC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBwjC,GAIyB,WAAA,YAAA,CAAA;AAEfzjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRwjC,GAMU,WAAA,cAAA,CAAA;AAEjBzjC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSwjC,GAQP,WAAA,sBAAA,CAAA;AAEiBzjC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRwjC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBzjC,GAAA;AAAA,EADCE,EAAc,gCAAgC;AAAA,GAC1BujC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAoDrkC,EAAW;AAAA,EAA/D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,gCAAgC,CAAC;AAAA;AAAA,gBAE9C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB8jC,GAYZ,SAAS5jC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtByjC,GAEwB,WAAA,QAAA,CAAA;AAEC1jC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvByjC,GAIyB,WAAA,YAAA,CAAA;AAEf1jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRyjC,GAMU,WAAA,cAAA,CAAA;AAEjB1jC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSyjC,GAQP,WAAA,sBAAA,CAAA;AAEiB1jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRyjC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB1jC,GAAA;AAAA,EADCE,EAAc,gCAAgC;AAAA,GAC1BwjC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAoDtkC,EAAW;AAAA,EAA/D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,gCAAgC,CAAC;AAAA;AAAA,gBAE9C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB+jC,GAYZ,SAAS7jC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB0jC,GAEwB,WAAA,QAAA,CAAA;AAEC3jC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB0jC,GAIyB,WAAA,YAAA,CAAA;AAEf3jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR0jC,GAMU,WAAA,cAAA,CAAA;AAEjB3jC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS0jC,GAQP,WAAA,sBAAA,CAAA;AAEiB3jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR0jC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB3jC,GAAA;AAAA,EADCE,EAAc,gCAAgC;AAAA,GAC1ByjC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA2CvkC,EAAW;AAAA,EAAtD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,sBAAsB,CAAC;AAAA;AAAA,gBAEpC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBgkC,GAYZ,SAAS9jC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB2jC,GAEwB,WAAA,QAAA,CAAA;AAEC5jC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB2jC,GAIyB,WAAA,YAAA,CAAA;AAEf5jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR2jC,GAMU,WAAA,cAAA,CAAA;AAEjB5jC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS2jC,GAQP,WAAA,sBAAA,CAAA;AAEiB5jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR2jC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB5jC,GAAA;AAAA,EADCE,EAAc,sBAAsB;AAAA,GAChB0jC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA8CxkC,EAAW;AAAA,EAAzD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,0BAA0B,CAAC;AAAA;AAAA,gBAExC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBikC,GAYZ,SAAS/jC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB4jC,GAEwB,WAAA,QAAA,CAAA;AAEC7jC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB4jC,GAIyB,WAAA,YAAA,CAAA;AAEf7jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR4jC,GAMU,WAAA,cAAA,CAAA;AAEjB7jC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS4jC,GAQP,WAAA,sBAAA,CAAA;AAEiB7jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR4jC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB7jC,GAAA;AAAA,EADCE,EAAc,0BAA0B;AAAA,GACpB2jC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA8CzkC,EAAW;AAAA,EAAzD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,yBAAyB,CAAC;AAAA;AAAA,gBAEvC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBkkC,GAYZ,SAAShkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB6jC,GAEwB,WAAA,QAAA,CAAA;AAEC9jC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB6jC,GAIyB,WAAA,YAAA,CAAA;AAEf9jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR6jC,GAMU,WAAA,cAAA,CAAA;AAEjB9jC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS6jC,GAQP,WAAA,sBAAA,CAAA;AAEiB9jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR6jC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB9jC,GAAA;AAAA,EADCE,EAAc,yBAAyB;AAAA,GACnB4jC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAoD1kC,EAAW;AAAA,EAA/D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,gCAAgC,CAAC;AAAA;AAAA,gBAE9C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBmkC,GAYZ,SAASjkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB8jC,GAEwB,WAAA,QAAA,CAAA;AAEC/jC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB8jC,GAIyB,WAAA,YAAA,CAAA;AAEf/jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR8jC,GAMU,WAAA,cAAA,CAAA;AAEjB/jC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS8jC,GAQP,WAAA,sBAAA,CAAA;AAEiB/jC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR8jC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArB/jC,GAAA;AAAA,EADCE,EAAc,gCAAgC;AAAA,GAC1B6jC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAmD3kC,EAAW;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,8BAA8B,CAAC;AAAA;AAAA,gBAE5C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBokC,GAYZ,SAASlkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtB+jC,GAEwB,WAAA,QAAA,CAAA;AAEChkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvB+jC,GAIyB,WAAA,YAAA,CAAA;AAEfhkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANR+jC,GAMU,WAAA,cAAA,CAAA;AAEjBhkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARS+jC,GAQP,WAAA,sBAAA,CAAA;AAEiBhkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVR+jC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBhkC,GAAA;AAAA,EADCE,EAAc,8BAA8B;AAAA,GACxB8jC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAmD5kC,EAAW;AAAA,EAA9D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,8BAA8B,CAAC;AAAA;AAAA,gBAE5C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBqkC,GAYZ,SAASnkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBgkC,GAEwB,WAAA,QAAA,CAAA;AAECjkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBgkC,GAIyB,WAAA,YAAA,CAAA;AAEfjkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRgkC,GAMU,WAAA,cAAA,CAAA;AAEjBjkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSgkC,GAQP,WAAA,sBAAA,CAAA;AAEiBjkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRgkC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBjkC,GAAA;AAAA,EADCE,EAAc,8BAA8B;AAAA,GACxB+jC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAiD7kC,EAAW;AAAA,EAA5D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,4BAA4B,CAAC;AAAA;AAAA,gBAE1C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBskC,GAYZ,SAASpkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBikC,GAEwB,WAAA,QAAA,CAAA;AAEClkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBikC,GAIyB,WAAA,YAAA,CAAA;AAEflkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRikC,GAMU,WAAA,cAAA,CAAA;AAEjBlkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSikC,GAQP,WAAA,sBAAA,CAAA;AAEiBlkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRikC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBlkC,GAAA;AAAA,EADCE,EAAc,4BAA4B;AAAA,GACtBgkC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAkD9kC,EAAW;AAAA,EAA7D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,6BAA6B,CAAC;AAAA;AAAA,gBAE3C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBukC,GAYZ,SAASrkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBkkC,GAEwB,WAAA,QAAA,CAAA;AAECnkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBkkC,GAIyB,WAAA,YAAA,CAAA;AAEfnkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRkkC,GAMU,WAAA,cAAA,CAAA;AAEjBnkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSkkC,GAQP,WAAA,sBAAA,CAAA;AAEiBnkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRkkC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBnkC,GAAA;AAAA,EADCE,EAAc,6BAA6B;AAAA,GACvBikC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA4C/kC,EAAW;AAAA,EAAvD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,uBAAuB,CAAC;AAAA;AAAA,gBAErC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBwkC,GAYZ,SAAStkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBmkC,GAEwB,WAAA,QAAA,CAAA;AAECpkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBmkC,GAIyB,WAAA,YAAA,CAAA;AAEfpkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRmkC,GAMU,WAAA,cAAA,CAAA;AAEjBpkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSmkC,GAQP,WAAA,sBAAA,CAAA;AAEiBpkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRmkC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBpkC,GAAA;AAAA,EADCE,EAAc,uBAAuB;AAAA,GACjBkkC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA6ChlC,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,yBAAyB,CAAC;AAAA;AAAA,gBAEvC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqBykC,GAYZ,SAASvkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBokC,GAEwB,WAAA,QAAA,CAAA;AAECrkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBokC,GAIyB,WAAA,YAAA,CAAA;AAEfrkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRokC,GAMU,WAAA,cAAA,CAAA;AAEjBrkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSokC,GAQP,WAAA,sBAAA,CAAA;AAEiBrkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRokC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBrkC,GAAA;AAAA,EADCE,EAAc,yBAAyB;AAAA,GACnBmkC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAA8CjlC,EAAW;AAAA,EAAzD,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,yBAAyB,CAAC;AAAA;AAAA,gBAEvC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB0kC,GAYZ,SAASxkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBqkC,GAEwB,WAAA,QAAA,CAAA;AAECtkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBqkC,GAIyB,WAAA,YAAA,CAAA;AAEftkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRqkC,GAMU,WAAA,cAAA,CAAA;AAEjBtkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSqkC,GAQP,WAAA,sBAAA,CAAA;AAEiBtkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRqkC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBtkC,GAAA;AAAA,EADCE,EAAc,yBAAyB;AAAA,GACnBokC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAgDllC,EAAW;AAAA,EAA3D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,2BAA2B,CAAC;AAAA;AAAA,gBAEzC,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB2kC,GAYZ,SAASzkC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBskC,GAEwB,WAAA,QAAA,CAAA;AAECvkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBskC,GAIyB,WAAA,YAAA,CAAA;AAEfvkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRskC,GAMU,WAAA,cAAA,CAAA;AAEjBvkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSskC,GAQP,WAAA,sBAAA,CAAA;AAEiBvkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRskC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBvkC,GAAA;AAAA,EADCE,EAAc,2BAA2B;AAAA,GACrBqkC,EAAA;;;;;;ACAA,IAAAC,KAArB,cAAiDnlC,EAAW;AAAA,EAA5D,cAAA;AAAA,UAAA,GAAA,SAAA,GAEqD,KAAA,OAAA,IAEc,KAAA,WAAA,IAEb,KAAA,aAAA,IAID,KAAA,YAAA;AAAA,EAAA;AAAA,EAInD,SAAS;AACA,WAAAO;AAAAA;AAAAA;AAAAA,gBAGK9D,EAAK,QAAQ,4BAA4B,CAAC;AAAA;AAAA,gBAE1C,KAAK,IAAI;AAAA,iBACR,KAAK,IAAI;AAAA;AAAA,mBAEP,KAAK,YAAY,IAAI,EAAE;AAAA,sBACpB,KAAK,aAAa,SAAS,OAAO;AAAA,UAC9C,KAAK,qBACH8D,8CACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQd;AACF;AApCqB4kC,GAYZ,SAAS1kC,EAAUC,CAAM;AAVWC,GAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAFtBukC,GAEwB,WAAA,QAAA,CAAA;AAECxkC,GAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAJvBukC,GAIyB,WAAA,YAAA,CAAA;AAEfxkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GANRukC,GAMU,WAAA,cAAA,CAAA;AAEjBxkC,GAAA;AAAA,EAAXC,EAAS;AAAA,GARSukC,GAQP,WAAA,sBAAA,CAAA;AAEiBxkC,GAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,SAAS;AAAA,GAVRukC,GAUU,WAAA,aAAA,CAAA;AAVVA,KAArBxkC,GAAA;AAAA,EADCE,EAAc,4BAA4B;AAAA,GACtBskC,EAAA;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,42,43,44,45,47,52,53,54,55,56,57,58,59,60,61,62,63,64,70,71,114,115,116,117,127]}