{"version":3,"file":"harvest-dev-ng-perfect-scrollbar.mjs","sources":["../../../../projects/harvest/ng-perfect-scrollbar/src/lib/perfect-scrollbar-force-native-scroll.directive.ts","../../../../projects/harvest/ng-perfect-scrollbar/src/lib/perfect-scrollbar.interfaces.ts","../../../../projects/harvest/ng-perfect-scrollbar/src/lib/perfect-scrollbar.directive.ts","../../../../projects/harvest/ng-perfect-scrollbar/src/lib/perfect-scrollbar.component.ts","../../../../projects/harvest/ng-perfect-scrollbar/src/lib/perfect-scrollbar.component.html","../../../../projects/harvest/ng-perfect-scrollbar/src/lib/perfect-scrollbar.module.ts","../../../../projects/harvest/ng-perfect-scrollbar/src/harvest-dev-ng-perfect-scrollbar.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2 } from '@angular/core';\n\n@Directive({\n    selector: '[forceNativeScrolling]',\n})\nexport class ForceNativeScrollDirective {\n    constructor(private renderer: Renderer2, el: ElementRef) {\n        ['ps__child', 'ps__child--consume'].forEach(className => {\n            this.renderer.addClass(el?.nativeElement, className);\n        });\n    }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const PERFECT_SCROLLBAR_CONFIG = new InjectionToken('PERFECT_SCROLLBAR_CONFIG');\n\nexport class Geometry {\n    public x: number;\n    public y: number;\n\n    public w: number;\n    public h: number;\n\n    constructor(x: number, y: number, w: number, h: number) {\n        this.x = x;\n        this.y = y;\n        this.w = w;\n        this.h = h;\n    }\n}\n\nexport class Position {\n    public x: number | 'start' | 'end';\n    public y: number | 'start' | 'end';\n\n    constructor(x: number | 'start' | 'end', y: number | 'start' | 'end') {\n        this.x = x;\n        this.y = y;\n    }\n}\n\nexport type PerfectScrollbarEvent =\n    | 'psScrollY'\n    | 'psScrollX'\n    | 'psScrollUp'\n    | 'psScrollDown'\n    | 'psScrollLeft'\n    | 'psScrollRight'\n    | 'psYReachEnd'\n    | 'psYReachStart'\n    | 'psXReachEnd'\n    | 'psXReachStart';\n\nexport const PerfectScrollbarEvents: PerfectScrollbarEvent[] = [\n    'psScrollY',\n    'psScrollX',\n\n    'psScrollUp',\n    'psScrollDown',\n    'psScrollLeft',\n    'psScrollRight',\n\n    'psYReachEnd',\n    'psYReachStart',\n    'psXReachEnd',\n    'psXReachStart',\n];\n\nexport interface PerfectScrollbarConfigInterface {\n    handlers?: string[];\n\n    wheelSpeed?: number;\n    swipeEasing?: boolean;\n\n    suppressScrollX?: boolean;\n    suppressScrollY?: boolean;\n\n    wheelPropagation?: boolean;\n    useBothWheelAxes?: boolean;\n\n    scrollingThreshold?: number;\n\n    minScrollbarLength?: number;\n    maxScrollbarLength?: number;\n\n    scrollXMarginOffset?: number;\n    scrollYMarginOffset?: number;\n}\n\nexport class PerfectScrollbarConfig implements PerfectScrollbarConfigInterface {\n    public handlers?: string[];\n\n    public wheelSpeed?: number;\n    public swipeEasing?: boolean;\n\n    public suppressScrollX?: boolean;\n    public suppressScrollY?: boolean;\n\n    public wheelPropagation?: boolean;\n    public useBothWheelAxes?: boolean;\n\n    public scrollingThreshold?: number;\n\n    public minScrollbarLength?: number;\n    public maxScrollbarLength?: number;\n\n    public scrollXMarginOffset?: number;\n    public scrollYMarginOffset?: number;\n\n    constructor(config: PerfectScrollbarConfigInterface = {}) {\n        this.assign(config);\n    }\n\n    public assign(config: PerfectScrollbarConfigInterface = {}) {\n        for (const key in config) {\n            this[key as keyof PerfectScrollbarConfig] = config[key as keyof PerfectScrollbarConfigInterface] as never;\n        }\n    }\n}\n","import PerfectScrollbar from 'perfect-scrollbar';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n    Directive,\n    DoCheck,\n    ElementRef,\n    EventEmitter,\n    Inject,\n    Input,\n    KeyValueDiffer,\n    KeyValueDiffers,\n    NgZone,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    Optional,\n    Output,\n    PLATFORM_ID,\n    SimpleChanges,\n    booleanAttribute,\n} from '@angular/core';\n\nimport { Geometry, Position } from './perfect-scrollbar.interfaces';\n\nimport {\n    PERFECT_SCROLLBAR_CONFIG,\n    PerfectScrollbarConfig,\n    PerfectScrollbarConfigInterface,\n    PerfectScrollbarEvent,\n    PerfectScrollbarEvents,\n} from './perfect-scrollbar.interfaces';\n\n@Directive({\n    selector: '[perfectScrollbar]',\n    exportAs: 'ngxPerfectScrollbar',\n})\nexport class PerfectScrollbarDirective implements OnInit, OnDestroy, DoCheck, OnChanges {\n    private instance: PerfectScrollbar | null = null;\n\n    private ro: ResizeObserver | null = null;\n\n    private timeout: number | null = null;\n    private animation: number | null = null;\n\n    private configDiff: KeyValueDiffer<string, any> | null = null;\n\n    private readonly ngDestroy = new Subject<void>();\n\n    @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n    @Input('perfectScrollbar') config?: PerfectScrollbarConfigInterface;\n\n    @Output() psScrollY = new EventEmitter<any>();\n    @Output() psScrollX = new EventEmitter<any>();\n\n    @Output() psScrollUp = new EventEmitter<any>();\n    @Output() psScrollDown = new EventEmitter<any>();\n    @Output() psScrollLeft = new EventEmitter<any>();\n    @Output() psScrollRight = new EventEmitter<any>();\n\n    @Output() psYReachEnd = new EventEmitter<any>();\n    @Output() psYReachStart = new EventEmitter<any>();\n    @Output() psXReachEnd = new EventEmitter<any>();\n    @Output() psXReachStart = new EventEmitter<any>();\n\n    constructor(\n        private zone: NgZone,\n        private differs: KeyValueDiffers,\n        public elementRef: ElementRef,\n        @Inject(PLATFORM_ID) private platformId: Object,\n        @Optional()\n        @Inject(PERFECT_SCROLLBAR_CONFIG)\n        private defaults: PerfectScrollbarConfigInterface,\n    ) {}\n\n    ngOnInit(): void {\n        if (!this.disabled && isPlatformBrowser(this.platformId)) {\n            const config = new PerfectScrollbarConfig(this.defaults);\n\n            config.assign(this.config); // Custom configuration\n\n            this.zone.runOutsideAngular(() => {\n                this.instance = new PerfectScrollbar(this.elementRef.nativeElement, config);\n            });\n\n            if (!this.configDiff) {\n                this.configDiff = this.differs.find(this.config || {}).create();\n\n                this.configDiff.diff(this.config || {});\n            }\n\n            this.zone.runOutsideAngular(() => {\n                this.ro = new ResizeObserver(() => {\n                    this.update();\n                });\n\n                if (this.elementRef.nativeElement.children[0]) {\n                    this.ro.observe(this.elementRef.nativeElement.children[0]);\n                }\n\n                this.ro.observe(this.elementRef.nativeElement);\n            });\n\n            this.zone.runOutsideAngular(() => {\n                PerfectScrollbarEvents.forEach((eventName: PerfectScrollbarEvent) => {\n                    const eventType = eventName.replace(/([A-Z])/g, c => `-${c.toLowerCase()}`);\n\n                    fromEvent<Event>(this.elementRef.nativeElement, eventType)\n                        .pipe(auditTime(20), takeUntil(this.ngDestroy))\n                        .subscribe((event: Event) => {\n                            this[eventName].emit(event);\n                        });\n                });\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (isPlatformBrowser(this.platformId)) {\n            this.ngDestroy.next();\n            this.ngDestroy.complete();\n\n            if (this.ro) {\n                this.ro.disconnect();\n            }\n\n            if (this.timeout && typeof window !== 'undefined') {\n                window.clearTimeout(this.timeout);\n            }\n\n            this.zone.runOutsideAngular(() => {\n                if (this.instance) {\n                    this.instance.destroy();\n                }\n            });\n\n            this.instance = null;\n        }\n    }\n\n    ngDoCheck(): void {\n        if (!this.disabled && this.configDiff && isPlatformBrowser(this.platformId)) {\n            const changes = this.configDiff.diff(this.config || {});\n\n            if (changes) {\n                this.ngOnDestroy();\n\n                this.ngOnInit();\n            }\n        }\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        const disabled = changes['disabled'];\n        if (disabled && !disabled.isFirstChange() && isPlatformBrowser(this.platformId)) {\n            if (disabled.currentValue !== disabled.previousValue) {\n                if (disabled.currentValue === true) {\n                    this.ngOnDestroy();\n                } else if (disabled.currentValue === false) {\n                    this.ngOnInit();\n                }\n            }\n        }\n    }\n\n    public ps(): PerfectScrollbar | null {\n        return this.instance;\n    }\n\n    public update(): void {\n        if (typeof window !== 'undefined') {\n            if (this.timeout) {\n                window.clearTimeout(this.timeout);\n            }\n\n            this.timeout = window.setTimeout(() => {\n                if (!this.disabled && this.configDiff) {\n                    try {\n                        this.zone.runOutsideAngular(() => {\n                            if (this.instance) {\n                                this.instance.update();\n                            }\n                        });\n                    } catch (error) {\n                        // Update can be finished after destroy so catch errors\n                    }\n                }\n            }, 0);\n        }\n    }\n\n    public geometry(prefix: string = 'scroll'): Geometry {\n        return new Geometry(\n            this.elementRef.nativeElement[prefix + 'Left'],\n            this.elementRef.nativeElement[prefix + 'Top'],\n            this.elementRef.nativeElement[prefix + 'Width'],\n            this.elementRef.nativeElement[prefix + 'Height'],\n        );\n    }\n\n    public position(absolute: boolean = false): Position {\n        if (!absolute && this.instance) {\n            return new Position(this.instance.reach.x || 0, this.instance.reach.y || 0);\n        } else {\n            return new Position(this.elementRef.nativeElement.scrollLeft, this.elementRef.nativeElement.scrollTop);\n        }\n    }\n\n    public scrollable(direction: string = 'any'): boolean {\n        const element = this.elementRef.nativeElement;\n\n        if (direction === 'any') {\n            return element.classList.contains('ps--active-x') || element.classList.contains('ps--active-y');\n        } else if (direction === 'both') {\n            return element.classList.contains('ps--active-x') && element.classList.contains('ps--active-y');\n        } else {\n            return element.classList.contains('ps--active-' + direction);\n        }\n    }\n\n    public scrollTo(x: number, y?: number, speed?: number): void {\n        if (!this.disabled) {\n            if (y == null && speed == null) {\n                this.animateScrolling('scrollTop', x, speed);\n            } else {\n                if (x != null) {\n                    this.animateScrolling('scrollLeft', x, speed);\n                }\n\n                if (y != null) {\n                    this.animateScrolling('scrollTop', y, speed);\n                }\n            }\n        }\n    }\n\n    public scrollToX(x: number, speed?: number): void {\n        this.animateScrolling('scrollLeft', x, speed);\n    }\n\n    public scrollToY(y: number, speed?: number): void {\n        this.animateScrolling('scrollTop', y, speed);\n    }\n\n    public scrollToTop(offset?: number, speed?: number): void {\n        this.animateScrolling('scrollTop', offset || 0, speed);\n    }\n\n    public scrollToLeft(offset?: number, speed?: number): void {\n        this.animateScrolling('scrollLeft', offset || 0, speed);\n    }\n\n    public scrollToRight(offset?: number, speed?: number): void {\n        const left = this.elementRef.nativeElement.scrollWidth - this.elementRef.nativeElement.clientWidth;\n\n        this.animateScrolling('scrollLeft', left - (offset || 0), speed);\n    }\n\n    public scrollToBottom(offset?: number, speed?: number): void {\n        const top = this.elementRef.nativeElement.scrollHeight - this.elementRef.nativeElement.clientHeight;\n\n        this.animateScrolling('scrollTop', top - (offset || 0), speed);\n    }\n\n    public scrollToElement(element: HTMLElement | string, offset?: number, speed?: number): void {\n        if (typeof element === 'string') {\n            element = this.elementRef.nativeElement.querySelector(element) as HTMLElement;\n        }\n\n        if (element) {\n            const elementPos = element.getBoundingClientRect();\n\n            const scrollerPos = this.elementRef.nativeElement.getBoundingClientRect();\n\n            if (this.elementRef.nativeElement.classList.contains('ps--active-x')) {\n                const currentPos = this.elementRef.nativeElement['scrollLeft'];\n\n                const position = elementPos.left - scrollerPos.left + currentPos;\n\n                this.animateScrolling('scrollLeft', position + (offset || 0), speed);\n            }\n\n            if (this.elementRef.nativeElement.classList.contains('ps--active-y')) {\n                const currentPos = this.elementRef.nativeElement['scrollTop'];\n\n                const position = elementPos.top - scrollerPos.top + currentPos;\n\n                this.animateScrolling('scrollTop', position + (offset || 0), speed);\n            }\n        }\n    }\n\n    private animateScrolling(target: string, value: number, speed?: number): void {\n        if (this.animation) {\n            window.cancelAnimationFrame(this.animation);\n\n            this.animation = null;\n        }\n\n        if (!speed || typeof window === 'undefined') {\n            this.elementRef.nativeElement[target] = value;\n        } else if (value !== this.elementRef.nativeElement[target]) {\n            let newValue = 0;\n            let scrollCount = 0;\n\n            let oldTimestamp = performance.now();\n            let oldValue = this.elementRef.nativeElement[target];\n\n            const cosParameter = (oldValue - value) / 2;\n\n            const step = (newTimestamp: number) => {\n                scrollCount += Math.PI / (speed / (newTimestamp - oldTimestamp));\n\n                newValue = Math.round(value + cosParameter + cosParameter * Math.cos(scrollCount));\n\n                // Only continue animation if scroll position has not changed\n                if (this.elementRef.nativeElement[target] === oldValue) {\n                    if (scrollCount >= Math.PI) {\n                        this.animateScrolling(target, value, 0);\n                    } else {\n                        this.elementRef.nativeElement[target] = newValue;\n\n                        // On a zoomed out page the resulting offset may differ\n                        oldValue = this.elementRef.nativeElement[target];\n\n                        oldTimestamp = newTimestamp;\n\n                        this.animation = window.requestAnimationFrame(step);\n                    }\n                }\n            };\n\n            window.requestAnimationFrame(step);\n        }\n    }\n}\n","import { Subject, fromEvent, merge } from 'rxjs';\nimport { distinctUntilChanged, mapTo, takeUntil } from 'rxjs/operators';\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n    ChangeDetectorRef,\n    Component,\n    DoCheck,\n    EventEmitter,\n    HostBinding,\n    Inject,\n    Input,\n    NgZone,\n    OnDestroy,\n    OnInit,\n    Output,\n    PLATFORM_ID,\n    ViewChild,\n    ViewEncapsulation,\n    booleanAttribute,\n} from '@angular/core';\n\nimport { PerfectScrollbarDirective } from './perfect-scrollbar.directive';\n\nimport {\n    PerfectScrollbarConfigInterface,\n    PerfectScrollbarEvent,\n    PerfectScrollbarEvents,\n} from './perfect-scrollbar.interfaces';\n\n@Component({\n    selector: 'perfect-scrollbar',\n    exportAs: 'ngxPerfectScrollbar',\n    templateUrl: './perfect-scrollbar.component.html',\n    styleUrls: [\n        '../../../../../node_modules/perfect-scrollbar/css/perfect-scrollbar.css',\n        './perfect-scrollbar.component.scss',\n    ],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class PerfectScrollbarComponent implements OnInit, OnDestroy, DoCheck {\n    public states: any = {};\n\n    public indicatorX: boolean = false;\n    public indicatorY: boolean = false;\n\n    public interaction: boolean = false;\n\n    private scrollPositionX: number = 0;\n    private scrollPositionY: number = 0;\n\n    private scrollDirectionX: number = 0;\n    private scrollDirectionY: number = 0;\n\n    private usePropagationX: boolean = false;\n    private usePropagationY: boolean = false;\n\n    private allowPropagationX: boolean = false;\n    private allowPropagationY: boolean = false;\n\n    private stateTimeout: number | null = null;\n\n    private readonly ngDestroy = new Subject<void>();\n\n    private readonly stateUpdate = new Subject<string>();\n\n    @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n    @Input({ transform: booleanAttribute }) usePSClass: boolean = true;\n\n    @HostBinding('class.ps-show-limits')\n    @Input({ transform: booleanAttribute })\n    autoPropagation: boolean = false;\n\n    @HostBinding('class.ps-show-active')\n    @Input({ transform: booleanAttribute })\n    scrollIndicators: boolean = false;\n\n    @Input() config?: PerfectScrollbarConfigInterface;\n\n    @Output() psScrollY = new EventEmitter<any>();\n    @Output() psScrollX = new EventEmitter<any>();\n\n    @Output() psScrollUp = new EventEmitter<any>();\n    @Output() psScrollDown = new EventEmitter<any>();\n    @Output() psScrollLeft = new EventEmitter<any>();\n    @Output() psScrollRight = new EventEmitter<any>();\n\n    @Output() psYReachEnd = new EventEmitter<any>();\n    @Output() psYReachStart = new EventEmitter<any>();\n    @Output() psXReachEnd = new EventEmitter<any>();\n    @Output() psXReachStart = new EventEmitter<any>();\n\n    @ViewChild(PerfectScrollbarDirective, { static: true })\n    directiveRef?: PerfectScrollbarDirective;\n\n    constructor(\n        private zone: NgZone,\n        private cdRef: ChangeDetectorRef,\n        @Inject(PLATFORM_ID) private platformId: Object,\n    ) {}\n\n    ngOnInit(): void {\n        if (isPlatformBrowser(this.platformId)) {\n            this.stateUpdate\n                .pipe(\n                    takeUntil(this.ngDestroy),\n                    distinctUntilChanged((a, b) => a === b && !this.stateTimeout),\n                )\n                .subscribe((state: string) => {\n                    if (this.stateTimeout && typeof window !== 'undefined') {\n                        window.clearTimeout(this.stateTimeout);\n\n                        this.stateTimeout = null;\n                    }\n\n                    if (state === 'x' || state === 'y') {\n                        this.interaction = false;\n\n                        if (state === 'x') {\n                            this.indicatorX = false;\n\n                            this.states.left = false;\n                            this.states.right = false;\n\n                            if (this.autoPropagation && this.usePropagationX) {\n                                this.allowPropagationX = false;\n                            }\n                        } else if (state === 'y') {\n                            this.indicatorY = false;\n\n                            this.states.top = false;\n                            this.states.bottom = false;\n\n                            if (this.autoPropagation && this.usePropagationY) {\n                                this.allowPropagationY = false;\n                            }\n                        }\n                    } else {\n                        if (state === 'left' || state === 'right') {\n                            this.states.left = false;\n                            this.states.right = false;\n\n                            this.states[state] = true;\n\n                            if (this.autoPropagation && this.usePropagationX) {\n                                this.indicatorX = true;\n                            }\n                        } else if (state === 'top' || state === 'bottom') {\n                            this.states.top = false;\n                            this.states.bottom = false;\n\n                            this.states[state] = true;\n\n                            if (this.autoPropagation && this.usePropagationY) {\n                                this.indicatorY = true;\n                            }\n                        }\n\n                        if (this.autoPropagation && typeof window !== 'undefined') {\n                            this.stateTimeout = window.setTimeout(() => {\n                                this.indicatorX = false;\n                                this.indicatorY = false;\n\n                                this.stateTimeout = null;\n\n                                if (this.interaction && (this.states.left || this.states.right)) {\n                                    this.allowPropagationX = true;\n                                }\n\n                                if (this.interaction && (this.states.top || this.states.bottom)) {\n                                    this.allowPropagationY = true;\n                                }\n\n                                this.cdRef.markForCheck();\n                            }, 500);\n                        }\n                    }\n\n                    this.cdRef.markForCheck();\n                    this.cdRef.detectChanges();\n                });\n\n            this.zone.runOutsideAngular(() => {\n                if (this.directiveRef) {\n                    const element = this.directiveRef.elementRef.nativeElement;\n\n                    fromEvent<WheelEvent>(element, 'wheel')\n                        .pipe(takeUntil(this.ngDestroy))\n                        .subscribe((event: WheelEvent) => {\n                            if (!this.disabled && this.autoPropagation) {\n                                const scrollDeltaX = event.deltaX;\n                                const scrollDeltaY = event.deltaY;\n\n                                this.checkPropagation(event, scrollDeltaX, scrollDeltaY);\n                            }\n                        });\n\n                    fromEvent<TouchEvent>(element, 'touchmove')\n                        .pipe(takeUntil(this.ngDestroy))\n                        .subscribe((event: TouchEvent) => {\n                            if (!this.disabled && this.autoPropagation) {\n                                const scrollPositionX = event.touches[0].clientX;\n                                const scrollPositionY = event.touches[0].clientY;\n\n                                const scrollDeltaX = scrollPositionX - this.scrollPositionX;\n                                const scrollDeltaY = scrollPositionY - this.scrollPositionY;\n\n                                this.checkPropagation(event, scrollDeltaX, scrollDeltaY);\n\n                                this.scrollPositionX = scrollPositionX;\n                                this.scrollPositionY = scrollPositionY;\n                            }\n                        });\n\n                    merge(\n                        fromEvent(element, 'ps-scroll-x').pipe(mapTo('x')),\n                        fromEvent(element, 'ps-scroll-y').pipe(mapTo('y')),\n                        fromEvent(element, 'ps-x-reach-end').pipe(mapTo('right')),\n                        fromEvent(element, 'ps-y-reach-end').pipe(mapTo('bottom')),\n                        fromEvent(element, 'ps-x-reach-start').pipe(mapTo('left')),\n                        fromEvent(element, 'ps-y-reach-start').pipe(mapTo('top')),\n                    )\n                        .pipe(takeUntil(this.ngDestroy))\n                        .subscribe((state: string) => {\n                            if (!this.disabled && (this.autoPropagation || this.scrollIndicators)) {\n                                this.stateUpdate.next(state);\n                            }\n                        });\n                }\n            });\n\n            window.setTimeout(() => {\n                PerfectScrollbarEvents.forEach((eventName: PerfectScrollbarEvent) => {\n                    if (this.directiveRef) {\n                        this.directiveRef[eventName] = this[eventName];\n                    }\n                });\n            }, 0);\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (isPlatformBrowser(this.platformId)) {\n            this.ngDestroy.next();\n            this.ngDestroy.unsubscribe();\n\n            if (this.stateTimeout && typeof window !== 'undefined') {\n                window.clearTimeout(this.stateTimeout);\n            }\n        }\n    }\n\n    ngDoCheck(): void {\n        if (isPlatformBrowser(this.platformId)) {\n            if (!this.disabled && this.autoPropagation && this.directiveRef) {\n                const element = this.directiveRef.elementRef.nativeElement;\n\n                this.usePropagationX = element.classList.contains('ps--active-x');\n\n                this.usePropagationY = element.classList.contains('ps--active-y');\n            }\n        }\n    }\n\n    private checkPropagation(event: any, deltaX: number, deltaY: number): void {\n        this.interaction = true;\n\n        const scrollDirectionX = deltaX < 0 ? -1 : 1;\n        const scrollDirectionY = deltaY < 0 ? -1 : 1;\n\n        if (\n            (this.usePropagationX && this.usePropagationY) ||\n            (this.usePropagationX && (!this.allowPropagationX || this.scrollDirectionX !== scrollDirectionX)) ||\n            (this.usePropagationY && (!this.allowPropagationY || this.scrollDirectionY !== scrollDirectionY))\n        ) {\n            event.preventDefault();\n            event.stopPropagation();\n        }\n\n        if (!!deltaX) {\n            this.scrollDirectionX = scrollDirectionX;\n        }\n\n        if (!!deltaY) {\n            this.scrollDirectionY = scrollDirectionY;\n        }\n\n        this.stateUpdate.next('interaction');\n\n        this.cdRef.detectChanges();\n    }\n}\n","<div style=\"position: static\" [class.ps]=\"usePSClass\" [perfectScrollbar]=\"config\" [disabled]=\"disabled\">\n    <div class=\"ps-content\">\n        <ng-content></ng-content>\n    </div>\n\n    @if (scrollIndicators) {\n    <div\n        class=\"ps-overlay\"\n        [class.ps-at-top]=\"states.top\"\n        [class.ps-at-left]=\"states.left\"\n        [class.ps-at-right]=\"states.right\"\n        [class.ps-at-bottom]=\"states.bottom\"\n    >\n        <div class=\"ps-indicator-top\" [class.ps-indicator-show]=\"indicatorY && interaction\"></div>\n        <div class=\"ps-indicator-left\" [class.ps-indicator-show]=\"indicatorX && interaction\"></div>\n        <div class=\"ps-indicator-right\" [class.ps-indicator-show]=\"indicatorX && interaction\"></div>\n        <div class=\"ps-indicator-bottom\" [class.ps-indicator-show]=\"indicatorY && interaction\"></div>\n    </div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ForceNativeScrollDirective } from './perfect-scrollbar-force-native-scroll.directive';\nimport { PerfectScrollbarComponent } from './perfect-scrollbar.component';\nimport { PerfectScrollbarDirective } from './perfect-scrollbar.directive';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [PerfectScrollbarComponent, PerfectScrollbarDirective, ForceNativeScrollDirective],\n    exports: [CommonModule, PerfectScrollbarComponent, PerfectScrollbarDirective, ForceNativeScrollDirective],\n})\nexport class PerfectScrollbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PerfectScrollbarDirective"],"mappings":";;;;;;;MAKa,0BAA0B,CAAA;IACnC,WAAoB,CAAA,QAAmB,EAAE,EAAc,EAAA;QAAnC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnC,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,SAAS,IAAG;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AACzD,SAAC,CAAC,CAAC;KACN;8GALQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA1B,0BAA0B,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AACrC,iBAAA,CAAA;;;MCFY,wBAAwB,GAAG,IAAI,cAAc,CAAC,0BAA0B,EAAE;MAE1E,QAAQ,CAAA;AAOjB,IAAA,WAAA,CAAY,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AAClD,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;KACd;AACJ,CAAA;MAEY,QAAQ,CAAA;IAIjB,WAAY,CAAA,CAA2B,EAAE,CAA2B,EAAA;AAChE,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;KACd;AACJ,CAAA;AAcM,MAAM,sBAAsB,GAA4B;IAC3D,WAAW;IACX,WAAW;IAEX,YAAY;IACZ,cAAc;IACd,cAAc;IACd,eAAe;IAEf,aAAa;IACb,eAAe;IACf,aAAa;IACb,eAAe;CAClB,CAAC;MAuBW,sBAAsB,CAAA;AAoB/B,IAAA,WAAA,CAAY,SAA0C,EAAE,EAAA;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACvB;IAEM,MAAM,CAAC,SAA0C,EAAE,EAAA;AACtD,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACtB,IAAI,CAAC,GAAmC,CAAC,GAAG,MAAM,CAAC,GAA4C,CAAU,CAAC;SAC7G;KACJ;AACJ;;MClEY,yBAAyB,CAAA;IA6BlC,WACY,CAAA,IAAY,EACZ,OAAwB,EACzB,UAAsB,EACA,UAAkB,EAGvC,QAAyC,EAAA;QANzC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;QACzB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QAGvC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiC;QAnC7C,IAAQ,CAAA,QAAA,GAA4B,IAAI,CAAC;QAEzC,IAAE,CAAA,EAAA,GAA0B,IAAI,CAAC;QAEjC,IAAO,CAAA,OAAA,GAAkB,IAAI,CAAC;QAC9B,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;QAEhC,IAAU,CAAA,UAAA,GAAuC,IAAI,CAAC;AAE7C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;QAET,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAIxD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AACpC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AAEpC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AACrC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AACvC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;AAExC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;AACxC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;KAU9C;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtD,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE3B,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAChF,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;gBAEhE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;aAC3C;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,gBAAA,IAAI,CAAC,EAAE,GAAG,IAAI,cAAc,CAAC,MAAK;oBAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,iBAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC3C,oBAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9D;gBAED,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACnD,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,gBAAA,sBAAsB,CAAC,OAAO,CAAC,CAAC,SAAgC,KAAI;AAChE,oBAAA,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC,CAAC;oBAE5E,SAAS,CAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;AACrD,yBAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C,yBAAA,SAAS,CAAC,CAAC,KAAY,KAAI;wBACxB,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,qBAAC,CAAC,CAAC;AACX,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;SACN;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAE1B,YAAA,IAAI,IAAI,CAAC,EAAE,EAAE;AACT,gBAAA,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;aACxB;YAED,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC/C,gBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACrC;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;iBAC3B;AACL,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;KACJ;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAExD,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,WAAW,EAAE,CAAC;gBAEnB,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnB;SACJ;KACJ;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACrC,QAAA,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC7E,IAAI,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,aAAa,EAAE;AAClD,gBAAA,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,EAAE;oBAChC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACtB;AAAM,qBAAA,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,EAAE;oBACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACnB;aACJ;SACJ;KACJ;IAEM,EAAE,GAAA;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAEM,MAAM,GAAA;AACT,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC/B,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACrC;YAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;gBAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AACnC,oBAAA,IAAI;AACA,wBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,4BAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gCAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;6BAC1B;AACL,yBAAC,CAAC,CAAC;qBACN;oBAAC,OAAO,KAAK,EAAE;;qBAEf;iBACJ;aACJ,EAAE,CAAC,CAAC,CAAC;SACT;KACJ;IAEM,QAAQ,CAAC,SAAiB,QAAQ,EAAA;QACrC,OAAO,IAAI,QAAQ,CACf,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,EAC9C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,EAC7C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,EAC/C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC,CACnD,CAAC;KACL;IAEM,QAAQ,CAAC,WAAoB,KAAK,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/E;aAAM;AACH,YAAA,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAC1G;KACJ;IAEM,UAAU,CAAC,YAAoB,KAAK,EAAA;AACvC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAE9C,QAAA,IAAI,SAAS,KAAK,KAAK,EAAE;AACrB,YAAA,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SACnG;AAAM,aAAA,IAAI,SAAS,KAAK,MAAM,EAAE;AAC7B,YAAA,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SACnG;aAAM;YACH,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;SAChE;KACJ;AAEM,IAAA,QAAQ,CAAC,CAAS,EAAE,CAAU,EAAE,KAAc,EAAA;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;aAChD;iBAAM;AACH,gBAAA,IAAI,CAAC,IAAI,IAAI,EAAE;oBACX,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBACjD;AAED,gBAAA,IAAI,CAAC,IAAI,IAAI,EAAE;oBACX,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBAChD;aACJ;SACJ;KACJ;IAEM,SAAS,CAAC,CAAS,EAAE,KAAc,EAAA;QACtC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;KACjD;IAEM,SAAS,CAAC,CAAS,EAAE,KAAc,EAAA;QACtC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;KAChD;IAEM,WAAW,CAAC,MAAe,EAAE,KAAc,EAAA;QAC9C,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;KAC1D;IAEM,YAAY,CAAC,MAAe,EAAE,KAAc,EAAA;QAC/C,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;KAC3D;IAEM,aAAa,CAAC,MAAe,EAAE,KAAc,EAAA;AAChD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;AAEnG,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KACpE;IAEM,cAAc,CAAC,MAAe,EAAE,KAAc,EAAA;AACjD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;AAEpG,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KAClE;AAEM,IAAA,eAAe,CAAC,OAA6B,EAAE,MAAe,EAAE,KAAc,EAAA;AACjF,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAgB,CAAC;SACjF;QAED,IAAI,OAAO,EAAE;AACT,YAAA,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAE1E,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAClE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBAE/D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC;AAEjE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACxE;AAED,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAClE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAE9D,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,UAAU,CAAC;AAE/D,gBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACvE;SACJ;KACJ;AAEO,IAAA,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,KAAc,EAAA;AAClE,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE5C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;QAED,IAAI,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;SACjD;aAAM,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;YACxD,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,WAAW,GAAG,CAAC,CAAC;AAEpB,YAAA,IAAI,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAErD,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC;AAE5C,YAAA,MAAM,IAAI,GAAG,CAAC,YAAoB,KAAI;AAClC,gBAAA,WAAW,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC;AAEjE,gBAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;;gBAGnF,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;AACpD,oBAAA,IAAI,WAAW,IAAI,IAAI,CAAC,EAAE,EAAE;wBACxB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;qBAC3C;yBAAM;wBACH,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;;wBAGjD,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;wBAEjD,YAAY,GAAG,YAAY,CAAC;wBAE5B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;qBACvD;iBACJ;AACL,aAAC,CAAC;AAEF,YAAA,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;SACtC;KACJ;8GA1SQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAiCtB,WAAW,EAAA,EAAA,EAAA,KAAA,EAEX,wBAAwB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAnC3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,+EAYd,gBAAgB,CAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAZ3B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,qBAAqB;AAClC,iBAAA,CAAA;;0BAkCQ,MAAM;2BAAC,WAAW,CAAA;;0BAClB,QAAQ;;0BACR,MAAM;2BAAC,wBAAwB,CAAA;yCAvBI,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAEX,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,kBAAkB,CAAA;gBAEf,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAEG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MC3BE,yBAAyB,CAAA;AAwDlC,IAAA,WAAA,CACY,IAAY,EACZ,KAAwB,EACH,UAAkB,EAAA;QAFvC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QACH,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QA1D5C,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;QAEjB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAE5B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAE5B,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAE5B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC7B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAE7B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QAEjC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QAEnC,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;AAE1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEhC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAU,CAAC;QAEb,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAE1B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAInE,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QAIjC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAIxB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AACpC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AAEpC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AACrC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AACvC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;AAExC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;AACxC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;KAS9C;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW;iBACX,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EACzB,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAChE;AACA,iBAAA,SAAS,CAAC,CAAC,KAAa,KAAI;gBACzB,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACpD,oBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEvC,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC5B;gBAED,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE;AAChC,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAEzB,oBAAA,IAAI,KAAK,KAAK,GAAG,EAAE;AACf,wBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;AACzB,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;wBAE1B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9C,4BAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;yBAClC;qBACJ;AAAM,yBAAA,IAAI,KAAK,KAAK,GAAG,EAAE;AACtB,wBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC;AACxB,wBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;wBAE3B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9C,4BAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;yBAClC;qBACJ;iBACJ;qBAAM;oBACH,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE;AACvC,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;AACzB,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AAE1B,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;wBAE1B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9C,4BAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;yBAC1B;qBACJ;yBAAM,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE;AAC9C,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC;AACxB,wBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;AAE3B,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;wBAE1B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9C,4BAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;yBAC1B;qBACJ;oBAED,IAAI,IAAI,CAAC,eAAe,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;wBACvD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AACvC,4BAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,4BAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,4BAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAEzB,4BAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC7D,gCAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;6BACjC;AAED,4BAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC7D,gCAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;6BACjC;AAED,4BAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;yBAC7B,EAAE,GAAG,CAAC,CAAC;qBACX;iBACJ;AAED,gBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;AAC1B,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC/B,aAAC,CAAC,CAAC;AAEP,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC;AAE3D,oBAAA,SAAS,CAAa,OAAO,EAAE,OAAO,CAAC;AAClC,yBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,yBAAA,SAAS,CAAC,CAAC,KAAiB,KAAI;wBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AACxC,4BAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;AAClC,4BAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;4BAElC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;yBAC5D;AACL,qBAAC,CAAC,CAAC;AAEP,oBAAA,SAAS,CAAa,OAAO,EAAE,WAAW,CAAC;AACtC,yBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,yBAAA,SAAS,CAAC,CAAC,KAAiB,KAAI;wBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;4BACxC,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;4BACjD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAEjD,4BAAA,MAAM,YAAY,GAAG,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5D,4BAAA,MAAM,YAAY,GAAG,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;4BAE5D,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAEzD,4BAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACvC,4BAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;yBAC1C;AACL,qBAAC,CAAC,CAAC;AAEP,oBAAA,KAAK,CACD,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAClD,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAClD,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EACzD,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC1D,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAC1D,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAC5D;AACI,yBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,yBAAA,SAAS,CAAC,CAAC,KAAa,KAAI;AACzB,wBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACnE,4BAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAChC;AACL,qBAAC,CAAC,CAAC;iBACV;AACL,aAAC,CAAC,CAAC;AAEH,YAAA,MAAM,CAAC,UAAU,CAAC,MAAK;AACnB,gBAAA,sBAAsB,CAAC,OAAO,CAAC,CAAC,SAAgC,KAAI;AAChE,oBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;wBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;qBAClD;AACL,iBAAC,CAAC,CAAC;aACN,EAAE,CAAC,CAAC,CAAC;SACT;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAE7B,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACpD,gBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC1C;SACJ;KACJ;IAED,SAAS,GAAA;AACL,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC;gBAE3D,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAElE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;aACrE;SACJ;KACJ;AAEO,IAAA,gBAAgB,CAAC,KAAU,EAAE,MAAc,EAAE,MAAc,EAAA;AAC/D,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAExB,QAAA,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAA,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAE7C,IACI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;AAC7C,aAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAC;AACjG,aAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAC,EACnG;YACE,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;AAED,QAAA,IAAI,CAAC,CAAC,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC5C;AAED,QAAA,IAAI,CAAC,CAAC,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC5C;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAErC,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;KAC9B;AA3PQ,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,yBAAyB,yEA2DtB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGA3Dd,yBAAyB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EA0Bd,gBAAgB,CAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAEhB,gBAAgB,CAAA,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAGhB,gBAAgB,CAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAIhB,gBAAgB,CAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAkBzB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7FxC,u4BAoBA,EAAA,MAAA,EAAA,CAAA,kyDAAA,EAAA,8hKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDoBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,qBAAqB,EAMhB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,u4BAAA,EAAA,MAAA,EAAA,CAAA,kyDAAA,EAAA,8hKAAA,CAAA,EAAA,CAAA;;0BA6DhC,MAAM;2BAAC,WAAW,CAAA;yCAjCiB,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAEE,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAItC,eAAe,EAAA,CAAA;sBAFd,WAAW;uBAAC,sBAAsB,CAAA;;sBAClC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAKtC,gBAAgB,EAAA,CAAA;sBAFf,WAAW;uBAAC,sBAAsB,CAAA;;sBAClC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAG7B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAEG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAGP,YAAY,EAAA,CAAA;sBADX,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MEjF7C,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAHhB,YAAA,EAAA,CAAA,yBAAyB,EAAE,yBAAyB,EAAE,0BAA0B,CAAA,EAAA,OAAA,EAAA,CADrF,YAAY,CAAA,EAAA,OAAA,EAAA,CAEZ,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;+GAE/F,sBAAsB,EAAA,OAAA,EAAA,CAJrB,YAAY,EAEZ,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,0BAA0B,CAAC;oBAChG,OAAO,EAAE,CAAC,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,0BAA0B,CAAC;AAC5G,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}