@period-year-norway/ngx-bootstrap
Version:
1 lines • 61.8 kB
Source Map (JSON)
{"version":3,"file":"period-year-norway-ngx-bootstrap-modal.mjs","sources":["../../../../src/modal/bs-modal-ref.service.ts","../../../../src/modal/modal-backdrop.options.ts","../../../../src/modal/modal-options.class.ts","../../../../src/modal/modal-container.component.ts","../../../../src/modal/modal-backdrop.component.ts","../../../../src/modal/modal.directive.ts","../../../../src/modal/bs-modal.service.ts","../../../../src/modal/modal.module.ts","../../../../src/modal/period-year-norway-ngx-bootstrap-modal.ts"],"sourcesContent":["import { Injectable, EventEmitter } from '@angular/core';\r\n\r\n@Injectable({providedIn: 'platform'})\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport class BsModalRef<T = any> {\r\n /**\r\n * Event that is fired when the modal behind the ref starts hiding\r\n */\r\n onHide?: EventEmitter<unknown>;\r\n /**\r\n * Event that is fired when the modal behind the ref finishes hiding\r\n */\r\n onHidden?: EventEmitter<unknown>;\r\n /**\r\n * Allow user to ID for the modal. Otherwise, a unique number will be given\r\n */\r\n id?: number | string;\r\n\r\n /**\r\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef\r\n */\r\n content?: T;\r\n\r\n /**\r\n * Hides the modal\r\n */\r\n hide: () => void = () => void 0;\r\n /**\r\n * Sets new class to modal window\r\n */\r\n setClass: (newClass: string) => void = () => void 0;\r\n}\r\n","export class ModalBackdropOptions {\r\n animate = true;\r\n\r\n constructor(options: ModalBackdropOptions) {\r\n Object.assign(this, options);\r\n }\r\n}\r\n","import { Injectable, StaticProvider, InjectionToken } from '@angular/core';\r\nimport { ClassName, CloseInterceptorFn, DismissReasons, Selector, TransitionDurations } from './models';\r\n\r\n@Injectable({providedIn: 'platform'})\r\nexport class ModalOptions<T = Record<string, unknown>> {\r\n /**\r\n * Allow user to ID for the modal. Otherwise, a unique number will be given\r\n */\r\n id?: number | string;\r\n /**\r\n * Includes a modal-backdrop element. Alternatively,\r\n * specify static for a backdrop which doesn't close the modal on click.\r\n */\r\n backdrop?: boolean | 'static';\r\n /**\r\n * Closes the modal when escape key is pressed.\r\n */\r\n keyboard?: boolean;\r\n\r\n focus?: boolean;\r\n /**\r\n * Shows the modal when initialized.\r\n */\r\n show?: boolean;\r\n /**\r\n * Ignore the backdrop click\r\n */\r\n ignoreBackdropClick?: boolean;\r\n /**\r\n * Css class for opened modal\r\n */\r\n class?: string;\r\n /**\r\n * Toggle animation\r\n */\r\n animated?: boolean;\r\n /**\r\n * Modal data\r\n */\r\n initialState?: Partial<T>;\r\n /**\r\n * Function to intercept the closure\r\n */\r\n closeInterceptor?: CloseInterceptorFn;\r\n /**\r\n * Modal providers\r\n */\r\n providers?: StaticProvider[];\r\n /**\r\n * aria-labelledby attribute value to set on the modal window\r\n */\r\n ariaLabelledBy?: string;\r\n /**\r\n * aria-describedby attribute value to set on the modal window\r\n */\r\n ariaDescribedby?: string;\r\n}\r\n\r\nexport const modalConfigDefaults: ModalOptions = {\r\n backdrop: true,\r\n keyboard: true,\r\n focus: true,\r\n show: false,\r\n ignoreBackdropClick: false,\r\n class: '',\r\n animated: true,\r\n initialState: {},\r\n closeInterceptor: void 0\r\n};\r\n\r\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> =\r\n new InjectionToken<ModalOptions>('override-default-config');\r\n\r\nexport const CLASS_NAME: ClassName = {\r\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\r\n BACKDROP: 'modal-backdrop',\r\n OPEN: 'modal-open',\r\n FADE: 'fade',\r\n IN: 'in', // bs3\r\n SHOW: 'show' // bs4\r\n};\r\n\r\nexport const SELECTOR: Selector = {\r\n DIALOG: '.modal-dialog',\r\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\r\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\r\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\r\n};\r\n\r\nexport const TRANSITION_DURATIONS: TransitionDurations = {\r\n MODAL: 300,\r\n BACKDROP: 150\r\n};\r\n\r\nexport const DISMISS_REASONS: DismissReasons = {\r\n BACKRDOP: 'backdrop-click',\r\n ESC: 'esc',\r\n BACK: 'browser-back-navigation-clicked'\r\n};\r\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer2 } from '@angular/core';\r\nimport { CLASS_NAME, DISMISS_REASONS, ModalOptions, TRANSITION_DURATIONS } from './modal-options.class';\r\nimport { BsModalService } from './bs-modal.service';\r\nimport { isBs3 } from '@period-year-norway/ngx-bootstrap/utils';\r\n\r\n@Component({\r\n selector: 'modal-container',\r\n template: `\r\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\" focusTrap>\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n host: {\r\n class: 'modal',\r\n role: 'dialog',\r\n tabindex: '-1',\r\n '[attr.aria-modal]': 'true',\r\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\r\n '[attr.aria-describedby]': 'config.ariaDescribedby'\r\n },\r\n standalone: false\r\n})\r\nexport class ModalContainerComponent implements OnInit, OnDestroy {\r\n config: ModalOptions;\r\n isShown = false;\r\n level?: number;\r\n isAnimated = false;\r\n bsModalService?: BsModalService;\r\n private isModalHiding = false;\r\n private clickStartedInContent = false;\r\n\r\n constructor(\r\n options: ModalOptions,\r\n protected _element: ElementRef,\r\n private _renderer: Renderer2\r\n ) {\r\n this.config = Object.assign({}, options);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.isAnimated) {\r\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.FADE);\r\n }\r\n this._renderer.setStyle(this._element.nativeElement, 'display', 'block');\r\n setTimeout(\r\n () => {\r\n this.isShown = true;\r\n this._renderer.addClass(this._element.nativeElement, isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW);\r\n },\r\n this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0\r\n );\r\n if (document && document.body) {\r\n if (this.bsModalService && this.bsModalService.getModalsCount() === 1) {\r\n this.bsModalService.checkScrollbar();\r\n this.bsModalService.setScrollbar();\r\n }\r\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\r\n this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\r\n }\r\n if (this._element.nativeElement) {\r\n this._element.nativeElement.focus();\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onClickStarted(event: MouseEvent): void {\r\n this.clickStartedInContent = event.target !== this._element.nativeElement;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClickStop(event: MouseEvent): void {\r\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\r\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\r\n this.clickStartedInContent = false;\r\n\r\n return;\r\n }\r\n this.bsModalService?.setDismissReason(DISMISS_REASONS.BACKRDOP);\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:popstate')\r\n onPopState(): void {\r\n this.bsModalService?.setDismissReason(DISMISS_REASONS.BACK);\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:keydown.esc', ['$event'])\r\n onEsc(event: KeyboardEvent): void {\r\n if (!this.isShown) {\r\n return;\r\n }\r\n\r\n if (event.keyCode === 27 || event.key === 'Escape') {\r\n event.preventDefault();\r\n }\r\n\r\n if (this.config.keyboard && this.level === this.bsModalService?.getModalsCount()) {\r\n this.bsModalService?.setDismissReason(DISMISS_REASONS.ESC);\r\n this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.isShown) {\r\n this._hide();\r\n }\r\n }\r\n\r\n hide(): void {\r\n if (this.isModalHiding || !this.isShown) {\r\n return;\r\n }\r\n\r\n if (this.config.closeInterceptor) {\r\n this.config.closeInterceptor().then(\r\n () => this._hide(),\r\n () => undefined\r\n );\r\n\r\n return;\r\n }\r\n\r\n this._hide();\r\n }\r\n\r\n private _hide(): void {\r\n this.isModalHiding = true;\r\n this._renderer.removeClass(this._element.nativeElement, isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW);\r\n setTimeout(\r\n () => {\r\n this.isShown = false;\r\n if (document && document.body && this.bsModalService?.getModalsCount() === 1) {\r\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\r\n this._renderer.setStyle(document.body, 'overflow-y', '');\r\n }\r\n this.bsModalService?.hide(this.config.id);\r\n this.isModalHiding = false;\r\n },\r\n this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0\r\n );\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, Renderer2 } from '@angular/core';\r\n\r\nimport { CLASS_NAME } from './modal-options.class';\r\nimport { isBs3, Utils } from '@period-year-norway/ngx-bootstrap/utils';\r\n\r\n/** This component will be added as background layout for modals if enabled */\r\n@Component({\r\n selector: 'bs-modal-backdrop',\r\n template: ' ',\r\n host: { class: CLASS_NAME.BACKDROP },\r\n standalone: false\r\n})\r\nexport class ModalBackdropComponent implements OnInit {\r\n get isAnimated(): boolean {\r\n return this._isAnimated;\r\n }\r\n\r\n set isAnimated(value: boolean) {\r\n this._isAnimated = value;\r\n }\r\n\r\n get isShown(): boolean {\r\n return this._isShown;\r\n }\r\n\r\n set isShown(value: boolean) {\r\n this._isShown = value;\r\n if (value) {\r\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.IN}`);\r\n } else {\r\n this.renderer.removeClass(this.element.nativeElement, `${CLASS_NAME.IN}`);\r\n }\r\n if (!isBs3()) {\r\n if (value) {\r\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.SHOW}`);\r\n } else {\r\n this.renderer.removeClass(this.element.nativeElement, `${CLASS_NAME.SHOW}`);\r\n }\r\n }\r\n }\r\n\r\n element: ElementRef;\r\n renderer: Renderer2;\r\n\r\n protected _isAnimated = false;\r\n protected _isShown = false;\r\n\r\n constructor(element: ElementRef, renderer: Renderer2) {\r\n this.element = element;\r\n this.renderer = renderer;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.isAnimated) {\r\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.FADE}`);\r\n Utils.reflow(this.element.nativeElement);\r\n }\r\n this.isShown = true;\r\n }\r\n}\r\n","// todo: should we support enforce focus in?\r\n// todo: in original bs there are was a way to prevent modal from showing\r\n// todo: original modal had resize events\r\n\r\nimport {\r\n ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Input,\r\n OnDestroy, OnInit, Output, Renderer2, ViewContainerRef, Optional, Inject\r\n} from '@angular/core';\r\n\r\nimport { document, window, isBs3, Utils } from '@period-year-norway/ngx-bootstrap/utils';\r\nimport { ModalBackdropComponent } from './modal-backdrop.component';\r\nimport {\r\n CLASS_NAME, DISMISS_REASONS, modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE\r\n} from './modal-options.class';\r\nimport { ComponentLoader, ComponentLoaderFactory } from '@period-year-norway/ngx-bootstrap/component-loader';\r\nimport { CloseInterceptorFn } from './models';\r\n\r\nconst TRANSITION_DURATION = 300;\r\nconst BACKDROP_TRANSITION_DURATION = 150;\r\n\r\n/** Mark any code with directive to show it's content in modal */\r\n@Directive({\n selector: '[bsModal]',\n exportAs: 'bs-modal',\n standalone: false\n})\r\nexport class ModalDirective implements OnDestroy, OnInit {\r\n /** allows to set modal configuration via element property */\r\n @Input()\r\n set config(conf: ModalOptions) {\r\n this._config = this.getConfig(conf);\r\n }\r\n\r\n get config(): ModalOptions {\r\n return this._config;\r\n }\r\n\r\n /** allows to provide a callback to intercept the closure of the modal */\r\n @Input() closeInterceptor?: CloseInterceptorFn;\r\n\r\n /** This event fires immediately when the `show` instance method is called. */\r\n @Output()\r\n onShow: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\r\n /** This event is fired when the modal has been made visible to the user\r\n * (will wait for CSS transitions to complete)\r\n */\r\n @Output()\r\n onShown: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\r\n /** This event is fired immediately when\r\n * the hide instance method has been called.\r\n */\r\n @Output()\r\n onHide: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\r\n /** This event is fired when the modal has finished being\r\n * hidden from the user (will wait for CSS transitions to complete).\r\n */\r\n @Output()\r\n onHidden: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\r\n\r\n /** This field contains last dismiss reason.\r\n * Possible values: `backdrop-click`, `esc` and `id: number`\r\n * (if modal was closed by direct call of `.hide()`).\r\n */\r\n dismissReason?: string;\r\n\r\n get isShown(): boolean {\r\n return this._isShown;\r\n }\r\n\r\n protected _config: ModalOptions;\r\n protected _isShown = false;\r\n\r\n protected isBodyOverflowing = false;\r\n protected originalBodyPadding = 0;\r\n protected scrollbarWidth = 0;\r\n\r\n protected timerHideModal = 0;\r\n protected timerRmBackDrop = 0;\r\n\r\n // reference to backdrop component\r\n protected backdrop?: ComponentRef<ModalBackdropComponent>;\r\n private _backdrop: ComponentLoader<ModalBackdropComponent>;\r\n\r\n private isNested = false;\r\n private clickStartedInContent = false;\r\n\r\n constructor(\r\n private _element: ElementRef,\r\n _viewContainerRef: ViewContainerRef,\r\n private _renderer: Renderer2,\r\n clf: ComponentLoaderFactory,\r\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions) {\r\n this._backdrop = clf.createLoader<ModalBackdropComponent>(\r\n _element,\r\n _viewContainerRef,\r\n _renderer\r\n );\r\n this._config = modalDefaultOption || modalConfigDefaults;\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onClickStarted(event: MouseEvent): void {\r\n this.clickStartedInContent = event.target !== this._element.nativeElement;\r\n }\r\n\r\n @HostListener('mouseup', ['$event'])\r\n onClickStop(event: MouseEvent): void {\r\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\r\n if (\r\n this.config.ignoreBackdropClick ||\r\n this.config.backdrop === 'static' ||\r\n !clickedInBackdrop\r\n ) {\r\n this.clickStartedInContent = false;\r\n\r\n return;\r\n }\r\n this.dismissReason = DISMISS_REASONS.BACKRDOP;\r\n this.hide(event);\r\n }\r\n\r\n // todo: consider preventing default and stopping propagation\r\n @HostListener('keydown.esc', ['$event'])\r\n onEsc(event: KeyboardEvent): void {\r\n if (!this._isShown) {\r\n return;\r\n }\r\n if (event.keyCode === 27 || event.key === 'Escape') {\r\n event.preventDefault();\r\n }\r\n\r\n if (this.config.keyboard) {\r\n this.dismissReason = DISMISS_REASONS.ESC;\r\n this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._isShown) {\r\n this._isShown = false;\r\n this.hideModal();\r\n this._backdrop.dispose();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._config = this._config || this.getConfig();\r\n setTimeout(() => {\r\n if (this._config.show) {\r\n this.show();\r\n }\r\n }, 0);\r\n }\r\n\r\n /* Public methods */\r\n\r\n /** Allows to manually toggle modal visibility */\r\n toggle(): void {\r\n return this._isShown ? this.hide() : this.show();\r\n }\r\n\r\n /** Allows to manually open modal */\r\n show(): void {\r\n this.dismissReason = void 0;\r\n this.onShow.emit(this);\r\n if (this._isShown) {\r\n return;\r\n }\r\n clearTimeout(this.timerHideModal);\r\n clearTimeout(this.timerRmBackDrop);\r\n\r\n this._isShown = true;\r\n\r\n this.checkScrollbar();\r\n this.setScrollbar();\r\n\r\n if (document && document.body) {\r\n if (document.body.classList.contains(CLASS_NAME.OPEN)) {\r\n this.isNested = true;\r\n } else {\r\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\r\n this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\r\n }\r\n }\r\n\r\n this.showBackdrop(() => {\r\n this.showElement();\r\n });\r\n }\r\n\r\n /** Check if we can close the modal */\r\n hide(event?: Event): void {\r\n if (!this._isShown) {\r\n return;\r\n }\r\n\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n if (this.config.closeInterceptor) {\r\n this.config.closeInterceptor().then(\r\n () => this._hide(),\r\n () => undefined);\r\n\r\n return;\r\n }\r\n\r\n this._hide();\r\n }\r\n\r\n /** Private methods @internal */\r\n\r\n /**\r\n * Manually close modal\r\n * @internal\r\n */\r\n protected _hide(): void {\r\n this.onHide.emit(this);\r\n\r\n window.clearTimeout(this.timerHideModal);\r\n window.clearTimeout(this.timerRmBackDrop);\r\n\r\n this._isShown = false;\r\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.IN);\r\n if (!isBs3()) {\r\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\r\n }\r\n // this._addClassIn = false;\r\n\r\n if (this._config.animated) {\r\n this.timerHideModal = window.setTimeout(\r\n () => this.hideModal(),\r\n TRANSITION_DURATION\r\n );\r\n } else {\r\n this.hideModal();\r\n }\r\n }\r\n\r\n protected getConfig(config?: ModalOptions): ModalOptions {\r\n return Object.assign({}, this._config, config);\r\n }\r\n\r\n /**\r\n * Show dialog\r\n * @internal\r\n */\r\n protected showElement(): void {\r\n // todo: replace this with component loader usage\r\n if (\r\n !this._element.nativeElement.parentNode ||\r\n this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE\r\n ) {\r\n // don't move modals dom position\r\n if (document && document.body) {\r\n document.body.appendChild(this._element.nativeElement);\r\n }\r\n }\r\n\r\n this._renderer.setAttribute(\r\n this._element.nativeElement,\r\n 'aria-hidden',\r\n 'false'\r\n );\r\n this._renderer.setAttribute(\r\n this._element.nativeElement,\r\n 'aria-modal',\r\n 'true'\r\n );\r\n this._renderer.setStyle(\r\n this._element.nativeElement,\r\n 'display',\r\n 'block'\r\n );\r\n this._renderer.setProperty(\r\n this._element.nativeElement,\r\n 'scrollTop',\r\n 0\r\n );\r\n\r\n if (this._config.animated) {\r\n Utils.reflow(this._element.nativeElement);\r\n }\r\n\r\n // this._addClassIn = true;\r\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.IN);\r\n if (!isBs3()) {\r\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\r\n }\r\n\r\n const transitionComplete = () => {\r\n if (this._config.focus) {\r\n this._element.nativeElement.focus();\r\n }\r\n this.onShown.emit(this);\r\n };\r\n\r\n if (this._config.animated) {\r\n setTimeout(transitionComplete, TRANSITION_DURATION);\r\n } else {\r\n transitionComplete();\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected hideModal(): void {\r\n this._renderer.setAttribute(\r\n this._element.nativeElement,\r\n 'aria-hidden',\r\n 'true'\r\n );\r\n this._renderer.setStyle(\r\n this._element.nativeElement,\r\n 'display',\r\n 'none'\r\n );\r\n this.showBackdrop(() => {\r\n if (!this.isNested) {\r\n if (document && document.body) {\r\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\r\n this._renderer.setStyle(document.body, 'overflow-y', '');\r\n }\r\n this.resetScrollbar();\r\n }\r\n this.resetAdjustments();\r\n this.focusOtherModal();\r\n this.onHidden.emit(this);\r\n });\r\n }\r\n\r\n // todo: original show was calling a callback when done, but we can use\r\n // promise\r\n /** @internal */\r\n protected showBackdrop(callback?: () => void): void {\r\n if (\r\n this._isShown &&\r\n this.config.backdrop &&\r\n (!this.backdrop || !this.backdrop.instance.isShown)\r\n ) {\r\n this.removeBackdrop();\r\n this._backdrop\r\n .attach(ModalBackdropComponent)\r\n .to('body')\r\n .show({ isAnimated: this._config.animated });\r\n this.backdrop = this._backdrop._componentRef;\r\n\r\n if (!callback) {\r\n return;\r\n }\r\n\r\n if (!this._config.animated) {\r\n callback();\r\n\r\n return;\r\n }\r\n\r\n setTimeout(callback, BACKDROP_TRANSITION_DURATION);\r\n } else if (!this._isShown && this.backdrop) {\r\n this.backdrop.instance.isShown = false;\r\n\r\n const callbackRemove = () => {\r\n this.removeBackdrop();\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n\r\n if (this.backdrop.instance.isAnimated) {\r\n this.timerRmBackDrop = window.setTimeout(\r\n callbackRemove,\r\n BACKDROP_TRANSITION_DURATION\r\n );\r\n } else {\r\n callbackRemove();\r\n }\r\n } else if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected removeBackdrop(): void {\r\n this._backdrop.hide();\r\n }\r\n\r\n /** Events tricks */\r\n\r\n // no need for it\r\n // protected setEscapeEvent():void {\r\n // if (this._isShown && this._config.keyboard) {\r\n // $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\r\n // if (event.which === 27) {\r\n // this.hide()\r\n // }\r\n // })\r\n //\r\n // } else if (!this._isShown) {\r\n // $(this._element).off(Event.KEYDOWN_DISMISS)\r\n // }\r\n // }\r\n\r\n // protected setResizeEvent():void {\r\n // console.log(this.renderer.listenGlobal('', Event.RESIZE));\r\n // if (this._isShown) {\r\n // $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\r\n // } else {\r\n // $(window).off(Event.RESIZE)\r\n // }\r\n // }\r\n\r\n protected focusOtherModal() {\r\n if (this._element.nativeElement.parentElement == null) {\r\n return;\r\n }\r\n const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');\r\n if (!otherOpenedModals.length) {\r\n return;\r\n }\r\n otherOpenedModals[otherOpenedModals.length - 1].focus();\r\n }\r\n\r\n /** @internal */\r\n protected resetAdjustments(): void {\r\n this._renderer.setStyle(\r\n this._element.nativeElement,\r\n 'paddingLeft',\r\n ''\r\n );\r\n this._renderer.setStyle(\r\n this._element.nativeElement,\r\n 'paddingRight',\r\n ''\r\n );\r\n }\r\n\r\n /** Scroll bar tricks */\r\n /** @internal */\r\n protected checkScrollbar(): void {\r\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\r\n this.scrollbarWidth = this.getScrollbarWidth();\r\n }\r\n\r\n protected setScrollbar(): void {\r\n if (!document) {\r\n return;\r\n }\r\n\r\n this.originalBodyPadding = parseInt(\r\n window\r\n .getComputedStyle(document.body)\r\n .getPropertyValue('padding-right') || 0,\r\n 10\r\n );\r\n\r\n if (this.isBodyOverflowing) {\r\n document.body.style.paddingRight = `${this.originalBodyPadding +\r\n this.scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n protected resetScrollbar(): void {\r\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\r\n }\r\n\r\n // thx d.walsh\r\n protected getScrollbarWidth(): number {\r\n const scrollDiv = this._renderer.createElement('div');\r\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\r\n this._renderer.appendChild(document.body, scrollDiv);\r\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n this._renderer.removeChild(document.body, scrollDiv);\r\n\r\n return scrollbarWidth;\r\n }\r\n}\r\n","import {\r\n ComponentRef,\r\n Injectable,\r\n TemplateRef,\r\n EventEmitter,\r\n Renderer2,\r\n RendererFactory2,\r\n Inject,\r\n Optional\r\n} from '@angular/core';\r\n\r\nimport { ComponentLoader, ComponentLoaderFactory } from '@period-year-norway/ngx-bootstrap/component-loader';\r\nimport { ModalBackdropComponent } from './modal-backdrop.component';\r\nimport { ModalContainerComponent } from './modal-container.component';\r\nimport {\r\n CLASS_NAME,\r\n modalConfigDefaults,\r\n ModalOptions,\r\n TRANSITION_DURATIONS,\r\n MODAL_CONFIG_DEFAULT_OVERRIDE\r\n} from './modal-options.class';\r\nimport { BsModalRef } from './bs-modal-ref.service';\r\n\r\nlet currentId = 1;\r\n\r\n@Injectable({providedIn: 'platform'})\r\nexport class BsModalService {\r\n // constructor props\r\n config: ModalOptions;\r\n\r\n onShow = new EventEmitter();\r\n onShown = new EventEmitter();\r\n onHide = new EventEmitter();\r\n onHidden = new EventEmitter();\r\n\r\n protected isBodyOverflowing = false;\r\n protected originalBodyPadding = 0;\r\n\r\n protected scrollbarWidth = 0;\r\n\r\n protected backdropRef?: ComponentRef<ModalBackdropComponent>;\r\n private _backdropLoader: ComponentLoader<ModalBackdropComponent>;\r\n private modalsCount = 0;\r\n private lastDismissReason?: string;\r\n\r\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\r\n\r\n private _renderer: Renderer2;\r\n\r\n constructor(\r\n rendererFactory: RendererFactory2,\r\n private clf: ComponentLoaderFactory,\r\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) private modalDefaultOption: ModalOptions) {\r\n this._backdropLoader = this.clf.createLoader<ModalBackdropComponent>();\r\n this._renderer = rendererFactory.createRenderer(null, null);\r\n this.config = modalDefaultOption ?\r\n (Object.assign({}, modalConfigDefaults, modalDefaultOption)) :\r\n modalConfigDefaults;\r\n }\r\n\r\n /** Shows a modal */\r\n show<T>(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n content: string | TemplateRef<any> | { new(...args: any[]): T },\r\n config?: ModalOptions<T>\r\n ): BsModalRef<T> {\r\n this.modalsCount++;\r\n this._createLoaders();\r\n\r\n // must be different per every show() call\r\n const id = config?.id || currentId++;\r\n this.config = this.modalDefaultOption ?\r\n Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) :\r\n Object.assign({}, modalConfigDefaults, config);\r\n this.config.id = id;\r\n this._showBackdrop();\r\n this.lastDismissReason = void 0;\r\n\r\n return this._showModal<T>(content);\r\n }\r\n\r\n hide(id?: number | string) {\r\n if (this.modalsCount === 1 || id == null) {\r\n this._hideBackdrop();\r\n this.resetScrollbar();\r\n }\r\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\r\n setTimeout(() => {\r\n this._hideModal(id);\r\n this.removeLoaders(id);\r\n }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);\r\n }\r\n\r\n _showBackdrop(): void {\r\n const isBackdropEnabled =\r\n this.config.backdrop === true || this.config.backdrop === 'static';\r\n const isBackdropInDOM =\r\n !this.backdropRef || !this.backdropRef.instance.isShown;\r\n\r\n if (this.modalsCount === 1) {\r\n this.removeBackdrop();\r\n\r\n if (isBackdropEnabled && isBackdropInDOM) {\r\n this._backdropLoader\r\n .attach(ModalBackdropComponent)\r\n .to('body')\r\n .show({ isAnimated: this.config.animated });\r\n this.backdropRef = this._backdropLoader._componentRef;\r\n }\r\n }\r\n }\r\n\r\n _hideBackdrop(): void {\r\n if (!this.backdropRef) {\r\n return;\r\n }\r\n this.backdropRef.instance.isShown = false;\r\n const duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;\r\n setTimeout(() => this.removeBackdrop(), duration);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n _showModal<T>(content: any): BsModalRef<T> {\r\n const modalLoader = this.loaders[this.loaders.length - 1];\r\n if (this.config && this.config.providers) {\r\n for (const provider of this.config.providers) {\r\n modalLoader.provide(provider);\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const bsModalRef = new BsModalRef<any>();\r\n const modalContainerRef = modalLoader\r\n .provide({ provide: ModalOptions, useValue: this.config })\r\n .provide({ provide: BsModalRef, useValue: bsModalRef })\r\n .attach(ModalContainerComponent)\r\n .to('body');\r\n bsModalRef.hide = () => modalContainerRef.instance?.hide();\r\n bsModalRef.setClass = (newClass: string) => {\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.config.class = newClass;\r\n }\r\n };\r\n\r\n bsModalRef.onHidden = new EventEmitter<unknown>();\r\n bsModalRef.onHide = new EventEmitter<unknown>();\r\n\r\n this.copyEvent(modalLoader.onBeforeHide, bsModalRef.onHide);\r\n this.copyEvent(modalLoader.onHidden, bsModalRef.onHidden);\r\n // call 'show' method after assign setClass in bsModalRef.\r\n // it makes modal component's bsModalRef available to call setClass method\r\n modalContainerRef.show({\r\n content,\r\n isAnimated: this.config.animated,\r\n initialState: this.config.initialState,\r\n bsModalService: this,\r\n id: this.config.id\r\n });\r\n\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.level = this.getModalsCount();\r\n bsModalRef.content = modalLoader.getInnerComponent();\r\n bsModalRef.id = modalContainerRef.instance.config?.id;\r\n }\r\n\r\n return bsModalRef;\r\n }\r\n\r\n _hideModal(id?: number | string): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex(loader => loader.instance?.config.id === id);\r\n const modalLoader = this.loaders[indexToRemove];\r\n if (modalLoader) {\r\n modalLoader.hide(id);\r\n }\r\n } else {\r\n this.loaders.forEach(\r\n (loader: ComponentLoader<ModalContainerComponent>) => {\r\n if (loader.instance) {\r\n loader.hide(loader.instance.config.id);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n getModalsCount(): number {\r\n return this.modalsCount;\r\n }\r\n\r\n setDismissReason(reason: string) {\r\n this.lastDismissReason = reason;\r\n }\r\n\r\n removeBackdrop(): void {\r\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\r\n this._renderer.setStyle(document.body, 'overflow-y', '');\r\n this._backdropLoader.hide();\r\n this.backdropRef = void 0;\r\n }\r\n\r\n /** Checks if the body is overflowing and sets scrollbar width */\r\n /** @internal */\r\n checkScrollbar(): void {\r\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\r\n this.scrollbarWidth = this.getScrollbarWidth();\r\n }\r\n\r\n setScrollbar(): void {\r\n if (!document) {\r\n return;\r\n }\r\n\r\n this.originalBodyPadding = parseInt(\r\n window\r\n .getComputedStyle(document.body)\r\n .getPropertyValue('padding-right') || '0',\r\n 10\r\n );\r\n\r\n if (this.isBodyOverflowing) {\r\n document.body.style.paddingRight = `${this.originalBodyPadding +\r\n this.scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n private resetScrollbar(): void {\r\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\r\n }\r\n\r\n // thx d.walsh\r\n private getScrollbarWidth(): number {\r\n const scrollDiv = this._renderer.createElement('div');\r\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\r\n this._renderer.appendChild(document.body, scrollDiv);\r\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n this._renderer.removeChild(document.body, scrollDiv);\r\n\r\n return scrollbarWidth;\r\n }\r\n\r\n private _createLoaders(): void {\r\n const loader = this.clf.createLoader<ModalContainerComponent>();\r\n this.copyEvent(loader.onBeforeShow, this.onShow);\r\n this.copyEvent(loader.onShown, this.onShown);\r\n this.copyEvent(loader.onBeforeHide, this.onHide);\r\n this.copyEvent(loader.onHidden, this.onHidden);\r\n this.loaders.push(loader);\r\n }\r\n\r\n private removeLoaders(id?: number | string): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex(loader => loader.instance?.config.id === id);\r\n if (indexToRemove >= 0) {\r\n this.loaders.splice(indexToRemove, 1);\r\n this.loaders.forEach(\r\n (loader: ComponentLoader<ModalContainerComponent>, i: number) => {\r\n if (loader.instance) {\r\n loader.instance.level = i + 1;\r\n }\r\n }\r\n );\r\n }\r\n } else {\r\n this.loaders.splice(0, this.loaders.length);\r\n }\r\n }\r\n\r\n private copyEvent(from: EventEmitter<unknown>, to: EventEmitter<unknown>) {\r\n from.subscribe((data) => {\r\n to.emit(this.lastDismissReason || data);\r\n });\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\nimport { PositioningService } from '@period-year-norway/ngx-bootstrap/positioning';\r\nimport { ComponentLoaderFactory } from '@period-year-norway/ngx-bootstrap/component-loader';\r\nimport { FocusTrapModule } from '@period-year-norway/ngx-bootstrap/focus-trap';\r\n\r\nimport { ModalBackdropComponent } from './modal-backdrop.component';\r\nimport { ModalDirective } from './modal.directive';\r\nimport { ModalContainerComponent } from './modal-container.component';\r\nimport { BsModalService } from './bs-modal.service';\r\n\r\nexport const focusTrapModule = FocusTrapModule.forRoot();\r\n\r\n@NgModule({\r\n imports: [FocusTrapModule],\r\n declarations: [\r\n ModalBackdropComponent,\r\n ModalDirective,\r\n ModalContainerComponent\r\n ],\r\n exports: [ModalBackdropComponent, ModalDirective]\r\n})\r\nexport class ModalModule {\r\n static forRoot(): ModuleWithProviders<ModalModule> {\r\n return {\r\n ngModule: ModalModule,\r\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\r\n };\r\n }\r\n static forChild(): ModuleWithProviders<ModalModule> {\r\n return {\r\n ngModule: ModalModule,\r\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ModalOptions","document","window"],"mappings":";;;;;;;;;AAGA;MACa,UAAU,CAAA;AAFvB,IAAA,WAAA,GAAA;AAqBE;;AAEG;AACH,QAAA,IAAA,CAAA,IAAI,GAAe,MAAM,KAAK,CAAC;AAC/B;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAA+B,MAAM,KAAK,CAAC;AACpD;8GA3BY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFE,UAAU,EAAA,CAAA,CAAA;;2FAEtB,UAAU,EAAA,UAAA,EAAA,CAAA;kBAFtB,UAAU;mBAAC,EAAC,UAAU,EAAE,UAAU,EAAC;;;MCFvB,oBAAoB,CAAA;AAG/B,IAAA,WAAA,CAAY,OAA6B,EAAA;QAFzC,IAAO,CAAA,OAAA,GAAG,IAAI;AAGZ,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;;AAE/B;;MCFY,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADA,UAAU,EAAA,CAAA,CAAA;;2FACtB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAC,UAAU,EAAE,UAAU,EAAC;;AAuD7B,MAAM,mBAAmB,GAAiB;AAC/C,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,mBAAmB,EAAE,KAAK;AAC1B,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,KAAK;CACxB;MAEY,6BAA6B,GACxC,IAAI,cAAc,CAAe,yBAAyB;AAErD,MAAM,UAAU,GAAc;AACnC,IAAA,kBAAkB,EAAE,yBAAyB;AAC7C,IAAA,QAAQ,EAAE,gBAAgB;AAC1B,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;CACb;AAEM,MAAM,QAAQ,GAAa;AAChC,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,WAAW,EAAE,uBAAuB;AACpC,IAAA,YAAY,EAAE,wBAAwB;AACtC,IAAA,aAAa,EAAE;CAChB;AAEM,MAAM,oBAAoB,GAAwB;AACvD,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,QAAQ,EAAE;CACX;AAEM,MAAM,eAAe,GAAmB;AAC7C,IAAA,QAAQ,EAAE,gBAAgB;AAC1B,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE;CACP;;MC1EY,uBAAuB,CAAA;AASlC,IAAA,WAAA,CACE,OAAqB,EACX,QAAoB,EACtB,SAAoB,EAAA;QADlB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACV,IAAS,CAAA,SAAA,GAAT,SAAS;QAVnB,IAAO,CAAA,OAAA,GAAG,KAAK;QAEf,IAAU,CAAA,UAAA,GAAG,KAAK;QAEV,IAAa,CAAA,aAAA,GAAG,KAAK;QACrB,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAOnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;;IAG1C,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC;;AAEvE,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC;QACxE,UAAU,CACR,MAAK;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACnB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;AACjG,SAAC,EACD,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,QAAQ,GAAG,CAAC,CACpD;AACD,QAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;AACrE,gBAAA,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;;AAEpC,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;AACvD,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC;;AAEhE,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE;;;AAKvC,IAAA,cAAc,CAAC,KAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa;;AAI3E,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,qBAAqB;AACrG,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAC9F,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;YAElC;;QAEF,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC/D,IAAI,CAAC,IAAI,EAAE;;IAIb,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,IAAI,EAAE;;AAIb,IAAA,KAAK,CAAC,KAAoB,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;;AAGF,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAClD,KAAK,CAAC,cAAc,EAAE;;AAGxB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,EAAE;YAChF,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC;YAC1D,IAAI,CAAC,IAAI,EAAE;;;IAIf,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE;;;IAIhB,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACvC;;AAGF,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,CACjC,MAAM,IAAI,CAAC,KAAK,EAAE,EAClB,MAAM,SAAS,CAChB;YAED;;QAGF,IAAI,CAAC,KAAK,EAAE;;IAGN,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QACzB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;QAClG,UAAU,CACR,MAAK;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;AAC5E,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1D,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;;YAE1D,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC5B,SAAC,EACD,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,KAAK,GAAG,CAAC,CACjD;;8GAtHQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAjBxB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAWU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,wBAAwB,EAAE,uBAAuB;AACjD,wBAAA,yBAAyB,EAAE;AAC5B,qBAAA;AACD,oBAAA,UAAU,EAAE;AACb,iBAAA;+HA4CC,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gBAMrC,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAajC,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,iBAAiB;gBAO/B,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;;ACpFhD;MAOa,sBAAsB,CAAA;AACjC,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;;IAGzB,IAAI,UAAU,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;AAG1B,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;IAGtB,IAAI,OAAO,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAG,EAAA,UAAU,CAAC,EAAE,CAAA,CAAE,CAAC;;aACjE;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAG,EAAA,UAAU,CAAC,EAAE,CAAA,CAAE,CAAC;;AAE3E,QAAA,IAAI,CAAC,KAAK,EAAE,EAAE;YACZ,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAG,EAAA,UAAU,CAAC,IAAI,CAAA,CAAE,CAAC;;iBACnE;AACL,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAG,EAAA,UAAU,CAAC,IAAI,CAAA,CAAE,CAAC;;;;IAWjF,WAAY,CAAA,OAAmB,EAAE,QAAmB,EAAA;QAH1C,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAQ,CAAA,QAAA,GAAG,KAAK;AAGxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;IAG1B,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAG,EAAA,UAAU,CAAC,IAAI,CAAA,CAAE,CAAC;YACxE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;AAE1C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;8GA7CV,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,0HAJvB,GAAG,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAIF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,GAAG;AACb,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;AACpC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACXD;AACA;AACA;AAeA,MAAM,mBAAmB,GAAG,GAAG;AAC/B,MAAM,4BAA4B,GAAG,GAAG;AAExC;MAMa,cAAc,CAAA;;IAEzB,IACI,MAAM,CAAC,IAAkB,EAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;AAGrC,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;;AA+BrB,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;IAoBtB,WACU,CAAA,QAAoB,EAC5B,iBAAmC,EAC3B,SAAoB,EAC5B,GAA2B,EACwB,kBAAgC,EAAA;QAJ3E,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAER,IAAS,CAAA,SAAA,GAAT,SAAS;;AA/CnB,QAAA,IAAA,CAAA,MAAM,GAAiC,IAAI,YAAY,EAAkB;AACzE;;AAEG;AAEH,QAAA,IAAA,CAAA,OAAO,GAAiC,IAAI,YAAY,EAAkB;AAC1E;;AAEG;AAEH,QAAA,IAAA,CAAA,MAAM,GAAiC,IAAI,YAAY,EAAkB;AACzE;;AAEG;AAEH,QAAA,IAAA,CAAA,QAAQ,GAAiC,IAAI,YAAY,EAAkB;QAajE,IAAQ,CAAA,QAAA,GAAG,KAAK;QAEhB,IAAiB,CAAA,iBAAA,GAAG,KAAK;QACzB,IAAmB,CAAA,mBAAA,GAAG,CAAC;QACvB,IAAc,CAAA,cAAA,GAAG,CAAC;QAElB,IAAc,CAAA,cAAA,GAAG,CAAC;QAClB,IAAe,CAAA,eAAA,GAAG,CAAC;QAMrB,IAAQ,CAAA,QAAA,GAAG,KAAK;QAChB,IAAqB,CAAA,qBAAA,GAAG,KAAK;AAQnC,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,CAC/B,QAAQ,EACR,iBAAiB,EACjB,SAAS,CACV;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,kBAAkB,IAAI,mBAAmB;;AAI1D,IAAA,cAAc,CAAC,KAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa;;AAI3E,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,qBAAqB;AACrG,QAAA,IACE,IAAI,CAAC,MAAM,CAAC,mBAAmB;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,iBAAiB,EAClB;AACA,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;YAElC;;AAEF,QAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,QAAQ;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAKlB,IAAA,KAAK,CAAC,KAAoB,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB;;AAEF,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAClD,KAAK,CAAC,cAAc,EAAE;;AAGxB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,GAAG;YACxC,IAAI,CAAC,IAAI,EAAE;;;IAIf,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACrB,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;;;IAI5B,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;QAC/C,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACrB,IAAI,CAAC,IAAI,EAAE;;SAEd,EAAE,CAAC,CAAC;;;;IAMP,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;;;IAIlD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;;AAEF,QAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;AACjC,QAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAElC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QAEpB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,YAAY,EAAE;AAEnB,QAAA,IAAIC,UAAQ,IAAIA,UAAQ,CAAC,IAAI,EAAE;AAC7B,YAAA,IAAIA,UAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;iBACf;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAACA,UAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;AACvD,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAACA,UAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC;;;AAIlE,QAAA,IAAI,CAAC,YAAY,CAAC,MAAK;YACrB,IAAI,CAAC,WAAW,EAAE;AACpB,SAAC,CAAC;;;AAIJ,IAAA,IAAI,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB;;QAGF,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE;;AAGxB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,CACjC,MAAM,IAAI,CAAC,KAAK,EAAE,EAClB,MAAM,SAAS,CAAC;YAElB;;QAGF,IAAI,CAAC,KAAK,EAAE;;;AAKd;;;AAGG;IACO,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAEtB,QAAAC,QAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;AACxC,QAAAA,QAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAEzC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC;AACtE,QAAA,IAAI,CAAC,KAAK,EAAE,EAAE;AACZ,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC;;;AAI1E,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,cAAc,GAAGA,QAAM,CAAC,UAAU,CACrC,MAAM,IAAI,CAAC,SAAS,EAAE,EACtB,mBAAmB,CACpB;;aACI;YACL,IAAI,CAAC,SAAS,EAAE;;;AAIV,IAAA,SAAS,CAAC,MAAqB,EAAA;AACvC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;;AAGhD;;;AAGG;IACO,WAAW,GAAA;;AAEnB,QAAA,IACE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EACrE;;AAEA,YAAA,IAAID,UAAQ,IAAIA,UAAQ,CAAC,IAAI,EAAE;gBAC7BA,UAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;;;AAI1D,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CACzB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,aAAa,EACb,OAAO,CACR;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CACzB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,YAAY,EACZ,MAAM,CACP;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,SAAS,EACT,OAAO,CACR;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,WAAW,EACX,CAAC,CACF;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;;;AAI3C,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC;AACnE,QAAA,IAAI,CAAC,KAAK,EAAE,EAAE;AACZ,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC;;QAGvE,MAAM,kBAAkB,GAAG,MAAK;AAC9B,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACtB,gBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE;;AAErC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,SAAC;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACzB,YAAA,UAAU,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;;aAC9C;AACL,YAAA,kBAAkB,EAAE;;;;IAKd,SAAS,GAAA;AACjB,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CACzB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,aAAa,EACb,MAAM,CACP;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,SAAS,EACT,MAAM,CACP;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,gBAAA,IAAIA,UAAQ,IAAIA,UAAQ,CAAC,IAAI,EAAE;AAC7B,oBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAACA,UAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1D,oBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAACA,UAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;;gBAE1D,IAAI,CAAC,cAAc,EAAE;;YAEvB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,SAAC,CAAC;;;;;AAMM,IAAA,YAAY,CAAC,QAAqB,EAAA;QAC1C,IACE,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ;AACpB,aAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EACnD;YACA,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC;iBACF,MAAM,CAAC,sBAAsB;iBAC7B,EAAE,CAAC,MAAM;iBACT,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa;YAE5C,IAAI,CAAC,QAAQ,EAAE;gBACb;;AAGF,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC1B,gBAAA,QAAQ,EAAE;gBAEV;;AAGF,YAAA,UAAU,CAAC,QAAQ,EAAE,4BAA4B,CAAC;;aAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK;YAEtC,MAAM,cAAc,GAAG,MAAK;gBAC1B,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,QAAQ,EAAE;AACZ,oBAAA,QAAQ,EAAE;;AAEd,aAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE;gBACrC,IAAI,CAAC,eAAe,GAAGC,QAAM,CAAC,UAAU,CACtC,cAAc,EACd,4BAA4B,CAC7B;;iBACI;AACL,gBAAA,cAAc,EAAE;;;aAEb,IAAI,QAAQ,EAAE;AACnB,YAAA,QAAQ,EAAE;;;;IAKJ,cAAc,GAAA;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;IA4Bb,eAAe,GAAA;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,EAAE;YACrD;;AAEF,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,cAAc,CAAC;AACpG,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC7B;;QAEF,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;;;IAI/C,gBAAgB,GAAA;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,aAAa,EACb,EAAE,CACH;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,cAAc,EACd,EAAE,CACH;;;;IAKO,cAAc,GAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAGD,UAAQ,CAAC,IAAI,CAAC,WAAW,GAAGC,QAAM,CAAC,UAAU;AACtE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE;;IAGtC,YAAY,GAAA;QACpB,IAAI,CAACD,UAAQ,EAAE;YACb;;AAGF,QAAA,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CACjCC;AACG,aAAA,gBAAgB,CAACD,UAAQ,CAAC,IAAI;aAC9B,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,EACzC,EAAE,CACH;AAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1BA,UAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,mBAAmB;gBAC5D,IAAI,CAAC,cAAc,CAAA,EAAA,CAAI;;;IAInB,cAAc,GAAA;AACtB,QAAAA,UAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,mBAAmB,CAAA,EAAA,CAAI;;;IAI1D,iBAAiB,GAAA;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,kBAAkB,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,WAAW,CAACA,UAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QACpD,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW;QACpE,IAAI,CAAC,SAAS,CAAC,WAAW,CAACA,UAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;AAEpD,QAAA,OAAO,cAAc;;AA/bZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,2IAiEH,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAjExC,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAkEI;;0BAAY,MAAM;2BAAC,6BAA6B;yCA9D/C,MAAM,EAAA,CAAA;sBADT;gBAUQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAID,MAAM,EAAA,CAAA;sBADL;gBAMD,OAAO,EAAA,CAAA;sBADN;gBAMD,MAAM,EAAA,CAAA;sBADL;gBAMD,QAAQ,EAAA,CAAA;sBADP;gBA6CD,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gBAMrC,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;gBAkBnC,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;;;ACnGzC,IAAI,SAAS,GAAG,CAAC;MAGJ,cAAc,CAAA;AAuBzB,IAAA,WAAA,CACE,eAAiC,EACzB,GAA2B,EACwB,kBAAgC,EAAA;QADnF,IAAG,CAAA,GAAA,GAAH,GAAG;QACgD,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;AAtB/E,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE;AAC3B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE;AAC5B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE;QAEnB,IAAiB,CAAA,iBAAA,GAAG,KAAK;QACzB,IAAmB,CAAA,mBAAA,GAAG,CAAC;QAEvB,IAAc,CAAA,cAAA,GAAG,CAAC;QAIpB,IAAW,CAAA,WAAA,GAAG,CAAC;QAGf,IAAO,CAAA,OAAA,GAA+C,EAAE;QAQ9D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAA0B;QACtE,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3D,QAAA,IAAI,CAAC,MAAM,GAAG,kBAAkB;AAC9B,aAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;AAC3D,YAAA,mBAAmB;;;IAIvB,IAAI;;AAEF,IAAA,OAA+D,EAC/D,MAAwB,EAAA;QAExB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,cAAc,EAAE;;QAGrB,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,SAAS,EAAE;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB;AACnC,YAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,MAAM,CAAC;AAChD,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE;QACnB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAE/B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAI,OAAO,CAAC;;AAGpC,IAAA,IAAI,CAAC,EAAoB,EAAA;QACvB,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;YACxC,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,cAAc,EAAE;;QAEvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC;QACjF,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;AACxB,SAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,GAAG,CAAC,CAAC;;IAG9D,aAAa,GAAA;AACX,QAAA,MAAM,iBAAiB,GACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;AACpE,QAAA,MAAM,eAAe,GACnB,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO;AAEzD,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,cAAc,EAAE;AAErB,YAAA,IAAI,iBAAiB,IAAI,eAAe,EAAE;AACxC,gBAAA,IAAI,CAAC;qBACF,MAAM,CAAC,sBAAsB;qBAC7B,EAAE,CAAC,MAAM;qBACT,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa;;;;IAK3D,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB;;QAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK;AACzC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,GAAG,CAAC;QACzE,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,CAAC;;;AAGnD,IAAA,UAAU,CAAI,OAAY,EAAA;AACxB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACxC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAC5C,gBAAA,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;;;;AAKjC,QAAA,MAAM,UAAU,GAAG,IAAI,UAAU,EAAO;QACxC,MAAM,iBAAiB,GAAG;AACvB,aAAA,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;aACxD,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;aACrD,MAAM,CAAC,uBAAuB;aAC9B,EAAE,CAAC,MAAM,CAAC;AACb,QAAA,UAAU,CAAC,IAAI,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC1D,QAAA,UAAU,CAAC,QAAQ,GAAG,CAAC,QAAgB,KAAI;AACzC,YAAA,IAAI,iBAAiB,CAAC,QAAQ,EAAE;gBAC9B,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ;;AAEtD,SAAC;AAED,QAAA,UAAU,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAW;AACjD,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,YAAY,EAAW;QAE/C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;;;QAGzD,iBAAiB,CAAC,IAAI,CAAC;YACrB,OAAO;AACP,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AAChC,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;AACtC,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;AACjB,SAAA,CAAC;AAEF,QAAA,IAAI,iBAAiB,CAAC,QAAQ,EAAE;YAC9B,iBAAiB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;AACxD,YAAA,UAAU,CAAC,OAAO,GAAG,WAAW,CAAC,iBAAiB,EAAE;YACpD,UAAU,CAAC,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE;;AAGvD,QAAA,OAAO,UAAU;;AAGnB,IAAA,UAAU,CAAC,EAAoB,EAAA;AAC7B,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;YACzF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YAC/C,IAAI,WAAW,EAAE;AACf,gBAAA,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;;;aAEjB;YACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAClB,CAAC,MAAgD,KAAI;AACnD,gBAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;;AAE1C,aAAC,CACF;;;IAIL,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;;AAGzB,IAAA,gBAAgB,CAAC,MAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM;;IAGjC,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;AAC1D,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;;;;IAK3B,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU;AACtE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE;;IAGhD,YAAY,GAAA;QACV,IAAI,CAAC,QAAQ,EAAE;YACb;;AAGF,QAAA,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CACjC;AACG,aAAA,gBAAgB,CAAC,QAAQ,CAAC,IAAI;aAC9B,gBAAgB,CAAC,eAAe,CAAC,IAAI,GAAG,EAC3C,EAAE,CACH;AAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,mBAAmB;gBAC5D,IAAI,CAAC,cAAc,CAAA,EAAA,CAAI;;;IAIrB,cAAc,GAAA;AACpB,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,mBAAmB,CAAA,EAAA,CAAI;;;IAI5D,iBAAiB,GAAA;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,kBAAkB,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QACpD,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW;QACpE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;AAEpD,QAAA,OAAO,cAAc;;IAGf,cAAc,GAAA;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAA2B;QAC/D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC9C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;AAGnB,IAAA,aAAa,CAAC,EAAoB,EAAA;AACxC,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;AACzF,YAAA,IAAI,aAAa,IAAI,CAAC,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAClB,CAAC,MAAgD,EAAE,CAAS,KAAI;AAC9D,oBAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACnB,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;;AAEjC,iBAAC,CACF;;;aAEE;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;;IAIvC,SAAS,CAAC,IAA2B,EAAE,EAAyB,EAAA;AACtE,QAAA,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;YACtB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC;AACzC,SAAC,CAAC;;AApPO,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,wFA0BH,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AA1BxC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADF,UAAU,EAAA,CAAA,CAAA;;2FACtB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAC,UAAU,EAAE,UAAU,EAAC;;0BA2B/B;;0BAAY,MAAM;2BAAC,6BAA6B;;;ACzC9C,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,EAAE;MAW3C,WAAW,CAAA;AACtB,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,SAAS,EAAE,CAAC,cAAc,EAAE,sBAAsB,EAAE,kBAAkB;SACvE;;AAEH,IAAA,OAAO,QAAQ,GAAA;QACb,OAAO;AACL,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,SAAS,EAAE,CAAC,cAAc,EAAE,sBAAsB,EAAE,kBAAkB;SACvE;;8GAXQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBANhB,sBAAsB;YACtB,cAAc;AACd,YAAA,uBAAuB,CAJjB,EAAA,OAAA,EAAA,CAAA,eAAe,CAMf,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;AAEvC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YARV,eAAe,CAAA,EAAA,CAAA,CAAA;;2FAQhB,WAAW,EAAA,UAAA,EAAA,CAAA;kBATvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,eAAe,CAAC;AAC1B,oBAAA,YAAY,EAAE;wBACV,sBAAsB;wBACtB,cAAc;wBACd;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,cAAc;AACnD,iBAAA;;;ACrBD;;AAEG;;;;"}