{"version":3,"file":"tanleica.mjs","sources":["../../../projects/tanleica-lib/src/lib/tan-layout/v1/header-menu/header-menu.service.ts","../../../projects/tanleica-lib/src/lib/tan-layout/v1/header-menu/item.component.ts","../../../projects/tanleica-lib/src/lib/tan-layout/v1/header-menu/item.component.html","../../../projects/tanleica-lib/src/lib/tan-layout/v1/header-menu/header-menu.component.ts","../../../projects/tanleica-lib/src/lib/tan-layout/v1/header-menu/header-menu.component.html","../../../projects/tanleica-lib/src/lib/tan-layout/v1/tan-layout-v1.component.ts","../../../projects/tanleica-lib/src/lib/tan-layout/v1/tan-layout-v1.component.html","../../../projects/tanleica-lib/src/lib/tan-layout/tan-layout.module.ts","../../../projects/tanleica-lib/src/lib/tan-services/tanleica-dom.service.ts","../../../projects/tanleica-lib/src/lib/tan-threedots/threedots/threedots.component.ts","../../../projects/tanleica-lib/src/lib/tan-threedots/threedots/threedots.component.html","../../../projects/tanleica-lib/src/lib/tan-fullscreen-modal-loader/fullscreen-modal-loader/fullscreen-modal-loader.component.ts","../../../projects/tanleica-lib/src/lib/tan-fullscreen-modal-loader/fullscreen-modal-loader/fullscreen-modal-loader.component.html","../../../projects/tanleica-lib/src/lib/tan-threedots/tan-threedots.module.ts","../../../projects/tanleica-lib/src/lib/tan-fullscreen-modal-loader/tan-fullscreen-modal-loader.module.ts","../../../projects/tanleica-lib/src/lib/tan-tabs/tabs/tabs.component.ts","../../../projects/tanleica-lib/src/lib/tan-tabs/tabs/tabs.component.html","../../../projects/tanleica-lib/src/lib/tan-tabs/tan-tabs.module.ts","../../../projects/tanleica-lib/src/lib/tan-pipes/table-cell.pipe.ts","../../../projects/tanleica-lib/src/lib/tan-table/table/table.component.ts","../../../projects/tanleica-lib/src/lib/tan-table/table/table.component.html","../../../projects/tanleica-lib/src/lib/tan-pipes/vn-date.pipe.ts","../../../projects/tanleica-lib/src/lib/tan-pipes/translate-data.ts","../../../projects/tanleica-lib/src/lib/tan-pipes/translate.pipe.ts","../../../projects/tanleica-lib/src/lib/tan-pipes/vn-currency.pipe.ts","../../../projects/tanleica-lib/src/lib/tan-pipes/vn-datetime.pipe.ts","../../../projects/tanleica-lib/src/lib/tan-pipes/tan-pipes.module.ts","../../../projects/tanleica-lib/src/lib/tan-table/tan-table.module.ts","../../../projects/tanleica-lib/src/lib/tan-dropdown/dropdown/dropdown.component.ts","../../../projects/tanleica-lib/src/lib/tan-dropdown/dropdown/dropdown.component.html","../../../projects/tanleica-lib/src/lib/tan-dropdown/tan-dropdown.module.ts","../../../projects/tanleica-lib/src/lib/tan-dropdown-autocomplete/dropdown-autocomplete/dropdown-autocomplete.component.ts","../../../projects/tanleica-lib/src/lib/tan-dropdown-autocomplete/dropdown-autocomplete/dropdown-autocomplete.component.html","../../../projects/tanleica-lib/src/lib/tan-dropdown-autocomplete/tan-dropdown-autocomplete.module.ts","../../../projects/tanleica-lib/src/lib/tan-checkbox/checkbox/checkbox.component.ts","../../../projects/tanleica-lib/src/lib/tan-checkbox/checkbox/checkbox.component.html","../../../projects/tanleica-lib/src/lib/tan-checkbox/tan-checkbox.module.ts","../../../projects/tanleica-lib/src/lib/tan-ios-switcher/ios-switcher/ios-switcher.component.ts","../../../projects/tanleica-lib/src/lib/tan-ios-switcher/ios-switcher/ios-switcher.component.html","../../../projects/tanleica-lib/src/lib/tan-ios-switcher/tan-ios-switcher.module.ts","../../../projects/tanleica-lib/src/lib/tan-pagination/pagination/pagination.component.ts","../../../projects/tanleica-lib/src/lib/tan-pagination/pagination/pagination.component.html","../../../projects/tanleica-lib/src/lib/tan-pagination/tan-pagination.module.ts","../../../projects/tanleica-lib/src/lib/tan-input-search/input-search/input-search.component.ts","../../../projects/tanleica-lib/src/lib/tan-input-search/input-search/input-search.component.html","../../../projects/tanleica-lib/src/lib/tan-input-search/tan-input-search.module.ts","../../../projects/tanleica-lib/src/lib/tan-onboard-line/onboard-line.service.ts","../../../projects/tanleica-lib/src/lib/tan-onboard-line/onboard-line/onboard-line.component.ts","../../../projects/tanleica-lib/src/lib/tan-onboard-line/onboard-line/onboard-line.component.html","../../../projects/tanleica-lib/src/lib/tan-onboard-line/tan-onboard-line.module.ts","../../../projects/tanleica-lib/src/lib/tan-quote/quote/quote.component.ts","../../../projects/tanleica-lib/src/lib/tan-quote/quote/quote.component.html","../../../projects/tanleica-lib/src/lib/tan-quote/tan-quote.module.ts","../../../projects/tanleica-lib/src/lib/tan-services/tanleica-datetime.service.ts","../../../projects/tanleica-lib/src/lib/tan-month-picker/month-picker-emitter/month-picker-emitter.component.ts","../../../projects/tanleica-lib/src/lib/tan-month-picker/month-picker-emitter/month-picker-emitter.component.html","../../../projects/tanleica-lib/src/lib/tan-year-picker/year-picker-emitter/year-picker-emitter.component.ts","../../../projects/tanleica-lib/src/lib/tan-year-picker/year-picker-emitter/year-picker-emitter.component.html","../../../projects/tanleica-lib/src/lib/tan-date-picker/date-picker/date-picker.component.ts","../../../projects/tanleica-lib/src/lib/tan-date-picker/date-picker/date-picker.component.html","../../../projects/tanleica-lib/src/lib/tan-month-picker/tan-month-picker.module.ts","../../../projects/tanleica-lib/src/lib/tan-year-picker/tan-year-picker.module.ts","../../../projects/tanleica-lib/src/lib/tan-date-picker/tan-date-picker.module.ts","../../../projects/tanleica-lib/src/lib/tan-org-chart/org-chart/org-chart.component.ts","../../../projects/tanleica-lib/src/lib/tan-org-chart/org-chart/org-chart.component.html","../../../projects/tanleica-lib/src/lib/tan-org-chart/org-chart-multi/org-chart-multi.component.ts","../../../projects/tanleica-lib/src/lib/tan-org-chart/org-chart-multi/org-chart-multi.component.html","../../../projects/tanleica-lib/src/lib/tan-org-chart/org-chart-flex/org-chart-flex.component.ts","../../../projects/tanleica-lib/src/lib/tan-org-chart/org-chart-flex/org-chart-flex.component.html","../../../projects/tanleica-lib/src/lib/tan-org-chart/tan-org-chart.module.ts","../../../projects/tanleica-lib/src/lib/tan-org-chart-svg/org-chart-svg/org-chart-svg.component.ts","../../../projects/tanleica-lib/src/lib/tan-org-chart-svg/org-chart-svg/org-chart-svg.component.html","../../../projects/tanleica-lib/src/lib/tan-org-chart-svg/tan-org-chart-svg.module.ts","../../../projects/tanleica-lib/src/lib/charts/tan-pie-chart/pie-chart/pie-chart.component.ts","../../../projects/tanleica-lib/src/lib/charts/tan-pie-chart/pie-chart/pie-chart.component.html","../../../projects/tanleica-lib/src/lib/charts/tan-pie-chart/tan-pie-chart.module.ts","../../../projects/tanleica-lib/src/lib/tan-services/tanleica-helper.service.ts","../../../projects/tanleica-lib/src/lib/tan-services/tanleica-navigation.service.ts","../../../projects/tanleica-lib/src/lib/tan-services/tanleica-recursive.service.ts","../../../projects/tanleica-lib/src/public-api.ts","../../../projects/tanleica-lib/src/tanleica.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { IHeaderMenuItem } from './IHeaderMenuItem';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class HeaderMenuService {\r\n\r\n  mainMenuState$ = new BehaviorSubject<boolean>(false);\r\n  currentItem!: IHeaderMenuItem;\r\n  mainWindowState$ = new BehaviorSubject<string>('window');\r\n\r\n  constructor() {\r\n  }\r\n\r\n  itemHasChildren(item: IHeaderMenuItem): boolean {\r\n    let result: boolean = false;\r\n    Object.keys(item).forEach(key => {\r\n      if (key === 'children') {\r\n        if (!!item['children']!.length) {\r\n          result = true;\r\n          return;\r\n        }\r\n      };\r\n    });\r\n    return result;\r\n  }\r\n\r\n  setParentIdForMockupItem(item: IHeaderMenuItem) {\r\n    if (this.itemHasChildren(item)) {\r\n      item.children!.map(child => {\r\n        child.parentId = item.id;\r\n        child.path = `${item.path}=>${child.id}`;\r\n        child.level = item.level! + 1; \r\n        this.setParentIdForMockupItem(child);\r\n      })\r\n    }\r\n  }\r\n \r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, OnDestroy, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { IHeaderMenuItem } from './IHeaderMenuItem';\r\nimport { HeaderMenuService } from './header-menu.service';\r\n\r\n@Component({\r\n  selector: 'app-item',\r\n  templateUrl: './item.component.html',\r\n  styleUrls: ['./item.component.scss', './header-menu.component.scss', '../tan-layout-v1.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ItemComponent implements OnInit, OnDestroy {\r\n\r\n  @Input() item!: IHeaderMenuItem;\r\n  @Input() level!: number;\r\n  @Output() clicked: EventEmitter<string> = new EventEmitter();\r\n  @ViewChild('me') me!: ElementRef;\r\n  @ViewChild('children') children!: ElementRef;\r\n  @ViewChild('link') link!: ElementRef;\r\n  @ViewChild('subArrow') subArrow!: ElementRef;\r\n\r\n  hasChildren: boolean = false;\r\n  mainWindowState!: string;\r\n  expanded: boolean = false;\r\n  subscription!: Subscription;\r\n\r\n  constructor(private router: Router, private headerMenuService: HeaderMenuService) { }\r\n\r\n  ngOnInit() {\r\n\r\n    this.subscription = this.headerMenuService.mainWindowState$.subscribe(x => this.mainWindowState = x);\r\n\r\n    if (this.item) {\r\n      Object.keys(this.item).forEach(key => {\r\n        if (key === 'children') {\r\n          this.hasChildren = true;\r\n          return;\r\n        };\r\n      })\r\n    }\r\n  }\r\n\r\n  subArrowClicked(event: Event) {\r\n\r\n    event.stopPropagation();\r\n\r\n    if (this.children.nativeElement.className === 'child sub-menu') {\r\n      this.children.nativeElement.className = 'child sub-menu expanded';\r\n      this.subArrow.nativeElement.className = this.subArrow.nativeElement.className.replace(' plus', '') + ' minus';\r\n    } else if (this.children.nativeElement.className === 'child sub-menu expanded') {\r\n      this.children.nativeElement.className = 'child sub-menu';\r\n      this.subArrow.nativeElement.className = this.subArrow.nativeElement.className.replace(' minus', '') + ' plus';\r\n    }\r\n  }\r\n\r\n  onClick(child: string) {\r\n  }\r\n\r\n  linkClicked() {\r\n\r\n    if (typeof this.item.function === 'function') {\r\n      this.item.function();\r\n      this.headerMenuService.mainMenuState$.next(false);\r\n    }\r\n\r\n    if (this.children?.nativeElement.className === 'child sub-menu') {\r\n      this.expanded = true;\r\n      this.children.nativeElement.className = 'child sub-menu expanded';\r\n      this.subArrow.nativeElement.className = this.subArrow.nativeElement.className.replace(' plus', '') + ' minus';\r\n    } else if (this.item?.url) {\r\n      this.router.navigateByUrl(this.item?.url);\r\n      this.headerMenuService.mainMenuState$.next(false);\r\n    } else {\r\n      this.expanded = false;\r\n      if (this.children) this.children.nativeElement.className = 'child sub-menu';\r\n      if (this.subArrow) this.subArrow.nativeElement.className = this.subArrow.nativeElement.className.replace(' minus', '') + ' plus';\r\n    }\r\n\r\n    this.clicked.emit(this.item.title);\r\n\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscription.unsubscribe();\r\n  }\r\n\r\n}\r\n","<li #me class=\"parent\">\r\n    <a #link *ngIf=\"hasChildren\" \r\n        aria-current=\"page\" class=\"has-submenu\" [class.expanded]=\"expanded\" aria-haspopup=\"true\"\r\n        aria-expanded=\"false\" (click)=\"linkClicked()\">\r\n        \r\n        <ng-container (click)=\"subArrowClicked($event);false\"> <!--false is important here-->\r\n            <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri) && mainWindowState==='mobile'\" [class]=\"'img-span sub-arrow plus level' + level\">\r\n                <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n            </span>\r\n            <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\" [class]=\"'sub-arrow plus level' + level\"></span>\r\n        </ng-container>\r\n        \r\n        <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri) && mainWindowState==='window'\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n        \r\n        {{ item!.title }}\r\n\r\n        \r\n    </a>\r\n    <a *ngIf=\"!hasChildren\" [routerLink]=\"item!.url\" (click)=\"linkClicked()\">\r\n        {{ item!.title }}\r\n    </a>\r\n\r\n    <ul #children *ngIf=\"hasChildren && !!item.children!.length\" class=\"child sub-menu\" role=\"group\" aria-hidden=\"false\" aria-expanded=\"true\">\r\n        <app-item *ngFor=\"let child of item.children\" [item]=\"child\" [level]=\"level+1\" (clicked)=\"onClick($event)\"></app-item>\r\n    </ul>\r\n\r\n</li>","import { Component, ElementRef, OnInit, ViewChild, AfterViewInit, Renderer2, Input, TemplateRef, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { IHeaderMenuItem } from './IHeaderMenuItem';\r\nimport { HeaderMenuService } from './header-menu.service';\r\nimport { IRightIcon } from './IRightIcon';\r\n\r\ninterface IFlatNavigationCheck {\r\n  id: string;\r\n  count: number;\r\n}\r\n\r\n@Component({\r\n  selector: 'app-header-menu',\r\n  templateUrl: './header-menu.component.html',\r\n  styleUrls: ['./header-menu.component.scss', '../tan-layout-v1.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class HeaderMenuComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n  @ViewChild(\"mainMenu\") mainMenu!: ElementRef;\r\n  listenerFn!: () => void;\r\n\r\n  @Input() items!: IHeaderMenuItem[];\r\n  @Input() logoTemplate!: TemplateRef<any>;\r\n  @Input() rightPartHeadeMenuItem!: IHeaderMenuItem;\r\n  @Input() rightIcon!: IRightIcon;\r\n  \r\n  subscriptionA!: Subscription;\r\n  subscriptionB!: Subscription;\r\n\r\n  flatNavigationCheck: IFlatNavigationCheck[] = [];\r\n  itemsErrors: string[] = [];\r\n  mainMenuState!: boolean;\r\n  mainWindowState!: string;\r\n\r\n  constructor(\r\n    private headerMenuService: HeaderMenuService,\r\n    private renderer: Renderer2,\r\n  ) { }\r\n\r\n  ngOnInit() {\r\n\r\n    this.headerMenuService.mainWindowState$.next(window.innerWidth > 768 ? 'window' : 'mobile');\r\n\r\n    this.subscriptionA = this.headerMenuService.mainMenuState$.subscribe(x => this.mainMenuState = x);\r\n    this.subscriptionB = this.headerMenuService.mainWindowState$.subscribe(x => this.mainWindowState = x);\r\n\r\n    /* validate items navigation array for error in \"id\" */\r\n    this.items?.map((item: IHeaderMenuItem) => {\r\n      this.validateNavigationItem(item);\r\n    });\r\n\r\n    if (!!this.itemsErrors.length) {\r\n      console.group(\"Navigation items error\");\r\n      this.itemsErrors.map(error => {\r\n        console.error(error);\r\n      })\r\n      console.groupEnd();\r\n    }\r\n\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.listenerFn = this.renderer.listen('window', 'resize', _ => {\r\n      this.headerMenuService.mainWindowState$.next(window.innerWidth > 768 ? 'window' : 'mobile');\r\n    })\r\n  }\r\n\r\n  validateNavigationItem(item: IHeaderMenuItem) {\r\n    if (!!!item.id) {\r\n      this.itemsErrors.push(`Value of property \"id\" of navigation item \"${item.title}\" is not set`);\r\n    }\r\n    const filter = this.flatNavigationCheck.filter(x => x.id === item.id);\r\n    if (filter.length === 0) {\r\n      this.flatNavigationCheck.push({\r\n        id: item.id,\r\n        count: 0,\r\n      });\r\n    } else {\r\n      this.itemsErrors.push(`Duplicated Navigation id ${item.id}`);\r\n    };\r\n\r\n    if (this.hasChidren(item)) {\r\n      item.children?.map(child => {\r\n        this.validateNavigationItem(child);\r\n      })\r\n    }\r\n\r\n  }\r\n\r\n  hasChidren(item: IHeaderMenuItem): boolean {\r\n    let result = false;\r\n    Object.keys(item).forEach(key => {\r\n      if (key === \"children\") {\r\n        if (!!item['children']?.length) {\r\n          result = true;\r\n        }\r\n      }\r\n    });\r\n    return result;\r\n  }\r\n\r\n  itemHasChildren(item: IHeaderMenuItem): boolean {\r\n    let result: boolean = false;\r\n    Object.keys(item).forEach(key => {\r\n      if (key === 'children') {\r\n        if (!!item['children']?.length) {\r\n          result = true;\r\n          return;\r\n        }\r\n      };\r\n    });\r\n    return result;\r\n  }\r\n\r\n  setExpandedRecursive(\r\n    item: IHeaderMenuItem,\r\n    currentPath: string,\r\n    currentParentId: string,\r\n    currentLevel: number,\r\n    value: boolean\r\n  ) {\r\n    return;\r\n    /*\r\n    Expanding starts from the root item to the current item\r\n    Collapsing just works with the current item\r\n    */\r\n    if (\r\n      (value === true && item.level! <= currentLevel) ||\r\n      (value === false && item.path === currentPath)\r\n    ) {\r\n      // Other siblings must be close\r\n      if (value === true && item.level === currentLevel && item.path !== currentPath) {\r\n        //item.expanded = false;\r\n      } else {\r\n        //item.expanded = value;\r\n      }\r\n    };\r\n    if (this.itemHasChildren(item)) {\r\n      item.children?.map(child => {\r\n        this.setExpandedRecursive(child, currentPath, currentParentId, currentLevel, value);\r\n      });\r\n    };\r\n  };\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscriptionA.unsubscribe();\r\n    this.subscriptionB.unsubscribe();\r\n  }\r\n\r\n}\r\n","<div>\r\n    <p id=\"skip\" class=\"hide\"><a href=\"#content\">Skip to Content</a></p>\r\n    <h2 class=\"hide\">SmartMenus jQuery Website Menu Plugin</h2>\r\n    <div id=\"nav\">\r\n        <input id=\"main-menu-state\" type=\"checkbox\" [(ngModel)]=\"mainMenuState\">\r\n        <label class=\"main-menu-btn\" for=\"main-menu-state\">\r\n            <span class=\"main-menu-btn-icon\"></span> <span class=\"main-menu-btn-text\">Toggle main menu\r\n                visibility</span> <span class=\"main-menu-btn-title\" aria-hidden=\"true\">\r\n                <span class=\"main-menu-btn-logo main-menu-btn-logo-separator\">\r\n                    <ng-container [ngTemplateOutlet]=\"logoTemplate\"></ng-container>\r\n                </span> {{ mainWindowState }}</span>\r\n        </label>\r\n\r\n        <ul id=\"main-menu\" #mainMenu [class.tan-layout-v1-header-menu-web]=\"mainWindowState==='window'\"\r\n            [class.tan-layout-v1-header-menu-mobile]=\"mainWindowState==='mobile'\"\r\n            class=\"tan-layout-v1-header-menu sm sm-blue collapsed\" data-smartmenus-id=\"smart-bar-main-menu\">\r\n\r\n            <li id=\"first-menu-iem\" class=\"first-menu-iem\"><a title=\"Go to home page\" routerLink=\"/\">\r\n                    <span id=\"logo-menu\">\r\n                        <ng-container [ngTemplateOutlet]=\"logoTemplate\"></ng-container>\r\n                    </span>\r\n                    &nbsp;</a>\r\n            </li>\r\n\r\n            <ng-container *ngIf=\"items?.length\">\r\n                <ng-container *ngFor=\"let item of items\">\r\n                    <app-item [item]=\"item\" [level]=\"1\"></app-item>\r\n                </ng-container>\r\n            </ng-container>\r\n\r\n            <li class=\"parent right-part-item\" *ngIf=\"!!rightIcon\">\r\n                <a (click)=\"rightIcon.function()\" class=\"no-vertical-padding\">\r\n                    <div class=\"right-icon-wrapper\">\r\n                        <i [class]=\"'right-icon ' + rightIcon.featherClass\"></i>\r\n                        <div class=\"right-icon-badge\">\r\n                            {{ rightIcon.badgeCount }}\r\n                        </div>\r\n                    </div>\r\n                </a>\r\n            </li>\r\n\r\n            <app-item class=\"right-part-item\" [item]=\"rightPartHeadeMenuItem\" [level]=\"1\"></app-item>\r\n\r\n        </ul>\r\n    </div>\r\n</div>","import { AfterViewInit, Component, Input, OnInit, OnDestroy, TemplateRef, ViewEncapsulation } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { IHeaderMenuItem } from './header-menu/IHeaderMenuItem';\r\nimport { HeaderMenuService } from './header-menu/header-menu.service';\r\nimport { IRightIcon } from './header-menu/IRightIcon';\r\n\r\n@Component({\r\n  selector: 'app-tan-layout-v1',\r\n  templateUrl: './tan-layout-v1.component.html',\r\n  styleUrls: ['./tan-layout-v1.component.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TanLayoutV1Component implements OnInit, AfterViewInit, OnDestroy {\r\n  @Input() items!: IHeaderMenuItem[];\r\n  @Input() backgroundColor!: string;\r\n  @Input() logoTemplate!: TemplateRef<any>;\r\n  @Input() rightPartHeadeMenuItem!: IHeaderMenuItem;\r\n  @Input() rightIcon!: IRightIcon;\r\n  @Input() footerTemplate!: TemplateRef<any>;\r\n  \r\n  mainWindowState!: string;\r\n  subscription!: Subscription;\r\n\r\n  constructor(private headerMenuService: HeaderMenuService) { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.subscription = this.headerMenuService.mainWindowState$.subscribe(x => {\r\n      setTimeout(() => this.mainWindowState = x, 200)\r\n    });  \r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n      this.subscription.unsubscribe();\r\n  }\r\n\r\n}\r\n","<div id=\"holder\" [style]=\"'background-color: ' + backgroundColor\">\r\n    <div id=\"header\" [class.header-web]=\"mainWindowState==='window'\">\r\n        <div class=\"inner\">\r\n            <app-header-menu \r\n                [items]=\"items\" \r\n                [logoTemplate]=\"logoTemplate\"\r\n                [rightPartHeadeMenuItem]=\"rightPartHeadeMenuItem\"\r\n                [rightIcon]=\"rightIcon\"\r\n            ></app-header-menu>\r\n        </div>\r\n    </div>\r\n    <div id=\"content\">\r\n        <router-outlet></router-outlet>\r\n    </div>\r\n\r\n    <div id=\"footer\" *ngIf=\"!!footerTemplate\">\r\n        <ng-container [ngTemplateOutlet]=\"footerTemplate\"></ng-container>\r\n    </div>\r\n\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { TanLayoutV1Component } from './v1/tan-layout-v1.component';\r\nimport { HeaderMenuComponent } from './v1/header-menu/header-menu.component';\r\nimport { ItemComponent } from './v1/header-menu/item.component';\r\n\r\n@NgModule({\r\n  declarations: [TanLayoutV1Component, HeaderMenuComponent, ItemComponent],\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    FormsModule,\r\n  ],\r\n  exports: [\r\n    TanLayoutV1Component,\r\n    HeaderMenuComponent,\r\n    ItemComponent,\r\n  ]\r\n})\r\nexport class TanLayoutModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TanleicaDomService {\r\n\r\n  constructor() { }\r\n\r\n  getMaxZIndex() {\r\n    return Math.max(\r\n      ...Array.from(document.querySelectorAll('body *'), el =>\r\n        parseFloat(window.getComputedStyle(el).zIndex),\r\n      ).filter(zIndex => !Number.isNaN(zIndex)),\r\n      0,\r\n    );\r\n  }\r\n\r\n  cssStringSizeToNumber(stringSize: string): number | undefined {\r\n    if (!!!stringSize) return undefined\r\n    const length = stringSize.length;\r\n    let currentChar!: string;\r\n    let digitFoundBefore: boolean = false;\r\n    let result: string = ''\r\n    for (let i = 0; i < length; i++) {\r\n      currentChar = stringSize[i];\r\n      if ('0123456789'.indexOf(currentChar) >= 0) {\r\n        result += currentChar;\r\n        digitFoundBefore = true;\r\n      } else {\r\n        if (digitFoundBefore) {\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    return Number(result);\r\n  }\r\n\r\n  getCssStringSizeUnit(stringSize: string): string | undefined {\r\n    if (!!!stringSize) return undefined;\r\n    const numberPart = this.cssStringSizeToNumber(stringSize)!;\r\n    if (!!numberPart) {\r\n      return stringSize.replace(numberPart!.toString(), '')\r\n    } else {\r\n      return undefined;\r\n    }\r\n  }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'tanleica-threedots',\r\n  templateUrl: './threedots.component.html',\r\n  styleUrls: ['./threedots.component.scss']\r\n})\r\nexport class ThreedotsComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"loader-container\">\r\n    <div class=\"loader\"></div>\r\n</div>","import { Component, ElementRef, OnInit, AfterViewInit, ViewChild, Input, TemplateRef } from '@angular/core';\r\nimport { TanleicaDomService } from '../../tan-services/tanleica-dom.service';\r\n\r\n@Component({\r\n  selector: 'tanleica-fullscreen-modal-loader',\r\n  templateUrl: './fullscreen-modal-loader.component.html',\r\n  styleUrls: ['./fullscreen-modal-loader.component.scss']\r\n})\r\nexport class FullscreenModalLoaderComponent implements OnInit, AfterViewInit {\r\n\r\n  @Input() content!: TemplateRef<any>;\r\n\r\n  @ViewChild('container') container!: ElementRef;\r\n\r\n  constructor(private tanleicaDomService: TanleicaDomService) { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      const newZIndex = this.tanleicaDomService.getMaxZIndex() + 1;\r\n      console.log(\"new zIndex\", newZIndex )\r\n    this.container.nativeElement.style.setProperty('--z-index', newZIndex);\r\n    });\r\n  }\r\n\r\n}\r\n","<div #container class=\"tan-fullscreen-modal-loader-container\">\r\n    <div class=\"tan-fullscreen-modal-loader-inner\">\r\n        <div class=\"tan-fullscreen-modal-loader-content\">\r\n            <ng-container [ngTemplateOutlet]=\"!!content ? content : default\"></ng-container>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<ng-template #default>\r\n    <tanleica-threedots></tanleica-threedots>\r\n</ng-template>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ThreedotsComponent } from './threedots/threedots.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    ThreedotsComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    ThreedotsComponent\r\n  ]\r\n})\r\nexport class TanThreedotsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FullscreenModalLoaderComponent } from './fullscreen-modal-loader/fullscreen-modal-loader.component';\r\n\r\nimport { TanThreedotsModule } from '../tan-threedots/tan-threedots.module';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    FullscreenModalLoaderComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    TanThreedotsModule,\r\n  ],\r\n  exports: [\r\n    FullscreenModalLoaderComponent\r\n  ]\r\n})\r\nexport class TanFullscreenModalLoaderModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\r\n\r\nexport interface ITabsToolItemEventData {\r\n  tabIndex: number;\r\n  code: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'tanleica-tabs',\r\n  templateUrl: './tabs.component.html',\r\n  styleUrls: ['./tabs.component.scss']\r\n})\r\nexport class TabsComponent implements OnInit {\r\n\r\n  @Input() headers!: string[];\r\n  @Input() contents!: TemplateRef<any>[];\r\n  @Input() headerTools!: any[];\r\n  @Output() onToolItemClick = new EventEmitter<ITabsToolItemEventData>();\r\n\r\n  activeIndex: number = 0;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  onClick(index: number) {\r\n    this.activeIndex = index;\r\n  }\r\n\r\n  onToolItemClickLocal(code: string) {\r\n    this.onToolItemClick.emit({ tabIndex: this.activeIndex, code })\r\n  }\r\n\r\n}\r\n","<div class=\"tl-tabs-container\">\r\n    <div class=\"tl-tabs-headers-line\">\r\n        <ul class=\"tl-tabs-headers\">\r\n            <li *ngFor=\"let header of headers; let index = index\" [class.active]=\"index === activeIndex\"\r\n                (click)=\"onClick(index)\">{{ header }}</li>\r\n        </ul>\r\n        <div class=\"tl-tabs-headers-line-tools\" *ngIf=\"!!headerTools.length\">\r\n            <div class=\"tl-tabs-headers-line-tools-add\" *ngIf=\"headerTools[activeIndex]?.showAdd\" (click)=\"onToolItemClickLocal('add')\"><label>Thêm</label></div>\r\n            <div \r\n                class=\"tl-tabs-headers-line-tools-approve\" \r\n                [class.disabled]=\"headerTools[activeIndex]?.approveDisable$.value\"\r\n                *ngIf=\"headerTools[activeIndex]?.showApprove\" \r\n                (click)=\"onToolItemClickLocal('approve')\">\r\n                    <label>Phê duyệt</label>\r\n                </div>\r\n                <div class=\"tl-tabs-headers-line-tools-close\" *ngIf=\"headerTools[activeIndex]?.showClose\" (click)=\"onToolItemClickLocal('close')\"><label></label></div>\r\n        </div>\r\n    </div>\r\n    <ul class=\"tl-tabs-contents\">\r\n        <li *ngFor=\"let content of contents; let index = index\" [class.active]=\"index === activeIndex\">\r\n            <div>\r\n                <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n            </div>\r\n        </li>\r\n    </ul>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TabsComponent } from './tabs/tabs.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    TabsComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    TabsComponent,\r\n  ]\r\n})\r\nexport class TanTabsModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n  name: 'tableCell'\r\n})\r\nexport class TableCellPipe implements PipeTransform {\r\n\r\n  transform(value: any, pipe: string | undefined): string {\r\n\r\n    switch (pipe) {\r\n      case 'vnDate':\r\n        if (typeof value.getFullYear === 'function') {\r\n          const y = value.getFullYear();\r\n          let m: string | number = value.getMonth() + 1;\r\n          let d: string | number = value.getDate();\r\n          m = Number(m) < 10 ? '0' + m : m;\r\n          d = Number(d) < 10 ? '0' + d : d;\r\n          return `${d}/${m}/${y}`;\r\n        } else {\r\n          return !!value ? value.toString() : '';\r\n        }\r\n      case 'vnDatetime':\r\n        const dateValue: Date = new Date(value);\r\n\r\n        // type Date\r\n        if (typeof dateValue.getFullYear === 'function') {\r\n          const y = dateValue.getFullYear();\r\n          let m: string | number = dateValue.getMonth() + 1;\r\n          let d: string | number = dateValue.getDate();\r\n          let hh: string | number = dateValue.getHours();\r\n          let mm: string | number = dateValue.getMinutes();\r\n          let ss: string | number = dateValue.getSeconds();\r\n          m = Number(m) < 10 ? '0' + m : m;\r\n          d = Number(d) < 10 ? '0' + d : d;\r\n          hh = Number(hh) < 10 ? '0' + hh : hh;\r\n          mm = Number(mm) < 10 ? '0' + mm : mm;\r\n          ss = Number(ss) < 10 ? '0' + ss : ss;\r\n          return `${d}/${m}/${y} ${hh}:${mm}:${ss}`;\r\n        } else {\r\n          return !!value ? value.toString() : '';\r\n        }\r\n      default:\r\n        return !!value ? value.toString() : '';\r\n    }\r\n  }\r\n\r\n}\r\n","import { Component, ElementRef, Input, OnInit, OnDestroy, AfterViewInit, OnChanges, ViewChild, SimpleChanges, Output, EventEmitter } from '@angular/core';\r\nimport { BehaviorSubject, Subscription, debounceTime, filter, pipe } from 'rxjs';\r\n\r\nexport interface IColItem {\r\n  caption: string;\r\n  field: string;\r\n  type: string;\r\n  pipe?: string;\r\n  align: string;\r\n  width?: number;\r\n  hidden?: boolean;\r\n  renderFn?: (arg: any) => string;\r\n}\r\n\r\nexport enum EToolCode {\r\n  edit = 'edit',\r\n  delete = 'delete',\r\n  complete = 'complete',\r\n  navigate = 'navigate',\r\n}\r\n\r\nexport enum EToolClass {\r\n  edit = 'edit-icon',\r\n  delete = 'delete-icon',\r\n  repeat = 'repeat-icon',\r\n  navigate = 'navigate-icon'\r\n}\r\n\r\nexport interface IToolItem {\r\n  code: EToolCode;\r\n  class: EToolClass;\r\n  caption?: string;\r\n\r\n  /* callbacks to calculate disabled and hiden based on row*/\r\n  disabledFn?: (row: any) => boolean;\r\n  hiddenFn?: (row: any) => boolean;\r\n}\r\n\r\nexport interface IToolClickEventEmitterData {\r\n  code: EToolCode;\r\n  id: string | number;\r\n}\r\n\r\nexport interface ITanTableRowDoubleClickEventEmitterData {\r\n  id: string | number;\r\n}\r\n\r\ninterface IDoubleTouchendData {\r\n  previous: number;\r\n  current: number;\r\n}\r\n\r\n@Component({\r\n  selector: 'tanleica-table',\r\n  templateUrl: './table.component.html',\r\n  styleUrls: ['./table.component.scss']\r\n})\r\nexport class TableComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n\r\n\r\n  /*\r\n  This component displays input data without pagination.\r\n  For paginating please organize from parents\r\n  */\r\n\r\n  @Input() id!: string; // for html id identifying\r\n  @Input() width!: string;\r\n  @Input() height!: string;\r\n  @Input() showCheckbox!: boolean;\r\n  @Input() checkboxSize: number = !!this.showCheckbox ? 18 : 0;\r\n  @Input() showTools!: boolean;\r\n  @Input() tools!: IToolItem[];\r\n  @Input() wrap!: boolean;\r\n  @Input() loading!: boolean;\r\n  @Input() headerHeight!: string;\r\n  @Input() rowHeight!: string;\r\n  @Input() frozen!: number;\r\n  @Input() caption!: any;\r\n  @Input() footer!: any;\r\n  @Input() columns!: IColItem[]; // required\r\n  @Input() data!: any[]; // required\r\n  @Input() selectedIds!: Array<string | number>;\r\n\r\n  @Output() onToolClick = new EventEmitter<IToolClickEventEmitterData>();\r\n  @Output() onRowDoubleClick = new EventEmitter<ITanTableRowDoubleClickEventEmitterData>();\r\n  @Output() onSelectedIdsChange = new EventEmitter<Array<string | number>>();\r\n\r\n  visibleColumns!: IColItem[];\r\n  frozenLefts: number[] = [];\r\n  checkingModel: boolean[] = [];\r\n  headerCheckboxState!: boolean;\r\n  checkingState!: number; // 0=none; 1=all; 2=mixed\r\n\r\n  rowTouchendStream$ = new BehaviorSubject<IDoubleTouchendData>({ previous: -2, current: -1 });\r\n  subscriptions: Subscription[] = [];\r\n\r\n  @ViewChild('tanTable') tanTable!: ElementRef;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n\r\n    /* Validate columns input to make sure one of fields is 'id' */\r\n\r\n    if (!!!this.columns) console.error(this.id + \": Columns are not defined.\");\r\n\r\n    if (this.columns.filter((c: IColItem) => c.field === 'id').length === 0) {\r\n      console.error(this.id + \": The columns must have one with 'field' property === 'id'\");\r\n    }\r\n\r\n    /* Validate the input data to make sure all of its rows have a field called 'id' */\r\n    this.data?.map(row => {\r\n      if (!!!row['id']) {\r\n        console.error(this.id + \": All the rows of input data must have field called 'id'\");\r\n      }\r\n    })\r\n\r\n    this.visibleColumns = this.columns.filter((c: IColItem) => !!!c.hidden)\r\n    if (!!!this.visibleColumns.length)\r\n      console.error(this.id + \": No visible column defined.\");\r\n\r\n\r\n    const frozenColumns = this.visibleColumns.filter((_, index) => index < this.frozen);\r\n\r\n    let left = this.checkboxSize! * 2 || 0; // the first size is for checkbox\r\n    frozenColumns.map(c => {\r\n      if (!!!c.width) console.error(this.id + \": Each frozen column must have its number property 'width'.\");\r\n      this.frozenLefts.push(left);\r\n      left = left + c.width!\r\n    })\r\n\r\n    this.subscriptions.push(\r\n      this.rowTouchendStream$.pipe(\r\n        filter(x => x.current === x.previous),\r\n        debounceTime(200),\r\n      ).subscribe(y => {\r\n        this.onRowDoubleClick.emit({\r\n          id: this.data[y.current].id\r\n        })\r\n      })\r\n    )\r\n\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['data']) {\r\n      const newCheckingModel: boolean[] = [];\r\n      changes['data'].currentValue?.map((_: any) => {\r\n        newCheckingModel.push(false)\r\n      })\r\n      this.checkingModel = newCheckingModel;\r\n    }\r\n    if (changes['checkedIds']) {\r\n      const newCheckingModel: boolean[] = [];\r\n      changes['checkedIds'].currentValue?.map((checkedId: any) => {\r\n        this.data.map((item) => {\r\n          if (item['id'] === checkedId) {\r\n            newCheckingModel.push(true);\r\n          } else {\r\n            newCheckingModel.push(false);\r\n          }\r\n        })\r\n      })\r\n      this.checkingModel = newCheckingModel;\r\n    }\r\n  }\r\n\r\n\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      this.tanTable.nativeElement.style.setProperty('--width', this.width);\r\n      this.tanTable.nativeElement.style.setProperty('--height', this.height);\r\n      this.tanTable.nativeElement.style.setProperty('--header-height', this.headerHeight);\r\n      this.tanTable.nativeElement.style.setProperty('--row-height', this.rowHeight);\r\n    }, 0)\r\n  }\r\n\r\n  onToolClickLocal(rowIndex: number, toolIndex: number): void {\r\n    this.onToolClick.emit({\r\n      code: this.tools[toolIndex].code,\r\n      id: this.data[rowIndex].id\r\n    })\r\n  }\r\n\r\n  toggleCheckAll(args: boolean) {\r\n    const newCheckingModel: boolean[] = [];\r\n    const newSelectedIds: any[] = [];\r\n\r\n    this.data.map(item => {\r\n      newCheckingModel.push(args);\r\n      if (args) {\r\n        newSelectedIds.push(item.id);\r\n      }\r\n    });\r\n\r\n    this.checkingModel = newCheckingModel;\r\n    this.checkingState = args ? 1 : 0;\r\n    this.onSelectedIdsChange.emit(newSelectedIds);\r\n  }\r\n\r\n  onCheckingNgModelChange() {\r\n    const newSelectedIds: number[] = [];\r\n    this.data.filter((_: any, index: number) => !!this.checkingModel[index]).map(item => {\r\n      newSelectedIds.push(item.id)\r\n    })\r\n    this.onSelectedIdsChange.emit(newSelectedIds);\r\n\r\n    if (newSelectedIds.length === 0) {\r\n      this.checkingState = 0; // none\r\n    } else if (newSelectedIds.length === this.checkingModel.length) {\r\n      this.checkingState = 1; // all\r\n    } else {\r\n      this.checkingState = 2; // mixed\r\n    }\r\n\r\n  }\r\n\r\n  onDoubleClickLocal(rowIndex: number) {\r\n    this.onRowDoubleClick.emit({\r\n      id: this.data[rowIndex].id\r\n    })\r\n  }\r\n\r\n  onRowTouchend(rowIndex: number) {\r\n    this.rowTouchendStream$.next({\r\n      previous: this.rowTouchendStream$.value.current,\r\n      current: rowIndex\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subscriptions.length) {\r\n      this.subscriptions.map(x => x.unsubscribe());\r\n    }\r\n  }\r\n\r\n}\r\n","<div #tanTable class=\"tan-table-container\">\r\n    <table [class.wrap]=\"!!wrap\">\r\n        <caption *ngIf=\"!!caption\">Monthly savings</caption>\r\n        <colgroup>\r\n            <col *ngIf=\"showCheckbox\">\r\n            <col *ngFor=\"let col of visibleColumns; let col_index = index\">\r\n            <col *ngIf=\"showTools\">\r\n        </colgroup>\r\n        <thead>\r\n            <tr>\r\n                <th class=\"check-col-header check-cell frozen-col\" *ngIf=\"showCheckbox\" style=\"left: 0px\">\r\n                    <div class=\"checkwrap-container\">\r\n                        <label class=\"checkwrap\">\r\n                            <input type=\"checkbox\" [id]=\"'check-col-header' + id\" [(ngModel)]=\"headerCheckboxState\"\r\n                                (ngModelChange)=\"toggleCheckAll($event)\">\r\n                            <span class=\"checkmark\" [class.mixed]=\"checkingState===2\"></span>\r\n                        </label>\r\n                    </div>\r\n                </th>\r\n                <th *ngFor=\"let col of visibleColumns; let col_index = index\" [class.frozen-col]=\"col_index < frozen\"\r\n                    [style]=\"col_index < frozen ? 'left: ' + frozenLefts[col_index] + 'px' : ''\">\r\n                    <div [style]=\"'width: ' + col.width + 'px;'\">{{ col.caption }}</div>\r\n                </th>\r\n                <th class=\"check-col-header check-cell\" *ngIf=\"showTools\">\r\n                    <div style=\"width: 100px;\">Thao tác</div>\r\n                </th>\r\n            </tr>\r\n        </thead>\r\n        <tanleica-threedots *ngIf=\"loading\"></tanleica-threedots>\r\n        <tbody *ngIf=\"!loading\">\r\n            <tr *ngFor=\"let row of data; let row_index = index\" (dblclick)=\"onDoubleClickLocal(row_index)\" (touchend)=\"onRowTouchend(row_index)\">\r\n                <td *ngIf=\"showCheckbox\" class=\"check-cell frozen-col\" style=\"left: 0px;\">\r\n                    <label class=\"checkwrap\">\r\n                        <input type=\"checkbox\" class=\"check-row\" [id]=\"'check-row' + row_index\"\r\n                            [(ngModel)]=\"checkingModel[row_index]\" (ngModelChange)=\"onCheckingNgModelChange()\">\r\n                        <span class=\"checkmark\"></span>\r\n                    </label>\r\n                </td>\r\n                <td *ngFor=\"let col of visibleColumns; let col_index = index\" [class.frozen-col]=\"col_index < frozen\"\r\n                    [style]=\"col_index < frozen ? 'left: ' + frozenLefts[col_index] + 'px' : ''\">\r\n                    <div [ngStyle]=\"{\r\n                        width: !!col.width ? col.width + 'px' : 'unset',\r\n                        textAlign: !!col.align ? col.align.toLowerCase() : 'unset'\r\n                    }\" *ngIf=\"!!!col?.renderFn\">{{ row[col.field] | tableCell: col.pipe }}</div> <!-- TO DO: Improve with dynamic pipe-->\r\n                    <div *ngIf=\"!!col?.renderFn\" [innerHtml]=\"col.renderFn!(row[col.field])\" [ngStyle]=\"{\r\n                        width: !!col.width ? col.width + 'px' : 'unset',\r\n                        textAlign: !!col.align ? col.align.toLowerCase() : 'unset'\r\n                    }\"></div>\r\n                </td>\r\n                <td *ngIf=\"showTools\">\r\n                    <div class=\"tools-group d-flex-center\">\r\n                        <div *ngFor=\"let tool of tools; let tool_index = index\" \r\n                            [class]=\"'tools-icon ' + tool.class\"\r\n                            [class.disabled]=\"tool.disabledFn ? tool.disabledFn!(row) : false\"\r\n                            [class.hidden]=\"tool.hiddenFn ? tool.hiddenFn!(row) : false\"\r\n                            (click)=\"onToolClickLocal(row_index, tool_index)\"></div>\r\n                    </div>\r\n                </td>\r\n            </tr>\r\n        </tbody>\r\n        <tfoot *ngIf=\"!!footer\">\r\n            Footer\r\n        </tfoot>\r\n    </table>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'vnDate'\r\n})\r\nexport class VnDatePipe implements PipeTransform {\r\n\r\n  transform(value: any): string {\r\n\r\n    const dateValue: Date = new Date(value);\r\n\r\n    console.log(\"dateValue\", dateValue)\r\n\r\n    // type Date\r\n    if (typeof dateValue.getFullYear === 'function') {\r\n      const y = dateValue.getFullYear();\r\n      let m: string | number = dateValue.getMonth() + 1;\r\n      let d: string | number = dateValue.getDate();\r\n      m = Number(m) < 10 ? '0' + m : m;\r\n      d = Number(d) < 10 ? '0' + d : d;\r\n      return `${d}/${m}/${y}`;\r\n    } else {\r\n      return value.toString();\r\n    }\r\n  }\r\n\r\n}\r\n","interface ITranslateDataItem {\r\n    code: string;\r\n    en?: string;\r\n    vn?: string;\r\n    ua?: string;\r\n}\r\n\r\nexport const translateData: ITranslateDataItem[] = [\r\n    {\r\n        code: 'today',\r\n        en: 'Today',\r\n        vn: 'Hôm nay',\r\n        ua: 'Сьогодні',\r\n    },\r\n    {\r\n        code: 'clear',\r\n        en: 'Clear',\r\n        vn: 'Xóa',\r\n        ua: 'Очистити',\r\n    }\r\n]","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { translateData } from './translate-data';\r\n\r\n@Pipe({\r\n  name: 'translate'\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n\r\n  transform(code: string, lang: string): string {\r\n    const tryFind = translateData.filter(x => x.code === code);\r\n    if (!!tryFind.length) {\r\n      const item: any = tryFind[0];\r\n      if (item[lang]) {\r\n        return item[lang];\r\n      } else {\r\n        return code;\r\n      }\r\n    } else {\r\n      return code;\r\n    }\r\n  }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'vnCurrency'\r\n})\r\nexport class VnCurrencyPipe implements PipeTransform {\r\n\r\n  transform(value: number, ...args: unknown[]): string {\r\n    const digits = Math.round(value).toString().split('');\r\n    \r\n    const resultArray: string[]  = [];\r\n    let groupIndex = 0;\r\n    for (let i=digits.length-1; i>-1; i--) {\r\n      resultArray.unshift(digits[i]);\r\n      groupIndex++;\r\n      if (groupIndex > 0 && groupIndex % 3 === 0) {\r\n        resultArray.unshift('.');\r\n      }\r\n      \r\n    }\r\n\r\n    // remove the first separator if any\r\n    if (resultArray[0] === '.') {\r\n      resultArray.shift();\r\n    }\r\n\r\n    return resultArray.join('') + ' đ';\r\n  }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'vnDatetime'\r\n})\r\nexport class VnDatetimePipe implements PipeTransform {\r\n\r\n  transform(value: any): string {\r\n\r\n    const dateValue: Date = new Date(value);\r\n\r\n    // type Date\r\n    if (typeof dateValue.getFullYear === 'function') {\r\n      const y = dateValue.getFullYear();\r\n      let m: string | number = dateValue.getMonth() + 1;\r\n      let d: string | number = dateValue.getDate();\r\n      let hh: string | number = dateValue.getHours();\r\n      let mm: string | number = dateValue.getMinutes();\r\n      let ss: string | number = dateValue.getSeconds();\r\n      m = Number(m) < 10 ? '0' + m : m;\r\n      d = Number(d) < 10 ? '0' + d : d;\r\n      hh = Number(hh) < 10 ? '0' + hh : hh;\r\n      mm = Number(mm) < 10 ? '0' + mm : mm;\r\n      ss = Number(ss) < 10 ? '0' + ss : ss;\r\n      return `${d}/${m}/${y} ${hh}:${mm}:${ss}`;\r\n    } else {\r\n      return value.toString();\r\n    }\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { VnDatePipe } from './vn-date.pipe';\r\nimport { TableCellPipe } from './table-cell.pipe';\r\nimport { TranslatePipe } from './translate.pipe';\r\nimport { VnCurrencyPipe } from './vn-currency.pipe';\r\nimport { VnDatetimePipe } from './vn-datetime.pipe';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    VnDatePipe,\r\n    TableCellPipe,\r\n    TranslatePipe,\r\n    VnCurrencyPipe,\r\n    VnDatetimePipe,\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    VnDatePipe,\r\n    VnDatetimePipe,\r\n    TableCellPipe,\r\n    TranslatePipe,\r\n    VnCurrencyPipe,\r\n  ]\r\n})\r\nexport class TanPipesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TanPipesModule } from '../tan-pipes/tan-pipes.module';\r\nimport { TanThreedotsModule } from '../tan-threedots/tan-threedots.module';\r\nimport { TableComponent } from './table/table.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    TableComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    TanPipesModule,\r\n    TanThreedotsModule,\r\n  ],\r\n  exports: [TableComponent]\r\n})\r\nexport class TanTableModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  OnInit,\r\n  OnChanges,\r\n  AfterViewInit,\r\n  OnDestroy,\r\n  SimpleChanges,\r\n  Renderer2,\r\n  ViewChild,\r\n  ElementRef\r\n} from '@angular/core';\r\nimport {\r\n  ControlValueAccessor,\r\n  NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { TanleicaDomService } from '../../tan-services/tanleica-dom.service';\r\n\r\nexport interface ITanDropdownOption {\r\n  value: string | number | boolean; \r\n  text: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'tanleica-dropdown',\r\n  templateUrl: './dropdown.component.html',\r\n  styleUrls: ['./dropdown.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      multi: true,\r\n      useExisting: DropdownComponent\r\n    },\r\n  ]\r\n})\r\nexport class DropdownComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n\r\n  @Input() options!: ITanDropdownOption[];\r\n  @Input() height!: string;\r\n  @Input() placeholder: string = '';\r\n  @Input() loading!: boolean;\r\n  @ViewChild('container') container!: ElementRef;\r\n\r\n  localOptions!: ITanDropdownOption[];\r\n\r\n  value!: string | number | boolean;\r\n\r\n  value$ = new BehaviorSubject<string | number | null>(null);\r\n  options$ = new BehaviorSubject<{ value: string | number; text: string }[]>([]);\r\n\r\n  text!: string;\r\n  searchText!: string;\r\n  expandState!: boolean;\r\n\r\n  listenerFn!: () => void;\r\n\r\n  onChange = (_: any) => { };\r\n\r\n  onTouched = () => { };\r\n\r\n  touched = false;\r\n\r\n  disabled = false;\r\n\r\n  constructor(\r\n    private renderer: Renderer2,\r\n    private tanleicaDomService: TanleicaDomService\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    this.value$.subscribe(x => this.setText(x, this.options$.value));\r\n    this.options$.subscribe(x => this.setText(this.value$.value, x));\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    /**\r\n    * This events get called by all clicks on the page\r\n    */\r\n    this.listenerFn = this.renderer.listen('window', 'click', (e: Event) => {\r\n      /*\r\n       * handle click outside\r\n       */\r\n      if (this.container && !!!this.container.nativeElement.contains(e.target)) {\r\n        this.expandState = false;\r\n      }\r\n    })\r\n\r\n    const maxZIndex =this.tanleicaDomService.getMaxZIndex();\r\n    this.container.nativeElement.style.setProperty('--max-z-index', maxZIndex);\r\n    this.container.nativeElement.style.setProperty('--height', this.height || '45px');\r\n  }\r\n\r\n  setText(value: string | number | null, options: { value: string | number; text: string }[]) {\r\n    const filtered = options?.filter((option: { value: string | number; text: string }) => option.value === value);\r\n    if (!!filtered?.length) {\r\n      this.text = filtered[0].text;\r\n    } else {\r\n      this.text = '';\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    // unsubscribe\r\n    if (this.listenerFn) this.listenerFn();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (!!!changes['options']) return;\r\n    this.localOptions = changes['options']?.currentValue;\r\n    this.options$.next(changes['options']?.currentValue);\r\n  }\r\n\r\n  writeValue(obj: string | number): void {\r\n    this.value = obj;\r\n    this.value$.next(obj);\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\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(disabled: boolean) {\r\n    this.disabled = disabled;\r\n  }\r\n\r\n  onSearchTextChange(value: string) {\r\n    this.localOptions = this.options.filter(x => x.text.toLowerCase().indexOf(value.toLocaleLowerCase()) >= 0);\r\n  }\r\n\r\n  onListItemClick(index: number): void {\r\n    this.value = this.localOptions[index].value;\r\n    this.text = this.localOptions[index].text;\r\n    this.markAsTouched();\r\n    setTimeout(() => {\r\n      this.toggleExpanded();\r\n      this.onChange(this.value);\r\n    }, 0); // without setTimeout this.expandState won't change\r\n  }\r\n\r\n  toggleExpanded(): void {\r\n    this.expandState = !!!this.expandState;\r\n  }\r\n\r\n}\r\n","<tanleica-threedots *ngIf=\"loading\"></tanleica-threedots>\r\n<div #container class=\"tl-dropdown-container\" *ngIf=\"!loading\">\r\n    <input type=\"checkbox\" class=\"expand-state\" [(ngModel)]=\"expandState\">\r\n    <input class=\"value\" [value]=\"value\">\r\n    <label type=\"text\" class=\"text form-control\">\r\n        <span>{{ text || placeholder }}</span>\r\n        <div class=\"icon\" (click)=\"toggleExpanded()\">\r\n            <i class=\"feather-chevron-down\"></i>\r\n        </div>\r\n    </label>\r\n    <div class=\"dropdown\">\r\n        <input class=\"search\" type=\"text\" placeholder=\"Search here...\" [(ngModel)]=\"searchText\"\r\n            (ngModelChange)=\"onSearchTextChange($event)\">\r\n        <ul>\r\n            <li *ngFor=\"let option of localOptions; let index = index\" (click)=\"onListItemClick(index)\">\r\n                <label>{{ option.text }}</label>\r\n            </li>\r\n        </ul>\r\n    </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DropdownComponent } from './dropdown/dropdown.component';\r\nimport { TanThreedotsModule } from '../tan-threedots/tan-threedots.module'\r\n\r\n@NgModule({\r\n  declarations: [\r\n    DropdownComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    TanThreedotsModule,\r\n  ],\r\n  exports: [\r\n    DropdownComponent,\r\n  ]\r\n})\r\nexport class TanDropdownModule { }\r\n","import { AfterViewInit, Component, ElementRef, Input, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { TanleicaDomService } from '../../tan-services/tanleica-dom.service';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'tanleica-dropdown-autocomplete',\r\n  templateUrl: './dropdown-autocomplete.component.html',\r\n  styleUrls: ['./dropdown-autocomplete.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      multi: true,\r\n      useExisting: DropdownAutocompleteComponent\r\n    }\r\n  ]\r\n})\r\nexport class DropdownAutocompleteComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n\r\n  @Input() options!: { value: string | number | boolean; text: string }[];\r\n  @Input() textAsNumber!: boolean;\r\n  @Input() height!: string;\r\n  @ViewChild('container') container!: ElementRef;\r\n  @ViewChild('input') input!: ElementRef;\r\n\r\n  localOptions!: { value: string | number | boolean; text: string }[];\r\n\r\n  value!: string | number | boolean | null;\r\n\r\n  value$ = new BehaviorSubject<string | number | null>(null);\r\n  options$ = new BehaviorSubject<{ value: string | number; text: string }[]>([]);\r\n\r\n  text: string = '';\r\n  suggestedValue!: string | number | null;\r\n  suggestedText: string = '';\r\n  searchText!: string;\r\n  expandState!: boolean;\r\n\r\n  listenerFn!: () => void;\r\n  inputBlurListenerFn!: () => void;\r\n\r\n  onChange = (_: any) => { };\r\n\r\n  onTouched = () => { };\r\n\r\n  touched = false;\r\n\r\n  disabled = false;\r\n\r\n  constructor(\r\n    private renderer: Renderer2,\r\n    private tanleicaDomService: TanleicaDomService\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    this.value$.subscribe(x => this.setText(x, this.options$.value));\r\n    this.options$.subscribe(x => this.setText(this.value$.value, x));\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    /**\r\n    * This events get called by all clicks on the page\r\n    */\r\n    this.listenerFn = this.renderer.listen('window', 'click', (e: Event) => {\r\n      /*\r\n       * handle click outside\r\n       */\r\n      if (this.container && !!!this.container.nativeElement.contains(e.target)) {\r\n        this.expandState = false;\r\n      }\r\n    })\r\n\r\n    this.inputBlurListenerFn = this.renderer.listen(this.input.nativeElement, 'blur', _ => {\r\n      if (this.suggestedText === '') {\r\n        if (this.text !== '') {\r\n          setTimeout(() => {\r\n            this.input.nativeElement.focus();\r\n          })\r\n        }\r\n      } else {\r\n\r\n        const regex = new RegExp(/^(([1-9]*)|(([1-9]*)\\.([0-9]*)))$/g);\r\n        const isNumber = regex.test(this.text);\r\n\r\n        if (!isNumber && !!this.textAsNumber) {\r\n          setTimeout(() => {\r\n            this.input.nativeElement.focus();\r\n          })\r\n        } else {\r\n          this.text = this.suggestedText;\r\n          this.markAsTouched();\r\n          this.value = this.suggestedValue;\r\n          this.onChange(this.value);\r\n        }\r\n      }\r\n    })\r\n\r\n    const maxZIndex = this.tanleicaDomService.getMaxZIndex();\r\n    this.container.nativeElement.style.setProperty('--max-z-index', maxZIndex);\r\n    this.container.nativeElement.style.setProperty('--height', this.height || '45px');\r\n  }\r\n\r\n  setText(value: string | number | null, options: { value: string | number; text: string }[]) {\r\n    const filtered = options?.filter((option: { value: string | number; text: string }) => option.value === value);\r\n    if (!!filtered?.length) {\r\n      this.text = filtered[0].text;\r\n      this.suggestedText = this.text;\r\n      this.suggestedValue = value;\r\n    } else {\r\n      this.text = '';\r\n      this.suggestedText = '';\r\n      this.suggestedValue = null;\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.listenerFn) this.listenerFn();\r\n    if (this.inputBlurListenerFn) this.inputBlurListenerFn();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (!!!changes['options']) return;\r\n    this.localOptions = changes['options']?.currentValue;\r\n    this.options$.next(changes['options']?.currentValue);\r\n  }\r\n\r\n  writeValue(obj: string | number): void {\r\n    this.value = obj;\r\n    this.value$.next(obj);\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\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(disabled: boolean) {\r\n    this.disabled = disabled;\r\n  }\r\n\r\n  onListItemClick(index: number): void {\r\n    this.value = this.localOptions[index].value;\r\n    this.text = this.localOptions[index].text;\r\n    this.suggestedText = this.text;\r\n    this.markAsTouched();\r\n    setTimeout(() => {\r\n      this.toggleExpanded();\r\n      this.onChange(this.value);\r\n    }, 0); // without setTimeout this.expandState won't change\r\n  }\r\n\r\n  toggleExpanded(): void {\r\n    this.expandState = !!!this.expandState;\r\n  }\r\n\r\n  onTextChange(e: string) {\r\n    if (!!!e.length) {\r\n      this.suggestedText = '';\r\n      this.suggestedValue = null;\r\n      this.value = null;\r\n      this.markAsTouched();\r\n      this.onChange(null);\r\n    } else {\r\n      const filter = this.options.filter(o => o.text.indexOf(e) === 0);\r\n      if (!!filter.length) {\r\n        this.suggestedText = filter[0].text;\r\n        this.suggestedValue = filter[0].value as any;\r\n        if (filter.length === 1) {\r\n          this.value = filter[0].value;\r\n          this.markAsTouched();\r\n          this.onChange(this.value);\r\n        }\r\n      } else {\r\n        this.suggestedText = '';\r\n        this.suggestedValue = null;\r\n        this.value = null;\r\n        this.markAsTouched();\r\n        this.onChange(null);\r\n      }\r\n    }\r\n  }\r\n\r\n}","<div #container class=\"tl-dropdown-autocomplete-container\">\r\n    <input type=\"checkbox\" class=\"expand-state\" [(ngModel)]=\"expandState\">\r\n    <input class=\"value\" [value]=\"value\">\r\n    <span class=\"input-wrapper\">\r\n        <input #input type=\"text\" class=\"text form-control\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\">\r\n        <input type=\"text\" class=\"suggested-text form-control\" [(ngModel)]=\"suggestedText\" disabled>\r\n        <label class=\"icon\" (click)=\"toggleExpanded()\">\r\n            <i class=\"feather-chevron-down\"></i>\r\n        </label>\r\n    </span>\r\n    <div class=\"dropdown\">\r\n        <ul>\r\n            <li *ngFor=\"let option of localOptions; let index = index\" (click)=\"onListItemClick(index)\">\r\n                <label>{{ option.text }}</label>\r\n            </li>\r\n        </ul>\r\n    </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DropdownAutocompleteComponent } from './dropdown-autocomplete/dropdown-autocomplete.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    DropdownAutocompleteComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    DropdownAutocompleteComponent\r\n  ]\r\n})\r\nexport class TanDropdownAutocompleteModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'tanleica-checkbox',\r\n  templateUrl: './checkbox.component.html',\r\n  styleUrls: ['./checkbox.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      multi: true,\r\n      useExisting: CheckboxComponent\r\n    }\r\n  ]\r\n})\r\nexport class CheckboxComponent implements OnInit, ControlValueAccessor {\r\n\r\n  @Input() id!: string;\r\n  @Input() text!: string;\r\n\r\n  value!: boolean;\r\n\r\n  onChange = (_: any) => { };\r\n\r\n  onTouched = () => { };\r\n\r\n  touched = false;\r\n\r\n  disabled = false;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  writeValue(obj: boolean): void {\r\n    this.value = obj;\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\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(disabled: boolean) {\r\n    this.disabled = disabled;\r\n  }\r\n\r\n  onValueChange(event: any) {\r\n    this.onChange(this.value);\r\n  }\r\n\r\n}\r\n","<input type=\"checkbox\" [id]=\"'tl-checkbox' + id\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\">\r\n\r\n<label class=\"tl-checkbox-container\" [for]=\"'tl-checkbox' + id\">\r\n    <span class=\"checkmark\"></span>\r\n    {{ text }}\r\n</label>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    CheckboxComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    CheckboxComponent\r\n  ]\r\n})\r\nexport class TanCheckboxModule { }\r\n","import { AfterViewInit, Component, ElementRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\nexport enum EnumTanIosSwitcherLabelType {\r\n  enNoYes = \"enNoYes\",\r\n  enFalseTrue = \"enFalseTrue\",\r\n  vnNoYes = \"vnNoYes\",\r\n  vnFalseTrue = \"vnFalseTrue\",\r\n  ruNoYes = \"ruNoYes\",\r\n  ruFalseTrue = \"ruFalseTrue\",\r\n  uaNoYes = \"uaNoYes\",\r\n  uaFalseTrue = \"uaFalseTrue\",\r\n}\r\n\r\nconst miniTranslateData: any = {\r\n  enNoYes: ['No', 'Yes'],\r\n  enFalseTrue: ['False', 'True'],\r\n  vnNoYes: ['Không', 'Có'],\r\n  vnFalseTrue: ['Sai', 'Đúng'],\r\n  ruNoYes: ['Нет', 'Да'],\r\n  ruFalseTrue: ['Неправильно', 'Правильно'],\r\n  uaNoYes: ['Ні', 'Так'],\r\n  uaFalseTrue: ['Неправильно', 'Правильно'],\r\n}\r\n\r\n@Component({\r\n  selector: 'tanleica-ios-switcher',\r\n  templateUrl: './ios-switcher.component.html',\r\n  styleUrls: ['./ios-switcher.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      multi: true,\r\n      useExisting: IosSwitcherComponent\r\n    }\r\n  ]\r\n})\r\nexport class IosSwitcherComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n\r\n  @Input() labelType: EnumTanIosSwitcherLabelType = EnumTanIosSwitcherLabelType.enNoYes;\r\n  @Input() bgColor!: string;\r\n\r\n  @ViewChild('container') container!: ElementRef;\r\n\r\n  value!: boolean;\r\n  value$ = new BehaviorSubject<boolean | null>(null);\r\n  labelText!: string;\r\n  onChange = (_: any) => { };\r\n  onTouched = () => { };\r\n  \r\n  subscriptions: Subscription[] = [];\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n    this.subscriptions.push(\r\n      this.value$.subscribe(x => {\r\n        this.value = x!;\r\n        this.onChange(x!);\r\n        const index = x ? 1 : 0;\r\n        this.labelText = miniTranslateData[this.labelType][index];\r\n      })\r\n    )\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => this.container.nativeElement.style.setProperty('--outer-truely-bg-color', this.bgColor))\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subscriptions.length) {\r\n      this.subscriptions.map(s => {\r\n        s.unsubscribe();\r\n      })\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    \r\n  }\r\n\r\n  writeValue(obj: boolean): void {\r\n    this.value = obj;\r\n    const index = obj ? 1 : 0;\r\n    this.labelText = miniTranslateData[this.labelType][index];\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\r\n  onValueChange(event: any) {\r\n    this.onChange(this.value);\r\n  }\r\n\r\n  onClick(): void {\r\n    this.value$.next(!this.value$.value);\r\n  }\r\n\r\n}\r\n","<input type=\"checkbox\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\">\r\n\r\n<label #container class=\"tl-ios-switcher-container\">\r\n\r\n    <div class=\"outer\" [class.truely]=\"value\" (click)=\"onClick()\">\r\n        <div class=\"circle\"></div>\r\n        <label>{{ labelText }}</label>\r\n    </div>\r\n\r\n</label>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { IosSwitcherComponent } from './ios-switcher/ios-switcher.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    IosSwitcherComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    IosSwitcherComponent\r\n  ]\r\n})\r\nexport class TanIosSwitcherModule { }\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, AfterViewInit, OnDestroy, Output, ViewChild } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'tanleica-pagination',\r\n  templateUrl: './pagination.component.html',\r\n  styleUrls: ['./pagination.component.scss']\r\n})\r\nexport class PaginationComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n  @Input() currentPage$!: BehaviorSubject<number>;\r\n  @Input() pageCount!: number;\r\n  @Input() loading!: boolean;\r\n  @Input() showAdd!: boolean;\r\n  @Input() background!: string;\r\n  @Output() onClickAdd = new EventEmitter();\r\n\r\n  @ViewChild('container') container!: ElementRef;\r\n  @ViewChild('current') current!: ElementRef;\r\n\r\n  navigationDirection: number = 1;\r\n  mouseDownStream$!: Observable<any>;\r\n  touchStartStream$!: Observable<any>;\r\n  mouseUpStream$!: Observable<any>;\r\n  touchEndStream$!: Observable<any>;\r\n  mouseDownSubscription$!: Subscription;\r\n  touchStartSubscription$!: Subscription;\r\n  mouseUpSubscription$!: Subscription;\r\n  touchEndSubscription$!: Subscription;\r\n\r\n\r\n  currentButtonContent!: string;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n    this.currentPage$.subscribe(x => this.currentButtonContent = x.toString());\r\n  }\r\n\r\n  goFirst() {\r\n    this.navigationDirection = -1;\r\n    if (!!this.pageCount) setTimeout(() => this.currentPage$.next(1));\r\n  }\r\n\r\n  goLast() {\r\n    this.navigationDirection = 1;\r\n    if (!!this.pageCount) setTimeout(() => this.currentPage$.next(this.pageCount));\r\n  }\r\n\r\n  goPrevious() {\r\n    this.navigationDirection = -1;\r\n    if (this.currentPage$.value > 1) setTimeout(() => this.currentPage$.next(this.currentPage$.value - 1));\r\n  }\r\n\r\n  goNext() {\r\n    this.navigationDirection = 1;\r\n    if (this.currentPage$.value < this.pageCount) setTimeout(() => this.currentPage$.next(this.currentPage$.value + 1));\r\n  }\r\n\r\n  onClickAddLocal() {\r\n    this.onClickAdd.emit();\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n\r\n    this.mouseDownStream$ = fromEvent(this.current.nativeElement, 'mousedown', _ => {\r\n      this.currentButtonContent = `${this.currentPage$.value}/${this.pageCount}`;\r\n    });\r\n    this.touchStartStream$ = fromEvent(this.current.nativeElement, 'touchstart', _ => {\r\n      this.currentButtonContent = `${this.currentPage$.value}/${this.pageCount}`;\r\n    });\r\n\r\n\r\n    this.mouseUpStream$ = fromEvent(this.current.nativeElement, 'mouseup', _ => {\r\n      this.currentButtonContent = `${this.currentPage$.value}`;\r\n    });\r\n    this.touchEndStream$ = fromEvent(this.current.nativeElement, 'touchend', _ => {\r\n      this.currentButtonContent = `${this.currentPage$.value}`;\r\n    });\r\n\r\n\r\n    this.mouseDownSubscription$ = this.mouseDownStream$.subscribe();\r\n    this.touchStartSubscription$ = this.touchStartStream$.subscribe();\r\n    this.mouseUpSubscription$ = this.mouseUpStream$.subscribe();\r\n    this.touchEndSubscription$ = this.touchEndStream$.subscribe();\r\n\r\n    if (this.background) setTimeout(() => this.container.nativeElement.style.setProperty('--bg', this.background));\r\n    \r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.mouseDownSubscription$) this.mouseDownSubscription$.unsubscribe();\r\n    if (this.touchStartSubscription$) this.touchStartSubscription$.unsubscribe();\r\n    if (this.mouseUpSubscription$) this.mouseUpSubscription$.unsubscribe();\r\n    if (this.touchEndSubscription$) this.touchEndSubscription$.unsubscribe();\r\n\r\n  }\r\n\r\n}\r\n","<div #container class=\"pagination-container d-flex-between\">\r\n    <div class=\"pagination-container\">\r\n        <div class=\"first\" [class.disable]=\"!!!pageCount || currentPage$.value===1\" (click)=\"goFirst()\"></div>\r\n        <div class=\"previous\" [class.disable]=\"!!!pageCount || currentPage$.value===1\" (click)=\"goPrevious()\"></div>\r\n        <div #current class=\"current\">\r\n            <div class=\"d-flex-center\">\r\n                <i class=\"feather-aperture aperture\" [class.visible]=\"loading\"\r\n                [ngStyle]=\"{\r\n                    animationName: navigationDirection === 1 ? 'rotate-current-content-fw' : 'rotate-current-content-bw'\r\n                }\"\r\n                ></i>\r\n                <span class=\"current-text\" *ngIf=\"!loading\">{{ currentButtonContent }}</span>\r\n            </div>\r\n        </div>\r\n        <div class=\"next\" [class.disable]=\"!!!pageCount || currentPage$.value===pageCount\" (click)=\"goNext()\"></div>\r\n        <div class=\"last\" [class.disable]=\"!!!pageCount || currentPage$.value===pageCount\" (click)=\"goLast()\"></div>\r\n    </div>\r\n    <a (click)=\"onClickAddLocal()\" *ngIf=\"showAdd\">\r\n        <div class=\"add\"></div>\r\n    </a>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaginationComponent } from './pagination/pagination.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    PaginationComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    PaginationComponent\r\n  ]\r\n})\r\nexport class TanPaginationModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  OnInit,\r\n  OnChanges,\r\n  AfterViewInit,\r\n  OnDestroy,\r\n  SimpleChanges,\r\n  Renderer2,\r\n  ViewChild,\r\n  ElementRef\r\n} from '@angular/core';\r\n\r\nimport {\r\n  ControlValueAccessor,\r\n  NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'tanleica-input-search',\r\n  templateUrl: './input-search.component.html',\r\n  styleUrls: ['./input-search.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      multi: true,\r\n      useExisting: InputSearchComponent\r\n    }\r\n  ]\r\n})\r\nexport class InputSearchComponent implements OnInit, ControlValueAccessor {\r\n\r\n  @Input() type: string = 'text';\r\n\r\n  value!: any;\r\n\r\n  onChange = (_: any) => { };\r\n\r\n  onTouched = () => { };\r\n\r\n  touched = false;\r\n\r\n  disabled = false;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  writeValue(obj: any): void {\r\n    this.value = obj;\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\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  onValueChange(value: any) {\r\n    this.markAsTouched();\r\n    this.onChange(value);\r\n  }\r\n\r\n}\r\n","<div #container class=\"tl-input-search-container\">\r\n    <input type=\"type\" class=\"form-control\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\">\r\n    <div class=\"icon\">\r\n    </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { InputSearchComponent } from './input-search/input-search.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    InputSearchComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    InputSearchComponent\r\n  ]\r\n})\r\nexport class TanInputSearchModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class OnboardLineService {\r\n\r\n  constructor() { }\r\n\r\n  private dateToVnDate(date: Date): string {\r\n    let day: number | string = date.getDate();\r\n    let month: number | string = date.getMonth() + 1;\r\n    const year = date.getFullYear();\r\n    day = day < 10 ? '0' + day : day;\r\n    month = month < 10 ? '0' + month : month;\r\n    return `${day}/${month}/${year}`\r\n  }\r\n\r\n  private dateToVnDateNoYear(date: Date): string {\r\n    let day: number | string = date.getDate();\r\n    let month: number | string = date.getMonth() + 1;\r\n    day = day < 10 ? '0' + day : day;\r\n    month = month < 10 ? '0' + month : month;\r\n    return `${day}/${month}`    \r\n  }\r\n\r\n  datesToPeriodText(date1: Date, date2: Date): string {\r\n    let result = '';\r\n    if (date1.getFullYear() === date2.getFullYear()) {\r\n      result = this.dateToVnDateNoYear(date1) + ' - ' + this.dateToVnDate(date2);\r\n    } else {\r\n      result = this.dateToVnDate(date1) + ' - ' + this.dateToVnDate(date2);\r\n    }\r\n    return result;\r\n  }\r\n}\r\n","import { Component, ViewChild, EventEmitter, Input, OnInit, AfterViewInit, Output, ElementRef } from '@angular/core';\r\nimport { OnboardLineService } from '../onboard-line.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport interface IOnboardLineInputItem {\r\n  caption: string;\r\n  fromDate: Date;\r\n  toDate: Date;\r\n  done: boolean;\r\n}\r\n\r\ninterface ILocalItem extends IOnboardLineInputItem {\r\n  periodText: string;\r\n  activated: boolean;\r\n}\r\n\r\n@Component({\r\n  selector: 'tanleica-onboard-line',\r\n  templateUrl: './onboard-line.component.html',\r\n  styleUrls: ['./onboard-line.component.scss']\r\n})\r\nexport class OnboardLineComponent implements OnInit, AfterViewInit {\r\n\r\n  @Input() title!: string;\r\n  @Input() items!: IOnboardLineInputItem[];\r\n  @Input() color!: string;\r\n  @Input() selectedColor!: string;\r\n  @Input() selectedIndex!: number;\r\n  @Output() onSelectedIndexChange = new EventEmitter<number>()\r\n  @Output() onItemsChange = new EventEmitter<IOnboardLineInputItem[]>()\r\n\r\n  @ViewChild('container') container!: ElementRef;\r\n\r\n  localItems!: ILocalItem[];\r\n\r\n  constructor(private onboardLineService: OnboardLineService) { }\r\n\r\n  ngOnInit(): void {\r\n    const newLocalItems: ILocalItem[] = [];\r\n    const today = new Date();\r\n    this.items?.map((item: IOnboardLineInputItem) => {\r\n      const periodText = this.onboardLineService.datesToPeriodText(item.fromDate, item.toDate)\r\n      newLocalItems.push({\r\n        ...item,\r\n        periodText,\r\n        activated: item.fromDate < today \r\n      })\r\n    })\r\n    this.localItems = newLocalItems;\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.container.nativeElement.style.setProperty('--color', this.color);\r\n    this.container.nativeElement.style.setProperty('--selected-color', this.selectedColor);\r\n  }\r\n\r\n  onIconClick(index: number) {\r\n    this.selectedIndex = index;\r\n    this.onSelectedIndexChange.emit(index);\r\n  }\r\n\r\n}\r\n","<div #container class=\"onboard-line-container\">\r\n    <div class=\"title\">{{ title }}</div>\r\n    <div class=\"line-container\">\r\n        <div *ngFor=\"let item of localItems; let index=index\" class=\"stages-wrapper\" [class.activated]=\"item.activated\">\r\n            <div class=\"item\">\r\n                <div class=\"icon\" [class.done]=\"item.done\" [class.selected]=\"index === selectedIndex\" (click)=\"onIconClick(index)\">\r\n                    <i class=\"feather-check inner-icon\"></i>\r\n                </div>\r\n                <div class=\"text-wrapper\">\r\n                    <div class=\"stage\">{{ item.caption }}</div>\r\n                    <div class=\"time-mark\">{{ item.periodText }}</div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OnboardLineComponent } from './onboard-line/onboard-line.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    OnboardLineComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    OnboardLineComponent\r\n  ]\r\n})\r\nexport class TanOnboardLineModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nexport interface IQuote {\r\n  id: number,\r\n  authorId: number,\r\n  author: string,\r\n  born?: number,\r\n  dead?: number,\r\n  portraitLink: string,\r\n  quoteText: string,\r\n}\r\n\r\n@Component({\r\n  selector: 'tanleica-quote',\r\n  templateUrl: './quote.component.html',\r\n  styleUrls: ['./quote.component.scss']\r\n})\r\nexport class QuoteComponent implements OnInit {\r\n\r\n  @Input() quote!: IQuote;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"tl-quote-container\">\r\n    <div class=\"box\">\r\n        <i class=\"fas fa-quote-left fa2\"></i>\r\n        <div class=\"text\">\r\n            <i class=\"fas fa-quote-right fa1\"></i>\r\n            <img [src]=\"'https://miukafoto.com' + quote!.portraitLink\">\r\n            <div class=\"scroll-content\">\r\n                <h3>{{ quote!.author }}</h3>\r\n                <p>{{ quote!.quoteText }}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QuoteComponent } from './quote/quote.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    QuoteComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    QuoteComponent\r\n  ]\r\n})\r\nexport class TanQuoteModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\nconst WEEKDAYS_SHORT: any = {\r\n  vn: ['T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'CN'],\r\n  en: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],\r\n  ua: ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Нд'],\r\n};\r\n\r\nconst WEEKDAYS: any = {\r\n  vn: ['Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7', 'Chủ nhật'],\r\n  en: ['Monday', 'Tuesday', 'Wenesday', 'Thurday', 'Friday', 'Saturday', 'Sunday'],\r\n  ua: ['Понеділок', 'Вівторок', 'Середа', 'Четвер', \"П'ятниця\", 'Субота', 'Неділя'],\r\n};\r\n\r\nconst MONTHS: any = {\r\n  vn: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\r\n  en: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\r\n  ua: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень ', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'],\r\n};\r\n\r\nexport interface IDataItem {\r\n  date: string;\r\n  currentMonth?: boolean;\r\n  dateValue: Date;\r\n}\r\n\r\nexport interface IDataRow {\r\n  items: IDataItem[];\r\n  mixed: boolean;\r\n}\r\n\r\nexport interface ICalendarBody {\r\n  rows: IDataRow[];\r\n}\r\n\r\nexport interface IDecadeYearsObject {\r\n  title: string;\r\n  items: number[][];\r\n}\r\n\r\nexport interface IMonthIdentity {\r\n  year: number;\r\n  monthIndex: number;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TanleicaDatetimeService {\r\n\r\n  constructor() { }\r\n\r\n  getMonthText(lang: string, monthIndex: number): string {\r\n    /*\r\n    monthIndex does not need to be in range [0-11].\r\n    Thus, get the index first\r\n    I use 2023 as computing year, but it can be whatever\r\n    */\r\n\r\n    const realIndex: number = (new Date(2023, monthIndex)).getMonth();\r\n\r\n    return MONTHS[lang][realIndex];\r\n  }\r\n\r\n  dateToVnString(date: Date): string {\r\n    if (typeof date.getFullYear !== 'function') {\r\n      return date.toString();\r\n    }\r\n    const y = date.getFullYear();\r\n    let m: number | string = date.getMonth() + 1;\r\n    let d: number | string = date.getDate();\r\n    m = m < 10 ? '0' + m : m;\r\n    d = d < 10 ? '0' + d : d;\r\n    return `${d}/${m}/${y}`\r\n  }\r\n\r\n  getShortWeekdays(lang: string) {\r\n    return WEEKDAYS_SHORT[lang];\r\n  }\r\n\r\n  getWeekdays(lang: string) {\r\n    return WEEKDAYS[lang];\r\n  }\r\n\r\n  getMonthNames(lang: string) {\r\n    return MONTHS[lang];\r\n  }\r\n\r\n  private getMonoCalendarBody(year: number, monthIndex: number): IDataRow[] {\r\n    /* \r\n    the monthIndex in Date() constructor does not need to be in range 0-11\r\n    the day in Date() constructor does not need to be in range of positive numbers\r\n    */\r\n    const lastDayPreviousMonth = new Date(year, monthIndex, 0);\r\n    const lastDPreviousMonth = lastDayPreviousMonth.getDate();\r\n    const firstDay = new Date(year, monthIndex, 1);\r\n    const lastDay = new Date(year, monthIndex + 1, 0);\r\n    const lastD = lastDay.getDate();\r\n    let firstWeekdayIndex = firstDay.getDay();\r\n    let lastWeekdayIndex = lastDay.getDay();\r\n    // Vienamese rule: Monday is the 1st day of week\r\n    firstWeekdayIndex = firstWeekdayIndex === 0 ? 6 : firstWeekdayIndex - 1;\r\n    lastWeekdayIndex = lastWeekdayIndex === 0 ? 6 : lastWeekdayIndex - 1;\r\n\r\n    const newBody: IDataRow[] = [];\r\n    let d = 0;\r\n\r\n    // The 1st row\r\n    let newRow: IDataItem[] = [];\r\n    for (let i = 0; i < firstWeekdayIndex; i++) {\r\n      newRow.push({\r\n        date: (lastDPreviousMonth - firstWeekdayIndex + i + 1).toString(),\r\n        dateValue: new Date(year, monthIndex - 1, lastDPreviousMonth - firstWeekdayIndex + i + 1)\r\n      })\r\n    }\r\n    for (let i = firstWeekdayIndex; i < 7; i++) {\r\n      newRow.push({\r\n        date: (i - firstWeekdayIndex + 1).toString(),\r\n        dateValue: new Date(year, monthIndex, i - firstWeekdayIndex + 1)\r\n      })\r\n      d++;\r\n    }\r\n    newBody.push({\r\n      items: newRow,\r\n      mixed: !!firstWeekdayIndex\r\n    });\r\n\r\n    // The next rows\r\n    d++;\r\n    let weekDayIndex = 0;\r\n    newRow = [];\r\n    for (d; d <= lastD; d++) {\r\n      newRow.push({\r\n        date: d.toString(),\r\n        dateValue: new Date(year, monthIndex, d)\r\n      })\r\n      weekDayIndex++;\r\n      if (weekDayIndex === 7) {\r\n        newBody.push({\r\n          items: newRow,\r\n          mixed: false,\r\n        });\r\n        newRow = [];\r\n        weekDayIndex = 0;\r\n      }\r\n    }\r\n\r\n    /*\r\n     the last row exists only when weekDayIndex !== 0\r\n     (means previous row has not been pushed to newBody)\r\n    */\r\n\r\n    if (weekDayIndex !== 0) {\r\n      let i = 1;\r\n      for (weekDayIndex; weekDayIndex < 7; weekDayIndex++) {\r\n        newRow.push({\r\n          date: i.toString(),\r\n          dateValue: new Date(year, monthIndex + 1, i)\r\n        })\r\n        i++;\r\n      }\r\n      newBody.push({\r\n        items: newRow,\r\n        mixed: true\r\n      });\r\n    }\r\n\r\n    return newBody;\r\n  }\r\n\r\n  /*\r\n    direction: 0 | 1 | -1\r\n    0: mono\r\n    1: go foreward\r\n    -1: go backward  \r\n  */\r\n  getCalendarBody(year: number, monthIndex: number, direction: number = 0): ICalendarBody {\r\n    let month1: IDataRow[];\r\n    let month2: IDataRow[];\r\n    let reduced: IDataRow[] = [];\r\n    let merged: IDataRow[];\r\n\r\n    const debugCondition = year === 2023 && monthIndex === 6 && direction === 1\r\n\r\n    if (direction === 0) {\r\n      merged = this.getMonoCalendarBody(year, monthIndex);\r\n      reduced = [];\r\n    } else if (direction === 1) {\r\n      month1 = this.getMonoCalendarBody(year, monthIndex - 1);\r\n      month2 = this.getMonoCalendarBody(year, monthIndex);\r\n      reduced = [...month1];\r\n      if (month1[month1.length - 1].mixed) reduced = month1.filter((_, index) => index !== (month1.length - 1));\r\n      merged = [...reduced, ...month2];\r\n      if (debugCondition) console.log(\"reduced\", reduced)\r\n    } else if (direction === -1) {\r\n      month1 = this.getMonoCalendarBody(year, monthIndex);\r\n      month2 = this.getMonoCalendarBody(year, monthIndex + 1);\r\n      reduced = [...month2];\r\n      if (month2[0].mixed) reduced = month2.filter((_, index) => index !== 0);\r\n      merged = [...month1, ...reduced];\r\n    }\r\n    merged!.map(row => {\r\n      row.items.map(item => {\r\n        if (item.dateValue.getMonth() === monthIndex) {\r\n          item.currentMonth = true;\r\n        }\r\n      })\r\n    })\r\n    return {\r\n      rows: merged!\r\n    };\r\n  }\r\n\r\n  getLastDateOfMonth(year: number, monthIndex: number): Date {\r\n    return new Date(year, monthIndex + 1, 0);\r\n  }\r\n\r\n  getDecadeYearsObject(currentYear: number): IDecadeYearsObject {\r\n    const from = Math.floor(currentYear / 10) * 10;\r\n    const title = `${from} - ${from + 9}`;\r\n    const items: number[][] = [\r\n      [from, from + 1, from + 2],\r\n      [from + 3, from + 4, from + 5],\r\n      [from + 6, from + 7, from + 8],\r\n      [from + 9]\r\n    ]\r\n    return {\r\n      title, items\r\n    }\r\n  }\r\n\r\n  \r\n  /* THIS FUNCTION WAS COPIED FROM THE INTERNET. PLEASE CHECK IT CAREFULLY LATER */\r\n  isDateString(date: string): boolean {\r\n    /* RegExp is a magic object */\r\n    const _regExp = new RegExp('^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]+)?(Z)?$');\r\n    return _regExp.test(date);\r\n  }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { TanleicaDatetimeService, IMonthIdentity } from '../../tan-services/tanleica-datetime.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'tanleica-month-picker-emitter',\r\n  templateUrl: './month-picker-emitter.component.html',\r\n  styleUrls: ['./month-picker-emitter.component.scss']\r\n})\r\nexport class MonthPickerEmitterComponent implements OnInit {\r\n\r\n  @Input() id!: string;\r\n  @Input() lang: string = 'en';\r\n  @Input() monthObject$ = new BehaviorSubject<IMonthIdentity>({\r\n    year: 2022,\r\n    monthIndex: 10,\r\n  });\r\n  @Output() onChange = new EventEmitter<IMonthIdentity>();\r\n  @Output() onYearClick = new EventEmitter<number>();\r\n\r\n  @ViewChild('monthsContainer') monthsContainer!: ElementRef;\r\n\r\n  months: string[][] = [];\r\n  year!: number;\r\n\r\n  constructor(private tanleicaDatetimeService: TanleicaDatetimeService) { }\r\n\r\n  ngOnInit(): void {\r\n    const monthStrings = this.tanleicaDatetimeService.getMonthNames(this.lang);\r\n    this.months = [\r\n      [monthStrings[0], monthStrings[1], monthStrings[2]],\r\n      [monthStrings[3], monthStrings[4], monthStrings[5]],\r\n      [monthStrings[6], monthStrings[7], monthStrings[8]],\r\n      [monthStrings[9], monthStrings[10], monthStrings[11]]\r\n    ];\r\n\r\n    this.monthObject$.subscribe(x => {\r\n      this.year = x.year;\r\n    })\r\n    \r\n  }\r\n\r\n  onClick(rowIndex: number, subMonthIndex: number) {\r\n    this.monthObject$.next({\r\n      year: this.year,\r\n      monthIndex: rowIndex * 3 + subMonthIndex      \r\n    });\r\n    this.onChange.emit(this.monthObject$.value);\r\n  }\r\n\r\n  triggerReflow() {\r\n    const element = this.monthsContainer.nativeElement;\r\n    element.classList.remove(\"zoom-in\");\r\n    element.offsetWidth;\r\n    setTimeout(() => element.classList.add(\"zoom-in\"));\r\n  }\r\n\r\n  goUp() {\r\n    this.year -= 1;\r\n    this.triggerReflow();\r\n  }\r\n\r\n  goDown() {\r\n    this.year += 1;\r\n    this.triggerReflow();\r\n  }\r\n\r\n  onYearClickLocal(year: number) {\r\n    this.onYearClick.emit(year);\r\n  }\r\n\r\n}\r\n","<div class=\"tl-month-picker-emitter\" [id]=\"'tl-month-picker-emitter' + id\">\r\n    <div class=\"tl-month-picker-emitter-header\">\r\n        <div class=\"tl-month-picker-emitter-year\" (click)=\"onYearClickLocal(year)\">{{ year }}</div>\r\n        <div class=\"arrows\">\r\n            <div class=\"go-up\" (click)=\"goUp()\"></div>\r\n            <div class=\"go-down\" (click)=\"goDown()\"></div>\r\n        </div>\r\n    </div>\r\n    <div class=\"months-container-wrapper\">\r\n        <div #monthsContainer class=\"months-container zoom-in\">\r\n            <ul *ngFor=\"let row of months; let rowIndex=index\">\r\n                <li *ngFor=\"let month of row; let subMonthIndex=index\" (click)=\"onClick(rowIndex, subMonthIndex)\">\r\n                    <div [class.active]=\"year === monthObject$.value.year && rowIndex * 3 +  subMonthIndex === monthObject$.value!.monthIndex\">\r\n                        {{ month }}\r\n                    </div>\r\n                </li>\r\n            </ul>\r\n        </div>\r\n    </div>\r\n</div>","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { TanleicaDatetimeService, IDecadeYearsObject } from '../../tan-services/tanleica-datetime.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'tanleica-year-picker-emitter',\r\n  templateUrl: './year-picker-emitter.component.html',\r\n  styleUrls: ['./year-picker-emitter.component.scss']\r\n})\r\nexport class YearPickerEmitterComponent implements OnInit {\r\n\r\n  @Input() id!: string;\r\n  @Input() default: number = new Date().getFullYear();\r\n  @Output() onChange = new EventEmitter<number>();\r\n\r\n  @ViewChild('yearsContainer') yearsContainer!: ElementRef;\r\n\r\n  year$ = new BehaviorSubject<number>(this.default);\r\n  decadeYearsObject!: IDecadeYearsObject;\r\n\r\n  constructor(private tanleicaDatetimeService: TanleicaDatetimeService) { }\r\n\r\n  ngOnInit(): void {\r\n    this.year$.subscribe(curentYear => {\r\n      this.decadeYearsObject = this.tanleicaDatetimeService.getDecadeYearsObject(curentYear);\r\n    })\r\n  }\r\n\r\n  onClick(e: number) {\r\n    this.default = e;\r\n    this.onChange.emit(e);\r\n  }\r\n\r\n  triggerReflow() {\r\n    const element = this.yearsContainer.nativeElement;\r\n    element.classList.remove(\"zoom-in\");\r\n    element.offsetWidth;\r\n    setTimeout(() => element.classList.add(\"zoom-in\"));\r\n  }\r\n\r\n  goUp() {\r\n    this.year$.next(this.year$.value - 10);\r\n    this.triggerReflow();\r\n  }\r\n\r\n  goDown() {\r\n    this.year$.next(this.year$.value + 10);\r\n    this.triggerReflow();\r\n  }\r\n\r\n}\r\n","<div class=\"tl-year-picker-emitter\" [id]=\"'tl-year-picker-emitter' + id\">\r\n    <div class=\"tl-year-picker-emitter-header\">\r\n        <div class=\"tl-year-picker-emitter-year\">{{ decadeYearsObject.title }}</div>\r\n        <div class=\"arrows\">\r\n            <div class=\"go-up\" (click)=\"goUp()\"></div>\r\n            <div class=\"go-down\" (click)=\"goDown()\"></div>\r\n        </div>\r\n    </div>\r\n    <div class=\"years-container-wrapper\">\r\n        <div #yearsContainer class=\"years-container zoom-in\">\r\n            <ul *ngFor=\"let row of decadeYearsObject.items; let rowIndex=index\">\r\n                <li *ngFor=\"let item of row; let subMonthIndex=index\" (click)=\"onClick(item)\">\r\n                    <div [class.active]=\"item === default\">\r\n                        {{ item }}\r\n                    </div>\r\n                </li>\r\n            </ul>\r\n        </div>\r\n    </div>\r\n</div>","import { Component, ElementRef, OnInit, OnDestroy, AfterViewInit, ViewChild, Input, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BehaviorSubject, Observable, distinctUntilChanged, fromEvent } from 'rxjs';\r\nimport { TanleicaDomService } from '../../tan-services/tanleica-dom.service';\r\nimport { IDataRow, TanleicaDatetimeService, IMonthIdentity } from '../../tan-services/tanleica-datetime.service';\r\n\r\n@Component({\r\n  selector: 'tanleica-date-picker',\r\n  templateUrl: './date-picker.component.html',\r\n  styleUrls: ['./date-picker.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      multi: true,\r\n      useExisting: DatePickerComponent\r\n    }\r\n  ]\r\n})\r\n\r\n/*\r\n  this component renders its main part and popup part\r\n  the main part deals with user input from physical keyboard or touch keyboard\r\n  the popup part consists of 1) navigator 2) header 3) calendar body container 4) calendar body\r\n  the most important part of them is:\r\n    4) calendar body:\r\n      due variations the calendar body may reach to 6 rows of week day sub-array\r\n    - for visual, logic and coding simplicity I will always render all the 6 rows\r\n    so calendar body dimension stays unchanged\r\n  \r\n*/\r\nexport class DatePickerComponent implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor {\r\n\r\n  @Input() id!: string;\r\n  @Input() lang: string = 'vn';\r\n  @Input() showPlaceholder: boolean = false;\r\n  @Input() popupWidth: number = 300;\r\n  @Input() popupXPadding: number = 12;\r\n\r\n  listenerFn!: () => void;\r\n\r\n  openState: boolean = false;\r\n  monthPickerActive: boolean = false;\r\n  yearPickerActive: boolean = false;\r\n\r\n  cellSize: number = (this.popupWidth - this.popupXPadding * 2) / 7;\r\n\r\n  value: Date = new Date();\r\n  pendingYear: number = this.value.getFullYear();\r\n  pendingMonthIndex: number = this.value.getMonth();\r\n  pendingDay: number = this.value.getDate();\r\n\r\n  currentMonthObject$ = new BehaviorSubject<IMonthIdentity>({\r\n    year: this.value.getFullYear(),\r\n    monthIndex: this.value.getMonth()\r\n  });\r\n\r\n  currentMonthText!: string;\r\n  currentHours: number = this.value.getHours();\r\n  currentMinutes: number = this.value.getMinutes();\r\n  currentSeconds: number = this.value.getSeconds();\r\n  currentMilliseconds: number = this.value.getMilliseconds();\r\n\r\n  data!: IDataRow[];\r\n  headerWeekdays!: string[];\r\n  direction: number = 1; // startup direction 1 | -1\r\n\r\n  textValue: string = '';\r\n\r\n  onChange = (_: any) => { };\r\n\r\n  onTouched = () => { };\r\n\r\n  touched = false;\r\n\r\n  disabled = false;\r\n\r\n  @ViewChild('container') container!: ElementRef;\r\n  @ViewChild('input') input!: ElementRef;\r\n  @ViewChild('backward') backward!: ElementRef;\r\n  @ViewChild('calendarBody') calendarBody!: ElementRef;\r\n\r\n  inputStream$!: Observable<any>;\r\n\r\n  constructor(\r\n    private readonly renderer: Renderer2,\r\n    private readonly tanleicaDomService: TanleicaDomService,\r\n    private readonly tanleicaDatetimeService: TanleicaDatetimeService,\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    /*\r\n    if (!!!this.id) {\r\n      console.error(`\r\n      within a page, tanleica-date-picker needs an unique property id value to work correctly\r\n      for example: <tanleica-date-picker id=\"startDate\" formControlName=\"startDate\"></tanleica-date-picker>\r\n      `)\r\n    }\r\n    */\r\n    this.headerWeekdays = this.tanleicaDatetimeService.getShortWeekdays(this.lang);\r\n  }\r\n\r\n  /*\r\n    trigger animation by reflow the DOM\r\n  */\r\n  triggerReflow() {\r\n    const el = this.calendarBody.nativeElement;\r\n    //DOM manipulation\r\n    if (this.direction === 1) {\r\n      el.classList.remove(\"slide-up\");\r\n    } else {\r\n      el.classList.remove(\"slide-down\");\r\n    }\r\n    el.offsetHeight;  /* trigger reflow (alternative: el.offsetWidth) */\r\n    if (this.direction === 1) {\r\n      setTimeout(() => el.classList.add(\"slide-up\"), 0); // pass the callback to Callback queue through WebAPIs, so it will be executed after DOM manipulation ends\r\n    } else {\r\n      setTimeout(() => el.classList.add(\"slide-down\"), 0); // pass the callback to Callback queue through WebAPIs, so it will be executed after DOM manipulation ends\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n\r\n    /*\r\n      This events get called by all clicks on the page\r\n    */\r\n    this.listenerFn = this.renderer.listen('window', 'click', (e: Event) => {\r\n      /*\r\n        handle click outside\r\n      */\r\n      if (this.container && !!!this.container.nativeElement.contains(e.target)) {\r\n        this.openState = false;\r\n      }\r\n    })\r\n\r\n\r\n\r\n    const maxZIndex = this.tanleicaDomService.getMaxZIndex();\r\n\r\n    this.container.nativeElement.style.setProperty('--indicator-height', (this.input.nativeElement.getBoundingClientRect().height - 6) + 'px')\r\n    this.container.nativeElement.style.setProperty('--popup-z-index', maxZIndex);\r\n    this.container.nativeElement.style.setProperty('--cell-size', this.cellSize + 'px')\r\n\r\n    this.currentMonthObject$.pipe(\r\n      distinctUntilChanged()\r\n    ).subscribe(value => {\r\n      setTimeout(() => {\r\n        this.currentMonthText = this.tanleicaDatetimeService.getMonthText(this.lang, value.monthIndex);\r\n        console.log(\"Rebuilding....\")\r\n        this.buildBody(value.year, value.monthIndex);\r\n        this.triggerReflow();\r\n      }, 0)\r\n    })\r\n\r\n    this.inputStream$ = fromEvent(this.input.nativeElement, 'input');\r\n    this.inputStream$.subscribe(event => {\r\n\r\n      if ('#0#1#2#3#4#5#6#7#8#9#Backspace#Delete'.indexOf('#' + event.data) < 0) {\r\n        event.target.value = this.textValue;\r\n        this.onChange(null);\r\n        return;\r\n      }\r\n\r\n      var v = event.target.value;\r\n      if (v.match(/^\\d{2}$/) !== null) {\r\n        event.target.value = v + '/';\r\n        this.textValue = v + '/';\r\n      } else if (v.match(/^\\d{2}\\/\\d{2}$/) !== null) {\r\n        event.target.value = v + '/';\r\n        this.textValue = v + '/';\r\n      } else {\r\n        this.textValue = v;\r\n      }\r\n\r\n      if (this.textValue.length === 10) {\r\n        const digits = this.textValue.split('/');\r\n        const y = Number(digits[2]);\r\n        const m = Number(digits[1]) - 1;\r\n        const d = Number(digits[0]);\r\n\r\n        if (y <= 0 || m < 0 || m > 11 || d < 1 || d > 31) {\r\n          event.target.value = '';\r\n          this.textValue = '';\r\n          this.onChange(null);\r\n          return;\r\n        }\r\n\r\n        const now = new Date();\r\n        const hr = now.getHours();\r\n        const mn = now.getMinutes();\r\n        const sd = now.getSeconds();\r\n        const ms = now.getMilliseconds();\r\n\r\n        const date = new Date(Number(digits[2]), Number(digits[1]) - 1, Number(digits[0]), hr, mn, sd, ms);\r\n        event.target.value = this.tanleicaDatetimeService.dateToVnString(date);\r\n        this.onChange(date);\r\n\r\n      }\r\n    })\r\n\r\n  }\r\n\r\n  writeValue(obj: Date | null): void {\r\n\r\n    const updateProperties = (value: Date) => {\r\n      this.textValue = this.tanleicaDatetimeService.dateToVnString(value);\r\n      this.currentMonthObject$.next({\r\n        year: value.getFullYear(),\r\n        monthIndex: value.getMonth()\r\n      })\r\n      this.currentHours = value.getHours();\r\n      this.currentMinutes = value.getMinutes();\r\n      this.currentSeconds = value.getSeconds();\r\n      this.currentMilliseconds = value.getMilliseconds();\r\n\r\n      this.currentMonthText = this.tanleicaDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);\r\n      this.pendingYear = value.getFullYear();\r\n      this.pendingMonthIndex = value.getMonth();\r\n      this.pendingDay = value.getDate();\r\n    }\r\n\r\n    if (obj === null) {\r\n      const now = new Date();\r\n      this.textValue = '';\r\n      this.currentMonthObject$.next({\r\n        year: now.getFullYear(),\r\n        monthIndex: now.getMonth()\r\n      })\r\n      this.currentHours = now.getHours();\r\n      this.currentMinutes = now.getMinutes();\r\n      this.currentSeconds = now.getSeconds();\r\n      this.currentMilliseconds = now.getMilliseconds();\r\n      this.currentMonthText = this.tanleicaDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);\r\n    } else {\r\n      if (typeof obj!.getFullYear === 'function') {\r\n        updateProperties(obj);\r\n      } else if (typeof obj === 'string') {\r\n        const isDate = this.tanleicaDatetimeService.isDateString(obj);\r\n        if (isDate) {\r\n          const _obj = new Date(obj);\r\n          updateProperties(_obj);\r\n        } else {\r\n          console.error(\"Invalid date input: \", obj);\r\n        }\r\n\r\n      } else {\r\n        console.error(\"Invalid date input: \", obj);\r\n      }\r\n    }\r\n  }\r\n\r\n  onItemClick(date: Date) {\r\n    const now = new Date();\r\n    const h = now.getHours();\r\n    const m = now.getMinutes();\r\n    const s = now.getSeconds();\r\n    const ms = now.getMilliseconds();\r\n    date.setHours(h);\r\n    date.setMinutes(m);\r\n    date.setSeconds(s);\r\n    date.setMilliseconds(ms);\r\n    this.textValue = this.tanleicaDatetimeService.dateToVnString(date);\r\n\r\n    this.pendingYear = date.getFullYear();\r\n    this.pendingMonthIndex = date.getMonth();\r\n    this.pendingDay = date.getDate();\r\n    \r\n    this.onChange(date);\r\n    this.openState = false;\r\n  }\r\n\r\n  goToday() {\r\n    const today = new Date();\r\n    this.textValue = this.tanleicaDatetimeService.dateToVnString(today);\r\n    this.onChange(today);\r\n    this.openState = false;\r\n  }\r\n\r\n  clear() {\r\n    this.textValue = '';\r\n    this.onChange(null);\r\n    this.openState = false;\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\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  goBackward() {\r\n    this.direction = -1;\r\n    this.backward.nativeElement.checked = true;\r\n    if (this.currentMonthObject$.value.monthIndex === 0) {\r\n      this.currentMonthObject$.next({\r\n        year: this.currentMonthObject$.value.year - 1,\r\n        monthIndex: 11\r\n      });\r\n      this.currentMonthText = this.tanleicaDatetimeService.getMonthText(this.lang, 11);\r\n    } else {\r\n      this.currentMonthObject$.next({\r\n        year: this.currentMonthObject$.value.year,\r\n        monthIndex: this.currentMonthObject$.value.monthIndex - 1\r\n      });\r\n\r\n      this.currentMonthText = this.tanleicaDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);\r\n    }\r\n  }\r\n\r\n  goForeward() {\r\n    this.direction = 1;\r\n    this.backward.nativeElement.checked = false;\r\n    this\r\n    if (this.currentMonthObject$.value.monthIndex === 11) {\r\n      this.currentMonthObject$.next({\r\n        year: this.currentMonthObject$.value.year + 1,\r\n        monthIndex: 0\r\n      });\r\n      this.currentMonthText = this.tanleicaDatetimeService.getMonthText(this.lang, 0);\r\n    } else {\r\n      this.currentMonthObject$.next({\r\n        year: this.currentMonthObject$.value.year,\r\n        monthIndex: this.currentMonthObject$.value.monthIndex + 1\r\n      });\r\n      this.currentMonthText = this.tanleicaDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);\r\n    }\r\n  }\r\n\r\n  /* Probably the most important function */\r\n  buildBody(year: number, monthIndex: number) {\r\n    const body = this.tanleicaDatetimeService.getCalendarBody(year, monthIndex, this.direction);\r\n    this.data = body.rows;\r\n    this.container.nativeElement.style.setProperty('--scroll-distance', (body.rows.length - 6) * this.cellSize + 'px');\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.listenerFn) this.listenerFn();\r\n  }\r\n\r\n  toggleOpen() {\r\n    this.openState = !this.openState;\r\n  }\r\n\r\n  toggleMonthPickerActive() {\r\n    this.monthPickerActive = !this.monthPickerActive;\r\n  }\r\n\r\n  onMonthObjectChange(args: IMonthIdentity) {\r\n    this.currentMonthObject$.next({\r\n      year: args.year,\r\n      monthIndex: args.monthIndex\r\n    })\r\n    this.monthPickerActive = false;\r\n  }\r\n\r\n  onMonthPickerYearClick(e: number) {\r\n    this.monthPickerActive = false;\r\n    this.yearPickerActive = true;\r\n  }\r\n\r\n  onYearPicked(e: number) {\r\n    this.currentMonthObject$.next({\r\n      year: e,\r\n      monthIndex: this.currentMonthObject$.value.monthIndex\r\n    });\r\n    this.yearPickerActive = false;\r\n    this.monthPickerActive = true;\r\n  }\r\n\r\n}\r\n","<div #container class=\"tl-date-picker-container\">\r\n    <input type=\"checkbox\" [(ngModel)]=\"openState\" [id]=\"'tl-datepicker-open' + id\">\r\n    <input type=\"checkbox\" [(ngModel)]=\"monthPickerActive\" [id]=\"'tl-monthpicker-active' + id\">\r\n    <input type=\"checkbox\" [(ngModel)]=\"yearPickerActive\" [id]=\"'tl-yearpicker-active' + id\">\r\n    <input #backward type=\"checkbox\" class=\"tl-datepicker-direction\">\r\n    <input #input type=\"text\" id=\"input\" class=\"form-control\" [placeholder]=\"showPlaceholder ? 'dd/mm/yyyy' : ''\"\r\n        maxlength=\"10\" [(ngModel)]=\"textValue\"><label class=\"icon\" (click)=\"toggleOpen()\"></label>\r\n    <div class=\"tl-date-picker-popup\">\r\n        <div class=\"date-picker-session\">\r\n            <div class=\"navigator\">\r\n                <label class=\"month-dropdown\" (click)=\"toggleMonthPickerActive()\">{{ currentMonthText }} {{\r\n                    currentMonthObject$.value.year }}</label>\r\n                <div class=\"arrows\">\r\n                    <div class=\"go-up\" (click)=\"goBackward()\"></div>\r\n                    <div class=\"go-down\" (click)=\"goForeward()\"></div>\r\n                </div>\r\n            </div>\r\n            <div class=\"weekday-header\">\r\n                <ul>\r\n                    <li *ngFor=\"let day of headerWeekdays; let i = index\" [class.t7]=\"i===5\" [class.cn]=\"i===6\">\r\n                        <div>{{ day }}</div>\r\n                    </li>\r\n                </ul>\r\n            </div>\r\n            <div class=\"calendar-body-container\">\r\n                <div #calendarBody class=\"calendar-body\" [class.slide-up]=\"direction===1\"\r\n                    [class.slide-down]=\"direction===-1\">\r\n                    <ul *ngFor=\"let week of data\">\r\n                        <li *ngFor=\"let item of week.items; let i = index\">\r\n                            <div [class.out-of-month]=\"!!!item.currentMonth\" [class.t7]=\"i===5\" [class.cn]=\"i===6\"\r\n                                [class.active]=\"item.dateValue.getFullYear()===pendingYear && item.dateValue.getMonth()===pendingMonthIndex && item.dateValue.getDate()===pendingDay\"\r\n                                (click)=\"onItemClick(item.dateValue)\">\r\n                                {{ item.date }}</div>\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"month-picker-session\">\r\n            <tanleica-month-picker-emitter [id]=\"'month-picker-emitter' + id\" [lang]=\"lang\" [monthObject$]=\"currentMonthObject$\" (onChange)=\"onMonthObjectChange($event)\" (onYearClick)=\"onMonthPickerYearClick($event)\"></tanleica-month-picker-emitter>\r\n        </div>\r\n        <div class=\"year-picker-session\">\r\n            <tanleica-year-picker-emitter [id]=\"'year-picker-emitter' + id\" [lang]=\"lang\" (onChange)=\"onYearPicked($event)\"></tanleica-year-picker-emitter>\r\n        </div>\r\n        <div class=\"footer-wrapper\">\r\n            <div class=\"footer\">\r\n                <div class=\"clear\" (click)=\"clear()\">{{ 'clear' | translate: lang }}</div>\r\n                <div class=\"digi-watch\"></div>\r\n                <div class=\"today\" (click)=\"goToday()\">{{ 'today' | translate: lang }}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonthPickerEmitterComponent } from './month-picker-emitter/month-picker-emitter.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    MonthPickerEmitterComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    MonthPickerEmitterComponent,\r\n  ]\r\n})\r\nexport class TanMonthPickerModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { YearPickerEmitterComponent } from './year-picker-emitter/year-picker-emitter.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    YearPickerEmitterComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    YearPickerEmitterComponent\r\n  ]\r\n})\r\nexport class TanYearPickerModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { TanMonthPickerModule } from '../tan-month-picker/tan-month-picker.module';\r\nimport { TanYearPickerModule } from '../tan-year-picker/tan-year-picker.module';\r\nimport { TanPipesModule } from '../tan-pipes/tan-pipes.module';\r\n\r\nimport { DatePickerComponent } from './date-picker/date-picker.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    DatePickerComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    TanMonthPickerModule,\r\n    TanYearPickerModule,\r\n    TanPipesModule\r\n  ],\r\n  exports: [\r\n    DatePickerComponent\r\n  ]\r\n})\r\nexport class TanDatePickerModule { }\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'tanleica-org-chart',\r\n  templateUrl: './org-chart.component.html',\r\n  styleUrls: ['./org-chart.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class OrgChartComponent implements OnInit {\r\n\r\n  @Input() backgroundColor: string = 'lightgray';\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"tl-org-chart-container\">\r\n    <div class=\"scroll-container\">\r\n        <h1 class=\"level-1 rectangle\">CEO</h1>\r\n        <ol class=\"level-2-wrapper\">\r\n            <li>\r\n                <h2 class=\"level-2 rectangle\">Director A</h2>\r\n                <ol class=\"level-3-wrapper\">\r\n                    <li>\r\n                        <h3 class=\"level-3 rectangle\">Manager A</h3>\r\n                        <ol class=\"level-4-wrapper\">\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person A</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person B</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person C</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person D</h4>\r\n                            </li>\r\n                        </ol>\r\n                    </li>\r\n                    <li>\r\n                        <h3 class=\"level-3 rectangle\">Manager B</h3>\r\n                        <ol class=\"level-4-wrapper\">\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person A</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person B</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person C</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person D</h4>\r\n                            </li>\r\n                        </ol>\r\n                    </li>\r\n                </ol>\r\n            </li>\r\n            <li>\r\n                <h2 class=\"level-2 rectangle\">Director B</h2>\r\n            </li>\r\n            <li>\r\n                <h2 class=\"level-2 rectangle\">Director C</h2>\r\n                <ol class=\"level-3-wrapper\">\r\n                    <li>\r\n                        <h3 class=\"level-3 rectangle\">Manager C</h3>\r\n                        <ol class=\"level-4-wrapper\">\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person A</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person B</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person C</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person D</h4>\r\n                            </li>\r\n                        </ol>\r\n                    </li>\r\n                    <li>\r\n                        <h3 class=\"level-3 rectangle\">Manager D</h3>\r\n                        <ol class=\"level-4-wrapper\">\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person A</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person B</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person C</h4>\r\n                            </li>\r\n                            <li>\r\n                                <h4 class=\"level-4 rectangle\">Person D</h4>\r\n                            </li>\r\n                        </ol>\r\n                    </li>\r\n                </ol>\r\n            </li>\r\n            <li>\r\n                <h2 class=\"level-2 rectangle\">Director D</h2>\r\n            </li>\r\n        </ol>\r\n    </div>\r\n</div>","import { Component, Input, OnInit, AfterViewInit, ViewChild, ElementRef, TemplateRef, Output, EventEmitter } from '@angular/core';\r\nimport { TanleicaDomService } from '../../tan-services/tanleica-dom.service';\r\n\r\n@Component({\r\n  selector: 'tanleica-org-chart-multi',\r\n  templateUrl: './org-chart-multi.component.html',\r\n  styleUrls: ['./org-chart-multi.component.scss']\r\n})\r\nexport class OrgChartMultiComponent implements OnInit, AfterViewInit {\r\n\r\n  @Input() data!: any[];\r\n\r\n  /* To fit inside container, cardTemplate needs to have width not wider than\r\n    shortener container minus cardBorderSize * 2 (those for longlychidren group with indent)\r\n  */\r\n  @Input() cardTemplate!: TemplateRef<any>;\r\n\r\n  @Input() wrapLastLevel: boolean = true;\r\n  @Input() showNodes: boolean = true;\r\n  @Input() showCells: boolean = false; // for debugging\r\n\r\n  @Input() minHeight!: string;\r\n  @Input() background!: string;\r\n  @Input() cardWidth: string = '200px';\r\n  @Input() cardHeight: string = '100px';\r\n  @Input() cardBorderSize: string = '5px';\r\n  @Input() cardBorderColor!: string;\r\n  @Input() cardBorderRadius!: string;\r\n  @Input() cardBackground!: string;\r\n  @Input() cardPadding!: string;\r\n  @Input() connectingLineVPadding: string = '20px';\r\n  @Input() lonelyChildrenVSpacing: string = '12px';\r\n  @Input() tierBlockIndent: string =  '40px';\r\n  @Input() blockHorizontalSpacing!: string;\r\n  @Input() lineColor!: string;\r\n  @Input() lineSize: string = '5px';\r\n  @Input() lineConnerBorderRadius: string = '10px';\r\n\r\n  @Input() nodeSize!: string;\r\n  @Input() nodeBorderSize!: string;\r\n  @Input() nodeBorderColor!: string;\r\n\r\n  @Output() onItemClick = new EventEmitter<any>();\r\n\r\n  @ViewChild('container') container!: ElementRef;\r\n\r\n\r\n  lonelyChildrenItemBeforeHeight!: number;\r\n  mobileMode!: boolean;\r\n\r\n\r\n  constructor(\r\n    private tanleicaDomService: TanleicaDomService\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    /*\r\n      Find input possible errors\r\n    */\r\n\r\n    /*\r\n      Please provide lineSize, lineConnerBorderRadius and connectingLineVPadding in 'px' if any\r\n    */\r\n    const lineSizeUnit = this.tanleicaDomService.getCssStringSizeUnit(this.lineSize);\r\n    const lineConnerBorderRadiusUnit = this.tanleicaDomService.getCssStringSizeUnit(this.lineConnerBorderRadius);\r\n    const connectingLineVPaddingUnit = this.tanleicaDomService.getCssStringSizeUnit(this.connectingLineVPadding);\r\n    if (\r\n      lineSizeUnit !== 'px' ||\r\n      lineConnerBorderRadiusUnit !== 'px' ||\r\n      connectingLineVPaddingUnit !== 'px'\r\n    ) {\r\n      console.group(\"<tanleica-org-chart-multi> input error:\")\r\n      console.error(`\r\n        For the chart to render correctly, if you provide lineSize, lineConnerBorderRadius or connectingLineVPadding, please use 'px' as their unit.\r\n        The current incorrected value(s) is/are:\r\n        ${lineSizeUnit !== 'px' ? 'lineSize = \"' + this.lineSize + '\"' : ''}\r\n        ${lineConnerBorderRadiusUnit !== 'px' ? 'lineConnerBorderRadius = \"' + this.lineConnerBorderRadius + '\"' : ''}\r\n        ${connectingLineVPaddingUnit !== 'px' ? 'connectingLineVPadding = \"' + this.connectingLineVPadding + '\"' : ''}\r\n      `)\r\n      console.groupEnd();\r\n    }\r\n\r\n    /* cardWidth and cardWidth are required */\r\n    if (!!!this.cardWidth || !!!this.cardHeight) {\r\n      console.group(\"<tanleica-org-chart-multi> input error:\")\r\n      console.error(`\r\n      For the chart to render correctly, you must provide cardWidth and cardHeight exact property values.\r\n      \r\n      For example: cardWidth='200px' cardHeight='100px'\r\n      `)\r\n      console.groupEnd();\r\n    }\r\n\r\n    /*\r\n      lineSize must be not greater than connectingLineVPadding\r\n    */\r\n    const lineSize = this.tanleicaDomService.cssStringSizeToNumber(this.lineSize)!;\r\n    const connectingLineVPadding = this.tanleicaDomService.cssStringSizeToNumber(this.connectingLineVPadding)!;\r\n    if (lineSize > connectingLineVPadding) {\r\n      console.group(\"<tanleica-org-chart-multi> input error:\")\r\n      console.error(`\r\n      lineSize must be not greater than connectingLineVPadding.\r\n      The current incorrected value(s) is/are:\r\n      lineSize = \"${this.lineSize}\"\r\n      connectingLineVPadding = \"${this.connectingLineVPadding}\"\r\n      `)\r\n      console.groupEnd();\r\n    }\r\n\r\n    /*\r\n      Calculate --lonely-children-item-before-height\r\n    */\r\n    const lineConnerBorderRadius = this.tanleicaDomService.cssStringSizeToNumber(this.lineConnerBorderRadius)!;\r\n    \r\n    if (lineConnerBorderRadius < lineSize) {\r\n      this.lonelyChildrenItemBeforeHeight = lineSize;\r\n    } else {\r\n      this.lonelyChildrenItemBeforeHeight = lineConnerBorderRadius;\r\n    }\r\n\r\n    /* \r\n      Cut off lineConnerBorderRadius if the value is greater than\r\n      sum (cardHeight + lonelyChildrenVSpacing + lineSize)\r\n    */\r\n    let lineConnerBorderRadiusNumberValue = this.tanleicaDomService.cssStringSizeToNumber(this.lineConnerBorderRadius)!;\r\n    const cardHeightNumberValue = this.tanleicaDomService.cssStringSizeToNumber(this.cardHeight)!;\r\n    const lonelyChildrenVSpacingNumberValue = this.tanleicaDomService.cssStringSizeToNumber(this.lonelyChildrenVSpacing)!;\r\n    const lineSizeNumberValue = this.tanleicaDomService.cssStringSizeToNumber(this.lineSize)!;\r\n\r\n    if (lineConnerBorderRadiusNumberValue > (cardHeightNumberValue + lonelyChildrenVSpacingNumberValue + lineSizeNumberValue)) {\r\n      this.lineConnerBorderRadius = cardHeightNumberValue + lonelyChildrenVSpacingNumberValue + lineSizeNumberValue + 'px';\r\n      console.group(\"<tanleica-org-chart-multi> input warning:\")\r\n      console.warn(`\r\n      The value of lineConnerBorderRadius you provided is too big and does not fit geometric logic and has been cut off.\r\n      `);\r\n\r\n      console.groupEnd();\r\n    }\r\n\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const style = this.container.nativeElement.style;\r\n    style.setProperty('--min-height', this.minHeight || '500px');\r\n    style.setProperty('--background', this.background || 'white');\r\n    style.setProperty('--card-width', this.cardWidth || '200px');\r\n    style.setProperty('--card-height', this.cardHeight || '100px');\r\n    style.setProperty('--card-border-size', this.cardBorderSize || '5px');\r\n    style.setProperty('--card-border-color', this.cardBorderColor || '#DADADA');\r\n    style.setProperty('--card-border-radius', this.cardBorderRadius || '10px');\r\n    style.setProperty('--card-background', this.cardBackground || 'white');\r\n    style.setProperty('--card-padding', this.cardTemplate ? '0px' : (this.cardPadding || '5px'));\r\n    style.setProperty('--connecting-line-v-padding', this.connectingLineVPadding || '20px');\r\n    style.setProperty('--lonely-children-v-spacing', this.lonelyChildrenVSpacing || '12px');\r\n    style.setProperty('--block-horizontal-spacing', this.blockHorizontalSpacing || '24px');\r\n    style.setProperty('--line-color', this.lineColor || '#C5C5C5');\r\n    style.setProperty('--line-size', this.lineSize || '5px');\r\n    style.setProperty('--line-conner-border-radius', this.lineConnerBorderRadius || '10px');\r\n    style.setProperty('--lonely-children-item-before-height', this.lonelyChildrenItemBeforeHeight + 'px');\r\n    style.setProperty('--tier-block-indent', this.tierBlockIndent);\r\n    style.setProperty('--node-size', this.nodeSize || '20px');\r\n    style.setProperty('--node-border-size', this.nodeBorderSize || '5px');\r\n    style.setProperty('--node-border-color', this.nodeBorderColor || 'white');\r\n\r\n    /*\r\n      Try to check cardTemplate size\r\n    */\r\n    if (!!this.cardTemplate) {\r\n      console.log(`cardTemplate:`, this.cardTemplate)\r\n      //const rect = this.cardTemplate.elementRef.nativeElement.getBoundingClientRect();\r\n      //console.log(`cardTemplate dimensions: ${rect.width} * ${rect.height}`)\r\n    }\r\n  }\r\n\r\n  onItemClickLocal(arg: any): void {\r\n    this.onItemClick.emit(arg);\r\n  }\r\n\r\n}\r\n","<div #container class=\"tl-org-chart-multi-container\">\r\n    <div class=\"scroll-container\">\r\n        <input type=\"checkbox\" [(ngModel)]=\"mobileMode\">\r\n        <input type=\"checkbox\" [(ngModel)]=\"showNodes\" id=\"showNodes\">\r\n        <input type=\"checkbox\" [(ngModel)]=\"wrapLastLevel\" id=\"wrapLastLevel\">\r\n        <input type=\"checkbox\" [(ngModel)]=\"showCells\" id=\"showCells\">\r\n        <ul class=\"tree\" *ngFor=\"let root of data\">\r\n            <ng-container *ngTemplateOutlet=\"item; context: { item: root, templateContext: root }\"></ng-container>\r\n        </ul>\r\n    </div>\r\n</div>\r\n\r\n\r\n<!-- recursive rendering \r\n    context: object obj\r\n    let-x=\"something\" => x = obj.something\r\n\r\n-->\r\n\r\n<!--\r\n    Tree structor:\r\n\r\n    ul.tree => li>span>a>section>div cardTemplate\r\n    li:before used for above line\r\n    li:after used for above left line within lonely chidren group\r\n    span used for cards\r\n    a used for nodes circles\r\n    section use for short lines above middem items\r\n\r\n-->\r\n\r\n<ng-template #item let-tier=\"item.tree$Tier\" let-title=\"item.tree$Title\" let-children=\"item.tree$Children\"\r\n    let-hasChidren=\"item.tree$HasChidren\" let-hasGrandchidren=\"item.tree$HasGrandchidren\" let-context=\"templateContext\">\r\n    <li [class.has-children]=\"!!hasChidren\"\r\n        [class.has-children-but-no-grandchildren]=\"!!hasChidren && !!!hasGrandchidren\" [attr.data-tier]=\"tier\">\r\n        <span [attr.data-tier]=\"tier\">\r\n            <a [attr.data-tier]=\"tier\">\r\n                <section [attr.data-tier]=\"tier\">\r\n                    <object (click)=\"onItemClickLocal(context)\" [attr.data-tier]=\"tier\">\r\n                        <div [attr.data-tier]=\"tier\">\r\n                            <div *ngIf=\"!!!cardTemplate\">{{ title }}</div>\r\n                            <ng-container *ngIf=\"!!cardTemplate\">\r\n                                <ng-container *ngTemplateOutlet=\"cardTemplate; context: context\"></ng-container>\r\n                            </ng-container>\r\n                        </div>\r\n                    </object>\r\n                </section>\r\n            </a>\r\n        </span>\r\n\r\n        <ul *ngIf=\"children?.length\">\r\n            <ng-container *ngFor=\"let child of children\">\r\n                <ng-container *ngTemplateOutlet=\"item; context: { item: child, templateContext: child }\"></ng-container>\r\n            </ng-container>\r\n        </ul>\r\n    </li>\r\n</ng-template>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'tanleica-org-chart-flex',\r\n  templateUrl: './org-chart-flex.component.html',\r\n  styleUrls: ['./org-chart-flex.component.scss']\r\n})\r\nexport class OrgChartFlexComponent implements OnInit {\r\n\r\n  @Input() data!: any[];\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  openLink(url: string) {\r\n    console.log(\"url\", url);\r\n    window.open(url, \"_blank\");\r\n  }\r\n\r\n}\r\n","<div class=\"tl-org-chart-flex-container\">\r\n\r\n    <ul class=\"tree\" *ngFor=\"let root of data\">\r\n        <ng-container *ngTemplateOutlet=\"item; context: root\"></ng-container>\r\n    </ul>\r\n\r\n    <ng-template #item let-title=\"tree$Title\" let-url=\"url\" let-children=\"tree$Children\">\r\n        <li>\r\n            <span>\r\n                <a class=\"pointer\" *ngIf=\"!!url\" (click)=\"openLink(url)\">\r\n                    {{ title }}\r\n                </a>\r\n                <ng-container *ngIf=\"!!!url\">{{ title }}</ng-container>\r\n            </span>\r\n            <ul *ngIf=\"children.length\">\r\n                <ng-container *ngFor=\"let child of children\">\r\n                    <ng-container *ngTemplateOutlet=\"item; context: child\"></ng-container>\r\n                </ng-container>\r\n            </ul>\r\n        </li>\r\n    </ng-template>\r\n\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { OrgChartComponent } from './org-chart/org-chart.component';\r\nimport { OrgChartMultiComponent } from './org-chart-multi/org-chart-multi.component';\r\nimport { OrgChartFlexComponent } from './org-chart-flex/org-chart-flex.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    OrgChartComponent,\r\n    OrgChartMultiComponent,\r\n    OrgChartFlexComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    OrgChartComponent,\r\n    OrgChartMultiComponent,\r\n    OrgChartFlexComponent,\r\n  ]\r\n})\r\nexport class TanOrgChartModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'tanleica-org-chart-svg',\r\n  templateUrl: './org-chart-svg.component.html',\r\n  styleUrls: ['./org-chart-svg.component.scss']\r\n})\r\nexport class OrgChartSvgComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<p>org-chart-svg works!</p>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OrgChartSvgComponent } from './org-chart-svg/org-chart-svg.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    OrgChartSvgComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    OrgChartSvgComponent\r\n  ]\r\n})\r\nexport class TanOrgChartSvgModule { }\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport * as d3 from 'd3';\r\n\r\n@Component({\r\n  selector: 'tanleica-pie-chart',\r\n  templateUrl: './pie-chart.component.html',\r\n  styleUrls: ['./pie-chart.component.scss']\r\n})\r\nexport class PieChartComponent implements OnInit, AfterViewInit {\r\n\r\n  @Input() width: number = 350;\r\n  @Input() height: number = 350;\r\n  @Input() data: any[] = [\r\n    { \"Framework\": \"Vue\", \"Stars\": \"166443\", \"Released\": \"2014\" },\r\n    { \"Framework\": \"React\", \"Stars\": \"150793\", \"Released\": \"2013\" },\r\n    { \"Framework\": \"Angular\", \"Stars\": \"62342\", \"Released\": \"2016\" },\r\n    { \"Framework\": \"Backbone\", \"Stars\": \"27647\", \"Released\": \"2010\" },\r\n    { \"Framework\": \"Ember\", \"Stars\": \"21471\", \"Released\": \"2011\" },\r\n  ];\r\n  @Input() palletes: string[] = [\r\n    '#D2D2D2',\r\n    '#FF8D5D',\r\n    '#B4D8F3',\r\n    '#B8DEAB',\r\n    '#FECB7F',\r\n    '#D6ED8B',\r\n    '#F1C2DB',\r\n    '#FDE980',\r\n  ];\r\n\r\n  @ViewChild('pie') pie!: ElementRef;\r\n\r\n  private svg: any;\r\n  private margin = 50;\r\n  // The radius of the pie chart is half the smallest side\r\n  private radius = Math.min(this.width, this.height) / 2 - this.margin;\r\n  private colors: any;\r\n\r\n  private createSvg(): void {\r\n    const element = this.pie.nativeElement;\r\n    this.svg = d3.select(element)\r\n      .append(\"svg\")\r\n      .attr(\"width\", this.width)\r\n      .attr(\"height\", this.height)\r\n      .append(\"g\")\r\n      .attr(\r\n        \"transform\",\r\n        \"translate(\" + this.width / 2 + \",\" + this.height / 2 + \")\"\r\n      );\r\n  }\r\n\r\n  private createColors(): void {\r\n    this.colors = d3.scaleOrdinal()\r\n      .domain(this.data.map(d => d.Stars.toString()))\r\n      .range(this.palletes);\r\n  }\r\n\r\n  private drawChart(): void {\r\n    // Compute the position of each group on the pie:\r\n    const pie = d3.pie<any>().value((d: any) => Number(d.Stars));\r\n\r\n    // Build the pie chart\r\n    this.svg\r\n      .selectAll('pieces')\r\n      .data(pie(this.data))\r\n      .enter()\r\n      .append('path')\r\n      .attr('d', d3.arc()\r\n        .innerRadius(0)\r\n        .outerRadius(this.radius)\r\n      )\r\n      .attr('fill', (d: any, i: any) => (this.colors(i)))\r\n      .attr(\"stroke\", \"#121926\")\r\n      .style(\"stroke-width\", \"1px\");\r\n\r\n    // Add labels\r\n    const labelLocation = d3.arc()\r\n      .innerRadius(100)\r\n      .outerRadius(this.radius);\r\n\r\n    this.svg\r\n      .selectAll('pieces')\r\n      .data(pie(this.data))\r\n      .enter()\r\n      .append('text')\r\n      .text((d: any) => d.data.Framework)\r\n      .attr(\"transform\", (d: any) => \"translate(\" + labelLocation.centroid(d) + \")\")\r\n      .style(\"text-anchor\", \"middle\")\r\n      .style(\"font-size\", 15);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.createSvg();\r\n    this.createColors();\r\n    this.drawChart();\r\n  }\r\n\r\n}","<p>pie-chart works!</p>\r\n<div class=\"tl-pie-chart-container\">\r\n    <figure #pie></figure>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PieChartComponent } from './pie-chart/pie-chart.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    PieChartComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    PieChartComponent\r\n  ]\r\n})\r\nexport class TanPieChartModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TanleicaHelperService {\r\n\r\n  constructor() { }\r\n\r\n\r\n  /*\r\n    coppied from the internet, need to be checked or improved\r\n  */\r\n  isDeepEqual(object1: any, object2: any): boolean {\r\n\r\n    const objKeys1 = Object.keys(object1);\r\n    const objKeys2 = Object.keys(object2);\r\n\r\n    if (objKeys1.length !== objKeys2.length) return false;\r\n\r\n    for (var key of objKeys1) {\r\n      const value1 = object1[key];\r\n      const value2 = object2[key];\r\n\r\n      const isObjects = this.isObject(value1) && this.isObject(value2);\r\n\r\n      if ((isObjects && !this.isDeepEqual(value1, value2)) ||\r\n        (!isObjects && value1 !== value2)\r\n      ) {\r\n        return false;\r\n      }\r\n    }\r\n    return true;\r\n  };\r\n\r\n  private isObject(object: any): boolean {\r\n    return object != null && typeof object === \"object\";\r\n  };\r\n\r\n  /**\r\n  * Returns a random number between min (inclusive) and max (exclusive)\r\n  */\r\n  getRandomArbitrary(min: number, max: number): number {\r\n    return Math.random() * (max - min) + min;\r\n  }\r\n\r\n  /**\r\n   * Returns a random integer between min (inclusive) and max (inclusive).\r\n   * The value is no lower than min (or the next integer greater than min\r\n   * if min isn't an integer) and no greater than max (or the next integer\r\n   * lower than max if max isn't an integer).\r\n   * Using Math.round() will give you a non-uniform distribution!\r\n   */\r\n  getRandomInt(min: number, max: number): number {\r\n    min = Math.ceil(min);\r\n    max = Math.floor(max);\r\n    return Math.floor(Math.random() * (max - min + 1)) + min;\r\n  }\r\n\r\n  numberTo2digitString(number: number): string {\r\n    return number < 10 ? '0' + number : number.toString();\r\n  }\r\n\r\n  generatePhoneNumber(length: number): string {\r\n    let result = '';\r\n    for (let i=0; i< length; i++) {\r\n      result += (i===4 || i===7 ? ' ' : '') + this.getRandomInt(0, 9).toString();\r\n    }\r\n    return result;\r\n  }\r\n\r\n  generateRandomEmail(prefixLength: number): string {\r\n    let result = '';\r\n    for (let i=0; i< prefixLength; i++) {\r\n      result += this.getRandomInt(0, 9).toString();\r\n    }\r\n    return result + '@email.com';\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TanleicaNavigationService {\r\n\r\n  navigating$ = new BehaviorSubject<boolean>(false);\r\n  navigationUrl$ = new BehaviorSubject<string>('');\r\n\r\n  constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { resolve } from 'dns';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TanleicaRecursiveService {\r\n\r\n  /*\r\n    list: input array of liner items\r\n    keyField: name of the field that will be used as node key (id, key, code,...)\r\n    titleField: name of the field that will be used as node title (title, caption, text,...)\r\n    parentField: name of the field that holds parent value (parent, parentId,...)\r\n  */\r\n\r\n  linerArrayToNestedArray(\r\n    list: any[],\r\n    keyField: string,\r\n    titleField: string,\r\n    parentField: string\r\n  ): Promise<any[]> {\r\n\r\n    /* \r\n      Input list will be refactored and returned as function output.\r\n      We need to make a shallow copy of input list for indexing until done,\r\n      (but items refferences stay the same),\r\n      because during loops items of list might be moved somewhere else\r\n    */\r\n    const listOriginalCopy = [...list];\r\n\r\n    return new Promise((resolve, reject) => {\r\n      /* \r\n        A try to bypass cases of possible overwriting \r\n        With the prefix \"tree$\" I hope that the probability is low enough\r\n      */\r\n      list.map(item => {\r\n        item.tree$Key = item[keyField];\r\n        item.tree$Title = item[titleField];\r\n        item.tree$Parent = item[parentField];\r\n        item.tree$Children = [];\r\n\r\n        //extras\r\n        item.tree$Tier = 1;\r\n        item.tree$Path = '.' + item.tree$Key;\r\n        item.tree$HasChidren = false;\r\n        item.tree$HasGrandchidren = false;\r\n      })\r\n\r\n      /*\r\n        The Algorithm:\r\n  \r\n        @Recursive function \"loop\":\r\n        - It takes one argument as current parent, which we need to add children to\r\n        - The children are selected from the liner input list with filter() method\r\n        - After being added, the children will be removed from the liner list with splice() method\r\n        @The recursive function \"loop\" calls itself:\r\n        - While mapping its tree$Children\r\n        - This time each item of the children will have role of current parent, and so on\r\n        @ The first calls:\r\n        - Mapping the liner input array and call the loop with each of the items\r\n      */\r\n\r\n      const loop = (currentParent: any) => {\r\n        const key = currentParent.tree$Key;\r\n        const tier = currentParent.tree$Tier;\r\n        const path = currentParent.tree$Path;\r\n\r\n        // select children for currentParent \r\n        const children = list.filter(c => c.tree$Parent === key);\r\n\r\n        if (!!children.length) {\r\n          currentParent.tree$HasChidren = true;\r\n\r\n          // update grandpa if any\r\n          const grandparents = listOriginalCopy.filter(x => x.tree$Key === currentParent.tree$Parent);\r\n          if (!!grandparents.length) grandparents[0].tree$HasGrandchidren = true;\r\n        }\r\n\r\n        children.map(child => {\r\n          child.tree$Tier = tier + 1;\r\n          child.tree$Path = path + '.' + child.tree$Key;\r\n          currentParent.tree$Children.push(child);\r\n          const index = list.indexOf(child);\r\n          if (index > -1) list.splice(index, 1);\r\n        })\r\n\r\n        currentParent.tree$Children.map((child: any) => {\r\n          loop(child);\r\n        })\r\n      }\r\n\r\n      try {\r\n        list.map(item => {\r\n          loop(item);\r\n        })\r\n      } catch (error) {\r\n        reject(error)\r\n      }\r\n\r\n      resolve(list);\r\n\r\n    })\r\n\r\n  }\r\n\r\n}\r\n","/*\r\n * Public API Surface of tan-library\r\n */\r\n\r\nexport * from './lib/tan-layout/v1/tan-layout-v1.component';\r\nexport * from './lib/tan-layout/v1/header-menu/header-menu.component';\r\nexport * from './lib/tan-layout/v1/header-menu/item.component';\r\nexport * from './lib/tan-layout/v1/header-menu/IHeaderMenuItem';\r\nexport * from './lib/tan-layout/v1/header-menu/IRightIcon';\r\nexport * from './lib/tan-layout/tan-layout.module';\r\n\r\nexport * from './lib/tan-fullscreen-modal-loader/fullscreen-modal-loader/fullscreen-modal-loader.component';\r\nexport * from './lib/tan-fullscreen-modal-loader/tan-fullscreen-modal-loader.module';\r\n\r\nexport * from './lib/tan-tabs/tabs/tabs.component';\r\nexport * from './lib/tan-tabs/tan-tabs.module';\r\n\r\nexport * from './lib/tan-table/table/table.component';\r\nexport * from './lib/tan-table/tan-table.module';\r\n\r\nexport * from './lib/tan-dropdown/dropdown/dropdown.component';\r\nexport * from './lib/tan-dropdown/tan-dropdown.module';\r\n\r\nexport * from './lib/tan-dropdown-autocomplete/dropdown-autocomplete/dropdown-autocomplete.component';\r\nexport * from './lib/tan-dropdown-autocomplete/tan-dropdown-autocomplete.module';\r\n\r\nexport * from './lib/tan-checkbox/checkbox/checkbox.component';\r\nexport * from './lib/tan-checkbox/tan-checkbox.module';\r\n\r\nexport * from './lib/tan-ios-switcher/ios-switcher/ios-switcher.component';\r\nexport * from './lib/tan-ios-switcher/tan-ios-switcher.module';\r\n\r\nexport * from './lib/tan-threedots/threedots/threedots.component';\r\nexport * from './lib/tan-threedots/tan-threedots.module';\r\n\r\nexport * from './lib/tan-pagination/pagination/pagination.component';\r\nexport * from './lib/tan-pagination/tan-pagination.module';\r\n\r\nexport * from './lib/tan-input-search/input-search/input-search.component';\r\nexport * from './lib/tan-input-search/tan-input-search.module';\r\n\r\nexport * from './lib/tan-onboard-line/onboard-line/onboard-line.component';\r\nexport * from './lib/tan-onboard-line/tan-onboard-line.module';\r\n\r\nexport * from './lib/tan-quote/quote/quote.component';\r\nexport * from './lib/tan-quote/tan-quote.module';\r\n\r\nexport * from './lib/tan-date-picker/date-picker/date-picker.component';\r\nexport * from './lib/tan-date-picker/tan-date-picker.module';\r\n\r\nexport * from './lib/tan-month-picker/month-picker-emitter/month-picker-emitter.component';\r\nexport * from './lib/tan-month-picker/tan-month-picker.module';\r\n\r\nexport * from './lib/tan-year-picker/year-picker-emitter/year-picker-emitter.component';\r\nexport * from './lib/tan-year-picker/tan-year-picker.module';\r\n\r\nexport * from './lib/tan-org-chart/org-chart/org-chart.component';\r\nexport * from './lib/tan-org-chart/org-chart-multi/org-chart-multi.component';\r\nexport * from './lib/tan-org-chart/org-chart-flex/org-chart-flex.component';\r\nexport * from './lib/tan-org-chart/tan-org-chart.module';\r\n\r\nexport * from './lib/tan-org-chart-svg/org-chart-svg/org-chart-svg.component';\r\nexport * from './lib/tan-org-chart-svg/tan-org-chart-svg.module';\r\n\r\nexport * from './lib/charts/tan-pie-chart/pie-chart/pie-chart.component';\r\nexport * from './lib/charts/tan-pie-chart/tan-pie-chart.module';\r\n\r\nexport * from './lib/tan-services/tanleica-helper.service';\r\nexport * from './lib/tan-services/tanleica-datetime.service';\r\nexport * from './lib/tan-services/tanleica-navigation.service';\r\nexport * from './lib/tan-services/tanleica-dom.service';\r\nexport * from './lib/tan-services/tanleica-recursive.service';\r\n\r\nexport * from './lib/tan-pipes/vn-date.pipe';\r\nexport * from './lib/tan-pipes/vn-datetime.pipe';\r\nexport * from './lib/tan-pipes/vn-currency.pipe';\r\nexport * from './lib/tan-pipes/translate.pipe';\r\nexport * from './lib/tan-pipes/table-cell.pipe';\r\nexport * from './lib/tan-pipes/tan-pipes.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.HeaderMenuService","i1.HeaderMenuService","i2.ItemComponent","i3","i4","i5","i2.HeaderMenuComponent","i1.TanleicaDomService","i2.ThreedotsComponent","i1","i1.ThreedotsComponent","i2","i4.TableCellPipe","i1.OnboardLineService","i1.TanleicaDatetimeService","i2.TanleicaDatetimeService","i3.MonthPickerEmitterComponent","i4.YearPickerEmitterComponent","i6","i7.TranslatePipe"],"mappings":";;;;;;;;;;;MAOa,iBAAiB,CAAA;AAM5B,IAAA,WAAA,GAAA;AAJA,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAErD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAS,QAAQ,CAAC,CAAC;KAGxD;AAED,IAAA,eAAe,CAAC,IAAqB,EAAA;QACnC,IAAI,MAAM,GAAY,KAAK,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC9B,IAAI,GAAG,KAAK,UAAU,EAAE;gBACtB,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE;oBAC9B,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO;AACR,iBAAA;AACF,aAAA;YAAA,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,wBAAwB,CAAC,IAAqB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,KAAK,IAAG;AACzB,gBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;AACzB,gBAAA,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,EAAE,CAAA,CAAE,CAAC;gBACzC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAM,GAAG,CAAC,CAAC;AAC9B,gBAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACvC,aAAC,CAAC,CAAA;AACH,SAAA;KACF;;+GA/BU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCMY,aAAa,CAAA;IAexB,WAAoB,CAAA,MAAc,EAAU,iBAAoC,EAAA;QAA5D,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAAU,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AAXtE,QAAA,IAAA,CAAA,OAAO,GAAyB,IAAI,YAAY,EAAE,CAAC;QAM7D,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAE7B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;KAG2D;IAErF,QAAQ,GAAA;QAEN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAErG,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;gBACnC,IAAI,GAAG,KAAK,UAAU,EAAE;AACtB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO;AACR,iBAAA;gBAAA,CAAC;AACJ,aAAC,CAAC,CAAA;AACH,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAAY,EAAA;QAE1B,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,KAAK,gBAAgB,EAAE;YAC9D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,yBAAyB,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC/G,SAAA;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,KAAK,yBAAyB,EAAE;YAC9E,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,gBAAgB,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;AAC/G,SAAA;KACF;AAED,IAAA,OAAO,CAAC,KAAa,EAAA;KACpB;IAED,WAAW,GAAA;QAET,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,SAAA;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,KAAK,gBAAgB,EAAE;AAC/D,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,yBAAyB,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC/G,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,gBAAgB,CAAC;YAC5E,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;AAClI,SAAA;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAEpC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACjC;;2GAzEU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;+FAAb,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,IAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ1B,+8CA0BK,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,gwphBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EDdQ,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,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,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,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,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,UAAU,EAAA,aAAA,EAGL,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+8CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,gwphBAAA,CAAA,EAAA,CAAA;0HAI5B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACU,EAAE,EAAA,CAAA;sBAAlB,SAAS;uBAAC,IAAI,CAAA;gBACQ,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBACF,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM,CAAA;gBACM,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;;MEFV,mBAAmB,CAAA;IAkB9B,WACU,CAAA,iBAAoC,EACpC,QAAmB,EAAA;QADnB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAP7B,IAAmB,CAAA,mBAAA,GAA2B,EAAE,CAAC;QACjD,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;KAOtB;IAEL,QAAQ,GAAA;QAEN,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;QAE5F,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;;QAGtG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAqB,KAAI;AACxC,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACpC,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC7B,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAG;AAC3B,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,aAAC,CAAC,CAAA;YACF,OAAO,CAAC,QAAQ,EAAE,CAAC;AACpB,SAAA;KAEF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAG;YAC7D,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC9F,SAAC,CAAC,CAAA;KACH;AAED,IAAA,sBAAsB,CAAC,IAAqB,EAAA;AAC1C,QAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAA8C,2CAAA,EAAA,IAAI,CAAC,KAAK,CAAc,YAAA,CAAA,CAAC,CAAC;AAC/F,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AACtE,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,gBAAA,KAAK,EAAE,CAAC;AACT,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAA4B,yBAAA,EAAA,IAAI,CAAC,EAAE,CAAE,CAAA,CAAC,CAAC;AAC9D,SAAA;QAAA,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAG;AACzB,gBAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACrC,aAAC,CAAC,CAAA;AACH,SAAA;KAEF;AAED,IAAA,UAAU,CAAC,IAAqB,EAAA;QAC9B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC9B,IAAI,GAAG,KAAK,UAAU,EAAE;gBACtB,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE;oBAC9B,MAAM,GAAG,IAAI,CAAC;AACf,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,eAAe,CAAC,IAAqB,EAAA;QACnC,IAAI,MAAM,GAAY,KAAK,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC9B,IAAI,GAAG,KAAK,UAAU,EAAE;gBACtB,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE;oBAC9B,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO;AACR,iBAAA;AACF,aAAA;YAAA,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;IAED,oBAAoB,CAClB,IAAqB,EACrB,WAAmB,EACnB,eAAuB,EACvB,YAAoB,EACpB,KAAc,EAAA;QAEd,OAAO;AACP;;;AAGE;QACF,IACE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAM,IAAI,YAAY;aAC7C,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,EAC9C;;AAEA,YAAA,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;;AAE/E,aAAA;AAAM,iBAAA;;AAEN,aAAA;AACF,SAAA;QAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAG;AACzB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AACtF,aAAC,CAAC,CAAC;AACJ,SAAA;QAAA,CAAC;KACH;;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;KAClC;;iHAnIU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,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,SAAA,EAAA,IAAA,EAAA,mBAAmB,iSClBhC,42EA6CM,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,gwphBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,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,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FD3BO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,aAAA,EAGZ,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,42EAAA,EAAA,MAAA,EAAA,CAAA,EAAA,EAAA,gwphBAAA,CAAA,EAAA,CAAA;6HAId,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBAGZ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;MEdK,oBAAoB,CAAA;AAW/B,IAAA,WAAA,CAAoB,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAAK;IAE7D,QAAQ,GAAA;KACP;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAG;AACxE,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;AACjD,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACnC;;kHAxBU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,mQCZjC,iuBAmBM,EAAA,MAAA,EAAA,CAAA,gwphBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAK,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FDPO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,mBAAmB,EAAA,aAAA,EAGd,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,iuBAAA,EAAA,MAAA,EAAA,CAAA,gwphBAAA,CAAA,EAAA,CAAA;qGAG5B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MEIK,eAAe,CAAA;;6GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAZX,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,aAErE,YAAY;QACZ,YAAY;AACZ,QAAA,WAAW,aAGX,oBAAoB;QACpB,mBAAmB;QACnB,aAAa,CAAA,EAAA,CAAA,CAAA;AAGJ,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAXjB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,YAAY;YACZ,WAAW;AACZ,SAAA,CAAA,EAAA,CAAA,CAAA;4FAOU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,CAAC;AACxE,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,mBAAmB;wBACnB,aAAa;AACd,qBAAA;AACF,iBAAA,CAAA;;;MChBY,kBAAkB,CAAA;AAE7B,IAAA,WAAA,GAAA,GAAiB;IAEjB,YAAY,GAAA;QACV,OAAO,IAAI,CAAC,GAAG,CACb,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,IACnD,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAC/C,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EACzC,CAAC,CACF,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,UAAkB,EAAA;QACtC,IAAI,CAAC,CAAC,CAAC,UAAU;AAAE,YAAA,OAAO,SAAS,CAAA;AACnC,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,WAAoB,CAAC;QACzB,IAAI,gBAAgB,GAAY,KAAK,CAAC;QACtC,IAAI,MAAM,GAAW,EAAE,CAAA;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,YAAA,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBAC1C,MAAM,IAAI,WAAW,CAAC;gBACtB,gBAAgB,GAAG,IAAI,CAAC;AACzB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,gBAAgB,EAAE;oBACpB,MAAM;AACP,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;KACvB;AAED,IAAA,oBAAoB,CAAC,UAAkB,EAAA;QACrC,IAAI,CAAC,CAAC,CAAC,UAAU;AAAE,YAAA,OAAO,SAAS,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAE,CAAC;QAC3D,IAAI,CAAC,CAAC,UAAU,EAAE;YAChB,OAAO,UAAU,CAAC,OAAO,CAAC,UAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AACtD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;KACF;;gHAzCU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,kBAAkB,CAAA;AAE7B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;gHALU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,0DCP/B,gFAEM,EAAA,MAAA,EAAA,CAAA,gqBAAA,CAAA,EAAA,CAAA,CAAA;4FDKO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,gFAAA,EAAA,MAAA,EAAA,CAAA,gqBAAA,CAAA,EAAA,CAAA;;;MEKnB,8BAA8B,CAAA;AAMzC,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAAK;IAE/D,QAAQ,GAAA;KACP;IAED,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;YACd,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAC7D,YAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAE,CAAA;AACvC,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACvE,SAAC,CAAC,CAAC;KACJ;;4HAjBU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,gNCR3C,uaAUc,EAAA,MAAA,EAAA,CAAA,uUAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDFD,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,uaAAA,EAAA,MAAA,EAAA,CAAA,uUAAA,CAAA,EAAA,CAAA;sGAMnC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEkB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;;;MEGX,kBAAkB,CAAA;;gHAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAT3B,YAAA,EAAA,CAAA,kBAAkB,CAGlB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAGT,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAPpB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,kBAAkB;AACnB,qBAAA;AACF,iBAAA,CAAA;;;MCIY,8BAA8B,CAAA;;4HAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6HAA9B,8BAA8B,EAAA,YAAA,EAAA,CAVvC,8BAA8B,CAAA,EAAA,OAAA,EAAA,CAG9B,YAAY;AACZ,QAAA,kBAAkB,aAGlB,8BAA8B,CAAA,EAAA,CAAA,CAAA;AAGrB,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,EARhC,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,kBAAkB;AACnB,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAZ1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,8BAA8B;AAC/B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,8BAA8B;AAC/B,qBAAA;AACF,iBAAA,CAAA;;;MCLY,aAAa,CAAA;AASxB,IAAA,WAAA,GAAA;AAJU,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAA0B,CAAC;QAEvE,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;KAEP;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,OAAO,CAAC,KAAa,EAAA;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAED,IAAA,oBAAoB,CAAC,IAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;KAChE;;2GApBU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,wLCZ1B,+8CAyBM,EAAA,MAAA,EAAA,CAAA,iqEAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,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,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDbO,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,+8CAAA,EAAA,MAAA,EAAA,CAAA,iqEAAA,CAAA,EAAA,CAAA;0EAMhB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEFI,aAAa,CAAA;;2GAAb,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,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EATtB,YAAA,EAAA,CAAA,aAAa,CAGb,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,aAAa,CAAA,EAAA,CAAA,CAAA;AAGJ,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAPf,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;AACd,qBAAA;AACF,iBAAA,CAAA;;;MCVY,aAAa,CAAA;IAExB,SAAS,CAAC,KAAU,EAAE,IAAwB,EAAA;AAE5C,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE;AAC3C,oBAAA,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBAC9B,IAAI,CAAC,GAAoB,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC9C,oBAAA,IAAI,CAAC,GAAoB,KAAK,CAAC,OAAO,EAAE,CAAC;AACzC,oBAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,oBAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,oBAAA,OAAO,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAI,CAAA,EAAA,CAAC,EAAE,CAAC;AACzB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;AACxC,iBAAA;AACH,YAAA,KAAK,YAAY;AACf,gBAAA,MAAM,SAAS,GAAS,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;;AAGxC,gBAAA,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,UAAU,EAAE;AAC/C,oBAAA,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;oBAClC,IAAI,CAAC,GAAoB,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAClD,oBAAA,IAAI,CAAC,GAAoB,SAAS,CAAC,OAAO,EAAE,CAAC;AAC7C,oBAAA,IAAI,EAAE,GAAoB,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC/C,oBAAA,IAAI,EAAE,GAAoB,SAAS,CAAC,UAAU,EAAE,CAAC;AACjD,oBAAA,IAAI,EAAE,GAAoB,SAAS,CAAC,UAAU,EAAE,CAAC;AACjD,oBAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,oBAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,oBAAA,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,oBAAA,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,oBAAA,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,oBAAA,OAAO,CAAG,EAAA,CAAC,CAAI,CAAA,EAAA,CAAC,CAAI,CAAA,EAAA,CAAC,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,EAAE,EAAE,CAAC;AAC3C,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;AACxC,iBAAA;AACH,YAAA;AACE,gBAAA,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC1C,SAAA;KACF;;2GAvCU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;yGAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;ICWW,UAKX;AALD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EALW,SAAS,KAAT,SAAS,GAKpB,EAAA,CAAA,CAAA,CAAA;IAEW,WAKX;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,WAAkB,CAAA;AAClB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,aAAsB,CAAA;AACtB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,aAAsB,CAAA;AACtB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,eAA0B,CAAA;AAC5B,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA,CAAA;MA+BY,cAAc,CAAA;AAyCzB,IAAA,WAAA,GAAA;AA7BS,QAAA,IAAA,CAAA,YAAY,GAAW,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;AAcnD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAA8B,CAAC;AAC7D,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAA2C,CAAC;AAC/E,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAA0B,CAAC;QAG3E,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAc,EAAE,CAAC;AAI9B,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,eAAe,CAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7F,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;KAIlB;IAEjB,QAAQ,GAAA;;AAIN,QAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,4BAA4B,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAW,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACvE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,4DAA4D,CAAC,CAAC;AACvF,SAAA;;AAGD,QAAA,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAG;AACnB,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAChB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,0DAA0D,CAAC,CAAC;AACrF,aAAA;AACH,SAAC,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AACvE,QAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;YAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,8BAA8B,CAAC,CAAC;QAG1D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpF,IAAI,IAAI,GAAG,IAAI,CAAC,YAAa,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,aAAa,CAAC,GAAG,CAAC,CAAC,IAAG;AACpB,YAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,6DAA6D,CAAC,CAAC;AACvG,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAM,CAAA;AACxB,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,EACrC,YAAY,CAAC,GAAG,CAAC,CAClB,CAAC,SAAS,CAAC,CAAC,IAAG;AACd,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACzB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAA;SACH,CAAC,CACH,CAAA;KAEF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACnB,MAAM,gBAAgB,GAAc,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAM,KAAI;AAC3C,gBAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC9B,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;YACzB,MAAM,gBAAgB,GAAc,EAAE,CAAC;YACvC,OAAO,CAAC,YAAY,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,SAAc,KAAI;gBACzD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACrB,oBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AAC5B,wBAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,qBAAA;AAAM,yBAAA;AACL,wBAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,qBAAA;AACH,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;AACvC,SAAA;KACF;IAGD,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC/E,EAAE,CAAC,CAAC,CAAA;KACN;IAED,gBAAgB,CAAC,QAAgB,EAAE,SAAiB,EAAA;AAClD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI;YAChC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC3B,SAAA,CAAC,CAAA;KACH;AAED,IAAA,cAAc,CAAC,IAAa,EAAA;QAC1B,MAAM,gBAAgB,GAAc,EAAE,CAAC;QACvC,MAAM,cAAc,GAAU,EAAE,CAAC;AAEjC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;AACnB,YAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;AACtC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC/C;IAED,uBAAuB,GAAA;QACrB,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,KAAa,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAG;AAClF,YAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC9B,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAE9C,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,SAAA;aAAM,IAAI,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC9D,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,SAAA;KAEF;AAED,IAAA,kBAAkB,CAAC,QAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC3B,SAAA,CAAC,CAAA;KACH;AAED,IAAA,aAAa,CAAC,QAAgB,EAAA;AAC5B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,YAAA,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO;AAC/C,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9C,SAAA;KACF;;4GAjLU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,spBCzD3B,86HAgEM,EAAA,MAAA,EAAA,CAAA,m+2dAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,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,EAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAQ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,WAAA,EAAAC,aAAA,EAAA,EAAA,CAAA,CAAA;4FDPO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,86HAAA,EAAA,MAAA,EAAA,CAAA,m+2dAAA,CAAA,EAAA,CAAA;0EAYjB,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBAWgB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;;ME3FV,UAAU,CAAA;AAErB,IAAA,SAAS,CAAC,KAAU,EAAA;AAElB,QAAA,MAAM,SAAS,GAAS,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAExC,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;;AAGnC,QAAA,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,UAAU,EAAE;AAC/C,YAAA,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,GAAoB,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,GAAoB,SAAS,CAAC,OAAO,EAAE,CAAC;AAC7C,YAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,YAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,YAAA,OAAO,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAI,CAAA,EAAA,CAAC,EAAE,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzB,SAAA;KACF;;wGAnBU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;sGAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;ACGM,MAAM,aAAa,GAAyB;AAC/C,IAAA;AACI,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,EAAE,EAAE,OAAO;AACX,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,UAAU;AACjB,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,EAAE,EAAE,OAAO;AACX,QAAA,EAAE,EAAE,KAAK;AACT,QAAA,EAAE,EAAE,UAAU;AACjB,KAAA;CACJ;;MCdY,aAAa,CAAA;IAExB,SAAS,CAAC,IAAY,EAAE,IAAY,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE;AACpB,YAAA,MAAM,IAAI,GAAQ,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AACd,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;;2GAdU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;yGAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;MCAY,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAa,EAAE,GAAG,IAAe,EAAA;AACzC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEtD,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,QAAA,KAAK,IAAI,CAAC,GAAC,MAAM,CAAC,MAAM,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,UAAU,EAAE,CAAC;YACb,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE;AAC1C,gBAAA,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1B,aAAA;AAEF,SAAA;;AAGD,QAAA,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC1B,WAAW,CAAC,KAAK,EAAE,CAAC;AACrB,SAAA;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;KACpC;;4GAtBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;MCCY,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAU,EAAA;AAElB,QAAA,MAAM,SAAS,GAAS,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;;AAGxC,QAAA,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,UAAU,EAAE;AAC/C,YAAA,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,GAAoB,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,GAAoB,SAAS,CAAC,OAAO,EAAE,CAAC;AAC7C,YAAA,IAAI,EAAE,GAAoB,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC/C,YAAA,IAAI,EAAE,GAAoB,SAAS,CAAC,UAAU,EAAE,CAAC;AACjD,YAAA,IAAI,EAAE,GAAoB,SAAS,CAAC,UAAU,EAAE,CAAC;AACjD,YAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,YAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,YAAA,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,YAAA,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,YAAA,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,YAAA,OAAO,CAAG,EAAA,CAAC,CAAI,CAAA,EAAA,CAAC,CAAI,CAAA,EAAA,CAAC,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,EAAE,EAAE,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzB,SAAA;KACF;;4GAvBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;MCuBY,cAAc,CAAA;;4GAAd,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,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAjBvB,UAAU;QACV,aAAa;QACb,aAAa;QACb,cAAc;QACd,cAAc,CAAA,EAAA,OAAA,EAAA,CAGd,YAAY,CAAA,EAAA,OAAA,EAAA,CAGZ,UAAU;QACV,cAAc;QACd,aAAa;QACb,aAAa;QACb,cAAc,CAAA,EAAA,CAAA,CAAA;AAGL,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAXhB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FASU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAnB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,UAAU;wBACV,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACV,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,cAAc;AACf,qBAAA;AACF,iBAAA,CAAA;;;MCPY,cAAc,CAAA;;4GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,CAVvB,cAAc,CAAA,EAAA,OAAA,EAAA,CAGd,YAAY;QACZ,WAAW;QACX,cAAc;AACd,QAAA,kBAAkB,aAEV,cAAc,CAAA,EAAA,CAAA,CAAA;AAEb,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EARhB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,cAAc;YACd,kBAAkB;AACnB,SAAA,CAAA,EAAA,CAAA,CAAA;4FAGU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAZ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,cAAc;wBACd,kBAAkB;AACnB,qBAAA;oBACD,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA,CAAA;;;MCkBY,iBAAiB,CAAA;IA6B5B,WACU,CAAA,QAAmB,EACnB,kBAAsC,EAAA;QADtC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QA3BvC,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAQlC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAyB,IAAI,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAA6C,EAAE,CAAC,CAAC;AAQ/E,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAE3B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;QAEtB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAKZ;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KAClE;IAED,eAAe,GAAA;AACb;;AAEE;AACF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAQ,KAAI;AACrE;;AAEG;AACH,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACxE,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;KACnF;IAED,OAAO,CAAC,KAA6B,EAAE,OAAmD,EAAA;AACxF,QAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,MAAgD,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC/G,QAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE;YACtB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAChB,SAAA;KACF;IAED,WAAW,GAAA;;QAET,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;KACxC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;KACtD;AAED,IAAA,UAAU,CAAC,GAAoB,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;KAC5G;AAED,IAAA,eAAe,CAAC,KAAa,EAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAC,EAAE,CAAC,CAAC,CAAC;KACP;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;KACxC;;+GArHU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,kBAAA,EAAA,CAAA,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,SAAA,EAAA,IAAA,EAAA,iBAAiB,EARjB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,iBAAiB;AAC/B,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCH,q8BAmBM,EAAA,MAAA,EAAA,CAAA,6iEAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,CAAA,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,EAAAJ,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,CAAA,CAAA;4FDiBO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGlB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAmB,iBAAA;AAC/B,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,q8BAAA,EAAA,MAAA,EAAA,CAAA,6iEAAA,CAAA,EAAA,CAAA;8HAIQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACkB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;;;MEtBX,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAX1B,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAGjB,YAAY;QACZ,WAAW;AACX,QAAA,kBAAkB,aAGlB,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAGR,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EATnB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,kBAAkB;AACnB,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;MCFY,6BAA6B,CAAA;IAgCxC,WACU,CAAA,QAAmB,EACnB,kBAAsC,EAAA;QADtC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;AAtBhD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAyB,IAAI,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAA6C,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAElB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAO3B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAE3B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;QAEtB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAKZ;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KAClE;IAED,eAAe,GAAA;AACb;;AAEE;AACF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAQ,KAAI;AACrE;;AAEG;AACH,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACxE,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,IAAG;AACpF,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE;AAC7B,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;oBACpB,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACnC,qBAAC,CAAC,CAAA;AACH,iBAAA;AACF,aAAA;AAAM,iBAAA;AAEL,gBAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,oCAAoC,CAAC,CAAC;gBAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;oBACpC,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACnC,qBAAC,CAAC,CAAA;AACH,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;oBAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,oBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AACjC,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;KACnF;IAED,OAAO,CAAC,KAA6B,EAAE,OAAmD,EAAA;AACxF,QAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,MAAgD,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC/G,QAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE;YACtB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACf,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,mBAAmB;YAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC1D;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;KACtD;AAED,IAAA,UAAU,CAAC,GAAoB,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,eAAe,CAAC,KAAa,EAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAC,EAAE,CAAC,CAAC,CAAC;KACP;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;KACxC;AAED,IAAA,YAAY,CAAC,CAAS,EAAA;AACpB,QAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,SAAA;AAAM,aAAA;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;gBACnB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAY,CAAC;AAC7C,gBAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;AACF,SAAA;KACF;;2HA7KU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAR7B,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,6BAA6B;AAC3C,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,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,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfH,o4BAiBM,EAAA,MAAA,EAAA,CAAA,+nEAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,CAAA,CAAA;4FDAO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAZzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,EAG/B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAA+B,6BAAA;AAC3C,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,o4BAAA,EAAA,MAAA,EAAA,CAAA,+nEAAA,CAAA,EAAA,CAAA;8HAIQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACkB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACF,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;;;MEJP,6BAA6B,CAAA;;2HAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4HAA7B,6BAA6B,EAAA,YAAA,EAAA,CAVtC,6BAA6B,CAAA,EAAA,OAAA,EAAA,CAG7B,YAAY;AACZ,QAAA,WAAW,aAGX,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAGpB,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,EAR/B,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;AACZ,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAZzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,6BAA6B;AAC9B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,6BAA6B;AAC9B,qBAAA;AACF,iBAAA,CAAA;;;MCHY,iBAAiB,CAAA;AAe5B,IAAA,WAAA,GAAA;AARA,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAE3B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;QAEtB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAEA;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,UAAU,CAAC,GAAY,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;KAClB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;;+GA7CU,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,SAAA,EAAA,IAAA,EAAA,iBAAiB,EARjB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,iBAAiB;AAC/B,SAAA;AACF,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbH,0QAKQ,EAAA,MAAA,EAAA,CAAA,ktCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDUK,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGlB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAmB,iBAAA;AAC/B,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,0QAAA,EAAA,MAAA,EAAA,CAAA,ktCAAA,CAAA,EAAA,CAAA;0EAIQ,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEAK,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAV1B,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAGjB,YAAY;AACZ,QAAA,WAAW,aAGX,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAGR,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EARnB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;AACZ,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;ICbW,4BASX;AATD,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,2BAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,2BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,2BAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,2BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,2BAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,2BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,2BAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EATW,2BAA2B,KAA3B,2BAA2B,GAStC,EAAA,CAAA,CAAA,CAAA;AAED,MAAM,iBAAiB,GAAQ;AAC7B,IAAA,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;AACtB,IAAA,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AAC9B,IAAA,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;AACxB,IAAA,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5B,IAAA,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;AACtB,IAAA,WAAW,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;AACzC,IAAA,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;AACtB,IAAA,WAAW,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;CAC1C,CAAA;MAcY,oBAAoB,CAAA;AAe/B,IAAA,WAAA,GAAA;AAbS,QAAA,IAAA,CAAA,SAAS,GAAgC,2BAA2B,CAAC,OAAO,CAAC;AAMtF,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAiB,IAAI,CAAC,CAAC;AAEnD,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAC3B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;QAEtB,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;KAElB;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAG;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAE,CAAC;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAE,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;SAC3D,CAAC,CACH,CAAA;KACF;IAED,eAAe,GAAA;QACb,UAAU,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;KAC1G;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAG;gBACzB,CAAC,CAAC,WAAW,EAAE,CAAC;AAClB,aAAC,CAAC,CAAA;AACH,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;KAEjC;AAED,IAAA,UAAU,CAAC,GAAY,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;KAC3D;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACtC;;kHAhEU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EARpB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,oBAAoB;AAClC,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpCH,yVASQ,EAAA,MAAA,EAAA,CAAA,u7DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FD6BK,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGtB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAsB,oBAAA;AAClC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,yVAAA,EAAA,MAAA,EAAA,CAAA,u7DAAA,CAAA,EAAA,CAAA;0EAIQ,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEkB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;;;MExBX,oBAAoB,CAAA;;kHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mHAApB,oBAAoB,EAAA,YAAA,EAAA,CAV7B,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAGpB,YAAY;AACZ,QAAA,WAAW,aAGX,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGX,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EARtB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;AACZ,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;MCVY,mBAAmB,CAAA;AAyB9B,IAAA,WAAA,GAAA;AAlBU,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAK1C,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;KAaf;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC5E;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;AAAE,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACnE;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;AAAE,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KAChF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC;AAAE,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KACxG;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS;AAAE,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KACrH;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAED,eAAe,GAAA;AAEb,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,IAAG;AAC7E,YAAA,IAAI,CAAC,oBAAoB,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7E,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,IAAG;AAC/E,YAAA,IAAI,CAAC,oBAAoB,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7E,SAAC,CAAC,CAAC;AAGH,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,IAAG;YACzE,IAAI,CAAC,oBAAoB,GAAG,CAAG,EAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA,CAAE,CAAC;AAC3D,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,IAAG;YAC3E,IAAI,CAAC,oBAAoB,GAAG,CAAG,EAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA,CAAE,CAAC;AAC3D,SAAC,CAAC,CAAC;QAGH,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAChE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAClE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAC5D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QAE9D,IAAI,IAAI,CAAC,UAAU;YAAE,UAAU,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;KAEhH;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,sBAAsB;AAAE,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;QAC3E,IAAI,IAAI,CAAC,uBAAuB;AAAE,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;QAC7E,IAAI,IAAI,CAAC,oBAAoB;AAAE,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;QACvE,IAAI,IAAI,CAAC,qBAAqB;AAAE,YAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;KAE1E;;iHAxFU,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,SAAA,EAAA,IAAA,EAAA,mBAAmB,maCRhC,2uCAoBM,EAAA,MAAA,EAAA,CAAA,g1EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,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,CAAA,EAAA,CAAA,CAAA;4FDZO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,2uCAAA,EAAA,MAAA,EAAA,CAAA,g1EAAA,CAAA,EAAA,CAAA;0EAMtB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEiB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACA,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS,CAAA;;;MEDT,mBAAmB,CAAA;;iHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAT5B,YAAA,EAAA,CAAA,mBAAmB,CAGnB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAGV,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAPrB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAX/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACF,iBAAA,CAAA;;;MCcY,oBAAoB,CAAA;AAc/B,IAAA,WAAA,GAAA;QAZS,IAAI,CAAA,IAAA,GAAW,MAAM,CAAC;AAI/B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAE3B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;QAEtB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAEA;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;KAClB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;;kHA7CU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EARpB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,oBAAoB;AAClC,SAAA;AACF,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BH,8NAIM,EAAA,MAAA,EAAA,CAAA,yaAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FD0BO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGtB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAsB,oBAAA;AAClC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,yaAAA,CAAA,EAAA,CAAA;0EAIQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEdK,oBAAoB,CAAA;;kHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mHAApB,oBAAoB,EAAA,YAAA,EAAA,CAV7B,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAGpB,YAAY;AACZ,QAAA,WAAW,aAGX,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGX,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EARtB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;AACZ,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;MCZY,kBAAkB,CAAA;AAE7B,IAAA,WAAA,GAAA,GAAiB;AAET,IAAA,YAAY,CAAC,IAAU,EAAA;AAC7B,QAAA,IAAI,GAAG,GAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAoB,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAChC,QAAA,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjC,QAAA,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;AACzC,QAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAI,CAAA,EAAA,IAAI,EAAE,CAAA;KACjC;AAEO,IAAA,kBAAkB,CAAC,IAAU,EAAA;AACnC,QAAA,IAAI,GAAG,GAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAoB,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,QAAA,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjC,QAAA,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;AACzC,QAAA,OAAO,CAAG,EAAA,GAAG,CAAI,CAAA,EAAA,KAAK,EAAE,CAAA;KACzB;IAED,iBAAiB,CAAC,KAAW,EAAE,KAAW,EAAA;QACxC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE;AAC/C,YAAA,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5E,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACtE,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;gHA7BU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCiBY,oBAAoB,CAAA;AAc/B,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;AAPhD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU,CAAA;AAClD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAA2B,CAAA;KAMN;IAE/D,QAAQ,GAAA;QACN,MAAM,aAAa,GAAiB,EAAE,CAAC;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAA2B,KAAI;AAC9C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACxF,aAAa,CAAC,IAAI,CAAC;AACjB,gBAAA,GAAG,IAAI;gBACP,UAAU;AACV,gBAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK;AACjC,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;KACjC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KACxF;AAED,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;;kHAtCU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,8XCrBjC,mzBAeM,EAAA,MAAA,EAAA,CAAA,spGAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDMO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,mzBAAA,EAAA,MAAA,EAAA,CAAA,spGAAA,CAAA,EAAA,CAAA;sGAMxB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAEiB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;;;MEdX,oBAAoB,CAAA;;kHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAT7B,YAAA,EAAA,CAAA,oBAAoB,CAGpB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGX,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAPtB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;MCCY,cAAc,CAAA;AAIzB,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;4GAPU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,kFCjB3B,seAYM,EAAA,MAAA,EAAA,CAAA,+927BAAA,CAAA,EAAA,CAAA,CAAA;4FDKO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,seAAA,EAAA,MAAA,EAAA,CAAA,+927BAAA,CAAA,EAAA,CAAA;0EAMjB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEFK,cAAc,CAAA;;4GAAd,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,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EATvB,YAAA,EAAA,CAAA,cAAc,CAGd,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,cAAc,CAAA,EAAA,CAAA,CAAA;AAGL,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAPhB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAX1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,cAAc;AACf,qBAAA;AACF,iBAAA,CAAA;;;ACdD,MAAM,cAAc,GAAQ;AAC1B,IAAA,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9C,IAAA,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9C,IAAA,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CAC/C,CAAC;AAEF,MAAM,QAAQ,GAAQ;AACpB,IAAA,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;AACtE,IAAA,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;AAChF,IAAA,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;CAClF,CAAC;AAEF,MAAM,MAAM,GAAQ;IAClB,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;IAC3I,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;IAC9H,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC;CACzI,CAAC;MA8BW,uBAAuB,CAAA;AAElC,IAAA,WAAA,GAAA,GAAiB;IAEjB,YAAY,CAAC,IAAY,EAAE,UAAkB,EAAA;AAC3C;;;;AAIE;AAEF,QAAA,MAAM,SAAS,GAAW,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;AAElE,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;KAChC;AAED,IAAA,cAAc,CAAC,IAAU,EAAA;AACvB,QAAA,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AAC1C,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,SAAA;AACD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAoB,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,GAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;AACxC,QAAA,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAA,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,QAAA,OAAO,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAI,CAAA,EAAA,CAAC,EAAE,CAAA;KACxB;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7B;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvB;AAED,IAAA,aAAa,CAAC,IAAY,EAAA;AACxB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;KACrB;IAEO,mBAAmB,CAAC,IAAY,EAAE,UAAkB,EAAA;AAC1D;;;AAGE;QACF,MAAM,oBAAoB,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC3D,QAAA,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAChC,QAAA,IAAI,iBAAiB,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC1C,QAAA,IAAI,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;;AAExC,QAAA,iBAAiB,GAAG,iBAAiB,KAAK,CAAC,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC;AACxE,QAAA,gBAAgB,GAAG,gBAAgB,KAAK,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,CAAC;QAErE,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;;QAGV,IAAI,MAAM,GAAgB,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC;AACV,gBAAA,IAAI,EAAE,CAAC,kBAAkB,GAAG,iBAAiB,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE;AACjE,gBAAA,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1F,aAAA,CAAC,CAAA;AACH,SAAA;QACD,KAAK,IAAI,CAAC,GAAG,iBAAiB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,CAAC,GAAG,iBAAiB,GAAG,CAAC,EAAE,QAAQ,EAAE;AAC5C,gBAAA,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC;AACjE,aAAA,CAAC,CAAA;AACF,YAAA,CAAC,EAAE,CAAC;AACL,SAAA;QACD,OAAO,CAAC,IAAI,CAAC;AACX,YAAA,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,CAAC,CAAC,iBAAiB;AAC3B,SAAA,CAAC,CAAC;;AAGH,QAAA,CAAC,EAAE,CAAC;QACJ,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC;AACV,gBAAA,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAClB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACzC,aAAA,CAAC,CAAA;AACF,YAAA,YAAY,EAAE,CAAC;YACf,IAAI,YAAY,KAAK,CAAC,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC;AACX,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,KAAK,EAAE,KAAK;AACb,iBAAA,CAAC,CAAC;gBACH,MAAM,GAAG,EAAE,CAAC;gBACZ,YAAY,GAAG,CAAC,CAAC;AAClB,aAAA;AACF,SAAA;AAED;;;AAGE;QAEF,IAAI,YAAY,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,YAAY,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE;gBACnD,MAAM,CAAC,IAAI,CAAC;AACV,oBAAA,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;oBAClB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7C,iBAAA,CAAC,CAAA;AACF,gBAAA,CAAC,EAAE,CAAC;AACL,aAAA;YACD,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;;;;AAKE;AACF,IAAA,eAAe,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAoB,CAAC,EAAA;AACrE,QAAA,IAAI,MAAkB,CAAC;AACvB,QAAA,IAAI,MAAkB,CAAC;QACvB,IAAI,OAAO,GAAe,EAAE,CAAC;AAC7B,QAAA,IAAI,MAAkB,CAAC;AAEvB,QAAA,MAAM,cAAc,GAAG,IAAI,KAAK,IAAI,IAAI,UAAU,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,CAAA;QAE3E,IAAI,SAAS,KAAK,CAAC,EAAE;YACnB,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACpD,OAAO,GAAG,EAAE,CAAC;AACd,SAAA;aAAM,IAAI,SAAS,KAAK,CAAC,EAAE;YAC1B,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACpD,YAAA,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YACtB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK;gBAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1G,MAAM,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AACjC,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACpD,SAAA;AAAM,aAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;YAC3B,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACpD,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;AACxD,YAAA,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AACtB,YAAA,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;AAAE,gBAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;YACxE,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,MAAO,CAAC,GAAG,CAAC,GAAG,IAAG;AAChB,YAAA,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;gBACnB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,UAAU,EAAE;AAC5C,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,iBAAA;AACH,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;QACF,OAAO;AACL,YAAA,IAAI,EAAE,MAAO;SACd,CAAC;KACH;IAED,kBAAkB,CAAC,IAAY,EAAE,UAAkB,EAAA;QACjD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1C;AAED,IAAA,oBAAoB,CAAC,WAAmB,EAAA;AACtC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,CAAG,EAAA,IAAI,MAAM,IAAI,GAAG,CAAC,CAAA,CAAE,CAAC;AACtC,QAAA,MAAM,KAAK,GAAe;YACxB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;YAC1B,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;YAC9B,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;YAC9B,CAAC,IAAI,GAAG,CAAC,CAAC;SACX,CAAA;QACD,OAAO;AACL,YAAA,KAAK,EAAE,KAAK;SACb,CAAA;KACF;;AAID,IAAA,YAAY,CAAC,IAAY,EAAA;;AAEvB,QAAA,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,oIAAoI,CAAC,CAAC;AACjK,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;;qHA7LU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCtCY,2BAA2B,CAAA;AAgBtC,IAAA,WAAA,CAAoB,uBAAgD,EAAA;QAAhD,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAb3D,IAAI,CAAA,IAAA,GAAW,IAAI,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,IAAI,eAAe,CAAiB;AAC1D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,EAAE;AACf,SAAA,CAAC,CAAC;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAkB,CAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;QAInD,IAAM,CAAA,MAAA,GAAe,EAAE,CAAC;KAGiD;IAEzE,QAAQ,GAAA;AACN,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACnD,YAAA,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACnD,YAAA,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACnD,YAAA,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;SACtD,CAAC;AAEF,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAG;AAC9B,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACrB,SAAC,CAAC,CAAA;KAEH;IAED,OAAO,CAAC,QAAgB,EAAE,aAAqB,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,UAAU,EAAE,QAAQ,GAAG,CAAC,GAAG,aAAa;AACzC,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC7C;IAED,aAAa,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;AACnD,QAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,CAAC,WAAW,CAAC;AACpB,QAAA,UAAU,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;KACpD;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;;yHA5DU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,0TCTxC,0hCAmBM,EAAA,MAAA,EAAA,CAAA,29DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDVO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,0hCAAA,EAAA,MAAA,EAAA,CAAA,29DAAA,CAAA,EAAA,CAAA;2GAMhC,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAII,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEuB,eAAe,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB,CAAA;;;MEXjB,0BAA0B,CAAA;AAWrC,IAAA,WAAA,CAAoB,uBAAgD,EAAA;QAAhD,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;AAR3D,QAAA,IAAA,CAAA,OAAO,GAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;QAIhD,IAAK,CAAA,KAAA,GAAG,IAAI,eAAe,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC;KAGuB;IAEzE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,IAAG;YAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AACzF,SAAC,CAAC,CAAA;KACH;AAED,IAAA,OAAO,CAAC,CAAS,EAAA;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACvB;IAED,aAAa,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;AAClD,QAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,CAAC,WAAW,CAAC;AACpB,QAAA,UAAU,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;KACpD;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;wHAvCU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,mQCTvC,26BAmBM,EAAA,MAAA,EAAA,CAAA,k7DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDVO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,26BAAA,EAAA,MAAA,EAAA,CAAA,k7DAAA,CAAA,EAAA,CAAA;2GAM/B,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAEsB,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;;;AEI7B;;;;;;;;;;AAUE;MACW,mBAAmB,CAAA;AAqD9B,IAAA,WAAA,CACmB,QAAmB,EACnB,kBAAsC,EACtC,uBAAgD,EAAA;QAFhD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QArD1D,IAAI,CAAA,IAAA,GAAW,IAAI,CAAC;QACpB,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAU,CAAA,UAAA,GAAW,GAAG,CAAC;QACzB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAIpC,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAElC,QAAA,IAAA,CAAA,QAAQ,GAAW,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;AAElE,QAAA,IAAA,CAAA,KAAK,GAAS,IAAI,IAAI,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAW,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,iBAAiB,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAE1C,IAAmB,CAAA,mBAAA,GAAG,IAAI,eAAe,CAAiB;AACxD,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AAC9B,YAAA,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AAClC,SAAA,CAAC,CAAC;AAGH,QAAA,IAAA,CAAA,YAAY,GAAW,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAW,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,cAAc,GAAW,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,mBAAmB,GAAW,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;AAI3D,QAAA,IAAA,CAAA,SAAS,GAAW,CAAC,CAAC;QAEtB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AAEvB,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAE3B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;QAEtB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAaZ;IAEL,QAAQ,GAAA;AACN;;;;;;;AAOE;AACF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChF;AAED;;AAEE;IACF,aAAa,GAAA;AACX,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;;AAE3C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACxB,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,EAAE,CAAC,YAAY,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACxB,YAAA,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;AACL,YAAA,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,SAAA;KACF;IAED,eAAe,GAAA;AAEb;;AAEE;AACF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAQ,KAAI;AACrE;;AAEE;AACF,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACxE,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAA;QAIF,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AAEzD,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAA;AAC1I,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;AAEnF,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,oBAAoB,EAAE,CACvB,CAAC,SAAS,CAAC,KAAK,IAAG;YAClB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AAC/F,gBAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;gBAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB,EAAE,CAAC,CAAC,CAAA;AACP,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAG;AAElC,YAAA,IAAI,uCAAuC,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACzE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO;AACR,aAAA;AAED,YAAA,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;gBAC/B,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7B,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC;AAC1B,aAAA;iBAAM,IAAI,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;gBAC7C,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7B,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC;AAC1B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5B,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AAChD,oBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,oBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACpB,OAAO;AACR,iBAAA;AAED,gBAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,gBAAA,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1B,gBAAA,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;AAC5B,gBAAA,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;AAC5B,gBAAA,MAAM,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;AAEjC,gBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnG,gBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACvE,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAErB,aAAA;AACH,SAAC,CAAC,CAAA;KAEH;AAED,IAAA,UAAU,CAAC,GAAgB,EAAA;AAEzB,QAAA,MAAM,gBAAgB,GAAG,CAAC,KAAW,KAAI;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,gBAAA,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE;AACzB,gBAAA,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE;AAC7B,aAAA,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;YAEnD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACxH,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;AACpC,SAAC,CAAA;QAED,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,YAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,gBAAA,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE;AACvB,gBAAA,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE;AAC3B,aAAA,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACzH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,OAAO,GAAI,CAAC,WAAW,KAAK,UAAU,EAAE;gBAC1C,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACvB,aAAA;AAAM,iBAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC9D,gBAAA,IAAI,MAAM,EAAE;AACV,oBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACxB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;AAC5C,iBAAA;AAEF,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;KACF;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;AACpB,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AACzB,QAAA,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;AAC3B,QAAA,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;AAC3B,QAAA,MAAM,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAEnE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAEjC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAED,OAAO,GAAA;AACL,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;AACnD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;AAC7C,gBAAA,UAAU,EAAE,EAAE;AACf,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAClF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,gBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI;gBACzC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;AAC1D,aAAA,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACzH,SAAA;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;AAC5C,QAAA,IAAI,CAAA;QACJ,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,EAAE;AACpD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;AAC7C,gBAAA,UAAU,EAAE,CAAC;AACd,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACjF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,gBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI;gBACzC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;AAC1D,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACzH,SAAA;KACF;;IAGD,SAAS,CAAC,IAAY,EAAE,UAAkB,EAAA;AACxC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;KACpH;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;KACxC;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KAClC;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;KAClD;AAED,IAAA,mBAAmB,CAAC,IAAoB,EAAA;AACtC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;AAC5B,SAAA,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;AAED,IAAA,sBAAsB,CAAC,CAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC9B;AAED,IAAA,YAAY,CAAC,CAAS,EAAA;AACpB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU;AACtD,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;;iHA7VU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,uBAAA,EAAA,CAAA,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,SAAA,EAAA,IAAA,EAAA,mBAAmB,EApBnB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,mBAAmB;AACjC,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,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,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,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,EChBH,u1GAoDM,EAAA,MAAA,EAAA,CAAA,smNAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAZ,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,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,KAAA,EAAA,EAAA,WAAA,EAAAC,aAAA,EAAA,EAAA,CAAA,CAAA;4FDtBO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAxB/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGrB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAqB,mBAAA;AACjC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,u1GAAA,EAAA,MAAA,EAAA,CAAA,smNAAA,CAAA,EAAA,CAAA;iKAgBQ,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAwCkB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACF,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBACK,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBACM,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;;;MEhEd,oBAAoB,CAAA;;kHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAT7B,YAAA,EAAA,CAAA,2BAA2B,CAG3B,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAGlB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAPtB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,2BAA2B;AAC5B,qBAAA;AACF,iBAAA,CAAA;;;MCCY,mBAAmB,CAAA;;iHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAT5B,YAAA,EAAA,CAAA,0BAA0B,CAG1B,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAGjB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAPrB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAX/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,0BAA0B;AAC3B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,0BAA0B;AAC3B,qBAAA;AACF,iBAAA,CAAA;;;MCWY,mBAAmB,CAAA;;iHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kHAAnB,mBAAmB,EAAA,YAAA,EAAA,CAb5B,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAGnB,YAAY;QACZ,WAAW;QACX,oBAAoB;QACpB,mBAAmB;AACnB,QAAA,cAAc,aAGd,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAGV,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAXrB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,oBAAoB;YACpB,mBAAmB;YACnB,cAAc;AACf,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,oBAAoB;wBACpB,mBAAmB;wBACnB,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACF,iBAAA,CAAA;;;MChBY,iBAAiB,CAAA;AAI5B,IAAA,WAAA,GAAA;QAFS,IAAe,CAAA,eAAA,GAAW,WAAW,CAAC;KAE9B;IAEjB,QAAQ,GAAA;KACP;;+GAPU,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,SAAA,EAAA,IAAA,EAAA,iBAAiB,0GCR9B,qjIA0FM,EAAA,MAAA,EAAA,CAAA,kvJAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FDlFO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,oBAAoB,EAAA,aAAA,EAGf,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,qjIAAA,EAAA,MAAA,EAAA,CAAA,kvJAAA,CAAA,EAAA,CAAA;0EAI5B,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;MEFK,sBAAsB,CAAA;AA2CjC,IAAA,WAAA,CACU,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAnCvC,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QAC9B,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAY,KAAK,CAAC;QAI3B,IAAS,CAAA,SAAA,GAAW,OAAO,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAW,OAAO,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAW,KAAK,CAAC;QAK/B,IAAsB,CAAA,sBAAA,GAAW,MAAM,CAAC;QACxC,IAAsB,CAAA,sBAAA,GAAW,MAAM,CAAC;QACxC,IAAe,CAAA,eAAA,GAAY,MAAM,CAAC;QAGlC,IAAQ,CAAA,QAAA,GAAW,KAAK,CAAC;QACzB,IAAsB,CAAA,sBAAA,GAAW,MAAM,CAAC;AAMvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KAW3C;IAEL,QAAQ,GAAA;AACN;;AAEE;AAEF;;AAEE;AACF,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjF,QAAA,MAAM,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC7G,QAAA,MAAM,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7G,IACE,YAAY,KAAK,IAAI;AACrB,YAAA,0BAA0B,KAAK,IAAI;YACnC,0BAA0B,KAAK,IAAI,EACnC;AACA,YAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;YACxD,OAAO,CAAC,KAAK,CAAC,CAAA;;;AAGV,QAAA,EAAA,YAAY,KAAK,IAAI,GAAG,cAAc,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAA;AACjE,QAAA,EAAA,0BAA0B,KAAK,IAAI,GAAG,4BAA4B,GAAG,IAAI,CAAC,sBAAsB,GAAG,GAAG,GAAG,EAAE,CAAA;AAC3G,QAAA,EAAA,0BAA0B,KAAK,IAAI,GAAG,4BAA4B,GAAG,IAAI,CAAC,sBAAsB,GAAG,GAAG,GAAG,EAAE,CAAA;AAC9G,MAAA,CAAA,CAAC,CAAA;YACF,OAAO,CAAC,QAAQ,EAAE,CAAC;AACpB,SAAA;;AAGD,QAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AAC3C,YAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;YACxD,OAAO,CAAC,KAAK,CAAC,CAAA;;;;AAIb,MAAA,CAAA,CAAC,CAAA;YACF,OAAO,CAAC,QAAQ,EAAE,CAAC;AACpB,SAAA;AAED;;AAEE;AACF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAC;AAC/E,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAE,CAAC;QAC3G,IAAI,QAAQ,GAAG,sBAAsB,EAAE;AACrC,YAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;YACxD,OAAO,CAAC,KAAK,CAAC,CAAA;;;AAGA,kBAAA,EAAA,IAAI,CAAC,QAAQ,CAAA;AACC,gCAAA,EAAA,IAAI,CAAC,sBAAsB,CAAA;AACtD,MAAA,CAAA,CAAC,CAAA;YACF,OAAO,CAAC,QAAQ,EAAE,CAAC;AACpB,SAAA;AAED;;AAEE;AACF,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAE,CAAC;QAE3G,IAAI,sBAAsB,GAAG,QAAQ,EAAE;AACrC,YAAA,IAAI,CAAC,8BAA8B,GAAG,QAAQ,CAAC;AAChD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,8BAA8B,GAAG,sBAAsB,CAAC;AAC9D,SAAA;AAED;;;AAGE;AACF,QAAA,IAAI,iCAAiC,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAE,CAAC;AACpH,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC;AAC9F,QAAA,MAAM,iCAAiC,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAE,CAAC;AACtH,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAC;QAE1F,IAAI,iCAAiC,IAAI,qBAAqB,GAAG,iCAAiC,GAAG,mBAAmB,CAAC,EAAE;YACzH,IAAI,CAAC,sBAAsB,GAAG,qBAAqB,GAAG,iCAAiC,GAAG,mBAAmB,GAAG,IAAI,CAAC;AACrH,YAAA,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAA;;AAEZ,MAAA,CAAA,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,EAAE,CAAC;AACpB,SAAA;KAEF;IAED,eAAe,GAAA;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;QACjD,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;QAC7D,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;QAC9D,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;QAC7D,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;QAC/D,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC;QACtE,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC,CAAC;QAC5E,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,CAAC;QAC3E,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,CAAC;QACvE,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,GAAG,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC;QAC7F,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,IAAI,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC;QACxF,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,IAAI,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC;QACxF,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,IAAI,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC;QACvF,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;QAC/D,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;QACzD,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,IAAI,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC;QACxF,KAAK,CAAC,WAAW,CAAC,sCAAsC,EAAE,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC;QACtG,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/D,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;QAC1D,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC;QACtE,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC;AAE1E;;AAEE;AACF,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,CAAA,aAAA,CAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;;;AAGhD,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,GAAQ,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B;;oHAxKU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,69BCRnC,6/EAwDc,EAAA,MAAA,EAAA,CAAA,mpkBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,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,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,CAAA,EAAA,CAAA,CAAA;4FDhDD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,6/EAAA,EAAA,MAAA,EAAA,CAAA,mpkBAAA,CAAA,EAAA,CAAA;sGAM3B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEiB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;;;MErCX,qBAAqB,CAAA;AAIhC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,QAAQ,CAAC,GAAW,EAAA;AAClB,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxB,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KAC5B;;mHAZU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,yFCPlC,q4BAsBM,EAAA,MAAA,EAAA,CAAA,gqDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDfO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,q4BAAA,EAAA,MAAA,EAAA,CAAA,gqDAAA,CAAA,EAAA,CAAA;0EAM1B,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEgBK,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAd1B,iBAAiB;QACjB,sBAAsB;AACtB,QAAA,qBAAqB,aAGrB,YAAY;AACZ,QAAA,WAAW,aAGX,iBAAiB;QACjB,sBAAsB;QACtB,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAGZ,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAVnB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;AACZ,SAAA,CAAA,EAAA,CAAA,CAAA;4FAOU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,sBAAsB;wBACtB,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,sBAAsB;wBACtB,qBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;MCjBY,oBAAoB,CAAA;AAE/B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;kHALU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,8DCPjC,iCACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDMa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;;MEcvB,oBAAoB,CAAA;;kHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAT7B,YAAA,EAAA,CAAA,oBAAoB,CAGpB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGX,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAPtB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;MCRY,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;QAOW,IAAK,CAAA,KAAA,GAAW,GAAG,CAAC;QACpB,IAAM,CAAA,MAAA,GAAW,GAAG,CAAC;AACrB,QAAA,IAAA,CAAA,IAAI,GAAU;YACrB,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;YAC7D,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;YAC/D,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;YAChE,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;YACjE,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;SAC/D,CAAC;AACO,QAAA,IAAA,CAAA,QAAQ,GAAa;YAC5B,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACV,CAAC;QAKM,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;;AAEZ,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AAiEtE,KAAA;IA9DS,SAAS,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;aAC1B,MAAM,CAAC,KAAK,CAAC;AACb,aAAA,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;AACzB,aAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CACH,WAAW,EACX,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAC5D,CAAC;KACL;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,YAAY,EAAE;AAC5B,aAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,aAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACzB;IAEO,SAAS,GAAA;;QAEf,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAO,CAAC,KAAK,CAAC,CAAC,CAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;AAG7D,QAAA,IAAI,CAAC,GAAG;aACL,SAAS,CAAC,QAAQ,CAAC;AACnB,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,aAAA,KAAK,EAAE;aACP,MAAM,CAAC,MAAM,CAAC;AACd,aAAA,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE;aAChB,WAAW,CAAC,CAAC,CAAC;AACd,aAAA,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAC1B;AACA,aAAA,IAAI,CAAC,MAAM,EAAE,CAAC,CAAM,EAAE,CAAM,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,aAAA,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;AACzB,aAAA,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;;AAGhC,QAAA,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,EAAE;aAC3B,WAAW,CAAC,GAAG,CAAC;AAChB,aAAA,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE5B,QAAA,IAAI,CAAC,GAAG;aACL,SAAS,CAAC,QAAQ,CAAC;AACnB,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,aAAA,KAAK,EAAE;aACP,MAAM,CAAC,MAAM,CAAC;aACd,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,aAAA,IAAI,CAAC,WAAW,EAAE,CAAC,CAAM,KAAK,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7E,aAAA,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9B,aAAA,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;KAC3B;IAED,QAAQ,GAAA;KACP;IAED,eAAe,GAAA;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;+GA1FU,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,SAAA,EAAA,IAAA,EAAA,iBAAiB,wOCR9B,2GAGM,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA,CAAA;4FDKO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,2GAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA;8BAMrB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAWY,GAAG,EAAA,CAAA;sBAApB,SAAS;uBAAC,KAAK,CAAA;;;MEbL,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAT1B,YAAA,EAAA,CAAA,iBAAiB,CAGjB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAGR,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAPnB,OAAA,EAAA,CAAA;YACP,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;MCXY,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA,GAAiB;AAGjB;;AAEE;IACF,WAAW,CAAC,OAAY,EAAE,OAAY,EAAA;QAEpC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAEtC,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK,CAAC;AAEtD,QAAA,KAAK,IAAI,GAAG,IAAI,QAAQ,EAAE;AACxB,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAE5B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEjE,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;AACjD,iBAAC,CAAC,SAAS,IAAI,MAAM,KAAK,MAAM,CAAC,EACjC;AACA,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;AAEO,IAAA,QAAQ,CAAC,MAAW,EAAA;QAC1B,OAAO,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC;KACrD;;AAED;;AAEE;IACF,kBAAkB,CAAC,GAAW,EAAE,GAAW,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;KAC1C;AAED;;;;;;AAMG;IACH,YAAY,CAAC,GAAW,EAAE,GAAW,EAAA;AACnC,QAAA,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,QAAA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;KAC1D;AAED,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,OAAO,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;KACvD;AAED,IAAA,mBAAmB,CAAC,MAAc,EAAA;QAChC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5B,YAAA,MAAM,IAAI,CAAC,CAAC,KAAG,CAAC,IAAI,CAAC,KAAG,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC5E,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,mBAAmB,CAAC,YAAoB,EAAA;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAE,YAAY,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9C,SAAA;QACD,OAAO,MAAM,GAAG,YAAY,CAAC;KAC9B;;mHAxEU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCEY,yBAAyB,CAAA;AAKpC,IAAA,WAAA,GAAA;AAHA,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;KAEhC;;uHALN,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;4FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCCY,wBAAwB,CAAA;AAEnC;;;;;AAKE;AAEF,IAAA,uBAAuB,CACrB,IAAW,EACX,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EAAA;AAGnB;;;;;AAKE;AACF,QAAA,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAEnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC;;;AAGE;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;AACd,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACnC,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;;AAGxB,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;AACrC,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACpC,aAAC,CAAC,CAAA;AAEF;;;;;;;;;;;;AAYE;AAEF,YAAA,MAAM,IAAI,GAAG,CAAC,aAAkB,KAAI;AAClC,gBAAA,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC;AACnC,gBAAA,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC;AACrC,gBAAA,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC;;AAGrC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC;AAEzD,gBAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;AACrB,oBAAA,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC;;AAGrC,oBAAA,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAC5F,oBAAA,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM;AAAE,wBAAA,YAAY,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACxE,iBAAA;AAED,gBAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAG;AACnB,oBAAA,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;oBAC3B,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC9C,oBAAA,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,KAAK,GAAG,CAAC,CAAC;AAAE,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxC,iBAAC,CAAC,CAAA;gBAEF,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;oBAC7C,IAAI,CAAC,KAAK,CAAC,CAAC;AACd,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAA;YAED,IAAI;AACF,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;oBACd,IAAI,CAAC,IAAI,CAAC,CAAC;AACb,iBAAC,CAAC,CAAA;AACH,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,CAAA;AACd,aAAA;YAED,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhB,SAAC,CAAC,CAAA;KAEH;;sHAjGU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLD;;AAEG;;ACFH;;AAEG;;;;"}