{"version":3,"file":"clr-angular-forms-combobox.mjs","sources":["../../../projects/angular/forms/combobox/providers/combobox-container.service.ts","../../../projects/angular/forms/combobox/combobox-container.ts","../../../projects/angular/forms/combobox/model/combobox.model.ts","../../../projects/angular/forms/combobox/model/multi-select-combobox.model.ts","../../../projects/angular/forms/combobox/model/single-select-combobox.model.ts","../../../projects/angular/forms/combobox/option-selected.directive.ts","../../../projects/angular/forms/combobox/model/pseudo-focus.model.ts","../../../projects/angular/forms/combobox/providers/option-selection.service.ts","../../../projects/angular/forms/combobox/providers/combobox-focus-handler.service.ts","../../../projects/angular/forms/combobox/option.ts","../../../projects/angular/forms/combobox/options.ts","../../../projects/angular/forms/combobox/combobox.ts","../../../projects/angular/forms/combobox/combobox.html","../../../projects/angular/forms/combobox/option-items.directive.ts","../../../projects/angular/forms/combobox/option-group.ts","../../../projects/angular/forms/combobox/combobox.module.ts","../../../projects/angular/forms/combobox/index.ts","../../../projects/angular/forms/combobox/clr-angular-forms-combobox.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ComboboxContainerService {\n  labelOffset = 0;\n  labelText: string;\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { AfterContentInit, AfterViewInit, Component, ElementRef, Optional, ViewChild } from '@angular/core';\nimport {\n  ClrAbstractContainer,\n  ControlClassService,\n  ControlIdService,\n  LayoutService,\n  NgControlService,\n} from '@clr/angular/forms/common';\n\nimport { ComboboxContainerService } from './providers/combobox-container.service';\n@Component({\n  selector: 'clr-combobox-container',\n  template: `\n    <ng-content select=\"label\"></ng-content>\n    @if (!label && addGrid()) {\n      <label></label>\n    }\n    <div class=\"clr-control-container\" [ngClass]=\"controlClass()\" #controlContainer>\n      <ng-content select=\"clr-combobox\"></ng-content>\n      @if (showHelper) {\n        <ng-content select=\"clr-control-helper\"></ng-content>\n      }\n      @if (showInvalid) {\n        <ng-content select=\"clr-control-error\"></ng-content>\n      }\n      @if (showValid) {\n        <ng-content select=\"clr-control-success\"></ng-content>\n      }\n    </div>\n  `,\n  host: {\n    '[class.clr-form-control]': 'true',\n    '[class.clr-combobox-form-control]': 'true',\n    '[class.clr-form-control-disabled]': 'control?.disabled',\n    '[class.clr-row]': 'addGrid()',\n  },\n  providers: [NgControlService, ControlIdService, ControlClassService, ComboboxContainerService],\n  standalone: false,\n})\nexport class ClrComboboxContainer extends ClrAbstractContainer implements AfterContentInit, AfterViewInit {\n  @ViewChild('controlContainer') controlContainer: ElementRef<HTMLElement>;\n\n  constructor(\n    @Optional() layoutService: LayoutService,\n    controlClassService: ControlClassService,\n    ngControlService: NgControlService,\n    private containerService: ComboboxContainerService,\n    public el: ElementRef<HTMLElement>\n  ) {\n    super(layoutService, controlClassService, ngControlService);\n  }\n\n  ngAfterContentInit() {\n    if (this.label) {\n      this.containerService.labelText = this.label.labelText;\n    }\n  }\n\n  ngAfterViewInit() {\n    this.containerService.labelOffset =\n      this.controlContainer.nativeElement.offsetHeight - this.el.nativeElement.offsetHeight;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport type ClrComboboxIdentityFunction<T> = (item: T) => any;\n\nexport type ClrComboboxResolverFunction<T> = (input: string) => T;\n\nexport abstract class ComboboxModel<T> {\n  model: T | T[];\n  displayField?: string;\n  identityFn: ClrComboboxIdentityFunction<T> = (item: T) => item;\n  abstract containsItem(item: T): boolean;\n  abstract select(item: T): void;\n  abstract unselect(item: T): void;\n  abstract toString(displayField?: string, index?: number): string;\n  abstract isEmpty(): boolean;\n  abstract pop(): T; // pops the last item\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ComboboxModel } from './combobox.model';\n\nexport class MultiSelectComboboxModel<T> extends ComboboxModel<T> {\n  override model: T[];\n  override displayField: string;\n\n  containsItem(item: T): boolean {\n    if (this.model === null || this.model === undefined) {\n      return false;\n    }\n    return this.model.some(m => this.identityFn(m) === this.identityFn(item));\n  }\n\n  select(item: T): void {\n    this.addItem(item);\n  }\n\n  unselect(item: T): void {\n    this.removeItem(item);\n  }\n\n  isEmpty(): boolean {\n    return !(this.model && this.model.length > 0);\n  }\n\n  pop(): T {\n    let item;\n    if (this.model && this.model.length > 0) {\n      item = this.model[this.model.length - 1];\n      this.removeItem(item);\n    }\n    return item;\n  }\n\n  toString(displayField?: string, index = -1): string {\n    let displayString = '';\n\n    if (this.model) {\n      // If the model is array, we can use a specific item from it, to retrieve the display value.\n      if (index > -1) {\n        if (this.model[index]) {\n          // If we have a defined display field, we'll use it's value as display value\n          if (displayField && (this.model[index] as any)[displayField]) {\n            displayString += (this.model[index] as any)[displayField];\n          } else {\n            // If we don't have a defined display field, we'll use the toString representation of the\n            // item as display value.\n            displayString += this.model[index].toString();\n          }\n        }\n      } else {\n        this.model.forEach((model: T) => {\n          // If we have a defined display field, we'll use it's value as display value\n          if (displayField && (model as any)[displayField]) {\n            displayString += (model as any)[displayField];\n          } else {\n            // If we don't have a defined display field, we'll use the toString representation of the\n            // model as display value.\n            displayString += model.toString();\n          }\n          displayString += ' ';\n        });\n      }\n    }\n\n    return displayString.trim();\n  }\n\n  private addItem(item: T) {\n    if (!this.containsItem(item)) {\n      this.model = this.model || [];\n      this.model.push(item);\n    }\n  }\n\n  private removeItem(item: T) {\n    if (this.model === null || this.model === undefined) {\n      return;\n    }\n\n    const index = this.model.findIndex(m => this.identityFn(m) === this.identityFn(item));\n\n    if (index > -1) {\n      this.model.splice(index, 1);\n    }\n\n    // we intentionally set the model to null for form validation\n    if (this.model.length === 0) {\n      this.model = null;\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ComboboxModel } from './combobox.model';\n\nexport class SingleSelectComboboxModel<T> extends ComboboxModel<T> {\n  override model: T;\n\n  containsItem(item: T): boolean {\n    if (this.model === null || this.model === undefined) {\n      return false;\n    }\n    return this.identityFn(this.model) === this.identityFn(item);\n  }\n\n  select(item: T): void {\n    this.model = item;\n  }\n\n  unselect(item: T): void {\n    if (this.containsItem(item)) {\n      this.model = null;\n    }\n  }\n\n  isEmpty(): boolean {\n    return !this.model;\n  }\n\n  pop(): T {\n    const item = this.model;\n    this.model = null;\n    return item;\n  }\n\n  toString(displayField?: string): string {\n    if (!this.model) {\n      return '';\n    }\n    if (displayField && (this.model as any)[displayField]) {\n      return (this.model as any)[displayField];\n    } else {\n      return this.model.toString();\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[clrOptionSelected]',\n  standalone: false,\n})\nexport class ClrOptionSelected<T> {\n  @Input('clrOptionSelected') selected: T;\n\n  constructor(public template: TemplateRef<{ $implicit: T }>) {}\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SingleSelectComboboxModel } from './single-select-combobox.model';\n\nexport class PseudoFocusModel<T> extends SingleSelectComboboxModel<T> {\n  private _focusChanged = new BehaviorSubject<T>(null);\n  get focusChanged(): Observable<T> {\n    return this._focusChanged.asObservable();\n  }\n\n  override select(item: T): void {\n    if (this.model !== item) {\n      this.model = item;\n      this._focusChanged.next(item);\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';\n\nimport { ClrComboboxIdentityFunction, ClrComboboxResolverFunction, ComboboxModel } from '../model/combobox.model';\nimport { MultiSelectComboboxModel } from '../model/multi-select-combobox.model';\n\n@Injectable()\nexport class OptionSelectionService<T> {\n  loading = false;\n  editable = false;\n  showSelectAll = false;\n  selectionModel: ComboboxModel<T>;\n  inputChanged: Observable<string>;\n  // Display all options on first open, even if filter text exists.\n  // https://github.com/vmware-clarity/ng-clarity/issues/386\n  showAllOptions = true;\n\n  private _currentInput = '';\n  private _displayField: string;\n  private _inputChanged = new BehaviorSubject('');\n  private _selectionChanged = new ReplaySubject<ComboboxModel<T>>(1);\n  private _selectAllRequested = new Subject<void>();\n\n  constructor() {\n    this.inputChanged = this._inputChanged.asObservable();\n  }\n\n  get displayField() {\n    return this._displayField;\n  }\n  set displayField(value: string) {\n    this._displayField = value;\n    if (this.selectionModel) {\n      this.selectionModel.displayField = value;\n    }\n  }\n\n  get currentInput(): string {\n    return this._currentInput;\n  }\n  set currentInput(input) {\n    // clear value in single selection model when input is empty\n    if (input === '' && !this.multiselectable) {\n      this.setSelectionValue(null);\n    }\n    this._currentInput = input;\n    this._inputChanged.next(input);\n  }\n\n  // This observable is for notifying the ClrOption to update its\n  // selection by comparing the value\n  get selectionChanged(): Observable<ComboboxModel<T>> {\n    return this._selectionChanged.asObservable();\n  }\n\n  get multiselectable(): boolean {\n    return this.selectionModel instanceof MultiSelectComboboxModel;\n  }\n\n  get identityFn(): ClrComboboxIdentityFunction<T> {\n    return this._identityFn;\n  }\n\n  set identityFn(value: ClrComboboxIdentityFunction<T>) {\n    this._identityFn = value || ((item: T) => item);\n    if (this.selectionModel) {\n      this.selectionModel.identityFn = this._identityFn;\n    }\n  }\n\n  get selectAllRequested(): Observable<void> {\n    return this._selectAllRequested.asObservable();\n  }\n\n  requestSelectAll() {\n    this._selectAllRequested.next();\n  }\n\n  editableResolver: ClrComboboxResolverFunction<T> = (input: string) => input as T;\n\n  select(item: T) {\n    if (item === null || item === undefined || this.selectionModel.containsItem(item)) {\n      return;\n    }\n    this.selectionModel.select(item);\n    this._selectionChanged.next(this.selectionModel);\n  }\n\n  toggle(item: T) {\n    if (item === null || item === undefined) {\n      return;\n    }\n    if (this.selectionModel.containsItem(item)) {\n      this.selectionModel.unselect(item);\n    } else {\n      this.selectionModel.select(item);\n    }\n    this._selectionChanged.next(this.selectionModel);\n  }\n\n  selectMany(items: T[]) {\n    let changed = false;\n    for (const item of items) {\n      if (!this.selectionModel.containsItem(item)) {\n        this.selectionModel.select(item);\n        changed = true;\n      }\n    }\n    if (changed) {\n      this._selectionChanged.next(this.selectionModel);\n    }\n  }\n\n  unselectMany(items: T[]) {\n    if (!this.selectionModel || this.selectionModel.isEmpty()) {\n      return;\n    }\n\n    let changed = false;\n    for (const item of items) {\n      if (this.selectionModel.containsItem(item)) {\n        this.selectionModel.unselect(item);\n        changed = true;\n      }\n    }\n\n    if (changed) {\n      this._selectionChanged.next(this.selectionModel);\n    }\n  }\n\n  unselect(item: T) {\n    if (item === null || item === undefined || !this.selectionModel.containsItem(item)) {\n      return;\n    }\n    this.selectionModel.unselect(item);\n    this._selectionChanged.next(this.selectionModel);\n  }\n\n  /**\n   * Checks whether all given items are currently selected, using identityFn for comparison.\n   */\n  containsAll(items: T[]): boolean {\n    if (!items.length || this.selectionModel.isEmpty()) {\n      return false;\n    }\n    return items.every(item => this.selectionModel.containsItem(item));\n  }\n\n  setSelectionValue(value: T | T[]): void {\n    if (!this.selectionModel) {\n      return;\n    }\n\n    const current = this.selectionModel.model;\n    if (this.valuesEqualByIdentity(current, value)) {\n      return;\n    }\n\n    this.selectionModel.model = value;\n    this._selectionChanged.next(this.selectionModel);\n  }\n\n  private _identityFn: ClrComboboxIdentityFunction<T> = (item: T) => item;\n\n  private valuesEqualByIdentity(current: T | T[], value: T | T[]): boolean {\n    if (current === value) {\n      return true;\n    }\n    // Check if both are null or undefined or empty string.\n    if (\n      (current === null || current === undefined || current === '') &&\n      (value === null || value === undefined || value === '')\n    ) {\n      return true;\n    }\n    // Check if one is null or undefined or empty string and the other is not.\n    if (\n      current === null ||\n      current === undefined ||\n      current === '' ||\n      value === null ||\n      value === undefined ||\n      value === ''\n    ) {\n      return false;\n    }\n\n    if (this.multiselectable) {\n      const cur = current as T[];\n      const val = value as T[];\n      if (cur.length !== val.length) {\n        return false;\n      }\n      // We only consider values equal if they are ordered the same way.\n      const curIds = cur.map(this._identityFn);\n      const valIds = val.map(this._identityFn);\n      return curIds.every((id, i) => id === valIds[i]);\n    } else {\n      return this._identityFn(current as T) === this._identityFn(value as T);\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ClrPopoverService } from '@clr/angular/popover/common';\nimport { ArrowKeyDirection, customFocusableItemProvider, Keys } from '@clr/angular/utils';\nimport { take } from 'rxjs/operators';\n\nimport { OptionSelectionService } from './option-selection.service';\nimport { PseudoFocusModel } from '../model/pseudo-focus.model';\nimport { SELECT_ALL_ID } from '../options';\n\n@Injectable()\nexport class ComboboxFocusHandler<T> {\n  pseudoFocus: PseudoFocusModel<OptionData<T>> = new PseudoFocusModel<OptionData<T>>();\n\n  private renderer: Renderer2;\n  private _trigger: HTMLElement;\n  private _listbox: HTMLElement;\n  private _textInput: HTMLElement;\n  private optionData: OptionData<T>[] = [];\n\n  constructor(\n    rendererFactory: RendererFactory2,\n    private popoverService: ClrPopoverService,\n    private selectionService: OptionSelectionService<T>,\n    @Inject(PLATFORM_ID) private platformId: any\n  ) {\n    this.handleFocusSubscription();\n    // Direct renderer injection can be problematic and leads to failing tests at least\n    this.renderer = rendererFactory.createRenderer(null, null);\n  }\n\n  get trigger() {\n    return this._trigger;\n  }\n  set trigger(el: HTMLElement) {\n    this._trigger = el;\n    this.addFocusOnBlurListener(el);\n  }\n\n  get listbox() {\n    return this._listbox;\n  }\n  set listbox(el: HTMLElement) {\n    this._listbox = el;\n    this.addFocusOnBlurListener(el);\n  }\n\n  get textInput() {\n    return this._textInput;\n  }\n  set textInput(el: HTMLElement) {\n    this._textInput = el;\n    this.renderer.listen(el, 'keydown', event => !this.handleTextInput(event));\n    this.addFocusOnBlurListener(el);\n  }\n\n  focusInput() {\n    if (this.textInput && isPlatformBrowser(this.platformId)) {\n      this.textInput.focus({ preventScroll: true });\n    }\n  }\n\n  focusFirstActive() {\n    if (this.optionData.length > 0) {\n      if (this.selectionService.selectionModel.isEmpty()) {\n        this.pseudoFocus.select(this.optionData[0]);\n      } else {\n        let firstActive: T;\n        if (this.selectionService.multiselectable) {\n          firstActive = (this.selectionService.selectionModel.model as T[])[0];\n        } else {\n          firstActive = this.selectionService.selectionModel.model as T;\n        }\n        const activeProxy = this.optionData.find(option => option.value === firstActive);\n        if (activeProxy) {\n          // active element is visible\n          this.pseudoFocus.select(activeProxy);\n        } else {\n          // we have active element, but it's filtered out\n          this.pseudoFocus.select(this.optionData[0]);\n        }\n        this.scrollIntoSelectedModel('auto');\n      }\n    }\n  }\n\n  addOptionValues(options: OptionData<T>[]) {\n    this.optionData = options;\n  }\n\n  focusOption(option: OptionData<T>) {\n    this.pseudoFocus.select(option);\n  }\n\n  private handleFocusSubscription() {\n    this.popoverService.openChange.subscribe(open => {\n      if (!open) {\n        this.pseudoFocus.model = null;\n      }\n    });\n  }\n\n  private moveFocusTo(direction: ArrowKeyDirection) {\n    let index = this.optionData.findIndex(option => option.equals(this.pseudoFocus.model));\n    if (direction === ArrowKeyDirection.UP) {\n      if (index === -1 || index === 0) {\n        index = this.optionData.length - 1;\n      } else {\n        index--;\n      }\n    } else if (direction === ArrowKeyDirection.DOWN) {\n      if (index === -1 || index === this.optionData.length - 1) {\n        index = 0;\n      } else {\n        index++;\n      }\n    }\n    this.pseudoFocus.select(this.optionData[index]);\n    this.scrollIntoSelectedModel();\n  }\n\n  private openAndMoveTo(direction: ArrowKeyDirection) {\n    if (!this.popoverService.open) {\n      this.popoverService.openChange.pipe(take(1)).subscribe(open => {\n        if (open) {\n          this.moveFocusTo(direction);\n        }\n      });\n      this.popoverService.open = true;\n    } else {\n      this.moveFocusTo(direction);\n    }\n  }\n\n  // this service is only interested in keys that may move the focus\n  private handleTextInput(event: KeyboardEvent): boolean {\n    let preventDefault = false;\n    const key = event.key;\n    if (event) {\n      switch (key) {\n        case Keys.Enter:\n          if (this.popoverService.open && this.pseudoFocus.model) {\n            if (this.selectionService.multiselectable) {\n              if (this.pseudoFocus.model.id === SELECT_ALL_ID) {\n                this.selectionService.requestSelectAll();\n              } else {\n                this.selectionService.toggle(this.pseudoFocus.model.value);\n              }\n            } else {\n              this.selectionService.select(this.pseudoFocus.model.value);\n            }\n            preventDefault = true;\n          }\n          break;\n        case Keys.Space:\n          if (!this.popoverService.open) {\n            this.popoverService.open = true;\n            preventDefault = true;\n          }\n          break;\n        case Keys.ArrowUp:\n          this.preventViewportScrolling(event);\n          this.openAndMoveTo(ArrowKeyDirection.UP);\n          preventDefault = true;\n          break;\n        case Keys.ArrowDown:\n          this.preventViewportScrolling(event);\n          this.openAndMoveTo(ArrowKeyDirection.DOWN);\n          preventDefault = true;\n          break;\n        default:\n          // Any other keypress\n          if (\n            event.key !== Keys.Tab &&\n            !(this.selectionService.multiselectable && event.key === Keys.Backspace) &&\n            !(event.key === Keys.Escape) &&\n            !this.popoverService.open\n          ) {\n            this.popoverService.open = true;\n          }\n          break;\n      }\n    }\n    return preventDefault;\n  }\n\n  private scrollIntoSelectedModel(behavior: ScrollBehavior = 'smooth') {\n    if (this.pseudoFocus.model && this.pseudoFocus.model.el) {\n      this.pseudoFocus.model.el.scrollIntoView({ behavior, block: 'center', inline: 'nearest' });\n    }\n  }\n\n  private preventViewportScrolling(event: KeyboardEvent) {\n    event.preventDefault();\n    event.stopImmediatePropagation();\n  }\n\n  private addFocusOnBlurListener(el: HTMLElement) {\n    if (isPlatformBrowser(this.platformId)) {\n      this.renderer.listen(el, 'blur', event => {\n        if (this.focusOutOfComponent(event)) {\n          this.popoverService.open = false;\n        }\n      });\n    }\n  }\n\n  private focusOutOfComponent(event: FocusEvent): boolean {\n    const target = event.relatedTarget as Node;\n    return !(this.textInput.contains(target) || this.trigger.contains(target) || this.listbox.contains(target));\n  }\n}\n\nexport const COMBOBOX_FOCUS_HANDLER_PROVIDER = customFocusableItemProvider(ComboboxFocusHandler);\n\nexport class OptionData<T> {\n  el: HTMLElement;\n\n  constructor(\n    public id: string,\n    public value: T\n  ) {}\n\n  equals(other: OptionData<T>): boolean {\n    if (!other) {\n      return false;\n    }\n    return this.id === other.id && this.value === other.value;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ElementRef, HostBinding, HostListener, Input, OnInit } from '@angular/core';\nimport { ClrCommonStringsService, uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ComboboxFocusHandler, OptionData as OptionProxy } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n@Component({\n  selector: 'clr-option',\n  template: `\n    <ng-content></ng-content>\n    @if (selected) {\n      <span class=\"clr-sr-only\">{{ commonStrings.keys.comboboxSelected }}</span>\n    }\n  `,\n  host: {\n    '[class.clr-combobox-option]': 'true',\n    '[attr.role]': '\"option\"',\n    // Do not remove. Or click-selection will not work.\n    '[attr.tabindex]': '-1',\n    '[attr.id]': 'optionId',\n  },\n  standalone: false,\n})\nexport class ClrOption<T> implements OnInit {\n  // A proxy with only the necessary data to be used for a11y and the focus handler service.\n  optionProxy: OptionProxy<T> = new OptionProxy(null, null);\n\n  private _id: string;\n  private _value: T;\n\n  constructor(\n    public elRef: ElementRef<HTMLElement>,\n    public commonStrings: ClrCommonStringsService,\n    private focusHandler: ComboboxFocusHandler<T>,\n    private optionSelectionService: OptionSelectionService<T>\n  ) {\n    this.optionProxy.el = elRef.nativeElement;\n  }\n\n  @Input('id')\n  get optionId() {\n    return this._id;\n  }\n  set optionId(id: string) {\n    this._id = id;\n    this.optionProxy.id = this._id;\n  }\n\n  @Input('clrValue')\n  get value(): T {\n    return this._value;\n  }\n  set value(value: T) {\n    this._value = value;\n    this.optionProxy.value = value;\n  }\n\n  @HostBinding('class.active')\n  get selected() {\n    return (\n      this.optionSelectionService.selectionModel && this.optionSelectionService.selectionModel.containsItem(this.value)\n    );\n  }\n\n  @HostBinding('class.clr-focus')\n  get focusClass() {\n    return this.focusHandler.pseudoFocus.containsItem(this.optionProxy);\n  }\n\n  ngOnInit() {\n    if (!this._id) {\n      this._id = 'clr-option-' + uniqueIdFactory();\n      this.optionProxy.id = this._id;\n    }\n  }\n\n  @HostListener('click', ['$event'])\n  onClick(event: MouseEvent) {\n    event.stopPropagation();\n    if (this.optionSelectionService.multiselectable) {\n      this.optionSelectionService.toggle(this.value);\n    } else {\n      this.optionSelectionService.select(this.value);\n    }\n    // As the popover stays open in multi-select mode now, we have to take focus back to the input\n    // This way we achieve two things:\n    // - do not lose focus\n    // - we're still able to use onBlur for \"outside-click\" handling\n    this.focusHandler.focusOption(this.optionProxy);\n    this.focusHandler.focusInput();\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n  AfterViewInit,\n  Component,\n  ContentChildren,\n  DOCUMENT,\n  ElementRef,\n  Inject,\n  Input,\n  OnDestroy,\n  Optional,\n  QueryList,\n  ViewChild,\n} from '@angular/core';\nimport { ClrPopoverService, POPOVER_HOST_ORIGIN } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService, ClrLoadingState, IF_ACTIVE_ID, LoadingListener } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\n\nimport { ClrOption } from './option';\nimport { ComboboxFocusHandler, OptionData } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n\nlet nbOptionsComponents = 0;\n\nexport const SELECT_ALL_ID = 'select-all-id';\n\n@Component({\n  selector: 'clr-options',\n  template: `\n    @if (optionSelectionService.loading) {\n      <div class=\"clr-combobox-options-loading\">\n        <clr-spinner clrInline>\n          {{ commonStrings.keys.loading }}\n        </clr-spinner>\n        <span class=\"clr-combobox-options-text\">\n          {{ searchText(optionSelectionService.currentInput) }}\n        </span>\n      </div>\n    }\n\n    @if (showSelectAll) {\n      <div class=\"clr-combobox-select-all\">\n        <button\n          #selectAllBtn\n          type=\"button\"\n          tabindex=\"-1\"\n          class=\"btn btn-link clr-combobox-select-all-btn clr-combobox-option\"\n          [class.clr-focus]=\"isSelectAllFocused\"\n          (click)=\"toggleSelectAll($event)\"\n        >\n          {{ allVisibleSelected ? commonStrings.keys.comboboxUnselectAll : commonStrings.keys.comboboxSelectAll }}\n        </button>\n      </div>\n    }\n\n    <!-- Rendered if data set is empty -->\n    @if (emptyOptions) {\n      <div [id]=\"noResultsElementId\" role=\"option\">\n        <span class=\"clr-combobox-options-empty-text\">\n          {{ commonStrings.keys.comboboxNoResults }}\n        </span>\n      </div>\n    }\n\n    <!--Option Groups and Options will be projected here-->\n    <ng-content></ng-content>\n  `,\n  providers: [{ provide: LoadingListener, useExisting: ClrOptions }],\n  host: {\n    '[class.clr-combobox-options]': 'true',\n    '[class.clr-combobox-options-multi]': 'optionSelectionService.multiselectable',\n    '[class.clr-combobox-options-hidden]': 'emptyOptions && editable',\n    '[attr.role]': '\"listbox\"',\n    '[id]': 'optionsId',\n  },\n  standalone: false,\n})\nexport class ClrOptions<T> implements AfterViewInit, LoadingListener, OnDestroy {\n  @Input('id') optionsId: string;\n\n  loading = false;\n  _items: QueryList<ClrOption<T>>;\n\n  private subscriptions: Subscription[] = [];\n  private _selectAllOption: OptionData<T>;\n\n  constructor(\n    public optionSelectionService: OptionSelectionService<T>,\n    @Inject(IF_ACTIVE_ID) public id: number,\n    public el: ElementRef<HTMLElement>,\n    public commonStrings: ClrCommonStringsService,\n    private focusHandler: ComboboxFocusHandler<T>,\n    private popoverService: ClrPopoverService,\n    @Optional()\n    @Inject(POPOVER_HOST_ORIGIN)\n    parentHost: ElementRef<HTMLElement>,\n    @Inject(DOCUMENT) private document: any\n  ) {\n    if (!parentHost) {\n      throw new Error('clr-options should only be used inside of a clr-combobox');\n    }\n\n    if (!this.optionsId) {\n      this.optionsId = 'clr-options-' + nbOptionsComponents++;\n    }\n  }\n\n  @ViewChild('selectAllBtn')\n  set selectAllBtn(value: ElementRef) {\n    if (value) {\n      this._selectAllOption = new OptionData<T>(SELECT_ALL_ID, null);\n      this._selectAllOption.el = value.nativeElement;\n    } else {\n      this._selectAllOption = null;\n    }\n    this.updateFocusableItems();\n  }\n\n  @ContentChildren(ClrOption, { descendants: true })\n  get items(): QueryList<ClrOption<T>> {\n    return this._items;\n  }\n  set items(items: QueryList<ClrOption<T>>) {\n    this._items = items;\n    this.updateFocusableItems();\n  }\n\n  /**\n   * Tests if the list of options is empty, meaning it doesn't contain any items\n   */\n  get emptyOptions() {\n    return !this.optionSelectionService.loading && this.items.length === 0;\n  }\n\n  get editable() {\n    return this.optionSelectionService.editable;\n  }\n\n  get noResultsElementId() {\n    return `${this.optionsId}-no-results`;\n  }\n\n  get showSelectAll(): boolean {\n    return (\n      this.optionSelectionService.showSelectAll &&\n      this.optionSelectionService.multiselectable &&\n      !this.optionSelectionService.loading &&\n      this.items.length > 0\n    );\n  }\n\n  get allVisibleSelected(): boolean {\n    if (!this.items || this.items.length === 0) {\n      return false;\n    }\n    return this.optionSelectionService.containsAll(this.items.map(option => option.value));\n  }\n\n  get isSelectAllFocused() {\n    return this.focusHandler.pseudoFocus.model?.id === SELECT_ALL_ID;\n  }\n\n  toggleSelectAll(event: Event = null) {\n    if (event) {\n      event.stopPropagation();\n      this.focusHandler.focusInput();\n    }\n    const visibleValues = this.items.map(option => option.value);\n\n    if (this.allVisibleSelected) {\n      this.optionSelectionService.unselectMany(visibleValues);\n    } else {\n      this.optionSelectionService.selectMany(visibleValues);\n    }\n  }\n\n  ngAfterViewInit() {\n    this.focusHandler.listbox = this.el.nativeElement;\n\n    this.subscriptions.push(\n      this.items.changes.subscribe(items => {\n        if (items.length) {\n          setTimeout(() => {\n            this.focusHandler.focusFirstActive();\n          });\n        } else {\n          this.focusHandler.pseudoFocus.pop();\n        }\n      }),\n      this.optionSelectionService.selectAllRequested.subscribe(() => {\n        this.toggleSelectAll();\n      })\n    );\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(sub => sub.unsubscribe());\n  }\n\n  searchText(input: string) {\n    return this.commonStrings.parse(this.commonStrings.keys.comboboxSearching, { INPUT: input });\n  }\n\n  loadingStateChange(state: ClrLoadingState): void {\n    this.loading = state === ClrLoadingState.LOADING;\n  }\n\n  private updateFocusableItems() {\n    const focusList: OptionData<T>[] = [];\n\n    if (this._selectAllOption) {\n      focusList.push(this._selectAllOption);\n    }\n\n    if (this._items) {\n      const itemOptions = this._items.map(option => option.optionProxy);\n      focusList.push(...itemOptions);\n    }\n\n    this.focusHandler.addOptionValues(focusList);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  Host,\n  HostListener,\n  Inject,\n  Injector,\n  Input,\n  NgZone,\n  Optional,\n  Output,\n  PLATFORM_ID,\n  QueryList,\n  Renderer2,\n  Self,\n  ViewChild,\n  ViewChildren,\n  ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@clr/angular/forms/common';\nimport {\n  ClrPopoverHostDirective,\n  ClrPopoverPosition,\n  ClrPopoverService,\n  ClrPopoverType,\n} from '@clr/angular/popover/common';\nimport {\n  ClrCommonStringsService,\n  ClrLoadingState,\n  FOCUS_SERVICE_PROVIDER,\n  IF_ACTIVE_ID_PROVIDER,\n  Keys,\n  LoadingListener,\n} from '@clr/angular/utils';\nimport { debounceTime, Subject } from 'rxjs';\n\nimport { ClrComboboxContainer } from './combobox-container';\nimport { ClrComboboxIdentityFunction, ClrComboboxResolverFunction, ComboboxModel } from './model/combobox.model';\nimport { MultiSelectComboboxModel } from './model/multi-select-combobox.model';\nimport { SingleSelectComboboxModel } from './model/single-select-combobox.model';\nimport { ClrOptionSelected } from './option-selected.directive';\nimport { ClrOptions } from './options';\nimport { ComboboxContainerService } from './providers/combobox-container.service';\nimport { COMBOBOX_FOCUS_HANDLER_PROVIDER, ComboboxFocusHandler } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n\n@Component({\n  selector: 'clr-combobox',\n  templateUrl: './combobox.html',\n  providers: [\n    OptionSelectionService,\n    { provide: LoadingListener, useExisting: ClrCombobox },\n    IF_ACTIVE_ID_PROVIDER,\n    FOCUS_SERVICE_PROVIDER,\n    COMBOBOX_FOCUS_HANDLER_PROVIDER,\n  ],\n  hostDirectives: [ClrPopoverHostDirective],\n  host: {\n    '[class.aria-required]': 'true',\n    '[class.clr-combobox]': 'true',\n    '[class.clr-combobox-disabled]': 'control?.disabled',\n  },\n  standalone: false,\n})\nexport class ClrCombobox<T>\n  extends WrappedFormControl<ClrComboboxContainer>\n  implements ControlValueAccessor, LoadingListener, AfterContentInit\n{\n  @Input('placeholder') placeholder = '';\n\n  @Output('clrInputChange') clrInputChange = new EventEmitter<string>(false);\n  @Output('clrOpenChange') clrOpenChange = this.popoverService.openChange;\n\n  /**\n   * This output should be used to set up a live region using aria-live and populate it with updates that reflect each combobox change.\n   */\n  @Output('clrSelectionChange') clrSelectionChange = this.optionSelectionService.selectionChanged;\n\n  @ViewChild('textboxInput') textbox: ElementRef<HTMLInputElement>;\n  @ViewChild('trigger') trigger: ElementRef<HTMLButtonElement>;\n  @ContentChild(ClrOptionSelected) optionSelected: ClrOptionSelected<T>;\n\n  @ViewChild('truncationButton') truncationButton: ElementRef;\n  @ViewChild('wrapper', { static: true }) wrapper: ElementRef;\n  @ViewChildren('pill') calculationPills: QueryList<ElementRef<HTMLElement>>;\n\n  focused = false;\n\n  popoverPosition = ClrPopoverPosition.BOTTOM_LEFT;\n\n  protected override index = 1;\n\n  protected popoverType = ClrPopoverType.DROPDOWN;\n\n  protected containerWidth = null;\n  protected selectionExpanded = false;\n  protected calculatedLimit: number | undefined;\n  protected shouldCalculate = true;\n  protected isTotalSelection = false;\n\n  private resizeObserver: ResizeObserver;\n  private containerWidthChange = new Subject();\n  @ContentChild(ClrOptions) private options: ClrOptions<T>;\n\n  private _searchText = '';\n  private onTouchedCallback: () => any;\n  private onChangeCallback: (model: T | T[]) => any;\n\n  constructor(\n    vcr: ViewContainerRef,\n    injector: Injector,\n    @Self()\n    @Optional()\n    public control: NgControl,\n    protected override renderer: Renderer2,\n    protected override el: ElementRef<HTMLElement>,\n    public optionSelectionService: OptionSelectionService<T>,\n    public commonStrings: ClrCommonStringsService,\n    private popoverService: ClrPopoverService,\n    @Optional() private containerService: ComboboxContainerService,\n    @Inject(PLATFORM_ID) private platformId: any,\n    private focusHandler: ComboboxFocusHandler<T>,\n    private cdr: ChangeDetectorRef,\n    private zone: NgZone,\n    @Optional() @Host() private container: ClrComboboxContainer\n  ) {\n    super(vcr, ClrComboboxContainer, injector, control, renderer, el);\n    if (control) {\n      control.valueAccessor = this;\n    }\n\n    // default to SingleSelectComboboxModel, in case the optional input [ClrMulti] isn't used\n    this.multiSelect = false;\n  }\n\n  @Input({ alias: 'showSelectAll', transform: booleanAttribute })\n  get showSelectAll() {\n    return this.optionSelectionService.showSelectAll;\n  }\n  set showSelectAll(value: boolean) {\n    this.optionSelectionService.showSelectAll = value;\n  }\n\n  @Input('clrEditable')\n  get editable() {\n    return this.optionSelectionService.editable;\n  }\n  set editable(value: boolean) {\n    this.optionSelectionService.editable = value;\n  }\n\n  @Input('clrEditableResolverFn')\n  set editableResolver(value: ClrComboboxResolverFunction<T> | undefined) {\n    this.optionSelectionService.editableResolver = value;\n  }\n\n  @Input('clrComboboxIdentityFn')\n  set identityFn(value: ClrComboboxIdentityFunction<T>) {\n    this.optionSelectionService.identityFn = value;\n  }\n\n  @Input('clrMulti')\n  get multiSelect() {\n    return this.optionSelectionService.multiselectable;\n  }\n  set multiSelect(value: boolean | string) {\n    if (value) {\n      this.optionSelectionService.selectionModel = new MultiSelectComboboxModel<T>();\n    } else {\n      // in theory, setting this again should not cause errors even though we already set it in constructor,\n      // since the initial call to writeValue (caused by [ngModel] input) should happen after this\n      this.optionSelectionService.selectionModel = new SingleSelectComboboxModel<T>();\n    }\n    this.optionSelectionService.selectionModel.identityFn = this.optionSelectionService.identityFn;\n    this.updateControlValue();\n  }\n\n  // Override the id of WrappedFormControl, as we want to move it to the embedded input.\n  // Otherwise, the label/component connection does not work and screen readers do not read the label.\n  override get id() {\n    return this.controlIdService.id + '-combobox';\n  }\n  override set id(id: string) {\n    super.id = id;\n  }\n\n  get searchText(): string {\n    return this._searchText;\n  }\n  set searchText(text: string) {\n    // if input text has changed since last time, fire a change event so application can react to it\n    if (text !== this._searchText) {\n      if (this.popoverService.open) {\n        this.optionSelectionService.showAllOptions = false;\n      }\n      this._searchText = text;\n      this.clrInputChange.emit(this.searchText);\n    }\n    // We need to trigger this even if unchanged, so the option-items directive will update its list\n    // based on the \"showAllOptions\" variable which may have changed in the openChange subscription below.\n    // The option-items directive does not listen to openChange, but it listens to currentInput changes.\n    this.optionSelectionService.currentInput = this.searchText;\n  }\n\n  get openState(): boolean {\n    return this.popoverService.open;\n  }\n\n  get multiSelectModel(): T[] {\n    if (!this.multiSelect) {\n      throw Error('multiSelectModel is not available in single selection context');\n    }\n    return (this.optionSelectionService.selectionModel as MultiSelectComboboxModel<T>).model;\n  }\n\n  get ariaControls(): string {\n    return this.options?.optionsId;\n  }\n\n  get ariaOwns(): string {\n    return this.options?.optionsId;\n  }\n\n  get ariaDescribedBySelection(): string {\n    return 'selection-' + this.id;\n  }\n\n  get displayField(): string {\n    return this.optionSelectionService.displayField;\n  }\n\n  get showAllText() {\n    return this.commonStrings.parse(this.commonStrings.keys.comboboxShowAll, {\n      ITEMS: this.multiSelectModel?.length.toString(),\n    });\n  }\n\n  get allSelectedText() {\n    return this.commonStrings.parse(this.commonStrings.keys.comboboxAllSelected, {\n      ITEMS: this.multiSelectModel?.length.toString(),\n    });\n  }\n\n  get showIndividualPills(): boolean {\n    return !this.isTotalSelection || this.selectionExpanded;\n  }\n\n  get showTruncationToggle(): boolean {\n    return (\n      this.selectionExpanded ||\n      this.isTotalSelection ||\n      (this.calculatedLimit !== null && this.calculatedLimit < this.multiSelectModel.length)\n    );\n  }\n\n  private get disabled() {\n    return this.control?.disabled;\n  }\n\n  ngAfterContentInit() {\n    this.initializeSubscriptions();\n\n    // Initialize with preselected value\n    if (!this.optionSelectionService.selectionModel.isEmpty()) {\n      this.updateInputValue(this.optionSelectionService.selectionModel);\n    }\n  }\n\n  ngAfterViewInit() {\n    this.focusHandler.textInput = this.textbox.nativeElement;\n    this.focusHandler.trigger = this.trigger.nativeElement;\n    // The text input is the actual element we are wrapping\n    // This assignment is needed by the wrapper, so it can set\n    // the aria properties on the input element, not on the component.\n\n    // We calculate on the initial load to prevent flickering\n    this.el = this.textbox;\n    if (this.showSelectAll) {\n      if (this.multiSelect && this.multiSelectModel?.length > 0) {\n        this.calculateLimit();\n      }\n      this.initialiseObserver();\n    }\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    if (this.resizeObserver) {\n      this.resizeObserver.disconnect();\n    }\n  }\n\n  clearSelection() {\n    this.focusHandler.focusInput();\n    // Clear the array model directly\n    this.optionSelectionService.setSelectionValue([]);\n  }\n\n  @HostListener('keydown', ['$event'])\n  onKeyUp(event: KeyboardEvent) {\n    // if BACKSPACE in multiselect mode, delete the last pill if text is empty\n    if (this.multiSelect) {\n      const multiModel: T[] = this.optionSelectionService.selectionModel.model as T[];\n      switch (event.key) {\n        case Keys.Backspace:\n          if (!this._searchText.length) {\n            if (multiModel && multiModel.length > 0) {\n              const lastItem: T = multiModel[multiModel.length - 1];\n              this.control?.control.markAsTouched();\n              this.optionSelectionService.unselect(lastItem);\n            }\n          }\n          break;\n        case Keys.Enter:\n          if (this.editable && this._searchText.length > 0 && this.options.emptyOptions) {\n            const parsedInput = this.optionSelectionService.editableResolver(this._searchText);\n            this.control?.control.markAsTouched();\n            this.optionSelectionService.select(parsedInput);\n            this.searchText = '';\n          }\n          break;\n      }\n    }\n  }\n\n  inputId(): string {\n    return this.controlIdService.id;\n  }\n\n  loadingStateChange(state: ClrLoadingState): void {\n    this.optionSelectionService.loading = state === ClrLoadingState.LOADING;\n\n    if (state !== ClrLoadingState.LOADING && isPlatformBrowser(this.platformId)) {\n      setTimeout(() => {\n        this.popoverService?.resetPositions();\n      });\n      this.focusFirstActive();\n    }\n  }\n\n  unselect(item: T) {\n    if (!this.disabled) {\n      this.optionSelectionService.unselect(item);\n    }\n  }\n\n  onBlur(event) {\n    if (!event.relatedTarget || !this.options.el?.nativeElement.contains(event.relatedTarget)) {\n      this.onTouchedCallback?.();\n      this.triggerValidation();\n      this.focused = false;\n    }\n  }\n\n  onFocus() {\n    this.focused = true;\n\n    // fix for \"expression changed\" error when focus is returned to a combobox after a modal is closed\n    // https://github.com/vmware-clarity/ng-clarity/issues/663\n    this.cdr.detectChanges();\n  }\n\n  onChange() {\n    if (this.editable && !this.multiSelect && this.options.emptyOptions) {\n      const parsedInput = this.optionSelectionService.editableResolver(this._searchText);\n      this.optionSelectionService.setSelectionValue(parsedInput);\n    }\n  }\n\n  getSelectionAriaLabel() {\n    if (this.containerService && this.containerService.labelText) {\n      return `${this.containerService.labelText} ${this.commonStrings.keys.comboboxSelection}`;\n    }\n    return this.commonStrings.keys.comboboxSelection;\n  }\n\n  focusFirstActive() {\n    setTimeout(() => {\n      this.focusHandler.focusFirstActive();\n    });\n  }\n\n  writeValue(value: T | T[]): void {\n    this.optionSelectionService.selectionModel.model = value;\n    this.updateInputValue(this.optionSelectionService.selectionModel);\n  }\n\n  registerOnTouched(onTouched: any): void {\n    this.onTouchedCallback = onTouched;\n  }\n\n  registerOnChange(onChange: any): void {\n    this.onChangeCallback = onChange;\n  }\n\n  getActiveDescendant() {\n    const model = this.focusHandler.pseudoFocus.model;\n    return model ? model.id : this.options?.noResultsElementId;\n  }\n\n  setDisabledState(): void {\n    // do nothing\n  }\n\n  onWrapperClick(event) {\n    if (this.disabled) {\n      return;\n    }\n    this.focusHandler.focusInput();\n    if (this.editable || (!this.editable && this.trigger.nativeElement.contains(event.target))) {\n      this.popoverService.toggleWithEvent(event);\n    }\n  }\n\n  toggleSelectionExpand() {\n    this.selectionExpanded = !this.selectionExpanded;\n    if (this.selectionExpanded) {\n      this.applyLimit(this.multiSelectModel.length);\n    } else {\n      this.containerWidthChange.next(this.containerWidth);\n    }\n  }\n\n  private initialiseObserver() {\n    const container = this.container ? this.container.el.nativeElement : this.el.nativeElement.parentElement;\n    this.containerWidth = container.offsetWidth;\n    this.resizeObserver = new ResizeObserver(entries => {\n      this.zone.runOutsideAngular(() => {\n        entries.forEach(entry => {\n          const entryWidth = entry.contentRect.width;\n          switch (entry.target) {\n            case container:\n              if (this.containerWidth !== entryWidth) {\n                this.containerWidth = entryWidth;\n                this.containerWidthChange.next(entryWidth);\n              }\n              break;\n            case this.wrapper.nativeElement:\n              this.containerWidthChange.next(null);\n              break;\n          }\n        });\n      });\n    });\n    this.resizeObserver.observe(container);\n    this.resizeObserver.observe(this.wrapper.nativeElement);\n  }\n\n  private calculateLimit() {\n    this.shouldCalculate = true;\n    this.cdr.detectChanges();\n    if (!this.calculationPills || this.calculationPills.length === 0) {\n      this.applyLimit();\n      return;\n    }\n    const pillDimensions = this.calculationPills.map(p => ({\n      top: p.nativeElement.offsetTop,\n      width: p.nativeElement.offsetWidth,\n      left: p.nativeElement.offsetLeft,\n    }));\n\n    const firstPill = pillDimensions[0];\n    const buttonWidth = this.truncationButton?.nativeElement?.offsetWidth || 100;\n    const textboxWidth = this.textbox.nativeElement.offsetWidth;\n    const expectedWidth = this.containerWidth - textboxWidth - buttonWidth;\n\n    let fitCount = 0;\n\n    for (const pill of pillDimensions) {\n      if (pill.top > firstPill.top || pill.left + pill.width > expectedWidth) {\n        break;\n      }\n      fitCount++;\n    }\n    this.applyLimit(fitCount);\n  }\n\n  private applyLimit(limit = undefined) {\n    this.zone.run(() => {\n      this.calculatedLimit = limit === 0 ? 1 : limit;\n      this.shouldCalculate = false;\n      this.cdr.markForCheck();\n    });\n  }\n\n  private updateTotalSelection() {\n    if (!this.multiSelect || !this.multiSelectModel?.length) {\n      this.isTotalSelection = false;\n      return;\n    }\n    // Skip recalculation when items are filtered to zero (e.g. \"no results\")\n    // to prevent pills from flashing while typing in the search input.\n    if (!this.options?.items?.length) {\n      return;\n    }\n    this.isTotalSelection = this.optionSelectionService.containsAll(this.options.items.map(option => option.value));\n  }\n\n  private initializeSubscriptions(): void {\n    this.subscriptions.push(\n      this.optionSelectionService.selectionChanged.subscribe((newSelection: ComboboxModel<T>) => {\n        this.updateInputValue(newSelection);\n        if (newSelection.isEmpty()) {\n          this.selectionExpanded = false;\n          this.isTotalSelection = false;\n        } else {\n          if (!this.multiSelect) {\n            this.popoverService.open = false;\n          }\n          this.updateTotalSelection();\n        }\n\n        this.updateControlValue();\n        if (this.selectionExpanded) {\n          this.applyLimit(this.multiSelectModel.length);\n        } else {\n          this.calculateLimit();\n        }\n\n        if (this.multiSelect) {\n          setTimeout(() => {\n            this.popoverService?.updatePosition();\n          });\n        }\n      })\n    );\n\n    this.subscriptions.push(\n      this.popoverService.openChange.subscribe(open => {\n        if (this.editable && !this.multiSelect) {\n          if (this.searchText) {\n            this.optionSelectionService.showAllOptions = false;\n            this.optionSelectionService.currentInput = this.searchText;\n          }\n          return;\n        }\n        if (open) {\n          this.focusFirstActive();\n        } else {\n          this.optionSelectionService.showAllOptions = true;\n        }\n        if (this.multiSelect) {\n          this.searchText = '';\n        } else {\n          this.searchText = this.getDisplayNames(this.optionSelectionService.selectionModel.model)[0] || '';\n        }\n      }),\n      this.containerWidthChange.pipe(debounceTime(0)).subscribe(() => {\n        if (!this.selectionExpanded && !this.isTotalSelection) {\n          this.calculateLimit();\n        }\n      })\n    );\n  }\n\n  private updateInputValue(model: ComboboxModel<T>) {\n    if (!this.multiSelect) {\n      this.searchText = model.model ? this.getDisplayNames(model.model)[0] : '';\n      if (this.searchText) {\n        this.optionSelectionService.currentInput = this.searchText;\n      }\n    }\n  }\n\n  private updateControlValue() {\n    if (this.onChangeCallback) {\n      this.onChangeCallback(this.optionSelectionService.selectionModel.model);\n    }\n  }\n\n  private getDisplayNames(model: T | T[]) {\n    if (this.displayField) {\n      if (!Array.isArray(model)) {\n        model = [model];\n      }\n      return model.map(item => (item ? (item as any)[this.displayField] : null));\n    }\n    return [this.optionSelectionService.selectionModel.model];\n  }\n}\n","<!--\n  ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n  ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n  ~ This software is released under MIT license.\n  ~ The full license information can be found in LICENSE in the root directory of this project.\n  -->\n\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\nwidth of the component, after being wrapped to a new line -->\n<div\n  #wrapper\n  class=\"clr-combobox-wrapper\"\n  clrPopoverOrigin\n  (click)=\"onWrapperClick($event)\"\n  [class.multi]=\"multiSelect\"\n  [class.invalid]=\"(control?.control.touched && control?.invalid)\"\n  [class.disabled]=\"control?.disabled\"\n>\n  @if (multiSelect && multiSelectModel && multiSelectModel.length > 0) {\n  <span\n    role=\"grid\"\n    clrRovingTabindex\n    [clrRovingTabindexDisabled]=\"control?.disabled\"\n    clrDirection=\"both\"\n    [attr.aria-label]=\"getSelectionAriaLabel()\"\n    [attr.aria-disabled]=\"control?.disabled? true: null\"\n    class=\"clr-combobox-pills\"\n  >\n    <ng-template #pillTemplate let-item let-i=\"index\">\n      <span class=\"label label-combobox-pill\" role=\"row\">\n        <span role=\"gridcell\">\n          <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n            @if (optionSelected) {\n            <ng-container\n              [ngTemplateOutlet]=\"optionSelected.template\"\n              [ngTemplateOutletContext]=\"{$implicit: item}\"\n            ></ng-container>\n            }\n          </span>\n        </span>\n        <span role=\"gridcell\">\n          <button\n            clrKeyFocusItem\n            type=\"button\"\n            class=\"clr-combobox-remove-btn\"\n            [disabled]=\"control?.disabled ? true : null\"\n            [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n            (click)=\"unselect(item)\"\n          >\n            <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n          </button>\n        </span>\n      </span>\n    </ng-template>\n\n    @if (showSelectAll) { @if (isTotalSelection && !selectionExpanded) {\n    <span class=\"label label-combobox-pill\" role=\"row\">\n      <span role=\"gridcell\">\n        <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>{{ allSelectedText }}</span>\n      </span>\n      <span role=\"gridcell\">\n        <button\n          clrKeyFocusItem\n          type=\"button\"\n          class=\"clr-combobox-remove-btn\"\n          (click)=\"clearSelection()\"\n          [attr.aria-label]=\"commonStrings.keys.comboboxUnselectAll\"\n        >\n          <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n        </button>\n      </span>\n    </span>\n    } @if (showIndividualPills) { @for (item of multiSelectModel | slice:0:calculatedLimit; track item; let i = $index)\n    {\n    <ng-container\n      [ngTemplateOutlet]=\"pillTemplate\"\n      [ngTemplateOutletContext]=\"{$implicit: item, index: i}\"\n    ></ng-container>\n    } } @if (showTruncationToggle) {\n    <span role=\"row\" class=\"label label-combobox-pill clr-combobox-truncation-row\">\n      <span role=\"gridcell\" class=\"clr-combobox-truncation-cell\">\n        <span class=\"clr-combobox-pill-content\">\n          <button\n            #truncationButton\n            clrKeyFocusItem\n            type=\"button\"\n            class=\"btn btn-link clr-combobox-show-more-btn\"\n            (click)=\"toggleSelectionExpand()\"\n            [attr.aria-expanded]=\"selectionExpanded\"\n            [attr.aria-controls]=\"'expanded-selection-' + id\"\n          >\n            @if (!selectionExpanded) { {{ showAllText }} } @else { {{ commonStrings.keys.comboboxShowLess }} }\n          </button>\n        </span>\n      </span>\n    </span>\n    } } @else { @for (item of multiSelectModel; track item; let i = $index) {\n    <ng-container\n      [ngTemplateOutlet]=\"pillTemplate\"\n      [ngTemplateOutletContext]=\"{$implicit: item, index: i}\"\n    ></ng-container>\n    } }\n  </span>\n\n  @if (showSelectAll && shouldCalculate) {\n  <span class=\"clr-combobox-pills-calculation\" aria-hidden=\"true\">\n    @for (item of multiSelectModel; track item) {\n    <span class=\"label label-combobox-pill\" #pill>\n      <span class=\"clr-combobox-pill-content\">\n        @if (optionSelected) {\n        <ng-container\n          [ngTemplateOutlet]=\"optionSelected.template\"\n          [ngTemplateOutletContext]=\"{$implicit: item}\"\n        ></ng-container>\n        }\n      </span>\n      <button type=\"button\" class=\"clr-combobox-remove-btn\" tabindex=\"-1\">\n        <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n      </button>\n    </span>\n    }\n  </span>\n  } }\n\n  <input\n    #textboxInput\n    type=\"text\"\n    role=\"combobox\"\n    [id]=\"inputId()\"\n    class=\"clr-input clr-combobox-input\"\n    [(ngModel)]=\"searchText\"\n    (blur)=\"onBlur($event)\"\n    (focus)=\"onFocus()\"\n    (change)=\"onChange()\"\n    [attr.aria-expanded]=\"openState\"\n    [attr.aria-owns]=\"ariaOwns\"\n    aria-haspopup=\"listbox\"\n    aria-autocomplete=\"list\"\n    autocomplete=\"off\"\n    [attr.aria-invalid]=\"control?.invalid? true: null\"\n    [disabled]=\"control?.disabled? true: null\"\n    [attr.aria-activedescendant]=\"getActiveDescendant()\"\n    [attr.placeholder]=\"placeholder\"\n  />\n\n  <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n  <button\n    #trigger\n    type=\"button\"\n    class=\"clr-combobox-trigger\"\n    tabindex=\"-1\"\n    [disabled]=\"control?.disabled || null\"\n    [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n  >\n    <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n  </button>\n\n  <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually.\n'outsideClickToClose' has complex handling that's necessary\nto be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState; at popoverPosition; type: popoverType;\">\n  <ng-content></ng-content>\n</div>\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { NgForOf, NgForOfContext } from '@angular/common';\nimport {\n  Directive,\n  DoCheck,\n  Input,\n  IterableDiffer,\n  IterableDiffers,\n  OnDestroy,\n  TemplateRef,\n  TrackByFunction,\n  ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { OptionSelectionService } from './providers/option-selection.service';\n@Directive({\n  selector: '[clrOptionItems][clrOptionItemsOf]',\n  standalone: false,\n})\nexport class ClrOptionItems<T> implements DoCheck, OnDestroy {\n  private iterableProxy: NgForOf<T>;\n  private _rawItems: T[];\n  private filteredItems: T[];\n  private subscriptions: Subscription[] = [];\n  private filter = '';\n  private _filterField: string;\n  private differ: IterableDiffer<T> | null = null;\n\n  constructor(\n    public template: TemplateRef<NgForOfContext<T>>,\n    private differs: IterableDiffers,\n    private optionService: OptionSelectionService<T>,\n    vcr: ViewContainerRef\n  ) {\n    this.iterableProxy = new NgForOf<T>(vcr, template, differs);\n    this.subscriptions.push(\n      optionService.inputChanged.subscribe(filter => {\n        this.filter = filter;\n        this.updateItems();\n      })\n    );\n  }\n\n  @Input('clrOptionItemsOf')\n  set rawItems(items: T[]) {\n    this._rawItems = items ? items : [];\n    this.updateItems();\n  }\n\n  @Input('clrOptionItemsTrackBy')\n  set trackBy(value: TrackByFunction<T>) {\n    this.iterableProxy.ngForTrackBy = value;\n  }\n\n  @Input('clrOptionItemsField')\n  set field(field: string) {\n    this._filterField = field;\n    this.optionService.displayField = field;\n  }\n\n  get hasResults() {\n    // explicity return `undefined` instead of `false` if the answer is not known\n    return this.filteredItems ? this.filteredItems.length : undefined;\n  }\n\n  ngDoCheck() {\n    if (!this.differ) {\n      this.differ = this.differs.find(this.filteredItems).create(this.iterableProxy.ngForTrackBy);\n    }\n    if (this.differ) {\n      const changes = this.differ.diff(this.filteredItems);\n      if (changes) {\n        this.iterableProxy.ngDoCheck();\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(sub => sub.unsubscribe());\n  }\n  private updateItems() {\n    if (!this._rawItems || this.filter === undefined || this.filter === null) {\n      return;\n    }\n\n    const normalizedFilterValue = normalizeValue(this.filter);\n\n    if (this.optionService.showAllOptions) {\n      this.filteredItems = this._rawItems;\n    } else if (this._filterField) {\n      this.filteredItems = this._rawItems.filter(item => {\n        const objValue = (item as any)[this._filterField];\n        return objValue ? normalizeValue(objValue).includes(normalizedFilterValue) : false;\n      });\n    } else {\n      // Filter by all item object values\n      this.filteredItems = this._rawItems.filter(item => {\n        if (typeof item !== 'object') {\n          return normalizeValue(item).includes(normalizedFilterValue);\n        }\n        const objValues = Object.values(item).filter(value => {\n          return value !== null && value !== undefined ? normalizeValue(value).includes(normalizedFilterValue) : false;\n        });\n        return objValues.length > 0;\n      });\n    }\n    this.iterableProxy.ngForOf = this.filteredItems;\n  }\n}\n\nfunction normalizeValue(value: any) {\n  return value\n    .toString()\n    .normalize('NFD')\n    .replace(/\\p{Diacritic}/gu, '')\n    .toLowerCase();\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ContentChild, Input } from '@angular/core';\nimport { uniqueIdFactory } from '@clr/angular/utils';\n\nimport { ClrOptionItems } from './option-items.directive';\n\n@Component({\n  selector: 'clr-option-group',\n  host: {\n    '[attr.role]': '\"group\"',\n    '[attr.aria-labelledby]': 'labelId',\n    '[style.display]': 'clrOptionItems.hasResults ? undefined : \"none\"',\n  },\n  template: `\n    <span [id]=\"labelId\" class=\"clr-option-group-label\" role=\"presentation\">{{ label }}</span>\n    <ng-content></ng-content>\n  `,\n  standalone: false,\n})\nexport class ClrOptionGroup<T> {\n  @Input('clrOptionGroupLabel') label: string;\n\n  @ContentChild(ClrOptionItems) protected clrOptionItems: ClrOptionItems<T>;\n\n  protected labelId = uniqueIdFactory();\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport {\n  angleIcon,\n  ClarityIcons,\n  ClrIcon,\n  errorStandardIcon,\n  successStandardIcon,\n  windowCloseIcon,\n} from '@clr/angular/icon';\nimport { ClrPopoverModuleNext } from '@clr/angular/popover/common';\nimport { ClrSpinnerModule } from '@clr/angular/progress/spinner';\nimport { ClrConditionalModule, ClrKeyFocusModule } from '@clr/angular/utils';\n\nimport { ClrCombobox } from './combobox';\nimport { ClrComboboxContainer } from './combobox-container';\nimport { ClrOption } from './option';\nimport { ClrOptionGroup } from './option-group';\nimport { ClrOptionItems } from './option-items.directive';\nimport { ClrOptionSelected } from './option-selected.directive';\nimport { ClrOptions } from './options';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    ClrIcon,\n    ClrKeyFocusModule,\n    ClrCommonFormsModule,\n    ClrConditionalModule,\n    ClrPopoverModuleNext,\n    ClrSpinnerModule,\n  ],\n  declarations: [\n    ClrCombobox,\n    ClrComboboxContainer,\n    ClrOptions,\n    ClrOption,\n    ClrOptionGroup,\n    ClrOptionSelected,\n    ClrOptionItems,\n  ],\n  exports: [\n    ClrCommonFormsModule,\n    ClrCombobox,\n    ClrComboboxContainer,\n    ClrOptions,\n    ClrOption,\n    ClrOptionGroup,\n    ClrOptionSelected,\n    ClrConditionalModule,\n    ClrOptionItems,\n  ],\n})\nexport class ClrComboboxModule {\n  constructor() {\n    ClarityIcons.addIcons(successStandardIcon, errorStandardIcon, angleIcon, windowCloseIcon);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './combobox.module';\nexport * from './combobox-container';\nexport * from './combobox';\nexport * from './options';\nexport * from './option';\nexport * from './option-group';\nexport * from './option-items.directive';\nexport * from './option-selected.directive';\nexport { ClrComboboxIdentityFunction, ClrComboboxResolverFunction } from './model/combobox.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ComboboxContainerService","i3","OptionProxy","i1","i2.ComboboxFocusHandler","i3.OptionSelectionService","i1.OptionSelectionService","i2","i3.ComboboxFocusHandler","i6.ComboboxFocusHandler","i7.ClrComboboxContainer"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;MAKU,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;QAEE,IAAA,CAAA,WAAW,GAAG,CAAC;AAEhB,IAAA;8GAHY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;;ACTD;;;;;AAKG;AAyCG,MAAO,oBAAqB,SAAQ,oBAAoB,CAAA;IAG5D,WAAA,CACc,aAA4B,EACxC,mBAAwC,EACxC,gBAAkC,EAC1B,gBAA0C,EAC3C,EAA2B,EAAA;AAElC,QAAA,KAAK,CAAC,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,CAAC;QAHnD,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACjB,IAAA,CAAA,EAAE,GAAF,EAAE;IAGX;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;QACxD;IACF;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,WAAW;AAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY;IACzF;8GAtBW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,iCAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAHpB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxBpF;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAUU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA7BhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,0BAA0B,EAAE,MAAM;AAClC,wBAAA,mCAAmC,EAAE,MAAM;AAC3C,wBAAA,mCAAmC,EAAE,mBAAmB;AACxD,wBAAA,iBAAiB,EAAE,WAAW;AAC/B,qBAAA;oBACD,SAAS,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;AAC9F,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;0BAKI;;sBAHF,SAAS;uBAAC,kBAAkB;;;AC/C/B;;;;;AAKG;MAMmB,aAAa,CAAA;AAAnC,IAAA,WAAA,GAAA;AAGE,QAAA,IAAA,CAAA,UAAU,GAAmC,CAAC,IAAO,KAAK,IAAI;IAOhE;AAAC;;ACrBD;;;;;AAKG;AAIG,MAAO,wBAA4B,SAAQ,aAAgB,CAAA;AAI/D,IAAA,YAAY,CAAC,IAAO,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AACnD,YAAA,OAAO,KAAK;QACd;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3E;AAEA,IAAA,MAAM,CAAC,IAAO,EAAA;AACZ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACpB;AAEA,IAAA,QAAQ,CAAC,IAAO,EAAA;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACvB;IAEA,OAAO,GAAA;AACL,QAAA,OAAO,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C;IAEA,GAAG,GAAA;AACD,QAAA,IAAI,IAAI;AACR,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACvB;AACA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,QAAQ,CAAC,YAAqB,EAAE,KAAK,GAAG,CAAC,CAAC,EAAA;QACxC,IAAI,aAAa,GAAG,EAAE;AAEtB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;;AAEd,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;;AAErB,oBAAA,IAAI,YAAY,IAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAS,CAAC,YAAY,CAAC,EAAE;wBAC5D,aAAa,IAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAS,CAAC,YAAY,CAAC;oBAC3D;yBAAO;;;wBAGL,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;oBAC/C;gBACF;YACF;iBAAO;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAQ,KAAI;;AAE9B,oBAAA,IAAI,YAAY,IAAK,KAAa,CAAC,YAAY,CAAC,EAAE;AAChD,wBAAA,aAAa,IAAK,KAAa,CAAC,YAAY,CAAC;oBAC/C;yBAAO;;;AAGL,wBAAA,aAAa,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACnC;oBACA,aAAa,IAAI,GAAG;AACtB,gBAAA,CAAC,CAAC;YACJ;QACF;AAEA,QAAA,OAAO,aAAa,CAAC,IAAI,EAAE;IAC7B;AAEQ,IAAA,OAAO,CAAC,IAAO,EAAA;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB;IACF;AAEQ,IAAA,UAAU,CAAC,IAAO,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YACnD;QACF;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAErF,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7B;;QAGA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;IACF;AACD;;AClGD;;;;;AAKG;AAIG,MAAO,yBAA6B,SAAQ,aAAgB,CAAA;AAGhE,IAAA,YAAY,CAAC,IAAO,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AACnD,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9D;AAEA,IAAA,MAAM,CAAC,IAAO,EAAA;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;AAEA,IAAA,QAAQ,CAAC,IAAO,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;IACF;IAEA,OAAO,GAAA;AACL,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK;IACpB;IAEA,GAAG,GAAA;AACD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,QAAQ,CAAC,YAAqB,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,EAAE;QACX;QACA,IAAI,YAAY,IAAK,IAAI,CAAC,KAAa,CAAC,YAAY,CAAC,EAAE;AACrD,YAAA,OAAQ,IAAI,CAAC,KAAa,CAAC,YAAY,CAAC;QAC1C;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC9B;IACF;AACD;;ACjDD;;;;;AAKG;MAQU,iBAAiB,CAAA;AAG5B,IAAA,WAAA,CAAmB,QAAuC,EAAA;QAAvC,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAkC;8GAHlD,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;sBAEE,KAAK;uBAAC,mBAAmB;;;ACd5B;;;;;AAKG;AAMG,MAAO,gBAAoB,SAAQ,yBAA4B,CAAA;AAArE,IAAA,WAAA,GAAA;;AACU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAI,IAAI,CAAC;IAWtD;AAVE,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;IAC1C;AAES,IAAA,MAAM,CAAC,IAAO,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B;IACF;AACD;;ACvBD;;;;;AAKG;MASU,sBAAsB,CAAA;AAgBjC,IAAA,WAAA,GAAA;QAfA,IAAA,CAAA,OAAO,GAAG,KAAK;QACf,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,aAAa,GAAG,KAAK;;;QAKrB,IAAA,CAAA,cAAc,GAAG,IAAI;QAEb,IAAA,CAAA,aAAa,GAAG,EAAE;AAElB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,aAAa,CAAmB,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAQ;AAyDjD,QAAA,IAAA,CAAA,gBAAgB,GAAmC,CAAC,KAAa,KAAK,KAAU;AAqFxE,QAAA,IAAA,CAAA,WAAW,GAAmC,CAAC,IAAO,KAAK,IAAI;QA3IrE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;IACvD;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa;IAC3B;IACA,IAAI,YAAY,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,KAAK;QAC1C;IACF;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa;IAC3B;IACA,IAAI,YAAY,CAAC,KAAK,EAAA;;QAEpB,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC9B;AACA,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;;;AAIA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;IAC9C;AAEA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,cAAc,YAAY,wBAAwB;IAChE;AAEA,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;IACzB;IAEA,IAAI,UAAU,CAAC,KAAqC,EAAA;AAClD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,KAAK,CAAC,IAAO,KAAK,IAAI,CAAC;AAC/C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;QACnD;IACF;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;IAChD;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;IACjC;AAIA,IAAA,MAAM,CAAC,IAAO,EAAA;AACZ,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACjF;QACF;AACA,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAClD;AAEA,IAAA,MAAM,CAAC,IAAO,EAAA;QACZ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;YACvC;QACF;QACA,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpC;aAAO;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC;QACA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAClD;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,OAAO,GAAG,KAAK;AACnB,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChC,OAAO,GAAG,IAAI;YAChB;QACF;QACA,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAClD;IACF;AAEA,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;YACzD;QACF;QAEA,IAAI,OAAO,GAAG,KAAK;AACnB,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC1C,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAClC,OAAO,GAAG,IAAI;YAChB;QACF;QAEA,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAClD;IACF;AAEA,IAAA,QAAQ,CAAC,IAAO,EAAA;AACd,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAClF;QACF;AACA,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAClD;AAEA;;AAEG;AACH,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;AAClD,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpE;AAEA,IAAA,iBAAiB,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;QACzC,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YAC9C;QACF;AAEA,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK;QACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAClD;IAIQ,qBAAqB,CAAC,OAAgB,EAAE,KAAc,EAAA;AAC5D,QAAA,IAAI,OAAO,KAAK,KAAK,EAAE;AACrB,YAAA,OAAO,IAAI;QACb;;AAEA,QAAA,IACE,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE;AAC5D,aAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,EACvD;AACA,YAAA,OAAO,IAAI;QACb;;QAEA,IACE,OAAO,KAAK,IAAI;AAChB,YAAA,OAAO,KAAK,SAAS;AACrB,YAAA,OAAO,KAAK,EAAE;AACd,YAAA,KAAK,KAAK,IAAI;AACd,YAAA,KAAK,KAAK,SAAS;YACnB,KAAK,KAAK,EAAE,EACZ;AACA,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,GAAG,GAAG,OAAc;YAC1B,MAAM,GAAG,GAAG,KAAY;YACxB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC7B,gBAAA,OAAO,KAAK;YACd;;YAEA,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;QAClD;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAY,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAU,CAAC;QACxE;IACF;8GAlMW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;ACbD;;;;;AAKG;MAaU,oBAAoB,CAAA;AAS/B,IAAA,WAAA,CACE,eAAiC,EACzB,cAAiC,EACjC,gBAA2C,EACtB,UAAe,EAAA;QAFpC,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACK,IAAA,CAAA,UAAU,GAAV,UAAU;AAZzC,QAAA,IAAA,CAAA,WAAW,GAAoC,IAAI,gBAAgB,EAAiB;QAM5E,IAAA,CAAA,UAAU,GAAoB,EAAE;QAQtC,IAAI,CAAC,uBAAuB,EAAE;;QAE9B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;IAC5D;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAI,OAAO,CAAC,EAAe,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;IACjC;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAI,OAAO,CAAC,EAAe,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;IACjC;AAEA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;IACxB;IACA,IAAI,SAAS,CAAC,EAAe,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;QACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;IACjC;IAEA,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC/C;IACF;IAEA,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,IAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;AAClD,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C;iBAAO;AACL,gBAAA,IAAI,WAAc;AAClB,gBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;oBACzC,WAAW,GAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAa,CAAC,CAAC,CAAC;gBACtE;qBAAO;oBACL,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAU;gBAC/D;AACA,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC;gBAChF,IAAI,WAAW,EAAE;;AAEf,oBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;gBACtC;qBAAO;;AAEL,oBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC7C;AACA,gBAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACtC;QACF;IACF;AAEA,IAAA,eAAe,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO;IAC3B;AAEA,IAAA,WAAW,CAAC,MAAqB,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IACjC;IAEQ,uBAAuB,GAAA;QAC7B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAG;YAC9C,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI;YAC/B;AACF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,WAAW,CAAC,SAA4B,EAAA;QAC9C,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACtF,QAAA,IAAI,SAAS,KAAK,iBAAiB,CAAC,EAAE,EAAE;YACtC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;gBAC/B,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YACpC;iBAAO;AACL,gBAAA,KAAK,EAAE;YACT;QACF;AAAO,aAAA,IAAI,SAAS,KAAK,iBAAiB,CAAC,IAAI,EAAE;AAC/C,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,KAAK,GAAG,CAAC;YACX;iBAAO;AACL,gBAAA,KAAK,EAAE;YACT;QACF;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,uBAAuB,EAAE;IAChC;AAEQ,IAAA,aAAa,CAAC,SAA4B,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;gBAC5D,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC7B;AACF,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI;QACjC;aAAO;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QAC7B;IACF;;AAGQ,IAAA,eAAe,CAAC,KAAoB,EAAA;QAC1C,IAAI,cAAc,GAAG,KAAK;AAC1B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;QACrB,IAAI,KAAK,EAAE;YACT,QAAQ,GAAG;gBACT,KAAK,IAAI,CAAC,KAAK;AACb,oBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACtD,wBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;4BACzC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,aAAa,EAAE;AAC/C,gCAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;4BAC1C;iCAAO;AACL,gCAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;4BAC5D;wBACF;6BAAO;AACL,4BAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;wBAC5D;wBACA,cAAc,GAAG,IAAI;oBACvB;oBACA;gBACF,KAAK,IAAI,CAAC,KAAK;AACb,oBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC7B,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI;wBAC/B,cAAc,GAAG,IAAI;oBACvB;oBACA;gBACF,KAAK,IAAI,CAAC,OAAO;AACf,oBAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;AACpC,oBAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACxC,cAAc,GAAG,IAAI;oBACrB;gBACF,KAAK,IAAI,CAAC,SAAS;AACjB,oBAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;AACpC,oBAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1C,cAAc,GAAG,IAAI;oBACrB;AACF,gBAAA;;AAEE,oBAAA,IACE,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG;AACtB,wBAAA,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC;wBACxE,EAAE,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC;AAC5B,wBAAA,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EACzB;AACA,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI;oBACjC;oBACA;;QAEN;AACA,QAAA,OAAO,cAAc;IACvB;IAEQ,uBAAuB,CAAC,WAA2B,QAAQ,EAAA;AACjE,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE;YACvD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC5F;IACF;AAEQ,IAAA,wBAAwB,CAAC,KAAoB,EAAA;QACnD,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,wBAAwB,EAAE;IAClC;AAEQ,IAAA,sBAAsB,CAAC,EAAe,EAAA;AAC5C,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,IAAG;AACvC,gBAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACnC,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,KAAK;gBAClC;AACF,YAAA,CAAC,CAAC;QACJ;IACF;AAEQ,IAAA,mBAAmB,CAAC,KAAiB,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAqB;AAC1C,QAAA,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7G;AAvMW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,sHAarB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAbV,oBAAoB,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;0BAcI,MAAM;2BAAC,WAAW;;AA6LhB,MAAM,+BAA+B,GAAG,2BAA2B,CAAC,oBAAoB,CAAC;MAEnF,UAAU,CAAA;IAGrB,WAAA,CACS,EAAU,EACV,KAAQ,EAAA;QADR,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,KAAK,GAAL,KAAK;IACX;AAEH,IAAA,MAAM,CAAC,KAAoB,EAAA;QACzB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;IAC3D;AACD;;AC5OD;;;;;AAKG;MAwBU,SAAS,CAAA;AAOpB,IAAA,WAAA,CACS,KAA8B,EAC9B,aAAsC,EACrC,YAAqC,EACrC,sBAAiD,EAAA;QAHlD,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,aAAa,GAAb,aAAa;QACZ,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;;QAThC,IAAA,CAAA,WAAW,GAAmB,IAAIC,UAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAWvD,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,aAAa;IAC3C;AAEA,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,GAAG;IACjB;IACA,IAAI,QAAQ,CAAC,EAAU,EAAA;AACrB,QAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG;IAChC;AAEA,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;IACA,IAAI,KAAK,CAAC,KAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK;IAChC;AAEA,IAAA,IACI,QAAQ,GAAA;QACV,QACE,IAAI,CAAC,sBAAsB,CAAC,cAAc,IAAI,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;IAErH;AAEA,IAAA,IACI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;IACrE;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACb,YAAA,IAAI,CAAC,GAAG,GAAG,aAAa,GAAG,eAAe,EAAE;YAC5C,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG;QAChC;IACF;AAGA,IAAA,OAAO,CAAC,KAAiB,EAAA;QACvB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE;YAC/C,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAChD;aAAO;YACL,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAChD;;;;;QAKA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;IAChC;8GAnEW,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAA,KAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAfV;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAUU,SAAS,EAAA,UAAA,EAAA,CAAA;kBAjBrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,QAAQ,EAAE;;;;;AAKT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,6BAA6B,EAAE,MAAM;AACrC,wBAAA,aAAa,EAAE,UAAU;;AAEzB,wBAAA,iBAAiB,EAAE,IAAI;AACvB,wBAAA,WAAW,EAAE,UAAU;AACxB,qBAAA;AACD,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;sBAiBE,KAAK;uBAAC,IAAI;;sBASV,KAAK;uBAAC,UAAU;;sBAShB,WAAW;uBAAC,cAAc;;sBAO1B,WAAW;uBAAC,iBAAiB;;sBAY7B,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AClFnC;;;;;AAKG;AAuBH,IAAI,mBAAmB,GAAG,CAAC;AAEpB,MAAM,aAAa,GAAG;MAqDhB,UAAU,CAAA;AASrB,IAAA,WAAA,CACS,sBAAiD,EAC3B,EAAU,EAChC,EAA2B,EAC3B,aAAsC,EACrC,YAAqC,EACrC,cAAiC,EAGzC,UAAmC,EACT,QAAa,EAAA;QAThC,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QACA,IAAA,CAAA,EAAE,GAAF,EAAE;QACxB,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,aAAa,GAAb,aAAa;QACZ,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,cAAc,GAAd,cAAc;QAII,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAhBpC,IAAA,CAAA,OAAO,GAAG,KAAK;QAGP,IAAA,CAAA,aAAa,GAAmB,EAAE;QAexC,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;QAC7E;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,cAAc,GAAG,mBAAmB,EAAE;QACzD;IACF;IAEA,IACI,YAAY,CAAC,KAAiB,EAAA;QAChC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,UAAU,CAAI,aAAa,EAAE,IAAI,CAAC;YAC9D,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,KAAK,CAAC,aAAa;QAChD;aAAO;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC9B;QACA,IAAI,CAAC,oBAAoB,EAAE;IAC7B;AAEA,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;IACA,IAAI,KAAK,CAAC,KAA8B,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;AAEA;;AAEG;AACH,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;IACxE;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ;IAC7C;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,aAAa;IACvC;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,QACE,IAAI,CAAC,sBAAsB,CAAC,aAAa;YACzC,IAAI,CAAC,sBAAsB,CAAC,eAAe;AAC3C,YAAA,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO;AACpC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;IAEzB;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,YAAA,OAAO,KAAK;QACd;QACA,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACxF;AAEA,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,aAAa;IAClE;IAEA,eAAe,CAAC,QAAe,IAAI,EAAA;QACjC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;QAChC;AACA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;AAE5D,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,aAAa,CAAC;QACzD;aAAO;AACL,YAAA,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,aAAa,CAAC;QACvD;IACF;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AAEjD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,IAAG;AACnC,YAAA,IAAI,KAAK,CAAC,MAAM,EAAE;gBAChB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;AACtC,gBAAA,CAAC,CAAC;YACJ;iBAAO;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE;YACrC;QACF,CAAC,CAAC,EACF,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAK;YAC5D,IAAI,CAAC,eAAe,EAAE;QACxB,CAAC,CAAC,CACH;IACH;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;IACtD;AAEA,IAAA,UAAU,CAAC,KAAa,EAAA;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC9F;AAEA,IAAA,kBAAkB,CAAC,KAAsB,EAAA;QACvC,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,eAAe,CAAC,OAAO;IAClD;IAEQ,oBAAoB,GAAA;QAC1B,MAAM,SAAS,GAAoB,EAAE;AAErC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACvC;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC;AACjE,YAAA,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QAChC;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC;IAC9C;AA/IW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAWX,YAAY,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAMZ,mBAAmB,6BAEnB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAnBP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,kCAAA,EAAA,wCAAA,EAAA,mCAAA,EAAA,0BAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAVV,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAmDjD,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1FhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAWU,UAAU,EAAA,UAAA,EAAA,CAAA;kBAnDtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA;oBACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAA,UAAY,EAAE,CAAC;AAClE,oBAAA,IAAI,EAAE;AACJ,wBAAA,8BAA8B,EAAE,MAAM;AACtC,wBAAA,oCAAoC,EAAE,wCAAwC;AAC9E,wBAAA,qCAAqC,EAAE,0BAA0B;AACjE,wBAAA,aAAa,EAAE,WAAW;AAC1B,wBAAA,MAAM,EAAE,WAAW;AACpB,qBAAA;AACD,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;0BAYI,MAAM;2BAAC,YAAY;;0BAKnB;;0BACA,MAAM;2BAAC,mBAAmB;;0BAE1B,MAAM;2BAAC,QAAQ;;sBAlBjB,KAAK;uBAAC,IAAI;;sBA6BV,SAAS;uBAAC,cAAc;;sBAWxB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;AC5HnD;;;;;AAKG;AAyEG,MAAO,WACX,SAAQ,kBAAwC,CAAA;IA2ChD,WAAA,CACE,GAAqB,EACrB,QAAkB,EAGX,OAAkB,EACN,QAAmB,EACnB,EAA2B,EACvC,sBAAiD,EACjD,aAAsC,EACrC,cAAiC,EACrB,gBAA0C,EACjC,UAAe,EACpC,YAAqC,EACrC,GAAsB,EACtB,IAAY,EACQ,SAA+B,EAAA;AAE3D,QAAA,KAAK,CAAC,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;QAb1D,IAAA,CAAA,OAAO,GAAP,OAAO;QACK,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,EAAE,GAAF,EAAE;QACd,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QACtB,IAAA,CAAA,aAAa,GAAb,aAAa;QACZ,IAAA,CAAA,cAAc,GAAd,cAAc;QACF,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACP,IAAA,CAAA,UAAU,GAAV,UAAU;QAC/B,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,IAAI,GAAJ,IAAI;QACgB,IAAA,CAAA,SAAS,GAAT,SAAS;QAxDjB,IAAA,CAAA,WAAW,GAAG,EAAE;AAEZ,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,CAAS,KAAK,CAAC;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU;AAEvE;;AAEG;AAC2B,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB;QAU/F,IAAA,CAAA,OAAO,GAAG,KAAK;AAEf,QAAA,IAAA,CAAA,eAAe,GAAG,kBAAkB,CAAC,WAAW;QAE7B,IAAA,CAAA,KAAK,GAAG,CAAC;AAElB,QAAA,IAAA,CAAA,WAAW,GAAG,cAAc,CAAC,QAAQ;QAErC,IAAA,CAAA,cAAc,GAAG,IAAI;QACrB,IAAA,CAAA,iBAAiB,GAAG,KAAK;QAEzB,IAAA,CAAA,eAAe,GAAG,IAAI;QACtB,IAAA,CAAA,gBAAgB,GAAG,KAAK;AAG1B,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,OAAO,EAAE;QAGpC,IAAA,CAAA,WAAW,GAAG,EAAE;QAuBtB,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,aAAa,GAAG,IAAI;QAC9B;;AAGA,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;AAEA,IAAA,IACI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa;IAClD;IACA,IAAI,aAAa,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,sBAAsB,CAAC,aAAa,GAAG,KAAK;IACnD;AAEA,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ;IAC7C;IACA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,GAAG,KAAK;IAC9C;IAEA,IACI,gBAAgB,CAAC,KAAiD,EAAA;AACpE,QAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,KAAK;IACtD;IAEA,IACI,UAAU,CAAC,KAAqC,EAAA;AAClD,QAAA,IAAI,CAAC,sBAAsB,CAAC,UAAU,GAAG,KAAK;IAChD;AAEA,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,eAAe;IACpD;IACA,IAAI,WAAW,CAAC,KAAuB,EAAA;QACrC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,sBAAsB,CAAC,cAAc,GAAG,IAAI,wBAAwB,EAAK;QAChF;aAAO;;;YAGL,IAAI,CAAC,sBAAsB,CAAC,cAAc,GAAG,IAAI,yBAAyB,EAAK;QACjF;AACA,QAAA,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU;QAC9F,IAAI,CAAC,kBAAkB,EAAE;IAC3B;;;AAIA,IAAA,IAAa,EAAE,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,WAAW;IAC/C;IACA,IAAa,EAAE,CAAC,EAAU,EAAA;AACxB,QAAA,KAAK,CAAC,EAAE,GAAG,EAAE;IACf;AAEA,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;IACzB;IACA,IAAI,UAAU,CAAC,IAAY,EAAA;;AAEzB,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC5B,gBAAA,IAAI,CAAC,sBAAsB,CAAC,cAAc,GAAG,KAAK;YACpD;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;YACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3C;;;;QAIA,IAAI,CAAC,sBAAsB,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU;IAC5D;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI;IACjC;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,MAAM,KAAK,CAAC,+DAA+D,CAAC;QAC9E;AACA,QAAA,OAAQ,IAAI,CAAC,sBAAsB,CAAC,cAA8C,CAAC,KAAK;IAC1F;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS;IAChC;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS;IAChC;AAEA,IAAA,IAAI,wBAAwB,GAAA;AAC1B,QAAA,OAAO,YAAY,GAAG,IAAI,CAAC,EAAE;IAC/B;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY;IACjD;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE;YACvE,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE;AAChD,SAAA,CAAC;IACJ;AAEA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3E,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE;AAChD,SAAA,CAAC;IACJ;AAEA,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB;IACzD;AAEA,IAAA,IAAI,oBAAoB,GAAA;QACtB,QACE,IAAI,CAAC,iBAAiB;AACtB,YAAA,IAAI,CAAC,gBAAgB;AACrB,aAAC,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAE1F;AAEA,IAAA,IAAY,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ;IAC/B;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,uBAAuB,EAAE;;QAG9B,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;YACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC;QACnE;IACF;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;QACxD,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;;;;;AAMtD,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC,EAAE;gBACzD,IAAI,CAAC,cAAc,EAAE;YACvB;YACA,IAAI,CAAC,kBAAkB,EAAE;QAC3B;IACF;IAES,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;QAClC;IACF;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;;AAE9B,QAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACnD;AAGA,IAAA,OAAO,CAAC,KAAoB,EAAA;;AAE1B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,UAAU,GAAQ,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,KAAY;AAC/E,YAAA,QAAQ,KAAK,CAAC,GAAG;gBACf,KAAK,IAAI,CAAC,SAAS;AACjB,oBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;wBAC5B,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvC,MAAM,QAAQ,GAAM,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACrD,4BAAA,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE;AACrC,4BAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBAChD;oBACF;oBACA;gBACF,KAAK,IAAI,CAAC,KAAK;AACb,oBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAC7E,wBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;AAClF,wBAAA,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE;AACrC,wBAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/C,wBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;oBACtB;oBACA;;QAEN;IACF;IAEA,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE;IACjC;AAEA,IAAA,kBAAkB,CAAC,KAAsB,EAAA;QACvC,IAAI,CAAC,sBAAsB,CAAC,OAAO,GAAG,KAAK,KAAK,eAAe,CAAC,OAAO;AAEvE,QAAA,IAAI,KAAK,KAAK,eAAe,CAAC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC3E,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE;AACvC,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE;QACzB;IACF;AAEA,IAAA,QAAQ,CAAC,IAAO,EAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5C;IACF;AAEA,IAAA,MAAM,CAAC,KAAK,EAAA;QACV,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AACzF,YAAA,IAAI,CAAC,iBAAiB,IAAI;YAC1B,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACtB;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;;AAInB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACnE,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;AAClF,YAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,WAAW,CAAC;QAC5D;IACF;IAEA,qBAAqB,GAAA;QACnB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AAC5D,YAAA,OAAO,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC1F;AACA,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB;IAClD;IAEA,gBAAgB,GAAA;QACd,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;AACtC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,UAAU,CAAC,KAAc,EAAA;QACvB,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK;QACxD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC;IACnE;AAEA,IAAA,iBAAiB,CAAC,SAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;IACpC;AAEA,IAAA,gBAAgB,CAAC,QAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ;IAClC;IAEA,mBAAmB,GAAA;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK;AACjD,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,kBAAkB;IAC5D;IAEA,gBAAgB,GAAA;;IAEhB;AAEA,IAAA,cAAc,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;AAC1F,YAAA,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC;QAC5C;IACF;IAEA,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB;AAChD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC/C;aAAO;YACL,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QACrD;IACF;IAEQ,kBAAkB,GAAA;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa;AACxG,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,WAAW;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,IAAG;AACjD,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,OAAO,CAAC,OAAO,CAAC,KAAK,IAAG;AACtB,oBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK;AAC1C,oBAAA,QAAQ,KAAK,CAAC,MAAM;AAClB,wBAAA,KAAK,SAAS;AACZ,4BAAA,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,EAAE;AACtC,gCAAA,IAAI,CAAC,cAAc,GAAG,UAAU;AAChC,gCAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;4BAC5C;4BACA;AACF,wBAAA,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa;AAC7B,4BAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;4BACpC;;AAEN,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACzD;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YAChE,IAAI,CAAC,UAAU,EAAE;YACjB;QACF;AACA,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK;AACrD,YAAA,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS;AAC9B,YAAA,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,WAAW;AAClC,YAAA,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,UAAU;AACjC,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,WAAW,IAAI,GAAG;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,WAAW;QAEtE,IAAI,QAAQ,GAAG,CAAC;AAEhB,QAAA,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;AACjC,YAAA,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa,EAAE;gBACtE;YACF;AACA,YAAA,QAAQ,EAAE;QACZ;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC3B;IAEQ,UAAU,CAAC,KAAK,GAAG,SAAS,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AAC9C,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,QAAA,CAAC,CAAC;IACJ;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE;AACvD,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;YAC7B;QACF;;;QAGA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC;QACF;QACA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACjH;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAA8B,KAAI;AACxF,YAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;AACnC,YAAA,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;YAC/B;iBAAO;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,KAAK;gBAClC;gBACA,IAAI,CAAC,oBAAoB,EAAE;YAC7B;YAEA,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC/C;iBAAO;gBACL,IAAI,CAAC,cAAc,EAAE;YACvB;AAEA,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE;AACvC,gBAAA,CAAC,CAAC;YACJ;QACF,CAAC,CAAC,CACH;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAG;YAC9C,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACtC,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,oBAAA,IAAI,CAAC,sBAAsB,CAAC,cAAc,GAAG,KAAK;oBAClD,IAAI,CAAC,sBAAsB,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU;gBAC5D;gBACA;YACF;YACA,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,gBAAgB,EAAE;YACzB;iBAAO;AACL,gBAAA,IAAI,CAAC,sBAAsB,CAAC,cAAc,GAAG,IAAI;YACnD;AACA,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;YACtB;iBAAO;gBACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACnG;AACF,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAC7D,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACrD,IAAI,CAAC,cAAc,EAAE;YACvB;QACF,CAAC,CAAC,CACH;IACH;AAEQ,IAAA,gBAAgB,CAAC,KAAuB,EAAA;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACzE,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,sBAAsB,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU;YAC5D;QACF;IACF;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,KAAK,CAAC;QACzE;IACF;AAEQ,IAAA,eAAe,CAAC,KAAc,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,gBAAA,KAAK,GAAG,CAAC,KAAK,CAAC;YACjB;YACA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,GAAI,IAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5E;QACA,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,KAAK,CAAC;IAC3D;AAlgBW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,oVAwDZ,WAAW,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAxDV,WAAW,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAuEsB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,EAAA,UAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,WAAA,EAAA,CAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,6BAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAtFjD;YACT,sBAAsB;AACtB,YAAA,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE;YACtD,qBAAqB;YACrB,sBAAsB;YACtB,+BAA+B;AAChC,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAyBa,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAsBjB,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpH1B,qjMAsKA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,EAAA,qCAAA,EAAA,uBAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDxFa,WAAW,EAAA,UAAA,EAAA,CAAA;kBAlBvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,SAAA,EAEb;wBACT,sBAAsB;AACtB,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,aAAa,EAAE;wBACtD,qBAAqB;wBACrB,sBAAsB;wBACtB,+BAA+B;qBAChC,EAAA,cAAA,EACe,CAAC,uBAAuB,CAAC,EAAA,IAAA,EACnC;AACJ,wBAAA,uBAAuB,EAAE,MAAM;AAC/B,wBAAA,sBAAsB,EAAE,MAAM;AAC9B,wBAAA,+BAA+B,EAAE,mBAAmB;AACrD,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,qjMAAA,EAAA;;0BAiDd;;0BACA;;0BAOA;;0BACA,MAAM;2BAAC,WAAW;;0BAIlB;;0BAAY;;sBAxDd,KAAK;uBAAC,aAAa;;sBAEnB,MAAM;uBAAC,gBAAgB;;sBACvB,MAAM;uBAAC,eAAe;;sBAKtB,MAAM;uBAAC,oBAAoB;;sBAE3B,SAAS;uBAAC,cAAc;;sBACxB,SAAS;uBAAC,SAAS;;sBACnB,YAAY;uBAAC,iBAAiB;;sBAE9B,SAAS;uBAAC,kBAAkB;;sBAC5B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBACrC,YAAY;uBAAC,MAAM;;sBAkBnB,YAAY;uBAAC,UAAU;;sBAiCvB,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAQ7D,KAAK;uBAAC,aAAa;;sBAQnB,KAAK;uBAAC,uBAAuB;;sBAK7B,KAAK;uBAAC,uBAAuB;;sBAK7B,KAAK;uBAAC,UAAU;;sBAyIhB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;AExTrC;;;;;AAKG;MAqBU,cAAc,CAAA;AASzB,IAAA,WAAA,CACS,QAAwC,EACvC,OAAwB,EACxB,aAAwC,EAChD,GAAqB,EAAA;QAHd,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACP,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,aAAa,GAAb,aAAa;QARf,IAAA,CAAA,aAAa,GAAmB,EAAE;QAClC,IAAA,CAAA,MAAM,GAAG,EAAE;QAEX,IAAA,CAAA,MAAM,GAA6B,IAAI;AAQ7C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAI,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC3D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAG;AAC5C,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;YACpB,IAAI,CAAC,WAAW,EAAE;QACpB,CAAC,CAAC,CACH;IACH;IAEA,IACI,QAAQ,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE;QACnC,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,IACI,OAAO,CAAC,KAAyB,EAAA;AACnC,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,KAAK;IACzC;IAEA,IACI,KAAK,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,KAAK;IACzC;AAEA,IAAA,IAAI,UAAU,GAAA;;AAEZ,QAAA,OAAO,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS;IACnE;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;QAC7F;AACA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YACpD,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAChC;QACF;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;IACtD;IACQ,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YACxE;QACF;QAEA,MAAM,qBAAqB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAEzD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;AACrC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS;QACrC;AAAO,aAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAG;gBAChD,MAAM,QAAQ,GAAI,IAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AACjD,gBAAA,OAAO,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,KAAK;AACpF,YAAA,CAAC,CAAC;QACJ;aAAO;;YAEL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAG;AAChD,gBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC5B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBAC7D;AACA,gBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAG;oBACnD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,KAAK;AAC9G,gBAAA,CAAC,CAAC;AACF,gBAAA,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC;AAC7B,YAAA,CAAC,CAAC;QACJ;QACA,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa;IACjD;8GAxFW,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,SAAA,CAAA,EAAA,KAAA,EAAA,CAAA,qBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;sBAyBE,KAAK;uBAAC,kBAAkB;;sBAMxB,KAAK;uBAAC,uBAAuB;;sBAK7B,KAAK;uBAAC,qBAAqB;;AAwD9B,SAAS,cAAc,CAAC,KAAU,EAAA;AAChC,IAAA,OAAO;AACJ,SAAA,QAAQ;SACR,SAAS,CAAC,KAAK;AACf,SAAA,OAAO,CAAC,iBAAiB,EAAE,EAAE;AAC7B,SAAA,WAAW,EAAE;AAClB;;AC3HA;;;;;AAKG;MAoBU,cAAc,CAAA;AAb3B,IAAA,WAAA,GAAA;QAkBY,IAAA,CAAA,OAAO,GAAG,eAAe,EAAE;AACtC,IAAA;8GANY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,qBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGX,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EATlB;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAGU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAb1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,IAAI,EAAE;AACJ,wBAAA,aAAa,EAAE,SAAS;AACxB,wBAAA,wBAAwB,EAAE,SAAS;AACnC,wBAAA,iBAAiB,EAAE,gDAAgD;AACpE,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;AAGT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;sBAEE,KAAK;uBAAC,qBAAqB;;sBAE3B,YAAY;uBAAC,cAAc;;;AC5B9B;;;;;AAKG;MA0DU,iBAAiB,CAAA;AAC5B,IAAA,WAAA,GAAA;QACE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,SAAS,EAAE,eAAe,CAAC;IAC3F;8GAHW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBApB1B,WAAW;YACX,oBAAoB;YACpB,UAAU;YACV,SAAS;YACT,cAAc;YACd,iBAAiB;AACjB,YAAA,cAAc,aAhBd,YAAY;YACZ,WAAW;YACX,OAAO;YACP,iBAAiB;YACjB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;AACpB,YAAA,gBAAgB,aAYhB,oBAAoB;YACpB,WAAW;YACX,oBAAoB;YACpB,UAAU;YACV,SAAS;YACT,cAAc;YACd,iBAAiB;YACjB,oBAAoB;YACpB,cAAc,CAAA,EAAA,CAAA,CAAA;AAGL,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YA9B1B,YAAY;YACZ,WAAW;YACX,OAAO;YACP,iBAAiB;YACjB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;AACpB,YAAA,gBAAgB,EAYhB,oBAAoB;YAOpB,oBAAoB,CAAA,EAAA,CAAA,CAAA;;2FAIX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhC7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,OAAO;wBACP,iBAAiB;wBACjB,oBAAoB;wBACpB,oBAAoB;wBACpB,oBAAoB;wBACpB,gBAAgB;AACjB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,WAAW;wBACX,oBAAoB;wBACpB,UAAU;wBACV,SAAS;wBACT,cAAc;wBACd,iBAAiB;wBACjB,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,WAAW;wBACX,oBAAoB;wBACpB,UAAU;wBACV,SAAS;wBACT,cAAc;wBACd,iBAAiB;wBACjB,oBAAoB;wBACpB,cAAc;AACf,qBAAA;AACF,iBAAA;;;AC9DD;;;;;AAKG;;ACLH;;AAEG;;;;"}