{"version":3,"file":"ngx-youi.mjs","sources":["../../../projects/ngx-youi/src/lib/model/inject.token.ts","../../../projects/ngx-youi/src/lib/component/breadcrumb/breadcrumb-item/breadcrumb-item.component.ts","../../../projects/ngx-youi/src/lib/component/breadcrumb/breadcrumb-item/breadcrumb-item.component.html","../../../projects/ngx-youi/src/lib/component/breadcrumb/breadcrumb.component.ts","../../../projects/ngx-youi/src/lib/component/breadcrumb/breadcrumb.component.html","../../../projects/ngx-youi/src/lib/component/breadcrumb/breadcrumb.module.ts","../../../projects/ngx-youi/src/lib/component/datatable/datatable.directive.ts","../../../projects/ngx-youi/src/lib/component/datatable/datatable.component.ts","../../../projects/ngx-youi/src/lib/component/datatable/datatable.component.html","../../../projects/ngx-youi/src/lib/component/datatable/datatable.module.ts","../../../projects/ngx-youi/src/lib/component/dialog/IDialog.ts","../../../projects/ngx-youi/src/lib/component/dialog/dialog.base.ts","../../../projects/ngx-youi/src/lib/component/dialog/basic-dialog/basic-dialog.component.ts","../../../projects/ngx-youi/src/lib/component/dialog/basic-dialog/basic-dialog.component.html","../../../projects/ngx-youi/src/lib/component/dialog/confirm-dialog/confirm-dialog.component.ts","../../../projects/ngx-youi/src/lib/component/dialog/confirm-dialog/confirm-dialog.component.html","../../../projects/ngx-youi/src/lib/component/dialog/dialog.service.ts","../../../projects/ngx-youi/src/lib/component/dialog/dialog.module.ts","../../../projects/ngx-youi/src/lib/component/dropdown/dropdown.component.ts","../../../projects/ngx-youi/src/lib/component/dropdown/dropdown.component.html","../../../projects/ngx-youi/src/lib/component/dropdown/dropdown.directive.ts","../../../projects/ngx-youi/src/lib/component/dropdown/dropdown-item.directive.ts","../../../projects/ngx-youi/src/lib/component/dropdown/dropdown.module.ts","../../../projects/ngx-youi/src/lib/component/expansion-menu-item/expansion-menu-item.component.ts","../../../projects/ngx-youi/src/lib/component/expansion-menu-item/expansion-menu-item.component.html","../../../projects/ngx-youi/src/lib/component/expansion-menu-item/expansion-menu-item.module.ts","../../../projects/ngx-youi/src/lib/component/menu-item/menu-item.component.ts","../../../projects/ngx-youi/src/lib/component/menu-item/menu-item.component.html","../../../projects/ngx-youi/src/lib/component/menu-item/menu-item.module.ts","../../../projects/ngx-youi/src/lib/component/notification/INotification.ts","../../../projects/ngx-youi/src/lib/component/notification/NotificationPositionEnum.ts","../../../projects/ngx-youi/src/lib/component/notification/notification.base.ts","../../../projects/ngx-youi/src/lib/component/notification/notification.component.ts","../../../projects/ngx-youi/src/lib/component/notification/notification.component.html","../../../projects/ngx-youi/src/lib/component/notification/notification-container/notification-container.component.ts","../../../projects/ngx-youi/src/lib/component/notification/notification-container/notification-container.component.html","../../../projects/ngx-youi/src/lib/component/notification/notification.service.ts","../../../projects/ngx-youi/src/lib/component/notification/notification.module.ts","../../../projects/ngx-youi/src/lib/component/pagination/pagination.component.ts","../../../projects/ngx-youi/src/lib/component/pagination/pagination.component.html","../../../projects/ngx-youi/src/lib/component/pagination/pagination.module.ts","../../../projects/ngx-youi/src/lib/component/select/select-option/select-option.component.ts","../../../projects/ngx-youi/src/lib/component/select/select-option/select-option.component.html","../../../projects/ngx-youi/src/lib/component/select/select.component.ts","../../../projects/ngx-youi/src/lib/component/select/select.component.html","../../../projects/ngx-youi/src/lib/component/select/select.module.ts","../../../projects/ngx-youi/src/lib/pipe/safe-html.pipe.ts","../../../projects/ngx-youi/src/lib/component/spinner/spinner.component.ts","../../../projects/ngx-youi/src/lib/component/spinner/spinner.component.html","../../../projects/ngx-youi/src/lib/component/spinner/spinner.module.ts","../../../projects/ngx-youi/src/lib/component/tab/tab-panel.directive.ts","../../../projects/ngx-youi/src/lib/component/tab/tab.component.ts","../../../projects/ngx-youi/src/lib/component/tab/tab.component.html","../../../projects/ngx-youi/src/lib/component/tab/tab.module.ts","../../../projects/ngx-youi/src/lib/ngx-youi.module.ts","../../../projects/ngx-youi/src/public-api.ts","../../../projects/ngx-youi/src/ngx-youi.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const ABSTRACT_INJECT = new InjectionToken('Abstract Token');","import { ContentChild, TemplateRef } from '@angular/core';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Inject,\r\n  Input,\r\n  OnInit,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ABSTRACT_INJECT } from '../../../model/inject.token';\r\nimport type { BreadcrumbComponent } from '../breadcrumb.component';\r\n\r\n@Component({\r\n  selector: 'youi-breadcrumb-item',\r\n  templateUrl: './breadcrumb-item.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BreadcrumbItemComponent implements OnInit {\r\n  @Input() icon: string;\r\n  @ContentChild('iconTemplate', { static: false }) iconTemplate: TemplateRef<any>\r\n\r\n  constructor(@Inject(ABSTRACT_INJECT) public breadcrumb: BreadcrumbComponent) {}\r\n\r\n  ngOnInit(): void {}\r\n\r\n  get itemCSSClass () {\r\n    return [\r\n      this.breadcrumb.breadcrumbItems.last === this ? 'youi-breadcrumb-item-content-active ' + this.breadcrumb.itemActiveCSSClass : this.breadcrumb.itemCSSClass\r\n    ]\r\n  }\r\n\r\n  get separatorSpace () {\r\n    return {\r\n      margin: `0 ${this.breadcrumb.separatorSpace}`\r\n    }\r\n  }\r\n}\r\n","<div class=\"youi-breadcrumb-item-content\" [ngClass]=\"itemCSSClass\">\r\n  <i class=\"material-icons youi-breadcrumb-item__icon\" [ngClass]=\"[breadcrumb.iconCSSClass]\" *ngIf=\"icon && !iconTemplate\">{{ icon }}</i>\r\n  <span class=\"youi-breadcrumb-item__icon\"><ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container></span>\r\n  <ng-content></ng-content>\r\n</div>\r\n\r\n<div class=\"youi-breadcrumb_item_sperator\" [ngClass]=\"breadcrumb.speratorCSSClass\" [ngStyle]=\"separatorSpace\"  *ngIf=\"breadcrumb.breadcrumbItems.last !== this && (breadcrumb.separator || breadcrumb.separatorTemplate)\">\r\n  <span class=\"youi-breadcrumb_item_sperator_inner\" *ngIf=\"!breadcrumb.separatorTemplate\">\r\n    <ng-container *ngIf=\"breadcrumb.separatorType === 'text'\">{{ breadcrumb.separator }}</ng-container>\r\n    <i *ngIf=\"breadcrumb.separatorType === 'icon'\" class=\"material-icons\">{{ breadcrumb.separator }}</i>\r\n  </span>\r\n  <ng-container *ngTemplateOutlet=\"breadcrumb.separatorTemplate\"></ng-container>\r\n</div>","import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, Input, OnInit, QueryList, TemplateRef, ViewEncapsulation } from '@angular/core';\r\nimport { ABSTRACT_INJECT } from '../../model/inject.token';\r\nimport { BreadcrumbItemComponent } from './breadcrumb-item/breadcrumb-item.component';\r\n\r\n@Component({\r\n  selector: 'youi-breadcrumb',\r\n  templateUrl: './breadcrumb.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: ABSTRACT_INJECT,\r\n      useExisting: BreadcrumbComponent \r\n    }\r\n  ]\r\n})\r\nexport class BreadcrumbComponent implements OnInit { \r\n @Input() separator: string = '/'\r\n @Input() separatorType: 'text' | 'icon' = 'text'\r\n @Input() separatorSpace: string = '10px'\r\n\r\n @ContentChild('separatorTemplate', { static: false }) separatorTemplate: TemplateRef<any>\r\n @ContentChildren(BreadcrumbItemComponent) breadcrumbItems: QueryList<BreadcrumbItemComponent>\r\n \r\n @Input() iconCSSClass: string = '';\r\n @Input() itemCSSClass: string = ''\r\n @Input() itemActiveCSSClass: string = ''\r\n @Input() speratorCSSClass: string = ''\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n}\r\n","<ng-content></ng-content>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { BreadcrumbComponent } from \"./breadcrumb.component\";\r\nimport { BreadcrumbItemComponent } from \"./breadcrumb-item/breadcrumb-item.component\";\r\n\r\n@NgModule({\r\n  declarations: [BreadcrumbComponent, BreadcrumbItemComponent],\r\n  imports: [CommonModule],\r\n  exports: [BreadcrumbComponent, BreadcrumbItemComponent]\r\n})\r\n\r\nexport class BreadcrumbModule {}","import { Directive, Input, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: 'ng-template[youi-datatable-template]'\r\n})\r\n\r\nexport class DatatableTemplateDirective {\r\n  /**\r\n   * headerTemplate: 表格的 thead\r\n   * bodyTemplate: 表格的 tbody\r\n   * header-xxx: 表格 thead 的某一個欄位 th\r\n   * body-xxx: 表格 tbody 的某一個欄位 td\r\n   */\r\n  @Input('youi-datatable-template') name: string\r\n\r\n  constructor(public template: TemplateRef<any>) {}\r\n}\r\n\r\n// https://stackoverflow.com/questions/54908344/dynamic-and-multiple-ngtemplate-in-angular-7\r\n// https://www.c-sharpcorner.com/article/dynamically-loading-the-ng-template-from-its-name-in-angular-9/","import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, TemplateRef, ViewEncapsulation } from '@angular/core';\r\nimport { DatatableTemplateDirective } from './datatable.directive';\r\nimport { ITable, ITableColumn, ITableSelected } from \"./ITable\";\r\n\r\n@Component({\r\n  selector: 'youi-datatable',\r\n  templateUrl: './datatable.component.html',\r\n  styleUrls: ['./datatable.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DatatableComponent<T> implements ITable<T>, OnInit {\r\n  @Input() tableCSSClass: string = ''\r\n  @Input() rowCSSClassFn: Function = (rowData: T) => {}\r\n  @Input() rowSelectDisableFn: Function = (rowData: T): true | null => {\r\n    return null\r\n  }\r\n\r\n  @Input() columns: ITableColumn[]\r\n\r\n  private _tableData: T[]\r\n  @Input() set tableData (value: T[]) {\r\n    for (let selectItem of this.selectedList) {\r\n      if (!value.includes(selectItem)) {\r\n        this.selectedList.delete(selectItem)\r\n      }\r\n    }\r\n    this._tableData = value\r\n  }\r\n\r\n  get tableData () {\r\n    return this._tableData\r\n  }\r\n  \r\n  /**\r\n   * setecedMode 僅限於沒有任何 headerTemplate 跟 bodyTemplate\r\n   */\r\n  @Input() selectedMode: 'checkbox' | 'radio' | '' = ''\r\n\r\n  @Input() selectedList: Set<T> = new Set<T>();\r\n  @Output() selectedListChange: EventEmitter<Set<T>> = new EventEmitter<Set<T>>(true)\r\n  @Output() selectedChange: EventEmitter<ITableSelected<T>> = new EventEmitter<ITableSelected<T>>(true)\r\n\r\n  @ContentChildren(DatatableTemplateDirective) columnTemplateDirectives: QueryList<DatatableTemplateDirective>\r\n  \r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  public getTableTemplate (name: string, type: 'header' | 'body' | '' = '') {\r\n    const templateName = type ? `${type}-${name}` : name\r\n    return (this.columnTemplateDirectives\r\n      .find(templateDirective => templateDirective.name === templateName))\r\n  }\r\n\r\n  getDataByField (data: T, fieldName: string) {\r\n    return (data as any)[fieldName] ?? ''\r\n  }\r\n\r\n  toggleSelectedData (data: T) {\r\n    let checked\r\n\r\n    if (!this.selectedList.has(data)) {\r\n      checked = true\r\n\r\n      if (this.selectedMode === 'radio') {\r\n        this.selectedList = new Set()\r\n      }\r\n      this.selectedList.add(data)\r\n    } else {\r\n      checked = false\r\n\r\n      this.selectedList.delete(data)\r\n    }\r\n\r\n    this.selectedListChange.emit(this.selectedList)\r\n\r\n    this.selectedChange.emit({\r\n      targetData: data,\r\n      isSelected: checked,\r\n      allSelectedData: this.selectedList\r\n    })\r\n  }\r\n  \r\n  toggleAllSelected (event: Event) {\r\n    const checked = (<HTMLInputElement>event.target).checked\r\n\r\n    if (checked) {\r\n      this.selectedList = new Set(this.tableData)\r\n    } else {\r\n      this.selectedList = new Set()\r\n    }\r\n    \r\n    this.selectedListChange.emit(this.selectedList)\r\n\r\n    this.selectedChange.emit({\r\n      targetData: null,\r\n      isSelected: checked,\r\n      allSelectedData: this.selectedList\r\n    })\r\n  }\r\n}\r\n","<table class=\"youi-datatable\" [ngClass]=\"[tableCSSClass]\">\r\n  <thead class=\"youi-datatable-thead\">\r\n    <ng-container *ngTemplateOutlet=\"getTableTemplate('headerTemplate')?.template; context: { $implicit: columns }\">\r\n    </ng-container>\r\n    \r\n    <tr class=\"youi-datatable-thead-tr\" *ngIf=\"!getTableTemplate('headerTemplate')\">\r\n      <th class=\"youi-datatable-th youi-datatable-th-select\" *ngIf=\"selectedMode !== '' && !getTableTemplate('headerTemplate') && !getTableTemplate('bodyTemplate')\">\r\n        <input\r\n          *ngIf=\"selectedMode === 'checkbox'\"\r\n          class=\"youi-datatable-th-select-input\"\r\n          type=\"checkbox\"\r\n          [checked]=\"\r\n            selectedList.size === tableData.length &&\r\n            tableData.length > 0\r\n          \"\r\n          [indeterminate]=\"\r\n            selectedList.size !== tableData.length &&\r\n            selectedList.size > 0\r\n          \"\r\n          (input)=\"toggleAllSelected($event)\"\r\n        />\r\n      </th>\r\n      <ng-container *ngFor=\"let column of columns\">\r\n        <th class=\"youi-datatable-th\" [ngClass]=\"'youi-datatable-th-' + column.name\" *ngIf=\"!getTableTemplate(column.name, 'header')\">\r\n          {{ column.label }}\r\n        </th>\r\n        <th class=\"youi-datatable-th\" [ngClass]=\"'youi-datatable-th-' + column.name\" *ngIf=\"getTableTemplate(column.name, 'header')\">\r\n          <ng-container \r\n            *ngTemplateOutlet=\"\r\n            getTableTemplate(column.name, 'header').template;\r\n              context: { $implicit: column }\r\n          \"></ng-container>\r\n        </th>\r\n      </ng-container>\r\n    </tr>\r\n  </thead>\r\n  <tbody class=\"youi-datatable-tbody\">\r\n    <ng-container *ngTemplateOutlet=\"getTableTemplate('bodyTemplate')?.template context: { $implicit: tableData, columns }\">\r\n    </ng-container>\r\n\r\n    <ng-container *ngIf=\"!getTableTemplate('bodyTemplate')\">\r\n      <tr class=\"youi-datatable-tbody-tr\" [ngClass]=\"rowCSSClassFn(rowData)\" [class.youi-datatable-tbody-tr-selected]=\"selectedList.has(rowData)\"  *ngFor=\"let rowData of tableData\">\r\n        <td class=\"youi-datatable-td youi-datatable-td-select\" *ngIf=\"selectedMode !== '' && !getTableTemplate('headerTemplate') && !getTableTemplate('bodyTemplate')\">\r\n          <input\r\n            *ngIf=\"selectedMode === 'checkbox'\"\r\n            [attr.disabled]=\"rowSelectDisableFn(rowData)\"\r\n            class=\"youi-datatable-td-select-input\"\r\n            [checked]=\"selectedList.has(rowData)\"\r\n            type=\"checkbox\"\r\n            (click)=\"toggleSelectedData(rowData)\"\r\n          />\r\n          <input\r\n            *ngIf=\"selectedMode === 'radio'\"\r\n            [attr.disabled]=\"rowSelectDisableFn(rowData)\"\r\n            class=\"youi-datatable-td-select-input\"\r\n            [checked]=\"selectedList.has(rowData)\"\r\n            type=\"radio\"\r\n            (click)=\"toggleSelectedData(rowData)\"\r\n          />\r\n        </td>\r\n  \r\n        <ng-container *ngFor=\"let column of columns\">\r\n          <td class=\"youi-datatable-td\" [ngClass]=\"'youi-datatable-td-' + column.name\" *ngIf=\"!getTableTemplate(column.name, 'body')\">\r\n            {{ getDataByField(rowData, column.name) }}\r\n          </td>\r\n  \r\n          <td class=\"youi-datatable-td\" [ngClass]=\"'youi-datatable-td-' + column.name\" *ngIf=\"getTableTemplate(column.name, 'body')\">\r\n            <ng-container \r\n              *ngTemplateOutlet=\"\r\n              getTableTemplate(column.name, 'body').template;\r\n                context: { $implicit: getDataByField(rowData, column.name), rowData, columns }\r\n            \"></ng-container>\r\n          </td>\r\n        </ng-container>\r\n      </tr>\r\n    </ng-container>\r\n  </tbody>\r\n</table>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { DatatableComponent } from \"./datatable.component\";\r\nimport { DatatableTemplateDirective } from \"./datatable.directive\";\r\n\r\n@NgModule({\r\n  declarations: [DatatableTemplateDirective, DatatableComponent],\r\n  imports: [CommonModule],\r\n  exports: [DatatableTemplateDirective, DatatableComponent]\r\n})\r\n\r\nexport class DatatableModule {}","import { InjectionToken, TemplateRef } from \"@angular/core\"\r\n\r\nexport interface IBasicDialogProp {\r\n  title?: string,\r\n  body?: string,\r\n  ok?: { label?: string, cssClass?: string },\r\n  templates?: IDialogTemplate,\r\n  styles?: IDialogStyle\r\n}\r\n\r\nexport interface IConfirmDialogProp extends IBasicDialogProp{\r\n  close?: { label?:string, cssClass?: string }\r\n}\r\n\r\nexport interface IDialogStyle {\r\n  containerCSSClass?: string,\r\n  titleCSSClass?: string,\r\n  bodyCSSClass?: string,\r\n  actionsCSSClass?: string,\r\n  actionsBtnCSSClass?: string\r\n}\r\n\r\nexport interface IDialogTemplate {\r\n  titleTemplate?: TemplateRef<any>,\r\n  bodyTemplate?: TemplateRef<any>,\r\n  actionsTemplate?: TemplateRef<any>\r\n}\r\n\r\nexport interface IDialogBackdropConfig {\r\n  hasBackdrop?: boolean,\r\n  backdropCSSClass?: string,\r\n  closeAfterClick?: boolean\r\n}\r\n\r\nexport const DIALOG_DATA = new InjectionToken('DIALOG_DATA');","import { OverlayRef } from \"@angular/cdk/overlay\"\r\nimport { Component, EventEmitter } from \"@angular/core\"\r\nimport { Output } from \"@angular/core\"\r\nimport { ChangeDetectionStrategy, HostBinding, ViewEncapsulation } from \"@angular/core\"\r\nimport { Inject } from \"@angular/core\"\r\nimport { DIALOG_DATA } from \"./IDialog\"\r\n\r\n@Component({\r\n  selector: 'youi-dialog',\r\n  template: '',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DialogBase {\r\n  overlayRef: OverlayRef\r\n  visible: boolean = false\r\n  \r\n  @Output() closeEmitter: EventEmitter<any> = new EventEmitter<any>(true)\r\n\r\n  constructor(@Inject(DIALOG_DATA) public dialogData: any) { }\r\n\r\n  @HostBinding('class') get bindContainerCSS () {\r\n    return `youi-dialog-container`\r\n  }\r\n\r\n  public handleClose (data?: any) {\r\n    this.closeEmitter.emit(data)\r\n    this.overlayRef.detach()\r\n  }\r\n}","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Inject, Input, OnInit, Output, TemplateRef, ViewEncapsulation } from '@angular/core';\r\nimport { DialogBase } from '../dialog.base';\r\nimport { DIALOG_DATA, IDialogStyle, IDialogTemplate } from '../IDialog';\r\n\r\n@Component({\r\n  selector: 'youi-basic-dialog',\r\n  templateUrl: './basic-dialog.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BasicDialogComponent extends DialogBase implements OnInit {\r\n  @Input() title: string\r\n  @Input() body: string\r\n  @Input() ok = {\r\n    label: 'OK',\r\n    cssClass: ''\r\n  }\r\n\r\n  @Input() styles: IDialogStyle = {\r\n    containerCSSClass: '',\r\n    titleCSSClass: '',\r\n    bodyCSSClass: '',\r\n    actionsCSSClass: '',\r\n    actionsBtnCSSClass: ''\r\n  }\r\n\r\n  @Input() templates: IDialogTemplate\r\n\r\n  constructor(@Inject(DIALOG_DATA) public dialogData: any) { \r\n    super(dialogData)\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  @HostBinding('class') override get bindContainerCSS () {\r\n    return `youi-dialog-container ${this.styles?.containerCSSClass}`\r\n  }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n  <div class=\"youi-dialog-title\" [ngClass]=\"styles?.titleCSSClass ?? ''\">\r\n    <ng-container *ngIf=\"!templates?.titleTemplate\">\r\n      {{title}}\r\n    </ng-container>\r\n\r\n    <ng-container *ngTemplateOutlet=\"templates?.titleTemplate; context: { $implicit: this }\"></ng-container>\r\n  </div>\r\n  <div class=\"youi-dialog-body\" [ngClass]=\"styles?.bodyCSSClass ?? ''\">\r\n    <ng-container *ngIf=\"!templates?.bodyTemplate\">\r\n      {{body}}\r\n    </ng-container>\r\n    <ng-container *ngTemplateOutlet=\"templates?.bodyTemplate; context: { $implicit: this }\"></ng-container>\r\n  </div>\r\n  <div class=\"youi-dialog-actions\" [ngClass]=\"styles?.actionsCSSClass ?? ''\">\r\n    <ng-container *ngIf=\"!templates?.actionsTemplate\">\r\n      <button class=\"youi-dialog-actions__btn\" [ngClass]=\"[styles?.actionsBtnCSSClass ?? '', ok?.cssClass ?? '']\" (click)=\"handleClose()\">{{ok.label}}</button>\r\n    </ng-container>\r\n\r\n    <ng-container *ngTemplateOutlet=\"templates?.actionsTemplate; context: { $implicit: this }\"></ng-container>\r\n  </div>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { BasicDialogComponent } from '../basic-dialog/basic-dialog.component';\r\nimport { DIALOG_DATA } from '../IDialog';\r\n\r\n@Component({\r\n  selector: 'youi-confirm-dialog',\r\n  templateUrl: './confirm-dialog.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ConfirmDialogComponent extends BasicDialogComponent {\r\n  @Input() close = {\r\n    label: 'CLOSE',\r\n    cssClass: ''\r\n  }\r\n\r\n  constructor(@Inject(DIALOG_DATA) public dialogData: any) {\r\n    super(dialogData)\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n  <div class=\"youi-dialog-title youi-dialog-title-confirm\" [ngClass]=\"styles?.titleCSSClass ?? ''\">{{title}}</div>\r\n  <div class=\"youi-dialog-body\" [ngClass]=\"styles?.bodyCSSClass ?? ''\">{{body}}</div>\r\n  <div class=\"youi-dialog-actions\" [ngClass]=\"styles?.actionsCSSClass ?? ''\">\r\n    <button class=\"youi-dialog-actions__btn youi-dialog-actions__btn-confirm\" [ngClass]=\"[styles?.actionsBtnCSSClass ?? '', ok?.cssClass ?? '']\" (click)=\"handleClose(true)\">{{ok.label}}</button>\r\n    <button class=\"youi-dialog-actions__btn\" [ngClass]=\"[styles?.actionsBtnCSSClass ?? '', close?.cssClass ?? '']\" (click)=\"handleClose(false)\">{{close.label}}</button>\r\n  </div>\r\n</ng-container>","import { ComponentType, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { ComponentRef, Injectable, Injector } from '@angular/core';\r\nimport { BasicDialogComponent } from './basic-dialog/basic-dialog.component';\r\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\r\nimport { DialogBase } from './dialog.base';\r\nimport { DIALOG_DATA, IDialogBackdropConfig, IBasicDialogProp, IConfirmDialogProp } from './IDialog';\r\n\r\n@Injectable()\r\nexport class DialogService {\r\n  constructor(private overlay: Overlay, private injector: Injector) { }\r\n\r\n  public basic (prop: IBasicDialogProp, data?: any, backdropConfig?: IDialogBackdropConfig ) {\r\n    const ok = {\r\n      label: prop.ok?.label ?? 'OK',\r\n      cssClass: prop.ok?.cssClass ?? ''\r\n    }\r\n    \r\n    return this.open(BasicDialogComponent, {\r\n      title: prop.title,\r\n      body: prop.body,\r\n      ok,\r\n      templates: prop.templates,\r\n      styles: prop.styles\r\n    }, data, backdropConfig)\r\n  }\r\n\r\n  public info (prop: IBasicDialogProp, data?: any, backdropConfig?: IDialogBackdropConfig ) {\r\n    return this.basic({\r\n      title: prop.title,\r\n      body: prop.body,\r\n      ok: prop.ok,\r\n      styles: {\r\n        titleCSSClass: 'youi-youi-dialog-title_info',\r\n        actionsBtnCSSClass: 'youi-dialog-actions__btn_info'\r\n      }\r\n    }, data, backdropConfig)\r\n  }\r\n\r\n  public success (prop: IBasicDialogProp, data?: any, backdropConfig?: IDialogBackdropConfig ) {\r\n    return this.basic({\r\n      title: prop.title,\r\n      body: prop.body,\r\n      ok: prop.ok,\r\n      styles: {\r\n        titleCSSClass: 'youi-youi-dialog-title_info',\r\n        actionsBtnCSSClass: 'youi-dialog-actions__btn_info'\r\n      }\r\n    }, data, backdropConfig)\r\n  }\r\n\r\n  public alert (prop: IBasicDialogProp, data?: any, backdropConfig?: IDialogBackdropConfig ) {\r\n    return this.basic({\r\n      title: prop.title,\r\n      body: prop.body,\r\n      ok: prop.ok,\r\n      styles: {\r\n        titleCSSClass: 'youi-dialog-title_alert',\r\n        actionsBtnCSSClass: 'youi-dialog-actions__btn_alert'\r\n      }\r\n    }, data, backdropConfig)\r\n  }\r\n\r\n  public warning (prop: IBasicDialogProp, data?: any, backdropConfig?: IDialogBackdropConfig ) {\r\n    return this.basic({\r\n      title: prop.title,\r\n      body: prop.body,\r\n      ok: prop.ok,\r\n      styles: {\r\n        titleCSSClass: 'youi-dialog-title_warning',\r\n        actionsBtnCSSClass: 'youi-dialog-actions__btn_warning'\r\n      }\r\n    }, data, backdropConfig)\r\n  }\r\n\r\n  public confirm (prop: IConfirmDialogProp, data?: any, backdropConfig?: IDialogBackdropConfig ) {\r\n    const ok = {\r\n      label: prop.ok?.label ?? 'OK',\r\n      cssClass: prop.ok?.cssClass\r\n    }\r\n    const close = {\r\n      label: prop.close?.label ?? 'CLOSE',\r\n      cssClass: prop.close?.cssClass\r\n    }\r\n\r\n    return this.open(ConfirmDialogComponent, {\r\n      title: prop.title,\r\n      body: prop.body,\r\n      ok,\r\n      close,\r\n      styles: prop.styles\r\n    }, data, backdropConfig)\r\n  }\r\n\r\n  public open<T extends DialogBase>(component: ComponentType<T>, prop?: { [key: string]: any }, data?: any, backdropConfig?: IDialogBackdropConfig ) {  \r\n    backdropConfig = {\r\n      hasBackdrop: backdropConfig?.hasBackdrop ?? true,\r\n      backdropCSSClass: backdropConfig?.backdropCSSClass ?? '',\r\n      closeAfterClick: backdropConfig?.closeAfterClick ?? true\r\n    }\r\n\r\n    if (!backdropConfig.closeAfterClick) {\r\n      backdropConfig.backdropCSSClass += ' youi-dialog-backdrop--block'\r\n    }\r\n    \r\n    const overlayRef = this.createOverlay(backdropConfig.hasBackdrop, backdropConfig.backdropCSSClass);\r\n    const dialogComponent = this.attachDialogContainer<T>(component, overlayRef, data);\r\n    if (prop) {\r\n      for (let key in prop) {\r\n        (dialogComponent as any)[key] = prop[key]\r\n      }\r\n    }\r\n\r\n    if (backdropConfig.hasBackdrop && backdropConfig.closeAfterClick) {\r\n      overlayRef.backdropClick().subscribe(event => {\r\n        dialogComponent.handleClose()\r\n      })\r\n    }\r\n\r\n    dialogComponent.visible = true\r\n    return dialogComponent\r\n  }\r\n\r\n  private attachDialogContainer<T extends DialogBase>(component: ComponentType<T>, overlayRef: OverlayRef, passData?: any) {\r\n    const dataInjector = this.injectData(passData, this.injector)\r\n    const containerPortal = new ComponentPortal(component, null, dataInjector);\r\n    const containerRef: ComponentRef<T> = overlayRef.attach(containerPortal);\r\n    containerRef.instance.overlayRef = overlayRef\r\n    return containerRef.instance;\r\n  }\r\n\r\n  private createOverlay(hasBackdrop: boolean, backdropClass: string) {\r\n    const positionStrategy = this.overlay.position()\r\n      .global()\r\n      .centerHorizontally()\r\n      .centerVertically();\r\n\r\n    const overlayConfig = new OverlayConfig({\r\n      hasBackdrop: hasBackdrop,\r\n      backdropClass: ['youi-dialog-backdrop', ...backdropClass.split(' ')],\r\n      panelClass: '',\r\n      scrollStrategy: this.overlay.scrollStrategies.block(),\r\n      positionStrategy\r\n    });\r\n\r\n    return this.overlay.create(overlayConfig);\r\n  }\r\n\r\n  private injectData (data: any, injector: Injector) {\r\n    return Injector.create({\r\n      parent: injector,\r\n      providers: [\r\n        { provide: DIALOG_DATA, useValue: data ?? null }\r\n      ]\r\n    });\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogService } from './dialog.service';\r\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\r\nimport { BasicDialogComponent } from './basic-dialog/basic-dialog.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    ConfirmDialogComponent,\r\n    BasicDialogComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [ConfirmDialogComponent, BasicDialogComponent],\r\n  providers: [DialogService]\r\n})\r\nexport class DialogModule { }\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Input, OnInit, Optional, SkipSelf, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DropdownDirective } from './dropdown.directive';\r\n\r\n@Component({\r\n  selector: 'youi-dropdown-menu',\r\n  templateUrl: './dropdown.component.html',\r\n  exportAs: 'youiDropdownMenu',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DropdownComponent {\r\n  @Input() dropdownCSSClass: string = ''\r\n  triggerSource: DropdownDirective\r\n\r\n  @ViewChild(TemplateRef, { static: false }) templateRef: TemplateRef<any>\r\n\r\n  constructor(@SkipSelf() @Optional() public parentDropdown: DropdownComponent) { }\r\n}\r\n","<ng-template>\r\n  <div\r\n    class=\"youi-dropdown-container\"\r\n    [ngClass]=\"[dropdownCSSClass]\"\r\n  >\r\n    <ng-content></ng-content>\r\n  </div>\r\n</ng-template>\r\n","import { ConnectedPosition, Overlay, OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport { AfterViewInit, Directive, ElementRef, HostListener, Input, OnDestroy, ViewContainerRef } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { DropdownComponent } from \"./dropdown.component\";\r\n\r\n@Directive({\r\n  selector: '[youi-dropdown-trigger]'\r\n})\r\n\r\nexport class DropdownDirective implements AfterViewInit, OnDestroy {\r\n  @Input() targetDropdown: DropdownComponent\r\n  @Input() trigger: 'leftClick' = 'leftClick'\r\n  @Input() position: 'leftBottom' | 'rightBottom' | 'leftTop' | 'rightTop' | 'right' | 'end' = 'leftBottom'\r\n  @Input() contextMode: boolean = false\r\n  \r\n  isVisible$ = new BehaviorSubject<boolean>(false)\r\n  private currentEvent: MouseEvent\r\n  private overlayRef: OverlayRef\r\n\r\n  constructor(private overlay: Overlay\r\n            , private viewContainerRef: ViewContainerRef\r\n            , private elementRef: ElementRef) {\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.subscribeIsVisible()\r\n  }\r\n  \r\n  subscribeIsVisible () {\r\n    this.isVisible$.subscribe((visible) => {\r\n      if (!visible) {\r\n        if (this.overlayRef) {\r\n          this.overlayRef.detach()\r\n          this.overlayRef.dispose()\r\n        }\r\n\r\n        return\r\n      }\r\n\r\n      this.overlayRef = this.createOverlayRef()\r\n\r\n      this.overlayRef.attach(new TemplatePortal(this.targetDropdown.templateRef, this.viewContainerRef))\r\n      this.targetDropdown.triggerSource = this\r\n    })\r\n  }\r\n\r\n  private createOverlayRef () {\r\n    const positionStrategy = this.createPositionStrategy()\r\n\r\n    const overlayRef = this.overlay.create({\r\n      positionStrategy: positionStrategy,\r\n      scrollStrategy: this.overlay.scrollStrategies.close()\r\n    })\r\n\r\n    // 按下外面的元素之後，關掉 Dropdown\r\n    overlayRef.outsidePointerEvents().subscribe((event) => {\r\n      if (this.elementRef.nativeElement.contains(event.target)) {\r\n        return\r\n      }\r\n      this.isVisible$.next(false)\r\n    })\r\n\r\n    return overlayRef\r\n  }\r\n\r\n  private createPositionStrategy () {\r\n    let connectedPositionEl: HTMLElement | { x: number, y: number }\r\n\r\n    if (this.contextMode) {\r\n      const { x, y } = this.currentEvent\r\n      connectedPositionEl = {\r\n        x,\r\n        y\r\n      }\r\n    } else {\r\n      connectedPositionEl = this.elementRef.nativeElement\r\n    }\r\n    \r\n    const connectedPosition: { [key: string]: ConnectedPosition } = {\r\n      leftBottom: {\r\n        originX: 'start',\r\n        originY: 'bottom',\r\n        overlayX: 'start',\r\n        overlayY: 'top'\r\n      },\r\n      rightBottom: {\r\n        originX: 'end',\r\n        originY: 'bottom',\r\n        overlayX: 'end',\r\n        overlayY: 'top'\r\n      },\r\n      leftTop: {\r\n        originX: 'start',\r\n        originY: 'top',\r\n        overlayX: 'start',\r\n        overlayY: 'bottom'\r\n      },\r\n      rightTop: {\r\n        originX: 'end',\r\n        originY: 'top',\r\n        overlayX: 'end',\r\n        overlayY: 'bottom'\r\n      },\r\n      right: {\r\n        originX: 'end',\r\n        originY: 'top',\r\n        overlayX: 'start',\r\n        overlayY: 'top'\r\n      },\r\n      left: {\r\n        originX: 'start',\r\n        originY: 'top',\r\n        overlayX: 'end',\r\n        overlayY: 'top'\r\n      }\r\n    }\r\n\r\n    const positionStrategy = this.overlay.position()\r\n                                          .flexibleConnectedTo(connectedPositionEl)\r\n                                          .withPositions([\r\n                                            connectedPosition[this.position]\r\n                                          ])\r\n\r\n    return positionStrategy\r\n  }\r\n\r\n  @HostListener('window:resize')\r\n  public onResize(): void {\r\n    this.isVisible$.next(false)\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  onClick(event: MouseEvent) {\r\n    // context menu 按下左鍵無須開啟\r\n    if (this.contextMode && !this.isVisible$.getValue()) {\r\n      return\r\n    }\r\n\r\n    // 已存在' overlayRef 但已經被移除，將 isVisible 修正為 false\r\n    if (this.overlayRef && !this.overlayRef.hasAttached()) {\r\n      this.isVisible$.next(false)\r\n    }\r\n\r\n    this.currentEvent = event\r\n    this.isVisible$.next(!this.isVisible$.getValue())\r\n  }\r\n\r\n  @HostListener('contextmenu', ['$event'])\r\n  onContextMenu(event: MouseEvent) {\r\n    if (!this.contextMode) {\r\n      return\r\n    }\r\n    event.preventDefault()\r\n    this.currentEvent = event\r\n\r\n    this.isVisible$.next(false)\r\n    this.isVisible$.next(true)\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.isVisible$.unsubscribe()\r\n  }\r\n}","import { Directive, ElementRef, Host, HostBinding, HostListener, OnInit, Optional, Renderer2, SkipSelf } from \"@angular/core\";\r\nimport { DropdownComponent } from \"./dropdown.component\";\r\n\r\n@Directive({\r\n  selector: '[youi-dropdown-item]'\r\n})\r\n\r\nexport class DropdownItemDirective implements OnInit {\r\n  constructor(private dropDown: DropdownComponent) {\r\n    \r\n  }\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  @HostListener('click') \r\n  onClick () {\r\n    this.dropDown.triggerSource.isVisible$.next(false)\r\n\r\n    let parent = this.dropDown.parentDropdown\r\n    while (parent) {\r\n      parent.triggerSource.isVisible$.next(false)\r\n      parent = parent.parentDropdown\r\n    }\r\n  }\r\n}","import { NgModule } from \"@angular/core\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { DropdownComponent } from \"./dropdown.component\";\r\nimport { DropdownDirective } from \"./dropdown.directive\";\r\nimport { DropdownItemDirective } from \"./dropdown-item.directive\";\r\n\r\n@NgModule({\r\n  declarations: [DropdownComponent, DropdownDirective, DropdownItemDirective],\r\n  imports: [CommonModule, OverlayModule],\r\n  exports: [DropdownComponent, DropdownDirective, DropdownItemDirective]\r\n})\r\n\r\nexport class DropdownModule {}","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, OnInit, Output, TemplateRef, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'youi-expansion-menu-item',\r\n  templateUrl: './expansion-menu-item.component.html',\r\n  animations: [\r\n    trigger('contentExpansion', [\r\n      state('expanded', style({height: '*', visibility: 'visible'})),\r\n      state('collapsed', style({height: '0px', visibility: 'hidden'})),\r\n      transition('expanded <=> collapsed',\r\n        animate('200ms cubic-bezier(.37,1.04,.68,.98)')),\r\n    ])\r\n  ],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class ExpansionMenuItemComponent implements OnInit, AfterContentInit {\r\n  @Input() preIconName: string | undefined\r\n  @Input() lastIconName: string | undefined\r\n  @Input() lastOpenIconName: string | undefined\r\n  @Input() titleLabel:string\r\n\r\n  @Input() insetUnitPx: number = 24\r\n  @Input() headerInsetLevel: number = 0\r\n  @Input() contentInsetLevel: number = 0\r\n\r\n  _collapsed: boolean = false\r\n  @Input() set collapsed (value: boolean) {\r\n    this._collapsed = value\r\n    this.collapsedChange.emit(value)\r\n  }\r\n  get collapsed () {\r\n    if (this.disabled) {\r\n      return true\r\n    }\r\n\r\n    return this._collapsed\r\n  }\r\n\r\n  @Output() collapsedChange = new EventEmitter<boolean>(true)\r\n\r\n  @Input() disabled: boolean = false\r\n  @Input() isActive: boolean = false\r\n\r\n  @ContentChild ('prepend', {static: false}) prepend: TemplateRef<any>\r\n  @ContentChild ('title', {static: false}) title: TemplateRef<any>\r\n  @ContentChild ('append', {static: false}) append: TemplateRef<any>\r\n\r\n  @Input() headerCSSClass: string = ''\r\n  @Input() headerActiveCSSClass: string = ''\r\n  @Input() contentCSSClass: string = ''\r\n\r\n  constructor() { }\r\n  ngAfterContentInit(): void {\r\n  }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  public toggleCollapsed () {\r\n    if (this.disabled) {\r\n      return\r\n    }\r\n\r\n    this.collapsed = !this.collapsed\r\n  }\r\n\r\n  public get headerEventCSS () {\r\n    return [\r\n      this.headerCSSClass,\r\n      this.isActive ? this.headerActiveCSSClass : ''\r\n    ]\r\n  }\r\n\r\n  public get headerInsetStyle () {\r\n    if (!this.headerInsetLevel) {\r\n      return null\r\n    }\r\n\r\n    let paddingLeft = this.insetUnitPx * this.headerInsetLevel\r\n\r\n    return {\r\n      'padding-left': `${paddingLeft}px` \r\n    }\r\n  }\r\n\r\n  public get contentInsetStyle () {\r\n    if (!this.contentInsetLevel) {\r\n      return null\r\n    }\r\n\r\n    let paddingLeft = this.insetUnitPx * this.contentInsetLevel\r\n\r\n    return {\r\n      'padding-left': `${paddingLeft}px`\r\n    }\r\n  }\r\n}\r\n","<div class=\"youi-expansion-menu-item\">\r\n  <button\r\n    class=\"youi-expansion-menu-item__header\"\r\n    (click)=\"toggleCollapsed()\"\r\n    [ngClass]=\"headerEventCSS\"\r\n    [attr.disabled]=\"disabled ? true : null\"\r\n  >\r\n    <div class=\"youi-expansion-menu-item__header__left\" [ngStyle]=\"headerInsetStyle\">\r\n      <div class=\"youi-expansion-menu-item__header__left-prepend\" *ngIf=\"preIconName || prepend\">\r\n        <span *ngIf=\"preIconName && !prepend\" class=\"youi-expansion-menu-item__header__left-icon material-icons\">{{preIconName}}</span>\r\n        <ng-container *ngTemplateOutlet=\"prepend\"></ng-container>\r\n      </div>\r\n      <div class=\"youi-expansion-menu-item__header__left-title\" *ngIf=\"titleLabel && !title\">{{titleLabel}}</div>\r\n      <ng-container *ngTemplateOutlet=\"title\"></ng-container>\r\n    </div>\r\n    <div class=\"youi-expansion-menu-item__header__right\">\r\n      <span *ngIf=\"lastIconName && !append\" class=\"youi-expansion-menu-item__header__right-icon material-icons\">{{ collapsed ? lastIconName : lastOpenIconName || lastIconName }}</span>\r\n      <span *ngIf=\"!lastIconName && !append\" class=\"youi-expansion-menu-item__header__right-icon material-icons\" [class.youi-expansion-menu-item__header__right-icon--open]=\"!collapsed\">expand_more</span>\r\n      <ng-container *ngTemplateOutlet=\"append\"></ng-container>\r\n    </div>\r\n  </button>\r\n  <div\r\n    class=\"youi-expansion-menu-item__content\"\r\n    [@contentExpansion]=\"collapsed ? 'collapsed' : 'expanded'\"\r\n  >\r\n    <div class=\"youi-expansion-menu-item__content__inner\" [ngClass]=\"contentCSSClass\" [ngStyle]=\"contentInsetStyle\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ExpansionMenuItemComponent } from \"./expansion-menu-item.component\";\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [ExpansionMenuItemComponent],\r\n  exports: [ExpansionMenuItemComponent]\r\n})\r\n\r\nexport class ExpansionMenuItemModule {}","import { ElementRef } from '@angular/core';\r\nimport { AfterViewInit } from '@angular/core';\r\nimport { ViewChild } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, ContentChild, HostBinding, HostListener, Input, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'youi-menu-item',\r\n  templateUrl: './menu-item.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MenuItemComponent implements AfterViewInit {\r\n  @Input() preIconName: string | undefined\r\n  @Input() lastIconName: string | undefined\r\n  @Input() titleLabel:string\r\n  \r\n  @Input() insetLevel: number = 0\r\n  @Input() insetUnitPx: number = 24\r\n\r\n  @Input() disabled: boolean = false\r\n  @Input() isActive: boolean = false\r\n\r\n  @ViewChild('titleEl', { static: false }) titleEl: ElementRef<any>\r\n  @ContentChild ('prepend', {static: false}) prepend: TemplateRef<any>\r\n  @ContentChild ('append', {static: false}) append: TemplateRef<any>\r\n\r\n  @Input() cssClass: string = ''\r\n  @Input() activeCSSClass: string = ''\r\n\r\n  constructor() { }\r\n\r\n  ngAfterViewInit(): void {\r\n  }\r\n\r\n  public get eventCSS () {\r\n    return [\r\n      this.cssClass,\r\n      this.isActive ? this.activeCSSClass : ''\r\n    ]\r\n  }\r\n\r\n  public get insetStyle () {\r\n    if (!this.insetLevel) {\r\n      return null\r\n    }\r\n\r\n    let paddingLeft = this.insetUnitPx * this.insetLevel\r\n\r\n    return {\r\n      'padding-left': `${paddingLeft}px` \r\n    }\r\n  }\r\n\r\n  /**\r\n   * 避免因冒泡事件，導致 Disable 的時候觸發 RouterLink\r\n   * @param event \r\n   */\r\n  disabledRouterLink (event: MouseEvent) {\r\n    if (this.disabled) {\r\n      event.preventDefault()\r\n      event.stopPropagation()\r\n    }\r\n  }\r\n}\r\n","<button\r\n  class=\"youi-menu-item\"\r\n  [attr.disabled]=\"disabled ? true : null\"\r\n  [ngClass]=\"eventCSS\"\r\n>\r\n  <div class=\"youi-menu-item__left\" [ngStyle]=\"insetStyle\" (click)=\"disabledRouterLink($event)\">\r\n    <div class=\"youi-menu-item__left-prepend\" *ngIf=\"preIconName || prepend\">\r\n      <span *ngIf=\"preIconName && !prepend\" class=\"youi-menu-item__left-icon material-icons\">{{ preIconName }}</span>\r\n      <ng-container *ngTemplateOutlet=\"prepend\"></ng-container>\r\n    </div>\r\n    <div class=\"youi-menu-item__left-title\" *ngIf=\"titleLabel && titleEl?.children.length <= 0\">\r\n      {{ titleLabel }}\r\n    </div>\r\n    <div #titleEl>\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n  <div class=\"menu-item__right\" (click)=\"disabledRouterLink($event)\">\r\n    <span *ngIf=\"lastIconName && !append\" class=\"menu-item__right-icon material-icons\">{{ lastIconName }}</span>\r\n    <ng-container *ngTemplateOutlet=\"append\"></ng-container>\r\n  </div>\r\n</button>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MenuItemComponent } from \"./menu-item.component\";\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [MenuItemComponent],\r\n  exports: [MenuItemComponent]\r\n})\r\n\r\nexport class MenuItemModule {}","import { InjectionToken, TemplateRef } from \"@angular/core\";\r\n\r\nexport interface INotificationBaseProp {\r\n  title?: string,\r\n  content?: string,\r\n  icon?: string,\r\n  timeout?: number,\r\n  templates?: INotificationTemplate,\r\n  styles?: INotificationStyleOption\r\n}\r\n\r\nexport interface INotificationStyleOption {\r\n  wrapperClass?: string,\r\n  iconCSSClass?: string,\r\n  titleCSSClass?: string,\r\n  contentCSSClass?: string,\r\n  closeCSSClass?: string\r\n}\r\n\r\nexport interface INotificationTemplate {\r\n  iconTemplate?: TemplateRef<any>,\r\n  titleTemplate?: TemplateRef<any>,\r\n  contentTemplate?: TemplateRef<any>,\r\n  closeTemplate?: TemplateRef<any>\r\n}\r\n\r\nexport const NOTIFY_DATA = new InjectionToken('NOTIFY DATA');","export enum NotificationPositionEnum {\r\n  topLeft = 'topLeft',\r\n    topCenter = 'topCenter',\r\n    topRight = 'topRight',\r\n    bottomLeft = 'bottomLeft',\r\n    bottomCenter = 'bottomCenter',\r\n    bottomRight = 'bottomRight',\r\n}","import { OnInit } from \"@angular/core\";\r\nimport { ChangeDetectionStrategy, Component, ComponentRef, EventEmitter, HostBinding, Inject, OnDestroy, Output, ViewEncapsulation } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { NOTIFY_DATA } from \"./INotification\";\r\nimport { NotificationComponent } from \"./notification.component\";\r\nimport { NotificationPositionEnum } from \"./NotificationPositionEnum\";\r\n\r\n@Component({\r\n  selector: 'youi-notification',\r\n  template: '',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NotificationBase implements OnInit, OnDestroy{\r\n  destroy$ = new Subject();\r\n  timeout: number = 5000 // ms, 0 代表永遠開啟\r\n\r\n  @Output() closeEmitter = new EventEmitter<boolean>()\r\n\r\n  componentRef: ComponentRef<NotificationComponent>\r\n  position: NotificationPositionEnum\r\n\r\n  @HostBinding('@showHide') get showHide () {\r\n    if (this.position.includes('Left')) {\r\n      return 'fromLeft'\r\n    } else if (this.position.includes('Right')) {\r\n      return 'fromRight'\r\n    } else if (this.position === NotificationPositionEnum.topCenter) {\r\n      return 'fromTopCenter'\r\n    } else {\r\n      return 'fromBottomCenter'\r\n    }\r\n  }\r\n\r\n  constructor(@Inject(NOTIFY_DATA) public notificationData: any) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.timeout > 0) {\r\n      const timer = setTimeout(() => {\r\n        clearTimeout(timer)\r\n        this.close()\r\n      }, this.timeout)\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next(null)\r\n    this.destroy$.complete()\r\n  }\r\n\r\n  public close () {\r\n    this.closeEmitter.emit(true)\r\n  }\r\n}","import {\r\n  animate,\r\n  style,\r\n  transition,\r\n  trigger,\r\n} from '@angular/animations'\r\nimport { OnDestroy } from '@angular/core';\r\nimport { ChangeDetectionStrategy, Component, ComponentRef, EventEmitter, HostBinding, Inject, Input, OnInit, Output, TemplateRef, ViewEncapsulation } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { NOTIFY_DATA, INotificationStyleOption, INotificationTemplate } from './INotification';\r\nimport { NotificationBase } from './notification.base';\r\nimport { NotificationPositionEnum } from './NotificationPositionEnum';\r\n\r\n@Component({\r\n  selector: 'youi-notification',\r\n  templateUrl: './notification.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  animations: [\r\n    trigger('showHide', [\r\n      transition('void => fromLeft', [\r\n        style({ transform: 'translateX(-100%)' }),\r\n        animate('200ms ease',\r\n          style({ transform: 'translateX(0%)' }))\r\n      ]),\r\n      transition('fromLeft => void', [\r\n        style({ transform: 'translateX(0%)' }),\r\n        animate('200ms ease',\r\n          style({ transform: 'translateX(-100%)' }))\r\n      ]),\r\n\r\n      transition('void => fromRight', [\r\n        style({ transform: 'translateX(100%)' }),\r\n        animate('200ms ease',\r\n          style({ transform: 'translateX(0%)' }))\r\n      ]),\r\n      transition('fromRight => void', [\r\n        style({ transform: 'translateX(0%)' }),\r\n        animate('200ms ease',\r\n          style({ transform: 'translateX(100%)' }))\r\n      ]),\r\n\r\n      transition('void => fromTopCenter', [\r\n        style({ transform: 'translateY(-100%)' }),\r\n        animate('200ms ease',\r\n          style({ transform: 'translateY(0%)' }))\r\n      ]),\r\n      transition('fromTopCenter => void', [\r\n        style({ transform: 'translateY(0%)', opacity: 1 }),\r\n        animate('200ms ease',\r\n          style({ transform: 'translateY(-100%)', opacity: 0 }))\r\n      ]),\r\n\r\n      transition('void => fromBottomCenter', [\r\n        style({ transform: 'translateY(100%)' }),\r\n        animate('200ms ease',\r\n          style({ transform: 'translateY(0%)' }))\r\n      ]),\r\n      transition('fromBottomCenter => void', [\r\n        style({ transform: 'translateY(0%)', opacity: 1 }),\r\n        animate('200ms ease',\r\n          style({ transform: 'translateY(100%)', opacity: 0 }))\r\n      ])\r\n    ])\r\n  ],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class NotificationComponent extends NotificationBase {\r\n  icon: string = ''\r\n  title: string = ''\r\n  content: string = ''\r\n\r\n  styles: INotificationStyleOption = {\r\n    wrapperClass: '',\r\n    iconCSSClass: '',\r\n    titleCSSClass: '',\r\n    contentCSSClass: '',\r\n    closeCSSClass: ''\r\n  }\r\n\r\n  templates: INotificationTemplate = {\r\n    iconTemplate: null,\r\n    titleTemplate: null,\r\n    contentTemplate: null,\r\n    closeTemplate: null\r\n  }\r\n\r\n  constructor(@Inject(NOTIFY_DATA) public notificationData: any) {\r\n    super(notificationData)\r\n  }\r\n\r\n  get notifyWrapperCSS () {\r\n    return this.styles?.wrapperClass\r\n  }\r\n}\r\n","\r\n<div class=\"youi-notification\" [ngClass]=\"notifyWrapperCSS\">\r\n  <div *ngIf=\"templates?.iconTemplate\" [ngClass]=\"styles?.iconCSSClass\">\r\n    <ng-container *ngTemplateOutlet=\"templates?.iconTemplate\"></ng-container>\r\n  </div>\r\n\r\n  <span *ngIf=\"!templates?.iconTemplate\" class=\"youi-notification-icon material-icons\" [ngClass]=\"styles?.iconCSSClass\">{{ icon }}</span>\r\n  <div class=\"youi-notification-message\">\r\n    <div class=\"youi-notification-title\" [ngClass]=\"styles?.titleCSSClass\">\r\n      <ng-container *ngIf=\"!templates?.titleTemplate && title\" >{{ title }}</ng-container>\r\n      <ng-container *ngTemplateOutlet=\"templates?.titleTemplate\"></ng-container>\r\n    </div>\r\n    \r\n    <div class=\"notification_content\" [ngClass]=\"styles?.contentCSSClass\">\r\n      <ng-container *ngIf=\"!templates?.contentTemplate && content\" >{{ content }}</ng-container>\r\n      <ng-container *ngTemplateOutlet=\"templates?.contentTemplate\"></ng-container>\r\n    </div>\r\n  </div>\r\n  <div *ngIf=\"templates?.closeTemplate\" [ngClass]=\"styles?.closeCSSClass\">\r\n    <ng-container *ngTemplateOutlet=\"templates?.closeTemplate; context: { $implicit: this }\"></ng-container>\r\n  </div>\r\n  \r\n  <div [ngClass]=\"styles?.closeCSSClass\" *ngIf=\"!templates?.closeTemplate\" class=\"youi-notification-close material-icons\" (click)=\"close()\">close</div>\r\n</div>","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { ABSTRACT_INJECT } from '../../../model/inject.token';\r\nimport type { NotificationService } from '../notification.service';\r\n\r\n@Component({\r\n  selector: 'youi-notification-container',\r\n  templateUrl: './notification-container.component.html',\r\n  styleUrls: ['./notification-container.component.scss']\r\n})\r\nexport class NotificationContainerComponent implements OnInit {\r\n  constructor(@Inject(ABSTRACT_INJECT) private notificationService: NotificationService) { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  public get notifications () {\r\n    return this.notificationService.notifications\r\n  }\r\n}\r\n","\r\n<div class=\"notification-container-topLeft\">\r\n</div>\r\n\r\n<div class=\"notification-container-topCenter\">\r\n</div>\r\n\r\n<div class=\"notification-container-topRight\">\r\n</div>\r\n\r\n<div class=\"notification-container-bottomLeft\">\r\n</div>\r\n\r\n<div class=\"notification-container-bottomCenter\">\r\n</div>\r\n\r\n<div class=\"notification-container-bottomRight\">\r\n</div>","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal, ComponentType, PortalInjector } from '@angular/cdk/portal';\r\nimport {\r\n  ApplicationRef,\r\n  ComponentFactoryResolver,\r\n  ComponentRef,\r\n  EmbeddedViewRef,\r\n  Injectable,\r\n  Injector,\r\n} from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NOTIFY_DATA, INotificationBaseProp, INotificationStyleOption, INotificationTemplate } from './INotification';\r\nimport { NotificationContainerComponent } from './notification-container/notification-container.component';\r\nimport { NotificationComponent } from './notification.component';\r\nimport { NotificationPositionEnum } from './NotificationPositionEnum';\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n  private containerOverlayRef: OverlayRef;\r\n\r\n  public notifications: { [key: string]: ComponentRef<any>[] } = {\r\n    topLeft: [],\r\n    topCenter: [],\r\n    topRight: [],\r\n    bottomLeft: [],\r\n    bottomCenter: [],\r\n    bottomRight: [],\r\n  };\r\n\r\n  constructor(\r\n    private overlay: Overlay,\r\n    private injector: Injector,\r\n    private componenFactoryResolver: ComponentFactoryResolver,\r\n    private applicationRef: ApplicationRef\r\n  ) {}\r\n  \r\n  public basic (position: NotificationPositionEnum, prop: INotificationBaseProp, data?: any) {\r\n    prop.icon = prop.icon ?? ''\r\n    prop.timeout = prop.timeout ?? 5000\r\n\r\n    return this.show(NotificationComponent, position, prop, data)\r\n  }\r\n\r\n  public success (position: NotificationPositionEnum, prop: INotificationBaseProp, data?: any) {\r\n    prop.icon = prop.icon ?? 'check'\r\n    prop.styles = prop.styles ?? {}\r\n    prop.styles.wrapperClass = 'youi-notification_success'\r\n\r\n    return this.basic(position, prop, data)\r\n  }\r\n\r\n  public warning (position: NotificationPositionEnum, prop: INotificationBaseProp, data?: any) {\r\n    prop.icon = prop.icon ?? 'warning'\r\n    prop.styles = prop.styles ?? {}\r\n    prop.styles.wrapperClass = 'youi-notification_warning'\r\n\r\n    return this.basic(position, prop, data)\r\n  }\r\n\r\n  public error (position: NotificationPositionEnum, prop: INotificationBaseProp, data?: any) {\r\n    prop.icon = prop.icon ?? 'error'\r\n    prop.styles = prop.styles ?? {}\r\n    prop.styles.wrapperClass = 'youi-notification_danger'\r\n\r\n    return this.basic(position, prop, data)\r\n  }\r\n\r\n  public info (position: NotificationPositionEnum, prop: INotificationBaseProp, data?: any) {\r\n    prop.icon = prop.icon ?? 'info'\r\n    prop.styles = prop.styles ?? {}\r\n    prop.styles.wrapperClass = 'youi-notification_info'\r\n\r\n    return this.basic(position, prop, data)\r\n  }\r\n\r\n  public show <T extends NotificationComponent>(\r\n    componentType: ComponentType<T>,\r\n    position: NotificationPositionEnum,\r\n    props?: { [key: string]: any },\r\n    data?: any\r\n  ) {\r\n    this.createContainer();\r\n    const componentRef = this.createNotification(componentType, position, props, data)\r\n    this.attachComponent(componentRef, position)\r\n\r\n    componentRef.instance.closeEmitter.pipe(\r\n      takeUntil(componentRef.instance.destroy$)\r\n    ).subscribe(() => {\r\n      this.removeNotification(componentRef)\r\n    })\r\n\r\n    return componentRef.instance\r\n  }\r\n\r\n  /**\r\n   * 建立 Notification 的 Container\r\n   */\r\n  private createContainer() {\r\n    if (this.containerOverlayRef) {\r\n      return;\r\n    }\r\n\r\n    this.containerOverlayRef = this.overlay.create({\r\n      hasBackdrop: false,\r\n      scrollStrategy: this.overlay.scrollStrategies.noop(),\r\n      positionStrategy: this.overlay.position().global(),\r\n    });\r\n\r\n    const componentPortal = new ComponentPortal(\r\n      NotificationContainerComponent,\r\n      null,\r\n      this.injector\r\n    )\r\n    this.containerOverlayRef.attach(componentPortal)\r\n  }\r\n  \r\n  /**\r\n   * 建立 Notification 元件\r\n   * @param componentType 元件的類型\r\n   * @param position 顯示位置\r\n   * @param props 資料屬性\r\n   * @param styleOptions CSS 樣式\r\n   * @returns \r\n   */\r\n  private createNotification <T extends NotificationComponent>(\r\n    componentType: ComponentType<T>,\r\n    position: NotificationPositionEnum,\r\n    props?: { [key: string]: any },\r\n    data?: any\r\n  ) {\r\n    if (this.notifications[position].length >= 7) {\r\n      this.removeNotification(this.notifications[position][0])\r\n    }\r\n\r\n    const dataInjector = this.injectData(data, this.injector)\r\n    const componentFactory = this.componenFactoryResolver.resolveComponentFactory(componentType)\r\n    const componentRef = componentFactory.create(dataInjector)\r\n\r\n    componentRef.instance.componentRef = componentRef\r\n    componentRef.instance.position = position\r\n\r\n    if (props) {\r\n      for (const propsKey in props) {\r\n        (componentRef.instance as any )[propsKey]= props[propsKey]\r\n      }\r\n    }\r\n\r\n    this.notifications[position].push(componentRef)\r\n\r\n    return componentRef\r\n  }\r\n\r\n  private attachComponent<T extends NotificationComponent> (componentRef: ComponentRef<T>, position: NotificationPositionEnum) {\r\n    this.applicationRef.attachView(componentRef.hostView);\r\n    \r\n    const componentEl = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0]\r\n    const adHost = document.querySelector(`.notification-container-${position}`)\r\n\r\n    if (position.includes('bottom')) {\r\n      adHost.append(componentEl)\r\n    } else {\r\n      adHost.prepend(componentEl)\r\n    }\r\n  }\r\n\r\n  private removeNotification (componentRef: ComponentRef<any>) {\r\n    this.applicationRef.detachView(componentRef.hostView)\r\n    componentRef.destroy()\r\n\r\n    const index = this.notifications[componentRef.instance.position].indexOf(componentRef)\r\n    if (index >= 0) {\r\n      this.notifications[componentRef.instance.position].splice(index, 1)\r\n    }\r\n  }\r\n\r\n  private injectData (data: any, injector: Injector) {\r\n    return Injector.create({\r\n      parent: injector,\r\n      providers: [\r\n        { provide: NOTIFY_DATA, useValue: data ?? null }\r\n      ]\r\n    });\r\n  }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { NotificationComponent } from \"./notification.component\";\r\nimport { NotificationContainerComponent } from './notification-container/notification-container.component';\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { NotificationService } from \"./notification.service\";\r\nimport { ABSTRACT_INJECT } from \"../../model/inject.token\";\r\n\r\n@NgModule({\r\n  declarations: [NotificationContainerComponent, NotificationComponent],\r\n  imports: [CommonModule, OverlayModule],\r\n  exports: [NotificationContainerComponent, NotificationComponent],\r\n  providers: [NotificationService, \r\n      {\r\n        provide: ABSTRACT_INJECT,\r\n        useExisting: NotificationService \r\n      }\r\n  ]\r\n})\r\n\r\nexport class NotificationModule {}","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { IPage } from './IPage';\r\n\r\n@Component({\r\n  selector: 'youi-pagination',\r\n  templateUrl: './pagination.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n  @ContentChild ('first', {static: false}) first: any\r\n  @ContentChild ('previous', {static: false}) previous: any\r\n\r\n  @ContentChild ('number', {static: false}) number: any\r\n  \r\n  @ContentChild ('next', {static: false}) next: any\r\n  @ContentChild ('last', {static: false}) last: any\r\n\r\n  @Input() buttonCSSClass: string = \"\"\r\n  @Input() arrowCSSClass: string = \"\"\r\n  @Input() numberCSSClass: string = \"\"\r\n  @Input() activeNumberCSSClass: string = \"\"\r\n  @Input() rowPerPageSelectCSSClass: string = \"\"\r\n\r\n  /**\r\n   * 目前頁數\r\n   */\r\n  @Input() currentPage: number = 1\r\n  @Output() currentPageChange = new EventEmitter<number>(true)\r\n\r\n  /**\r\n   * 一頁有幾筆，預設 0 代表不做分頁\r\n   */\r\n  private _rowPerPage = 10\r\n  @Input() set rowPerPage (value: number) {\r\n    this._rowPerPage = value\r\n    this.rowPerPageChange.emit(value)\r\n  }\r\n  \r\n  get rowPerPage () {\r\n    return this._rowPerPage  \r\n  }\r\n\r\n  @Output() rowPerPageChange = new EventEmitter<number>(true)\r\n  \r\n  /**\r\n   * 總筆數，用來計算總頁數\r\n   */\r\n  @Input() totalRowsCount: number = 0\r\n\r\n  /**\r\n   * 自訂義總頁數，強制覆蓋計算的頁數\r\n   * 預設小於 0，自動計算頁數\r\n   */\r\n  @Input() maxPages: number = -1\r\n  public get totalPages () {\r\n    if (this.maxPages >= 0) {\r\n      return this.maxPages\r\n    }\r\n\r\n    if (this.rowPerPage === 0) {\r\n      return 1\r\n    }\r\n    \r\n    return Math.ceil(this.totalRowsCount / this.rowPerPage)\r\n  }\r\n\r\n  /**\r\n   * 最多顯示幾頁，Boundary\r\n   */\r\n  private _maxDsiplayPages: number = 0\r\n  @Input() set maxDsiplayPages (value: number) {\r\n    if (value < 0) {\r\n      throw new Error('maxDsiplayPages must bigger equal than 1')\r\n    }\r\n    this._maxDsiplayPages = value\r\n  }\r\n  get maxDsiplayPages () {\r\n    return this._maxDsiplayPages\r\n  }\r\n\r\n  /**\r\n   * 每頁幾筆的下拉清單選項，0 代表全部\r\n   */\r\n  private _rowPerPageOptions: number[] = [10, 20, 30, 40, 0]\r\n  @Input() set rowPerPageOptions (options: number[]) {\r\n    this._rowPerPageOptions = options\r\n  }\r\n  get rowPerPageOptions () {\r\n    if (!this._rowPerPageOptions.includes(this.rowPerPage)) {\r\n      this._rowPerPageOptions.unshift(this.rowPerPage)\r\n    }\r\n\r\n    return this._rowPerPageOptions\r\n  }\r\n\r\n  /**\r\n   * 顯示第一頁與最後一夜按鈕 \r\n   * true: 顯示 icon button，頁碼不顯示頭尾\r\n   * false: 不顯示 icon button，頁碼顯示頭尾\r\n   */\r\n  @Input() showFirstLastIconButton: boolean = true\r\n\r\n  /**\r\n   * 是否顯示每頁幾筆\r\n   */\r\n  @Input() showRowPerPageSelect: boolean = false\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  public get previousPage () {\r\n    const previousPage = this.currentPage - 1\r\n    return previousPage >= 1  ? previousPage : null\r\n  }\r\n\r\n  public get nextPage () {\r\n    const nextPage = this.currentPage + 1\r\n    return nextPage <= this.totalPages  ? nextPage : null\r\n  }\r\n\r\n  public setCurrentPage(page: number) {\r\n    if (page < 1 && page > this.totalPages) {\r\n      return\r\n    }\r\n    this.currentPage = page\r\n    this.currentPageChange.emit(page)\r\n  }\r\n\r\n  /**\r\n   * 取得所有分頁\r\n   * 模式一: 全部顯示\r\n   * 模式二: 左邊全部顯示，右邊顯示 數字 + Boundary\r\n   * 模式三: 左邊顯示 數字 + Boundary，右邊全部顯示\r\n   * 模式四：左右皆為 Boundary + 數字\r\n   */\r\n  public get showPages (): IPage[] {\r\n    const pages: IPage[] = []\r\n\r\n    // 顯示全部的分頁\r\n    if (this.maxDsiplayPages === 0 || this.maxDsiplayPages >= this.totalPages) {\r\n      for (let page = 1; page <= this.totalPages; page++) {\r\n        pages.push({\r\n          label: `${page}`,\r\n          value: page\r\n        })\r\n      }\r\n      return pages\r\n    }\r\n    \r\n    const middleNumber = Math.floor(this.maxDsiplayPages / 2)\r\n    const leftRange = 1 + middleNumber + 1\r\n    const rightRange = this.totalPages - middleNumber - 1\r\n    let boundaryShowNumber = Math.floor((this.maxDsiplayPages - 1) / 2) - 1\r\n    if (boundaryShowNumber <= 0) {\r\n      boundaryShowNumber = 1\r\n    } else if (this.showFirstLastIconButton) {\r\n      boundaryShowNumber ++\r\n    }\r\n\r\n    if (this.currentPage < leftRange) { // 顯示全部的左半邊數字\r\n      for (let page = 1; page <= this.maxDsiplayPages; page++) {\r\n        pages.push({\r\n          label: `${page}`,\r\n          value: page\r\n        })\r\n      }\r\n      pages.push({\r\n        label: `...`,\r\n        value: this.maxDsiplayPages + 1\r\n      })\r\n    } else if (this.currentPage > rightRange) { // 顯示全部的右半邊數字\r\n      pages.push({\r\n        label: `...`,\r\n        value: this.totalPages - this.maxDsiplayPages\r\n      })\r\n      pages.push({\r\n        label: `${this.totalPages - this.maxDsiplayPages + 1}`,\r\n        value: this.totalPages - this.maxDsiplayPages + 1\r\n      })\r\n\r\n      for (let page = this.totalPages - this.maxDsiplayPages + 2; page <= this.totalPages; page++) {\r\n        pages.push({\r\n          label: `${page}`,\r\n          value: page\r\n        })\r\n      }\r\n    } else { // 左右顯示 boundary\r\n      // 第一頁\r\n      if (!this.showFirstLastIconButton || this.currentPage === 1) {\r\n        pages.push({\r\n          label: `${1}`,\r\n          value: 1\r\n        })\r\n      }\r\n      pages.push({\r\n        label: `...`,\r\n        value: this.currentPage - boundaryShowNumber - 1\r\n      })\r\n      \r\n      for (let page = this.currentPage - boundaryShowNumber; page <= this.currentPage + boundaryShowNumber; page++) {\r\n        pages.push({\r\n          label: `${page}`,\r\n          value: page\r\n        })\r\n      }\r\n\r\n      pages.push({\r\n        label: `...`,\r\n        value: this.currentPage + boundaryShowNumber + 1\r\n      })\r\n\r\n      // 最後一頁\r\n      if (!this.showFirstLastIconButton || this.currentPage === this.totalPages) {\r\n        pages.push({\r\n          label: `${this.totalPages}`,\r\n          value: this.totalPages\r\n        })\r\n      }\r\n    }\r\n\r\n    return pages\r\n  }\r\n\r\n  public rowPerPageSelectInput (event: Event) {\r\n    this.rowPerPage = Number.parseInt((<HTMLInputElement>event.target).value)\r\n  }\r\n\r\n  public dynamicNumberClass (page: number) {\r\n    return [\r\n      this.buttonCSSClass,\r\n      this.numberCSSClass,\r\n      this.currentPage === page ? this.activeNumberCSSClass : ''\r\n    ]\r\n  }\r\n}\r\n","<div class=\"youi-pagination-wrapper\">\r\n  <button\r\n    (click)=\"setCurrentPage(1)\"\r\n    class=\"youi-pagination-button youi-pagination-arrow\"\r\n    [ngClass]=\"[buttonCSSClass, arrowCSSClass]\"\r\n    [attr.disabled]=\"this.currentPage === 1 ? true : null\"\r\n    *ngIf=\"showFirstLastIconButton\"\r\n  >\r\n    <span class=\"material-icons\" *ngIf=\"!first\">first_page</span>\r\n    <ng-container *ngTemplateOutlet=\"first\"></ng-container>\r\n  </button>\r\n  \r\n  <button\r\n      (click)=\"setCurrentPage(previousPage)\"\r\n      class=\"youi-pagination-button youi-pagination-arrow\"\r\n      [ngClass]=\"[buttonCSSClass, arrowCSSClass]\"\r\n      [attr.disabled]=\"this.currentPage === 1 ? true : null\"\r\n  >\r\n    <span class=\"material-icons\" *ngIf=\"!previous\">chevron_left</span>\r\n    <ng-container  *ngTemplateOutlet=\"previous\"></ng-container>\r\n  </button>\r\n  \r\n  <div class=\"pagination__numbers\">\r\n    <button\r\n      class=\"youi-pagination-button youi-pagination-number\"\r\n      [class.youi-pagination-button--active]=\"page.value === currentPage\"\r\n      [ngClass]=\"dynamicNumberClass(page.value)\"\r\n      (click)=\"setCurrentPage(page.value)\"\r\n      *ngFor=\"let page of showPages\"\r\n    >\r\n      <ng-container *ngIf=\"!number\">\r\n        {{ page.label }}\r\n      </ng-container>\r\n\r\n      <ng-container\r\n        *ngTemplateOutlet=\"\r\n          number;\r\n          context: { $implicit: page, currentPage: currentPage }\r\n        \"\r\n      >\r\n      </ng-container>\r\n    </button>\r\n  </div>\r\n  \r\n  <button\r\n    (click)=\"setCurrentPage(nextPage)\"\r\n    class=\"youi-pagination-button youi-pagination-arrow\"\r\n    [ngClass]=\"[buttonCSSClass, arrowCSSClass]\"\r\n    [attr.disabled]=\"this.currentPage === this.totalPages ? true : null\"\r\n  >\r\n    <span class=\"material-icons\" *ngIf=\"!next\">chevron_right</span>\r\n    <ng-container *ngTemplateOutlet=\"next\"></ng-container>\r\n  </button>\r\n  \r\n  <button\r\n    (click)=\"setCurrentPage(this.totalPages)\"\r\n    class=\"youi-pagination-button youi-pagination-arrow\"\r\n    [ngClass]=\"[buttonCSSClass, arrowCSSClass]\"\r\n    (click)=\"setCurrentPage(totalPages)\"\r\n    [attr.disabled]=\"this.currentPage === this.totalPages ? true : null\"\r\n    *ngIf=\"showFirstLastIconButton\"\r\n  >\r\n    <span class=\"material-icons\" *ngIf=\"!last\">last_page</span>\r\n    <ng-container *ngTemplateOutlet=\"last\"></ng-container>\r\n  </button>\r\n</div>\r\n\r\n<select *ngIf=\"showRowPerPageSelect && rowPerPageOptions.length\" class=\"pagination-row-per-page-select\" [ngClass]=\"rowPerPageSelectCSSClass\"  name=\"\" id=\"\" (input)=\"rowPerPageSelectInput($event)\">\r\n  <ng-container *ngFor=\"let option of rowPerPageOptions\">\r\n    <option *ngIf=\"option === 0\"  label=\"All\" value=\"0\"></option>\r\n    <option *ngIf=\"option !== 0\"  [label]=\"option + ' / page'\" [value]=\"option\"></option>\r\n  </ng-container>\r\n</select>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { PaginationComponent } from \"./pagination.component\";\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [PaginationComponent],\r\n  exports: [PaginationComponent]\r\n})\r\n\r\nexport class PaginationModule {}","import { AfterViewInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Inject, InjectionToken, Injector, Input, OnInit, Optional, Output, QueryList, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { IOption } from '../IOption';\r\nimport { ABSTRACT_INJECT } from '../../../model/inject.token';\r\nimport type { SelectComponent } from '../select.component';\r\n\r\n@Component({\r\n  selector: 'youi-select-option',\r\n  templateUrl: './select-option.component.html',\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class SelectOptionComponent<T> implements AfterViewInit, IOption<T> {\r\n\r\n  @Input() label: string = ''\r\n  @Input() value: T\r\n\r\n  @Input() activeCSSClass = ''\r\n\r\n  @ViewChild('childrenEl', { static: false, read: ElementRef }) childrenEl: ElementRef<any>\r\n\r\n  @HostBinding('class') get optionCSS () {\r\n    const activeClass = this.selectComponent.value === this.value ? 'select-option--active ' + `${this.selectComponent.optionActiveCSSClass} ${this.activeCSSClass}` : ''\r\n    return [this.selectComponent.optionCSSClass, activeClass].join(' ')\r\n  }\r\n\r\n  constructor(@Inject(ABSTRACT_INJECT) private selectComponent: SelectComponent) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.childrenEl.nativeElement.childNodes.length > 0) {\r\n      this.label = this.childrenEl.nativeElement.innerHTML\r\n    }\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  onClick(event: MouseEvent) {\r\n    this.selectComponent.selectOptionValue(this.value)\r\n  }\r\n}\r\n","<ng-container *ngIf=\"childrenEl?.childNodes.length <= 0\">\r\n  {{ label }}\r\n</ng-container>\r\n\r\n<div #childrenEl>\r\n  <ng-content></ng-content>\r\n</div>","import { AfterViewInit, ChangeDetectionStrategy, Component, ContentChildren, ElementRef, forwardRef, HostBinding, HostListener, InjectionToken, Injector, Input, OnInit, QueryList, Self, ViewEncapsulation } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { IOption } from './IOption';\r\nimport { ABSTRACT_INJECT } from '../../model/inject.token';\r\nimport { SelectOptionComponent } from './select-option/select-option.component';\r\nimport { ChangeDetectorRef } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'youi-select',\r\n  templateUrl: './select.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      multi: true,\r\n      useExisting: forwardRef(() => SelectComponent)\r\n    },\r\n    {\r\n      provide: ABSTRACT_INJECT,\r\n      useExisting: SelectComponent \r\n    }\r\n  ],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SelectComponent implements AfterViewInit, ControlValueAccessor {\r\n  private _options: IOption<any>[] = []\r\n\r\n  @Input() set options (value: IOption<any>[]) {\r\n    this._options = value\r\n  }\r\n  get options () {\r\n    return this._options\r\n  }\r\n  selectedOption: IOption<any>\r\n\r\n  value: any\r\n  onChange: any = (value: any) => {}\r\n  onTouched: any = () => {}\r\n  touched = false\r\n  disabled = false\r\n\r\n  isOpenOption: boolean = false\r\n  @ContentChildren(SelectOptionComponent) optionsComponents: QueryList<SelectOptionComponent<any>>\r\n\r\n  @HostListener('document:click', ['$event.target'])\r\n  public onClick(targetElement: HTMLElement) {\r\n    const clickedInside = this.elmentRef.nativeElement.contains(targetElement);\r\n    if (!clickedInside) {\r\n      this.isOpenOption = false\r\n    }\r\n  }\r\n\r\n  @Input() set disableControl( condition : boolean ) {\r\n    this.setDisabledState(condition)\r\n  }\r\n\r\n  @Input() bodyCSSClass = ''\r\n  @Input() bodyDisableCSSClass = ''\r\n  @Input() optionsMenuCSSClass = ''\r\n  @Input() optionCSSClass = ''\r\n  @Input() optionActiveCSSClass = ''\r\n\r\n  get dynamicBodyCSSClass () {\r\n    const bodyCSSClass = !this.disabled ? this.bodyCSSClass : ''\r\n    const disabledCSSClass = this.disabled ? 'youi-select-body-wrapper--disabled ' + this.bodyDisableCSSClass : ''\r\n    return [bodyCSSClass, disabledCSSClass]\r\n  }\r\n\r\n  get attrTabindex () {\r\n    if (!this.disabled) {\r\n      return -1\r\n    }\r\n    return null\r\n  }\r\n\r\n  constructor(private elmentRef: ElementRef, private cdr: ChangeDetectorRef) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.optionsComponents?.length > 0) {\r\n      this._options = this.optionsComponents.toArray()\r\n    }\r\n  }\r\n\r\n  toggleSelect () {\r\n    if (this.disabled) {\r\n      return\r\n    }\r\n    this.isOpenOption = !this.isOpenOption\r\n    this.elmentRef.nativeElement.focus()\r\n  }\r\n\r\n  selectOptionValue (value: any) {\r\n    this.writeValue(value)\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.value = value\r\n    this.selectedOption = this._options.find(option => option.value === value)\r\n    this.onChange(value)\r\n    this.isOpenOption = false\r\n    this.cdr.markForCheck()\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn\r\n  }\r\n  \r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn\r\n  }\r\n  markAsTouched() {\r\n    if (!this.touched) {\r\n      this.onTouched()\r\n      this.touched = true\r\n    }\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled = isDisabled\r\n  }\r\n}\r\n","<div class=\"youi-select-body-wrapper\" [attr.tabindex]=\"attrTabindex\" [ngClass]=\"dynamicBodyCSSClass\" (click)=\"toggleSelect()\">\r\n  <div class=\"youi-select-body-value\" [innerHTML]=\"selectedOption?.label\">\r\n</div>\r\n\r\n  <span class=\"youi-select-body-arrow material-icons\" [class.youi-select-body-arrow-rotate]=\"isOpenOption\">expand_more</span>\r\n</div>\r\n\r\n<div class=\"youi-select-options-wrapper\" [ngClass]=\"optionsMenuCSSClass\" *ngIf=\"isOpenOption\">\r\n  <ng-container *ngIf=\"optionsComponents?.length > 0\">\r\n    <ng-content></ng-content>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"optionsComponents?.length <= 0\">\r\n    <youi-select-option *ngFor=\"let option of options\" [label]=\"option.label\" [value]=\"option.value\"></youi-select-option>\r\n  </ng-container>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SelectComponent } from './select.component';\r\nimport { SelectOptionComponent } from './select-option/select-option.component';\r\n\r\n\r\n@NgModule({\r\n  declarations: [SelectComponent, SelectOptionComponent],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [SelectComponent, SelectOptionComponent]\r\n})\r\nexport class SelectModule { }\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Pipe({name: 'safeHtml'})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n    constructor(private sanitized: DomSanitizer) {\r\n    }\r\n    transform(value: string) {\r\n        return this.sanitized.bypassSecurityTrustHtml(value);\r\n    }\r\n}","import {\r\n  animate,\r\n  query,\r\n  state,\r\n  style,\r\n  transition,\r\n  trigger,\r\n} from '@angular/animations';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  ContentChild,\r\n  Input,\r\n  TemplateRef,\r\n  ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'youi-spinner',\r\n  templateUrl: './spinner.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  animations: [\r\n    trigger('showHide', [\r\n      transition(':enter', [\r\n        style({ opacity: 0 }),\r\n        animate('300ms ease',\r\n          style({ opacity: 1 }))\r\n      ]),\r\n      transition(':leave', [\r\n        query('.youi-spinner-svg, .youi-spinner-template', style({ display: 'none' })),\r\n        style({ opacity: 1 }),\r\n        animate('300ms ease',\r\n          style({ opacity: 0 }))\r\n      ])\r\n    ])\r\n  ],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class SpinnerComponent implements OnInit {\r\n  private _iconName: string\r\n\r\n  /**\r\n   * 設定 SVG 的類型\r\n   * 參考 https://samherbert.net/svg-loaders/\r\n   */\r\n  @Input() set iconName(value: string) {\r\n    this._iconName = value\r\n    \r\n    if (!value) {\r\n      this.svgHTML = ''\r\n      return\r\n    }\r\n\r\n    const headers = new HttpHeaders({\r\n      'Content-Type': 'text/plain; charset=utf-8'\r\n    });\r\n    \r\n    this.http\r\n      .get(`assets/svg-loaders/${this._iconName}.svg`, {\r\n        headers,\r\n        responseType: 'text',\r\n      })\r\n      .toPromise()\r\n      .then((result: any) => {\r\n        const tag: any = new DOMParser()\r\n          .parseFromString(result, 'text/xml')\r\n          .querySelector('svg');\r\n\r\n        tag.removeAttribute('fill', '');\r\n        tag.removeAttribute('stroke', '');\r\n        tag.setAttribute('width', '100%');\r\n        tag.setAttribute('height', '100%');\r\n\r\n        this.svgHTML = tag.outerHTML;\r\n\r\n        this.cdf.markForCheck()\r\n      }).catch(error => {\r\n        this.svgHTML = ''\r\n\r\n        this.cdf.markForCheck()\r\n      })\r\n  }\r\n\r\n  /**\r\n   * 背景的樣式，可自行套用 background 來更改背景\r\n   */\r\n  @Input() backdropCSSClass = '';\r\n\r\n  /**\r\n   * loading 的圖案樣式，可自行套用 fill 與 stroke 修改顏色\r\n   * width、height 修改寬高\r\n   */\r\n  @Input() svgCSSClass = ''\r\n\r\n  /**\r\n   * 圖案下方的 template 樣式\r\n   */\r\n  @Input() textTemplateCSSClass = ''\r\n\r\n  /**\r\n   * loading 的開關\r\n   */\r\n  @Input() isLoading = false;\r\n\r\n  /**\r\n   * 自定義 icon 的 template\r\n   */\r\n  @ContentChild('iconTemplate', { static: false }) iconTemplate: TemplateRef<any>;\r\n\r\n  /**\r\n   * 自定義的文字內容 template\r\n   */\r\n  @ContentChild('textTemplate', { static: false }) textTemplate: TemplateRef<any>;\r\n\r\n  /**\r\n   * 最後渲染出來的 SVG Tag\r\n   */\r\n  svgHTML: string = '';\r\n\r\n  constructor(public http: HttpClient, private cdf: ChangeDetectorRef) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this._iconName === undefined && !this.iconTemplate) {\r\n      this.iconName = 'oval'\r\n    }\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n<div *ngIf=\"isLoading\" class=\"youi-spinner-backdrop\" [ngClass]=\"backdropCSSClass\" [@showHide]>\r\n  <div class=\"youi-spinner-svg\" [innerHTML]=\"svgHTML | safeHtml\" [ngClass]=\"svgCSSClass\" *ngIf=\"svgHTML && !iconTemplate\"></div>\r\n  <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\r\n  <div class=\"youi-spinner-template\" [ngClass]=\"textTemplateCSSClass\" *ngIf=\"textTemplate\">\r\n    <ng-container *ngTemplateOutlet=\"textTemplate\"></ng-container>\r\n  </div>\r\n</div>","import { NgModule } from \"@angular/core\";\r\n\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SpinnerComponent } from \"./spinner.component\";\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { SafeHtmlPipe } from \"../../pipe/safe-html.pipe\";\r\n\r\n@NgModule({\r\n  declarations: [SpinnerComponent, SafeHtmlPipe],\r\n  imports: [CommonModule, HttpClientModule],\r\n  exports: [SpinnerComponent]\r\n})\r\n\r\nexport class SpinnerModule {}","import { Directive, Inject, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ABSTRACT_INJECT } from '../../model/inject.token';\nimport type { TabComponent } from './tab.component';\n\n@Directive({\n  selector: '[youiTabPanel]'\n})\nexport class TabPanelDirective implements OnInit {\n  @Input() youiTabPanel: string\n  label: string\n\n  constructor(@Inject(ABSTRACT_INJECT) public parentTab: TabComponent, public templateRef: TemplateRef<any>) {\n    \n  }\n  ngOnInit(): void {\n    if (!this.label) {\n      this.label = this.youiTabPanel\n    }\n  }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { ABSTRACT_INJECT } from '../../model/inject.token';\nimport { TabPanelDirective } from './tab-panel.directive';\n\n@Component({\n  selector: 'youi-tab',\n  templateUrl: './tab.component.html',\n  styleUrls: ['./tab.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ABSTRACT_INJECT,\n      useExisting: TabComponent \n    }\n  ]\n})\nexport class TabComponent implements AfterViewInit {\n  private _activeTabPanel: string\n  @Input() set activeTabPanel(value: string) {\n    this._activeTabPanel = value\n\n    const activePandelDirective = this.getTabPanelDirective(this._activeTabPanel)\n\n    this.tabPanelContent.clear()\n    this.tabPanelContent.createEmbeddedView(activePandelDirective.templateRef)\n\n    this.activeTabPanelChange.emit(value)\n    this.cdr.markForCheck()\n  }\n  get activeTabPanel () {\n    return this._activeTabPanel\n  }\n\n  @Input() tabPanelTitleCSSClass: string = ''\n  @Input() tabPanelButtonCSSClass: string = ''\n  @Input() tabPanelButtonActiveCSSClass: string = ''\n  @Input() tabPanelContentCSSClass = ''\n\n  @Output() activeTabPanelChange: EventEmitter<string> = new EventEmitter<string>(true)\n\n  @ViewChild('tabPanelContent', { read: ViewContainerRef }) tabPanelContent: ViewContainerRef\n  @ContentChildren(TabPanelDirective) tabPanels: QueryList<TabPanelDirective>\n\n  constructor(private cdr: ChangeDetectorRef) { }\n\n  ngAfterViewInit(): void {\n    if (!this.activeTabPanel && this.tabPanels?.length > 0) {\n      const activeTabPanel = this.tabPanels.first.youiTabPanel\n      this.activeTabPanel = activeTabPanel\n      this.cdr.detectChanges()\n    }\n  }\n\n  getTabPanelDirective (targetTabPanel: string) {\n    if (this.tabPanels.length <= 0) {\n      return null\n    }\n\n    return this.tabPanels.find(tabPanel => tabPanel.youiTabPanel === targetTabPanel)\n  }\n\n  getTabPanelButtonCSS (panelName: string) {\n    const activeCSSClass = this.activeTabPanel === panelName ? this.tabPanelButtonActiveCSSClass : ''\n    return [this.tabPanelButtonCSSClass, activeCSSClass]\n  }\n}\n","<div class=\"tab-panels-title\" [ngClass]=\"tabPanelTitleCSSClass\">\n  <div class=\"tab-panels-title-button\" [ngClass]=\"getTabPanelButtonCSS(tabPanel.youiTabPanel)\"\n      [class.tab-panels-title-button--active]=\"activeTabPanel === tabPanel.youiTabPanel\" \n      *ngFor=\"let tabPanel of tabPanels\"\n      (click)=\"activeTabPanel = tabPanel.youiTabPanel\">\n    {{ tabPanel.label }}\n  </div>\n</div>\n\n<div class=\"tab-panels-content\" [ngClass]=\"tabPanelContentCSSClass\">\n  <ng-container #tabPanelContent></ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TabPanelDirective } from \"./tab-panel.directive\";\r\nimport { TabComponent } from \"./tab.component\";\r\n\r\n@NgModule({\r\n  declarations: [TabComponent, TabPanelDirective],\r\n  imports: [CommonModule],\r\n  exports: [TabComponent, TabPanelDirective]\r\n})\r\n\r\nexport class TabModule {}","import { NgModule } from \"@angular/core\";\r\nimport { BreadcrumbModule } from \"./component/breadcrumb/breadcrumb.module\";\r\nimport { DatatableModule } from \"./component/datatable/datatable.module\";\r\nimport { DialogModule } from \"./component/dialog/dialog.module\";\r\nimport { DropdownModule } from \"./component/dropdown/dropdown.module\";\r\nimport { ExpansionMenuItemModule } from \"./component/expansion-menu-item/expansion-menu-item.module\";\r\nimport { MenuItemModule } from \"./component/menu-item/menu-item.module\";\r\n\r\nimport { NotificationModule } from \"./component/notification/notification.module\";\r\nimport { PaginationModule } from \"./component/pagination/pagination.module\";\r\nimport { SelectModule } from \"./component/select/select.module\";\r\nimport { SpinnerModule } from \"./component/spinner/spinner.module\";\r\nimport { TabModule } from \"./component/tab/tab.module\";\r\n\r\nexport { BreadcrumbModule } from \"./component/breadcrumb/breadcrumb.module\";\r\nexport { DatatableModule } from \"./component/datatable/datatable.module\";\r\nexport { DropdownModule } from \"./component/dropdown/dropdown.module\";\r\nexport { ExpansionMenuItemModule } from \"./component/expansion-menu-item/expansion-menu-item.module\";\r\nexport { MenuItemModule } from \"./component/menu-item/menu-item.module\";\r\nexport { NotificationModule } from \"./component/notification/notification.module\";\r\nexport { PaginationModule } from \"./component/pagination/pagination.module\";\r\nexport { SelectModule } from \"./component/select/select.module\";\r\nexport { SpinnerModule } from \"./component/spinner/spinner.module\";\r\nexport { DialogModule } from \"./component/dialog/dialog.module\";\r\nexport { TabModule } from \"./component/tab/tab.module\";\r\n\r\nexport { BreadcrumbComponent } from \"./component/breadcrumb/breadcrumb.component\";\r\nexport { BreadcrumbItemComponent } from \"./component/breadcrumb/breadcrumb-item/breadcrumb-item.component\";\r\nexport { DatatableComponent } from \"./component/datatable/datatable.component\";\r\nexport { DatatableTemplateDirective } from \"./component/datatable/datatable.directive\";\r\nexport * from \"./component/datatable/ITable\";\r\nexport { DropdownComponent } from \"./component/dropdown/dropdown.component\";\r\nexport { DropdownDirective } from \"./component/dropdown/dropdown.directive\";\r\nexport { DropdownItemDirective } from \"./component/dropdown/dropdown-item.directive\";\r\nexport { ExpansionMenuItemComponent } from \"./component/expansion-menu-item/expansion-menu-item.component\";\r\nexport { MenuItemComponent } from \"./component/menu-item/menu-item.component\";\r\nexport { NotificationComponent } from \"./component/notification/notification.component\";\r\nexport { NotificationContainerComponent } from \"./component/notification/notification-container/notification-container.component\";\r\nexport { NotificationService } from \"./component/notification/notification.service\";\r\nexport { NotificationBase } from \"./component/notification/notification.base\";\r\nexport { PaginationComponent } from \"./component/pagination/pagination.component\";\r\nexport { SelectComponent } from \"./component/select/select.component\";\r\nexport { SelectOptionComponent } from \"./component/select/select-option/select-option.component\";\r\nexport { SpinnerComponent } from \"./component/spinner/spinner.component\";\r\nexport * from \"./component/dialog/IDialog\";\r\nexport { DialogService } from \"./component/dialog/dialog.service\";\r\nexport { BasicDialogComponent } from \"./component/dialog/basic-dialog/basic-dialog.component\";\r\nexport { ConfirmDialogComponent } from \"./component/dialog/confirm-dialog/confirm-dialog.component\";\r\nexport { DialogBase } from \"./component/dialog/dialog.base\";\r\nexport { TabComponent } from \"./component/tab/tab.component\";\r\nexport { TabPanelDirective } from \"./component/tab/tab-panel.directive\";\r\n\r\nexport { NotificationPositionEnum } from \"./component/notification/NotificationPositionEnum\";\r\nexport { IOption } from \"./component/select/IOption\";\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [BreadcrumbModule, DropdownModule, DatatableModule, SpinnerModule, NotificationModule, SelectModule, ExpansionMenuItemModule, MenuItemModule, PaginationModule, DialogModule, TabModule],\r\n  exports: [BreadcrumbModule, DropdownModule, DatatableModule, SpinnerModule, NotificationModule, SelectModule, ExpansionMenuItemModule, MenuItemModule, PaginationModule, DialogModule, TabModule]\r\n})\r\n\r\nexport class NgxYouiModule {}","/*\r\n * Public API Surface of ngx-youi\r\n */\r\n\r\nexport * from './lib/ngx-youi.module'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.DropdownComponent","i1.SelectOptionComponent","i2","i3.SafeHtmlPipe"],"mappings":";;;;;;;;;;;;;;;AAEO,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,gBAAgB,CAAC;;MCgBtD,uBAAuB,CAAA;AAIlC,IAAA,WAAA,CAA4C,UAA+B,EAAA;AAA/B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAqB;KAAI;AAE/E,IAAA,QAAQ,MAAW;AAEnB,IAAA,IAAI,YAAY,GAAA;QACd,OAAO;YACL,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,KAAK,IAAI,GAAG,sCAAsC,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;SAC3J,CAAA;KACF;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO;AACL,YAAA,MAAM,EAAE,CAAK,EAAA,EAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,CAAA;SAC9C,CAAA;KACF;;AAlBU,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAId,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAJxB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,gMClBpC,mhCAYM,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,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,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDMO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,iBAEjB,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mhCAAA,EAAA,CAAA;;;8BAMlC,MAAM;+BAAC,eAAe,CAAA;;yBAH1B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAC2C,YAAY,EAAA,CAAA;sBAA5D,YAAY;gBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MEJpC,mBAAmB,CAAA;AAa9B,IAAA,WAAA,GAAA;AAZQ,QAAA,IAAS,CAAA,SAAA,GAAW,GAAG,CAAA;AACvB,QAAA,IAAa,CAAA,aAAA,GAAoB,MAAM,CAAA;AACvC,QAAA,IAAc,CAAA,cAAA,GAAW,MAAM,CAAA;AAK/B,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAA;AACzB,QAAA,IAAkB,CAAA,kBAAA,GAAW,EAAE,CAAA;AAC/B,QAAA,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAA;KAEpB;IAEjB,QAAQ,GAAA;KACP;;gHAhBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAPnB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,WAAW,EAAE,mBAAmB;AACjC,SAAA;KACF,EAQe,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,uBAAuB,6BCtBzC,2BAAyB,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDgBZ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;+BACE,iBAAiB,EAAA,aAAA,EAEZ,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAqB,mBAAA;AACjC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,CAAA;0EAGO,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEgD,iBAAiB,EAAA,CAAA;sBAAtE,YAAY;gBAAC,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACV,eAAe,EAAA,CAAA;sBAAxD,eAAe;uBAAC,uBAAuB,CAAA;gBAE/B,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;MEhBM,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,YAAA,EAAA,CALZ,mBAAmB,EAAE,uBAAuB,aACjD,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,mBAAmB,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA;8GAG3C,gBAAgB,EAAA,OAAA,EAAA,CAJlB,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAIZ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;oBAC5D,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;iBACxD,CAAA;;;MCHY,0BAA0B,CAAA;AASrC,IAAA,WAAA,CAAmB,QAA0B,EAAA;AAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAI;;uHATtC,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,yBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sCAAsC;iBACjD,CAAA;kGASmC,IAAI,EAAA,CAAA;sBAArC,KAAK;uBAAC,yBAAyB,CAAA;;;MCFrB,kBAAkB,CAAA;AAkC7B,IAAA,WAAA,GAAA;AAjCS,QAAA,IAAa,CAAA,aAAA,GAAW,EAAE,CAAA;QAC1B,IAAA,CAAA,aAAa,GAAa,CAAC,OAAU,KAAM,GAAC,CAAA;AAC5C,QAAA,IAAA,CAAA,kBAAkB,GAAa,CAAC,OAAU,KAAiB;AAClE,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAA;AAkBD;;AAEG;AACM,QAAA,IAAY,CAAA,YAAA,GAA8B,EAAE,CAAA;AAE5C,QAAA,IAAA,CAAA,YAAY,GAAW,IAAI,GAAG,EAAK,CAAC;QACnC,IAAA,CAAA,kBAAkB,GAAyB,IAAI,YAAY,CAAS,IAAI,CAAC,CAAA;QACzE,IAAA,CAAA,cAAc,GAAoC,IAAI,YAAY,CAAoB,IAAI,CAAC,CAAA;KAIpF;IAxBjB,IAAa,SAAS,CAAE,KAAU,EAAA;AAChC,QAAA,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE;AACxC,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AACrC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;KACxB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;IAeD,QAAQ,GAAA;KACP;AAEM,IAAA,gBAAgB,CAAE,IAAY,EAAE,IAAA,GAA+B,EAAE,EAAA;AACtE,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA,GAAG,IAAI,CAAA;QACpD,QAAQ,IAAI,CAAC,wBAAwB;AAClC,aAAA,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,KAAK,YAAY,CAAC,EAAC;KACvE;IAED,cAAc,CAAE,IAAO,EAAE,SAAiB,EAAA;;AACxC,QAAA,OAAQ,MAAA,IAAY,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAA;KACtC;AAED,IAAA,kBAAkB,CAAE,IAAO,EAAA;AACzB,QAAA,IAAI,OAAO,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO,GAAG,IAAI,CAAA;AAEd,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;AACjC,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAA;AAC9B,aAAA;AACD,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC5B,SAAA;AAAM,aAAA;YACL,OAAO,GAAG,KAAK,CAAA;AAEf,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,SAAA;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAE/C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,IAAI,CAAC,YAAY;AACnC,SAAA,CAAC,CAAA;KACH;AAED,IAAA,iBAAiB,CAAE,KAAY,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAsB,KAAK,CAAC,MAAO,CAAC,OAAO,CAAA;AAExD,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC5C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAA;AAC9B,SAAA;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAE/C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,IAAI,CAAC,YAAY;AACnC,SAAA,CAAC,CAAA;KACH;;+GA1FU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,SAAA,EAgCZ,0BAA0B,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3C7C,8xHA8EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,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,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDnEa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,iBAGX,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8xHAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;0EAGtC,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAIG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAgBG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEsC,wBAAwB,EAAA,CAAA;sBAApE,eAAe;uBAAC,0BAA0B,CAAA;;;MEhChC,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,CALX,0BAA0B,EAAE,kBAAkB,aACnD,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,0BAA0B,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;6GAG7C,eAAe,EAAA,OAAA,EAAA,CAJjB,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAIZ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;oBAC9D,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;iBAC1D,CAAA;;;MCyBY,WAAW,GAAG,IAAI,cAAc,CAAC,aAAa;;MCrB9C,UAAU,CAAA;AAMrB,IAAA,WAAA,CAAwC,UAAe,EAAA;AAAf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAK;AAJvD,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK,CAAA;QAEd,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,CAAM,IAAI,CAAC,CAAA;KAEX;AAE5D,IAAA,IAA0B,gBAAgB,GAAA;AACxC,QAAA,OAAO,uBAAuB,CAAA;KAC/B;AAEM,IAAA,WAAW,CAAE,IAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;KACzB;;AAfU,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,kBAMD,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AANpB,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,0JAJX,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAID,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,EAAE;oBACZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;;;8BAOc,MAAM;+BAAC,WAAW,CAAA;;yBAFrB,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAImB,gBAAgB,EAAA,CAAA;sBAAzC,WAAW;uBAAC,OAAO,CAAA;;;ACVhB,MAAO,oBAAqB,SAAQ,UAAU,CAAA;AAkBlD,IAAA,WAAA,CAAwC,UAAe,EAAA;QACrD,KAAK,CAAC,UAAU,CAAC,CAAA;AADqB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAK;QAf9C,IAAA,CAAA,EAAE,GAAG;AACZ,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE,EAAE;SACb,CAAA;QAEQ,IAAA,CAAA,MAAM,GAAiB;AAC9B,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,kBAAkB,EAAE,EAAE;SACvB,CAAA;KAMA;IAED,QAAQ,GAAA;KACP;AAED,IAAA,IAAmC,gBAAgB,GAAA;;QACjD,OAAO,CAAA,sBAAA,EAAyB,MAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,iBAAiB,EAAE,CAAA;KACjE;;AA3BU,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAkBX,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAlBpB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,0OCXjC,+mCAqBe,EAAA,UAAA,EAAA,CAAA,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,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDVF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,iBAEd,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+mCAAA,EAAA,CAAA;;;8BAoBlC,MAAM;+BAAC,WAAW,CAAA;;yBAjBtB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAKG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAS6B,gBAAgB,EAAA,CAAA;sBAAlD,WAAW;uBAAC,OAAO,CAAA;;;AE1BhB,MAAO,sBAAuB,SAAQ,oBAAoB,CAAA;AAM9D,IAAA,WAAA,CAAwC,UAAe,EAAA;QACrD,KAAK,CAAC,UAAU,CAAC,CAAA;AADqB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAK;QAL9C,IAAA,CAAA,KAAK,GAAG;AACf,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,EAAE;SACb,CAAA;KAIA;IAED,QAAQ,GAAA;KACP;;AAXU,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAMb,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AANpB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8GCVnC,2uBAOe,EAAA,UAAA,EAAA,CAAA,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,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDGF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,iBAEhB,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2uBAAA,EAAA,CAAA;;;8BAQlC,MAAM;+BAAC,WAAW,CAAA;;yBALtB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEFK,aAAa,CAAA;IACxB,WAAoB,CAAA,OAAgB,EAAU,QAAkB,EAAA;AAA5C,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAAK;AAE9D,IAAA,KAAK,CAAE,IAAsB,EAAE,IAAU,EAAE,cAAsC,EAAA;;AACtF,QAAA,MAAM,EAAE,GAAG;YACT,KAAK,EAAE,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI;YAC7B,QAAQ,EAAE,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;SAClC,CAAA;AAED,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE;YACF,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;KACzB;AAEM,IAAA,IAAI,CAAE,IAAsB,EAAE,IAAU,EAAE,cAAsC,EAAA;QACrF,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,MAAM,EAAE;AACN,gBAAA,aAAa,EAAE,6BAA6B;AAC5C,gBAAA,kBAAkB,EAAE,+BAA+B;AACpD,aAAA;AACF,SAAA,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;KACzB;AAEM,IAAA,OAAO,CAAE,IAAsB,EAAE,IAAU,EAAE,cAAsC,EAAA;QACxF,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,MAAM,EAAE;AACN,gBAAA,aAAa,EAAE,6BAA6B;AAC5C,gBAAA,kBAAkB,EAAE,+BAA+B;AACpD,aAAA;AACF,SAAA,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;KACzB;AAEM,IAAA,KAAK,CAAE,IAAsB,EAAE,IAAU,EAAE,cAAsC,EAAA;QACtF,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,MAAM,EAAE;AACN,gBAAA,aAAa,EAAE,yBAAyB;AACxC,gBAAA,kBAAkB,EAAE,gCAAgC;AACrD,aAAA;AACF,SAAA,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;KACzB;AAEM,IAAA,OAAO,CAAE,IAAsB,EAAE,IAAU,EAAE,cAAsC,EAAA;QACxF,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,MAAM,EAAE;AACN,gBAAA,aAAa,EAAE,2BAA2B;AAC1C,gBAAA,kBAAkB,EAAE,kCAAkC;AACvD,aAAA;AACF,SAAA,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;KACzB;AAEM,IAAA,OAAO,CAAE,IAAwB,EAAE,IAAU,EAAE,cAAsC,EAAA;;AAC1F,QAAA,MAAM,EAAE,GAAG;YACT,KAAK,EAAE,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI;AAC7B,YAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,0CAAE,QAAQ;SAC5B,CAAA;AACD,QAAA,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,OAAO;AACnC,YAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ;SAC/B,CAAA;AAED,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACvC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE;YACF,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;KACzB;AAEM,IAAA,IAAI,CAAuB,SAA2B,EAAE,IAA6B,EAAE,IAAU,EAAE,cAAsC,EAAA;;AAC9I,QAAA,cAAc,GAAG;YACf,WAAW,EAAE,CAAA,EAAA,GAAA,cAAc,KAAd,IAAA,IAAA,cAAc,uBAAd,cAAc,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI;YAChD,gBAAgB,EAAE,CAAA,EAAA,GAAA,cAAc,KAAd,IAAA,IAAA,cAAc,uBAAd,cAAc,CAAE,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;YACxD,eAAe,EAAE,CAAA,EAAA,GAAA,cAAc,KAAd,IAAA,IAAA,cAAc,uBAAd,cAAc,CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI;SACzD,CAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;AACnC,YAAA,cAAc,CAAC,gBAAgB,IAAI,8BAA8B,CAAA;AAClE,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;AACnG,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACnF,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;gBACnB,eAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1C,aAAA;AACF,SAAA;AAED,QAAA,IAAI,cAAc,CAAC,WAAW,IAAI,cAAc,CAAC,eAAe,EAAE;YAChE,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,KAAK,IAAG;gBAC3C,eAAe,CAAC,WAAW,EAAE,CAAA;AAC/B,aAAC,CAAC,CAAA;AACH,SAAA;AAED,QAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;AAC9B,QAAA,OAAO,eAAe,CAAA;KACvB;AAEO,IAAA,qBAAqB,CAAuB,SAA2B,EAAE,UAAsB,EAAE,QAAc,EAAA;AACrH,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7D,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAoB,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACzE,QAAA,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAA;QAC7C,OAAO,YAAY,CAAC,QAAQ,CAAC;KAC9B;IAEO,aAAa,CAAC,WAAoB,EAAE,aAAqB,EAAA;AAC/D,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC7C,aAAA,MAAM,EAAE;AACR,aAAA,kBAAkB,EAAE;AACpB,aAAA,gBAAgB,EAAE,CAAC;AAEtB,QAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;AACtC,YAAA,WAAW,EAAE,WAAW;YACxB,aAAa,EAAE,CAAC,sBAAsB,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpE,YAAA,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;YACrD,gBAAgB;AACjB,SAAA,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC3C;IAEO,UAAU,CAAE,IAAS,EAAE,QAAkB,EAAA;QAC/C,OAAO,QAAQ,CAAC,MAAM,CAAC;AACrB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAJ,IAAI,GAAI,IAAI,EAAE;AACjD,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;;0GAlJU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8GAAb,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;MCSE,YAAY,CAAA;;yGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBATrB,sBAAsB;AACtB,QAAA,oBAAoB,CAGpB,EAAA,OAAA,EAAA,CAAA,YAAY,CAEJ,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAG3C,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAFZ,SAAA,EAAA,CAAC,aAAa,CAAC,EAJjB,OAAA,EAAA,CAAA;YACP,YAAY;SACb,CAAA,EAAA,CAAA,CAAA;2FAIU,YAAY,EAAA,UAAA,EAAA,CAAA;kBAXxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;oBACvD,SAAS,EAAE,CAAC,aAAa,CAAC;iBAC3B,CAAA;;;MCNY,iBAAiB,CAAA;AAM5B,IAAA,WAAA,CAA2C,cAAiC,EAAA;AAAjC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;AALnE,QAAA,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAA;KAK2C;;AANtE,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAM+B,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGANjE,iBAAiB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIjB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdxB,oLAQA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDEa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAEpB,kBAAkB,EACb,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oLAAA,EAAA,CAAA;;wBAQY,iBAAiB,EAAA,UAAA,EAAA,CAAA;8BAA/D,QAAQ;;8BAAI,QAAQ;;yBALxB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAGqC,WAAW,EAAA,CAAA;sBAArD,SAAS;gBAAC,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MEJ9B,iBAAiB,CAAA;AAU5B,IAAA,WAAA,CAAoB,OAAgB,EAChB,gBAAkC,EAClC,UAAsB,EAAA;AAFtB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AAChB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAVjC,QAAA,IAAO,CAAA,OAAA,GAAgB,WAAW,CAAA;AAClC,QAAA,IAAQ,CAAA,QAAA,GAA4E,YAAY,CAAA;AAChG,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK,CAAA;QAErC,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAA;KAO/C;IAED,eAAe,GAAA;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;KAC1B;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;YACpC,IAAI,CAAC,OAAO,EAAE;gBACZ,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,oBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;AACxB,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;AAC1B,iBAAA;gBAED,OAAM;AACP,aAAA;AAED,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;AAEzC,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAClG,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAA;AAC1C,SAAC,CAAC,CAAA;KACH;IAEO,gBAAgB,GAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;AAEtD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,YAAA,gBAAgB,EAAE,gBAAgB;YAClC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACtD,SAAA,CAAC,CAAA;;QAGF,UAAU,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACpD,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBACxD,OAAM;AACP,aAAA;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC7B,SAAC,CAAC,CAAA;AAEF,QAAA,OAAO,UAAU,CAAA;KAClB;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,mBAA2D,CAAA;QAE/D,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAA;AAClC,YAAA,mBAAmB,GAAG;gBACpB,CAAC;gBACD,CAAC;aACF,CAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAA;AACpD,SAAA;AAED,QAAA,MAAM,iBAAiB,GAAyC;AAC9D,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;SACF,CAAA;AAED,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;aACT,mBAAmB,CAAC,mBAAmB,CAAC;AACxC,aAAA,aAAa,CAAC;AACb,YAAA,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,SAAA,CAAC,CAAA;AAExC,QAAA,OAAO,gBAAgB,CAAA;KACxB;IAGM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC5B;AAGD,IAAA,OAAO,CAAC,KAAiB,EAAA;;QAEvB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;YACnD,OAAM;AACP,SAAA;;QAGD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;AACrD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC5B,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;KAClD;AAGD,IAAA,aAAa,CAAC,KAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAM;AACP,SAAA;QACD,KAAK,CAAC,cAAc,EAAE,CAAA;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;AAEzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC3B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAA;KAC9B;;8GAxJU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;iBACpC,CAAA;wJAGU,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAkHC,QAAQ,EAAA,CAAA;sBADd,YAAY;uBAAC,eAAe,CAAA;gBAM7B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAiBjC,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC7I5B,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,QAA2B,EAAA;AAA3B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;KAE9C;IACD,QAAQ,GAAA;KACP;IAGD,OAAO,GAAA;QACL,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAElD,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAA;AACzC,QAAA,OAAO,MAAM,EAAE;YACb,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3C,YAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAA;AAC/B,SAAA;KACF;;kHAhBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;iBACjC,CAAA;qGAUC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;;MCDV,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EALV,YAAA,EAAA,CAAA,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAChE,YAAY,EAAE,aAAa,CAC3B,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAG1D,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAJhB,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA,EAAA,CAAA,CAAA;2FAI3B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;AAC3E,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;AACtC,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;iBACvE,CAAA;;;MCOY,0BAA0B,CAAA;AAoCrC,IAAA,WAAA,GAAA;AA9BS,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAA;AACxB,QAAA,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAA;AAC5B,QAAA,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAA;AAEtC,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAA;QAajB,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,CAAU,IAAI,CAAC,CAAA;AAElD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAA;AACzB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAA;AAMzB,QAAA,IAAc,CAAA,cAAA,GAAW,EAAE,CAAA;AAC3B,QAAA,IAAoB,CAAA,oBAAA,GAAW,EAAE,CAAA;AACjC,QAAA,IAAe,CAAA,eAAA,GAAW,EAAE,CAAA;KAEpB;IAzBjB,IAAa,SAAS,CAAE,KAAc,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjC;AACD,IAAA,IAAI,SAAS,GAAA;QACX,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;IAgBD,kBAAkB,GAAA;KACjB;AAED,IAAA,QAAQ,MAAW;IAEZ,eAAe,GAAA;QACpB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAM;AACP,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAA;KACjC;AAED,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO;AACL,YAAA,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,GAAG,EAAE;SAC/C,CAAA;KACF;AAED,IAAA,IAAW,gBAAgB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAE1D,OAAO;YACL,cAAc,EAAE,CAAG,EAAA,WAAW,CAAI,EAAA,CAAA;SACnC,CAAA;KACF;AAED,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAA;QAE3D,OAAO;YACL,cAAc,EAAE,CAAG,EAAA,WAAW,CAAI,EAAA,CAAA;SACnC,CAAA;KACF;;uHA/EU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBvC,uuDA8BA,EDxBc,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,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,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,kBAAkB,EAAE;AAC1B,YAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,CAAC,CAAC;AAC9D,YAAA,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,CAAC,CAAC;AAChE,YAAA,UAAU,CAAC,wBAAwB,EACjC,OAAO,CAAC,sCAAsC,CAAC,CAAC;SACnD,CAAC;AACH,KAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAKU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAftC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAExB,UAAA,EAAA;wBACV,OAAO,CAAC,kBAAkB,EAAE;AAC1B,4BAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,CAAC,CAAC;AAC9D,4BAAA,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,CAAC,CAAC;AAChE,4BAAA,UAAU,CAAC,wBAAwB,EACjC,OAAO,CAAC,sCAAsC,CAAC,CAAC;yBACnD,CAAC;AACH,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uuDAAA,EAAA,CAAA;0EAItC,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAGO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAYI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAEE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEqC,OAAO,EAAA,CAAA;sBAAjD,YAAY;gBAAE,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACA,KAAK,EAAA,CAAA;sBAA7C,YAAY;gBAAE,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACG,MAAM,EAAA,CAAA;sBAA/C,YAAY;gBAAE,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBAE/B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;ME1CK,uBAAuB,CAAA;;oHAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAJnB,YAAA,EAAA,CAAA,0BAA0B,CAD/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,0BAA0B,CAAA,EAAA,CAAA,CAAA;qHAGzB,uBAAuB,EAAA,OAAA,EAAA,CALzB,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAKZ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;iBACtC,CAAA;;;MCGY,iBAAiB,CAAA;AAkB5B,IAAA,WAAA,GAAA;AAbS,QAAA,IAAU,CAAA,UAAA,GAAW,CAAC,CAAA;AACtB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAA;AAExB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAA;AACzB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAA;AAMzB,QAAA,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAA;AACrB,QAAA,IAAc,CAAA,cAAA,GAAW,EAAE,CAAA;KAEnB;IAEjB,eAAe,GAAA;KACd;AAED,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO;AACL,YAAA,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE;SACzC,CAAA;KACF;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAA;QAEpD,OAAO;YACL,cAAc,EAAE,CAAG,EAAA,WAAW,CAAI,EAAA,CAAA;SACnC,CAAA;KACF;AAED;;;AAGG;AACH,IAAA,kBAAkB,CAAE,KAAiB,EAAA;QACnC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,KAAK,CAAC,eAAe,EAAE,CAAA;AACxB,SAAA;KACF;;8GAnDU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,ukBCX9B,8gCAsBA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,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,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDXa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,iBAEX,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8gCAAA,EAAA,CAAA;0EAGtC,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEmC,OAAO,EAAA,CAAA;sBAA/C,SAAS;gBAAC,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACI,OAAO,EAAA,CAAA;sBAAjD,YAAY;gBAAE,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACC,MAAM,EAAA,CAAA;sBAA/C,YAAY;gBAAE,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBAE/B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MEjBK,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAJV,YAAA,EAAA,CAAA,iBAAiB,CADtB,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,iBAAiB,CAAA,EAAA,CAAA,CAAA;4GAGhB,cAAc,EAAA,OAAA,EAAA,CALhB,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAKZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;iBAC7B,CAAA;;;ACkBM,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC;;AC1BhD,IAAA,yBAOX;AAPD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACjB,IAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,wBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,wBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,wBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC/B,CAAC,EAPW,wBAAwB,KAAxB,wBAAwB,GAOnC,EAAA,CAAA,CAAA;;MCMY,gBAAgB,CAAA;AAqB3B,IAAA,WAAA,CAAwC,gBAAqB,EAAA;AAArB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAK;AApB7D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,OAAO,GAAW,IAAI,CAAA;AAEZ,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAA;KAiBc;AAZlE,IAAA,IAA8B,QAAQ,GAAA;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClC,YAAA,OAAO,UAAU,CAAA;AAClB,SAAA;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAA,OAAO,WAAW,CAAA;AACnB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,wBAAwB,CAAC,SAAS,EAAE;AAC/D,YAAA,OAAO,eAAe,CAAA;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,kBAAkB,CAAA;AAC1B,SAAA;KACF;IAID,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;AACpB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK;gBAC5B,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,IAAI,CAAC,KAAK,EAAE,CAAA;AACd,aAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;AACjB,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;KACzB;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC7B;;AAvCU,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAqBP,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AArBpB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,4JAJjB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAID,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,EAAE;oBACZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;;;8BAsBc,MAAM;+BAAC,WAAW,CAAA;;yBAjBrB,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAKuB,QAAQ,EAAA,CAAA;sBAArC,WAAW;uBAAC,WAAW,CAAA;;;AC6CpB,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAoBzD,IAAA,WAAA,CAAwC,gBAAqB,EAAA;QAC3D,KAAK,CAAC,gBAAgB,CAAC,CAAA;AADe,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAK;AAnB7D,QAAA,IAAI,CAAA,IAAA,GAAW,EAAE,CAAA;AACjB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE,CAAA;AAClB,QAAA,IAAO,CAAA,OAAA,GAAW,EAAE,CAAA;QAEpB,IAAA,CAAA,MAAM,GAA6B;AACjC,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,aAAa,EAAE,EAAE;SAClB,CAAA;QAED,IAAA,CAAA,SAAS,GAA0B;AACjC,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,aAAa,EAAE,IAAI;SACpB,CAAA;KAIA;AAED,IAAA,IAAI,gBAAgB,GAAA;;AAClB,QAAA,OAAO,MAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAA;KACjC;;AA1BU,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAoBZ,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGApBpB,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnElC,u4CAuBM,EDNQ,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,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,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,UAAU,EAAE;YAClB,UAAU,CAAC,kBAAkB,EAAE;AAC7B,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;gBACzC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;aAC1C,CAAC;YACF,UAAU,CAAC,kBAAkB,EAAE;AAC7B,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gBACtC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;aAC7C,CAAC;YAEF,UAAU,CAAC,mBAAmB,EAAE;AAC9B,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gBACxC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;aAC1C,CAAC;YACF,UAAU,CAAC,mBAAmB,EAAE;AAC9B,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gBACtC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;aAC5C,CAAC;YAEF,UAAU,CAAC,uBAAuB,EAAE;AAClC,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;gBACzC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;aAC1C,CAAC;YACF,UAAU,CAAC,uBAAuB,EAAE;gBAClC,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAClD,gBAAA,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;aACzD,CAAC;YAEF,UAAU,CAAC,0BAA0B,EAAE;AACrC,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gBACxC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;aAC1C,CAAC;YACF,UAAU,CAAC,0BAA0B,EAAE;gBACrC,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAClD,gBAAA,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;aACxD,CAAC;SACH,CAAC;AACH,KAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAtDjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAEd,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA;wBACV,OAAO,CAAC,UAAU,EAAE;4BAClB,UAAU,CAAC,kBAAkB,EAAE;AAC7B,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;gCACzC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;6BAC1C,CAAC;4BACF,UAAU,CAAC,kBAAkB,EAAE;AAC7B,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gCACtC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;6BAC7C,CAAC;4BAEF,UAAU,CAAC,mBAAmB,EAAE;AAC9B,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gCACxC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;6BAC1C,CAAC;4BACF,UAAU,CAAC,mBAAmB,EAAE;AAC9B,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gCACtC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;6BAC5C,CAAC;4BAEF,UAAU,CAAC,uBAAuB,EAAE;AAClC,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;gCACzC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;6BAC1C,CAAC;4BACF,UAAU,CAAC,uBAAuB,EAAE;gCAClC,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAClD,gCAAA,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACzD,CAAC;4BAEF,UAAU,CAAC,0BAA0B,EAAE;AACrC,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gCACxC,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;6BAC1C,CAAC;4BACF,UAAU,CAAC,0BAA0B,EAAE;gCACrC,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAClD,gCAAA,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACxD,CAAC;yBACH,CAAC;qBACH,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,u4CAAA,EAAA,CAAA;;;8BAuBlC,MAAM;+BAAC,WAAW,CAAA;;;;ME9EpB,8BAA8B,CAAA;AACzC,IAAA,WAAA,CAA6C,mBAAwC,EAAA;AAAxC,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;KAAK;IAE1F,QAAQ,GAAA;KACP;AAED,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAA;KAC9C;;AARU,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,kBACrB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AADxB,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,mECT3C,6YAiBM,EAAA,MAAA,EAAA,CAAA,gdAAA,CAAA,EAAA,CAAA,CAAA;2FDRO,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,6YAAA,EAAA,MAAA,EAAA,CAAA,gdAAA,CAAA,EAAA,CAAA;;;8BAK1B,MAAM;+BAAC,eAAe,CAAA;;;;MEQxB,mBAAmB,CAAA;AAY9B,IAAA,WAAA,CACU,OAAgB,EAChB,QAAkB,EAClB,uBAAiD,EACjD,cAA8B,EAAA;AAH9B,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AAChB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAA0B;AACjD,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAbjC,IAAA,CAAA,aAAa,GAA2C;AAC7D,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,WAAW,EAAE,EAAE;SAChB,CAAC;KAOE;AAEG,IAAA,KAAK,CAAE,QAAkC,EAAE,IAA2B,EAAE,IAAU,EAAA;;QACvF,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAA;AAEnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;KAC9D;AAEM,IAAA,OAAO,CAAE,QAAkC,EAAE,IAA2B,EAAE,IAAU,EAAA;;QACzF,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,2BAA2B,CAAA;QAEtD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;KACxC;AAEM,IAAA,OAAO,CAAE,QAAkC,EAAE,IAA2B,EAAE,IAAU,EAAA;;QACzF,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,SAAS,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,2BAA2B,CAAA;QAEtD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;KACxC;AAEM,IAAA,KAAK,CAAE,QAAkC,EAAE,IAA2B,EAAE,IAAU,EAAA;;QACvF,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,0BAA0B,CAAA;QAErD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;KACxC;AAEM,IAAA,IAAI,CAAE,QAAkC,EAAE,IAA2B,EAAE,IAAU,EAAA;;QACtF,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,MAAM,CAAA;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,wBAAwB,CAAA;QAEnD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;KACxC;AAEM,IAAA,IAAI,CACT,aAA+B,EAC/B,QAAkC,EAClC,KAA8B,EAC9B,IAAU,EAAA;QAEV,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;AAClF,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAE5C,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CACrC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC1C,CAAC,SAAS,CAAC,MAAK;AACf,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;AACvC,SAAC,CAAC,CAAA;QAEF,OAAO,YAAY,CAAC,QAAQ,CAAA;KAC7B;AAED;;AAEG;IACK,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO;AACR,SAAA;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC7C,YAAA,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACpD,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AACnD,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,8BAA8B,EAC9B,IAAI,EACJ,IAAI,CAAC,QAAQ,CACd,CAAA;AACD,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;KACjD;AAED;;;;;;;AAOG;AACK,IAAA,kBAAkB,CACxB,aAA+B,EAC/B,QAAkC,EAClC,KAA8B,EAC9B,IAAU,EAAA;QAEV,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzD,SAAA;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAA;QAC5F,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAE1D,QAAA,YAAY,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAA;AACjD,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAEzC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;gBAC3B,YAAY,CAAC,QAAiB,CAAC,QAAQ,CAAC,GAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC3D,aAAA;AACF,SAAA;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAE/C,QAAA,OAAO,YAAY,CAAA;KACpB;IAEO,eAAe,CAAmC,YAA6B,EAAE,QAAkC,EAAA;QACzH,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,WAAW,GAAI,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAA2B,wBAAA,EAAA,QAAQ,CAAE,CAAA,CAAC,CAAA;AAE5E,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAC/B,YAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;AAC5B,SAAA;KACF;AAEO,IAAA,kBAAkB,CAAE,YAA+B,EAAA;QACzD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACrD,YAAY,CAAC,OAAO,EAAE,CAAA;AAEtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACtF,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AACpE,SAAA;KACF;IAEO,UAAU,CAAE,IAAS,EAAE,QAAkB,EAAA;QAC/C,OAAO,QAAQ,CAAC,MAAM,CAAC;AACrB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAJ,IAAI,GAAI,IAAI,EAAE;AACjD,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;;gHArKU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHAAnB,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;;MCGE,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAXd,8BAA8B,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1D,YAAY,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC3B,8BAA8B,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;gHASpD,kBAAkB,EAAA,SAAA,EARlB,CAAC,mBAAmB;AAC3B,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,WAAW,EAAE,mBAAmB;AACjC,SAAA;KACJ,EAAA,OAAA,EAAA,CAPQ,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA,EAAA,CAAA,CAAA;2FAU3B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,8BAA8B,EAAE,qBAAqB,CAAC;AACrE,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;AACtC,oBAAA,OAAO,EAAE,CAAC,8BAA8B,EAAE,qBAAqB,CAAC;oBAChE,SAAS,EAAE,CAAC,mBAAmB;AAC3B,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAE,mBAAmB;AACjC,yBAAA;AACJ,qBAAA;iBACF,CAAA;;;MCTY,mBAAmB,CAAA;AAmG9B,IAAA,WAAA,GAAA;AA1FS,QAAA,IAAc,CAAA,cAAA,GAAW,EAAE,CAAA;AAC3B,QAAA,IAAa,CAAA,aAAA,GAAW,EAAE,CAAA;AAC1B,QAAA,IAAc,CAAA,cAAA,GAAW,EAAE,CAAA;AAC3B,QAAA,IAAoB,CAAA,oBAAA,GAAW,EAAE,CAAA;AACjC,QAAA,IAAwB,CAAA,wBAAA,GAAW,EAAE,CAAA;AAE9C;;AAEG;AACM,QAAA,IAAW,CAAA,WAAA,GAAW,CAAC,CAAA;QACtB,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,CAAS,IAAI,CAAC,CAAA;AAE5D;;AAEG;AACK,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAA;QAUd,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,CAAS,IAAI,CAAC,CAAA;AAE3D;;AAEG;AACM,QAAA,IAAc,CAAA,cAAA,GAAW,CAAC,CAAA;AAEnC;;;AAGG;AACM,QAAA,IAAQ,CAAA,QAAA,GAAW,CAAC,CAAC,CAAA;AAa9B;;AAEG;AACK,QAAA,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAA;AAWpC;;AAEG;AACK,QAAA,IAAA,CAAA,kBAAkB,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;AAY1D;;;;AAIG;AACM,QAAA,IAAuB,CAAA,uBAAA,GAAY,IAAI,CAAA;AAEhD;;AAEG;AACM,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAA;KAE7B;IA1EjB,IAAa,UAAU,CAAE,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAClC;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;AAcD,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC,QAAQ,CAAA;AACrB,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,CAAC,CAAA;AACT,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;KACxD;IAMD,IAAa,eAAe,CAAE,KAAa,EAAA;QACzC,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;AAC5D,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;KAC9B;AACD,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAA;KAC7B;IAMD,IAAa,iBAAiB,CAAE,OAAiB,EAAA;AAC/C,QAAA,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAA;KAClC;AACD,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACjD,SAAA;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAA;KAC/B;IAgBD,QAAQ,GAAA;KACP;AAED,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;QACzC,OAAO,YAAY,IAAI,CAAC,GAAI,YAAY,GAAG,IAAI,CAAA;KAChD;AAED,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;AACrC,QAAA,OAAO,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAI,QAAQ,GAAG,IAAI,CAAA;KACtD;AAEM,IAAA,cAAc,CAAC,IAAY,EAAA;QAChC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;YACtC,OAAM;AACP,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAClC;AAED;;;;;;AAMG;AACH,IAAA,IAAW,SAAS,GAAA;QAClB,MAAM,KAAK,GAAY,EAAE,CAAA;;AAGzB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,EAAE;AACzE,YAAA,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;gBAClD,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAE,CAAA;AAChB,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA,CAAC,CAAA;AACH,aAAA;AACD,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAA;AACzD,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,CAAC,CAAA;AACrD,QAAA,IAAI,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACvE,IAAI,kBAAkB,IAAI,CAAC,EAAE;YAC3B,kBAAkB,GAAG,CAAC,CAAA;AACvB,SAAA;aAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE;AACvC,YAAA,kBAAkB,EAAG,CAAA;AACtB,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE;AAChC,YAAA,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE;gBACvD,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAE,CAAA;AAChB,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA,CAAC,CAAA;AACH,aAAA;YACD,KAAK,CAAC,IAAI,CAAC;AACT,gBAAA,KAAK,EAAE,CAAK,GAAA,CAAA;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;AAChC,aAAA,CAAC,CAAA;AACH,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,GAAG,UAAU,EAAE;YACxC,KAAK,CAAC,IAAI,CAAC;AACT,gBAAA,KAAK,EAAE,CAAK,GAAA,CAAA;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;AAC9C,aAAA,CAAC,CAAA;YACF,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAE,CAAA;gBACtD,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC;AAClD,aAAA,CAAC,CAAA;YAEF,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;gBAC3F,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAE,CAAA;AAChB,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA,CAAC,CAAA;AACH,aAAA;AACF,SAAA;AAAM,aAAA;;YAEL,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;gBAC3D,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,CAAG,EAAA,CAAC,CAAE,CAAA;AACb,oBAAA,KAAK,EAAE,CAAC;AACT,iBAAA,CAAC,CAAA;AACH,aAAA;YACD,KAAK,CAAC,IAAI,CAAC;AACT,gBAAA,KAAK,EAAE,CAAK,GAAA,CAAA;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,kBAAkB,GAAG,CAAC;AACjD,aAAA,CAAC,CAAA;AAEF,YAAA,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,kBAAkB,EAAE,IAAI,EAAE,EAAE;gBAC5G,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAE,CAAA;AAChB,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA,CAAC,CAAA;AACH,aAAA;YAED,KAAK,CAAC,IAAI,CAAC;AACT,gBAAA,KAAK,EAAE,CAAK,GAAA,CAAA;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,kBAAkB,GAAG,CAAC;AACjD,aAAA,CAAC,CAAA;;AAGF,YAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,EAAE;gBACzE,KAAK,CAAC,IAAI,CAAC;AACT,oBAAA,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,UAAU,CAAE,CAAA;oBAC3B,KAAK,EAAE,IAAI,CAAC,UAAU;AACvB,iBAAA,CAAC,CAAA;AACH,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACb;AAEM,IAAA,qBAAqB,CAAE,KAAY,EAAA;AACxC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAoB,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC,CAAA;KAC1E;AAEM,IAAA,kBAAkB,CAAE,IAAY,EAAA;QACrC,OAAO;AACL,YAAA,IAAI,CAAC,cAAc;AACnB,YAAA,IAAI,CAAC,cAAc;AACnB,YAAA,IAAI,CAAC,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAG,EAAE;SAC3D,CAAA;KACF;;gHAnOU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,siCCThC,w7FAyEA,EAAA,UAAA,EAAA,CAAA,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,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDhEa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,iBAEZ,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,w7FAAA,EAAA,CAAA;0EAGN,KAAK,EAAA,CAAA;sBAA7C,YAAY;gBAAE,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACK,QAAQ,EAAA,CAAA;sBAAnD,YAAY;gBAAE,IAAA,EAAA,CAAA,UAAU,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBAEA,MAAM,EAAA,CAAA;sBAA/C,YAAY;gBAAE,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBAEA,IAAI,EAAA,CAAA;sBAA3C,YAAY;gBAAE,IAAA,EAAA,CAAA,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACE,IAAI,EAAA,CAAA;sBAA3C,YAAY;gBAAE,IAAA,EAAA,CAAA,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBAE7B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBAKG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAMM,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBASI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAKE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAMG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAiBO,eAAe,EAAA,CAAA;sBAA3B,KAAK;gBAcO,iBAAiB,EAAA,CAAA;sBAA7B,KAAK;gBAgBG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAKG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;;;MEhGK,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAJZ,YAAA,EAAA,CAAA,mBAAmB,CADxB,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,mBAAmB,CAAA,EAAA,CAAA,CAAA;8GAGlB,gBAAgB,EAAA,OAAA,EAAA,CALlB,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAKZ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;iBAC/B,CAAA;;;MCGY,qBAAqB,CAAA;AAchC,IAAA,WAAA,CAA6C,eAAgC,EAAA;AAAhC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAZpE,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE,CAAA;AAGlB,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE,CAAA;KASqD;AALjF,IAAA,IAA0B,SAAS,GAAA;AACjC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,wBAAwB,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAI,CAAA,EAAA,IAAI,CAAC,cAAc,CAAE,CAAA,GAAG,EAAE,CAAA;AACrK,QAAA,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACpE;IAID,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAA;AACrD,SAAA;KACF;AAGD,IAAA,OAAO,CAAC,KAAiB,EAAA;QACvB,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnD;;AAzBU,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAcZ,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAdxB,qBAAqB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAOgB,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB5D,mKAMM,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDKO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACE,oBAAoB,EAAA,aAAA,EAEf,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,mKAAA,EAAA,CAAA;;;8BAiBxB,MAAM;+BAAC,eAAe,CAAA;;yBAZ1B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEwD,UAAU,EAAA,CAAA;sBAAvE,SAAS;uBAAC,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAElC,SAAS,EAAA,CAAA;sBAAlC,WAAW;uBAAC,OAAO,CAAA;gBAcpB,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;METtB,eAAe,CAAA;IAmD1B,WAAoB,CAAA,SAAqB,EAAU,GAAsB,EAAA;AAArD,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAY;AAAU,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAlDjE,QAAA,IAAQ,CAAA,QAAA,GAAmB,EAAE,CAAA;QAWrC,IAAA,CAAA,QAAQ,GAAQ,CAAC,KAAU,KAAM,GAAC,CAAA;AAClC,QAAA,IAAA,CAAA,SAAS,GAAQ,MAAK,GAAG,CAAA;AACzB,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;AACf,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAEhB,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAA;AAepB,QAAA,IAAY,CAAA,YAAA,GAAG,EAAE,CAAA;AACjB,QAAA,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAA;AACxB,QAAA,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAA;AACxB,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE,CAAA;AACnB,QAAA,IAAoB,CAAA,oBAAA,GAAG,EAAE,CAAA;KAe4C;IAhD9E,IAAa,OAAO,CAAE,KAAqB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;KACtB;AACD,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;KACrB;AAaM,IAAA,OAAO,CAAC,aAA0B,EAAA;AACvC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;AAC1B,SAAA;KACF;IAED,IAAa,cAAc,CAAE,SAAmB,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;KACjC;AAQD,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;AAC5D,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,GAAG,qCAAqC,GAAG,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;AAC9G,QAAA,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;KACxC;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,CAAC,CAAC,CAAA;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;IAID,eAAe,GAAA;;QACb,IAAI,CAAA,MAAA,IAAI,CAAC,iBAAiB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAA;AACjD,SAAA;KACF;IAED,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAM;AACP,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAA;AACtC,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;KACrC;AAED,IAAA,iBAAiB,CAAE,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;KACvB;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;AAClB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;AAC1E,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAA;KACxB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;KACnB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;KACpB;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAA;AAChB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;AACpB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;KAC3B;;4GA/FU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAbf,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC/C,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,WAAW,EAAE,eAAe;AAC7B,SAAA;AACF,KAAA,EAqBgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,qBAAqB,6BC1CxC,qzBAcM,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAE,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDUO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAER,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC/C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAiB,eAAA;AAC7B,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qzBAAA,EAAA,CAAA;iIAKlC,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAekC,iBAAiB,EAAA,CAAA;sBAAxD,eAAe;uBAAC,qBAAqB,CAAA;gBAG/B,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,CAAA;gBAQpC,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAIG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;;;ME/CK,YAAY,CAAA;;yGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0GAAZ,YAAY,EAAA,YAAA,EAAA,CANR,eAAe,EAAE,qBAAqB,aAEnD,YAAY,CAAA,EAAA,OAAA,EAAA,CAEJ,eAAe,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAErC,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EALd,OAAA,EAAA,CAAA;YACP,YAAY;SACb,CAAA,EAAA,CAAA,CAAA;2FAGU,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC;AACtD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC;iBAClD,CAAA;;;MCRY,YAAY,CAAA;AACrB,IAAA,WAAA,CAAoB,SAAuB,EAAA;AAAvB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAC1C;AACD,IAAA,SAAS,CAAC,KAAa,EAAA;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACxD;;yGALQ,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,IAAI;mBAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAA;;;MCsCX,gBAAgB,CAAA;IAiF3B,WAAmB,CAAA,IAAgB,EAAU,GAAsB,EAAA;AAAhD,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAAU,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AApCnE;;AAEG;AACM,QAAA,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;AAE/B;;;AAGG;AACM,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAA;AAEzB;;AAEG;AACM,QAAA,IAAoB,CAAA,oBAAA,GAAG,EAAE,CAAA;AAElC;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAY3B;;AAEG;AACH,QAAA,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;KAGpB;AA/ED;;;AAGG;IACH,IAAa,QAAQ,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QAEtB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;YACjB,OAAM;AACP,SAAA;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC;AAC9B,YAAA,cAAc,EAAE,2BAA2B;AAC5C,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,IAAI;AACN,aAAA,GAAG,CAAC,CAAsB,mBAAA,EAAA,IAAI,CAAC,SAAS,MAAM,EAAE;YAC/C,OAAO;AACP,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC;AACD,aAAA,SAAS,EAAE;AACX,aAAA,IAAI,CAAC,CAAC,MAAW,KAAI;AACpB,YAAA,MAAM,GAAG,GAAQ,IAAI,SAAS,EAAE;AAC7B,iBAAA,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC;iBACnC,aAAa,CAAC,KAAK,CAAC,CAAC;AAExB,YAAA,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAChC,YAAA,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClC,YAAA,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAClC,YAAA,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEnC,YAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC;AAE7B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAA;AACzB,SAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAG;AACf,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;AAEjB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAA;AACzB,SAAC,CAAC,CAAA;KACL;IAyCD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtD,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;AACvB,SAAA;KACF;;6GAxFU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzC7B,whBAOM,EDgBQ,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,UAAA,EAAAC,YAAA,EAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,UAAU,EAAE;YAClB,UAAU,CAAC,QAAQ,EAAE;AACnB,gBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;aACzB,CAAC;YACF,UAAU,CAAC,QAAQ,EAAE;gBACnB,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,gBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;aACzB,CAAC;SACH,CAAC;AACH,KAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAtB5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAET,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA;wBACV,OAAO,CAAC,UAAU,EAAE;4BAClB,UAAU,CAAC,QAAQ,EAAE;AACnB,gCAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gCACrB,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACzB,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,gCAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gCACrB,OAAO,CAAC,YAAY,EAClB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACzB,CAAC;yBACH,CAAC;qBACH,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,whBAAA,EAAA,CAAA;mIAUlC,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAyCG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAMG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAK2C,YAAY,EAAA,CAAA;sBAA5D,YAAY;gBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAKE,YAAY,EAAA,CAAA;sBAA5D,YAAY;gBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MEtGpC,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,YAAA,EAAA,CALT,gBAAgB,EAAE,YAAY,aACnC,YAAY,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAC9B,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAGf,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAJf,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA,EAAA,CAAA,CAAA;2FAI9B,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;AAC9C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;oBACzC,OAAO,EAAE,CAAC,gBAAgB,CAAC;iBAC5B,CAAA;;;MCJY,iBAAiB,CAAA;IAI5B,WAA4C,CAAA,SAAuB,EAAS,WAA6B,EAAA;AAA7D,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;AAAS,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAExG;IACD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAA;AAC/B,SAAA;KACF;;AAXU,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAIR,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAJxB,iBAAiB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;iBAC3B,CAAA;;;8BAKc,MAAM;+BAAC,eAAe,CAAA;;yBAH1B,YAAY,EAAA,CAAA;sBAApB,KAAK;;;MCSK,YAAY,CAAA;AA2BvB,IAAA,WAAA,CAAoB,GAAsB,EAAA;AAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAVjC,QAAA,IAAqB,CAAA,qBAAA,GAAW,EAAE,CAAA;AAClC,QAAA,IAAsB,CAAA,sBAAA,GAAW,EAAE,CAAA;AACnC,QAAA,IAA4B,CAAA,4BAAA,GAAW,EAAE,CAAA;AACzC,QAAA,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAA;QAE3B,IAAA,CAAA,oBAAoB,GAAyB,IAAI,YAAY,CAAS,IAAI,CAAC,CAAA;KAKtC;IAzB/C,IAAa,cAAc,CAAC,KAAa,EAAA;AACvC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAE5B,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AAE7E,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC5B,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAA;AAE1E,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAA;KACxB;AACD,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;KAC5B;IAcD,eAAe,GAAA;;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,IAAG,CAAC,EAAE;YACtD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAA;AACxD,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;AACpC,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;AACzB,SAAA;KACF;AAED,IAAA,oBAAoB,CAAE,cAAsB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,YAAY,KAAK,cAAc,CAAC,CAAA;KACjF;AAED,IAAA,oBAAoB,CAAE,SAAiB,EAAA;AACrC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,SAAS,GAAG,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAA;AACjG,QAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;KACrD;;yGAhDU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAPZ,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,WAAW,EAAE,YAAY;AAC1B,SAAA;KACF,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EA2BgB,iBAAiB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EADI,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzCxD,kiBAYA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDKa,YAAY,EAAA,UAAA,EAAA,CAAA;kBAbxB,SAAS;+BACE,UAAU,EAAA,aAAA,EAGL,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAc,YAAA;AAC1B,yBAAA;qBACF,EAAA,QAAA,EAAA,kiBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;wGAIY,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAeG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,4BAA4B,EAAA,CAAA;sBAApC,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAEI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;gBAEmD,eAAe,EAAA,CAAA;sBAAxE,SAAS;gBAAC,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBACpB,SAAS,EAAA,CAAA;sBAA5C,eAAe;uBAAC,iBAAiB,CAAA;;;ME/BvB,SAAS,CAAA;;sGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;uGAAT,SAAS,EAAA,YAAA,EAAA,CALL,YAAY,EAAE,iBAAiB,aACpC,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,YAAY,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA;uGAG9B,SAAS,EAAA,OAAA,EAAA,CAJX,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAIZ,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;oBAC/C,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;iBAC3C,CAAA;;;MCoDY,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,YAJd,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,CACtL,EAAA,OAAA,EAAA,CAAA,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAA,EAAA,CAAA,CAAA;2GAGrL,aAAa,EAAA,OAAA,EAAA,CAJf,CAAC,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC,EACvL,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAA,EAAA,CAAA,CAAA;2FAGrL,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC;oBACjM,OAAO,EAAE,CAAC,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC;iBAClM,CAAA;;;AC3DD;;AAEG;;ACFH;;AAEG;;;;"}