{"version":3,"file":"engie-group-fluid-design-system-angular.mjs","sources":["../../src/models/theme-variant.model.ts","../../src/directives/custom-icon.directive.ts","../../src/directives/engie-template.directive.ts","../../src/components/accordion-actions/accordion-actions.component.ts","../../src/components/accordion-actions/accordion-actions.component.html","../../src/components/accordion-actions/directive/accordion-action.directive.ts","../../src/components/icon-base/icon-base.component.ts","../../src/components/icon-base/icon-base.component.html","../../src/components/icon/icon.component.ts","../../src/components/icon/icon.component.html","../../src/components/accordion-item/accordion-item.component.ts","../../src/components/accordion-item/accordion-item.component.html","../../src/components/button/button.model.ts","../../src/components/spinner/spinner.component.ts","../../src/components/spinner/spinner.component.html","../../src/components/button/button.component.ts","../../src/components/button/button.component.html","../../src/components/accordion/accordion.component.ts","../../src/components/accordion/accordion.component.html","../../src/shared/animations.ts","../../src/utils/utils.util.ts","../../src/components/form-field/form-field.directive.ts","../../src/components/icon-button/icon-button.component.ts","../../src/components/icon-button/icon-button.component.html","../../src/components/form-item/form-item.component.ts","../../src/components/form-item/form-item.component.html","../../src/components/highlight/highlight.directive.ts","../../src/components/list-group/list-group.component.ts","../../src/components/list-group/list-group.component.html","../../src/components/checkbox/checkbox.component.ts","../../src/components/checkbox/checkbox.component.html","../../src/components/list-item/list-item.component.ts","../../src/components/list-item/list-item.component.html","../../src/components/autocomplete/autocomplete.component.ts","../../src/components/autocomplete/autocomplete.component.html","../../src/components/badge/badge.component.ts","../../src/components/badge/badge.component.html","../../src/components/tooltip/tooltip.animations.ts","../../src/components/tooltip/tooltip.component.ts","../../src/components/tooltip/tooltip.component.html","../../src/components/tooltip/directives/tooltip.directive.ts","../../src/components/avatar/avatar.component.ts","../../src/components/avatar/avatar.component.html","../../src/components/avatar/avatar-picture.directive.ts","../../src/components/avatar-list/avatar-list.component.ts","../../src/components/avatar-list/avatar-list.component.html","../../src/components/link/link.component.ts","../../src/components/link/link.component.html","../../src/components/breadcrumb-item/breadcrumb-item.component.ts","../../src/components/breadcrumb-item/breadcrumb-item.component.html","../../src/components/breadcrumb/breadcrumb.component.ts","../../src/components/breadcrumb/breadcrumb.component.html","../../src/components/bullet/bullet.component.ts","../../src/components/bullet/bullet.component.html","../../src/components/card/card.component.ts","../../src/components/card/card.component.html","../../src/components/card/card-image.directive.ts","../../src/components/custom-label/custom-label.directive.ts","../../src/components/icon/icon.model.ts","../../src/components/icon-engie/icon-engie.component.ts","../../src/components/icon-engie/icon-engie.component.html","../../src/components/icon-engie/icon-engie.model.ts","../../src/components/status-indicator/status-indicator.component.ts","../../src/components/status-indicator/status-indicator.component.html","../../src/components/inline-message/inline-message.component.ts","../../src/components/inline-message/inline-message.component.html","../../src/components/modal/modal.animations.ts","../../src/components/modal/modal.component.ts","../../src/components/modal/modal.component.html","../../src/components/tag/tag.component.ts","../../src/components/tag/tag.component.html","../../src/components/multi-select/multi-select.component.ts","../../src/components/multi-select/multi-select.component.html","../../src/components/pagination/pagination.component.ts","../../src/components/pagination/pagination.component.html","../../src/components/progress/progress.animation.ts","../../src/components/progress/progress.component.ts","../../src/components/progress/progress.component.html","../../src/components/radio/radio.component.ts","../../src/components/radio/radio.component.html","../../src/components/radio-group/radio-group.component.ts","../../src/components/radio-group/radio-group.component.html","../../src/models/size-variant.model.ts","../../src/components/search/search.component.ts","../../src/components/search/search.component.html","../../src/components/search/directives/search-button.directive.ts","../../src/components/segmented-control-button/segmented-control-button.component.ts","../../src/components/segmented-control-button/segmented-control-button.component.html","../../src/components/segmented-control/segmented-control.component.ts","../../src/components/segmented-control/segmented-control.component.html","../../src/components/select/select.component.ts","../../src/components/select/select.component.html","../../src/components/sidebar/directives/sidebar-footer.directive.ts","../../src/components/sidebar/directives/sidebar-item.directive.ts","../../src/components/sidebar/directives/sidebar-logo.directive.ts","../../src/components/sidebar/sidebar.component.ts","../../src/components/sidebar/sidebar.component.html","../../src/components/sidebar/directives/sidebar-content.directive.ts","../../src/components/sidepanel/directives/sidepanel-footer.directive.ts","../../src/components/sidepanel/directives/sidepanel-header.directive.ts","../../src/components/sidepanel/sidepanel.component.ts","../../src/components/sidepanel/sidepanel.component.html","../../src/components/sidepanel-header/directives/sidepanel-header-action.directive.ts","../../src/components/sidepanel-header/sidepanel-header.component.ts","../../src/components/sidepanel-header/sidepanel-header.component.html","../../src/components/sidepanel-layout/directives/sidepanel-layout-panel.directive.ts","../../src/components/sidepanel-layout/sidepanel-layout.animations.ts","../../src/components/sidepanel-layout/sidepanel-layout.component.ts","../../src/components/sidepanel-layout/sidepanel-layout.component.html","../../src/components/skeleton/skeleton-container.component.ts","../../src/components/skeleton/skeleton-container.component.html","../../src/components/skeleton/skeleton-rectangle.component.ts","../../src/components/skeleton/skeleton-rectangle.component.html","../../src/components/skeleton/skeleton-circle.component.ts","../../src/components/skeleton/skeleton-circle.component.html","../../src/components/skeleton/skeleton-area.component.ts","../../src/components/skeleton/skeleton-area.component.html","../../src/components/slider/slider.component.ts","../../src/components/slider/slider.component.html","../../src/components/switch/switch.component.ts","../../src/components/switch/switch.component.html","../../src/components/tab/tab.component.ts","../../src/components/tab/tab.component.html","../../src/components/tabs/tabs.component.ts","../../src/components/tabs/tabs.component.html","../../src/components/toast/toast.component.ts","../../src/components/toast/toast.component.html","../../src/components/toast/toast-container.component.ts","../../src/components/toast/toast-container.component.html","../../src/components/toast/toast.service.ts","../../src/components/toggle/toggle.component.ts","../../src/components/toggle/toggle.component.html","../../src/components/toggle/toggle-icon.directive.ts","../../src/components/tooltip/tooltip.model.ts","../../src/public-api.ts","../../src/engie-group-fluid-design-system-angular.ts"],"sourcesContent":["export const ThemeComponentsVariantsArray = ['grey', 'brand', 'teal', 'pink', 'orange', 'red', 'green', 'ultramarine', 'yellow', 'purple', 'blue', 'lime'];\n\nexport declare type ThemeComponentsVariants = typeof ThemeComponentsVariantsArray[number];\n\nexport type EmphasisVariants = 'bold' | 'subtle' | 'minimal';\n\nexport type SemanticVariants = 'neutral' | 'danger' | 'warning' | 'success' | 'information' | 'discovery' | 'planet';\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njCustomIcon]',\n  standalone: true\n})\nexport class CustomIconDirective {\n  templateRef = inject(TemplateRef);\n\n}\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\nexport type GenericElement =\n  | 'action'\n  | 'header'\n  | 'icon';\n\n@Directive({\n  selector: '[njTemplate]',\n  standalone: true\n})\nexport class EngieTemplateDirective {\n  templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n\n  @Input('njTemplate') selector?: GenericElement;\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'nj-accordion-actions',\n  templateUrl: './accordion-actions.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  host: {\n    class: 'nj-accordion__actions'\n  }\n})\nexport class AccordionActionsComponent {}\n","<ng-content></ng-content>\n","import {Directive, inject, Input} from '@angular/core';\nimport {AccordionComponent} from '../../accordion/accordion.component';\n\n@Directive({\n  selector: '[njAccordionAction]',\n  standalone: true,\n  host: {\n    'class': 'njAccordionAction',\n    '[attr.data-accordion-expand]': \"type === 'expand'\",\n    '[attr.data-accordion-collapse]': \"type === 'collapse'\",\n    '(click)': 'handleClicked()'\n  }\n})\nexport class AccordionActionDirective {\n  @Input('njAccordionAction') type?: 'expand' | 'collapse';\n\n  private accordion? = inject(AccordionComponent);\n\n  protected handleClicked() {\n    if (this.type === 'expand') {\n    this.accordion?.expandAllItems();\n    }\n    if(this.type === 'collapse') {\n      this.accordion?.collapseAllItems();\n    }\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'nj-icon-base',\n  templateUrl: './icon-base.component.html',\n  styleUrls: ['./icon-base.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class IconBaseComponent {\n\n  private MATERIAL_ICON_CLASS = 'material-icons';\n  protected ICON_CLASS = 'nj-icon';\n\n  /**\n   * @ignore\n   */\n  @Input() isEngieIcon = false; //Fixme: Should be inferred by dependency tree. Not being set by input\n\n  /**\n   * Icon name\n   */\n  @Input() name: string;\n\n  /**\n   * Text alternative for assistive technologies.\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Icon additional class\n   */\n  @Input() className: string;\n\n  protected getIconClass(): string {\n    if (this.isEngieIcon && !this.name) {\n      return '';\n    }\n    return this.isEngieIcon ? `${this.ICON_CLASS} ${this.ICON_CLASS}-${this.name}` : this.MATERIAL_ICON_CLASS;\n  }\n}\n","<span\n  [ngClass]=\"[getIconClass(), className]\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.aria-hidden]=\"ariaLabel ? null : 'true'\"\n>\n  <ng-container *ngIf=\"!isEngieIcon && name\">{{ name }}</ng-container>\n</span>\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {IconBaseComponent} from '../icon-base/icon-base.component';\nimport {IconColor, IconSize} from './icon.model';\n\n@Component({\n  selector: 'nj-icon',\n  templateUrl: './icon.component.html',\n  styleUrls: ['./icon.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconBaseComponent]\n})\nexport class IconComponent extends IconBaseComponent {\n\n  private ICON_MATERIAL_CLASS = 'nj-icon-material';\n\n  /**\n   * Icon size\n   */\n  @Input() size: IconSize = 'md';\n\n  /**\n   * Icon variant theme\n   */\n  @Input() variant: IconColor;\n\n  protected getClassName(): string {\n    const sizeClass = this.size ? `${this.ICON_MATERIAL_CLASS}--${this.classModifier(this.size, 'size-inherit')}` : '';\n    const variantClass = this.variant ? `${this.ICON_MATERIAL_CLASS}--${this.classModifier(this.variant, 'color-inherit')}` : '';\n    const className = this.className ? this.className : '';\n    return `${this.ICON_MATERIAL_CLASS} ${sizeClass} ${variantClass} ${className}`;\n  }\n\n  private classModifier<T extends string, U>(\n    variant: T,\n    inheritClass: U\n  ): Exclude<T, 'inherit'> | U {\n    switch (variant) {\n      case 'inherit':\n        return inheritClass;\n      default:\n        return variant as Exclude<T, 'inherit'>;\n    }\n  }\n}\n","<nj-icon-base\n  [name]=\"name\"\n  [isEngieIcon]=\"false\"\n  [ariaLabel]=\"ariaLabel\"\n  [className]=\"getClassName()\"\n>\n</nj-icon-base>\n","import {NgIf, NgIfContext, NgTemplateOutlet} from '@angular/common';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  Component,\n  ContentChildren,\n  ElementRef,\n  inject,\n  Input,\n  QueryList,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport {EngieTemplateDirective} from '../../directives/engie-template.directive';\nimport {TSizeVariants} from '../../models/size-variant.model';\nimport {AccordionComponent} from '../accordion/accordion.component';\nimport {IconComponent} from '../icon/icon.component';\n\n@Component({\n  selector: 'details[nj-accordion-item]',\n  templateUrl: './accordion-item.component.html',\n  styleUrls: ['./accordion-item.component.scss'],\n  standalone: true,\n  encapsulation: ViewEncapsulation.None,\n  imports: [\n    IconComponent,\n    NgIf,\n    NgTemplateOutlet\n  ],\n  host: {\n    '[class]': 'classes',\n    '(click)': 'handleClick($event)',\n  }\n})\nexport class AccordionItemComponent implements AfterContentInit {\n\n  private element: ElementRef<HTMLDetailsElement> = inject(ElementRef);\n\n  private accordion = inject(AccordionComponent);\n\n  protected iconTemplate?: TemplateRef<unknown>;\n  protected headerTemplate?: TemplateRef<NgIfContext<string>>;\n\n  /**\n   * Size of the accordion item\n   */\n  @Input() scale?: Extract<TSizeVariants, 'md' | 'lg'>;\n\n  /**\n   * Whether the toggle icon is place at the start of the item or not.\n   */\n  @Input({transform: booleanAttribute}) hasLeadingToggleIcon?: boolean;\n\n  /**\n   * Whether the toggle use the alternative icons (plus/minus) or the default ones (arrow).\n   */\n  @Input({transform: booleanAttribute}) useAlternativeToggleIcon?: boolean;\n\n  /**\n   * This attribute enables multiple <details> elements to be connected, with only one open at a time.\n   */\n  @Input() name?: string;\n\n  /**\n   * Item header\n   */\n  @Input() label?: string;\n\n  @ContentChildren(EngieTemplateDirective) protected templateDirectives?: QueryList<EngieTemplateDirective>;\n\n  protected get classes() {\n    const classes = ['nj-accordion-item'];\n\n    if (this.scale && this.scale !== 'md') {\n      classes.push(`nj-accordion-item--${this.scale}`);\n    }\n\n    if (this.hasLeadingToggleIcon) {\n      classes.push('nj-accordion-item--leading-toggle');\n    }\n    return classes;\n  }\n\n  ngAfterContentInit() {\n    this.templateDirectives.forEach((templateDirective) => {\n      if (templateDirective?.selector === 'icon') {\n        this.iconTemplate = templateDirective.templateRef;\n      }\n\n      if (templateDirective?.selector === 'header') {\n        this.headerTemplate = templateDirective.templateRef as TemplateRef<NgIfContext<string>>;\n      }\n    });\n  }\n\n  protected handleClick(event: MouseEvent) {\n    if (this.name && !this.element.nativeElement.open) {\n      event.preventDefault();\n      this.accordion.collapseAllItems(this.name);\n      this.expand();\n    }\n  }\n\n  /**\n   * Expand the accordion item programmatically\n   */\n  expand() {\n    if (this.element) {\n      this.element.nativeElement.open = true;\n    }\n  }\n\n  /**\n   * Collapse the accordion item programmatically\n   */\n  collapse() {\n    if (this.element) {\n      this.element.nativeElement.open = false;\n    }\n  }\n}\n","<summary *ngIf=\"label || headerTemplate\">\n  <ng-container *ngIf=\"iconTemplate\" [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n  <span class=\"nj-accordion-item__label\">\n    <ng-container *ngIf=\"label; else headerTemplate\">\n      {{label}}\n    </ng-container>\n  </span>\n  <nj-icon *ngIf=\"!useAlternativeToggleIcon; else alternativeToggleIcon\" name=\"expand_more\" class=\"nj-accordion-item__toggle\" variant=\"inherit\" size=\"inherit\"></nj-icon>\n</summary>\n<p class=\"nj-accordion-item__content\">\n  <ng-content></ng-content>\n</p>\n\n<ng-template #alternativeToggleIcon>\n  <nj-icon name=\"add\" class=\"nj-accordion-item__toggle nj-accordion-item__toggle--closed\" variant=\"inherit\" size=\"inherit\"></nj-icon>\n  <nj-icon name=\"remove\" class=\"nj-accordion-item__toggle nj-accordion-item__toggle--opened\" variant=\"inherit\" size=\"inherit\"></nj-icon>\n</ng-template>\n","// Fixme: remove normal in next major release\n\nexport type ButtonSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'normal';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'destructive' | 'inverse';\n\nexport type ButtonEmphasis = 'bold' | 'subtle' | 'minimal';\n\nconst CSSClassesMap: Record<ButtonSize, string> = {\n  'xsmall': 'xs',\n  'small': 'sm',\n  'medium': 'md',\n  'normal': 'md',\n  'large': 'lg',\n  'xlarge': 'xl'\n};\nexport const buttonSizeToCSS = (size: ButtonSize) => {\n  return CSSClassesMap[size];\n};\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SpinnerSize, SpinnerVariant } from './spinner.model';\n\n@Component({\n  selector: 'nj-spinner',\n  templateUrl: './spinner.component.html',\n  styleUrls: ['./spinner.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SpinnerComponent {\n  /**\n   * @ignore\n   */\n  private spinnerClassName = 'nj-spinner';\n\n  /**\n   * Spinner variant\n   */\n  @Input() variant: SpinnerVariant = 'normal';\n\n  /**\n   * Spinner size\n   */\n  @Input() size: SpinnerSize = 'md';\n\n  /**\n   * Whether to render the content of the spinner,\n   * the wrapper of the component beeing always rendered\n   * to make the live region work properly.\n   */\n  @Input() isLoading: boolean;\n\n  /**\n   * Whether the spinner is rendered as a block (<div>) or an inline (<span>) element.\n   */\n  @Input() isBlock?: boolean = true;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getSpinnerVariantClass(): string {\n    if (!this.variant || this.variant === 'normal') {\n      return '';\n    }\n    return `${this.spinnerClassName}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getSpinnerSizeClass(): string {\n    if (!this.size) {\n      return '';\n    }\n    return `${this.spinnerClassName}--${this.size}`;\n  }\n}\n","<div *ngIf=\"isBlock\" class=\"nj-spinner\" [ngClass]=\"[isLoading ? '' : 'nj-sr-only', getSpinnerVariantClass(), getSpinnerSizeClass()]\" aria-live=\"polite\" aria-atomic=\"true\">\n  <p *ngIf=\"isLoading\" class=\"nj-sr-only\">Loading...</p>\n</div>\n\n<span *ngIf=\"!isBlock\" class=\"nj-spinner\" [ngClass]=\"[isLoading ? '' : 'nj-sr-only', getSpinnerVariantClass(), getSpinnerSizeClass()]\" aria-live=\"polite\" aria-atomic=\"true\">\n  <span *ngIf=\"isLoading\" class=\"nj-sr-only\">Loading...</span>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { ButtonEmphasis, ButtonSize, buttonSizeToCSS, ButtonVariant } from './button.model';\nimport { SpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n  selector: 'nj-button',\n  templateUrl: './button.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconComponent, CommonModule, SpinnerComponent]\n})\nexport class ButtonComponent {\n  /**\n   * @ignore\n   */\n  private readonly buttonClassName = 'nj-btn';\n\n  /**\n   * Type of the button. Some values may be submit, reset...\n   */\n  @Input() type = 'button';\n\n  /**\n   * Whether button is disabled or not\n   */\n  @Input() isDisabled?: boolean;\n\n  /**\n   * Whether button is loading or not\n   */\n  @Input() isLoading?: boolean;\n\n  /**\n   * Tab index, allows you to customize keyboard navigation\n   */\n  @Input() tabIndex?: number;\n\n  /**\n   * Button emphasis\n   */\n  @Input() emphasis: ButtonEmphasis = 'bold';\n\n  /**\n   * Button variant theme\n   */\n  @Input() variant: ButtonVariant = 'primary';\n\n  /**\n   * Button size\n   */\n  @Input() size?: ButtonSize;\n\n  /**\n   * Whether button has custom icon\n   */\n  @Input() hasCustomIcon = false;\n\n  /**\n   * Button material icon\n   */\n  @Input() icon?: string;\n\n  /**\n   * Text alternative for assistive technologies\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabel?: string;\n\n  /**\n   * Button click output. Emits a MouseEvent\n   */\n  @Output() buttonClick = new EventEmitter<MouseEvent>();\n\n  /**\n   * @ignore\n   */\n  getButtonEmphasisClass(): string {\n    if (!this.emphasis || this.emphasis === 'bold') {\n      return '';\n    }\n    return `${this.buttonClassName}--${this.emphasis}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getButtonVariantClass(): string {\n    if (!this.variant || this.variant === 'primary') {\n      return '';\n    }\n    return `${this.buttonClassName}--${this.variant}`;\n  }\n\n  protected getButtonSizeClass(): string {\n    if (!this.size || this.size === 'medium' || this.size === 'normal') {\n      return '';\n    }\n    return `${this.buttonClassName}--${buttonSizeToCSS(this.size)}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getButtonIsLoadingClass(): string {\n    return this.isLoading ? `${this.buttonClassName}--is-loading` : '';\n  }\n}\n","<button\n  class=\"nj-btn\"\n  [type]=\"type\"\n  (click)=\"buttonClick.emit($event)\"\n  [disabled]=\"isDisabled\"\n  [ngClass]=\"[getButtonEmphasisClass(), getButtonVariantClass(), getButtonSizeClass(), getButtonIsLoadingClass()]\"\n  [attr.tabindex]=\"tabIndex ? tabIndex : null\"\n  [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n>\n  <ng-container *ngIf=\"!isLoading\">\n    <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n  </ng-container>\n  <ng-container *ngIf=\"isLoading\">\n    <ng-container *ngTemplateOutlet=\"itemSpinner\"></ng-container>\n  </ng-container>\n</button>\n\n<ng-template #itemContent>\n  <span *ngIf=\"hasCustomIcon || icon\" class=\"nj-btn__icon\">\n    <nj-icon *ngIf=\"icon\" [name]=\"icon\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n    <ng-container *ngIf=\"!icon\">\n      <ng-content select=\"[custom-icon]\"></ng-content>\n    </ng-container>\n  </span>\n  <ng-content></ng-content>\n</ng-template>\n\n<ng-template #itemSpinner>\n  <nj-spinner [isLoading]=\"true\" [isBlock]=\"false\" />\n</ng-template>\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  Input,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\nimport { AccordionActionsComponent } from '../accordion-actions/accordion-actions.component';\nimport { AccordionActionDirective } from '../accordion-actions/directive/accordion-action.directive';\nimport { AccordionItemComponent } from '../accordion-item/accordion-item.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-accordion',\n  templateUrl: './accordion.component.html',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [\n    AccordionItemComponent,\n    IconComponent,\n    EngieTemplateDirective,\n    AccordionActionsComponent,\n    ButtonComponent,\n    AccordionActionDirective\n  ],\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class AccordionComponent {\n  @Input({ transform: booleanAttribute }) noBorder: boolean;\n  @Input({ transform: booleanAttribute }) separated: boolean;\n\n  @ContentChildren(AccordionItemComponent) private accordions?: QueryList<AccordionItemComponent>;\n\n  protected get classes() {\n    const classes = ['nj-accordion'];\n\n    if (this.noBorder) {\n      classes.push('nj-accordion--no-border');\n    }\n\n    if (this.separated) {\n      classes.push('nj-accordion--separated');\n    }\n\n    return classes;\n  }\n\n  /**\n   * Expand all children items programmatically\n   */\n  expandAllItems() {\n    const openedGroup = new Set<string>();\n    this.accordions.forEach((accordion) => {\n      // Firefox doesn't currently support grouping accordion items with `name` property.\n      // So we replicate the behavior here to have it on all browsers.\n      //\n      // As explained in the MDN documentation, when the `name` property is set, only the first details\n      // element with the `open` property should be opened.\n      if (!accordion.name || !openedGroup.has(accordion.name)) {\n        accordion.expand();\n      } else {\n        accordion.collapse();\n      }\n      if (accordion.name) {\n        openedGroup.add(accordion.name);\n      }\n    });\n  }\n\n  /**\n   * Collapse all children items programmatically\n   */\n  collapseAllItems(name?: string) {\n    this.accordions.forEach((accordion) => {\n      if (name && accordion.name !== name) {\n        return;\n      }\n      accordion.collapse();\n    });\n  }\n}\n","<ng-content></ng-content>\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\nimport {njSemanticMotionEasingLinearOutSlowIn} from '@engie-group/fluid-design-tokens';\n\nexport const selectAnimations: {\n  readonly transformList: AnimationTriggerMetadata;\n} = {\n  transformList: trigger('transformList', [\n    state(\n      'void',\n      style({\n        transform: 'scaleY(0.8)',\n        opacity: 0,\n      }),\n    ),\n    state(\n      '*',\n      style({\n        opacity: 1,\n        transform: 'scaleY(1)',\n      }),\n    ),\n    transition('void => *', animate(`120ms ${njSemanticMotionEasingLinearOutSlowIn}`)),\n    transition('* => void', animate(`100ms 25ms ${njSemanticMotionEasingLinearOutSlowIn}`, style({opacity: 0}))),\n  ]),\n};\n","// Ignore https://angular.io/guide/angular-compiler-options#strictmetadataemit\n// @dynamic\nexport class Utils {\n  static MAX_UID = 1000000;\n\n  public static isUndefinedOrNull(value: any): boolean {\n    return typeof value === 'undefined' || value === null;\n  }\n\n  public static normalizeString(text: string) {\n    return text.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n  }\n\n  public static normalizeAndSearchInText(text: string, search: string): boolean {\n    if(Utils.isUndefinedOrNull(text) || Utils.isUndefinedOrNull(search)) {\n      return false;\n    }\n    const normalizedText = Utils.normalizeString(text);\n    let normalizedSearch = Utils.normalizeString(search)?.replace(/\\(|\\)|\\\\/gi, '');\n    const regExp = new RegExp(normalizedSearch, 'gi');\n    return normalizedText.search(regExp) !== -1;\n  }\n\n  public static getUID(prefix: string): string {\n    do {\n      // eslint-disable-next-line no-bitwise\n      prefix += ~~(Math.random() * Utils.MAX_UID); // \"~~\" acts like a faster Math.floor() here\n    } while (document.getElementById(prefix));\n    return prefix;\n  }\n}\n","import {Directive, ElementRef, HostBinding} from '@angular/core';\nimport {Utils} from '../../utils/utils.util';\n\n@Directive({\n  selector: 'input[njFormField], textarea[njFormField], select[njFormField], nj-select[njFormField], div[njFormField]',\n  exportAs: 'njFormField',\n  standalone: true\n})\nexport class FormFieldDirective {\n  @HostBinding('class') class = 'nj-form-item__field';\n\n  constructor(private el: ElementRef) {\n    this.setPlaceholder();\n  }\n\n  private setPlaceholder() {\n    if (this.tagName.toLowerCase() === 'select') {\n      return;\n    }\n    const placeholder = this.el?.nativeElement?.placeholder;\n    this.el.nativeElement.placeholder = Utils.isUndefinedOrNull(placeholder) || placeholder?.trim() === ''\n      ? ' '\n      : placeholder;\n  }\n\n  get type() {\n    return this.el?.nativeElement?.type;\n  }\n\n  set type(value: string) {\n    if (this.el?.nativeElement) {\n      this.el.nativeElement.type = value;\n    }\n  }\n\n  get tagName() {\n    return this.el?.nativeElement?.tagName;\n  }\n\n  get element() {\n    return this.el?.nativeElement;\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {IconComponent} from '../icon/icon.component';\nimport {IconButtonSize, IconButtonVariant} from './icon-button.model';\n\n@Component({\n  selector: 'nj-icon-button',\n  templateUrl: './icon-button.component.html',\n  styleUrls: ['./icon-button.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CommonModule]\n})\nexport class IconButtonComponent {\n  private readonly ICON_BUTTON_CLASS_NAME = 'nj-icon-btn';\n\n  /**\n   * Type of the button. Some values may be `button`, `submit`, `reset`\n   */\n  @Input() type = 'button';\n\n  /**\n   * For toggle buttons, indicate the state\n   */\n  @Input() ariaPressed?: boolean;\n\n  /**\n   * Additional description for assistive technologies based on visible text\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-describedby\n   */\n  @Input() ariaDescribedby?: string;\n\n  /**\n   * Whether button is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Tab index, allows you to customize keyboard navigation\n   */\n  @Input() tabIndex: number;\n\n  /**\n   * Button variant theme\n   * @default `primary`\n   */\n  @Input() variant: IconButtonVariant;\n\n  /**\n   * Button size\n   * @default `xs`\n   */\n  @Input() size: IconButtonSize;\n\n  /**\n   * Whether button has custom icon\n   */\n  @Input() hasCustomIcon = false;\n\n  /**\n   * Button material icon\n   */\n  @Input() icon: string;\n\n  /**\n   * Text alternative for assistive technologies\n   */\n  @Input() label: string;\n\n  /**\n   * Additional icon-button css classes\n   */\n  @Input() additionalClass?: string;\n\n  /**\n   * Button click output. Emits a MouseEvent\n   */\n  @Output() buttonClick = new EventEmitter<MouseEvent>();\n\n  constructor() {\n  }\n\n  /**\n   * @ignore\n   */\n  getIconButtonVariantClass(): string {\n    if (!this.variant || this.variant === 'primary') {\n      return '';\n    }\n    return `${this.ICON_BUTTON_CLASS_NAME}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getIconButtonSizeClass(): string {\n    if (!this.size || this.size === 'xs') {\n      return '';\n    }\n    return `${this.ICON_BUTTON_CLASS_NAME}--${this.size}`;\n  }\n}\n","<button class=\"nj-icon-btn\"\n        [type]=\"type\"\n        (click)=\"buttonClick.emit($event)\"\n        [tabIndex]=\"tabIndex\"\n        [disabled]=\"isDisabled\"\n        [ngClass]=\"[\n          getIconButtonVariantClass(),\n          getIconButtonSizeClass(),\n          additionalClass ?? ''\n        ]\"\n        [title]=\"label\"\n        [attr.aria-describedby]=\"ariaDescribedby\"\n        [attr.aria-pressed]=\"ariaPressed\"\n>\n  <span class=\"nj-sr-only\">{{label}}</span>\n  <nj-icon class=\"nj-icon-btn__icon\" *ngIf=\"!hasCustomIcon && icon\" [name]=\"icon\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n  <span *ngIf=\"hasCustomIcon\" class=\"nj-icon-btn__icon\">\n    <ng-content select=\"[custom-icon]\"></ng-content>\n  </span>\n</button>\n","import {CommonModule} from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {FormFieldDirective} from '../form-field/form-field.directive';\nimport {IconButtonComponent} from '../icon-button/icon-button.component';\nimport {IconComponent} from '../icon/icon.component';\nimport {FormItemSize} from './form-item.model';\n\n@Component({\n  selector: 'nj-form-item',\n  templateUrl: './form-item.component.html',\n  styleUrls: ['./form-item.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconComponent, IconButtonComponent, FormFieldDirective, CommonModule]\n})\nexport class FormItemComponent implements AfterContentInit {\n\n  private readonly formItemClassName = 'nj-form-item';\n\n  /**\n   * @ignore\n   */\n  private _hasError: boolean;\n\n  /**\n   * @ignore\n   */\n  private _hasSuccess: boolean;\n\n  /**\n   * @ignore\n   */\n  private _hasHint: boolean;\n\n  /**\n   * @ignore\n   */\n  isPassword: boolean;\n\n  /**\n   * @ignore\n   */\n  isVisible = false;\n\n  /**\n   * @ignore\n   */\n  passwordNotice = '';\n\n  /**\n   * @ignore\n   */\n  passwordButtonLabel = '';\n\n  /**\n   * @ignore\n   */\n  isMultiline = false;\n\n  /**\n   * Input id and label for attribute, needed for focus to work properly\n   */\n  @Input() inputId: string;\n\n  /**\n   * Form item size\n   */\n  @Input() size: FormItemSize = 'medium';\n\n  /**\n   * Whether the form-item label is floating\n   */\n  @Input() isFloatingLabel = true;\n\n  /**\n   * Whether form-item is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Whether form-item is required or not\n   */\n  @Input() isRequired: boolean;\n\n  /**\n   * Whether form-item is in success state\n   */\n  @Input()\n  set hasSuccess(value: boolean) {\n    this._hasSuccess = value;\n    this.setAriaAttributes();\n  }\n\n  get hasSuccess(): boolean {\n    return this._hasSuccess;\n  }\n\n  /**\n   * Whether form-item is in error state\n   */\n  @Input()\n  set hasError(value: boolean) {\n    this._hasError = value;\n    this.setAriaAttributes();\n  }\n\n  get hasError(): boolean {\n    return this._hasError;\n  }\n\n  /**\n   * Whether the form-item has a hint substring\n   */\n  @Input()\n  set hasHint(value: boolean) {\n    this._hasHint = value;\n    this.setAriaAttributes();\n  }\n\n  get hasHint(): boolean {\n    return this._hasHint;\n  }\n\n  /**\n   * Whether the form-item has a custom icon\n   */\n  @Input() hasCustomIcon: boolean;\n\n  /**\n   * Whether the form-item's icon (or custom icon) is clickable\n   */\n  @Input() isIconClickable = true;\n\n  /**\n   * Material icon name\n   */\n  @Input() iconName: string;\n\n  /**\n   * Additional form-item css classes\n   */\n  @Input() additionalClass: string = '';\n\n  /**\n   * Label for the button to toggle password visibility when password is hidden.\n   * @example \"Show password\"\n   */\n  @Input() passwordButtonLabelShow?: string;\n\n  /**\n   * Label for the button to toggle password visibility when password is visible.\n   * @example \"Hide password\"\n   */\n  @Input() passwordButtonLabelHide?: string;\n  /**\n   * Label to announce when password becomes visible.\n   * @example \"Password is visible\"\n   */\n  @Input() passwordNoticeIsVisible?: string;\n\n  /**\n   * Label to announce when password becomes hidden.\n   * @example \"Password is hidden\"\n   */\n  @Input() passwordNoticeIsHidden?: string;\n\n  /**\n   * Whether form-item is a select or not\n   */\n  @Input() isSelect: boolean;\n\n  /**\n   * Outputs icon click\n   */\n  @Output() iconClick: EventEmitter<MouseEvent> = new EventEmitter<\n    MouseEvent\n  >();\n\n  /**\n   * Outputs icon keydown\n   */\n  @Output() iconKeydown: EventEmitter<KeyboardEvent> = new EventEmitter<\n    KeyboardEvent\n  >();\n\n  /**\n   * Outputs icon click\n   */\n  @Output() wrapperClick: EventEmitter<MouseEvent> = new EventEmitter<\n    MouseEvent\n  >();\n\n  /**\n   * @ignore\n   */\n  @ContentChild(FormFieldDirective) formField: FormFieldDirective;\n\n  ngAfterContentInit() {\n    const tagName = this.formField?.tagName?.toLowerCase();\n    this.isPassword = this.formField?.type === 'password';\n    this.isMultiline = tagName === 'textarea';\n    this.passwordButtonLabel = this.passwordButtonLabelShow;\n    this.setAriaAttributes();\n    if (this.isRequired) {\n      this.formField.element.setAttribute('required', 'required');\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  iconClickHandler(event: MouseEvent) {\n    if (!this.isIconClickable) {\n      return;\n    }\n    this.iconClick.emit(event);\n  }\n\n  /**\n   * @ignore\n   */\n  iconKeydownHandler(event: KeyboardEvent) {\n    event?.preventDefault();\n    if (!this.isIconClickable) {\n      return;\n    }\n    this.iconKeydown.emit(event);\n  }\n\n  /**\n   * @ignore\n   */\n  toggleVisibility() {\n    if (this.isVisible) {\n      this.formField.type = 'password';\n      this.passwordNotice = this.passwordNoticeIsHidden;\n      this.passwordButtonLabel = this.passwordButtonLabelShow;\n    } else {\n      this.formField.type = 'text';\n      this.passwordNotice = this.passwordNoticeIsVisible;\n      this.passwordButtonLabel = this.passwordButtonLabelHide;\n    }\n    this.isVisible = !this.isVisible;\n  }\n\n  /**\n   * @ignore\n   */\n  getSubscriptId(): string {\n    return `${this.inputId}-subscript`;\n  }\n\n  /**\n   * @ignore\n   */\n  setAriaAttributes() {\n    if (this.formField?.element) {\n      if (this.hasError) {\n        this.formField.element.setAttribute('aria-invalid', 'true');\n      }\n\n      if (this.hasError || this.hasSuccess || this.hasHint) {\n        this.formField.element.setAttribute('aria-describedby', this.getSubscriptId());\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  isCustomSelect(): boolean {\n    const type = this.formField?.type;\n    return this.isSelect && type === 'text';\n  }\n\n  /**\n   * @ignore\n   */\n  getFormItemSizeClass(): string {\n    let sizeModifier: string;\n    switch (this.size) {\n      case 'small':\n        sizeModifier = 'sm';\n        break;\n      case 'large':\n        sizeModifier = 'lg';\n        break;\n      case 'xlarge':\n        sizeModifier = 'xl';\n        break;\n      default:\n        break;\n    }\n    return sizeModifier ? `${this.formItemClassName}--${sizeModifier}` : '';\n  }\n}\n","<div class=\"nj-form-item\"\n     [class.nj-form-item--static]=\"!isFloatingLabel\"\n     [class.nj-form-item--disabled]=\"isDisabled\"\n     [class.nj-form-item--error]=\"hasError\"\n     [class.nj-form-item--success]=\"hasSuccess\"\n     [class.nj-form-item--password]=\"isPassword\"\n     [class.nj-form-item--select]=\"isSelect\"\n     [class.nj-form-item--visible]=\"isVisible\"\n     [class.nj-form-item--textarea]=\"isMultiline\"\n     [ngClass]=\"[getFormItemSizeClass(), additionalClass]\">\n  <div class=\"nj-form-item__field-wrapper\" (click)=\"wrapperClick.emit($event)\">\n    <ng-content select=\"[njFormField]\"></ng-content>\n    <label class=\"nj-form-item__label\" [attr.for]=\"inputId\" [attr.aria-hidden]=\"isCustomSelect() ? 'true' : null\">\n      <ng-content select=\"[njFormLabel]\"></ng-content>\n      <span *ngIf=\"isRequired\" class=\"nj-form-item__required-asterisk\">*</span>\n    </label>\n    <nj-icon-button\n      *ngIf=\"isPassword\"\n      size=\"sm\"\n      variant=\"tertiary\"\n      [label]=\"passwordButtonLabel\"\n      [icon]=\"iconName || 'visibility'\"\n      (click)=\"toggleVisibility()\"\n      [ariaPressed]=\"isVisible\"\n      additionalClass=\"nj-form-item__password-button\"\n    >\n    </nj-icon-button>\n    <nj-icon class=\"nj-form-item__icon\"\n             *ngIf=\"!isPassword && !isMultiline && !hasCustomIcon && iconName\"\n             [name]=\"iconName\"\n             variant=\"inherit\"\n             (click)=\"iconClickHandler($event)\"\n             (keydown)=\"iconKeydownHandler($event)\">\n    </nj-icon>\n    <div class=\"nj-form-item__icon\" *ngIf=\"!isPassword && !isMultiline && hasCustomIcon\" [attr.tabindex]=\"isIconClickable ? 0 : null\"\n         (click)=\"iconClickHandler($event)\" (keydown)=\"iconKeydownHandler($event)\">\n      <ng-content select=\"[njFormCustomIcon]\"></ng-content>\n    </div>\n    <p *ngIf=\"isPassword\" class=\"nj-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">{{ passwordNotice }}</p>\n    <ng-content select=\"[njFormAdditionalContent]\"></ng-content>\n  </div>\n  <div class=\"nj-form-item__subscript\" *ngIf=\"hasError || hasSuccess || hasHint\" [attr.id]=\"getSubscriptId()\">\n    <nj-icon *ngIf=\"hasError\" class=\"nj-form-item__subscript-icon\" name=\"warning\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n    <nj-icon *ngIf=\"hasSuccess && !hasError\" class=\"nj-form-item__subscript-icon\" name=\"check\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n    <ng-content select=\"[njFormSubscript]\"></ng-content>\n  </div>\n</div>\n","import {Directive, ElementRef, Input, OnChanges, SimpleChanges} from '@angular/core';\nimport {Utils} from '../../utils/utils.util';\n\n@Directive({\n  selector: '[njHighlight]',\n  standalone: true\n})\nexport class HighlightDirective implements OnChanges {\n  /**\n   * Content we want to highlight\n   */\n  @Input()\n  public content: string;\n\n  /**\n   * Text to highlight in the content\n   */\n  @Input()\n  public textToHighlight: string;\n\n  /**\n   * Whether to escape accents or no\n   */\n  @Input()\n  public escapeAccents = true;\n\n  /**\n   * Whether to take into account case or no\n   */\n  @Input()\n  public caseSensitive = false;\n\n  private readonly OPENING_TAG = '<mark class=\"nj-highlight\">';\n  private readonly CLOSING_TAG = '</mark>';\n\n  constructor(private el: ElementRef) {}\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.highlightText();\n  }\n\n  private highlightText(): void {\n    if (Utils.isUndefinedOrNull(this.content) || Utils.isUndefinedOrNull(this.el?.nativeElement)) {\n      return;\n    }\n    const regexFlags = this.caseSensitive ? 'g' : 'gi';\n    let innerHtml: string;\n    if (Utils.isUndefinedOrNull(this.textToHighlight)) {\n      innerHtml = this.content;\n    } else {\n      if (this.escapeAccents) {\n        const regExp = new RegExp(Utils.normalizeString(this.textToHighlight), regexFlags);\n        const matches = Utils.normalizeString(this.content).matchAll(regExp);\n        let finalText = this.content;\n        let buffer = 0;\n        if (!Utils.isUndefinedOrNull(matches)) {\n          for (const match of matches) {\n            const updatedIndex = buffer + match.index;\n            const textBeforeOccurrence = finalText.slice(0, updatedIndex);\n            const occurrence = finalText.slice(updatedIndex, updatedIndex + this.textToHighlight.length);\n            const textAfterOccurrence = finalText.slice(updatedIndex + this.textToHighlight.length, finalText.length);\n            finalText = `${textBeforeOccurrence}${this.OPENING_TAG}${occurrence}${this.CLOSING_TAG}${textAfterOccurrence}`;\n            buffer = buffer + this.OPENING_TAG.length + this.CLOSING_TAG.length;\n          }\n        }\n        innerHtml = finalText;\n      } else {\n        const regExp = new RegExp(this.textToHighlight, regexFlags);\n        innerHtml = this.content.replace(regExp, `${this.OPENING_TAG}$&${this.CLOSING_TAG}`);\n      }\n    }\n    this.el.nativeElement.innerHTML = innerHtml;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'nj-list-group',\n  templateUrl: './list-group.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class ListGroupComponent {\n  /**\n   * List id attribute\n   */\n  @Input() listId?: string;\n\n  /**\n   * Whether group items are clickable\n   */\n  @Input() isClickable: boolean;\n\n  /**\n   * Whether it is a checkbox list or not\n   */\n  @Input() isCheckboxList: boolean;\n\n  /**\n   * Whether group items have borders\n   */\n  @Input() hasBorder = true;\n\n  /**\n   * Whether list is dense or not, i.e: smaller\n   */\n  @Input() isDense = false;\n\n  /**\n   * Add role=\"listbox\" and tabindex=\"-1\" to the element.\n   *\n   * Used by `nj-select` for accessibility reasons.\n   */\n  @Input() isCustomSelectList: boolean = false;\n\n  /**\n   * Accessible label for the list when using \"listbox\" role.\n   */\n  @Input() ariaLabel?: string;\n\n  /**\n   * Whether list is multi-select or not, to add necessary accessible labels\n   */\n  @Input() isMultiSelect: boolean = false;\n\n  @ViewChild('root')\n  public rootEl: ElementRef<HTMLUListElement>;\n\n  constructor(public readonly element: ElementRef<HTMLElement>) {}\n}\n","<ul\n  #root\n  class=\"nj-list-deprecated\"\n  [ngClass]=\"{\n    'nj-list-deprecated--clickable': isClickable,\n    'nj-list-deprecated--sm': isDense,\n    'nj-list-deprecated--no-border': !hasBorder,\n    'nj-list-deprecated--checkbox': isCheckboxList\n  }\"\n  [attr.id]=\"listId\"\n  [attr.role]=\"isCustomSelectList ? 'listbox' : null\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.tabindex]=\"isCustomSelectList ? -1 : null\"\n  [attr.aria-multiselectable]=\"isMultiSelect\"\n>\n  <ng-content></ng-content>\n</ul>\n","import {CommonModule} from '@angular/common';\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  Output,\n  ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {IconComponent} from '../icon/icon.component';\nimport {CheckboxSize} from './checkbox.model';\n\n@Component({\n  selector: 'nj-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.scss'],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => CheckboxComponent),\n    multi: true\n  }],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CommonModule]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n  private readonly checkboxClassName = 'nj-checkbox';\n\n  private _checked: boolean;\n\n  /**\n   * Input id\n   */\n  @Input() inputId: string;\n\n  /**\n   * Input name\n   */\n  @Input() name: string;\n\n  /**\n   * Whether input is required or not\n   */\n  @Input() isRequired?: boolean;\n\n  /**\n   * Whether the checkbox is checked or not\n   */\n  @Input()\n  set isChecked(value: boolean) {\n    this._checked = value;\n    this.cdr.markForCheck();\n  }\n\n  get isChecked(): boolean {\n    return this._checked;\n  }\n\n  /**\n   * Checkbox size\n   */\n  @Input() size?: CheckboxSize = 'md';\n\n  /**\n   * Input value\n   */\n  @Input() value?: string;\n\n  /**\n   * Whether the checkbox is disabled or not\n   */\n  @Input() isDisabled?: boolean;\n\n  /**\n   * Whether the checkbox is in error state\n   */\n  @Input() hasError?: boolean;\n\n  /**\n   * Whether the checkbox is in success state\n   */\n  @Input() hasSuccess?: boolean;\n\n  /**\n   * Message to display as hint below checkbox\n   */\n  @Input() subscriptMessage?: string;\n\n  /**\n   * @Deprecated\n   * Message to display if checkbox is in error state\n   */\n  @Input() errorMessage?: string;\n\n  /**\n   * Aria label, for accessibility reasons\n   */\n  @Input() ariaLabel?: string;\n\n  /**\n   * Aria labelled by, for accessibility reasons\n   */\n  @Input() ariaLabelledby?: string;\n\n  /**\n   * Whether checkbox is only presentational and state handled by a parent, can be useful for lists of checkboxes.\n   * When set to `true`, the checkbox won't have any interaction.\n   */\n  @Input() isPresentational? = false;\n\n  /**\n   * Whether the checkbox is in indeterminate state or not.\n   */\n  @Input({transform: booleanAttribute}) indeterminate: boolean;\n\n  /**\n   * Output that emits checked value on change only\n   */\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  @ViewChild('input')\n  private _inputElement: ElementRef<HTMLInputElement>;\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  _onChangeEvent(event: Event) {\n    event.stopPropagation();\n    if (this._inputElement?.nativeElement) {\n      this.isChecked = this._inputElement.nativeElement.checked;\n      this._onChange(this.isChecked);\n      this.valueChange.emit(this.isChecked);\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  _onInputClick(event: Event) {\n    // We have to stop propagation for click events on the visually hidden input element.\n    // By default, when a user clicks on a label element, a generated click event will be\n    // dispatched on the associated input element. Since we are using a label element as our\n    // root container, the click event on the `slide-toggle` will be executed twice.\n    // The real click event will bubble up, and the generated click event also tries to bubble up.\n    // This will lead to multiple click events.\n    // Preventing bubbling for the second event will solve that issue.\n    event.stopPropagation();\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: any): void {\n    this.isChecked = !!value;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  getSubscriptId(): string {\n    return `${this.inputId}-hint`;\n  }\n\n  private get checkboxSizeClass(): string {\n    return this.size !== 'md' ? `${this.checkboxClassName}--${this.size}` : '';\n  }\n\n  protected get checkboxClasses() {\n    return {\n      'nj-checkbox--error': this.hasError,\n      'nj-checkbox--success': this.hasSuccess,\n      [this.checkboxSizeClass]: true\n    };\n  }\n}\n","<div class=\"nj-checkbox\"\n     [ngClass]=\"checkboxClasses\"\n     [attr.inert]=\"isPresentational ? 'true' : null\">\n  <label [attr.for]=\"inputId\">\n    <input\n      type=\"checkbox\"\n      #input\n      [indeterminate]=\"indeterminate\"\n      [required]=\"isRequired\"\n      [checked]=\"isChecked\"\n      [disabled]=\"isDisabled\"\n      [attr.id]=\"inputId\"\n      [attr.name]=\"name\"\n      [attr.aria-label]=\"ariaLabel\"\n      [attr.aria-labelledby]=\"ariaLabelledby\"\n      [attr.aria-invalid]=\"hasError ? 'true' : null\"\n      [attr.aria-describedby]=\"subscriptMessage || errorMessage ? getSubscriptId() : null\"\n      (change)=\"_onChangeEvent($event)\"\n      (click)=\"_onInputClick($event)\">\n    <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n  </label>\n  <div *ngIf=\"subscriptMessage || errorMessage\" class=\"nj-checkbox__subscript\" [attr.id]=\"getSubscriptId()\">\n    <nj-icon *ngIf=\"hasError\" variant=\"inherit\" name=\"warning\" size=\"sm\"></nj-icon>\n    <nj-icon *ngIf=\"hasSuccess && !hasError\" variant=\"inherit\" name=\"check\" size=\"sm\"></nj-icon>\n    {{errorMessage ? errorMessage : subscriptMessage}}\n  </div>\n</div>\n\n<ng-template #content>\n  <span class=\"nj-checkbox__label\">\n    <ng-content></ng-content>\n    <span *ngIf=\"isRequired\" aria-hidden=\"true\" class=\"nj-checkbox__required\">\n      *\n    </span>\n  </span>\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  inject,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {CheckboxComponent} from '../checkbox/checkbox.component';\nimport {IconComponent} from '../icon/icon.component';\n\nimport {TListItemType} from './list-item.model';\n\n@Component({\n  /* eslint-disable-next-line @angular-eslint/component-selector */\n  selector: '[nj-list-item]',\n  templateUrl: './list-item.component.html',\n  styleUrls: ['./list-item.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CheckboxComponent, CommonModule]\n})\nexport class ListItemComponent {\n\n  private readonly cdr = inject(ChangeDetectorRef);\n\n  /**\n   * @ignore\n   */\n  @HostBinding('class')\n  get className() {\n    return 'nj-list-deprecated__item';\n  }\n\n  /**\n   * Whether item is active or not\n   */\n  @HostBinding('class.nj-list-deprecated__item--active')\n  @Input()\n  isActive: boolean;\n\n  /**\n   * Whether item is disabled or not\n   */\n  @HostBinding('class.nj-list-deprecated__item--disabled')\n  @Input()\n  isDisabled: boolean;\n\n  /**\n   * @ignore\n   */\n  @HostBinding('class.nj-list-deprecated__item--clickable')\n  get isClickable() {\n    const hasRoleOption = this.role === 'option';\n    return this.hasClickableChildren || hasRoleOption;\n  }\n\n  /**\n   * Whether the border should be on the right\n   */\n  @HostBinding('class.nj-list-deprecated__item--right-border')\n  @Input()\n  hasRightBorder = false;\n\n  /** Override aria role if required. */\n  @HostBinding('attr.role')\n  @Input()\n  role?: string;\n\n  /**\n   * @ignore\n   */\n  @HostBinding('attr.tabindex')\n  get getTabindex() {\n    return this.role === 'option' ? -1 : null;\n  }\n\n  @HostBinding('attr.aria-selected')\n  @Input()\n  ariaSelected: boolean = null;\n\n  /**\n   * Name of the icon\n   */\n  @Input() iconName: string;\n\n  /**\n   * Aria label of the icon\n   */\n  @Input() iconAriaLabel: string;\n\n  /**\n   * List item type <br>\n   * `list` -> `<li>...</li>` <br>\n   * `link` -> `<li><a>...</a></li>` <br>\n   * `button` -> `<li><button>...</button></li>`\n   *\n   * @default \"list\"\n   */\n  @Input() type?: TListItemType;\n\n  /**\n   * List item href when `type` is `link`\n   */\n  @Input() href?: string;\n\n  /**\n   * List item attribute value\n   */\n  @Input() value: string;\n\n  /**\n   * Whether content should be in a checkbox\n   */\n  @Input() isCheckboxContent: boolean = false;\n\n  /**\n   * Whether only icon should be displayed\n   */\n  @Input() isIconOnly: boolean = false;\n\n  /**\n   * Checkbox id if `isCheckboxContent` is set to `true`\n   */\n  @Input() checkboxContentId: string;\n\n  /**\n   * Emits an event on item click\n   */\n  @Output() itemClick = new EventEmitter<MouseEvent>();\n\n  /**\n   * @ignore\n   */\n  @HostListener('click', ['$event']) onMouseClick(event: MouseEvent) {\n    // Ignore the event if the list item is a button or a link, the click event is bound to\n    // the wrapped <button> or <a>\n    if (!this.hasClickableChildren) {\n      this.itemClick.emit(event);\n    }\n  }\n\n  constructor(public readonly el: ElementRef<HTMLElement>) {\n  }\n\n  /**\n   * Get value of item, returns value if set else returns textContent of item.\n   * Used in `<nj-select>` component\n   */\n  getValue(): string {\n    return this.value ?? this.getLabel();\n  }\n\n  /**\n   * Get label of item, returns textContent of item.\n   * Used in `<nj-select>` component\n   */\n  getLabel(): string {\n    return this.el?.nativeElement?.textContent;\n  }\n\n  /**\n   * @ignore\n   */\n  updateSelected(isSelected: boolean) {\n    this.ariaSelected = isSelected;\n    this.isActive = isSelected;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  get hasClickableChildren() {\n    return this.type === 'button' || this.type === 'link';\n  }\n}\n","<ng-template #itemContent>\n  <nj-icon\n    *ngIf=\"iconName\"\n    [name]=\"iconName\"\n    [ariaLabel]=\"iconAriaLabel\"\n    class=\"nj-list-deprecated__item-icon\">\n  </nj-icon>\n  <ng-container *ngIf=\"!isIconOnly\" [ngTemplateOutlet]=\"isCheckboxContent ? checkboxContent : brutContent\"></ng-container>\n  <div *ngIf=\"!isIconOnly\" class=\"nj-list-deprecated__item-right-content\">\n    <ng-content select=\"[njListItemRightContent]\"></ng-content>\n  </div>\n</ng-template>\n\n<button *ngIf=\"type === 'button'\" type=\"button\" (click)=\"itemClick.emit($event)\">\n  <ng-container [ngTemplateOutlet]=\"itemContent\"></ng-container>\n</button>\n\n<a *ngIf=\"type === 'link'\" (click)=\"itemClick.emit($event)\" [attr.href]=\"href\">\n  <ng-container [ngTemplateOutlet]=\"itemContent\"></ng-container>\n</a>\n\n<ng-container\n  *ngIf=\"!type || type === 'list'\"\n  [ngTemplateOutlet]=\"itemContent\"\n></ng-container>\n\n<ng-template #checkboxContent>\n  <nj-checkbox [isChecked]=\"isActive\" [inputId]=\"checkboxContentId\" [isPresentational]=\"true\">\n    <ng-container [ngTemplateOutlet]=\"brutContent\"></ng-container>\n  </nj-checkbox>\n</ng-template>\n\n<ng-template #brutContent>\n  <ng-content></ng-content>\n</ng-template>\n","import { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewChildren,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { selectAnimations } from '../../shared/animations';\nimport { Utils } from '../../utils/utils.util';\nimport { FormFieldDirective } from '../form-field/form-field.directive';\nimport { FormItemComponent } from '../form-item/form-item.component';\nimport { HighlightDirective } from '../highlight/highlight.directive';\nimport { ListGroupComponent } from '../list-group/list-group.component';\nimport { ListItemComponent } from '../list-item/list-item.component';\nimport { AutocompleteOption } from './autocomplete.model';\n\n@Component({\n  selector: 'nj-autocomplete',\n  templateUrl: './autocomplete.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AutocompleteComponent),\n      multi: true\n    }\n  ],\n  animations: [selectAnimations.transformList],\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [\n    ListGroupComponent,\n    ListItemComponent,\n    FormItemComponent,\n    FormFieldDirective,\n    HighlightDirective,\n    CommonModule\n  ]\n})\nexport class AutocompleteComponent\n  extends FormItemComponent\n  implements ControlValueAccessor, AfterContentInit, OnDestroy\n{\n  private readonly INPUT_BORDER_IN_PX = 3;\n  private readonly LIST_OFFSET_IN_PX = 4;\n  /**\n   * @ignore\n   */\n  private unsubscribe = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  private _parentElement: HTMLElement;\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  protected _onTouched = (): void => {};\n\n  /**\n   * @ignore\n   */\n  private clickListenerDisposeFct: Function;\n\n  /**\n   * @ignore\n   */\n  private scrollListenerDisposeFct: Function;\n\n  /**\n   * Bandaid hack to prevent a weird focusout event bug happening when\n   * `appendTo` is set and an item is selected. For *some* reason, the focusout\n   * event is triggered multiple times when opening the list, which causes\n   * unexpected behavior.\n   *\n   * This variable allows to temporarily \"disables\" the `handleFocusout` handler.\n   *\n   * FIXME: Find an actual solution to this problem instead of a bandaid hack.\n   * @ignore\n   */\n  private ignoreFocusout = false;\n\n  /**\n   * @ignore\n   */\n  isOpen = false;\n\n  /**\n   * @ignore\n   */\n  isFiltered = false;\n\n  /**\n   * @ignore\n   */\n  selectedValue: AutocompleteOption;\n\n  /**\n   * @ignore\n   */\n  filteredData: AutocompleteOption[];\n\n  /**\n   * Input search text\n   * @ignore\n   */\n  searchText: string;\n\n  /**\n   * Index of currently selected suggestion. -1 if no suggestion is currently selected\n   * @ignore\n   */\n  focusIndex: number = -1;\n\n  protected activeIndex = -1;\n\n  /**\n   * Id of currently selected item. Null if no suggestion is currently selected\n   * @ignore\n   */\n  protected focusedItemId: string | null = null;\n\n  /**\n   * Live zone content. It will be announced by assistive technologies everytime it is changed.\n   * @ignore\n   */\n  liveZoneContent = '';\n\n  /**\n   * Dropdown icon name\n   */\n  @Input()\n  iconName = 'keyboard_arrow_down';\n\n  /**\n   * Whether to show number of results or no\n   */\n  @Input()\n  showNumberOfResults = true;\n\n  /**\n   * No results message to display\n   */\n  @Input()\n  noResultMessage = 'No Results';\n\n  /**\n   * Result message, formatted like `{numberOfResults} {resultsNumberMessage}`\n   */\n  @Input()\n  resultsNumberMessage = 'results';\n\n  /**\n   * Whether to show number of results or no\n   */\n  @Input()\n  showNoResultsMessage = true;\n\n  /**\n   * Limit of results to show on search\n   */\n  @Input()\n  searchLimit?: number;\n\n  /**\n   * Selector that points to dom node where the list should be rendered\n   */\n  @Input()\n  appendTo: string;\n\n  /**\n   * Track by Function\n   */\n  @Input()\n  trackByFn: (index: number, option: AutocompleteOption) => any;\n\n  /**\n   * @ignore\n   */\n  _data: AutocompleteOption[];\n\n  /**\n   * Autocomplete data\n   */\n  @Input() set data(value: AutocompleteOption[]) {\n    this._data = value;\n    this.updateList();\n  }\n\n  get data(): AutocompleteOption[] {\n    return this._data;\n  }\n\n  /**\n   * Suggestion list text alternative for assistive technologies.\n   */\n  @Input() listLabel: string;\n\n  /**\n   * Instructions on how to navigate the list. It is append after the input label.\n   * @example \"Use the UP / DOWN arrows to navigate within the suggestion list. Press Enter to select an option. On touch devices, use swipe to navigate and double tap to select an option\"\n   */\n  @Input() inputInstructions: string;\n\n  /**\n   * Emits value of searched value on input type\n   */\n  @Output()\n  search: EventEmitter<string> = new EventEmitter<string>();\n\n  /**\n   * @ignore\n   */\n  @ViewChild('input') inputRef: ElementRef;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('optionsList', { read: ElementRef }) optionsList: ElementRef;\n\n  /**\n   * Option items\n   * @ignore\n   */\n  @ViewChildren(ListItemComponent)\n  selectOptions: QueryList<ListItemComponent>;\n\n  /**\n   * @ignore\n   */\n  @ContentChild('njAutocompleteOptionLabel', { read: TemplateRef })\n  optionLabelTemplate: TemplateRef<any>;\n\n  /**\n   * @ignore\n   */\n  @ContentChild('njAutocompleteSearchResults', { read: TemplateRef })\n  searchResultsTemplate: TemplateRef<any>;\n\n  /**\n   * @ignore\n   */\n  @ContentChild('njAutocompleteNoResult', { read: TemplateRef })\n  noResultTemplate: TemplateRef<any>;\n\n  constructor(\n    private renderer: Renderer2,\n    private elementRef: ElementRef<HTMLElement>,\n    private cdr: ChangeDetectorRef,\n    @Inject(DOCUMENT) private _document\n  ) {\n    super();\n    this.initScrollListener();\n  }\n\n  /**\n   * @ignore\n   */\n  ngAfterContentInit() {\n    super.ngAfterContentInit();\n  }\n\n  /**\n   * @ignore\n   */\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n    this.clickListenerDisposeFct?.();\n    this.scrollListenerDisposeFct?.();\n    if (this.appendTo) {\n      this.removeAppendedElementFromParent();\n    }\n  }\n\n  /**\n   * Content of hint item and hidden.\n   * @ignore\n   */\n  private createResultsMessageContent() {\n    const elements = this.filteredData;\n\n    if (elements.length === 0) {\n      return this.noResultMessage;\n    }\n\n    return `${elements.length} ${this.resultsNumberMessage}`;\n  }\n\n  /**\n   * Update displayed suggestions and update live zone\n   * @private\n   */\n  private updateList(): void {\n    if (!this.isFiltered || !this.searchText || Utils.isUndefinedOrNull(this._data)) {\n      this.filteredData = this._data;\n    } else {\n      this.filteredData = this._data\n        .filter((option) => Utils.normalizeAndSearchInText(option?.label, this.searchText))\n        .slice(0, this.searchLimit);\n    }\n\n    this.liveZoneContent = this.createResultsMessageContent();\n    this.processActiveOption();\n  }\n\n  private processActiveOption() {\n    this.activeIndex = this.filteredData.findIndex((item) => item.label === this.searchText);\n  }\n\n  get interactedItemIndex() {\n    if (this.focusIndex !== -1) {\n      return this.focusIndex;\n    }\n    return this.activeIndex !== -1 ? this.activeIndex : 0;\n  }\n\n  private scrollOnListOpening() {\n    const element = this.selectOptions?.get(this.interactedItemIndex)?.el?.nativeElement;\n    element.scrollIntoView({ block: 'nearest' });\n  }\n\n  private appendAndComputeListPosition() {\n    if (!this.appendTo || !this.optionsList?.nativeElement) {\n      return;\n    }\n    const focusedEl = document.activeElement as HTMLElement;\n\n    this._parentElement = this._document.querySelector(this.appendTo);\n    this.computeListPosition();\n    this._parentElement.appendChild(this.optionsList.nativeElement);\n\n    // The appendChild() call above might remove the focus from the currently\n    // selected element so we restore the focus to where it was before the append.\n    focusedEl?.focus();\n  }\n\n  /**\n   * @private\n   */\n  private computeListPosition() {\n    if (this.optionsList?.nativeElement && this.inputRef?.nativeElement) {\n      const inputBoundingRect = this.inputRef?.nativeElement?.getBoundingClientRect();\n      if (inputBoundingRect) {\n        this.optionsList.nativeElement.style = `\n          position: fixed;\n          left: ${inputBoundingRect.left - this.LIST_OFFSET_IN_PX}px;\n          top: ${inputBoundingRect.top + inputBoundingRect.height + this.LIST_OFFSET_IN_PX + this.INPUT_BORDER_IN_PX}px;\n          min-width: ${inputBoundingRect.width + this.LIST_OFFSET_IN_PX * 2}px;\n          transform: scaleY(1);\n          opacity: 1;\n        `;\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private removeAppendedElementFromParent() {\n    if (this.optionsList?.nativeElement) {\n      this.renderer.removeChild(this._parentElement, this.optionsList.nativeElement);\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private initScrollListener() {\n    this.scrollListenerDisposeFct = this.renderer.listen('window', 'scroll', (_: Event) => {\n      if (this.appendTo && this.isOpen) {\n        this.computeListPosition();\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  getAdditionalClass(): string {\n    return `nj-form-item--select nj-form-item--autocomplete${this.isOpen ? ' nj-form-item--open' : ''}`;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    if (!this.inputRef) {\n      return;\n    }\n    this.isDisabled = isDisabled;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: AutocompleteOption): void {\n    this.selectedValue = value;\n    this.searchText = value?.label ?? '';\n    if (this.inputRef) {\n      this.inputRef.nativeElement.value = value?.label ?? '';\n    }\n    this.cdr.markForCheck();\n  }\n\n  /** Open the suggestion list. */\n  openList() {\n    this.updateList();\n    this.isOpen = true;\n    this.ignoreFocusout = true;\n\n    setTimeout(() => {\n      this.scrollOnListOpening();\n\n      if (this.appendTo) {\n        this.appendAndComputeListPosition();\n      }\n\n      this.ignoreFocusout = false;\n    });\n  }\n\n  /** Close the suggestion list. */\n  closeList() {\n    this.isOpen = false;\n    this.focusIndex = -1;\n    this.activeIndex = -1;\n    if (this.appendTo) {\n      this.removeAppendedElementFromParent();\n    }\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Toggle the suggestion list.\n   * @ignore\n   */\n  handleInputClick() {\n    if (this.isOpen) {\n      this.closeList();\n    } else {\n      this.isFiltered = false;\n      this.openList();\n    }\n  }\n\n  /**\n   * Handle input change and save searchText\n   * @ignore\n   */\n  handleInputEvent(event: InputEvent): void {\n    if (event?.data === '') {\n      return;\n    }\n\n    this.searchText = (event?.target as HTMLInputElement)?.value;\n    this.search.emit(this.searchText);\n\n    const matchingOption = this._data.find((option) => option.label === this.searchText);\n\n    if (matchingOption) {\n      this.selectItem(matchingOption);\n    } else {\n      this.updateList();\n      setTimeout(() => {\n        if (this.filteredData.length) {\n          this.focusIndex = 0;\n\n          this.focusFocusedOption();\n        }\n      });\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getItemId(index: number) {\n    return `${this.inputId}-item-${index}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getListId(): string {\n    return `${this.inputId}-list`;\n  }\n\n  /**\n   * @ignore\n   */\n  getInstructionsId(): string {\n    return `${this.inputId}-instructions`;\n  }\n\n  /**\n   * @ignore\n   */\n  private focusFocusedOption() {\n    const element = this.selectOptions?.get(this.focusIndex)?.el?.nativeElement;\n    this.focusedItemId = element?.id;\n    element.scrollIntoView({ block: 'nearest' });\n  }\n\n  /**\n   * @ignore\n   */\n  private selectNextOption() {\n    if (this.filteredData.length) {\n      if (this.focusIndex !== -1) {\n        const nextIndex = (this.focusIndex + 1) % this.filteredData.length;\n        this.focusIndex = nextIndex;\n      } else {\n        this.focusIndex = this.interactedItemIndex;\n      }\n\n      this.focusFocusedOption();\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private selectPreviousOption() {\n    if (this.filteredData.length) {\n      const previousIndex = this.focusIndex === 0 ? this.filteredData.length - 1 : this.focusIndex - 1;\n      this.focusIndex = previousIndex;\n      this.focusFocusedOption();\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private unselectOption() {\n    this.focusIndex = -1;\n    this.focusedItemId = null;\n  }\n\n  /**\n   * @ignore\n   */\n  handleKeydownEvent(e: KeyboardEvent) {\n    if (e.key === 'Tab') {\n      // Ignore Tab key to not mess up with focusout event handler\n      return;\n    }\n\n    switch (e.key) {\n      case 'ArrowDown':\n        e.preventDefault();\n        if (!this.isOpen) {\n          this.isFiltered = false;\n          this.openList();\n          this.focusIndex = this.interactedItemIndex;\n          this.focusFocusedOption();\n        } else {\n          this.selectNextOption();\n        }\n        break;\n      case 'ArrowUp':\n        e.preventDefault();\n        if (!this.isOpen) {\n          this.isFiltered = false;\n          this.openList();\n        }\n        this.focusIndex = this.interactedItemIndex;\n        this.selectPreviousOption();\n        break;\n      case 'Escape':\n        e.preventDefault();\n        if (this.isOpen) {\n          this.closeList();\n        }\n        break;\n      case 'Enter':\n        if (this.isOpen && this.focusIndex !== -1) {\n          this.selectItem(this.filteredData[this.focusIndex]);\n        }\n        break;\n      default:\n        // Ignore non-character keys and shortcut combinations\n        const keyIsPrintable = (e.key.length === 1 || e.key === 'Backspace') && !e.metaKey && !e.altKey && !e.ctrlKey;\n        if (keyIsPrintable) {\n          this.isFiltered = true;\n          this.unselectOption();\n\n          if (!this.isOpen) {\n            this.openList();\n          }\n\n          setTimeout(() => {\n            const matchingOption = this.getMatchinOption();\n            this._onChange(matchingOption);\n            this.cdr.markForCheck();\n          });\n        }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private getMatchinOption() {\n    const filteredData = this._data?.filter((option) => this.searchText === option.label);\n    return filteredData?.[0];\n  }\n\n  /**\n   * @ignore\n   */\n  selectItem(option: AutocompleteOption) {\n    this.closeList();\n    if (this.inputRef) {\n      this.inputRef.nativeElement.value = option.label;\n    }\n    this.searchText = option.label;\n    this.selectedValue = option;\n    this.unselectOption();\n\n    this._onChange(option);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Closes the suggestion list if the focus is moved outside of the autocomplete.\n   * @ignore\n   */\n  handleFocusout(e: FocusEvent) {\n    if (this.ignoreFocusout) {\n      return;\n    }\n\n    if (\n      !this.elementRef?.nativeElement.contains(e.relatedTarget as Node) &&\n      !this.optionsList?.nativeElement.contains(e.relatedTarget as Node)\n    ) {\n      this.closeList();\n    }\n  }\n\n  /**\n   * @ignore\n   * @param index\n   * @param option\n   */\n  trackByOption(index: number, option: AutocompleteOption) {\n    if (this.trackByFn) {\n      return this.trackByFn(index, option);\n    }\n    return option;\n  }\n}\n","<nj-form-item\n  [hasError]=\"hasError\"\n  [hasSuccess]=\"hasSuccess\"\n  [hasHint]=\"hasHint\"\n  [isDisabled]=\"isDisabled\"\n  [hasCustomIcon]=\"hasCustomIcon\"\n  [isFloatingLabel]=\"isFloatingLabel\"\n  [iconName]=\"iconName\"\n  [isSelect]=\"true\"\n  [additionalClass]=\"getAdditionalClass()\"\n  [inputId]=\"inputId\"\n  [size]=\"size\"\n  (keydown)=\"handleKeydownEvent($event)\"\n  (focusout)=\"handleFocusout($event)\"\n>\n  <input\n    #input\n    type=\"text\"\n    (input)=\"handleInputEvent($event)\"\n    (focus)=\"_onTouched?.()\"\n    [value]=\"selectedValue?.label\"\n    [attr.id]=\"inputId\"\n    [disabled]=\"isDisabled\"\n    autocomplete=\"off\"\n    njFormField\n    role=\"combobox\"\n    aria-autocomplete=\"list\"\n    [attr.aria-activedescendant]=\"focusedItemId\"\n    [attr.aria-controls]=\"getListId()\"\n    [attr.aria-expanded]=\"isOpen\"\n    [attr.aria-describedby]=\"getInstructionsId()\"\n    (click)=\"handleInputClick()\"\n  />\n\n  <ng-content njFormLabel select=\"[njFormLabel]\"></ng-content>\n\n  <ng-content njFormSubscript select=\"[njFormSubscript]\"></ng-content>\n\n  <ng-container njFormAdditionalContent>\n    <div class=\"nj-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n      <p>{{ liveZoneContent }}</p>\n    </div>\n\n    <p [id]=\"getInstructionsId()\" hidden>{{ inputInstructions }}</p>\n\n    <nj-list-group\n      [@transformList]=\"isOpen ? 'open': 'void'\"\n      *ngIf=\"isOpen\"\n      class=\"nj-form-item__list nj-form-item__list--no-animate\"\n      [ngClass]=\"{ 'nj-form-item__list--appended': appendTo }\"\n      [isDense]=\"true\"\n      [hasBorder]=\"false\"\n      [isClickable]=\"true\"\n      [listId]=\"getListId()\"\n      isCustomSelectList\n      [ariaLabel]=\"listLabel\"\n      #optionsList\n      (keydown)=\"appendTo ? handleKeydownEvent($event) : null\"\n      (focusout)=\"appendTo ? handleFocusout($event) : null\"\n    >\n      <ng-content select=\"[njAutocompleteAdditional]\"> </ng-content>\n\n      <!-- Number of suggestions  -->\n      <ng-container\n        *ngIf=\"isFiltered && showNumberOfResults && filteredData?.length\"\n      >\n        <ng-container\n          [ngTemplateOutlet]=\"\n            searchResultsTemplate ? searchResultsTemplate : defaultSearchResults\n          \"\n          [ngTemplateOutletContext]=\"{\n            numberOfFilteredData: filteredData.length\n          }\"\n        ></ng-container>\n      </ng-container>\n\n      <!-- No suggestions -->\n      <ng-container\n        *ngIf=\"isFiltered && showNoResultsMessage && !filteredData?.length\"\n      >\n        <ng-container\n          [ngTemplateOutlet]=\"\n            noResultTemplate ? noResultTemplate : defaultNoResults\n          \"\n        ></ng-container>\n      </ng-container>\n\n      <!-- Suggestion items -->\n      <ng-container *ngIf=\"filteredData\">\n        <li\n          nj-list-item\n          *ngFor=\"\n            let option of filteredData;\n            index as i;\n            trackBy: trackByOption\n          \"\n          [isActive]=\"i === activeIndex\"\n          [ariaSelected]=\"i === focusIndex\"\n          role=\"option\"\n          tabindex=\"-1\"\n          [id]=\"getItemId(i)\"\n          #item\n          (itemClick)=\"selectItem(option)\"\n        >\n          <ng-container\n            [ngTemplateOutlet]=\"\n              optionLabelTemplate ? optionLabelTemplate : defaultLabel\n            \"\n            [ngTemplateOutletContext]=\"{ option: option }\"\n          ></ng-container>\n        </li>\n      </ng-container>\n    </nj-list-group>\n  </ng-container>\n</nj-form-item>\n\n<ng-template #defaultLabel let-option=\"option\">\n  <span\n    *ngIf=\"isFiltered\"\n    njHighlight\n    [content]=\"option?.label\"\n    [textToHighlight]=\"searchText\"\n  ></span>\n  <span *ngIf=\"!isFiltered\">{{ option?.label }}</span>\n</ng-template>\n\n<ng-template\n  #defaultSearchResults\n  let-numberOfFilteredData=\"numberOfFilteredData\"\n>\n  <p class=\"nj-form-item__list-item-hint\" aria-hidden=\"true\">\n    {{ numberOfFilteredData }} {{ resultsNumberMessage }}\n  </p>\n</ng-template>\n\n<ng-template #defaultNoResults>\n  <p class=\"nj-form-item__list-item-hint\" aria-hidden=\"true\">\n    {{ noResultMessage }}\n  </p>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';\nimport { CustomIconDirective } from '../../directives/custom-icon.directive';\nimport { Utils } from '../../utils/utils.util';\nimport { IconComponent } from '../icon/icon.component';\nimport { BadgeEmphasis, BadgeSize, BadgeVariant } from './badge.model';\n\n@Component({\n  selector: 'nj-badge',\n  templateUrl: './badge.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule, IconComponent]\n})\nexport class BadgeComponent {\n  private badgeClassName = 'nj-badge';\n\n  /**\n   * Badge emphasis\n   *\n   * @default `bold`\n   */\n  @Input() emphasis?: BadgeEmphasis;\n\n  /**\n   * Badge variant\n   *\n   * @default `neutral`\n   */\n  @Input() variant?: BadgeVariant;\n\n  /**\n   * Badge size\n   *\n   * @default `md`\n   */\n  @Input() size?: BadgeSize;\n\n  /**\n   * Material icon name\n   */\n  @Input() iconName?: string;\n\n  /**\n   * Badge value\n   * (when value is a string, you can pass it directly as ng-content)\n   */\n  @Input() value?: string | number;\n\n  /**\n   * When value is a number, you can pass a capedValue, so the displayed value will be `${capedValue}+`\n   */\n  @Input() capedValue?: number;\n\n  /**\n   * Badge value\n   */\n  @Input() isUppercase?: boolean;\n\n  /**\n   * Screen reader only unit label.\n   *\n   * @example\n   * // read as \"12 notifications\"\n   * <nj-badge unitLabel=\"notifications\">12</NJBadge>\n   */\n  @Input() unitLabel?: string;\n\n  @ContentChild(CustomIconDirective) protected customIcon?: CustomIconDirective;\n\n  protected isValueDefined(): boolean {\n    return !Utils.isUndefinedOrNull(this.value);\n  }\n\n  protected getFormattedValue(): string {\n    if (typeof this.value === 'string') {\n      return this.value;\n    }\n\n    let formattedValue = `${this.value}`;\n    if (!Utils.isUndefinedOrNull(this.capedValue) && this.value > this.capedValue) {\n      if (this.capedValue <= 0) {\n        formattedValue = '0+';\n      } else {\n        formattedValue = `${this.capedValue}+`;\n      }\n    }\n    return formattedValue;\n  }\n\n  protected getBadgeEmphasisClass(): string {\n    if (!this.emphasis || this.emphasis === 'bold') {\n      return '';\n    }\n    return `${this.badgeClassName}--${this.emphasis}`;\n  }\n\n  protected getBadgeVariantClass(): string {\n    if (!this.variant || this.variant === 'neutral') {\n      return '';\n    }\n    return `${this.badgeClassName}--${this.variant}`;\n  }\n\n  protected getBadgeSizeClass(): string {\n    if (!this.size || this.size === 'md') {\n      return '';\n    }\n    return `${this.badgeClassName}--${this.size}`;\n  }\n\n  protected getBadgeUppercaseClass(): string {\n    if (!this.isUppercase) {\n      return '';\n    }\n    return `${this.badgeClassName}--uppercase`;\n  }\n}\n","<p class=\"nj-badge\"\n   [ngClass]=\"[getBadgeEmphasisClass(), getBadgeVariantClass(), getBadgeSizeClass(), getBadgeUppercaseClass()]\">\n  <span class=\"nj-badge__icon\" *ngIf=\"customIcon?.templateRef || iconName\">\n    <ng-container *ngIf=\"customIcon?.templateRef as iconTemplateRef; else icon\" [ngTemplateOutlet]=\"iconTemplateRef\"></ng-container>\n    <ng-template #icon>\n      <nj-icon [name]=\"iconName\" variant=\"inherit\" size=\"inherit\"></nj-icon>\n    </ng-template>\n  </span>\n  <span>\n      <ng-container *ngIf=\"!isValueDefined()\">\n        <ng-content></ng-content>\n      </ng-container>\n      <ng-container *ngIf=\"isValueDefined()\">\n        {{ getFormattedValue() }}\n      </ng-container>\n    </span>\n  <span *ngIf=\"unitLabel\" class=\"nj-sr-only\">{{ unitLabel }}</span>\n</p>\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\nimport {njSemanticMotionEasingLinearOutSlowIn} from '@engie-group/fluid-design-tokens';\n\nexport const defaultParams = {\n  params: {enterAnimationDuration: '150ms'},\n};\n\nexport const tooltipAnimation: {\n  readonly tooltip: AnimationTriggerMetadata;\n} = {\n  tooltip: trigger('tooltip', [\n    state('void', style({opacity: 0, transform: 'scale3d(0, 0, 1)'})),\n    state('*', style({opacity: 1, transform: 'scale3d(1, 1, 1)'})),\n    transition(\n      ':enter',\n      animate(`{{enterAnimationDuration}} ${njSemanticMotionEasingLinearOutSlowIn}`),\n      defaultParams,\n    ),\n  ]),\n};\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input, TemplateRef} from '@angular/core';\nimport {tooltipAnimation} from './tooltip.animations';\nimport {TooltipArrowPlacement, TooltipPlacement} from './tooltip.model';\n\n@Component({\n  selector: 'nj-tooltip',\n  templateUrl: './tooltip.component.html',\n  styleUrls: ['./tooltip.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [tooltipAnimation.tooltip],\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class TooltipComponent {\n\n  /**\n   * @ignore\n   */\n  private readonly tooltipClassName = 'nj-tooltip';\n\n  /**\n   * Whether tooltip is inverse or no\n   */\n  @Input() isInverse: boolean;\n\n  /**\n   * Whether tooltip has arrow or no\n   */\n  @Input() hasArrow = true;\n\n  /**\n   * Tooltip label, if you want custom content unset the label and place content as element children\n   * e.g: `<nj-tooltip>Your Content</nj-tooltip>`\n   */\n  @Input() label: string;\n\n  /**\n   * Tooltip id\n   */\n  @Input() tooltipId: string;\n\n  /**\n   * Tooltip placement\n   */\n  @Input() placement: TooltipPlacement = 'top';\n\n  /**\n   * Tooltip arrow placement\n   */\n  @Input() arrowPlacement: TooltipArrowPlacement = 'center';\n\n  /**\n   * Whether tooltip management is standalone\n   */\n  @Input() isStandalone: boolean = true;\n\n  /**\n   * Whether tooltip is animated\n   */\n  @Input() isAnimated = true;\n\n  /**\n   * Tooltip custom template ref\n   */\n  @Input() contentTemplateRef: TemplateRef<any>;\n\n  constructor() {\n  }\n\n  /**\n   * @ignore\n   */\n  getPlacementClass(): string {\n    if (!this.placement) {\n      return '';\n    }\n    return `${this.tooltipClassName}--${this.placement}`;\n  }\n\n\n  /**\n   * @ignore\n   */\n  getTooltipArrowPlacement(): string {\n    if (!this.arrowPlacement) {\n      return '';\n    }\n    return `${this.tooltipClassName}__arrow--${this.arrowPlacement}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getIsInverseClass(): string {\n    return this.isInverse ? `${this.tooltipClassName}--inverse` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getIsStandaloneClass(): string {\n    return this.isStandalone ? `${this.tooltipClassName}--standalone` : '';\n  }\n}\n","<div class=\"nj-tooltip show\" [ngClass]=\"[getIsInverseClass(), getPlacementClass(), getIsStandaloneClass()]\" [attr.id]=\"tooltipId\" @tooltip [@.disabled]=\"!isAnimated\">\n  <div class=\"nj-tooltip__arrow\" *ngIf=\"hasArrow\" [ngClass]=\"[getTooltipArrowPlacement()]\"></div>\n  <div class=\"nj-tooltip__inner\">\n    <ng-container *ngTemplateOutlet=\"label ? labelTemplate : contentTemplate\"></ng-container>\n  </div>\n</div>\n\n<ng-template #labelTemplate>\n  {{label}}\n</ng-template>\n\n<ng-template #defaultContentTemplate>\n  <ng-content></ng-content>\n</ng-template>\n\n<ng-template #contentTemplate>\n  <ng-container *ngTemplateOutlet=\"contentTemplateRef ? contentTemplateRef : defaultContentTemplate\"></ng-container>\n</ng-template>\n","import { ConnectedPosition, Overlay, OverlayPositionBuilder, OverlayRef, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  ComponentRef,\n  Directive,\n  ElementRef,\n  HostListener,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  TemplateRef\n} from '@angular/core';\nimport { fromEvent, merge, Subject, takeUntil } from 'rxjs';\nimport { TooltipComponent } from '../tooltip.component';\nimport { TooltipOptions } from '../tooltip.model';\n\n@Directive({\n  selector: '[njTooltip]',\n  exportAs: 'njTooltip',\n  standalone: true\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n  private unsubscribe: Subject<void> = new Subject<void>();\n\n  private _tooltipOptions: TooltipOptions;\n\n  private overlayRef: OverlayRef;\n\n  private tooltipRef: ComponentRef<TooltipComponent>;\n\n  private intersectionObserver: IntersectionObserver;\n\n  @Input()\n  set tooltipOptions(value: TooltipOptions) {\n    this._tooltipOptions = value;\n    this.setTooltipValues();\n    const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.el);\n    const positionStrategy = this.overlayPositionBuilder\n      .flexibleConnectedTo(this.el)\n      .withPositions([this.getPositionOptions()])\n      .withScrollableContainers(scrollableAncestors);\n    this.overlayRef?.updatePositionStrategy(positionStrategy);\n  }\n\n  get tooltipOptions(): TooltipOptions {\n    return this._tooltipOptions;\n  }\n\n  @Input() tooltipCustomContent: TemplateRef<any>;\n\n  constructor(\n    private el: ElementRef,\n    private overlayPositionBuilder: OverlayPositionBuilder,\n    private overlay: Overlay,\n    private scrollDispatcher: ScrollDispatcher,\n    @Inject(DOCUMENT) private doc: Document,\n    private zone: NgZone\n  ) {}\n\n  ngOnInit(): void {\n    const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.el);\n\n    const positionStrategy = this.overlayPositionBuilder\n      .flexibleConnectedTo(this.el)\n      .withPositions([this.getPositionOptions()])\n      .withScrollableContainers(scrollableAncestors);\n\n    this.overlayRef = this.overlay.create({\n      positionStrategy,\n      scrollStrategy: this.overlay.scrollStrategies.reposition()\n    });\n  }\n\n  ngOnDestroy() {\n    this.overlayRef?.dispose();\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  getPositionOptions(): ConnectedPosition {\n    const defaultPosition: ConnectedPosition = {\n      originX: 'center',\n      originY: 'top',\n      overlayX: 'center',\n      overlayY: 'bottom'\n    };\n    switch (this.tooltipOptions?.placement) {\n      case 'bottom':\n        return {\n          originX: 'center',\n          originY: 'bottom',\n          overlayX: 'center',\n          overlayY: 'top'\n        };\n      case 'top':\n        return defaultPosition;\n      case 'left':\n        return {\n          originX: 'start',\n          originY: 'center',\n          overlayX: 'end',\n          overlayY: 'center'\n        };\n      case 'right':\n        return {\n          originX: 'end',\n          originY: 'center',\n          overlayX: 'start',\n          overlayY: 'center'\n        };\n      default:\n        return defaultPosition;\n    }\n  }\n\n  @HostListener('mouseenter')\n  @HostListener('focusin')\n  show() {\n    if (this.tooltipRef) {\n      return;\n    }\n    this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n    merge(\n      fromEvent(this.tooltipRef?.location?.nativeElement, 'mouseleave'),\n      fromEvent(this.tooltipRef?.location?.nativeElement, 'focusout')\n    )\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe((event) => {\n        this.hide(event);\n      });\n\n    this.zone.runOutsideAngular(() => {\n      this.intersectionObserver = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          const isElementVisible = entry.isIntersecting;\n          if (!isElementVisible) {\n            this.zone.run(() => {\n              this.hide();\n            });\n          }\n        });\n      });\n\n      this.intersectionObserver.observe(this.el?.nativeElement);\n    });\n    this.setTooltipValues();\n\n    this.el?.nativeElement?.firstElementChild?.setAttribute('aria-describedby', this.tooltipOptions.tooltipId);\n  }\n\n  @HostListener('mouseleave', ['$event'])\n  @HostListener('focusout', ['$event'])\n  hide(event?) {\n    const focusedElement = this.doc?.activeElement;\n    const isFocusedElement = focusedElement && this.el.nativeElement.contains(focusedElement);\n    const newTarget = (event as MouseEvent)?.relatedTarget as Node | null;\n    const isNextTargetTooltip = newTarget && this.overlayRef?.overlayElement?.contains(newTarget);\n    const isNextTargetElement = newTarget && this.el?.nativeElement?.contains(newTarget);\n    if (!newTarget || (!isNextTargetTooltip && !isNextTargetElement && !isFocusedElement)) {\n      this.overlayRef.detach();\n      this.tooltipRef = null;\n      this.unsubscribe.next();\n      this.intersectionObserver.disconnect();\n      this.el?.nativeElement?.firstElementChild?.removeAttribute('aria-describedby');\n    }\n  }\n\n  setTooltipValues() {\n    const tooltipComponent = this.tooltipRef?.instance;\n    if (!tooltipComponent) {\n      return;\n    }\n\n    tooltipComponent.label = this.tooltipCustomContent ? null : this.tooltipOptions?.label;\n    tooltipComponent.isInverse = this.tooltipOptions?.isInverse;\n    tooltipComponent.hasArrow = this.tooltipOptions?.hasArrow ?? true;\n    tooltipComponent.tooltipId = this.tooltipOptions?.tooltipId;\n    tooltipComponent.arrowPlacement = this.tooltipOptions?.arrowPlacement ?? 'center';\n    tooltipComponent.placement = this.tooltipOptions?.placement ?? 'top';\n    tooltipComponent.isStandalone = this.tooltipOptions?.isStandalone ?? true;\n    tooltipComponent.isAnimated = this.tooltipOptions?.isAnimated ?? true;\n    tooltipComponent.contentTemplateRef = this.tooltipCustomContent;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { BadgeComponent } from '../badge/badge.component';\nimport { BadgeEmphasis, BadgeSize, BadgeVariant } from '../badge/badge.model';\nimport { TooltipDirective } from '../tooltip/directives/tooltip.directive';\nimport { TooltipOptions } from '../tooltip/tooltip.model';\nimport { AvatarSize } from './avatar.model';\n\n@Component({\n  selector: 'nj-avatar',\n  templateUrl: './avatar.component.html',\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [BadgeComponent, TooltipDirective, CommonModule]\n})\nexport class AvatarComponent {\n  private avatarClassName = 'nj-avatar';\n\n  /**\n   * Link href, if set avatar is a link <a>\n   */\n  @Input() href: string;\n\n  /**\n   * Initials of avatar, max 3 characters if a string with a bigger length than 3 characters only 3 first characters are taken\n   */\n  @Input() initials: string;\n\n  /**\n   * Text alternative for the avatar\n   */\n  @Input() label: string;\n\n  /**\n   * Avatar size\n   */\n  @Input() size: AvatarSize;\n\n  /**\n   * Whether avatar has a picture or not\n   */\n  @Input() hasPicture: boolean;\n\n  /**\n   * Whether avatar is clickable or not\n   */\n  @Input() isClickable: boolean;\n\n  /**\n   * Notifications number or string\n   */\n  @Input() notification: number | string;\n\n  /**\n   * Max notification number\n   */\n  @Input() notificationCapedValue: number;\n\n  /**\n   * Notification emphasis\n   */\n  @Input() notificationEmphasis: BadgeEmphasis;\n\n  /**\n   * Notification color\n   */\n  @Input() notificationVariant: BadgeVariant = 'information';\n\n  /**\n   * Unit label for `nj-badge`\n   */\n  @Input() notificationUnitLabel?: string;\n\n  /**\n   *  Used for NJAvatarGroup as the last tile of the group\n   **/\n  @Input() isRemainingCount?: boolean;\n\n  /**\n   *  Tooltip's options\n   **/\n  @Input() tooltipOptions?: TooltipOptions;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('avatarTemplate') avatarTemplate: TemplateRef<any>;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getFormattedInitials(): string {\n    if (this.initials?.length > 3) {\n      return this?.initials.slice(0, 3);\n    } else {\n      return this.initials;\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getBadgeSize(): BadgeSize {\n    switch (this.size) {\n      case 'xl':\n        return 'lg';\n      default:\n        return 'md';\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarSizeClass(): string {\n    return this.size ? `${this.avatarClassName}--${this.size}` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarDefaultIconClass(): string {\n    return !this.hasInitials() && !this.hasPicture ? `${this.avatarClassName}--default-icon` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarInitialsClass(): string {\n    return this.hasInitials() && !this.hasPicture ? `${this.avatarClassName}--initials` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarIsClickableClass(): string {\n    return this.isClickable ? `${this.avatarClassName}--clickable` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getHasPictureClass(): string {\n    return this.hasPicture ? `${this.avatarClassName}--picture` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarIsRemainingCountClass(): string {\n    return this.isRemainingCount ? `${this.avatarClassName}--remaining-count` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  hasInitials(): boolean {\n    return !Utils.isUndefinedOrNull(this.initials) && this.initials?.trim() !== '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarClasses(): string[] {\n    return [\n      this.getAvatarDefaultIconClass(),\n      this.getAvatarSizeClass(),\n      this.getAvatarInitialsClass(),\n      this.getAvatarIsClickableClass(),\n      this.getAvatarIsRemainingCountClass(),\n      this.getHasPictureClass()\n    ];\n  }\n}\n","<ng-container *ngTemplateOutlet=\"avatarTemplate\"></ng-container>\n\n<ng-template #tagContent>\n  <ng-content></ng-content>\n  <p class=\"nj-sr-only\">{{label}}</p>\n  <span aria-hidden=\"true\">{{getFormattedInitials()}}</span>\n\n  <nj-badge *ngIf=\"notification && size !== 'sm'\"\n            [value]=\"notification\"\n            [capedValue]=\"notificationCapedValue\"\n            [size]=\"getBadgeSize()\"\n            [variant]=\"notificationVariant\"\n            [emphasis]=\"notificationEmphasis\"\n            [unitLabel]=\"notificationUnitLabel\">\n  </nj-badge>\n</ng-template>\n\n<ng-template #avatarTemplate>\n  <a *ngIf=\"!tooltipOptions && href\" [href]=\"href\" class=\"nj-avatar\"\n     [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </a>\n  <button *ngIf=\"!tooltipOptions && isClickable\" class=\"nj-avatar\"\n          [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </button>\n  <div *ngIf=\"!tooltipOptions && !href && !isClickable\" class=\"nj-avatar\"\n       [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </div>\n  <a *ngIf=\"tooltipOptions && href\" [href]=\"href\" class=\"nj-avatar\"\n     njTooltip [tooltipOptions]=\"tooltipOptions\"\n     [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </a>\n  <button *ngIf=\"tooltipOptions && isClickable\" class=\"nj-avatar\"\n          njTooltip [tooltipOptions]=\"tooltipOptions\"\n          [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </button>\n  <div *ngIf=\"tooltipOptions && !href && !isClickable\" class=\"nj-avatar\"\n       njTooltip [tooltipOptions]=\"tooltipOptions\"\n       [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </div>\n</ng-template>\n","import {Directive, HostBinding} from '@angular/core';\n\n@Directive({\n  selector: '[njAvatarPicture]',\n  exportAs: 'njAvatarPicture',\n  standalone: true\n})\nexport class AvatarPictureDirective {\n  @HostBinding('class') class = 'nj-avatar__picture';\n  @HostBinding('alt') alt = '';\n\n  constructor() {\n\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  Output,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { AvatarSize } from '../avatar/avatar.model';\nimport { TooltipOptions } from '../tooltip/tooltip.model';\n\n@Component({\n  selector: 'nj-avatar-list',\n  templateUrl: './avatar-list.component.html',\n  styleUrls: ['./avatar-list.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [AvatarComponent, CommonModule]\n})\nexport class AvatarListComponent implements AfterContentInit {\n  /**\n   * @ignore\n   */\n  private readonly avatarListClassName = 'nj-avatar-list';\n\n  /**\n   * @ignore\n   */\n  remainingCount: number;\n\n  /**\n   * @ignore\n   */\n  avatarsToDisplay: AvatarComponent[];\n\n  /**\n   *  Max number of avatar displayed\n   **/\n  @Input() max?: number = 4;\n\n  /**\n   *  Density of the avatar list\n   **/\n  @Input() density?: 'default' | 'compact';\n\n  /**\n   *  Avatars size\n   **/\n  @Input() size?: AvatarSize = 'md';\n\n  /**\n   * Remaining avatar Tooltip's options\n   **/\n  @Input() remainingTooltipOptions?: TooltipOptions;\n\n  /**\n   * Emits event on remaining count avatar mouse click\n   */\n  @Output() remainingClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n  /**\n   * Label of the \"show more\" button.\n   *\n   * A function can be used to provide a dynamic label based on the number of remaining avatars in the list.\n   */\n  @Input() showMoreLabel: string | ((elementCount: number) => string);\n\n  /**\n   * @ignore\n   */\n  @ContentChildren(AvatarComponent)\n  avatars: QueryList<AvatarComponent>;\n\n  constructor() {}\n\n  ngAfterContentInit() {\n    this.remainingCount = this.avatars?.toArray()?.length - this.max;\n    this.avatarsToDisplay = this.getAvatarsToDisplay();\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarsToDisplay(): AvatarComponent[] {\n    const avatarsArray = this.avatars?.toArray();\n    if (Utils.isUndefinedOrNull(avatarsArray)) {\n      return;\n    }\n    return avatarsArray.splice(0, this.max).map((avatar) => {\n      avatar.size = this.size;\n      return avatar;\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarListDensityClass(): string {\n    if (!this.density || this.density === 'default') {\n      return '';\n    }\n    return `${this.avatarListClassName}--${this.density}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getRemainingCountInitials(): string {\n    return `+ ${this.remainingCount}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getRemainingCountLabel(): string {\n    return typeof this.showMoreLabel === 'function' ? this.showMoreLabel(this.remainingCount) : this.showMoreLabel;\n  }\n}\n","<div class=\"nj-avatar-list\" [ngClass]=\"[getAvatarListDensityClass()]\">\n  <ng-container *ngFor=\"let avatar of avatarsToDisplay\">\n    <ng-container *ngTemplateOutlet=\"avatar?.avatarTemplate\"></ng-container>\n  </ng-container>\n  <nj-avatar *ngIf=\"remainingCount > 0\"\n             (click)=\"remainingClick?.emit($event)\"\n             [tooltipOptions]=\"remainingTooltipOptions\"\n             [isClickable]=\"true\"\n             [isRemainingCount]=\"true\"\n             [initials]=\"getRemainingCountInitials()\"\n             [size]=\"size\"\n             [label]=\"getRemainingCountLabel()\"\n  ></nj-avatar>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {\n  Attribute,\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  inject,\n  Input,\n  ViewEncapsulation\n} from '@angular/core';\nimport {RouterLink} from '@angular/router';\nimport {IconComponent} from '../icon/icon.component';\nimport {LinkIconPosition, LinkSize, LinkVariant} from './link.model';\n\n@Component({\n  selector: 'nj-link',\n  templateUrl: './link.component.html',\n  styleUrls: ['./link.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconComponent, CommonModule, RouterLink]\n})\nexport class LinkComponent {\n\n  @HostBinding('attr.tabindex')\n  get tabIndex() {\n    return this.tabIndexAttribute ?? (this.routerLink ? '-1' : undefined);\n  }\n\n  private linkClass = 'nj-link';\n\n  private iconClass = 'nj-link-icon';\n\n  /**\n   * Link variant theme\n   */\n  @Input() variant: LinkVariant = 'default';\n\n  /**\n   * Link size\n   */\n  @Input() size: LinkSize;\n\n  /**\n   * Link target. Note when the target is `_blank`, an icon notifying the user is placed on the right of the link\n   */\n  @Input() target: string;\n\n  /**\n   * Link href\n   */\n  @Input() href: string;\n\n  /**\n   * Link rel\n   */\n  @Input() rel: string;\n\n  /**\n   * If link opens in a new page, an icon notifying the user is placed on the right of the link\n   */\n  @Input() isExternal = false;\n\n  @Input() externalLabel: string;\n\n  /**\n   * Whether link has icon\n   */\n  @Input() hasIcon = false;\n\n  /**\n   * Link material icon\n   */\n  @Input() icon: string;\n\n  /**\n   * Whether icon is before or after text\n   */\n  @Input() iconPosition: LinkIconPosition = 'after';\n\n  /**\n   * Link title\n   */\n  @Input() title: string;\n\n  /**\n   * Link id\n   */\n  @Input() id: string;\n\n  /**\n   * Aria label, for accessibility reasons\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Aria labelled by, for accessibility reasons\n   */\n  @Input() ariaLabelledBy: string;\n\n\n  protected readonly routerLink? = inject(RouterLink, {self: true, optional: true});\n\n  constructor(@Attribute('tabindex') private readonly tabIndexAttribute: string|null|undefined) {\n  }\n\n  /**\n   * @ignore\n   */\n  isExternalLink(): boolean {\n    return this.isExternal || this.target === '_blank';\n  }\n\n  /**\n   * @ignore\n   */\n  getLinkVariantClass(): string {\n    if (!this.variant || this.variant === 'default') {\n      return '';\n    }\n    return `${this.linkClass}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getIconClass(): string {\n    if (!this.hasIcon && !this.isExternalLink()) {\n      return '';\n    }\n    return this.iconClass;\n  }\n\n  /**\n   * @ignore\n   */\n  getIconPositionClass(): string {\n    if (this.iconPosition !== 'before') {\n      return '';\n    }\n    return `${this.iconClass}--${this.iconPosition}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getSizeClass(): string {\n    if (!this.size) {\n      return '';\n    }\n    return `${this.linkClass}--${this.size}`;\n  }\n}\n","<a class=\"nj-link\" *ngIf=\"!routerLink\"\n   [ngClass]=\"[getLinkVariantClass(), getIconClass(), getIconPositionClass(), getSizeClass()]\"\n   [attr.href]=\"href\"\n   [attr.rel]=\"rel\"\n   [attr.target]=\"target\"\n   [attr.aria-label]=\"ariaLabel\"\n   [attr.aria-labelledby]=\"ariaLabelledBy\"\n   [attr.title]=\"title\"\n   [attr.id]=\"id\">\n  <ng-container [ngTemplateOutlet]=\"linkContent\"></ng-container>\n</a>\n<a class=\"nj-link\" *ngIf=\"routerLink\"\n   [ngClass]=\"[getLinkVariantClass(), getIconClass(), getIconPositionClass(), getSizeClass()]\"\n   [routerLink]=\"routerLink['commands']\"\n   [target]=\"routerLink.target\"\n   [queryParams]=\"routerLink.queryParams\"\n   [fragment]=\"routerLink.fragment\"\n   [queryParamsHandling]=\"routerLink.queryParamsHandling\"\n   [state]=\"routerLink.state\"\n   [relativeTo]=\"routerLink.relativeTo\"\n   [preserveFragment]=\"routerLink.preserveFragment\"\n   [skipLocationChange]=\"routerLink.skipLocationChange\"\n   [replaceUrl]=\"routerLink.replaceUrl\"\n   [attr.rel]=\"rel\"\n   [attr.aria-label]=\"ariaLabel\"\n   [attr.aria-labelledby]=\"ariaLabelledBy\"\n   [attr.title]=\"title\"\n   [attr.id]=\"id\">\n  <ng-container [ngTemplateOutlet]=\"linkContent\"></ng-container>\n</a>\n<ng-template #linkContent>\n  <ng-content></ng-content>\n  <ng-container *ngIf=\"hasIcon\">\n    <nj-icon [name]=\"icon\" *ngIf=\"icon && !isExternalLink()\"></nj-icon>\n    <ng-container *ngIf=\"!icon && !isExternalLink()\">\n      <ng-content select=\"[custom-icon]\"></ng-content>\n    </ng-container>\n  </ng-container>\n  <ng-container *ngIf=\"!icon && isExternalLink()\">\n    <span class=\"nj-sr-only\">&nbsp;{{externalLabel}}</span>\n    <!-- Only useful for projects that don't use material icons -->\n    <svg xmlns=\"http://www.w3.org/2000/svg\"\n         viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n      <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n      <path\n        d=\"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"/>\n    </svg>\n  </ng-container>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { LinkComponent } from '../link/link.component';\nimport { LinkIconPosition } from '../link/link.model';\n\n@Component({\n  selector: 'nj-breadcrumb-item',\n  templateUrl: './breadcrumb-item.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [LinkComponent, CommonModule]\n})\nexport class BreadcrumbItemComponent {\n  /**\n   * Whether item is active\n   */\n  @Input() isActive = false;\n\n  /**\n   * Breadcrumb link href\n   */\n  @Input() href: string;\n\n  /**\n   * Breadcrumb link target\n   */\n  @Input() target: string;\n\n  /**\n   * Breadcrumb link icon\n   */\n  @Input() icon: string;\n\n  /**\n   * Breadcrumb link icon position\n   */\n  @Input() iconPosition: LinkIconPosition;\n\n  /**\n   * Accessible text alternative when the item has an icon and no children.\n   *\n   * @example\n   * <nj-breadcrumb-item href=\"#\" icon=\"home\" label=\"Home page\"></nj-breadcrumb-item>\n   */\n  @Input() label?: string;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('itemTemplate') itemTemplate: TemplateRef<any>;\n\n  constructor() {}\n}\n","<ng-template #itemTemplate>\n  <nj-link *ngIf=\"!isActive\" variant=\"grayed\" size=\"sm\"\n           [href]=\"href\" [target]=\"target\"\n           [hasIcon]=\"!!icon\" [icon]=\"icon\" [iconPosition]=\"iconPosition\">\n    <span class=\"nj-sr-only\">{{label}}</span>\n    <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n  </nj-link>\n\n  <ng-container *ngIf=\"isActive\">\n    <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n  </ng-container>\n</ng-template>\n\n<ng-template #itemContent>\n  <ng-content></ng-content>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentChecked,\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  Input,\n  QueryList,\n  ViewChild\n} from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { BreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\n\n@Component({\n  selector: 'nj-breadcrumb',\n  templateUrl: './breadcrumb.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [BreadcrumbItemComponent, CommonModule]\n})\nexport class BreadcrumbComponent implements AfterContentInit, AfterContentChecked {\n  /**\n   * Describes the navigation to screen reader users (who navigate the page using landmarks)\n   *\n   * @default \"Breadcrumbs\"\n   */\n  @Input() ariaLabel: string = 'Breadcrumbs';\n\n  /**\n   * Accessible text alternative for the \"show more\" button when the breadcrumb is minified.\n   *\n   * @default \"Show hidden items\"\n   */\n  @Input() showMoreLabel: string = 'Show hidden items';\n\n  /**\n   * @ignore\n   */\n  isMinified: boolean;\n\n  /**\n   * @ignore\n   */\n  leftContent: BreadcrumbItemComponent[];\n\n  /**\n   * @ignore\n   */\n  rightContent: BreadcrumbItemComponent;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  /**\n   * @ignore\n   */\n  @ContentChildren(BreadcrumbItemComponent)\n  breadcrumbItems: QueryList<BreadcrumbItemComponent>;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('olRef') olRef: ElementRef<HTMLOListElement>;\n\n  ngAfterContentInit() {\n    this.isMinified = this.breadcrumbItems?.toArray()?.length > 4;\n    this.leftContent = this.getLeftContentToDisplay();\n    this.rightContent = this.getRightContentToDisplay();\n  }\n\n  ngAfterContentChecked() {\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  seeAll() {\n    this.isMinified = false;\n    this.leftContent = this.getLeftContentToDisplay();\n    this.rightContent = this.getRightContentToDisplay();\n    this.cdr.markForCheck();\n\n    // Focus first revealed item\n    setTimeout(() => {\n      (this.olRef.nativeElement.childNodes[2] as HTMLLIElement)?.querySelector('a')?.focus();\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  getLeftContentToDisplay(): BreadcrumbItemComponent[] {\n    const breadcrumbItemsArray = this.breadcrumbItems?.toArray();\n    if (Utils.isUndefinedOrNull(breadcrumbItemsArray)) {\n      return;\n    }\n    return this.isMinified ? breadcrumbItemsArray.splice(0, 1) : breadcrumbItemsArray;\n  }\n\n  /**\n   * @ignore\n   */\n  getRightContentToDisplay(): BreadcrumbItemComponent {\n    if (!this.isMinified) {\n      return;\n    }\n    const breadcrumbItemsArray = this.breadcrumbItems?.toArray();\n    const breadcrumbItemsLength = breadcrumbItemsArray?.length;\n    return breadcrumbItemsArray[breadcrumbItemsLength - 1];\n  }\n}\n","<nav role=\"navigation\" [attr.aria-label]=\"ariaLabel\">\n  <ol class=\"nj-breadcrumb\" #olRef>\n    <ng-container *ngIf=\"leftContent\">\n      <li class=\"nj-breadcrumb__item\" *ngFor=\"let item of leftContent\">\n        <ng-container *ngTemplateOutlet=\"item?.itemTemplate\"></ng-container>\n      </li>\n    </ng-container>\n    <li class=\"nj-breadcrumb__see-more\" *ngIf=\"isMinified\">\n      <button (click)=\"seeAll()\" (keydown.enter)=\"seeAll()\">\n        <span class=\"nj-sr-only\">{{showMoreLabel}}</span>\n      </button>\n    </li>\n    <li class=\"nj-breadcrumb__item\" *ngIf=\"isMinified && rightContent\">\n      <ng-container *ngTemplateOutlet=\"rightContent.itemTemplate\"></ng-container>\n    </li>\n  </ol>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ThemeComponentsVariants } from '../../models/theme-variant.model';\nimport { Utils } from '../../utils/utils.util';\nimport { BulletSize } from './bullet.model';\n\n@Component({\n  selector: 'nj-bullet',\n  templateUrl: './bullet.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class BulletComponent {\n  private bulletClassName = 'nj-bullet';\n\n  /**\n   * Bullet variant\n   */\n  @Input() variant: ThemeComponentsVariants = 'brand';\n\n  /**\n   * Bullet custom color, overrides variant\n   */\n  @Input() customColor: string;\n\n  /**\n   * Bullet size\n   */\n  @Input() size: BulletSize = 'md';\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getBulletVariantClass(): string {\n    if (!this.variant || !Utils.isUndefinedOrNull(this.customColor)) {\n      return '';\n    }\n    return `${this.bulletClassName}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getButtonSizeClass(): string {\n    if (!this.size) {\n      return '';\n    }\n    return `${this.bulletClassName}--${this.size}`;\n  }\n}\n","<div class=\"nj-bullet\" [ngClass]=\"[getBulletVariantClass(), getButtonSizeClass()]\"\n     [style.background-color]=\"customColor\">\n</div>\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'nj-card',\n  templateUrl: './card.component.html',\n  styleUrls: ['./card.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class CardComponent {\n\n  /**\n   * Whether card has border or no\n   */\n  @Input() hasBorder = false;\n\n  /**\n   * Whether card flow is horizontal\n   */\n  @Input() isHorizontal = false;\n}\n","<div class=\"nj-card\" [ngClass]=\"{'nj-card--border': hasBorder, 'nj-card--horizontal': isHorizontal}\">\n  <div class=\"nj-card__img-wrapper\">\n    <ng-content select=\"[njCardImage]\"></ng-content>\n  </div>\n  <div class=\"nj-card__body\">\n    <div class=\"nj-card__title\">\n      <ng-content select=\"[njCardTitle]\"></ng-content>\n    </div>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import {Directive, ElementRef, HostBinding} from '@angular/core';\n\n@Directive({\n  selector: '[njCardImage]',\n  exportAs: 'njCardImage',\n  standalone: true\n})\nexport class CardImageDirective {\n  @HostBinding('class') class = 'nj-card__img';\n\n  constructor(private el: ElementRef) {\n  }\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njCustomLabel]',\n  standalone: true\n})\nexport class CustomLabelDirective<T> {\n  public readonly templateRef = inject<TemplateRef<T>>(TemplateRef);\n}\n","import {Tokens} from '@engie-group/fluid-design-tokens';\nimport {ThemeComponentsVariants} from '../../models/theme-variant.model';\n\nconst sizeKeys = Object.keys(Tokens.semantic.size.icon);\nexport declare type IconSize = typeof sizeKeys[number] | 'inherit';\nexport declare type IconColor = ThemeComponentsVariants | 'inherit' | 'inverse' | 'secondary' | 'tertiary'\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { IconBaseComponent } from '../icon-base/icon-base.component';\nimport { EngieIconsName, EngieIconVariant } from './icon-engie.model';\n\n@Component({\n  selector: 'nj-icon-engie',\n  templateUrl: './icon-engie.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconBaseComponent]\n})\nexport class IconEngieComponent extends IconBaseComponent {\n  /**\n   * Icon name\n   */\n  @Input() name: EngieIconsName;\n\n  /**\n   * Icon variant\n   */\n  @Input() variant: EngieIconVariant = 'default';\n\n  protected getClassName(): string {\n    const variantClass = this.variant && this.variant !== 'default' ? `${this.ICON_CLASS}--${this.variant}` : null;\n    return [variantClass, this.className].filter((cls) => !Utils.isUndefinedOrNull(cls)).join(' ');\n  }\n}\n","<nj-icon-base\n  [name]=\"name\"\n  [isEngieIcon]=\"true\"\n  [ariaLabel]=\"ariaLabel\"\n  [className]=\"getClassName()\"\n>\n</nj-icon-base>\n","export const engieIconName = [\n  'ten-minus',\n  'ten-loading',\n  'ten-refresh',\n  'ten-plus',\n  'twenty-four',\n  'two-thousand-minus',\n  'two-thousand-plus',\n  'add',\n  'air',\n  'arrowleft',\n  'arrowright',\n  'atoz',\n  'balance',\n  'building-search',\n  'building',\n  'call',\n  'camera',\n  'card-money',\n  'card-smartphone',\n  'card-validate',\n  'cardcross',\n  'cardexport',\n  'cardload',\n  'cardlock',\n  'cards',\n  'cat',\n  'chat',\n  'chatbot',\n  'city',\n  'clock-sleep',\n  'clock',\n  'counter',\n  'cross',\n  'degrees',\n  'diagram',\n  'document-data',\n  'document-download',\n  'document-hand',\n  'document-money',\n  'document-search',\n  'document-upload',\n  'document',\n  'dropbox',\n  'duo',\n  'electric-car',\n  'electric-fire',\n  'electric-outlet',\n  'electric',\n  'enlighten',\n  'envelope',\n  'exclamation',\n  'expert',\n  'eye',\n  'family-1',\n  'family-2',\n  'family-3',\n  'finger-touch',\n  'fire',\n  'forest',\n  'gas-pump',\n  'gauge',\n  'hand-tool',\n  'handkey',\n  'handup',\n  'hob',\n  'house-energy',\n  'house',\n  'houses',\n  'imbalance',\n  'info',\n  'insulation',\n  'juggle',\n  'label-for-rent',\n  'label-for-sale',\n  'like',\n  'list',\n  'lock',\n  'luggage',\n  'map',\n  'medal',\n  'moon',\n  'nature',\n  'north-earth',\n  'number-counter',\n  'person-rotate',\n  'picture-web',\n  'piggybank',\n  'plan',\n  'planning-cancel',\n  'planning-clock',\n  'profile',\n  'question',\n  'recycling',\n  'robot',\n  'sale-label',\n  'satellite',\n  'shower',\n  'silence',\n  'smartphone-hand',\n  'smartphone-home',\n  'smartphone',\n  'smoke',\n  'solar-panel-flux',\n  'solar-panel',\n  'squaremeter',\n  'sun',\n  'sunmoon',\n  'tanker',\n  'temperature',\n  'tools',\n  'transfer',\n  'trash',\n  'unlock',\n  'validate',\n  'ventilator',\n  'water',\n  'wifi'\n] as const;\n\nexport declare type EngieIconsName = typeof engieIconName[number];\n\nexport declare type EngieIconVariant = 'default' | 'brand' | 'inverse';\n","import {CommonModule} from '@angular/common';\nimport {AfterViewInit, ChangeDetectionStrategy, Component, Input, ViewChild} from '@angular/core';\nimport {StatusIndicatorSize, StatusIndicatorStatus} from './status-indicator.model';\n\n@Component({\n  selector: 'nj-status-indicator',\n  templateUrl: './status-indicator.component.html',\n  styleUrls: ['./status-indicator.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class StatusIndicatorComponent implements AfterViewInit {\n\n  private readonly statusIndicatorClass = 'nj-status-indicator';\n\n  private readonly statusIndicatorClasses = {\n    offline: `${this.statusIndicatorClass}--offline`,\n    online: `${this.statusIndicatorClass}--online`,\n    away: `${this.statusIndicatorClass}--away`,\n    'do-not-disturb': `${this.statusIndicatorClass}--do-not-disturb`,\n    busy: `${this.statusIndicatorClass}--busy`,\n    unknown: `${this.statusIndicatorClass}--unknown`,\n    error: `${this.statusIndicatorClass}--error`,\n    success: `${this.statusIndicatorClass}--success`,\n    warning: `${this.statusIndicatorClass}--warning`,\n    'in-progress': `${this.statusIndicatorClass}--in-progress`,\n    information: `${this.statusIndicatorClass}--information`,\n    discovery: `${this.statusIndicatorClass}--discovery`,\n    planet: `${this.statusIndicatorClass}--planet`,\n  };\n\n  /**\n   * Status Indicator status\n   */\n  @Input() status: StatusIndicatorStatus = 'online';\n\n  /**\n   * Status Indicator status\n   */\n  @Input() size: StatusIndicatorSize;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('labelWrapper') labelWrapper;\n\n  /**\n   * Whether status indicator has label\n   */\n  hasLabel: boolean;\n\n  constructor() {\n  }\n\n  ngAfterViewInit() {\n    this.hasLabel = this.labelWrapper.nativeElement && this.labelWrapper.nativeElement.innerHTML !== '';\n  }\n\n  getStatusClass(): string {\n    const statusClass = this.statusIndicatorClasses[this.status];\n    if (!this.status || !statusClass) {\n      return '';\n    }\n    return statusClass;\n  }\n\n  getSizeClass(): string {\n    if (!this.size || this.size === 'md') {\n      return '';\n    }\n    return `${this.statusIndicatorClass}--${this.size}`;\n  }\n}\n","<div class=\"nj-status-indicator\" [ngClass]=\"[getStatusClass(), getSizeClass()]\" [attr.aria-hidden]=\"hasLabel ? null : true\">\n  <div class=\"nj-status-indicator__svg\"></div>\n  <p class=\"nj-status-indicator__text\" #labelWrapper>\n    <ng-content></ng-content>\n  </p>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { StatusIndicatorComponent } from '../status-indicator/status-indicator.component';\nimport { InlineMessageVariant } from './inline-message.model';\n\n@Component({\n  selector: 'nj-inline-message',\n  templateUrl: './inline-message.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconButtonComponent, StatusIndicatorComponent, CommonModule]\n})\nexport class InlineMessageComponent {\n  /**\n   * @ignore\n   */\n  private readonly inlineMessageClass = 'nj-inline-message';\n\n  /**\n   * Inline message variant\n   */\n  @Input() variant: InlineMessageVariant = 'error';\n\n  /**\n   * Whether inline message has status indicator or not\n   */\n  @Input() hasStatus = true;\n\n  /**\n   * Whether inline message is closeable or not\n   */\n  @Input() isClosable = false;\n\n  /**\n   * Output event when inline message is closed\n   */\n  @Output() closeClick = new EventEmitter<Event>();\n\n  constructor(private el: ElementRef) {}\n\n  /**\n   * @ignore\n   */\n  getVariantClass(): string {\n    if (!this.variant && this.variant === 'error') {\n      return '';\n    }\n    return `${this.inlineMessageClass}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  removeInlineMessage(event: MouseEvent) {\n    this.el?.nativeElement?.remove();\n    this.closeClick.emit(event);\n  }\n\n  /**\n   * @ignore\n   */\n  get isFatalError() {\n    return this.variant === 'fatal-error';\n  }\n}\n","<div class=\"nj-inline-message\" [ngClass]=\"getVariantClass()\">\n  <nj-status-indicator class=\"nj-inline-message__status\" *ngIf=\"hasStatus && !isFatalError\" [status]=\"variant\"></nj-status-indicator>\n  <div class=\"nj-inline-message__content\">\n    <h4 class=\"nj-inline-message__title\">\n      <ng-content select=\"[njInlineMessageTitle]\"></ng-content>\n    </h4>\n    <p class=\"nj-inline-message__body\">\n      <ng-content></ng-content>\n    </p>\n  </div>\n  <nj-icon-button *ngIf=\"isClosable\" class=\"nj-inline-message__close\" icon=\"close\" [variant]=\"!isFatalError ? 'primary' : 'inverse'\"\n                  (buttonClick)=\"removeInlineMessage($event)\">\n  </nj-icon-button>\n</div>\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\nimport {njSemanticMotionEasingLinearOutSlowIn} from '@engie-group/fluid-design-tokens';\n\nexport const defaultParams = {\n  params: {enterAnimationDuration: '150ms'},\n};\n\nexport const modalAnimation: {\n  readonly modal: AnimationTriggerMetadata;\n} = {\n  modal: trigger('modal', [\n    state('void', style({opacity: 0, transform: 'scale(0.7)'})),\n    state('*', style({opacity: 1, transform: 'none'})),\n    transition(\n      ':enter',\n      animate(`{{enterAnimationDuration}} ${njSemanticMotionEasingLinearOutSlowIn}`),\n      defaultParams,\n    ),\n  ]),\n};\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Optional,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { modalAnimation } from './modal.animations';\n\n@Component({\n  selector: 'nj-modal',\n  templateUrl: './modal.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  animations: [modalAnimation.modal],\n  standalone: true,\n  imports: [IconButtonComponent, CommonModule]\n})\nexport class ModalComponent implements AfterViewInit {\n  /**\n   * Whether modal has close icon or not\n   */\n  @Input() hasCloseIcon = false;\n\n  /**\n   * Label for the close button\n   * @example \"Close\"\n   */\n  @Input() closeLabel?: string;\n\n  /**\n   * Whether modal is vertically centered\n   */\n  @Input() isVerticallyCentered = true;\n\n  /**\n   * Id of the modal. The title id will be based on this.\n   */\n  @Input() modalId: string;\n\n  /**\n   * Emits void event when modal is closed via the close icon\n   */\n  @Output() closed = new EventEmitter<void>();\n\n  /**\n   * @param dialogRef refers to `@angular/cdk` DialogRef\n   */\n  constructor(@Optional() public dialogRef: DialogRef) {\n    const backdropElement = this.dialogRef?.overlayRef?.backdropElement;\n    // Add fluid backdrop background color to dialog overlay\n    if (backdropElement) {\n      backdropElement.style.backgroundColor = 'var(--nj-component-backdrop-color-background)';\n    }\n  }\n\n  get titleId(): string {\n    return `${this.modalId}-title`;\n  }\n\n  ngAfterViewInit() {\n    // Manually set the `aria-labelledby` attribute on the modal\n    setTimeout(() => {\n      // @ts-expect-error\n      this.dialogRef?.containerInstance._elementRef.nativeElement.setAttribute('aria-labelledby', this.titleId);\n    });\n  }\n\n  /**\n   * Emits closed event and calls dialogRef.close()\n   */\n  public closeModal() {\n    this.closed?.emit();\n    this.dialogRef?.close();\n  }\n}\n","<div class=\"nj-modal nj-modal--visible\" [ngClass]=\"{'nj-modal--vertical-centered': isVerticallyCentered}\">\n  <div class=\"nj-modal__dialog\">\n    <div class=\"nj-modal__content\" @modal>\n      <div class=\"nj-modal__header\">\n        <h1 class=\"nj-modal__title\" [attr.id]=\"titleId\">\n          <ng-content select=\"[njModalTitle]\"></ng-content>\n        </h1>\n        <nj-icon-button icon=\"close\" size=\"sm\" class=\"nj-modal__close\"\n                        (buttonClick)=\"closeModal()\"\n                        *ngIf=\"hasCloseIcon\" [label]=\"closeLabel\">\n        </nj-icon-button>\n      </div>\n      <div class=\"nj-modal__body\">\n        <ng-content select=\"[njModalContent]\"></ng-content>\n      </div>\n      <div class=\"nj-modal__footer\">\n        <ng-content select=\"[njModalFooter]\"></ng-content>\n      </div>\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ThemeComponentsVariants } from '../../models/theme-variant.model';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { TagSize } from './tag.model';\n\n@Component({\n  selector: 'nj-tag',\n  templateUrl: './tag.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconButtonComponent, CommonModule]\n})\nexport class TagComponent {\n  private readonly tagClassName = 'nj-tag';\n\n  /**\n   * Tag variant\n   *\n   * @default `grey`\n   */\n  @Input() variant?: ThemeComponentsVariants;\n\n  /**\n   * Tag size\n   */\n  @Input() size?: TagSize = 'md';\n\n  /**\n   * Tag iconName\n   */\n  @Input() iconName?: string;\n\n  /**\n   * Tag href. If set, tag renders a link\n   */\n  @Input() href?: string;\n\n  /**\n   * target of link tag\n   */\n  @Input() target?: string;\n\n  /**\n   * If set, tag renders a button\n   */\n  @Input() isClickable?: boolean;\n\n  /**\n   * Whether tag can be closed\n   */\n  @Input() isClosable?: boolean;\n\n  /**\n   * Whether tag should remove himself when close is clicked\n   */\n  @Input() shouldAutoDestruct = true;\n\n  /**\n   * Label for the close button, if present\n   * @example \"Remove [tag name]\"\n   */\n  @Input() closeLabel?: string;\n\n  /**\n   * Whether tag is disabled\n   */\n  @Input() isDisabled?: boolean;\n\n  /**\n   * Whether tag has custom icon\n   */\n  @Input() hasCustomIcon?: boolean;\n\n  /**\n   * Output event when clickable tag is clicked\n   */\n  @Output() tagClick = new EventEmitter<MouseEvent>();\n\n  /**\n   * Output event when tag is closed. Focus must be set to either previous tag, next tag or any relevant element.\n   */\n  @Output() closeClick = new EventEmitter<MouseEvent>();\n\n  constructor(private el: ElementRef) {}\n\n  /**\n   * @ignore\n   */\n  getTagVariantClass(): string {\n    if (!this.variant) {\n      return '';\n    }\n    return `${this.tagClassName}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getTagSizeClass(): string {\n    if (!this.size || this.size === 'md') {\n      return '';\n    }\n    return `${this.tagClassName}--${this.size}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getTagDisabledClass(): string {\n    if (!this.isDisabled) {\n      return '';\n    }\n    return `${this.tagClassName}--disabled`;\n  }\n\n  /**\n   * @ignore\n   */\n  removeTag(event: MouseEvent) {\n    event?.preventDefault();\n    event?.stopImmediatePropagation();\n    if (this.shouldAutoDestruct) {\n      this.el?.nativeElement?.remove();\n    }\n    this.closeClick.emit(event);\n  }\n\n  focusIconButton() {\n    this.el?.nativeElement?.querySelector('nj-icon-button button')?.focus();\n  }\n}\n","<div class=\"nj-tag\" [ngClass]=\"[getTagVariantClass(), getTagSizeClass(), getTagDisabledClass()]\">\n  <!-- Icon -->\n  <span aria-hidden=\"true\" class=\"nj-tag__icon nj-icon-material material-icons\" *ngIf=\"iconName && !hasCustomIcon\">{{\n    iconName\n  }}</span>\n  <span aria-hidden=\"true\" class=\"nj-tag__icon\" *ngIf=\"hasCustomIcon\">\n    <ng-content select=\"[njTagIcon]\"></ng-content>\n  </span>\n\n  <ng-container *ngTemplateOutlet=\"tagWrapper\"></ng-container>\n\n  <!-- Close button -->\n  <nj-icon-button\n    *ngIf=\"isClosable && !isDisabled\"\n    icon=\"close\"\n    class=\"nj-tag__close\"\n    size=\"2xs\"\n    type=\"button\"\n    [label]=\"closeLabel\"\n    (buttonClick)=\"removeTag($event)\"\n  >\n  </nj-icon-button>\n</div>\n\n<!-- Render a link, a button or a span for the tag content -->\n<ng-template #tagWrapper>\n  <a\n    *ngIf=\"href\"\n    class=\"nj-tag__link\"\n    [attr.href]=\"isDisabled ? null : href\"\n    [attr.target]=\"isDisabled ? null : target\"\n    [attr.role]=\"isDisabled ? 'link' : null\"\n    [attr.aria-disabled]=\"isDisabled ? 'true' : null\"\n    (click)=\"isClickable ? tagClick?.emit($event) : null\"\n  >\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </a>\n\n  <button\n    *ngIf=\"!href && isClickable\"\n    class=\"nj-tag__button\"\n    [attr.disabled]=\"isDisabled ? 'disabled' : null\"\n    (click)=\"tagClick?.emit($event)\"\n  >\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </button>\n\n  <p *ngIf=\"!href && !isClickable\" class=\"nj-tag__text\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </p>\n</ng-template>\n\n<!-- Tag inner text content -->\n<ng-template #tagContent>\n  <ng-content></ng-content>\n</ng-template>\n","import {CommonModule, DOCUMENT} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  forwardRef,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {fromEvent, race, Subject, takeUntil} from 'rxjs';\nimport {selectAnimations} from '../../shared/animations';\nimport {FormFieldDirective} from '../form-field/form-field.directive';\nimport {FormItemComponent} from '../form-item/form-item.component';\nimport {ListGroupComponent} from '../list-group/list-group.component';\nimport {ListItemComponent} from '../list-item/list-item.component';\nimport {TagComponent} from '../tag/tag.component';\nimport {TagSize} from '../tag/tag.model';\n\n@Component({\n  selector: 'nj-multi-select',\n  templateUrl: './multi-select.component.html',\n  styleUrls: ['./multi-select.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MultiSelectComponent),\n      multi: true,\n    },\n  ],\n  animations: [selectAnimations.transformList],\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [TagComponent, FormItemComponent, FormFieldDirective, ListGroupComponent, CommonModule]\n})\nexport class MultiSelectComponent\n  extends FormItemComponent\n  implements OnInit, AfterViewInit, ControlValueAccessor, OnDestroy {\n  private static readonly ESCAPE_CODE = 'Escape';\n  private static readonly ENTER_CODE = 'Enter';\n  private static readonly UP_CODE = 'ArrowUp';\n  private static readonly DOWN_CODE = 'ArrowDown';\n  /*\n    Regex matching every alpha-numeric characters.\n\n    \\d : every digits\n    \\p{Letter} : every letters in the latin alphabet including letters with diacritics\n\n    The \"u\" flag enables unicode mode required to use `\\p{Letter}`.\n\n    See :\n    - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes#general_categories\n    - https://unicode.org/reports/tr18/#General_Category_Property\n  */\n  private static readonly ALPHA_NUMERIC_REGEX = /^[\\d\\p{Letter}]$/u;\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {\n  };\n\n  /**\n   * Notifier used to stop items click event subscription.\n   * @ignore\n   */\n  private unsubscribe = new Subject<void>();\n\n  private childOptionsChange = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  isOpen = false;\n\n  /**\n   * @ignore\n   */\n  selectedIndexes: Set<number> = new Set<number>();\n\n  /**\n   * @ignore\n   */\n  selectedValues: Set<string> = new Set<string>();\n\n  /**\n   * Icon name\n   */\n  @Input() iconName = 'keyboard_arrow_down';\n\n  /**\n   * Label used for accessibility related attributes on button and list.\n   * Should be the same value (text only) as the `<label>` element\n   */\n  @Input() fieldLabel: string;\n\n  /**\n   * Instructions on how to navigate the list. It is append after the input label.\n   * @example \"Use up and down arrows and Enter to select a value\"\n   */\n  @Input() listNavigationLabel: string;\n\n  /**\n   * Button default label when no value is selected. It is appended after the input label.\n   * @example \"Select a value\"\n   */\n  @Input() buttonDefaultValueLabel: string;\n\n  /**\n   * Max tags to display\n   */\n  @Input() maxTagsToDisplay: number;\n\n  /**\n   * Whether or no to display selected items. When set to `false` and number of selected > 1,\n   * instead of displaying each selected item as tags it only display one tag `X selected`\n   */\n  @Input() displaySelectedItems = true;\n\n  /**\n   * Selected text when `displaySelectedItems = false`:\n   * @example '5 selected`\n   */\n  @Input() selectedText: string = 'selected';\n\n  /**\n   * Selected options tag color. Can only be grey or brand\n   */\n  @Input() tagColor: 'brand' | 'grey' = 'grey';\n\n  /**\n   * Tag close label for accessibility, default is `Deselect` and it will be followed by the tag label. So focusing the close icon will read `Remove tag label`.\n   * Make sure to set a meaningful value and a translated one\n   */\n  @Input() tagCloseLabel = 'Deselect';\n\n  /**\n   * Tag close label for accessibility, default is `Deselect all`. So focusing the close icon will read `Deselect all`.\n   * Make sure to set a meaningful value and a translated one\n   */\n  @Input() tagResetSelectionLabel?: string = 'Deselect all';\n\n  /**\n   * Trigger button to toggle the list\n   * @ignore\n   */\n  @ViewChild('button') buttonEl: ElementRef<HTMLButtonElement>;\n\n  /**\n   * Trigger button to toggle the list\n   * @ignore\n   */\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\n\n  /**\n   * List containing options\n   * @ignore\n   */\n  @ViewChild(ListGroupComponent) listEl: ListGroupComponent;\n\n  /**\n   * List containing tags\n   * @ignore\n   */\n  @ViewChildren('tags') tags: QueryList<TagComponent>;\n\n  /**\n   * Option items\n   * @ignore\n   */\n  @ContentChildren(ListItemComponent, {descendants: true}) selectOptions: QueryList<ListItemComponent>;\n\n  constructor(private readonly element: ElementRef<HTMLElement>, private readonly cdr: ChangeDetectorRef, @Inject(DOCUMENT) private document) {\n    super();\n  }\n\n  ngOnInit() {\n    fromEvent(this.document, 'click')\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe((e: MouseEvent) => this.handleOutsideClick(e));\n  }\n\n  ngAfterViewInit() {\n    this.setInputsAndListenersOnOptions();\n    this.updateSelectedIndexes();\n    this.cdr.detectChanges();\n\n    this.selectOptions?.changes\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe(() => {\n        setTimeout(() => {\n          this.setInputsAndListenersOnOptions();\n          this.updateSelectedIndexes();\n          this.cdr.detectChanges();\n        });\n      });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  setInputsAndListenersOnOptions() {\n    this.childOptionsChange.next();\n    const unsubscribeCond$ = race(this.unsubscribe, this.childOptionsChange);\n\n    this.selectOptions?.forEach((item, index) => {\n      item.role = 'option';\n      item.updateSelected(this.selectedIndexes.has(index));\n      item.isCheckboxContent = true;\n      item.checkboxContentId = this.getOptionId(index);\n\n      item.itemClick\n        .pipe(takeUntil(unsubscribeCond$))\n        .subscribe(() => {\n          this.toggleItem(item, index);\n        });\n    });\n  }\n\n  updateSelectedIndexes() {\n    const selectOptionsArr = this.selectOptions?.toArray();\n    if (selectOptionsArr) {\n      this.selectedValues = new Set(\n        [...this.selectedValues].filter(value => selectOptionsArr.some(opt => {\n          return opt?.getValue() === value;\n        }))\n      );\n\n      this.selectedIndexes = new Set(\n        selectOptionsArr\n          .map((opt, index) => {\n            return this.selectedValues.has(opt.getValue()) ? index : -1;\n          })\n          .filter(index => index >= 0)\n      );\n    } else {\n      this.selectedIndexes.clear();\n      this.selectedValues.clear();\n    }\n\n    this.updateOptionsActive();\n  }\n\n  /**\n   * @ignore\n   */\n  toggleByIndex(e: MouseEvent, index: number, tagIndex: number) {\n    e?.stopPropagation();\n    const item = this.selectOptions.get(index);\n    this.toggleItem(item, index);\n    // When clicking with a mouse e.detail counts the number of clicks, however when using keyboard it is always 0\n    const isEventTriggeredWithKeyboard = e?.detail === 0;\n    if (!isEventTriggeredWithKeyboard) {\n      this.buttonEl?.nativeElement?.focus();\n      return;\n    }\n    // We use a set timeout to make sure the focus is done after is re-rendered\n    setTimeout(() => {\n      if (this.tags.length) {\n        const indexToFocus = tagIndex === this.tags.length ? tagIndex - 1 : tagIndex;\n        this.tags.get(indexToFocus)?.focusIconButton();\n      } else {\n        this.buttonEl?.nativeElement?.focus();\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  resetSelection(e: Event) {\n    e.stopPropagation();\n    this.buttonEl.nativeElement.focus();\n    this.selectedIndexes.clear();\n    this.selectedValues.clear();\n    this.updateOptionsActive();\n    this._onChange(Array.from(this.selectedValues));\n  }\n\n  private toggleItem(item: ListItemComponent, index: number) {\n    if (!item) {\n      return;\n    }\n    this.toggleValueInSelectedValue(item?.getValue());\n    this.toggleIndexInSelected(index);\n    this.updateOptionsActive();\n    this.cdr.markForCheck();\n    this._onChange(Array.from(this.selectedValues));\n  }\n\n  private toggleValueInSelectedValue(value: string) {\n    if (this.selectedValues.has(value)) {\n      this.selectedValues.delete(value);\n    } else {\n      this.selectedValues.add(value);\n    }\n  }\n\n  private toggleIndexInSelected(index: number) {\n    if (this.selectedIndexes.has(index)) {\n      this.selectedIndexes.delete(index);\n    } else {\n      this.selectedIndexes.add(index);\n    }\n  }\n\n  private openList() {\n    this.isOpen = true;\n\n    this.focusedIndex = this.selectedIndexes.size ? Array.from(this.selectedIndexes)[this.selectedIndexes.size - 1] : 0;\n\n    this.selectOptions?.toArray().forEach((el, i) => {\n      if (!el) {\n        return;\n      }\n      el.isActive = this.selectedIndexes.has(i);\n    });\n\n    setTimeout(() => {\n      if (!this.selectedIndexes?.size) {\n        // Focus the `ul` element\n        this.listEl?.rootEl.nativeElement.focus();\n        // The scrolling element is not the `ul` node but the `nj-list-group`\n        this.listEl?.element.nativeElement.scrollTo({top: 0});\n      }\n    });\n  }\n\n  private closeList() {\n    this.isOpen = false;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  toggleIsOpen() {\n    if (this.isOpen) {\n      this.closeList();\n    } else {\n      this.openList();\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  handleListKeydown(e: KeyboardEvent) {\n    // Escape key closes the list and focuses the button\n    if (e.code === MultiSelectComponent.ESCAPE_CODE) {\n      this.closeList();\n      setTimeout(() => {\n        this.buttonEl?.nativeElement.focus();\n      });\n    }\n\n    // Navigate between options and set `focusedIndex`\n    if (e.code === MultiSelectComponent.UP_CODE) {\n      e.preventDefault();\n      // Don't loop back to the end of the list\n      if (this.focusedIndex > 0) {\n        this.focusedIndex -= 1;\n      }\n    }\n\n    if (e.code === MultiSelectComponent.DOWN_CODE) {\n      e.preventDefault();\n      // Don't loop back to the begining of the list\n      if (this.focusedIndex < this.selectOptions?.length - 1) {\n        this.focusedIndex += 1;\n      }\n    }\n\n    // Select the current `focusedIndex` option\n    if (e.code === MultiSelectComponent.ENTER_CODE) {\n      e.preventDefault();\n      if (this.focusedIndex !== -1) {\n        this.toggleItem(this.selectOptions?.get(this.focusedIndex), this.focusedIndex);\n        this._onChange(Array.from(this.selectedValues));\n      }\n    }\n\n    // Jump to first option matching first letter\n    if (MultiSelectComponent.ALPHA_NUMERIC_REGEX.test(e.key)) {\n      const goToIndex = this.selectOptions\n        ?.toArray()\n        .findIndex(\n          (item) => item.getValue()[0].toLowerCase() === e.key.toLowerCase()\n        );\n\n      if (goToIndex !== -1) {\n        this.focusedIndex = goToIndex;\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  handleFocusOut(e: FocusEvent) {\n    const relatedTarget = e?.relatedTarget as Node;\n    if (!relatedTarget) {\n      return;\n    }\n    if (!this.element?.nativeElement?.contains(relatedTarget)) {\n      this.closeList();\n\n      if (this._onTouched) {\n        this._onTouched();\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  handleOutsideClick(e: MouseEvent) {\n    if (!this.element?.nativeElement?.contains(e.target as Node)) {\n      this.closeList();\n\n      if (this._onTouched) {\n        this._onTouched();\n      }\n    }\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(values?: string[]): void {\n    this.selectedValues.clear();\n    this.selectedIndexes.clear();\n    if (values?.length) {\n      for (const value of values) {\n        this.selectedValues.add(value);\n        const indexToAdd = this.selectOptions?.toArray()?.findIndex(item => item.getValue() === value);\n        if (indexToAdd >= 0) {\n          this.selectedIndexes.add(indexToAdd);\n        }\n      }\n    }\n    this.updateOptionsActive();\n    this.cdr.markForCheck();\n  }\n\n  private updateOptionsActive() {\n    this.selectOptions?.forEach((item) => {\n      item.updateSelected(this.selectedValues.has(item.getValue()));\n    });\n  }\n\n  /**\n   * Label (≠ value) of selected option\n   * @ignore\n   */\n  getLabelAtIndex(index: number): string {\n    return this.selectOptions?.get(index)?.getLabel() ?? '';\n  }\n\n  /**\n   * Close aria Label of taf to close\n   * @param index\n   */\n  getTagCloseLabel(index: number): string {\n    return `${this.tagCloseLabel} ${this.getLabelAtIndex(index)}`;\n  }\n\n  /**\n   * Aria-label for the trigger button element.\n   * @ignore\n   */\n  get buttonLabel(): string {\n    return `${this.fieldLabel} - ${this.buttonDefaultValueLabel}`;\n  }\n\n  /**\n   * @ignore\n   */\n  get formattedInputValue(): string {\n    if (!this.selectedValues) {\n      return '';\n    }\n    return Array.from(this.selectedValues).join(',');\n  }\n\n  /**\n   * @ignore\n   */\n  getAdditionalClass(): string {\n    return `nj-form-item--select nj-form-item--custom-list nj-form-item--multi-select${\n      this.isOpen ? ' nj-form-item--open' : ''\n    }`;\n  }\n\n  /**\n   * @ignore\n   */\n  getSubscriptId(): string {\n    return `${this.inputId}-subscript`;\n  }\n\n  /**\n   * @ignore\n   */\n  getInstructionsId(): string {\n    return `${this.inputId}-instructions`;\n  }\n\n  /**\n   * @ignore\n   */\n  getDescriptionId(): string {\n    return `${this.getSubscriptId()} ${this.getInstructionsId()}`;\n  }\n\n  /**\n   * Index of the currently focused option.\n   */\n  private get focusedIndex(): number {\n    return this.selectOptions\n      ?.toArray()\n      .findIndex(\n        (item) => this.document.activeElement === item.el.nativeElement\n      );\n  }\n\n  private set focusedIndex(value: number) {\n    this.selectOptions?.forEach((el, i) => {\n      el.ariaSelected = i === value;\n    });\n\n    setTimeout(() => {\n      if (value >= 0) {\n        this.selectOptions?.get(value)?.el?.nativeElement?.focus();\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  get selectedIndexesToShow(): number[] {\n    if (!this.selectedIndexes) {\n      return;\n    }\n    if (!this.maxTagsToDisplay) {\n      return [...this.selectedIndexes];\n    }\n    return [...this.selectedIndexes].splice(0, this.maxTagsToDisplay);\n  }\n\n  /**\n   * @ignore\n   */\n  get tagSize(): TagSize {\n    switch (this.size) {\n      case 'xlarge':\n        return 'md';\n      case 'small':\n        return 'xs';\n      default:\n        return 'sm';\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  get selectIndexAsArray(): number[] {\n    return [...this.selectedIndexes];\n  }\n\n  private getOptionId(index: number): string {\n    return `${this.inputId}_option-${index}`;\n  }\n}\n","<nj-form-item\n  [hasError]=\"hasError\"\n  [hasSuccess]=\"hasSuccess\"\n  [hasHint]=\"hasHint\"\n  [isDisabled]=\"isDisabled\"\n  [hasCustomIcon]=\"hasCustomIcon\"\n  [isFloatingLabel]=\"isFloatingLabel\"\n  [iconName]=\"iconName\"\n  [size]=\"size\"\n  [isSelect]=\"true\"\n  [additionalClass]=\"getAdditionalClass()\"\n  [inputId]=\"inputId\"\n  (focusout)=\"handleFocusOut($event)\"\n>\n  <input\n    #input\n    type=\"text\"\n    readonly\n    [value]=\"formattedInputValue\"\n    [attr.id]=\"inputId\"\n    [disabled]=\"isDisabled\"\n    tabindex=\"-1\"\n    aria-hidden=\"true\"\n    njFormField\n  />\n  <ng-content njFormLabel select=\"[njFormLabel]\"></ng-content>\n  <ng-content njFormSubscript select=\"[njFormSubscript]\"></ng-content>\n  <ng-container njFormAdditionalContent>\n    <p [id]=\"getInstructionsId()\" hidden>{{ listNavigationLabel }}</p>\n    <button\n      #button\n      type=\"button\"\n      class=\"nj-form-item__custom-list-button\"\n      aria-haspopup=\"listbox\"\n      [attr.aria-expanded]=\"isOpen\"\n      role=\"combobox\"\n      [attr.aria-label]=\"buttonLabel\"\n      [attr.tabindex]=\"isOpen ? -1 : null\"\n      [attr.aria-describedby]=\"getDescriptionId()\"\n      (click)=\"toggleIsOpen()\">\n      <span class=\"nj-sr-only\">{{buttonLabel}}</span>\n    </button>\n    <div class=\"nj-form-item__selected-tags\" (click)=\"toggleIsOpen()\">\n      <ng-container *ngIf=\"selectIndexAsArray?.length as numOfSelected\">\n        <ng-container *ngIf=\"displaySelectedItems\">\n          <nj-tag *ngFor=\"let optionIndex of selectedIndexesToShow; let i = index\"\n                  #tags\n                  [variant]=\"tagColor\"\n                  [size]=\"tagSize\"\n                  [isClosable]=\"true\"\n                  [shouldAutoDestruct]=\"false\"\n                  [closeLabel]=\"getTagCloseLabel(optionIndex)\"\n                  (closeClick)=\"toggleByIndex($event, optionIndex, i)\">\n            {{getLabelAtIndex(optionIndex)}}\n          </nj-tag>\n          <nj-tag *ngIf=\"maxTagsToDisplay && numOfSelected > maxTagsToDisplay\"\n                  [variant]=\"tagColor\"\n                  [size]=\"tagSize\">\n            +{{numOfSelected - maxTagsToDisplay}}\n          </nj-tag>\n        </ng-container>\n        <ng-container *ngIf=\"!displaySelectedItems\">\n          <nj-tag\n            *ngIf=\"numOfSelected === 1\"\n            [variant]=\"tagColor\"\n            [size]=\"tagSize\"\n            [isClosable]=\"true\"\n            [shouldAutoDestruct]=\"false\"\n            [closeLabel]=\"getTagCloseLabel(selectIndexAsArray?.[0])\"\n            (closeClick)=\"toggleByIndex($event, selectIndexAsArray?.[0], 0)\">\n            {{getLabelAtIndex(selectIndexAsArray?.[0])}}\n          </nj-tag>\n          <nj-tag\n            *ngIf=\"numOfSelected > 1\"\n            [variant]=\"tagColor\"\n            [isClosable]=\"true\"\n            [shouldAutoDestruct]=\"false\"\n            [size]=\"tagSize\"\n            [closeLabel]=\"tagResetSelectionLabel\"\n            (closeClick)=\"resetSelection($event)\">\n            {{numOfSelected}} {{selectedText}}\n          </nj-tag>\n        </ng-container>\n      </ng-container>\n    </div>\n    <nj-list-group\n      class=\"nj-form-item__list nj-form-item__list--no-animate\"\n      [hidden]=\"!isOpen\"\n      [@transformList]=\"isOpen ? 'open': 'void'\"\n      [isDense]=\"true\"\n      [hasBorder]=\"false\"\n      [isClickable]=\"true\"\n      [isCustomSelectList]=\"true\"\n      [isCheckboxList]=\"true\"\n      tabindex=\"-1\"\n      [ariaLabel]=\"fieldLabel\"\n      (keydown)=\"handleListKeydown($event)\"\n    >\n      <ng-content select=\"[njSelectOptions]\"></ng-content>\n    </nj-list-group>\n  </ng-container>\n</nj-form-item>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-pagination',\n  templateUrl: './pagination.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, IconButtonComponent, CommonModule]\n})\nexport class PaginationComponent {\n  /**\n   * Text alternative for assistive technologies for previous button\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabelNext: string;\n\n  /**\n   * Text alternative for assistive technologies for next button\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabelPrevious: string;\n\n  /**\n   * Total number of pages\n   */\n  @Input() count: number;\n\n  /**\n   * Current page\n   */\n  @Input() currentItem: number = 1;\n\n  /**\n   * Whether pagination should minify\n   */\n  @Input() shouldMinify = true;\n\n  /**\n   * Emits selected item on change\n   */\n  @Output() selectedItem = new EventEmitter<number>();\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  /**\n   * @ignore\n   */\n  getItems() {\n    return Array.from({ length: this.count }, (_, i) => i + 1);\n  }\n\n  /**\n   * @ignore\n   */\n  goToNext() {\n    if (this.currentItem === this.count) {\n      return;\n    }\n    this.currentItem = this.currentItem + 1;\n    this.selectedItem?.emit(this.currentItem);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  goToPrevious() {\n    if (this.currentItem === 1) {\n      return;\n    }\n    this.currentItem = this.currentItem - 1;\n    this.selectedItem?.emit(this.currentItem);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  goToItem(item: number) {\n    if (item > this.count || this.currentItem < 1) {\n      return;\n    }\n    this.currentItem = item;\n    this.selectedItem?.emit(this.currentItem);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  isItemVisible(item: number): boolean {\n    // Always show first, last and selected item\n    if (item === 1 || item === this.count || item === this.currentItem) {\n      return true;\n    }\n    // Always show previous and next values of selected value\n    if (item >= this.currentItem - 1 && item <= this.currentItem + 1) {\n      return true;\n    }\n    if (item < 6 && this.currentItem < 4) {\n      return true;\n    }\n    return item >= this.count - 4 && this.currentItem >= this.count - 2;\n  }\n\n  /**\n   * @ignore\n   */\n  showMoreHorizontal(item: number): boolean {\n    // We want to show on 2nd item if currentItem > 3 or in penultimate if currentItem is in last 3\n    return (item === 2 && this.currentItem > 3) || (item === this.count - 1 && this.currentItem <= this.count - 3);\n  }\n}\n","<nav>\n  <ul class=\"nj-pagination\">\n    <li class=\"nj-pagination__item\">\n      <nj-icon-button size=\"sm\"\n                      icon=\"chevron_left\"\n                      [label]=\"ariaLabelPrevious\"\n                      (buttonClick)=\"goToPrevious()\"\n                      [isDisabled]=\"currentItem === 1\">\n      </nj-icon-button>\n    </li>\n    <ng-container *ngFor=\"let item of getItems()\">\n      <li *ngIf=\"!shouldMinify || isItemVisible(item)\" class=\"nj-pagination__item\"\n          [ngClass]=\"{'nj-pagination__item--active': currentItem === item}\">\n        <button class=\"nj-pagination__link\"\n                (click)=\"goToItem(item)\"\n                [attr.aria-current]=\"currentItem === item ? 'true' : null\">\n          {{item}}\n        </button>\n      </li>\n      <li class=\"nj-pagination__item\"\n          *ngIf=\"shouldMinify && showMoreHorizontal(item)\">\n        <nj-icon name=\"more_horiz\" class=\"nj-pagination__more\" variant=\"inherit\"></nj-icon>\n        <span class=\"nj-sr-only\">...</span>\n      </li>\n    </ng-container>\n\n    <li class=\"nj-pagination__item\">\n      <nj-icon-button size=\"sm\"\n                      icon=\"chevron_right\"\n                      [label]=\"ariaLabelNext\"\n                      (buttonClick)=\"goToNext()\"\n                      [isDisabled]=\"currentItem === count\">\n      </nj-icon-button>\n    </li>\n  </ul>\n</nav>\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\n\n\nexport const ProgressAnimation: {\n  readonly progressFill: AnimationTriggerMetadata;\n} = {\n  progressFill: trigger('progressFill', [\n    state('void', style({transform: 'scaleX(0)'})),\n    state('*', style({transform: 'scaleX(1)'})),\n    transition(':enter',\n      animate('{{duration}}ms cubic-bezier(0.0, 0.0, 0.2, 1)'),\n      {params: {duration: 500}})\n  ])\n};\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ProgressAnimation } from './progress.animation';\n\n@Component({\n  selector: 'nj-progress',\n  templateUrl: './progress.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [ProgressAnimation.progressFill],\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class ProgressComponent {\n  /**\n   * @ignore\n   */\n  private readonly progressClassName = 'nj-progress';\n\n  /**\n   * Label of the progressbar\n   */\n  @Input() label: string;\n  /**\n   * Progress value\n   */\n  @Input() value = 0;\n\n  /**\n   * Whether progress description is shown on the right/bottom or hidden\n   */\n  @Input() descriptionPosition: 'right' | 'bottom' | 'none' = 'none';\n\n  /**\n   * Progress min\n   */\n  @Input() min = 0;\n\n  /**\n   * Progress max\n   */\n  @Input() max = 100;\n\n  /**\n   * Whether progress is animated at first render\n   */\n  @Input() isAnimated = true;\n\n  /**\n   * Whether progress has css transitions for progress width\n   */\n  @Input() hasTransition = false;\n\n  /**\n   * Decimal precision of the description text\n   */\n  @Input() decimalPrecision = 0;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getTransitionClass(): string {\n    return this.hasTransition ? `${this.progressClassName}--has-transition` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getDescriptionPositionClass(): string {\n    return this.descriptionPosition === 'right' ? `${this.progressClassName}--has-right-description` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getFormattedValue(): number {\n    if (this.value > this.max) {\n      return this.max;\n    } else if (this.value < this.min) {\n      return this.min;\n    } else {\n      return this.value;\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getFormattedPercentage(): string {\n    if (this.value < this.min) {\n      return '0';\n    } else if (this.value > this.max) {\n      return '100';\n    }\n    return Number(((this.getFormattedValue() - this.min) / (this.max - this.min)) * 100).toFixed(this.decimalPrecision);\n  }\n}\n","<div class=\"nj-progress\"\n     role=\"progressbar\"\n     [ngClass]=\"[getTransitionClass(), getDescriptionPositionClass()]\"\n     *ngIf=\"getFormattedPercentage() as percentage\"\n     [attr.aria-valuenow]=\"value\"\n     [attr.aria-valuemin]=\"min\"\n     [attr.aria-valuemax]=\"max\"\n     [attr.aria-label]=\"label\">\n  <div class=\"nj-progress__bar\">\n    <div class=\"nj-progress__indicator\"\n         [style.width.%]=\"percentage\"\n         @progressFill\n         [@.disabled]=\"!isAnimated\">\n    </div>\n  </div>\n  <div aria-hidden=\"true\" class=\"nj-progress__description\" *ngIf=\"descriptionPosition !== 'none'\">\n    {{getFormattedPercentage()}}%\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { RadioSize } from './radio.model';\n\n@Component({\n  selector: 'nj-radio',\n  templateUrl: './radio.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule],\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class RadioComponent {\n  private readonly radioClassName = 'nj-radio';\n\n  /**\n   * Input id\n   */\n  @Input() inputId: string;\n\n  /**\n   * Input name\n   */\n  @Input() name: string;\n\n  /**\n   * Whether input is required or not\n   */\n  @Input() required?: boolean;\n\n  /**\n   * Whether the radio is checked or not\n   */\n  @Input() isChecked = false;\n\n  /**\n   * Input value\n   */\n  @Input() value: string;\n\n  /**\n   * Whether the radio is disabled or not\n   */\n  @Input() isDisabled?: boolean;\n\n  /**\n   * Radio size\n   */\n  @Input() size?: RadioSize = 'md';\n\n  /**\n   * Text alternative for assistive technologies\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabel?: string;\n\n  /**\n   * Text alternative for assistive technologies based on visible text\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby\n   */\n  @Input() ariaLabelledby?: string;\n\n  /**\n   * Output that emits checked value on change only\n   */\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  /**\n   * @ignore\n   */\n  onInputChange(event: Event) {\n    event.stopPropagation();\n    this.isChecked = !this.isChecked;\n    this.valueChange.emit(this.isChecked);\n  }\n\n  /**\n   * @ignore\n   */\n  _markForCheck() {\n    this.cdr.markForCheck();\n  }\n\n  protected get classes() {\n    const classes = [this.radioClassName];\n\n    if (this.size && this.size !== 'md') {\n      classes.push(`${this.radioClassName}--${this.size}`);\n    }\n\n    return classes;\n  }\n}\n","<label [attr.for]=\"inputId\">\n  <input\n    type=\"radio\"\n    [value]=\"value\"\n    [required]=\"required\"\n    [checked]=\"isChecked\"\n    [disabled]=\"isDisabled\"\n    [attr.id]=\"inputId\"\n    [attr.name]=\"name\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n    (change)=\"onInputChange($event)\"\n  />\n  <ng-content></ng-content>\n</label>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnDestroy,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Utils } from '../../utils/utils.util';\nimport { IconComponent } from '../icon/icon.component';\nimport { RadioComponent } from '../radio/radio.component';\nimport { RadioGroupOrientation } from './radio-group.model';\n\n@Component({\n  selector: 'nj-radio-group',\n  templateUrl: './radio-group.component.html',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RadioGroupComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [RadioComponent, CommonModule, IconComponent]\n})\nexport class RadioGroupComponent implements ControlValueAccessor, AfterContentInit, OnDestroy {\n  /**\n   * @ignore\n   */\n  private unsubscribe: Subject<void> = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  private _value;\n\n  /**\n   * @ignore\n   */\n  private _isDisabled;\n\n  /**\n   * @ignore\n   */\n  private _name;\n\n  /**\n   * @ignore\n   */\n  private _required = false;\n\n  /**\n   * @ignore\n   */\n  private _selected: RadioComponent;\n\n  /**\n   * @ignore\n   */\n  private radioGroupClassName = 'nj-radio-group';\n\n  /**\n   * Radio group selected value\n   */\n  @Input()\n  set value(newValue: any) {\n    if (this._value !== newValue) {\n      this._value = newValue;\n\n      this._updateSelectedRadioFromValue();\n      this._checkSelectedRadioButton();\n    }\n  }\n\n  get value(): any {\n    return this._value;\n  }\n\n  /**\n   * Radio group selected radio component\n   */\n  @Input()\n  set selected(selected: RadioComponent) {\n    this._selected = selected;\n    this.value = selected ? selected.value : null;\n    this._checkSelectedRadioButton();\n  }\n\n  get selected() {\n    return this._selected;\n  }\n\n  /**\n   * 'Whether the radio group is disabled or not, this will force all the children radios be disabled or not depending on this value\n   */\n  @Input()\n  set isDisabled(value: boolean) {\n    this._isDisabled = value;\n    this._updateAllRadiosDisableValue();\n    this._markRadiosForCheck();\n  }\n\n  get isDisabled(): boolean {\n    return this._isDisabled;\n  }\n\n  /**\n   * Radio group name, this will force all the children radios to have this name\n   */\n  @Input()\n  set name(value: string) {\n    this._name = value;\n    this._updateAllRadiosName();\n    this._markRadiosForCheck();\n  }\n\n  get name(): string {\n    return this._name;\n  }\n\n  /**\n   * Whether radio is required or not\n   */\n  @Input()\n  set required(value: boolean) {\n    this._required = value;\n    this._markRadiosForCheck();\n  }\n\n  get required(): boolean {\n    return this._required;\n  }\n\n  /**\n   * Whether the radio group should be displayed in column or row\n   */\n  @Input() orientation: RadioGroupOrientation = 'column';\n\n  /**\n   * Legend to label the radio group\n   */\n  @Input() legend: string;\n\n  /**\n   * Message to provide when radio group is in error state\n   */\n  @Input() errorMessage?: string;\n\n  /**\n   * Whether the input group is in error state\n   */\n  @Input() hasError?: boolean;\n\n  /**\n   * Output that emits checked value on change only\n   */\n  @Output() readonly valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n  /**\n   * All children radio components\n   */\n  @ContentChildren(RadioComponent, { descendants: true }) radios;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {};\n\n  ngAfterContentInit() {\n    this._listenForRadioChange();\n    this._updateSelectedRadioFromValue();\n    this._updateAllRadiosDisableValue();\n    this._updateAllRadiosName();\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  /**\n   * @ignore\n   */\n  private _listenForRadioChange() {\n    if (!this.radios) {\n      return;\n    }\n    this.radios.forEach((radio) => {\n      radio?.valueChange.pipe(takeUntil(this.unsubscribe)).subscribe((isSelected) => {\n        if (isSelected) {\n          this.value = radio?.value;\n          this._onChange(this.value);\n          this.valueChange.emit(this._value);\n        }\n      });\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  private _updateAllRadiosDisableValue() {\n    if (!this.radios || Utils.isUndefinedOrNull(this.isDisabled)) {\n      return;\n    }\n    this.radios.forEach((radio) => {\n      if (radio) {\n        radio.isDisabled = this.isDisabled;\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  private _updateAllRadiosName() {\n    if (!this.radios || Utils.isUndefinedOrNull(this.name)) {\n      return;\n    }\n    this.radios.forEach((radio) => {\n      if (radio) {\n        radio.name = this.name;\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  private _checkSelectedRadioButton() {\n    if (this._selected && !this._selected.isChecked) {\n      this._selected.isChecked = true;\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private _markRadiosForCheck() {\n    if (this.radios) {\n      this.radios.forEach((radio) => radio?._markForCheck());\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private _updateSelectedRadioFromValue(): void {\n    // If the value already matches the selected radio, do nothing.\n    const isAlreadySelected = this._selected && this._selected.value === this._value;\n\n    if (this.radios && !isAlreadySelected) {\n      this._selected = null;\n      this.radios.forEach((radio) => {\n        if (!radio) {\n          return;\n        }\n        radio.isChecked = this.value === radio.value;\n        if (radio.isChecked) {\n          this._selected = radio;\n        }\n      });\n      this._markRadiosForCheck();\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  writeValue(value: any): void {\n    this.value = value;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  getOrientationClass(): string {\n    if (this.orientation !== 'row') {\n      return '';\n    }\n    return `${this.radioGroupClassName}--${this.orientation}`;\n  }\n}\n","<fieldset class=\"nj-radio-group\" [ngClass]=\"[getOrientationClass(), hasError ? 'nj-radio-group--has-error' : '']\">\n  <legend class=\"nj-radio-group__legend\">\n    {{legend}}\n    <p *ngIf=\"errorMessage\" class=\"nj-radio-group__error-message\">\n      <nj-icon name=\"warning\"></nj-icon>\n      {{errorMessage}}\n    </p>\n  </legend>\n  <ng-content></ng-content>\n</fieldset>\n","export type TSizeVariants = '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nconst CSSClassesMap =  {\n  '2xs': 'xxs',\n  '2xl': 'xxl',\n};\n\nexport const sizeVariantToCSS = (size: TSizeVariants) => {\n  return CSSClassesMap[size] ?? size;\n};\n","import {CommonModule} from '@angular/common';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  inject,\n  Input,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EngieTemplateDirective} from '../../directives/engie-template.directive';\nimport {sizeVariantToCSS, TSizeVariants} from '../../models/size-variant.model';\nimport {Utils} from '../../utils/utils.util';\nimport {IconButtonComponent} from '../icon-button/icon-button.component';\nimport {IconComponent} from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-search',\n  templateUrl: './search.component.html',\n  styleUrls: ['./search.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => SearchComponent),\n    multi: true\n  }],\n  imports: [\n    CommonModule,\n    IconComponent,\n    IconButtonComponent,\n    FormsModule,\n  ],\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class SearchComponent implements AfterContentInit, ControlValueAccessor {\n  private readonly defaultInputId = Utils.getUID('nj-search-input');\n  private cdr = inject(ChangeDetectorRef);\n  private isDisabledByForm = false;\n  private onChange: ((value: string | null) => void) | null = null;\n\n  protected value: string | null = null;\n  protected onTouched: (() => void) | null = null;\n  protected actionTemplate?: TemplateRef<unknown>;\n\n  @ViewChild('searchInput') private searchInputElement?: ElementRef<HTMLInputElement>;\n\n  /**\n   * Specifies whether the element is disabled or not.\n   */\n  @Input({transform: booleanAttribute}) disabled= false;\n\n  /**\n   * HTML input id\n   */\n  @Input() inputId?: string;\n\n  /**\n   * Placeholder input text.\n   */\n  @Input() placeholder?: string;\n\n  /**\n   * The size of the search component.\n   */\n  @Input() scale?: Extract<TSizeVariants, 'sm' | 'md' | 'lg' | 'xl'>;\n\n  /**\n   * Reset button alternative label for assistive technologies\n   */\n  @Input() altResetButtonLabel?: string;\n\n  /**\n   * Alternative label for assistive technologies\n   */\n  @Input() altLabel?: string;\n\n  /**\n   * Input keyboard keydown events.\n   */\n  @Output() enterKeydown = new EventEmitter<void>();\n\n  @ContentChild(EngieTemplateDirective) protected element?: EngieTemplateDirective;\n\n  ngAfterContentInit() {\n    if (this.element?.selector === 'action') {\n      this.actionTemplate = this.element.templateRef;\n    }\n  }\n\n  protected get classes() {\n    const classes = ['nj-search'];\n    if (this.scale) {\n      classes.push(`nj-search--${sizeVariantToCSS(this.scale)}`);\n    }\n\n    return classes;\n  }\n\n  protected get isDisabled() {\n    return this.disabled || this.isDisabledByForm;\n  }\n\n  protected get finalInputId() {\n    return this.inputId || this.defaultInputId;\n  }\n\n  protected valueChange(value: string)  {\n    this.value = value;\n    this.onChange?.(value);\n  }\n\n  protected onClearValue()  {\n    this.value = null;\n    this.onChange?.(this.value);\n    this.searchInputElement?.nativeElement.focus();\n  }\n\n  //<editor-fold desc=\"ControlValueAccessor implementation\">\n  /**\n   * @ignore\n   */\n  writeValue(value: string): void {\n    if (this.value === value) {\n      return;\n    }\n    this.value = value;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnChange(onChange: (value: string | null) => void): void {\n    this.onChange = onChange;\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnTouched(onTouched: () => void): void {\n    this.onTouched = onTouched;\n  }\n\n  /**\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabledByForm = isDisabled;\n  }\n  //</editor-fold>\n}\n","<div class=\"nj-search__field-wrapper\">\n  <nj-icon name=\"search\" ariaLabel=\"search icon\" class=\"nj-search__icon\"></nj-icon>\n  <label *ngIf=\"altLabel\" [for]=\"finalInputId\" class=\"nj-sr-only\" aria-hidden=\"true\">\n    {{ altLabel }}\n  </label>\n  <input\n    #searchInput\n    type=\"search\"\n    class=\"nj-search__field\"\n    [id]=\"finalInputId\"\n    [ngModel]=\"value\"\n    [attr.placeholder]=\"placeholder\"\n    [disabled]=\"isDisabled\"\n    (focus)=\"onTouched?.()\"\n    (keydown.enter)=\"enterKeydown.next()\"\n    (ngModelChange)=\"valueChange($event)\">\n  <nj-icon-button\n    *ngIf=\"value?.length > 0\"\n    icon=\"cancel\"\n    class=\"nj-search__clear-button\"\n    [label]=\"altResetButtonLabel\"\n    [isDisabled]=\"isDisabled\"\n    (buttonClick)=\"onClearValue()\"></nj-icon-button>\n</div>\n<ng-container *ngIf=\"actionTemplate\" [ngTemplateOutlet]=\"actionTemplate\"></ng-container>\n","import {ChangeDetectorRef, Directive, DoCheck, inject, Input} from '@angular/core';\nimport {ButtonComponent} from '../../button/button.component';\nimport {ButtonSize} from '../../button/button.model';\nimport {SearchComponent} from '../search.component';\n\n@Directive({\n  selector: 'nj-button[njSearchButton]',\n  standalone: true,\n  host: {\n    'class': 'nj-search__button'\n  }\n})\nexport class SearchButtonDirective implements DoCheck {\n  private button = inject(ButtonComponent, {self: true});\n  private search = inject(SearchComponent, {host: true});\n  private cdr = inject(ChangeDetectorRef);\n\n  @Input() isDisabled = false;\n\n  private get searchScaleToButtonScale() {\n    const map: Record<typeof this.search.scale, ButtonSize> = {\n      sm: 'small',\n      md: 'medium',\n      lg: 'large',\n      xl: 'xlarge'\n    };\n    return map[this.search.scale];\n  }\n\n  ngDoCheck() {\n    if (this.searchScaleToButtonScale !== this.button.size) {\n      this.button.size = this.searchScaleToButtonScale ?? 'medium';\n      this.cdr.markForCheck();\n    }\n\n    if (this.search.disabled && (this.search.disabled !== this.button.isDisabled)) {\n      this.button.isDisabled = this.search.disabled;\n      this.cdr.markForCheck();\n    }\n\n    if (!this.search.disabled && (this.isDisabled !== this.button.isDisabled)) {\n      this.button.isDisabled = this.isDisabled;\n      this.cdr.markForCheck();\n    }\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output\n} from '@angular/core';\nimport {IconComponent} from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-segmented-control-button',\n  templateUrl: './segmented-control-button.component.html',\n  styleUrls: ['./segmented-control-button.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CommonModule]\n})\nexport class SegmentedControlButtonComponent {\n\n  /**\n   * Segmented control button value\n   */\n  @Input() value: string;\n\n  /**\n   * Whether button is selected or notre\n   */\n  @Input() isSelected = false;\n\n  /**\n   * Whether toggle is disabled or no\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Whether toggle has custom icon\n   */\n  @Input() hasCustomIcon: boolean;\n\n  /**\n   * Toggle material icon name\n   */\n  @Input() iconName: string;\n\n  /**\n   * Button click output. Emits a MouseEvent\n   */\n  @Output() buttonClick = new EventEmitter<MouseEvent>();\n\n  constructor(private el: ElementRef, private cdr: ChangeDetectorRef) {\n  }\n\n  getClientBoundingRect(): DOMRect {\n    return this.el?.nativeElement?.getBoundingClientRect();\n  }\n\n  setIsSelected(isSelected: boolean) {\n    this.isSelected = isSelected;\n    this.cdr.markForCheck();\n  }\n\n  setIsDisabled(isDisabled: boolean) {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n}\n","<button class=\"nj-segmented-control-btn\" type=\"button\"\n        [ngClass]=\"{'nj-segmented-control-btn--selected': isSelected}\"\n        [attr.aria-pressed]=\"isSelected ? 'true' : 'false'\"\n        [disabled]=\"isDisabled\" [attr.data-value]=\"value\" (click)=\"buttonClick.emit($event)\">\n  <nj-icon *ngIf=\"iconName && !hasCustomIcon\" size=\"inherit\" variant=\"inherit\" class=\"nj-segmented-control-btn__icon\" [name]=\"iconName\"></nj-icon>\n  <span class=\"nj-segmented-control-btn__icon\" *ngIf=\"hasCustomIcon\">\n    <ng-content select=\"[njTagIcon]\"></ng-content>\n  </span>\n  <span>\n    <ng-content></ng-content>\n  </span>\n</button>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Utils } from '../../utils/utils.util';\nimport { SegmentedControlButtonComponent } from '../segmented-control-button/segmented-control-button.component';\nimport { SegmentedControlSize } from './segmented-control.model';\n\n@Component({\n  selector: 'nj-segmented-control',\n  templateUrl: './segmented-control.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [SegmentedControlButtonComponent, CommonModule]\n})\nexport class SegmentedControlComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n  private readonly segmentedControlClass = 'nj-segmented-control';\n\n  /**\n   * @ignore\n   */\n  private unsubscribe: Subject<void> = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {};\n\n  /**\n   * @ignore\n   */\n  private _isDisabled: boolean;\n\n  /**\n   * @ignore\n   */\n  private _value: string;\n\n  /**\n   * @ignore\n   */\n  public segmentedButtons: SegmentedControlButtonComponent[];\n\n  /**\n   * Selected value\n   */\n  @Input()\n  set value(value: string) {\n    this._value = value;\n    this.setActive(value);\n  }\n\n  get value(): string {\n    return this._value;\n  }\n\n  /**\n   * Selected aria label\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Overrides disabled state on all buttons\n   */\n  @Input()\n  set isDisabled(value: boolean) {\n    this._isDisabled = value;\n    this.setButtonsIsDisabled();\n  }\n\n  get isDisabled(): boolean {\n    return this._isDisabled;\n  }\n\n  /**\n   * Segmented Control size\n   */\n  @Input() size: SegmentedControlSize = 'md';\n\n  /**\n   * @ignore\n   */\n  @ContentChildren(SegmentedControlButtonComponent) segmentedButtonsList: QueryList<SegmentedControlButtonComponent>;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('segmentedControl') segmentedControl: ElementRef<HTMLDivElement>;\n\n  /**\n   * Output that emits value change\n   */\n  @Output() valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  ngAfterViewInit() {\n    // A render is being done after view init so setTimeout allows us to delay any attribute modification\n    // in the call stack, so it can be taken account on next render only\n    setTimeout(() => {\n      this.segmentedButtons = this.segmentedButtonsList?.toArray();\n      this.setButtonsIsDisabled();\n      this.initializeClickListener();\n      if (this.value) {\n        this.setActive(this.value);\n      }\n    });\n  }\n\n  private setButtonsIsDisabled() {\n    if (!Utils.isUndefinedOrNull(this.isDisabled) && this.segmentedButtons) {\n      for (const segmentedButton of this.segmentedButtons) {\n        segmentedButton.setIsDisabled(this.isDisabled);\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  /**\n   * @ignore\n   */\n  private initializeClickListener() {\n    if (Utils.isUndefinedOrNull(this.segmentedButtons)) {\n      return;\n    }\n    this.segmentedButtons.forEach((button, value) => {\n      button.buttonClick.pipe(takeUntil(this.unsubscribe)).subscribe((_) => {\n        button.isSelected = true;\n        this.writeValue(button.value);\n      });\n    });\n  }\n\n  private setActive(buttonValue: string) {\n    if (!this.segmentedButtons) {\n      return;\n    }\n    for (const button of this.segmentedButtons) {\n      if (button?.value === buttonValue) {\n        button.setIsSelected(true);\n        const selectedBoundingRect = button.getClientBoundingRect();\n        const segmentedControlBoundingRect = this.segmentedControl.nativeElement.getBoundingClientRect();\n        const segmentedControlStyle = this.segmentedControl?.nativeElement?.style;\n        segmentedControlStyle.setProperty('--nj-sc-btn-selected-width', `${selectedBoundingRect.width}px`);\n        segmentedControlStyle.setProperty(\n          '--nj-sc-btn-selected-right',\n          `${segmentedControlBoundingRect.right - selectedBoundingRect.right}px`\n        );\n      } else {\n        button.setIsSelected(false);\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getSizeClass(): string {\n    if (!this.size || this.size === 'md') {\n      return;\n    }\n    return `${this.segmentedControlClass}--${this.size}`;\n  }\n\n  /**\n   * @ignore\n   */\n  writeValue(value: any): void {\n    if (value === this.value) {\n      return;\n    }\n    this.setActive(value);\n    this.value = value;\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * @ignore\n   */\n  setDisabledState?(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n}\n","<div class=\"nj-segmented-control\" role=\"group\" [attr.aria-label]=\"ariaLabel\" [ngClass]=\"getSizeClass()\"\n     #segmentedControl>\n  <ng-content></ng-content>\n</div>\n","import {CommonModule, DOCUMENT} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  forwardRef,\n  Inject,\n  Input,\n  OnDestroy,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {finalize, race, Subject, takeUntil} from 'rxjs';\nimport {selectAnimations} from '../../shared/animations';\nimport {CustomLabelDirective} from '../custom-label/custom-label.directive';\nimport {FormFieldDirective} from '../form-field/form-field.directive';\nimport {FormItemComponent} from '../form-item/form-item.component';\nimport {ListGroupComponent} from '../list-group/list-group.component';\nimport {ListItemComponent} from '../list-item/list-item.component';\nimport {SelectCustomLabelContext} from './select-custom-label-context.model';\n\n@Component({\n  selector: 'nj-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SelectComponent),\n      multi: true,\n    },\n  ],\n  animations: [selectAnimations.transformList],\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [ListGroupComponent, FormItemComponent, FormFieldDirective, CommonModule]\n})\nexport class SelectComponent\n  extends FormItemComponent\n  implements AfterViewInit, ControlValueAccessor, OnDestroy {\n  private static readonly ESCAPE_CODE = 'Escape';\n  private static readonly ENTER_CODE = 'Enter';\n  private static readonly UP_CODE = 'ArrowUp';\n  private static readonly DOWN_CODE = 'ArrowDown';\n  /*\n    Regex matching every alpha-numeric characters.\n\n    \\d : every digits\n    \\p{Letter} : every letters in the latin alphabet including letters with diacritics\n\n    The \"u\" flag enables unicode mode required to use `\\p{Letter}`.\n\n    See :\n    - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes#general_categories\n    - https://unicode.org/reports/tr18/#General_Category_Property\n  */\n  private static readonly ALPHA_NUMERIC_REGEX = /^[\\d\\p{Letter}]$/u;\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {\n  };\n\n  /**\n   * Notifier used to stop items click event subscription.\n   * @ignore\n   */\n  private unsubscribe = new Subject<void>();\n\n  private childOptionsChange = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  isOpen = false;\n\n  /**\n   * @ignore\n   */\n  selectedValue = '';\n\n  /**\n   * @ignore\n   */\n  selectedIndex = -1;\n\n  @Input() iconName = 'keyboard_arrow_down';\n\n  /**\n   * Label used for accessibility related attributes on button and list.\n   * Should be the same value (text only) as the `<label>` element\n   */\n  @Input() fieldLabel: string;\n\n  /**\n   * Instructions on how to navigate the list. It is append after the input label.\n   * @example \"Use up and down arrows and Enter to select a value\"\n   */\n  @Input() listNavigationLabel: string;\n\n  /**\n   * Button default label when no value is selected. It is append after the input label.\n   * @example \"Select a value\"\n   */\n  @Input() buttonDefaultValueLabel: string;\n\n  /**\n   * Trigger button to toggle the list\n   * @ignore\n   */\n  @ViewChild('button') buttonEl: ElementRef<HTMLButtonElement>;\n\n  @ViewChild('customLabelEl') protected customLabelEl: ElementRef<HTMLElement>;\n\n  /**\n   * List containing options\n   * @ignore\n   */\n  @ViewChild(ListGroupComponent) listEl: ListGroupComponent;\n\n  /**\n   * Label to display instead of raw text value\n   * @ignore\n   * @example\n   * <ng-template njCustomLabel let-value let-index=\"index\">\n   *  Value: {{value}} - Index: {{index}}\n   * </ng-template>\n   *\n   * @example\n   * <span *njCustomLabel=\"let value;let index=index\">\n   *  Value: {{value}} - Index: {{index}}\n   * </span>\n   */\n  @ContentChild(CustomLabelDirective) protected customLabel?: CustomLabelDirective<SelectCustomLabelContext>;\n\n  /**\n   * Option items\n   * @ignore\n   */\n  @ContentChildren(ListItemComponent, {descendants: true})\n  selectOptions: QueryList<ListItemComponent>;\n\n  constructor(\n    private readonly element: ElementRef<HTMLElement>,\n    private readonly cdr: ChangeDetectorRef,\n    @Inject(DOCUMENT) private document\n  ) {\n    super();\n  }\n\n  ngAfterViewInit() {\n    setTimeout(() => {\n      this.setInputsAndListenersOnOptions();\n\n      this.selectOptions?.changes\n        .pipe(takeUntil(this.unsubscribe))\n        .subscribe(() => {\n          setTimeout(() => {\n            this.setInputsAndListenersOnOptions();\n          });\n        });\n    });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n    this.childOptionsChange.complete();\n  }\n\n  setInputsAndListenersOnOptions() {\n    this.childOptionsChange.next();\n    const unsubscribeCond$ = race(this.unsubscribe, this.childOptionsChange);\n\n    this.selectOptions?.forEach((item) => {\n      item.role = 'option';\n\n      if (this.selectedValue?.trim() !== '') {\n        item.updateSelected(this.selectedValue === item.getValue());\n      }\n\n\n      item.itemClick\n        .pipe(\n          takeUntil(unsubscribeCond$),\n        )\n        .subscribe(() => {\n          const value = item.getValue();\n          this.writeValue(value);\n          this._onChange(value);\n          this.closeList();\n\n          setTimeout(() => {\n            this.buttonEl?.nativeElement.focus();\n          });\n        });\n    });\n\n    // Get selected index on mount based on current value\n    this.selectedIndex = this.selectOptions?.toArray().findIndex(opt => {\n      return opt.getValue() === this.selectedValue;\n    });\n\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  getAdditionalClass(): string {\n    const classes = ['nj-form-item--select', 'nj-form-item--custom-list'];\n    if (this.isOpen) {\n      classes.push('nj-form-item--open');\n    }\n\n    if (this.customLabel?.templateRef) {\n      classes.push('nj-form-item--custom-label');\n    }\n    return classes.join(' ');\n  }\n\n  getSubscriptId(): string {\n    return `${this.inputId}-subscript`;\n  }\n\n  getInstructionsId(): string {\n    return `${this.inputId}-instructions`;\n  }\n\n  getDescriptionId(): string {\n    return `${this.getSubscriptId()} ${this.getInstructionsId()}`;\n  }\n\n  /**\n   * Get index of the selected value\n   */\n  private indexForValue(value: string): number {\n    return this.selectOptions\n      ?.toArray()\n      .findIndex((item) => item.getValue() === value);\n  }\n\n  private openList() {\n    this.isOpen = true;\n    this.focusedIndex = this.selectedIndex;\n\n    setTimeout(() => {\n      if (this.selectedIndex === -1) {\n        // Focus the `ul` element\n        this.listEl?.rootEl.nativeElement.focus();\n        // The scrolling element is not the `ul` node but the `nj-list-group`\n        this.listEl?.element.nativeElement.scrollTo({top: 0});\n      }\n    });\n  }\n\n  private closeList() {\n    this.isOpen = false;\n  }\n\n  toggleIsOpen() {\n    if (this.isOpen) {\n      this.closeList();\n    } else {\n      this.openList();\n    }\n  }\n\n  /**\n   * Index of the currently focused option.\n   */\n  private get focusedIndex(): number {\n    return this.selectOptions\n      ?.toArray()\n      .findIndex(\n        (item) => this.document.activeElement === item.el.nativeElement\n      );\n  }\n\n  private set focusedIndex(value: number) {\n    this.selectOptions?.forEach((el, i) => {\n      el.ariaSelected = i === value;\n    });\n\n    setTimeout(() => {\n      if (value !== -1) {\n        this.selectOptions?.get(value).el.nativeElement.focus();\n      }\n    });\n  }\n\n  handleListKeydown(e: KeyboardEvent) {\n    // Escape key closes the list and focuses the button\n    if (e.code === SelectComponent.ESCAPE_CODE) {\n      this.closeList();\n      setTimeout(() => {\n        this.buttonEl?.nativeElement.focus();\n      });\n    }\n\n    // Navigate between options and set `focusedIndex`\n    if (e.code === SelectComponent.UP_CODE) {\n      e.preventDefault();\n      // Dont loop back to the end of the list\n      if (this.focusedIndex > 0) {\n        this.focusedIndex -= 1;\n      }\n    }\n\n    if (e.code === SelectComponent.DOWN_CODE) {\n      e.preventDefault();\n      // Dont loop back to the beginning of the list\n      if (this.focusedIndex < this.selectOptions?.length - 1) {\n        this.focusedIndex += 1;\n      }\n    }\n\n    // Select the current `focusedIndex` option\n    if (e.code === SelectComponent.ENTER_CODE) {\n      e.preventDefault();\n      if (this.focusedIndex !== -1) {\n        const value = this.selectOptions?.get(this.focusedIndex).getValue();\n        this.writeValue(value);\n        this._onChange(value);\n      }\n      this.closeList();\n\n      setTimeout(() => {\n        this.buttonEl?.nativeElement.focus();\n      });\n    }\n\n    // Jump to first option matching first letter\n    if (SelectComponent.ALPHA_NUMERIC_REGEX.test(e.key)) {\n      const goToIndex = this.selectOptions\n        ?.toArray()\n        .findIndex(\n          (item) => item.getValue()[0].toLowerCase() === e.key.toLowerCase()\n        );\n\n      if (goToIndex !== -1) {\n        this.focusedIndex = goToIndex;\n      }\n    }\n  }\n\n  handleFocusout(e: FocusEvent) {\n    if (!this.element.nativeElement?.contains(e.relatedTarget as Node)) {\n      this.closeList();\n\n      if (this._onTouched) {\n        this._onTouched();\n      }\n    }\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    if (!this.selectedValue) {\n      return;\n    }\n    this.isDisabled = isDisabled;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: string): void {\n    this.selectedValue = value;\n    this.selectedIndex = this.indexForValue(value);\n    this.selectOptions?.forEach((item) => {\n      item.updateSelected(item.getValue() === value);\n    });\n    this.cdr.markForCheck();\n  }\n\n  protected get customLabelContext(): SelectCustomLabelContext {\n    const value = this.selectedValue;\n    const index = this.selectedIndex;\n    return {$implicit: value, value, index};\n  }\n\n  /**\n   * Label (≠ value) of selected option\n   * @ignore\n   */\n  get selectedLabel(): string {\n    return this.selectOptions?.get(this.selectedIndex)?.getLabel() ?? '';\n  }\n\n  /**\n   * Aria-label for the trigger button element.\n   * @ignore\n   */\n  get buttonLabel(): string {\n    return `${this.fieldLabel} - ${\n      this.customLabelEl?.nativeElement.innerText || this.selectedValue || this.buttonDefaultValueLabel\n    }`;\n  }\n}\n","<nj-form-item\n  [hasError]=\"hasError\"\n  [hasSuccess]=\"hasSuccess\"\n  [hasHint]=\"hasHint\"\n  [isDisabled]=\"isDisabled\"\n  [hasCustomIcon]=\"hasCustomIcon\"\n  [isFloatingLabel]=\"isFloatingLabel\"\n  [iconName]=\"iconName\"\n  [size]=\"size\"\n  [isSelect]=\"true\"\n  [additionalClass]=\"getAdditionalClass()\"\n  [inputId]=\"inputId\"\n  (focusout)=\"handleFocusout($event)\"\n>\n  <input\n    type=\"text\"\n    readonly\n    [value]=\"selectedLabel\"\n    [attr.id]=\"inputId\"\n    [disabled]=\"isDisabled\"\n    tabindex=\"-1\"\n    aria-hidden=\"true\"\n    njFormField\n  />\n  <ng-content njFormLabel select=\"[njFormLabel]\"></ng-content>\n  <ng-content njFormSubscript select=\"[njFormSubscript]\"></ng-content>\n  <ng-container njFormAdditionalContent>\n    <div\n      *ngIf=\"selectedValue && customLabel?.templateRef\"\n      #customLabelEl\n      class=\"nj-form-item__custom-label\"\n      aria-hidden=\"true\"\n      njFormField>\n      <ng-container [ngTemplateOutlet]=\"customLabel.templateRef\"\n                    [ngTemplateOutletContext]=\"customLabelContext\"></ng-container>\n    </div>\n    <p [id]=\"getInstructionsId()\" hidden>{{ listNavigationLabel }}</p>\n    <button\n      #button\n      type=\"button\"\n      class=\"nj-form-item__custom-list-button\"\n      aria-haspopup=\"listbox\"\n      [attr.aria-expanded]=\"isOpen\"\n      role=\"combobox\"\n      [attr.aria-label]=\"buttonLabel\"\n      [attr.tabindex]=\"isOpen ? -1 : null\"\n      [attr.aria-describedby]=\"getDescriptionId()\"\n      (click)=\"toggleIsOpen()\"\n    ></button>\n    <nj-list-group\n      class=\"nj-form-item__list nj-form-item__list--no-animate\"\n      [hidden]=\"!isOpen\"\n      [@transformList]=\"isOpen ? 'open': 'void'\"\n      [isDense]=\"true\"\n      [hasBorder]=\"false\"\n      [isClickable]=\"true\"\n      [isCustomSelectList]=\"true\"\n      tabindex=\"-1\"\n      [ariaLabel]=\"fieldLabel\"\n      (keydown)=\"handleListKeydown($event)\"\n    >\n      <ng-content select=\"[njSelectOptions]\"></ng-content>\n    </nj-list-group>\n  </ng-container>\n</nj-form-item>\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidebarFooter]',\n  standalone: true\n})\nexport class SidebarFooterDirective {\n  templateRef = inject(TemplateRef<unknown>);\n}\n","import {ChangeDetectorRef, Directive, DoCheck, Host, inject, Self} from '@angular/core';\nimport {ListItemComponent} from '../../list-item/list-item.component';\nimport {SidebarComponent} from '../sidebar.component';\n\n@Directive({\n  selector: '[njSidebarItem]',\n  standalone: true\n})\nexport class SidebarItemDirective implements DoCheck {\n  private isCurrentlyFolded: boolean;\n\n  @Host()\n  private sidebar = inject(SidebarComponent);\n\n  @Self()\n  private listItem = inject(ListItemComponent);\n\n  private cdr = inject(ChangeDetectorRef);\n\n  constructor() {\n    this.listItem.hasRightBorder = true;\n    this.updateListItemFoldedState();\n  }\n\n  ngDoCheck() {\n    if (this.isCurrentlyFolded !== this.sidebar.isFolded) {\n      this.updateListItemFoldedState();\n    }\n  }\n\n  private updateListItemFoldedState() {\n    this.isCurrentlyFolded = this.sidebar.isFolded;\n    this.listItem.isIconOnly = this.isCurrentlyFolded;\n    this.cdr.markForCheck();\n  }\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\nimport {SidebarLogoContext} from '../interfaces/sidebar-logo.context';\n\n@Directive({\n  selector: '[njSidebarLogo]',\n  standalone: true\n})\nexport class SidebarLogoDirective {\n  templateRef = inject(TemplateRef<SidebarLogoContext>);\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  ContentChildren,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ListGroupComponent } from '../list-group/list-group.component';\nimport { ListItemComponent } from '../list-item/list-item.component';\nimport { SidebarFooterDirective } from './directives/sidebar-footer.directive';\nimport { SidebarItemDirective } from './directives/sidebar-item.directive';\nimport { SidebarLogoDirective } from './directives/sidebar-logo.directive';\n\n@Component({\n  selector: 'nj-sidebar',\n  templateUrl: './sidebar.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [\n    CommonModule,\n    ListGroupComponent,\n    ListItemComponent,\n    SidebarFooterDirective,\n    SidebarItemDirective,\n    SidebarLogoDirective\n  ]\n})\nexport class SidebarComponent {\n  @HostBinding('class')\n  private staticClass = 'nj-sidebar';\n\n  /**\n   * Whether the sidebar should be folded\n   */\n  @HostBinding('class.nj-sidebar--folded')\n  @Input({ transform: booleanAttribute })\n  isFolded = false;\n\n  /**\n   * Whether the sidebar should have a fold list item\n   */\n  @Input({ transform: booleanAttribute })\n  hasFoldItem = true;\n\n  /**\n   * Fold list item label\n   */\n  @Input()\n  foldItemLabel = 'Fold';\n\n  /**\n   * Emits an event when fold list item is clicked\n   */\n  @Output()\n  foldItemClicked = new EventEmitter<MouseEvent>();\n\n  @ContentChild(SidebarLogoDirective) protected logo?: SidebarLogoDirective;\n\n  @ContentChildren(SidebarFooterDirective) protected footerElements?: QueryList<SidebarFooterDirective>;\n}\n","<div class=\"nj-sidebar__brand\" *ngIf=\"logo?.templateRef as templateRef\">\n  <ng-container [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{isFolded}\"></ng-container>\n</div>\n<nav class=\"nj-sidebar__navigation\">\n  <nj-list-group [isDense]=\"true\" [hasBorder]=\"false\">\n    <ng-content></ng-content>\n  </nj-list-group>\n</nav>\n<nav *ngIf=\"footerElements?.length\" class=\"nj-sidebar__navigation nj-sidebar__navigation--footer\">\n  <nj-list-group [isDense]=\"true\" [hasBorder]=\"false\">\n    <ng-container *ngFor=\"let footerElement of footerElements\" [ngTemplateOutlet]=\"footerElement.templateRef\">\n    </ng-container>\n  </nj-list-group>\n</nav>\n<nj-list-group *ngIf=\"hasFoldItem\" class=\"nj-sidebar__collapse\" [isDense]=\"true\" [hasBorder]=\"false\">\n  <li nj-list-item njSidebarItem class=\"nj-sidebar__fold-btn\" type=\"button\" iconName=\"chevron_left\" (itemClick)=\"foldItemClicked.next($event)\">\n    {{foldItemLabel}}\n  </li>\n</nj-list-group>\n","import {booleanAttribute, Directive, HostBinding, Input} from '@angular/core';\n\n@Directive({\n  selector: '[njSidebarContent]',\n  standalone: true\n})\nexport class SidebarContentDirective {\n  @HostBinding('class')\n  private staticClass = 'nj-sidebar-content';\n\n  @HostBinding('class.nj-sidebar-content--nopush')\n  @Input({transform: booleanAttribute})\n  shouldBeCovered = false;\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidepanelFooter]',\n  standalone: true\n})\nexport class SidepanelFooterDirective {\n  templateRef = inject(TemplateRef<unknown>);\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidepanelHeader]',\n  standalone: true\n})\nexport class SidepanelHeaderDirective {\n  templateRef = inject(TemplateRef<unknown>);\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { SidepanelFooterDirective } from './directives/sidepanel-footer.directive';\nimport { SidepanelHeaderDirective } from './directives/sidepanel-header.directive';\n\n@Component({\n  selector: 'nj-sidepanel',\n  templateUrl: './sidepanel.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule, IconButtonComponent, SidepanelFooterDirective, SidepanelHeaderDirective]\n})\nexport class SidepanelComponent {\n  @HostBinding('class') private staticClass = 'nj-sidepanel';\n\n  @ContentChild(SidepanelHeaderDirective) protected header?: SidepanelHeaderDirective;\n  @ContentChild(SidepanelFooterDirective) protected footer?: SidepanelFooterDirective;\n}\n","<div class=\"nj-sidepanel__header\" *ngIf=\"header?.templateRef as templateRef\">\n  <ng-container [ngTemplateOutlet]=\"templateRef\"></ng-container>\n</div>\n<div class=\"nj-sidepanel__content\">\n  <ng-content></ng-content>\n</div>\n<div class=\"nj-sidepanel__footer\" *ngIf=\"footer?.templateRef as templateRef\">\n  <ng-container [ngTemplateOutlet]=\"templateRef\"></ng-container>\n</div>\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidepanelHeaderAction]',\n  standalone: true\n})\nexport class SidepanelHeaderActionDirective {\n  templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n}\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport {IconButtonComponent} from '../icon-button/icon-button.component';\nimport {SidepanelHeaderActionDirective} from './directives/sidepanel-header-action.directive';\n\n@Component({\n  selector: 'nj-sidepanel-header',\n  templateUrl: './sidepanel-header.component.html',\n  styleUrls: ['./sidepanel-header.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [SidepanelHeaderActionDirective, IconButtonComponent, CommonModule]\n})\nexport class SidepanelHeaderComponent {\n  @HostBinding('class') private staticClass = 'nj-sidepanel-header';\n\n\n  /**\n   * Title displayed in the header\n   */\n  @Input() title?: string;\n\n\n  /**\n   * Whether it should display a close icon in the header\n   */\n  @Input() hasCloseIcon = true;\n\n  /**\n   * Emit event when clicking the close icon\n   */\n  @Output() closeIconClicked = new EventEmitter<MouseEvent>();\n\n  @ContentChildren(SidepanelHeaderActionDirective) protected actions: QueryList<SidepanelHeaderActionDirective>;\n\n  protected get shouldDisplayHeaderActions() {\n    return this.hasCloseIcon || this.actions.length;\n  }\n}\n","<span *ngIf=\"title; else noTitle\" class=\"nj-sidepanel-header__title\">{{title}}</span>\n<div class=\"nj-sidepanel-header__actions\" *ngIf=\"shouldDisplayHeaderActions\">\n  <ng-container *ngFor=\"let action of actions\" [ngTemplateOutlet]=\"action.templateRef\"></ng-container>\n  <nj-icon-button *ngIf=\"hasCloseIcon\" variant=\"tertiary\" icon=\"close\" (buttonClick)=\"closeIconClicked.emit($event)\"></nj-icon-button>\n</div>\n\n<ng-template #noTitle>\n  <div class=\"nj-sidepanel-header__custom-title\">\n    <ng-content></ng-content>\n  </div>\n</ng-template>\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidepanelLayoutPanel]',\n  standalone: true\n})\nexport class SidepanelLayoutPanelDirective {\n  templateRef = inject(TemplateRef<unknown>);\n}\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\nimport {njSemanticMotionEasingFastOutSlowIn} from '@engie-group/fluid-design-tokens';\n\nexport const defaultParams = {\n  params: {animationDuration: '100ms'},\n};\n\nexport const sidePanelLayoutAnimation: {\n  readonly panelSlideInAndOut: AnimationTriggerMetadata;\n  readonly panelOpened: AnimationTriggerMetadata;\n} = {\n  panelSlideInAndOut: trigger('panelSlideInAndOut', [\n    state('void', style({opacity: 0.9, transform: 'translateX(100%)'})),\n    state('*', style({opacity: 1, transform: 'none'})),\n    transition(\n      ':enter, :leave',\n      animate(`{{animationDuration}} ${njSemanticMotionEasingFastOutSlowIn}`),\n      defaultParams,\n    ),\n  ]),\n  panelOpened: trigger('panelOpened', [\n    state('void', style({paddingRight: 0})),\n    state('false', style({paddingRight: 0})),\n    state('true', style({paddingRight: 'var(--nj-sidepanel-final-width)'})),\n    transition(\n      '* => *',\n      animate(`{{animationDuration}} ${njSemanticMotionEasingFastOutSlowIn}`),\n      defaultParams,\n    ),\n  ]),\n};\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  EventEmitter,\n  HostBinding,\n  inject,\n  Input,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ButtonComponent } from '../button/button.component';\nimport { SidepanelLayoutPanelDirective } from './directives/sidepanel-layout-panel.directive';\nimport { sidePanelLayoutAnimation } from './sidepanel-layout.animations';\n\n@Component({\n  selector: 'nj-sidepanel-layout',\n  templateUrl: 'sidepanel-layout.component.html',\n  animations: [sidePanelLayoutAnimation.panelSlideInAndOut, sidePanelLayoutAnimation.panelOpened],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [ButtonComponent, SidepanelLayoutPanelDirective, CommonModule]\n})\nexport class SidepanelLayoutComponent {\n  private cdr = inject(ChangeDetectorRef);\n\n  protected _isPanelDisplayed = true;\n  protected _animationParams = {};\n\n  @HostBinding('class') private staticClass = 'nj-sidepanel-layout';\n\n  /**\n   * Whether the panel animation should be disabled\n   */\n  @Input()\n  set isAnimationDisabled(value: boolean) {\n    this._animationParams = value && { animationDuration: '0ms' };\n  }\n\n  /**\n   * Whether the panel should be displayed beside or over the content\n   */\n  @HostBinding('class.nj-sidepanel-layout--over-content')\n  @Input()\n  isOverContent = false;\n\n  /**\n   * Emit when sidepanel visibility state change\n   */\n  @Output() sidepanelVisibilityChange = new EventEmitter<boolean>();\n\n  @ContentChild(SidepanelLayoutPanelDirective) protected panel?: SidepanelLayoutPanelDirective;\n\n  /**\n   * Show sidepanel\n   */\n  showPanel() {\n    this.changePanelVisibility(true);\n  }\n\n  /**\n   * Hide sidepanel\n   */\n  hidePanel() {\n    this.changePanelVisibility(false);\n  }\n\n  private changePanelVisibility(isPanelDisplayed: boolean) {\n    if (isPanelDisplayed === this._isPanelDisplayed) {\n      return;\n    }\n    this._isPanelDisplayed = isPanelDisplayed;\n    this.sidepanelVisibilityChange.emit(isPanelDisplayed);\n    this.cdr.markForCheck();\n  }\n}\n","  <div [@panelOpened]=\"{value: !isOverContent && _isPanelDisplayed, params: _animationParams}\" class=\"nj-sidepanel-layout__content\">\n    <ng-content></ng-content>\n  </div>\n  <div [@panelSlideInAndOut]=\"{value: '*', params: _animationParams}\" *ngIf=\"_isPanelDisplayed && panel.templateRef\" class=\"nj-sidepanel-layout__sidepanel\">\n    <ng-container [ngTemplateOutlet]=\"panel.templateRef\"></ng-container>\n  </div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'nj-skeleton-container',\n  templateUrl: './skeleton-container.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true\n})\nexport class SkeletonContainerComponent {\n  /**\n   * Skeleton label (read by screen readers).\n   * Defaults to \"Content is loading\"\n   */\n  @Input() screenReaderLabel?: string = 'Content is loading';\n\n  constructor() {}\n}\n","<div class=\"nj-skeleton-container\">\n  <span class=\"nj-sr-only\">{{screenReaderLabel}}</span>\n  <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkeletonFontSizes } from './skeleton.model';\n\n@Component({\n  selector: 'nj-skeleton-rectangle',\n  templateUrl: './skeleton-rectangle.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SkeletonRectangleComponent {\n  /**\n   * @ignore\n   */\n  private skeletonClassName = 'nj-skeleton';\n\n  /**\n   * Rectangle skeleton height\n   */\n  @Input() height?: string;\n\n  /**\n   * Rectangle skeleton width\n   */\n  @Input() width?: string;\n\n  /**\n   * Rectangle skeleton size (based on font sizes)\n   */\n  @Input() size?: SkeletonFontSizes;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getSkeletonSizeClass(): string {\n    if (!this.size) {\n      return '';\n    }\n    return `${this.skeletonClassName}--${this.size}`;\n  }\n}\n","<div aria-hidden=\"true\" class=\"nj-skeleton nj-skeleton--rectangle\" [style.height]=\"height\" [style.width]=\"width\" [ngClass]=\"[getSkeletonSizeClass()]\"></div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AvatarSize } from '../avatar/avatar.model';\n\n@Component({\n  selector: 'nj-skeleton-circle',\n  templateUrl: './skeleton-circle.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SkeletonCircleComponent {\n  /**\n   * @ignore\n   */\n  private skeletonClassName = 'nj-skeleton';\n\n  /**\n   * Circle skeleton height\n   */\n  @Input() height?: string;\n\n  /**\n   * Circle skeleton width\n   */\n  @Input() width?: string;\n\n  /**\n   * Circle skeleton size (based on avatar sizes)\n   */\n  @Input() variant?: AvatarSize;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getSkeletonVariantClass(): string {\n    if (!this.variant) {\n      return '';\n    }\n    return `${this.skeletonClassName}--${this.variant}`;\n  }\n}\n","<div aria-hidden=\"true\" class=\"nj-skeleton nj-skeleton--circle\" [style.height]=\"height\" [style.width]=\"width\" [ngClass]=\"[getSkeletonVariantClass()]\"></div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-skeleton-area',\n  templateUrl: './skeleton-area.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CommonModule]\n})\nexport class SkeletonAreaComponent {\n  /**\n   * Area skeleton height\n   */\n  @Input() height?: string;\n\n  /**\n   * Area skeleton width\n   */\n  @Input() width?: string;\n\n  /**\n   * Area skeleton material icon\n   */\n  @Input() icon: string = 'image';\n\n  /**\n   * Whether Area skeleton has custom icon\n   */\n  @Input() hasCustomIcon = false;\n\n  constructor() {}\n}\n","<div aria-hidden=\"true\" class=\"nj-skeleton nj-skeleton--area\" [style.height]=\"height\" [style.width]=\"width\">\n  <nj-icon class=\"nj-skeleton__icon\" *ngIf=\"!hasCustomIcon\" [name]=\"icon\" size=\"xl\" variant=\"inherit\"></nj-icon>\n  <span *ngIf=\"hasCustomIcon\" class=\"nj-skeleton__icon\">\n    <ng-content></ng-content>\n  </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  forwardRef,\n  inject,\n  Input,\n  OnDestroy,\n  ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\nimport { Utils } from '../../utils/utils.util';\n\n@Component({\n  selector: 'nj-slider',\n  templateUrl: './slider.component.html',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SliderComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SliderComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n  private _initialValue: number;\n\n  private _currentValue: number;\n  private _max = 100;\n  private _min = 0;\n  private inputValue$ = new BehaviorSubject<number>(this._min);\n\n  private unsubscribe = new Subject<void>();\n  private cdr = inject(ChangeDetectorRef);\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  protected _onTouched = (): void => {};\n\n  /**\n   * Slider Id, required if label is set\n   */\n  @Input() sliderId?: string;\n\n  /**\n   * Input name\n   */\n  @Input() name?: string;\n\n  /**\n   * Slider label\n   */\n  @Input() label?: string;\n\n  /**\n   * Minimum value\n   */\n  @Input()\n  set min(min: number) {\n    if (!Utils.isUndefinedOrNull(min)) {\n      this._min = min;\n      this.updateInputCssPropWithValue(this._currentValue);\n    }\n  }\n\n  get min(): number {\n    return this._min;\n  }\n\n  /**\n   * Maximum value\n   */\n  @Input()\n  set max(max: number) {\n    if (!Utils.isUndefinedOrNull(max)) {\n      this._max = max;\n      this.updateInputCssPropWithValue(this._currentValue);\n    }\n  }\n\n  get max(): number {\n    return this._max;\n  }\n\n  /**\n   * Input value\n   */\n  @Input()\n  set value(val: number) {\n    if (!Utils.isUndefinedOrNull(val)) {\n      this._initialValue = val;\n    } else {\n      this._initialValue = this._min;\n    }\n    this._currentValue = this._initialValue;\n    this.inputValue$.next(this._currentValue);\n    this.cdr.markForCheck();\n  }\n\n  get value(): number {\n    return this._initialValue;\n  }\n\n  /**\n   * Slider input step\n   */\n  @Input() step: number = 0.1;\n\n  /**\n   * Whether input is disabled or not\n   */\n  @Input() isDisabled = false;\n\n  @ViewChild('input') input: ElementRef;\n\n  ngAfterViewInit() {\n    this.inputValue$.pipe(takeUntil(this.unsubscribe)).subscribe((val) => {\n      this.updateInputCssPropWithValue(val);\n    });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: number): void {\n    this.value = value;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  updateValue(event: Event) {\n    // @ts-ignore\n    const newVal = event?.target?.value;\n    if (newVal !== this._currentValue) {\n      this._currentValue = newVal;\n      this.writeValue(newVal);\n      this._onChange(newVal);\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  updateInputCssPropWithValue(value: number) {\n    if (!this.input?.nativeElement || Utils.isUndefinedOrNull(value)) {\n      return;\n    }\n    let percentage = (100 * (value - this.min)) / (this.max - this.min);\n    percentage = isNaN(percentage) ? 0 : percentage;\n    this.input.nativeElement.style.setProperty('--nj-slider-track-position', `${percentage}% 100%`);\n  }\n}\n","<div class=\"nj-slider\" [ngClass]=\"{'nj-slider--disabled': isDisabled}\">\n  <label *ngIf=\"label\" [attr.for]=\"sliderId\">{{label}}</label>\n  <input #input\n         [style]=\"\"\n         [min]=\"min\"\n         [max]=\"max\"\n         [step]=\"step ? step : 0.1\"\n         type=\"range\"\n         [attr.id]=\"sliderId\"\n         [name]=\"step ? name : ''\"\n         [value]=\"value\"\n         (input)=\"updateValue($event)\"\n         (focus)=\"_onTouched?.()\"\n         [disabled]=\"isDisabled\"/>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {SwitchValue, SwitchValues, SwitchVariant} from './switch.model';\n\n@Component({\n  selector: 'nj-switch',\n  templateUrl: './switch.component.html',\n  styleUrls: ['./switch.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SwitchComponent {\n\n  /**\n   * @ignore\n   */\n  private readonly switchClassName = 'nj-switch';\n\n  /**\n   * Switch variant theme\n   */\n  @Input() variant: SwitchVariant = 'primary';\n\n  /**\n   * Whether switch is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Values that will be emitted by the switch on toggle\n   */\n  @Input() values: SwitchValues;\n\n  /**\n   * Whether switch is checked or not\n   */\n  @Input() isChecked = false;\n\n  /**\n   * id of the input inside of the switch\n   */\n  @Input() id: string;\n\n  /**\n   * name of the input inside of the switch\n   */\n  @Input() name: string;\n\n  /**\n   * Aria label, for accessibility reasons\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Aria labelled by, for accessibility reasons\n   */\n  @Input() ariaLabelledBy: string;\n\n  /**\n   * title of the input inside of the switch\n   */\n  @Input() title: string;\n\n  /**\n   * Output that emits a SwitchValue when switch value change occurs\n   */\n  @Output() valueChange: EventEmitter<SwitchValue> = new EventEmitter<SwitchValue>();\n\n  /**\n   * @ignore\n   */\n  @ViewChild('input')\n  private _inputElement: ElementRef<HTMLInputElement>;\n\n  constructor() {\n  }\n\n  /**\n   * @ignore\n   */\n  getButtonMainClass(): string {\n    if (!this.variant) {\n      return '';\n    }\n    return `${this.switchClassName}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  _onChangeEvent(event: Event) {\n    event.stopPropagation();\n    if (this._inputElement?.nativeElement) {\n      this.isChecked = this._inputElement.nativeElement.checked;\n      if (this.values) {\n        this.valueChange.emit(this.isChecked ? this.values.right : this.values.left);\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  _onInputClick(event: Event) {\n    // We have to stop propagation for click events on the visually hidden input element.\n    // By default, when a user clicks on a label element, a generated click event will be\n    // dispatched on the associated input element. Since we are using a label element as our\n    // root container, the click event on the `slide-toggle` will be executed twice.\n    // The real click event will bubble up, and the generated click event also tries to bubble up.\n    // This will lead to multiple click events.\n    // Preventing bubbling for the second event will solve that issue.\n    event.stopPropagation();\n  }\n}\n","<div class=\"nj-switch\" [ngClass]=\"getButtonMainClass()\">\n  <label>\n    <input type=\"checkbox\" #input\n           [disabled]=\"isDisabled\"\n           [checked]=\"isChecked\"\n           [title]=\"title\"\n           [name]=\"name\"\n           [attr.id]=\"id\"\n           [attr.aria-label]=\"ariaLabel\"\n           [attr.aria-labelledby]=\"ariaLabelledBy\"\n           (change)=\"_onChangeEvent($event)\"\n           (click)=\"_onInputClick($event)\">\n    <span class=\"nj-switch__slider\">\n      <span class=\"nj-switch__slider-left\">\n        <ng-content select=\"[left-label]\"></ng-content>\n      </span>\n      <span class=\"nj-switch__slider-right\">\n        <ng-content select=\"[right-label]\"></ng-content>\n      </span>\n    </span>\n  </label>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {BadgeComponent} from '../badge/badge.component';\n\ntype TBadgeOptions = Omit<BadgeComponent, 'size' | 'iconName' >;\n\n@Component({\n  selector: 'nj-tab',\n  templateUrl: './tab.component.html',\n  styleUrls: ['./tab.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule, BadgeComponent]\n})\nexport class TabComponent {\n\n  /**\n   * Whether tab is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Aria controls, for accessibility reasons\n   */\n  @Input() ariaControls: string;\n\n  /**\n   * Id of the tab\n   */\n  @Input() id: string;\n\n  /**\n   * Id of the content\n   */\n  @Input() tabContentId: string;\n\n  /**\n   * Aria labelled by which will be set on the content, for accessibility reasons\n   */\n  @Input() tabContentAriaLabelledBy: string;\n\n  /**\n   * Whether tab is active or not\n   */\n  @Input() isActive: boolean;\n\n  /**\n   * Options for the badge inside the tab\n   */\n  @Input() badgeOptions?: TBadgeOptions;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('contentTemplate') contentTemplateRef: TemplateRef<any>;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('tab') tab: ElementRef<HTMLButtonElement>;\n\n  /**\n   * Output that emits if tab is selected\n   */\n  @Output() tabSelect: EventEmitter<void> = new EventEmitter<void>();\n\n  /**\n   * Output that emits keyboard event\n   */\n  @Output() tabMove: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  /**\n   * @ignore\n   */\n  setIsActive(isActive) {\n    this.isActive = isActive;\n    this.cdr.markForCheck();\n  }\n}\n","<button class=\"nj-tab__item\" [ngClass]=\"{'nj-tab__item--active': isActive}\"\n        role=\"tab\"\n        [attr.aria-selected]=\"isActive\"\n        [attr.aria-controls]=\"ariaControls\"\n        [tabIndex]=\"isActive ? 0 : -1\"\n        [disabled]=\"isDisabled\"\n        (click)=\"tabSelect?.emit()\"\n        (keydown)=\"tabMove?.emit($event)\"\n        #tab\n        >\n  <ng-content></ng-content>\n  <nj-badge\n    *ngIf=\"badgeOptions\"\n    size=\"md\"\n    [variant]=\"badgeOptions.variant\"\n    [emphasis]=\"badgeOptions.emphasis\"\n    [value]=\"badgeOptions.value\"\n    [capedValue]=\"badgeOptions.capedValue\"\n    [unitLabel]=\"badgeOptions.unitLabel\"\n  ></nj-badge>\n</button>\n<ng-template #contentTemplate>\n  <ng-content select=\"[tab-content]\"></ng-content>\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport {Subject, takeUntil} from 'rxjs';\nimport {Utils} from '../../utils/utils.util';\nimport {TabComponent} from '../tab/tab.component';\nimport {TabsDensity} from './tabs.model';\n\n@Component({\n  selector: 'nj-tabs',\n  templateUrl: './tabs.component.html',\n  styleUrls: ['./tabs.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [TabComponent, CommonModule]\n})\nexport class TabsComponent implements AfterViewInit, OnDestroy {\n\n  private activeTabIndex;\n\n  private readonly tabClass = 'nj-tab';\n\n  private unsubscribe: Subject<void> = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  public tabToRender: TabComponent;\n\n  /**\n   * @ignore\n   */\n  public tabs: TabComponent[];\n\n  /**\n   * Label for the tablist element\n   */\n  @Input() label: string;\n\n  /**\n   * Tabs density\n   */\n  @Input() density: TabsDensity = 'normal';\n\n  /**\n   * @ignore\n   */\n  @ContentChildren(TabComponent) tabsList: QueryList<TabComponent>;\n\n  /**\n   * Output that emits selected tab index\n   */\n  @Output() selectedTab: EventEmitter<number> = new EventEmitter<number>();\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  ngAfterViewInit() {\n    // A render is being done after view init so setTimeout allows us to delay any attribute modification\n    // in the call stack so it can be taken account on next render only\n    setTimeout(() => {\n      this.tabs = this.tabsList?.toArray();\n\n      this.initializeClickListener();\n      this.initializeKeydownListener();\n\n      const activeIndex = this.tabs?.findIndex(tab => tab?.isActive);\n      this.goToTab(activeIndex === -1 ? 0 : activeIndex, false);\n    });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  /**\n   * Check if tab is active\n   * @param index index of tab to check\n   */\n  isActiveTab(index: number): boolean {\n    return this.activeTabIndex === index;\n  }\n\n  /**\n   * Allows you to navigate to tab\n   * @param index index of tab to select\n   * @param emit emits if set to true\n   */\n  goToTab(index: number, emit = true) {\n    const validIndex = (Utils.isUndefinedOrNull(index) || index < 0) ? 0 : index;\n\n    this.activeTabIndex = validIndex;\n    this.renderTemplate(validIndex);\n    if (emit) {\n      this.selectedTab.emit(validIndex);\n    }\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  focusNextFocusableTab() {\n    const focusableTabs = Array.from(this.tabs).filter(tab => !tab.isDisabled);\n    const focusedTabIndex = focusableTabs.findIndex(tab => document.activeElement === tab.tab.nativeElement);\n    const nextFocusableTab = focusableTabs[(focusedTabIndex + 1) % focusableTabs.length];\n\n    nextFocusableTab.tab.nativeElement.focus();\n  }\n\n  /**\n   * @ignore\n   */\n  focusPreviousFocusableTab() {\n    const focusableTabs = Array.from(this.tabs).filter(tab => !tab.isDisabled);\n    const focusedTabIndex = focusableTabs.findIndex(tab => document.activeElement === tab.tab.nativeElement);\n\n    const previousFocusableTabIndex = focusedTabIndex === 0\n      ? focusableTabs.length - 1\n      : focusedTabIndex - 1;\n\n    const previousFocusableTab = focusableTabs[previousFocusableTabIndex];\n\n    previousFocusableTab.tab.nativeElement.focus();\n  }\n\n  /**\n   * @ignore\n   */\n  handleTabKeydown(event: KeyboardEvent) {\n    switch (event.key) {\n      case 'ArrowRight':\n        event.preventDefault();\n        this.focusNextFocusableTab();\n        break;\n      case 'ArrowLeft':\n        event.preventDefault();\n        this.focusPreviousFocusableTab();\n        break;\n      default:\n    }\n  }\n\n  getDensityClass() {\n    if(!this.density || this.density === 'normal') {\n      return;\n    }\n    return `${this.tabClass}--${this.density}`;\n  }\n\n  private initializeClickListener() {\n    if (Utils.isUndefinedOrNull(this.tabs)) {\n      return;\n    }\n    this.tabs.forEach((tab, index) => {\n      tab.tabSelect\n        .pipe(takeUntil(this.unsubscribe))\n        .subscribe(_ => {\n          this.goToTab(index);\n        });\n    });\n  }\n\n  private initializeKeydownListener() {\n    if (Utils.isUndefinedOrNull(this.tabs)) {\n      return;\n    }\n    this.tabs.forEach(tab => {\n      tab.tabMove.pipe(takeUntil(this.unsubscribe))\n      .subscribe(event => {\n        this.handleTabKeydown(event);\n      });\n    });\n  }\n\n  private renderTemplate(index: number) {\n    for (const tab of this.tabs) {\n      if (tab?.isActive) {\n        tab.setIsActive(false);\n      }\n    }\n    this.tabToRender = this.tabs?.[index];\n    this.tabToRender.setIsActive(true);\n  }\n}\n","<div class=\"nj-tab\" [ngClass]=\"getDensityClass()\">\n  <div class=\"nj-tab__items\" role=\"tablist\" [attr.aria-label]=\"label\">\n    <ng-content></ng-content>\n  </div>\n  <div class=\"nj-tab__content-wrapper\">\n    <div class=\"nj-tab__content nj-tab__content--active\" *ngIf=\"tabToRender\"\n         [attr.id]=\"tabToRender.tabContentId\"\n         [attr.aria-labelledby]=\"tabToRender.tabContentAriaLabelledBy\"\n         role=\"tabpanel\"\n         tabIndex=\"0\">\n      <ng-container *ngTemplateOutlet=\"tabToRender.contentTemplateRef\"></ng-container>\n    </div>\n  </div>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output\n} from '@angular/core';\nimport {DomSanitizer, SafeStyle} from '@angular/platform-browser';\nimport {IconButtonComponent} from '../icon-button/icon-button.component';\nimport {IconComponent} from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, IconButtonComponent, CommonModule]\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n\n  private _dismissTimeoutId: number;\n  /**\n   * Toast unique id used to link description to close button\n   */\n  @Input() toastId: string;\n  /**\n   * Whether toast is inverse or not\n   */\n  @Input() isInverse: boolean;\n\n  /**\n   * Whether toast has a close icon or not\n   */\n  @Input() hasCloseIcon = true;\n\n  /**\n   * Icon :<br>\n   * <a href=\"https://material.io/resources/icons/\" target=\"_blank\">Material icons</a>\n   */\n  @Input() iconName?: string;\n\n  /**\n   * Time in ms to dismiss after\n   */\n  @Input() dismissAfter? = 5000;\n\n  /**\n   * Gauge accessible hidden label.\n   * @example \"The toast will be automatically closed in 10s\"\n   */\n  @Input() gaugeLabel = 'Time left until toast is closed';\n\n  /**\n   * Whether toast should dismiss after some time elapsed\n   */\n  @Input() shouldDismiss?: boolean;\n\n  /**\n   * Outputs event when toast is closed\n   */\n  @Output() closed = new EventEmitter<Event>();\n\n  /**\n   * Outputs event when toast is dismissed\n   */\n  @Output() dismissed = new EventEmitter<void>();\n\n  constructor(private sanitize: DomSanitizer, private el: ElementRef, private cdr: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    if(this.shouldDismiss) {\n      // @ts-ignore\n      this._dismissTimeoutId = setTimeout(() => {\n        this.removeToast();\n        this.dismissed.emit();\n      }, this.dismissAfter);\n    }\n  }\n\n  ngOnDestroy() {\n    this.clearDismissTimeout();\n  }\n\n  /**\n   * @ignore\n   */\n  getGaugeAnimationStyles(): SafeStyle {\n    if (!this.dismissAfter) {\n      return null;\n    }\n    return this.sanitize.bypassSecurityTrustStyle(`\n       animation-duration: ${this.dismissAfter}ms\n    `);\n  }\n\n  /**\n   * Close toast\n   */\n  close(event?: MouseEvent) {\n    event?.preventDefault();\n    event?.stopImmediatePropagation();\n    this.removeToast();\n    this.closed.emit(event);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  clearDismissTimeout() {\n    if (this._dismissTimeoutId) {\n      clearTimeout(this._dismissTimeoutId);\n    }\n  }\n\n  removeToast() {\n    this.el?.nativeElement?.remove();\n    this.clearDismissTimeout();\n  }\n}\n","<div class=\"nj-toast\" [ngClass]=\"{'nj-toast--inverse': isInverse}\">\n  <div class=\"nj-toast__body\">\n    <nj-icon *ngIf=\"iconName\" [name]=\"iconName\" class=\"nj-toast__icon\" variant=\"inherit\"></nj-icon>\n    <div class=\"nj-toast__content\">\n      <p class=\"nj-toast__title\" [attr.id]=\"toastId\">\n        <ng-content></ng-content>\n      </p>\n      <p class=\"nj-toast__text\">\n        <ng-content select=\"[njToastBody]\"></ng-content>\n      </p>\n    </div>\n  </div>\n  <div class=\"nj-toast__action\" *ngIf=\"hasCloseIcon\">\n    <nj-icon-button\n      icon=\"close\"\n      label=\"Close notification\"\n      size=\"sm\"\n      [variant]=\"isInverse ?  'primary' : 'inverse'\"\n      [ariaDescribedby]=\"toastId\"\n      (buttonClick)=\"close($event)\"\n    >\n    </nj-icon-button>\n  </div>\n  <div class=\"nj-toast__gauge\" *ngIf=\"shouldDismiss\">\n    <div class=\"nj-toast__gauge-bar\" [style]=\"getGaugeAnimationStyles()\">\n      <p class=\"nj-sr-only\">{{ gaugeLabel }}</p>\n    </div>\n  </div>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'nj-toast-container',\n  templateUrl: './toast-container.component.html',\n  styleUrls: ['./toast.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class ToastContainerComponent {\n\n\n  /**\n   * Whether container is full width or non\n   */\n  @Input() isFullWidth: boolean;\n\n  /**\n   * Container id\n   */\n  @Input() containerId: string;\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  /**\n   * @ignore\n   */\n  _markForCheck() {\n    this.cdr.markForCheck();\n  }\n}\n","<div\n    class=\"nj-toast__container\"\n    [attr.id]=\"containerId\"\n    [ngClass]=\"{'nj-toast__container--full-width': isFullWidth}\"\n    aria-live=\"polite\"\n    aria-atomic=\"false\"\n></div>\n","import {ComponentPortal, ComponentType, DomPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\nimport {ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable, TemplateRef} from '@angular/core';\nimport {ToastContainerComponent} from './toast-container.component';\nimport {ToastContentConfig, ToastServiceConfig} from './toast.model';\n\n@Injectable()\nexport class ToastService {\n  private portalHost: DomPortalOutlet | undefined;\n  private containerPortalHost: DomPortalOutlet | undefined;\n  private containerRef: ComponentRef<ToastContainerComponent> | undefined;\n\n  private config: ToastServiceConfig = {\n    containerId: 'nj-toast-container-id',\n    isContainerFullWidth: false\n  };\n\n  constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef) {\n  }\n\n  /**\n   * Opens a toast wrapped inside a ng-template or a Component\n   */\n  open(content: TemplateRef<any> | ComponentType<any>, config: ToastContentConfig) {\n    if (!content) {\n      return;\n    }\n    let toastPortal;\n    if (!this.containerRef) {\n      this.attachContainer();\n    }\n    const containerElement = this.containerRef?.location?.nativeElement?.children?.[0];\n    this.containerPortalHost = new DomPortalOutlet(containerElement);\n    if (content instanceof TemplateRef) {\n      toastPortal = new TemplatePortal(content, config.viewContainerRef, {\n        $implicit: config.data\n      });\n    } else {\n      toastPortal = new ComponentPortal(content, config.viewContainerRef, null, this.componentFactoryResolver);\n    }\n    return this.containerPortalHost.attach(toastPortal);\n  }\n\n  /**\n   * Set config\n   */\n  setConfig(config: ToastServiceConfig) {\n    this.config = {...this.config, ...config};\n    this.setContainerInputs(this.containerRef);\n  }\n\n  private setContainerInputs(containerComponentRef: ComponentRef<ToastContainerComponent> | undefined) {\n    const containerComponent = containerComponentRef?.instance;\n    if (containerComponent) {\n      containerComponent.containerId = this.config?.containerId;\n      containerComponent.isFullWidth = this.config?.isContainerFullWidth;\n      containerComponent._markForCheck();\n    }\n  }\n\n  private attachContainer() {\n    this.portalHost = new DomPortalOutlet(document.body, undefined, this.appRef);\n    const containerPortal = new ComponentPortal(ToastContainerComponent, null, null, this.componentFactoryResolver);\n    const containerComponentRef = this.portalHost.attachComponentPortal(containerPortal);\n    this.setContainerInputs(containerComponentRef);\n    this.containerRef = containerComponentRef;\n    return containerComponentRef;\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n  selector: 'nj-toggle',\n  templateUrl: './toggle.component.html',\n  styleUrls: ['./toggle.component.scss'],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => ToggleComponent),\n    multi: true\n  }],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\n\nexport class ToggleComponent implements ControlValueAccessor, AfterViewInit {\n  /**\n   * @ignore\n   */\n  private toggleClassName = 'nj-toggle';\n\n  /**\n   * @ignore\n   */\n  private _checked: boolean;\n\n  /**\n   * Input id\n   */\n  @Input() inputId: string;\n\n  /**\n   * Input name\n   */\n  @Input() name: string;\n\n  /**\n   * Input size\n   */\n  @Input() size: 'md' | 'lg' = 'md';\n\n  /**\n   * Whether input is required or not\n   */\n  @Input() required: boolean;\n\n  /**\n   * Whether the toggle is checked or not\n   */\n  @Input()\n  set isChecked(value: boolean) {\n    this._checked = value;\n    this.cdr.markForCheck();\n  }\n\n  get isChecked(): boolean {\n    return this._checked;\n  }\n\n  /**\n   * Whether the toggle is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Whether the toggle color is inherited from parent\n   */\n  @Input() isColorInherited?: boolean;\n\n  /**\n   * Text alternative for assistive technologies\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Text alternative for assistive technologies based on visible text\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby\n   */\n  @Input() ariaLabelledby: string;\n\n  /**\n   * Output that emits checked value on change only\n   */\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  /**\n   * @ignore\n   */\n  @ViewChild('input')\n  private _inputElement: ElementRef<HTMLInputElement>;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('iconWrapper') iconWrapper;\n\n  /**\n   * Whether toggle has an icon\n   */\n  hasIcon: boolean;\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  // Check if icon is provided on load\n  ngAfterViewInit() {\n    this.hasIcon = this.iconWrapper?.nativeElement && this.iconWrapper.nativeElement.innerHTML !== '';\n  }\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  _onChangeEvent(event: Event) {\n    event.stopPropagation();\n    if (this._inputElement?.nativeElement) {\n      this.isChecked = this._inputElement.nativeElement.checked;\n      this._onChange(this.isChecked);\n      this.valueChange.emit(this.isChecked);\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  _onInputClick(event: Event) {\n    // We have to stop propagation for click events on the visually hidden input element.\n    // By default, when a user clicks on a label element, a generated click event will be\n    // dispatched on the associated input element. Since we are using a label element as our\n    // root container, the click event on the `slide-toggle` will be executed twice.\n    // The real click event will bubble up, and the generated click event also tries to bubble up.\n    // This will lead to multiple click events.\n    // Preventing bubbling for the second event will solve that issue.\n    event.stopPropagation();\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: any): void {\n    this.isChecked = !!value;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  getToggleSizeClass(): string {\n    let sizeModifier: string;\n    switch (this.size) {\n      case 'lg':\n        sizeModifier = 'lg';\n        break;\n      default:\n        break;\n    }\n    return sizeModifier ? `${this.toggleClassName}--${sizeModifier}` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getToggleIsDisabledClass(): string {\n    return this.isDisabled ? `${this.toggleClassName}--disabled` : '';\n  }\n\n  getToggleInheritColorClass(): string {\n    return this.isColorInherited ? `${this.toggleClassName}--inherit` : '';\n  }\n}\n","<div class=\"nj-toggle\" [ngClass]=\"[getToggleSizeClass(), getToggleIsDisabledClass(), getToggleInheritColorClass()]\">\n  <label [attr.for]=\"inputId\">\n    <input\n      type=\"checkbox\"\n      role=\"switch\"\n      #input\n      [required]=\"required\"\n      [checked]=\"isChecked\"\n      [disabled]=\"isDisabled\"\n      [attr.id]=\"inputId\"\n      [attr.name]=\"name\"\n      [attr.aria-label]=\"ariaLabel\"\n      [attr.aria-labelledby]=\"ariaLabelledby\"\n      (change)=\"_onChangeEvent($event)\"\n      (click)=\"_onInputClick($event)\"\n    />\n    <span class=\"nj-toggle__track\"></span>\n\n    <div class=\"nj-toggle__icon-container\" #iconWrapper>\n      <ng-content select=\"[njToggleIcon]\"></ng-content>\n    </div>\n\n    <span *ngIf=\"hasIcon; else content\" class=\"nj-sr-only\">\n      <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n    </span>\n    <ng-template #content>\n      <ng-content></ng-content>\n    </ng-template>\n  </label>\n</div>\n","import {Directive, HostBinding} from '@angular/core';\n\n@Directive({\n  selector: '[njToggleIcon]',\n  exportAs: 'njToggleIcon',\n  standalone: true\n})\nexport class ToggleIconDirective {\n  @HostBinding('class') class = 'nj-toggle__icon';\n\n  constructor() {\n  }\n}\n","export type TooltipPlacement = 'left' | 'right' | 'top' | 'bottom';\n\nexport type TooltipArrowPlacement = 'start' | 'center' | 'end';\n\nexport class TooltipOptions {\n  /**\n   * Whether tooltip is inverse or no\n   */\n  isInverse: boolean;\n\n  /**\n   * Whether tooltip has arrow or no\n   */\n  hasArrow = true;\n\n  /**\n   * Tooltip label, if you want custom content unset the label and place content as element children\n   * e.g: `<nj-tooltip>Your Content</nj-tooltip>`\n   */\n  label: string;\n\n  /**\n   * Tooltip id\n   */\n  tooltipId: string;\n\n  /**\n   * Tooltip placement\n   */\n  placement: TooltipPlacement = 'top';\n\n  /**\n   * Tooltip arrow placement\n   */\n  arrowPlacement: TooltipArrowPlacement = 'center';\n\n  /**\n   * Whether tooltip management is standalone\n   */\n  isStandalone = true;\n\n  /**\n   * Whether tooltip is animated\n   */\n  isAnimated = true;\n}\n","/*\n * Public API Surface of lib\n */\n\n// Global\nexport * from './models/theme-variant.model';\n\n// Directives\nexport * from './directives/custom-icon.directive';\n\n// Accordion\nexport * from './components/accordion/accordion.component';\n\n// Accordion actions\nexport * from './components/accordion-actions/accordion-actions.component';\nexport * from './components/accordion-actions/directive/accordion-action.directive';\n\n// Accordion item\nexport * from './components/accordion-item/accordion-item.component';\n\n// Autocomplete\nexport * from './components/autocomplete/autocomplete.component';\nexport * from './components/autocomplete/autocomplete.model';\n\n// Avatar\nexport * from './components/avatar/avatar.component';\nexport * from './components/avatar/avatar-picture.directive';\n\n// Avatar List\nexport * from './components/avatar-list/avatar-list.component';\n\n// Badge\nexport * from './components/badge/badge.component';\nexport * from './components/badge/badge.model';\n\n// Breadcrumb\nexport * from './components/breadcrumb/breadcrumb.component';\nexport * from './components/breadcrumb-item/breadcrumb-item.component';\n\n// Bullet\nexport * from './components/bullet/bullet.component';\nexport * from './components/bullet/bullet.model';\n\n// Button\nexport * from './components/button/button.component';\nexport * from './components/button/button.model';\n\n// Card\nexport * from './components/card/card.component';\nexport * from './components/card/card-image.directive';\n\n// Checkbox\nexport * from './components/checkbox/checkbox.component';\n\n// Custom Label\nexport * from './components/custom-label/custom-label.directive';\n\n// Element structural directive\nexport * from './directives/engie-template.directive';\n\n// FormItem\nexport * from './components/form-item/form-item.component';\nexport * from './components/form-field/form-field.directive';\n\n// Icon\nexport * from './components/icon-base/icon-base.component';\n\nexport * from './components/icon/icon.component';\nexport * from './components/icon/icon.model';\n\nexport * from './components/icon-engie/icon-engie.component';\nexport * from './components/icon-engie/icon-engie.model';\n\n// Icon Button\nexport * from './components/icon-button/icon-button.component';\nexport * from './components/icon-button/icon-button.model';\n\n// Inline Message\nexport * from './components/inline-message/inline-message.component';\nexport * from './components/inline-message/inline-message.model';\n\n// Link\nexport * from './components/link/link.component';\nexport * from './components/link/link.model';\n\n// List\nexport * from './components/list-item/list-item.component';\nexport * from './components/list-group/list-group.component';\n\n// Modal\nexport * from './components/modal/modal.component';\n\n// Multi Select\nexport * from './components/multi-select/multi-select.component';\n\n// Pagination\nexport * from './components/pagination/pagination.component';\n\n// Progress\nexport * from './components/progress/progress.component';\n\n// Radio\nexport * from './components/radio/radio.component';\nexport * from './components/radio-group/radio-group.component';\n\n// Search\nexport * from './components/search/search.component';\nexport * from './components/search/directives/search-button.directive';\n\n// Segmented Control\nexport * from './components/segmented-control-button/segmented-control-button.component';\nexport * from './components/segmented-control/segmented-control.component';\n\n// Select\nexport * from './components/select/select.component';\nexport * from './components/select/select-custom-label-context.model';\n\n// Sidebar\nexport * from './components/sidebar/sidebar.component';\nexport * from './components/sidebar/directives/sidebar-content.directive';\nexport * from './components/sidebar/directives/sidebar-footer.directive';\nexport * from './components/sidebar/directives/sidebar-logo.directive';\nexport * from './components/sidebar/directives/sidebar-item.directive';\nexport * from './components/sidebar/interfaces/sidebar-logo.context';\n\n// Sidepanel\nexport * from './components/sidepanel/sidepanel.component';\nexport * from './components/sidepanel/directives/sidepanel-header.directive';\nexport * from './components/sidepanel/directives/sidepanel-footer.directive';\nexport * from './components/sidepanel-header/directives/sidepanel-header-action.directive';\nexport * from './components/sidepanel-header/sidepanel-header.component';\nexport * from './components/sidepanel-layout/sidepanel-layout.component';\nexport * from './components/sidepanel-layout/directives/sidepanel-layout-panel.directive';\n\n// Skeleton\nexport * from './components/skeleton/skeleton-container.component';\nexport * from './components/skeleton/skeleton-rectangle.component';\nexport * from './components/skeleton/skeleton-circle.component';\nexport * from './components/skeleton/skeleton-area.component';\n\n// Slider\nexport * from './components/slider/slider.component';\n\n// Spinner\nexport * from './components/spinner/spinner.component';\nexport * from './components/spinner/spinner.model';\n\n// Status Indicator\nexport * from './components/status-indicator/status-indicator.component';\nexport * from './components/status-indicator/status-indicator.model';\n\n// Switch\nexport * from './components/switch/switch.component';\n\n// Tabs\nexport * from './components/tab/tab.component';\nexport * from './components/tabs/tabs.component';\nexport * from './components/tabs/tabs.model';\n\n// Tag\nexport * from './components/tag/tag.component';\n\n// TextHighlight\nexport * from './components/highlight/highlight.directive';\n\n// Toast\nexport * from './components/toast/toast.component';\nexport * from './components/toast/toast-container.component';\nexport * from './components/toast/toast.service';\n\n// Toggle\nexport * from './components/toggle/toggle.component';\nexport * from './components/toggle/toggle-icon.directive';\n\n// Tooltip\nexport * from './components/tooltip/tooltip.component';\nexport * from './components/tooltip/tooltip.model';\nexport * from './components/tooltip/directives/tooltip.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CSSClassesMap","defaultParams","i1","i2"],"mappings":";;;;;;;;;;;;;;;AAAO,MAAM,4BAA4B,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;;MCM5I,mBAAmB,CAAA;AAJhC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElC;8GAHY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCMY,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAuB,WAAW,CAAC;AAGxD;8GAJY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE;AACb,iBAAA;8BAIsB,QAAQ,EAAA,CAAA;sBAA5B,KAAK;uBAAC,YAAY;;;MCFR,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,mICZtC,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDWa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;+BACE,sBAAsB,EAAA,aAAA,EAEjB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACV,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA;;;MEGU,wBAAwB,CAAA;AAVrC,IAAA,WAAA,GAAA;AAaU,QAAA,IAAA,CAAA,SAAS,GAAI,MAAM,CAAC,kBAAkB,CAAC;AAUhD;IARW,aAAa,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE;;AAEhC,QAAA,IAAG,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE;;;8GAV3B,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,mBAAmB;AAC5B,wBAAA,8BAA8B,EAAE,mBAAmB;AACnD,wBAAA,gCAAgC,EAAE,qBAAqB;AACvD,wBAAA,SAAS,EAAE;AACZ;AACF,iBAAA;8BAE6B,IAAI,EAAA,CAAA;sBAA/B,KAAK;uBAAC,mBAAmB;;;MCFf,iBAAiB,CAAA;AAT9B,IAAA,WAAA,GAAA;QAWU,IAAmB,CAAA,mBAAA,GAAG,gBAAgB;QACpC,IAAU,CAAA,UAAA,GAAG,SAAS;AAEhC;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC;AAwB9B;IANW,YAAY,GAAA;QACpB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClC,YAAA,OAAO,EAAE;;QAEX,OAAO,IAAI,CAAC,WAAW,GAAG,CAAG,EAAA,IAAI,CAAC,UAAU,CAAI,CAAA,EAAA,IAAI,CAAC,UAAU,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,IAAI,CAAC,mBAAmB;;8GA9BhG,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ9B,mOAOA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAGP,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,mOAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA;8BAUd,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAMQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;;;AEvBG,MAAO,aAAc,SAAQ,iBAAiB,CAAA;AATpD,IAAA,WAAA,GAAA;;QAWU,IAAmB,CAAA,mBAAA,GAAG,kBAAkB;AAEhD;;AAEG;QACM,IAAI,CAAA,IAAA,GAAa,IAAI;AAyB/B;IAlBW,YAAY,GAAA;AACpB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,CAAC,mBAAmB,CAAK,EAAA,EAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA,CAAE,GAAG,EAAE;AAClH,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,CAAG,EAAA,IAAI,CAAC,mBAAmB,CAAK,EAAA,EAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA,CAAE,GAAG,EAAE;AAC5H,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;QACtD,OAAO,CAAA,EAAG,IAAI,CAAC,mBAAmB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE;;IAGxE,aAAa,CACnB,OAAU,EACV,YAAe,EAAA;QAEf,QAAQ,OAAO;AACb,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,YAAY;AACrB,YAAA;AACE,gBAAA,OAAO,OAAgC;;;8GA7BlC,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb1B,kJAOA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIY,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEhB,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAGF,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,kJAAA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA;8BASnB,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,OAAO,EAAA,CAAA;sBAAf;;;MESU,sBAAsB,CAAA;AAhBnC,IAAA,WAAA,GAAA;AAkBU,QAAA,IAAA,CAAA,OAAO,GAAmC,MAAM,CAAC,UAAU,CAAC;AAE5D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAkF/C;AAlDC,IAAA,IAAc,OAAO,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,CAAC,mBAAmB,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAE,CAAA,CAAC;;AAGlD,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC;;AAEnD,QAAA,OAAO,OAAO;;IAGhB,kBAAkB,GAAA;QAChB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAI;AACpD,YAAA,IAAI,iBAAiB,EAAE,QAAQ,KAAK,MAAM,EAAE;AAC1C,gBAAA,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,WAAW;;AAGnD,YAAA,IAAI,iBAAiB,EAAE,QAAQ,KAAK,QAAQ,EAAE;AAC5C,gBAAA,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,WAA+C;;AAE3F,SAAC,CAAC;;AAGM,IAAA,WAAW,CAAC,KAAiB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE;YACjD,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE;;;AAIjB;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI;;;AAI1C;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,KAAK;;;8GAnFhC,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAiBd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,EAAA,gBAAgB,CAKhB,EAAA,wBAAA,EAAA,CAAA,0BAAA,EAAA,0BAAA,EAAA,gBAAgB,CAYlB,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,sBAAsB,ECpEzC,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,y4BAiBA,EDQI,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,EACb,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FACJ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAOP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhBlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,cAG1B,IAAI,EAAA,aAAA,EACD,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA;wBACP,aAAa;wBACb,IAAI;wBACJ;qBACD,EACK,IAAA,EAAA;AACJ,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,SAAS,EAAE,qBAAqB;AACjC,qBAAA,EAAA,QAAA,EAAA,y4BAAA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA;8BAcQ,KAAK,EAAA,CAAA;sBAAb;gBAKqC,oBAAoB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC;gBAKE,wBAAwB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC;gBAK3B,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAEkD,kBAAkB,EAAA,CAAA;sBAApE,eAAe;uBAAC,sBAAsB;;;AEpEzC;AAQA,MAAMA,eAAa,GAA+B;AAChD,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,QAAQ,EAAE;CACX;AACY,MAAA,eAAe,GAAG,CAAC,IAAgB,KAAI;AAClD,IAAA,OAAOA,eAAa,CAAC,IAAI,CAAC;AAC5B;;MCNa,gBAAgB,CAAA;AA4B3B,IAAA,WAAA,GAAA;AA3BA;;AAEG;QACK,IAAgB,CAAA,gBAAA,GAAG,YAAY;AAEvC;;AAEG;QACM,IAAO,CAAA,OAAA,GAAmB,QAAQ;AAE3C;;AAEG;QACM,IAAI,CAAA,IAAA,GAAgB,IAAI;AASjC;;AAEG;QACM,IAAO,CAAA,OAAA,GAAa,IAAI;;AAIjC;;AAEG;IACH,sBAAsB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC9C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;AAGpD;;AAEG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;8GA/CtC,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ7B,ugBAOA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;+BACE,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,ugBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA;wDAWd,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAOQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,OAAO,EAAA,CAAA;sBAAf;;;MExBU,eAAe,CAAA;AAR5B,IAAA,WAAA,GAAA;AASE;;AAEG;QACc,IAAe,CAAA,eAAA,GAAG,QAAQ;AAE3C;;AAEG;QACM,IAAI,CAAA,IAAA,GAAG,QAAQ;AAiBxB;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAmB,MAAM;AAE1C;;AAEG;QACM,IAAO,CAAA,OAAA,GAAkB,SAAS;AAO3C;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK;AAa9B;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAc;AAmCvD;AAjCC;;AAEG;IACH,sBAAsB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC9C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,QAAQ,CAAA,CAAE;;AAGpD;;AAEG;IACH,qBAAqB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;IAGzC,kBAAkB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAClE,YAAA,OAAO,EAAE;;AAEX,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,eAAe,CAAK,EAAA,EAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE;;AAGjE;;AAEG;IACH,uBAAuB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAc,YAAA,CAAA,GAAG,EAAE;;8GA7FzD,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,8UCd5B,gjCA8BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlBY,aAAa,EAAE,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,wYAAE,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE5C,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,mBAEJ,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,WACP,CAAC,aAAa,EAAE,YAAY,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,gjCAAA,EAAA;8BAW/C,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,aAAa,EAAA,CAAA;sBAArB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAMQ,SAAS,EAAA,CAAA;sBAAjB;gBAKS,WAAW,EAAA,CAAA;sBAApB;;;MExCU,kBAAkB,CAAA;AAM7B,IAAA,IAAc,OAAO,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC;AAEhC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC;;AAGzC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC;;AAGzC,QAAA,OAAO,OAAO;;AAGhB;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU;QACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;;;;;;AAMpC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACvD,SAAS,CAAC,MAAM,EAAE;;iBACb;gBACL,SAAS,CAAC,QAAQ,EAAE;;AAEtB,YAAA,IAAI,SAAS,CAAC,IAAI,EAAE;AAClB,gBAAA,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;;AAEnC,SAAC,CAAC;;AAGJ;;AAEG;AACH,IAAA,gBAAgB,CAAC,IAAa,EAAA;QAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;YACpC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE;gBACnC;;YAEF,SAAS,CAAC,QAAQ,EAAE;AACtB,SAAC,CAAC;;8GAnDO,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,6FACT,gBAAgB,CAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAChB,gBAAgB,CAEnB,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,sBAAsB,6BCtCzC,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDiCa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,SAAS;+BACE,cAAc,EAAA,UAAA,EAEZ,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA;wBACP,sBAAsB;wBACtB,aAAa;wBACb,sBAAsB;wBACtB,yBAAyB;wBACzB,eAAe;wBACf;qBACD,EACK,IAAA,EAAA;AACJ,wBAAA,SAAS,EAAE;AACZ,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA;8BAGuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEW,UAAU,EAAA,CAAA;sBAA1D,eAAe;uBAAC,sBAAsB;;;AEnClC,MAAM,gBAAgB,GAEzB;AACF,IAAA,aAAa,EAAE,OAAO,CAAC,eAAe,EAAE;AACtC,QAAA,KAAK,CACH,MAAM,EACN,KAAK,CAAC;AACJ,YAAA,SAAS,EAAE,aAAa;AACxB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA,CAAC,CACH;AACD,QAAA,KAAK,CACH,GAAG,EACH,KAAK,CAAC;AACJ,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,SAAS,EAAE,WAAW;AACvB,SAAA,CAAC,CACH;QACD,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAS,MAAA,EAAA,qCAAqC,CAAE,CAAA,CAAC,CAAC;AAClF,QAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA,WAAA,EAAc,qCAAqC,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;KAC7G,CAAC;CACH;;ACxBD;AACA;MACa,KAAK,CAAA;aACT,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;IAElB,OAAO,iBAAiB,CAAC,KAAU,EAAA;QACxC,OAAO,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI;;IAGhD,OAAO,eAAe,CAAC,IAAY,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;;AAGvD,IAAA,OAAO,wBAAwB,CAAC,IAAY,EAAE,MAAc,EAAA;AACjE,QAAA,IAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;AACnE,YAAA,OAAO,KAAK;;QAEd,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;AAClD,QAAA,IAAI,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC;QACjD,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;IAGtC,OAAO,MAAM,CAAC,MAAc,EAAA;AACjC,QAAA,GAAG;;AAED,YAAA,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9C,SAAC,QAAQ,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;AACxC,QAAA,OAAO,MAAM;;;;MCpBJ,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;QAFA,IAAK,CAAA,KAAA,GAAG,qBAAqB;QAGjD,IAAI,CAAC,cAAc,EAAE;;IAGf,cAAc,GAAA;QACpB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;YAC3C;;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,WAAW;AACvD,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,WAAW,EAAE,IAAI,EAAE,KAAK;AAClG,cAAE;cACA,WAAW;;AAGjB,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI;;IAGrC,IAAI,IAAI,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE;YAC1B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,KAAK;;;AAItC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO;;AAGxC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa;;8GAhCpB,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0GAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0GAA0G;AACpH,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE;AACb,iBAAA;+EAEuB,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO;;;MCIT,mBAAmB,CAAA;AAkE9B,IAAA,WAAA,GAAA;QAjEiB,IAAsB,CAAA,sBAAA,GAAG,aAAa;AAEvD;;AAEG;QACM,IAAI,CAAA,IAAA,GAAG,QAAQ;AAmCxB;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK;AAiB9B;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAc;;AAKtD;;AAEG;IACH,yBAAyB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;AAG1D;;AAEG;IACH,sBAAsB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;8GAtF5C,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,ECbhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kwBAoBA,EDTY,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,gFAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,aAAa,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,kwBAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA;wDAQ7B,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAMQ,eAAe,EAAA,CAAA;sBAAvB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAMQ,OAAO,EAAA,CAAA;sBAAf;gBAMQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,aAAa,EAAA,CAAA;sBAArB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,eAAe,EAAA,CAAA;sBAAvB;gBAKS,WAAW,EAAA,CAAA;sBAApB;;;MEpDU,iBAAiB,CAAA;AAT9B,IAAA,WAAA,GAAA;QAWmB,IAAiB,CAAA,iBAAA,GAAG,cAAc;AAsBnD;;AAEG;QACH,IAAS,CAAA,SAAA,GAAG,KAAK;AAEjB;;AAEG;QACH,IAAc,CAAA,cAAA,GAAG,EAAE;AAEnB;;AAEG;QACH,IAAmB,CAAA,mBAAA,GAAG,EAAE;AAExB;;AAEG;QACH,IAAW,CAAA,WAAA,GAAG,KAAK;AAOnB;;AAEG;QACM,IAAI,CAAA,IAAA,GAAiB,QAAQ;AAEtC;;AAEG;QACM,IAAe,CAAA,eAAA,GAAG,IAAI;AAwD/B;;AAEG;QACM,IAAe,CAAA,eAAA,GAAG,IAAI;AAO/B;;AAEG;QACM,IAAe,CAAA,eAAA,GAAW,EAAE;AA8BrC;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAA6B,IAAI,YAAY,EAE7D;AAEH;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAgC,IAAI,YAAY,EAElE;AAEH;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAA6B,IAAI,YAAY,EAEhE;AAyGJ;AAnNC;;AAEG;IACH,IACI,UAAU,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QACxB,IAAI,CAAC,iBAAiB,EAAE;;AAG1B,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;;AAGzB;;AAEG;IACH,IACI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,iBAAiB,EAAE;;AAG1B,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB;;AAEG;IACH,IACI,OAAO,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,iBAAiB,EAAE;;AAG1B,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;IA6EtB,kBAAkB,GAAA;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,UAAU;AACrD,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,KAAK,UAAU;AACzC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB;QACvD,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;;;AAI/D;;AAEG;AACH,IAAA,gBAAgB,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB;;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG5B;;AAEG;AACH,IAAA,kBAAkB,CAAC,KAAoB,EAAA;QACrC,KAAK,EAAE,cAAc,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB;;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG9B;;AAEG;IACH,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU;AAChC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB;AACjD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB;;aAClD;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM;AAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB;AAClD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB;;AAEzD,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;;AAGlC;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,YAAY;;AAGpC;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC;;AAG7D,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;AACpD,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;;;;AAKpF;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI;AACjC,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,MAAM;;AAGzC;;AAEG;IACH,oBAAoB,GAAA;AAClB,QAAA,IAAI,YAAoB;AACxB,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,OAAO;gBACV,YAAY,GAAG,IAAI;gBACnB;AACF,YAAA,KAAK,OAAO;gBACV,YAAY,GAAG,IAAI;gBACnB;AACF,YAAA,KAAK,QAAQ;gBACX,YAAY,GAAG,IAAI;gBACnB;AACF,YAAA;gBACE;;AAEJ,QAAA,OAAO,YAAY,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAA,EAAA,EAAK,YAAY,CAAE,CAAA,GAAG,EAAE;;8GAtR9D,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAoLd,kBAAkB,EC7MlC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ggFA+CA,gFDxBY,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAsB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEnE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,mBAGP,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,ggFAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;8BAiDtE,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,eAAe,EAAA,CAAA;sBAAvB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAMG,UAAU,EAAA,CAAA;sBADb;gBAcG,QAAQ,EAAA,CAAA;sBADX;gBAcG,OAAO,EAAA,CAAA;sBADV;gBAaQ,aAAa,EAAA,CAAA;sBAArB;gBAKQ,eAAe,EAAA,CAAA;sBAAvB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,eAAe,EAAA,CAAA;sBAAvB;gBAMQ,uBAAuB,EAAA,CAAA;sBAA/B;gBAMQ,uBAAuB,EAAA,CAAA;sBAA/B;gBAKQ,uBAAuB,EAAA,CAAA;sBAA/B;gBAMQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKS,SAAS,EAAA,CAAA;sBAAlB;gBAOS,WAAW,EAAA,CAAA;sBAApB;gBAOS,YAAY,EAAA,CAAA;sBAArB;gBAOiC,SAAS,EAAA,CAAA;sBAA1C,YAAY;uBAAC,kBAAkB;;;MEtMrB,kBAAkB,CAAA;AA4B7B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;AAftB;;AAEG;QAEI,IAAa,CAAA,aAAA,GAAG,IAAI;AAE3B;;AAEG;QAEI,IAAa,CAAA,aAAA,GAAG,KAAK;QAEX,IAAW,CAAA,WAAA,GAAG,6BAA6B;QAC3C,IAAW,CAAA,WAAA,GAAG,SAAS;;AAIxC,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,aAAa,EAAE;;IAGd,aAAa,GAAA;QACnB,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE;YAC5F;;AAEF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,IAAI;AAClD,QAAA,IAAI,SAAiB;QACrB,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;AACjD,YAAA,SAAS,GAAG,IAAI,CAAC,OAAO;;aACnB;AACL,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;AAClF,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AACpE,gBAAA,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO;gBAC5B,IAAI,MAAM,GAAG,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;AACrC,oBAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AAC3B,wBAAA,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK;wBACzC,MAAM,oBAAoB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;AAC7D,wBAAA,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AAC5F,wBAAA,MAAM,mBAAmB,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;AACzG,wBAAA,SAAS,GAAG,CAAG,EAAA,oBAAoB,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,EAAG,UAAU,CAAA,EAAG,IAAI,CAAC,WAAW,CAAG,EAAA,mBAAmB,EAAE;AAC9G,wBAAA,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;;;gBAGvE,SAAS,GAAG,SAAS;;iBAChB;gBACL,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;AAC3D,gBAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAK,EAAA,EAAA,IAAI,CAAC,WAAW,CAAA,CAAE,CAAC;;;QAGxF,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,SAAS;;8GAhElC,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE;AACb,iBAAA;+EAMQ,OAAO,EAAA,CAAA;sBADb;gBAOM,eAAe,EAAA,CAAA;sBADrB;gBAOM,aAAa,EAAA,CAAA;sBADnB;gBAOM,aAAa,EAAA,CAAA;sBADnB;;;MClBU,kBAAkB,CAAA;AA8C7B,IAAA,WAAA,CAA4B,OAAgC,EAAA;QAAhC,IAAO,CAAA,OAAA,GAAP,OAAO;AA9BnC;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,IAAI;AAEzB;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK;AAExB;;;;AAIG;QACM,IAAkB,CAAA,kBAAA,GAAY,KAAK;AAO5C;;AAEG;QACM,IAAa,CAAA,aAAA,GAAY,KAAK;;8GAzC5B,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX/B,2gBAiBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDRY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAER,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2gBAAA,EAAA;+EAMd,MAAM,EAAA,CAAA;sBAAd;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAOQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,aAAa,EAAA,CAAA;sBAArB;gBAGM,MAAM,EAAA,CAAA;sBADZ,SAAS;uBAAC,MAAM;;;MExBN,iBAAiB,CAAA;AAoB5B;;AAEG;IACH,IACI,SAAS,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,QAAQ;;AAoEtB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;QAjGN,IAAiB,CAAA,iBAAA,GAAG,aAAa;AAgClD;;AAEG;QACM,IAAI,CAAA,IAAA,GAAkB,IAAI;AA2CnC;;;AAGG;QACM,IAAgB,CAAA,gBAAA,GAAI,KAAK;AAOlC;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAA0B,IAAI,YAAY,EAAW;AAQ1E;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAU;AACrC,SAAC;AAED;;AAEG;QACK,IAAU,CAAA,UAAA,GAAG,MAAW;AAChC,SAAC;;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,KAAY,EAAA;QACzB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE;YACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO;AACzD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;;AAIzC;;AAEG;AACH,IAAA,aAAa,CAAC,KAAY,EAAA;;;;;;;;QAQxB,KAAK,CAAC,eAAe,EAAE;;AAGzB;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK;;AAG1B;;;AAGG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGtB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,OAAO;;AAG/B,IAAA,IAAY,iBAAiB,GAAA;QAC3B,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,CAAG,EAAA,IAAI,CAAC,iBAAiB,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;;AAG5E,IAAA,IAAc,eAAe,GAAA;QAC3B,OAAO;YACL,oBAAoB,EAAE,IAAI,CAAC,QAAQ;YACnC,sBAAsB,EAAE,IAAI,CAAC,UAAU;AACvC,YAAA,CAAC,IAAI,CAAC,iBAAiB,GAAG;SAC3B;;8GA5LQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAwFT,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAjGxB,CAAC;AACV,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE;AACR,aAAA,CAAC,ECzBJ,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,84CAoCA,EDRY,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,gFAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,aAGZ,CAAC;AACV,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE;yBACR,CAAC,EAAA,eAAA,EACe,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,aAAa,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,84CAAA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA;sFAU7B,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAMG,SAAS,EAAA,CAAA;sBADZ;gBAaQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAMQ,YAAY,EAAA,CAAA;sBAApB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAMQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAKqC,aAAa,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC;gBAK1B,WAAW,EAAA,CAAA;sBAApB;gBAGO,aAAa,EAAA,CAAA;sBADpB,SAAS;uBAAC,OAAO;;;MEhGP,iBAAiB,CAAA;AAI5B;;AAEG;AACH,IAAA,IACI,SAAS,GAAA;AACX,QAAA,OAAO,0BAA0B;;AAiBnC;;AAEG;AACH,IAAA,IACI,WAAW,GAAA;AACb,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ;AAC5C,QAAA,OAAO,IAAI,CAAC,oBAAoB,IAAI,aAAa;;AAenD;;AAEG;AACH,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI;;AAyD3C;;AAEG;AACgC,IAAA,YAAY,CAAC,KAAiB,EAAA;;;AAG/D,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC9B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAI9B,IAAA,WAAA,CAA4B,EAA2B,EAAA;QAA3B,IAAE,CAAA,EAAA,GAAF,EAAE;AAtHb,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAiChD;;AAEG;QAGH,IAAc,CAAA,cAAA,GAAG,KAAK;QAiBtB,IAAY,CAAA,YAAA,GAAY,IAAI;AAgC5B;;AAEG;QACM,IAAiB,CAAA,iBAAA,GAAY,KAAK;AAE3C;;AAEG;QACM,IAAU,CAAA,UAAA,GAAY,KAAK;AAOpC;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAc;;AAgBpD;;;AAGG;IACH,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;;AAGtC;;;AAGG;IACH,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,WAAW;;AAG5C;;AAEG;AACH,IAAA,cAAc,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;AACH,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;;8GAxJ5C,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,s5BC7B9B,8tCAmCA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDRY,aAAa,EAAE,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,0SAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE7C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AAEE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,iBAGX,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,WACP,CAAC,aAAa,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,8tCAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA;+EAUrD,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,OAAO;gBAUpB,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,wCAAwC;;sBACpD;gBAQD,UAAU,EAAA,CAAA;sBAFT,WAAW;uBAAC,0CAA0C;;sBACtD;gBAOG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,2CAA2C;gBAWxD,cAAc,EAAA,CAAA;sBAFb,WAAW;uBAAC,8CAA8C;;sBAC1D;gBAMD,IAAI,EAAA,CAAA;sBAFH,WAAW;uBAAC,WAAW;;sBACvB;gBAOG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,eAAe;gBAO5B,YAAY,EAAA,CAAA;sBAFX,WAAW;uBAAC,oBAAoB;;sBAChC;gBAMQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,aAAa,EAAA,CAAA;sBAArB;gBAUQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAKS,SAAS,EAAA,CAAA;sBAAlB;gBAKkC,YAAY,EAAA,CAAA;sBAA9C,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AEtF7B,MAAO,qBACX,SAAQ,iBAAiB,CAAA;AAmJzB;;AAEG;IACH,IAAa,IAAI,CAAC,KAA2B,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,UAAU,EAAE;;AAGnB,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;AAuDnB,IAAA,WAAA,CACU,QAAmB,EACnB,UAAmC,EACnC,GAAsB,EACJ,SAAS,EAAA;AAEnC,QAAA,KAAK,EAAE;QALC,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAG,CAAA,GAAA,GAAH,GAAG;QACe,IAAS,CAAA,SAAA,GAAT,SAAS;QApNpB,IAAkB,CAAA,kBAAA,GAAG,CAAC;QACtB,IAAiB,CAAA,iBAAA,GAAG,CAAC;AACtC;;AAEG;AACK,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;AAOzC;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAU,GAAG;AAExC;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,MAAW,GAAG;AAYrC;;;;;;;;;;AAUG;QACK,IAAc,CAAA,cAAA,GAAG,KAAK;AAE9B;;AAEG;QACH,IAAM,CAAA,MAAA,GAAG,KAAK;AAEd;;AAEG;QACH,IAAU,CAAA,UAAA,GAAG,KAAK;AAkBlB;;;AAGG;QACH,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QAEb,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAE1B;;;AAGG;QACO,IAAa,CAAA,aAAA,GAAkB,IAAI;AAE7C;;;AAGG;QACH,IAAe,CAAA,eAAA,GAAG,EAAE;AAEpB;;AAEG;QAEH,IAAQ,CAAA,QAAA,GAAG,qBAAqB;AAEhC;;AAEG;QAEH,IAAmB,CAAA,mBAAA,GAAG,IAAI;AAE1B;;AAEG;QAEH,IAAe,CAAA,eAAA,GAAG,YAAY;AAE9B;;AAEG;QAEH,IAAoB,CAAA,oBAAA,GAAG,SAAS;AAEhC;;AAEG;QAEH,IAAoB,CAAA,oBAAA,GAAG,IAAI;AAgD3B;;AAEG;AAEH,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAI,YAAY,EAAU;QA4CvD,IAAI,CAAC,kBAAkB,EAAE;;AAG3B;;AAEG;IACH,kBAAkB,GAAA;QAChB,KAAK,CAAC,kBAAkB,EAAE;;AAG5B;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC3B,QAAA,IAAI,CAAC,uBAAuB,IAAI;AAChC,QAAA,IAAI,CAAC,wBAAwB,IAAI;AACjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;;;AAI1C;;;AAGG;IACK,2BAA2B,GAAA;AACjC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;AAElC,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,eAAe;;QAG7B,OAAO,CAAA,EAAG,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,oBAAoB,CAAA,CAAE;;AAG1D;;;AAGG;IACK,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC/E,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;;aACzB;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACtB,iBAAA,MAAM,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AACjF,iBAAA,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;;AAG/B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAAE;QACzD,IAAI,CAAC,mBAAmB,EAAE;;IAGpB,mBAAmB,GAAA;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC;;AAG1F,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,UAAU;;AAExB,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;;IAG/C,mBAAmB,GAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,aAAa;QACpF,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;;IAGtC,4BAA4B,GAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE;YACtD;;AAEF,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,aAA4B;AAEvD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjE,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;;;QAI/D,SAAS,EAAE,KAAK,EAAE;;AAGpB;;AAEG;IACK,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;YACnE,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,qBAAqB,EAAE;YAC/E,IAAI,iBAAiB,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG;;AAE7B,gBAAA,EAAA,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAA;AAChD,eAAA,EAAA,iBAAiB,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAA;AAC7F,qBAAA,EAAA,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;;;SAGlE;;;;AAKP;;AAEG;IACK,+BAA+B,GAAA;AACrC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;;;AAIlF;;AAEG;IACK,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAQ,KAAI;YACpF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,mBAAmB,EAAE;;AAE9B,SAAC,CAAC;;AAGJ;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,OAAO,CAAkD,+CAAA,EAAA,IAAI,CAAC,MAAM,GAAG,qBAAqB,GAAG,EAAE,EAAE;;AAGrG;;;AAGG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGtB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB;;AAEF,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAG9B;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAyB,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE;AACpC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE;;AAExD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;;IAIzB,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAE1B,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,mBAAmB,EAAE;AAE1B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,4BAA4B,EAAE;;AAGrC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC7B,SAAC,CAAC;;;IAIJ,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;;AAExC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;;AAGG;IACH,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,SAAS,EAAE;;aACX;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;YACvB,IAAI,CAAC,QAAQ,EAAE;;;AAInB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE,EAAE;YACtB;;QAGF,IAAI,CAAC,UAAU,GAAI,KAAK,EAAE,MAA2B,EAAE,KAAK;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC;QAEpF,IAAI,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;;aAC1B;YACL,IAAI,CAAC,UAAU,EAAE;YACjB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC5B,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC;oBAEnB,IAAI,CAAC,kBAAkB,EAAE;;AAE7B,aAAC,CAAC;;;AAIN;;AAEG;AACH,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAS,MAAA,EAAA,KAAK,EAAE;;AAGxC;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,OAAO;;AAG/B;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,eAAe;;AAGvC;;AAEG;IACK,kBAAkB,GAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,aAAa;AAC3E,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,EAAE;QAChC,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;;AAG9C;;AAEG;IACK,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE;AAC1B,gBAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM;AAClE,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;iBACtB;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB;;YAG5C,IAAI,CAAC,kBAAkB,EAAE;;;AAI7B;;AAEG;IACK,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC;AAChG,YAAA,IAAI,CAAC,UAAU,GAAG,aAAa;YAC/B,IAAI,CAAC,kBAAkB,EAAE;;;AAI7B;;AAEG;IACK,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;;AAG3B;;AAEG;AACH,IAAA,kBAAkB,CAAC,CAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;;YAEnB;;AAGF,QAAA,QAAQ,CAAC,CAAC,GAAG;AACX,YAAA,KAAK,WAAW;gBACd,CAAC,CAAC,cAAc,EAAE;AAClB,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,oBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;oBACvB,IAAI,CAAC,QAAQ,EAAE;AACf,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB;oBAC1C,IAAI,CAAC,kBAAkB,EAAE;;qBACpB;oBACL,IAAI,CAAC,gBAAgB,EAAE;;gBAEzB;AACF,YAAA,KAAK,SAAS;gBACZ,CAAC,CAAC,cAAc,EAAE;AAClB,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,oBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;oBACvB,IAAI,CAAC,QAAQ,EAAE;;AAEjB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB;gBAC1C,IAAI,CAAC,oBAAoB,EAAE;gBAC3B;AACF,YAAA,KAAK,QAAQ;gBACX,CAAC,CAAC,cAAc,EAAE;AAClB,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,SAAS,EAAE;;gBAElB;AACF,YAAA,KAAK,OAAO;gBACV,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE;AACzC,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;gBAErD;AACF,YAAA;;AAEE,gBAAA,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO;gBAC7G,IAAI,cAAc,EAAE;AAClB,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;oBACtB,IAAI,CAAC,cAAc,EAAE;AAErB,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;wBAChB,IAAI,CAAC,QAAQ,EAAE;;oBAGjB,UAAU,CAAC,MAAK;AACd,wBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC9C,wBAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC9B,wBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,qBAAC,CAAC;;;;AAKV;;AAEG;IACK,gBAAgB,GAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC;AACrF,QAAA,OAAO,YAAY,GAAG,CAAC,CAAC;;AAG1B;;AAEG;AACH,IAAA,UAAU,CAAC,MAA0B,EAAA;QACnC,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;;AAElD,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM;QAC3B,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;;AAGG;AACH,IAAA,cAAc,CAAC,CAAa,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB;;AAGF,QAAA,IACE,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAqB,CAAC;AACjE,YAAA,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAqB,CAAC,EAClE;YACA,IAAI,CAAC,SAAS,EAAE;;;AAIpB;;;;AAIG;IACH,aAAa,CAAC,KAAa,EAAE,MAA0B,EAAA;AACrD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;;AAEtC,QAAA,OAAO,MAAM;;AA3nBJ,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,qBAAqB,sGAwNtB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAxNP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAnBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE;AACR;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAkNkD,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAMT,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAMhB,WAAW,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAxBzB,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAM9B,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtPjC,0rIA4IA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED7FI,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,iBAAiB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,kBAAkB,EAAA,QAAA,EAAA,0GAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EATF,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAYjC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvBjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAEV,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE;AACR;qBACF,EACW,UAAA,EAAA,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAC7B,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACP,kBAAkB;wBAClB,iBAAiB;wBACjB,iBAAiB;wBACjB,kBAAkB;wBAClB,kBAAkB;wBAClB;AACD,qBAAA,EAAA,QAAA,EAAA,0rIAAA,EAAA;;0BA0NE,MAAM;2BAAC,QAAQ;yCArHlB,QAAQ,EAAA,CAAA;sBADP;gBAOD,mBAAmB,EAAA,CAAA;sBADlB;gBAOD,eAAe,EAAA,CAAA;sBADd;gBAOD,oBAAoB,EAAA,CAAA;sBADnB;gBAOD,oBAAoB,EAAA,CAAA;sBADnB;gBAOD,WAAW,EAAA,CAAA;sBADV;gBAOD,QAAQ,EAAA,CAAA;sBADP;gBAOD,SAAS,EAAA,CAAA;sBADR;gBAWY,IAAI,EAAA,CAAA;sBAAhB;gBAYQ,SAAS,EAAA,CAAA;sBAAjB;gBAMQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAMD,MAAM,EAAA,CAAA;sBADL;gBAMmB,QAAQ,EAAA,CAAA;sBAA3B,SAAS;uBAAC,OAAO;gBAK8B,WAAW,EAAA,CAAA;sBAA1D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAO9C,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,iBAAiB;gBAO/B,mBAAmB,EAAA,CAAA;sBADlB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,2BAA2B,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAOhE,qBAAqB,EAAA,CAAA;sBADpB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,6BAA6B,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAOlE,gBAAgB,EAAA,CAAA;sBADf,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;;;ME1PlD,cAAc,CAAA;AAP3B,IAAA,WAAA,GAAA;QAQU,IAAc,CAAA,cAAA,GAAG,UAAU;AAsGpC;IA/CW,cAAc,GAAA;QACtB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGnC,iBAAiB,GAAA;AACzB,QAAA,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAClC,OAAO,IAAI,CAAC,KAAK;;AAGnB,QAAA,IAAI,cAAc,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,EAAE;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC7E,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;gBACxB,cAAc,GAAG,IAAI;;iBAChB;AACL,gBAAA,cAAc,GAAG,CAAG,EAAA,IAAI,CAAC,UAAU,GAAG;;;AAG1C,QAAA,OAAO,cAAc;;IAGb,qBAAqB,GAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC9C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,QAAQ,CAAA,CAAE;;IAGzC,oBAAoB,GAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;IAGxC,iBAAiB,GAAA;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;IAGrC,sBAAsB,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,OAAO,EAAE;;AAEX,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,cAAc,aAAa;;8GArGjC,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,oSAsDX,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpEnC,izBAkBA,EDNY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,wYAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;+BACE,UAAU,EAAA,eAAA,EAEH,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,izBAAA,EAAA;8BAU7B,QAAQ,EAAA,CAAA;sBAAhB;gBAOQ,OAAO,EAAA,CAAA;sBAAf;gBAOQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAMQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBASQ,SAAS,EAAA,CAAA;sBAAjB;gBAE4C,UAAU,EAAA,CAAA;sBAAtD,YAAY;uBAAC,mBAAmB;;;AEjE5B,MAAMC,eAAa,GAAG;AAC3B,IAAA,MAAM,EAAE,EAAC,sBAAsB,EAAE,OAAO,EAAC;CAC1C;AAEM,MAAM,gBAAgB,GAEzB;AACF,IAAA,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;AAC1B,QAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAC,CAAC,CAAC;AACjE,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAC,CAAC,CAAC;QAC9D,UAAU,CACR,QAAQ,EACR,OAAO,CAAC,CAA8B,2BAAA,EAAA,qCAAqC,CAAE,CAAA,CAAC,EAC9EA,eAAa,CACd;KACF,CAAC;CACH;;MCLY,gBAAgB,CAAA;AAqD3B,IAAA,WAAA,GAAA;AAnDA;;AAEG;QACc,IAAgB,CAAA,gBAAA,GAAG,YAAY;AAOhD;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,IAAI;AAaxB;;AAEG;QACM,IAAS,CAAA,SAAA,GAAqB,KAAK;AAE5C;;AAEG;QACM,IAAc,CAAA,cAAA,GAA0B,QAAQ;AAEzD;;AAEG;QACM,IAAY,CAAA,YAAA,GAAY,IAAI;AAErC;;AAEG;QACM,IAAU,CAAA,UAAA,GAAG,IAAI;;AAU1B;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,SAAS,CAAA,CAAE;;AAItD;;AAEG;IACH,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,gBAAgB,YAAY,IAAI,CAAC,cAAc,CAAA,CAAE;;AAGlE;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAW,SAAA,CAAA,GAAG,EAAE;;AAGlE;;AAEG;IACH,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAc,YAAA,CAAA,GAAG,EAAE;;8GAxF7D,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd7B,gvBAkBA,EDNY,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,0XAFV,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAI3B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGL,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAC1B,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gvBAAA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA;wDAYd,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAMQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,kBAAkB,EAAA,CAAA;sBAA1B;;;MEzCU,gBAAgB,CAAA;IAW3B,IACI,cAAc,CAAC,KAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC5B,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;AACtF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC3B,aAAA,mBAAmB,CAAC,IAAI,CAAC,EAAE;AAC3B,aAAA,aAAa,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;aACzC,wBAAwB,CAAC,mBAAmB,CAAC;AAChD,QAAA,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,gBAAgB,CAAC;;AAG3D,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;;IAK7B,WACU,CAAA,EAAc,EACd,sBAA8C,EAC9C,OAAgB,EAChB,gBAAkC,EAChB,GAAa,EAC/B,IAAY,EAAA;QALZ,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB;QACtB,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;QACE,IAAG,CAAA,GAAA,GAAH,GAAG;QACrB,IAAI,CAAA,IAAA,GAAJ,IAAI;AAlCN,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ;;IAqCxD,QAAQ,GAAA;AACN,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;AAEtF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC3B,aAAA,mBAAmB,CAAC,IAAI,CAAC,EAAE;AAC3B,aAAA,aAAa,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;aACzC,wBAAwB,CAAC,mBAAmB,CAAC;QAEhD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU;AACzD,SAAA,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;IAG7B,kBAAkB,GAAA;AAChB,QAAA,MAAM,eAAe,GAAsB;AACzC,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;SACX;AACD,QAAA,QAAQ,IAAI,CAAC,cAAc,EAAE,SAAS;AACpC,YAAA,KAAK,QAAQ;gBACX,OAAO;AACL,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,QAAQ,EAAE;iBACX;AACH,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,eAAe;AACxB,YAAA,KAAK,MAAM;gBACT,OAAO;AACL,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE;iBACX;AACH,YAAA,KAAK,OAAO;gBACV,OAAO;AACL,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE;iBACX;AACH,YAAA;AACE,gBAAA,OAAO,eAAe;;;IAM5B,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB;;AAEF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC/E,KAAK,CACH,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,EACjE,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC;AAE9D,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAClB,SAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,KAAI;AAC/D,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACxB,oBAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc;oBAC7C,IAAI,CAAC,gBAAgB,EAAE;AACrB,wBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;4BACjB,IAAI,CAAC,IAAI,EAAE;AACb,yBAAC,CAAC;;AAEN,iBAAC,CAAC;AACJ,aAAC,CAAC;YAEF,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC;AAC3D,SAAC,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE;AAEvB,QAAA,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;;AAK5G,IAAA,IAAI,CAAC,KAAM,EAAA;AACT,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa;AAC9C,QAAA,MAAM,gBAAgB,GAAG,cAAc,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC;AACzF,QAAA,MAAM,SAAS,GAAI,KAAoB,EAAE,aAA4B;AACrE,QAAA,MAAM,mBAAmB,GAAG,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC;AAC7F,QAAA,MAAM,mBAAmB,GAAG,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC;AACpF,QAAA,IAAI,CAAC,SAAS,KAAK,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACrF,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;YACtC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,CAAC,kBAAkB,CAAC;;;IAIlF,gBAAgB,GAAA;AACd,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ;QAClD,IAAI,CAAC,gBAAgB,EAAE;YACrB;;AAGF,QAAA,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK;QACtF,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS;QAC3D,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,IAAI,IAAI;QACjE,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS;QAC3D,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,IAAI,QAAQ;QACjF,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,IAAI,KAAK;QACpE,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,IAAI,IAAI;QACzE,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,IAAI,IAAI;AACrE,QAAA,gBAAgB,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB;;AAhKtD,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,gBAAgB,+IAkCjB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAlCP,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAmCI,MAAM;2BAAC,QAAQ;8DAtBd,cAAc,EAAA,CAAA;sBADjB;gBAgBQ,oBAAoB,EAAA,CAAA;sBAA5B;gBAqED,IAAI,EAAA,CAAA;sBAFH,YAAY;uBAAC,YAAY;;sBACzB,YAAY;uBAAC,SAAS;gBAoCvB,IAAI,EAAA,CAAA;sBAFH,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;;sBACrC,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;;;MC1IzB,eAAe,CAAA;AAyE1B,IAAA,WAAA,GAAA;QAxEQ,IAAe,CAAA,eAAA,GAAG,WAAW;AA+CrC;;AAEG;QACM,IAAmB,CAAA,mBAAA,GAAiB,aAAa;;AAwB1D;;AAEG;IACH,oBAAoB,GAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;YAC7B,OAAO,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;aAC5B;YACL,OAAO,IAAI,CAAC,QAAQ;;;AAIxB;;AAEG;IACH,YAAY,GAAA;AACV,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,IAAI;AACb,YAAA;AACE,gBAAA,OAAO,IAAI;;;AAIjB;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAK,EAAA,EAAA,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,EAAE;;AAGjE;;AAEG;IACH,yBAAyB,GAAA;QACvB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,gBAAgB,GAAG,EAAE;;AAG/F;;AAEG;IACH,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,YAAY,GAAG,EAAE;;AAG1F;;AAEG;IACH,yBAAyB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAa,WAAA,CAAA,GAAG,EAAE;;AAGrE;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAW,SAAA,CAAA,GAAG,EAAE;;AAGlE;;AAEG;IACH,8BAA8B,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,gBAAgB,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAmB,iBAAA,CAAA,GAAG,EAAE;;AAGhF;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;;AAGhF;;AAEG;IACH,gBAAgB,GAAA;QACd,OAAO;YACL,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,CAAC,8BAA8B,EAAE;YACrC,IAAI,CAAC,kBAAkB;SACxB;;8GA9JQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,6lBChB5B,g8DA8CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhCY,cAAc,EAAE,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oIAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE7C,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAEN,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,cAAc,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,g8DAAA,EAAA;wDAQhD,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAKQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAKQ,oBAAoB,EAAA,CAAA;sBAA5B;gBAKQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAKQ,qBAAqB,EAAA,CAAA;sBAA7B;gBAKQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAK4B,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB;;;MEhFhB,sBAAsB,CAAA;AAIjC,IAAA,WAAA,GAAA;QAHsB,IAAK,CAAA,KAAA,GAAG,oBAAoB;QAC9B,IAAG,CAAA,GAAA,GAAG,EAAE;;8GAFjB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,KAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACb,iBAAA;wDAEuB,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO;gBACA,GAAG,EAAA,CAAA;sBAAtB,WAAW;uBAAC,KAAK;;;MCiBP,mBAAmB,CAAA;AAsD9B,IAAA,WAAA,GAAA;AArDA;;AAEG;QACc,IAAmB,CAAA,mBAAA,GAAG,gBAAgB;AAYvD;;AAEI;QACK,IAAG,CAAA,GAAA,GAAY,CAAC;AAOzB;;AAEI;QACK,IAAI,CAAA,IAAA,GAAgB,IAAI;AAOjC;;AAEG;AACO,QAAA,IAAA,CAAA,cAAc,GAA6B,IAAI,YAAY,EAAc;;IAiBnF,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;AAChE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE;;AAGpD;;AAEG;IACH,mBAAmB,GAAA;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;AAC5C,QAAA,IAAI,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE;YACzC;;AAEF,QAAA,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AACrD,YAAA,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACvB,YAAA,OAAO,MAAM;AACf,SAAC,CAAC;;AAGJ;;AAEG;IACH,yBAAyB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;AAGvD;;AAEG;IACH,yBAAyB,GAAA;AACvB,QAAA,OAAO,CAAK,EAAA,EAAA,IAAI,CAAC,cAAc,EAAE;;AAGnC;;AAEG;IACH,sBAAsB,GAAA;QACpB,OAAO,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa;;8GAhGrG,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,+RAmDb,eAAe,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7ElC,4nBAcA,EDUY,MAAA,EAAA,CAAA,uQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,yRAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE5B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGT,eAAA,EAAA,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,eAAe,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,4nBAAA,EAAA,MAAA,EAAA,CAAA,uQAAA,CAAA,EAAA;wDAqB/B,GAAG,EAAA,CAAA;sBAAX;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,uBAAuB,EAAA,CAAA;sBAA/B;gBAKS,cAAc,EAAA,CAAA;sBAAvB;gBAOQ,aAAa,EAAA,CAAA;sBAArB;gBAMD,OAAO,EAAA,CAAA;sBADN,eAAe;uBAAC,eAAe;;;MEtDrB,aAAa,CAAA;AAExB,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;;AA6EvE,IAAA,WAAA,CAAoD,iBAAwC,EAAA;QAAxC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QA1E7D,IAAS,CAAA,SAAA,GAAG,SAAS;QAErB,IAAS,CAAA,SAAA,GAAG,cAAc;AAElC;;AAEG;QACM,IAAO,CAAA,OAAA,GAAgB,SAAS;AAsBzC;;AAEG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK;AAI3B;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK;AAOxB;;AAEG;QACM,IAAY,CAAA,YAAA,GAAqB,OAAO;AAuB9B,QAAA,IAAA,CAAA,UAAU,GAAI,MAAM,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;AAKjF;;AAEG;IACH,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;;AAGpD;;AAEG;IACH,mBAAmB,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAC/C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;AAG7C;;AAEG;IACH,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;AAC3C,YAAA,OAAO,EAAE;;QAEX,OAAO,IAAI,CAAC,SAAS;;AAGvB;;AAEG;IACH,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;AAClC,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,CAAA,CAAE;;AAGlD;;AAEG;IACH,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;AAhI/B,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,aAAa,kBAiFD,UAAU,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAjFtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,uaCvB1B,2kEAiDA,EAAA,MAAA,EAAA,CAAA,uTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5BY,aAAa,EAAE,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,wYAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEtC,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,mBAGF,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,WACP,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,2kEAAA,EAAA,MAAA,EAAA,CAAA,uTAAA,CAAA,EAAA;;0BAmFrC,SAAS;2BAAC,UAAU;yCA9E7B,QAAQ,EAAA,CAAA;sBADX,WAAW;uBAAC,eAAe;gBAYnB,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,MAAM,EAAA,CAAA;sBAAd;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,GAAG,EAAA,CAAA;sBAAX;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,aAAa,EAAA,CAAA;sBAArB;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,EAAE,EAAA,CAAA;sBAAV;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;;;MEvFU,uBAAuB,CAAA;AAuClC,IAAA,WAAA,GAAA;AAtCA;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK;;8GAJd,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,ECZpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,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,EAAA,8jBAgBA,EDNY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,yNAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAEb,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,aAAa,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,8jBAAA,EAAA;wDAM7B,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,MAAM,EAAA,CAAA;sBAAd;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAQQ,KAAK,EAAA,CAAA;sBAAb;gBAK0B,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;;;ME1Bd,mBAAmB,CAAA;AA8B9B,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;AA7BvB;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAW,aAAa;AAE1C;;;;AAIG;QACM,IAAa,CAAA,aAAA,GAAW,mBAAmB;;IA8BpD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,MAAM,GAAG,CAAC;AAC7D,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;AACjD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB,EAAE;;IAGrD,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;AACjD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB,EAAE;AACnD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;QAGvB,UAAU,CAAC,MAAK;AACb,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAmB,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE;AACxF,SAAC,CAAC;;AAGJ;;AAEG;IACH,uBAAuB,GAAA;QACrB,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;AAC5D,QAAA,IAAI,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,EAAE;YACjD;;AAEF,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAoB;;AAGnF;;AAEG;IACH,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB;;QAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;AAC5D,QAAA,MAAM,qBAAqB,GAAG,oBAAoB,EAAE,MAAM;AAC1D,QAAA,OAAO,oBAAoB,CAAC,qBAAqB,GAAG,CAAC,CAAC;;8GAxF7C,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAmCb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,uBAAuB,EC1D1C,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,uuBAiBA,2CDIqC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEpC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;+BACE,eAAe,EAAA,eAAA,EAER,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,uBAAuB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,uuBAAA,EAAA;sFAQvC,SAAS,EAAA,CAAA;sBAAjB;gBAOQ,aAAa,EAAA,CAAA;sBAArB;gBAuBD,eAAe,EAAA,CAAA;sBADd,eAAe;uBAAC,uBAAuB;gBAMpB,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO;;;MElDP,eAAe,CAAA;AAkB1B,IAAA,WAAA,GAAA;QAjBQ,IAAe,CAAA,eAAA,GAAG,WAAW;AAErC;;AAEG;QACM,IAAO,CAAA,OAAA,GAA4B,OAAO;AAOnD;;AAEG;QACM,IAAI,CAAA,IAAA,GAAe,IAAI;;AAIhC;;AAEG;IACH,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC/D,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;AAGnD;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;8GArCrC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd5B,kJAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDSY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAEJ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,kJAAA,EAAA;wDAQd,OAAO,EAAA,CAAA;sBAAf;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;;;MElBU,aAAa,CAAA;AAT1B,IAAA,WAAA,GAAA;AAWE;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK;AAE1B;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK;AAC9B;8GAXY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ1B,mZAWA,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEX,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAGF,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,mZAAA,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA;8BAOd,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;;;MEfU,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;QAFA,IAAK,CAAA,KAAA,GAAG,cAAc;;8GADjC,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE;AACb,iBAAA;+EAEuB,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO;;;MCFT,oBAAoB,CAAA;AAJjC,IAAA,WAAA,GAAA;AAKkB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAiB,WAAW,CAAC;AAClE;8GAFY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACFD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;ACUjD,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AARzD,IAAA,WAAA,GAAA;;AAcE;;AAEG;QACM,IAAO,CAAA,OAAA,GAAqB,SAAS;AAM/C;IAJW,YAAY,GAAA;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,EAAA,EAAK,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,IAAI;AAC9G,QAAA,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;8GAbrF,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/B,iJAOA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIY,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEhB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAER,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,iJAAA,EAAA;8BAMnB,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,OAAO,EAAA,CAAA;sBAAf;;;AEtBU,MAAA,aAAa,GAAG;IAC3B,WAAW;IACX,aAAa;IACb,aAAa;IACb,UAAU;IACV,aAAa;IACb,oBAAoB;IACpB,mBAAmB;IACnB,KAAK;IACL,KAAK;IACL,WAAW;IACX,YAAY;IACZ,MAAM;IACN,SAAS;IACT,iBAAiB;IACjB,UAAU;IACV,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,OAAO;IACP,KAAK;IACL,MAAM;IACN,SAAS;IACT,MAAM;IACN,aAAa;IACb,OAAO;IACP,SAAS;IACT,OAAO;IACP,SAAS;IACT,SAAS;IACT,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,UAAU;IACV,SAAS;IACT,KAAK;IACL,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,UAAU;IACV,WAAW;IACX,UAAU;IACV,aAAa;IACb,QAAQ;IACR,KAAK;IACL,UAAU;IACV,UAAU;IACV,UAAU;IACV,cAAc;IACd,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,SAAS;IACT,QAAQ;IACR,KAAK;IACL,cAAc;IACd,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,gBAAgB;IAChB,gBAAgB;IAChB,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;IACL,OAAO;IACP,MAAM;IACN,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,WAAW;IACX,MAAM;IACN,iBAAiB;IACjB,gBAAgB;IAChB,SAAS;IACT,UAAU;IACV,WAAW;IACX,OAAO;IACP,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,SAAS;IACT,iBAAiB;IACjB,iBAAiB;IACjB,YAAY;IACZ,OAAO;IACP,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,KAAK;IACL,SAAS;IACT,QAAQ;IACR,aAAa;IACb,OAAO;IACP,UAAU;IACV,OAAO;IACP,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,OAAO;IACP;;;MCzGW,wBAAwB,CAAA;AAwCnC,IAAA,WAAA,GAAA;QAtCiB,IAAoB,CAAA,oBAAA,GAAG,qBAAqB;AAE5C,QAAA,IAAA,CAAA,sBAAsB,GAAG;AACxC,YAAA,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAW,SAAA,CAAA;AAChD,YAAA,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAU,QAAA,CAAA;AAC9C,YAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAQ,MAAA,CAAA;AAC1C,YAAA,gBAAgB,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAkB,gBAAA,CAAA;AAChE,YAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAQ,MAAA,CAAA;AAC1C,YAAA,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAW,SAAA,CAAA;AAChD,YAAA,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAS,OAAA,CAAA;AAC5C,YAAA,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAW,SAAA,CAAA;AAChD,YAAA,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAW,SAAA,CAAA;AAChD,YAAA,aAAa,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAe,aAAA,CAAA;AAC1D,YAAA,WAAW,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAe,aAAA,CAAA;AACxD,YAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAa,WAAA,CAAA;AACpD,YAAA,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,oBAAoB,CAAU,QAAA,CAAA;SAC/C;AAED;;AAEG;QACM,IAAM,CAAA,MAAA,GAA0B,QAAQ;;IAoBjD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,KAAK,EAAE;;IAGrG,cAAc,GAAA;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE;AAChC,YAAA,OAAO,EAAE;;AAEX,QAAA,OAAO,WAAW;;IAGpB,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;8GA3D1C,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,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,ECZrC,gSAMA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gSAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA;wDAyBd,MAAM,EAAA,CAAA;sBAAd;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAK0B,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;;;MEhCd,sBAAsB,CAAA;AA0BjC,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;AAzBtB;;AAEG;QACc,IAAkB,CAAA,kBAAA,GAAG,mBAAmB;AAEzD;;AAEG;QACM,IAAO,CAAA,OAAA,GAAyB,OAAO;AAEhD;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,IAAI;AAEzB;;AAEG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK;AAE3B;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAS;;AAIhD;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC7C,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;AAGtD;;AAEG;AACH,IAAA,mBAAmB,CAAC,KAAiB,EAAA;AACnC,QAAA,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG7B;;AAEG;AACH,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,aAAa;;8GAlD5B,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,sMCbnC,wsBAcA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHY,mBAAmB,EAAE,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,wBAAwB,2FAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1D,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAEZ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,wBAAwB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,wsBAAA,EAAA;+EAW7D,OAAO,EAAA,CAAA;sBAAf;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKS,UAAU,EAAA,CAAA;sBAAnB;;;AElCI,MAAMA,eAAa,GAAG;AAC3B,IAAA,MAAM,EAAE,EAAC,sBAAsB,EAAE,OAAO,EAAC;CAC1C;AAEM,MAAM,cAAc,GAEvB;AACF,IAAA,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAC,CAAC,CAAC;AAC3D,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAC,CAAC,CAAC;QAClD,UAAU,CACR,QAAQ,EACR,OAAO,CAAC,CAA8B,2BAAA,EAAA,qCAAqC,CAAE,CAAA,CAAC,EAC9EA,eAAa,CACd;KACF,CAAC;CACH;;MCKY,cAAc,CAAA;AA2BzB;;AAEG;AACH,IAAA,WAAA,CAA+B,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS;AA7BxC;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK;AAQ7B;;AAEG;QACM,IAAoB,CAAA,oBAAA,GAAG,IAAI;AAOpC;;AAEG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;QAMzC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe;;QAEnE,IAAI,eAAe,EAAE;AACnB,YAAA,eAAe,CAAC,KAAK,CAAC,eAAe,GAAG,+CAA+C;;;AAI3F,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,QAAQ;;IAGhC,eAAe,GAAA;;QAEb,UAAU,CAAC,MAAK;;AAEd,YAAA,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC;AAC3G,SAAC,CAAC;;AAGJ;;AAEG;IACI,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;AACnB,QAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;;8GAvDd,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxB3B,o3BAqBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCY,mBAAmB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,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,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAF/B,CAAC,cAAc,CAAC,KAAK,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAIvB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;+BACE,UAAU,EAAA,eAAA,EAEH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,CAAC,cAAc,CAAC,KAAK,CAAC,EACtB,UAAA,EAAA,IAAI,WACP,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,o3BAAA,EAAA;;0BAgC/B;yCA1BJ,YAAY,EAAA,CAAA;sBAApB;gBAMQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,oBAAoB,EAAA,CAAA;sBAA5B;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAKS,MAAM,EAAA,CAAA;sBAAf;;;ME3BU,YAAY,CAAA;AAuEvB,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;QAtEL,IAAY,CAAA,YAAA,GAAG,QAAQ;AASxC;;AAEG;QACM,IAAI,CAAA,IAAA,GAAa,IAAI;AA2B9B;;AAEG;QACM,IAAkB,CAAA,kBAAA,GAAG,IAAI;AAkBlC;;AAEG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAc;AAEnD;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAc;;AAIrD;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;AAGhD;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpC,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;AAG7C;;AAEG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,EAAE;;AAEX,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,YAAY,YAAY;;AAGzC;;AAEG;AACH,IAAA,SAAS,CAAC,KAAiB,EAAA;QACzB,KAAK,EAAE,cAAc,EAAE;QACvB,KAAK,EAAE,wBAAwB,EAAE;AACjC,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;;AAElC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG7B,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE;;8GApH9D,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,ECtBzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ivDAwDA,EDpCY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,0OAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEhC,YAAY,EAAA,UAAA,EAAA,CAAA;kBARxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAED,eAAA,EAAA,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,ivDAAA,EAAA;+EAUnC,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,MAAM,EAAA,CAAA;sBAAd;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAMQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,aAAa,EAAA,CAAA;sBAArB;gBAKS,QAAQ,EAAA,CAAA;sBAAjB;gBAKS,UAAU,EAAA,CAAA;sBAAnB;;;AE9CG,MAAO,oBACX,SAAQ,iBAAiB,CAAA;aAED,IAAW,CAAA,WAAA,GAAG,QAAH,CAAY;aACvB,IAAU,CAAA,UAAA,GAAG,OAAH,CAAW;aACrB,IAAO,CAAA,OAAA,GAAG,SAAH,CAAa;aACpB,IAAS,CAAA,SAAA,GAAG,WAAH,CAAe;AAChD;;;;;;;;;;;AAWE;aACsB,IAAmB,CAAA,mBAAA,GAAG,mBAAH,CAAuB;AA4HlE,IAAA,WAAA,CAA6B,OAAgC,EAAmB,GAAsB,EAA4B,QAAQ,EAAA;AACxI,QAAA,KAAK,EAAE;QADoB,IAAO,CAAA,OAAA,GAAP,OAAO;QAA4C,IAAG,CAAA,GAAA,GAAH,GAAG;QAA+C,IAAQ,CAAA,QAAA,GAAR,QAAQ;AA1H1I;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAU;AACrC,SAAC;AAED;;AAEG;QACK,IAAU,CAAA,UAAA,GAAG,MAAW;AAChC,SAAC;AAED;;;AAGG;AACK,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;AAEjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAQ;AAEhD;;AAEG;QACH,IAAM,CAAA,MAAA,GAAG,KAAK;AAEd;;AAEG;AACH,QAAA,IAAA,CAAA,eAAe,GAAgB,IAAI,GAAG,EAAU;AAEhD;;AAEG;AACH,QAAA,IAAA,CAAA,cAAc,GAAgB,IAAI,GAAG,EAAU;AAE/C;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,qBAAqB;AAyBzC;;;AAGG;QACM,IAAoB,CAAA,oBAAA,GAAG,IAAI;AAEpC;;;AAGG;QACM,IAAY,CAAA,YAAA,GAAW,UAAU;AAE1C;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAqB,MAAM;AAE5C;;;AAGG;QACM,IAAa,CAAA,aAAA,GAAG,UAAU;AAEnC;;;AAGG;QACM,IAAsB,CAAA,sBAAA,GAAY,cAAc;;IAoCzD,QAAQ,GAAA;AACN,QAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO;AAC7B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,aAAA,SAAS,CAAC,CAAC,CAAa,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;;IAG7D,eAAe,GAAA;QACb,IAAI,CAAC,8BAA8B,EAAE;QACrC,IAAI,CAAC,qBAAqB,EAAE;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QAExB,IAAI,CAAC,aAAa,EAAE;AACjB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;aAChC,SAAS,CAAC,MAAK;YACd,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,8BAA8B,EAAE;gBACrC,IAAI,CAAC,qBAAqB,EAAE;AAC5B,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAC1B,aAAC,CAAC;AACJ,SAAC,CAAC;;IAGN,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;IAG7B,8BAA8B,GAAA;AAC5B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;AAC9B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC;QAExE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC1C,YAAA,IAAI,CAAC,IAAI,GAAG,QAAQ;AACpB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;YAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAEhD,YAAA,IAAI,CAAC;AACF,iBAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;iBAChC,SAAS,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;AAC9B,aAAC,CAAC;AACN,SAAC,CAAC;;IAGJ,qBAAqB,GAAA;QACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;QACtD,IAAI,gBAAgB,EAAE;YACpB,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAC3B,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAG;AACnE,gBAAA,OAAO,GAAG,EAAE,QAAQ,EAAE,KAAK,KAAK;aACjC,CAAC,CAAC,CACJ;AAED,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAC5B;AACG,iBAAA,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;gBAClB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC7D,aAAC;iBACA,MAAM,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,CAC/B;;aACI;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;;QAG7B,IAAI,CAAC,mBAAmB,EAAE;;AAG5B;;AAEG;AACH,IAAA,aAAa,CAAC,CAAa,EAAE,KAAa,EAAE,QAAgB,EAAA;QAC1D,CAAC,EAAE,eAAe,EAAE;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;;AAE5B,QAAA,MAAM,4BAA4B,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC;QACpD,IAAI,CAAC,4BAA4B,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE;YACrC;;;QAGF,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpB,gBAAA,MAAM,YAAY,GAAG,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ;gBAC5E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,eAAe,EAAE;;iBACzC;AACL,gBAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE;;AAEzC,SAAC,CAAC;;AAGJ;;AAEG;AACH,IAAA,cAAc,CAAC,CAAQ,EAAA;QACrB,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE;AACnC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;QAC3B,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;IAGzC,UAAU,CAAC,IAAuB,EAAE,KAAa,EAAA;QACvD,IAAI,CAAC,IAAI,EAAE;YACT;;QAEF,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;AAGzC,IAAA,0BAA0B,CAAC,KAAa,EAAA;QAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;;aAC5B;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;;;AAI1B,IAAA,qBAAqB,CAAC,KAAa,EAAA;QACzC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC;;aAC7B;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;;;IAI3B,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAElB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;AAEnH,QAAA,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;YAC9C,IAAI,CAAC,EAAE,EAAE;gBACP;;YAEF,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,SAAC,CAAC;QAEF,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;;gBAE/B,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE;;AAEzC,gBAAA,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAC,GAAG,EAAE,CAAC,EAAC,CAAC;;AAEzD,SAAC,CAAC;;IAGI,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,SAAS,EAAE;;aACX;YACL,IAAI,CAAC,QAAQ,EAAE;;;AAInB;;AAEG;AACH,IAAA,iBAAiB,CAAC,CAAgB,EAAA;;QAEhC,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,WAAW,EAAE;YAC/C,IAAI,CAAC,SAAS,EAAE;YAChB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE;AACtC,aAAC,CAAC;;;QAIJ,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,OAAO,EAAE;YAC3C,CAAC,CAAC,cAAc,EAAE;;AAElB,YAAA,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,YAAY,IAAI,CAAC;;;QAI1B,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,SAAS,EAAE;YAC7C,CAAC,CAAC,cAAc,EAAE;;AAElB,YAAA,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE;AACtD,gBAAA,IAAI,CAAC,YAAY,IAAI,CAAC;;;;QAK1B,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,UAAU,EAAE;YAC9C,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE;AAC5B,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;AAC9E,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;;;QAKnD,IAAI,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACxD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC;AACrB,kBAAE,OAAO;iBACR,SAAS,CACR,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CACnE;AAEH,YAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS;;;;AAKnC;;AAEG;AACH,IAAA,cAAc,CAAC,CAAa,EAAA;AAC1B,QAAA,MAAM,aAAa,GAAG,CAAC,EAAE,aAAqB;QAC9C,IAAI,CAAC,aAAa,EAAE;YAClB;;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE;YACzD,IAAI,CAAC,SAAS,EAAE;AAEhB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,EAAE;;;;AAKvB;;AAEG;AACH,IAAA,kBAAkB,CAAC,CAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE;YAC5D,IAAI,CAAC,SAAS,EAAE;AAEhB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,EAAE;;;;AAKvB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGtB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAG9B;;;AAGG;AACH,IAAA,UAAU,CAAC,MAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5B,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;AAClB,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC;AAC9F,gBAAA,IAAI,UAAU,IAAI,CAAC,EAAE;AACnB,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;;;;QAI1C,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;IAGjB,mBAAmB,GAAA;QACzB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/D,SAAC,CAAC;;AAGJ;;;AAGG;AACH,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;AAGzD;;;AAGG;AACH,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,aAAa,CAAI,CAAA,EAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA,CAAE;;AAG/D;;;AAGG;AACH,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,uBAAuB,CAAA,CAAE;;AAG/D;;AAEG;AACH,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,EAAE;;AAEX,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAGlD;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,OAAO,CACL,yEAAA,EAAA,IAAI,CAAC,MAAM,GAAG,qBAAqB,GAAG,EACxC,EAAE;;AAGJ;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,YAAY;;AAGpC;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,eAAe;;AAGvC;;AAEG;IACH,gBAAgB,GAAA;QACd,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,iBAAiB,EAAE,CAAA,CAAE;;AAG/D;;AAEG;AACH,IAAA,IAAY,YAAY,GAAA;QACtB,OAAO,IAAI,CAAC;AACV,cAAE,OAAO;AACR,aAAA,SAAS,CACR,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,EAAE,CAAC,aAAa,CAChE;;IAGL,IAAY,YAAY,CAAC,KAAa,EAAA;QACpC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;AACpC,YAAA,EAAE,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK;AAC/B,SAAC,CAAC;QAEF,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,gBAAA,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;;AAE9D,SAAC,CAAC;;AAGJ;;AAEG;AACH,IAAA,IAAI,qBAAqB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB;;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;;AAElC,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;;AAGnE;;AAEG;AACH,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,IAAI;AACb,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,IAAI;AACb,YAAA;AACE,gBAAA,OAAO,IAAI;;;AAIjB;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;;AAG1B,IAAA,WAAW,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAW,QAAA,EAAA,KAAK,EAAE;;AA3jB/B,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,6EA+IiF,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA/I7G,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAZpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAmJgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAAA,iBAAiB,8PAZvB,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9K/B,qrHAsGA,ED3DY,MAAA,EAAA,CAAA,8FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,mPAAE,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAE,QAAA,EAAA,0GAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,0LAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAHnF,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAKjC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGV,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACW,UAAA,EAAA,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAC7B,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,WACP,CAAC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,qrHAAA,EAAA,MAAA,EAAA,CAAA,8FAAA,CAAA,EAAA;;0BAiJS,MAAM;2BAAC,QAAQ;yCApF/G,QAAQ,EAAA,CAAA;sBAAhB;gBAMQ,UAAU,EAAA,CAAA;sBAAlB;gBAMQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAMQ,uBAAuB,EAAA,CAAA;sBAA/B;gBAKQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAMQ,oBAAoB,EAAA,CAAA;sBAA5B;gBAMQ,YAAY,EAAA,CAAA;sBAApB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAMQ,aAAa,EAAA,CAAA;sBAArB;gBAMQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAMoB,QAAQ,EAAA,CAAA;sBAA5B,SAAS;uBAAC,QAAQ;gBAMC,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO;gBAMa,MAAM,EAAA,CAAA;sBAApC,SAAS;uBAAC,kBAAkB;gBAMP,IAAI,EAAA,CAAA;sBAAzB,YAAY;uBAAC,MAAM;gBAMqC,aAAa,EAAA,CAAA;sBAArE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC;;;ME9K5C,mBAAmB,CAAA;AAiC9B,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;AAfvB;;AAEG;QACM,IAAW,CAAA,WAAA,GAAW,CAAC;AAEhC;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,IAAI;AAE5B;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU;;AAInD;;AAEG;IACH,QAAQ,GAAA;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;AAG5D;;AAEG;IACH,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,EAAE;YACnC;;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;YAC1B;;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;AACH,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;YAC7C;;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACvB,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;AACH,IAAA,aAAa,CAAC,IAAY,EAAA;;AAExB,QAAA,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAClE,YAAA,OAAO,IAAI;;;AAGb,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAChE,YAAA,OAAO,IAAI;;QAEb,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AACpC,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;;AAGrE;;AAEG;AACH,IAAA,kBAAkB,CAAC,IAAY,EAAA;;AAE7B,QAAA,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;;8GArGrG,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,kRCZhC,y5CAoCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1BY,aAAa,EAAE,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,0OAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE/C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAER,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,aAAa,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,y5CAAA,EAAA;sFAOlD,aAAa,EAAA,CAAA;sBAArB;gBAMQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAKS,YAAY,EAAA,CAAA;sBAArB;;;AExCI,MAAM,iBAAiB,GAE1B;AACF,IAAA,YAAY,EAAE,OAAO,CAAC,cAAc,EAAE;QACpC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;QAC9C,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;AAC3C,QAAA,UAAU,CAAC,QAAQ,EACjB,OAAO,CAAC,+CAA+C,CAAC,EACxD,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,GAAG,EAAC,EAAC;KAC5B;CACF;;MCAY,iBAAiB,CAAA;AA6C5B,IAAA,WAAA,GAAA;AA5CA;;AAEG;QACc,IAAiB,CAAA,iBAAA,GAAG,aAAa;AAMlD;;AAEG;QACM,IAAK,CAAA,KAAA,GAAG,CAAC;AAElB;;AAEG;QACM,IAAmB,CAAA,mBAAA,GAAgC,MAAM;AAElE;;AAEG;QACM,IAAG,CAAA,GAAA,GAAG,CAAC;AAEhB;;AAEG;QACM,IAAG,CAAA,GAAA,GAAG,GAAG;AAElB;;AAEG;QACM,IAAU,CAAA,UAAA,GAAG,IAAI;AAE1B;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK;AAE9B;;AAEG;QACM,IAAgB,CAAA,gBAAA,GAAG,CAAC;;AAI7B;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,aAAa,GAAG,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAkB,gBAAA,CAAA,GAAG,EAAE;;AAG9E;;AAEG;IACH,2BAA2B,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,mBAAmB,KAAK,OAAO,GAAG,CAAG,EAAA,IAAI,CAAC,iBAAiB,CAAA,uBAAA,CAAyB,GAAG,EAAE;;AAGvG;;AAEG;IACH,iBAAiB,GAAA;QACf,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;YACzB,OAAO,IAAI,CAAC,GAAG;;aACV,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;YAChC,OAAO,IAAI,CAAC,GAAG;;aACV;YACL,OAAO,IAAI,CAAC,KAAK;;;AAIrB;;AAEG;IACH,sBAAsB,GAAA;QACpB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACzB,YAAA,OAAO,GAAG;;aACL,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AAChC,YAAA,OAAO,KAAK;;AAEd,QAAA,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;;8GAnF1G,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb9B,qrBAmBA,EDRY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mNAHV,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAKjC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,mBAEN,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAC7B,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,qrBAAA,EAAA;wDAWd,KAAK,EAAA,CAAA;sBAAb;gBAIQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAKQ,GAAG,EAAA,CAAA;sBAAX;gBAKQ,GAAG,EAAA,CAAA;sBAAX;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,aAAa,EAAA,CAAA;sBAArB;gBAKQ,gBAAgB,EAAA,CAAA;sBAAxB;;;ME1CU,cAAc,CAAA;AAuDzB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;QAtDN,IAAc,CAAA,cAAA,GAAG,UAAU;AAiB5C;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK;AAY1B;;AAEG;QACM,IAAI,CAAA,IAAA,GAAe,IAAI;AAchC;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAA0B,IAAI,YAAY,EAAW;;AAI1E;;AAEG;AACH,IAAA,aAAa,CAAC,KAAY,EAAA;QACxB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;AAGvC;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,IAAc,OAAO,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAErC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;;AAGtD,QAAA,OAAO,OAAO;;8GAhFL,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd3B,8YAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDNY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKX,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;+BACE,UAAU,EAAA,eAAA,EAEH,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EACjB,IAAA,EAAA;AACJ,wBAAA,SAAS,EAAE;AACZ,qBAAA,EAAA,QAAA,EAAA,8YAAA,EAAA;sFAQQ,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAMQ,SAAS,EAAA,CAAA;sBAAjB;gBAMQ,cAAc,EAAA,CAAA;sBAAtB;gBAKS,WAAW,EAAA,CAAA;sBAApB;;;ME/BU,mBAAmB,CAAA;AAoC9B;;AAEG;IACH,IACI,KAAK,CAAC,QAAa,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;YAEtB,IAAI,CAAC,6BAA6B,EAAE;YACpC,IAAI,CAAC,yBAAyB,EAAE;;;AAIpC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;AAGpB;;AAEG;IACH,IACI,QAAQ,CAAC,QAAwB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI;QAC7C,IAAI,CAAC,yBAAyB,EAAE;;AAGlC,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB;;AAEG;IACH,IACI,UAAU,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QACxB,IAAI,CAAC,4BAA4B,EAAE;QACnC,IAAI,CAAC,mBAAmB,EAAE;;AAG5B,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;;AAGzB;;AAEG;IACH,IACI,IAAI,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,mBAAmB,EAAE;;AAG5B,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;AAGnB;;AAEG;IACH,IACI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,mBAAmB,EAAE;;AAG5B,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAiCvB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;AAzIvB;;AAEG;AACK,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ;AAiBxD;;AAEG;QACK,IAAS,CAAA,SAAA,GAAG,KAAK;AAOzB;;AAEG;QACK,IAAmB,CAAA,mBAAA,GAAG,gBAAgB;AA0E9C;;AAEG;QACM,IAAW,CAAA,WAAA,GAA0B,QAAQ;AAiBtD;;AAEG;AACgB,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU;AASjF;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAU,GAAG;AAExC;;AAEG;AACK,QAAA,IAAA,CAAA,UAAU,GAAG,MAAW,GAAG;;IAEnC,kBAAkB,GAAA;QAChB,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,6BAA6B,EAAE;QACpC,IAAI,CAAC,4BAA4B,EAAE;QACnC,IAAI,CAAC,oBAAoB,EAAE;;IAG7B,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;AAG7B;;AAEG;IACK,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB;;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC5B,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,KAAI;gBAC5E,IAAI,UAAU,EAAE;AACd,oBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK;AACzB,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEtC,aAAC,CAAC;AACJ,SAAC,CAAC;;AAGJ;;AAEG;IACK,4BAA4B,GAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC5D;;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YAC5B,IAAI,KAAK,EAAE;AACT,gBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;;AAEtC,SAAC,CAAC;;AAGJ;;AAEG;IACK,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtD;;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YAC5B,IAAI,KAAK,EAAE;AACT,gBAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;;AAE1B,SAAC,CAAC;;AAGJ;;AAEG;IACK,yBAAyB,GAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;AAC/C,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI;;;AAInC;;AAEG;IACK,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,aAAa,EAAE,CAAC;;;AAI1D;;AAEG;IACK,6BAA6B,GAAA;;AAEnC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM;AAEhF,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBAC5B,IAAI,CAAC,KAAK,EAAE;oBACV;;gBAEF,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;AAC5C,gBAAA,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;AAE1B,aAAC,CAAC;YACF,IAAI,CAAC,mBAAmB,EAAE;;;AAI9B;;AAEG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB;;AAEG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGtB;;AAEG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC9B,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,WAAW,CAAA,CAAE;;8GA7RhD,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAZnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE;AACR;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EA8IgB,cAAc,EC5KjC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oYAUA,EDwB4B,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,iOAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE1C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAEf,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE;AACR;AACF,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,cAAc,EAAE,YAAY,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,oYAAA,EAAA;sFA0ClD,KAAK,EAAA,CAAA;sBADR;gBAkBG,QAAQ,EAAA,CAAA;sBADX;gBAeG,UAAU,EAAA,CAAA;sBADb;gBAeG,IAAI,EAAA,CAAA;sBADP;gBAeG,QAAQ,EAAA,CAAA;sBADX;gBAaQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,MAAM,EAAA,CAAA;sBAAd;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKkB,WAAW,EAAA,CAAA;sBAA7B;gBAKuD,MAAM,EAAA,CAAA;sBAA7D,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;AE1KxD,MAAM,aAAa,GAAI;AACrB,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,KAAK,EAAE,KAAK;CACb;AAEM,MAAM,gBAAgB,GAAG,CAAC,IAAmB,KAAI;AACtD,IAAA,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI;AACpC,CAAC;;MCsCY,eAAe,CAAA;AAtB5B,IAAA,WAAA,GAAA;AAuBmB,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;AACzD,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC/B,IAAgB,CAAA,gBAAA,GAAG,KAAK;QACxB,IAAQ,CAAA,QAAA,GAA4C,IAAI;QAEtD,IAAK,CAAA,KAAA,GAAkB,IAAI;QAC3B,IAAS,CAAA,SAAA,GAAwB,IAAI;AAK/C;;AAEG;QACmC,IAAQ,CAAA,QAAA,GAAE,KAAK;AA2BrD;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAQ;AAuElD;IAnEC,kBAAkB,GAAA;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,QAAQ,EAAE;YACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;;;AAIlD,IAAA,IAAc,OAAO,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC;AAC7B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,WAAA,EAAc,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAE,CAAA,CAAC;;AAG5D,QAAA,OAAO,OAAO;;AAGhB,IAAA,IAAc,UAAU,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB;;AAG/C,IAAA,IAAc,YAAY,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;;AAGlC,IAAA,WAAW,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;;IAGd,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,KAAK,EAAE;;;AAIhD;;AAEG;AACH,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACxB;;AAEF,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;AACH,IAAA,gBAAgB,CAAC,QAAwC,EAAA;AACvD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B;;AAEG;AACH,IAAA,iBAAiB,CAAC,SAAqB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AAG5B;;AAEG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU;;8GAjHzB,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAeP,gBAAgB,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EA9BxB,CAAC;AACV,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE;aACR,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA0DY,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9FtC,g6BAyBA,EAAA,MAAA,EAAA,CAAA,+vCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDaI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,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,EACZ,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,mBAAmB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAMF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAtB3B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EAAA,SAAA,EACL,CAAC;AACV,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE;AACR,yBAAA,CAAC,EACO,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;wBACb,mBAAmB;wBACnB,WAAW;qBACZ,EACK,IAAA,EAAA;AACJ,wBAAA,SAAS,EAAE;AACZ,qBAAA,EAAA,QAAA,EAAA,g6BAAA,EAAA,MAAA,EAAA,CAAA,+vCAAA,CAAA,EAAA;8BAYiC,kBAAkB,EAAA,CAAA;sBAAnD,SAAS;uBAAC,aAAa;gBAKc,QAAQ,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC;gBAK3B,OAAO,EAAA,CAAA;sBAAf;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKS,YAAY,EAAA,CAAA;sBAArB;gBAE+C,OAAO,EAAA,CAAA;sBAAtD,YAAY;uBAAC,sBAAsB;;;MElFzB,qBAAqB,CAAA;AAPlC,IAAA,WAAA,GAAA;QAQU,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC,eAAe,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;QAC9C,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC,eAAe,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAE9B,IAAU,CAAA,UAAA,GAAG,KAAK;AA4B5B;AA1BC,IAAA,IAAY,wBAAwB,GAAA;AAClC,QAAA,MAAM,GAAG,GAAiD;AACxD,YAAA,EAAE,EAAE,OAAO;AACX,YAAA,EAAE,EAAE,QAAQ;AACZ,YAAA,EAAE,EAAE,OAAO;AACX,YAAA,EAAE,EAAE;SACL;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;IAG/B,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACtD,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,wBAAwB,IAAI,QAAQ;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;QAGzB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YAC7E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC7C,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACzE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AACxC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;;8GA9BhB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE;AACV;AACF,iBAAA;8BAMU,UAAU,EAAA,CAAA;sBAAlB;;;MCGU,+BAA+B,CAAA;IAgC1C,WAAoB,CAAA,EAAc,EAAU,GAAsB,EAAA;QAA9C,IAAE,CAAA,EAAA,GAAF,EAAE;QAAsB,IAAG,CAAA,GAAA,GAAH,GAAG;AAzB/C;;AAEG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK;AAiB3B;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAc;;IAKtD,qBAAqB,GAAA;QACnB,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,qBAAqB,EAAE;;AAGxD,IAAA,aAAa,CAAC,UAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,aAAa,CAAC,UAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GA9Cd,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,ECpB5C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qpBAYA,EDMY,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,gFAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;+BACE,6BAA6B,EAAA,eAAA,EAGtB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,aAAa,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,qpBAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA;+GAO7B,KAAK,EAAA,CAAA;sBAAb;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,aAAa,EAAA,CAAA;sBAArB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKS,WAAW,EAAA,CAAA;sBAApB;;;MEtBU,yBAAyB,CAAA;AAiCpC;;AAEG;IACH,IACI,KAAK,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;AAGvB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;AAQpB;;AAEG;IACH,IACI,UAAU,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QACxB,IAAI,CAAC,oBAAoB,EAAE;;AAG7B,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;;AAuBzB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;QAnFN,IAAqB,CAAA,qBAAA,GAAG,sBAAsB;AAE/D;;AAEG;AACK,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ;AAExD;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAU,GAAG;AAExC;;AAEG;AACK,QAAA,IAAA,CAAA,UAAU,GAAG,MAAW,GAAG;AAgDnC;;AAEG;QACM,IAAI,CAAA,IAAA,GAAyB,IAAI;AAY1C;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU;;IAIxE,eAAe,GAAA;;;QAGb,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE;YAC5D,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE9B,SAAC,CAAC;;IAGI,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACtE,YAAA,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnD,gBAAA,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;;;;IAKpD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;AAG7B;;AAEG;IACK,uBAAuB,GAAA;QAC7B,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAClD;;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,KAAI;AAC9C,YAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AACnE,gBAAA,MAAM,CAAC,UAAU,GAAG,IAAI;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,aAAC,CAAC;AACJ,SAAC,CAAC;;AAGI,IAAA,SAAS,CAAC,WAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B;;AAEF,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC1C,YAAA,IAAI,MAAM,EAAE,KAAK,KAAK,WAAW,EAAE;AACjC,gBAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1B,gBAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,qBAAqB,EAAE;gBAC3D,MAAM,4BAA4B,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,qBAAqB,EAAE;gBAChG,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK;gBACzE,qBAAqB,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAAG,EAAA,oBAAoB,CAAC,KAAK,CAAI,EAAA,CAAA,CAAC;AAClG,gBAAA,qBAAqB,CAAC,WAAW,CAC/B,4BAA4B,EAC5B,CAAG,EAAA,4BAA4B,CAAC,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAA,EAAA,CAAI,CACvE;;iBACI;AACL,gBAAA,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;;;;AAKjC;;AAEG;IACH,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACpC;;QAEF,OAAO,CAAA,EAAG,IAAI,CAAC,qBAAqB,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;AAGtD;;AAEG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YACxB;;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB;;AAEG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB;;AAEG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGtB;;AAEG;AACH,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GA5Ld,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAwEnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,+BAA+B,ECpGlD,CAAA,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,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iLAIA,2CDsB6C,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5C,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;+BACE,sBAAsB,EAAA,eAAA,EAEf,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,+BAA+B,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,iLAAA,EAAA;sFAuCpD,KAAK,EAAA,CAAA;sBADR;gBAaQ,SAAS,EAAA,CAAA;sBAAjB;gBAMG,UAAU,EAAA,CAAA;sBADb;gBAaQ,IAAI,EAAA,CAAA;sBAAZ;gBAKiD,oBAAoB,EAAA,CAAA;sBAArE,eAAe;uBAAC,+BAA+B;gBAKjB,gBAAgB,EAAA,CAAA;sBAA9C,SAAS;uBAAC,kBAAkB;gBAKnB,WAAW,EAAA,CAAA;sBAApB;;;AElEG,MAAO,eACX,SAAQ,iBAAiB,CAAA;aAED,IAAW,CAAA,WAAA,GAAG,QAAH,CAAY;aACvB,IAAU,CAAA,UAAA,GAAG,OAAH,CAAW;aACrB,IAAO,CAAA,OAAA,GAAG,SAAH,CAAa;aACpB,IAAS,CAAA,SAAA,GAAG,WAAH,CAAe;AAChD;;;;;;;;;;;AAWE;aACsB,IAAmB,CAAA,mBAAA,GAAG,mBAAH,CAAuB;AA6FlE,IAAA,WAAA,CACmB,OAAgC,EAChC,GAAsB,EACb,QAAQ,EAAA;AAElC,QAAA,KAAK,EAAE;QAJU,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAG,CAAA,GAAA,GAAH,GAAG;QACM,IAAQ,CAAA,QAAA,GAAR,QAAQ;AA9FpC;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAU;AACrC,SAAC;AAED;;AAEG;QACK,IAAU,CAAA,UAAA,GAAG,MAAW;AAChC,SAAC;AAED;;;AAGG;AACK,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;AAEjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAQ;AAEhD;;AAEG;QACH,IAAM,CAAA,MAAA,GAAG,KAAK;AAEd;;AAEG;QACH,IAAa,CAAA,aAAA,GAAG,EAAE;AAElB;;AAEG;QACH,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAET,IAAQ,CAAA,QAAA,GAAG,qBAAqB;;IAgEzC,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,8BAA8B,EAAE;YAErC,IAAI,CAAC,aAAa,EAAE;AACjB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;iBAChC,SAAS,CAAC,MAAK;gBACd,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,8BAA8B,EAAE;AACvC,iBAAC,CAAC;AACJ,aAAC,CAAC;AACN,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;;IAGpC,8BAA8B,GAAA;AAC5B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;AAC9B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC;QAExE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;AACnC,YAAA,IAAI,CAAC,IAAI,GAAG,QAAQ;YAEpB,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;AACrC,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;;AAI7D,YAAA,IAAI,CAAC;AACF,iBAAA,IAAI,CACH,SAAS,CAAC,gBAAgB,CAAC;iBAE5B,SAAS,CAAC,MAAK;AACd,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBACrB,IAAI,CAAC,SAAS,EAAE;gBAEhB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE;AACtC,iBAAC,CAAC;AACJ,aAAC,CAAC;AACN,SAAC,CAAC;;AAGF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,GAAG,IAAG;YACjE,OAAO,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,aAAa;AAC9C,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;AACrE,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;;AAGpC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE;AACjC,YAAA,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;;AAE5C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG1B,cAAc,GAAA;AACZ,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,YAAY;;IAGpC,iBAAiB,GAAA;AACf,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,eAAe;;IAGvC,gBAAgB,GAAA;QACd,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,iBAAiB,EAAE,CAAA,CAAE;;AAG/D;;AAEG;AACK,IAAA,aAAa,CAAC,KAAa,EAAA;QACjC,OAAO,IAAI,CAAC;AACV,cAAE,OAAO;AACR,aAAA,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC;;IAG3C,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa;QAEtC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,EAAE;;gBAE7B,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE;;AAEzC,gBAAA,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAC,GAAG,EAAE,CAAC,EAAC,CAAC;;AAEzD,SAAC,CAAC;;IAGI,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;IAGrB,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,SAAS,EAAE;;aACX;YACL,IAAI,CAAC,QAAQ,EAAE;;;AAInB;;AAEG;AACH,IAAA,IAAY,YAAY,GAAA;QACtB,OAAO,IAAI,CAAC;AACV,cAAE,OAAO;AACR,aAAA,SAAS,CACR,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,EAAE,CAAC,aAAa,CAChE;;IAGL,IAAY,YAAY,CAAC,KAAa,EAAA;QACpC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;AACpC,YAAA,EAAE,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK;AAC/B,SAAC,CAAC;QAEF,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;;AAE3D,SAAC,CAAC;;AAGJ,IAAA,iBAAiB,CAAC,CAAgB,EAAA;;QAEhC,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,WAAW,EAAE;YAC1C,IAAI,CAAC,SAAS,EAAE;YAChB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE;AACtC,aAAC,CAAC;;;QAIJ,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,OAAO,EAAE;YACtC,CAAC,CAAC,cAAc,EAAE;;AAElB,YAAA,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,YAAY,IAAI,CAAC;;;QAI1B,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,SAAS,EAAE;YACxC,CAAC,CAAC,cAAc,EAAE;;AAElB,YAAA,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE;AACtD,gBAAA,IAAI,CAAC,YAAY,IAAI,CAAC;;;;QAK1B,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,UAAU,EAAE;YACzC,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE;AAC5B,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;AACnE,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;YAEvB,IAAI,CAAC,SAAS,EAAE;YAEhB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE;AACtC,aAAC,CAAC;;;QAIJ,IAAI,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACnD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC;AACrB,kBAAE,OAAO;iBACR,SAAS,CACR,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CACnE;AAEH,YAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,YAAY,GAAG,SAAS;;;;AAKnC,IAAA,cAAc,CAAC,CAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAqB,CAAC,EAAE;YAClE,IAAI,CAAC,SAAS,EAAE;AAEhB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,EAAE;;;;AAKvB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGtB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB;;AAEF,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAG9B;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;YACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC;AAChD,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,IAAc,kBAAkB,GAAA;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa;QAChC,OAAO,EAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC;;AAGzC;;;AAGG;AACH,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;AAGtE;;;AAGG;AACH,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,MACvB,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,uBAC5E,CAAA,CAAE;;AAnYO,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,eAAe,6EAmHhB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAnHP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAZf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EA6Ga,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,mEAMjB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EArBvB,kBAAkB,ECpI/B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6jEAiEA,qTDvBY,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAE,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,+KAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAHrE,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAKjC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGJ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACW,UAAA,EAAA,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAC7B,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,6jEAAA,EAAA,MAAA,EAAA,CAAA,6PAAA,CAAA,EAAA;;0BAqH/E,MAAM;2BAAC,QAAQ;yCA3DT,QAAQ,EAAA,CAAA;sBAAhB;gBAMQ,UAAU,EAAA,CAAA;sBAAlB;gBAMQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAMQ,uBAAuB,EAAA,CAAA;sBAA/B;gBAMoB,QAAQ,EAAA,CAAA;sBAA5B,SAAS;uBAAC,QAAQ;gBAEmB,aAAa,EAAA,CAAA;sBAAlD,SAAS;uBAAC,eAAe;gBAMK,MAAM,EAAA,CAAA;sBAApC,SAAS;uBAAC,kBAAkB;gBAeiB,WAAW,EAAA,CAAA;sBAAxD,YAAY;uBAAC,oBAAoB;gBAOlC,aAAa,EAAA,CAAA;sBADZ,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC;;;MEnJ5C,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,WAAoB,EAAC;AAC3C;8GAFY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCGY,oBAAoB,CAAA;AAW/B,IAAA,WAAA,GAAA;AAPQ,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAGlC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEpC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAGrC,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI;QACnC,IAAI,CAAC,yBAAyB,EAAE;;IAGlC,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACpD,IAAI,CAAC,yBAAyB,EAAE;;;IAI5B,yBAAyB,GAAA;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;QAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB;AACjD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GAzBd,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACb,iBAAA;wDAKS,OAAO,EAAA,CAAA;sBADd;gBAIO,QAAQ,EAAA,CAAA;sBADf;;;MCPU,oBAAoB,CAAA;AAJjC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,WAA+B,EAAC;AACtD;8GAFY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MC6BY,gBAAgB,CAAA;AAf7B,IAAA,WAAA,GAAA;QAiBU,IAAW,CAAA,WAAA,GAAG,YAAY;AAElC;;AAEG;QAGH,IAAQ,CAAA,QAAA,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAW,CAAA,WAAA,GAAG,IAAI;AAElB;;AAEG;QAEH,IAAa,CAAA,aAAA,GAAG,MAAM;AAEtB;;AAEG;AAEH,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAc;AAKjD;8GAhCY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,2FAQP,gBAAgB,CAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAMhB,gBAAgB,CAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAetB,oBAAoB,EAEjB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,sBAAsB,EClEzC,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u+BAmBA,2CDQI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,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,EACZ,kBAAkB,EAClB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,+QAEjB,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAIX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAf5B,SAAS;+BACE,YAAY,EAAA,eAAA,EAEL,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,iBAAiB;wBACjB,sBAAsB;wBACtB,oBAAoB;wBACpB;AACD,qBAAA,EAAA,QAAA,EAAA,u+BAAA,EAAA;8BAIO,WAAW,EAAA,CAAA;sBADlB,WAAW;uBAAC,OAAO;gBAQpB,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,0BAA0B;;sBACtC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAOtC,WAAW,EAAA,CAAA;sBADV,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAOtC,aAAa,EAAA,CAAA;sBADZ;gBAOD,eAAe,EAAA,CAAA;sBADd;gBAG6C,IAAI,EAAA,CAAA;sBAAjD,YAAY;uBAAC,oBAAoB;gBAEiB,cAAc,EAAA,CAAA;sBAAhE,eAAe;uBAAC,sBAAsB;;;ME5D5B,uBAAuB,CAAA;AAJpC,IAAA,WAAA,GAAA;QAMU,IAAW,CAAA,WAAA,GAAG,oBAAoB;QAI1C,IAAe,CAAA,eAAA,GAAG,KAAK;AACxB;8GAPY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,wHAKf,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,kCAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FALxB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE;AACb,iBAAA;8BAGS,WAAW,EAAA,CAAA;sBADlB,WAAW;uBAAC,OAAO;gBAKpB,eAAe,EAAA,CAAA;sBAFd,WAAW;uBAAC,kCAAkC;;sBAC9C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC;;;MCLzB,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,WAAoB,EAAC;AAC3C;8GAFY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,WAAoB,EAAC;AAC3C;8GAFY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCSY,kBAAkB,CAAA;AAR/B,IAAA,WAAA,GAAA;QASgC,IAAW,CAAA,WAAA,GAAG,cAAc;AAI3D;8GALY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,mKAGf,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACxB,wBAAwB,EClBxC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4YASA,2CDGY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,mBAEP,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,EAAA,QAAA,EAAA,4YAAA,EAAA;8BAGlE,WAAW,EAAA,CAAA;sBAAxC,WAAW;uBAAC,OAAO;gBAE8B,MAAM,EAAA,CAAA;sBAAvD,YAAY;uBAAC,wBAAwB;gBACY,MAAM,EAAA,CAAA;sBAAvD,YAAY;uBAAC,wBAAwB;;;MEZ3B,8BAA8B,CAAA;AAJ3C,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAuB,WAAW,CAAC;AACxD;8GAFY,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCmBY,wBAAwB,CAAA;AATrC,IAAA,WAAA,GAAA;QAUgC,IAAW,CAAA,WAAA,GAAG,qBAAqB;AASjE;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,IAAI;AAE5B;;AAEG;AACO,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAc;AAO5D;AAHC,IAAA,IAAc,0BAA0B,GAAA;QACtC,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;;8GAvBtC,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,2QAoBlB,8BAA8B,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5CjD,4jBAWA,EDW4C,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,0OAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEhE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,mBAGd,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,WACP,CAAC,8BAA8B,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,4jBAAA,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA;8BAG9C,WAAW,EAAA,CAAA;sBAAxC,WAAW;uBAAC,OAAO;gBAMX,KAAK,EAAA,CAAA;sBAAb;gBAMQ,YAAY,EAAA,CAAA;sBAApB;gBAKS,gBAAgB,EAAA,CAAA;sBAAzB;gBAE0D,OAAO,EAAA,CAAA;sBAAjE,eAAe;uBAAC,8BAA8B;;;MEtCpC,6BAA6B,CAAA;AAJ1C,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,WAAoB,EAAC;AAC3C;8GAFY,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACFM,MAAM,aAAa,GAAG;AAC3B,IAAA,MAAM,EAAE,EAAC,iBAAiB,EAAE,OAAO,EAAC;CACrC;AAEM,MAAM,wBAAwB,GAGjC;AACF,IAAA,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,EAAE;AAChD,QAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,kBAAkB,EAAC,CAAC,CAAC;AACnE,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAC,CAAC,CAAC;QAClD,UAAU,CACR,gBAAgB,EAChB,OAAO,CAAC,CAAyB,sBAAA,EAAA,mCAAmC,CAAE,CAAA,CAAC,EACvE,aAAa,CACd;KACF,CAAC;AACF,IAAA,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE;QAClC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,YAAY,EAAE,CAAC,EAAC,CAAC,CAAC;QACvC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAC,YAAY,EAAE,CAAC,EAAC,CAAC,CAAC;QACxC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,YAAY,EAAE,iCAAiC,EAAC,CAAC,CAAC;QACvE,UAAU,CACR,QAAQ,EACR,OAAO,CAAC,CAAyB,sBAAA,EAAA,mCAAmC,CAAE,CAAA,CAAC,EACvE,aAAa,CACd;KACF,CAAC;CACH;;MCJY,wBAAwB,CAAA;AATrC,IAAA,WAAA,GAAA;AAUU,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAE7B,IAAiB,CAAA,iBAAA,GAAG,IAAI;QACxB,IAAgB,CAAA,gBAAA,GAAG,EAAE;QAED,IAAW,CAAA,WAAA,GAAG,qBAAqB;AAUjE;;AAEG;QAGH,IAAa,CAAA,aAAA,GAAG,KAAK;AAErB;;AAEG;AACO,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,YAAY,EAAW;AA0BlE;AA5CC;;AAEG;IACH,IACI,mBAAmB,CAAC,KAAc,EAAA;QACpC,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE;;AAiB/D;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;;AAGlC;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;;AAG3B,IAAA,qBAAqB,CAAC,gBAAyB,EAAA;AACrD,QAAA,IAAI,gBAAgB,KAAK,IAAI,CAAC,iBAAiB,EAAE;YAC/C;;AAEF,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB;AACzC,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACrD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GAlDd,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EA4BrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,yCAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,6BAA6B,ECtD7C,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+aAMA,2CDkB4D,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAJ1D,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,WAAW,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAMpF,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;+BACE,qBAAqB,EAAA,UAAA,EAEnB,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,WAAW,CAAC,EAAA,eAAA,EAC9E,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,eAAe,EAAE,6BAA6B,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,+aAAA,EAAA;8BAQzC,WAAW,EAAA,CAAA;sBAAxC,WAAW;uBAAC,OAAO;gBAMhB,mBAAmB,EAAA,CAAA;sBADtB;gBAUD,aAAa,EAAA,CAAA;sBAFZ,WAAW;uBAAC,yCAAyC;;sBACrD;gBAMS,yBAAyB,EAAA,CAAA;sBAAlC;gBAEsD,KAAK,EAAA,CAAA;sBAA3D,YAAY;uBAAC,6BAA6B;;;ME9ChC,0BAA0B,CAAA;AAOrC,IAAA,WAAA,GAAA;AANA;;;AAGG;QACM,IAAiB,CAAA,iBAAA,GAAY,oBAAoB;;8GAL/C,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,qICRvC,yIAIA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDIa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAEhB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,yIAAA,EAAA;wDAOP,iBAAiB,EAAA,CAAA;sBAAzB;;;MEFU,0BAA0B,CAAA;AAqBrC,IAAA,WAAA,GAAA;AApBA;;AAEG;QACK,IAAiB,CAAA,iBAAA,GAAG,aAAa;;AAmBzC;;AAEG;IACH,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;;8GA9BvC,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXvC,0KACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEX,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACE,uBAAuB,EAAA,eAAA,EAEhB,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,0KAAA,EAAA;wDAWd,MAAM,EAAA,CAAA;sBAAd;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;;;MEnBU,uBAAuB,CAAA;AAqBlC,IAAA,WAAA,GAAA;AApBA;;AAEG;QACK,IAAiB,CAAA,iBAAA,GAAG,aAAa;;AAmBzC;;AAEG;IACH,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;8GA9B1C,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXpC,0KACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAEb,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,0KAAA,EAAA;wDAWd,MAAM,EAAA,CAAA;sBAAd;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,OAAO,EAAA,CAAA;sBAAf;;;MEnBU,qBAAqB,CAAA;AAqBhC,IAAA,WAAA,GAAA;AAVA;;AAEG;QACM,IAAI,CAAA,IAAA,GAAW,OAAO;AAE/B;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK;;8GAnBnB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,ECXlC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oWAMA,EDGY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,gFAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAEX,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,aAAa,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,oWAAA,EAAA;wDAM7B,MAAM,EAAA,CAAA;sBAAd;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,aAAa,EAAA,CAAA;sBAArB;;;MECU,eAAe,CAAA;AAd5B,IAAA,WAAA,GAAA;QAkBU,IAAI,CAAA,IAAA,GAAG,GAAG;QACV,IAAI,CAAA,IAAA,GAAG,CAAC;QACR,IAAW,CAAA,WAAA,GAAG,IAAI,eAAe,CAAS,IAAI,CAAC,IAAI,CAAC;AAEpD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;AACjC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEvC;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAU,GAAG;AAExC;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,MAAW,GAAG;AAkErC;;AAEG;QACM,IAAI,CAAA,IAAA,GAAW,GAAG;AAE3B;;AAEG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK;AAwE5B;AAjIC;;AAEG;IACH,IACI,GAAG,CAAC,GAAW,EAAA;QACjB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AACf,YAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC;;;AAIxD,IAAA,IAAI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;;AAGlB;;AAEG;IACH,IACI,GAAG,CAAC,GAAW,EAAA;QACjB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AACf,YAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC;;;AAIxD,IAAA,IAAI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;;AAGlB;;AAEG;IACH,IACI,KAAK,CAAC,GAAW,EAAA;QACnB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,GAAG;;aACnB;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI;;AAEhC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;QACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,aAAa;;IAe3B,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACnE,YAAA,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC;AACvC,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;AAG7B;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGtB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;AACH,IAAA,WAAW,CAAC,KAAY,EAAA;;AAEtB,QAAA,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK;AACnC,QAAA,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;;AAI1B;;AAEG;AACH,IAAA,2BAA2B,CAAC,KAAa,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;YAChE;;QAEF,IAAI,UAAU,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnE,QAAA,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU;AAC/C,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAAA,EAAG,UAAU,CAAA,MAAA,CAAQ,CAAC;;8GAnKtF,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAXf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE;AACR;SACF,EC1BH,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2gBAeA,2CDcY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAd3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAEV,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE;AACR;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2gBAAA,EAAA;8BA0Bd,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAMG,GAAG,EAAA,CAAA;sBADN;gBAgBG,GAAG,EAAA,CAAA;sBADN;gBAgBG,KAAK,EAAA,CAAA;sBADR;gBAmBQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAEmB,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO;;;MExGP,eAAe,CAAA;AA+D1B,IAAA,WAAA,GAAA;AA7DA;;AAEG;QACc,IAAe,CAAA,eAAA,GAAG,WAAW;AAE9C;;AAEG;QACM,IAAO,CAAA,OAAA,GAAkB,SAAS;AAY3C;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK;AA2B1B;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAA8B,IAAI,YAAY,EAAe;;AAWlF;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,EAAE;;QAEX,OAAO,CAAA,EAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;AAGnD;;AAEG;AACH,IAAA,cAAc,CAAC,KAAY,EAAA;QACzB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE;YACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO;AACzD,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;;;;AAKlF;;AAEG;AACH,IAAA,aAAa,CAAC,KAAY,EAAA;;;;;;;;QAQxB,KAAK,CAAC,eAAe,EAAE;;8GApGd,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB5B,+wBAsBA,EAAA,MAAA,EAAA,CAAA,gGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGJ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,+wBAAA,EAAA,MAAA,EAAA,CAAA,gGAAA,CAAA,EAAA;wDAYd,OAAO,EAAA,CAAA;sBAAf;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,MAAM,EAAA,CAAA;sBAAd;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,EAAE,EAAA,CAAA;sBAAV;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKS,WAAW,EAAA,CAAA;sBAApB;gBAMO,aAAa,EAAA,CAAA;sBADpB,SAAS;uBAAC,OAAO;;;MExDP,YAAY,CAAA;AAyDvB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;AAVvB;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ;AAElE;;AAEG;AACO,QAAA,IAAA,CAAA,OAAO,GAAgC,IAAI,YAAY,EAAiB;;AAKlF;;AAEG;AACH,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GAjEd,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EC1BzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qyBAwBA,EDAY,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,iOAAE,cAAc,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE3B,YAAY,EAAA,UAAA,EAAA,CAAA;kBATxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAGD,eAAA,EAAA,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,cAAc,CAAC,EAAA,QAAA,EAAA,qyBAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA;sFAO9B,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAKQ,EAAE,EAAA,CAAA;sBAAV;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAKQ,wBAAwB,EAAA,CAAA;sBAAhC;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAK6B,kBAAkB,EAAA,CAAA;sBAA/C,SAAS;uBAAC,iBAAiB;gBAKV,GAAG,EAAA,CAAA;sBAApB,SAAS;uBAAC,KAAK;gBAKN,SAAS,EAAA,CAAA;sBAAlB;gBAKS,OAAO,EAAA,CAAA;sBAAhB;;;MErDU,aAAa,CAAA;AAsCxB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;QAlCN,IAAQ,CAAA,QAAA,GAAG,QAAQ;AAE5B,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ;AAiBxD;;AAEG;QACM,IAAO,CAAA,OAAA,GAAgB,QAAQ;AAOxC;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU;;IAKxE,eAAe,GAAA;;;QAGb,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YAEpC,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,yBAAyB,EAAE;AAEhC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,EAAE,QAAQ,CAAC;AAC9D,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC;AAC3D,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;AAG7B;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,cAAc,KAAK,KAAK;;AAGtC;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAa,EAAE,IAAI,GAAG,IAAI,EAAA;QAChC,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK;AAE5E,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;QAC/B,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;;AAEnC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,qBAAqB,GAAA;QACnB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAC1E,MAAM,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,QAAQ,CAAC,aAAa,KAAK,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;AACxG,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC;AAEpF,QAAA,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE;;AAG5C;;AAEG;IACH,yBAAyB,GAAA;QACvB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAC1E,MAAM,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,QAAQ,CAAC,aAAa,KAAK,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;AAExG,QAAA,MAAM,yBAAyB,GAAG,eAAe,KAAK;AACpD,cAAE,aAAa,CAAC,MAAM,GAAG;AACzB,cAAE,eAAe,GAAG,CAAC;AAEvB,QAAA,MAAM,oBAAoB,GAAG,aAAa,CAAC,yBAAyB,CAAC;AAErE,QAAA,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE;;AAGhD;;AAEG;AACH,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACnC,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,qBAAqB,EAAE;gBAC5B;AACF,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,yBAAyB,EAAE;gBAChC;YACF;;;IAIJ,eAAe,GAAA;QACb,IAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;YAC7C;;QAEF,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAA,CAAE;;IAGpC,uBAAuB,GAAA;QAC7B,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtC;;QAEF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;AAC/B,YAAA,GAAG,CAAC;AACD,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;iBAChC,SAAS,CAAC,CAAC,IAAG;AACb,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACrB,aAAC,CAAC;AACN,SAAC,CAAC;;IAGI,yBAAyB,GAAA;QAC/B,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtC;;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;YACtB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;iBAC3C,SAAS,CAAC,KAAK,IAAG;AACjB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC9B,aAAC,CAAC;AACJ,SAAC,CAAC;;AAGI,IAAA,cAAc,CAAC,KAAa,EAAA;AAClC,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,GAAG,EAAE,QAAQ,EAAE;AACjB,gBAAA,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;;;QAG1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;;8GAvKzB,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EA+BP,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAY,EC3D/B,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ulBAcA,0LDY0B,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEzB,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAGF,eAAA,EAAA,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,ulBAAA,EAAA,MAAA,EAAA,CAAA,mIAAA,CAAA,EAAA;sFAuB5B,KAAK,EAAA,CAAA;sBAAb;gBAKQ,OAAO,EAAA,CAAA;sBAAf;gBAK8B,QAAQ,EAAA,CAAA;sBAAtC,eAAe;uBAAC,YAAY;gBAKnB,WAAW,EAAA,CAAA;sBAApB;;;MExCU,cAAc,CAAA;AAiDzB,IAAA,WAAA,CAAoB,QAAsB,EAAU,EAAc,EAAU,GAAsB,EAAA;QAA9E,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAwB,IAAE,CAAA,EAAA,GAAF,EAAE;QAAsB,IAAG,CAAA,GAAA,GAAH,GAAG;AArC/E;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,IAAI;AAQ5B;;AAEG;QACM,IAAY,CAAA,YAAA,GAAI,IAAI;AAE7B;;;AAGG;QACM,IAAU,CAAA,UAAA,GAAG,iCAAiC;AAOvD;;AAEG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAS;AAE5C;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAQ;;IAK9C,QAAQ,GAAA;AACN,QAAA,IAAG,IAAI,CAAC,aAAa,EAAE;;AAErB,YAAA,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,MAAK;gBACvC,IAAI,CAAC,WAAW,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACvB,aAAC,EAAE,IAAI,CAAC,YAAY,CAAC;;;IAIzB,WAAW,GAAA;QACT,IAAI,CAAC,mBAAmB,EAAE;;AAG5B;;AAEG;IACH,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC;AACrB,2BAAA,EAAA,IAAI,CAAC,YAAY,CAAA;AACzC,IAAA,CAAA,CAAC;;AAGJ;;AAEG;AACH,IAAA,KAAK,CAAC,KAAkB,EAAA;QACtB,KAAK,EAAE,cAAc,EAAE;QACvB,KAAK,EAAE,wBAAwB,EAAE;QACjC,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;;;IAIxC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;QAChC,IAAI,CAAC,mBAAmB,EAAE;;8GApGjB,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,+TCxB3B,khCA6BA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPY,aAAa,EAAE,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,0OAAE,YAAY,EAAA,EAAA,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,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE/C,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAGH,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,aAAa,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,khCAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA;4IAQlD,OAAO,EAAA,CAAA;sBAAf;gBAIQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAMQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAMQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,aAAa,EAAA,CAAA;sBAArB;gBAKS,MAAM,EAAA,CAAA;sBAAf;gBAKS,SAAS,EAAA,CAAA;sBAAlB;;;ME5DU,uBAAuB,CAAA;AAalC,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;;AAGvB;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;8GApBd,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXpC,4MAOA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,4MAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA;sFAQd,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;;;MEhBU,YAAY,CAAA;IAUvB,WAAoB,CAAA,wBAAkD,EAAU,MAAsB,EAAA;QAAlF,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB;QAAoC,IAAM,CAAA,MAAA,GAAN,MAAM;AAL9E,QAAA,IAAA,CAAA,MAAM,GAAuB;AACnC,YAAA,WAAW,EAAE,uBAAuB;AACpC,YAAA,oBAAoB,EAAE;SACvB;;AAKD;;AAEG;IACH,IAAI,CAAC,OAA8C,EAAE,MAA0B,EAAA;QAC7E,IAAI,CAAC,OAAO,EAAE;YACZ;;AAEF,QAAA,IAAI,WAAW;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,eAAe,EAAE;;AAExB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAG,CAAC,CAAC;QAClF,IAAI,CAAC,mBAAmB,GAAG,IAAI,eAAe,CAAC,gBAAgB,CAAC;AAChE,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;YAClC,WAAW,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE;gBACjE,SAAS,EAAE,MAAM,CAAC;AACnB,aAAA,CAAC;;aACG;AACL,YAAA,WAAW,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC;;QAE1G,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC;;AAGrD;;AAEG;AACH,IAAA,SAAS,CAAC,MAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,EAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAC;AACzC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;;AAGpC,IAAA,kBAAkB,CAAC,qBAAwE,EAAA;AACjG,QAAA,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,QAAQ;QAC1D,IAAI,kBAAkB,EAAE;YACtB,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW;YACzD,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,oBAAoB;YAClE,kBAAkB,CAAC,aAAa,EAAE;;;IAI9B,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AAC5E,QAAA,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC;QAC/G,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC;AACpF,QAAA,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,GAAG,qBAAqB;AACzC,QAAA,OAAO,qBAAqB;;8GA3DnB,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAZ,YAAY,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;MC0BY,eAAe,CAAA;AA+B1B;;AAEG;IACH,IACI,SAAS,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,QAAQ;;AA8CtB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;AAtFvB;;AAEG;QACK,IAAe,CAAA,eAAA,GAAG,WAAW;AAiBrC;;AAEG;QACM,IAAI,CAAA,IAAA,GAAgB,IAAI;AA0CjC;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAA0B,IAAI,YAAY,EAAW;AA0B1E;;AAEG;AACK,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAU;AACrC,SAAC;AAED;;AAEG;QACK,IAAU,CAAA,UAAA,GAAG,MAAW;AAChC,SAAC;;;IAdD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,KAAK,EAAE;;AAenG;;AAEG;AACH,IAAA,cAAc,CAAC,KAAY,EAAA;QACzB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE;YACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO;AACzD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;;AAIzC;;AAEG;AACH,IAAA,aAAa,CAAC,KAAY,EAAA;;;;;;;;QAQxB,KAAK,CAAC,eAAe,EAAE;;AAGzB;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK;;AAG1B;;;AAGG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGtB;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,IAAI,YAAoB;AACxB,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,IAAI;gBACP,YAAY,GAAG,IAAI;gBACnB;AACF,YAAA;gBACE;;AAEJ,QAAA,OAAO,YAAY,GAAG,GAAG,IAAI,CAAC,eAAe,CAAA,EAAA,EAAK,YAAY,CAAE,CAAA,GAAG,EAAE;;AAGvE;;AAEG;IACH,wBAAwB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAY,UAAA,CAAA,GAAG,EAAE;;IAGnE,0BAA0B,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,gBAAgB,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAW,SAAA,CAAA,GAAG,EAAE;;8GA7L7D,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,qUAXf,CAAC;AACV,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE;aACR,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBJ,g+BA8BA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,aAGV,CAAC;AACV,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE;AACR,yBAAA,CAAC,EACe,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,g+BAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA;sFAiBd,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAMG,SAAS,EAAA,CAAA;sBADZ;gBAaQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAMQ,SAAS,EAAA,CAAA;sBAAjB;gBAMQ,cAAc,EAAA,CAAA;sBAAtB;gBAKS,WAAW,EAAA,CAAA;sBAApB;gBAMO,aAAa,EAAA,CAAA;sBADpB,SAAS;uBAAC,OAAO;gBAMQ,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa;;;MExGb,mBAAmB,CAAA;AAG9B,IAAA,WAAA,GAAA;QAFsB,IAAK,CAAA,KAAA,GAAG,iBAAiB;;8GADpC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE;AACb,iBAAA;wDAEuB,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO;;;MCJT,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;AAME;;AAEG;QACH,IAAQ,CAAA,QAAA,GAAG,IAAI;AAaf;;AAEG;QACH,IAAS,CAAA,SAAA,GAAqB,KAAK;AAEnC;;AAEG;QACH,IAAc,CAAA,cAAA,GAA0B,QAAQ;AAEhD;;AAEG;QACH,IAAY,CAAA,YAAA,GAAG,IAAI;AAEnB;;AAEG;QACH,IAAU,CAAA,UAAA,GAAG,IAAI;;AAClB;;AC7CD;;AAEG;AAEH;;ACJA;;AAEG;;;;"}