@atelier-ui/angular 0.0.1
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/README.md +7 -0
- package/fesm2022/atelier-ui-angular.mjs +3182 -0
- package/fesm2022/atelier-ui-angular.mjs.map +1 -0
- package/package.json +41 -0
- package/types/atelier-ui-angular.d.ts +1278 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atelier-ui-angular.mjs","sources":["../../../../libs/angular/src/lib/button/llm-button.ts","../../../../libs/angular/src/lib/card/llm-card.ts","../../../../libs/angular/src/lib/badge/llm-badge.ts","../../../../libs/angular/src/lib/input/llm-input.ts","../../../../libs/angular/src/lib/textarea/llm-textarea.ts","../../../../libs/angular/src/lib/checkbox/llm-checkbox.ts","../../../../libs/angular/src/lib/radio-group/llm-radio-group.token.ts","../../../../libs/angular/src/lib/radio/llm-radio.ts","../../../../libs/angular/src/lib/radio-group/llm-radio-group.ts","../../../../libs/angular/src/lib/toggle/llm-toggle.ts","../../../../libs/angular/src/lib/alert/llm-alert.ts","../../../../libs/angular/src/lib/select/llm-select.token.ts","../../../../libs/angular/src/lib/select/llm-select.ts","../../../../libs/angular/src/lib/select/llm-option.ts","../../../../libs/angular/src/lib/dialog/llm-dialog.token.ts","../../../../libs/angular/src/lib/dialog/llm-dialog.ts","../../../../libs/angular/src/lib/tabs/llm-tabs.token.ts","../../../../libs/angular/src/lib/tabs/llm-tabs.ts","../../../../libs/angular/src/lib/accordion/llm-accordion.token.ts","../../../../libs/angular/src/lib/accordion/llm-accordion.ts","../../../../libs/angular/src/lib/menu/llm-menu.ts","../../../../libs/angular/src/lib/tooltip/llm-tooltip.ts","../../../../libs/angular/src/lib/skeleton/llm-skeleton.ts","../../../../libs/angular/src/lib/toast/llm-toast.ts","../../../../libs/angular/src/lib/avatar/llm-avatar.ts","../../../../libs/angular/src/lib/progress/llm-progress.ts","../../../../libs/angular/src/lib/breadcrumbs/llm-breadcrumbs.token.ts","../../../../libs/angular/src/lib/breadcrumbs/llm-breadcrumbs.ts","../../../../libs/angular/src/lib/pagination/llm-pagination.ts","../../../../libs/angular/src/lib/drawer/llm-drawer.token.ts","../../../../libs/angular/src/lib/drawer/llm-drawer.ts","../../../../libs/angular/src/index.ts","../../../../libs/angular/src/atelier-ui-angular.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\nimport type { LlmButtonVariant, LlmButtonSize } from '@atelier-ui/spec';\n\n/**\n * Accessible button component with visual variants and sizes.\n *\n * Usage:\n * ```html\n * <llm-button variant=\"primary\" size=\"md\" (click)=\"save()\">Save</llm-button>\n * <llm-button variant=\"outline\" [disabled]=\"true\">Cancel</llm-button>\n * <llm-button [loading]=\"isSaving\">Saving…</llm-button>\n * ```\n */\n@Component({\n selector: 'llm-button',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (loading()) {\n <span class=\"spinner\" aria-hidden=\"true\"></span>\n }\n <ng-content />\n `,\n styleUrl: './llm-button.css',\n host: {\n role: 'button',\n '[class]': 'hostClasses()',\n '[attr.aria-disabled]': 'isDisabled()',\n '[attr.disabled]': 'isDisabled() ? true : null',\n },\n})\nexport class LlmButton {\n /** Visual style of the button. */\n readonly variant = input<LlmButtonVariant>('primary');\n\n /** Size of the button. */\n readonly size = input<LlmButtonSize>('md');\n\n /** Disables the button, preventing interaction. */\n readonly disabled = input(false);\n\n /** Shows a loading spinner and disables interaction. */\n readonly loading = input(false);\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n\n protected readonly hostClasses = computed(\n () =>\n `variant-${this.variant()} size-${this.size()}${this.isDisabled() ? ' is-disabled' : ''}${this.loading() ? ' is-loading' : ''}`\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\n/**\n * Card container component supporting elevated, outlined, and flat visual variants.\n * Compose with `llm-card-header`, `llm-card-content`, and `llm-card-footer` sub-components.\n *\n * Usage:\n * ```html\n * <llm-card variant=\"elevated\" padding=\"md\">\n * <llm-card-header>Card Title</llm-card-header>\n * <llm-card-content>Main content goes here.</llm-card-content>\n * <llm-card-footer>\n * <llm-button variant=\"primary\">Save</llm-button>\n * </llm-card-footer>\n * </llm-card>\n * ```\n */\n@Component({\n selector: 'llm-card',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-card.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmCard {\n /** Visual style of the card. */\n readonly variant = input<'elevated' | 'outlined' | 'flat'>('elevated');\n\n /** Internal padding of the card. */\n readonly padding = input<'none' | 'sm' | 'md' | 'lg'>('md');\n\n protected readonly hostClasses = computed(\n () => `variant-${this.variant()} padding-${this.padding()}`\n );\n}\n\n/**\n * Header slot for `llm-card`. Renders above the main content with a bottom separator.\n *\n * Usage:\n * ```html\n * <llm-card-header>Card Title</llm-card-header>\n * ```\n */\n@Component({\n selector: 'llm-card-header',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-card.css',\n})\nexport class LlmCardHeader {}\n\n/**\n * Content slot for `llm-card`. Primary content area of the card.\n *\n * Usage:\n * ```html\n * <llm-card-content>Body text here.</llm-card-content>\n * ```\n */\n@Component({\n selector: 'llm-card-content',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-card.css',\n})\nexport class LlmCardContent {}\n\n/**\n * Footer slot for `llm-card`. Renders below the main content, typically holds actions.\n *\n * Usage:\n * ```html\n * <llm-card-footer>\n * <llm-button variant=\"primary\">Save</llm-button>\n * </llm-card-footer>\n * ```\n */\n@Component({\n selector: 'llm-card-footer',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-card.css',\n})\nexport class LlmCardFooter {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\n/**\n * Inline status badge for labeling items with semantic color variants.\n *\n * Usage:\n * ```html\n * <llm-badge variant=\"success\">Active</llm-badge>\n * <llm-badge variant=\"danger\" size=\"sm\">Error</llm-badge>\n * <llm-badge variant=\"warning\">Pending</llm-badge>\n * ```\n */\n@Component({\n selector: 'llm-badge',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-badge.css',\n host: {\n '[class]': 'hostClasses()',\n role: 'status',\n },\n})\nexport class LlmBadge {\n /** Semantic color variant of the badge. */\n readonly variant = input<'default' | 'success' | 'warning' | 'danger' | 'info'>('default');\n\n /** Size of the badge. */\n readonly size = input<'sm' | 'md'>('md');\n\n protected readonly hostClasses = computed(\n () => `variant-${this.variant()} size-${this.size()}`\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\n\nlet nextId = 0;\n\n/**\n * Accessible text input component for use with Angular Signal Forms.\n *\n * Usage:\n * ```html\n * <llm-input type=\"email\" placeholder=\"you@example.com\" [(value)]=\"email\" />\n * <llm-input [formField]=\"loginForm.email\" placeholder=\"Email\" />\n * ```\n */\n@Component({\n selector: 'llm-input',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <input\n [type]=\"type()\"\n [value]=\"value()\"\n (input)=\"onInput($event)\"\n (blur)=\"touched.set(true)\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [placeholder]=\"placeholder()\"\n [attr.name]=\"name() || null\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-describedby]=\"showErrors() ? errorId : null\"\n />\n @if (showErrors()) {\n <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n @for (error of errors(); track error.kind) {\n <p class=\"error-message\">{{ error.message }}</p>\n }\n </div>\n }\n `,\n styleUrl: './llm-input.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmInput implements FormValueControl<string> {\n /** The current input value. Bound by [formField] directive. Supports [(value)] two-way binding. */\n readonly value = model('');\n\n /** The type of input field. */\n readonly type = input<'text' | 'email' | 'password' | 'number' | 'tel' | 'url'>('text');\n\n /** Placeholder text shown when the input is empty. */\n readonly placeholder = input('');\n\n /** Whether the input is disabled. Bound by [formField] directive. */\n readonly disabled = input(false);\n\n /** Whether the input is read-only. Bound by [formField] directive. */\n readonly readonly = input(false);\n\n /** Whether the input has validation errors. Bound by [formField] directive. */\n readonly invalid = input(false);\n\n /** Validation errors from the form system. Bound by [formField] directive. */\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n /** Whether the user has interacted with the input. Bound by [formField] directive. */\n readonly touched = model(false);\n\n /** Whether the input is required. Bound by [formField] directive. */\n readonly required = input(false);\n\n /** The input's name attribute. Bound by [formField] directive. */\n readonly name = input('');\n\n /** @internal */\n protected readonly errorId = `llm-input-errors-${nextId++}`;\n\n /** @internal */\n protected readonly showErrors = computed(\n () => this.touched() && this.invalid() && this.errors().length > 0\n );\n\n /** @internal */\n protected readonly hostClasses = computed(() => {\n const classes: string[] = [];\n if (this.disabled()) classes.push('is-disabled');\n if (this.invalid()) classes.push('is-invalid');\n if (this.readonly()) classes.push('is-readonly');\n if (this.touched()) classes.push('is-touched');\n return classes.join(' ');\n });\n\n /** @internal */\n protected onInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.value.set(target.value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n} from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\n\nlet nextId = 0;\n\n/**\n * Accessible multiline text input component for use with Angular Signal Forms.\n *\n * Usage:\n * ```html\n * <llm-textarea placeholder=\"Enter a description\" [(value)]=\"description\" />\n * <llm-textarea [formField]=\"form.bio\" [rows]=\"4\" />\n * ```\n */\n@Component({\n selector: 'llm-textarea',\n standalone: true,\n imports: [TextFieldModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <textarea\n [value]=\"value()\"\n (input)=\"onInput($event)\"\n (blur)=\"touched.set(true)\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [placeholder]=\"placeholder()\"\n [rows]=\"rows()\"\n [attr.name]=\"name() || null\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-describedby]=\"showErrors() ? errorId : null\"\n [cdkTextareaAutosize]=\"autoResize()\"\n [cdkAutosizeMinRows]=\"rows()\"\n ></textarea>\n @if (showErrors()) {\n <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n @for (error of errors(); track error.kind) {\n <p class=\"error-message\">{{ error.message }}</p>\n }\n </div>\n }\n `,\n styleUrl: './llm-textarea.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmTextarea implements FormValueControl<string> {\n /** The current textarea value. Supports [(value)] two-way binding. */\n readonly value = model('');\n\n /** Number of visible text rows. */\n readonly rows = input(3);\n\n /** Placeholder text shown when the textarea is empty. */\n readonly placeholder = input('');\n\n /** Whether the textarea is disabled. Bound by [formField] directive. */\n readonly disabled = input(false);\n\n /** Whether the textarea is read-only. Bound by [formField] directive. */\n readonly readonly = input(false);\n\n /** Whether the textarea has validation errors. Bound by [formField] directive. */\n readonly invalid = input(false);\n\n /** Validation errors from the form system. Bound by [formField] directive. */\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n /** Whether the user has interacted with the textarea. Bound by [formField] directive. */\n readonly touched = model(false);\n\n /** Whether the textarea is required. Bound by [formField] directive. */\n readonly required = input(false);\n\n /** The textarea's name attribute. Bound by [formField] directive. */\n readonly name = input('');\n\n /** Whether to auto-resize the textarea height to fit its content. */\n readonly autoResize = input(false);\n\n /** @internal */\n protected readonly errorId = `llm-textarea-errors-${nextId++}`;\n\n /** @internal */\n protected readonly showErrors = computed(\n () => this.touched() && this.invalid() && this.errors().length > 0\n );\n\n /** @internal */\n protected readonly hostClasses = computed(() => {\n const classes: string[] = [];\n if (this.disabled()) classes.push('is-disabled');\n if (this.invalid()) classes.push('is-invalid');\n if (this.readonly()) classes.push('is-readonly');\n if (this.touched()) classes.push('is-touched');\n if (this.autoResize()) classes.push('is-auto-resize');\n return classes.join(' ');\n });\n\n /** @internal */\n protected onInput(event: Event): void {\n const target = event.target as HTMLTextAreaElement;\n this.value.set(target.value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\n\nlet nextId = 0;\n\n/**\n * Accessible checkbox component for use with Angular Signal Forms.\n *\n * Usage:\n * ```html\n * <llm-checkbox [(checked)]=\"accepted\">I agree to the terms</llm-checkbox>\n * <llm-checkbox [formField]=\"form.accepted\">Accept</llm-checkbox>\n * ```\n */\n@Component({\n selector: 'llm-checkbox',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <label [attr.for]=\"inputId\">\n <input\n #nativeInput\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked()\"\n (change)=\"onChange($event)\"\n (blur)=\"touched.set(true)\"\n [disabled]=\"disabled()\"\n [attr.name]=\"name() || null\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-describedby]=\"showErrors() ? errorId : null\"\n />\n <ng-content />\n </label>\n @if (showErrors()) {\n <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n @for (error of errors(); track error.kind) {\n <p class=\"error-message\">{{ error.message }}</p>\n }\n </div>\n }\n `,\n styleUrl: './llm-checkbox.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmCheckbox implements FormCheckboxControl {\n /** The checked state. Bound by [formField] directive. Supports [(checked)] two-way binding. */\n readonly checked = model(false);\n\n /** Whether the user has interacted with the input. Bound by [formField] directive. */\n readonly touched = model(false);\n\n /** Tri-state indeterminate mode (e.g. \"select all\"). Set via DOM property. */\n readonly indeterminate = input(false);\n\n /** Whether the checkbox is disabled. Bound by [formField] directive. */\n readonly disabled = input(false);\n\n /** Whether the checkbox has validation errors. Bound by [formField] directive. */\n readonly invalid = input(false);\n\n /** Whether the checkbox is required. Bound by [formField] directive. */\n readonly required = input(false);\n\n /** The input's name attribute. Bound by [formField] directive. */\n readonly name = input('');\n\n /** Validation errors from the form system. Bound by [formField] directive. */\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n /** @internal */\n protected readonly inputId = `llm-checkbox-${nextId++}`;\n\n /** @internal */\n protected readonly errorId = `llm-checkbox-errors-${nextId++}`;\n\n /** @internal */\n private readonly nativeInput = viewChild<ElementRef<HTMLInputElement>>('nativeInput');\n\n /** @internal */\n protected readonly showErrors = computed(\n () => this.touched() && this.invalid() && this.errors().length > 0\n );\n\n /** @internal */\n protected readonly hostClasses = computed(() => {\n const classes: string[] = [];\n if (this.checked()) classes.push('is-checked');\n if (this.disabled()) classes.push('is-disabled');\n if (this.invalid()) classes.push('is-invalid');\n if (this.touched()) classes.push('is-touched');\n return classes.join(' ');\n });\n\n constructor() {\n effect(() => {\n const el = this.nativeInput()?.nativeElement;\n if (el) {\n el.indeterminate = this.indeterminate();\n }\n });\n }\n\n /** @internal */\n protected onChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.checked.set(target.checked);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport type { Signal, WritableSignal } from '@angular/core';\n\n/** @internal — shape required by LlmRadioGroup's FocusKeyManager */\nexport interface RadioItem {\n focusInput(): void;\n isDisabled(): boolean;\n readonly radioValue: Signal<string>;\n}\n\nexport interface LlmRadioGroupContext {\n readonly value: WritableSignal<string>;\n readonly name: Signal<string>;\n readonly disabled: Signal<boolean>;\n select(v: string): void;\n markTouched(): void;\n registerItem(item: RadioItem): void;\n unregisterItem(item: RadioItem): void;\n}\n\nexport const LLM_RADIO_GROUP = new InjectionToken<LlmRadioGroupContext>('LLM_RADIO_GROUP');\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { LLM_RADIO_GROUP, type RadioItem } from '../radio-group/llm-radio-group.token';\n\nlet nextId = 0;\n\n/**\n * Individual radio button. Must be placed inside an `llm-radio-group`.\n *\n * Usage:\n * ```html\n * <llm-radio-group [(value)]=\"selected\" name=\"plan\">\n * <llm-radio radioValue=\"free\">Free</llm-radio>\n * <llm-radio radioValue=\"pro\">Pro</llm-radio>\n * </llm-radio-group>\n * ```\n */\n@Component({\n selector: 'llm-radio',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <label [attr.for]=\"inputId\">\n <input\n type=\"radio\"\n [id]=\"inputId\"\n [value]=\"radioValue()\"\n [checked]=\"isChecked()\"\n [disabled]=\"isDisabled()\"\n [attr.name]=\"effectiveName() || null\"\n (change)=\"onChange()\"\n (blur)=\"onBlur()\"\n />\n <ng-content />\n </label>\n `,\n styleUrl: './llm-radio.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmRadio implements RadioItem, OnInit, OnDestroy {\n /** The value this radio option represents within the group. */\n readonly radioValue = input.required<string>();\n\n /** Whether this specific radio is individually disabled (stacked with group disabled). */\n readonly disabled = input(false);\n\n /** @internal */\n private readonly group = inject(LLM_RADIO_GROUP, { optional: true });\n\n /** @internal */\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @internal */\n protected readonly inputId = `llm-radio-${nextId++}`;\n\n /** @internal */\n protected readonly isChecked = computed(() => this.group?.value() === this.radioValue());\n\n /** @internal */\n readonly isDisabled = computed(() => this.disabled() || (this.group?.disabled() ?? false));\n\n /** @internal */\n protected readonly effectiveName = computed(() => this.group?.name() ?? '');\n\n /** @internal */\n protected readonly hostClasses = computed(() => {\n const classes: string[] = [];\n if (this.isChecked()) classes.push('is-checked');\n if (this.isDisabled()) classes.push('is-disabled');\n return classes.join(' ');\n });\n\n /** @internal — for FocusKeyManager */\n focusInput(): void {\n this.el.nativeElement.querySelector<HTMLInputElement>('input')?.focus();\n }\n\n ngOnInit(): void {\n this.group?.registerItem(this);\n }\n\n ngOnDestroy(): void {\n this.group?.unregisterItem(this);\n }\n\n /** @internal */\n protected onChange(): void {\n this.group?.select(this.radioValue());\n }\n\n /** @internal */\n protected onBlur(): void {\n this.group?.markTouched();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\nimport { LLM_RADIO_GROUP, type LlmRadioGroupContext, type RadioItem } from './llm-radio-group.token';\n\nlet nextId = 0;\n\n/**\n * Container for a group of radio buttons. Manages keyboard navigation, shared name,\n * and Signal Forms integration.\n *\n * Usage:\n * ```html\n * <llm-radio-group [(value)]=\"size\" name=\"size\">\n * <llm-radio radioValue=\"sm\">Small</llm-radio>\n * <llm-radio radioValue=\"md\">Medium</llm-radio>\n * <llm-radio radioValue=\"lg\">Large</llm-radio>\n * </llm-radio-group>\n *\n * <!-- With Signal Forms -->\n * <llm-radio-group [formField]=\"form.size\">\n * <llm-radio radioValue=\"sm\">Small</llm-radio>\n * </llm-radio-group>\n * ```\n */\n@Component({\n selector: 'llm-radio-group',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content />\n @if (showErrors()) {\n <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n @for (error of errors(); track error.kind) {\n <p class=\"error-message\">{{ error.message }}</p>\n }\n </div>\n }\n `,\n styleUrl: './llm-radio-group.css',\n host: {\n role: 'radiogroup',\n '[class]': 'hostClasses()',\n '[attr.aria-invalid]': 'invalid() || null',\n '[attr.aria-required]': 'required() || null',\n '[attr.aria-describedby]': 'showErrors() ? errorId : null',\n '(keydown)': 'onKeydown($event)',\n },\n providers: [{ provide: LLM_RADIO_GROUP, useExisting: LlmRadioGroup }],\n})\nexport class LlmRadioGroup implements FormValueControl<string>, LlmRadioGroupContext {\n /** The selected value. Bound by [formField] directive. Supports [(value)] two-way binding. */\n readonly value = model('');\n\n /** Whether the user has interacted. Bound by [formField] directive. */\n readonly touched = model(false);\n\n /** Whether the group is disabled. Bound by [formField] directive. */\n readonly disabled = input(false);\n\n /** Whether the group has validation errors. Bound by [formField] directive. */\n readonly invalid = input(false);\n\n /** Whether the group is required. Bound by [formField] directive. */\n readonly required = input(false);\n\n /** Shared name attribute propagated to all child radio inputs. Bound by [formField] directive. */\n readonly name = input('');\n\n /** Validation errors from the form system. Bound by [formField] directive. */\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n /** @internal */\n protected readonly errorId = `llm-radio-group-errors-${nextId++}`;\n\n /** @internal */\n private readonly items = signal<RadioItem[]>([]);\n\n /** @internal */\n protected readonly showErrors = computed(\n () => this.touched() && this.invalid() && this.errors().length > 0\n );\n\n /** @internal */\n protected readonly hostClasses = computed(() => {\n const classes: string[] = [];\n if (this.disabled()) classes.push('is-disabled');\n if (this.invalid()) classes.push('is-invalid');\n if (this.touched()) classes.push('is-touched');\n return classes.join(' ');\n });\n\n /** @internal — called by LlmRadio on change */\n select(v: string): void {\n if (!this.disabled()) {\n this.value.set(v);\n }\n }\n\n /** @internal — called by LlmRadio on blur */\n markTouched(): void {\n this.touched.set(true);\n }\n\n /** @internal — called by LlmRadio on init */\n registerItem(item: RadioItem): void {\n this.items.update((list) => [...list, item]);\n }\n\n /** @internal — called by LlmRadio on destroy */\n unregisterItem(item: RadioItem): void {\n this.items.update((list) => list.filter((i) => i !== item));\n }\n\n /** @internal */\n protected onKeydown(event: KeyboardEvent): void {\n const key = event.key;\n if (key !== 'ArrowDown' && key !== 'ArrowRight' && key !== 'ArrowUp' && key !== 'ArrowLeft') return;\n\n event.preventDefault();\n const radioItems = this.items();\n const enabled = radioItems.filter((item) => !item.isDisabled());\n if (enabled.length === 0) return;\n\n const currentPos = enabled.findIndex((i) => i.radioValue() === this.value());\n const isNext = key === 'ArrowDown' || key === 'ArrowRight';\n const n = enabled.length;\n const nextPos = isNext\n ? (currentPos + 1) % n\n : (currentPos - 1 + n) % n;\n\n const target = enabled[nextPos];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions\n if (target) {\n target.focusInput();\n this.value.set(target.radioValue());\n this.touched.set(true);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\n\nlet nextId = 0;\n\n/**\n * Accessible toggle (switch) component for use with Angular Signal Forms.\n * Presents as a pill-shaped on/off slider instead of a checkbox box,\n * but has identical boolean semantics and implements FormCheckboxControl.\n *\n * Usage:\n * ```html\n * <llm-toggle [(checked)]=\"enabled\">Enable notifications</llm-toggle>\n * <llm-toggle [formField]=\"form.enabled\">Enable</llm-toggle>\n * ```\n */\n@Component({\n selector: 'llm-toggle',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <label [attr.for]=\"inputId\">\n <input\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"inputId\"\n [checked]=\"checked()\"\n (change)=\"onChange($event)\"\n (blur)=\"touched.set(true)\"\n [disabled]=\"disabled()\"\n [attr.name]=\"name() || null\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-describedby]=\"showErrors() ? errorId : null\"\n />\n <span class=\"track\" aria-hidden=\"true\">\n <span class=\"thumb\"></span>\n </span>\n <ng-content />\n </label>\n @if (showErrors()) {\n <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n @for (error of errors(); track error.kind) {\n <p class=\"error-message\">{{ error.message }}</p>\n }\n </div>\n }\n `,\n styleUrl: './llm-toggle.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmToggle implements FormCheckboxControl {\n /** The checked state. Bound by [formField] directive. Supports [(checked)] two-way binding. */\n readonly checked = model(false);\n\n /** Whether the user has interacted with the input. Bound by [formField] directive. */\n readonly touched = model(false);\n\n /** Whether the toggle is disabled. Bound by [formField] directive. */\n readonly disabled = input(false);\n\n /** Whether the toggle has validation errors. Bound by [formField] directive. */\n readonly invalid = input(false);\n\n /** Whether the toggle is required. Bound by [formField] directive. */\n readonly required = input(false);\n\n /** The input's name attribute. Bound by [formField] directive. */\n readonly name = input('');\n\n /** Validation errors from the form system. Bound by [formField] directive. */\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n /** @internal */\n protected readonly inputId = `llm-toggle-${nextId++}`;\n\n /** @internal */\n protected readonly errorId = `llm-toggle-errors-${nextId++}`;\n\n /** @internal */\n protected readonly showErrors = computed(\n () => this.touched() && this.invalid() && this.errors().length > 0\n );\n\n /** @internal */\n protected readonly hostClasses = computed(() => {\n const classes: string[] = [];\n if (this.checked()) classes.push('is-checked');\n if (this.disabled()) classes.push('is-disabled');\n if (this.invalid()) classes.push('is-invalid');\n if (this.touched()) classes.push('is-touched');\n return classes.join(' ');\n });\n\n /** @internal */\n protected onChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.checked.set(target.checked);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n output,\n} from '@angular/core';\n\n/**\n * Inline notification banner with semantic color variants and optional dismiss button.\n *\n * Usage:\n * ```html\n * <llm-alert variant=\"success\">Your changes were saved.</llm-alert>\n * <llm-alert variant=\"warning\" [dismissible]=\"true\" (dismissed)=\"onDismiss()\">\n * Your session expires soon.\n * </llm-alert>\n * ```\n */\n@Component({\n selector: 'llm-alert',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <span class=\"content\"><ng-content /></span>\n @if (isDismissible) {\n <button class=\"dismiss\" type=\"button\" aria-label=\"Dismiss\" (click)=\"dismiss()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n }\n `,\n styleUrl: './llm-alert.css',\n host: {\n '[class]': 'hostClassesValue',\n role: 'alert',\n '[attr.aria-live]': 'ariaLive',\n },\n})\nexport class LlmAlert {\n /** Semantic color variant of the alert. */\n readonly variant = input<'info' | 'success' | 'warning' | 'danger'>('info');\n\n /** Whether to show a dismiss button. */\n readonly dismissible = input(false);\n\n /** Emitted when the dismiss button is clicked. */\n readonly dismissed = output<void>();\n\n protected readonly hostClasses = computed(() => `variant-${this.variant()}`);\n\n /** @internal */\n get isDismissible(): boolean {\n return this.dismissible();\n }\n\n /** @internal */\n get hostClassesValue(): string {\n return this.hostClasses();\n }\n\n /** @internal */\n get ariaLive(): string {\n return this.variant() === 'danger' ? 'assertive' : 'polite';\n }\n\n protected dismiss(): void {\n this.dismissed.emit();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport type { Signal, WritableSignal } from '@angular/core';\n\nexport interface LlmSelectContext {\n readonly value: WritableSignal<string>;\n readonly disabled: Signal<boolean>;\n readonly activeOptionId: WritableSignal<string | null>;\n select(v: string): void;\n markTouched(): void;\n registerOption(id: string, value: string, labelText: string, disabled: boolean): void;\n unregisterOption(id: string): void;\n}\n\nexport const LLM_SELECT = new InjectionToken<LlmSelectContext>('LLM_SELECT');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { type ValidationError, type WithOptionalFieldTree } from '@angular/forms/signals';\nimport { LLM_SELECT, type LlmSelectContext } from './llm-select.token';\n\n/** @internal — Wrapper item for ActiveDescendantKeyManager integration. */\nclass SelectOptionItem implements Highlightable {\n disabled: boolean;\n\n constructor(\n readonly id: string,\n readonly value: string,\n readonly labelText: string,\n disabled: boolean,\n private readonly activeOptionId: import('@angular/core').WritableSignal<string | null>,\n ) {\n this.disabled = disabled;\n }\n\n getLabel(): string {\n return this.labelText;\n }\n\n setActiveStyles(): void {\n this.activeOptionId.set(this.id);\n }\n\n setInactiveStyles(): void {\n // Handled by key manager — no-op here\n }\n}\n\nlet nextId = 0;\n\n/**\n * Accessible dropdown select component for use with Angular Signal Forms.\n * Uses the native Popover API for the panel overlay.\n *\n * Usage:\n * ```html\n * <llm-select [(value)]=\"country\" placeholder=\"Select a country\">\n * <llm-option optionValue=\"us\">United States</llm-option>\n * <llm-option optionValue=\"ca\">Canada</llm-option>\n * </llm-select>\n *\n * <!-- With Signal Forms -->\n * <llm-select [formField]=\"form.country\" placeholder=\"Select a country\">\n * <llm-option optionValue=\"us\">United States</llm-option>\n * </llm-select>\n * ```\n */\n@Component({\n selector: 'llm-select',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <button\n type=\"button\"\n class=\"trigger\"\n [id]=\"triggerId\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"listbox\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-activedescendant]=\"activeOptionId()\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.disabled]=\"disabled() || null\"\n (click)=\"onTriggerClick()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"trigger-text\">{{ selectedLabel() || placeholder() }}</span>\n <span class=\"trigger-icon\" aria-hidden=\"true\">▾</span>\n </button>\n\n <div\n #panel\n [id]=\"panelId\"\n popover=\"manual\"\n role=\"listbox\"\n class=\"panel\"\n [attr.aria-labelledby]=\"triggerId\"\n (toggle)=\"onPanelToggle($event)\"\n >\n <ng-content />\n </div>\n\n @if (showErrors()) {\n <div class=\"errors\" [id]=\"errorId\" aria-live=\"polite\">\n @for (error of errors(); track error.kind) {\n <p class=\"error-message\">{{ error.message }}</p>\n }\n </div>\n }\n `,\n styleUrl: './llm-select.css',\n host: {\n role: 'combobox',\n '[class]': 'hostClasses()',\n '(keydown)': 'onKeydown($event)',\n },\n providers: [{ provide: LLM_SELECT, useExisting: LlmSelect }],\n})\nexport class LlmSelect implements FormValueControl<string>, LlmSelectContext {\n /** The selected value. Bound by [formField] directive. Supports [(value)] two-way binding. */\n readonly value = model('');\n\n /** Whether the user has interacted. Bound by [formField] directive. */\n readonly touched = model(false);\n\n /** Placeholder text shown when no option is selected. */\n readonly placeholder = input('');\n\n /** Whether the select is disabled. Bound by [formField] directive. */\n readonly disabled = input(false);\n\n /** Whether the select has validation errors. Bound by [formField] directive. */\n readonly invalid = input(false);\n\n /** Whether the select is required. Bound by [formField] directive. */\n readonly required = input(false);\n\n /** The input's name attribute. Bound by [formField] directive. */\n readonly name = input('');\n\n /** Validation errors from the form system. Bound by [formField] directive. */\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n\n /** @internal */\n readonly activeOptionId = signal<string | null>(null);\n\n /** @internal */\n protected readonly isOpen = signal(false);\n\n /** @internal */\n protected readonly optionsList = signal<\n { id: string; value: string; labelText: string; disabled: boolean }[]\n >([]);\n\n /** @internal */\n protected readonly panelRef = viewChild<ElementRef<HTMLElement>>('panel');\n\n /** @internal */\n protected readonly triggerId = `llm-select-trigger-${nextId}`;\n\n /** @internal */\n protected readonly panelId = `llm-select-panel-${nextId}`;\n\n /** @internal */\n protected readonly errorId = `llm-select-errors-${nextId++}`;\n\n /** @internal */\n protected readonly selectedLabel = computed(\n () => this.optionsList().find((o) => o.value === this.value())?.labelText ?? ''\n );\n\n /** @internal */\n protected readonly showErrors = computed(\n () => this.touched() && this.invalid() && this.errors().length > 0\n );\n\n /** @internal */\n protected readonly hostClasses = computed(() => {\n const classes: string[] = [];\n if (this.isOpen()) classes.push('is-open');\n if (this.disabled()) classes.push('is-disabled');\n if (this.invalid()) classes.push('is-invalid');\n if (this.touched()) classes.push('is-touched');\n return classes.join(' ');\n });\n\n /** @internal */\n private keyManager: ActiveDescendantKeyManager<SelectOptionItem> | null = null;\n\n private outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @internal — called by LlmOption on init */\n registerOption(id: string, value: string, labelText: string, disabled: boolean): void {\n this.optionsList.update((list) => [...list, { id, value, labelText, disabled }]);\n }\n\n /** @internal — called by LlmOption on destroy */\n unregisterOption(id: string): void {\n this.optionsList.update((list) => list.filter((o) => o.id !== id));\n }\n\n /** @internal — called by LlmOption on select */\n select(v: string): void {\n if (!this.disabled()) {\n this.value.set(v);\n this.close();\n }\n }\n\n /** @internal — called by LlmOption on interaction */\n markTouched(): void {\n this.touched.set(true);\n }\n\n /** @internal */\n protected onTriggerClick(): void {\n if (this.disabled()) return;\n if (this.isOpen()) { this.close(); } else { this.open(); }\n }\n\n /** @internal */\n protected onTriggerBlur(): void {\n if (!this.isOpen()) {\n this.touched.set(true);\n }\n }\n\n /** @internal */\n protected onPanelToggle(event: Event): void {\n const toggleEvent = event as ToggleEvent;\n if (toggleEvent.newState === 'closed') {\n this.isOpen.set(false);\n this.activeOptionId.set(null);\n }\n }\n\n /** @internal */\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n\n switch (event.key) {\n case 'Enter':\n case ' ': {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n } else {\n const activeItem = this.keyManager?.activeItem as SelectOptionItem | null | undefined;\n if (activeItem) {\n this.select(activeItem.value);\n }\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n this.close();\n break;\n }\n default: {\n const isNav = ['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key);\n const isTypeahead = event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;\n if ((isNav || isTypeahead) && !this.isOpen()) {\n this.open();\n if (isNav) return; // open() already sets active item\n }\n this.keyManager?.onKeydown(event);\n }\n }\n }\n\n private open(): void {\n const panel = this.panelRef();\n if (!panel) return;\n (panel.nativeElement as HTMLElement & { showPopover(): void }).showPopover();\n this.isOpen.set(true);\n\n // (Re)create key manager with current options\n const items = this.optionsList().map(\n (o) => new SelectOptionItem(o.id, o.value, o.labelText, o.disabled, this.activeOptionId),\n );\n this.keyManager = new ActiveDescendantKeyManager(items)\n .withWrap()\n .withTypeAhead(500)\n .withHomeAndEnd()\n .withVerticalOrientation();\n\n // Set active option to currently selected or first enabled\n const selectedIdx = items.findIndex((i) => i.value === this.value() && !i.disabled);\n const firstEnabledIdx = items.findIndex((i) => !i.disabled);\n const activeIdx = selectedIdx >= 0 ? selectedIdx : firstEnabledIdx;\n if (activeIdx >= 0) {\n this.keyManager.setActiveItem(activeIdx);\n }\n\n // Outside click listener\n this.outsideClickHandler = (e: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(e.target as Node)) {\n this.close();\n }\n };\n document.addEventListener('click', this.outsideClickHandler);\n }\n\n private close(): void {\n const panel = this.panelRef();\n if (!panel) return;\n try {\n (panel.nativeElement as HTMLElement & { hidePopover(): void }).hidePopover();\n } catch {\n // Panel may already be hidden\n }\n this.isOpen.set(false);\n this.activeOptionId.set(null);\n this.keyManager = null;\n\n if (this.outsideClickHandler) {\n document.removeEventListener('click', this.outsideClickHandler);\n this.outsideClickHandler = null;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { LLM_SELECT } from './llm-select.token';\n\nlet nextOptionId = 0;\n\n/**\n * Option item for use inside `<llm-select>`.\n *\n * Usage:\n * ```html\n * <llm-option optionValue=\"us\">United States</llm-option>\n * ```\n */\n@Component({\n selector: 'llm-option',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n <div\n role=\"option\"\n [attr.id]=\"optionId\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-disabled]=\"disabled() || null\"\n [class.is-selected]=\"isSelected()\"\n [class.is-active]=\"isActive()\"\n [class.is-disabled]=\"disabled()\"\n (click)=\"onClick()\"\n (mouseenter)=\"onMouseEnter()\"\n >\n <ng-content />\n </div>\n `,\n})\nexport class LlmOption implements OnInit, OnDestroy {\n /** The value this option represents. Required. */\n readonly optionValue = input.required<string>();\n\n /** Whether this option is disabled. */\n readonly disabled = input(false);\n\n /** @internal */\n protected readonly optionId = `llm-option-${nextOptionId++}`;\n\n /** @internal */\n private readonly context = inject(LLM_SELECT);\n\n /** @internal */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @internal */\n protected readonly isSelected = computed(() => this.context.value() === this.optionValue());\n\n /** @internal */\n protected readonly isActive = computed(() => this.context.activeOptionId() === this.optionId);\n\n ngOnInit(): void {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const labelText = (this.elementRef.nativeElement.textContent ?? '').trim();\n this.context.registerOption(this.optionId, this.optionValue(), labelText, this.disabled());\n }\n\n ngOnDestroy(): void {\n this.context.unregisterOption(this.optionId);\n }\n\n /** @internal */\n protected onClick(): void {\n if (this.disabled()) return;\n this.context.select(this.optionValue());\n this.context.markTouched();\n }\n\n /** @internal */\n protected onMouseEnter(): void {\n if (!this.disabled()) {\n this.context.activeOptionId.set(this.optionId);\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface LlmDialogContext {\n headerId: string;\n close: () => void;\n}\n\nexport const LLM_DIALOG = new InjectionToken<LlmDialogContext>('LLM_DIALOG');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n effect,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { LLM_DIALOG } from './llm-dialog.token';\n\nlet nextId = 0;\n\n/**\n * Accessible modal dialog using the native `<dialog>` element.\n * Includes focus trap, Escape to close, backdrop click to close, and animation.\n * Compose with `llm-dialog-header`, `llm-dialog-content`, and `llm-dialog-footer`.\n *\n * Usage:\n * ```html\n * <llm-dialog [(open)]=\"isOpen\">\n * <llm-dialog-header>Dialog Title</llm-dialog-header>\n * <llm-dialog-content>Dialog body content.</llm-dialog-content>\n * <llm-dialog-footer>\n * <llm-button variant=\"primary\" (click)=\"isOpen = false\">Confirm</llm-button>\n * </llm-dialog-footer>\n * </llm-dialog>\n * ```\n */\n@Component({\n selector: 'llm-dialog',\n standalone: true,\n imports: [A11yModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: LLM_DIALOG,\n useFactory: (dialog: LlmDialog) => ({\n headerId: dialog.headerId,\n close: () => dialog.open.set(false),\n }),\n deps: [LlmDialog],\n },\n ],\n template: `\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n <dialog\n #dialogEl\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabel() ? null : (ariaLabelledby() || headerId)\"\n aria-modal=\"true\"\n [cdkTrapFocus]=\"open()\"\n (cancel)=\"onCancel($event)\"\n (click)=\"onBackdropClick($event)\"\n >\n <div [class]=\"panelClass()\">\n <ng-content />\n </div>\n </dialog>\n `,\n styleUrl: './llm-dialog.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmDialog {\n /** Whether the dialog is open. Supports two-way binding: [(open)]=\"isOpen\". */\n readonly open = model(false);\n\n /** Whether clicking the backdrop closes the dialog. */\n readonly closeOnBackdrop = input(true);\n\n /** Size of the dialog panel. */\n readonly size = input<'sm' | 'md' | 'lg' | 'xl' | 'full'>('md');\n\n /** Accessible label for the dialog (use instead of aria-labelledby when no header is present). */\n readonly ariaLabel = input('', { alias: 'aria-label' });\n\n /** ID of the element that labels the dialog (defaults to the llm-dialog-header id). */\n readonly ariaLabelledby = input('', { alias: 'aria-labelledby' });\n\n /** @internal — referenced by LlmDialogHeader via LLM_DIALOG token */\n readonly headerId = `llm-dialog-header-${nextId}`;\n\n protected readonly dialogId = `llm-dialog-${nextId++}`;\n protected readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dialogEl');\n private readonly triggerEl = signal<HTMLElement | null>(null);\n\n protected readonly panelClass = computed(() => `panel size-${this.size()}`);\n protected readonly hostClasses = computed(() => (this.open() ? 'is-open' : ''));\n\n constructor() {\n effect(() => {\n const dialog = this.dialogRef()?.nativeElement;\n if (!dialog) return;\n if (this.open()) {\n this.triggerEl.set(document.activeElement as HTMLElement);\n dialog.showModal();\n } else {\n if (dialog.open) dialog.close();\n this.triggerEl()?.focus();\n this.triggerEl.set(null);\n }\n });\n }\n\n protected onCancel(event: Event): void {\n event.preventDefault();\n this.open.set(false);\n }\n\n protected onBackdropClick(event: MouseEvent): void {\n if (this.closeOnBackdrop() && event.target === this.dialogRef()?.nativeElement) {\n this.open.set(false);\n }\n }\n\n}\n\n/**\n * Header slot for `llm-dialog`. Renders above content with a bottom separator.\n * Automatically receives the correct `id` for `aria-labelledby` association.\n */\n@Component({\n selector: 'llm-dialog-header',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content />\n <button\n class=\"close-btn\"\n type=\"button\"\n aria-label=\"Close dialog\"\n (click)=\"context.close()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n `,\n styleUrl: './llm-dialog.css',\n host: {\n '[attr.id]': 'context.headerId',\n },\n})\nexport class LlmDialogHeader {\n protected readonly context = inject(LLM_DIALOG);\n}\n\n/**\n * Content slot for `llm-dialog`. Scrollable primary content area.\n */\n@Component({\n selector: 'llm-dialog-content',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-dialog.css',\n})\nexport class LlmDialogContent {}\n\n/**\n * Footer slot for `llm-dialog`. Renders below content, typically holds action buttons.\n */\n@Component({\n selector: 'llm-dialog-footer',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-dialog.css',\n})\nexport class LlmDialogFooter {}\n","import { InjectionToken } from '@angular/core';\nimport type { Signal, WritableSignal } from '@angular/core';\n\nexport interface TabInfo {\n id: string;\n label: string;\n disabled: boolean;\n panelId: string;\n tabId: string;\n}\n\nexport interface LlmTabGroupContext {\n readonly selectedIndex: WritableSignal<number>;\n readonly tabs: Signal<TabInfo[]>;\n registerTab(info: TabInfo): void;\n unregisterTab(id: string): void;\n}\n\nexport const LLM_TAB_GROUP = new InjectionToken<LlmTabGroupContext>('LLM_TAB_GROUP');\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { LLM_TAB_GROUP, type LlmTabGroupContext, type TabInfo } from './llm-tabs.token';\n\nlet nextId = 0;\n\n/**\n * Accessible tabbed interface container. Renders a tab list and manages\n * keyboard navigation with roving tabindex.\n *\n * Usage:\n * ```html\n * <llm-tab-group [(selectedIndex)]=\"activeTab\">\n * <llm-tab label=\"Account\">Account settings here.</llm-tab>\n * <llm-tab label=\"Notifications\">Notification prefs here.</llm-tab>\n * <llm-tab label=\"Billing\" [disabled]=\"true\">Billing info here.</llm-tab>\n * </llm-tab-group>\n * ```\n */\n@Component({\n selector: 'llm-tab-group',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"tablist\" role=\"tablist\">\n @for (tab of tabs(); track tab.id; let i = $index) {\n <button\n type=\"button\"\n role=\"tab\"\n [id]=\"tab.tabId\"\n [attr.aria-selected]=\"selectedIndex() === i\"\n [attr.aria-controls]=\"tab.panelId\"\n [attr.aria-disabled]=\"tab.disabled || null\"\n [attr.tabindex]=\"selectedIndex() === i ? 0 : -1\"\n [class.is-active]=\"selectedIndex() === i\"\n [class.is-disabled]=\"tab.disabled\"\n (click)=\"selectTab(i)\"\n (keydown)=\"onTabKeydown($event)\"\n >\n {{ tab.label }}\n </button>\n }\n </div>\n <ng-content />\n `,\n styleUrl: './llm-tabs.css',\n host: {\n '[class]': 'hostClasses()',\n },\n providers: [{ provide: LLM_TAB_GROUP, useExisting: LlmTabGroup }],\n})\nexport class LlmTabGroup implements LlmTabGroupContext {\n /** Index of the currently active tab. Supports two-way binding. */\n readonly selectedIndex = model(0);\n\n /** Visual variant. */\n readonly variant = input<'default' | 'pills'>('default');\n\n /** @internal */\n readonly tabs = signal<TabInfo[]>([]);\n\n /** @internal */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @internal */\n protected readonly hostClasses = computed(() => `variant-${this.variant()}`);\n\n /** @internal — called by LlmTab on init */\n registerTab(info: TabInfo): void {\n this.tabs.update((list) => [...list, info]);\n }\n\n /** @internal — called by LlmTab on destroy */\n unregisterTab(id: string): void {\n this.tabs.update((list) => list.filter((t) => t.id !== id));\n }\n\n /** @internal */\n protected selectTab(index: number): void {\n const tab = this.tabs()[index];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions\n if (tab && !tab.disabled) {\n this.selectedIndex.set(index);\n }\n }\n\n /** @internal */\n protected onTabKeydown(event: KeyboardEvent): void {\n const tabs = this.tabs();\n const enabled = tabs.map((tab, i) => ({ tab, i })).filter(({ tab }) => !tab.disabled);\n if (enabled.length === 0) return;\n\n const currentPos = enabled.findIndex(({ i }) => i === this.selectedIndex());\n const n = enabled.length;\n let targetEntry: { tab: TabInfo; i: number } | null = null;\n\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n targetEntry = enabled[(currentPos + 1) % n];\n break;\n case 'ArrowLeft':\n event.preventDefault();\n targetEntry = enabled[(currentPos - 1 + n) % n];\n break;\n case 'Home':\n event.preventDefault();\n targetEntry = enabled[0];\n break;\n case 'End':\n event.preventDefault();\n targetEntry = enabled[n - 1];\n break;\n }\n\n if (targetEntry) {\n this.selectedIndex.set(targetEntry.i);\n const buttons = this.elementRef.nativeElement.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]');\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n buttons[targetEntry.i]?.focus();\n }\n }\n}\n\n/**\n * Individual tab definition. Place inside `<llm-tab-group>`.\n *\n * Usage:\n * ```html\n * <llm-tab label=\"Settings\">Settings content here.</llm-tab>\n * ```\n */\n@Component({\n selector: 'llm-tab',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (isActive()) {\n <div\n role=\"tabpanel\"\n [id]=\"panelId\"\n [attr.aria-labelledby]=\"tabId\"\n [tabindex]=\"0\"\n >\n <ng-content />\n </div>\n }\n `,\n styles: `\n :host {\n display: contents;\n }\n `,\n})\nexport class LlmTab implements OnInit, OnDestroy {\n /** Text displayed on the tab button. Required. */\n readonly label = input.required<string>();\n\n /** Whether this tab is disabled. */\n readonly disabled = input(false);\n\n /** @internal */\n readonly tabId = `llm-tab-${nextId}`;\n\n /** @internal */\n readonly panelId = `llm-tab-panel-${nextId}`;\n\n /** @internal */\n private readonly id = `llm-tab-instance-${nextId++}`;\n\n /** @internal */\n private readonly context = inject(LLM_TAB_GROUP);\n\n /** @internal */\n protected readonly isActive = computed(() => {\n const index = this.context.tabs().findIndex((t) => t.id === this.id);\n return this.context.selectedIndex() === index;\n });\n\n ngOnInit(): void {\n this.context.registerTab({\n id: this.id,\n label: this.label(),\n disabled: this.disabled(),\n panelId: this.panelId,\n tabId: this.tabId,\n });\n }\n\n ngOnDestroy(): void {\n this.context.unregisterTab(this.id);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n/** @internal — shape required by LlmAccordionGroup's FocusKeyManager */\nexport interface AccordionItem {\n readonly id: string;\n focusTrigger(): void;\n isItemDisabled(): boolean;\n}\n\nexport interface LlmAccordionGroupContext {\n register(item: AccordionItem): void;\n unregister(item: AccordionItem): void;\n handleKeydown(event: KeyboardEvent, item: AccordionItem): void;\n}\n\nexport const LLM_ACCORDION_GROUP = new InjectionToken<LlmAccordionGroupContext>('LLM_ACCORDION_GROUP');\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { CdkAccordion, CdkAccordionItem } from '@angular/cdk/accordion';\nimport { LLM_ACCORDION_GROUP, type AccordionItem, type LlmAccordionGroupContext } from './llm-accordion.token';\n\nlet nextId = 0;\n\n/**\n * Container that manages accordion items. Controls single vs multi expansion\n * and provides keyboard navigation across items.\n *\n * Usage:\n * ```html\n * <llm-accordion-group [multi]=\"true\" variant=\"separated\">\n * <llm-accordion-item [(expanded)]=\"open\">\n * <span llmAccordionHeader>Title</span>\n * Body content here.\n * </llm-accordion-item>\n * </llm-accordion-group>\n * ```\n */\n@Component({\n selector: 'llm-accordion-group',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-accordion.css',\n hostDirectives: [{ directive: CdkAccordion, inputs: ['multi'] }],\n host: {\n '[class]': 'hostClassesValue',\n role: 'presentation',\n },\n providers: [{ provide: LLM_ACCORDION_GROUP, useExisting: LlmAccordionGroup }],\n})\nexport class LlmAccordionGroup implements LlmAccordionGroupContext {\n /** Allow multiple items to be expanded simultaneously. */\n readonly multi = input(false);\n\n /** Visual variant. */\n readonly variant = input<'default' | 'bordered' | 'separated'>('default');\n\n /** @internal */\n protected readonly hostClasses = computed(() => `variant-${this.variant()}`);\n\n /** @internal */\n get hostClassesValue(): string {\n return this.hostClasses();\n }\n\n /** @internal */\n private readonly items = signal<AccordionItem[]>([]);\n\n register(item: AccordionItem): void {\n this.items.update((list) => [...list, item]);\n }\n\n unregister(item: AccordionItem): void {\n this.items.update((list) => list.filter((i) => i !== item));\n }\n\n handleKeydown(event: KeyboardEvent, item: AccordionItem): void {\n const allItems = this.items();\n const enabled = allItems.filter((i) => !i.isItemDisabled());\n if (enabled.length === 0) return;\n\n const pos = enabled.indexOf(item);\n const n = enabled.length;\n let target: AccordionItem | null = null;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n target = enabled[(pos + 1) % n];\n break;\n case 'ArrowUp':\n event.preventDefault();\n target = enabled[(pos - 1 + n) % n];\n break;\n case 'Home':\n event.preventDefault();\n target = enabled[0];\n break;\n case 'End':\n event.preventDefault();\n target = enabled[n - 1];\n break;\n }\n\n target?.focusTrigger();\n }\n}\n\n/**\n * Directive to mark the accordion header content.\n */\n@Directive({\n selector: '[llmAccordionHeader]',\n standalone: true,\n})\nexport class LlmAccordionHeader {}\n\n/**\n * Individual collapsible accordion item. Place inside `<llm-accordion-group>`.\n *\n * Usage:\n * ```html\n * <llm-accordion-item [(expanded)]=\"isOpen\">\n * <span llmAccordionHeader>Section Title</span>\n * Section content goes here.\n * </llm-accordion-item>\n * ```\n */\n@Component({\n selector: 'llm-accordion-item',\n standalone: true,\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkAccordionItem],\n template: `\n <h3 class=\"accordion-heading\">\n <button\n type=\"button\"\n class=\"accordion-trigger\"\n [id]=\"triggerId\"\n [attr.aria-expanded]=\"isExpandedValue\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [class.is-disabled]=\"isDisabled\"\n (click)=\"onToggle()\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-content select=\"[llmAccordionHeader]\" />\n <svg\n class=\"chevron\"\n [class.is-expanded]=\"isExpandedValue\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M4 6L8 10L12 6\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n </h3>\n <div\n class=\"accordion-panel-wrapper\"\n [class.is-expanded]=\"isExpandedValue\"\n >\n <div\n role=\"region\"\n [id]=\"panelId\"\n [attr.aria-labelledby]=\"triggerId\"\n class=\"accordion-panel\"\n >\n <ng-content />\n </div>\n </div>\n `,\n styleUrl: './llm-accordion.css',\n host: {\n '[attr.data-accordion-id]': 'id',\n },\n})\nexport class LlmAccordionItem implements AccordionItem, OnInit, OnDestroy {\n /** Whether this item is expanded. Supports two-way binding. */\n readonly expanded = model(false);\n\n /** Whether this item is disabled. */\n readonly disabled = input(false);\n\n /** @internal */\n readonly id = `llm-accordion-item-${nextId++}`;\n\n /** @internal */\n readonly triggerId = `${this.id}-trigger`;\n\n /** @internal */\n readonly panelId = `${this.id}-panel`;\n\n /** @internal */\n private readonly group = inject(LlmAccordionGroup);\n\n /** @internal */\n private readonly cdkItem = inject(CdkAccordionItem);\n\n /** @internal */\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @internal */\n protected readonly isExpanded = signal(false);\n\n /** @internal */\n get isExpandedValue(): boolean {\n return this.isExpanded();\n }\n\n /** @internal */\n get isDisabled(): boolean {\n return this.disabled();\n }\n\n /** @internal */\n get ariaDisabled(): boolean | null {\n return this.disabled() || null;\n }\n\n constructor() {\n this.cdkItem.expandedChange.subscribe((expanded: boolean) => {\n this.isExpanded.set(expanded);\n this.expanded.set(expanded);\n });\n }\n\n ngOnInit(): void {\n this.group.register(this);\n // Sync initial expanded model\n if (this.expanded()) {\n this.cdkItem.open();\n }\n }\n\n ngOnDestroy(): void {\n this.group.unregister(this);\n }\n\n /** @internal — for FocusKeyManager */\n focusTrigger(): void {\n this.el.nativeElement.querySelector<HTMLButtonElement>('.accordion-trigger')?.focus();\n }\n\n /** @internal — for FocusKeyManager */\n isItemDisabled(): boolean {\n return this.disabled();\n }\n\n /** @internal */\n protected onToggle(): void {\n if (this.disabled()) return;\n this.cdkItem.toggle();\n }\n\n /** @internal */\n protected onKeydown(event: KeyboardEvent): void {\n this.group.handleKeydown(event, this);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\n\n/**\n * Trigger directive that opens an `<llm-menu>` dropdown.\n * Apply to any element (typically `<llm-button>`) to wire up click + keyboard open/close.\n *\n * Usage:\n * ```html\n * <llm-button [llmMenuTriggerFor]=\"myMenu\">Open</llm-button>\n * <ng-template #myMenu>\n * <llm-menu>\n * <llm-menu-item (triggered)=\"action()\">Action</llm-menu-item>\n * </llm-menu>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: '[llmMenuTriggerFor]',\n standalone: true,\n hostDirectives: [\n {\n directive: CdkMenuTrigger,\n inputs: ['cdkMenuTriggerFor: llmMenuTriggerFor'],\n },\n ],\n})\nexport class LlmMenuTrigger {}\n\n/**\n * Accessible dropdown menu panel.\n * Uses `@angular/cdk/menu` for keyboard navigation, focus management, and ARIA.\n *\n * Usage:\n * ```html\n * <llm-button [llmMenuTriggerFor]=\"actions\">Actions</llm-button>\n * <ng-template #actions>\n * <llm-menu>\n * <llm-menu-item (triggered)=\"onCopy()\">Copy</llm-menu-item>\n * <llm-menu-separator />\n * <llm-menu-item [disabled]=\"true\">Paste</llm-menu-item>\n * </llm-menu>\n * </ng-template>\n * ```\n */\n@Component({\n selector: 'llm-menu',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [CdkMenu],\n template: `<ng-content />`,\n styleUrl: './llm-menu.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmMenu {\n /** Visual variant. `compact` reduces font size and padding. */\n readonly variant = input<'default' | 'compact'>('default');\n\n /** @internal */\n protected readonly hostClasses = computed(() => `llm-menu variant-${this.variant()}`);\n}\n\n/**\n * A single item inside an `<llm-menu>`.\n * Supports keyboard navigation, disabled state, and nested submenus via `[llmMenuTriggerFor]`.\n *\n * Usage:\n * ```html\n * <llm-menu-item (triggered)=\"doSomething()\">Label</llm-menu-item>\n * <llm-menu-item [disabled]=\"true\">Disabled</llm-menu-item>\n * ```\n */\n@Component({\n selector: 'llm-menu-item',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItem,\n inputs: ['cdkMenuItemDisabled: disabled'],\n outputs: ['cdkMenuItemTriggered: triggered'],\n },\n ],\n template: `\n <ng-content />\n @if (hasSubmenu()) {\n <span class=\"llm-menu-item-chevron\" aria-hidden=\"true\">›</span>\n }\n `,\n host: {\n class: 'llm-menu-item',\n '[class.is-disabled]': 'disabled()',\n },\n})\nexport class LlmMenuItem {\n /** Whether this menu item is disabled. */\n readonly disabled = input(false);\n\n /** @internal — detect if this item also triggers a submenu */\n private readonly menuTrigger = inject(CdkMenuTrigger, { optional: true, self: true });\n\n /** @internal */\n protected readonly hasSubmenu = computed(() => !!this.menuTrigger);\n}\n\n/**\n * Visual separator between groups of menu items.\n *\n * Usage:\n * ```html\n * <llm-menu-item>Copy</llm-menu-item>\n * <llm-menu-separator />\n * <llm-menu-item>Delete</llm-menu-item>\n * ```\n */\n@Component({\n selector: 'llm-menu-separator',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ``,\n host: {\n class: 'llm-menu-separator',\n role: 'separator',\n },\n})\nexport class LlmMenuSeparator {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n Injector,\n input,\n OnDestroy,\n signal,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n createFlexibleConnectedPositionStrategy,\n createOverlayRef,\n createRepositionScrollStrategy,\n type ConnectedPosition,\n type OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nlet nextTooltipId = 0;\n\n/** @internal — Rendered inside the CDK overlay when the tooltip is visible. */\n@Component({\n selector: 'llm-tooltip-content',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n encapsulation: ViewEncapsulation.None,\n template: `{{ text() }}`,\n styleUrl: './llm-tooltip.css',\n host: {\n class: 'llm-tooltip',\n role: 'tooltip',\n '[id]': 'tooltipId()',\n },\n})\nexport class LlmTooltipContent {\n /** @internal */\n readonly text = input('');\n /** @internal */\n readonly tooltipId = input('');\n}\n\nconst POSITIONS: Record<string, ConnectedPosition[]> = {\n above: [\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -8 },\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 8 },\n ],\n below: [\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 8 },\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -8 },\n ],\n left: [\n { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -8 },\n { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: 8 },\n ],\n right: [\n { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: 8 },\n { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -8 },\n ],\n};\n\n/**\n * Attribute directive that displays a text tooltip on hover or focus.\n * Uses `@angular/cdk/overlay` for viewport-aware positioning.\n *\n * Usage:\n * ```html\n * <llm-button llmTooltip=\"Save your changes\">Save</llm-button>\n * <llm-button llmTooltip=\"Copy to clipboard\" llmTooltipPosition=\"right\">Copy</llm-button>\n * ```\n */\n@Directive({\n selector: '[llmTooltip]',\n standalone: true,\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focusin)': 'show()',\n '(focusout)': 'hide()',\n '(keydown.escape)': 'hide()',\n '[attr.aria-describedby]': 'activeTooltipId()',\n },\n})\nexport class LlmTooltip implements OnDestroy {\n /** The tooltip text. */\n readonly llmTooltip = input.required<string>();\n\n /** Preferred tooltip placement. Falls back to the opposite side if clipped. */\n readonly llmTooltipPosition = input<'above' | 'below' | 'left' | 'right'>('above');\n\n /** Disable the tooltip without removing the directive. */\n readonly llmTooltipDisabled = input(false);\n\n /** Delay in ms before the tooltip appears. */\n readonly llmTooltipShowDelay = input(300);\n\n /** Delay in ms before the tooltip hides. */\n readonly llmTooltipHideDelay = input(0);\n\n private readonly injector = inject(Injector);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private overlayRef: OverlayRef | null = null;\n private showTimer: ReturnType<typeof setTimeout> | null = null;\n private hideTimer: ReturnType<typeof setTimeout> | null = null;\n\n /** @internal — links host aria-describedby to the tooltip element */\n protected readonly activeTooltipId = signal<string | null>(null);\n\n /** @internal */\n protected show(): void {\n if (this.llmTooltipDisabled() || !this.llmTooltip()) return;\n this.clearHideTimer();\n\n if (this.overlayRef?.hasAttached()) return;\n\n this.showTimer = setTimeout(() => {\n this.showTimer = null;\n this.attach();\n }, this.llmTooltipShowDelay());\n }\n\n /** @internal */\n protected hide(): void {\n this.clearShowTimer();\n\n if (!this.overlayRef?.hasAttached()) return;\n\n this.hideTimer = setTimeout(() => {\n this.hideTimer = null;\n this.overlayRef?.detach();\n this.activeTooltipId.set(null);\n }, this.llmTooltipHideDelay());\n }\n\n ngOnDestroy(): void {\n this.clearShowTimer();\n this.clearHideTimer();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n private attach(): void {\n if (!this.overlayRef) {\n this.overlayRef = this.createOverlay();\n }\n\n if (this.overlayRef.hasAttached()) return;\n\n const id = `llm-tooltip-${nextTooltipId++}`;\n const portal = new ComponentPortal(LlmTooltipContent);\n const ref = this.overlayRef.attach(portal);\n ref.setInput('text', this.llmTooltip());\n ref.setInput('tooltipId', id);\n this.activeTooltipId.set(id);\n }\n\n private createOverlay(): OverlayRef {\n const positions = POSITIONS[this.llmTooltipPosition()] ?? POSITIONS['above'];\n\n const positionStrategy = createFlexibleConnectedPositionStrategy(\n this.injector,\n this.elementRef,\n )\n .withPositions(positions)\n .withFlexibleDimensions(false)\n .withPush(true);\n\n const scrollStrategy = createRepositionScrollStrategy(this.injector);\n\n return createOverlayRef(this.injector, {\n positionStrategy,\n scrollStrategy,\n panelClass: 'llm-tooltip-panel',\n });\n }\n\n private clearShowTimer(): void {\n if (this.showTimer !== null) {\n clearTimeout(this.showTimer);\n this.showTimer = null;\n }\n }\n\n private clearHideTimer(): void {\n if (this.hideTimer !== null) {\n clearTimeout(this.hideTimer);\n this.hideTimer = null;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\n/**\n * Loading placeholder that mimics the shape of content while it loads.\n *\n * Usage:\n * ```html\n * <llm-skeleton />\n * <llm-skeleton variant=\"circular\" width=\"40px\" />\n * <llm-skeleton variant=\"rectangular\" height=\"200px\" />\n * ```\n */\n@Component({\n selector: 'llm-skeleton',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ``,\n styleUrl: './llm-skeleton.css',\n host: {\n '[class]': 'hostClasses()',\n '[style.width]': 'width()',\n '[style.height]': 'computedHeight()',\n 'aria-hidden': 'true',\n },\n})\nexport class LlmSkeleton {\n /** Shape variant of the skeleton placeholder. */\n readonly variant = input<'text' | 'circular' | 'rectangular'>('text');\n\n /** CSS width of the skeleton. */\n readonly width = input('100%');\n\n /** CSS height — when empty, a sensible default is chosen per variant. */\n readonly height = input('');\n\n /** Whether the shimmer animation is active. */\n readonly animated = input(true);\n\n protected readonly computedHeight = computed(() => {\n if (this.height()) return this.height();\n switch (this.variant()) {\n case 'text':\n return '1em';\n case 'circular':\n return this.width();\n case 'rectangular':\n return '100px';\n }\n });\n\n protected readonly hostClasses = computed(() => {\n const classes = [`variant-${this.variant()}`];\n if (this.animated()) classes.push('is-animated');\n return classes.join(' ');\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Injectable,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\n/** Variant types for toast notifications. */\nexport type ToastVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';\n\n/** Options for creating a toast notification. */\nexport interface ToastOptions {\n variant?: ToastVariant;\n /** Duration in ms before auto-dismiss. 0 = no auto-dismiss. Default 5000. */\n duration?: number;\n /** Whether the toast shows a dismiss button. Default true. */\n dismissible?: boolean;\n}\n\n/** Internal data for a toast instance. */\nexport interface ToastData {\n id: string;\n message: string;\n variant: ToastVariant;\n duration: number;\n dismissible: boolean;\n}\n\nlet toastId = 0;\n\n/**\n * Service for showing transient toast notifications.\n *\n * Usage:\n * ```typescript\n * const toast = inject(LlmToastService);\n * toast.show('Saved successfully', { variant: 'success' });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class LlmToastService {\n readonly toasts = signal<ToastData[]>([]);\n\n private readonly timers = new Map<string, ReturnType<typeof setTimeout>>();\n\n /**\n * Show a toast notification.\n * @returns The unique id of the toast, which can be used with `dismiss()`.\n */\n show(message: string, options?: ToastOptions): string {\n const id = `llm-toast-${toastId++}`;\n const toast: ToastData = {\n id,\n message,\n variant: options?.variant ?? 'default',\n duration: options?.duration ?? 5000,\n dismissible: options?.dismissible ?? true,\n };\n\n this.toasts.update((list) => [...list, toast]);\n\n if (toast.duration > 0) {\n const timer = setTimeout(() => this.dismiss(id), toast.duration);\n this.timers.set(id, timer);\n }\n\n return id;\n }\n\n /** Dismiss a single toast by id. */\n dismiss(id: string): void {\n const timer = this.timers.get(id);\n if (timer !== undefined) {\n clearTimeout(timer);\n this.timers.delete(id);\n }\n this.toasts.update((list) => list.filter((t) => t.id !== id));\n }\n\n /** Clear all active toasts. */\n clear(): void {\n for (const timer of this.timers.values()) {\n clearTimeout(timer);\n }\n this.timers.clear();\n this.toasts.set([]);\n }\n}\n\n/**\n * Individual toast notification.\n *\n * Typically rendered by `llm-toast-container`, but can also be used standalone.\n */\n@Component({\n selector: 'llm-toast',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <span class=\"message\">{{ message() }}</span>\n @if (dismissible()) {\n <button class=\"dismiss\" type=\"button\" aria-label=\"Dismiss\" (click)=\"onDismiss()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n }\n `,\n styleUrl: './llm-toast.css',\n host: {\n '[class]': 'hostClasses()',\n role: 'status',\n },\n})\nexport class LlmToast {\n /** Semantic color variant. */\n readonly variant = input<ToastVariant>('default');\n\n /** Whether to show a dismiss button. */\n readonly dismissible = input(true);\n\n /** The message to display. */\n readonly message = input('');\n\n /** Unique identifier for this toast. */\n readonly toastId = input('');\n\n /** Emitted when the toast is dismissed by the user. */\n readonly dismissed = output<string>();\n\n protected readonly hostClasses = computed(() => `variant-${this.variant()}`);\n\n protected onDismiss(): void {\n this.dismissed.emit(this.toastId());\n }\n}\n\n/**\n * Container that renders the toast stack at a fixed viewport position.\n * Place once in your app root or layout component.\n *\n * Usage:\n * ```html\n * <llm-toast-container position=\"bottom-right\" />\n * ```\n */\n@Component({\n selector: 'llm-toast-container',\n standalone: true,\n imports: [LlmToast],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @for (toast of toastService.toasts(); track toast.id) {\n <llm-toast\n [variant]=\"toast.variant\"\n [dismissible]=\"toast.dismissible\"\n [message]=\"toast.message\"\n [toastId]=\"toast.id\"\n (dismissed)=\"toastService.dismiss($event)\"\n />\n }\n `,\n styleUrl: './llm-toast-container.css',\n host: {\n '[class]': 'hostClasses()',\n 'aria-live': 'polite',\n role: 'status',\n },\n})\nexport class LlmToastContainer {\n protected readonly toastService = inject(LlmToastService);\n private readonly destroyRef = inject(DestroyRef);\n\n /** Position of the toast stack on the viewport. */\n readonly position = input<'top-right' | 'top-center' | 'bottom-right' | 'bottom-center'>('bottom-right');\n\n protected readonly hostClasses = computed(() => `position-${this.position()}`);\n\n constructor() {\n this.destroyRef.onDestroy(() => this.toastService.clear());\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n contentChildren,\n effect,\n input,\n signal,\n untracked,\n} from '@angular/core';\n\n/**\n * Displays a user avatar with image, initials, or icon fallback.\n *\n * Fallback order: image → initials (from `name`) → generic icon.\n *\n * Usage:\n * ```html\n * <llm-avatar src=\"https://example.com/photo.jpg\" name=\"Jane Doe\" />\n * <llm-avatar name=\"John Smith\" size=\"lg\" status=\"online\" />\n * <llm-avatar size=\"sm\" shape=\"square\" />\n * ```\n */\n@Component({\n selector: 'llm-avatar',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <!-- eslint-disable -->\n @if (src() && showImage()) {\n <img [src]=\"src()\" [alt]=\"alt()\" (error)=\"showImage.set(false)\" />\n } @else if (initials()) {\n <span class=\"initials\" aria-hidden=\"true\">{{ initials() }}</span>\n } @else {\n <svg class=\"icon\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 12c2.761 0 5-2.239 5-5s-2.239-5-5-5-5 2.239-5 5 2.239 5 5 5zm0 2c-3.314 0-10 1.343-10 4v2h20v-2c0-2.657-6.686-4-10-4z\" />\n </svg>\n }\n @if (status()) {\n <span [class]=\"'status-dot status-' + status()\" aria-hidden=\"true\"></span>\n }\n `,\n styleUrl: './llm-avatar.css',\n host: {\n '[class]': 'hostClasses()',\n role: 'img',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class LlmAvatar {\n /** Image URL. Falls back to initials or icon if empty or fails to load. */\n readonly src = input('');\n\n /** Alt text for the image (also used as aria-label). */\n readonly alt = input('');\n\n /** Full name used to generate initials fallback and default aria-label. */\n readonly name = input('');\n\n /** Size of the avatar. */\n readonly size = input<'xs' | 'sm' | 'md' | 'lg' | 'xl'>('md');\n\n /** Shape of the avatar. */\n readonly shape = input<'circle' | 'square'>('circle');\n\n /** Presence status indicator dot. Empty string hides the dot. */\n readonly status = input<'online' | 'offline' | 'away' | 'busy' | ''>('');\n\n /** @internal — reset to true whenever src changes */\n protected readonly showImage = signal(true);\n\n /** @internal */\n protected readonly initials = computed(() => {\n const name = this.name();\n if (!name) return '';\n return name\n .split(' ')\n .filter(Boolean)\n .slice(0, 2)\n .map((w) => w[0].toUpperCase())\n .join('');\n });\n\n /** @internal */\n protected readonly ariaLabel = computed(\n () => this.alt() || this.name() || 'Avatar'\n );\n\n /** @internal */\n protected readonly hostClasses = computed(\n () => `size-${this.size()} shape-${this.shape()}`\n );\n\n constructor() {\n effect(() => {\n this.src(); // track src changes\n untracked(() => this.showImage.set(true));\n });\n }\n}\n\n/**\n * Groups multiple avatars with overlap and an overflow count badge.\n *\n * Usage:\n * ```html\n * <llm-avatar-group [max]=\"3\" size=\"md\">\n * <llm-avatar name=\"Alice\" />\n * <llm-avatar name=\"Bob\" />\n * <llm-avatar name=\"Charlie\" />\n * <llm-avatar name=\"Dave\" />\n * </llm-avatar-group>\n * ```\n */\n@Component({\n selector: 'llm-avatar-group',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content />\n @if (overflowCount() > 0) {\n <span [class]=\"'overflow-badge size-' + size()\">+{{ overflowCount() }}</span>\n }\n `,\n styleUrl: './llm-avatar.css',\n host: {\n class: 'group',\n '[class]': '\"group size-\" + size()',\n },\n})\nexport class LlmAvatarGroup {\n /** Maximum visible avatars before showing an overflow count. */\n readonly max = input(5);\n\n /** Size applied to the overflow badge (match the size used on child avatars). */\n readonly size = input<'xs' | 'sm' | 'md' | 'lg' | 'xl'>('md');\n\n private readonly avatarEls = contentChildren(LlmAvatar, { read: ElementRef });\n\n protected readonly overflowCount = computed(() =>\n Math.max(0, this.avatarEls().length - this.max())\n );\n\n constructor() {\n effect(() => {\n const max = this.max();\n this.avatarEls().forEach((el, i) => {\n (el.nativeElement as HTMLElement).style.display = i >= max ? 'none' : '';\n });\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\n/**\n * Progress bar with determinate and indeterminate states.\n *\n * Usage:\n * ```html\n * <llm-progress [value]=\"75\" />\n * <llm-progress variant=\"success\" [value]=\"100\" />\n * <llm-progress [indeterminate]=\"true\" />\n * ```\n */\n@Component({\n selector: 'llm-progress',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"track\">\n <div class=\"fill\" [style.width]=\"fillWidth()\"></div>\n </div>\n `,\n styleUrl: './llm-progress.css',\n host: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n '[attr.aria-valuenow]': 'indeterminate() ? null : clampedValue()',\n '[attr.aria-valuemax]': 'indeterminate() ? null : max()',\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmProgress {\n /** Current value of the progress bar. */\n readonly value = input<number>(0);\n\n /** Maximum value. */\n readonly max = input<number>(100);\n\n /** Semantic color variant. */\n readonly variant = input<'default' | 'success' | 'warning' | 'danger'>('default');\n\n /** Height size of the track. */\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n\n /** Shows an animated indeterminate state (loading). */\n readonly indeterminate = input(false);\n\n protected readonly clampedValue = computed(() =>\n Math.min(Math.max(this.value(), 0), this.max())\n );\n\n protected readonly fillWidth = computed(() =>\n this.indeterminate()\n ? '100%'\n : `${(this.clampedValue() / this.max()) * 100}%`\n );\n\n protected readonly hostClasses = computed(\n () =>\n `variant-${this.variant()} size-${this.size()}${this.indeterminate() ? ' is-indeterminate' : ''}`\n );\n}\n","import { InjectionToken, Signal } from '@angular/core';\n\nexport interface LlmBreadcrumbsContext {\n registerItem(): number;\n unregisterItem(id: number): void;\n readonly lastItemId: Signal<number>;\n}\n\nexport const LLM_BREADCRUMBS = new InjectionToken<LlmBreadcrumbsContext>('LLM_BREADCRUMBS');\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { LLM_BREADCRUMBS } from './llm-breadcrumbs.token';\n\n/**\n * Accessible breadcrumb navigation. Wrap `llm-breadcrumb-item` elements inside.\n * The last item is automatically marked as the current page.\n *\n * Usage:\n * ```html\n * <llm-breadcrumbs>\n * <llm-breadcrumb-item href=\"/home\">Home</llm-breadcrumb-item>\n * <llm-breadcrumb-item href=\"/products\">Products</llm-breadcrumb-item>\n * <llm-breadcrumb-item>Widget X</llm-breadcrumb-item>\n * </llm-breadcrumbs>\n * ```\n */\n@Component({\n selector: 'llm-breadcrumbs',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: LLM_BREADCRUMBS,\n useFactory: (bc: LlmBreadcrumbs) => ({\n registerItem: () => bc.registerItem(),\n unregisterItem: (id: number) => bc.unregisterItem(id),\n lastItemId: bc.lastItemId,\n }),\n deps: [LlmBreadcrumbs],\n },\n ],\n template: `\n <nav aria-label=\"Breadcrumb\">\n <ol role=\"list\" class=\"list\">\n <ng-content />\n </ol>\n </nav>\n `,\n styleUrl: './llm-breadcrumbs.css',\n})\nexport class LlmBreadcrumbs {\n private readonly _itemIds = signal<number[]>([]);\n private _nextId = 0;\n\n /** @internal — used by LlmBreadcrumbItem via LLM_BREADCRUMBS token */\n readonly lastItemId = computed(() => {\n const ids = this._itemIds();\n return ids.length > 0 ? ids[ids.length - 1] : -1;\n });\n\n /** @internal */\n registerItem(): number {\n const id = this._nextId++;\n this._itemIds.update((ids) => [...ids, id]);\n return id;\n }\n\n /** @internal */\n unregisterItem(id: number): void {\n this._itemIds.update((ids) => ids.filter((i) => i !== id));\n }\n}\n\n/**\n * A single breadcrumb step. The last item is automatically treated as\n * `aria-current=\"page\"` and rendered as plain text (no link).\n */\n@Component({\n selector: 'llm-breadcrumb-item',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <li class=\"item\">\n <a\n [attr.href]=\"href() && !isCurrent() ? href() : null\"\n [attr.aria-current]=\"isCurrent() ? 'page' : null\"\n ><ng-content /></a>\n </li>\n `,\n styleUrl: './llm-breadcrumbs.css',\n host: {\n '[class.is-current]': 'isCurrent()',\n },\n})\nexport class LlmBreadcrumbItem implements OnInit, OnDestroy {\n /** Optional href for navigation. Ignored on the last (current) item. */\n readonly href = input('');\n\n private readonly context = inject(LLM_BREADCRUMBS);\n private readonly myIndex = signal(-1);\n\n protected readonly isCurrent = computed(\n () => this.myIndex() >= 0 && this.myIndex() === this.context.lastItemId()\n );\n\n ngOnInit(): void {\n this.myIndex.set(this.context.registerItem());\n }\n\n ngOnDestroy(): void {\n if (this.myIndex() >= 0) {\n this.context.unregisterItem(this.myIndex());\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n} from '@angular/core';\n\nexport type PageItem =\n | { type: 'page'; page: number }\n | { type: 'ellipsis'; key: string };\n\n/**\n * Pagination control for navigating multi-page content.\n *\n * Usage:\n * ```html\n * <llm-pagination [(page)]=\"currentPage\" [pageCount]=\"totalPages\" />\n * ```\n */\n@Component({\n selector: 'llm-pagination',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <nav aria-label=\"Pagination\">\n <ul role=\"list\" class=\"page-list\">\n @if (showFirstLast()) {\n <li>\n <button\n class=\"page-btn\"\n [class.is-disabled]=\"page() <= 1\"\n [disabled]=\"page() <= 1\"\n aria-label=\"First page\"\n (click)=\"goFirst()\"\n >«</button>\n </li>\n }\n <li>\n <button\n class=\"page-btn\"\n [class.is-disabled]=\"page() <= 1\"\n [disabled]=\"page() <= 1\"\n aria-label=\"Previous page\"\n (click)=\"goPrev()\"\n >‹</button>\n </li>\n\n @for (item of pageItems(); track $index) {\n @if (item.type === 'page') {\n <li>\n <button\n class=\"page-btn\"\n [class.is-active]=\"item.page === page()\"\n [attr.aria-current]=\"item.page === page() ? 'page' : null\"\n [attr.aria-label]=\"'Page ' + item.page\"\n (click)=\"goTo(item.page)\"\n >{{ item.page }}</button>\n </li>\n } @else {\n <li>\n <span class=\"ellipsis\" aria-hidden=\"true\">…</span>\n </li>\n }\n }\n\n <li>\n <button\n class=\"page-btn\"\n [class.is-disabled]=\"page() >= pageCount()\"\n [disabled]=\"page() >= pageCount()\"\n aria-label=\"Next page\"\n (click)=\"goNext()\"\n >›</button>\n </li>\n @if (showFirstLast()) {\n <li>\n <button\n class=\"page-btn\"\n [class.is-disabled]=\"page() >= pageCount()\"\n [disabled]=\"page() >= pageCount()\"\n aria-label=\"Last page\"\n (click)=\"goLast()\"\n >»</button>\n </li>\n }\n </ul>\n </nav>\n `,\n styleUrl: './llm-pagination.css',\n})\nexport class LlmPagination {\n /** Current page (1-based). Supports two-way binding: [(page)]=\"currentPage\". */\n readonly page = model(1);\n\n /** Total number of pages. */\n readonly pageCount = input(1);\n\n /** Number of page buttons to show on each side of the current page. */\n readonly siblingCount = input(1);\n\n /** Whether to show first/last page jump buttons. */\n readonly showFirstLast = input(true);\n\n protected readonly pageItems = computed((): PageItem[] => {\n const total = this.pageCount();\n const current = this.page();\n const siblings = this.siblingCount();\n\n if (total <= 1) return [{ type: 'page', page: 1 }];\n\n const items: PageItem[] = [];\n\n // Always include first page\n items.push({ type: 'page', page: 1 });\n\n const left = Math.max(2, current - siblings);\n const right = Math.min(total - 1, current + siblings);\n\n // Left ellipsis\n if (left > 2) {\n items.push({ type: 'ellipsis', key: 'ellipsis-start' });\n }\n\n // Middle pages\n for (let p = left; p <= right; p++) {\n items.push({ type: 'page', page: p });\n }\n\n // Right ellipsis\n if (right < total - 1) {\n items.push({ type: 'ellipsis', key: 'ellipsis-end' });\n }\n\n // Always include last page\n items.push({ type: 'page', page: total });\n\n return items;\n });\n\n protected goTo(p: number): void {\n const clamped = Math.min(Math.max(p, 1), this.pageCount());\n this.page.set(clamped);\n }\n\n protected goPrev(): void {\n this.goTo(this.page() - 1);\n }\n\n protected goNext(): void {\n this.goTo(this.page() + 1);\n }\n\n protected goFirst(): void {\n this.goTo(1);\n }\n\n protected goLast(): void {\n this.goTo(this.pageCount());\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface LlmDrawerContext {\n headerId: string;\n close: () => void;\n}\n\nexport const LLM_DRAWER = new InjectionToken<LlmDrawerContext>('LLM_DRAWER');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n effect,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { LLM_DRAWER } from './llm-drawer.token';\n\nlet nextId = 0;\n\n/**\n * Slide-in drawer panel using the native `<dialog>` element.\n * Supports left, right, top, and bottom positions with focus trap,\n * Escape to close, and backdrop click to close.\n * Compose with `llm-drawer-header`, `llm-drawer-content`, and `llm-drawer-footer`.\n *\n * Usage:\n * ```html\n * <llm-button (click)=\"isOpen = true\">Open</llm-button>\n * <llm-drawer [(open)]=\"isOpen\" position=\"right\">\n * <llm-drawer-header>Settings</llm-drawer-header>\n * <llm-drawer-content>Content here.</llm-drawer-content>\n * <llm-drawer-footer>\n * <llm-button variant=\"primary\" (click)=\"isOpen = false\">Save</llm-button>\n * </llm-drawer-footer>\n * </llm-drawer>\n * ```\n */\n@Component({\n selector: 'llm-drawer',\n standalone: true,\n imports: [A11yModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: LLM_DRAWER,\n useFactory: (drawer: LlmDrawer) => ({\n headerId: drawer.headerId,\n close: () => drawer.open.set(false),\n }),\n deps: [LlmDrawer],\n },\n ],\n template: `\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n <dialog\n #dialogEl\n [attr.aria-labelledby]=\"headerId\"\n aria-modal=\"true\"\n [cdkTrapFocus]=\"open()\"\n (cancel)=\"onCancel($event)\"\n (close)=\"open.set(false)\"\n (click)=\"onBackdropClick($event)\"\n >\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n <div class=\"panel\" (click)=\"$event.stopPropagation()\">\n <ng-content />\n </div>\n </dialog>\n `,\n styleUrl: './llm-drawer.css',\n host: {\n '[class]': 'hostClasses()',\n },\n})\nexport class LlmDrawer {\n /** Whether the drawer is open. Supports two-way binding: [(open)]=\"isOpen\". */\n readonly open = model(false);\n\n /** Which edge the drawer slides in from. */\n readonly position = input<'left' | 'right' | 'top' | 'bottom'>('right');\n\n /** Width (for left/right) or height (for top/bottom) of the panel. */\n readonly size = input<'sm' | 'md' | 'lg' | 'full'>('md');\n\n /** Whether clicking the backdrop closes the drawer. */\n readonly closeOnBackdrop = input(true);\n\n /** @internal — referenced by LlmDrawerHeader via LLM_DRAWER token */\n readonly headerId = `llm-drawer-header-${nextId}`;\n\n protected readonly drawerId = `llm-drawer-${nextId++}`;\n protected readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dialogEl');\n private readonly triggerEl = signal<HTMLElement | null>(null);\n\n protected readonly hostClasses = computed(\n () =>\n `position-${this.position()} size-${this.size()}${this.open() ? ' is-open' : ''}`\n );\n\n constructor() {\n effect(() => {\n const dialog = this.dialogRef()?.nativeElement;\n if (!dialog) return;\n if (this.open()) {\n this.triggerEl.set(document.activeElement as HTMLElement);\n dialog.showModal();\n } else {\n if (dialog.open) dialog.close();\n this.triggerEl()?.focus();\n this.triggerEl.set(null);\n }\n });\n }\n\n protected onCancel(event: Event): void {\n event.preventDefault();\n this.open.set(false);\n }\n\n protected onBackdropClick(event: MouseEvent): void {\n if (this.closeOnBackdrop() && event.target === this.dialogRef()?.nativeElement) {\n this.open.set(false);\n }\n }\n}\n\n/**\n * Header slot for `llm-drawer`. Contains the title and a close button.\n * Automatically receives the correct `id` for `aria-labelledby` association.\n */\n@Component({\n selector: 'llm-drawer-header',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content />\n <button\n class=\"close-btn\"\n type=\"button\"\n aria-label=\"Close drawer\"\n (click)=\"context.close()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n `,\n styleUrl: './llm-drawer.css',\n host: {\n '[attr.id]': 'context.headerId',\n },\n})\nexport class LlmDrawerHeader {\n protected readonly context = inject(LLM_DRAWER);\n}\n\n/**\n * Content slot for `llm-drawer`. Scrollable primary content area.\n */\n@Component({\n selector: 'llm-drawer-content',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-drawer.css',\n})\nexport class LlmDrawerContent {}\n\n/**\n * Footer slot for `llm-drawer`. Renders at the bottom with action buttons.\n */\n@Component({\n selector: 'llm-drawer-footer',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content />`,\n styleUrl: './llm-drawer.css',\n})\nexport class LlmDrawerFooter {}\n","// Design tokens stylesheet — consumers should import:\n// @import '@atelier-ui/angular/styles/tokens.css';\n\nexport { LlmButton } from './lib/button/llm-button';\nexport {\n LlmCard,\n LlmCardHeader,\n LlmCardContent,\n LlmCardFooter,\n} from './lib/card/llm-card';\nexport { LlmBadge } from './lib/badge/llm-badge';\nexport { LlmInput } from './lib/input/llm-input';\nexport { LlmTextarea } from './lib/textarea/llm-textarea';\nexport { LlmCheckbox } from './lib/checkbox/llm-checkbox';\nexport { LlmRadio } from './lib/radio/llm-radio';\nexport { LlmRadioGroup } from './lib/radio-group/llm-radio-group';\nexport { LLM_RADIO_GROUP } from './lib/radio-group/llm-radio-group.token';\nexport type { LlmRadioGroupContext } from './lib/radio-group/llm-radio-group.token';\nexport { LlmToggle } from './lib/toggle/llm-toggle';\nexport { LlmAlert } from './lib/alert/llm-alert';\nexport { LlmSelect } from './lib/select/llm-select';\nexport { LlmOption } from './lib/select/llm-option';\nexport { LLM_SELECT } from './lib/select/llm-select.token';\nexport type { LlmSelectContext } from './lib/select/llm-select.token';\nexport {\n LlmDialog,\n LlmDialogHeader,\n LlmDialogContent,\n LlmDialogFooter,\n} from './lib/dialog/llm-dialog';\nexport { LLM_DIALOG } from './lib/dialog/llm-dialog.token';\nexport type { LlmDialogContext } from './lib/dialog/llm-dialog.token';\nexport { LlmTabGroup, LlmTab } from './lib/tabs/llm-tabs';\nexport { LLM_TAB_GROUP } from './lib/tabs/llm-tabs.token';\nexport type { LlmTabGroupContext, TabInfo } from './lib/tabs/llm-tabs.token';\nexport {\n LlmAccordionGroup,\n LlmAccordionItem,\n LlmAccordionHeader,\n} from './lib/accordion/llm-accordion';\nexport { LLM_ACCORDION_GROUP } from './lib/accordion/llm-accordion.token';\nexport type { LlmAccordionGroupContext } from './lib/accordion/llm-accordion.token';\nexport {\n LlmMenu,\n LlmMenuItem,\n LlmMenuSeparator,\n LlmMenuTrigger,\n} from './lib/menu/llm-menu';\nexport { LlmTooltip } from './lib/tooltip/llm-tooltip';\nexport { LlmSkeleton } from './lib/skeleton/llm-skeleton';\nexport {\n LlmToast,\n LlmToastContainer,\n LlmToastService,\n} from './lib/toast/llm-toast';\nexport type { ToastOptions, ToastData } from './lib/toast/llm-toast';\nexport { LlmAvatar, LlmAvatarGroup } from './lib/avatar/llm-avatar';\nexport { LlmProgress } from './lib/progress/llm-progress';\nexport { LlmBreadcrumbs, LlmBreadcrumbItem } from './lib/breadcrumbs/llm-breadcrumbs';\nexport { LLM_BREADCRUMBS } from './lib/breadcrumbs/llm-breadcrumbs.token';\nexport type { LlmBreadcrumbsContext } from './lib/breadcrumbs/llm-breadcrumbs.token';\nexport { LlmPagination } from './lib/pagination/llm-pagination';\nexport type { PageItem } from './lib/pagination/llm-pagination';\nexport {\n LlmDrawer,\n LlmDrawerHeader,\n LlmDrawerContent,\n LlmDrawerFooter,\n} from './lib/drawer/llm-drawer';\nexport { LLM_DRAWER } from './lib/drawer/llm-drawer.token';\nexport type { LlmDrawerContext } from './lib/drawer/llm-drawer.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId","i1"],"mappings":";;;;;;;;;;;;;AAQA;;;;;;;;;AASG;MAmBU,SAAS,CAAA;;AAEX,IAAA,OAAO,GAAG,KAAK,CAAmB,SAAS,8EAAC;;AAG5C,IAAA,IAAI,GAAG,KAAK,CAAgB,IAAI,2EAAC;;AAGjC,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;AAEZ,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,iFAAC;IAE9D,WAAW,GAAG,QAAQ,CACvC,MACE,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,cAAc,GAAG,EAAE,CAAA,EAAG,IAAI,CAAC,OAAO,EAAE,GAAG,aAAa,GAAG,EAAE,CAAA,CAAE,kFAClI;uGAlBU,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAdV;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ozFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FASU,SAAS,EAAA,UAAA,EAAA,CAAA;kBAlBrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;GAKT,EAAA,IAAA,EAEK;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,sBAAsB,EAAE,cAAc;AACtC,wBAAA,iBAAiB,EAAE,4BAA4B;AAChD,qBAAA,EAAA,MAAA,EAAA,CAAA,ozFAAA,CAAA,EAAA;;;AC3BH;;;;;;;;;;;;;;AAcG;MAWU,OAAO,CAAA;;AAET,IAAA,OAAO,GAAG,KAAK,CAAmC,UAAU,8EAAC;;AAG7D,IAAA,OAAO,GAAG,KAAK,CAA8B,IAAI,8EAAC;AAExC,IAAA,WAAW,GAAG,QAAQ,CACvC,MAAM,WAAW,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,kFAC5D;uGATU,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,gYANR,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y1CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMf,OAAO,EAAA,UAAA,EAAA,CAAA;kBAVnB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,gBAAgB,EAAA,IAAA,EAEpB;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,y1CAAA,CAAA,EAAA;;AAcH;;;;;;;AAOG;MAQU,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,2EAHd,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y1CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGf,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cACf,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,YACrC,CAAA,cAAA,CAAgB,EAAA,MAAA,EAAA,CAAA,y1CAAA,CAAA,EAAA;;AAK5B;;;;;;;AAOG;MAQU,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,4EAHf,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y1CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,YACrC,CAAA,cAAA,CAAgB,EAAA,MAAA,EAAA,CAAA,y1CAAA,CAAA,EAAA;;AAK5B;;;;;;;;;AASG;MAQU,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,2EAHd,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y1CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGf,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cACf,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,YACrC,CAAA,cAAA,CAAgB,EAAA,MAAA,EAAA,CAAA,y1CAAA,CAAA,EAAA;;;ACrF5B;;;;;;;;;AASG;MAYU,QAAQ,CAAA;;AAEV,IAAA,OAAO,GAAG,KAAK,CAAwD,SAAS,8EAAC;;AAGjF,IAAA,IAAI,GAAG,KAAK,CAAc,IAAI,2EAAC;AAErB,IAAA,WAAW,GAAG,QAAQ,CACvC,MAAM,WAAW,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,kFACtD;uGATU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,0ZAPT,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,82CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAOf,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAXpB,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,gBAAgB,EAAA,IAAA,EAEpB;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,IAAI,EAAE,QAAQ;AACf,qBAAA,EAAA,MAAA,EAAA,CAAA,82CAAA,CAAA,EAAA;;;AChBH,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;AAQG;MAgCU,QAAQ,CAAA;;AAEV,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;;AAGjB,IAAA,IAAI,GAAG,KAAK,CAA2D,MAAM,2EAAC;;AAG9E,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,kFAAC;;AAGvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,MAAM,GAAG,KAAK,CAAoD,EAAE,6EAAC;;AAGrE,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;;AAGN,IAAA,OAAO,GAAG,CAAA,iBAAA,EAAoBA,QAAM,EAAE,EAAE;;IAGxC,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACnE;;AAGkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,OAAO,GAAa,EAAE;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,kFAAC;;AAGQ,IAAA,OAAO,CAAC,KAAY,EAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;QAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9B;uGArDW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA3BT;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,49CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,QAAQ,EAAA,UAAA,EAAA,CAAA;kBA/BpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cACT,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;GAqBT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,49CAAA,CAAA,EAAA;;;ACvCH,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;AAQG;MAmCU,WAAW,CAAA;;AAEb,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;;AAGjB,IAAA,IAAI,GAAG,KAAK,CAAC,CAAC,2EAAC;;AAGf,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,kFAAC;;AAGvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,MAAM,GAAG,KAAK,CAAoD,EAAE,6EAAC;;AAGrE,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;;AAGhB,IAAA,UAAU,GAAG,KAAK,CAAC,KAAK,iFAAC;;AAGf,IAAA,OAAO,GAAG,CAAA,oBAAA,EAAuBA,QAAM,EAAE,EAAE;;IAG3C,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACnE;;AAGkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,OAAO,GAAa,EAAE;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACrD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,kFAAC;;AAGQ,IAAA,OAAO,CAAC,KAAY,EAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA6B;QAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9B;uGAzDW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA7BZ;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,glDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAzBS,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FA+Bd,WAAW,EAAA,UAAA,EAAA,CAAA;kBAlCvB,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,OAAA,EACP,CAAC,eAAe,CAAC,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;;;GAuBT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,glDAAA,CAAA,EAAA;;;ACzCH,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;AAQG;MAmCU,WAAW,CAAA;;AAEb,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,oFAAC;;AAG5B,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;;AAGhB,IAAA,MAAM,GAAG,KAAK,CAAoD,EAAE,6EAAC;;AAG3D,IAAA,OAAO,GAAG,CAAA,aAAA,EAAgBA,QAAM,EAAE,EAAE;;AAGpC,IAAA,OAAO,GAAG,CAAA,oBAAA,EAAuBA,QAAM,EAAE,EAAE;;AAG7C,IAAA,WAAW,GAAG,SAAS,CAA+B,aAAa,kFAAC;;IAGlE,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACnE;;AAGkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,OAAO,GAAa,EAAE;QAC5B,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,kFAAC;AAEF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,aAAa;YAC5C,IAAI,EAAE,EAAE;AACN,gBAAA,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;YACzC;AACF,QAAA,CAAC,CAAC;IACJ;;AAGU,IAAA,QAAQ,CAAC,KAAY,EAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IAClC;uGA9DW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9BZ;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,w9EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,WAAW,EAAA,UAAA,EAAA,CAAA;kBAlCvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,cACZ,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;;;;GAwBT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,w9EAAA,CAAA,EAAA;u7BAkCsE,aAAa,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MCtEzE,eAAe,GAAG,IAAI,cAAc,CAAuB,iBAAiB;;ACRzF,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;;;AAUG;MAyBU,QAAQ,CAAA;;AAEV,IAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,gFAAU;;AAGrC,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;IAGf,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AAGnD,IAAA,EAAE,GAAG,MAAM,CAA0B,UAAU,CAAC;;AAG9C,IAAA,OAAO,GAAG,CAAA,UAAA,EAAaA,QAAM,EAAE,EAAE;;AAGjC,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE,gFAAC;;IAG/E,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;;AAGvE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,oFAAC;;AAGxD,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,OAAO,GAAa,EAAE;QAC5B,IAAI,IAAI,CAAC,SAAS,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAChD,IAAI,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AAClD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,kFAAC;;IAGF,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAmB,OAAO,CAAC,EAAE,KAAK,EAAE;IACzE;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;IAChC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;IAClC;;IAGU,QAAQ,GAAA;QAChB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IACvC;;IAGU,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;IAC3B;uGAtDW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EApBT;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+4DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAxBpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cACT,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;GAcT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,+4DAAA,CAAA,EAAA;;;ACnCH,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;;;;;;;;;;AAiBG;MA0BU,aAAa,CAAA;;AAEf,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;;AAGjB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;;AAGhB,IAAA,MAAM,GAAG,KAAK,CAAoD,EAAE,6EAAC;;AAG3D,IAAA,OAAO,GAAG,CAAA,uBAAA,EAA0BA,QAAM,EAAE,EAAE;;AAGhD,IAAA,KAAK,GAAG,MAAM,CAAc,EAAE,4EAAC;;IAG7B,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACnE;;AAGkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,OAAO,GAAa,EAAE;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,kFAAC;;AAGF,IAAA,MAAM,CAAC,CAAS,EAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB;IACF;;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;;AAGA,IAAA,YAAY,CAAC,IAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C;;AAGA,IAAA,cAAc,CAAC,IAAe,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7D;;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACtC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACrB,QAAA,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW;YAAE;QAE7F,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAC/D,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE;QAE1B,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,YAAY;AAC1D,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM;QACxB,MAAM,OAAO,GAAG;AACd,cAAE,CAAC,UAAU,GAAG,CAAC,IAAI;cACnB,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAE5B,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;;QAE/B,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB;IACF;uGAxFW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,SAAA,EAFb,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnB3D;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8SAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAYU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAzBzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cACf,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;GAST,EAAA,IAAA,EAEK;AACJ,wBAAA,IAAI,EAAE,YAAY;AAClB,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,yBAAyB,EAAE,+BAA+B;AAC1D,wBAAA,WAAW,EAAE,mBAAmB;qBACjC,EAAA,SAAA,EACU,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAA,aAAe,EAAE,CAAC,EAAA,MAAA,EAAA,CAAA,8SAAA,CAAA,EAAA;;;AC7CvE,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;;;AAUG;MAuCU,SAAS,CAAA;;AAEX,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;;AAGhB,IAAA,MAAM,GAAG,KAAK,CAAoD,EAAE,6EAAC;;AAG3D,IAAA,OAAO,GAAG,CAAA,WAAA,EAAcA,QAAM,EAAE,EAAE;;AAGlC,IAAA,OAAO,GAAG,CAAA,kBAAA,EAAqBA,QAAM,EAAE,EAAE;;IAGzC,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACnE;;AAGkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,OAAO,GAAa,EAAE;QAC5B,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,kFAAC;;AAGQ,IAAA,QAAQ,CAAC,KAAY,EAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IAClC;uGA/CW,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlCV;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8iEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,SAAS,EAAA,UAAA,EAAA,CAAA;kBAtCrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,8iEAAA,CAAA,EAAA;;;ACnDH;;;;;;;;;;AAUG;MAuBU,QAAQ,CAAA;;AAEV,IAAA,OAAO,GAAG,KAAK,CAA4C,MAAM,8EAAC;;AAGlE,IAAA,WAAW,GAAG,KAAK,CAAC,KAAK,kFAAC;;IAG1B,SAAS,GAAG,MAAM,EAAQ;AAEhB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,kFAAC;;AAG5E,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC3B;;AAGA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC3B;;AAGA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,QAAQ,GAAG,WAAW,GAAG,QAAQ;IAC7D;IAEU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACvB;uGA7BW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlBT;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0kDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAQU,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAtBpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cACT,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;GAUT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,kBAAkB,EAAE,UAAU;AAC/B,qBAAA,EAAA,MAAA,EAAA,CAAA,0kDAAA,CAAA,EAAA;;;MC1BU,UAAU,GAAG,IAAI,cAAc,CAAmB,YAAY;;ACG3E;AACA,MAAM,gBAAgB,CAAA;AAIT,IAAA,EAAA;AACA,IAAA,KAAA;AACA,IAAA,SAAA;AAEQ,IAAA,cAAA;AAPnB,IAAA,QAAQ;IAER,WAAA,CACW,EAAU,EACV,KAAa,EACb,SAAiB,EAC1B,QAAiB,EACA,cAAqE,EAAA;QAJ7E,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,SAAS,GAAT,SAAS;QAED,IAAA,CAAA,cAAc,GAAd,cAAc;AAE/B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,SAAS;IACvB;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC;IAEA,iBAAiB,GAAA;;IAEjB;AACD;AAED,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;;;;;;;;;AAgBG;MAmDU,SAAS,CAAA;;AAEX,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;;AAGjB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,kFAAC;;AAGvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;;AAGtB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;;AAGhB,IAAA,MAAM,GAAG,KAAK,CAAoD,EAAE,6EAAC;;AAGrE,IAAA,cAAc,GAAG,MAAM,CAAgB,IAAI,qFAAC;;AAGlC,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,6EAAC;;AAGtB,IAAA,WAAW,GAAG,MAAM,CAErC,EAAE,kFAAC;;AAGc,IAAA,QAAQ,GAAG,SAAS,CAA0B,OAAO,+EAAC;;AAGtD,IAAA,SAAS,GAAG,CAAA,mBAAA,EAAsBA,QAAM,CAAA,CAAE;;AAG1C,IAAA,OAAO,GAAG,CAAA,iBAAA,EAAoBA,QAAM,CAAA,CAAE;;AAGtC,IAAA,OAAO,GAAG,CAAA,kBAAA,EAAqBA,QAAM,EAAE,EAAE;;AAGzC,IAAA,aAAa,GAAG,QAAQ,CACzC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,IAAI,EAAE,oFAChF;;IAGkB,UAAU,GAAG,QAAQ,CACtC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACnE;;AAGkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,OAAO,GAAa,EAAE;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,kFAAC;;IAGM,UAAU,GAAwD,IAAI;IAEtE,mBAAmB,GAAqC,IAAI;AACnD,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;;AAGzE,IAAA,cAAc,CAAC,EAAU,EAAE,KAAa,EAAE,SAAiB,EAAE,QAAiB,EAAA;QAC5E,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClF;;AAGA,IAAA,gBAAgB,CAAC,EAAU,EAAA;QACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE;;AAGA,IAAA,MAAM,CAAC,CAAS,EAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,KAAK,EAAE;QACd;IACF;;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;;IAGU,cAAc,GAAA;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YAAE,IAAI,CAAC,KAAK,EAAE;QAAE;aAAO;YAAE,IAAI,CAAC,IAAI,EAAE;QAAE;IAC3D;;IAGU,aAAa,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB;IACF;;AAGU,IAAA,aAAa,CAAC,KAAY,EAAA;QAClC,MAAM,WAAW,GAAG,KAAoB;AACxC,QAAA,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B;IACF;;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;QACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AAErB,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,OAAO;YACZ,KAAK,GAAG,EAAE;gBACR,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;oBAClB,IAAI,CAAC,IAAI,EAAE;gBACb;qBAAO;AACL,oBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,UAAiD;oBACrF,IAAI,UAAU,EAAE;AACd,wBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;oBAC/B;gBACF;gBACA;YACF;YACA,KAAK,QAAQ,EAAE;gBACb,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE;gBACZ;YACF;YACA,SAAS;gBACP,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;gBACpG,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/F,gBAAA,IAAI,CAAC,KAAK,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;oBAC5C,IAAI,CAAC,IAAI,EAAE;AACX,oBAAA,IAAI,KAAK;AAAE,wBAAA,OAAO;gBACpB;AACA,gBAAA,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC;YACnC;;IAEJ;IAEQ,IAAI,GAAA;AACV,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,KAAK;YAAE;AACX,QAAA,KAAK,CAAC,aAAuD,CAAC,WAAW,EAAE;AAC5E,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;;AAGrB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAClC,CAAC,CAAC,KAAK,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CACzF;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,0BAA0B,CAAC,KAAK;AACnD,aAAA,QAAQ;aACR,aAAa,CAAC,GAAG;AACjB,aAAA,cAAc;AACd,aAAA,uBAAuB,EAAE;;QAG5B,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnF,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,QAAA,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC,GAAG,WAAW,GAAG,eAAe;AAClE,QAAA,IAAI,SAAS,IAAI,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;QAC1C;;AAGA,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAa,KAAI;AAC3C,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE;gBAC7D,IAAI,CAAC,KAAK,EAAE;YACd;AACF,QAAA,CAAC;QACD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC9D;IAEQ,KAAK,GAAA;AACX,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,KAAK;YAAE;AACZ,QAAA,IAAI;AACD,YAAA,KAAK,CAAC,aAAuD,CAAC,WAAW,EAAE;QAC9E;AAAE,QAAA,MAAM;;QAER;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AAEtB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC/D,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QACjC;IACF;uGA3MW,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFT,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5ClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qpFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FASU,SAAS,EAAA,UAAA,EAAA,CAAA;kBAlDrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCT,EAAA,IAAA,EAEK;AACJ,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,WAAW,EAAE,mBAAmB;qBACjC,EAAA,SAAA,EACU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAA,SAAW,EAAE,CAAC,EAAA,MAAA,EAAA,CAAA,qpFAAA,CAAA,EAAA;g5BAuCK,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACzI1E,IAAI,YAAY,GAAG,CAAC;AAEpB;;;;;;;AAOG;MAsBU,SAAS,CAAA;;AAEX,IAAA,WAAW,GAAG,KAAK,CAAC,QAAQ,iFAAU;;AAGtC,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGb,IAAA,QAAQ,GAAG,CAAA,WAAA,EAAc,YAAY,EAAE,EAAE;;AAG3C,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;;AAG5B,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;;AAGtD,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,iFAAC;;AAGxE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC,QAAQ,+EAAC;IAE7F,QAAQ,GAAA;;AAEN,QAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE;QAC1E,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5F;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9C;;IAGU,OAAO,GAAA;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IAC5B;;IAGU,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChD;IACF;uGA5CW,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBV;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEU,SAAS,EAAA,UAAA,EAAA,CAAA;kBArBrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;AAeT,EAAA,CAAA;AACF,iBAAA;;;MCnCY,UAAU,GAAG,IAAI,cAAc,CAAmB,YAAY;;ACQ3E,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;;;;;;;;AAeG;MAqCU,SAAS,CAAA;;AAEX,IAAA,IAAI,GAAG,KAAK,CAAC,KAAK,2EAAC;;AAGnB,IAAA,eAAe,GAAG,KAAK,CAAC,IAAI,sFAAC;;AAG7B,IAAA,IAAI,GAAG,KAAK,CAAqC,IAAI,2EAAC;;IAGtD,SAAS,GAAG,KAAK,CAAC,EAAE,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;;IAG9C,cAAc,GAAG,KAAK,CAAC,EAAE,sFAAI,KAAK,EAAE,iBAAiB,EAAA,CAAG;;AAGxD,IAAA,QAAQ,GAAG,CAAA,kBAAA,EAAqBA,QAAM,CAAA,CAAE;AAE9B,IAAA,QAAQ,GAAG,CAAA,WAAA,EAAcA,QAAM,EAAE,EAAE;AACnC,IAAA,SAAS,GAAG,SAAS,CAAgC,UAAU,gFAAC;AAClE,IAAA,SAAS,GAAG,MAAM,CAAqB,IAAI,gFAAC;AAE1C,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAA,WAAA,EAAc,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,iFAAC;IACxD,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAE/E,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa;AAC9C,YAAA,IAAI,CAAC,MAAM;gBAAE;AACb,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,aAA4B,CAAC;gBACzD,MAAM,CAAC,SAAS,EAAE;YACpB;iBAAO;gBACL,IAAI,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,KAAK,EAAE;AAC/B,gBAAA,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE;AACzB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1B;AACF,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,QAAQ,CAAC,KAAY,EAAA;QAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AAEU,IAAA,eAAe,CAAC,KAAiB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE;AAC9E,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;IACF;uGAlDW,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,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,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,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EA/BT;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,UAAU,EAAE,CAAC,MAAiB,MAAM;oBACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,KAAK,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;iBACpC,CAAC;gBACA,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,aAAA;SACF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sjFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA3BS,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAiCT,SAAS,EAAA,UAAA,EAAA,CAAA;kBApCrB,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,CAAC,UAAU,CAAC,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,UAAU,EAAE,CAAC,MAAiB,MAAM;gCACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gCACzB,KAAK,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;6BACpC,CAAC;AACA,4BAAA,IAAI,EAAE,CAAA,SAAA,CAAW;AAClB,yBAAA;qBACF,EAAA,QAAA,EACS;;;;;;;;;;;;;;;GAeT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,sjFAAA,CAAA,EAAA;0nBAsBuE,UAAU,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;AAkCpF;;;AAGG;MAoCU,eAAe,CAAA;AACP,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;uGADpC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/BhB;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sjFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnC3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cACjB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBT,EAAA,IAAA,EAEK;AACJ,wBAAA,WAAW,EAAE,kBAAkB;AAChC,qBAAA,EAAA,MAAA,EAAA,CAAA,sjFAAA,CAAA,EAAA;;AAMH;;AAEG;MAQU,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,8EAHjB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sjFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGf,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,YACrC,CAAA,cAAA,CAAgB,EAAA,MAAA,EAAA,CAAA,sjFAAA,CAAA,EAAA;;AAK5B;;AAEG;MAQU,eAAe,CAAA;uGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,6EAHhB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sjFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cACjB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,YACrC,CAAA,cAAA,CAAgB,EAAA,MAAA,EAAA,CAAA,sjFAAA,CAAA,EAAA;;;MCvKf,aAAa,GAAG,IAAI,cAAc,CAAqB,eAAe;;ACJnF,IAAID,QAAM,GAAG,CAAC;AAEd;;;;;;;;;;;;AAYG;MAiCU,WAAW,CAAA;;AAEb,IAAA,aAAa,GAAG,KAAK,CAAC,CAAC,oFAAC;;AAGxB,IAAA,OAAO,GAAG,KAAK,CAAsB,SAAS,8EAAC;;AAG/C,IAAA,IAAI,GAAG,MAAM,CAAY,EAAE,2EAAC;;AAGpB,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;;AAGtD,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,kFAAC;;AAG5E,IAAA,WAAW,CAAC,IAAa,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C;;AAGA,IAAA,aAAa,CAAC,EAAU,EAAA;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D;;AAGU,IAAA,SAAS,CAAC,KAAa,EAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;;AAE9B,QAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACxB,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B;IACF;;AAGU,IAAA,YAAY,CAAC,KAAoB,EAAA;AACzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrF,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE;QAE1B,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;AAC3E,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM;QACxB,IAAI,WAAW,GAAuC,IAAI;AAE1D,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE;gBACtB,WAAW,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3C;AACF,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,WAAW,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/C;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;gBACxB;AACF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5B;;QAGJ,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACrC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAoB,cAAc,CAAC;;YAEjG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;QACjC;IACF;uGAtEW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAFX,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1BvD;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gmEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAOU,WAAW,EAAA,UAAA,EAAA,CAAA;kBAhCvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;GAqBT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;qBAC3B,EAAA,SAAA,EACU,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAA,WAAa,EAAE,CAAC,EAAA,MAAA,EAAA,CAAA,gmEAAA,CAAA,EAAA;;AA2EnE;;;;;;;AAOG;MAuBU,MAAM,CAAA;;AAER,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAU;;AAGhC,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,KAAK,GAAG,CAAA,QAAA,EAAWA,QAAM,CAAA,CAAE;;AAG3B,IAAA,OAAO,GAAG,CAAA,cAAA,EAAiBA,QAAM,CAAA,CAAE;;AAG3B,IAAA,EAAE,GAAG,CAAA,iBAAA,EAAoBA,QAAM,EAAE,EAAE;;AAGnC,IAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;;AAG7B,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,KAAK;AAC/C,IAAA,CAAC,+EAAC;IAEF,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;IACrC;uGArCW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlBP;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAOU,MAAM,EAAA,UAAA,EAAA,CAAA;kBAtBlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,cACP,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA;;;MC9IU,mBAAmB,GAAG,IAAI,cAAc,CAA2B,qBAAqB;;ACCrG,IAAIA,QAAM,GAAG,CAAC;AAEd;;;;;;;;;;;;;AAaG;MAcU,iBAAiB,CAAA;;AAEnB,IAAA,KAAK,GAAG,KAAK,CAAC,KAAK,4EAAC;;AAGpB,IAAA,OAAO,GAAG,KAAK,CAAuC,SAAS,8EAAC;;AAGtD,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,kFAAC;;AAG5E,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC3B;;AAGiB,IAAA,KAAK,GAAG,MAAM,CAAkB,EAAE,4EAAC;AAEpD,IAAA,QAAQ,CAAC,IAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C;AAEA,IAAA,UAAU,CAAC,IAAmB,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7D;IAEA,aAAa,CAAC,KAAoB,EAAE,IAAmB,EAAA;AACrD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE;AAC7B,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3D,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE;QAE1B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,QAAA,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM;QACxB,IAAI,MAAM,GAAyB,IAAI;AAEvC,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;gBACtB,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/B;AACF,YAAA,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnC;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;gBACnB;AACF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvB;;QAGJ,MAAM,EAAE,YAAY,EAAE;IACxB;uGAvDW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAFjB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,0GAPnE,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,86DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FASf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,CAAA,cAAA,CAAgB,EAAA,cAAA,EAEV,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA,IAAA,EAC1D;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,IAAI,EAAE,cAAc;qBACrB,EAAA,SAAA,EACU,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,iBAAmB,EAAE,CAAC,EAAA,MAAA,EAAA,CAAA,86DAAA,CAAA,EAAA;;AA4D/E;;AAEG;MAKU,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;AAGD;;;;;;;;;;AAUG;MA2DU,gBAAgB,CAAA;;AAElB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGvB,IAAA,EAAE,GAAG,CAAA,mBAAA,EAAsBA,QAAM,EAAE,EAAE;;AAGrC,IAAA,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,EAAE,UAAU;;AAGhC,IAAA,OAAO,GAAG,CAAA,EAAG,IAAI,CAAC,EAAE,QAAQ;;AAGpB,IAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAGjC,IAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAGlC,IAAA,EAAE,GAAG,MAAM,CAA0B,UAAU,CAAC;;AAG9C,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;;AAG7C,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE;IAC1B;;AAGA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;;AAGA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI;IAChC;AAEA,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAiB,KAAI;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7B,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAEzB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACrB;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;IAC7B;;IAGA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAoB,oBAAoB,CAAC,EAAE,KAAK,EAAE;IACvF;;IAGA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;;IAGU,QAAQ,GAAA;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;IACvB;;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;QACtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;IACvC;uGAjFW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EApDjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,86DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA1D5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,MAAM,EAAA,cAAA,EAC/B,CAAC,gBAAgB,CAAC,EAAA,QAAA,EACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CT,EAAA,IAAA,EAEK;AACJ,wBAAA,0BAA0B,EAAE,IAAI;AACjC,qBAAA,EAAA,MAAA,EAAA,CAAA,86DAAA,CAAA,EAAA;;;ACxKH;;;;;;;;;;;;;AAaG;MAWU,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,cAAc;4BACzB,MAAM,EAAE,CAAC,sCAAsC,CAAC;AACjD,yBAAA;AACF,qBAAA;AACF,iBAAA;;AAGD;;;;;;;;;;;;;;;AAeG;MAcU,OAAO,CAAA;;AAET,IAAA,OAAO,GAAG,KAAK,CAAwB,SAAS,8EAAC;;AAGvC,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA,iBAAA,EAAoB,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,kFAAC;uGAL1E,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,iTANR,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,k4CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAMf,OAAO,EAAA,UAAA,EAAA,CAAA;kBAbnB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAEhC,iBAAiB,CAAC,IAAI,kBACrB,CAAC,OAAO,CAAC,EAAA,QAAA,EACf,gBAAgB,EAAA,IAAA,EAEpB;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,k4CAAA,CAAA,EAAA;;AAUH;;;;;;;;;AASG;MAuBU,WAAW,CAAA;;AAEb,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;;AAGf,IAAA,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;AAGlE,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;uGARvD,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXZ;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,WAAW,EAAA,UAAA,EAAA,CAAA;kBAtBvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,WAAW;4BACtB,MAAM,EAAE,CAAC,+BAA+B,CAAC;4BACzC,OAAO,EAAE,CAAC,iCAAiC,CAAC;AAC7C,yBAAA;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;AAKT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,qBAAqB,EAAE,YAAY;AACpC,qBAAA;AACF,iBAAA;;AAYD;;;;;;;;;AASG;MAWU,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,mKANjB,CAAA,CAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE,CAAA,CAAE;AACZ,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,oBAAoB;AAC3B,wBAAA,IAAI,EAAE,WAAW;AAClB,qBAAA;AACF,iBAAA;;;ACnHD,IAAI,aAAa,GAAG,CAAC;AAErB;MAea,iBAAiB,CAAA;;AAEnB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;;AAEhB,IAAA,SAAS,GAAG,KAAK,CAAC,EAAE,gFAAC;uGAJnB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,qcARlB,CAAA,YAAA,CAAc,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,miBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAQb,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAEhC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,CAAA,YAAA,CAAc,EAAA,IAAA,EAElB;AACJ,wBAAA,KAAK,EAAE,aAAa;AACpB,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,MAAM,EAAE,aAAa;AACtB,qBAAA,EAAA,MAAA,EAAA,CAAA,miBAAA,CAAA,EAAA;;AASH,MAAM,SAAS,GAAwC;AACrD,IAAA,KAAK,EAAE;QACL,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;AAC1F,QAAA,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;AAC1F,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;QACzF,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;AAC3F,KAAA;AACD,IAAA,IAAI,EAAE;QACJ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;AACzF,QAAA,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;AACzF,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;QACxF,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;AAC1F,KAAA;CACF;AAED;;;;;;;;;AASG;MAaU,UAAU,CAAA;;AAEZ,IAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,gFAAU;;AAGrC,IAAA,kBAAkB,GAAG,KAAK,CAAuC,OAAO,yFAAC;;AAGzE,IAAA,kBAAkB,GAAG,KAAK,CAAC,KAAK,yFAAC;;AAGjC,IAAA,mBAAmB,GAAG,KAAK,CAAC,GAAG,0FAAC;;AAGhC,IAAA,mBAAmB,GAAG,KAAK,CAAC,CAAC,0FAAC;AAEtB,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;IACjE,UAAU,GAAsB,IAAI;IACpC,SAAS,GAAyC,IAAI;IACtD,SAAS,GAAyC,IAAI;;AAG3C,IAAA,eAAe,GAAG,MAAM,CAAgB,IAAI,sFAAC;;IAGtD,IAAI,GAAA;QACZ,IAAI,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE;QACrD,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE;YAAE;AAEpC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACrB,IAAI,CAAC,MAAM,EAAE;AACf,QAAA,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAChC;;IAGU,IAAI,GAAA;QACZ,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE;YAAE;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAA,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAChC;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;QACxC;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAAE;AAEnC,QAAA,MAAM,EAAE,GAAG,CAAA,YAAA,EAAe,aAAa,EAAE,EAAE;AAC3C,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,iBAAiB,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1C,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACvC,QAAA,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9B;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC;QAE5E,MAAM,gBAAgB,GAAG,uCAAuC,CAC9D,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU;aAEd,aAAa,CAAC,SAAS;aACvB,sBAAsB,CAAC,KAAK;aAC5B,QAAQ,CAAC,IAAI,CAAC;QAEjB,MAAM,cAAc,GAAG,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC;AAEpE,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE;YACrC,gBAAgB;YAChB,cAAc;AACd,YAAA,UAAU,EAAE,mBAAmB;AAChC,SAAA,CAAC;IACJ;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;IACF;uGAzGW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,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,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAZtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,cAAc,EAAE,QAAQ;AACxB,wBAAA,cAAc,EAAE,QAAQ;AACxB,wBAAA,WAAW,EAAE,QAAQ;AACrB,wBAAA,YAAY,EAAE,QAAQ;AACtB,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,yBAAyB,EAAE,mBAAmB;AAC/C,qBAAA;AACF,iBAAA;;;AC9ED;;;;;;;;;AASG;MAcU,WAAW,CAAA;;AAEb,IAAA,OAAO,GAAG,KAAK,CAAsC,MAAM,8EAAC;;AAG5D,IAAA,KAAK,GAAG,KAAK,CAAC,MAAM,4EAAC;;AAGrB,IAAA,MAAM,GAAG,KAAK,CAAC,EAAE,6EAAC;;AAGlB,IAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,+EAAC;AAEZ,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QAChD,IAAI,IAAI,CAAC,MAAM,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC,MAAM,EAAE;AACvC,QAAA,QAAQ,IAAI,CAAC,OAAO,EAAE;AACpB,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,KAAK;AACd,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,IAAI,CAAC,KAAK,EAAE;AACrB,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,OAAO;;AAEpB,IAAA,CAAC,qFAAC;AAEiB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,OAAO,GAAG,CAAC,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AAChD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,kFAAC;uGA7BS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,+tBATZ,CAAA,CAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,inBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FASD,WAAW,EAAA,UAAA,EAAA,CAAA;kBAbvB,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,EAAE,EAAA,IAAA,EAEN;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,eAAe,EAAE,SAAS;AAC1B,wBAAA,gBAAgB,EAAE,kBAAkB;AACpC,wBAAA,aAAa,EAAE,MAAM;AACtB,qBAAA,EAAA,MAAA,EAAA,CAAA,inBAAA,CAAA,EAAA;;;ACKH,IAAI,OAAO,GAAG,CAAC;AAEf;;;;;;;;AAQG;MAEU,eAAe,CAAA;AACjB,IAAA,MAAM,GAAG,MAAM,CAAc,EAAE,6EAAC;AAExB,IAAA,MAAM,GAAG,IAAI,GAAG,EAAyC;AAE1E;;;AAGG;IACH,IAAI,CAAC,OAAe,EAAE,OAAsB,EAAA;AAC1C,QAAA,MAAM,EAAE,GAAG,CAAA,UAAA,EAAa,OAAO,EAAE,EAAE;AACnC,QAAA,MAAM,KAAK,GAAc;YACvB,EAAE;YACF,OAAO;AACP,YAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS;AACtC,YAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;AACnC,YAAA,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI;SAC1C;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;AAE9C,QAAA,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE;AACtB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;YAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;QAC5B;AAEA,QAAA,OAAO,EAAE;IACX;;AAGA,IAAA,OAAO,CAAC,EAAU,EAAA;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACjC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,YAAY,CAAC,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB;QACA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D;;IAGA,KAAK,GAAA;QACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;YACxC,YAAY,CAAC,KAAK,CAAC;QACrB;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACrB;uGA9CW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA;;2FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;AAkDlC;;;;AAIG;MAsBU,QAAQ,CAAA;;AAEV,IAAA,OAAO,GAAG,KAAK,CAAe,SAAS,8EAAC;;AAGxC,IAAA,WAAW,GAAG,KAAK,CAAC,IAAI,kFAAC;;AAGzB,IAAA,OAAO,GAAG,KAAK,CAAC,EAAE,8EAAC;;AAGnB,IAAA,OAAO,GAAG,KAAK,CAAC,EAAE,8EAAC;;IAGnB,SAAS,GAAG,MAAM,EAAU;AAElB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,kFAAC;IAElE,SAAS,GAAA;QACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACrC;uGApBW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBT;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y+DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAOU,QAAQ,EAAA,UAAA,EAAA,CAAA;kBArBpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cACT,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;GAUT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,IAAI,EAAE,QAAQ;AACf,qBAAA,EAAA,MAAA,EAAA,CAAA,y+DAAA,CAAA,EAAA;;AAyBH;;;;;;;;AAQG;MAwBU,iBAAiB,CAAA;AACT,IAAA,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;AACxC,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGvC,IAAA,QAAQ,GAAG,KAAK,CAAgE,cAAc,+EAAC;AAErF,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,kFAAC;AAE9E,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5D;uGAXW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlBlB;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ymBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA/CU,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAuDR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAvB7B,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,QAAQ,CAAC,EAAA,eAAA,EACF,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;GAUT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,WAAW,EAAE,QAAQ;AACrB,wBAAA,IAAI,EAAE,QAAQ;AACf,qBAAA,EAAA,MAAA,EAAA,CAAA,ymBAAA,CAAA,EAAA;;;ACjKH;;;;;;;;;;;AAWG;MA2BU,SAAS,CAAA;;AAEX,IAAA,GAAG,GAAG,KAAK,CAAC,EAAE,0EAAC;;AAGf,IAAA,GAAG,GAAG,KAAK,CAAC,EAAE,0EAAC;;AAGf,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;;AAGhB,IAAA,IAAI,GAAG,KAAK,CAAmC,IAAI,2EAAC;;AAGpD,IAAA,KAAK,GAAG,KAAK,CAAsB,QAAQ,4EAAC;;AAG5C,IAAA,MAAM,GAAG,KAAK,CAA8C,EAAE,6EAAC;;AAGrD,IAAA,SAAS,GAAG,MAAM,CAAC,IAAI,gFAAC;;AAGxB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;AACpB,QAAA,OAAO;aACJ,KAAK,CAAC,GAAG;aACT,MAAM,CAAC,OAAO;AACd,aAAA,KAAK,CAAC,CAAC,EAAE,CAAC;AACV,aAAA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;aAC7B,IAAI,CAAC,EAAE,CAAC;AACb,IAAA,CAAC,+EAAC;;AAGiB,IAAA,SAAS,GAAG,QAAQ,CACrC,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,QAAQ,gFAC5C;;AAGkB,IAAA,WAAW,GAAG,QAAQ,CACvC,MAAM,QAAQ,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,kFAClD;AAED,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,YAAA,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAA,CAAC,CAAC;IACJ;uGAjDW,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,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,KAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtBV;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,o5EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAQU,SAAS,EAAA,UAAA,EAAA,CAAA;kBA1BrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;GAcT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,IAAI,EAAE,KAAK;AACX,wBAAA,mBAAmB,EAAE,aAAa;AACnC,qBAAA,EAAA,MAAA,EAAA,CAAA,o5EAAA,CAAA,EAAA;;AAsDH;;;;;;;;;;;;AAYG;MAiBU,cAAc,CAAA;;AAEhB,IAAA,GAAG,GAAG,KAAK,CAAC,CAAC,0EAAC;;AAGd,IAAA,IAAI,GAAG,KAAK,CAAmC,IAAI,2EAAC;IAE5C,SAAS,GAAG,eAAe,CAAC,SAAS,iFAAI,IAAI,EAAE,UAAU,EAAA,CAAG;IAE1D,aAAa,GAAG,QAAQ,CAAC,MAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAClD;AAED,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;AAChC,gBAAA,EAAE,CAAC,aAA6B,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,GAAG,EAAE;AAC1E,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;uGApBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,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,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,0BAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAOoB,SAAS,EAAA,IAAA,EAAU,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnBhE;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,o5EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAOU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhB1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;GAKT,EAAA,IAAA,EAEK;AACJ,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,SAAS,EAAE,wBAAwB;AACpC,qBAAA,EAAA,MAAA,EAAA,CAAA,o5EAAA,CAAA,EAAA;AAS4C,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,SAAS,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACnI9E;;;;;;;;;AASG;MAmBU,WAAW,CAAA;;AAEb,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,4EAAC;;AAGxB,IAAA,GAAG,GAAG,KAAK,CAAS,GAAG,0EAAC;;AAGxB,IAAA,OAAO,GAAG,KAAK,CAA+C,SAAS,8EAAC;;AAGxE,IAAA,IAAI,GAAG,KAAK,CAAqB,IAAI,2EAAC;;AAGtC,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,oFAAC;AAElB,IAAA,YAAY,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAChD;IAEkB,SAAS,GAAG,QAAQ,CAAC,MACtC,IAAI,CAAC,aAAa;AAChB,UAAE;AACF,UAAE,CAAA,EAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,CAAA,CAAA,CAAG,gFACnD;AAEkB,IAAA,WAAW,GAAG,QAAQ,CACvC,MACE,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,aAAa,EAAE,GAAG,mBAAmB,GAAG,EAAE,CAAA,CAAE,kFACpG;uGA7BU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,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,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,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,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,GAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,yCAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAdZ;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y8BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAUU,WAAW,EAAA,UAAA,EAAA,CAAA;kBAlBvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,cACZ,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;GAIT,EAAA,IAAA,EAEK;AACJ,wBAAA,IAAI,EAAE,aAAa;AACnB,wBAAA,eAAe,EAAE,GAAG;AACpB,wBAAA,sBAAsB,EAAE,yCAAyC;AACjE,wBAAA,sBAAsB,EAAE,gCAAgC;AACxD,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,y8BAAA,CAAA,EAAA;;;MCzBU,eAAe,GAAG,IAAI,cAAc,CAAwB,iBAAiB;;ACI1F;;;;;;;;;;;;AAYG;MAyBU,cAAc,CAAA;AACR,IAAA,QAAQ,GAAG,MAAM,CAAW,EAAE,+EAAC;IACxC,OAAO,GAAG,CAAC;;AAGV,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAClC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,IAAA,CAAC,iFAAC;;IAGF,YAAY,GAAA;AACV,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AAC3C,QAAA,OAAO,EAAE;IACX;;AAGA,IAAA,cAAc,CAAC,EAAU,EAAA;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5D;uGApBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EApBd;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,UAAU,EAAE,CAAC,EAAkB,MAAM;AACnC,oBAAA,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE;oBACrC,cAAc,EAAE,CAAC,EAAU,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;oBACrD,UAAU,EAAE,EAAE,CAAC,UAAU;iBAC1B,CAAC;gBACF,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;SACF,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,u6BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAxB1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cACf,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,UAAU,EAAE,CAAC,EAAkB,MAAM;AACnC,gCAAA,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE;gCACrC,cAAc,EAAE,CAAC,EAAU,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;gCACrD,UAAU,EAAE,EAAE,CAAC,UAAU;6BAC1B,CAAC;AACF,4BAAA,IAAI,EAAE,CAAA,cAAA,CAAgB;AACvB,yBAAA;qBACF,EAAA,QAAA,EACS;;;;;;AAMT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,u6BAAA,CAAA,EAAA;;AA0BH;;;AAGG;MAkBU,iBAAiB,CAAA;;AAEnB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;AAER,IAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AACjC,IAAA,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,8EAAC;IAElB,SAAS,GAAG,QAAQ,CACrC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAC1E;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAC/C;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C;IACF;uGAnBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,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,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAblB;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,u6BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjB7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cACnB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;GAOT,EAAA,IAAA,EAEK;AACJ,wBAAA,oBAAoB,EAAE,aAAa;AACpC,qBAAA,EAAA,MAAA,EAAA,CAAA,u6BAAA,CAAA,EAAA;;;AC/EH;;;;;;;AAOG;MAwEU,aAAa,CAAA;;AAEf,IAAA,IAAI,GAAG,KAAK,CAAC,CAAC,2EAAC;;AAGf,IAAA,SAAS,GAAG,KAAK,CAAC,CAAC,gFAAC;;AAGpB,IAAA,YAAY,GAAG,KAAK,CAAC,CAAC,mFAAC;;AAGvB,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,oFAAC;AAEjB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAiB;AACvD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;QAEpC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAElD,MAAM,KAAK,GAAe,EAAE;;AAG5B,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAErC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;AAC5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;;AAGrD,QAAA,IAAI,IAAI,GAAG,CAAC,EAAE;AACZ,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;QACzD;;AAGA,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACvC;;AAGA,QAAA,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE;AACrB,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;QACvD;;AAGA,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAEzC,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,gFAAC;AAEQ,IAAA,IAAI,CAAC,CAAS,EAAA;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IACxB;IAEU,MAAM,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B;IAEU,MAAM,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B;IAEU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACd;IAEU,MAAM,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B;uGApEW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,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,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,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,84CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAvEzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cACd,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgET,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,84CAAA,CAAA,EAAA;;;MCjFU,UAAU,GAAG,IAAI,cAAc,CAAmB,YAAY;;ACQ3E,IAAI,MAAM,GAAG,CAAC;AAEd;;;;;;;;;;;;;;;;;AAiBG;MAsCU,SAAS,CAAA;;AAEX,IAAA,IAAI,GAAG,KAAK,CAAC,KAAK,2EAAC;;AAGnB,IAAA,QAAQ,GAAG,KAAK,CAAsC,OAAO,+EAAC;;AAG9D,IAAA,IAAI,GAAG,KAAK,CAA8B,IAAI,2EAAC;;AAG/C,IAAA,eAAe,GAAG,KAAK,CAAC,IAAI,sFAAC;;AAG7B,IAAA,QAAQ,GAAG,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE;AAE9B,IAAA,QAAQ,GAAG,CAAA,WAAA,EAAc,MAAM,EAAE,EAAE;AACnC,IAAA,SAAS,GAAG,SAAS,CAAgC,UAAU,gFAAC;AAClE,IAAA,SAAS,GAAG,MAAM,CAAqB,IAAI,gFAAC;AAE1C,IAAA,WAAW,GAAG,QAAQ,CACvC,MACE,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,GAAG,EAAE,CAAA,CAAE,kFACpF;AAED,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa;AAC9C,YAAA,IAAI,CAAC,MAAM;gBAAE;AACb,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,aAA4B,CAAC;gBACzD,MAAM,CAAC,SAAS,EAAE;YACpB;iBAAO;gBACL,IAAI,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,KAAK,EAAE;AAC/B,gBAAA,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE;AACzB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1B;AACF,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,QAAQ,CAAC,KAAY,EAAA;QAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AAEU,IAAA,eAAe,CAAC,KAAiB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE;AAC9E,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;IACF;uGAjDW,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAhCT;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,UAAU,EAAE,CAAC,MAAiB,MAAM;oBAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,KAAK,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;iBACpC,CAAC;gBACF,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,aAAA;SACF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m8GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA5BS,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAkCT,SAAS,EAAA,UAAA,EAAA,CAAA;kBArCrB,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,CAAC,UAAU,CAAC,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,UAAU,EAAE,CAAC,MAAiB,MAAM;gCAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gCACzB,KAAK,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;6BACpC,CAAC;AACF,4BAAA,IAAI,EAAE,CAAA,SAAA,CAAW;AAClB,yBAAA;qBACF,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;GAgBT,EAAA,IAAA,EAEK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA,EAAA,MAAA,EAAA,CAAA,m8GAAA,CAAA,EAAA;0gBAmBuE,UAAU,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;AAmCpF;;;AAGG;MAoCU,eAAe,CAAA;AACP,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;uGADpC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/BhB;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m8GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAMU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnC3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cACjB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBT,EAAA,IAAA,EAEK;AACJ,wBAAA,WAAW,EAAE,kBAAkB;AAChC,qBAAA,EAAA,MAAA,EAAA,CAAA,m8GAAA,CAAA,EAAA;;AAMH;;AAEG;MAQU,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,8EAHjB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m8GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGf,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,YACrC,CAAA,cAAA,CAAgB,EAAA,MAAA,EAAA,CAAA,m8GAAA,CAAA,EAAA;;AAK5B;;AAEG;MAQU,eAAe,CAAA;uGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,6EAHhB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m8GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cACjB,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,YACrC,CAAA,cAAA,CAAgB,EAAA,MAAA,EAAA,CAAA,m8GAAA,CAAA,EAAA;;;AC1L5B;AACA;;ACDA;;AAEG;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@atelier-ui/angular",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Atelier UI component library for Angular — LLM-optimised, accessible, design-token-driven",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"angular",
|
|
7
|
+
"ui",
|
|
8
|
+
"components",
|
|
9
|
+
"design-system",
|
|
10
|
+
"atelier-ui",
|
|
11
|
+
"llm"
|
|
12
|
+
],
|
|
13
|
+
"author": "Atelier UI",
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/DominikPieper/atelier-ui.git",
|
|
18
|
+
"directory": "libs/angular"
|
|
19
|
+
},
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"@angular/core": "^21.0.0",
|
|
22
|
+
"@angular/common": "^21.0.0",
|
|
23
|
+
"@angular/forms": "^21.0.0",
|
|
24
|
+
"@atelier-ui/spec": "*"
|
|
25
|
+
},
|
|
26
|
+
"module": "fesm2022/atelier-ui-angular.mjs",
|
|
27
|
+
"typings": "types/atelier-ui-angular.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
"./package.json": {
|
|
30
|
+
"default": "./package.json"
|
|
31
|
+
},
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./types/atelier-ui-angular.d.ts",
|
|
34
|
+
"default": "./fesm2022/atelier-ui-angular.mjs"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"sideEffects": false,
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"tslib": "^2.3.0"
|
|
40
|
+
}
|
|
41
|
+
}
|