{"version":3,"file":"primeng-confirmdialog.mjs","sources":["../../src/confirmdialog/style/confirmdialogstyle.ts","../../src/confirmdialog/confirmdialog.ts","../../src/confirmdialog/primeng-confirmdialog.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-confirmdialog .p-dialog-content {\n    display: flex;\n    align-items: center;\n    gap:  ${dt('confirmdialog.content.gap')};\n}\n\n.p-confirmdialog .p-confirmdialog-icon {\n    color: ${dt('confirmdialog.icon.color')};\n    font-size: ${dt('confirmdialog.icon.size')};\n    width: ${dt('confirmdialog.icon.size')};\n    height: ${dt('confirmdialog.icon.size')};\n}\n`;\n\nconst classes = {\n    root: 'p-confirmdialog',\n    icon: 'p-confirmdialog-icon',\n    message: 'p-confirmdialog-message',\n    pcRejectButton: 'p-confirmdialog-reject-button',\n    pcAcceptButton: 'p-confirmdialog-accept-button'\n};\n\n@Injectable()\nexport class ConfirmDialogStyle extends BaseStyle {\n    name = 'confirmdialog';\n\n    theme = theme;\n\n    classes = classes;\n}\n\n/**\n *\n * ConfirmDialog uses a Dialog UI with confirmDialog method or <ConfirmDialog> tag.\n *\n * [Live Demo](https://www.primeng.org/confirmdialog)\n *\n * @module confirmdialogstyle\n *\n */\nexport enum ConfirmDialogClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-confirmdialog',\n    /**\n     * Class name of the icon element\n     */\n    icon = 'p-confirmdialog-icon',\n    /**\n     * Class name of the message element\n     */\n    message = 'p-confirmdialog-message',\n    /**\n     * Class name of the reject button element\n     */\n    pcRejectButton = 'p-confirmdialog-reject-button',\n    /**\n     * Class name of the accept button element\n     */\n    pcAcceptButton = 'p-confirmdialog-accept-button'\n}\n\nexport interface ConfirmDialogStyle extends BaseStyle {}\n","import { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    inject,\n    Input,\n    NgModule,\n    NgZone,\n    numberAttribute,\n    OnDestroy,\n    OnInit,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { findSingle, setAttribute, uuid } from '@primeuix/utils';\nimport { Confirmation, ConfirmationService, ConfirmEventType, Footer, PrimeTemplate, SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Button } from 'primeng/button';\nimport { Dialog } from 'primeng/dialog';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { ConfirmDialogStyle } from './style/confirmdialogstyle';\n\nconst showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}', style({ transform: 'none', opacity: 1 }))]);\n\nconst hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n/**\n * ConfirmDialog uses a Dialog UI that is integrated with the Confirmation API.\n * @group Components\n */\n@Component({\n    selector: 'p-confirmDialog, p-confirmdialog, p-confirm-dialog',\n    standalone: true,\n    imports: [CommonModule, Button, Dialog, SharedModule],\n    template: `\n        <p-dialog\n            #dialog\n            [visible]=\"visible\"\n            (visibleChange)=\"onVisibleChange($event)\"\n            role=\"alertdialog\"\n            [closable]=\"option('closable')\"\n            [styleClass]=\"containerClass\"\n            [modal]=\"true\"\n            [header]=\"option('header')\"\n            [closeOnEscape]=\"option('closeOnEscape')\"\n            [blockScroll]=\"option('blockScroll')\"\n            [appendTo]=\"option('appendTo')\"\n            [position]=\"position\"\n            [style]=\"style\"\n            [dismissableMask]=\"dismissableMask\"\n            [draggable]=\"draggable\"\n        >\n            @if (headlessTemplate || _headlessTemplate) {\n                <ng-template #headless>\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            headlessTemplate || _headlessTemplate;\n                            context: {\n                                $implicit: confirmation,\n                                onAccept: onAccept.bind(this),\n                                onReject: onReject.bind(this)\n                            }\n                        \"\n                    ></ng-container>\n                </ng-template>\n            } @else {\n                @if (headerTemplate || _headerTemplate) {\n                    <ng-template #header>\n                        <div [ngClass]=\"cx('header')\">\n                            <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n                        </div>\n                    </ng-template>\n                }\n\n                <ng-template #content>\n                    @if (iconTemplate || _iconTemplate) {\n                        <ng-template *ngTemplateOutlet=\"iconTemplate || _iconTemplate\"></ng-template>\n                    } @else if (!iconTemplate && !_iconTemplate && !_messageTemplate && !messageTemplate) {\n                        <i [ngClass]=\"cx('icon')\" [class]=\"option('icon')\" *ngIf=\"option('icon')\"></i>\n                    }\n                    @if (messageTemplate || _messageTemplate) {\n                        <ng-template *ngTemplateOutlet=\"messageTemplate || _messageTemplate; context: { $implicit: confirmation }\"></ng-template>\n                    } @else {\n                        <span [ngClass]=\"cx('message')\" [innerHTML]=\"option('message')\"> </span>\n                    }\n                </ng-template>\n            }\n            <ng-template #footer>\n                @if (footerTemplate || _footerTemplate) {\n                    <ng-content select=\"p-footer\"></ng-content>\n                    <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n                }\n                @if (!footerTemplate && !_footerTemplate) {\n                    <p-button\n                        *ngIf=\"option('rejectVisible')\"\n                        [label]=\"rejectButtonLabel\"\n                        (onClick)=\"onReject()\"\n                        [styleClass]=\"getButtonStyleClass('pcRejectButton', 'rejectButtonStyleClass')\"\n                        [ariaLabel]=\"option('rejectButtonProps', 'ariaLabel')\"\n                        [buttonProps]=\"getRejectButtonProps()\"\n                    >\n                        @if (rejectIcon && !rejectIconTemplate && !_rejectIconTemplate) {\n                            <i *ngIf=\"option('rejectIcon')\" [class]=\"option('rejectIcon')\"></i>\n                        }\n                        <ng-template *ngTemplateOutlet=\"rejectIconTemplate || _rejectIconTemplate\"></ng-template>\n                    </p-button>\n                    <p-button\n                        [label]=\"acceptButtonLabel\"\n                        (onClick)=\"onAccept()\"\n                        [styleClass]=\"getButtonStyleClass('pcAcceptButton', 'acceptButtonStyleClass')\"\n                        *ngIf=\"option('acceptVisible')\"\n                        [ariaLabel]=\"option('acceptButtonProps', 'ariaLabel')\"\n                        [buttonProps]=\"getAcceptButtonProps()\"\n                    >\n                        @if (acceptIcon && !_acceptIconTemplate && !acceptIconTemplate) {\n                            <i *ngIf=\"option('acceptIcon')\" [class]=\"option('acceptIcon')\"></i>\n                        }\n                        <ng-template *ngTemplateOutlet=\"acceptIconTemplate || _acceptIconTemplate\"></ng-template>\n                    </p-button>\n                }\n            </ng-template>\n        </p-dialog>\n    `,\n    animations: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [ConfirmDialogStyle]\n})\nexport class ConfirmDialog extends BaseComponent implements OnInit, OnDestroy {\n    /**\n     * Title text of the dialog.\n     * @group Props\n     */\n    @Input() header: string | undefined;\n    /**\n     * Icon to display next to message.\n     * @group Props\n     */\n    @Input() icon: string | undefined;\n    /**\n     * Message of the confirmation.\n     * @group Props\n     */\n    @Input() message: string | undefined;\n    /**\n     * Inline style of the element.\n     * @group Props\n     */\n    @Input() get style(): { [klass: string]: any } | null | undefined {\n        return this._style;\n    }\n    set style(value: { [klass: string]: any } | null | undefined) {\n        this._style = value;\n        this.cd.markForCheck();\n    }\n    /**\n     * Class of the element.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Specify the CSS class(es) for styling the mask element\n     * @group Props\n     */\n    @Input() maskStyleClass: string | undefined;\n    /**\n     * Icon of the accept button.\n     * @group Props\n     */\n    @Input() acceptIcon: string | undefined;\n    /**\n     * Label of the accept button.\n     * @group Props\n     */\n    @Input() acceptLabel: string | undefined;\n    /**\n     * Defines a string that labels the close button for accessibility.\n     * @group Props\n     */\n    @Input() closeAriaLabel: string | undefined;\n    /**\n     * Defines a string that labels the accept button for accessibility.\n     * @group Props\n     */\n    @Input() acceptAriaLabel: string | undefined;\n    /**\n     * Visibility of the accept button.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) acceptVisible: boolean = true;\n    /**\n     * Icon of the reject button.\n     * @group Props\n     */\n    @Input() rejectIcon: string | undefined;\n    /**\n     * Label of the reject button.\n     * @group Props\n     */\n    @Input() rejectLabel: string | undefined;\n    /**\n     * Defines a string that labels the reject button for accessibility.\n     * @group Props\n     */\n    @Input() rejectAriaLabel: string | undefined;\n    /**\n     * Visibility of the reject button.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) rejectVisible: boolean = true;\n    /**\n     * Style class of the accept button.\n     * @group Props\n     */\n    @Input() acceptButtonStyleClass: string | undefined;\n    /**\n     * Style class of the reject button.\n     * @group Props\n     */\n    @Input() rejectButtonStyleClass: string | undefined;\n    /**\n     * Specifies if pressing escape key should hide the dialog.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) closeOnEscape: boolean = true;\n    /**\n     * Specifies if clicking the modal background should hide the dialog.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) dismissableMask: boolean | undefined;\n    /**\n     * Determines whether scrolling behavior should be blocked within the component.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) blockScroll: boolean = true;\n    /**\n     * When enabled dialog is displayed in RTL direction.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) rtl: boolean = false;\n    /**\n     * Adds a close icon to the header to hide the dialog.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) closable: boolean = true;\n    /**\n     *  Target element to attach the dialog, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n     * @group Props\n     */\n    @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any = 'body';\n    /**\n     * Optional key to match the key of confirm object, necessary to use when component tree has multiple confirm dialogs.\n     * @group Props\n     */\n    @Input() key: string | undefined;\n    /**\n     * Whether to automatically manage layering.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) autoZIndex: boolean = true;\n    /**\n     * Base zIndex value to use in layering.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) baseZIndex: number = 0;\n    /**\n     * Transition options of the animation.\n     * @group Props\n     */\n    @Input() transitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n    /**\n     * When enabled, can only focus on elements inside the confirm dialog.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) focusTrap: boolean = true;\n    /**\n     * Element to receive the focus when the dialog gets visible.\n     * @group Props\n     */\n    @Input() defaultFocus: 'accept' | 'reject' | 'close' | 'none' = 'accept';\n    /**\n     * Object literal to define widths per screen size.\n     * @group Props\n     */\n    @Input() breakpoints: any;\n    /**\n     * Current visible state as a boolean.\n     * @group Props\n     */\n    @Input() get visible(): any {\n        return this._visible;\n    }\n\n    set visible(value: any) {\n        this._visible = value;\n\n        if (this._visible && !this.maskVisible) {\n            this.maskVisible = true;\n        }\n\n        this.cd.markForCheck();\n    }\n    /**\n     *  Allows getting the position of the component.\n     * @group Props\n     */\n    @Input() get position(): string {\n        return this._position;\n    }\n    set position(value: string) {\n        this._position = value;\n\n        switch (value) {\n            case 'topleft':\n            case 'bottomleft':\n            case 'left':\n                this.transformOptions = 'translate3d(-100%, 0px, 0px)';\n                break;\n            case 'topright':\n            case 'bottomright':\n            case 'right':\n                this.transformOptions = 'translate3d(100%, 0px, 0px)';\n                break;\n            case 'bottom':\n                this.transformOptions = 'translate3d(0px, 100%, 0px)';\n                break;\n            case 'top':\n                this.transformOptions = 'translate3d(0px, -100%, 0px)';\n                break;\n            default:\n                this.transformOptions = 'scale(0.7)';\n                break;\n        }\n    }\n    /**\n     * Enables dragging to change the position using header.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) draggable: boolean = true;\n    /**\n     * Callback to invoke when dialog is hidden.\n     * @param {ConfirmEventType} enum - Custom confirm event.\n     * @group Emits\n     */\n    @Output() onHide: EventEmitter<ConfirmEventType> = new EventEmitter<ConfirmEventType>();\n\n    @ContentChild(Footer) footer: Nullable<TemplateRef<any>>;\n\n    _componentStyle = inject(ConfirmDialogStyle);\n\n    @ContentChild('header', { descendants: false }) headerTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('footer', { descendants: false }) footerTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('rejecticon', { descendants: false }) rejectIconTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('accepticon', { descendants: false }) acceptIconTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('message', { descendants: false }) messageTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('icon', { descendants: false }) iconTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('headless', { descendants: false }) headlessTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    _headerTemplate: TemplateRef<any> | undefined;\n\n    _footerTemplate: TemplateRef<any> | undefined;\n\n    _rejectIconTemplate: TemplateRef<any> | undefined;\n\n    _acceptIconTemplate: TemplateRef<any> | undefined;\n\n    _messageTemplate: TemplateRef<any> | undefined;\n\n    _iconTemplate: TemplateRef<any> | undefined;\n\n    _headlessTemplate: TemplateRef<any> | undefined;\n\n    confirmation: Nullable<Confirmation>;\n\n    _visible: boolean | undefined;\n\n    _style: { [klass: string]: any } | null | undefined;\n\n    maskVisible: boolean | undefined;\n\n    dialog: Nullable<Dialog>;\n\n    wrapper: Nullable<HTMLElement>;\n\n    contentContainer: Nullable<HTMLDivElement>;\n\n    subscription: Subscription;\n\n    preWidth: number | undefined;\n\n    _position: string = 'center';\n\n    transformOptions: any = 'scale(0.7)';\n\n    styleElement: any;\n\n    id = uuid('pn_id_');\n\n    ariaLabelledBy: string = this.getAriaLabelledBy();\n\n    translationSubscription: Subscription | undefined;\n\n    get containerClass(): string {\n        return this.cx('root') + ' ' + this.styleClass || ' ';\n    }\n\n    constructor(\n        private confirmationService: ConfirmationService,\n        public zone: NgZone\n    ) {\n        super();\n        this.subscription = this.confirmationService.requireConfirmation$.subscribe((confirmation) => {\n            if (!confirmation) {\n                this.hide();\n                return;\n            }\n            if (confirmation.key === this.key) {\n                this.confirmation = confirmation;\n\n                const keys = Object.keys(confirmation);\n\n                keys.forEach((key) => {\n                    this[key] = confirmation[key];\n                });\n\n                if (this.confirmation.accept) {\n                    this.confirmation.acceptEvent = new EventEmitter();\n                    this.confirmation.acceptEvent.subscribe(this.confirmation.accept);\n                }\n\n                if (this.confirmation.reject) {\n                    this.confirmation.rejectEvent = new EventEmitter();\n                    this.confirmation.rejectEvent.subscribe(this.confirmation.reject);\n                }\n\n                this.visible = true;\n            }\n        });\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        if (this.breakpoints) {\n            this.createStyle();\n        }\n\n        this.translationSubscription = this.config.translationObserver.subscribe(() => {\n            if (this.visible) {\n                this.cd.markForCheck();\n            }\n        });\n    }\n\n    ngAfterContentInit() {\n        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'header':\n                    this._headerTemplate = item.template;\n                    break;\n\n                case 'footer':\n                    this._footerTemplate = item.template;\n                    break;\n\n                case 'message':\n                    this._messageTemplate = item.template;\n                    break;\n\n                case 'icon':\n                    this._iconTemplate = item.template;\n                    break;\n\n                case 'rejecticon':\n                    this._rejectIconTemplate = item.template;\n                    break;\n\n                case 'accepticon':\n                    this._acceptIconTemplate = item.template;\n                    break;\n\n                case 'headless':\n                    this._headlessTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    getAriaLabelledBy() {\n        return this.header !== null ? uuid('pn_id_') + '_header' : null;\n    }\n\n    option(name: string, k?: string) {\n        const source: { [key: string]: any } = this || this;\n        if (source.hasOwnProperty(name)) {\n            if (k) {\n                return source[k];\n            }\n            return source[name];\n        }\n\n        return undefined;\n    }\n\n    getButtonStyleClass(cx: string, opt: string): string {\n        const cxClass = this.cx(cx);\n        const optionClass = this.option(opt);\n\n        return [cxClass, optionClass].filter(Boolean).join(' ');\n    }\n\n    getElementToFocus() {\n        switch (this.option('defaultFocus')) {\n            case 'accept':\n                return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-accept');\n\n            case 'reject':\n                return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-reject');\n\n            case 'close':\n                return findSingle(this.dialog.el.nativeElement, '.p-dialog-header-close');\n\n            case 'none':\n                return null;\n\n            //backward compatibility\n            default:\n                return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-accept');\n        }\n    }\n\n    createStyle() {\n        if (!this.styleElement) {\n            this.styleElement = this.document.createElement('style');\n            this.styleElement.type = 'text/css';\n            this.document.head.appendChild(this.styleElement);\n            let innerHTML = '';\n            for (let breakpoint in this.breakpoints) {\n                innerHTML += `\n                    @media screen and (max-width: ${breakpoint}) {\n                        .p-dialog[${this.id}] {\n                            width: ${this.breakpoints[breakpoint]} !important;\n                        }\n                    }\n                `;\n            }\n\n            this.styleElement.innerHTML = innerHTML;\n            setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n        }\n    }\n\n    close() {\n        if (this.confirmation?.rejectEvent) {\n            this.confirmation.rejectEvent.emit(ConfirmEventType.CANCEL);\n        }\n\n        this.hide(ConfirmEventType.CANCEL);\n    }\n\n    hide(type?: ConfirmEventType) {\n        this.onHide.emit(type);\n        this.visible = false;\n        this.confirmation = null;\n    }\n\n    destroyStyle() {\n        if (this.styleElement) {\n            this.document.head.removeChild(this.styleElement);\n            this.styleElement = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.subscription.unsubscribe();\n\n        if (this.translationSubscription) {\n            this.translationSubscription.unsubscribe();\n        }\n\n        this.destroyStyle();\n        super.ngOnDestroy();\n    }\n\n    onVisibleChange(value: boolean) {\n        if (!value) {\n            this.close();\n        } else {\n            this.visible = value;\n        }\n    }\n\n    onAccept() {\n        if (this.confirmation && this.confirmation.acceptEvent) {\n            this.confirmation.acceptEvent.emit();\n        }\n        this.hide(ConfirmEventType.ACCEPT);\n    }\n\n    onReject() {\n        if (this.confirmation && this.confirmation.rejectEvent) {\n            this.confirmation.rejectEvent.emit(ConfirmEventType.REJECT);\n        }\n\n        this.hide(ConfirmEventType.REJECT);\n    }\n\n    get acceptButtonLabel(): string {\n        return this.option('acceptLabel') || this.config.getTranslation(TranslationKeys.ACCEPT);\n    }\n\n    get rejectButtonLabel(): string {\n        return this.option('rejectLabel') || this.config.getTranslation(TranslationKeys.REJECT);\n    }\n\n    getAcceptButtonProps() {\n        return this.option('acceptButtonProps');\n    }\n\n    getRejectButtonProps() {\n        return this.option('rejectButtonProps');\n    }\n}\n\n@NgModule({\n    imports: [ConfirmDialog, SharedModule],\n    exports: [ConfirmDialog, SharedModule]\n})\nexport class ConfirmDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAGA,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK;;;;YAId,EAAE,CAAC,2BAA2B,CAAC,CAAA;;;;aAI9B,EAAE,CAAC,0BAA0B,CAAC,CAAA;iBAC1B,EAAE,CAAC,yBAAyB,CAAC,CAAA;aACjC,EAAE,CAAC,yBAAyB,CAAC,CAAA;cAC5B,EAAE,CAAC,yBAAyB,CAAC,CAAA;;CAE1C;AAED,MAAM,OAAO,GAAG;AACZ,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,OAAO,EAAE,yBAAyB;AAClC,IAAA,cAAc,EAAE,+BAA+B;AAC/C,IAAA,cAAc,EAAE;CACnB;AAGK,MAAO,kBAAmB,SAAQ,SAAS,CAAA;IAC7C,IAAI,GAAG,eAAe;IAEtB,KAAK,GAAG,KAAK;IAEb,OAAO,GAAG,OAAO;uGALR,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAlB,kBAAkB,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;AASD;;;;;;;;AAQG;IACS;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC5B;;AAEG;AACH,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,iBAAwB;AACxB;;AAEG;AACH,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,sBAA6B;AAC7B;;AAEG;AACH,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,yBAAmC;AACnC;;AAEG;AACH,IAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,+BAAgD;AAChD;;AAEG;AACH,IAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,+BAAgD;AACpD,CAAC,EArBW,oBAAoB,KAApB,oBAAoB,GAqB/B,EAAA,CAAA,CAAA;;AClCD,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEzJ,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/G;;;AAGG;AAmGG,MAAO,aAAc,SAAQ,aAAa,CAAA;AA+RhC,IAAA,mBAAA;AACD,IAAA,IAAA;AA/RX;;;AAGG;AACM,IAAA,MAAM;AACf;;;AAGG;AACM,IAAA,IAAI;AACb;;;AAGG;AACM,IAAA,OAAO;AAChB;;;AAGG;AACH,IAAA,IAAa,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;IAEtB,IAAI,KAAK,CAAC,KAAkD,EAAA;AACxD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;AAE1B;;;AAGG;AACM,IAAA,UAAU;AACnB;;;AAGG;AACM,IAAA,cAAc;AACvB;;;AAGG;AACM,IAAA,UAAU;AACnB;;;AAGG;AACM,IAAA,WAAW;AACpB;;;AAGG;AACM,IAAA,cAAc;AACvB;;;AAGG;AACM,IAAA,eAAe;AACxB;;;AAGG;IACqC,aAAa,GAAY,IAAI;AACrE;;;AAGG;AACM,IAAA,UAAU;AACnB;;;AAGG;AACM,IAAA,WAAW;AACpB;;;AAGG;AACM,IAAA,eAAe;AACxB;;;AAGG;IACqC,aAAa,GAAY,IAAI;AACrE;;;AAGG;AACM,IAAA,sBAAsB;AAC/B;;;AAGG;AACM,IAAA,sBAAsB;AAC/B;;;AAGG;IACqC,aAAa,GAAY,IAAI;AACrE;;;AAGG;AACqC,IAAA,eAAe;AACvD;;;AAGG;IACqC,WAAW,GAAY,IAAI;AACnE;;;AAGG;IACqC,GAAG,GAAY,KAAK;AAC5D;;;AAGG;IACqC,QAAQ,GAAY,IAAI;AAChE;;;AAGG;IACM,QAAQ,GAAkF,MAAM;AACzG;;;AAGG;AACM,IAAA,GAAG;AACZ;;;AAGG;IACqC,UAAU,GAAY,IAAI;AAClE;;;AAGG;IACoC,UAAU,GAAW,CAAC;AAC7D;;;AAGG;IACM,iBAAiB,GAAW,kCAAkC;AACvE;;;AAGG;IACqC,SAAS,GAAY,IAAI;AACjE;;;AAGG;IACM,YAAY,GAA2C,QAAQ;AACxE;;;AAGG;AACM,IAAA,WAAW;AACpB;;;AAGG;AACH,IAAA,IAAa,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;;IAGxB,IAAI,OAAO,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QAErB,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;;AAG3B,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;AAE1B;;;AAGG;AACH,IAAA,IAAa,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;;IAEzB,IAAI,QAAQ,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QAEtB,QAAQ,KAAK;AACT,YAAA,KAAK,SAAS;AACd,YAAA,KAAK,YAAY;AACjB,YAAA,KAAK,MAAM;AACP,gBAAA,IAAI,CAAC,gBAAgB,GAAG,8BAA8B;gBACtD;AACJ,YAAA,KAAK,UAAU;AACf,YAAA,KAAK,aAAa;AAClB,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,gBAAgB,GAAG,6BAA6B;gBACrD;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,gBAAgB,GAAG,6BAA6B;gBACrD;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,gBAAgB,GAAG,8BAA8B;gBACtD;AACJ,YAAA;AACI,gBAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY;gBACpC;;;AAGZ;;;AAGG;IACqC,SAAS,GAAY,IAAI;AACjE;;;;AAIG;AACO,IAAA,MAAM,GAAmC,IAAI,YAAY,EAAoB;AAEjE,IAAA,MAAM;AAE5B,IAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAEI,IAAA,cAAc;AAEd,IAAA,cAAc;AAEV,IAAA,kBAAkB;AAElB,IAAA,kBAAkB;AAErB,IAAA,eAAe;AAElB,IAAA,YAAY;AAER,IAAA,gBAAgB;AAElC,IAAA,SAAS;AAEzC,IAAA,eAAe;AAEf,IAAA,eAAe;AAEf,IAAA,mBAAmB;AAEnB,IAAA,mBAAmB;AAEnB,IAAA,gBAAgB;AAEhB,IAAA,aAAa;AAEb,IAAA,iBAAiB;AAEjB,IAAA,YAAY;AAEZ,IAAA,QAAQ;AAER,IAAA,MAAM;AAEN,IAAA,WAAW;AAEX,IAAA,MAAM;AAEN,IAAA,OAAO;AAEP,IAAA,gBAAgB;AAEhB,IAAA,YAAY;AAEZ,IAAA,QAAQ;IAER,SAAS,GAAW,QAAQ;IAE5B,gBAAgB,GAAQ,YAAY;AAEpC,IAAA,YAAY;AAEZ,IAAA,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AAEnB,IAAA,cAAc,GAAW,IAAI,CAAC,iBAAiB,EAAE;AAEjD,IAAA,uBAAuB;AAEvB,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG;;IAGzD,WACY,CAAA,mBAAwC,EACzC,IAAY,EAAA;AAEnB,QAAA,KAAK,EAAE;QAHC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;QACpB,IAAI,CAAA,IAAA,GAAJ,IAAI;AAGX,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,YAAY,KAAI;YACzF,IAAI,CAAC,YAAY,EAAE;gBACf,IAAI,CAAC,IAAI,EAAE;gBACX;;YAEJ,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE;AAC/B,gBAAA,IAAI,CAAC,YAAY,GAAG,YAAY;gBAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAEtC,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;oBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;AACjC,iBAAC,CAAC;AAEF,gBAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;oBAC1B,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,YAAY,EAAE;AAClD,oBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;;AAGrE,gBAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;oBAC1B,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,YAAY,EAAE;AAClD,oBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;;AAGrE,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;AAE3B,SAAC,CAAC;;IAGN,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE;;AAGtB,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAK;AAC1E,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;AAE9B,SAAC,CAAC;;IAGN,kBAAkB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;AAC7B,YAAA,QAAQ,IAAI,CAAC,OAAO,EAAE;AAClB,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;oBACpC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;oBACpC;AAEJ,gBAAA,KAAK,SAAS;AACV,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ;oBACrC;AAEJ,gBAAA,KAAK,MAAM;AACP,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;oBAClC;AAEJ,gBAAA,KAAK,YAAY;AACb,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ;oBACxC;AAEJ,gBAAA,KAAK,YAAY;AACb,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ;oBACxC;AAEJ,gBAAA,KAAK,UAAU;AACX,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ;oBACtC;;AAEZ,SAAC,CAAC;;IAGN,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,IAAI;;IAGnE,MAAM,CAAC,IAAY,EAAE,CAAU,EAAA;AAC3B,QAAA,MAAM,MAAM,GAA2B,IAAI,IAAI,IAAI;AACnD,QAAA,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,EAAE;AACH,gBAAA,OAAO,MAAM,CAAC,CAAC,CAAC;;AAEpB,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC;;AAGvB,QAAA,OAAO,SAAS;;IAGpB,mBAAmB,CAAC,EAAU,EAAE,GAAW,EAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAEpC,QAAA,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG3D,iBAAiB,GAAA;AACb,QAAA,QAAQ,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;AAC/B,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,0BAA0B,CAAC;AAE/E,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,0BAA0B,CAAC;AAE/E,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;AAE7E,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,IAAI;;AAGf,YAAA;AACI,gBAAA,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,0BAA0B,CAAC;;;IAIvF,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,UAAU;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;YACjD,IAAI,SAAS,GAAG,EAAE;AAClB,YAAA,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;AACrC,gBAAA,SAAS,IAAI;oDACuB,UAAU,CAAA;AAC1B,kCAAA,EAAA,IAAI,CAAC,EAAE,CAAA;AACN,mCAAA,EAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;;;iBAGhD;;AAGL,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,SAAS;AACvC,YAAA,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC;;;IAI3E,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;AAG/D,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;AAGtC,IAAA,IAAI,CAAC,IAAuB,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;IAG5B,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACjD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;;IAIhC,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAE/B,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE;;QAG9C,IAAI,CAAC,YAAY,EAAE;QACnB,KAAK,CAAC,WAAW,EAAE;;AAGvB,IAAA,eAAe,CAAC,KAAc,EAAA;QAC1B,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,CAAC,KAAK,EAAE;;aACT;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;IAI5B,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AACpD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE;;AAExC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;IAGtC,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YACpD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;AAG/D,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;AAGtC,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC;;AAG3F,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC;;IAG3F,oBAAoB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;;IAG3C,oBAAoB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;;uGAnflC,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EA6DF,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,gBAAgB,CAoBhB,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,gBAAgB,CAehB,EAAA,sBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,gBAAgB,CAKhB,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAgB,CAKhB,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAgB,CAKhB,EAAA,GAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,gBAAgB,sCAKhB,gBAAgB,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAehB,gBAAgB,CAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAKhB,eAAe,CAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAUf,gBAAgB,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAgEhB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EApNzB,CAAC,kBAAkB,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA4NjB,MAAM,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAkBH,aAAa,EA1UpB,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAzFS,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAM,EAAE,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAM,23BAAE,YAAY,EAAA,CAAA,EAAA,UAAA,EA0FxC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKvJ,aAAa,EAAA,UAAA,EAAA,CAAA;kBAlGzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oDAAoD;AAC9D,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC;AACrD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFT,IAAA,CAAA;AACD,oBAAA,UAAU,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChK,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,SAAS,EAAE,CAAC,kBAAkB;AACjC,iBAAA;6GAMY,MAAM,EAAA,CAAA;sBAAd;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAKY,KAAK,EAAA,CAAA;sBAAjB;gBAWQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAKQ,eAAe,EAAA,CAAA;sBAAvB;gBAKuC,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,eAAe,EAAA,CAAA;sBAAvB;gBAKuC,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,sBAAsB,EAAA,CAAA;sBAA9B;gBAKQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAKuC,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAKE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAKE,WAAW,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAKE,GAAG,EAAA,CAAA;sBAA1C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAKE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,GAAG,EAAA,CAAA;sBAAX;gBAKuC,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAKC,UAAU,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAK5B,iBAAiB,EAAA,CAAA;sBAAzB;gBAKuC,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,YAAY,EAAA,CAAA;sBAApB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKY,OAAO,EAAA,CAAA;sBAAnB;gBAiBY,QAAQ,EAAA,CAAA;sBAApB;gBAgCuC,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAM5B,MAAM,EAAA,CAAA;sBAAf;gBAEqB,MAAM,EAAA,CAAA;sBAA3B,YAAY;uBAAC,MAAM;gBAI4B,cAAc,EAAA,CAAA;sBAA7D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAEE,cAAc,EAAA,CAAA;sBAA7D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAEM,kBAAkB,EAAA,CAAA;sBAArE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAEE,kBAAkB,EAAA,CAAA;sBAArE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAED,eAAe,EAAA,CAAA;sBAA/D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAED,YAAY,EAAA,CAAA;sBAAzD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAEM,gBAAgB,EAAA,CAAA;sBAAjE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAEhB,SAAS,EAAA,CAAA;sBAAxC,eAAe;uBAAC,aAAa;;MA+QrB,mBAAmB,CAAA;uGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YA3fnB,aAAa,EAwfG,YAAY,CAxf5B,EAAA,OAAA,EAAA,CAAA,aAAa,EAyfG,YAAY,CAAA,EAAA,CAAA;AAE5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAHlB,OAAA,EAAA,CAAA,aAAa,EAAE,YAAY,EACZ,YAAY,CAAA,EAAA,CAAA;;2FAE5B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;AACtC,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY;AACxC,iBAAA;;;ACloBD;;AAEG;;;;"}