ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 117 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-modal.mjs","sources":["../../components/modal/modal-types.ts","../../components/modal/modal-config.ts","../../components/modal/modal-animations.ts","../../components/modal/utils.ts","../../components/modal/modal-container.directive.ts","../../components/modal/modal-close.component.ts","../../components/modal/modal-confirm-container.component.ts","../../components/modal/modal-footer.component.ts","../../components/modal/modal-title.component.ts","../../components/modal/modal-container.component.ts","../../components/modal/modal-ref.ts","../../components/modal/modal.service.ts","../../components/modal/modal-content.directive.ts","../../components/modal/modal-footer.directive.ts","../../components/modal/modal-title.directive.ts","../../components/modal/modal.component.ts","../../components/modal/modal.module.ts","../../components/modal/modal-legacy-api.ts","../../components/modal/public-api.ts","../../components/modal/ng-zorro-antd-modal.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction } from '@angular/cdk/bidi';\nimport { EventEmitter, TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\nimport { NzButtonShape, NzButtonSize, NzButtonType } from 'ng-zorro-antd/button';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport type OnClickCallback<T> = (instance: T) => (false | void | {}) | Promise<false | void | {}>;\n\nexport type ModalTypes = 'default' | 'confirm'; // Different modal styles we have supported\n\nexport type ConfirmType = 'confirm' | 'info' | 'success' | 'error' | 'warning'; // Subtypes of Confirm Modal\n\nexport interface StyleObjectLike {\n [key: string]: string;\n}\n\nconst noopFun = () => void 0;\n\nexport class ModalOptions<T = NzSafeAny, R = NzSafeAny> {\n nzCentered?: boolean = false;\n nzClosable?: boolean = true;\n nzOkLoading?: boolean = false;\n nzOkDisabled?: boolean = false;\n nzCancelDisabled?: boolean = false;\n nzCancelLoading?: boolean = false;\n nzNoAnimation?: boolean = false;\n nzAutofocus?: 'ok' | 'cancel' | 'auto' | null = 'auto';\n nzMask?: boolean;\n nzMaskClosable?: boolean;\n nzKeyboard?: boolean = true;\n nzZIndex?: number = 1000;\n nzWidth?: number | string = 520;\n nzCloseIcon?: string | TemplateRef<void> = 'close';\n nzOkType?: NzButtonType = 'primary';\n nzOkDanger?: boolean = false;\n nzModalType?: ModalTypes = 'default';\n nzOnCancel?: EventEmitter<T> | OnClickCallback<T> = noopFun;\n nzOnOk?: EventEmitter<T> | OnClickCallback<T> = noopFun;\n nzComponentParams?: Partial<T>;\n nzMaskStyle?: StyleObjectLike;\n nzBodyStyle?: StyleObjectLike;\n nzWrapClassName?: string;\n nzClassName?: string;\n nzStyle?: object;\n nzTitle?: string | TemplateRef<{}>;\n nzFooter?: string | TemplateRef<{}> | Array<ModalButtonOptions<T>> | null; // Default Modal ONLY\n nzCancelText?: string | null;\n nzOkText?: string | null;\n nzContent?: string | TemplateRef<NzSafeAny> | Type<T>;\n nzCloseOnNavigation?: boolean;\n nzViewContainerRef?: ViewContainerRef;\n // Template use only\n nzAfterOpen?: EventEmitter<void>;\n nzAfterClose?: EventEmitter<R>;\n\n // Confirm\n nzIconType?: string = 'question-circle';\n nzDirection?: Direction;\n}\n\nexport interface ModalButtonOptions<T = NzSafeAny> {\n label: string;\n type?: NzButtonType;\n danger?: boolean;\n shape?: NzButtonShape;\n ghost?: boolean;\n size?: NzButtonSize;\n autoLoading?: boolean; // Default: true, indicate whether show loading automatically while onClick returned a Promise\n\n // [NOTE] \"componentInstance\" will refer to the component's instance when using Component\n show?: boolean | ((this: ModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n loading?: boolean | ((this: ModalButtonOptions<T>, contentComponentInstance?: T) => boolean); // This prop CAN'T use with autoLoading=true\n disabled?: boolean | ((this: ModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n onClick?(this: ModalButtonOptions<T>, contentComponentInstance?: T): NzSafeAny | Promise<NzSafeAny>;\n [key: string]: NzSafeAny;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NzConfigKey } from 'ng-zorro-antd/core/config';\n\nexport const ZOOM_CLASS_NAME_MAP = {\n enter: 'ant-zoom-enter',\n enterActive: 'ant-zoom-enter-active',\n leave: 'ant-zoom-leave',\n leaveActive: 'ant-zoom-leave-active'\n};\n\nexport const FADE_CLASS_NAME_MAP = {\n enter: 'ant-fade-enter',\n enterActive: 'ant-fade-enter-active',\n leave: 'ant-fade-leave',\n leaveActive: 'ant-fade-leave-active'\n};\n\nexport const MODAL_MASK_CLASS_NAME = 'ant-modal-mask';\nexport const NZ_CONFIG_MODULE_NAME: NzConfigKey = 'modal';\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const nzModalAnimations: {\n readonly modalContainer: AnimationTriggerMetadata;\n} = {\n modalContainer: trigger('modalContainer', [\n state('void, exit', style({})),\n state('enter', style({})),\n transition('* => enter', animate('.24s', style({}))),\n transition('* => void, * => exit', animate('.2s', style({})))\n ])\n};\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ModalOptions } from './modal-types';\n\nexport function applyConfigDefaults(config: ModalOptions, defaultOptions: ModalOptions): ModalOptions {\n return { ...defaultOptions, ...config };\n}\n\nexport function getValueWithConfig<T>(\n userValue: T | undefined,\n configValue: T | undefined,\n defaultValue: T\n): T | undefined {\n return typeof userValue === 'undefined'\n ? typeof configValue === 'undefined'\n ? defaultValue\n : configValue\n : userValue;\n}\n\n/**\n * Assign the params into the content component instance.\n *\n * @deprecated Should use dependency injection to get the params for user\n * @breaking-change 14.0.0\n */\nexport function setContentInstanceParams<T>(instance: T, params: Partial<T> | undefined): void {\n Object.assign(<{}>instance, params);\n}\n\nexport function getConfigFromComponent<T extends ModalOptions>(component: T): ModalOptions {\n const {\n nzCentered,\n nzMask,\n nzMaskClosable,\n nzClosable,\n nzOkLoading,\n nzOkDisabled,\n nzCancelDisabled,\n nzCancelLoading,\n nzKeyboard,\n nzNoAnimation,\n nzContent,\n nzComponentParams,\n nzFooter,\n nzZIndex,\n nzWidth,\n nzWrapClassName,\n nzClassName,\n nzStyle,\n nzTitle,\n nzCloseIcon,\n nzMaskStyle,\n nzBodyStyle,\n nzOkText,\n nzCancelText,\n nzOkType,\n nzOkDanger,\n nzIconType,\n nzModalType,\n nzOnOk,\n nzOnCancel,\n nzAfterOpen,\n nzAfterClose,\n nzCloseOnNavigation,\n nzAutofocus\n } = component;\n return {\n nzCentered,\n nzMask,\n nzMaskClosable,\n nzClosable,\n nzOkLoading,\n nzOkDisabled,\n nzCancelDisabled,\n nzCancelLoading,\n nzKeyboard,\n nzNoAnimation,\n nzContent,\n nzComponentParams,\n nzFooter,\n nzZIndex,\n nzWidth,\n nzWrapClassName,\n nzClassName,\n nzStyle,\n nzTitle,\n nzCloseIcon,\n nzMaskStyle,\n nzBodyStyle,\n nzOkText,\n nzCancelText,\n nzOkType,\n nzOkDanger,\n nzIconType,\n nzModalType,\n nzOnOk,\n nzOnCancel,\n nzAfterOpen,\n nzAfterClose,\n nzCloseOnNavigation,\n nzAutofocus\n };\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { AnimationEvent } from '@angular/animations';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n NgZone,\n OnDestroy,\n Renderer2\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { reqAnimFrame } from 'ng-zorro-antd/core/polyfill';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { getElementOffset, isNotNil } from 'ng-zorro-antd/core/util';\n\nimport { FADE_CLASS_NAME_MAP, MODAL_MASK_CLASS_NAME, NZ_CONFIG_MODULE_NAME, ZOOM_CLASS_NAME_MAP } from './modal-config';\nimport { NzModalRef } from './modal-ref';\nimport { ModalOptions } from './modal-types';\nimport { getValueWithConfig } from './utils';\n\nexport function throwNzModalContentAlreadyAttachedError(): never {\n throw Error('Attempting to attach modal content after content is already attached');\n}\n\n@Directive()\nexport class BaseModalContainerComponent extends BasePortalOutlet implements OnDestroy {\n portalOutlet!: CdkPortalOutlet;\n modalElementRef!: ElementRef<HTMLDivElement>;\n\n animationStateChanged = new EventEmitter<AnimationEvent>();\n containerClick = new EventEmitter<void>();\n cancelTriggered = new EventEmitter<void>();\n okTriggered = new EventEmitter<void>();\n\n state: 'void' | 'enter' | 'exit' = 'enter';\n document: Document;\n modalRef!: NzModalRef;\n isStringContent: boolean = false;\n dir: Direction = 'ltr';\n private elementFocusedBeforeModalWasOpened: HTMLElement | null = null;\n private focusTrap!: FocusTrap;\n private mouseDown = false;\n private oldMaskStyle: { [key: string]: string } | null = null;\n protected destroy$ = new Subject();\n\n get showMask(): boolean {\n const defaultConfig: NzSafeAny = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME) || {};\n\n return !!getValueWithConfig<boolean>(this.config.nzMask, defaultConfig.nzMask, true);\n }\n\n get maskClosable(): boolean {\n const defaultConfig: NzSafeAny = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME) || {};\n\n return !!getValueWithConfig<boolean>(this.config.nzMaskClosable, defaultConfig.nzMaskClosable, true);\n }\n\n constructor(\n protected ngZone: NgZone,\n protected host: ElementRef<HTMLElement>,\n protected focusTrapFactory: FocusTrapFactory,\n public cdr: ChangeDetectorRef,\n protected render: Renderer2,\n protected overlayRef: OverlayRef,\n protected nzConfigService: NzConfigService,\n public config: ModalOptions,\n document?: NzSafeAny,\n protected animationType?: string\n ) {\n super();\n this.document = document;\n this.dir = overlayRef.getDirection();\n this.isStringContent = typeof config.nzContent === 'string';\n this.nzConfigService\n .getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateMaskClassname();\n });\n }\n\n onContainerClick(e: MouseEvent): void {\n if (e.target === e.currentTarget && !this.mouseDown && this.showMask && this.maskClosable) {\n this.containerClick.emit();\n }\n }\n\n onCloseClick(): void {\n this.cancelTriggered.emit();\n }\n\n onOkClick(): void {\n this.okTriggered.emit();\n }\n\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (this.portalOutlet.hasAttached()) {\n throwNzModalContentAlreadyAttachedError();\n }\n this.savePreviouslyFocusedElement();\n this.setZIndexForBackdrop();\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (this.portalOutlet.hasAttached()) {\n throwNzModalContentAlreadyAttachedError();\n }\n this.savePreviouslyFocusedElement();\n this.setZIndexForBackdrop();\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n attachStringContent(): void {\n this.savePreviouslyFocusedElement();\n this.setZIndexForBackdrop();\n }\n\n getNativeElement(): HTMLElement {\n return this.host.nativeElement;\n }\n\n private animationDisabled(): boolean {\n return this.config.nzNoAnimation || this.animationType === 'NoopAnimations';\n }\n\n private setModalTransformOrigin(): void {\n const modalElement = this.modalElementRef.nativeElement;\n if (this.elementFocusedBeforeModalWasOpened as HTMLElement) {\n const previouslyDOMRect = this.elementFocusedBeforeModalWasOpened!.getBoundingClientRect();\n const lastPosition = getElementOffset(this.elementFocusedBeforeModalWasOpened!);\n const x = lastPosition.left + previouslyDOMRect.width / 2;\n const y = lastPosition.top + previouslyDOMRect.height / 2;\n const transformOrigin = `${x - modalElement.offsetLeft}px ${y - modalElement.offsetTop}px 0px`;\n this.render.setStyle(modalElement, 'transform-origin', transformOrigin);\n }\n }\n\n private savePreviouslyFocusedElement(): void {\n if (!this.focusTrap) {\n this.focusTrap = this.focusTrapFactory.create(this.host.nativeElement);\n }\n\n if (this.document) {\n this.elementFocusedBeforeModalWasOpened = this.document.activeElement as HTMLElement;\n if (this.host.nativeElement.focus) {\n this.ngZone.runOutsideAngular(() => reqAnimFrame(() => this.host.nativeElement.focus()));\n }\n }\n }\n\n private trapFocus(): void {\n const element = this.host.nativeElement;\n\n if (this.config.nzAutofocus) {\n this.focusTrap.focusInitialElementWhenReady();\n } else {\n const activeElement = this.document.activeElement;\n if (activeElement !== element && !element.contains(activeElement)) {\n element.focus();\n }\n }\n }\n\n private restoreFocus(): void {\n const toFocus = this.elementFocusedBeforeModalWasOpened as HTMLElement;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (toFocus && typeof toFocus.focus === 'function') {\n const activeElement = this.document.activeElement as Element;\n const element = this.host.nativeElement;\n\n if (\n !activeElement ||\n activeElement === this.document.body ||\n activeElement === element ||\n element.contains(activeElement)\n ) {\n toFocus.focus();\n }\n }\n\n if (this.focusTrap) {\n this.focusTrap.destroy();\n }\n }\n\n private setEnterAnimationClass(): void {\n if (this.animationDisabled()) {\n return;\n }\n // Make sure to set the `TransformOrigin` style before set the modelElement's class names\n this.setModalTransformOrigin();\n const modalElement = this.modalElementRef.nativeElement;\n const backdropElement = this.overlayRef.backdropElement;\n modalElement.classList.add(ZOOM_CLASS_NAME_MAP.enter);\n modalElement.classList.add(ZOOM_CLASS_NAME_MAP.enterActive);\n if (backdropElement) {\n backdropElement.classList.add(FADE_CLASS_NAME_MAP.enter);\n backdropElement.classList.add(FADE_CLASS_NAME_MAP.enterActive);\n }\n }\n\n private setExitAnimationClass(): void {\n const modalElement = this.modalElementRef.nativeElement;\n\n modalElement.classList.add(ZOOM_CLASS_NAME_MAP.leave);\n modalElement.classList.add(ZOOM_CLASS_NAME_MAP.leaveActive);\n\n this.setMaskExitAnimationClass();\n }\n\n private setMaskExitAnimationClass(force: boolean = false): void {\n const backdropElement = this.overlayRef.backdropElement;\n if (backdropElement) {\n if (this.animationDisabled() || force) {\n // https://github.com/angular/components/issues/18645\n backdropElement.classList.remove(MODAL_MASK_CLASS_NAME);\n return;\n }\n backdropElement.classList.add(FADE_CLASS_NAME_MAP.leave);\n backdropElement.classList.add(FADE_CLASS_NAME_MAP.leaveActive);\n }\n }\n\n private cleanAnimationClass(): void {\n if (this.animationDisabled()) {\n return;\n }\n const backdropElement = this.overlayRef.backdropElement;\n const modalElement = this.modalElementRef.nativeElement;\n if (backdropElement) {\n backdropElement.classList.remove(FADE_CLASS_NAME_MAP.enter);\n backdropElement.classList.remove(FADE_CLASS_NAME_MAP.enterActive);\n }\n modalElement.classList.remove(ZOOM_CLASS_NAME_MAP.enter);\n modalElement.classList.remove(ZOOM_CLASS_NAME_MAP.enterActive);\n modalElement.classList.remove(ZOOM_CLASS_NAME_MAP.leave);\n modalElement.classList.remove(ZOOM_CLASS_NAME_MAP.leaveActive);\n }\n\n private setZIndexForBackdrop(): void {\n const backdropElement = this.overlayRef.backdropElement;\n if (backdropElement) {\n if (isNotNil(this.config.nzZIndex)) {\n this.render.setStyle(backdropElement, 'z-index', this.config.nzZIndex);\n }\n }\n }\n\n bindBackdropStyle(): void {\n const backdropElement = this.overlayRef.backdropElement;\n if (backdropElement) {\n if (this.oldMaskStyle) {\n const styles = this.oldMaskStyle as { [key: string]: string };\n Object.keys(styles).forEach(key => {\n this.render.removeStyle(backdropElement, key);\n });\n this.oldMaskStyle = null;\n }\n\n this.setZIndexForBackdrop();\n\n if (typeof this.config.nzMaskStyle === 'object' && Object.keys(this.config.nzMaskStyle).length) {\n const styles: { [key: string]: string } = { ...this.config.nzMaskStyle };\n Object.keys(styles).forEach(key => {\n this.render.setStyle(backdropElement, key, styles[key]);\n });\n this.oldMaskStyle = styles;\n }\n }\n }\n\n updateMaskClassname(): void {\n const backdropElement = this.overlayRef.backdropElement;\n if (backdropElement) {\n if (this.showMask) {\n backdropElement.classList.add(MODAL_MASK_CLASS_NAME);\n } else {\n backdropElement.classList.remove(MODAL_MASK_CLASS_NAME);\n }\n }\n }\n\n onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'enter') {\n this.trapFocus();\n } else if (event.toState === 'exit') {\n this.restoreFocus();\n }\n this.cleanAnimationClass();\n this.animationStateChanged.emit(event);\n }\n\n onAnimationStart(event: AnimationEvent): void {\n if (event.toState === 'enter') {\n this.setEnterAnimationClass();\n this.bindBackdropStyle();\n } else if (event.toState === 'exit') {\n this.setExitAnimationClass();\n }\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.state = 'exit';\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.setMaskExitAnimationClass(true);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n protected setupMouseListeners(modalContainer: ElementRef<HTMLElement>): void {\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.host.nativeElement, 'mouseup')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.mouseDown) {\n setTimeout(() => {\n this.mouseDown = false;\n });\n }\n });\n\n fromEvent(modalContainer.nativeElement, 'mousedown')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.mouseDown = true;\n });\n });\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { ModalOptions } from './modal-types';\n\n@Component({\n selector: 'button[nz-modal-close]',\n exportAs: 'NzModalCloseBuiltin',\n template: `\n <span class=\"ant-modal-close-x\">\n <ng-container *nzStringTemplateOutlet=\"config.nzCloseIcon; let closeIcon\">\n <span nz-icon [nzType]=\"closeIcon\" class=\"ant-modal-close-icon\"></span>\n </ng-container>\n </span>\n `,\n host: {\n class: 'ant-modal-close',\n 'aria-label': 'Close'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzModalCloseComponent {\n constructor(public config: ModalOptions) {}\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusTrapFactory } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n NgZone,\n OnInit,\n Optional,\n Output,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzI18nService, NzModalI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { nzModalAnimations } from './modal-animations';\nimport { BaseModalContainerComponent } from './modal-container.directive';\nimport { ModalOptions } from './modal-types';\n\n@Component({\n selector: 'nz-modal-confirm-container',\n exportAs: 'nzModalConfirmContainer',\n template: `\n <div\n #modalElement\n role=\"document\"\n class=\"ant-modal\"\n [ngClass]=\"config.nzClassName!\"\n [ngStyle]=\"config.nzStyle!\"\n [style.width]=\"config?.nzWidth! | nzToCssUnit\"\n >\n <div class=\"ant-modal-content\">\n <button *ngIf=\"config.nzClosable\" nz-modal-close (click)=\"onCloseClick()\"></button>\n <div class=\"ant-modal-body\" [ngStyle]=\"config.nzBodyStyle!\">\n <div class=\"ant-modal-confirm-body-wrapper\">\n <div class=\"ant-modal-confirm-body\">\n <span nz-icon [nzType]=\"config.nzIconType!\"></span>\n <span class=\"ant-modal-confirm-title\">\n <ng-container *nzStringTemplateOutlet=\"config.nzTitle\">\n <span [innerHTML]=\"config.nzTitle\"></span>\n </ng-container>\n </span>\n <div class=\"ant-modal-confirm-content\">\n <ng-template cdkPortalOutlet></ng-template>\n <div *ngIf=\"isStringContent\" [innerHTML]=\"config.nzContent\"></div>\n </div>\n </div>\n <div class=\"ant-modal-confirm-btns\">\n <button\n *ngIf=\"config.nzCancelText !== null\"\n [attr.cdkFocusInitial]=\"config.nzAutofocus === 'cancel' || null\"\n nz-button\n (click)=\"onCancel()\"\n [nzLoading]=\"!!config.nzCancelLoading\"\n [disabled]=\"config.nzCancelDisabled\"\n >\n {{ config.nzCancelText || locale.cancelText }}\n </button>\n <button\n *ngIf=\"config.nzOkText !== null\"\n [attr.cdkFocusInitial]=\"config.nzAutofocus === 'ok' || null\"\n nz-button\n [nzType]=\"config.nzOkType!\"\n (click)=\"onOk()\"\n [nzLoading]=\"!!config.nzOkLoading\"\n [disabled]=\"config.nzOkDisabled\"\n [nzDanger]=\"config.nzOkDanger\"\n >\n {{ config.nzOkText || locale.okText }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n `,\n animations: [nzModalAnimations.modalContainer],\n // Using OnPush for modal caused footer can not to detect changes. we can fix it when 8.x.\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n tabindex: '-1',\n role: 'dialog',\n '[class]': 'config.nzWrapClassName ? \"ant-modal-wrap \" + config.nzWrapClassName : \"ant-modal-wrap\"',\n '[class.ant-modal-wrap-rtl]': `dir === 'rtl'`,\n '[class.ant-modal-centered]': 'config.nzCentered',\n '[style.zIndex]': 'config.nzZIndex',\n '[@.disabled]': 'config.nzNoAnimation',\n '[@modalContainer]': 'state',\n '(@modalContainer.start)': 'onAnimationStart($event)',\n '(@modalContainer.done)': 'onAnimationDone($event)',\n '(click)': 'onContainerClick($event)'\n }\n})\nexport class NzModalConfirmContainerComponent extends BaseModalContainerComponent implements OnInit {\n @ViewChild(CdkPortalOutlet, { static: true }) override portalOutlet!: CdkPortalOutlet;\n @ViewChild('modalElement', { static: true }) override modalElementRef!: ElementRef<HTMLDivElement>;\n @Output() override readonly cancelTriggered = new EventEmitter<void>();\n @Output() override readonly okTriggered = new EventEmitter<void>();\n locale!: NzModalI18nInterface;\n\n constructor(\n ngZone: NgZone,\n private i18n: NzI18nService,\n host: ElementRef<HTMLElement>,\n focusTrapFactory: FocusTrapFactory,\n cdr: ChangeDetectorRef,\n render: Renderer2,\n overlayRef: OverlayRef,\n nzConfigService: NzConfigService,\n public override config: ModalOptions,\n @Optional() @Inject(DOCUMENT) document: NzSafeAny,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationType: string\n ) {\n super(ngZone, host, focusTrapFactory, cdr, render, overlayRef, nzConfigService, config, document, animationType);\n\n this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.locale = this.i18n.getLocaleData('Modal');\n });\n }\n\n ngOnInit(): void {\n this.setupMouseListeners(this.modalElementRef);\n }\n\n onCancel(): void {\n this.cancelTriggered.emit();\n }\n\n onOk(): void {\n this.okTriggered.emit();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { isPromise } from 'ng-zorro-antd/core/util';\nimport { NzI18nService, NzModalI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { NzModalRef } from './modal-ref';\nimport { ModalButtonOptions, ModalOptions } from './modal-types';\n\n@Component({\n selector: 'div[nz-modal-footer]',\n exportAs: 'NzModalFooterBuiltin',\n template: `\n <ng-container *ngIf=\"config.nzFooter; else defaultFooterButtons\">\n <ng-container\n *nzStringTemplateOutlet=\"config.nzFooter; context: { $implicit: config.nzComponentParams, modalRef: modalRef }\"\n >\n <div *ngIf=\"!buttonsFooter\" [innerHTML]=\"config.nzFooter\"></div>\n <ng-container *ngIf=\"buttonsFooter\">\n <button\n *ngFor=\"let button of buttons\"\n nz-button\n (click)=\"onButtonClick(button)\"\n [hidden]=\"!getButtonCallableProp(button, 'show')\"\n [nzLoading]=\"getButtonCallableProp(button, 'loading')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [nzType]=\"button.type!\"\n [nzDanger]=\"button.danger\"\n [nzShape]=\"button.shape!\"\n [nzSize]=\"button.size!\"\n [nzGhost]=\"button.ghost!\"\n >\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultFooterButtons>\n <button\n *ngIf=\"config.nzCancelText !== null\"\n [attr.cdkFocusInitial]=\"config.nzAutofocus === 'cancel' || null\"\n nz-button\n (click)=\"onCancel()\"\n [nzLoading]=\"!!config.nzCancelLoading\"\n [disabled]=\"config.nzCancelDisabled\"\n >\n {{ config.nzCancelText || locale.cancelText }}\n </button>\n <button\n *ngIf=\"config.nzOkText !== null\"\n [attr.cdkFocusInitial]=\"config.nzAutofocus === 'ok' || null\"\n nz-button\n [nzType]=\"config.nzOkType!\"\n [nzDanger]=\"config.nzOkDanger\"\n (click)=\"onOk()\"\n [nzLoading]=\"!!config.nzOkLoading\"\n [disabled]=\"config.nzOkDisabled\"\n >\n {{ config.nzOkText || locale.okText }}\n </button>\n </ng-template>\n `,\n host: {\n class: 'ant-modal-footer'\n },\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class NzModalFooterComponent implements OnDestroy {\n buttonsFooter = false;\n buttons: ModalButtonOptions[] = [];\n locale!: NzModalI18nInterface;\n @Output() readonly cancelTriggered = new EventEmitter<void>();\n @Output() readonly okTriggered = new EventEmitter<void>();\n @Input() modalRef!: NzModalRef;\n private destroy$ = new Subject<void>();\n\n constructor(private i18n: NzI18nService, public config: ModalOptions) {\n if (Array.isArray(config.nzFooter)) {\n this.buttonsFooter = true;\n this.buttons = (config.nzFooter as ModalButtonOptions[]).map(mergeDefaultOption);\n }\n this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.locale = this.i18n.getLocaleData('Modal');\n });\n }\n\n onCancel(): void {\n this.cancelTriggered.emit();\n }\n\n onOk(): void {\n this.okTriggered.emit();\n }\n\n /**\n * Returns the value of the specified key.\n * If it is a function, run and return the return value of the function.\n */\n getButtonCallableProp(options: ModalButtonOptions, prop: keyof ModalButtonOptions): boolean {\n const value = options[prop];\n const componentInstance = this.modalRef.getContentComponent();\n return typeof value === 'function' ? value.apply(options, componentInstance && [componentInstance]) : value;\n }\n\n /**\n * Run function based on the type and set its `loading` prop if needed.\n */\n onButtonClick(options: ModalButtonOptions): void {\n const loading = this.getButtonCallableProp(options, 'loading');\n if (!loading) {\n const result = this.getButtonCallableProp(options, 'onClick');\n if (options.autoLoading && isPromise(result)) {\n options.loading = true;\n result\n .then(() => (options.loading = false))\n .catch(e => {\n options.loading = false;\n throw e;\n });\n }\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n\nfunction mergeDefaultOption(options: ModalButtonOptions): ModalButtonOptions {\n return {\n type: null,\n size: 'default',\n autoLoading: true,\n show: true,\n loading: false,\n disabled: false,\n ...options\n };\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { ModalOptions } from './modal-types';\n\n@Component({\n selector: 'div[nz-modal-title]',\n exportAs: 'NzModalTitleBuiltin',\n template: `\n <div class=\"ant-modal-title\">\n <ng-container *nzStringTemplateOutlet=\"config.nzTitle\">\n <div [innerHTML]=\"config.nzTitle\"></div>\n </ng-container>\n </div>\n `,\n host: {\n class: 'ant-modal-header'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzModalTitleComponent {\n constructor(public config: ModalOptions) {}\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusTrapFactory } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n NgZone,\n OnInit,\n Optional,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { nzModalAnimations } from './modal-animations';\nimport { BaseModalContainerComponent } from './modal-container.directive';\nimport { ModalOptions } from './modal-types';\n\n@Component({\n selector: 'nz-modal-container',\n exportAs: 'nzModalContainer',\n template: `\n <div\n #modalElement\n role=\"document\"\n class=\"ant-modal\"\n [ngClass]=\"config.nzClassName!\"\n [ngStyle]=\"config.nzStyle!\"\n [style.width]=\"config?.nzWidth! | nzToCssUnit\"\n >\n <div class=\"ant-modal-content\">\n <button *ngIf=\"config.nzClosable\" nz-modal-close (click)=\"onCloseClick()\"></button>\n <div *ngIf=\"config.nzTitle\" nz-modal-title></div>\n <div class=\"ant-modal-body\" [ngStyle]=\"config.nzBodyStyle!\">\n <ng-template cdkPortalOutlet></ng-template>\n <div *ngIf=\"isStringContent\" [innerHTML]=\"config.nzContent\"></div>\n </div>\n <div\n *ngIf=\"config.nzFooter !== null\"\n nz-modal-footer\n [modalRef]=\"modalRef\"\n (cancelTriggered)=\"onCloseClick()\"\n (okTriggered)=\"onOkClick()\"\n ></div>\n </div>\n </div>\n `,\n animations: [nzModalAnimations.modalContainer],\n // Using OnPush for modal caused footer can not to detect changes. we can fix it when 8.x.\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n tabindex: '-1',\n role: 'dialog',\n '[class]': 'config.nzWrapClassName ? \"ant-modal-wrap \" + config.nzWrapClassName : \"ant-modal-wrap\"',\n '[class.ant-modal-wrap-rtl]': `dir === 'rtl'`,\n '[class.ant-modal-centered]': 'config.nzCentered',\n '[style.zIndex]': 'config.nzZIndex',\n '[@.disabled]': 'config.nzNoAnimation',\n '[@modalContainer]': 'state',\n '(@modalContainer.start)': 'onAnimationStart($event)',\n '(@modalContainer.done)': 'onAnimationDone($event)',\n '(click)': 'onContainerClick($event)'\n }\n})\nexport class NzModalContainerComponent extends BaseModalContainerComponent implements OnInit {\n @ViewChild(CdkPortalOutlet, { static: true }) override portalOutlet!: CdkPortalOutlet;\n @ViewChild('modalElement', { static: true }) override modalElementRef!: ElementRef<HTMLDivElement>;\n constructor(\n ngZone: NgZone,\n host: ElementRef<HTMLElement>,\n focusTrapFactory: FocusTrapFactory,\n cdr: ChangeDetectorRef,\n render: Renderer2,\n overlayRef: OverlayRef,\n nzConfigService: NzConfigService,\n public override config: ModalOptions,\n @Optional() @Inject(DOCUMENT) document: NzSafeAny,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationType: string\n ) {\n super(ngZone, host, focusTrapFactory, cdr, render, overlayRef, nzConfigService, config, document, animationType);\n }\n\n ngOnInit(): void {\n this.setupMouseListeners(this.modalElementRef);\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isPromise } from 'ng-zorro-antd/core/util';\n\nimport { BaseModalContainerComponent } from './modal-container.directive';\nimport { NzModalLegacyAPI } from './modal-legacy-api';\nimport { ModalOptions } from './modal-types';\n\nexport const enum NzModalState {\n OPEN,\n CLOSING,\n CLOSED\n}\n\nexport const enum NzTriggerAction {\n CANCEL = 'cancel',\n OK = 'ok'\n}\n\nexport class NzModalRef<T = NzSafeAny, R = NzSafeAny> implements NzModalLegacyAPI<T, R> {\n componentInstance: T | null = null;\n result?: R;\n state: NzModalState = NzModalState.OPEN;\n afterClose: Subject<R> = new Subject();\n afterOpen: Subject<void> = new Subject();\n\n private closeTimeout?: number;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private overlayRef: OverlayRef,\n private config: ModalOptions,\n public containerInstance: BaseModalContainerComponent\n ) {\n containerInstance.animationStateChanged\n .pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'enter'),\n take(1)\n )\n .subscribe(() => {\n this.afterOpen.next();\n this.afterOpen.complete();\n if (config.nzAfterOpen instanceof EventEmitter) {\n config.nzAfterOpen.emit();\n }\n });\n\n containerInstance.animationStateChanged\n .pipe(\n filter(event => event.phaseName === 'done' && event.toState === 'exit'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this.closeTimeout);\n this._finishDialogClose();\n });\n\n containerInstance.containerClick.pipe(take(1), takeUntil(this.destroy$)).subscribe(() => {\n const cancelable = !this.config.nzCancelLoading && !this.config.nzOkLoading;\n if (cancelable) {\n this.trigger(NzTriggerAction.CANCEL);\n }\n });\n\n overlayRef\n .keydownEvents()\n .pipe(\n filter(\n event =>\n (this.config.nzKeyboard as boolean) &&\n !this.config.nzCancelLoading &&\n !this.config.nzOkLoading &&\n event.keyCode === ESCAPE &&\n !hasModifierKey(event)\n )\n )\n .subscribe(event => {\n event.preventDefault();\n this.trigger(NzTriggerAction.CANCEL);\n });\n\n containerInstance.cancelTriggered\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.trigger(NzTriggerAction.CANCEL));\n\n containerInstance.okTriggered.pipe(takeUntil(this.destroy$)).subscribe(() => this.trigger(NzTriggerAction.OK));\n\n overlayRef.detachments().subscribe(() => {\n this.afterClose.next(this.result);\n this.afterClose.complete();\n if (config.nzAfterClose instanceof EventEmitter) {\n config.nzAfterClose.emit(this.result);\n }\n this.componentInstance = null;\n this.overlayRef.dispose();\n });\n }\n\n getContentComponent(): T {\n return this.componentInstance as T;\n }\n\n getElement(): HTMLElement {\n return this.containerInstance.getNativeElement();\n }\n\n destroy(result?: R): void {\n this.close(result);\n }\n\n triggerOk(): Promise<void> {\n return this.trigger(NzTriggerAction.OK);\n }\n\n triggerCancel(): Promise<void> {\n return this.trigger(NzTriggerAction.CANCEL);\n }\n\n close(result?: R): void {\n if (this.state !== NzModalState.OPEN) {\n return;\n }\n this.result = result;\n this.containerInstance.animationStateChanged\n .pipe(\n filter(event => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(event => {\n this.overlayRef.detachBackdrop();\n this.closeTimeout = setTimeout(() => {\n this._finishDialogClose();\n }, event.totalTime + 100);\n });\n\n this.containerInstance.startExitAnimation();\n this.state = NzModalState.CLOSING;\n }\n\n updateConfig(config: ModalOptions): void {\n Object.assign(this.config, config);\n this.containerInstance.bindBackdropStyle();\n this.containerInstance.cdr.markForCheck();\n }\n\n getState(): NzModalState {\n return this.state;\n }\n\n getConfig(): ModalOptions {\n return this.config;\n }\n\n getBackdropElement(): HTMLElement | null {\n return this.overlayRef.backdropElement;\n }\n\n private async trigger(action: NzTriggerAction): Promise<void> {\n if (this.state === NzModalState.CLOSING) {\n return;\n }\n const trigger = { ok: this.config.nzOnOk, cancel: this.config.nzOnCancel }[action];\n const loadingKey = { ok: 'nzOkLoading', cancel: 'nzCancelLoading' }[action] as 'nzOkLoading' | 'nzCancelLoading';\n const loading = this.config[loadingKey];\n if (loading) {\n return;\n }\n if (trigger instanceof EventEmitter) {\n trigger.emit(this.getContentComponent());\n } else if (typeof trigger === 'function') {\n const result = trigger(this.getContentComponent());\n if (isPromise(result)) {\n this.config[loadingKey] = true;\n let doClose: boolean | void | {} = false;\n try {\n doClose = (await result) as typeof result;\n } finally {\n this.config[loadingKey] = false;\n this.closeWhitResult(doClose);\n }\n } else {\n this.closeWhitResult(result);\n }\n }\n }\n\n private closeWhitResult(result: NzSafeAny): void {\n if (result !== false) {\n this.close(result);\n }\n }\n\n _finishDialogClose(): void {\n this.state = NzModalState.CLOSED;\n this.overlayRef.dispose();\n this.destroy$.next();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ComponentType, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, OnDestroy, Optional, SkipSelf, TemplateRef } from '@angular/core';\nimport { defer, Observable, Subject } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\n\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { IndexableObject, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isNotNil } from 'ng-zorro-antd/core/util';\n\nimport { MODAL_MASK_CLASS_NAME, NZ_CONFIG_MODULE_NAME } from './modal-config';\nimport { NzModalConfirmContainerComponent } from './modal-confirm-container.component';\nimport { NzModalContainerComponent } from './modal-container.component';\nimport { BaseModalContainerComponent } from './modal-container.directive';\nimport { NzModalRef } from './modal-ref';\nimport { ConfirmType, ModalOptions } from './modal-types';\nimport { applyConfigDefaults, getValueWithConfig, setContentInstanceParams } from './utils';\n\ntype ContentType<T> = ComponentType<T> | TemplateRef<T> | string;\n\n@Injectable()\nexport class NzModalService implements OnDestroy {\n private openModalsAtThisLevel: NzModalRef[] = [];\n private readonly afterAllClosedAtThisLevel = new Subject<void>();\n\n get openModals(): NzModalRef[] {\n return this.parentModal ? this.parentModal.openModals : this.openModalsAtThisLevel;\n }\n\n get _afterAllClosed(): Subject<void> {\n const parent = this.parentModal;\n return parent ? parent._afterAllClosed : this.afterAllClosedAtThisLevel;\n }\n\n readonly afterAllClose: Observable<void> = defer(() =>\n this.openModals.length ? this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined))\n ) as Observable<void>;\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n private nzConfigService: NzConfigService,\n @Optional() @SkipSelf() private parentModal: NzModalService,\n @Optional() private directionality: Directionality\n ) {}\n\n create<T, R = NzSafeAny>(config: ModalOptions<T, R>): NzModalRef<T, R> {\n return this.open<T, R>(config.nzContent as ComponentType<T>, config);\n }\n\n closeAll(): void {\n this.closeModals(this.openModals);\n }\n\n confirm<T>(options: ModalOptions<T> = {}, confirmType: ConfirmType = 'confirm'): NzModalRef<T> {\n if ('nzFooter' in options) {\n warn(`The Confirm-Modal doesn't support \"nzFooter\", this property will be ignored.`);\n }\n if (!('nzWidth' in options)) {\n options.nzWidth = 416;\n }\n if (!('nzMaskClosable' in options)) {\n options.nzMaskClosable = false;\n }\n\n options.nzModalType = 'confirm';\n options.nzClassName = `ant-modal-confirm ant-modal-confirm-${confirmType} ${options.nzClassName || ''}`;\n return this.create(options);\n }\n\n info<T>(options: ModalOptions<T> = {}): NzModalRef<T> {\n return this.confirmFactory(options, 'info');\n }\n\n success<T>(options: ModalOptions<T> = {}): NzModalRef<T> {\n return this.confirmFactory(options, 'success');\n }\n\n error<T>(options: ModalOptions<T> = {}): NzModalRef<T> {\n return this.confirmFactory(options, 'error');\n }\n\n warning<T>(options: ModalOptions<T> = {}): NzModalRef<T> {\n return this.confirmFactory(options, 'warning');\n }\n\n private open<T, R>(componentOrTemplateRef: ContentType<T>, config?: ModalOptions): NzModalRef<T, R> {\n const configMerged = applyConfigDefaults(config || {}, new ModalOptions());\n const overlayRef = this.createOverlay(configMerged);\n const modalContainer = this.attachModalContainer(overlayRef, configMerged);\n const modalRef = this.attachModalContent<T, R>(componentOrTemplateRef, modalContainer, overlayRef, configMerged);\n modalContainer.modalRef = modalRef;\n\n this.openModals.push(modalRef);\n modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));\n\n return modalRef;\n }\n\n private removeOpenModal(modalRef: NzModalRef): void {\n const index = this.openModals.indexOf(modalRef);\n if (index > -1) {\n this.openModals.splice(index, 1);\n\n if (!this.openModals.length) {\n this._afterAllClosed.next();\n }\n }\n }\n\n private closeModals(dialogs: NzModalRef[]): void {\n let i = dialogs.length;\n while (i--) {\n dialogs[i].close();\n if (!this.openModals.length) {\n this._afterAllClosed.next();\n }\n }\n }\n\n private createOverlay(config: ModalOptions): OverlayRef {\n const globalConfig: NzSafeAny = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME) || {};\n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global(),\n disposeOnNavigation: getValueWithConfig(config.nzCloseOnNavigation, globalConfig.nzCloseOnNavigation, true),\n direction: getValueWithConfig(config.nzDirection, globalConfig.nzDirection, this.directionality.value)\n });\n if (getValueWithConfig(config.nzMask, globalConfig.nzMask, true)) {\n overlayConfig.backdropClass = MODAL_MASK_CLASS_NAME;\n }\n\n return this.overlay.create(overlayConfig);\n }\n\n private attachModalContainer(overlayRef: OverlayRef, config: ModalOptions): BaseModalContainerComponent {\n const userInjector = config && config.nzViewContainerRef && config.nzViewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [\n { provide: OverlayRef, useValue: overlayRef },\n { provide: ModalOptions, useValue: config }\n ]\n });\n\n const ContainerComponent =\n config.nzModalType === 'confirm'\n ? // If the mode is `confirm`, use `NzModalConfirmContainerComponent`\n NzModalConfirmContainerComponent\n : // If the mode is not `confirm`, use `NzModalContainerComponent`\n NzModalContainerComponent;\n\n const containerPortal = new ComponentPortal<BaseModalContainerComponent>(\n ContainerComponent,\n config.nzViewContainerRef,\n injector\n );\n const containerRef = overlayRef.attach<BaseModalContainerComponent>(containerPortal);\n\n return containerRef.instance;\n }\n\n private attachModalContent<T, R>(\n componentOrTemplateRef: ContentType<T>,\n modalContainer: BaseModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalOptions<T>\n ): NzModalRef<T, R> {\n const modalRef = new NzModalRef<T, R>(overlayRef, config, modalContainer);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n modalContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null!, {\n $implicit: config.nzComponentParams,\n modalRef\n } as NzSafeAny)\n );\n } else if (isNotNil(componentOrTemplateRef) && typeof componentOrTemplateRef !== 'string') {\n const injector = this.createInjector<T, R>(modalRef, config);\n const contentRef = modalContainer.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, config.nzViewContainerRef, injector)\n );\n setContentInstanceParams<T>(contentRef.instance, config.nzComponentParams);\n modalRef.componentInstance = contentRef.instance;\n } else {\n modalContainer.attachStringContent();\n }\n return modalRef;\n }\n\n private createInjector<T, R>(modalRef: NzModalRef<T, R>, config: ModalOptions<T>): Injector {\n const userInjector = config && config.nzViewContainerRef && config.nzViewContainerRef.injector;\n\n return Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: NzModalRef, useValue: modalRef }]\n });\n }\n\n private confirmFactory<T>(options: ModalOptions<T> = {}, confirmType: ConfirmType): NzModalRef<T> {\n const iconMap: IndexableObject = {\n info: 'info-circle',\n success: 'check-circle',\n error: 'close-circle',\n warning: 'exclamation-circle'\n };\n if (!('nzIconType' in options)) {\n options.nzIconType = iconMap[confirmType];\n }\n if (!('nzCancelText' in options)) {\n // Remove the Cancel button if the user not specify a Cancel button\n options.nzCancelText = null;\n }\n return this.confirm(options, confirmType);\n }\n\n ngOnDestroy(): void {\n this.closeModals(this.openModalsAtThisLevel);\n this.afterAllClosedAtThisLevel.complete();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[nzModalContent]',\n exportAs: 'nzModalContent'\n})\nexport class NzModalContentDirective {\n constructor(public templateRef: TemplateRef<{}>) {}\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Optional, TemplateRef } from '@angular/core';\n\nimport { NzModalRef } from './modal-ref';\n\n@Directive({\n selector: '[nzModalFooter]',\n exportAs: 'nzModalFooter'\n})\nexport class NzModalFooterDirective {\n constructor(@Optional() private nzModalRef: NzModalRef, public templateRef: TemplateRef<{}>) {\n if (this.nzModalRef) {\n this.nzModalRef.updateConfig({\n nzFooter: this.templateRef\n });\n }\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Optional, TemplateRef } from '@angular/core';\n\nimport { NzModalRef } from './modal-ref';\n\n@Directive({\n selector: '[nzModalTitle]',\n exportAs: 'nzModalTitle'\n})\nexport class NzModalTitleDirective {\n constructor(@Optional() private nzModalRef: NzModalRef, public templateRef: TemplateRef<{}>) {\n if (this.nzModalRef) {\n this.nzModalRef.updateConfig({\n nzTitle: this.templateRef\n });\n }\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzButtonType } from 'ng-zorro-antd/button';\nimport { BooleanInput, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzModalContentDirective } from './modal-content.directive';\nimport { NzModalFooterDirective } from './modal-footer.directive';\nimport { NzModalLegacyAPI } from './modal-legacy-api';\nimport { NzModalRef } from './modal-ref';\nimport { NzModalTitleDirective } from './modal-title.directive';\nimport { ModalButtonOptions, ModalOptions, ModalTypes, OnClickCallback, StyleObjectLike } from './modal-types';\nimport { NzModalService } from './modal.service';\nimport { getConfigFromComponent } from './utils';\n\n@Component({\n selector: 'nz-modal',\n exportAs: 'nzModal',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzModalComponent<T extends ModalOptions = NzSafeAny, R = NzSafeAny>\n implements OnChanges, NzModalLegacyAPI<T, R>, OnDestroy\n{\n static ngAcceptInputType_nzMask: BooleanInput;\n static ngAcceptInputType_nzMaskClosable: BooleanInput;\n static ngAcceptInputType_nzCloseOnNavigation: BooleanInput;\n static ngAcceptInputType_nzVisible: BooleanInput;\n static ngAcceptInputType_nzClosable: BooleanInput;\n static ngAcceptInputType_nzOkLoading: BooleanInput;\n static ngAcceptInputType_nzOkDisabled: BooleanInput;\n static ngAcceptInputType_nzCancelDisabled: BooleanInput;\n static ngAcceptInputType_nzCancelLoading: BooleanInput;\n static ngAcceptInputType_nzKeyboard: BooleanInput;\n static ngAcceptInputType_nzNoAnimation: BooleanInput;\n static ngAcceptInputType_nzOkDanger: BooleanInput;\n static ngAcceptInputType_nzCentered: BooleanInput;\n\n @Input() @InputBoolean() nzMask?: boolean;\n @Input() @InputBoolean() nzMaskClosable?: boolean;\n @Input() @InputBoolean() nzCloseOnNavigation?: boolean;\n @Input() @InputBoolean() nzVisible: boolean = false;\n @Input() @InputBoolean() nzClosable: boolean = true;\n @Input() @InputBoolean() nzOkLoading: boolean = false;\n @Input() @InputBoolean() nzOkDisabled: boolean = false;\n @Input() @InputBoolean() nzCancelDisabled: boolean = false;\n @Input() @InputBoolean() nzCancelLoading: boolean = false;\n @Input() @InputBoolean() nzKeyboard: boolean = true;\n @Input() @InputBoolean() nzNoAnimation = false;\n @Input() @InputBoolean() nzCentered = false;\n @Input() nzContent?: string | TemplateRef<{}> | Type<T>;\n @Input() nzComponentParams?: T;\n @Input() nzFooter?: string | TemplateRef<{}> | Array<ModalButtonOptions<T>> | null;\n @Input() nzZIndex: number = 1000;\n @Input() nzWidth: number | string = 520;\n @Input() nzWrapClassName?: string;\n @Input() nzClassName?: string;\n @Input() nzStyle?: object;\n @Input() nzTitle?: string | TemplateRef<{}>;\n @Input() nzCloseIcon: string | TemplateRef<void> = 'close';\n @Input() nzMaskStyle?: StyleObjectLike;\n @Input() nzBodyStyle?: StyleObjectLike;\n @Input() nzOkText?: string | null;\n @Input() nzCancelText?: string | null;\n @Input() nzOkType: NzButtonType = 'primary';\n @Input() @InputBoolean() nzOkDanger: boolean = false;\n @Input() nzIconType: string = 'question-circle'; // Confirm Modal ONLY\n @Input() nzModalType: ModalTypes = 'default';\n @Input() nzAutofocus: 'ok' | 'cancel' | 'auto' | null = 'auto';\n\n // TODO(@hsuanxyz) Input will not be supported\n @Input()\n @Output()\n readonly nzOnOk: EventEmitter<T> | OnClickCallback<T> | NzSafeAny = new EventEmitter<T>();\n\n // TODO(@hsuanxyz) Input will not be supported\n @Input()\n @Output()\n readonly nzOnCancel: EventEmitter<T> | OnClickCallback<T> | NzSafeAny = new EventEmitter<T>();\n\n @Output() readonly nzAfterOpen = new EventEmitter<void>();\n @Output() readonly nzAfterClose = new EventEmitter<R>();\n @Output() readonly nzVisibleChange = new EventEmitter<boolean>();\n\n @ContentChild(NzModalTitleDirective, { static: true, read: TemplateRef })\n set modalTitle(value: TemplateRef<NzSafeAny>) {\n if (value) {\n this.setTitleWithTemplate(value);\n }\n }\n\n @ContentChild(NzModalContentDirective, { static: true, read: TemplateRef })\n contentFromContentChild!: TemplateRef<NzSafeAny>;\n\n @ContentChild(NzModalFooterDirective, { static: true, read: TemplateRef })\n set modalFooter(value: TemplateRef<NzSafeAny>) {\n if (value) {\n this.setFooterWithTemplate(value);\n }\n }\n\n private modalRef: NzModalRef | null = null;\n private destroy$ = new Subject<void>();\n\n get afterOpen(): Observable<void> {\n // Observable alias for nzAfterOpen\n return this.nzAfterOpen.asObservable();\n }\n\n get afterClose(): Observable<R> {\n // Observable alias for nzAfterClose\n return this.nzAfterClose.asObservable();\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private modal: NzModalService,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n open(): void {\n if (!this.nzVisible) {\n this.nzVisible = true;\n this.nzVisibleChange.emit(true);\n }\n\n if (!this.modalRef) {\n const config = this.getConfig();\n this.modalRef = this.modal.create(config);\n\n // When the modal is implicitly closed (e.g. closeAll) the nzVisible needs to be set to the correct value and emit.\n this.modalRef.afterClose\n .asObservable()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.close();\n });\n }\n }\n\n close(result?: R): void {\n if (this.nzVisible) {\n this.nzVisible = false;\n this.nzVisibleChange.emit(false);\n }\n\n if (this.modalRef) {\n this.modalRef.close(result);\n this.modalRef = null;\n }\n }\n\n destroy(result?: R): void {\n this.close(result);\n }\n\n triggerOk(): void {\n this.modalRef?.triggerOk();\n }\n\n triggerCancel(): void {\n this.modalRef?.triggerCancel();\n }\n\n getContentComponent(): T | void {\n return this.modalRef?.getContentComponent();\n }\n\n getElement(): HTMLElement | void {\n return this.modalRef?.getElement();\n }\n\n getModalRef(): NzModalRef | null {\n return this.modalRef;\n }\n\n private setTitleWithTemplate(templateRef: TemplateRef<{}>): void {\n this.nzTitle = templateRef;\n if (this.modalRef) {\n // If modalRef already created, set the title in next tick\n Promise.resolve().then(() => {\n this.modalRef!.updateConfig({\n nzTitle: this.nzTitle\n });\n });\n }\n }\n\n private setFooterWithTemplate(templateRef: TemplateRef<{}>): void {\n this.nzFooter = templateRef;\n if (this.modalRef) {\n // If modalRef already created, set the footer in next tick\n Promise.resolve().then(() => {\n this.modalRef!.updateConfig({\n nzFooter: this.nzFooter\n });\n });\n }\n\n this.cdr.markForCheck();\n }\n\n private getConfig(): ModalOptions {\n const componentConfig = getConfigFromComponent(this);\n componentConfig.nzViewContainerRef = this.viewContainerRef;\n componentConfig.nzContent = this.nzContent || this.contentFromContentChild;\n return componentConfig;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzVisible, ...otherChanges } = changes;\n\n if (Object.keys(otherChanges).length && this.modalRef) {\n this.modalRef.updateConfig(getConfigFromComponent(this));\n }\n\n if (nzVisible) {\n if (this.nzVisible) {\n this.open();\n } else {\n this.close();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.modalRef?._finishDialogClose();\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzPipesModule } from 'ng-zorro-antd/pipes';\n\nimport { NzModalCloseComponent } from './modal-close.component';\nimport { NzModalConfirmContainerComponent } from './modal-confirm-container.component';\nimport { NzModalContainerComponent } from './modal-container.component';\nimport { NzModalContentDirective } from './modal-content.directive';\nimport { NzModalFooterComponent } from './modal-footer.component';\nimport { NzModalFooterDirective } from './modal-footer.directive';\nimport { NzModalTitleComponent } from './modal-title.component';\nimport { NzModalTitleDirective } from './modal-title.directive';\nimport { NzModalComponent } from './modal.component';\nimport { NzModalService } from './modal.service';\n\n@NgModule({\n imports: [\n CommonModule,\n BidiModule,\n OverlayModule,\n NzOutletModule,\n PortalModule,\n NzI18nModule,\n NzButtonModule,\n NzIconModule,\n NzPipesModule,\n NzNoAnimationModule,\n NzPipesModule\n ],\n exports: [NzModalComponent, NzModalFooterDirective, NzModalContentDirective, NzModalTitleDirective],\n providers: [NzModalService],\n declarations: [\n NzModalComponent,\n NzModalFooterDirective,\n NzModalContentDirective,\n NzModalCloseComponent,\n NzModalFooterComponent,\n NzModalTitleComponent,\n NzModalTitleDirective,\n NzModalContainerComponent,\n NzModalConfirmContainerComponent,\n NzModalComponent\n ]\n})\nexport class NzModalModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Observable } from 'rxjs';\n\nexport abstract class NzModalLegacyAPI<T, R> {\n abstract afterOpen: Observable<void>;\n abstract afterClose: Observable<R>;\n\n abstract close(result?: R): void;\n abstract destroy(result?: R): void;\n\n /**\n * Trigger the nzOnOk/nzOnCancel by manual\n */\n abstract triggerOk(): void;\n abstract triggerCancel(): void;\n /**\n * Return the component instance of nzContent when specify nzContent as a Component\n */\n abstract getContentComponent(): T | void;\n\n /**\n * Get the dom element of this Modal\n */\n abstract getElement(): HTMLElement | void;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './modal-types';\nexport * from './modal.service';\nexport * from './modal-ref';\nexport * from './modal-config';\nexport * from './modal.component';\nexport * from './modal-title.directive';\nexport * from './modal-footer.directive';\nexport * from './modal-content.directive';\nexport * from './modal.module';\nexport * from './modal-confirm-container.component';\nexport * from './modal-container.component';\nexport * from './modal-container.directive';\nexport * from './modal-close.component';\nexport * from './modal-title.component';\nexport * from './modal-legacy-api';\nexport * from './modal-types';\nexport * from './modal-animations';\nexport * from './modal-footer.component';\nexport * from './utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModalOptions","i2","i3","i1","i4","i5.ModalOptions","i7","i10","i12","i13.NzModalCloseComponent","i2.ModalOptions","i5","i6","i4.ModalOptions","i7.NzModalCloseComponent","i8.NzModalFooterComponent","i9.NzModalTitleComponent","i1.NzModalRef","i1.NzModalService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAGG;AAkBH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC;MAEhB,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;AACE,QAAA,IAAU,CAAA,UAAA,GAAa,KAAK,CAAC;AAC7B,QAAA,IAAU,CAAA,UAAA,GAAa,IAAI,CAAC;AAC5B,QAAA,IAAW,CAAA,WAAA,GAAa,KAAK,CAAC;AAC9B,QAAA,IAAY,CAAA,YAAA,GAAa,KAAK,CAAC;AAC/B,QAAA,IAAgB,CAAA,gBAAA,GAAa,KAAK,CAAC;AACnC,QAAA,IAAe,CAAA,eAAA,GAAa,KAAK,CAAC;AAClC,QAAA,IAAa,CAAA,aAAA,GAAa,KAAK,CAAC;AAChC,QAAA,IAAW,CAAA,WAAA,GAAqC,MAAM,CAAC;AAGvD,QAAA,IAAU,CAAA,UAAA,GAAa,IAAI,CAAC;AAC5B,QAAA,IAAQ,CAAA,QAAA,GAAY,IAAI,CAAC;AACzB,QAAA,IAAO,CAAA,OAAA,GAAqB,GAAG,CAAC;AAChC,QAAA,IAAW,CAAA,WAAA,GAAgC,OAAO,CAAC;AACnD,QAAA,IAAQ,CAAA,QAAA,GAAkB,SAAS,CAAC;AACpC,QAAA,IAAU,CAAA,UAAA,GAAa,KAAK,CAAC;AAC7B,QAAA,IAAW,CAAA,WAAA,GAAgB,SAAS,CAAC;AACrC,QAAA,IAAU,CAAA,UAAA,GAA0C,OAAO,CAAC;AAC5D,QAAA,IAAM,CAAA,MAAA,GAA0C,OAAO,CAAC;;AAmBxD,QAAA,IAAU,CAAA,UAAA,GAAY,iBAAiB,CAAC;KAEzC;AAAA;;AC/DD;;;AAGG;AAIU,MAAA,mBAAmB,GAAG;AACjC,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,WAAW,EAAE,uBAAuB;AACpC,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,WAAW,EAAE,uBAAuB;EACpC;AAEW,MAAA,mBAAmB,GAAG;AACjC,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,WAAW,EAAE,uBAAuB;AACpC,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,WAAW,EAAE,uBAAuB;EACpC;AAEK,MAAM,qBAAqB,GAAG,iBAAiB;AAC/C,MAAM,qBAAqB,GAAgB;;ACtBlD;;;AAGG;AAIU,MAAA,iBAAiB,GAE1B;AACF,IAAA,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE;AACxC,QAAA,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9B,QAAA,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AACzB,QAAA,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,QAAA,UAAU,CAAC,sBAAsB,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9D,CAAC;;;ACfJ;;;AAGG;AAIa,SAAA,mBAAmB,CAAC,MAAoB,EAAE,cAA4B,EAAA;IACpF,OAAY,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,CAAK,EAAA,MAAM,CAAG,CAAA;AAC1C,CAAC;SAEe,kBAAkB,CAChC,SAAwB,EACxB,WAA0B,EAC1B,YAAe,EAAA;IAEf,OAAO,OAAO,SAAS,KAAK,WAAW;AACrC,UAAE,OAAO,WAAW,KAAK,WAAW;AAClC,cAAE,YAAY;AACd,cAAE,WAAW;UACb,SAAS,CAAC;AAChB,CAAC;AAED;;;;;AAKG;AACa,SAAA,wBAAwB,CAAI,QAAW,EAAE,MAA8B,EAAA;AACrF,IAAA,MAAM,CAAC,MAAM,CAAK,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAEK,SAAU,sBAAsB,CAAyB,SAAY,EAAA;AACzE,IAAA,MAAM,EACJ,UAAU,EACV,MAAM,EACN,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,eAAe,EACf,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,MAAM,EACN,UAAU,EACV,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACZ,GAAG,SAAS,CAAC;IACd,OAAO;QACL,UAAU;QACV,MAAM;QACN,cAAc;QACd,UAAU;QACV,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,eAAe;QACf,UAAU;QACV,aAAa;QACb,SAAS;QACT,iBAAiB;QACjB,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,eAAe;QACf,WAAW;QACX,OAAO;QACP,OAAO;QACP,WAAW;QACX,WAAW;QACX,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,UAAU;QACV,WAAW;QACX,MAAM;QACN,UAAU;QACV,WAAW;QACX,YAAY;QACZ,mBAAmB;QACnB,WAAW;KACZ,CAAC;AACJ;;SCxEgB,uCAAuC,GAAA;AACrD,IAAA,MAAM,KAAK,CAAC,sEAAsE,CAAC,CAAC;AACtF,CAAC;AAGK,MAAO,2BAA4B,SAAQ,gBAAgB,CAAA;AAgC/D,IAAA,WAAA,CACY,MAAc,EACd,IAA6B,EAC7B,gBAAkC,EACrC,GAAsB,EACnB,MAAiB,EACjB,UAAsB,EACtB,eAAgC,EACnC,MAAoB,EAC3B,QAAoB,EACV,aAAsB,EAAA;AAEhC,QAAA,KAAK,EAAE,CAAC;AAXE,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACd,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAyB;AAC7B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AACrC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACnB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;AACjB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACtB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AACnC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AAEjB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAS;AAtClC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAC3D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAQ,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;AAC3C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEvC,QAAA,IAAK,CAAA,KAAA,GAA8B,OAAO,CAAC;AAG3C,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAG,CAAA,GAAA,GAAc,KAAK,CAAC;AACf,QAAA,IAAkC,CAAA,kCAAA,GAAuB,IAAI,CAAC;AAE9D,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAY,CAAA,YAAA,GAAqC,IAAI,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AA2BjC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;AAC5D,QAAA,IAAI,CAAC,eAAe;aACjB,gCAAgC,CAAC,qBAAqB,CAAC;AACvD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;AAlCD,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,MAAM,aAAa,GAAc,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAEzG,QAAA,OAAO,CAAC,CAAC,kBAAkB,CAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACtF;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,MAAM,aAAa,GAAc,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAEzG,QAAA,OAAO,CAAC,CAAC,kBAAkB,CAAU,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;KACtG;AA0BD,IAAA,gBAAgB,CAAC,CAAa,EAAA;QAC5B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AACzF,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC5B,SAAA;KACF;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;AAED,IAAA,qBAAqB,CAAI,MAA0B,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE;AACnC,YAAA,uCAAuC,EAAE,CAAC;AAC3C,SAAA;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KACxD;AAED,IAAA,oBAAoB,CAAI,MAAyB,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE;AACnC,YAAA,uCAAuC,EAAE,CAAC;AAC3C,SAAA;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;KACvD;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;KAChC;IAEO,iBAAiB,GAAA;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,gBAAgB,CAAC;KAC7E;IAEO,uBAAuB,GAAA;AAC7B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QACxD,IAAI,IAAI,CAAC,kCAAiD,EAAE;YAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,kCAAmC,CAAC,qBAAqB,EAAE,CAAC;YAC3F,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,kCAAmC,CAAC,CAAC;YAChF,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1D,YAAA,MAAM,eAAe,GAAG,CAAG,EAAA,CAAC,GAAG,YAAY,CAAC,UAAU,CAAA,GAAA,EAAM,CAAC,GAAG,YAAY,CAAC,SAAS,QAAQ,CAAC;YAC/F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC;AACzE,SAAA;KACF;IAEO,4BAA4B,GAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACxE,SAAA;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAA4B,CAAC;AACrF,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1F,aAAA;AACF,SAAA;KACF;IAEO,SAAS,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAExC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,CAAC;AAC/C,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClD,IAAI,aAAa,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBACjE,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,aAAA;AACF,SAAA;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kCAAiD,CAAC;;QAGvE,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AAClD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAwB,CAAC;AAC7D,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAExC,YAAA,IACE,CAAC,aAAa;AACd,gBAAA,aAAa,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI;AACpC,gBAAA,aAAa,KAAK,OAAO;AACzB,gBAAA,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC/B;gBACA,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,aAAA;AACF,SAAA;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AAC1B,SAAA;KACF;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5B,OAAO;AACR,SAAA;;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;AACxD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACxD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAC5D,QAAA,IAAI,eAAe,EAAE;YACnB,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACzD,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAChE,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QAExD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAE5D,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAEO,yBAAyB,CAAC,QAAiB,KAAK,EAAA;AACtD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;AACxD,QAAA,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,KAAK,EAAE;;AAErC,gBAAA,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACxD,OAAO;AACR,aAAA;YACD,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACzD,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAChE,SAAA;KACF;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5B,OAAO;AACR,SAAA;AACD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;AACxD,QAAA,IAAI,eAAe,EAAE;YACnB,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC5D,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACnE,SAAA;QACD,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACzD,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC/D,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACzD,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;KAChE;IAEO,oBAAoB,GAAA;AAC1B,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;AACxD,QAAA,IAAI,eAAe,EAAE;YACnB,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACxE,aAAA;AACF,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;AACxD,QAAA,IAAI,eAAe,EAAE;YACnB,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAyC,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;oBAChC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAChD,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,aAAA;YAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAE5B,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE;gBAC9F,MAAM,MAAM,qBAAmC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAE,CAAC;gBACzE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AAChC,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AAC5B,aAAA;AACF,SAAA;KACF;IAED,mBAAmB,GAAA;AACjB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;AACxD,QAAA,IAAI,eAAe,EAAE;YACnB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACtD,aAAA;AAAM,iBAAA;AACL,gBAAA,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACzD,aAAA;AACF,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAAqB,EAAA;AACnC,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;YACnC,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;AAED,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;YAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;YACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;AACpB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;AAES,IAAA,mBAAmB,CAAC,cAAuC,EAAA;AACnE,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YACjC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;AAC1C,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAK;gBACd,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL,YAAA,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC;AACjD,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACxB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACJ;;wHApTU,2BAA2B,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAA3B,2BAA2B,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;;;ACtCV;;;AAGG;MAsBU,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAmB,MAAoB,EAAA;AAApB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;KAAI;;kHADhC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAbtB,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;GAMT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,EAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAOU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,iBAAiB;AACxB,wBAAA,YAAY,EAAE,OAAO;AACtB,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;;;ACoFK,MAAO,gCAAiC,SAAQ,2BAA2B,CAAA;IAO/E,WACE,CAAA,MAAc,EACN,IAAmB,EAC3B,IAA6B,EAC7B,gBAAkC,EAClC,GAAsB,EACtB,MAAiB,EACjB,UAAsB,EACtB,eAAgC,EAChB,MAAoB,EACN,QAAmB,EACN,aAAqB,EAAA;QAEhE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAXzG,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAe;AAOX,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AAbV,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;AAC3C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;AAkBjE,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAChD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;;6HArCU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAiBrB,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACR,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iHAlBhC,gCAAgC,EAAA,QAAA,EAAA,4BAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,4FAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAChC,eAAe,EAxEhB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,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,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,EAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,UAAA,EACW,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;2FAiBnC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBA1E5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC;;oBAE9C,eAAe,EAAE,uBAAuB,CAAC,OAAO;AAChD,oBAAA,IAAI,EAAE;AACJ,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,wFAAwF;AACnG,wBAAA,4BAA4B,EAAE,CAAe,aAAA,CAAA;AAC7C,wBAAA,4BAA4B,EAAE,mBAAmB;AACjD,wBAAA,gBAAgB,EAAE,iBAAiB;AACnC,wBAAA,cAAc,EAAE,sBAAsB;AACtC,wBAAA,mBAAmB,EAAE,OAAO;AAC5B,wBAAA,yBAAyB,EAAE,0BAA0B;AACrD,wBAAA,wBAAwB,EAAE,yBAAyB;AACnD,wBAAA,SAAS,EAAE,0BAA0B;AACtC,qBAAA;iBACF,CAAA;;;8BAkBI,QAAQ;;8BAAI,MAAM;+BAAC,QAAQ,CAAA;;8BAC3B,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;yBAjBY,YAAY,EAAA,CAAA;sBAAlE,SAAS;gBAAC,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACU,eAAe,EAAA,CAAA;sBAApE,SAAS;gBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACf,eAAe,EAAA,CAAA;sBAA1C,MAAM;gBACqB,WAAW,EAAA,CAAA;sBAAtC,MAAM;;;AChHT;;;AAGG;MAsEU,sBAAsB,CAAA;IASjC,WAAoB,CAAA,IAAmB,EAAS,MAAoB,EAAA;AAAhD,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAe;AAAS,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AARpE,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACtB,QAAA,IAAO,CAAA,OAAA,GAAyB,EAAE,CAAC;AAEhB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;AAC3C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;AAElD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAGrC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAI,MAAM,CAAC,QAAiC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClF,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;AAED;;;AAGG;IACH,qBAAqB,CAAC,OAA2B,EAAE,IAA8B,EAAA;AAC/E,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAC9D,OAAO,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,KAAK,CAAC;KAC7G;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,OAA2B,EAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;AAC5C,gBAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM;qBACH,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;qBACrC,KAAK,CAAC,CAAC,IAAG;AACT,oBAAA,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;AACxB,oBAAA,MAAM,CAAC,CAAC;AACV,iBAAC,CAAC,CAAC;AACN,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;;mHA3DU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAvDvB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAE,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,EAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;2FAMU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA1DlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,kBAAkB;AAC1B,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;8HAKoB,eAAe,EAAA,CAAA;sBAAjC,MAAM;gBACY,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBACE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;AAwDR,SAAS,kBAAkB,CAAC,OAA2B,EAAA;IACrD,OACE,MAAA,CAAA,MAAA,CAAA,EAAA,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,IAAI,EACjB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,KAAK,EACZ,EAAA,OAAO,CACV,CAAA;AACJ;;ACjJA;;;AAGG;MAqBU,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAmB,MAAoB,EAAA;AAApB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;KAAI;;kHADhC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAZtB,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;GAMT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,EAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAMU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAfjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,kBAAkB;AAC1B,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;;;ACqDK,MAAO,yBAA0B,SAAQ,2BAA2B,CAAA;AAGxE,IAAA,WAAA,CACE,MAAc,EACd,IAA6B,EAC7B,gBAAkC,EAClC,GAAsB,EACtB,MAAiB,EACjB,UAAsB,EACtB,eAAgC,EAChB,MAAoB,EACN,QAAmB,EACN,aAAqB,EAAA;QAEhE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAJjG,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;KAKrC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAChD;;sHApBU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAY,YAAA,EAAA,EAAA,EAAA,KAAA,EAYd,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACR,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAbhC,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,4FAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzB,eAAe,EA5ChB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,qBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAT,GAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,UAAA,EACW,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;2FAiBnC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA9CrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC;;oBAE9C,eAAe,EAAE,uBAAuB,CAAC,OAAO;AAChD,oBAAA,IAAI,EAAE;AACJ,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,wFAAwF;AACnG,wBAAA,4BAA4B,EAAE,CAAe,aAAA,CAAA;AAC7C,wBAAA,4BAA4B,EAAE,mBAAmB;AACjD,wBAAA,gBAAgB,EAAE,iBAAiB;AACnC,wBAAA,cAAc,EAAE,sBAAsB;AACtC,wBAAA,mBAAmB,EAAE,OAAO;AAC5B,wBAAA,yBAAyB,EAAE,0BAA0B;AACrD,wBAAA,wBAAwB,EAAE,yBAAyB;AACnD,wBAAA,SAAS,EAAE,0BAA0B;AACtC,qBAAA;iBACF,CAAA;;;8BAaI,QAAQ;;8BAAI,MAAM;+BAAC,QAAQ,CAAA;;8BAC3B,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;yBAZY,YAAY,EAAA,CAAA;sBAAlE,SAAS;gBAAC,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACU,eAAe,EAAA,CAAA;sBAApE,SAAS;gBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCjDhC,UAAU,CAAA;AAWrB,IAAA,WAAA,CACU,UAAsB,EACtB,MAAoB,EACrB,iBAA8C,EAAA;AAF7C,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACtB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AACrB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAA6B;AAbvD,QAAA,IAAiB,CAAA,iBAAA,GAAa,IAAI,CAAC;AAEnC,QAAA,IAAA,CAAA,KAAK,GAAmC,CAAA,yBAAA;AACxC,QAAA,IAAA,CAAA,UAAU,GAAe,IAAI,OAAO,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAkB,IAAI,OAAO,EAAE,CAAC;AAIjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;AAOrC,QAAA,iBAAiB,CAAC,qBAAqB;aACpC,IAAI,CACH,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,EACxE,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC1B,YAAA,IAAI,MAAM,CAAC,WAAW,YAAY,YAAY,EAAE;AAC9C,gBAAA,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3B,aAAA;AACH,SAAC,CAAC,CAAC;AAEL,QAAA,iBAAiB,CAAC,qBAAqB;aACpC,IAAI,CACH,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,EACvE,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,MAAK;AACd,YAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;QAEL,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACtF,YAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AAC5E,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,CAAA,QAAA,8BAAwB,CAAC;AACtC,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,UAAU;AACP,aAAA,aAAa,EAAE;aACf,IAAI,CACH,MAAM,CACJ,KAAK,IACF,IAAI,CAAC,MAAM,CAAC,UAAsB;AACnC,YAAA,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe;AAC5B,YAAA,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW;YACxB,KAAK,CAAC,OAAO,KAAK,MAAM;AACxB,YAAA,CAAC,cAAc,CAAC,KAAK,CAAC,CACzB,CACF;aACA,SAAS,CAAC,KAAK,IAAG;YACjB,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,CAAA,QAAA,8BAAwB,CAAC;AACvC,SAAC,CAAC,CAAC;AAEL,QAAA,iBAAiB,CAAC,eAAe;AAC9B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAwB,QAAA,8BAAA,CAAC,CAAC;QAEzD,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAoB,IAAA,0BAAA,CAAC,CAAC;AAE/G,QAAA,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;YACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,YAAA,IAAI,MAAM,CAAC,YAAY,YAAY,YAAY,EAAE;gBAC/C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;IAED,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,iBAAsB,CAAC;KACpC;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;KAClD;AAED,IAAA,OAAO,CAAC,MAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACpB;IAED,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,OAAO,CAAA,IAAA,0BAAoB,CAAC;KACzC;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,OAAO,CAAA,QAAA,8BAAwB,CAAC;KAC7C;AAED,IAAA,KAAK,CAAC,MAAU,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,KAAA,CAAA,0BAAwB;YACpC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,qBAAqB;AACzC,aAAA,IAAI,CACH,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,EAC5C,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;gBAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,aAAC,EAAE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,GAAA,CAAA,4BAAwB;KACnC;AAED,IAAA,YAAY,CAAC,MAAoB,EAAA;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3C;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAED,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;KACxC;AAEa,IAAA,OAAO,CAAC,MAAuB,EAAA;;AAC3C,YAAA,IAAI,IAAI,CAAC,KAAK,KAAA,CAAA,6BAA2B;gBACvC,OAAO;AACR,aAAA;YACD,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;AACnF,YAAA,MAAM,UAAU,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,MAAM,CAAsC,CAAC;YACjH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACxC,YAAA,IAAI,OAAO,EAAE;gBACX,OAAO;AACR,aAAA;YACD,IAAI,OAAO,YAAY,YAAY,EAAE;gBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,aAAA;AAAM,iBAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;AACnD,gBAAA,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;AACrB,oBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;oBAC/B,IAAI,OAAO,GAAwB,KAAK,CAAC;oBACzC,IAAI;AACF,wBAAA,OAAO,IAAI,MAAM,MAAM,CAAkB,CAAC;AAC3C,qBAAA;AAAS,4BAAA;AACR,wBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;AAChC,wBAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC9B,iBAAA;AACF,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAEO,IAAA,eAAe,CAAC,MAAiB,EAAA;QACvC,IAAI,MAAM,KAAK,KAAK,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpB,SAAA;KACF;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAA,CAAA,2BAAuB;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AACF;;MCpLY,cAAc,CAAA;IAiBzB,WACU,CAAA,OAAgB,EAChB,QAAkB,EAClB,eAAgC,EACR,WAA2B,EACvC,cAA8B,EAAA;AAJ1C,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AAChB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AACR,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;AACvC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AArB5C,QAAA,IAAqB,CAAA,qBAAA,GAAiB,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,OAAO,EAAQ,CAAC;AAWxD,QAAA,IAAA,CAAA,aAAa,GAAqB,KAAK,CAAC,MAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAC5E,CAAC;KAQlB;AAnBJ,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC;KACpF;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAChC,QAAA,OAAO,MAAM,GAAG,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC;KACzE;AAcD,IAAA,MAAM,CAAmB,MAA0B,EAAA;QACjD,OAAO,IAAI,CAAC,IAAI,CAAO,MAAM,CAAC,SAA6B,EAAE,MAAM,CAAC,CAAC;KACtE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACnC;AAED,IAAA,OAAO,CAAI,OAAA,GAA2B,EAAE,EAAE,cAA2B,SAAS,EAAA;QAC5E,IAAI,UAAU,IAAI,OAAO,EAAE;YACzB,IAAI,CAAC,CAA8E,4EAAA,CAAA,CAAC,CAAC;AACtF,SAAA;AACD,QAAA,IAAI,EAAE,SAAS,IAAI,OAAO,CAAC,EAAE;AAC3B,YAAA,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,EAAE,gBAAgB,IAAI,OAAO,CAAC,EAAE;AAClC,YAAA,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;AAChC,SAAA;AAED,QAAA,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;AAChC,QAAA,OAAO,CAAC,WAAW,GAAG,CAAA,oCAAA,EAAuC,WAAW,CAAA,CAAA,EAAI,OAAO,CAAC,WAAW,IAAI,EAAE,CAAA,CAAE,CAAC;AACxG,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC7B;IAED,IAAI,CAAI,UAA2B,EAAE,EAAA;QACnC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAC7C;IAED,OAAO,CAAI,UAA2B,EAAE,EAAA;QACtC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAChD;IAED,KAAK,CAAI,UAA2B,EAAE,EAAA;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAC9C;IAED,OAAO,CAAI,UAA2B,EAAE,EAAA;QACtC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAChD;IAEO,IAAI,CAAO,sBAAsC,EAAE,MAAqB,EAAA;AAC9E,QAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC3E,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAO,sBAAsB,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACjH,QAAA,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAEnC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,QAAA,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEpE,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEO,IAAA,eAAe,CAAC,QAAoB,EAAA;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAEjC,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC7B,aAAA;AACF,SAAA;KACF;AAEO,IAAA,WAAW,CAAC,OAAqB,EAAA;AACvC,QAAA,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,EAAE;AACV,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC7B,aAAA;AACF,SAAA;KACF;AAEO,IAAA,aAAa,CAAC,MAAoB,EAAA;AACxC,QAAA,MAAM,YAAY,GAAc,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AACxG,QAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;AACtC,YAAA,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;YACrD,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AAClD,YAAA,mBAAmB,EAAE,kBAAkB,CAAC,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC;AAC3G,YAAA,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACvG,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;AAChE,YAAA,aAAa,CAAC,aAAa,GAAG,qBAAqB,CAAC;AACrD,SAAA;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC3C;IAEO,oBAAoB,CAAC,UAAsB,EAAE,MAAoB,EAAA;AACvE,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AAC/F,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC/B,YAAA,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ;AACrC,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;AAC7C,gBAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC5C,aAAA;AACF,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,kBAAkB,GACtB,MAAM,CAAC,WAAW,KAAK,SAAS;AAC9B;gBACE,gCAAgC;AAClC;AACE,gBAAA,yBAAyB,CAAC;AAEhC,QAAA,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,kBAAkB,EAClB,MAAM,CAAC,kBAAkB,EACzB,QAAQ,CACT,CAAC;QACF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAA8B,eAAe,CAAC,CAAC;QAErF,OAAO,YAAY,CAAC,QAAQ,CAAC;KAC9B;AAEO,IAAA,kBAAkB,CACxB,sBAAsC,EACtC,cAA2C,EAC3C,UAAsB,EACtB,MAAuB,EAAA;QAEvB,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAO,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAE1E,IAAI,sBAAsB,YAAY,WAAW,EAAE;YACjD,cAAc,CAAC,oBAAoB,CACjC,IAAI,cAAc,CAAI,sBAAsB,EAAE,IAAK,EAAE;gBACnD,SAAS,EAAE,MAAM,CAAC,iBAAiB;gBACnC,QAAQ;AACI,aAAA,CAAC,CAChB,CAAC;AACH,SAAA;aAAM,IAAI,QAAQ,CAAC,sBAAsB,CAAC,IAAI,OAAO,sBAAsB,KAAK,QAAQ,EAAE;YACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAO,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC7D,YAAA,MAAM,UAAU,GAAG,cAAc,CAAC,qBAAqB,CACrD,IAAI,eAAe,CAAC,sBAAsB,EAAE,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CACjF,CAAC;YACF,wBAAwB,CAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC3E,YAAA,QAAQ,CAAC,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC;AAClD,SAAA;AAAM,aAAA;YACL,cAAc,CAAC,mBAAmB,EAAE,CAAC;AACtC,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;IAEO,cAAc,CAAO,QAA0B,EAAE,MAAuB,EAAA;AAC9E,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAE/F,OAAO,QAAQ,CAAC,MAAM,CAAC;AACrB,YAAA,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ;YACrC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACzD,SAAA,CAAC,CAAC;KACJ;AAEO,IAAA,cAAc,CAAI,OAAA,GAA2B,EAAE,EAAE,WAAwB,EAAA;AAC/E,QAAA,MAAM,OAAO,GAAoB;AAC/B,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,OAAO,EAAE,oBAAoB;SAC9B,CAAC;AACF,QAAA,IAAI,EAAE,YAAY,IAAI,OAAO,CAAC,EAAE;AAC9B,YAAA,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,EAAE,cAAc,IAAI,OAAO,CAAC,EAAE;;AAEhC,YAAA,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,SAAA;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KAC3C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC;KAC3C;;2GAvMU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;+GAAd,cAAc,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;;8BAsBN,QAAQ;;8BAAI,QAAQ;;8BACpB,QAAQ;;;;AClDb;;;AAGG;MAQU,uBAAuB,CAAA;AAClC,IAAA,WAAA,CAAmB,WAA4B,EAAA;AAA5B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAiB;KAAI;;oHADxC,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,gBAAgB;iBAC3B,CAAA;;;ACVD;;;AAGG;MAUU,sBAAsB,CAAA;IACjC,WAAgC,CAAA,UAAsB,EAAS,WAA4B,EAAA;AAA3D,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAAS,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAiB;QACzF,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC3B,QAAQ,EAAE,IAAI,CAAC,WAAW;AAC3B,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;;mHAPU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAe,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;iBAC1B,CAAA;;;8BAEc,QAAQ;;;;ACdvB;;;AAGG;MAUU,qBAAqB,CAAA;IAChC,WAAgC,CAAA,UAAsB,EAAS,WAA4B,EAAA;AAA3D,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAAS,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAiB;QACzF,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC3B,OAAO,EAAE,IAAI,CAAC,WAAW;AAC1B,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;;kHAPU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAA;;;8BAEc,QAAQ;;;;MC4BV,gBAAgB,CAAA;AA6F3B,IAAA,WAAA,CACU,GAAsB,EACtB,KAAqB,EACrB,gBAAkC,EAAA;AAFlC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACtB,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;AACrB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AA5EnB,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAC3B,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAC3B,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAC7B,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAC9B,QAAA,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAClC,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAC3B,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACtB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAInC,QAAA,IAAQ,CAAA,QAAA,GAAW,IAAI,CAAC;AACxB,QAAA,IAAO,CAAA,OAAA,GAAoB,GAAG,CAAC;AAK/B,QAAA,IAAW,CAAA,WAAA,GAA+B,OAAO,CAAC;AAKlD,QAAA,IAAQ,CAAA,QAAA,GAAiB,SAAS,CAAC;AACnB,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAW,iBAAiB,CAAC;AACvC,QAAA,IAAW,CAAA,WAAA,GAAe,SAAS,CAAC;AACpC,QAAA,IAAW,CAAA,WAAA,GAAoC,MAAM,CAAC;;AAKtD,QAAA,IAAA,CAAA,MAAM,GAAqD,IAAI,YAAY,EAAK,CAAC;;AAKjF,QAAA,IAAA,CAAA,UAAU,GAAqD,IAAI,YAAY,EAAK,CAAC;AAE3E,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;AACvC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAK,CAAC;AACrC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAC;AAmBzD,QAAA,IAAQ,CAAA,QAAA,GAAsB,IAAI,CAAC;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAgBnC;IAlCJ,IACI,UAAU,CAAC,KAA6B,EAAA;AAC1C,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClC,SAAA;KACF;IAKD,IACI,WAAW,CAAC,KAA6B,EAAA;AAC3C,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACF;AAKD,IAAA,IAAI,SAAS,GAAA;;AAEX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;AAED,IAAA,IAAI,UAAU,GAAA;;AAEZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;IAQD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;YAG1C,IAAI,CAAC,QAAQ,CAAC,UAAU;AACrB,iBAAA,YAAY,EAAE;AACd,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,aAAC,CAAC,CAAC;AACN,SAAA;KACF;AAED,IAAA,KAAK,CAAC,MAAU,EAAA;QACd,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,SAAA;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACtB,SAAA;KACF;AAED,IAAA,OAAO,CAAC,MAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACpB;IAED,SAAS,GAAA;;AACP,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,EAAE,CAAC;KAC5B;IAED,aAAa,GAAA;;AACX,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,EAAE,CAAC;KAChC;IAED,mBAAmB,GAAA;;AACjB,QAAA,OAAO,MAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,EAAE,CAAC;KAC7C;IAED,UAAU,GAAA;;AACR,QAAA,OAAO,MAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,CAAC;KACpC;IAED,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAEO,IAAA,oBAAoB,CAAC,WAA4B,EAAA;AACvD,QAAA,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE;;AAEjB,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AAC1B,gBAAA,IAAI,CAAC,QAAS,CAAC,YAAY,CAAC;oBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAEO,IAAA,qBAAqB,CAAC,WAA4B,EAAA;AACxD,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;;AAEjB,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AAC1B,gBAAA,IAAI,CAAC,QAAS,CAAC,YAAY,CAAC;oBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAEO,SAAS,GAAA;AACf,QAAA,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACrD,QAAA,eAAe,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC3D,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,uBAAuB,CAAC;AAC3E,QAAA,OAAO,eAAe,CAAC;KACxB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,EAAE,SAAS,EAAA,GAAsB,OAAO,EAAxB,YAAY,GAAA,MAAA,CAAK,OAAO,EAAxC,CAA8B,WAAA,CAAA,CAAU,CAAC;AAE/C,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACrD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,SAAA;AAED,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;;AACT,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,kBAAkB,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;;6GAhNU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EA+Db,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qBAAqB,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAOxD,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,uBAAuB,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAG1D,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,uFA5E7D,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;AAoBa,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAAkB,EAAA,gBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACjB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAA0B,EAAA,gBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACzB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAA+B,EAAA,gBAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC9B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAA4B,EAAA,gBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC3B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAA4B,EAAA,gBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC3B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAA8B,EAAA,gBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC7B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAA+B,EAAA,gBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC9B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAAmC,EAAA,gBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAClC,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAAkC,EAAA,gBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACjC,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAA4B,EAAA,gBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC3B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAAuB,EAAA,gBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACtB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAAoB,EAAA,gBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAgBnB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;CAA6B,EAAA,gBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FA5C1C,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,CAAE,CAAA;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;iKAkB0B,MAAM,EAAA,CAAA;sBAA9B,KAAK;gBACmB,cAAc,EAAA,CAAA;sBAAtC,KAAK;gBACmB,mBAAmB,EAAA,CAAA;sBAA3C,KAAK;gBACmB,SAAS,EAAA,CAAA;sBAAjC,KAAK;gBACmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;gBACmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBACmB,YAAY,EAAA,CAAA;sBAApC,KAAK;gBACmB,gBAAgB,EAAA,CAAA;sBAAxC,KAAK;gBACmB,eAAe,EAAA,CAAA;sBAAvC,KAAK;gBACmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;gBACmB,aAAa,EAAA,CAAA;sBAArC,KAAK;gBACmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,MAAM,EAAA,CAAA;sBAFd,KAAK;;sBACL,MAAM;gBAME,UAAU,EAAA,CAAA;sBAFlB,KAAK;;sBACL,MAAM;gBAGY,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBACY,YAAY,EAAA,CAAA;sBAA9B,MAAM;gBACY,eAAe,EAAA,CAAA;sBAAjC,MAAM;gBAGH,UAAU,EAAA,CAAA;sBADb,YAAY;uBAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAQxE,uBAAuB,EAAA,CAAA;sBADtB,YAAY;uBAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAItE,WAAW,EAAA,CAAA;sBADd,YAAY;uBAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;;;ACnH3E;;;AAGG;MAuDU,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBAZtB,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,qBAAqB;QACrB,sBAAsB;QACtB,qBAAqB;QACrB,qBAAqB;QACrB,yBAAyB;QACzB,gCAAgC;AAChC,QAAA,gBAAgB,aAxBhB,YAAY;QACZ,UAAU;QACV,aAAa;QACb,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,aAAa;QACb,mBAAmB;AACnB,QAAA,aAAa,aAEL,gBAAgB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAevF,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAdb,SAAA,EAAA,CAAC,cAAc,CAAC,YAbzB,YAAY;QACZ,UAAU;QACV,aAAa;QACb,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,aAAa;QACb,mBAAmB;QACnB,aAAa,CAAA,EAAA,CAAA,CAAA;2FAiBJ,aAAa,EAAA,UAAA,EAAA,CAAA;kBA7BzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,UAAU;wBACV,aAAa;wBACb,cAAc;wBACd,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,YAAY;wBACZ,aAAa;wBACb,mBAAmB;wBACnB,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,qBAAqB,CAAC;oBACnG,SAAS,EAAE,CAAC,cAAc,CAAC;AAC3B,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,sBAAsB;wBACtB,uBAAuB;wBACvB,qBAAqB;wBACrB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;wBACrB,yBAAyB;wBACzB,gCAAgC;wBAChC,gBAAgB;AACjB,qBAAA;iBACF,CAAA;;;ACzDD;;;AAGG;MAImB,gBAAgB,CAAA;AAqBrC;;AC5BD;;;AAGG;;ACHH;;AAEG;;;;"}