@tociva/tailng-ui 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/tociva-tailng-ui-buttons-indicators.mjs +497 -16
- package/fesm2022/tociva-tailng-ui-buttons-indicators.mjs.map +1 -1
- package/fesm2022/tociva-tailng-ui-data-table-structure.mjs +802 -17
- package/fesm2022/tociva-tailng-ui-data-table-structure.mjs.map +1 -1
- package/fesm2022/tociva-tailng-ui-form-controls.mjs +3096 -17
- package/fesm2022/tociva-tailng-ui-form-controls.mjs.map +1 -1
- package/fesm2022/tociva-tailng-ui-layout.mjs +438 -17
- package/fesm2022/tociva-tailng-ui-layout.mjs.map +1 -1
- package/fesm2022/tociva-tailng-ui-navigation.mjs +780 -17
- package/fesm2022/tociva-tailng-ui-navigation.mjs.map +1 -1
- package/fesm2022/tociva-tailng-ui-popups-overlays.mjs +1115 -17
- package/fesm2022/tociva-tailng-ui-popups-overlays.mjs.map +1 -1
- package/fesm2022/tociva-tailng-ui-utilities.mjs +129 -16
- package/fesm2022/tociva-tailng-ui-utilities.mjs.map +1 -1
- package/fesm2022/tociva-tailng-ui.mjs +15 -17
- package/fesm2022/tociva-tailng-ui.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tociva-tailng-ui-navigation.mjs","sources":["../../../../libs/ui/navigation/src/public-api.ts","../../../../libs/ui/navigation/src/tociva-tailng-ui-navigation.ts"],"sourcesContent":["export * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,YAAA,CAAA,OAAA,CAAA,OAAA,CAAA,EAAA,OAAA,CAAA;;ACAA;;AAEG"}
|
|
1
|
+
{"version":3,"file":"tociva-tailng-ui-navigation.mjs","sources":["../../../../libs/ui/navigation/src/lib/breadcrumbs/breadcrumbs.component.ts","../../../../libs/ui/navigation/src/lib/breadcrumbs/breadcrumbs.component.html","../../../../libs/ui/navigation/src/lib/drawer/drawer.component.ts","../../../../libs/ui/navigation/src/lib/drawer/drawer.component.html","../../../../libs/ui/navigation/src/lib/menu/menu-template.directive.ts","../../../../libs/ui/navigation/src/lib/menu/menu.component.ts","../../../../libs/ui/navigation/src/lib/menu/menu.component.html","../../../../libs/ui/navigation/src/lib/menu/menu-item.directive.ts","../../../../libs/ui/navigation/src/lib/paginator/paginator.component.ts","../../../../libs/ui/navigation/src/lib/paginator/paginator.component.html","../../../../libs/ui/navigation/src/lib/sidenav/sidenav.component.ts","../../../../libs/ui/navigation/src/lib/sidenav/sidenav.component.html","../../../../libs/ui/navigation/src/lib/sidenav/sidenav-slots.directive.ts","../../../../libs/ui/navigation/src/lib/stepper/step.component.ts","../../../../libs/ui/navigation/src/lib/stepper/stepper.component.ts","../../../../libs/ui/navigation/src/lib/stepper/stepper.component.html","../../../../libs/ui/navigation/src/lib/stepper/step-panel.component.ts","../../../../libs/ui/navigation/src/tociva-tailng-ui-navigation.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nexport type TngBreadcrumbItem = {\n label: string;\n\n /** Internal route */\n route?: string;\n\n /** External link */\n href?: string;\n target?: '_self' | '_blank' | '_parent' | '_top';\n rel?: string;\n\n /** If true, renders as current page even if not last */\n current?: boolean;\n\n /** If true, not clickable */\n disabled?: boolean;\n};\n\n@Component({\n selector: 'tng-breadcrumbs',\n standalone: true,\n imports: [RouterLink],\n templateUrl: './breadcrumbs.component.html',\n})\nexport class TngBreadcrumbs {\n /** Items */\n readonly items = input<TngBreadcrumbItem[]>([]);\n\n /** Optional Home crumb (prepended) */\n readonly home = input<TngBreadcrumbItem | null>(null);\n\n /** Separator text (if you later want icons, change template to project) */\n readonly separator = input<string>('/');\n\n /** a11y label */\n readonly ariaLabel = input<string>('Breadcrumb');\n\n /* =====================\n * Klass inputs (Tailng style)\n * ===================== */\n readonly rootKlass = input<string>('flex items-center text-sm text-muted-foreground');\n readonly listKlass = input<string>('flex items-center flex-wrap gap-1');\n readonly itemKlass = input<string>('inline-flex items-center');\n\n readonly linkKlass = input<string>('text-primary hover:underline');\n readonly currentKlass = input<string>('text-foreground font-medium');\n readonly disabledKlass = input<string>('opacity-60 pointer-events-none');\n\n readonly separatorKlass = input<string>('mx-2 text-slate-400');\n\n /* =====================\n * Derived\n * ===================== */\n readonly resolvedItems = computed<TngBreadcrumbItem[]>(() => {\n const home = this.home();\n const items = this.items() ?? [];\n return home ? [home, ...items] : items;\n });\n\n readonly currentIndex = computed(() => {\n const items = this.resolvedItems();\n const explicit = items.findIndex((x) => !!x.current);\n return explicit >= 0 ? explicit : Math.max(0, items.length - 1);\n });\n\n isCurrent(i: number): boolean {\n return i === this.currentIndex();\n }\n\n isClickable(item: TngBreadcrumbItem, i: number): boolean {\n if (item.disabled) return false;\n if (this.isCurrent(i)) return false;\n return !!item.route || !!item.href;\n }\n\n itemClasses(item: TngBreadcrumbItem, i: number): string {\n const base = this.itemKlass();\n const disabled = item.disabled ? ` ${this.disabledKlass()}` : '';\n return `${base}${disabled}`.trim();\n }\n\n labelClasses(item: TngBreadcrumbItem, i: number): string {\n const isCurrent = this.isCurrent(i);\n return (isCurrent ? this.currentKlass() : this.linkKlass()).trim();\n }\n\n relFor(item: TngBreadcrumbItem): string | null {\n if (!item.href) return null;\n if (item.rel) return item.rel;\n return item.target === '_blank' ? 'noopener noreferrer' : null;\n }\n}\n","<nav [attr.aria-label]=\"ariaLabel()\" [class]=\"rootKlass()\">\n <ol [class]=\"listKlass()\">\n @for (item of resolvedItems(); track $index; let i = $index; let last = $last) {\n <li [class]=\"itemClasses(item, i)\">\n <!-- Internal route -->\n @if (item.route && isClickable(item, i)) {\n <a\n [routerLink]=\"item.route\"\n [class]=\"labelClasses(item, i)\"\n >\n {{ item.label }}\n </a>\n }\n <!-- External link -->\n @else if (item.href && isClickable(item, i)) {\n <a\n [href]=\"item.href\"\n [target]=\"item.target ?? null\"\n [attr.rel]=\"relFor(item)\"\n [class]=\"labelClasses(item, i)\"\n >\n {{ item.label }}\n </a>\n }\n <!-- Current/disabled/plain -->\n @else {\n <span\n [class]=\"labelClasses(item, i)\"\n [attr.aria-current]=\"isCurrent(i) ? 'page' : null\"\n >\n {{ item.label }}\n </span>\n }\n\n @if (!last) {\n <span [class]=\"separatorKlass()\">{{ separator() }}</span>\n }\n </li>\n }\n </ol>\n</nav>\n","import {\n Component,\n ContentChild,\n ElementRef,\n TemplateRef,\n ViewChild,\n computed,\n effect,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport { TngOverlayCloseReason } from '@tociva/tailng-ui/popups-overlays';\nimport { TngFocusTrap } from '@tociva/tailng-cdk/a11y';\n\nexport type TngDrawerPlacement = 'left' | 'right' | 'top' | 'bottom';\nexport type DrawerCloseReason = TngOverlayCloseReason;\n\n@Component({\n selector: 'tng-drawer',\n standalone: true,\n imports: [TngFocusTrap],\n templateUrl: './drawer.component.html',\n})\nexport class TngDrawer {\n /* =====================\n * Projected content\n * ===================== */\n @ContentChild(TemplateRef, { descendants: true })\n drawerTpl?: TemplateRef<unknown>;\n\n @ViewChild('anchorEl', { static: true })\n anchorEl!: ElementRef<HTMLElement>;\n\n /* =====================\n * Inputs / Outputs\n * ===================== */\n readonly open = input<boolean>(false);\n readonly placement = input<TngDrawerPlacement>('left');\n\n readonly closeOnBackdropClick = input<boolean>(true);\n readonly closeOnEscape = input<boolean>(true);\n\n /** Focus trap (a11y) */\n readonly trapFocus = input<boolean>(true);\n readonly restoreFocus = input<boolean>(true);\n readonly autoCapture = input<boolean>(true);\n readonly deferCaptureElements = input<boolean>(false);\n\n readonly opened = output<void>();\n readonly closed = output<DrawerCloseReason>();\n\n /* =====================\n * Styling (klass-first)\n * ===================== */\n readonly backdropKlass = input<string>('fixed inset-0 bg-black/40 backdrop-blur-[1px]');\n readonly panelKlass = input<string>('bg-bg shadow-xl outline-none');\n\n readonly sizeKlass = input<string>('w-80'); // for left/right\n readonly heightKlass = input<string>('h-80'); // for top/bottom\n\n /* =====================\n * Internal\n * ===================== */\n readonly isOpen = signal(false);\n\n readonly overlayPlacement = computed(() => {\n switch (this.placement()) {\n case 'left':\n return 'bottom-start';\n case 'right':\n return 'bottom-end';\n case 'top':\n return 'top-start';\n case 'bottom':\n return 'bottom-start';\n }\n });\n\n readonly slideClasses = computed(() => {\n const base = 'fixed transition-transform duration-200 ease-in-out will-change-transform';\n\n switch (this.placement()) {\n case 'left':\n return `${base} left-0 top-0 h-full ${\n this.isOpen() ? 'translate-x-0' : '-translate-x-full'\n }`;\n case 'right':\n return `${base} right-0 top-0 h-full ${\n this.isOpen() ? 'translate-x-0' : 'translate-x-full'\n }`;\n case 'top':\n return `${base} top-0 left-0 w-full ${\n this.isOpen() ? 'translate-y-0' : '-translate-y-full'\n }`;\n case 'bottom':\n return `${base} bottom-0 left-0 w-full ${\n this.isOpen() ? 'translate-y-0' : 'translate-y-full'\n }`;\n }\n });\n\n constructor() {\n effect(() => {\n if (this.open()) {\n this.isOpen.set(true);\n this.opened.emit();\n } else {\n this.isOpen.set(false);\n }\n });\n }\n\n onOverlayClosed(reason: DrawerCloseReason) {\n this.closed.emit(reason);\n }\n\n onBackdropClick() {\n if (!this.closeOnBackdropClick()) return;\n this.closed.emit('outside-click');\n }\n\n /** Keep escape handling scoped to drawer (instead of document listener) */\n onPanelKeydown(ev: KeyboardEvent): void {\n if (!this.open()) return;\n if (!this.closeOnEscape()) return;\n if (ev.defaultPrevented) return;\n\n if (ev.key === 'Escape') {\n ev.preventDefault();\n this.closed.emit('escape');\n }\n }\n}\n","@if (open()) {\n <!-- Backdrop (below panel) -->\n <div\n [class]=\"backdropKlass()\"\n class=\"z-[1000]\"\n (click)=\"onBackdropClick()\"\n ></div>\n\n <!-- Drawer panel (above backdrop) -->\n <div\n [class]=\"slideClasses() + ' ' + panelKlass()\"\n class=\"z-[1001]\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"onPanelKeydown($event)\"\n [tngFocusTrap]=\"open() && trapFocus()\"\n [restoreFocus]=\"restoreFocus()\"\n [autoCapture]=\"autoCapture()\"\n [deferCaptureElements]=\"deferCaptureElements()\"\n >\n <ng-content />\n </div>\n}\n","\nimport { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[tngMenuTemplate]',\n standalone: true,\n})\nexport class TngMenuTemplate {\n constructor(public readonly tpl: TemplateRef<unknown>) {}\n}\n","// menu.component.ts\nimport { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChild,\n ElementRef,\n ViewChild,\n computed,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport {\n TngConnectedOverlay,\n TngOverlayPanel,\n TngOverlayRef,\n type TngOverlayCloseReason,\n} from '@tociva/tailng-ui/popups-overlays';\n\nexport type MenuCloseReason = TngOverlayCloseReason;\n\nimport { TngMenuTemplate } from './menu-template.directive';\n\nexport type TngMenuPlacement =\n | 'bottom-start'\n | 'bottom-end'\n | 'top-start'\n | 'top-end';\n\n@Component({\n selector: 'tng-menu',\n standalone: true,\n imports: [\n CommonModule,\n NgTemplateOutlet,\n TngConnectedOverlay,\n TngOverlayPanel,\n TngOverlayRef,\n ],\n templateUrl: './menu.component.html',\n})\nexport class TngMenu {\n \n @ContentChild(TngMenuTemplate)\n private readonly tplDir?: TngMenuTemplate;\n\n get menuTemplate() {\n return this.tplDir?.tpl;\n }\n\n @ViewChild('triggerEl', { static: true })\n triggerEl!: ElementRef<HTMLElement>;\n\n // Modal mode (backdrop semantics)\n readonly modal = input<boolean>(false);\n\n readonly placement = input<TngMenuPlacement>('bottom-start');\n readonly offset = input<number>(6);\n readonly width = input<'anchor' | number>('anchor');\n\n readonly closeOnOutsideClick = input<boolean>(true);\n readonly closeOnEscape = input<boolean>(true);\n readonly closeOnItemClick = input<boolean>(true);\n\n readonly rootKlass = input<string>('relative inline-block');\n readonly triggerKlass = input<string>('inline-flex');\n readonly panelKlass = input<string>('p-1');\n readonly backdropKlass = input<string>('fixed inset-0 bg-black/40 z-[999]');\n\n readonly opened = output<void>();\n readonly closed = output<MenuCloseReason>();\n\n readonly isOpen = signal(false);\n\n // Simple stable id for aria-controls (unique enough per instance)\n private readonly uid = Math.random().toString(36).slice(2);\n readonly menuId = computed(() => `tng-menu-${this.uid}`);\n\n /** Modal forces predictable close behavior */\n readonly effectiveCloseOnOutsideClick = computed(() =>\n this.modal() ? true : this.closeOnOutsideClick()\n );\n\n readonly effectiveCloseOnEscape = computed(() =>\n this.modal() ? true : this.closeOnEscape()\n );\n\n open(): void {\n this.isOpen.set(true);\n }\n\n onOverlayOpened(): void {\n this.opened.emit();\n }close(reason: MenuCloseReason): void {\n if (!this.isOpen()) return;\n \n this.isOpen.set(false);\n this.closed.emit(reason);\n \n queueMicrotask(() => this.triggerEl?.nativeElement?.focus());\n }\n \n onOverlayOpenChange(open: boolean): void {\n if (open) this.isOpen.set(true);\n }\n \n onOverlayClosed(reason: MenuCloseReason): void {\n this.isOpen.set(false);\n this.closed.emit(reason);\n \n queueMicrotask(() => this.triggerEl?.nativeElement?.focus());\n }\n\n onTriggerClick(): void {\n this.isOpen() ? this.close('programmatic') : this.open();\n }\n\n requestCloseOnSelection(): void {\n if (!this.closeOnItemClick()) return;\n this.close('selection');\n }\n\n onItemSelected(): void {\n this.requestCloseOnSelection();\n }\n}\n","\n<div [class]=\"rootKlass()\">\n <!-- Trigger -->\n <button\n #triggerEl\n type=\"button\"\n [class]=\"triggerKlass()\"\n aria-haspopup=\"menu\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"isOpen() ? menuId() : null\"\n (click)=\"onTriggerClick()\"\n >\n <ng-content select=\"[tngMenuTrigger]\"></ng-content>\n </button>\n\n <!-- Overlay -->\n <tng-overlay-ref\n #overlayRef=\"tngOverlayRef\"\n [open]=\"isOpen()\"\n (openChange)=\"onOverlayOpenChange($event)\"\n (opened)=\"onOverlayOpened()\"\n (closed)=\"onOverlayClosed($event)\"\n >\n <tng-connected-overlay\n [open]=\"overlayRef.isOpen()\"\n [anchor]=\"triggerEl\"\n [placement]=\"placement()\"\n [offset]=\"offset()\"\n [width]=\"width()\"\n [hasBackdrop]=\"modal()\"\n [backdropClass]=\"backdropKlass()\"\n [closeOnOutsideClick]=\"effectiveCloseOnOutsideClick()\"\n [closeOnEscape]=\"effectiveCloseOnEscape()\"\n [closeOnInsideClick]=\"false\"\n (closed)=\"overlayRef.close($event)\"\n\n >\n <tng-overlay-panel [klass]=\"panelKlass()\" [modal]=\"modal()\">\n <div [id]=\"menuId()\" role=\"menu\">\n @if (menuTemplate) {\n <ng-container [ngTemplateOutlet]=\"menuTemplate!\" />\n } @else {\n <ng-content select=\"[tngMenuContent]\"></ng-content>\n }\n </div>\n </tng-overlay-panel>\n </tng-connected-overlay>\n </tng-overlay-ref>\n</div>\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { TngMenu } from './menu.component';\n\n@Directive({\n selector: '[tngMenuItem]',\n standalone: true,\n})\nexport class TngMenuItem {\n private readonly menu = inject(TngMenu, { optional: true });\n\n @HostListener('click')\n onClick(): void {\n this.menu?.requestCloseOnSelection();\n }\n}\n","import { Component, computed, input, output } from '@angular/core';\n\nexport type TngPaginatorChange = {\n page: number; // 1-based\n pageSize: number;\n skip: number; // 0-based\n};\n\n@Component({\n selector: 'tng-paginator',\n standalone: true,\n templateUrl: './paginator.component.html',\n})\nexport class TngPaginator {\n /* =====================\n * Inputs\n * ===================== */\n\n /** Total items count */\n readonly count = input<number>(0);\n\n /** Current page (1-based) */\n readonly page = input<number>(1);\n\n /** Items per page */\n readonly pageSize = input<number>(10);\n\n /** Page size options */\n readonly pageSizeOptions = input<number[]>([10, 20, 50, 100]);\n\n /** Hide page size selector */\n readonly hidePageSize = input<boolean>(false);\n\n /** Max visible page buttons (window size) */\n readonly maxPages = input<number>(7);\n\n /* =====================\n * Klass inputs (Tailng)\n * ===================== */\n readonly rootKlass = input<string>('flex flex-wrap items-center justify-between gap-3 text-sm');\n readonly leftKlass = input<string>('text-muted-foreground');\n readonly rightKlass = input<string>('flex flex-wrap items-center gap-2');\n\n readonly buttonKlass = input<string>(\n 'rounded-md border border-border bg-bg px-2.5 py-1.5 text-sm hover:bg-slate-50 disabled:opacity-50 disabled:pointer-events-none'\n );\n\n readonly activePageKlass = input<string>(\n 'bg-primary text-on-primary border-primary hover:bg-primary'\n );\n\n readonly pageKlass = input<string>(\n 'rounded-md border border-border bg-bg px-2.5 py-1.5 text-sm hover:bg-slate-50'\n );\n\n readonly selectKlass = input<string>(\n 'rounded-md border border-border bg-bg px-2 py-1.5 text-sm'\n );\n\n readonly separatorKlass = input<string>('mx-2 text-slate-400');\n\n /* =====================\n * Outputs\n * ===================== */\n readonly pageChange = output<number>();\n readonly pageSizeChange = output<number>();\n readonly change = output<TngPaginatorChange>();\n\n /* =====================\n * Derived\n * ===================== */\n readonly totalPages = computed(() => {\n const total = Math.max(0, this.count());\n const size = Math.max(1, this.pageSize());\n return Math.max(1, Math.ceil(total / size));\n });\n\n readonly clampedPage = computed(() => {\n const p = this.page();\n return Math.min(Math.max(1, p), this.totalPages());\n });\n\n readonly skip = computed(() => (this.clampedPage() - 1) * this.pageSize());\n\n readonly rangeStart = computed(() => {\n const total = this.count();\n if (total <= 0) return 0;\n return this.skip() + 1;\n });\n\n readonly rangeEnd = computed(() => {\n const total = this.count();\n if (total <= 0) return 0;\n return Math.min(total, this.skip() + this.pageSize());\n });\n\n readonly pages = computed<Array<number | '…'>>(() => {\n const total = this.totalPages();\n const max = Math.max(5, this.maxPages()); // keep sane min\n const current = this.clampedPage();\n\n if (total <= max) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n const half = Math.floor(max / 2);\n let start = Math.max(1, current - half);\n let end = Math.min(total, start + max - 1);\n\n // adjust if we hit end\n start = Math.max(1, end - max + 1);\n\n const result: Array<number | '…'> = [];\n\n if (start > 1) {\n result.push(1);\n if (start > 2) result.push('…');\n }\n\n for (let p = start; p <= end; p++) result.push(p);\n\n if (end < total) {\n if (end < total - 1) result.push('…');\n result.push(total);\n }\n\n return result;\n });\n\n /* =====================\n * Actions\n * ===================== */\n private emitChange(nextPage: number, nextSize: number) {\n this.pageChange.emit(nextPage);\n this.pageSizeChange.emit(nextSize);\n this.change.emit({\n page: nextPage,\n pageSize: nextSize,\n skip: (nextPage - 1) * nextSize,\n });\n }\n\n goTo(page: number) {\n const next = Math.min(Math.max(1, page), this.totalPages());\n if (next === this.clampedPage()) return;\n\n // keep size unchanged\n this.pageChange.emit(next);\n this.change.emit({ page: next, pageSize: this.pageSize(), skip: (next - 1) * this.pageSize() });\n }\n\n prev() {\n this.goTo(this.clampedPage() - 1);\n }\n\n next() {\n this.goTo(this.clampedPage() + 1);\n }\n\n first() {\n this.goTo(1);\n }\n\n last() {\n this.goTo(this.totalPages());\n }\n\n onPageSizeSelect(value: string) {\n const size = Math.max(1, Number(value) || this.pageSize());\n if (size === this.pageSize()) return;\n\n // keep user near same position: recompute page from previous skip\n const currentSkip = (this.clampedPage() - 1) * this.pageSize();\n const nextPage = Math.floor(currentSkip / size) + 1;\n\n this.emitChange(nextPage, size);\n }\n\n isActive(p: number) {\n return p === this.clampedPage();\n }\n\n pageBtnClasses(p: number) {\n const base = this.pageKlass();\n const active = this.isActive(p) ? ` ${this.activePageKlass()}` : '';\n return (base + active).trim();\n }\n}\n","<div [class]=\"rootKlass()\">\n <!-- Left: range -->\n <div [class]=\"leftKlass()\">\n @if (count() > 0) {\n Showing <span class=\"text-foreground\">{{ rangeStart() }}</span>–<span class=\"text-foreground\">{{ rangeEnd() }}</span>\n of <span class=\"text-foreground\">{{ count() }}</span>\n } @else {\n Showing 0 of 0\n }\n </div>\n\n <!-- Right: controls -->\n <div [class]=\"rightKlass()\">\n @if (!hidePageSize()) {\n <div class=\"flex items-center gap-2\">\n <span class=\"text-xs text-muted-foreground\">Rows</span>\n <select\n [class]=\"selectKlass()\"\n [value]=\"pageSize()\"\n (change)=\"onPageSizeSelect($any($event.target).value)\"\n >\n @for (s of pageSizeOptions(); track s) {\n <option [value]=\"s\">{{ s }}</option>\n }\n </select>\n </div>\n }\n\n <button type=\"button\" [class]=\"buttonKlass()\" (click)=\"first()\" [disabled]=\"clampedPage() <= 1\">\n «\n </button>\n\n <button type=\"button\" [class]=\"buttonKlass()\" (click)=\"prev()\" [disabled]=\"clampedPage() <= 1\">\n ‹\n </button>\n\n <!-- Page numbers -->\n <div class=\"flex items-center gap-1\">\n @for (p of pages(); track $index) {\n @if (p === '…') {\n <span class=\"px-2 text-muted-foreground\">…</span>\n } @else {\n <button\n type=\"button\"\n [class]=\"pageBtnClasses(p)\"\n (click)=\"goTo(p)\"\n [attr.aria-current]=\"isActive(p) ? 'page' : null\"\n >\n {{ p }}\n </button>\n }\n }\n </div>\n\n <button type=\"button\" [class]=\"buttonKlass()\" (click)=\"next()\" [disabled]=\"clampedPage() >= totalPages()\">\n ›\n </button>\n\n <button type=\"button\" [class]=\"buttonKlass()\" (click)=\"last()\" [disabled]=\"clampedPage() >= totalPages()\">\n »\n </button>\n </div>\n</div>\n","import { Component, input, computed } from '@angular/core';\n\n@Component({\n selector: 'tng-sidenav',\n standalone: true,\n templateUrl: './sidenav.component.html',\n})\nexport class TngSidenav {\n /* =====================\n * State\n * ===================== */\n readonly collapsed = input<boolean>(false);\n\n /* =====================\n * Tailwind class inputs\n * ===================== */\n readonly rootKlass = input<string>(\n 'group h-full bg-bg border-r border-border flex flex-col ' +\n 'transition-[width] duration-200 ease-in-out will-change-[width]'\n );\n \n readonly expandedKlass = input<string>('w-64');\n readonly collapsedKlass = input<string>('w-16');\n\n readonly contentKlass = input<string>('flex-1 overflow-auto');\n readonly footerKlass = input<string>('border-t border-border');\n\n /* =====================\n * Computed\n * ===================== */\n readonly classes = computed(() =>\n [this.rootKlass(), this.collapsed() ? this.collapsedKlass() : this.expandedKlass()].join(' ')\n );\n\n /**\n * Expose state as attribute for Tailwind selectors:\n * `data-[collapsed=true]:...`\n */\n readonly dataCollapsed = computed(() => (this.collapsed() ? 'true' : 'false'));\n}\n","<nav\n [class]=\"classes()\"\n [attr.data-collapsed]=\"dataCollapsed()\"\n aria-label=\"Primary navigation\"\n>\n <!-- Header slot -->\n <div class=\"shrink-0\">\n <ng-content select=\"[tngSidenavHeader]\"></ng-content>\n </div>\n\n <!-- Main navigation -->\n <div [class]=\"contentKlass()\">\n <ng-content></ng-content>\n </div>\n\n <!-- Footer slot -->\n <div [class]=\"footerKlass()\">\n <ng-content select=\"[tngSidenavFooter]\"></ng-content>\n </div>\n</nav>\n","import { Directive } from '@angular/core';\n\n@Directive({ selector: '[tngSidenavHeader]', standalone: true })\nexport class TngSidenavHeaderSlot {}\n\n@Directive({ selector: '[tngSidenavFooter]', standalone: true })\nexport class TngSidenavFooterSlot {}\n","import {\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n input,\n computed,\n signal,\n} from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\nimport { TngStepper } from './stepper.component';\n\n@Component({\n selector: 'tng-step',\n standalone: true,\n template: `<ng-content />`,\n})\nexport class TngStep {\n private readonly stepper = inject(TngStepper);\n private readonly el = inject(ElementRef<HTMLElement>);\n\n /* =====================\n * Inputs\n * ===================== */\n\n /** Optional label (you can also project content) */\n label = input<string>('');\n\n /** Disable this step */\n disabled = input(false, { transform: booleanAttribute });\n\n /** Mark as complete (used by linear mode to allow forward navigation) */\n complete = input(false, { transform: booleanAttribute });\n\n /* =====================\n * Klass hooks\n * ===================== */\n\n stepKlass = input<string>(\n 'inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium border border-transparent'\n );\n activeKlass = input<string>('bg-primary text-on-primary');\n inactiveKlass = input<string>('bg-bg text-muted-foreground hover:text-foreground hover:bg-slate-50');\n disabledKlass = input<string>('opacity-50 cursor-not-allowed');\n\n /* =====================\n * Internal\n * ===================== */\n\n private readonly focused = signal(false);\n\n isComplete(): boolean {\n return this.complete();\n }\n\n isFocused(): boolean {\n return this.focused();\n }\n\n focus(): void {\n this.el.nativeElement.focus();\n }\n\n /* =====================\n * Host bindings\n * ===================== */\n\n @HostBinding('attr.role') role = 'tab';\n\n @HostBinding('attr.tabindex')\n get tabindex() {\n // roving tabindex: active is focusable by default, others -1\n return this.stepper.isActive(this.index()) ? 0 : -1;\n }\n\n @HostBinding('attr.aria-selected')\n get selected() {\n return this.stepper.isActive(this.index());\n }\n\n @HostBinding('attr.aria-disabled')\n get ariaDisabled() {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('class')\n get klass() {\n if (this.disabled()) return `${this.stepKlass()} ${this.disabledKlass()}`.trim();\n return this.stepper.isActive(this.index())\n ? `${this.stepKlass()} ${this.activeKlass()}`.trim()\n : `${this.stepKlass()} ${this.inactiveKlass()}`.trim();\n }\n\n /* =====================\n * Index resolution\n * ===================== */\n\n readonly index = computed(() => {\n const steps = this.stepper.steps();\n return steps.indexOf(this);\n });\n\n /* =====================\n * Events\n * ===================== */\n\n @HostListener('click')\n onClick(): void {\n if (this.disabled()) return;\n this.stepper.setIndex(this.index());\n }\n\n @HostListener('focus')\n onFocus(): void {\n this.focused.set(true);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.focused.set(false);\n }\n}\n","import {\n booleanAttribute,\n Component,\n computed,\n contentChildren,\n effect,\n input,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport { TngStep } from './step.component';\n\nexport type TngStepperOrientation = 'horizontal' | 'vertical';\n\n@Component({\n selector: 'tng-stepper',\n standalone: true,\n templateUrl: './stepper.component.html',\n})\nexport class TngStepper {\n /* =====================\n * Inputs\n * ===================== */\n\n /**\n * Controlled active index.\n * If not null, stepper behaves controlled.\n * NOTE: No transform here (Angular typing limitation with null initial).\n */\n activeIndex = input<number | null>(null);\n\n /** Uncontrolled initial index */\n defaultIndex = input(0, { transform: numberAttribute });\n\n /** Linear mode: prevent jumping forward beyond completed steps */\n linear = input(false, { transform: booleanAttribute });\n\n /** Orientation */\n orientation = input<TngStepperOrientation>('horizontal');\n\n /* =====================\n * Outputs\n * ===================== */\n\n activeIndexChange = output<number>();\n\n /* =====================\n * Klass hooks\n * ===================== */\n\n rootKlass = input<string>('w-full');\n headerKlass = input<string>('flex gap-2');\n headerVerticalKlass = input<string>('flex flex-col gap-2');\n panelWrapKlass = input<string>('pt-4');\n\n /* =====================\n * Children\n * ===================== */\n\n readonly steps = contentChildren(TngStep, { descendants: true });\n\n /* =====================\n * State\n * ===================== */\n\n private readonly _index = signal(0);\n readonly index = this._index.asReadonly();\n\n constructor() {\n // Controlled/uncontrolled sync\n effect(() => {\n const steps = this.steps(); // track for clamping\n const n = steps.length;\n\n const controlled = this.activeIndex();\n if (controlled !== null) {\n this._index.set(this.clamp(Number(controlled), n));\n return;\n }\n\n // uncontrolled init (only when nothing set yet)\n const current = this._index();\n if (current === 0 && this.defaultIndex() !== 0) {\n this._index.set(this.clamp(this.defaultIndex(), n));\n } else {\n // always keep clamped if steps count changes\n this._index.set(this.clamp(current, n));\n }\n });\n }\n\n /* =====================\n * Public API\n * ===================== */\n\n setIndex(next: number): void {\n const clamped = this.clamp(next, this.steps().length);\n if (!this.canActivate(clamped)) return;\n\n this._index.set(clamped);\n this.activeIndexChange.emit(clamped);\n }\n\n next(): void {\n this.setIndex(this._index() + 1);\n }\n\n prev(): void {\n this.setIndex(this._index() - 1);\n }\n\n isActive(i: number): boolean {\n return this._index() === i;\n }\n\n /* =====================\n * Keyboard navigation (roving focus)\n * ===================== */\n\n onKeydown(ev: KeyboardEvent): void {\n const steps = this.steps();\n if (!steps.length) return;\n\n const key = ev.key;\n const horizontal = this.orientation() === 'horizontal';\n\n const prevKey = horizontal ? 'ArrowLeft' : 'ArrowUp';\n const nextKey = horizontal ? 'ArrowRight' : 'ArrowDown';\n\n if (key === prevKey) {\n ev.preventDefault();\n this.focusStep(this._index() - 1);\n return;\n }\n\n if (key === nextKey) {\n ev.preventDefault();\n this.focusStep(this._index() + 1);\n return;\n }\n\n if (key === 'Home') {\n ev.preventDefault();\n this.focusStep(0);\n return;\n }\n\n if (key === 'End') {\n ev.preventDefault();\n this.focusStep(steps.length - 1);\n return;\n }\n\n if (key === 'Enter' || key === ' ') {\n const focusedIndex = steps.findIndex((s) => s.isFocused());\n if (focusedIndex >= 0) {\n ev.preventDefault();\n this.setIndex(focusedIndex);\n }\n }\n }\n\n focusStep(i: number): void {\n const steps = this.steps();\n const clamped = this.clamp(i, steps.length);\n steps[clamped]?.focus();\n }\n\n /* =====================\n * Rules\n * ===================== */\n\n private clamp(i: number, n: number): number {\n if (n <= 0) return 0;\n if (!Number.isFinite(i)) return 0;\n return Math.max(0, Math.min(n - 1, i));\n }\n\n private canActivate(target: number): boolean {\n const steps = this.steps();\n const current = this._index();\n\n if (!this.linear()) return true;\n if (target <= current) return true;\n\n for (let i = 0; i < target; i++) {\n const s = steps[i];\n if (!s) return false;\n if (!s.isComplete()) return false;\n }\n return true;\n }\n\n /* =====================\n * Computed\n * ===================== */\n\n readonly headerResolvedKlass = computed(() =>\n this.orientation() === 'vertical' ? this.headerVerticalKlass() : this.headerKlass()\n );\n\n readonly orientationAttr = computed(() =>\n this.orientation() === 'vertical' ? 'vertical' : 'horizontal'\n );\n}\n","<div [class]=\"rootKlass()\">\n <!-- Step headers -->\n <div\n role=\"tablist\"\n [attr.aria-orientation]=\"orientationAttr()\"\n [class]=\"headerResolvedKlass()\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-content select=\"tng-step\"></ng-content>\n </div>\n\n <!-- Panels -->\n <div [class]=\"panelWrapKlass()\">\n <ng-content select=\"tng-step-panel\"></ng-content>\n </div>\n</div>\n","import { Component, HostBinding, inject, input, computed } from '@angular/core';\nimport { TngStepper } from './stepper.component';\n\n@Component({\n selector: 'tng-step-panel',\n standalone: true,\n template: `<ng-content />`,\n})\nexport class TngStepPanel {\n private readonly stepper = inject(TngStepper);\n\n /** Panel index this content belongs to */\n index = input.required<number>();\n\n @HostBinding('attr.role') role = 'tabpanel';\n\n @HostBinding('hidden')\n get hidden() {\n return !this.stepper.isActive(this.index());\n }\n\n // Optional: you can use this for debugging or conditional content\n readonly isActive = computed(() => this.stepper.isActive(this.index()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MA2Ba,cAAc,CAAA;;AAEhB,IAAA,KAAK,GAAG,KAAK,CAAsB,EAAE,iDAAC;;AAGtC,IAAA,IAAI,GAAG,KAAK,CAA2B,IAAI,gDAAC;;AAG5C,IAAA,SAAS,GAAG,KAAK,CAAS,GAAG,qDAAC;;AAG9B,IAAA,SAAS,GAAG,KAAK,CAAS,YAAY,qDAAC;AAEhD;;AAE2B;AAClB,IAAA,SAAS,GAAG,KAAK,CAAS,iDAAiD,qDAAC;AAC5E,IAAA,SAAS,GAAG,KAAK,CAAS,mCAAmC,qDAAC;AAC9D,IAAA,SAAS,GAAG,KAAK,CAAS,0BAA0B,qDAAC;AAErD,IAAA,SAAS,GAAG,KAAK,CAAS,8BAA8B,qDAAC;AACzD,IAAA,YAAY,GAAG,KAAK,CAAS,6BAA6B,wDAAC;AAC3D,IAAA,aAAa,GAAG,KAAK,CAAS,gCAAgC,yDAAC;AAE/D,IAAA,cAAc,GAAG,KAAK,CAAS,qBAAqB,0DAAC;AAE9D;;AAE2B;AAClB,IAAA,aAAa,GAAG,QAAQ,CAAsB,MAAK;AAC1D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;AAChC,QAAA,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK;AACxC,IAAA,CAAC,yDAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE;AAClC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACpD,OAAO,QAAQ,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACjE,IAAA,CAAC,wDAAC;AAEF,IAAA,SAAS,CAAC,CAAS,EAAA;AACjB,QAAA,OAAO,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE;IAClC;IAEA,WAAW,CAAC,IAAuB,EAAE,CAAS,EAAA;QAC5C,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,KAAK;AAC/B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;QACnC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;IACpC;IAEA,WAAW,CAAC,IAAuB,EAAE,CAAS,EAAA;AAC5C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,EAAE,CAAA,CAAE,GAAG,EAAE;QAChE,OAAO,CAAA,EAAG,IAAI,CAAA,EAAG,QAAQ,EAAE,CAAC,IAAI,EAAE;IACpC;IAEA,YAAY,CAAC,IAAuB,EAAE,CAAS,EAAA;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE;IACpE;AAEA,IAAA,MAAM,CAAC,IAAuB,EAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;QAC3B,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,GAAG;AAC7B,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAG,IAAI;IAChE;uGAlEW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3B3B,gtCAyCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDjBY,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGT,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,UAAU,CAAC,EAAA,QAAA,EAAA,gtCAAA,EAAA;;;MECV,SAAS,CAAA;AACpB;;AAE2B;AAE3B,IAAA,SAAS;AAGT,IAAA,QAAQ;AAER;;AAE2B;AAClB,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAC5B,IAAA,SAAS,GAAG,KAAK,CAAqB,MAAM,qDAAC;AAE7C,IAAA,oBAAoB,GAAG,KAAK,CAAU,IAAI,gEAAC;AAC3C,IAAA,aAAa,GAAG,KAAK,CAAU,IAAI,yDAAC;;AAGpC,IAAA,SAAS,GAAG,KAAK,CAAU,IAAI,qDAAC;AAChC,IAAA,YAAY,GAAG,KAAK,CAAU,IAAI,wDAAC;AACnC,IAAA,WAAW,GAAG,KAAK,CAAU,IAAI,uDAAC;AAClC,IAAA,oBAAoB,GAAG,KAAK,CAAU,KAAK,gEAAC;IAE5C,MAAM,GAAG,MAAM,EAAQ;IACvB,MAAM,GAAG,MAAM,EAAqB;AAE7C;;AAE2B;AAClB,IAAA,aAAa,GAAG,KAAK,CAAS,+CAA+C,yDAAC;AAC9E,IAAA,UAAU,GAAG,KAAK,CAAS,8BAA8B,sDAAC;AAE1D,IAAA,SAAS,GAAG,KAAK,CAAS,MAAM,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC;AAClC,IAAA,WAAW,GAAG,KAAK,CAAS,MAAM,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC;AAE7C;;AAE2B;AAClB,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,kDAAC;AAEtB,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACtB,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,cAAc;AACvB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,YAAY;AACrB,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,WAAW;AACpB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,cAAc;;AAE3B,IAAA,CAAC,4DAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;QACpC,MAAM,IAAI,GAAG,2EAA2E;AAExF,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACtB,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,GAAG,IAAI,CAAA,qBAAA,EACZ,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,GAAG,mBACpC,EAAE;AACJ,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,GAAG,IAAI,CAAA,sBAAA,EACZ,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,GAAG,kBACpC,EAAE;AACJ,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,GAAG,IAAI,CAAA,qBAAA,EACZ,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,GAAG,mBACpC,EAAE;AACJ,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,GAAG,IAAI,CAAA,wBAAA,EACZ,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,GAAG,kBACpC,EAAE;;AAER,IAAA,CAAC,wDAAC;AAEF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACpB;iBAAO;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YACxB;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,eAAe,CAAC,MAAyB,EAAA;AACvC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAAE;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IACnC;;AAGA,IAAA,cAAc,CAAC,EAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE;QAC3B,IAAI,EAAE,CAAC,gBAAgB;YAAE;AAEzB,QAAA,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ,EAAE;YACvB,EAAE,CAAC,cAAc,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5B;IACF;uGA5GW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIN,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7B3B,mpBAyBA,4CDHY,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGX,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,mpBAAA,EAAA;;sBAOtB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;sBAG/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MEzB5B,eAAe,CAAA;AACE,IAAA,GAAA;AAA5B,IAAA,WAAA,CAA4B,GAAyB,EAAA;QAAzB,IAAA,CAAA,GAAG,GAAH,GAAG;IAAyB;uGAD7C,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACND;MA0Ca,OAAO,CAAA;AAGD,IAAA,MAAM;AAEvB,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG;IACzB;AAGA,IAAA,SAAS;;AAGA,IAAA,KAAK,GAAG,KAAK,CAAU,KAAK,iDAAC;AAE7B,IAAA,SAAS,GAAG,KAAK,CAAmB,cAAc,qDAAC;AACnD,IAAA,MAAM,GAAG,KAAK,CAAS,CAAC,kDAAC;AACzB,IAAA,KAAK,GAAG,KAAK,CAAoB,QAAQ,iDAAC;AAE1C,IAAA,mBAAmB,GAAG,KAAK,CAAU,IAAI,+DAAC;AAC1C,IAAA,aAAa,GAAG,KAAK,CAAU,IAAI,yDAAC;AACpC,IAAA,gBAAgB,GAAG,KAAK,CAAU,IAAI,4DAAC;AAEvC,IAAA,SAAS,GAAG,KAAK,CAAS,uBAAuB,qDAAC;AAClD,IAAA,YAAY,GAAG,KAAK,CAAS,aAAa,wDAAC;AAC3C,IAAA,UAAU,GAAG,KAAK,CAAS,KAAK,sDAAC;AACjC,IAAA,aAAa,GAAG,KAAK,CAAS,mCAAmC,yDAAC;IAElE,MAAM,GAAG,MAAM,EAAQ;IACvB,MAAM,GAAG,MAAM,EAAmB;AAElC,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,kDAAC;;AAGd,IAAA,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA,SAAA,EAAY,IAAI,CAAC,GAAG,CAAA,CAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;IAG/C,4BAA4B,GAAG,QAAQ,CAAC,MAC/C,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACjD;IAEQ,sBAAsB,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC3C;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;AAAC,IAAA,KAAK,CAAC,MAAuB,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE;AAEpB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAExB,QAAA,cAAc,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAC9D;AAEA,IAAA,mBAAmB,CAAC,IAAa,EAAA;AAC/B,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IACjC;AAEA,IAAA,eAAe,CAAC,MAAuB,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAExB,QAAA,cAAc,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAC9D;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;IAC1D;IAEA,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAAE;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IACzB;IAEA,cAAc,GAAA;QACZ,IAAI,CAAC,uBAAuB,EAAE;IAChC;uGAnFW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEJ,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5C/B,29CAiDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEZ,mBAAmB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIJ,OAAO,EAAA,UAAA,EAAA,CAAA;kBAZnB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,mBAAmB;wBACnB,eAAe;wBACf,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,29CAAA,EAAA;;sBAKA,YAAY;uBAAC,eAAe;;sBAO5B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ME5C7B,WAAW,CAAA;IACL,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAG3D,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,EAAE,uBAAuB,EAAE;IACtC;uGANW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAIE,YAAY;uBAAC,OAAO;;;MCGV,YAAY,CAAA;AACvB;;AAE2B;;AAGlB,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,iDAAC;;AAGxB,IAAA,IAAI,GAAG,KAAK,CAAS,CAAC,gDAAC;;AAGvB,IAAA,QAAQ,GAAG,KAAK,CAAS,EAAE,oDAAC;;AAG5B,IAAA,eAAe,GAAG,KAAK,CAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,2DAAC;;AAGpD,IAAA,YAAY,GAAG,KAAK,CAAU,KAAK,wDAAC;;AAGpC,IAAA,QAAQ,GAAG,KAAK,CAAS,CAAC,oDAAC;AAEpC;;AAE2B;AAClB,IAAA,SAAS,GAAG,KAAK,CAAS,2DAA2D,qDAAC;AACtF,IAAA,SAAS,GAAG,KAAK,CAAS,uBAAuB,qDAAC;AAClD,IAAA,UAAU,GAAG,KAAK,CAAS,mCAAmC,sDAAC;AAE/D,IAAA,WAAW,GAAG,KAAK,CAC1B,gIAAgI,uDACjI;AAEQ,IAAA,eAAe,GAAG,KAAK,CAC9B,4DAA4D,2DAC7D;AAEQ,IAAA,SAAS,GAAG,KAAK,CACxB,+EAA+E,qDAChF;AAEQ,IAAA,WAAW,GAAG,KAAK,CAC1B,2DAA2D,uDAC5D;AAEQ,IAAA,cAAc,GAAG,KAAK,CAAS,qBAAqB,0DAAC;AAE9D;;AAE2B;IAClB,UAAU,GAAG,MAAM,EAAU;IAC7B,cAAc,GAAG,MAAM,EAAU;IACjC,MAAM,GAAG,MAAM,EAAsB;AAE9C;;AAE2B;AAClB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAClC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACvC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAC7C,IAAA,CAAC,sDAAC;AAEO,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AACnC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACrB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACpD,IAAA,CAAC,uDAAC;IAEO,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,gDAAC;AAEjE,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAClC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,IAAI,KAAK,IAAI,CAAC;AAAE,YAAA,OAAO,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACxB,IAAA,CAAC,sDAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,IAAI,KAAK,IAAI,CAAC;AAAE,YAAA,OAAO,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvD,IAAA,CAAC,oDAAC;AAEO,IAAA,KAAK,GAAG,QAAQ,CAAsB,MAAK;AAClD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAElC,QAAA,IAAI,KAAK,IAAI,GAAG,EAAE;YAChB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;AACvC,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;;AAG1C,QAAA,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAElC,MAAM,MAAM,GAAwB,EAAE;AAEtC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACd,IAAI,KAAK,GAAG,CAAC;AAAE,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACjC;QAEA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAEjD,QAAA,IAAI,GAAG,GAAG,KAAK,EAAE;AACf,YAAA,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC;AAAE,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACpB;AAEA,QAAA,OAAO,MAAM;AACf,IAAA,CAAC,iDAAC;AAEF;;AAE2B;IACnB,UAAU,CAAC,QAAgB,EAAE,QAAgB,EAAA;AACnD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,QAAQ;AAChC,SAAA,CAAC;IACJ;AAEA,IAAA,IAAI,CAAC,IAAY,EAAA;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3D,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;YAAE;;AAGjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;IACjG;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnC;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnC;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACd;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B;AAEA,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC1D,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;YAAE;;AAG9B,QAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;AAEnD,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;IACjC;AAEA,IAAA,QAAQ,CAAC,CAAS,EAAA;AAChB,QAAA,OAAO,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;IACjC;AAEA,IAAA,cAAc,CAAC,CAAS,EAAA;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE;QACnE,OAAO,CAAC,IAAI,GAAG,MAAM,EAAE,IAAI,EAAE;IAC/B;uGA7KW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,khECbzB,09DA+DA,EAAA,CAAA;;2FDlDa,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,QAAA,EAAA,09DAAA,EAAA;;;MEHL,UAAU,CAAA;AACrB;;AAE2B;AAClB,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;AAE1C;;AAE2B;IAClB,SAAS,GAAG,KAAK,CACxB,0DAA0D;AAC1D,QAAA,iEAAiE,qDAClE;AAEQ,IAAA,aAAa,GAAG,KAAK,CAAS,MAAM,yDAAC;AACrC,IAAA,cAAc,GAAG,KAAK,CAAS,MAAM,0DAAC;AAEtC,IAAA,YAAY,GAAG,KAAK,CAAS,sBAAsB,wDAAC;AACpD,IAAA,WAAW,GAAG,KAAK,CAAS,wBAAwB,uDAAC;AAE9D;;AAE2B;AAClB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAC1B,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,mDAC9F;AAED;;;AAGG;IACM,aAAa,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;uGA/BnE,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,q5BCPvB,weAoBA,EAAA,CAAA;;2FDba,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cACX,IAAI,EAAA,QAAA,EAAA,weAAA,EAAA;;;MEDL,oBAAoB,CAAA;uGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;;MAIlD,oBAAoB,CAAA;uGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;;;MCalD,OAAO,CAAA;AACD,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,IAAA,EAAE,GAAG,MAAM,EAAC,UAAuB,EAAC;AAErD;;AAE2B;;AAG3B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;;IAGzB,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAGxD,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD;;AAE2B;AAE3B,IAAA,SAAS,GAAG,KAAK,CACf,mGAAmG,qDACpG;AACD,IAAA,WAAW,GAAG,KAAK,CAAS,4BAA4B,uDAAC;AACzD,IAAA,aAAa,GAAG,KAAK,CAAS,qEAAqE,yDAAC;AACpG,IAAA,aAAa,GAAG,KAAK,CAAS,+BAA+B,yDAAC;AAE9D;;AAE2B;AAEV,IAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;IAExC,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;IAEA,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IAC/B;AAEA;;AAE2B;IAED,IAAI,GAAG,KAAK;AAEtC,IAAA,IACI,QAAQ,GAAA;;QAEV,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrD;AAEA,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5C;AAEA,IAAA,IACI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI;IACxC;AAEA,IAAA,IACI,KAAK,GAAA;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,EAAE,CAAA,CAAE,CAAC,IAAI,EAAE;QAChF,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,cAAE,CAAA,EAAG,IAAI,CAAC,SAAS,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC,IAAI;AAClD,cAAE,CAAA,EAAG,IAAI,CAAC,SAAS,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,EAAE,CAAA,CAAE,CAAC,IAAI,EAAE;IAC1D;AAEA;;AAE2B;AAElB,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAClC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5B,IAAA,CAAC,iDAAC;AAEF;;AAE2B;IAG3B,OAAO,GAAA;QACL,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACrC;IAGA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;IAGA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IACzB;uGAvGW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,swCAFR,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEf,OAAO,EAAA,UAAA,EAAA,CAAA;kBALnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;sBAmDE,WAAW;uBAAC,WAAW;;sBAEvB,WAAW;uBAAC,eAAe;;sBAM3B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,OAAO;;sBAqBnB,YAAY;uBAAC,OAAO;;sBAMpB,YAAY;uBAAC,OAAO;;sBAKpB,YAAY;uBAAC,MAAM;;;MClGT,UAAU,CAAA;AACrB;;AAE2B;AAE3B;;;;AAIG;AACH,IAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,uDAAC;;IAGxC,YAAY,GAAG,KAAK,CAAC,CAAC,yDAAI,SAAS,EAAE,eAAe,EAAA,CAAG;;IAGvD,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAGtD,IAAA,WAAW,GAAG,KAAK,CAAwB,YAAY,uDAAC;AAExD;;AAE2B;IAE3B,iBAAiB,GAAG,MAAM,EAAU;AAEpC;;AAE2B;AAE3B,IAAA,SAAS,GAAG,KAAK,CAAS,QAAQ,qDAAC;AACnC,IAAA,WAAW,GAAG,KAAK,CAAS,YAAY,uDAAC;AACzC,IAAA,mBAAmB,GAAG,KAAK,CAAS,qBAAqB,+DAAC;AAC1D,IAAA,cAAc,GAAG,KAAK,CAAS,MAAM,0DAAC;AAEtC;;AAE2B;IAElB,KAAK,GAAG,eAAe,CAAC,OAAO,kDAAI,WAAW,EAAE,IAAI,EAAA,CAAG;AAEhE;;AAE2B;AAEV,IAAA,MAAM,GAAG,MAAM,CAAC,CAAC,kDAAC;AAC1B,IAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAEzC,IAAA,WAAA,GAAA;;QAEE,MAAM,CAAC,MAAK;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3B,YAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AAEtB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,UAAU,KAAK,IAAI,EAAE;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClD;YACF;;AAGA,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;YAC7B,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;YACrD;iBAAO;;AAEL,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzC;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;AAE2B;AAE3B,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;AACrD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE;AAEhC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;IACtC;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC;AAEA,IAAA,QAAQ,CAAC,CAAS,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;IAC5B;AAEA;;AAE2B;AAE3B,IAAA,SAAS,CAAC,EAAiB,EAAA;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE;AAEnB,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY;QAEtD,MAAM,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS;QACpD,MAAM,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW;AAEvD,QAAA,IAAI,GAAG,KAAK,OAAO,EAAE;YACnB,EAAE,CAAC,cAAc,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjC;QACF;AAEA,QAAA,IAAI,GAAG,KAAK,OAAO,EAAE;YACnB,EAAE,CAAC,cAAc,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjC;QACF;AAEA,QAAA,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,EAAE,CAAC,cAAc,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACjB;QACF;AAEA,QAAA,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,EAAE,CAAC,cAAc,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC;QACF;QAEA,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG,EAAE;AAClC,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;AAC1D,YAAA,IAAI,YAAY,IAAI,CAAC,EAAE;gBACrB,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7B;QACF;IACF;AAEA,IAAA,SAAS,CAAC,CAAS,EAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;AAC3C,QAAA,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;IACzB;AAEA;;AAE2B;IAEnB,KAAK,CAAC,CAAS,EAAE,CAAS,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC;AAEQ,IAAA,WAAW,CAAC,MAAc,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AAE7B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAAE,YAAA,OAAO,IAAI;QAC/B,IAAI,MAAM,IAAI,OAAO;AAAE,YAAA,OAAO,IAAI;AAElC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,YAAA,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,CAAC;AAAE,gBAAA,OAAO,KAAK;AACpB,YAAA,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AAAE,gBAAA,OAAO,KAAK;QACnC;AACA,QAAA,OAAO,IAAI;IACb;AAEA;;AAE2B;IAElB,mBAAmB,GAAG,QAAQ,CAAC,MACtC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACpF;IAEQ,eAAe,GAAG,QAAQ,CAAC,MAClC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,GAAG,UAAU,GAAG,YAAY,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC9D;uGAxLU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAwCY,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5D1C,+ZAgBA,EAAA,CAAA;;2FDIa,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cACX,IAAI,EAAA,QAAA,EAAA,+ZAAA,EAAA;AA2CiB,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,OAAO,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEpDpD,YAAY,CAAA;AACN,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;;AAG7C,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAU;IAEN,IAAI,GAAG,UAAU;AAE3C,IAAA,IACI,MAAM,GAAA;AACR,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC7C;;AAGS,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,oDAAC;uGAd5D,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,0RAFb,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEf,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;sBAOE,WAAW;uBAAC,WAAW;;sBAEvB,WAAW;uBAAC,QAAQ;;;AChBvB;;AAEG;;;;"}
|