{"version":3,"file":"dotglitch-ngx-common.mjs","sources":["../../../packages/common/src/directives/utils.ts","../../../packages/common/src/components/menu/menu.component.ts","../../../packages/common/src/components/menu/menu.component.html","../../../packages/common/src/components/tooltip/tooltip.component.ts","../../../packages/common/src/components/tooltip/tooltip.component.html","../../../packages/common/src/directives/tooltip.directive.ts","../../../packages/common/src/directives/menu.directive.ts","../../../packages/common/src/directives/image-cache.directive.ts","../../../packages/common/src/pipes/html-bypass.pipe.ts","../../../packages/common/src/pipes/resource-bypass.pipe.ts","../../../packages/common/src/pipes/script-bypass.pipe.ts","../../../packages/common/src/pipes/style-bypass.pipe.ts","../../../packages/common/src/pipes/url-bypass.pipe.ts","../../../packages/common/src/utils/index.ts","../../../packages/common/src/services/dependency.service.ts","../../../packages/common/src/components/lazy-loader/types.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.service.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.component.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.component.html","../../../packages/common/src/services/dialog.service.ts","../../../packages/common/src/services/fetch.service.ts","../../../packages/common/src/services/keyboard.service.ts","../../../packages/common/src/services/file.service.ts","../../../packages/common/src/services/theme.service.ts","../../../packages/common/src/services/navigation.service.ts","../../../packages/common/src/components/command-palette/shortcut/shortcut.component.ts","../../../packages/common/src/components/command-palette/shortcut/shortcut.component.html","../../../packages/common/src/components/command-palette/breadcrumb/breadcrumb.component.ts","../../../packages/common/src/components/command-palette/breadcrumb/breadcrumb.component.html","../../../packages/common/src/components/command-palette/command-palette.component.ts","../../../packages/common/src/components/command-palette/command-palette.component.html","../../../packages/common/src/services/command-palette.service.ts","../../../packages/common/src/components/lazy-loader/lazy-loader.module.ts","../../../packages/common/src/components/dynamic-html/types.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.service.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.component.ts","../../../packages/common/src/components/dynamic-html/dynamic-html.module.ts","../../../packages/common/src/components/filemanager/textextensions.ts","../../../packages/common/src/assets/mat-icons.ts","../../../packages/common/src/components/filemanager/icon-resolver.ts","../../../packages/common/src/components/tabulator/tabulator.component.ts","../../../packages/common/src/components/tabulator/tabulator.component.html","../../../packages/common/src/components/filemanager/helpers.ts","../../../packages/common/src/components/filemanager/file-grid/file-grid.component.ts","../../../packages/common/src/components/filemanager/file-grid/file-grid.component.html","../../../packages/common/src/components/filemanager/toolbar/icon-button/icon-button.component.ts","../../../packages/common/src/components/filemanager/toolbar/icon-button/icon-button.component.html","../../../packages/common/src/components/filemanager/toolbar/breadcrumb/breadcrumb.component.ts","../../../packages/common/src/components/filemanager/toolbar/breadcrumb/breadcrumb.component.html","../../../packages/common/src/components/filemanager/toolbar/toolbar.component.ts","../../../packages/common/src/components/filemanager/toolbar/toolbar.component.html","../../../packages/common/src/components/filemanager/tree-view/tree-view.component.ts","../../../packages/common/src/components/filemanager/tree-view/tree-view.component.html","../../../packages/common/src/components/types.ts","../../../packages/common/src/components/filemanager/filemanager.component.ts","../../../packages/common/src/components/filemanager/filemanager.component.html","../../../packages/common/src/components/vscode/ts-type-resolver/dependency-parser.ts","../../../packages/common/src/components/vscode/ts-type-resolver/update-emitter.ts","../../../packages/common/src/components/vscode/ts-type-resolver/recursion-depth.ts","../../../packages/common/src/components/vscode/ts-type-resolver/types.ts","../../../packages/common/src/components/vscode/ts-type-resolver/unpkg-source-resolver.ts","../../../packages/common/src/components/vscode/ts-type-resolver/import-resolver.ts","../../../packages/common/src/components/vscode/ts-type-resolver/dummy-source-cache.ts","../../../packages/common/src/components/vscode/ts-type-resolver/main.ts","../../../packages/common/src/components/vscode/vscode.component.ts","../../../packages/common/src/components/parallax-card/parallax-card.component.ts","../../../packages/common/src/components/parallax-card/parallax-card.component.html","../../../packages/common/src/components/react-magic-wrapper/react-magic-wrapper.component.ts","../../../packages/common/src/public-api.ts","../../../packages/common/src/dotglitch-ngx-common.ts"],"sourcesContent":["/**\n * This utils file exists outside of the strict angular DI zone\n * This enables opening popups without requiring absolute DI bindings.\n */\n\nexport const getPosition = (el: HTMLElement | PointerEvent, config: any = {}, bounds: DOMRect) => {\n    // Bounds of the popup owner\n    const src: DOMRect = !!el['nodeName']\n                ? (el as HTMLElement).getBoundingClientRect()\n                : {\n                    // It's a pointer event, so we'll take the X and Y from the pointer.\n                    x: el['clientX'],\n                    y: el['clientY'],\n                    // Set a default tiny size, so we don't divide by zero.\n                    width: 0.0001,\n                    height: 0.0001\n                } as DOMRect;\n\n    // Popup bounds\n    const { width, height } = bounds;\n\n    const winh = window.innerHeight;\n    const winw = window.innerWidth;\n\n    const cords = {\n        top: null,\n        left: null\n    };\n\n    if (config?.position == \"left\" || config?.position == \"right\" || !config?.position) {\n        switch (config?.alignment) {\n\n            case \"end\": {\n                // vertically bind to bottom\n                cords.top = src.y + src.height - height;\n                break;\n            }\n            case \"afterend\": {\n                // vertically bind below bottom\n                cords.top = src.y + src.height;\n                break;\n            }\n            case \"beforestart\": {\n                // vertically bind above top\n                cords.top = src.y - height;\n                break;\n            }\n            case \"start\": {\n                // vertically bind to top\n                cords.top = src.y;\n                break;\n            }\n            case \"center\":\n            default: {\n                // vertically center\n                cords.top = (src.y + (src.height / 2)) - (height / 2);\n                break;\n            }\n        }\n\n        // Apply bounds to prevent the dialog from being cut-off screen\n        // Lower bound\n        cords.top = Math.max(config?.edgePadding || 0, cords.top);\n        // Upper bound\n        cords.top = Math.min(winh - height, cords.top);\n\n        if (config?.position == \"left\") {\n            cords.left = src.x - (width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n        }\n        if (config?.position == \"right\" || !config?.position) {\n            cords.left = src.x + (src.width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n        }\n\n        // Lower bound\n        cords.left = Math.max(config?.edgePadding || 0, cords.left);\n        // Upper bound\n        cords.left = Math.min(winw - width, cords.left);\n    }\n    else if (config?.position == \"top\" || config?.position == \"bottom\") {\n        switch (config?.alignment) {\n            case \"end\": {\n                // vertically bind to right\n                cords.left = src.x + src.width - width;\n                break;\n            }\n            case \"afterend\": {\n                // vertically bind past right\n                cords.left = src.x + src.width;\n                break;\n            }\n            case \"beforestart\": {\n                // vertically bind before left\n                cords.left = src.x - width;\n                break;\n            }\n            case \"start\": {\n                // vertically bind to left\n                cords.left = src.x;\n                break;\n            }\n            case \"center\":\n            default: {\n                // vertically center\n                cords.left = (src.x + (src.width / 2)) - (width / 2);\n                break;\n            }\n        }\n\n        // Apply bounds to prevent the dialog from being cut-off screen\n        // Lower bound\n        cords.left = Math.max(config?.edgePadding || 0, cords.left);\n        // Upper bound\n        cords.left = Math.min(winw - width, cords.left);\n\n\n        if (config?.position == \"top\") {\n            cords.top = src.y - (height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n        }\n        if (config?.position == \"bottom\") {\n            cords.top = src.y + (src.height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));\n        }\n\n        // Lower bound\n        cords.top = Math.max(config?.edgePadding || 0, cords.top);\n        // Upper bound\n        cords.top = Math.min(winh - height, cords.top);\n    }\n\n    // Assign unit\n    cords.top = cords.top + 'px';\n    cords.left = cords.left + 'px';\n\n    return cords;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, HostListener, Inject, Input, Optional, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { DomSanitizer, createApplication } from '@angular/platform-browser';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { firstValueFrom } from 'rxjs';\nimport { MenuItem, MenuOptions } from '../../types/menu';\nimport { TooltipDirective } from '../../directives/tooltip.directive';\n\ndeclare const Zone: any;\nconst zone = new Zone(Zone.current, { name: \"@dotglitch_menu\", properties: {} });\n\nexport const calcMenuItemBounds = async (menuItems: MenuItem[], dataObj: any) => {\n    const data = {\n        data: dataObj,\n        items: menuItems,\n        config: {},\n        selfCords: { left: \"0px\", top: \"0px\" },\n        ownerCords: { x: 0, y: 0, width: 0, height: 0 },\n        id: null\n    }\n\n    return calcComponentBounds(MenuComponent, data);\n}\n\nconst calcComponentBounds = async (component: Type<any>, data: any) => {\n    return new Promise<DOMRect>((res, rej) => {\n        zone.run(async () => {\n            const app = await createApplication({\n                providers: [\n                    { provide: MAT_DIALOG_DATA, useValue: data }\n                ]\n            });\n\n            const del = document.createElement(\"div\");\n            del.classList.add(\"ngx-menu\");\n            del.style.position = \"absolute\";\n            del.style.left = '-1000vw';\n            document.body.append(del);\n\n            const base = app.bootstrap(component, del);\n            const { instance } = base;\n\n            await firstValueFrom(app.isStable);\n\n            const el: HTMLElement = instance.viewContainer?.element?.nativeElement;\n\n            const rect = el.getBoundingClientRect();\n            app.destroy();\n            del.remove();\n\n            res(rect);\n        });\n    })\n}\n\nconst $data = Symbol(\"data\");\nconst $hover = Symbol(\"hover\");\n\n@Component({\n    selector: 'ngx-menu',\n    templateUrl: './menu.component.html',\n    styleUrls: ['./menu.component.scss'],\n    imports: [\n        NgTemplateOutlet,\n        PortalModule,\n        MatIconModule,\n        MatProgressSpinnerModule,\n        TooltipDirective\n    ],\n    standalone: true,\n    host: {\n        \"[attr.tx]\": \"targetBounds?.x\",\n        \"[attr.ty]\": \"targetBounds?.y\",\n        \"[attr.th]\": \"targetBounds?.height\",\n        \"[attr.tw]\": \"targetBounds?.width\",\n    }\n})\nexport class MenuComponent {\n\n    @Input() public data: any;\n    @Input() public items: MenuItem[];\n    @Input() public config: MenuOptions;\n    @Input() public id: string;\n    @Input() public overlayOverlap = 32;\n    @Input() public hoverDelay = 400;\n    @Input() public showDebugOverlay = false;\n    @Input() public targetBounds: DOMRect;\n\n    @Input() ownerCords: DOMRect;\n    @Input() selfCords;\n    @Input() parentItem;\n    @Input() parentContext;\n    @Input() isLockedOpen = false;\n\n    public hasBootstrapped = false;\n    public pointerIsOnVoid = false;\n    public pointerHasBeenOverMask = false;\n    parentIsNgxMenu = false;\n\n    coverRectCords = {\n        top: 0,\n        left: 0,\n        height: 0,\n        width: 0\n    }\n\n    // Check if there are any slashes or dots -- that will clearly exclude it from being a mat icon\n    public readonly matIconRx = /[\\/\\.]/i;\n    showIconColumn = true;\n    showShortcutColumn = true;\n\n    template: TemplateRef<any>;\n    templateType: \"template\" | \"component\";\n    componentPortal: ComponentPortal<any>;\n    private childDialogs: MatDialogRef<any>[] = [];\n\n    constructor(\n        public viewContainer: ViewContainerRef,\n        public sanitizer: DomSanitizer,\n        @Optional() @Inject(MAT_DIALOG_DATA) private _data: any,\n        @Optional() public dialog: MatDialog, // optional only for the purpose of estimating dimensions\n        @Optional() public dialogRef: MatDialogRef<any>\n    ) {\n        // Defaults are set before @Input() hooks evaluate\n        this.dialog = this.dialog || this._data?.dialog;\n        this.data  = this._data?.data;\n        this.ownerCords = this._data?.ownerCords;\n        this.selfCords = this._data?.selfCords;\n        this.items = this._data?.items;\n        this.config = this._data?.config;\n        this.id = this._data?.id;\n        this.parentItem = this._data?.parentItem;\n        this.parentContext = this._data?.parentContext;\n        this.isLockedOpen = this.isLockedOpen || this._data?.config?.['_isLockedOpen'];\n        this.parentIsNgxMenu = this._data?.parentIsNgxMenu;\n        this.targetBounds = this._data?.targetBounds;\n\n        this.template = this._data?.template;\n\n        this.templateType = this.template instanceof TemplateRef ? \"template\" : \"component\";\n\n        if (this.templateType == \"component\") {\n            this.componentPortal = new ComponentPortal(this.template as any);\n        }\n    }\n\n    ngOnInit() {\n\n        this.items?.forEach(i => {\n            if (typeof i == \"string\") return;\n\n            // Set defaults\n            i['_disabled'] = false;\n            i['_visible'] = true;\n            i['_context'] = (typeof i.context == \"function\")\n                          ? i.context(this.data)\n                          : i.context;\n\n            if (i.label)\n                try { i['_formattedLabel'] = this.formatLabel(i.label); } catch (e) { console.warn(e) }\n\n            if (typeof i.isDisabled == \"function\")\n                try { i['_disabled'] = i.isDisabled(this.data || {}, i['_context']); } catch(e) { console.warn(e) }\n\n            if (typeof i.isVisible == \"function\")\n                try { i['_visible'] = i.isVisible(this.data || {}, i['_context']); } catch (e) { console.warn(e) }\n\n            if (typeof i.linkTemplate == \"function\")\n                try { i['_link'] = i.linkTemplate(this.data || {}, i['_context']); } catch (e) { console.warn(e) }\n\n            if (typeof i.iconTemplate == \"function\")\n                try { i['_icon'] = i.iconTemplate(this.data || {}, i['_context']); } catch (e) { console.warn(e); }\n        });\n\n        // Show the icon column if there are any items with an icon\n        this.showIconColumn = !!this.items?.find(i =>\n                typeof i == \"object\" &&\n                typeof i['icon'] == \"string\" &&\n                i['icon'].length > 2\n            );\n\n        this.showShortcutColumn = !!this.items?.find(i =>\n                typeof i == \"object\" &&\n                typeof i['shortcut'] == \"string\" &&\n                i['shortcut'].length > 2\n            );\n\n        if (this.ownerCords) {\n            const selfY = parseInt(this.selfCords.top?.replace('px', '') || '0');\n            const selfX = parseInt(this.selfCords.left?.replace('px', '') || '0');\n\n            this.coverRectCords = {\n                top: this.ownerCords.y - selfY - (this.overlayOverlap/2),\n                left: this.ownerCords.x - selfX - (this.overlayOverlap/2),\n                height: this.ownerCords.height + this.overlayOverlap,\n                width: this.ownerCords.width + this.overlayOverlap\n            }\n        }\n\n        if (this.config?.stayOpen)\n            this.isLockedOpen = true;\n\n        setTimeout(() => {\n            this.hasBootstrapped = true;\n        }, 200);\n    }\n\n    ngAfterViewInit() {\n        const el = this.viewContainer.element.nativeElement as HTMLElement;\n        el.addEventListener(\"keydown\", evt => {\n            this.isLockedOpen = true;\n        });\n        el.addEventListener(\"pointerdown\", evt => {\n            this.isLockedOpen = true;\n        });\n        el.addEventListener(\"touch\", evt => {\n            this.isLockedOpen = true;\n        });\n    }\n\n    ngOnDestroy() {\n        //\n        this.childDialogs.forEach(d => d.close({[$data]: true}))\n    }\n\n    /**\n     *\n     */\n    async onMenuItemClick(item: MenuItem, row: HTMLTableRowElement, keepOpen = false) {\n        if (typeof item == 'string') return null;\n        if (item.separator) return null;\n\n        const context = await item['_context'];\n\n        // If cache is enabled, only load if we don't have any children.\n        const forceLoad = (item.cacheResolvedChildren ? !item.children : true);\n\n        if (item.childrenResolver && forceLoad) {\n            item['_isResolving'] = true;\n            item['_children'] = await item.childrenResolver(this.data, context);\n            item['_isResolving'] = false;\n        }\n        else if (typeof item.children == \"function\" && forceLoad) {\n            item['_isResolving'] = true;\n            item['_children'] = await item.children(this.data, context);\n            item['_isResolving'] = false;\n        }\n        else {\n            item['_children'] = item.children;\n        }\n\n        if (item['_children'] || item.childTemplate)\n            row['_open'] = true;\n\n        if (!item.childTemplate && !item.children) {\n            if (typeof item.action == \"function\") {\n                const res = await item.action(this.data, context)\n                this.close(res === undefined ? true : res);\n                return res;\n            }\n\n            // If no action, this is simply a text item.\n            return null;\n        }\n\n        // Need X pos, Y pos, width and height\n        const bounds = row.getBoundingClientRect();\n\n        const cords = {\n            top: null,\n            left: null,\n            bottom: null,\n            // right: null\n        };\n\n        // Set position coordinates\n        const targetBounds = await (item.childTemplate\n            ? calcComponentBounds(MenuComponent, { template: item.childTemplate })\n            : calcMenuItemBounds(item['_children'], this.data));\n        const { width, height } = targetBounds;\n\n        if (bounds.y + height > window.innerHeight)\n            cords.bottom = \"0px\";\n        if (bounds.x + bounds.width + width > window.innerWidth)\n            cords.left = ((bounds.x - width)) + \"px\";\n\n        if (!cords.bottom) cords.top  = bounds.y + \"px\";\n        if (!cords.left)   cords.left = bounds.x + bounds.width + \"px\";\n\n\n        const config = structuredClone(this.config)\n        config['_isLockedOpen'] = keepOpen;\n\n        // Do not project in the top left corner -- this scenario\n        // happens when a dialog opens as the parent is killed.\n        if (cords.left == '0px' && cords.top == '0px')\n            return;\n\n        const dialogRef = this.dialog.open(MenuComponent, {\n            position: cords,\n            panelClass: [\"ngx-menu\"].concat(this.config?.customClass || []),\n            backdropClass: \"ngx-menu-backdrop\",\n            hasBackdrop: false,\n            data: {\n                data: this.data,\n                ownerCords: row.getBoundingClientRect(),\n                selfCords: cords,\n                parentItem: item,\n                parentContext: context,\n                items: item['_children'],\n                template: item.childTemplate,\n                config: config,\n                parentIsNgxMenu: true,\n                targetBounds\n            }\n        });\n\n        let _s = dialogRef\n            .afterClosed()\n                .subscribe(async (result) => {\n                    // Clicked \"void\" on a submenu\n                    if (typeof result == \"object\" && result[$data] == true) {\n                        this.close(result);\n                    }\n                    // Went back to parent menu -- do not close (same as result == null)\n                    else if (typeof result == \"object\" && result[$data] == false) {\n\n                    }\n                    // Got some other result value\n                    else if (result != null) {\n                        // Perform action callback\n                        if (typeof item.action == 'function') {\n                            this.close(await item.action(result, context));\n                        }\n                        // Just close.\n                        else {\n                            this.close();\n                        }\n                    }\n\n                    row['_open'] = false;\n\n                    this.childDialogs.splice(this.childDialogs.indexOf(dialogRef), 1);\n\n                    _s.unsubscribe();\n                });\n\n        this.childDialogs.push(dialogRef);\n        return dialogRef;\n    }\n\n    /**\n     *\n     * @param label\n     * @returns\n     */\n    formatLabel(label: string): string {\n        return label.replace(/_([a-z0-9])_/i, (match, group) => `<u>${group}</u>`);\n    }\n\n    /**\n     * Close the context menu under these circumstances\n     */\n    // @HostListener(\"window:resize\", ['event'])\n    // @HostListener(\"window:blur\", ['event'])\n    close(result?) {\n        this.childDialogs.forEach(d => d.close())\n        this.dialogRef?.close(result);\n    }\n\n    closeOnVoid(force = false) {\n        if (!this.isLockedOpen || force) {\n            this.close({[$data]: force});\n        }\n    }\n\n    startHoverTimer(item, row) {\n\n        // Invert check to make the logic simpler\n        // TL;DR: if (any) of these are true, we will do the hover action\n        if (!(\n            Array.isArray(item.children) && item.children.length > 0 ||\n            typeof item.children == \"function\" ||\n            item.childTemplate ||\n            item.childrenResolver\n        ))\n            return;\n\n        item[$hover] = setTimeout(() => {\n            delete item[$hover];\n\n            if (!this.pointerIsOnVoid) {\n                this.childDialogs.forEach(cd => cd.close());\n                row['_open'] = true;\n                this.onMenuItemClick(item, row);\n            }\n        }, this.hoverDelay);\n    }\n\n    stopHoverTimer(item) {\n        item[$hover] && clearTimeout(item[$hover]);\n        delete item[$hover];\n    }\n\n    private closeTimer: number;\n    startCloseTimer() {\n        this.closeTimer = setTimeout(() => {\n            this.closeOnVoid();\n        }, 500) as any;\n    }\n    stopCloseTimer() {\n        clearTimeout(this.closeTimer);\n    }\n\n    /**\n     * Check if the dialog is clipping offscreen\n     * if so, move it back into view.\n     */\n    @HostListener(\"window:resize\")\n    private onResize() {\n        const el = this.viewContainer?.element?.nativeElement as HTMLElement;\n        if (!el) return;\n\n        const { width, height, x, y } = el.getBoundingClientRect();\n\n        const target = document.querySelector(\".ngx-menu\") as HTMLElement;\n        if (!target) return;\n\n        // Move back into view if we're clipping outside of the bottom\n        if (y + height > window.innerHeight) {\n            const newTop = (window.innerHeight - (height + (this.config.edgePadding || 12))) + \"px\";\n            target.style['margin-top'] = newTop;\n        }\n\n        // Move back into view if we're clipping off the right\n        if (x + width > window.innerWidth) {\n            const newLeft = (window.innerWidth - (width + (this.config.edgePadding || 12))) + \"px\"\n            target.style['margin-left'] = newLeft;\n        }\n    }\n\n    // If the void element gets stuck open, make wheel events pass through.\n    onWheel(evt: WheelEvent) {\n        const el = this.viewContainer.element.nativeElement as HTMLElement;\n        el.style.display = \"none\";\n        const target = document.elementFromPoint(evt.clientX, evt.clientY);\n        el.style.display = \"block\";\n\n        target.scroll({\n            top: evt.deltaY + target.scrollTop,\n            left: evt.deltaX + target.scrollLeft,\n            behavior: \"smooth\"\n        })\n    }\n}\n","<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords && !parentIsNgxMenu) {\n    <div\n        class=\"owner-mask\"\n        [style.top]=\"coverRectCords.top + 'px'\"\n        [style.left]=\"coverRectCords.left + 'px'\"\n        [style.height]=\"coverRectCords.height + 'px'\"\n        [style.width]=\"coverRectCords.width + 'px'\"\n        [style.background]=\"showDebugOverlay ? '#f004' : '#0000'\"\n        style=\"z-index: -1\"\n        (pointerenter)=\"pointerHasBeenOverMask=true\"\n        (pointerleave)=\"stopCloseTimer()\"\n        (pointermove)=\"pointerHasBeenOverMask=true\"\n        (click)=\"isLockedOpen = true\"\n    ></div>\n}\n\n@if (!parentIsNgxMenu) {\n    <div class=\"void\"\n        [style.background]=\"showDebugOverlay ? '#00f4' : '#0000'\"\n        (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && !isLockedOpen && startCloseTimer()\"\n        (pointerleave)=\"pointerIsOnVoid = false\"\n        (pointerdown)=\"hasBootstrapped && closeOnVoid(true)\"\n        (pointermove)=\"hasBootstrapped && !isLockedOpen && startCloseTimer()\"\n        (click)=\"closeOnVoid(true)\"\n        (wheel)=\"onWheel($event)\"\n    ></div>\n}\n\n@if (!template) {\n    <table (pointerenter)=\"stopCloseTimer()\">\n        <tbody>\n            @for (item of items; track item) {\n                <!-- A row with a click action -->\n                @if (item != 'separator' && item.separator != true && item['_visible']) {\n                    <tr #row\n                        [class.disabled]=\"item['_disabled']\"\n                        (click)=\"!item['_disabled'] && onMenuItemClick(item, row, true)\"\n                        [class.hover]=\"row['hover']\"\n                        [class.open]=\"row['_open']\"\n                        (pointerenter)=\"row['hover'] = true; startHoverTimer(item, row)\"\n                        (pointerleave)=\"row['hover'] = false; stopHoverTimer(item)\"\n                    >\n\n                        @if (showIconColumn) {\n                            <td class=\"icon\">\n                                @if (matIconRx.test(item['_icon'] ?? item.icon)) {\n                                    <img [src]=\"item['_icon'] ?? item.icon\"/>\n                                }\n                                @else {\n                                    <mat-icon\n                                        [fontIcon]=\"item['_icon'] ?? item.icon\"\n                                        [style.color]=\"item.iconColor\"\n                                    />\n                                }\n                            </td>\n                        }\n\n                        <!-- 'Normal' action based item -->\n                        <td class=\"label\"\n                            [style.padding-left]=\"showIconColumn ? 0 : '16px'\"\n                        >\n                            <a\n                                #anchor\n                                [attr.target]=\"item.linkTarget\"\n                                [attr.href]=\"(item['_link'] || item.link) ? sanitizer.bypassSecurityTrustUrl(item['_link'] || item.link) : undefined\"\n                            >\n                                @if ($any(item.labelTemplate)?.prototype) {\n                                    <ng-container\n                                        [ngTemplateOutlet]=\"$any(item).labelTemplate\"\n                                        [ngTemplateOutletContext]=\"{\n                                            '$implicit': data,\n                                            'dialog': dialogRef,\n                                            'context': item['_context'],\n                                            'item': item,\n                                            'element': anchor,\n                                            'menu': this\n                                        }\"\n                                    />\n                                }\n                                @else {\n                                    @if ($any(item)?.labelTemplate) {\n                                        {{$any(item)?.labelTemplate(data || {})}}\n                                    }\n                                    @else {\n                                        <div [innerHTML]=\"item['_formattedLabel']\"></div>\n                                    }\n                                }\n                            </a>\n                        </td>\n\n                        @if (showShortcutColumn) {\n                            <td class=\"shortcut\">\n                                {{item.shortcutLabel}}\n                            </td>\n                        }\n\n                        <td style=\"min-width: 16px\">\n                            @if ((\n                                    (item['children']?.length > 0) ||\n                                    (item['_children']?.length > 0) ||\n                                    item.childTemplate ||\n                                    item.children?.['call'] ||\n                                    item.childrenResolver\n                                ) &&\n                                !item['_isResolving']\n                            ) {\n                                <mat-icon\n                                    style=\"transform: translateY(2px)\"\n                                >\n                                    chevron_right\n                                </mat-icon>\n                            }\n\n                            @if (item['_isResolving']) {\n                                <mat-progress-spinner\n                                    mode=\"indeterminate\"\n                                    [diameter]=\"20\"\n                                    style=\"margin-right: 4px\"\n                                />\n                            }\n                        </td>\n                    </tr>\n                }\n                @else if (item != 'separator' && item.separator == true) {\n                    <!-- Separator with label -->\n                    <tr\n                        class=\"disabled separator\"\n                    >\n                        <td\n                            class=\"center\"\n                            [attr.colspan]=\"2 + (showIconColumn ? 1 : 0) + (showShortcutColumn ? 1 : 0)\"\n                        >\n                            <span class=\"hr\">\n                                {{item['label'] || ''}}\n                            </span>\n                        </td>\n                    </tr>\n                }\n                @else if (item == 'separator') {\n                    <!-- Separator -->\n                    <tr\n                        class=\"disabled separator\"\n                    >\n                        <td\n                            [attr.colspan]=\"2 + (showIconColumn ? 1 : 0) + (showShortcutColumn ? 1 : 0)\"\n                        >\n                            <hr/>\n                        </td>\n                    </tr>\n                }\n            }\n        </tbody>\n    </table>\n}\n@else {\n    @if (templateType == 'template') {\n        <div style=\"display: contents;\" (pointerenter)=\"stopCloseTimer()\">\n            <ng-container\n                [ngTemplateOutlet]=\"template\"\n                [ngTemplateOutletContext]=\"{\n                    '$implicit': data,\n                    'dialog': dialogRef,\n                    'context': parentContext,\n                    'item': parentItem,\n                    'element': this.viewContainer?.element?.nativeElement,\n                    'menu': this\n                }\"\n            />\n        </div>\n    }\n    @else {\n        <div style=\"display: contents;\" (pointerenter)=\"stopCloseTimer()\">\n            <ng-container\n                [cdkPortalOutlet]=\"componentPortal\"\n            />\n        </div>\n    }\n}\n\n@if (showDebugOverlay) {\n    <div>\n        <div>hbs: {{hasBootstrapped}}</div>\n        <div>pov: {{pointerIsOnVoid}}</div>\n        <div>ilo: {{isLockedOpen}}</div>\n        <div>hbom: {{pointerHasBeenOverMask}}</div>\n\n        <div>type: {{templateType}}</div>\n    </div>\n}\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, HostListener, Inject, Input, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog';\nimport { Optional } from '@angular/core';\nimport { createApplication } from '@angular/platform-browser';\nimport { firstValueFrom } from 'rxjs';\nimport { TooltipOptions } from '../../types/tooltip';\nimport { MenuItem } from '../../types/menu';\nimport { MenuComponent } from '../menu/menu.component';\n\ndeclare const Zone;\nconst zone = new Zone(Zone.current, { name: \"@dotglitch_menu\", properties: {} });\n\nexport const calcTooltipBounds = async (template: TemplateRef<any> | Type<any>, data: any, matDialogConfig: MatDialogConfig) => {\n\n    const args = {\n        data: data || {},\n        template,\n        config: {},\n        selfCords: { left: \"0px\", top: \"0px\" },\n        ownerCords: { x: 0, y: 0, width: 0, height: 0 },\n        id: null\n    }\n\n    // dimensions should be in px... Might need to handle vw/v\n    if (matDialogConfig?.width && matDialogConfig?.height) {\n        return {\n            width: parseInt(matDialogConfig.width),\n            height: parseInt(matDialogConfig.height),\n            top: 0,\n            left: 0,\n            right: 0,\n            bottom: 0\n        } as DOMRect;\n    }\n\n    return new Promise<DOMRect>((res, rej) => {\n        zone.run(async () => {\n            // Forcibly bootstrap the ctx menu outside of the client application's zone.\n            const app = await createApplication({\n                providers: [\n                    { provide: MAT_DIALOG_DATA, useValue: args }\n                ]\n            });\n\n            const del = document.createElement(\"div\");\n            del.style.position = \"absolute\";\n            del.style.left = '-1000vw';\n            document.body.append(del);\n\n            const base = app.bootstrap(TooltipComponent, del);\n            const { instance } = base;\n\n            await firstValueFrom(app.isStable);\n\n            const el: HTMLElement = instance.viewContainer?.element?.nativeElement;\n\n            const rect = el.getBoundingClientRect();\n            app.destroy();\n            del.remove();\n\n            res(rect)\n        });\n    })\n}\n\n@Component({\n    selector: 'ngx-tooltip',\n    templateUrl: './tooltip.component.html',\n    styleUrls: ['./tooltip.component.scss'],\n    imports: [\n        NgTemplateOutlet,\n        NgComponentOutlet,\n        MenuComponent\n    ],\n    standalone: true\n})\nexport class TooltipComponent {\n    @Input() data: any;\n    @Input() config: TooltipOptions;\n    @Input() ownerCords: DOMRect;\n    @Input() selfCords;\n    @Input() template: TemplateRef<any> | Type<any> | MenuItem[];\n\n    public isTemplate = false;\n    public isMenu = false;\n    public hasBootstrapped = false;\n    public pointerIsOnVoid = false;\n    public isLockedOpen = false;\n\n    clientWidth = window.innerWidth;\n    clientHeight = window.innerHeight;\n\n    coverRectCords = {\n        top: 0,\n        left: 0,\n        height: 0,\n        width: 0\n    }\n\n    constructor(\n        public viewContainer: ViewContainerRef,\n        @Optional() @Inject(MAT_DIALOG_DATA) private _data: any,\n        @Optional() public dialog: MatDialog, // optional only for the purpose of estimating dimensions\n        @Optional() public dialogRef: MatDialogRef<any>,\n    ) {\n        // Defaults are set before @Input() hooks evaluate\n        this.data = this.data || this._data?.data || {};\n        this.config = this.config || this._data?.config;\n        this.dialog = this.dialog || this._data?.dialog;\n        this.template = this.template || this._data?.template;\n        this.ownerCords = this.ownerCords || this._data?.ownerCords;\n        this.selfCords = this.selfCords || this._data?.selfCords;\n        this.isLockedOpen = this._data?.isLockedOpen || this.config?.stayOpen;\n    }\n\n    ngOnInit() {\n\n        const selfY = parseInt(this.selfCords.top.replace('px', ''));\n        const selfX = parseInt(this.selfCords.left.replace('px', ''));\n\n        this.coverRectCords = {\n            top: this.ownerCords.y - selfY - 16,\n            left: this.ownerCords.x - selfX - 16,\n            height: this.ownerCords.height + 32,\n            width: this.ownerCords.width + 32\n        }\n\n        if (Array.isArray(this.template))\n            this.isMenu =  true;\n        else if (this.template instanceof TemplateRef)\n            this.isTemplate = true;\n        else if (typeof this.template == \"function\")\n            this.isTemplate = false;\n        else\n            throw new Error(\"Unrecognized template object provided.\");\n\n        // TODO: resolve the event hook with the .void element\n        setTimeout(() => {\n            this.hasBootstrapped = true;\n            if (this.pointerIsOnVoid && !this.isLockedOpen)\n                this.dialogRef.close();\n        }, 200);\n    }\n\n    ngAfterViewInit() {\n        const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n        el.addEventListener(\"keydown\", evt => {\n            this.isLockedOpen = true;\n        });\n\n        el.addEventListener(\"pointerdown\", evt => {\n            this.isLockedOpen = true;\n        });\n\n        el.addEventListener(\"touch\", evt => {\n            this.isLockedOpen = true;\n        });\n    }\n\n    @HostListener(\"window:keydown\", ['$event'])\n    onKeyDown(evt: KeyboardEvent) {\n        if (this.config?.freezeOnKeyCode) {\n            if (evt.code == this.config.freezeOnKeyCode)\n                this.isLockedOpen = true;\n        }\n    }\n\n    onVoidPointerDown(evt: PointerEvent) {\n        if (!this.isLockedOpen) {\n            const el = this.viewContainer.element.nativeElement as HTMLElement;\n            el.querySelector(\".void\").remove();\n\n            setTimeout(() => {\n                const clonedEvt = new PointerEvent(\"pointerdown\", evt);\n                const target = document.elementFromPoint(evt.clientX, evt.clientY) as HTMLElement;\n\n                console.log(\"DEBUG EVENTS\", {evt, clonedEvt});\n                target.dispatchEvent(clonedEvt);\n            }, 15)\n        }\n\n        this.closeOnVoid(true)\n    }\n\n    // If the void element gets stuck open, make wheel events pass through.\n    onWheel(evt: WheelEvent) {\n        const el = this.viewContainer.element.nativeElement as HTMLElement;\n        el.style.display = \"none\";\n        const target = document.elementFromPoint(evt.clientX, evt.clientY);\n        el.style.display = \"block\";\n\n        target.scroll({\n            top: evt.deltaY + target.scrollTop,\n            left: evt.deltaX + target.scrollLeft,\n            behavior: \"smooth\"\n        });\n    }\n\n    /**\n     * Close the tooltip if these actions occur\n     */\n    @HostListener(\"window:resize\")\n    @HostListener(\"window:blur\")\n    @HostListener(\"pointerleave\")\n    private onClose() {\n        if (!this.isLockedOpen)\n            this.dialogRef?.close();\n\n        this.clientWidth = window.innerWidth;\n        this.clientHeight = window.innerHeight;\n    }\n\n    closeOnVoid(force = false) {\n        if (!this.isLockedOpen || force)\n            this.dialogRef.close();\n    }\n}\n","<!-- Mouse event blocker for pointer leave -->\n@if (coverRectCords) {\n    <!-- <div\n        class=\"owner-mask\"\n        [style.top]=\"coverRectCords.top + 'px'\"\n        [style.left]=\"coverRectCords.left + 'px'\"\n        [style.height]=\"coverRectCords.height + 'px'\"\n        [style.width]=\"coverRectCords.width + 'px'\"\n        style=\"z-index: -1;\"\n        (pointerdown)=\"onVoidPointerDown($event)\"\n    ></div> -->\n\n    <div class=\"void left\"\n        [style.top]=\"'0px'\"\n        [style.left]=\"'0px'\"\n        [style.height]=\"'100%'\"\n        [style.width]=\"(ownerCords.left) + 'px'\"\n        (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n        (pointerleave)=\"pointerIsOnVoid = false\"\n        (pointerdown)=\"onVoidPointerDown($event)\"\n        (wheel)=\"onWheel($event)\"\n    ></div>\n    <div class=\"void top\"\n        [style.top]=\"'0px'\"\n        [style.left]=\"ownerCords.left + 'px'\"\n        [style.height]=\"ownerCords.top + 'px'\"\n        [style.width]=\"ownerCords.width + 'px'\"\n        (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n        (pointerleave)=\"pointerIsOnVoid = false\"\n        (pointerdown)=\"onVoidPointerDown($event)\"\n        (wheel)=\"onWheel($event)\"\n    ></div>\n    <div class=\"void right\"\n        [style.top]=\"'0px'\"\n        [style.left]=\"(ownerCords.left + ownerCords.width) + 'px'\"\n        [style.height]=\"'100%'\"\n        [style.width]=\"(clientWidth - (ownerCords.left + ownerCords.width)) + 'px'\"\n        (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n        (pointerleave)=\"pointerIsOnVoid = false\"\n        (pointerdown)=\"onVoidPointerDown($event)\"\n        (wheel)=\"onWheel($event)\"\n    ></div>\n    <div class=\"void\"\n        [style.top]=\"(ownerCords.top + ownerCords.height) + 'px'\"\n        [style.left]=\"ownerCords.left + 'px'\"\n        [style.height]=\"(clientHeight - (ownerCords.top + ownerCords.height)) + 'px'\"\n        [style.width]=\"ownerCords.width + 'px'\"\n        (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n        (pointerleave)=\"pointerIsOnVoid = false\"\n        (pointerdown)=\"onVoidPointerDown($event)\"\n        (wheel)=\"onWheel($event)\"\n    ></div>\n}\n\n\n<div\n    #container\n    class=\"container\"\n>\n    @if (isMenu) {\n        <ngx-menu\n            [config]=\"config\"\n            [data]=\"data\"\n            [ownerCords]=\"ownerCords\"\n            [selfCords]=\"selfCords\"\n            [items]=\"$any(template)\"\n            [isLockedOpen]=\"config.stayOpen\"\n        />\n    }\n    @else if (isTemplate) {\n        <ng-container\n            [ngTemplateOutlet]=\"$any(template)\"\n            [ngTemplateOutletContext]=\"{\n                '$implicit': data,\n                'dialog': dialogRef,\n                'element': container,\n                'tooltip': this\n            }\"\n        ></ng-container>\n    }\n    @else {\n        <ng-container\n            [ngComponentOutlet]=\"$any(template)\"\n        >\n        </ng-container>\n    }\n</div>\n","import { Directive, Input, HostListener, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { getPosition } from './utils';\nimport { TooltipComponent, calcTooltipBounds } from '../components/tooltip/tooltip.component';\nimport { TooltipOptions } from '../types/tooltip';\nimport { MenuItem, MenuOptions } from '../types/menu';\nimport { ulid } from 'ulidx';\nimport { firstValueFrom } from 'rxjs';\nimport { MenuComponent } from '../components/menu/menu.component';\n\n@Directive({\n    selector: '[ngx-tooltip]',\n    providers: [\n        MatDialog\n    ],\n    standalone: true\n})\nexport class TooltipDirective {\n\n    /**\n     */\n    @Input(\"ngx-tooltip\") template: TemplateRef<any> | Type<any> | MenuItem[];\n\n    /**\n     * Configuration for opening the app menu\n     */\n    @Input(\"ngx-tooltip-config\") config: TooltipOptions = {};\n\n    /**\n     * Arbitrary data to pass into the template\n     */\n    @Input(\"ngx-tooltip-context\") data: any = {};\n\n    private isCursorOverTarget = false;\n    private dialogIsOpen = false;\n\n    constructor(\n        private dialog: MatDialog,\n        private viewContainer: ViewContainerRef\n    ) {\n    }\n\n    ngAfterViewInit() {\n        const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n        this.config?.triggers?.forEach(t => {\n            el.addEventListener(t, () => {\n                if (t == \"click\")\n                    this.config.stayOpen = true;\n\n                this.open();\n            })\n        })\n    }\n\n    async open() {\n        if (!this.dialogIsOpen) {\n            const el = this.viewContainer.element.nativeElement;\n            this.dialogIsOpen = true;\n            await openTooltip(this.dialog, this.template, this.data, el, this.config);\n            this.dialogIsOpen = false;\n        }\n    }\n\n    @HostListener('pointerenter', ['$event'])\n    public async onPointerEnter(evt: PointerEvent) {\n        // If the template is not a template ref, do nothing.\n        if (!(this.template instanceof TemplateRef))\n            return;\n\n        if (Array.isArray(this.config?.triggers) && !this.config.triggers.includes(\"hover\")) {\n            return;\n        }\n\n        this.isCursorOverTarget = true;\n\n        setTimeout(async () => {\n            // If the cursor moved away in the time\n            if (!this.isCursorOverTarget)\n                return;\n\n            this.open();\n        }, this.config.delay ?? 250);\n    }\n\n    @HostListener('pointerleave', ['$event'])\n    public async onPointerLeave(evt: PointerEvent) {\n        this.isCursorOverTarget = false;\n    }\n}\n\n// Helper to open the context menu without using the directive.\nexport const openTooltip = async (\n    dialog: MatDialog,\n    template: TemplateRef<any> | Type<any> | MenuItem[],\n    data: any,\n    el: HTMLElement,\n    config?: TooltipOptions,\n    focusTrap = false,\n    matPopupOptions?: MatDialogConfig<any>\n) => {\n\n    const component = Array.isArray(template) ? MenuComponent : template;\n    const rect = await calcTooltipBounds(component, data, matPopupOptions);\n    const ownerCords = el.getBoundingClientRect();\n    const cords = getPosition(el, config, rect);\n    const specificId = ulid();\n\n    return firstValueFrom(\n        dialog.open(TooltipComponent, {\n            autoFocus: focusTrap,\n            restoreFocus: focusTrap,\n            data: {\n                dialog,\n                data: data,\n                template: template,\n                config: config,\n                matPopupOptions,\n                ownerCords: ownerCords,\n                selfCords: cords,\n                id: specificId\n            },\n            panelClass: [\"ngx-tooltip\", 'ngx-' + specificId].concat(config?.customClass || []),\n            position: cords,\n            hasBackdrop: false,\n            ...matPopupOptions\n        })\n        .afterClosed()\n    );\n};\n\n@Directive({\n    selector: '[ngx-dropdown],[ngx-dropdown-config]',\n    providers: [\n        MatDialog\n    ],\n    standalone: true\n})\nexport class DropdownDirective extends TooltipDirective {\n    /**\n     * The items that will be bound to the menu that pops\n     * up when the user clicks the element.\n     */\n    @Input(\"ngx-dropdown\") override template: TemplateRef<any> | Type<any> | MenuItem[];\n\n    /**\n     * Configuration for opening the app menu\n     */\n    @Input(\"ngx-dropdown-config\") _config: TooltipOptions = {};\n\n    ngOnInit() {\n        // Set default values\n        this._config.position = this._config.position ?? \"bottom\";\n        this._config.alignment = this._config.alignment ?? \"start\";\n        this._config.stayOpen = this._config.stayOpen ?? true;\n\n        this.config = this._config;\n    }\n}\n","import { Directive, Input, ViewContainerRef, SecurityContext } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { getPosition } from './utils';\nimport { MenuItem, MenuOptions } from '../types/menu';\nimport { MenuComponent, calcMenuItemBounds } from '../components/menu/menu.component';\nimport { ulid } from 'ulidx';\nimport { firstValueFrom } from 'rxjs';\n\n@Directive({\n    selector: '[ngx-contextmenu],[ngx-menu]',\n    providers: [\n        MatDialog\n    ],\n    standalone: true\n})\nexport class MenuDirective {\n\n    /**\n     * The data representing the item the menu was opened for.\n     */\n    @Input(\"ngx-menu-context\") data: any;\n\n    /**\n     * The items that will be bound to the context menu.\n     */\n    @Input(\"ngx-contextmenu\") ctxMenuItems: MenuItem[];\n\n    /**\n     * The items that will be bound to the menu that pops\n     * up when the user clicks the element.\n     */\n    @Input(\"ngx-menu\") menuItems: MenuItem[];\n\n    /**\n     * Configuration for opening the app menu\n     */\n    @Input(\"ngx-menu-config\") config: MenuOptions = {};\n\n    constructor(\n        private dialog: MatDialog,\n        private viewContainer: ViewContainerRef\n    ) { }\n\n    ngAfterViewInit() {\n        const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n        // Automatically attach context menu items to\n        // the contextmenu event\n        if (this.ctxMenuItems) {\n            el.addEventListener('contextmenu', (e) => {\n                e.preventDefault();\n                this.openMenu(e as any, this.ctxMenuItems, true);\n            });\n        }\n\n        if (this.menuItems?.length > 0) {\n            if (!this.config?.trigger) {\n                el.addEventListener('click', (e) => {\n                    this.openMenu(e as any, this.menuItems, true);\n                });\n            }\n            else {\n                const triggers = Array.isArray(this.config.trigger) ? this.config.trigger : [this.config.trigger];\n\n                triggers.forEach(t => {\n                    if ([\"contextmenu\", \"click\"].includes(t)) {\n                        el.addEventListener(t, (e) => {\n                            e.preventDefault();\n                            this.openMenu(e as any, this.ctxMenuItems, true);\n                        });\n                    }\n                    else {\n                        el.addEventListener(t, this.openMenu.bind(this));\n                    }\n                });\n            }\n        }\n    }\n\n    async openMenu(evt: PointerEvent, items = this.menuItems, keepOpen = false) {\n        const el = this.viewContainer.element.nativeElement as HTMLElement;\n\n        el.classList.add(\"ngx-menu-open\");\n\n        const isCtxEvent = evt.button == 2;\n\n        const config = structuredClone(this.config);\n        config['_isLockedOpen'] = keepOpen;\n\n        return openMenu(\n            this.dialog,\n            items,\n            this.data,\n            evt,\n            this.config,\n            isCtxEvent ? null : el\n        )\n            .then((...res) => {\n                el.classList.remove(\"ngx-menu-open\");\n                return res;\n            })\n            .catch((ex) => {\n                el.classList.remove(\"ngx-menu-open\");\n                throw ex;\n            });\n    }\n}\n\n// Helper to open the menu without using the directive.\nexport const openMenu = async (\n    dialog: MatDialog,\n    menuItems: MenuItem[],\n    data: any,\n    evt: PointerEvent,\n    config: MenuOptions = {},\n    el?: HTMLElement\n) => {\n    // console.log({ dialog, menuItems, data, evt, config, el });\n\n    evt.preventDefault();\n    evt.stopPropagation();\n\n    // Apply defaults.\n    if (!config.alignment)\n        config.alignment = \"start\";\n\n    const initialBounds = await calcMenuItemBounds(menuItems, data);\n    const cords = getPosition(el || evt, config, initialBounds);\n    const specificId = ulid();\n\n    return firstValueFrom(\n        dialog.open(MenuComponent, {\n            data: {\n                dialog,\n                data: data,\n                ownerCords: el?.getBoundingClientRect(),\n                selfCords: cords,\n                items: menuItems,\n                config: config,\n                id: specificId,\n                targetBounds: initialBounds\n            },\n            panelClass: [\"ngx-menu\", 'ngx-' + specificId].concat(config?.customClass || []),\n            position: cords,\n            backdropClass: \"ngx-menu-backdrop\"\n        })\n        .afterClosed());\n};\n","import { Directive, ElementRef, Inject, InjectionToken, Input, Optional } from '@angular/core';\nimport { INDEXEDDB, createInstance } from 'localforage';\n\nconst storage = createInstance({\n    name: \"@dotglitch\",\n    storeName: \"image-cache\",\n    driver: INDEXEDDB,\n    version: 1\n});\n\n\nconst imageCache: {\n    [key: string]: HTMLImageElement;\n} = {};\n\nconst loadingSvg = `data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"32px\" height=\"32px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\"><circle cx=\"50\" cy=\"50\" fill=\"none\" stroke=\"%2340c4ff\" stroke-width=\"10\" r=\"35\" stroke-dasharray=\"164.93361431346415 56.97787143782138\"><animateTransform attributeName=\"transform\" type=\"rotate\" repeatCount=\"indefinite\" dur=\"1s\" values=\"0 50 50;360 50 50\" keyTimes=\"0;1\"></animateTransform></circle><!-- [ldio] generated by https://loading.io/ --></svg>`;\nconst brokenSvg = `data:image/svg+xml;utf8,<svg width=\"800\" height=\"800\" viewBox=\"0 0 24 24\" version=\"1.1\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\"><line x1=\"10.08\" y1=\"8.29\" x2=\"10.18\" y2=\"8.29\" style=\"fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round\" /><path d=\"m 10.51,14.8 5.2,5.2 H 20 a 1,1 0 0 0 1,-1 V 15.73 L 15.29,10 Z M 3,16.71 V 19 a 1,1 0 0 0 1,1 h 11.71 l -8,-8 z M 21,5 v 14 a 1,1 0 0 1 -1,1 H 4 A 1,1 0 0 1 3,19 V 5 A 1,1 0 0 1 4,4 h 16 a 1,1 0 0 1 1,1 z\" style=\"fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round\" /><path d=\"M 21.193388,21.193388 2.8066108,2.8066108 m 18.3867772,0 L 2.8066108,21.193388\" style=\"stroke:%23ff0000;stroke-width:2.62668;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1\" /></svg>`;\n\nexport type NgxImageCacheConfig = {\n    /**\n     * Image to use as a placeholder while loading the main image\n     * Recommended to use inlined SVG or a base64 encoded image\n     */\n    loadingPlaceholder?: string,\n    /**\n     * Image to use as a placeholder where images fail to load\n     * Recommended to use inlined SVG or a base64 encoded image\n     */\n    brokenPlaceholder?: string\n}\n\nexport const NGX_IMAGE_CACHE_CONFIG = new InjectionToken<NgxImageCacheConfig>('ngx-image-cache-config');\n\n\nexport type NgxImageCacheConfiguration = {\n    /**\n     * Max age to cache an image in milliseconds.\n     * If set to `0` or a negative number, images will never expire.\n     */\n    maxAge: number,\n    /**\n     * Set to `false` to disable memory caching for the image\n     * If both `cacheInMemory` and `cacheInIndexedDB` are false,\n     * no caching will happen. (You'll still get the loader)\n     */\n    cacheInMemory: boolean,\n    /**\n     * Set to `false` to disable indexedDB caching for the image\n     * If both `cacheInMemory` and `cacheInIndexedDB` are false,\n     * no caching will happen. (You'll still get the loader)\n     */\n    cacheInIndexedDB: boolean\n}\n\n@Directive({\n    selector: 'img[ngx-cache]',\n    standalone: true\n})\nexport class NgxImageCacheDirective {\n\n    @Input(\"source\")\n    @Input(\"ngx-cache\") url: string;\n\n    @Input(\"ngx-cache-config\") configuration: NgxImageCacheConfiguration;\n\n    private get el() { return this.element.nativeElement as HTMLImageElement }\n\n    constructor(\n        private readonly element: ElementRef,\n        @Optional() @Inject(NGX_IMAGE_CACHE_CONFIG) private readonly cacheConfig: NgxImageCacheConfig\n    ) { }\n\n    ngOnChanges() {\n        this.getCachedImage();\n    }\n\n    async getCachedImage() {\n        if (\n            this.el.src?.trim() == this.url?.trim() || // Check that there's an actual change\n            this.url?.trim().length == 0 // Check that there's an actual URL\n        ) return;\n\n        // Check if it's in the memory cache\n        if (imageCache[this.url]) {\n            const image = imageCache[this.url];\n\n            // If the image is currently loading, show the loader\n            // and add it to the reflist\n            if (image['_loading'] == true) {\n                image['_refs'].push(this.el);\n\n                this.el.setAttribute(\"loading\", \"true\");\n                this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n            }\n            else {\n                // The image is fully loaded, swap out the src with a data-uri\n                this.el.setAttribute(\"loading\", \"false\");\n                this.el.src = image.src;\n            }\n\n            // If it's already in the image cache, we're going to trust that it loads properly.\n            return;\n        }\n\n        // Check if it's in indexedDB\n        if (this.configuration?.cacheInIndexedDB != false) {\n            const cached = await storage.getItem<any>(this.url);\n            if (cached) {\n                // Attempt to load the base64 data from indexeddb.\n                // If this fails, we'll fall back to attempting to download the image\n                this.el.src = cached.data;\n\n                const evt: Event = await new Promise(res => {\n                    this.el.addEventListener('load', res);\n                    this.el.addEventListener('error', res);\n                });\n\n                // If the event isn't an error\n                if (evt.type == \"load\") {\n                    this.el.setAttribute(\"loading\", \"false\");\n\n                    if (this.configuration?.cacheInMemory != false) {\n                        // Successfully loaded into element\n                        // Create an entry in the memory cache\n                        const image = imageCache[this.url] = new Image();\n                        image.src = cached.data;\n                        image['_createdAt'] = Date.now();\n                    }\n                    return;\n                }\n                else {\n                    // Else, we try to load again.\n                    this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n                }\n            }\n        }\n\n        const image = (() => {\n            if (this.configuration?.cacheInMemory != false) {\n                return imageCache[this.url] = new Image();\n            }\n            return new Image();\n        })();\n\n        // const clone = image.cloneNode(true) as HTMLImageElement;\n        image['_refs'] = image['_refs'] ?? [];\n        image['_refs'].push(this.el);\n        image['_loading'] = true;\n        image['_createdAt'] = Date.now();\n\n        // Show a loader while the image downloads.\n        this.el.setAttribute(\"loading\", \"true\");\n        this.el.src = this.cacheConfig?.loadingPlaceholder || loadingSvg;\n\n        // Fetch the image via JS and cache it as base64\n        window.fetch(this.url)\n            .then(response => response.blob())\n            .then(blob => new Promise((resolve, reject) => {\n                const reader = new FileReader();\n                reader.onloadend = () => {\n                    image.src = reader.result as string;\n\n                    storage.setItem(this.url, {\n                        timestamp: Date.now(),\n                        data: reader.result\n                    });\n\n                    image['_refs'].forEach((ref: HTMLImageElement) => {\n                        ref.src = image.src;\n                    });\n\n                    image['_loading'] = false;\n                    resolve(0);\n                };\n                reader.onerror = reject;\n                reader.readAsDataURL(blob);\n            }))\n            .catch(err => {\n                // If a failure occurs, purge this entry from the cache\n                // TODO: Render better \"broken\" image\n                delete imageCache[this.url];\n                image['_refs'].forEach((ref: HTMLImageElement) => {\n                    ref.src = this.cacheConfig?.brokenPlaceholder || brokenSvg;\n                    ref.setAttribute(\"loading\", \"failed\");\n                });\n            });\n    }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n    name: 'htmlbypass',\n    standalone: true\n})\nexport class HtmlBypass implements PipeTransform {\n\n    constructor(private sanitizer: DomSanitizer) { }\n\n    public transform(url: string): SafeUrl {\n        return this.sanitizer.bypassSecurityTrustHtml(url);\n    }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n    name: 'resourcebypass',\n    standalone: true\n})\nexport class ResourceBypass implements PipeTransform {\n\n    constructor(private sanitizer: DomSanitizer) { }\n\n    public transform(url: string): SafeUrl {\n        return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n    }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n    name: 'scriptbypass',\n    standalone: true\n})\nexport class ScriptBypass implements PipeTransform {\n\n    constructor(private sanitizer: DomSanitizer) { }\n\n    public transform(url: string): SafeUrl {\n        return this.sanitizer.bypassSecurityTrustScript(url);\n    }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n    name: 'stylebypass',\n    standalone: true\n})\nexport class StyleBypass implements PipeTransform {\n\n    constructor(private sanitizer: DomSanitizer) { }\n\n    public transform(url: string): SafeUrl {\n        return this.sanitizer.bypassSecurityTrustStyle(url);\n    }\n}\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n/**\n * Url Sanitizer pipe.\n *\n * This trusts URLs that exist in a safe list defined in our environments.ts file.\n * Any other URLs will NOT be trusted, thus will not be loaded.\n */\n@Pipe({\n    name: 'urlbypass',\n    standalone: true\n})\nexport class UrlBypass implements PipeTransform {\n\n    constructor(private sanitizer: DomSanitizer) { }\n\n    public transform(url: string): SafeUrl {\n        return this.sanitizer.bypassSecurityTrustUrl(url);\n    }\n}\n","export const sleep = ms => new Promise(r => setTimeout(r, ms));\n\n/**\n * Prompt the user to save a json file of the given object.\n */\nexport const saveObjectAsFile = (name: string, data: Object) => {\n    const a = document.createElement(\"a\");\n    const file = new Blob([JSON.stringify(data)], { type: \"application/json\" });\n    a.href = URL.createObjectURL(file);\n    a.download = name;\n    a.click();\n    a.remove();\n};\n\n/**\n * Construct an emoticon with any unicode icon you specify\n */\nexport class Emoticon {\n    constructor (public icon: string){}\n}\n\n/**\n * authorization 🔐 \\\n * navigation 🧭 \\\n * user 🪪 \\\n * security 🛡 \\\n * system 🖥 \\\n * toolbox 🧰 \\\n * chore ⚙ \\\n * config 🛠 \\\n * renderer 📐 \\\n * package 📦 \\\n * time ⏳ \\\n * download 📥 \\\n * upload 📤 \\\n * bug 🦠 \\\n * bomb 💣 \\\n * tnt 🧨 \\\n * warning ⚠️ \\\n * chart 📊 \\\n * chart_up 📈 \\\n * chart_down 📉 \\\n * circle_red 🔴 \\\n * circle_orange 🟠 \\\n * circle_yellow 🟡 \\\n * circle_green 🟢 \\\n * circle_blue 🔵 \\\n * circle_violet 🟣 \\\n * circle_black ⚫️ \\\n * circle_white ⚪️ \\\n * circle_brown 🟤 \\\n * square_red 🟥 \\\n * square_orange 🟧 \\\n * square_yellow 🟨 \\\n * square_green 🟩 \\\n * square_blue 🟦 \\\n * square_violet 🟪 \\\n * square_black ⬛️ \\\n * square_white ⬜️ \\\n * square_brown 🟫\n */\nexport const LogIcon = {\n    authorization: new Emoticon(\"🔐\"),\n    navigation: new Emoticon(\"🧭\"),\n    user: new Emoticon(\"🪪\"),\n    security: new Emoticon(\"🛡\"),\n    system: new Emoticon(\"🖥\"),\n    toolbox: new Emoticon(\"🧰\"),\n    chore: new Emoticon(\"⚙\"),\n    config: new Emoticon(\"🛠\"),\n    renderer: new Emoticon(\"📐\"),\n    package: new Emoticon(\"📦\"),\n    time: new Emoticon(\"⏳\"),\n    download: new Emoticon(\"📥\"),\n    upload: new Emoticon(\"📤\"),\n    bug: new Emoticon(\"🦠\"),\n    bomb: new Emoticon(\"💣\"),\n    tnt: new Emoticon(\"🧨\"),\n    stop: new Emoticon(\"🛑\"),\n    police: new Emoticon(\"🚨\"),\n    rocket: new Emoticon(\"🚀\"),\n    warning: new Emoticon(\"⚠️\"),\n    chart: new Emoticon(\"📊\"),\n    chart_up: new Emoticon(\"📈\"),\n    chart_down: new Emoticon(\"📉\"),\n\n    circle_red: new Emoticon(\"🔴\"),\n    circle_orange: new Emoticon(\"🟠\"),\n    circle_yellow: new Emoticon(\"🟡\"),\n    circle_green: new Emoticon(\"🟢\"),\n    circle_blue: new Emoticon(\"🔵\"),\n    circle_violet: new Emoticon(\"🟣\"),\n    circle_black: new Emoticon(\"⚫️\"),\n    circle_white: new Emoticon(\"⚪️\"),\n    circle_brown: new Emoticon(\"🟤\"),\n    square_red: new Emoticon(\"🟥\"),\n    square_orange: new Emoticon(\"🟧\"),\n    square_yellow: new Emoticon(\"🟨\"),\n    square_green: new Emoticon(\"🟩\"),\n    square_blue: new Emoticon(\"🟦\"),\n    square_violet: new Emoticon(\"🟪\"),\n    square_black: new Emoticon(\"⬛️\"),\n    square_white: new Emoticon(\"⬜️\"),\n    square_brown: new Emoticon(\"🟫\")\n}\n\nclass Log {\n    constructor(\n        private context: string,\n        private contextColor: string,\n        private textColor: string\n    ) {\n        // Force the bindings to stay intact with overloads.\n        this.log = this.log.bind(this);\n        this.warn = this.warn.bind(this);\n        this.err = this.err.bind(this);\n        this.error = this.error.bind(this);\n    }\n\n    log(icon: Emoticon, message: string, ...args)\n    log(message: string, ...args)\n    log(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n        if (iconOrMessage instanceof Emoticon) {\n            console.log(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n        }\n        else {\n            console.log(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n        }\n    }\n\n    warn(icon: Emoticon, message: string, ...args)\n    warn(message: string, ...args)\n    warn(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n        if (iconOrMessage instanceof Emoticon) {\n            console.warn(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n        }\n        else {\n            console.warn(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n        }\n    }\n\n    err(icon: Emoticon, message: string, ...args)\n    err(message: string, ...args)\n    err(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n        if (iconOrMessage instanceof Emoticon) {\n            console.error(`${iconOrMessage.icon} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n        }\n        else {\n            console.error(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);\n        }\n    }\n\n    error(icon: Emoticon, message: string, ...args)\n    error(message: string, ...args)\n    error(iconOrMessage: Emoticon | string, messageText: string, ...args) {\n        // @ts-ignore\n        this.err(iconOrMessage, messageText, ...args);\n    }\n}\n\n/**\n * Formatted logger that will print a bit of context before the message.\n * @returns\n */\nexport const ConsoleLogger = (context: string, contextColor: string, textColor: string = \"#03a9f4\") =>\n    new Log(context, contextColor, textColor);\n\n/**\n * Convert a string `fooBAR baz_160054''\"1]\"` into a slug: `foobar-baz-1600541`\n */\nexport const stringToSlug = (text: string) =>\n    (text || '')\n        .trim()\n        .toLowerCase()\n        .replace(/[\\-_+ ]/g, '-')\n        .replace(/[^a-z0-9\\-\\/]/g, '');\n\n\n/**\n* Helper to update the page URL.\n* @param page component page ID to load.\n* @param data string or JSON data for query params.\n*/\nexport const updateUrl = (page?: string, data: string | string[][] | Record<string, string | number> | URLSearchParams = {}, replaceState = false) => {\n    const [oldHash, qstring] = location.hash.split('?');\n\n    if (!page)\n        page = oldHash.split('/')[1];\n\n    const hash = `#/${page}`;\n\n    // Convert the data object to JSON.\n    if (data instanceof URLSearchParams) {\n        data = [...(data as any).entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});\n    }\n\n    const query = new URLSearchParams(data as any) as any;\n    const prevParams = new URLSearchParams(qstring) as any;\n\n    // If the hash is the same, retain params.\n    if (hash == oldHash) {\n        replaceState = true;\n        for (const [key, value] of prevParams.entries())\n            if (!query.has(key))\n                query.set(key, prevParams.get(key));\n    }\n\n    for (const [key, val] of query.entries()) {\n        if (\n            val == null ||\n            val == undefined ||\n            val == '' ||\n            val == 'null' ||\n            Number.isNaN(val) ||\n            val == 'NaN'\n        )\n            query.delete(key);\n    }\n\n    if (!(hash.toLowerCase() == \"#/frame\") || data['id'] == -1)\n        query.delete('id');\n\n\n    const strQuery = query.toString();\n    console.log(data, hash, strQuery);\n    if (replaceState) {\n        window.history.replaceState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));\n    }\n    else {\n        window.history.pushState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));\n    }\n};\n\nexport const getUrlData = (source = window.location.hash) => {\n    const [hash, query] = source.split('?');\n    let data = new URLSearchParams(query) as any;\n    return [...data.entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, Inject } from '@angular/core';\nimport { sleep } from '../utils';\n\nconst SCRIPT_INIT_TIMEOUT = 500; // ms\n\n/**\n * Service that installs CSS/JS dynamically\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class DependencyService {\n\n    constructor(\n        @Inject(DOCUMENT) private document: Document\n    ) { }\n\n    /**\n     * Install a Javascript file into the webpage on-demand\n     * @param id Unique identifier for the JS script\n     * @param src URL of the script\n     * @param globalkey A global object the script will provide.\n     *  Providing this will ensure a promise only resolves after the\n     *  specified global object is provided, with a timeout of 500ms\n     */\n    loadScript(id: string, src: string, globalkey: string = null): Promise<void> {\n        return new Promise((res, rej) => {\n            if (this.document.getElementById(id)) return res();\n\n            const script = this.document.createElement('script');\n            script.id = id;\n\n            script.setAttribute(\"async\", '');\n            script.setAttribute(\"src\", src);\n\n            script.onload = async () => {\n                if (typeof globalkey == \"string\") {\n                    let i = 0;\n\n                    for (; !window[globalkey] && i < SCRIPT_INIT_TIMEOUT; i += 10)\n                        await sleep(10);\n\n                    if (i >= SCRIPT_INIT_TIMEOUT) {\n                        return rej(new Error(\"Timed out waiting for script to self-initialize.\"));\n                    }\n                }\n\n                res();\n            }\n\n            this.document.body.appendChild(script);\n        })\n    }\n\n    // loadStylesheet(id: string, href: string) {\n    //     let themeLink = this.document.getElementById(id) as HTMLLinkElement;\n    //     if (themeLink) {\n    //         themeLink.href = href;\n    //     }\n    //     else {\n    //         const style = this.document.createElement('link');\n    //         style.id = id;\n    //         style.rel = 'stylesheet';\n    //         style.href = href;\n\n    //         const head = this.document.getElementsByTagName('head')[0];\n\n    //         head.appendChild(style);\n    //     }\n    // }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\n\nexport enum ComponentResolveStrategy {\n    /**\n     * Match the fist component we find\n     * (best used for standalone components)\n     * @default\n     */\n    PickFirst,\n    /**\n     * Perform an Exact ID to Classname of the Component\n     * case sensitive, zero tolerance.\n     */\n    MatchIdToClassName,\n    /**\n     * Perform a fuzzy ID to classname match\n     * case insensitive, mutes symbols\n     * ignores \"Component\" and \"Module\" postfixes on class\n     * names\n     */\n    FuzzyIdClassName,\n\n    /**\n     * Use a user-provided component match function\n     */\n    Custom\n}\n\nexport type NgxLazyLoaderConfig = Partial<{\n    entries: ComponentRegistration[],\n\n    notFoundTemplate: TemplateRef<any>,\n    notFoundComponent: ComponentType<any>,\n\n    errorTemplate: TemplateRef<any>,\n    errorComponent: ComponentType<any>,\n\n    loaderDistractorTemplate: TemplateRef<any>,\n    loaderDistractorComponent: ComponentType<any>,\n\n    logger: {\n        log: (...args: any) => void,\n        warn: (...args: any) => void,\n        err: (...args: any) => void;\n    },\n    /**\n     * What strategy should be used to resolve components\n     * @default ComponentResolveStrategy.FuzzyIdClassName\n     */\n    componentResolveStrategy: ComponentResolveStrategy,\n    customResolver: (registry: (CompiledComponent | CompiledModule)[]) => Object\n}>;\n\ntype RegistrationConfig = {\n    /**\n     * Specify a group to categorize components. If not specified,\n     * will default to the `default` group.\n     */\n    group?: string,\n    /**\n     * load: () => import('./pages/my-page/my-page.component')\n     */\n    load: () => any,\n\n    /**\n     * Called before a component is loaded.\n     * If it returns `false` the component will not be loaded.\n     */\n    // canActivate: () => boolean\n\n    [key: string]: any\n}\n\nexport type ComponentRegistration = (\n    ({ id: string } & RegistrationConfig) |\n    ({ matcher: string[] | RegExp | ((value: string) => boolean); } & RegistrationConfig)\n);\n\nexport type DynamicRegistrationArgs<T = any> = {\n    id: string,\n    group?: string,\n    matcher?: string[] | RegExp | ((val: string) => boolean),\n    component?: T,\n    load?: () => any;\n}\n\n/**\n * This is roughly a compiled component\n */\nexport type CompiledComponent = {\n    (): CompiledComponent,\n    ɵfac: Function,\n    ɵcmp: {\n        consts;\n        contentQueries;\n        data;\n        declaredInputs;\n        decls;\n        dependencies;\n        directiveDefs;\n        encapsulation;\n        exportAs;\n        factory;\n        features;\n        findHostDirectiveDefs;\n        getStandaloneInjector;\n        hostAttrs;\n        hostBindings;\n        hostDirectives;\n        hostVars;\n        id: string;\n        inputs;\n        ngContentSelectors;\n        onPush: boolean;\n        outputs;\n        pipeDefs;\n        providersResolver;\n        schemas;\n        selectors: string[];\n        setInput;\n        standalone: boolean;\n        styles: string[];\n        tView;\n        template;\n        type: Function;\n        vars: number;\n        viewQuery;\n    };\n};\n\n/**\n * This is roughly a compiled module\n */\nexport type CompiledModule = {\n    (): CompiledModule,\n    ɵfac: Function,\n    ɵinj: {\n        providers: any[],\n        imports: any[];\n    },\n    ɵmod: {\n        bootstrap: any[],\n        declarations: Function[],\n        exports: any[],\n        id: unknown,\n        imports: any[],\n        schemas: unknown,\n        transitiveCompileScopes: unknown,\n        type: Function;\n    };\n};\n\nexport type CompiledBundle = { [key: string]: CompiledComponent | CompiledModule; };\n\n\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { CompiledComponent, CompiledModule, ComponentRegistration, ComponentResolveStrategy, DynamicRegistrationArgs, NgxLazyLoaderConfig } from './types';\nimport { stringToSlug, ConsoleLogger } from '../../utils';\n\n// Monkey-patch the type of these symbols.\nconst $id = Symbol(\"id\") as any as string;\nconst $group = Symbol(\"group\") as any as string;\n\nexport const NGX_LAZY_LOADER_CONFIG = new InjectionToken<NgxLazyLoaderConfig>('lazyloader-config');\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class LazyLoaderService {\n    private get err() { return LazyLoaderService.config.logger.err; }\n    private get log() { return LazyLoaderService.config.logger.log; }\n    private get warn() { return LazyLoaderService.config.logger.warn; }\n\n    // A proxied registry that mutates reference keys\n    private static registry: {\n        [key: string]: ComponentRegistration[];\n    } = {};\n\n    public static config: NgxLazyLoaderConfig;\n\n    constructor(@Optional() @Inject(NGX_LAZY_LOADER_CONFIG) config: NgxLazyLoaderConfig = {}) {\n        // Ensure this is singleton and works regardless of special instancing requirements.\n        LazyLoaderService.configure(config);\n    }\n\n    private static configure(config: NgxLazyLoaderConfig) {\n        const { log, warn, err } = ConsoleLogger(\"ngx-lazy-loader\", \"#009688\");\n\n        this.config = {\n            componentResolveStrategy: ComponentResolveStrategy.PickFirst,\n            logger: {\n                log,\n                warn,\n                err\n            },\n            ...config\n        };\n\n        config?.entries?.forEach(e => this.addComponentToRegistry(e))\n\n        // If a custom resolution strategy is provided but no resolution function is passed,\n        // we throw an error\n        if (\n            this.config.componentResolveStrategy == ComponentResolveStrategy.Custom &&\n            !this.config.customResolver\n        ) {\n            throw new Error(\"Cannot initialize. Configuration specifies a custom resolve matcher but none was provided\");\n        }\n\n        if (this.config.loaderDistractorComponent && this.config.loaderDistractorTemplate)\n            throw new Error(\"Cannot have both a Component and Template for Distractor view.\")\n        if (this.config.errorComponent && this.config.errorTemplate)\n            throw new Error(\"Cannot have both a Component and Template for Error view.\")\n        if (this.config.notFoundComponent && this.config.notFoundTemplate)\n            throw new Error(\"Cannot have both a Component and Template for NotFound view.\")\n\n    }\n\n    private static addComponentToRegistry(registration: ComponentRegistration) {\n        if (!registration)\n            throw new Error(\"Cannot add <undefined> component into registry.\");\n\n        // Clone the object into our repository and transfer the id into a standardized slug format\n\n        const id = stringToSlug(registration.id ?? Date.now().toString()); // purge non-basic ASCII chars\n        const group = registration.group || \"default\";\n\n        registration[$id] = id;\n        registration[$group] = id;\n\n\n        if (!this.registry[group])\n            this.registry[group] = [];\n\n        // Check if we already have a registration for the component\n        // if (this.registry[group] && typeof this.registry[group]['load'] == \"function\") {\n        //     // Warn the developer that the state is problematic\n        //     this.config.logger.warn(\n        //         `A previous entry already exists for ${id}! The old registration will be overridden.` +\n        //         `Please ensure you use groups if you intend to have duplicate component ids. ` +\n        //         `If this was intentional, first remove the old component from the registry before adding a new instance`\n        //     );\n\n        //     // If we're in dev mode, break the loader surface\n        //     if (isDevMode())\n        //         return;\n        // }\n\n        this.registry[group].push(registration);\n    }\n\n    /**\n     * Register an Angular component\n     * @param id identifier that is used to resolve the component\n     * @param group\n     * @param component Angular Component Class constructor\n     */\n    public registerComponent<T extends { new(...args: any[]): InstanceType<T>; }>(args: DynamicRegistrationArgs<T>) {\n        if (this.isComponentRegistered(args.id, args.group)) {\n            this.log(`Will not re-register component '${args.id}' in group '${args.group || 'default'}' `);\n            return;\n        }\n\n        LazyLoaderService.addComponentToRegistry({\n            id: stringToSlug(args.id),\n            matcher: args.matcher,\n            group: stringToSlug(args.group || \"default\"),\n            load: args.load || (() => args.component)\n        });\n    }\n\n    /**\n     *\n     * @param id\n     * @param group\n     */\n    public unregisterComponent(id: string, group = \"default\") {\n        const _id = stringToSlug(id);\n        const _group = stringToSlug(group);\n\n        if (!this.resolveRegistrationEntry(id, group))\n            throw new Error(\"Cannot unregister component ${}! Component is not present in registry\")\n\n        // TODO: handle clearing running instances\n        delete LazyLoaderService.registry[_group][_id];\n    }\n\n\n    /**\n     * Get the registration entry for a component.\n     * Returns null if component is not in the registry.\n     */\n    public resolveRegistrationEntry(value: string, group = \"default\") {\n        const _id = stringToSlug(value);\n        const _group = stringToSlug(group);\n\n        const targetGroup = (LazyLoaderService.registry[_group] || []);\n\n        let items = targetGroup.filter(t => {\n            if (!t) return false;\n\n            // No matcher, check id\n            if (!t.matcher)\n                return t.id == value || t[$id] == _id;\n\n            // Matcher is regex\n            if (t.matcher instanceof RegExp)\n                return t.matcher.test(value) || t.matcher.test(_id);\n\n            // Matcher is string => regex\n            if (typeof t.matcher == 'string') {\n                const rx = new RegExp(t.matcher, 'ui');\n                return rx.test(value) || rx.test(_id);\n            }\n\n            // Matcher is array\n            if (Array.isArray(t.matcher)) {\n                return !!t.matcher.find(e => stringToSlug(e) == _id);\n            }\n\n            // Custom matcher function\n            if (typeof t.matcher == \"function\")\n                return t.matcher(_id);\n\n            return false;\n        });\n\n        if (items.length > 1) {\n            this.warn(\"Resolved multiple components for the provided `[component]` binding. This may cause UI conflicts.\");\n        }\n        if (items.length == 0) {\n            return null;\n        }\n\n        const out = items[0];\n\n        if (out.matcher instanceof RegExp) {\n            const result = value.match(out.matcher) || _id.match(out.matcher);\n\n            return {\n                entry: out,\n                matchGroups: result?.groups\n            };\n        }\n\n        return { entry: out };\n    }\n\n    /**\n     * Check if a component is currently registered\n     * Can be used to validate regex matchers and aliases.\n     */\n    public isComponentRegistered(value: string, group = \"default\") {\n        return !!this.resolveRegistrationEntry(value, group);\n    }\n\n    /**\n     *\n     * @param bundle\n     * @returns The component `Object` if a component was resolved, `null` if no component was found\n     * `false` if the specified strategy was an invalid selection\n     */\n    public resolveComponent(id: string, group: string, modules: (CompiledComponent | CompiledModule)[]): Object | null | false {\n\n        switch (LazyLoaderService.config.componentResolveStrategy) {\n            case ComponentResolveStrategy.PickFirst: {\n\n                return modules[0];\n            }\n\n            // Exact id -> classname match\n            case ComponentResolveStrategy.MatchIdToClassName: {\n                const matches =\n                    modules\n                        .filter(k => k.name == id);\n\n                if (matches.length == 0)\n                    return null;\n\n                return matches[0];\n            }\n            // Fuzzy id -> classname match\n            case ComponentResolveStrategy.FuzzyIdClassName: {\n                const _id = id.replace(/[^a-z0-9_\\-]/ig, '');\n\n                if (_id.length == 0) {\n                    LazyLoaderService.config.logger.err(\"Fuzzy classname matching stripped all symbols from the ID specified!\");\n                    return false;\n                }\n\n                const rx = new RegExp(`^${id}(component|module)?$`, \"i\");\n\n                const matches = modules\n                    .filter(mod => {\n                        let kid = mod.name.replace(/[^a-z0-9_\\-]/ig, '');\n\n                        return rx.test(kid);\n                    });\n\n                if (matches.length > 1) {\n                    LazyLoaderService.config.logger.err(\"Fuzzy classname matching resolved multiple targets!\");\n                    return false;\n                }\n\n                if (matches.length == 0) {\n                    LazyLoaderService.config.logger.err(\"Fuzzy classname matching resolved no targets!\");\n                    return null;\n                }\n\n                return matches[0];\n            }\n            case ComponentResolveStrategy.Custom: {\n                return LazyLoaderService.config.customResolver(modules as any);\n            }\n            default: {\n                return false;\n            }\n        }\n    }\n}\n","import { Input, ViewContainerRef, isDevMode, ComponentRef, EventEmitter, Optional, ViewChild, Component, Inject, Output, NgModule, AfterViewInit, OnInit } from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { MAT_DIALOG_DATA, } from '@angular/material/dialog';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { BehaviorSubject, debounceTime, Subscription } from 'rxjs';\nimport { LazyLoaderService } from './lazy-loader.service';\nimport { stringToSlug } from '../../utils';\nimport { CompiledBundle, NgxLazyLoaderConfig } from './types';\n\n\n@Component({\n    selector: 'ngx-lazy-loader',\n    templateUrl: './lazy-loader.component.html',\n    styleUrls: [ './lazy-loader.component.scss' ],\n    imports: [ NgComponentOutlet, NgTemplateOutlet ],\n    standalone: true\n})\nexport class LazyLoaderComponent implements AfterViewInit {\n    @ViewChild(\"content\", { read: ViewContainerRef }) targetContainer: ViewContainerRef;\n\n    /**\n     * ! Here be dragons.\n     * Only the bravest of Adventurers can survive the battles below,\n     * and they must be trained and ready for the gruelling journey ahead.\n     * Many a soul has tried to best these Dragons, yet only one has\n     * succeeded since our founding.\n     *\n     * TL;DR -- Don't mess with this unless you know what you're doing.\n     *     This is central to a ton of moving parts -- breaking it will\n     *     cause more collateral damage than you may realize.\n     */\n\n    private _id: string;\n    private originalId: string;\n    /**\n     * The id of the component that will be lazy loaded\n     */\n    @Input(\"component\") set id(data: string) {\n        this.originalId = data;\n        const id = stringToSlug(data);\n\n        // Check if there is a change to the loaded component's id\n        // if it's updated, we destroy and rehydrate the entire container\n        if (this.initialized && this._id != id) {\n            this._id = id;\n            this.ngAfterViewInit();\n        }\n        else {\n            this._id = id;\n        }\n    };\n\n    private _group = \"default\";\n    private originalGroup: string;\n    @Input(\"group\") set group(data: string) {\n        this.originalGroup = data;\n        const group = stringToSlug(data);\n\n        if (typeof group != \"string\" || !group) return;\n\n        // If the group was updated, retry to bootstrap something into the container.\n        if (this.initialized && this._group != group) {\n            this._group = group;\n\n            this.ngAfterViewInit();\n            return;\n        }\n\n        this._group = group;\n    }\n    get group() { return this._group }\n\n    private _matchGroups: { [key: string]: string };\n    private _inputs: { [key: string]: any; };\n    /**\n     * A map of inputs to bind to the child.\n     * Supports change detection. (May fail on deep JSON changes)\n     *\n     * ```html\n     * <lazy-loader component=\"MyLazyComponent\"\n     *       [inputs]=\"{\n     *          prop1: true,\n     *          prop2: false,\n     *          complex: {\n     *              a: true,\n     *              b: 0\n     *          }\n     *       }\"\n     * >\n     * </lazy-loader>\n     * ```\n     */\n    @Input(\"inputs\") set inputs(data: { [key: string]: any; }) {\n        if (data == undefined) return;\n\n        let previous = this._inputs;\n        this._inputs = data;\n        if (data == undefined)\n            console.trace(data);\n\n        if (this.targetComponentFactory) {\n            const { inputs } = this.targetComponentFactory.ɵcmp;\n\n            const currentKeys = Object.keys(inputs);\n\n            const oldKeys = Object.keys(previous).filter(key => currentKeys.includes(key));\n            const newKeys = Object.keys(data).filter(key => currentKeys.includes(key));\n\n            const removed = oldKeys.filter(key => !newKeys.includes(key));\n\n            // ? perhaps set to null or undefined instead\n            removed.forEach(k => this.targetComponentInstance[k] = null);\n\n            this.bindInputs();\n        }\n    }\n\n\n    private outputSubscriptions: { [key: string]: Subscription; } = {};\n    private _outputs: { [key: string]: Function; };\n    /**\n     * A map of outputs to bind from the child.\n     * Should support change detection.\n     * ```html\n     * <lazy-loader component=\"MyLazyComponent\"\n     *       [outputs]=\"{\n     *           prop3: onOutputFire\n     *       }\"\n     * >\n     * </lazy-loader>\n     * ```\n     */\n    @Input(\"outputs\") set outputs(data: { [key: string]: Function; }) {\n        let previous = this._outputs;\n        this._outputs = data;\n\n        if (this.targetComponentFactory) {\n            const { inputs } = this.targetComponentFactory.ɵcmp;\n\n            const currentKeys = Object.keys(inputs);\n            const removed = Object.keys(previous).filter(key => !currentKeys.includes(key));\n\n            removed.forEach(k => {\n                // Unsubscribe from observable\n                this.outputSubscriptions[k]?.unsubscribe();\n                delete this.targetComponentInstance[k];\n            });\n\n            this.bindOutputs();\n        }\n    }\n\n    /**\n     * Emits errors encountered when loading components\n     */\n    @Output() componentLoadError = new EventEmitter();\n\n    /**\n     * Emits when the component is fully constructed\n     * and had it's inputs and outputs bound\n     * > before `OnInit`\n     *\n     * Returns the active class instance of the lazy-loaded component\n     */\n    @Output() componentLoaded = new EventEmitter();\n\n\n    /**\n     * This is an instance of the component that is currently loaded.\n     */\n    public instance: any;\n\n\n    /**\n     * Container that provides the component data\n     */\n    private targetModule: CompiledBundle;\n\n    /**\n     * Component definition\n     */\n    private targetComponentFactory: any;\n\n    /**\n     * Active component container reference\n     */\n    private targetComponentContainerRef: ComponentRef<any>;\n    private targetRef: any;\n    /**\n     * Reference to the component class instance\n     */\n    private targetComponentInstance: any;\n\n    /**\n     * Subscription with true/false state on whether the distractor should be\n     */\n    private distractorSubscription: Subscription;\n\n    public config: NgxLazyLoaderConfig;\n    private err;\n    private warn;\n    private log;\n\n    // Force 500ms delay before revealing the spinner\n    private clearEmitter = new EventEmitter();\n    private clearLoader$ = this.clearEmitter.pipe(debounceTime(300));\n\n    private showEmitter = new EventEmitter();\n    private showLoader$ = this.showEmitter.pipe(debounceTime(1));\n\n    private subscriptions = [\n        this.clearLoader$.subscribe(() => {\n            this.isClearingLoader = true;\n\n            setTimeout(() => {\n                this.renderSpinner = false;\n            }, 300)\n        }),\n        this.showLoader$.subscribe(() => {\n            this.isClearingLoader = false;\n            this.renderSpinner = true;\n        })\n    ];\n\n    public renderSpinner = true; // whether we render the DOM for the spinner\n    public isClearingLoader = false; // should the spinner start fading out\n\n    constructor(\n        private service: LazyLoaderService,\n        @Optional() private viewContainerRef: ViewContainerRef,\n        @Optional() public dialog: DialogRef,\n        @Optional() @Inject(MAT_DIALOG_DATA) public dialogArguments\n    ) {\n        this.config = LazyLoaderService.config;\n        this.err = LazyLoaderService.config.logger.err;\n        this.warn = LazyLoaderService.config.logger.warn;\n        this.log = LazyLoaderService.config.logger.log;\n\n        // First, check for dialog arguments\n        if (this.dialogArguments) {\n            this.inputs = this.dialogArguments.inputs || this.dialogArguments.data;\n            this.outputs = this.dialogArguments.outputs;\n            this.id = this.dialogArguments.id;\n            this.group = this.dialogArguments.group;\n        }\n    }\n\n    private initialized = false;\n    async ngAfterViewInit() {\n        this.ngOnDestroy(false);\n        this.isClearingLoader = false;\n        this.renderSpinner = true;\n        this.initialized = true;\n\n        if (!this._id) {\n            this.warn(\"No component was specified!\");\n            return this.loadDefault();\n        }\n\n        try {\n            const _entry = this.service.resolveRegistrationEntry(this.originalId, this.originalGroup);\n            if (!_entry || !_entry.entry) {\n                this.err(`Failed to find Component '${this._id}' in group '${this._group}' in registry!`);\n                return this.loadDefault();\n            }\n\n            const { entry, matchGroups } = _entry;\n            this._matchGroups = matchGroups;\n\n            // Download the \"module\" (the standalone component)\n            const bundle: CompiledBundle = this.targetModule = await entry.load();\n\n\n            // Check if there is some corruption on the bundle.\n            if (!bundle || typeof bundle != 'object') {\n                this.err(`Failed to load component/module for '${this._id}'! Parsed resource is invalid.`);\n                return this.loadError();\n            }\n\n            const modules = Object.keys(bundle)\n                .map(k => {\n                    const entry = bundle[k];\n\n                    // Strictly check for exported modules or standalone components\n                    if (typeof entry == \"function\" && typeof entry[\"ɵfac\"] == \"function\")\n                        return entry;\n                    return null;\n                })\n                .filter(e => e != null)\n                .filter(entry => {\n                    entry['_isModule'] = !!entry['ɵmod']; // module\n                    entry['_isComponent'] = !!entry['ɵcmp']; // component\n\n                    return (entry['_isModule'] || entry['_isComponent']);\n                });\n\n            if (modules.length == 0) {\n                this.err(`Component/Module loaded for '${this._id}' has no exported components or modules!`);\n                return this.loadError();\n            }\n\n            const component = this.targetComponentFactory = this.service.resolveComponent(this._id, \"default\", modules);\n\n            if (!component) {\n                this.err(`Component '${this._id}' is invalid or corrupted!`);\n                return this.loadError();\n            }\n\n\n            // const componentRef = this.targetComponentContainerRef = createComponent(component as any, {\n            //     environmentInjector: this.appRef.injector,\n            //     elementInjector: this.injector,\n            //     hostElement: this.viewContainerRef.element.nativeElement,\n            //     // projectableNodes:\n            // });\n            // // this.targetRef = this.targetContainer.insert(this.targetComponentContainerRef.hostView);\n            // this.appRef.attachView(componentRef.hostView);\n\n            // Bootstrap the component into the container\n            const componentRef = this.targetComponentContainerRef = this.targetContainer.createComponent(component as any);\n            this.targetRef = this.targetContainer.insert(this.targetComponentContainerRef.hostView);\n\n            const instance: any = this.targetComponentInstance = componentRef['instance'];\n\n            this.bindInputs();\n            this.bindOutputs();\n\n            this.componentLoaded.next(instance);\n            this.instance = instance;\n\n            // Look for an observable called isLoading$ that will make us show/hide\n            // the same distractor that is used on basic loading\n            const isLoading$ = instance['ngxShowDistractor$'] as BehaviorSubject<boolean>;\n\n            if (isLoading$ && typeof isLoading$.subscribe == \"function\") {\n                this.distractorSubscription = isLoading$.subscribe(loading => {\n                    loading ? this.showEmitter.emit() : this.clearEmitter.emit();\n                });\n            }\n            else {\n                this.clearEmitter.emit();\n            }\n\n            const name = Object.keys(bundle)[0];\n            this.log(`Loaded '${name}'`);\n            this.clearEmitter.emit();\n\n            return componentRef;\n        }\n        catch (ex) {\n\n            if (isDevMode()) {\n                console.warn(\"Component DDD \" + this._id + \" threw an error on mount!\");\n                console.warn(\"This will cause you to see a 404 panel.\");\n                console.error(ex);\n            }\n\n            // Network errors throw a toast and return an error component\n            if (ex && !isDevMode()) {\n                console.error(\"Uncaught error when loading component\");\n                throw ex;\n            }\n\n            return this.loadDefault();\n        }\n    }\n\n    ngOnDestroy(clearAll = true) {\n        // unsubscribe from all subscriptions\n        Object.entries(this.outputSubscriptions).forEach(([key, sub]) => {\n            sub.unsubscribe();\n        });\n        this.outputSubscriptions = {};\n\n        // Clear all things\n        if (clearAll) {\n            Object.entries(this.subscriptions).forEach(([key, sub]) => {\n                sub.unsubscribe();\n            });\n        }\n\n        this.distractorSubscription?.unsubscribe();\n\n        // Clear target container\n        this.targetRef?.destroy();\n        this.targetComponentContainerRef?.destroy();\n        this.targetContainer?.clear();\n\n        // Wipe the rest of the state clean\n        this.targetRef = null;\n        this.targetComponentContainerRef = null;\n    }\n\n    /**\n     * Bind the input values to the child component.\n     */\n    private bindInputs() {\n        if (!this._inputs || !this.targetComponentInstance) return;\n\n        // Merge match groups\n        if (typeof this._matchGroups == \"object\") {\n            Object.entries(this._matchGroups).forEach(([key, val]) => {\n                if (typeof this._inputs[key] == 'undefined')\n                    this._inputs[key] = val;\n            });\n        }\n\n        // forward-bind inputs\n        const { inputs } = this.targetComponentFactory.ɵcmp;\n\n        // Returns a list of entries that need to be set\n        // This makes it so that unnecessary setters are not invoked.\n        const updated = Object.entries(inputs).filter(([parentKey, childKey]: [string, string]) => {\n            return this.targetComponentInstance[childKey] != this._inputs[parentKey];\n        });\n\n        updated.forEach(([parentKey, childKey]: [string, string]) => {\n            if (this._inputs.hasOwnProperty(parentKey))\n                this.targetComponentInstance[childKey] = this._inputs[parentKey];\n        });\n    }\n\n    /**\n     * Bind the output handlers to the loaded child component\n     */\n    private bindOutputs() {\n        if (!this._outputs || !this.targetComponentInstance) return;\n\n        const { outputs } = this.targetComponentFactory.ɵcmp;\n\n        // Get a list of unregistered outputs\n        const newOutputs = Object.entries(outputs).filter(([parentKey, childKey]: [string, string]) => {\n            return !this.outputSubscriptions[parentKey];\n        });\n\n        // Reverse bind via subscription\n        newOutputs.forEach(([parentKey, childKey]: [string, string]) => {\n            if (this._outputs.hasOwnProperty(parentKey)) {\n                const target: EventEmitter<unknown> = this.targetComponentInstance[childKey];\n                const outputs = this._outputs;\n\n                // Angular folks, stop making this so difficult.\n                const ctx = this.viewContainerRef['_hostLView'][8];\n                const sub = target.subscribe(outputs[parentKey].bind(ctx)); // Subscription\n\n                this.outputSubscriptions[parentKey] = sub;\n            }\n        });\n    }\n\n    /**\n     * Load the \"Default\" component (404) screen normally.\n     * This is shown when the component id isn't in the\n     * registry or otherwise doesn't match\n     *\n     * This\n     */\n    private loadDefault() {\n        if (this.config.notFoundComponent)\n            this.targetContainer.createComponent(this.config.notFoundComponent);\n\n        this.clearEmitter.emit();\n    }\n\n    /**\n     * Load the \"Error\" component.\n     * This is shown when we are able to resolve the component\n     * in the registry, but have some issue boostrapping the\n     * component into the viewContainer\n     */\n    private loadError() {\n        if (this.config.errorComponent)\n            this.targetContainer.createComponent(this.config.errorComponent);\n\n        this.clearEmitter.emit();\n    }\n}\n","<ng-container #content></ng-container>\n\n@if (renderSpinner) {\n    <div\n        class=\"ngx-lazy-loader-distractor\"\n        [class.destroying]=\"isClearingLoader\"\n    >\n        @if (config.loaderDistractorComponent) {\n            <ng-container\n                [ngComponentOutlet]=\"config.loaderDistractorComponent\"\n            />\n        }\n        @if (config.loaderDistractorTemplate) {\n            <ng-container\n                [ngTemplateOutlet]=\"config.loaderDistractorTemplate\"\n                [ngTemplateOutletContext]=\"{ '$implicit': inputs }\"\n            />\n        }\n    </div>\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { ConsoleLogger } from '../utils';\nimport { LazyLoaderComponent } from '../components/lazy-loader/lazy-loader.component';\nimport { LazyLoaderService } from '../components/lazy-loader/lazy-loader.service';\n\nconst { log, warn, err } = ConsoleLogger(\"DialogService\", \"#607d8b\");\n\nexport type DialogOptions = Partial<Omit<MatDialogConfig<any>, 'data'> & {\n    /**\n     * List of properties to be provided to @Input() injectors\n     */\n    inputs: { [key: string]: any },\n    /**\n     * List of properties to be provided to @Input() injectors\n     */\n    outputs: { [key: string]: Function },\n    /**\n     * Context in which to execute callbacks from the `outputs` property via\n     * @Output() event Emitters\n     */\n    parent: any\n}>;\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class DialogService {\n\n    private dialogs: MatDialogRef<unknown, any>[] = [];\n\n    constructor(\n        private dialog: MatDialog,\n        private lazyLoader: LazyLoaderService\n    ) {\n    }\n\n    open(name: string)\n    open(name: string, opts: DialogOptions)\n    open(name: string, group: string)\n    open(name: string, group: string, opts: DialogOptions)\n    open(name: string, groupOrOptions?: any, opts: DialogOptions = {}): Promise<any> {\n        const group = typeof groupOrOptions == \"string\" ? groupOrOptions : 'default';\n        if (typeof groupOrOptions == 'object')\n            opts = groupOrOptions;\n\n        return new Promise((resolve, reject) => {\n\n            const registration = this.lazyLoader.resolveRegistrationEntry(name, group);\n            if (!registration)\n                return reject(new Error(\"Cannot open dialog for \" + name + \". Could not find in registry.\"));\n\n\n            const args = {\n                closeOnNavigation: true,\n                restoreFocus: true,\n                width: registration['width'],\n                height: registration['height'],\n                ...opts,\n                data: {\n                    id: name,\n                    inputs: opts.inputs || {},\n                    outputs: opts.outputs || {},\n                    group: group\n                },\n                panelClass: [\n                    \"dialog-\" + name,\n                    ...(Array.isArray(opts.panelClass) ? opts.panelClass : [opts.panelClass] || [])\n                ]\n            };\n\n            let dialog = this.dialog.open(LazyLoaderComponent, args);\n\n            dialog['idx'] = name;\n            this.dialogs.push(dialog);\n\n            dialog.afterClosed().subscribe(result => {\n                log(\"Dialog closed \" + name, result);\n                resolve(result);\n            });\n        });\n    }\n\n    // Close all dialogs matching the given name\n    close(name: string) {\n        const dialogs = this.dialogs.filter(d => d['idx'] == name);\n        dialogs.forEach(dialog => dialog.close());\n    }\n\n    /**\n     * Method to close _all_ dialogs.\n     * Should be used sparingly.\n     */\n    clearDialog() {\n        this.dialogs.forEach(dialog => dialog.close());\n    }\n\n    /**\n     * Open a confirmation dialog. Will reject if a cancel occurs.\n     * @param title title of the dialog\n     * @param message main question that a user needs to confirm/deny\n     * @returns\n     */\n    // confirmAction(title: string, message: string): Promise<void> {\n    //     return new Promise((res, rej) => {\n    //         const dialog = this.dialog.open(ConfirmationComponent, {\n    //             maxHeight: \"90vh\",\n    //             maxWidth: \"90vw\",\n    //             panelClass: [\"dialog-confirmation\"],\n    //             closeOnNavigation: true,\n    //             restoreFocus: true,\n    //             data: {title, message}\n    //         });\n\n    //         dialog.afterClosed().subscribe(result => {\n    //             result == true ? res() : rej();\n    //         });\n    //     });\n    // }\n}\n","import { HttpClient, HttpContext, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable, isDevMode } from '@angular/core';\nimport { retry } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n// Total number of _retries_ if there is a 429 response code.\nconst retryCount = 2;\n\nexport type FetchOptions = {\n    headers?: HttpHeaders | {\n        [header: string]: string | string[];\n    };\n    context?: HttpContext;\n    params?: HttpParams | {\n        [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n    };\n    body?: any,\n    observe?: 'body' | 'events' | 'response';\n    reportProgress?: boolean;\n    responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\n    withCredentials?: boolean;\n}\n\n@Injectable({\n    providedIn: \"root\"\n})\nexport class Fetch {\n    constructor(\n        private http: HttpClient\n    ) { }\n\n    // Public interface for making AJAX transactions\n    public get<T>(url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n        return this.request<T>(\"get\", url, options, returnError);\n    }\n    public put<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n        options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n        return this.request<T>(\"put\", url, options, returnError);\n    }\n    public post<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n        options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n        return this.request<T>(\"post\", url, options, returnError);\n    }\n    public patch<T>(url: string, body: any, options: FetchOptions = {}, returnError = false): Promise<T> {\n        options.body = (options.body && Object.keys(options.body).length > 0 ? options.body : body) || {};\n        return this.request<T>(\"patch\", url, options, returnError);\n    }\n    public delete<T>(url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n        return this.request<T>(\"delete\", url, options, returnError);\n    }\n\n    // Internally, handle the observable as a promise.\n    private request<T>(method: string, url: string, options: FetchOptions = {}, returnError = false): Promise<T> {\n        options.reportProgress = true;\n\n        // Allow support for different response types.\n        // Generally we shouldn't need this to be anything other than JSON.\n        options.responseType = options.responseType || \"json\";\n        options.withCredentials = true;\n\n\n        let abort = false;\n        const p = new Promise((resolve, reject) => {\n            const o = this.http.request(method, url, options)\n                .pipe(retry({\n                    delay(error, retryCount) {\n                        // 429 and 502 are most common for overloaded\n                        // backends -- so we'll retry if we get these errors\n                        if (error.status == 429 || error.status == 502)\n                            return of({});\n\n                        if (error.status == 504 && isDevMode())\n                            alert(\"It looks like you can't reach your development backend anymore\");\n\n                        abort = true;\n\n                        reject(error);\n                        throw error;\n                    },\n                    count: retryCount\n                }))\n                .subscribe(data => {\n                    resolve(data as unknown as T);\n\n                    // provide 3ms slacktime before releasing observable.\n                    setTimeout(() => {\n                        o.unsubscribe();\n                    }, 3);\n                });\n        });\n\n        return p as Promise<T>;\n    }\n}\n","import { Injectable, HostListener } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type KeyCommand = {\n    /**\n     * The non-modifier key(s) that must be pressed for the event to fire.\n     */\n    key: string | string[],\n    label?: string,\n\n    ctrl?: boolean,\n    alt?: boolean,\n    shift?: boolean,\n    super?: boolean,\n    tab?: boolean,\n\n    /**\n     * Should the handler interrupt default event handling\n     */\n    interrupt?: boolean,\n}\n\n/**\n * Service that listens for global keyboard events\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class KeyboardService {\n\n    private heldKeys: { [key: string]: boolean } = {};\n    public keyCommands: {\n        ctrl?: boolean,\n        alt?: boolean,\n        shift?: boolean,\n        super?: boolean,\n        interrupt?: boolean,\n        label?: string,\n        keys: string[],\n        sub: Subject<KeyboardEvent>\n    }[] = [];\n\n    constructor() {\n        window.addEventListener(\"keydown\", (evt) => this.onKeyDown(evt));\n        window.addEventListener(\"keyup\", (evt) => this.onKeyUp(evt));\n    }\n\n    private onKeyDown(evt: KeyboardEvent) {\n        // console.log(\"keydown\", evt.key)\n        this.heldKeys[evt.key.toLowerCase()] = true;\n\n        // Do a general filter where all of the modifiers must be matched if specified\n        // Then check that the actual keys match what was specified\n        let commands = this.keyCommands\n            .filter(kc =>\n                (kc.ctrl == undefined || kc.ctrl === evt.ctrlKey) &&\n                (kc.alt == undefined || kc.alt === evt.altKey) &&\n                (kc.shift == undefined || kc.shift === evt.shiftKey) &&\n                (kc.super == undefined || kc.super === evt.metaKey) &&\n                kc.keys.length == kc.keys.filter(k => this.heldKeys[k])?.length\n            );\n\n        if (evt.ctrlKey && commands.length > 0 || commands.find(c => c.interrupt)) {\n            evt.stopPropagation();\n            evt.preventDefault();\n        }\n\n        if (evt.key == \"Pause\")\n            debugger;\n\n        commands.forEach(kc => kc.sub.next(evt));\n\n        /**\n         * Prevent CTRL+P and other standard key events from being handled by the browser.\n         * Allow specific combonations:\n         * CTRL+W\n         * CTRL+T\n         * CTRL+F5\n         */\n        // if (evt.ctrlKey && !['w', 't', 'F5'].includes(evt.key)) {\n        //     evt.preventDefault();\n        // }\n    }\n\n    private onKeyUp(evt: KeyboardEvent) {\n        this.heldKeys[evt.key.toLowerCase()] = false;\n    }\n\n    private onKeyPress(evt: KeyboardEvent) {\n        // this.heldKeys[evt.key] = false;\n    }\n\n    /**\n     * Use this to subscribe to keyboard events throughout\n     * the application. This is a passive listener and will\n     * **NOT** interrupt the event chain.\n     */\n    public onKeyCommand(key: KeyCommand) {\n        const sub = new Subject<KeyboardEvent>();\n        let item = {\n            ...key,\n            keys: (Array.isArray(key.key) ? key.key : [key.key]),\n            sub: sub\n        }\n\n        this.keyCommands.push(item);\n\n        return {\n            ...sub,\n            subscribe: ((...args) => {\n                const s = sub.subscribe(...args);\n                return {\n                    ...s,\n                    unsubscribe: () => {\n                        s.unsubscribe();\n\n                        // Remove the keycommand from the list of listeners.\n                        const i = this.keyCommands.findIndex(c => c == item);\n                        this.keyCommands.splice(i, 1);\n                    }\n                };\n            }) as Subject<KeyboardEvent>['subscribe']\n        };\n    }\n\n    /**\n     * Return `true` if shift is currently pressed.\n     */\n    get isShiftPressed() {\n        return !!this.heldKeys[\"shift\"];\n    }\n    /**\n     * Return `true` if ctrl is currently pressed.\n     */\n    get isCtrlPressed() {\n        return !!this.heldKeys[\"control\"];\n    }\n    /**\n     * Return `true` if alt is currently pressed.\n     */\n    get isAltPressed() {\n        return !!this.heldKeys[\"alt\"];\n    }\n    /**\n     * Return `true` if super (mac/linux) or the windows key is currently pressed.\n     */\n    get isSuperPressed() {\n        return !!this.heldKeys[\"super\"];\n    }\n    /**\n     * Return `true` if tab is currently pressed.\n     */\n    get isTabPressed() {\n        return !!this.heldKeys[\"tab\"];\n    }\n\n    @HostListener(\"window:blur\")\n    @HostListener(\"window:resize\")\n    clearKeys() {\n        Object.keys(this.heldKeys).forEach(k => {\n            this.heldKeys[k] = false;\n        });\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { Fetch } from './fetch.service';\n\n\n/**\n * Service that listens for global keyboard events\n */\n@Injectable({\n    providedIn: 'root'\n})\nexport class FileService {\n\n    constructor(private fetch: Fetch) { }\n\n    chooseFile = (accept?: string, multiple = false, formMetadata = {}, ) => {\n        return new Promise(r => {\n            const inEl = document.createElement('input');\n            inEl.setAttribute('type', 'file');\n            if (multiple)\n                inEl.setAttribute('multiple', '');\n            if (accept)\n                inEl.setAttribute('accept', accept);\n\n            inEl.click();\n\n            let formData = new FormData();\n\n            inEl.addEventListener('change', () => {\n                Object.keys(inEl.files).forEach(k => {\n                    const file: {\n                        lastModified: number,\n                        lastModifiedDate: Date,\n                        name: string,\n                        size: number,\n                        type: string;\n                    } = inEl.files[k];\n\n                    const name = file.name;\n                    formData.append(name, file as any);\n                });\n                formData.append(\"data\", JSON.stringify(formMetadata));\n                inEl.remove();\n                r(formData);\n            });\n        });\n    };\n\n    // uploadFile = (config: NgxFileManagerConfiguration, currentDirectory: string, targetPath?: string) => {\n    //     return new Promise(r => {\n    //         const inEl = document.createElement('input');\n    //         inEl.setAttribute('type', 'file');\n    //         inEl.setAttribute('multiple', '');\n    //         inEl.click();\n\n    //         let formData = new FormData();\n\n    //         inEl.addEventListener('change', () => {\n    //             Object.keys(inEl.files).forEach(k => {\n    //                 const file: {\n    //                     lastModified: number,\n    //                     lastModifiedDate: Date,\n    //                     name: string,\n    //                     size: number,\n    //                     type: string;\n    //                 } = inEl.files[k];\n\n    //                 const name = file.name;\n    //                 formData.append(name, file as any);\n    //             });\n    //             formData.append(\"data\", JSON.stringify({\n    //                 path: currentDirectory\n    //             }));\n\n    //             const url = config.apiSettings.uploadEntryUrlTemplate\n    //                 ? config.apiSettings.uploadEntryUrlTemplate(targetPath ?? currentDirectory)\n    //                 : config.apiSettings.uploadEntryUrl;\n\n    //             r(this.fetch.post(url, formData).then(res => {\n    //                 inEl.remove();\n    //                 return res;\n    //             }));\n    //         });\n    //     });\n    // };\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ntype AppTheme = \"light\" | \"dark\";\n\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ThemeService extends BehaviorSubject<AppTheme>{\n    constructor() {\n        super(document.body.classList.contains(\"light\") ? \"light\" : \"dark\");\n\n        this.subscribe(t => {\n            if (!t || t as any == 'undefined') return;\n\n            if (document.body.classList.contains(\"dark\") && t == \"light\")\n                document.body.classList.remove(\"dark\");\n            if (document.body.classList.contains(\"light\") && t == \"dark\")\n                document.body.classList.remove(\"light\");\n\n            document.body.classList.add(t);\n        });\n    }\n\n    public setTheme(t: AppTheme) {\n        this.next(t);\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { ConsoleLogger } from '../utils';\nimport { LazyLoaderService } from '../public-api';\n\nconst { log, warn, err } = ConsoleLogger(\"NavigationService\", \"#ff9800\");\n\ntype NavigationArguments = {\n    root: string,\n    chunks: [string, ...string[]],\n    args: {\n        [key: string]: any;\n    }\n}\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class NavigationService {\n    public virtualPath$ = new BehaviorSubject<NavigationArguments>(null);\n\n    constructor(\n        private readonly lazyLoader: LazyLoaderService\n    ) {\n        window.onhashchange = () => this.loadRootPageFromUrl();\n        this.loadRootPageFromUrl();\n    }\n\n    private loadRootPageFromUrl() {\n        const hash = location.hash.split(\"?\")[0];\n        const root = hash.replace(/^\\/?#\\//, '');\n\n        // If the URL is imprecisely set, we restore it to the landing page\n        if (!this.lazyLoader.isComponentRegistered(root))\n            return this.loadRootPage(\"#/Landing\");\n\n        this.loadRootPage(location.hash);\n    }\n\n    private loadRootPage(url: string, data: Object = {}) {\n\n        const [path, query] = url.split('?');\n        const hash = path.replace(/^\\/?#\\/?/, '');\n        const chunks = hash.split('/');\n\n        // Get query params and pass them as @Input arguments.\n        const params = query?.split('&')\n            .reduce((pars, par) => {\n                const [key, value] = par.split(\"=\");\n                const decoded = decodeURIComponent(value);\n                pars[key] = decoded;\n                return pars;\n            }, {}) || {};\n\n\n        log(`Root page navigate to '${hash}'`, { params, chunks });\n        const root = hash.replace(/^\\/?#\\//, '');\n        this.virtualPath$.next({\n            root: root, //chunks[0],\n            chunks: chunks as any,\n            args: params\n        });\n    }\n}\n","import { Component, Input } from '@angular/core';\nimport { KeybindCode } from '../../../services/command-palette.service';\n\n@Component({\n    selector: 'ngx-commandpalette-shortcut',\n    templateUrl: './shortcut.component.html',\n    styleUrls: ['./shortcut.component.scss'],\n    standalone: true\n})\nexport class ShortcutComponent {\n\n    @Input() shortcut: KeybindCode;\n\n    keys: string[] = [];\n\n    ngOnChanges() {\n        this.keys = this.shortcut?.split(\"+\");\n    }\n}\n","@for (key of keys; track key; let i = $index) {\n    @if(i > 0) {\n        <span class=\"plus\">+</span>\n    }\n\n    <span class=\"key\">{{key}}</span>\n}\n","import { Component, Input } from '@angular/core';\nimport { CommandPaletteComponent } from '../command-palette.component';\nimport { CommandAction } from '../../../services/command-palette.service';\n\n@Component({\n    selector: 'ngx-commandpalette-breadcrumb',\n    templateUrl: './breadcrumb.component.html',\n    styleUrls: ['./breadcrumb.component.scss'],\n    standalone: true\n})\nexport class BreadcrumbComponent {\n\n    @Input() breadcrumbs: {\n        action: CommandAction,\n        commands: CommandAction[],\n        destroying: boolean,\n        selectedIndex: number\n    }[] = [];\n\n    constructor(\n        private commandPalette: CommandPaletteComponent\n    ) {\n\n    }\n\n    selectBreadcrumb(crumb) {\n        const index = this.breadcrumbs.indexOf(crumb);\n        if (index == -1)\n            throw new Error(\"Something terrible happened.\");\n\n        const layer = this.breadcrumbs.at(-1);\n        layer.destroying = true;\n        setTimeout(() => {\n            this.commandPalette.setCommandList(this.breadcrumbs.at(-2).commands);\n            this.commandPalette.breadcrumbs.pop();\n            this.commandPalette.activeIndex = layer.selectedIndex;\n        }, 190)\n    }\n}\n","@for (crumb of breadcrumbs; track crumb; let i = $index) {\n    <div class=\"crumb\">\n        <div\n            class=\"crumb_inner\"\n            [class.destroy]=\"crumb.destroying\"\n            [class.root]=\"i == 0\"\n            (click)=\"selectBreadcrumb(crumb)\"\n        >\n                {{crumb.action.label}}\n        </div>\n    </div>\n}\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input, OnInit, ViewChild, isDevMode } from '@angular/core';\nimport { CommandAction, CommandPaletteService } from '../../services/command-palette.service';\nimport { MatInputModule } from '@angular/material/input';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { NgScrollbar, NgScrollbarModule } from 'ngx-scrollbar';\nimport { ShortcutComponent } from './shortcut/shortcut.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@Component({\n    selector: 'ngx-command-palette',\n    templateUrl: './command-palette.component.html',\n    styleUrls: ['./command-palette.component.scss'],\n    host: {\n        \"(click)\": \"textInput.nativeElement.focus()\"\n    },\n    imports: [\n        MatIconModule,\n        MatInputModule,\n        ScrollingModule,\n        NgScrollbarModule,\n        ShortcutComponent,\n        BreadcrumbComponent\n    ],\n    standalone: true\n})\nexport class CommandPaletteComponent implements OnInit {\n\n    @ViewChild(NgScrollbar) scrollbar: NgScrollbar;\n    @ViewChild('textinput') textInput: ElementRef<HTMLInputElement>;\n\n    @Input() contextElement: HTMLElement;\n\n    get el() { return this.elementRef.nativeElement as HTMLElement; }\n\n    readonly MAT_ICON_REGEX = /[:\\/\\.]/;\n\n    queryString = \"\";\n    activeIndex = 0;\n    readonly rowHeight = 29;\n    readonly padding = 6;\n\n    commands: CommandAction[] = [];\n    filteredCommands: CommandAction[] = [];\n\n    breadcrumbs: {\n        action: CommandAction,\n        commands: CommandAction[],\n        destroying: boolean,\n        selectedIndex: number\n    }[] = [];\n\n    constructor(\n        private readonly commandPalette: CommandPaletteService,\n        private readonly dialog: MatDialogRef<any>,\n        private readonly elementRef: ElementRef,\n        private readonly changeDetector: ChangeDetectorRef,\n        @Inject(MAT_DIALOG_DATA) data: any\n    ) {\n        this.contextElement = this.contextElement ?? data.contextElement;\n    }\n\n    ngOnInit() {\n        this.commands = this.commandPalette.getRegisteredCommands(this.contextElement)\n        this.setCommandList(this.commands);\n\n        // TODO: custom name\n        this.breadcrumbs.push({\n            action: { label: \"/\" },\n            commands: this.commands,\n            destroying: false,\n            selectedIndex: 0\n        });\n    }\n\n    onKeyDown(evt: KeyboardEvent) {\n        switch(evt.key) {\n            case \"Enter\": {\n                // Fire the first command\n                if (this.filteredCommands.length > 0)\n                    this.executeCommand(this.filteredCommands[this.activeIndex]);\n\n                evt.stopPropagation();\n                return;\n            }\n            case \"ArrowUp\": {\n                this.activeIndex = Math.max(this.activeIndex-1, 0);\n\n                evt.stopPropagation();\n                this.focusRow();\n                return;\n            }\n            case \"ArrowDown\": {\n                this.activeIndex = Math.min(this.filteredCommands.length-1, this.activeIndex+1);\n\n                evt.stopPropagation();\n                this.focusRow();\n                return;\n            }\n            case \"PageUp\": {\n                // Fire the first command\n                this.activeIndex = Math.max(this.activeIndex-12, 0);\n\n                evt.stopPropagation();\n                this.focusRow();\n                return;\n            }\n            case \"PageDown\": {\n                this.activeIndex = Math.min(this.filteredCommands.length-1, this.activeIndex+12);\n\n                evt.stopPropagation();\n                this.focusRow();\n                return;\n            }\n            case \"Escape\": {\n                this.dialog.close();\n                evt.stopPropagation();\n                return;\n            }\n            case \"Backspace\": {\n                // If we have no characters and we're hitting backspace, go back\n                // to the previous menu in the breadcrumb\n                if (this.queryString.length == 0 && this.breadcrumbs.length > 1) {\n                    const layer = this.breadcrumbs.at(-1);\n                    layer.destroying = true;\n                    setTimeout(() => {\n                        this.setCommandList(this.breadcrumbs.at(-2).commands);\n                        this.breadcrumbs.pop();\n                        this.activeIndex = layer.selectedIndex;\n                    }, 190)\n                    return;\n                }\n                else {\n                    break;\n                }\n            }\n            case \"Delete\": {\n\n            }\n        }\n\n        this.activeIndex = 0;\n        this.commands.forEach(c => c['_renderedLabel'] = '');\n\n        // Check in the next tick to get the input's\n        // value so that it's updated\n        setTimeout(() => {\n            this.queryString = (evt.target as HTMLInputElement).value;\n            this.filterResults();\n        })\n    }\n\n    private async filterResults() {\n        // Whitespace doesn't count.\n        if (this.queryString.trim().length == 0) {\n            this.filteredCommands = this.commands;\n            return;\n        }\n\n        const queryChars = this.queryString\n            .toLowerCase()\n            .split('');\n\n        const matchedCommands: CommandAction[] = [];\n\n        for (const command of this.commands) {\n            const { label } = command;\n\n            // Check the label\n            if (command.label) {\n                const commandChars = label\n                    .toLowerCase()\n                    .split('');\n\n                let renderedLabel = '';\n                let lastIndex = 0;\n                let isMatch = true;\n\n                for (const char of queryChars) {\n                    const index = commandChars.indexOf(char, lastIndex);\n\n                    if (index == -1) {\n                        isMatch = false;\n                        break;\n                    }\n                    else {\n                        renderedLabel += label.slice(lastIndex, index) + `<b>${label.slice(index, index + 1)}</b>`;\n                        lastIndex = index + 1;\n                    }\n                }\n\n                renderedLabel += label.slice(lastIndex);\n\n                if (isMatch) {\n                    command['_renderedLabel'] = renderedLabel;\n                    matchedCommands.push(command);\n                }\n            }\n\n            // Check the hint\n            if (command.hint) {\n                const commandChars = label\n                    .toLowerCase()\n                    .split('');\n\n                let renderedHint = '';\n                let lastIndex = 0;\n                let isMatch = true;\n\n                for (const char of queryChars) {\n                    const index = commandChars.indexOf(char, lastIndex);\n\n                    if (index == -1) {\n                        isMatch = false;\n                        break;\n                    }\n                    else {\n                        renderedHint += label.slice(lastIndex, index) + `<b>${label.slice(index, index + 1)}</b>`;\n                        lastIndex = index + 1;\n                    }\n                }\n\n                renderedHint += label.slice(lastIndex);\n\n                if (isMatch) {\n                    command['_renderedHint'] = renderedHint;\n                    matchedCommands.push(command);\n                }\n            }\n        }\n\n        this.filteredCommands = matchedCommands;\n    }\n\n    public setCommandList(commands: CommandAction[]) {\n        this.commands = commands\n            .filter(c => c.visibleInList != false);\n        this.filteredCommands = this.commands;\n        this.queryString = '';\n        this.activeIndex = 0;\n\n        // Reset the filter labels\n        this.commands.forEach(command => command['_renderedLabel'] = '');\n    }\n\n    private focusRow() {\n        const top = this.activeIndex * this.rowHeight;\n        const height = this.rowHeight;\n\n        const viewTop = this.scrollbar?.viewport?.scrollTop;\n        const viewHeight = this.scrollbar?.viewport?.clientHeight;\n        const viewBottom = viewTop + viewHeight;\n\n        if (top < viewTop) {\n            this.scrollbar.viewport.nativeElement.scrollTo({ top: top + this.padding })\n        }\n        else if ((top + height) > viewBottom) {\n            this.scrollbar.viewport.nativeElement.scrollTo({ top: ((top + this.rowHeight) - viewHeight) + this.padding })\n        }\n\n        // Immediately check for changes to update template\n        this.changeDetector.detectChanges();\n    }\n\n    executeCommand(command: CommandAction) {\n        // Open a sub menu of items\n        if (Array.isArray(command.subMenu)) {\n            this.breadcrumbs.push({\n                action: command,\n                commands: command.subMenu,\n                selectedIndex: this.activeIndex,\n                destroying: false\n            });\n\n            this.setCommandList(command.subMenu);\n        }\n        // Directly invoke the action and kill the dialog\n        else {\n            this.commandPalette.invokeAction(command);\n            this.dialog.close();\n        }\n    }\n\n    @HostListener(\"window:blur\")\n    @HostListener(\"window:resize\")\n    onBlur() {\n        if (!isDevMode()) {\n            this.dialog.close();\n        }\n    }\n}\n","<mat-form-field style=\"width: 100%; padding: 8px 8px 0 8px\">\n    <ngx-commandpalette-breadcrumb\n        [breadcrumbs]=\"breadcrumbs\"\n    />\n    <input\n        #textinput\n        matInput\n        type=\"text\"\n        [value]=\"queryString\"\n        (keydown)=\"onKeyDown($event)\"\n    >\n</mat-form-field>\n\n@if (filteredCommands.length == 0) {\n    <div class=\"commands\">\n        <div class=\"command selected\">\n            <div class=\"label\">No matching results.</div>\n        </div>\n    </div>\n}\n@else {\n    <div\n        class=\"commands\"\n        [style.flex]=\"(filteredCommands.length * rowHeight) + 'px'\"\n        [class.shadow]=\"scrollbar?.viewport?.scrollTop > 2\"\n    >\n        <ng-scrollbar #scrollbar>\n            <cdk-virtual-scroll-viewport [itemSize]=\"rowHeight\" scrollViewport [minBufferPx]=\"150\">\n                <div\n                    *cdkVirtualFor=\"let command of filteredCommands; let index = index\"\n                    class=\"command\"\n                    [style.height]=\"rowHeight + 'px'\"\n                    [class.selected]=\"index==activeIndex\"\n                    [class.has-icon]=\"command.icon\"\n                    [attr.index]=\"index\"\n                    (click)=\"executeCommand(command)\"\n                >\n                    @if (command.icon) {\n                        <div class=\"icon\">\n                            @if (!MAT_ICON_REGEX.test(command.icon)) {\n                                <mat-icon [fontIcon]=\"command.icon\"></mat-icon>\n                            }\n                            @else {\n                                <img [src]=\"command.icon\"/>\n                            }\n                        </div>\n                    }\n\n                    <div\n                        class=\"label\"\n                        [innerHTML]=\"command['_renderedLabel'] || command.label || command.description\"\n                    ></div>\n\n                    @if (command['_renderedHint'] || command.hint) {\n                        <div\n                            class=\"hint\"\n                            [innerHTML]=\"command['_renderedHint'] || command.hint\"\n                        ></div>\n                    }\n                    <div style=\"flex: 1\"></div>\n\n                    <div>\n                        @for (shortcut of (command.shortcutKey?.find ? command.shortcutKey : [command.shortcutKey]); track shortcut) {\n                            @if (shortcut) {\n                                <ngx-commandpalette-shortcut [shortcut]=\"shortcut\"/>\n                            }\n                        }\n                    </div>\n                </div>\n            </cdk-virtual-scroll-viewport>\n        </ng-scrollbar>\n    </div>\n}\n\n","import { Injectable, HostListener, Type, isDevMode } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConsoleLogger, LogIcon } from '../utils';\nimport { LazyLoaderService } from '../components/lazy-loader/lazy-loader.service';\nimport { CommandPaletteComponent } from '../components/command-palette/command-palette.component';\n\nconst { log, warn, err } = ConsoleLogger(\"CommandPalette\", \"#2196f3\");\n\ntype KeyCode = \"Backspace\" | \"Tab\" | \"Enter\" | \"ShiftLeft\" | \"ShiftRight\"\n    | \"ControlLeft\" | \"ControlRight\" | \"AltLeft\" | \"AltRight\" | \"Pause\" | \"CapsLock\"\n    | \"Escape\" | \"Space\" | \"PageUp\" | \"PageDown\" | \"End\" | \"Home\" | \"ArrowLeft\"\n    | \"ArrowUp\" | \"ArrowRight\" | \"ArrowDown\" | \"PrintScreen\" | \"Insert\" | \"Delete\"\n    | \"MetaLeft\" | \"MetaRight\" | \"ContextMenu\" | \"Numpad0\" | \"Numpad1\" | \"Numpad2\"\n    | \"Numpad3\" | \"Numpad4\" | \"Numpad5\" | \"Numpad6\" | \"Numpad7\" | \"Numpad8\"\n    | \"Numpad9\" | \"NumpadMultiply\" | \"NumpadAdd\" | \"NumpadSubtract\"\n    | \"NumpadDecimal\" | \"NumpadDivide\"\n    | \"F1\" | \"F2\" | \"F3\" | \"F4\" | \"F5\" | \"F6\" | \"F7\" | \"F8\" | \"F9\" | \"F10\" | \"F11\" | \"F12\"\n    | \"NumLock\" | \"ScrollLock\" | \"Semicolon\" | \"Equal\" | \"Comma\" | \"Minus\"\n    | \"Period\" | \"Slash\" | \"Backquote\" | \"BracketLeft\" | \"Backslash\"\n    | \"BracketRight\" | \"Quote\" | \"backspace\" | \"tab\" | \"enter\" | \"shiftleft\"\n    | \"shiftright\" | \"controlleft\" | \"controlright\" | \"altleft\" | \"altright\"\n    | \"pause\" | \"capslock\" | \"escape\" | \"space\" | \"pageup\" | \"pagedown\" | \"end\"\n    | \"home\" | \"arrowleft\" | \"arrowup\" | \"arrowright\" | \"arrowdown\" | \"printscreen\"\n    | \"insert\" | \"delete\" | \"metaleft\" | \"metaright\" | \"contextmenu\"\n    | \"numpad0\" | \"numpad1\" | \"numpad2\" | \"numpad3\" | \"numpad4\" | \"numpad5\"\n    | \"numpad6\" | \"numpad7\" | \"numpad8\" | \"numpad9\" | \"numpadmultiply\" | \"numpadadd\"\n    | \"numpadsubtract\" | \"numpaddecimal\" | \"numpaddivide\"\n    | \"f1\" | \"f2\" | \"f3\" | \"f4\" | \"f5\" | \"f6\" | \"f7\" | \"f8\" | \"f9\" | \"f10\" | \"f11\" | \"f12\"\n    | \"numlock\" | \"scrolllock\" | \"semicolon\" | \"equal\" | \"comma\" | \"minus\" | \"period\"\n    | \"slash\" | \"backquote\" | \"bracketleft\" | \"backslash\" | \"bracketright\" | \"quote\"\n    | \"A\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"H\" | \"I\" | \"J\" | \"K\" | \"L\" | \"M\"\n    | \"N\" | \"O\" | \"P\" | \"Q\" | \"R\" | \"S\" | \"T\" | \"U\" | \"V\" | \"W\" | \"X\" | \"Y\" | \"Z\"\n    | \"a\" | \"b\" | \"c\" | \"d\" | \"e\" | \"f\" | \"g\" | \"h\" | \"i\" | \"j\" | \"k\" | \"l\" | \"m\"\n    | \"n\" | \"o\" | \"p\" | \"q\" | \"r\" | \"s\" | \"t\" | \"u\" | \"v\" | \"w\" | \"x\" | \"y\" | \"z\";\n\n// ctrl+alt+meta+shift\ntype KeyPrefix =\n    `ctrl` |\n    `ctrl+alt` |\n    `ctrl+alt+shift` |\n    `ctrl+alt+shift+meta` |\n    `ctrl+alt+meta` |\n    `ctrl+shift` |\n    `ctrl+shift+meta` |\n    `ctrl+meta` |\n    `alt` |\n    `alt+shift` |\n    `alt+shift+meta` |\n    `alt+meta` |\n    `shift` |\n    `shift+meta` |\n    `meta`\n\nexport type KeybindEvent = (e: KeyboardEvent) => void;\nexport type KeybindCode = `${KeyPrefix}+${KeyCode}` | KeyCode;\n\n\n\nexport type CommandAction<T = any> = {\n    /**\n     * The non-modifier key(s) that must be pressed for the event to fire.\n     */\n    shortcutKey?: KeybindCode | KeybindCode[],\n\n    /**\n     * Action that is invoked when the keyboard shortcut is pressed or the item\n     * is activated in the GUI menu\n     * If the GUI menu is open, it will show a spinner if the action returns a `Promise`\n     */\n    action?: (evt: KeyboardEvent, data?: T) => Promise<any> | any,\n\n    /**\n     * Arbitrary data object to be passed into the action\n     */\n    data?: T,\n\n    /**\n     * Label in the command palette popup\n     */\n    label?: string,\n\n    /**\n     * Hint that follows the label, subtly\n     */\n    hint?: string,\n\n    /**\n     * Icon for the entry\n     * Can be a mat-icon\n     * Will be a mat-icon if the string is simple\n     * If the string contains a slash or colon, it will be loaded as\n     * an image source\n     */\n    icon?: string,\n\n    /**\n     * Keywords that can help pick this command\n     */\n    keywords?: string | string[],\n\n    /**\n     * Description for the popup\n     * WIP\n     */\n    description?: string,\n\n    /**\n     * The root ancestor element of the action\n     * (This allows scoping commands to specific HTML elements)\n     * This requires that the event target must be a descendant\n     *\n     * If there are multiple matching descendants, only\n     * the furthest descendant will be fired\n     *\n     * For command scoping, we read the data-label attribute\n     * Alternatively, you can set label and element as an object here.\n     */\n    rootElement?: HTMLElement | string | {\n        element: HTMLElement | string,\n        label: string\n    },\n\n    /**\n     * The label for the root. Used for the UI control and debugging.\n     */\n    rootName?: string,\n\n    /**\n     * Control whether this command action is visible in the popup command\n     * palette GUI.\n     */\n    visibleInList?: boolean,\n\n    /**\n     * Enable selecting an item to show a list of sub-items\n     */\n    subMenu?: CommandAction<T>[] | (() => Promise<CommandAction<T>[]>) | (() => CommandAction<T>[])\n\n};\n\ntype CommandBlock = {\n    element: HTMLElement,\n    actions: CommandAction[];\n};\n\nexport type CommandPaletteOptions = {\n    keybind: KeybindCode\n}\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class CommandPaletteService {\n\n    private commandBlocks: CommandBlock[] = [];\n    private interval;\n\n    constructor(\n        private readonly dialog: MatDialog,\n        private readonly lazyLoader: LazyLoaderService\n    ) {\n        window.addEventListener(\"keydown\", (evt) => this.onKeyDown(evt));\n\n        this.interval = setInterval(() => {\n            // Go backwards since we're splicing items out of the array.\n            for (let i = this.commandBlocks.length; i >= 0; i--) {\n                let commandBlock = this.commandBlocks[i];\n\n                // If the current index is somehow null, rip it out of\n                // the array and wait for cleanup to trigger again\n                // for the rest of the array.\n                // TODO: Could this lead to leaks where things at the end\n                // never get cleaned?\n                if (commandBlock == null) {\n                    this.commandBlocks.splice(i, 1);\n                    return;\n                }\n\n                // If the element has been disconnected from the DOM, we will\n                // treat it as having been permanently removed.\n                // TODO: Could this ever cause unintended consequences?\n                if (!commandBlock?.element.isConnected)\n                    this.commandBlocks.splice(i, 1);\n            }\n        }, 5 * 60 * 1000);\n    }\n\n    private ngOnDestroy() {\n        clearInterval(this.interval);\n    }\n\n    private getCommandBlocks(element: HTMLElement = document.body) {\n        const elementPath: HTMLElement[] = [element];\n        let currentTarget: HTMLElement = element;\n        do {\n            elementPath.unshift(currentTarget = currentTarget.parentElement);\n        } while (currentTarget.parentElement);\n\n        // Ordered matching command blocks, closest first\n        const matchingCommandBlocks: CommandBlock[] = [];\n        for (const element of elementPath) {\n            const commandBlock = this.commandBlocks.find(cb => cb.element == element);\n            if (commandBlock) {\n                matchingCommandBlocks.unshift(commandBlock);\n            }\n        }\n\n        return matchingCommandBlocks;\n    }\n\n    /**\n     * Handle keydown events\n     *\n     * If an event has been removed from the DOM tree, we don't need\n     * to explicitly remove the bindings, as they will never fire\n     *\n     * We periodically check and remove unconnected command blocks\n     */\n    private onKeyDown(evt: KeyboardEvent) {\n        const matchingCommandBlocks = this.getCommandBlocks(evt.target as HTMLElement);\n\n        // String in format `ctrl+alt+F`, `ctrl+F` etc.\n        const key = [\n            evt.ctrlKey ? \"ctrl\" : undefined,\n            evt.altKey ? \"alt\" : undefined,\n            evt.shiftKey ? \"shift\" : undefined,\n            evt.metaKey ? \"meta\" : undefined,\n            evt.code.startsWith(\"Key\") ? evt.key : evt.code\n        ].filter(a => a).join('+').toLowerCase();\n\n        for (const commandBlock of matchingCommandBlocks) {\n            const action = commandBlock.actions.find(a => {\n                return Array.isArray(a.shortcutKey)\n                    ? a.shortcutKey.includes(key as any)\n                    : a.shortcutKey == key as any\n            });\n\n            if (action) {\n                evt.stopPropagation();\n                evt.preventDefault();\n\n                this.invokeAction(action);\n\n                // Execute the action and move on.\n                return;\n            }\n            // Keep checking for matching actions\n        }\n\n        // If execution reaches this point, there were no matching actions on the\n        // path of elements that were registered.\n    }\n\n    private addCommand(element: HTMLElement, action: CommandAction) {\n        const commandBlock = this.commandBlocks.find(b => b.element == element) ?? (() => {\n            const cb = { element, actions: [] };\n            this.commandBlocks.push(cb);\n            return cb;\n        })();\n\n        // This is likely a duplicate entry\n        if (commandBlock.actions.find(a => a.shortcutKey && a.shortcutKey == action.shortcutKey)) {\n            warn(`Inserting duplicate action on element`, { element, action });\n        }\n        else {\n            // log(LogIcon.circle_blue, `Inserted action`, action)\n        }\n\n        // Make the shortcut keys lowercase so case sensitivity doesn't scalp someone\n        if (action.shortcutKey) {\n            if (Array.isArray(action.shortcutKey))\n                action.shortcutKey = action.shortcutKey.map(k => k.toLowerCase()) as any;\n            else\n                action.shortcutKey = action.shortcutKey.toLowerCase() as any;\n        }\n\n        commandBlock.actions.push(action);\n    }\n\n    private removeCommand(element: HTMLElement, action: CommandAction | string) {\n        const commandBlock = this.commandBlocks.find(b => b.element == element) ?? { element, actions: [] };\n        const actionIndex = commandBlock?.actions.findIndex(a => typeof action == \"string\" ? a.shortcutKey == action : a == action);\n\n        if (!commandBlock) {\n            err(LogIcon.warning, `Cannot remove command: element does not have any commands registered`, { element, action })\n        }\n        else if (actionIndex == -1) {\n            warn(LogIcon.warning, `Cannot remove command: not present in list`, { element, action })\n        }\n        else {\n            commandBlock.actions.splice(actionIndex, 1);\n        }\n    }\n\n    /**\n     *\n     */\n    initialize(options: CommandPaletteOptions) {\n        this.attachElementCommands([\n            {\n                shortcutKey: options.keybind,\n                action: () => this.openPalette(),\n                description: \"Open the command palette\",\n                keywords: [\"command\", \"prompt\", \"console\", \"actions\"],\n                label: \"Command Palette\",\n                visibleInList: false\n            }\n        ]);\n    }\n\n    /**\n     * Open the command palette\n     */\n    openPalette() {\n        return this.dialog.open(CommandPaletteComponent, {\n            position: {\n                top: \"8px\"\n            },\n            data: {\n                contextElement: document.activeElement\n            },\n            panelClass: ['ngx-command-palette'],\n            backdropClass: ['ngx-command-palette'],\n            restoreFocus: true,\n            role: 'dialog'\n        });\n    }\n\n    /**\n     * Public helper to invoke an action.\n     */\n    invokeAction(action: CommandAction, args?) {\n        const fn = action.action;\n        if (typeof fn == 'function') {\n\n            try {\n                const res = fn(args);\n\n                // Handle promises so that the GUI can show spinners for them\n                if (res instanceof Promise) {\n                    // TODO\n                }\n                else {\n                    // TODO\n                }\n            }\n            catch (ex) {\n                err(LogIcon.bomb, `Executing action threw an error`, { action }, ex);\n            }\n        }\n        else {\n            warn(LogIcon.warning, `Cannot execute action, type is not \"function\"`, { action });\n        }\n    }\n\n    /**\n     * Attach commands to an Element and it's subtree\n     */\n    attachElementCommands(actions: CommandAction[])\n    attachElementCommands(element: HTMLElement, actions: CommandAction[])\n    attachElementCommands(element: CommandAction[] | HTMLElement = document.body, actions: CommandAction[] = []) {\n        if (Array.isArray(element)) {\n            actions = element;\n            element = document.body;\n        }\n\n        actions.forEach(a => this.addCommand(element as any, a));\n    }\n\n    /**\n     * Detach specified commands from an Element subtree\n     */\n    detachElementCommands(element: HTMLElement = document.body, actions: CommandAction[] = []) {\n        actions.forEach(a => this.removeCommand(element, a));\n    }\n\n    /**\n     * Return the list of registered commands under a given element\n     */\n    getRegisteredCommands(element: HTMLElement = document.body) {\n        return this.getCommandBlocks(element).map(c => c.actions).flat();\n    }\n}\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { NgxLazyLoaderConfig } from './types';\nimport { LazyLoaderComponent } from './lazy-loader.component';\nimport { LazyLoaderService, NGX_LAZY_LOADER_CONFIG } from './lazy-loader.service';\n\n@NgModule({\n    imports: [LazyLoaderComponent],\n    exports: [LazyLoaderComponent]\n})\nexport class LazyLoaderModule {\n    public static forRoot(@Optional() config: NgxLazyLoaderConfig): ModuleWithProviders<LazyLoaderModule> {\n        return ({\n            ngModule: LazyLoaderModule,\n            providers: [\n                {\n                    provide: NGX_LAZY_LOADER_CONFIG,\n                    useValue: config\n                },\n                LazyLoaderService\n            ]\n        });\n    }\n}\n","import { InjectionToken, Type } from '@angular/core';\n\nexport abstract class OnMount {\n    abstract dynamicOnMount(attrs?: Map<string, string>, content?: string, element?: Element): void;\n}\n\nexport interface ComponentWithSelector {\n    selector: string;\n    component: Type<any>;\n}\nexport class DynamicHTMLOptions {\n    components: Array<ComponentWithSelector>;\n}\n\nexport const NGX_DYNAMIC_CONFIG = new InjectionToken<DynamicHTMLOptions>('dynamichtml-config');\n\n","import { Injectable, Injector, ElementRef, ComponentFactoryResolver, ComponentFactory, ComponentRef, Inject } from '@angular/core';\nimport { DynamicHTMLOptions, NGX_DYNAMIC_CONFIG, OnMount } from './types';\n\nexport interface DynamicHTMLRef {\n    check: () => void;\n    destroy: () => void;\n}\n\nfunction isBrowserPlatform() {\n    return window != null && window.document != null;\n}\n\n@Injectable()\nexport class DynamicHTMLRenderer {\n\n    private componentFactories = new Map<string, ComponentFactory<any>>();\n\n    private componentRefs = new Map<any, Array<ComponentRef<any>>>();\n\n    constructor(@Inject(NGX_DYNAMIC_CONFIG) private config: DynamicHTMLOptions, private cfr: ComponentFactoryResolver, private injector: Injector) {\n        this.config.components.forEach(({ selector, component }) => {\n            let cf: ComponentFactory<any>;\n            cf = this.cfr.resolveComponentFactory(component);\n            this.componentFactories.set(selector, cf);\n        });\n    }\n\n    renderInnerHTML(elementRef: ElementRef, html: string): DynamicHTMLRef {\n        if (!isBrowserPlatform()) {\n            return {\n                check: () => { },\n                destroy: () => { },\n            };\n        }\n        elementRef.nativeElement.innerHTML = html;\n\n        const componentRefs: Array<ComponentRef<any>> = [];\n        this.config.components.forEach(({ selector }) => {\n            const elements = (elementRef.nativeElement as Element).querySelectorAll(selector);\n            Array.prototype.forEach.call(elements, (el: Element) => {\n                const content = el.innerHTML;\n                const cmpRef = this.componentFactories.get(selector).create(this.injector, [], el);\n\n                el.removeAttribute('ng-version');\n\n                if (cmpRef.instance.dynamicOnMount) {\n                    const attrsMap = new Map<string, string>();\n                    if (el.hasAttributes()) {\n                        Array.prototype.forEach.call(el.attributes, (attr: Attr) => {\n                            attrsMap.set(attr.name, attr.value);\n                        });\n                    }\n                    (cmpRef.instance as OnMount).dynamicOnMount(attrsMap, content, el);\n                }\n\n                componentRefs.push(cmpRef);\n            });\n        });\n        this.componentRefs.set(elementRef, componentRefs);\n\n        return {\n            check: () => componentRefs.forEach(ref => ref.changeDetectorRef.detectChanges()),\n            destroy: () => {\n                componentRefs.forEach(ref => ref.destroy());\n                this.componentRefs.delete(elementRef);\n            },\n        };\n    }\n}\n","import {\n    Component,\n    ElementRef,\n    Input,\n    SimpleChanges,\n    OnChanges,\n    OnDestroy,\n    DoCheck,\n} from '@angular/core';\n\nimport { DynamicHTMLRenderer, DynamicHTMLRef } from './dynamic-html.service';\n\n@Component({\n    selector: 'dynamic-html',\n    template: '',\n    standalone: true\n})\nexport class DynamicHTMLComponent implements DoCheck, OnChanges, OnDestroy {\n    @Input() content: string;\n\n    private ref: DynamicHTMLRef = null;\n\n    constructor(\n        private renderer: DynamicHTMLRenderer,\n        private elementRef: ElementRef,\n    ) { }\n\n    ngOnChanges(_: SimpleChanges) {\n        if (this.ref) {\n            this.ref.destroy();\n            this.ref = null;\n        }\n        if (this.content && this.elementRef) {\n            this.ref = this.renderer.renderInnerHTML(this.elementRef, this.content);\n        }\n    }\n\n    ngDoCheck() {\n        if (this.ref) {\n            this.ref.check();\n        }\n    }\n\n    ngOnDestroy() {\n        if (this.ref) {\n            this.ref.destroy();\n            this.ref = null;\n        }\n    }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { DynamicHTMLComponent } from './dynamic-html.component';\nimport { DynamicHTMLOptions, NGX_DYNAMIC_CONFIG } from './types';\nimport { DynamicHTMLRenderer } from './dynamic-html.service';\n\n@NgModule({\n    imports: [DynamicHTMLComponent],\n    exports: [DynamicHTMLComponent],\n})\nexport class NgxDynamicHTMLModule {\n    public static forRoot(config: DynamicHTMLOptions): ModuleWithProviders<NgxDynamicHTMLModule> {\n        return {\n            ngModule: NgxDynamicHTMLModule,\n            providers: [\n                DynamicHTMLRenderer,\n                { provide: NGX_DYNAMIC_CONFIG, useValue: config }\n            ],\n        };\n    }\n}\n","/** List of text file extensions */\nexport default [\n    'Makefile',\n    'Rakefile',\n    'ada',\n    'adb',\n    'ads',\n    'applescript',\n    'as',\n    'ascx',\n    'asm',\n    'asmx',\n    'asp',\n    'aspx',\n    'atom',\n    'bas',\n    'bash',\n    'bashrc',\n    'bat',\n    'bbcolors',\n    'bdsgroup',\n    'bdsproj',\n    'bib',\n    'bowerrc',\n    'c',\n    'cbl',\n    'cc',\n    'cfc',\n    'cfg',\n    'cfm',\n    'cfml',\n    'cgi',\n    'clj',\n    'cls',\n    'cmake',\n    'cmd',\n    'cnf',\n    'cob',\n    'coffee',\n    'coffeekup',\n    'conf',\n    'cpp',\n    'cpt',\n    'cpy',\n    'crt',\n    'cs',\n    'csh',\n    'cson',\n    'csr',\n    'css',\n    'csslintrc',\n    'csv',\n    'ctl',\n    'curlrc',\n    'cxx',\n    'dart',\n    'dfm',\n    'diff',\n    'dof',\n    'dpk',\n    'dproj',\n    'dtd',\n    'eco',\n    'editorconfig',\n    'ejs',\n    'el',\n    'emacs',\n    'eml',\n    'ent',\n    'erb',\n    'erl',\n    'eslintignore',\n    'eslintrc',\n    'ex',\n    'exs',\n    'f',\n    'f03',\n    'f77',\n    'f90',\n    'f95',\n    'fish',\n    'for',\n    'fpp',\n    'frm',\n    'ftn',\n    'gemrc',\n    'gitattributes',\n    'gitconfig',\n    'gitignore',\n    'gitkeep',\n    'gitmodules',\n    'go',\n    'gpp',\n    'gradle',\n    'groovy',\n    'groupproj',\n    'grunit',\n    'gtmpl',\n    'gvimrc',\n    'h',\n    'haml',\n    'hbs',\n    'hgignore',\n    'hh',\n    'hpp',\n    'hrl',\n    'hs',\n    'hta',\n    'htaccess',\n    'htc',\n    'htm',\n    'html',\n    'htpasswd',\n    'hxx',\n    'iced',\n    'inc',\n    'ini',\n    'ino',\n    'int',\n    'irbrc',\n    'itcl',\n    'itermcolors',\n    'itk',\n    'jade',\n    'java',\n    'jhtm',\n    'jhtml',\n    'js',\n    'jscsrc',\n    'jshintignore',\n    'jshintrc',\n    'json',\n    'json5',\n    'jsonld',\n    'jsp',\n    'jspx',\n    'jsx',\n    'ksh',\n    'less',\n    'lhs',\n    'lisp',\n    'log',\n    'ls',\n    'lsp',\n    'lua',\n    'm',\n    'mak',\n    'map',\n    'markdown',\n    'master',\n    'md',\n    'mdown',\n    'mdwn',\n    'mdx',\n    'metadata',\n    'mht',\n    'mhtml',\n    'mjs',\n    'mk',\n    'mkd',\n    'mkdn',\n    'mkdown',\n    'ml',\n    'mli',\n    'mm',\n    'mxml',\n    'nfm',\n    'nfo',\n    'njk',\n    'noon',\n    'npmignore',\n    'npmrc',\n    'nvmrc',\n    'ops',\n    'pas',\n    'pasm',\n    'patch',\n    'pbxproj',\n    'pch',\n    'pem',\n    'pg',\n    'php',\n    'php3',\n    'php4',\n    'php5',\n    'phpt',\n    'phtml',\n    'pir',\n    'pl',\n    'pm',\n    'pmc',\n    'pod',\n    'pot',\n    'properties',\n    'props',\n    'pt',\n    'pug',\n    'py',\n    'r',\n    'rake',\n    'rb',\n    'rdoc',\n    'rdoc_options',\n    'resx',\n    'rhtml',\n    'rjs',\n    'rlib',\n    'rmd',\n    'ron',\n    'rs',\n    'rss',\n    'rst',\n    'rtf',\n    'rvmrc',\n    'rxml',\n    's',\n    'sass',\n    'scala',\n    'scm',\n    'scss',\n    'seestyle',\n    'sh',\n    'shtml',\n    'sls',\n    'spec',\n    'sql',\n    'sqlite',\n    'ss',\n    'sss',\n    'st',\n    'strings',\n    'sty',\n    'styl',\n    'stylus',\n    'sub',\n    'sublime-build',\n    'sublime-commands',\n    'sublime-completions',\n    'sublime-keymap',\n    'sublime-macro',\n    'sublime-menu',\n    'sublime-project',\n    'sublime-settings',\n    'sublime-workspace',\n    'sv',\n    'svc',\n    'svg',\n    't',\n    'tcl',\n    'tcsh',\n    'terminal',\n    'tex',\n    'text',\n    'textile',\n    'tg',\n    'tmLanguage',\n    'tmTheme',\n    'tmpl',\n    'tpl',\n    'ts',\n    'tsv',\n    'tsx',\n    'tt',\n    'tt2',\n    'ttml',\n    'txt',\n    'v',\n    'vb',\n    'vbs',\n    'vh',\n    'vhd',\n    'vhdl',\n    'vim',\n    'viminfo',\n    'vimrc',\n    'vue',\n    'webapp',\n    'wxml',\n    'wxss',\n    'x-php',\n    'xaml',\n    'xht',\n    'xhtml',\n    'xml',\n    'xs',\n    'xsd',\n    'xsl',\n    'xslt',\n    'yaml',\n    'yml',\n    'zsh',\n    'zshrc',\n];\n","export default {\n  \"iconDefinitions\": {\n    \"git\": {\n      \"iconPath\": \"./../icons/git.svg\"\n    },\n    \"yaml\": {\n      \"iconPath\": \"./../icons/yaml.svg\"\n    },\n    \"xml\": {\n      \"iconPath\": \"./../icons/xml.svg\"\n    },\n    \"matlab\": {\n      \"iconPath\": \"./../icons/matlab.svg\"\n    },\n    \"settings\": {\n      \"iconPath\": \"./../icons/settings.svg\"\n    },\n    \"shaderlab\": {\n      \"iconPath\": \"./../icons/shaderlab.svg\"\n    },\n    \"diff\": {\n      \"iconPath\": \"./../icons/diff.svg\"\n    },\n    \"json\": {\n      \"iconPath\": \"./../icons/json.svg\"\n    },\n    \"blink\": {\n      \"iconPath\": \"./../icons/blink.svg\"\n    },\n    \"java\": {\n      \"iconPath\": \"./../icons/java.svg\"\n    },\n    \"razor\": {\n      \"iconPath\": \"./../icons/razor.svg\"\n    },\n    \"python\": {\n      \"iconPath\": \"./../icons/python.svg\"\n    },\n    \"javascript\": {\n      \"iconPath\": \"./../icons/javascript.svg\"\n    },\n    \"typescript\": {\n      \"iconPath\": \"./../icons/typescript.svg\"\n    },\n    \"scala\": {\n      \"iconPath\": \"./../icons/scala.svg\"\n    },\n    \"handlebars\": {\n      \"iconPath\": \"./../icons/handlebars.svg\"\n    },\n    \"perl\": {\n      \"iconPath\": \"./../icons/perl.svg\"\n    },\n    \"haxe\": {\n      \"iconPath\": \"./../icons/haxe.svg\"\n    },\n    \"puppet\": {\n      \"iconPath\": \"./../icons/puppet.svg\"\n    },\n    \"elixir\": {\n      \"iconPath\": \"./../icons/elixir.svg\"\n    },\n    \"livescript\": {\n      \"iconPath\": \"./../icons/livescript.svg\"\n    },\n    \"erlang\": {\n      \"iconPath\": \"./../icons/erlang.svg\"\n    },\n    \"twig\": {\n      \"iconPath\": \"./../icons/twig.svg\"\n    },\n    \"julia\": {\n      \"iconPath\": \"./../icons/julia.svg\"\n    },\n    \"elm\": {\n      \"iconPath\": \"./../icons/elm.svg\"\n    },\n    \"purescript\": {\n      \"iconPath\": \"./../icons/purescript.svg\"\n    },\n    \"stylus\": {\n      \"iconPath\": \"./../icons/stylus.svg\"\n    },\n    \"nunjucks\": {\n      \"iconPath\": \"./../icons/nunjucks.svg\"\n    },\n    \"pug\": {\n      \"iconPath\": \"./../icons/pug.svg\"\n    },\n    \"robot\": {\n      \"iconPath\": \"./../icons/robot.svg\"\n    },\n    \"sass\": {\n      \"iconPath\": \"./../icons/sass.svg\"\n    },\n    \"less\": {\n      \"iconPath\": \"./../icons/less.svg\"\n    },\n    \"css\": {\n      \"iconPath\": \"./../icons/css.svg\"\n    },\n    \"visualstudio\": {\n      \"iconPath\": \"./../icons/visualstudio.svg\"\n    },\n    \"angular\": {\n      \"iconPath\": \"./../icons/angular.svg\"\n    },\n    \"graphql\": {\n      \"iconPath\": \"./../icons/graphql.svg\"\n    },\n    \"solidity\": {\n      \"iconPath\": \"./../icons/solidity.svg\"\n    },\n    \"autoit\": {\n      \"iconPath\": \"./../icons/autoit.svg\"\n    },\n    \"haml\": {\n      \"iconPath\": \"./../icons/haml.svg\"\n    },\n    \"yang\": {\n      \"iconPath\": \"./../icons/yang.svg\"\n    },\n    \"terraform\": {\n      \"iconPath\": \"./../icons/terraform.svg\"\n    },\n    \"applescript\": {\n      \"iconPath\": \"./../icons/applescript.svg\"\n    },\n    \"cake\": {\n      \"iconPath\": \"./../icons/cake.svg\"\n    },\n    \"cucumber\": {\n      \"iconPath\": \"./../icons/cucumber.svg\"\n    },\n    \"nim\": {\n      \"iconPath\": \"./../icons/nim.svg\"\n    },\n    \"apiblueprint\": {\n      \"iconPath\": \"./../icons/apiblueprint.svg\"\n    },\n    \"riot\": {\n      \"iconPath\": \"./../icons/riot.svg\"\n    },\n    \"postcss\": {\n      \"iconPath\": \"./../icons/postcss.svg\"\n    },\n    \"coldfusion\": {\n      \"iconPath\": \"./../icons/coldfusion.svg\"\n    },\n    \"haskell\": {\n      \"iconPath\": \"./../icons/haskell.svg\"\n    },\n    \"dhall\": {\n      \"iconPath\": \"./../icons/dhall.svg\"\n    },\n    \"cabal\": {\n      \"iconPath\": \"./../icons/cabal.svg\"\n    },\n    \"nix\": {\n      \"iconPath\": \"./../icons/nix.svg\"\n    },\n    \"ruby\": {\n      \"iconPath\": \"./../icons/ruby.svg\"\n    },\n    \"slim\": {\n      \"iconPath\": \"./../icons/slim.svg\"\n    },\n    \"php\": {\n      \"iconPath\": \"./../icons/php.svg\"\n    },\n    \"php_elephant\": {\n      \"iconPath\": \"./../icons/php_elephant.svg\"\n    },\n    \"php_elephant_pink\": {\n      \"iconPath\": \"./../icons/php_elephant_pink.svg\"\n    },\n    \"hack\": {\n      \"iconPath\": \"./../icons/hack.svg\"\n    },\n    \"react\": {\n      \"iconPath\": \"./../icons/react.svg\"\n    },\n    \"mjml\": {\n      \"iconPath\": \"./../icons/mjml.svg\"\n    },\n    \"processing\": {\n      \"iconPath\": \"./../icons/processing.svg\"\n    },\n    \"hcl\": {\n      \"iconPath\": \"./../icons/hcl.svg\"\n    },\n    \"go\": {\n      \"iconPath\": \"./../icons/go.svg\"\n    },\n    \"go_gopher\": {\n      \"iconPath\": \"./../icons/go_gopher.svg\"\n    },\n    \"nodejs_alt\": {\n      \"iconPath\": \"./../icons/nodejs_alt.svg\"\n    },\n    \"django\": {\n      \"iconPath\": \"./../icons/django.svg\"\n    },\n    \"html\": {\n      \"iconPath\": \"./../icons/html.svg\"\n    },\n    \"godot\": {\n      \"iconPath\": \"./../icons/godot.svg\"\n    },\n    \"godot-assets\": {\n      \"iconPath\": \"./../icons/godot-assets.svg\"\n    },\n    \"vim\": {\n      \"iconPath\": \"./../icons/vim.svg\"\n    },\n    \"silverstripe\": {\n      \"iconPath\": \"./../icons/silverstripe.svg\"\n    },\n    \"prolog\": {\n      \"iconPath\": \"./../icons/prolog.svg\"\n    },\n    \"pawn\": {\n      \"iconPath\": \"./../icons/pawn.svg\"\n    },\n    \"reason\": {\n      \"iconPath\": \"./../icons/reason.svg\"\n    },\n    \"sml\": {\n      \"iconPath\": \"./../icons/sml.svg\"\n    },\n    \"tex\": {\n      \"iconPath\": \"./../icons/tex.svg\"\n    },\n    \"salesforce\": {\n      \"iconPath\": \"./../icons/salesforce.svg\"\n    },\n    \"sas\": {\n      \"iconPath\": \"./../icons/sas.svg\"\n    },\n    \"docker\": {\n      \"iconPath\": \"./../icons/docker.svg\"\n    },\n    \"table\": {\n      \"iconPath\": \"./../icons/table.svg\"\n    },\n    \"csharp\": {\n      \"iconPath\": \"./../icons/csharp.svg\"\n    },\n    \"console\": {\n      \"iconPath\": \"./../icons/console.svg\"\n    },\n    \"c\": {\n      \"iconPath\": \"./../icons/c.svg\"\n    },\n    \"cpp\": {\n      \"iconPath\": \"./../icons/cpp.svg\"\n    },\n    \"objective-c\": {\n      \"iconPath\": \"./../icons/objective-c.svg\"\n    },\n    \"objective-cpp\": {\n      \"iconPath\": \"./../icons/objective-cpp.svg\"\n    },\n    \"coffee\": {\n      \"iconPath\": \"./../icons/coffee.svg\"\n    },\n    \"fsharp\": {\n      \"iconPath\": \"./../icons/fsharp.svg\"\n    },\n    \"editorconfig\": {\n      \"iconPath\": \"./../icons/editorconfig.svg\"\n    },\n    \"clojure\": {\n      \"iconPath\": \"./../icons/clojure.svg\"\n    },\n    \"groovy\": {\n      \"iconPath\": \"./../icons/groovy.svg\"\n    },\n    \"markdown\": {\n      \"iconPath\": \"./../icons/markdown.svg\"\n    },\n    \"jinja\": {\n      \"iconPath\": \"./../icons/jinja.svg\"\n    },\n    \"proto\": {\n      \"iconPath\": \"./../icons/proto.svg\"\n    },\n    \"python-misc\": {\n      \"iconPath\": \"./../icons/python-misc.svg\"\n    },\n    \"vue\": {\n      \"iconPath\": \"./../icons/vue.svg\"\n    },\n    \"lua\": {\n      \"iconPath\": \"./../icons/lua.svg\"\n    },\n    \"lib\": {\n      \"iconPath\": \"./../icons/lib.svg\"\n    },\n    \"log\": {\n      \"iconPath\": \"./../icons/log.svg\"\n    },\n    \"jupyter\": {\n      \"iconPath\": \"./../icons/jupyter.svg\"\n    },\n    \"document\": {\n      \"iconPath\": \"./../icons/document.svg\"\n    },\n    \"pdf\": {\n      \"iconPath\": \"./../icons/pdf.svg\"\n    },\n    \"powershell\": {\n      \"iconPath\": \"./../icons/powershell.svg\"\n    },\n    \"r\": {\n      \"iconPath\": \"./../icons/r.svg\"\n    },\n    \"rust\": {\n      \"iconPath\": \"./../icons/rust.svg\"\n    },\n    \"database\": {\n      \"iconPath\": \"./../icons/database.svg\"\n    },\n    \"kusto\": {\n      \"iconPath\": \"./../icons/kusto.svg\"\n    },\n    \"lock\": {\n      \"iconPath\": \"./../icons/lock.svg\"\n    },\n    \"svg\": {\n      \"iconPath\": \"./../icons/svg.svg\"\n    },\n    \"swift\": {\n      \"iconPath\": \"./../icons/swift.svg\"\n    },\n    \"react_ts\": {\n      \"iconPath\": \"./../icons/react_ts.svg\"\n    },\n    \"search\": {\n      \"iconPath\": \"./../icons/search.svg\"\n    },\n    \"minecraft\": {\n      \"iconPath\": \"./../icons/minecraft.svg\"\n    },\n    \"rescript\": {\n      \"iconPath\": \"./../icons/rescript.svg\"\n    },\n    \"otne\": {\n      \"iconPath\": \"./../icons/otne.svg\"\n    },\n    \"twine\": {\n      \"iconPath\": \"./../icons/twine.svg\"\n    },\n    \"grain\": {\n      \"iconPath\": \"./../icons/grain.svg\"\n    },\n    \"lolcode\": {\n      \"iconPath\": \"./../icons/lolcode.svg\"\n    },\n    \"idris\": {\n      \"iconPath\": \"./../icons/idris.svg\"\n    },\n    \"chess\": {\n      \"iconPath\": \"./../icons/chess.svg\"\n    },\n    \"gemini\": {\n      \"iconPath\": \"./../icons/gemini.svg\"\n    },\n    \"vlang\": {\n      \"iconPath\": \"./../icons/vlang.svg\"\n    },\n    \"wolframlanguage\": {\n      \"iconPath\": \"./../icons/wolframlanguage.svg\"\n    },\n    \"shader\": {\n      \"iconPath\": \"./../icons/shader.svg\"\n    },\n    \"tree\": {\n      \"iconPath\": \"./../icons/tree.svg\"\n    },\n    \"svelte\": {\n      \"iconPath\": \"./../icons/svelte.svg\"\n    },\n    \"dart\": {\n      \"iconPath\": \"./../icons/dart.svg\"\n    },\n    \"cadence\": {\n      \"iconPath\": \"./../icons/cadence.svg\"\n    },\n    \"stylable\": {\n      \"iconPath\": \"./../icons/stylable.svg\"\n    },\n    \"blink_light\": {\n      \"iconPath\": \"./../icons/blink_light.svg\"\n    },\n    \"jinja_light\": {\n      \"iconPath\": \"./../icons/jinja_light.svg\"\n    },\n    \"playwright\": {\n      \"iconPath\": \"./../icons/playwright.svg\"\n    },\n    \"sublime\": {\n      \"iconPath\": \"./../icons/sublime.svg\"\n    },\n    \"image\": {\n      \"iconPath\": \"./../icons/image.svg\"\n    },\n    \"routing\": {\n      \"iconPath\": \"./../icons/routing.svg\"\n    },\n    \"typescript-def\": {\n      \"iconPath\": \"./../icons/typescript-def.svg\"\n    },\n    \"markojs\": {\n      \"iconPath\": \"./../icons/markojs.svg\"\n    },\n    \"astro\": {\n      \"iconPath\": \"./../icons/astro.svg\"\n    },\n    \"vscode\": {\n      \"iconPath\": \"./../icons/vscode.svg\"\n    },\n    \"qsharp\": {\n      \"iconPath\": \"./../icons/qsharp.svg\"\n    },\n    \"zip\": {\n      \"iconPath\": \"./../icons/zip.svg\"\n    },\n    \"vala\": {\n      \"iconPath\": \"./../icons/vala.svg\"\n    },\n    \"zig\": {\n      \"iconPath\": \"./../icons/zig.svg\"\n    },\n    \"exe\": {\n      \"iconPath\": \"./../icons/exe.svg\"\n    },\n    \"hex\": {\n      \"iconPath\": \"./../icons/hex.svg\"\n    },\n    \"jar\": {\n      \"iconPath\": \"./../icons/jar.svg\"\n    },\n    \"javaclass\": {\n      \"iconPath\": \"./../icons/javaclass.svg\"\n    },\n    \"h\": {\n      \"iconPath\": \"./../icons/h.svg\"\n    },\n    \"hpp\": {\n      \"iconPath\": \"./../icons/hpp.svg\"\n    },\n    \"rc\": {\n      \"iconPath\": \"./../icons/rc.svg\"\n    },\n    \"go-mod\": {\n      \"iconPath\": \"./../icons/go-mod.svg\"\n    },\n    \"url\": {\n      \"iconPath\": \"./../icons/url.svg\"\n    },\n    \"gradle\": {\n      \"iconPath\": \"./../icons/gradle.svg\"\n    },\n    \"word\": {\n      \"iconPath\": \"./../icons/word.svg\"\n    },\n    \"certificate\": {\n      \"iconPath\": \"./../icons/certificate.svg\"\n    },\n    \"key\": {\n      \"iconPath\": \"./../icons/key.svg\"\n    },\n    \"font\": {\n      \"iconPath\": \"./../icons/font.svg\"\n    },\n    \"gemfile\": {\n      \"iconPath\": \"./../icons/gemfile.svg\"\n    },\n    \"rubocop\": {\n      \"iconPath\": \"./../icons/rubocop.svg\"\n    },\n    \"rubocop_light\": {\n      \"iconPath\": \"./../icons/rubocop_light.svg\"\n    },\n    \"arduino\": {\n      \"iconPath\": \"./../icons/arduino.svg\"\n    },\n    \"powerpoint\": {\n      \"iconPath\": \"./../icons/powerpoint.svg\"\n    },\n    \"video\": {\n      \"iconPath\": \"./../icons/video.svg\"\n    },\n    \"virtual\": {\n      \"iconPath\": \"./../icons/virtual.svg\"\n    },\n    \"email\": {\n      \"iconPath\": \"./../icons/email.svg\"\n    },\n    \"audio\": {\n      \"iconPath\": \"./../icons/audio.svg\"\n    },\n    \"raml\": {\n      \"iconPath\": \"./../icons/raml.svg\"\n    },\n    \"xaml\": {\n      \"iconPath\": \"./../icons/xaml.svg\"\n    },\n    \"kotlin\": {\n      \"iconPath\": \"./../icons/kotlin.svg\"\n    },\n    \"dart_generated\": {\n      \"iconPath\": \"./../icons/dart_generated.svg\"\n    },\n    \"actionscript\": {\n      \"iconPath\": \"./../icons/actionscript.svg\"\n    },\n    \"mxml\": {\n      \"iconPath\": \"./../icons/mxml.svg\"\n    },\n    \"autohotkey\": {\n      \"iconPath\": \"./../icons/autohotkey.svg\"\n    },\n    \"flash\": {\n      \"iconPath\": \"./../icons/flash.svg\"\n    },\n    \"swc\": {\n      \"iconPath\": \"./../icons/swc.svg\"\n    },\n    \"cmake\": {\n      \"iconPath\": \"./../icons/cmake.svg\"\n    },\n    \"assembly\": {\n      \"iconPath\": \"./../icons/assembly.svg\"\n    },\n    \"vue-config\": {\n      \"iconPath\": \"./../icons/vue-config.svg\"\n    },\n    \"nuxt\": {\n      \"iconPath\": \"./../icons/nuxt.svg\"\n    },\n    \"ocaml\": {\n      \"iconPath\": \"./../icons/ocaml.svg\"\n    },\n    \"odin\": {\n      \"iconPath\": \"./../icons/odin.svg\"\n    },\n    \"javascript-map\": {\n      \"iconPath\": \"./../icons/javascript-map.svg\"\n    },\n    \"css-map\": {\n      \"iconPath\": \"./../icons/css-map.svg\"\n    },\n    \"test-ts\": {\n      \"iconPath\": \"./../icons/test-ts.svg\"\n    },\n    \"test-jsx\": {\n      \"iconPath\": \"./../icons/test-jsx.svg\"\n    },\n    \"test-js\": {\n      \"iconPath\": \"./../icons/test-js.svg\"\n    },\n    \"angular-component\": {\n      \"iconPath\": \"./../icons/angular-component.svg\"\n    },\n    \"angular-guard\": {\n      \"iconPath\": \"./../icons/angular-guard.svg\"\n    },\n    \"angular-service\": {\n      \"iconPath\": \"./../icons/angular-service.svg\"\n    },\n    \"angular-pipe\": {\n      \"iconPath\": \"./../icons/angular-pipe.svg\"\n    },\n    \"angular-directive\": {\n      \"iconPath\": \"./../icons/angular-directive.svg\"\n    },\n    \"angular-resolver\": {\n      \"iconPath\": \"./../icons/angular-resolver.svg\"\n    },\n    \"smarty\": {\n      \"iconPath\": \"./../icons/smarty.svg\"\n    },\n    \"bucklescript\": {\n      \"iconPath\": \"./../icons/bucklescript.svg\"\n    },\n    \"merlin\": {\n      \"iconPath\": \"./../icons/merlin.svg\"\n    },\n    \"verilog\": {\n      \"iconPath\": \"./../icons/verilog.svg\"\n    },\n    \"mathematica\": {\n      \"iconPath\": \"./../icons/mathematica.svg\"\n    },\n    \"vercel\": {\n      \"iconPath\": \"./../icons/vercel.svg\"\n    },\n    \"vercel_light\": {\n      \"iconPath\": \"./../icons/vercel_light.svg\"\n    },\n    \"verdaccio\": {\n      \"iconPath\": \"./../icons/verdaccio.svg\"\n    },\n    \"next\": {\n      \"iconPath\": \"./../icons/next.svg\"\n    },\n    \"next_light\": {\n      \"iconPath\": \"./../icons/next_light.svg\"\n    },\n    \"remix\": {\n      \"iconPath\": \"./../icons/remix.svg\"\n    },\n    \"remix_light\": {\n      \"iconPath\": \"./../icons/remix_light.svg\"\n    },\n    \"laravel\": {\n      \"iconPath\": \"./../icons/laravel.svg\"\n    },\n    \"vfl\": {\n      \"iconPath\": \"./../icons/vfl.svg\"\n    },\n    \"kl\": {\n      \"iconPath\": \"./../icons/kl.svg\"\n    },\n    \"posthtml\": {\n      \"iconPath\": \"./../icons/posthtml.svg\"\n    },\n    \"todo\": {\n      \"iconPath\": \"./../icons/todo.svg\"\n    },\n    \"http\": {\n      \"iconPath\": \"./../icons/http.svg\"\n    },\n    \"restql\": {\n      \"iconPath\": \"./../icons/restql.svg\"\n    },\n    \"kivy\": {\n      \"iconPath\": \"./../icons/kivy.svg\"\n    },\n    \"graphcool\": {\n      \"iconPath\": \"./../icons/graphcool.svg\"\n    },\n    \"sbt\": {\n      \"iconPath\": \"./../icons/sbt.svg\"\n    },\n    \"webpack\": {\n      \"iconPath\": \"./../icons/webpack.svg\"\n    },\n    \"ionic\": {\n      \"iconPath\": \"./../icons/ionic.svg\"\n    },\n    \"gulp\": {\n      \"iconPath\": \"./../icons/gulp.svg\"\n    },\n    \"nodejs\": {\n      \"iconPath\": \"./../icons/nodejs.svg\"\n    },\n    \"npm\": {\n      \"iconPath\": \"./../icons/npm.svg\"\n    },\n    \"yarn\": {\n      \"iconPath\": \"./../icons/yarn.svg\"\n    },\n    \"android\": {\n      \"iconPath\": \"./../icons/android.svg\"\n    },\n    \"tune\": {\n      \"iconPath\": \"./../icons/tune.svg\"\n    },\n    \"turborepo\": {\n      \"iconPath\": \"./../icons/turborepo.svg\"\n    },\n    \"turborepo_light\": {\n      \"iconPath\": \"./../icons/turborepo_light.svg\"\n    },\n    \"babel\": {\n      \"iconPath\": \"./../icons/babel.svg\"\n    },\n    \"blitz\": {\n      \"iconPath\": \"./../icons/blitz.svg\"\n    },\n    \"contributing\": {\n      \"iconPath\": \"./../icons/contributing.svg\"\n    },\n    \"readme\": {\n      \"iconPath\": \"./../icons/readme.svg\"\n    },\n    \"changelog\": {\n      \"iconPath\": \"./../icons/changelog.svg\"\n    },\n    \"architecture\": {\n      \"iconPath\": \"./../icons/architecture.svg\"\n    },\n    \"credits\": {\n      \"iconPath\": \"./../icons/credits.svg\"\n    },\n    \"authors\": {\n      \"iconPath\": \"./../icons/authors.svg\"\n    },\n    \"flow\": {\n      \"iconPath\": \"./../icons/flow.svg\"\n    },\n    \"favicon\": {\n      \"iconPath\": \"./../icons/favicon.svg\"\n    },\n    \"karma\": {\n      \"iconPath\": \"./../icons/karma.svg\"\n    },\n    \"bithound\": {\n      \"iconPath\": \"./../icons/bithound.svg\"\n    },\n    \"svgo\": {\n      \"iconPath\": \"./../icons/svgo.svg\"\n    },\n    \"appveyor\": {\n      \"iconPath\": \"./../icons/appveyor.svg\"\n    },\n    \"travis\": {\n      \"iconPath\": \"./../icons/travis.svg\"\n    },\n    \"codecov\": {\n      \"iconPath\": \"./../icons/codecov.svg\"\n    },\n    \"sonarcloud\": {\n      \"iconPath\": \"./../icons/sonarcloud.svg\"\n    },\n    \"protractor\": {\n      \"iconPath\": \"./../icons/protractor.svg\"\n    },\n    \"fusebox\": {\n      \"iconPath\": \"./../icons/fusebox.svg\"\n    },\n    \"heroku\": {\n      \"iconPath\": \"./../icons/heroku.svg\"\n    },\n    \"gitlab\": {\n      \"iconPath\": \"./../icons/gitlab.svg\"\n    },\n    \"bower\": {\n      \"iconPath\": \"./../icons/bower.svg\"\n    },\n    \"eslint\": {\n      \"iconPath\": \"./../icons/eslint.svg\"\n    },\n    \"conduct\": {\n      \"iconPath\": \"./../icons/conduct.svg\"\n    },\n    \"watchman\": {\n      \"iconPath\": \"./../icons/watchman.svg\"\n    },\n    \"aurelia\": {\n      \"iconPath\": \"./../icons/aurelia.svg\"\n    },\n    \"auto\": {\n      \"iconPath\": \"./../icons/auto.svg\"\n    },\n    \"auto_light\": {\n      \"iconPath\": \"./../icons/auto_light.svg\"\n    },\n    \"mocha\": {\n      \"iconPath\": \"./../icons/mocha.svg\"\n    },\n    \"jenkins\": {\n      \"iconPath\": \"./../icons/jenkins.svg\"\n    },\n    \"firebase\": {\n      \"iconPath\": \"./../icons/firebase.svg\"\n    },\n    \"figma\": {\n      \"iconPath\": \"./../icons/figma.svg\"\n    },\n    \"rollup\": {\n      \"iconPath\": \"./../icons/rollup.svg\"\n    },\n    \"hardhat\": {\n      \"iconPath\": \"./../icons/hardhat.svg\"\n    },\n    \"stylelint\": {\n      \"iconPath\": \"./../icons/stylelint.svg\"\n    },\n    \"stylelint_light\": {\n      \"iconPath\": \"./../icons/stylelint_light.svg\"\n    },\n    \"code-climate\": {\n      \"iconPath\": \"./../icons/code-climate.svg\"\n    },\n    \"code-climate_light\": {\n      \"iconPath\": \"./../icons/code-climate_light.svg\"\n    },\n    \"prettier\": {\n      \"iconPath\": \"./../icons/prettier.svg\"\n    },\n    \"renovate\": {\n      \"iconPath\": \"./../icons/renovate.svg\"\n    },\n    \"apollo\": {\n      \"iconPath\": \"./../icons/apollo.svg\"\n    },\n    \"nodemon\": {\n      \"iconPath\": \"./../icons/nodemon.svg\"\n    },\n    \"webhint\": {\n      \"iconPath\": \"./../icons/webhint.svg\"\n    },\n    \"browserlist\": {\n      \"iconPath\": \"./../icons/browserlist.svg\"\n    },\n    \"browserlist_light\": {\n      \"iconPath\": \"./../icons/browserlist_light.svg\"\n    },\n    \"crystal\": {\n      \"iconPath\": \"./../icons/crystal.svg\"\n    },\n    \"crystal_light\": {\n      \"iconPath\": \"./../icons/crystal_light.svg\"\n    },\n    \"snyk\": {\n      \"iconPath\": \"./../icons/snyk.svg\"\n    },\n    \"drone\": {\n      \"iconPath\": \"./../icons/drone.svg\"\n    },\n    \"drone_light\": {\n      \"iconPath\": \"./../icons/drone_light.svg\"\n    },\n    \"cuda\": {\n      \"iconPath\": \"./../icons/cuda.svg\"\n    },\n    \"dotjs\": {\n      \"iconPath\": \"./../icons/dotjs.svg\"\n    },\n    \"ejs\": {\n      \"iconPath\": \"./../icons/ejs.svg\"\n    },\n    \"sequelize\": {\n      \"iconPath\": \"./../icons/sequelize.svg\"\n    },\n    \"gatsby\": {\n      \"iconPath\": \"./../icons/gatsby.svg\"\n    },\n    \"wakatime\": {\n      \"iconPath\": \"./../icons/wakatime.svg\"\n    },\n    \"wakatime_light\": {\n      \"iconPath\": \"./../icons/wakatime_light.svg\"\n    },\n    \"circleci\": {\n      \"iconPath\": \"./../icons/circleci.svg\"\n    },\n    \"circleci_light\": {\n      \"iconPath\": \"./../icons/circleci_light.svg\"\n    },\n    \"cloudfoundry\": {\n      \"iconPath\": \"./../icons/cloudfoundry.svg\"\n    },\n    \"grunt\": {\n      \"iconPath\": \"./../icons/grunt.svg\"\n    },\n    \"jest\": {\n      \"iconPath\": \"./../icons/jest.svg\"\n    },\n    \"storybook\": {\n      \"iconPath\": \"./../icons/storybook.svg\"\n    },\n    \"wepy\": {\n      \"iconPath\": \"./../icons/wepy.svg\"\n    },\n    \"fastlane\": {\n      \"iconPath\": \"./../icons/fastlane.svg\"\n    },\n    \"hcl_light\": {\n      \"iconPath\": \"./../icons/hcl_light.svg\"\n    },\n    \"helm\": {\n      \"iconPath\": \"./../icons/helm.svg\"\n    },\n    \"san\": {\n      \"iconPath\": \"./../icons/san.svg\"\n    },\n    \"wallaby\": {\n      \"iconPath\": \"./../icons/wallaby.svg\"\n    },\n    \"stencil\": {\n      \"iconPath\": \"./../icons/stencil.svg\"\n    },\n    \"red\": {\n      \"iconPath\": \"./../icons/red.svg\"\n    },\n    \"makefile\": {\n      \"iconPath\": \"./../icons/makefile.svg\"\n    },\n    \"foxpro\": {\n      \"iconPath\": \"./../icons/foxpro.svg\"\n    },\n    \"i18n\": {\n      \"iconPath\": \"./../icons/i18n.svg\"\n    },\n    \"webassembly\": {\n      \"iconPath\": \"./../icons/webassembly.svg\"\n    },\n    \"semantic-release\": {\n      \"iconPath\": \"./../icons/semantic-release.svg\"\n    },\n    \"semantic-release_light\": {\n      \"iconPath\": \"./../icons/semantic-release_light.svg\"\n    },\n    \"bitbucket\": {\n      \"iconPath\": \"./../icons/bitbucket.svg\"\n    },\n    \"d\": {\n      \"iconPath\": \"./../icons/d.svg\"\n    },\n    \"mdx\": {\n      \"iconPath\": \"./../icons/mdx.svg\"\n    },\n    \"mdsvex\": {\n      \"iconPath\": \"./../icons/mdsvex.svg\"\n    },\n    \"ballerina\": {\n      \"iconPath\": \"./../icons/ballerina.svg\"\n    },\n    \"racket\": {\n      \"iconPath\": \"./../icons/racket.svg\"\n    },\n    \"bazel\": {\n      \"iconPath\": \"./../icons/bazel.svg\"\n    },\n    \"mint\": {\n      \"iconPath\": \"./../icons/mint.svg\"\n    },\n    \"velocity\": {\n      \"iconPath\": \"./../icons/velocity.svg\"\n    },\n    \"azure-pipelines\": {\n      \"iconPath\": \"./../icons/azure-pipelines.svg\"\n    },\n    \"azure\": {\n      \"iconPath\": \"./../icons/azure.svg\"\n    },\n    \"vagrant\": {\n      \"iconPath\": \"./../icons/vagrant.svg\"\n    },\n    \"prisma\": {\n      \"iconPath\": \"./../icons/prisma.svg\"\n    },\n    \"abc\": {\n      \"iconPath\": \"./../icons/abc.svg\"\n    },\n    \"asciidoc\": {\n      \"iconPath\": \"./../icons/asciidoc.svg\"\n    },\n    \"istanbul\": {\n      \"iconPath\": \"./../icons/istanbul.svg\"\n    },\n    \"edge\": {\n      \"iconPath\": \"./../icons/edge.svg\"\n    },\n    \"scheme\": {\n      \"iconPath\": \"./../icons/scheme.svg\"\n    },\n    \"lisp\": {\n      \"iconPath\": \"./../icons/lisp.svg\"\n    },\n    \"tailwindcss\": {\n      \"iconPath\": \"./../icons/tailwindcss.svg\"\n    },\n    \"3d\": {\n      \"iconPath\": \"./../icons/3d.svg\"\n    },\n    \"buildkite\": {\n      \"iconPath\": \"./../icons/buildkite.svg\"\n    },\n    \"netlify\": {\n      \"iconPath\": \"./../icons/netlify.svg\"\n    },\n    \"netlify_light\": {\n      \"iconPath\": \"./../icons/netlify_light.svg\"\n    },\n    \"nest\": {\n      \"iconPath\": \"./../icons/nest.svg\"\n    },\n    \"moonscript\": {\n      \"iconPath\": \"./../icons/moonscript.svg\"\n    },\n    \"percy\": {\n      \"iconPath\": \"./../icons/percy.svg\"\n    },\n    \"gitpod\": {\n      \"iconPath\": \"./../icons/gitpod.svg\"\n    },\n    \"advpl_prw\": {\n      \"iconPath\": \"./../icons/advpl_prw.svg\"\n    },\n    \"advpl_ptm\": {\n      \"iconPath\": \"./../icons/advpl_ptm.svg\"\n    },\n    \"advpl_tlpp\": {\n      \"iconPath\": \"./../icons/advpl_tlpp.svg\"\n    },\n    \"advpl_include\": {\n      \"iconPath\": \"./../icons/advpl_include.svg\"\n    },\n    \"codeowners\": {\n      \"iconPath\": \"./../icons/codeowners.svg\"\n    },\n    \"gcp\": {\n      \"iconPath\": \"./../icons/gcp.svg\"\n    },\n    \"disc\": {\n      \"iconPath\": \"./../icons/disc.svg\"\n    },\n    \"fortran\": {\n      \"iconPath\": \"./../icons/fortran.svg\"\n    },\n    \"tcl\": {\n      \"iconPath\": \"./../icons/tcl.svg\"\n    },\n    \"liquid\": {\n      \"iconPath\": \"./../icons/liquid.svg\"\n    },\n    \"husky\": {\n      \"iconPath\": \"./../icons/husky.svg\"\n    },\n    \"coconut\": {\n      \"iconPath\": \"./../icons/coconut.svg\"\n    },\n    \"tilt\": {\n      \"iconPath\": \"./../icons/tilt.svg\"\n    },\n    \"capacitor\": {\n      \"iconPath\": \"./../icons/capacitor.svg\"\n    },\n    \"sketch\": {\n      \"iconPath\": \"./../icons/sketch.svg\"\n    },\n    \"adonis\": {\n      \"iconPath\": \"./../icons/adonis.svg\"\n    },\n    \"forth\": {\n      \"iconPath\": \"./../icons/forth.svg\"\n    },\n    \"uml\": {\n      \"iconPath\": \"./../icons/uml.svg\"\n    },\n    \"uml_light\": {\n      \"iconPath\": \"./../icons/uml_light.svg\"\n    },\n    \"meson\": {\n      \"iconPath\": \"./../icons/meson.svg\"\n    },\n    \"commitlint\": {\n      \"iconPath\": \"./../icons/commitlint.svg\"\n    },\n    \"buck\": {\n      \"iconPath\": \"./../icons/buck.svg\"\n    },\n    \"nrwl\": {\n      \"iconPath\": \"./../icons/nrwl.svg\"\n    },\n    \"opam\": {\n      \"iconPath\": \"./../icons/opam.svg\"\n    },\n    \"dune\": {\n      \"iconPath\": \"./../icons/dune.svg\"\n    },\n    \"imba\": {\n      \"iconPath\": \"./../icons/imba.svg\"\n    },\n    \"drawio\": {\n      \"iconPath\": \"./../icons/drawio.svg\"\n    },\n    \"pascal\": {\n      \"iconPath\": \"./../icons/pascal.svg\"\n    },\n    \"roadmap\": {\n      \"iconPath\": \"./../icons/roadmap.svg\"\n    },\n    \"nuget\": {\n      \"iconPath\": \"./../icons/nuget.svg\"\n    },\n    \"command\": {\n      \"iconPath\": \"./../icons/command.svg\"\n    },\n    \"stryker\": {\n      \"iconPath\": \"./../icons/stryker.svg\"\n    },\n    \"denizenscript\": {\n      \"iconPath\": \"./../icons/denizenscript.svg\"\n    },\n    \"modernizr\": {\n      \"iconPath\": \"./../icons/modernizr.svg\"\n    },\n    \"slug\": {\n      \"iconPath\": \"./../icons/slug.svg\"\n    },\n    \"stitches\": {\n      \"iconPath\": \"./../icons/stitches.svg\"\n    },\n    \"stitches_light\": {\n      \"iconPath\": \"./../icons/stitches_light.svg\"\n    },\n    \"nginx\": {\n      \"iconPath\": \"./../icons/nginx.svg\"\n    },\n    \"replit\": {\n      \"iconPath\": \"./../icons/replit.svg\"\n    },\n    \"rescript-interface\": {\n      \"iconPath\": \"./../icons/rescript-interface.svg\"\n    },\n    \"snowpack\": {\n      \"iconPath\": \"./../icons/snowpack.svg\"\n    },\n    \"snowpack_light\": {\n      \"iconPath\": \"./../icons/snowpack_light.svg\"\n    },\n    \"brainfuck\": {\n      \"iconPath\": \"./../icons/brainfuck.svg\"\n    },\n    \"bicep\": {\n      \"iconPath\": \"./../icons/bicep.svg\"\n    },\n    \"cobol\": {\n      \"iconPath\": \"./../icons/cobol.svg\"\n    },\n    \"quasar\": {\n      \"iconPath\": \"./../icons/quasar.svg\"\n    },\n    \"dependabot\": {\n      \"iconPath\": \"./../icons/dependabot.svg\"\n    },\n    \"pipeline\": {\n      \"iconPath\": \"./../icons/pipeline.svg\"\n    },\n    \"vite\": {\n      \"iconPath\": \"./../icons/vite.svg\"\n    },\n    \"vitest\": {\n      \"iconPath\": \"./../icons/vitest.svg\"\n    },\n    \"opa\": {\n      \"iconPath\": \"./../icons/opa.svg\"\n    },\n    \"lerna\": {\n      \"iconPath\": \"./../icons/lerna.svg\"\n    },\n    \"windicss\": {\n      \"iconPath\": \"./../icons/windicss.svg\"\n    },\n    \"textlint\": {\n      \"iconPath\": \"./../icons/textlint.svg\"\n    },\n    \"lilypond\": {\n      \"iconPath\": \"./../icons/lilypond.svg\"\n    },\n    \"chess_light\": {\n      \"iconPath\": \"./../icons/chess_light.svg\"\n    },\n    \"sentry\": {\n      \"iconPath\": \"./../icons/sentry.svg\"\n    },\n    \"phpunit\": {\n      \"iconPath\": \"./../icons/phpunit.svg\"\n    },\n    \"php-cs-fixer\": {\n      \"iconPath\": \"./../icons/php-cs-fixer.svg\"\n    },\n    \"robots\": {\n      \"iconPath\": \"./../icons/robots.svg\"\n    },\n    \"tsconfig\": {\n      \"iconPath\": \"./../icons/tsconfig.svg\"\n    },\n    \"tauri\": {\n      \"iconPath\": \"./../icons/tauri.svg\"\n    },\n    \"jsconfig\": {\n      \"iconPath\": \"./../icons/jsconfig.svg\"\n    },\n    \"maven\": {\n      \"iconPath\": \"./../icons/maven.svg\"\n    },\n    \"ada\": {\n      \"iconPath\": \"./../icons/ada.svg\"\n    },\n    \"serverless\": {\n      \"iconPath\": \"./../icons/serverless.svg\"\n    },\n    \"supabase\": {\n      \"iconPath\": \"./../icons/supabase.svg\"\n    },\n    \"ember\": {\n      \"iconPath\": \"./../icons/ember.svg\"\n    },\n    \"horusec\": {\n      \"iconPath\": \"./../icons/horusec.svg\"\n    },\n    \"poetry\": {\n      \"iconPath\": \"./../icons/poetry.svg\"\n    },\n    \"coala\": {\n      \"iconPath\": \"./../icons/coala.svg\"\n    },\n    \"parcel\": {\n      \"iconPath\": \"./../icons/parcel.svg\"\n    },\n    \"dinophp\": {\n      \"iconPath\": \"./../icons/dinophp.svg\"\n    },\n    \"teal\": {\n      \"iconPath\": \"./../icons/teal.svg\"\n    },\n    \"template\": {\n      \"iconPath\": \"./../icons/template.svg\"\n    },\n    \"astyle\": {\n      \"iconPath\": \"./../icons/astyle.svg\"\n    },\n    \"lighthouse\": {\n      \"iconPath\": \"./../icons/lighthouse.svg\"\n    },\n    \"svgr\": {\n      \"iconPath\": \"./../icons/svgr.svg\"\n    },\n    \"rome\": {\n      \"iconPath\": \"./../icons/rome.svg\"\n    },\n    \"cypress\": {\n      \"iconPath\": \"./../icons/cypress.svg\"\n    },\n    \"siyuan\": {\n      \"iconPath\": \"./../icons/siyuan.svg\"\n    },\n    \"ndst\": {\n      \"iconPath\": \"./../icons/ndst.svg\"\n    },\n    \"plop\": {\n      \"iconPath\": \"./../icons/plop.svg\"\n    },\n    \"tobi\": {\n      \"iconPath\": \"./../icons/tobi.svg\"\n    },\n    \"tobimake\": {\n      \"iconPath\": \"./../icons/tobimake.svg\"\n    },\n    \"gleam\": {\n      \"iconPath\": \"./../icons/gleam.svg\"\n    },\n    \"pnpm\": {\n      \"iconPath\": \"./../icons/pnpm.svg\"\n    },\n    \"pnpm_light\": {\n      \"iconPath\": \"./../icons/pnpm_light.svg\"\n    },\n    \"gridsome\": {\n      \"iconPath\": \"./../icons/gridsome.svg\"\n    },\n    \"steadybit\": {\n      \"iconPath\": \"./../icons/steadybit.svg\"\n    },\n    \"caddy\": {\n      \"iconPath\": \"./../icons/caddy.svg\"\n    },\n    \"bun\": {\n      \"iconPath\": \"./../icons/bun.svg\"\n    },\n    \"bun_light\": {\n      \"iconPath\": \"./../icons/bun_light.svg\"\n    },\n    \"antlr\": {\n      \"iconPath\": \"./../icons/antlr.svg\"\n    },\n    \"pinejs\": {\n      \"iconPath\": \"./../icons/pinejs.svg\"\n    },\n    \"nano-staged\": {\n      \"iconPath\": \"./../icons/nano-staged.svg\"\n    },\n    \"nano-staged_light\": {\n      \"iconPath\": \"./../icons/nano-staged_light.svg\"\n    },\n    \"craco\": {\n      \"iconPath\": \"./../icons/craco.svg\"\n    },\n    \"gamemaker\": {\n      \"iconPath\": \"./../icons/gamemaker.svg\"\n    },\n    \"tldraw\": {\n      \"iconPath\": \"./../icons/tldraw.svg\"\n    },\n    \"tldraw_light\": {\n      \"iconPath\": \"./../icons/tldraw_light.svg\"\n    },\n    \"mercurial\": {\n      \"iconPath\": \"./../icons/mercurial.svg\"\n    },\n    \"deno\": {\n      \"iconPath\": \"./../icons/deno.svg\"\n    },\n    \"deno_light\": {\n      \"iconPath\": \"./../icons/deno_light.svg\"\n    },\n    \"plastic\": {\n      \"iconPath\": \"./../icons/plastic.svg\"\n    },\n    \"typst\": {\n      \"iconPath\": \"./../icons/typst.svg\"\n    },\n    \"ifanr-cloud\": {\n      \"iconPath\": \"./../icons/ifanr-cloud.svg\"\n    },\n    \"mermaid\": {\n      \"iconPath\": \"./../icons/mermaid.svg\"\n    },\n    \"file\": {\n      \"iconPath\": \"./../icons/file.svg\"\n    },\n    \"folder-src\": {\n      \"iconPath\": \"./../icons/folder-src.svg\"\n    },\n    \"folder-src-open\": {\n      \"iconPath\": \"./../icons/folder-src-open.svg\"\n    },\n    \"folder-dist\": {\n      \"iconPath\": \"./../icons/folder-dist.svg\"\n    },\n    \"folder-dist-open\": {\n      \"iconPath\": \"./../icons/folder-dist-open.svg\"\n    },\n    \"folder-css\": {\n      \"iconPath\": \"./../icons/folder-css.svg\"\n    },\n    \"folder-css-open\": {\n      \"iconPath\": \"./../icons/folder-css-open.svg\"\n    },\n    \"folder-sass\": {\n      \"iconPath\": \"./../icons/folder-sass.svg\"\n    },\n    \"folder-sass-open\": {\n      \"iconPath\": \"./../icons/folder-sass-open.svg\"\n    },\n    \"folder-images\": {\n      \"iconPath\": \"./../icons/folder-images.svg\"\n    },\n    \"folder-images-open\": {\n      \"iconPath\": \"./../icons/folder-images-open.svg\"\n    },\n    \"folder-scripts\": {\n      \"iconPath\": \"./../icons/folder-scripts.svg\"\n    },\n    \"folder-scripts-open\": {\n      \"iconPath\": \"./../icons/folder-scripts-open.svg\"\n    },\n    \"folder-node\": {\n      \"iconPath\": \"./../icons/folder-node.svg\"\n    },\n    \"folder-node-open\": {\n      \"iconPath\": \"./../icons/folder-node-open.svg\"\n    },\n    \"folder-javascript\": {\n      \"iconPath\": \"./../icons/folder-javascript.svg\"\n    },\n    \"folder-javascript-open\": {\n      \"iconPath\": \"./../icons/folder-javascript-open.svg\"\n    },\n    \"folder-json\": {\n      \"iconPath\": \"./../icons/folder-json.svg\"\n    },\n    \"folder-json-open\": {\n      \"iconPath\": \"./../icons/folder-json-open.svg\"\n    },\n    \"folder-font\": {\n      \"iconPath\": \"./../icons/folder-font.svg\"\n    },\n    \"folder-font-open\": {\n      \"iconPath\": \"./../icons/folder-font-open.svg\"\n    },\n    \"folder-bower\": {\n      \"iconPath\": \"./../icons/folder-bower.svg\"\n    },\n    \"folder-bower-open\": {\n      \"iconPath\": \"./../icons/folder-bower-open.svg\"\n    },\n    \"folder-test\": {\n      \"iconPath\": \"./../icons/folder-test.svg\"\n    },\n    \"folder-test-open\": {\n      \"iconPath\": \"./../icons/folder-test-open.svg\"\n    },\n    \"folder-jinja\": {\n      \"iconPath\": \"./../icons/folder-jinja.svg\"\n    },\n    \"folder-jinja-open\": {\n      \"iconPath\": \"./../icons/folder-jinja-open.svg\"\n    },\n    \"folder-jinja_light\": {\n      \"iconPath\": \"./../icons/folder-jinja_light.svg\"\n    },\n    \"folder-jinja-open_light\": {\n      \"iconPath\": \"./../icons/folder-jinja-open_light.svg\"\n    },\n    \"folder-markdown\": {\n      \"iconPath\": \"./../icons/folder-markdown.svg\"\n    },\n    \"folder-markdown-open\": {\n      \"iconPath\": \"./../icons/folder-markdown-open.svg\"\n    },\n    \"folder-php\": {\n      \"iconPath\": \"./../icons/folder-php.svg\"\n    },\n    \"folder-php-open\": {\n      \"iconPath\": \"./../icons/folder-php-open.svg\"\n    },\n    \"folder-phpmailer\": {\n      \"iconPath\": \"./../icons/folder-phpmailer.svg\"\n    },\n    \"folder-phpmailer-open\": {\n      \"iconPath\": \"./../icons/folder-phpmailer-open.svg\"\n    },\n    \"folder-sublime\": {\n      \"iconPath\": \"./../icons/folder-sublime.svg\"\n    },\n    \"folder-sublime-open\": {\n      \"iconPath\": \"./../icons/folder-sublime-open.svg\"\n    },\n    \"folder-docs\": {\n      \"iconPath\": \"./../icons/folder-docs.svg\"\n    },\n    \"folder-docs-open\": {\n      \"iconPath\": \"./../icons/folder-docs-open.svg\"\n    },\n    \"folder-git\": {\n      \"iconPath\": \"./../icons/folder-git.svg\"\n    },\n    \"folder-git-open\": {\n      \"iconPath\": \"./../icons/folder-git-open.svg\"\n    },\n    \"folder-github\": {\n      \"iconPath\": \"./../icons/folder-github.svg\"\n    },\n    \"folder-github-open\": {\n      \"iconPath\": \"./../icons/folder-github-open.svg\"\n    },\n    \"folder-gitlab\": {\n      \"iconPath\": \"./../icons/folder-gitlab.svg\"\n    },\n    \"folder-gitlab-open\": {\n      \"iconPath\": \"./../icons/folder-gitlab-open.svg\"\n    },\n    \"folder-vscode\": {\n      \"iconPath\": \"./../icons/folder-vscode.svg\"\n    },\n    \"folder-vscode-open\": {\n      \"iconPath\": \"./../icons/folder-vscode-open.svg\"\n    },\n    \"folder-views\": {\n      \"iconPath\": \"./../icons/folder-views.svg\"\n    },\n    \"folder-views-open\": {\n      \"iconPath\": \"./../icons/folder-views-open.svg\"\n    },\n    \"folder-vue\": {\n      \"iconPath\": \"./../icons/folder-vue.svg\"\n    },\n    \"folder-vue-open\": {\n      \"iconPath\": \"./../icons/folder-vue-open.svg\"\n    },\n    \"folder-vuepress\": {\n      \"iconPath\": \"./../icons/folder-vuepress.svg\"\n    },\n    \"folder-vuepress-open\": {\n      \"iconPath\": \"./../icons/folder-vuepress-open.svg\"\n    },\n    \"folder-expo\": {\n      \"iconPath\": \"./../icons/folder-expo.svg\"\n    },\n    \"folder-expo-open\": {\n      \"iconPath\": \"./../icons/folder-expo-open.svg\"\n    },\n    \"folder-config\": {\n      \"iconPath\": \"./../icons/folder-config.svg\"\n    },\n    \"folder-config-open\": {\n      \"iconPath\": \"./../icons/folder-config-open.svg\"\n    },\n    \"folder-i18n\": {\n      \"iconPath\": \"./../icons/folder-i18n.svg\"\n    },\n    \"folder-i18n-open\": {\n      \"iconPath\": \"./../icons/folder-i18n-open.svg\"\n    },\n    \"folder-components\": {\n      \"iconPath\": \"./../icons/folder-components.svg\"\n    },\n    \"folder-components-open\": {\n      \"iconPath\": \"./../icons/folder-components-open.svg\"\n    },\n    \"folder-verdaccio\": {\n      \"iconPath\": \"./../icons/folder-verdaccio.svg\"\n    },\n    \"folder-verdaccio-open\": {\n      \"iconPath\": \"./../icons/folder-verdaccio-open.svg\"\n    },\n    \"folder-aurelia\": {\n      \"iconPath\": \"./../icons/folder-aurelia.svg\"\n    },\n    \"folder-aurelia-open\": {\n      \"iconPath\": \"./../icons/folder-aurelia-open.svg\"\n    },\n    \"folder-resource\": {\n      \"iconPath\": \"./../icons/folder-resource.svg\"\n    },\n    \"folder-resource-open\": {\n      \"iconPath\": \"./../icons/folder-resource-open.svg\"\n    },\n    \"folder-lib\": {\n      \"iconPath\": \"./../icons/folder-lib.svg\"\n    },\n    \"folder-lib-open\": {\n      \"iconPath\": \"./../icons/folder-lib-open.svg\"\n    },\n    \"folder-theme\": {\n      \"iconPath\": \"./../icons/folder-theme.svg\"\n    },\n    \"folder-theme-open\": {\n      \"iconPath\": \"./../icons/folder-theme-open.svg\"\n    },\n    \"folder-webpack\": {\n      \"iconPath\": \"./../icons/folder-webpack.svg\"\n    },\n    \"folder-webpack-open\": {\n      \"iconPath\": \"./../icons/folder-webpack-open.svg\"\n    },\n    \"folder-global\": {\n      \"iconPath\": \"./../icons/folder-global.svg\"\n    },\n    \"folder-global-open\": {\n      \"iconPath\": \"./../icons/folder-global-open.svg\"\n    },\n    \"folder-public\": {\n      \"iconPath\": \"./../icons/folder-public.svg\"\n    },\n    \"folder-public-open\": {\n      \"iconPath\": \"./../icons/folder-public-open.svg\"\n    },\n    \"folder-include\": {\n      \"iconPath\": \"./../icons/folder-include.svg\"\n    },\n    \"folder-include-open\": {\n      \"iconPath\": \"./../icons/folder-include-open.svg\"\n    },\n    \"folder-docker\": {\n      \"iconPath\": \"./../icons/folder-docker.svg\"\n    },\n    \"folder-docker-open\": {\n      \"iconPath\": \"./../icons/folder-docker-open.svg\"\n    },\n    \"folder-database\": {\n      \"iconPath\": \"./../icons/folder-database.svg\"\n    },\n    \"folder-database-open\": {\n      \"iconPath\": \"./../icons/folder-database-open.svg\"\n    },\n    \"folder-log\": {\n      \"iconPath\": \"./../icons/folder-log.svg\"\n    },\n    \"folder-log-open\": {\n      \"iconPath\": \"./../icons/folder-log-open.svg\"\n    },\n    \"folder-target\": {\n      \"iconPath\": \"./../icons/folder-target.svg\"\n    },\n    \"folder-target-open\": {\n      \"iconPath\": \"./../icons/folder-target-open.svg\"\n    },\n    \"folder-temp\": {\n      \"iconPath\": \"./../icons/folder-temp.svg\"\n    },\n    \"folder-temp-open\": {\n      \"iconPath\": \"./../icons/folder-temp-open.svg\"\n    },\n    \"folder-aws\": {\n      \"iconPath\": \"./../icons/folder-aws.svg\"\n    },\n    \"folder-aws-open\": {\n      \"iconPath\": \"./../icons/folder-aws-open.svg\"\n    },\n    \"folder-audio\": {\n      \"iconPath\": \"./../icons/folder-audio.svg\"\n    },\n    \"folder-audio-open\": {\n      \"iconPath\": \"./../icons/folder-audio-open.svg\"\n    },\n    \"folder-video\": {\n      \"iconPath\": \"./../icons/folder-video.svg\"\n    },\n    \"folder-video-open\": {\n      \"iconPath\": \"./../icons/folder-video-open.svg\"\n    },\n    \"folder-kubernetes\": {\n      \"iconPath\": \"./../icons/folder-kubernetes.svg\"\n    },\n    \"folder-kubernetes-open\": {\n      \"iconPath\": \"./../icons/folder-kubernetes-open.svg\"\n    },\n    \"folder-import\": {\n      \"iconPath\": \"./../icons/folder-import.svg\"\n    },\n    \"folder-import-open\": {\n      \"iconPath\": \"./../icons/folder-import-open.svg\"\n    },\n    \"folder-export\": {\n      \"iconPath\": \"./../icons/folder-export.svg\"\n    },\n    \"folder-export-open\": {\n      \"iconPath\": \"./../icons/folder-export-open.svg\"\n    },\n    \"folder-wakatime\": {\n      \"iconPath\": \"./../icons/folder-wakatime.svg\"\n    },\n    \"folder-wakatime-open\": {\n      \"iconPath\": \"./../icons/folder-wakatime-open.svg\"\n    },\n    \"folder-circleci\": {\n      \"iconPath\": \"./../icons/folder-circleci.svg\"\n    },\n    \"folder-circleci-open\": {\n      \"iconPath\": \"./../icons/folder-circleci-open.svg\"\n    },\n    \"folder-wordpress\": {\n      \"iconPath\": \"./../icons/folder-wordpress.svg\"\n    },\n    \"folder-wordpress-open\": {\n      \"iconPath\": \"./../icons/folder-wordpress-open.svg\"\n    },\n    \"folder-gradle\": {\n      \"iconPath\": \"./../icons/folder-gradle.svg\"\n    },\n    \"folder-gradle-open\": {\n      \"iconPath\": \"./../icons/folder-gradle-open.svg\"\n    },\n    \"folder-coverage\": {\n      \"iconPath\": \"./../icons/folder-coverage.svg\"\n    },\n    \"folder-coverage-open\": {\n      \"iconPath\": \"./../icons/folder-coverage-open.svg\"\n    },\n    \"folder-class\": {\n      \"iconPath\": \"./../icons/folder-class.svg\"\n    },\n    \"folder-class-open\": {\n      \"iconPath\": \"./../icons/folder-class-open.svg\"\n    },\n    \"folder-other\": {\n      \"iconPath\": \"./../icons/folder-other.svg\"\n    },\n    \"folder-other-open\": {\n      \"iconPath\": \"./../icons/folder-other-open.svg\"\n    },\n    \"folder-lua\": {\n      \"iconPath\": \"./../icons/folder-lua.svg\"\n    },\n    \"folder-lua-open\": {\n      \"iconPath\": \"./../icons/folder-lua-open.svg\"\n    },\n    \"folder-typescript\": {\n      \"iconPath\": \"./../icons/folder-typescript.svg\"\n    },\n    \"folder-typescript-open\": {\n      \"iconPath\": \"./../icons/folder-typescript-open.svg\"\n    },\n    \"folder-graphql\": {\n      \"iconPath\": \"./../icons/folder-graphql.svg\"\n    },\n    \"folder-graphql-open\": {\n      \"iconPath\": \"./../icons/folder-graphql-open.svg\"\n    },\n    \"folder-routes\": {\n      \"iconPath\": \"./../icons/folder-routes.svg\"\n    },\n    \"folder-routes-open\": {\n      \"iconPath\": \"./../icons/folder-routes-open.svg\"\n    },\n    \"folder-ci\": {\n      \"iconPath\": \"./../icons/folder-ci.svg\"\n    },\n    \"folder-ci-open\": {\n      \"iconPath\": \"./../icons/folder-ci-open.svg\"\n    },\n    \"folder-benchmark\": {\n      \"iconPath\": \"./../icons/folder-benchmark.svg\"\n    },\n    \"folder-benchmark-open\": {\n      \"iconPath\": \"./../icons/folder-benchmark-open.svg\"\n    },\n    \"folder-messages\": {\n      \"iconPath\": \"./../icons/folder-messages.svg\"\n    },\n    \"folder-messages-open\": {\n      \"iconPath\": \"./../icons/folder-messages-open.svg\"\n    },\n    \"folder-less\": {\n      \"iconPath\": \"./../icons/folder-less.svg\"\n    },\n    \"folder-less-open\": {\n      \"iconPath\": \"./../icons/folder-less-open.svg\"\n    },\n    \"folder-gulp\": {\n      \"iconPath\": \"./../icons/folder-gulp.svg\"\n    },\n    \"folder-gulp-open\": {\n      \"iconPath\": \"./../icons/folder-gulp-open.svg\"\n    },\n    \"folder-python\": {\n      \"iconPath\": \"./../icons/folder-python.svg\"\n    },\n    \"folder-python-open\": {\n      \"iconPath\": \"./../icons/folder-python-open.svg\"\n    },\n    \"folder-debug\": {\n      \"iconPath\": \"./../icons/folder-debug.svg\"\n    },\n    \"folder-debug-open\": {\n      \"iconPath\": \"./../icons/folder-debug-open.svg\"\n    },\n    \"folder-fastlane\": {\n      \"iconPath\": \"./../icons/folder-fastlane.svg\"\n    },\n    \"folder-fastlane-open\": {\n      \"iconPath\": \"./../icons/folder-fastlane-open.svg\"\n    },\n    \"folder-plugin\": {\n      \"iconPath\": \"./../icons/folder-plugin.svg\"\n    },\n    \"folder-plugin-open\": {\n      \"iconPath\": \"./../icons/folder-plugin-open.svg\"\n    },\n    \"folder-middleware\": {\n      \"iconPath\": \"./../icons/folder-middleware.svg\"\n    },\n    \"folder-middleware-open\": {\n      \"iconPath\": \"./../icons/folder-middleware-open.svg\"\n    },\n    \"folder-controller\": {\n      \"iconPath\": \"./../icons/folder-controller.svg\"\n    },\n    \"folder-controller-open\": {\n      \"iconPath\": \"./../icons/folder-controller-open.svg\"\n    },\n    \"folder-ansible\": {\n      \"iconPath\": \"./../icons/folder-ansible.svg\"\n    },\n    \"folder-ansible-open\": {\n      \"iconPath\": \"./../icons/folder-ansible-open.svg\"\n    },\n    \"folder-server\": {\n      \"iconPath\": \"./../icons/folder-server.svg\"\n    },\n    \"folder-server-open\": {\n      \"iconPath\": \"./../icons/folder-server-open.svg\"\n    },\n    \"folder-client\": {\n      \"iconPath\": \"./../icons/folder-client.svg\"\n    },\n    \"folder-client-open\": {\n      \"iconPath\": \"./../icons/folder-client-open.svg\"\n    },\n    \"folder-tasks\": {\n      \"iconPath\": \"./../icons/folder-tasks.svg\"\n    },\n    \"folder-tasks-open\": {\n      \"iconPath\": \"./../icons/folder-tasks-open.svg\"\n    },\n    \"folder-android\": {\n      \"iconPath\": \"./../icons/folder-android.svg\"\n    },\n    \"folder-android-open\": {\n      \"iconPath\": \"./../icons/folder-android-open.svg\"\n    },\n    \"folder-ios\": {\n      \"iconPath\": \"./../icons/folder-ios.svg\"\n    },\n    \"folder-ios-open\": {\n      \"iconPath\": \"./../icons/folder-ios-open.svg\"\n    },\n    \"folder-upload\": {\n      \"iconPath\": \"./../icons/folder-upload.svg\"\n    },\n    \"folder-upload-open\": {\n      \"iconPath\": \"./../icons/folder-upload-open.svg\"\n    },\n    \"folder-download\": {\n      \"iconPath\": \"./../icons/folder-download.svg\"\n    },\n    \"folder-download-open\": {\n      \"iconPath\": \"./../icons/folder-download-open.svg\"\n    },\n    \"folder-tools\": {\n      \"iconPath\": \"./../icons/folder-tools.svg\"\n    },\n    \"folder-tools-open\": {\n      \"iconPath\": \"./../icons/folder-tools-open.svg\"\n    },\n    \"folder-helper\": {\n      \"iconPath\": \"./../icons/folder-helper.svg\"\n    },\n    \"folder-helper-open\": {\n      \"iconPath\": \"./../icons/folder-helper-open.svg\"\n    },\n    \"folder-serverless\": {\n      \"iconPath\": \"./../icons/folder-serverless.svg\"\n    },\n    \"folder-serverless-open\": {\n      \"iconPath\": \"./../icons/folder-serverless-open.svg\"\n    },\n    \"folder-api\": {\n      \"iconPath\": \"./../icons/folder-api.svg\"\n    },\n    \"folder-api-open\": {\n      \"iconPath\": \"./../icons/folder-api-open.svg\"\n    },\n    \"folder-app\": {\n      \"iconPath\": \"./../icons/folder-app.svg\"\n    },\n    \"folder-app-open\": {\n      \"iconPath\": \"./../icons/folder-app-open.svg\"\n    },\n    \"folder-apollo\": {\n      \"iconPath\": \"./../icons/folder-apollo.svg\"\n    },\n    \"folder-apollo-open\": {\n      \"iconPath\": \"./../icons/folder-apollo-open.svg\"\n    },\n    \"folder-archive\": {\n      \"iconPath\": \"./../icons/folder-archive.svg\"\n    },\n    \"folder-archive-open\": {\n      \"iconPath\": \"./../icons/folder-archive-open.svg\"\n    },\n    \"folder-batch\": {\n      \"iconPath\": \"./../icons/folder-batch.svg\"\n    },\n    \"folder-batch-open\": {\n      \"iconPath\": \"./../icons/folder-batch-open.svg\"\n    },\n    \"folder-buildkite\": {\n      \"iconPath\": \"./../icons/folder-buildkite.svg\"\n    },\n    \"folder-buildkite-open\": {\n      \"iconPath\": \"./../icons/folder-buildkite-open.svg\"\n    },\n    \"folder-cluster\": {\n      \"iconPath\": \"./../icons/folder-cluster.svg\"\n    },\n    \"folder-cluster-open\": {\n      \"iconPath\": \"./../icons/folder-cluster-open.svg\"\n    },\n    \"folder-command\": {\n      \"iconPath\": \"./../icons/folder-command.svg\"\n    },\n    \"folder-command-open\": {\n      \"iconPath\": \"./../icons/folder-command-open.svg\"\n    },\n    \"folder-constant\": {\n      \"iconPath\": \"./../icons/folder-constant.svg\"\n    },\n    \"folder-constant-open\": {\n      \"iconPath\": \"./../icons/folder-constant-open.svg\"\n    },\n    \"folder-container\": {\n      \"iconPath\": \"./../icons/folder-container.svg\"\n    },\n    \"folder-container-open\": {\n      \"iconPath\": \"./../icons/folder-container-open.svg\"\n    },\n    \"folder-content\": {\n      \"iconPath\": \"./../icons/folder-content.svg\"\n    },\n    \"folder-content-open\": {\n      \"iconPath\": \"./../icons/folder-content-open.svg\"\n    },\n    \"folder-context\": {\n      \"iconPath\": \"./../icons/folder-context.svg\"\n    },\n    \"folder-context-open\": {\n      \"iconPath\": \"./../icons/folder-context-open.svg\"\n    },\n    \"folder-core\": {\n      \"iconPath\": \"./../icons/folder-core.svg\"\n    },\n    \"folder-core-open\": {\n      \"iconPath\": \"./../icons/folder-core-open.svg\"\n    },\n    \"folder-delta\": {\n      \"iconPath\": \"./../icons/folder-delta.svg\"\n    },\n    \"folder-delta-open\": {\n      \"iconPath\": \"./../icons/folder-delta-open.svg\"\n    },\n    \"folder-dump\": {\n      \"iconPath\": \"./../icons/folder-dump.svg\"\n    },\n    \"folder-dump-open\": {\n      \"iconPath\": \"./../icons/folder-dump-open.svg\"\n    },\n    \"folder-examples\": {\n      \"iconPath\": \"./../icons/folder-examples.svg\"\n    },\n    \"folder-examples-open\": {\n      \"iconPath\": \"./../icons/folder-examples-open.svg\"\n    },\n    \"folder-environment\": {\n      \"iconPath\": \"./../icons/folder-environment.svg\"\n    },\n    \"folder-environment-open\": {\n      \"iconPath\": \"./../icons/folder-environment-open.svg\"\n    },\n    \"folder-functions\": {\n      \"iconPath\": \"./../icons/folder-functions.svg\"\n    },\n    \"folder-functions-open\": {\n      \"iconPath\": \"./../icons/folder-functions-open.svg\"\n    },\n    \"folder-generator\": {\n      \"iconPath\": \"./../icons/folder-generator.svg\"\n    },\n    \"folder-generator-open\": {\n      \"iconPath\": \"./../icons/folder-generator-open.svg\"\n    },\n    \"folder-hook\": {\n      \"iconPath\": \"./../icons/folder-hook.svg\"\n    },\n    \"folder-hook-open\": {\n      \"iconPath\": \"./../icons/folder-hook-open.svg\"\n    },\n    \"folder-job\": {\n      \"iconPath\": \"./../icons/folder-job.svg\"\n    },\n    \"folder-job-open\": {\n      \"iconPath\": \"./../icons/folder-job-open.svg\"\n    },\n    \"folder-keys\": {\n      \"iconPath\": \"./../icons/folder-keys.svg\"\n    },\n    \"folder-keys-open\": {\n      \"iconPath\": \"./../icons/folder-keys-open.svg\"\n    },\n    \"folder-layout\": {\n      \"iconPath\": \"./../icons/folder-layout.svg\"\n    },\n    \"folder-layout-open\": {\n      \"iconPath\": \"./../icons/folder-layout-open.svg\"\n    },\n    \"folder-mail\": {\n      \"iconPath\": \"./../icons/folder-mail.svg\"\n    },\n    \"folder-mail-open\": {\n      \"iconPath\": \"./../icons/folder-mail-open.svg\"\n    },\n    \"folder-mappings\": {\n      \"iconPath\": \"./../icons/folder-mappings.svg\"\n    },\n    \"folder-mappings-open\": {\n      \"iconPath\": \"./../icons/folder-mappings-open.svg\"\n    },\n    \"folder-meta\": {\n      \"iconPath\": \"./../icons/folder-meta.svg\"\n    },\n    \"folder-meta-open\": {\n      \"iconPath\": \"./../icons/folder-meta-open.svg\"\n    },\n    \"folder-changesets\": {\n      \"iconPath\": \"./../icons/folder-changesets.svg\"\n    },\n    \"folder-changesets-open\": {\n      \"iconPath\": \"./../icons/folder-changesets-open.svg\"\n    },\n    \"folder-packages\": {\n      \"iconPath\": \"./../icons/folder-packages.svg\"\n    },\n    \"folder-packages-open\": {\n      \"iconPath\": \"./../icons/folder-packages-open.svg\"\n    },\n    \"folder-shared\": {\n      \"iconPath\": \"./../icons/folder-shared.svg\"\n    },\n    \"folder-shared-open\": {\n      \"iconPath\": \"./../icons/folder-shared-open.svg\"\n    },\n    \"folder-shader\": {\n      \"iconPath\": \"./../icons/folder-shader.svg\"\n    },\n    \"folder-shader-open\": {\n      \"iconPath\": \"./../icons/folder-shader-open.svg\"\n    },\n    \"folder-stack\": {\n      \"iconPath\": \"./../icons/folder-stack.svg\"\n    },\n    \"folder-stack-open\": {\n      \"iconPath\": \"./../icons/folder-stack-open.svg\"\n    },\n    \"folder-template\": {\n      \"iconPath\": \"./../icons/folder-template.svg\"\n    },\n    \"folder-template-open\": {\n      \"iconPath\": \"./../icons/folder-template-open.svg\"\n    },\n    \"folder-utils\": {\n      \"iconPath\": \"./../icons/folder-utils.svg\"\n    },\n    \"folder-utils-open\": {\n      \"iconPath\": \"./../icons/folder-utils-open.svg\"\n    },\n    \"folder-supabase\": {\n      \"iconPath\": \"./../icons/folder-supabase.svg\"\n    },\n    \"folder-supabase-open\": {\n      \"iconPath\": \"./../icons/folder-supabase-open.svg\"\n    },\n    \"folder-private\": {\n      \"iconPath\": \"./../icons/folder-private.svg\"\n    },\n    \"folder-private-open\": {\n      \"iconPath\": \"./../icons/folder-private-open.svg\"\n    },\n    \"folder-error\": {\n      \"iconPath\": \"./../icons/folder-error.svg\"\n    },\n    \"folder-error-open\": {\n      \"iconPath\": \"./../icons/folder-error-open.svg\"\n    },\n    \"folder-event\": {\n      \"iconPath\": \"./../icons/folder-event.svg\"\n    },\n    \"folder-event-open\": {\n      \"iconPath\": \"./../icons/folder-event-open.svg\"\n    },\n    \"folder-secure\": {\n      \"iconPath\": \"./../icons/folder-secure.svg\"\n    },\n    \"folder-secure-open\": {\n      \"iconPath\": \"./../icons/folder-secure-open.svg\"\n    },\n    \"folder-custom\": {\n      \"iconPath\": \"./../icons/folder-custom.svg\"\n    },\n    \"folder-custom-open\": {\n      \"iconPath\": \"./../icons/folder-custom-open.svg\"\n    },\n    \"folder-mock\": {\n      \"iconPath\": \"./../icons/folder-mock.svg\"\n    },\n    \"folder-mock-open\": {\n      \"iconPath\": \"./../icons/folder-mock-open.svg\"\n    },\n    \"folder-syntax\": {\n      \"iconPath\": \"./../icons/folder-syntax.svg\"\n    },\n    \"folder-syntax-open\": {\n      \"iconPath\": \"./../icons/folder-syntax-open.svg\"\n    },\n    \"folder-vm\": {\n      \"iconPath\": \"./../icons/folder-vm.svg\"\n    },\n    \"folder-vm-open\": {\n      \"iconPath\": \"./../icons/folder-vm-open.svg\"\n    },\n    \"folder-stylus\": {\n      \"iconPath\": \"./../icons/folder-stylus.svg\"\n    },\n    \"folder-stylus-open\": {\n      \"iconPath\": \"./../icons/folder-stylus-open.svg\"\n    },\n    \"folder-flow\": {\n      \"iconPath\": \"./../icons/folder-flow.svg\"\n    },\n    \"folder-flow-open\": {\n      \"iconPath\": \"./../icons/folder-flow-open.svg\"\n    },\n    \"folder-rules\": {\n      \"iconPath\": \"./../icons/folder-rules.svg\"\n    },\n    \"folder-rules-open\": {\n      \"iconPath\": \"./../icons/folder-rules-open.svg\"\n    },\n    \"folder-review\": {\n      \"iconPath\": \"./../icons/folder-review.svg\"\n    },\n    \"folder-review-open\": {\n      \"iconPath\": \"./../icons/folder-review-open.svg\"\n    },\n    \"folder-animation\": {\n      \"iconPath\": \"./../icons/folder-animation.svg\"\n    },\n    \"folder-animation-open\": {\n      \"iconPath\": \"./../icons/folder-animation-open.svg\"\n    },\n    \"folder-guard\": {\n      \"iconPath\": \"./../icons/folder-guard.svg\"\n    },\n    \"folder-guard-open\": {\n      \"iconPath\": \"./../icons/folder-guard-open.svg\"\n    },\n    \"folder-prisma\": {\n      \"iconPath\": \"./../icons/folder-prisma.svg\"\n    },\n    \"folder-prisma-open\": {\n      \"iconPath\": \"./../icons/folder-prisma-open.svg\"\n    },\n    \"folder-pipe\": {\n      \"iconPath\": \"./../icons/folder-pipe.svg\"\n    },\n    \"folder-pipe-open\": {\n      \"iconPath\": \"./../icons/folder-pipe-open.svg\"\n    },\n    \"folder-svg\": {\n      \"iconPath\": \"./../icons/folder-svg.svg\"\n    },\n    \"folder-svg-open\": {\n      \"iconPath\": \"./../icons/folder-svg-open.svg\"\n    },\n    \"folder-terraform\": {\n      \"iconPath\": \"./../icons/folder-terraform.svg\"\n    },\n    \"folder-terraform-open\": {\n      \"iconPath\": \"./../icons/folder-terraform-open.svg\"\n    },\n    \"folder-mobile\": {\n      \"iconPath\": \"./../icons/folder-mobile.svg\"\n    },\n    \"folder-mobile-open\": {\n      \"iconPath\": \"./../icons/folder-mobile-open.svg\"\n    },\n    \"folder-stencil\": {\n      \"iconPath\": \"./../icons/folder-stencil.svg\"\n    },\n    \"folder-stencil-open\": {\n      \"iconPath\": \"./../icons/folder-stencil-open.svg\"\n    },\n    \"folder-firebase\": {\n      \"iconPath\": \"./../icons/folder-firebase.svg\"\n    },\n    \"folder-firebase-open\": {\n      \"iconPath\": \"./../icons/folder-firebase-open.svg\"\n    },\n    \"folder-svelte\": {\n      \"iconPath\": \"./../icons/folder-svelte.svg\"\n    },\n    \"folder-svelte-open\": {\n      \"iconPath\": \"./../icons/folder-svelte-open.svg\"\n    },\n    \"folder-update\": {\n      \"iconPath\": \"./../icons/folder-update.svg\"\n    },\n    \"folder-update-open\": {\n      \"iconPath\": \"./../icons/folder-update-open.svg\"\n    },\n    \"folder-intellij\": {\n      \"iconPath\": \"./../icons/folder-intellij.svg\"\n    },\n    \"folder-intellij-open\": {\n      \"iconPath\": \"./../icons/folder-intellij-open.svg\"\n    },\n    \"folder-intellij_light\": {\n      \"iconPath\": \"./../icons/folder-intellij_light.svg\"\n    },\n    \"folder-intellij-open_light\": {\n      \"iconPath\": \"./../icons/folder-intellij-open_light.svg\"\n    },\n    \"folder-azure-pipelines\": {\n      \"iconPath\": \"./../icons/folder-azure-pipelines.svg\"\n    },\n    \"folder-azure-pipelines-open\": {\n      \"iconPath\": \"./../icons/folder-azure-pipelines-open.svg\"\n    },\n    \"folder-mjml\": {\n      \"iconPath\": \"./../icons/folder-mjml.svg\"\n    },\n    \"folder-mjml-open\": {\n      \"iconPath\": \"./../icons/folder-mjml-open.svg\"\n    },\n    \"folder-admin\": {\n      \"iconPath\": \"./../icons/folder-admin.svg\"\n    },\n    \"folder-admin-open\": {\n      \"iconPath\": \"./../icons/folder-admin-open.svg\"\n    },\n    \"folder-scala\": {\n      \"iconPath\": \"./../icons/folder-scala.svg\"\n    },\n    \"folder-scala-open\": {\n      \"iconPath\": \"./../icons/folder-scala-open.svg\"\n    },\n    \"folder-connection\": {\n      \"iconPath\": \"./../icons/folder-connection.svg\"\n    },\n    \"folder-connection-open\": {\n      \"iconPath\": \"./../icons/folder-connection-open.svg\"\n    },\n    \"folder-quasar\": {\n      \"iconPath\": \"./../icons/folder-quasar.svg\"\n    },\n    \"folder-quasar-open\": {\n      \"iconPath\": \"./../icons/folder-quasar-open.svg\"\n    },\n    \"folder-next\": {\n      \"iconPath\": \"./../icons/folder-next.svg\"\n    },\n    \"folder-next-open\": {\n      \"iconPath\": \"./../icons/folder-next-open.svg\"\n    },\n    \"folder-cobol\": {\n      \"iconPath\": \"./../icons/folder-cobol.svg\"\n    },\n    \"folder-cobol-open\": {\n      \"iconPath\": \"./../icons/folder-cobol-open.svg\"\n    },\n    \"folder-yarn\": {\n      \"iconPath\": \"./../icons/folder-yarn.svg\"\n    },\n    \"folder-yarn-open\": {\n      \"iconPath\": \"./../icons/folder-yarn-open.svg\"\n    },\n    \"folder-husky\": {\n      \"iconPath\": \"./../icons/folder-husky.svg\"\n    },\n    \"folder-husky-open\": {\n      \"iconPath\": \"./../icons/folder-husky-open.svg\"\n    },\n    \"folder-storybook\": {\n      \"iconPath\": \"./../icons/folder-storybook.svg\"\n    },\n    \"folder-storybook-open\": {\n      \"iconPath\": \"./../icons/folder-storybook-open.svg\"\n    },\n    \"folder-base\": {\n      \"iconPath\": \"./../icons/folder-base.svg\"\n    },\n    \"folder-base-open\": {\n      \"iconPath\": \"./../icons/folder-base-open.svg\"\n    },\n    \"folder-cart\": {\n      \"iconPath\": \"./../icons/folder-cart.svg\"\n    },\n    \"folder-cart-open\": {\n      \"iconPath\": \"./../icons/folder-cart-open.svg\"\n    },\n    \"folder-home\": {\n      \"iconPath\": \"./../icons/folder-home.svg\"\n    },\n    \"folder-home-open\": {\n      \"iconPath\": \"./../icons/folder-home-open.svg\"\n    },\n    \"folder-project\": {\n      \"iconPath\": \"./../icons/folder-project.svg\"\n    },\n    \"folder-project-open\": {\n      \"iconPath\": \"./../icons/folder-project-open.svg\"\n    },\n    \"folder-interface\": {\n      \"iconPath\": \"./../icons/folder-interface.svg\"\n    },\n    \"folder-interface-open\": {\n      \"iconPath\": \"./../icons/folder-interface-open.svg\"\n    },\n    \"folder-netlify\": {\n      \"iconPath\": \"./../icons/folder-netlify.svg\"\n    },\n    \"folder-netlify-open\": {\n      \"iconPath\": \"./../icons/folder-netlify-open.svg\"\n    },\n    \"folder-contract\": {\n      \"iconPath\": \"./../icons/folder-contract.svg\"\n    },\n    \"folder-contract-open\": {\n      \"iconPath\": \"./../icons/folder-contract-open.svg\"\n    },\n    \"folder-queue\": {\n      \"iconPath\": \"./../icons/folder-queue.svg\"\n    },\n    \"folder-queue-open\": {\n      \"iconPath\": \"./../icons/folder-queue-open.svg\"\n    },\n    \"folder-vercel\": {\n      \"iconPath\": \"./../icons/folder-vercel.svg\"\n    },\n    \"folder-vercel-open\": {\n      \"iconPath\": \"./../icons/folder-vercel-open.svg\"\n    },\n    \"folder-cypress\": {\n      \"iconPath\": \"./../icons/folder-cypress.svg\"\n    },\n    \"folder-cypress-open\": {\n      \"iconPath\": \"./../icons/folder-cypress-open.svg\"\n    },\n    \"folder-decorators\": {\n      \"iconPath\": \"./../icons/folder-decorators.svg\"\n    },\n    \"folder-decorators-open\": {\n      \"iconPath\": \"./../icons/folder-decorators-open.svg\"\n    },\n    \"folder-java\": {\n      \"iconPath\": \"./../icons/folder-java.svg\"\n    },\n    \"folder-java-open\": {\n      \"iconPath\": \"./../icons/folder-java-open.svg\"\n    },\n    \"folder-resolver\": {\n      \"iconPath\": \"./../icons/folder-resolver.svg\"\n    },\n    \"folder-resolver-open\": {\n      \"iconPath\": \"./../icons/folder-resolver-open.svg\"\n    },\n    \"folder-angular\": {\n      \"iconPath\": \"./../icons/folder-angular.svg\"\n    },\n    \"folder-angular-open\": {\n      \"iconPath\": \"./../icons/folder-angular-open.svg\"\n    },\n    \"folder-unity\": {\n      \"iconPath\": \"./../icons/folder-unity.svg\"\n    },\n    \"folder-unity-open\": {\n      \"iconPath\": \"./../icons/folder-unity-open.svg\"\n    },\n    \"folder-pdf\": {\n      \"iconPath\": \"./../icons/folder-pdf.svg\"\n    },\n    \"folder-pdf-open\": {\n      \"iconPath\": \"./../icons/folder-pdf-open.svg\"\n    },\n    \"folder-proto\": {\n      \"iconPath\": \"./../icons/folder-proto.svg\"\n    },\n    \"folder-proto-open\": {\n      \"iconPath\": \"./../icons/folder-proto-open.svg\"\n    },\n    \"folder-plastic\": {\n      \"iconPath\": \"./../icons/folder-plastic.svg\"\n    },\n    \"folder-plastic-open\": {\n      \"iconPath\": \"./../icons/folder-plastic-open.svg\"\n    },\n    \"folder-gamemaker\": {\n      \"iconPath\": \"./../icons/folder-gamemaker.svg\"\n    },\n    \"folder-gamemaker-open\": {\n      \"iconPath\": \"./../icons/folder-gamemaker-open.svg\"\n    },\n    \"folder-mercurial\": {\n      \"iconPath\": \"./../icons/folder-mercurial.svg\"\n    },\n    \"folder-mercurial-open\": {\n      \"iconPath\": \"./../icons/folder-mercurial-open.svg\"\n    },\n    \"folder-godot\": {\n      \"iconPath\": \"./../icons/folder-godot.svg\"\n    },\n    \"folder-godot-open\": {\n      \"iconPath\": \"./../icons/folder-godot-open.svg\"\n    },\n    \"folder\": {\n      \"iconPath\": \"./../icons/folder.svg\"\n    },\n    \"folder-open\": {\n      \"iconPath\": \"./../icons/folder-open.svg\"\n    },\n    \"folder-root\": {\n      \"iconPath\": \"./../icons/folder-root.svg\"\n    },\n    \"folder-root-open\": {\n      \"iconPath\": \"./../icons/folder-root-open.svg\"\n    }\n  },\n  \"folderNames\": {\n    \"src\": \"folder-src\",\n    \"srcs\": \"folder-src\",\n    \"source\": \"folder-src\",\n    \"sources\": \"folder-src\",\n    \"code\": \"folder-src\",\n    \"dist\": \"folder-dist\",\n    \"out\": \"folder-dist\",\n    \"build\": \"folder-dist\",\n    \"release\": \"folder-dist\",\n    \"bin\": \"folder-dist\",\n    \"css\": \"folder-css\",\n    \"stylesheet\": \"folder-css\",\n    \"stylesheets\": \"folder-css\",\n    \"style\": \"folder-css\",\n    \"styles\": \"folder-css\",\n    \"sass\": \"folder-sass\",\n    \"_sass\": \"folder-sass\",\n    \"scss\": \"folder-sass\",\n    \"_scss\": \"folder-sass\",\n    \"_images\": \"folder-images\",\n    \"_image\": \"folder-images\",\n    \"_imgs\": \"folder-images\",\n    \"_img\": \"folder-images\",\n    \"images\": \"folder-images\",\n    \"image\": \"folder-images\",\n    \"imgs\": \"folder-images\",\n    \"img\": \"folder-images\",\n    \"icons\": \"folder-images\",\n    \"icon\": \"folder-images\",\n    \"icos\": \"folder-images\",\n    \"ico\": \"folder-images\",\n    \"figures\": \"folder-images\",\n    \"figure\": \"folder-images\",\n    \"figs\": \"folder-images\",\n    \"fig\": \"folder-images\",\n    \"screenshot\": \"folder-images\",\n    \"screenshots\": \"folder-images\",\n    \"screengrab\": \"folder-images\",\n    \"screengrabs\": \"folder-images\",\n    \"pic\": \"folder-images\",\n    \"pics\": \"folder-images\",\n    \"picture\": \"folder-images\",\n    \"pictures\": \"folder-images\",\n    \"script\": \"folder-scripts\",\n    \"scripts\": \"folder-scripts\",\n    \"node_modules\": \"folder-node\",\n    \"js\": \"folder-javascript\",\n    \"javascript\": \"folder-javascript\",\n    \"javascripts\": \"folder-javascript\",\n    \"json\": \"folder-json\",\n    \"jsons\": \"folder-json\",\n    \"font\": \"folder-font\",\n    \"fonts\": \"folder-font\",\n    \"bower_components\": \"folder-bower\",\n    \"test\": \"folder-test\",\n    \"tests\": \"folder-test\",\n    \"testing\": \"folder-test\",\n    \"__tests__\": \"folder-test\",\n    \"__snapshots__\": \"folder-test\",\n    \"__mocks__\": \"folder-test\",\n    \"__fixtures__\": \"folder-test\",\n    \"__test__\": \"folder-test\",\n    \"spec\": \"folder-test\",\n    \"specs\": \"folder-test\",\n    \"jinja\": \"folder-jinja\",\n    \"jinja2\": \"folder-jinja\",\n    \"j2\": \"folder-jinja\",\n    \"markdown\": \"folder-markdown\",\n    \"md\": \"folder-markdown\",\n    \"php\": \"folder-php\",\n    \"phpmailer\": \"folder-phpmailer\",\n    \"sublime\": \"folder-sublime\",\n    \"_post\": \"folder-docs\",\n    \"_posts\": \"folder-docs\",\n    \"doc\": \"folder-docs\",\n    \"docs\": \"folder-docs\",\n    \"document\": \"folder-docs\",\n    \"documents\": \"folder-docs\",\n    \"documentation\": \"folder-docs\",\n    \"post\": \"folder-docs\",\n    \"posts\": \"folder-docs\",\n    \"article\": \"folder-docs\",\n    \"articles\": \"folder-docs\",\n    \".git\": \"folder-git\",\n    \"patches\": \"folder-git\",\n    \"githooks\": \"folder-git\",\n    \".githooks\": \"folder-git\",\n    \"submodules\": \"folder-git\",\n    \".submodules\": \"folder-git\",\n    \".github\": \"folder-github\",\n    \"github\": \"folder-github\",\n    \".gitlab\": \"folder-gitlab\",\n    \".vscode\": \"folder-vscode\",\n    \".vscode-test\": \"folder-vscode\",\n    \"view\": \"folder-views\",\n    \"views\": \"folder-views\",\n    \"screen\": \"folder-views\",\n    \"screens\": \"folder-views\",\n    \"page\": \"folder-views\",\n    \"pages\": \"folder-views\",\n    \"html\": \"folder-views\",\n    \"vue\": \"folder-vue\",\n    \".vuepress\": \"folder-vuepress\",\n    \".expo\": \"folder-expo\",\n    \".expo-shared\": \"folder-expo\",\n    \"cfg\": \"folder-config\",\n    \"cfgs\": \"folder-config\",\n    \"conf\": \"folder-config\",\n    \"confs\": \"folder-config\",\n    \"config\": \"folder-config\",\n    \"configs\": \"folder-config\",\n    \"configuration\": \"folder-config\",\n    \"configurations\": \"folder-config\",\n    \"setting\": \"folder-config\",\n    \".setting\": \"folder-config\",\n    \"settings\": \"folder-config\",\n    \".settings\": \"folder-config\",\n    \"META-INF\": \"folder-config\",\n    \"i18n\": \"folder-i18n\",\n    \"internationalization\": \"folder-i18n\",\n    \"lang\": \"folder-i18n\",\n    \"langs\": \"folder-i18n\",\n    \"language\": \"folder-i18n\",\n    \"languages\": \"folder-i18n\",\n    \"locale\": \"folder-i18n\",\n    \"locales\": \"folder-i18n\",\n    \"l10n\": \"folder-i18n\",\n    \"localization\": \"folder-i18n\",\n    \"translation\": \"folder-i18n\",\n    \"translate\": \"folder-i18n\",\n    \"translations\": \"folder-i18n\",\n    \".tx\": \"folder-i18n\",\n    \"components\": \"folder-components\",\n    \"widget\": \"folder-components\",\n    \"widgets\": \"folder-components\",\n    \"fragments\": \"folder-components\",\n    \".verdaccio\": \"folder-verdaccio\",\n    \"verdaccio\": \"folder-verdaccio\",\n    \"aurelia_project\": \"folder-aurelia\",\n    \"resource\": \"folder-resource\",\n    \"resources\": \"folder-resource\",\n    \"res\": \"folder-resource\",\n    \"asset\": \"folder-resource\",\n    \"assets\": \"folder-resource\",\n    \"static\": \"folder-resource\",\n    \"report\": \"folder-resource\",\n    \"reports\": \"folder-resource\",\n    \"lib\": \"folder-lib\",\n    \"libs\": \"folder-lib\",\n    \"library\": \"folder-lib\",\n    \"libraries\": \"folder-lib\",\n    \"vendor\": \"folder-lib\",\n    \"vendors\": \"folder-lib\",\n    \"third-party\": \"folder-lib\",\n    \"themes\": \"folder-theme\",\n    \"theme\": \"folder-theme\",\n    \"color\": \"folder-theme\",\n    \"colors\": \"folder-theme\",\n    \"design\": \"folder-theme\",\n    \"designs\": \"folder-theme\",\n    \"webpack\": \"folder-webpack\",\n    \".webpack\": \"folder-webpack\",\n    \"global\": \"folder-global\",\n    \"_site\": \"folder-public\",\n    \"public\": \"folder-public\",\n    \"www\": \"folder-public\",\n    \"wwwroot\": \"folder-public\",\n    \"web\": \"folder-public\",\n    \"website\": \"folder-public\",\n    \"site\": \"folder-public\",\n    \"browser\": \"folder-public\",\n    \"browsers\": \"folder-public\",\n    \"include\": \"folder-include\",\n    \"includes\": \"folder-include\",\n    \"_includes\": \"folder-include\",\n    \"inc\": \"folder-include\",\n    \"partials\": \"folder-include\",\n    \"_partials\": \"folder-include\",\n    \"docker\": \"folder-docker\",\n    \"dockerfiles\": \"folder-docker\",\n    \".docker\": \"folder-docker\",\n    \"db\": \"folder-database\",\n    \"database\": \"folder-database\",\n    \"databases\": \"folder-database\",\n    \"sql\": \"folder-database\",\n    \"data\": \"folder-database\",\n    \"_data\": \"folder-database\",\n    \"log\": \"folder-log\",\n    \"logs\": \"folder-log\",\n    \"target\": \"folder-target\",\n    \"temp\": \"folder-temp\",\n    \".temp\": \"folder-temp\",\n    \"tmp\": \"folder-temp\",\n    \".tmp\": \"folder-temp\",\n    \"cached\": \"folder-temp\",\n    \"cache\": \"folder-temp\",\n    \".cache\": \"folder-temp\",\n    \"aws\": \"folder-aws\",\n    \".aws\": \"folder-aws\",\n    \"aud\": \"folder-audio\",\n    \"auds\": \"folder-audio\",\n    \"audio\": \"folder-audio\",\n    \"audios\": \"folder-audio\",\n    \"music\": \"folder-audio\",\n    \"sound\": \"folder-audio\",\n    \"sounds\": \"folder-audio\",\n    \"vid\": \"folder-video\",\n    \"vids\": \"folder-video\",\n    \"video\": \"folder-video\",\n    \"videos\": \"folder-video\",\n    \"movie\": \"folder-video\",\n    \"movies\": \"folder-video\",\n    \"kubernetes\": \"folder-kubernetes\",\n    \".kubernetes\": \"folder-kubernetes\",\n    \"k8s\": \"folder-kubernetes\",\n    \".k8s\": \"folder-kubernetes\",\n    \"import\": \"folder-import\",\n    \"imports\": \"folder-import\",\n    \"imported\": \"folder-import\",\n    \"export\": \"folder-export\",\n    \"exports\": \"folder-export\",\n    \"exported\": \"folder-export\",\n    \"wakatime\": \"folder-wakatime\",\n    \".circleci\": \"folder-circleci\",\n    \".wordpress-org\": \"folder-wordpress\",\n    \"wp-content\": \"folder-wordpress\",\n    \"gradle\": \"folder-gradle\",\n    \".gradle\": \"folder-gradle\",\n    \"coverage\": \"folder-coverage\",\n    \".nyc-output\": \"folder-coverage\",\n    \".nyc_output\": \"folder-coverage\",\n    \"e2e\": \"folder-coverage\",\n    \"it\": \"folder-coverage\",\n    \"integration-test\": \"folder-coverage\",\n    \"integration-tests\": \"folder-coverage\",\n    \"__integration-test__\": \"folder-coverage\",\n    \"__integration-tests__\": \"folder-coverage\",\n    \"class\": \"folder-class\",\n    \"classes\": \"folder-class\",\n    \"model\": \"folder-class\",\n    \"models\": \"folder-class\",\n    \"schemas\": \"folder-class\",\n    \"schema\": \"folder-class\",\n    \"other\": \"folder-other\",\n    \"others\": \"folder-other\",\n    \"misc\": \"folder-other\",\n    \"miscellaneous\": \"folder-other\",\n    \"extra\": \"folder-other\",\n    \"extras\": \"folder-other\",\n    \"etc\": \"folder-other\",\n    \"lua\": \"folder-lua\",\n    \"typescript\": \"folder-typescript\",\n    \"ts\": \"folder-typescript\",\n    \"typings\": \"folder-typescript\",\n    \"@types\": \"folder-typescript\",\n    \"types\": \"folder-typescript\",\n    \"graphql\": \"folder-graphql\",\n    \"gql\": \"folder-graphql\",\n    \"routes\": \"folder-routes\",\n    \"router\": \"folder-routes\",\n    \"routers\": \"folder-routes\",\n    \".ci\": \"folder-ci\",\n    \"ci\": \"folder-ci\",\n    \"benchmark\": \"folder-benchmark\",\n    \"benchmarks\": \"folder-benchmark\",\n    \"performance\": \"folder-benchmark\",\n    \"measure\": \"folder-benchmark\",\n    \"measures\": \"folder-benchmark\",\n    \"measurement\": \"folder-benchmark\",\n    \"messages\": \"folder-messages\",\n    \"messaging\": \"folder-messages\",\n    \"forum\": \"folder-messages\",\n    \"chat\": \"folder-messages\",\n    \"chats\": \"folder-messages\",\n    \"conversation\": \"folder-messages\",\n    \"conversations\": \"folder-messages\",\n    \"less\": \"folder-less\",\n    \"gulp\": \"folder-gulp\",\n    \"gulp-tasks\": \"folder-gulp\",\n    \"gulpfile.js\": \"folder-gulp\",\n    \"gulpfile.mjs\": \"folder-gulp\",\n    \"gulpfile.ts\": \"folder-gulp\",\n    \"gulpfile.babel.js\": \"folder-gulp\",\n    \"python\": \"folder-python\",\n    \"__pycache__\": \"folder-python\",\n    \".pytest_cache\": \"folder-python\",\n    \"debug\": \"folder-debug\",\n    \"debugging\": \"folder-debug\",\n    \"fastlane\": \"folder-fastlane\",\n    \"plugin\": \"folder-plugin\",\n    \"plugins\": \"folder-plugin\",\n    \"_plugins\": \"folder-plugin\",\n    \"extension\": \"folder-plugin\",\n    \"extensions\": \"folder-plugin\",\n    \"addon\": \"folder-plugin\",\n    \"addons\": \"folder-plugin\",\n    \"module\": \"folder-plugin\",\n    \"modules\": \"folder-plugin\",\n    \"middleware\": \"folder-middleware\",\n    \"middlewares\": \"folder-middleware\",\n    \"controller\": \"folder-controller\",\n    \"controllers\": \"folder-controller\",\n    \"service\": \"folder-controller\",\n    \"services\": \"folder-controller\",\n    \"provider\": \"folder-controller\",\n    \"providers\": \"folder-controller\",\n    \"handler\": \"folder-controller\",\n    \"handlers\": \"folder-controller\",\n    \"ansible\": \"folder-ansible\",\n    \"server\": \"folder-server\",\n    \"servers\": \"folder-server\",\n    \"backend\": \"folder-server\",\n    \"client\": \"folder-client\",\n    \"clients\": \"folder-client\",\n    \"frontend\": \"folder-client\",\n    \"pwa\": \"folder-client\",\n    \"tasks\": \"folder-tasks\",\n    \"tickets\": \"folder-tasks\",\n    \"android\": \"folder-android\",\n    \"ios\": \"folder-ios\",\n    \"uploads\": \"folder-upload\",\n    \"upload\": \"folder-upload\",\n    \"downloads\": \"folder-download\",\n    \"download\": \"folder-download\",\n    \"tools\": \"folder-tools\",\n    \"toolkit\": \"folder-tools\",\n    \"toolkits\": \"folder-tools\",\n    \"toolbox\": \"folder-tools\",\n    \"toolboxes\": \"folder-tools\",\n    \"helpers\": \"folder-helper\",\n    \"helper\": \"folder-helper\",\n    \".serverless\": \"folder-serverless\",\n    \"serverless\": \"folder-serverless\",\n    \"api\": \"folder-api\",\n    \"apis\": \"folder-api\",\n    \"restapi\": \"folder-api\",\n    \"app\": \"folder-app\",\n    \"apps\": \"folder-app\",\n    \"apollo\": \"folder-apollo\",\n    \"apollo-client\": \"folder-apollo\",\n    \"apollo-cache\": \"folder-apollo\",\n    \"apollo-config\": \"folder-apollo\",\n    \"arc\": \"folder-archive\",\n    \"arcs\": \"folder-archive\",\n    \"archive\": \"folder-archive\",\n    \"archives\": \"folder-archive\",\n    \"archival\": \"folder-archive\",\n    \"bkp\": \"folder-archive\",\n    \"bkps\": \"folder-archive\",\n    \"bak\": \"folder-archive\",\n    \"baks\": \"folder-archive\",\n    \"backup\": \"folder-archive\",\n    \"backups\": \"folder-archive\",\n    \"back-up\": \"folder-archive\",\n    \"back-ups\": \"folder-archive\",\n    \"batch\": \"folder-batch\",\n    \"batchs\": \"folder-batch\",\n    \"batches\": \"folder-batch\",\n    \"buildkite\": \"folder-buildkite\",\n    \".buildkite\": \"folder-buildkite\",\n    \"cluster\": \"folder-cluster\",\n    \"clusters\": \"folder-cluster\",\n    \"command\": \"folder-command\",\n    \"commands\": \"folder-command\",\n    \"cmd\": \"folder-command\",\n    \"cli\": \"folder-command\",\n    \"clis\": \"folder-command\",\n    \"constant\": \"folder-constant\",\n    \"constants\": \"folder-constant\",\n    \"container\": \"folder-container\",\n    \"containers\": \"folder-container\",\n    \".devcontainer\": \"folder-container\",\n    \"content\": \"folder-content\",\n    \"contents\": \"folder-content\",\n    \"context\": \"folder-context\",\n    \"contexts\": \"folder-context\",\n    \"core\": \"folder-core\",\n    \"delta\": \"folder-delta\",\n    \"deltas\": \"folder-delta\",\n    \"changes\": \"folder-delta\",\n    \"dump\": \"folder-dump\",\n    \"dumps\": \"folder-dump\",\n    \"demo\": \"folder-examples\",\n    \"demos\": \"folder-examples\",\n    \"example\": \"folder-examples\",\n    \"examples\": \"folder-examples\",\n    \"sample\": \"folder-examples\",\n    \"samples\": \"folder-examples\",\n    \"sample-data\": \"folder-examples\",\n    \".env\": \"folder-environment\",\n    \".environment\": \"folder-environment\",\n    \"env\": \"folder-environment\",\n    \"envs\": \"folder-environment\",\n    \"environment\": \"folder-environment\",\n    \"environments\": \"folder-environment\",\n    \".venv\": \"folder-environment\",\n    \"func\": \"folder-functions\",\n    \"funcs\": \"folder-functions\",\n    \"function\": \"folder-functions\",\n    \"functions\": \"folder-functions\",\n    \"lambda\": \"folder-functions\",\n    \"lambdas\": \"folder-functions\",\n    \"logic\": \"folder-functions\",\n    \"math\": \"folder-functions\",\n    \"maths\": \"folder-functions\",\n    \"calc\": \"folder-functions\",\n    \"calcs\": \"folder-functions\",\n    \"calculation\": \"folder-functions\",\n    \"calculations\": \"folder-functions\",\n    \"generator\": \"folder-generator\",\n    \"generators\": \"folder-generator\",\n    \"generated\": \"folder-generator\",\n    \"cfn-gen\": \"folder-generator\",\n    \"gen\": \"folder-generator\",\n    \"gens\": \"folder-generator\",\n    \"auto\": \"folder-generator\",\n    \"hook\": \"folder-hook\",\n    \"hooks\": \"folder-hook\",\n    \"trigger\": \"folder-hook\",\n    \"triggers\": \"folder-hook\",\n    \"job\": \"folder-job\",\n    \"jobs\": \"folder-job\",\n    \"keys\": \"folder-keys\",\n    \"key\": \"folder-keys\",\n    \"token\": \"folder-keys\",\n    \"tokens\": \"folder-keys\",\n    \"jwt\": \"folder-keys\",\n    \"layout\": \"folder-layout\",\n    \"layouts\": \"folder-layout\",\n    \"_layouts\": \"folder-layout\",\n    \"mail\": \"folder-mail\",\n    \"mails\": \"folder-mail\",\n    \"email\": \"folder-mail\",\n    \"emails\": \"folder-mail\",\n    \"smtp\": \"folder-mail\",\n    \"mailers\": \"folder-mail\",\n    \"mappings\": \"folder-mappings\",\n    \"mapping\": \"folder-mappings\",\n    \"meta\": \"folder-meta\",\n    \".changesets\": \"folder-changesets\",\n    \".changeset\": \"folder-changesets\",\n    \"package\": \"folder-packages\",\n    \"packages\": \"folder-packages\",\n    \"pkg\": \"folder-packages\",\n    \"pkgs\": \"folder-packages\",\n    \"shared\": \"folder-shared\",\n    \"common\": \"folder-shared\",\n    \"glsl\": \"folder-shader\",\n    \"hlsl\": \"folder-shader\",\n    \"shader\": \"folder-shader\",\n    \"shaders\": \"folder-shader\",\n    \"stack\": \"folder-stack\",\n    \"stacks\": \"folder-stack\",\n    \"template\": \"folder-template\",\n    \"templates\": \"folder-template\",\n    \"util\": \"folder-utils\",\n    \"utils\": \"folder-utils\",\n    \"utility\": \"folder-utils\",\n    \"utilities\": \"folder-utils\",\n    \"supabase\": \"folder-supabase\",\n    \".supabase\": \"folder-supabase\",\n    \"private\": \"folder-private\",\n    \".private\": \"folder-private\",\n    \"error\": \"folder-error\",\n    \"errors\": \"folder-error\",\n    \"err\": \"folder-error\",\n    \"event\": \"folder-event\",\n    \"events\": \"folder-event\",\n    \"auth\": \"folder-secure\",\n    \"authentication\": \"folder-secure\",\n    \"secure\": \"folder-secure\",\n    \"security\": \"folder-secure\",\n    \"cert\": \"folder-secure\",\n    \"certs\": \"folder-secure\",\n    \"certificate\": \"folder-secure\",\n    \"certificates\": \"folder-secure\",\n    \"ssl\": \"folder-secure\",\n    \"custom\": \"folder-custom\",\n    \"customs\": \"folder-custom\",\n    \"_draft\": \"folder-mock\",\n    \"_drafts\": \"folder-mock\",\n    \"mock\": \"folder-mock\",\n    \"mocks\": \"folder-mock\",\n    \"fixture\": \"folder-mock\",\n    \"fixtures\": \"folder-mock\",\n    \"draft\": \"folder-mock\",\n    \"drafts\": \"folder-mock\",\n    \"concept\": \"folder-mock\",\n    \"concepts\": \"folder-mock\",\n    \"sketch\": \"folder-mock\",\n    \"sketches\": \"folder-mock\",\n    \"syntax\": \"folder-syntax\",\n    \"syntaxes\": \"folder-syntax\",\n    \"spellcheck\": \"folder-syntax\",\n    \"vm\": \"folder-vm\",\n    \"vms\": \"folder-vm\",\n    \"stylus\": \"folder-stylus\",\n    \"flow-typed\": \"folder-flow\",\n    \"rule\": \"folder-rules\",\n    \"rules\": \"folder-rules\",\n    \"validation\": \"folder-rules\",\n    \"validations\": \"folder-rules\",\n    \"validator\": \"folder-rules\",\n    \"validators\": \"folder-rules\",\n    \"review\": \"folder-review\",\n    \"reviews\": \"folder-review\",\n    \"revisal\": \"folder-review\",\n    \"revisals\": \"folder-review\",\n    \"reviewed\": \"folder-review\",\n    \"anim\": \"folder-animation\",\n    \"anims\": \"folder-animation\",\n    \"animation\": \"folder-animation\",\n    \"animations\": \"folder-animation\",\n    \"animated\": \"folder-animation\",\n    \"guard\": \"folder-guard\",\n    \"guards\": \"folder-guard\",\n    \"prisma\": \"folder-prisma\",\n    \"pipe\": \"folder-pipe\",\n    \"pipes\": \"folder-pipe\",\n    \"svg\": \"folder-svg\",\n    \"svgs\": \"folder-svg\",\n    \"terraform\": \"folder-terraform\",\n    \".terraform\": \"folder-terraform\",\n    \"mobile\": \"folder-mobile\",\n    \"mobiles\": \"folder-mobile\",\n    \"portable\": \"folder-mobile\",\n    \"portability\": \"folder-mobile\",\n    \".stencil\": \"folder-stencil\",\n    \"firebase\": \"folder-firebase\",\n    \".firebase\": \"folder-firebase\",\n    \"svelte\": \"folder-svelte\",\n    \".svelte-kit\": \"folder-svelte\",\n    \"update\": \"folder-update\",\n    \"updates\": \"folder-update\",\n    \"upgrade\": \"folder-update\",\n    \"upgrades\": \"folder-update\",\n    \".idea\": \"folder-intellij\",\n    \".azure-pipelines\": \"folder-azure-pipelines\",\n    \".azure-pipelines-ci\": \"folder-azure-pipelines\",\n    \"mjml\": \"folder-mjml\",\n    \"admin\": \"folder-admin\",\n    \"manager\": \"folder-admin\",\n    \"moderator\": \"folder-admin\",\n    \"scala\": \"folder-scala\",\n    \"connection\": \"folder-connection\",\n    \"connections\": \"folder-connection\",\n    \"integration\": \"folder-connection\",\n    \"integrations\": \"folder-connection\",\n    \".quasar\": \"folder-quasar\",\n    \".next\": \"folder-next\",\n    \"cobol\": \"folder-cobol\",\n    \"yarn\": \"folder-yarn\",\n    \".yarn\": \"folder-yarn\",\n    \"husky\": \"folder-husky\",\n    \".husky\": \"folder-husky\",\n    \".storybook\": \"folder-storybook\",\n    \"storybook\": \"folder-storybook\",\n    \"stories\": \"folder-storybook\",\n    \"__stories__\": \"folder-storybook\",\n    \"base\": \"folder-base\",\n    \".base\": \"folder-base\",\n    \"bases\": \"folder-base\",\n    \"cart\": \"folder-cart\",\n    \"shopping-cart\": \"folder-cart\",\n    \"shopping\": \"folder-cart\",\n    \"shop\": \"folder-cart\",\n    \"home\": \"folder-home\",\n    \".home\": \"folder-home\",\n    \"start\": \"folder-home\",\n    \".start\": \"folder-home\",\n    \"project\": \"folder-project\",\n    \"projects\": \"folder-project\",\n    \".project\": \"folder-project\",\n    \".projects\": \"folder-project\",\n    \"interface\": \"folder-interface\",\n    \"interfaces\": \"folder-interface\",\n    \".netlify\": \"folder-netlify\",\n    \"pact\": \"folder-contract\",\n    \"pacts\": \"folder-contract\",\n    \"contract\": \"folder-contract\",\n    \".contract\": \"folder-contract\",\n    \"contracts\": \"folder-contract\",\n    \"contract-testing\": \"folder-contract\",\n    \"contract-test\": \"folder-contract\",\n    \"contract-tests\": \"folder-contract\",\n    \"queue\": \"folder-queue\",\n    \"queues\": \"folder-queue\",\n    \"bull\": \"folder-queue\",\n    \"mq\": \"folder-queue\",\n    \"vercel\": \"folder-vercel\",\n    \".vercel\": \"folder-vercel\",\n    \"now\": \"folder-vercel\",\n    \".now\": \"folder-vercel\",\n    \"cypress\": \"folder-cypress\",\n    \".cypress\": \"folder-cypress\",\n    \"decorator\": \"folder-decorators\",\n    \"decorators\": \"folder-decorators\",\n    \"java\": \"folder-java\",\n    \"resolver\": \"folder-resolver\",\n    \"resolvers\": \"folder-resolver\",\n    \"angular\": \"folder-angular\",\n    \".angular\": \"folder-angular\",\n    \"unity\": \"folder-unity\",\n    \"pdf\": \"folder-pdf\",\n    \"pdfs\": \"folder-pdf\",\n    \"protobufs\": \"folder-proto\",\n    \"proto\": \"folder-proto\",\n    \"plastic\": \"folder-plastic\",\n    \".plastic\": \"folder-plastic\",\n    \"gamemaker\": \"folder-gamemaker\",\n    \"gamemaker2\": \"folder-gamemaker\",\n    \".hg\": \"folder-mercurial\",\n    \"hghooks\": \"folder-mercurial\",\n    \".hghooks\": \"folder-mercurial\",\n    \".hgext\": \"folder-mercurial\",\n    \"godot\": \"folder-godot\",\n    \".godot\": \"folder-godot\",\n    \"godot-cpp\": \"folder-godot\",\n    \".godot-cpp\": \"folder-godot\"\n  },\n  \"folderNamesExpanded\": {\n    \"src\": \"folder-src-open\",\n    \"srcs\": \"folder-src-open\",\n    \"source\": \"folder-src-open\",\n    \"sources\": \"folder-src-open\",\n    \"code\": \"folder-src-open\",\n    \"dist\": \"folder-dist-open\",\n    \"out\": \"folder-dist-open\",\n    \"build\": \"folder-dist-open\",\n    \"release\": \"folder-dist-open\",\n    \"bin\": \"folder-dist-open\",\n    \"css\": \"folder-css-open\",\n    \"stylesheet\": \"folder-css-open\",\n    \"stylesheets\": \"folder-css-open\",\n    \"style\": \"folder-css-open\",\n    \"styles\": \"folder-css-open\",\n    \"sass\": \"folder-sass-open\",\n    \"_sass\": \"folder-sass-open\",\n    \"scss\": \"folder-sass-open\",\n    \"_scss\": \"folder-sass-open\",\n    \"_images\": \"folder-images-open\",\n    \"_image\": \"folder-images-open\",\n    \"_imgs\": \"folder-images-open\",\n    \"_img\": \"folder-images-open\",\n    \"images\": \"folder-images-open\",\n    \"image\": \"folder-images-open\",\n    \"imgs\": \"folder-images-open\",\n    \"img\": \"folder-images-open\",\n    \"icons\": \"folder-images-open\",\n    \"icon\": \"folder-images-open\",\n    \"icos\": \"folder-images-open\",\n    \"ico\": \"folder-images-open\",\n    \"figures\": \"folder-images-open\",\n    \"figure\": \"folder-images-open\",\n    \"figs\": \"folder-images-open\",\n    \"fig\": \"folder-images-open\",\n    \"screenshot\": \"folder-images-open\",\n    \"screenshots\": \"folder-images-open\",\n    \"screengrab\": \"folder-images-open\",\n    \"screengrabs\": \"folder-images-open\",\n    \"pic\": \"folder-images-open\",\n    \"pics\": \"folder-images-open\",\n    \"picture\": \"folder-images-open\",\n    \"pictures\": \"folder-images-open\",\n    \"script\": \"folder-scripts-open\",\n    \"scripts\": \"folder-scripts-open\",\n    \"node_modules\": \"folder-node-open\",\n    \"js\": \"folder-javascript-open\",\n    \"javascript\": \"folder-javascript-open\",\n    \"javascripts\": \"folder-javascript-open\",\n    \"json\": \"folder-json-open\",\n    \"jsons\": \"folder-json-open\",\n    \"font\": \"folder-font-open\",\n    \"fonts\": \"folder-font-open\",\n    \"bower_components\": \"folder-bower-open\",\n    \"test\": \"folder-test-open\",\n    \"tests\": \"folder-test-open\",\n    \"testing\": \"folder-test-open\",\n    \"__tests__\": \"folder-test-open\",\n    \"__snapshots__\": \"folder-test-open\",\n    \"__mocks__\": \"folder-test-open\",\n    \"__fixtures__\": \"folder-test-open\",\n    \"__test__\": \"folder-test-open\",\n    \"spec\": \"folder-test-open\",\n    \"specs\": \"folder-test-open\",\n    \"jinja\": \"folder-jinja-open\",\n    \"jinja2\": \"folder-jinja-open\",\n    \"j2\": \"folder-jinja-open\",\n    \"markdown\": \"folder-markdown-open\",\n    \"md\": \"folder-markdown-open\",\n    \"php\": \"folder-php-open\",\n    \"phpmailer\": \"folder-phpmailer-open\",\n    \"sublime\": \"folder-sublime-open\",\n    \"_post\": \"folder-docs-open\",\n    \"_posts\": \"folder-docs-open\",\n    \"doc\": \"folder-docs-open\",\n    \"docs\": \"folder-docs-open\",\n    \"document\": \"folder-docs-open\",\n    \"documents\": \"folder-docs-open\",\n    \"documentation\": \"folder-docs-open\",\n    \"post\": \"folder-docs-open\",\n    \"posts\": \"folder-docs-open\",\n    \"article\": \"folder-docs-open\",\n    \"articles\": \"folder-docs-open\",\n    \".git\": \"folder-git-open\",\n    \"patches\": \"folder-git-open\",\n    \"githooks\": \"folder-git-open\",\n    \".githooks\": \"folder-git-open\",\n    \"submodules\": \"folder-git-open\",\n    \".submodules\": \"folder-git-open\",\n    \".github\": \"folder-github-open\",\n    \"github\": \"folder-github-open\",\n    \".gitlab\": \"folder-gitlab-open\",\n    \".vscode\": \"folder-vscode-open\",\n    \".vscode-test\": \"folder-vscode-open\",\n    \"view\": \"folder-views-open\",\n    \"views\": \"folder-views-open\",\n    \"screen\": \"folder-views-open\",\n    \"screens\": \"folder-views-open\",\n    \"page\": \"folder-views-open\",\n    \"pages\": \"folder-views-open\",\n    \"html\": \"folder-views-open\",\n    \"vue\": \"folder-vue-open\",\n    \".vuepress\": \"folder-vuepress-open\",\n    \".expo\": \"folder-expo-open\",\n    \".expo-shared\": \"folder-expo-open\",\n    \"cfg\": \"folder-config-open\",\n    \"cfgs\": \"folder-config-open\",\n    \"conf\": \"folder-config-open\",\n    \"confs\": \"folder-config-open\",\n    \"config\": \"folder-config-open\",\n    \"configs\": \"folder-config-open\",\n    \"configuration\": \"folder-config-open\",\n    \"configurations\": \"folder-config-open\",\n    \"setting\": \"folder-config-open\",\n    \".setting\": \"folder-config-open\",\n    \"settings\": \"folder-config-open\",\n    \".settings\": \"folder-config-open\",\n    \"META-INF\": \"folder-config-open\",\n    \"i18n\": \"folder-i18n-open\",\n    \"internationalization\": \"folder-i18n-open\",\n    \"lang\": \"folder-i18n-open\",\n    \"langs\": \"folder-i18n-open\",\n    \"language\": \"folder-i18n-open\",\n    \"languages\": \"folder-i18n-open\",\n    \"locale\": \"folder-i18n-open\",\n    \"locales\": \"folder-i18n-open\",\n    \"l10n\": \"folder-i18n-open\",\n    \"localization\": \"folder-i18n-open\",\n    \"translation\": \"folder-i18n-open\",\n    \"translate\": \"folder-i18n-open\",\n    \"translations\": \"folder-i18n-open\",\n    \".tx\": \"folder-i18n-open\",\n    \"components\": \"folder-components-open\",\n    \"widget\": \"folder-components-open\",\n    \"widgets\": \"folder-components-open\",\n    \"fragments\": \"folder-components-open\",\n    \".verdaccio\": \"folder-verdaccio-open\",\n    \"verdaccio\": \"folder-verdaccio-open\",\n    \"aurelia_project\": \"folder-aurelia-open\",\n    \"resource\": \"folder-resource-open\",\n    \"resources\": \"folder-resource-open\",\n    \"res\": \"folder-resource-open\",\n    \"asset\": \"folder-resource-open\",\n    \"assets\": \"folder-resource-open\",\n    \"static\": \"folder-resource-open\",\n    \"report\": \"folder-resource-open\",\n    \"reports\": \"folder-resource-open\",\n    \"lib\": \"folder-lib-open\",\n    \"libs\": \"folder-lib-open\",\n    \"library\": \"folder-lib-open\",\n    \"libraries\": \"folder-lib-open\",\n    \"vendor\": \"folder-lib-open\",\n    \"vendors\": \"folder-lib-open\",\n    \"third-party\": \"folder-lib-open\",\n    \"themes\": \"folder-theme-open\",\n    \"theme\": \"folder-theme-open\",\n    \"color\": \"folder-theme-open\",\n    \"colors\": \"folder-theme-open\",\n    \"design\": \"folder-theme-open\",\n    \"designs\": \"folder-theme-open\",\n    \"webpack\": \"folder-webpack-open\",\n    \".webpack\": \"folder-webpack-open\",\n    \"global\": \"folder-global-open\",\n    \"_site\": \"folder-public-open\",\n    \"public\": \"folder-public-open\",\n    \"www\": \"folder-public-open\",\n    \"wwwroot\": \"folder-public-open\",\n    \"web\": \"folder-public-open\",\n    \"website\": \"folder-public-open\",\n    \"site\": \"folder-public-open\",\n    \"browser\": \"folder-public-open\",\n    \"browsers\": \"folder-public-open\",\n    \"include\": \"folder-include-open\",\n    \"includes\": \"folder-include-open\",\n    \"_includes\": \"folder-include-open\",\n    \"inc\": \"folder-include-open\",\n    \"partials\": \"folder-include-open\",\n    \"_partials\": \"folder-include-open\",\n    \"docker\": \"folder-docker-open\",\n    \"dockerfiles\": \"folder-docker-open\",\n    \".docker\": \"folder-docker-open\",\n    \"db\": \"folder-database-open\",\n    \"database\": \"folder-database-open\",\n    \"databases\": \"folder-database-open\",\n    \"sql\": \"folder-database-open\",\n    \"data\": \"folder-database-open\",\n    \"_data\": \"folder-database-open\",\n    \"log\": \"folder-log-open\",\n    \"logs\": \"folder-log-open\",\n    \"target\": \"folder-target-open\",\n    \"temp\": \"folder-temp-open\",\n    \".temp\": \"folder-temp-open\",\n    \"tmp\": \"folder-temp-open\",\n    \".tmp\": \"folder-temp-open\",\n    \"cached\": \"folder-temp-open\",\n    \"cache\": \"folder-temp-open\",\n    \".cache\": \"folder-temp-open\",\n    \"aws\": \"folder-aws-open\",\n    \".aws\": \"folder-aws-open\",\n    \"aud\": \"folder-audio-open\",\n    \"auds\": \"folder-audio-open\",\n    \"audio\": \"folder-audio-open\",\n    \"audios\": \"folder-audio-open\",\n    \"music\": \"folder-audio-open\",\n    \"sound\": \"folder-audio-open\",\n    \"sounds\": \"folder-audio-open\",\n    \"vid\": \"folder-video-open\",\n    \"vids\": \"folder-video-open\",\n    \"video\": \"folder-video-open\",\n    \"videos\": \"folder-video-open\",\n    \"movie\": \"folder-video-open\",\n    \"movies\": \"folder-video-open\",\n    \"kubernetes\": \"folder-kubernetes-open\",\n    \".kubernetes\": \"folder-kubernetes-open\",\n    \"k8s\": \"folder-kubernetes-open\",\n    \".k8s\": \"folder-kubernetes-open\",\n    \"import\": \"folder-import-open\",\n    \"imports\": \"folder-import-open\",\n    \"imported\": \"folder-import-open\",\n    \"export\": \"folder-export-open\",\n    \"exports\": \"folder-export-open\",\n    \"exported\": \"folder-export-open\",\n    \"wakatime\": \"folder-wakatime-open\",\n    \".circleci\": \"folder-circleci-open\",\n    \".wordpress-org\": \"folder-wordpress-open\",\n    \"wp-content\": \"folder-wordpress-open\",\n    \"gradle\": \"folder-gradle-open\",\n    \".gradle\": \"folder-gradle-open\",\n    \"coverage\": \"folder-coverage-open\",\n    \".nyc-output\": \"folder-coverage-open\",\n    \".nyc_output\": \"folder-coverage-open\",\n    \"e2e\": \"folder-coverage-open\",\n    \"it\": \"folder-coverage-open\",\n    \"integration-test\": \"folder-coverage-open\",\n    \"integration-tests\": \"folder-coverage-open\",\n    \"__integration-test__\": \"folder-coverage-open\",\n    \"__integration-tests__\": \"folder-coverage-open\",\n    \"class\": \"folder-class-open\",\n    \"classes\": \"folder-class-open\",\n    \"model\": \"folder-class-open\",\n    \"models\": \"folder-class-open\",\n    \"schemas\": \"folder-class-open\",\n    \"schema\": \"folder-class-open\",\n    \"other\": \"folder-other-open\",\n    \"others\": \"folder-other-open\",\n    \"misc\": \"folder-other-open\",\n    \"miscellaneous\": \"folder-other-open\",\n    \"extra\": \"folder-other-open\",\n    \"extras\": \"folder-other-open\",\n    \"etc\": \"folder-other-open\",\n    \"lua\": \"folder-lua-open\",\n    \"typescript\": \"folder-typescript-open\",\n    \"ts\": \"folder-typescript-open\",\n    \"typings\": \"folder-typescript-open\",\n    \"@types\": \"folder-typescript-open\",\n    \"types\": \"folder-typescript-open\",\n    \"graphql\": \"folder-graphql-open\",\n    \"gql\": \"folder-graphql-open\",\n    \"routes\": \"folder-routes-open\",\n    \"router\": \"folder-routes-open\",\n    \"routers\": \"folder-routes-open\",\n    \".ci\": \"folder-ci-open\",\n    \"ci\": \"folder-ci-open\",\n    \"benchmark\": \"folder-benchmark-open\",\n    \"benchmarks\": \"folder-benchmark-open\",\n    \"performance\": \"folder-benchmark-open\",\n    \"measure\": \"folder-benchmark-open\",\n    \"measures\": \"folder-benchmark-open\",\n    \"measurement\": \"folder-benchmark-open\",\n    \"messages\": \"folder-messages-open\",\n    \"messaging\": \"folder-messages-open\",\n    \"forum\": \"folder-messages-open\",\n    \"chat\": \"folder-messages-open\",\n    \"chats\": \"folder-messages-open\",\n    \"conversation\": \"folder-messages-open\",\n    \"conversations\": \"folder-messages-open\",\n    \"less\": \"folder-less-open\",\n    \"gulp\": \"folder-gulp-open\",\n    \"gulp-tasks\": \"folder-gulp-open\",\n    \"gulpfile.js\": \"folder-gulp-open\",\n    \"gulpfile.mjs\": \"folder-gulp-open\",\n    \"gulpfile.ts\": \"folder-gulp-open\",\n    \"gulpfile.babel.js\": \"folder-gulp-open\",\n    \"python\": \"folder-python-open\",\n    \"__pycache__\": \"folder-python-open\",\n    \".pytest_cache\": \"folder-python-open\",\n    \"debug\": \"folder-debug-open\",\n    \"debugging\": \"folder-debug-open\",\n    \"fastlane\": \"folder-fastlane-open\",\n    \"plugin\": \"folder-plugin-open\",\n    \"plugins\": \"folder-plugin-open\",\n    \"_plugins\": \"folder-plugin-open\",\n    \"extension\": \"folder-plugin-open\",\n    \"extensions\": \"folder-plugin-open\",\n    \"addon\": \"folder-plugin-open\",\n    \"addons\": \"folder-plugin-open\",\n    \"module\": \"folder-plugin-open\",\n    \"modules\": \"folder-plugin-open\",\n    \"middleware\": \"folder-middleware-open\",\n    \"middlewares\": \"folder-middleware-open\",\n    \"controller\": \"folder-controller-open\",\n    \"controllers\": \"folder-controller-open\",\n    \"service\": \"folder-controller-open\",\n    \"services\": \"folder-controller-open\",\n    \"provider\": \"folder-controller-open\",\n    \"providers\": \"folder-controller-open\",\n    \"handler\": \"folder-controller-open\",\n    \"handlers\": \"folder-controller-open\",\n    \"ansible\": \"folder-ansible-open\",\n    \"server\": \"folder-server-open\",\n    \"servers\": \"folder-server-open\",\n    \"backend\": \"folder-server-open\",\n    \"client\": \"folder-client-open\",\n    \"clients\": \"folder-client-open\",\n    \"frontend\": \"folder-client-open\",\n    \"pwa\": \"folder-client-open\",\n    \"tasks\": \"folder-tasks-open\",\n    \"tickets\": \"folder-tasks-open\",\n    \"android\": \"folder-android-open\",\n    \"ios\": \"folder-ios-open\",\n    \"uploads\": \"folder-upload-open\",\n    \"upload\": \"folder-upload-open\",\n    \"downloads\": \"folder-download-open\",\n    \"download\": \"folder-download-open\",\n    \"tools\": \"folder-tools-open\",\n    \"toolkit\": \"folder-tools-open\",\n    \"toolkits\": \"folder-tools-open\",\n    \"toolbox\": \"folder-tools-open\",\n    \"toolboxes\": \"folder-tools-open\",\n    \"helpers\": \"folder-helper-open\",\n    \"helper\": \"folder-helper-open\",\n    \".serverless\": \"folder-serverless-open\",\n    \"serverless\": \"folder-serverless-open\",\n    \"api\": \"folder-api-open\",\n    \"apis\": \"folder-api-open\",\n    \"restapi\": \"folder-api-open\",\n    \"app\": \"folder-app-open\",\n    \"apps\": \"folder-app-open\",\n    \"apollo\": \"folder-apollo-open\",\n    \"apollo-client\": \"folder-apollo-open\",\n    \"apollo-cache\": \"folder-apollo-open\",\n    \"apollo-config\": \"folder-apollo-open\",\n    \"arc\": \"folder-archive-open\",\n    \"arcs\": \"folder-archive-open\",\n    \"archive\": \"folder-archive-open\",\n    \"archives\": \"folder-archive-open\",\n    \"archival\": \"folder-archive-open\",\n    \"bkp\": \"folder-archive-open\",\n    \"bkps\": \"folder-archive-open\",\n    \"bak\": \"folder-archive-open\",\n    \"baks\": \"folder-archive-open\",\n    \"backup\": \"folder-archive-open\",\n    \"backups\": \"folder-archive-open\",\n    \"back-up\": \"folder-archive-open\",\n    \"back-ups\": \"folder-archive-open\",\n    \"batch\": \"folder-batch-open\",\n    \"batchs\": \"folder-batch-open\",\n    \"batches\": \"folder-batch-open\",\n    \"buildkite\": \"folder-buildkite-open\",\n    \".buildkite\": \"folder-buildkite-open\",\n    \"cluster\": \"folder-cluster-open\",\n    \"clusters\": \"folder-cluster-open\",\n    \"command\": \"folder-command-open\",\n    \"commands\": \"folder-command-open\",\n    \"cmd\": \"folder-command-open\",\n    \"cli\": \"folder-command-open\",\n    \"clis\": \"folder-command-open\",\n    \"constant\": \"folder-constant-open\",\n    \"constants\": \"folder-constant-open\",\n    \"container\": \"folder-container-open\",\n    \"containers\": \"folder-container-open\",\n    \".devcontainer\": \"folder-container-open\",\n    \"content\": \"folder-content-open\",\n    \"contents\": \"folder-content-open\",\n    \"context\": \"folder-context-open\",\n    \"contexts\": \"folder-context-open\",\n    \"core\": \"folder-core-open\",\n    \"delta\": \"folder-delta-open\",\n    \"deltas\": \"folder-delta-open\",\n    \"changes\": \"folder-delta-open\",\n    \"dump\": \"folder-dump-open\",\n    \"dumps\": \"folder-dump-open\",\n    \"demo\": \"folder-examples-open\",\n    \"demos\": \"folder-examples-open\",\n    \"example\": \"folder-examples-open\",\n    \"examples\": \"folder-examples-open\",\n    \"sample\": \"folder-examples-open\",\n    \"samples\": \"folder-examples-open\",\n    \"sample-data\": \"folder-examples-open\",\n    \".env\": \"folder-environment-open\",\n    \".environment\": \"folder-environment-open\",\n    \"env\": \"folder-environment-open\",\n    \"envs\": \"folder-environment-open\",\n    \"environment\": \"folder-environment-open\",\n    \"environments\": \"folder-environment-open\",\n    \".venv\": \"folder-environment-open\",\n    \"func\": \"folder-functions-open\",\n    \"funcs\": \"folder-functions-open\",\n    \"function\": \"folder-functions-open\",\n    \"functions\": \"folder-functions-open\",\n    \"lambda\": \"folder-functions-open\",\n    \"lambdas\": \"folder-functions-open\",\n    \"logic\": \"folder-functions-open\",\n    \"math\": \"folder-functions-open\",\n    \"maths\": \"folder-functions-open\",\n    \"calc\": \"folder-functions-open\",\n    \"calcs\": \"folder-functions-open\",\n    \"calculation\": \"folder-functions-open\",\n    \"calculations\": \"folder-functions-open\",\n    \"generator\": \"folder-generator-open\",\n    \"generators\": \"folder-generator-open\",\n    \"generated\": \"folder-generator-open\",\n    \"cfn-gen\": \"folder-generator-open\",\n    \"gen\": \"folder-generator-open\",\n    \"gens\": \"folder-generator-open\",\n    \"auto\": \"folder-generator-open\",\n    \"hook\": \"folder-hook-open\",\n    \"hooks\": \"folder-hook-open\",\n    \"trigger\": \"folder-hook-open\",\n    \"triggers\": \"folder-hook-open\",\n    \"job\": \"folder-job-open\",\n    \"jobs\": \"folder-job-open\",\n    \"keys\": \"folder-keys-open\",\n    \"key\": \"folder-keys-open\",\n    \"token\": \"folder-keys-open\",\n    \"tokens\": \"folder-keys-open\",\n    \"jwt\": \"folder-keys-open\",\n    \"layout\": \"folder-layout-open\",\n    \"layouts\": \"folder-layout-open\",\n    \"_layouts\": \"folder-layout-open\",\n    \"mail\": \"folder-mail-open\",\n    \"mails\": \"folder-mail-open\",\n    \"email\": \"folder-mail-open\",\n    \"emails\": \"folder-mail-open\",\n    \"smtp\": \"folder-mail-open\",\n    \"mailers\": \"folder-mail-open\",\n    \"mappings\": \"folder-mappings-open\",\n    \"mapping\": \"folder-mappings-open\",\n    \"meta\": \"folder-meta-open\",\n    \".changesets\": \"folder-changesets-open\",\n    \".changeset\": \"folder-changesets-open\",\n    \"package\": \"folder-packages-open\",\n    \"packages\": \"folder-packages-open\",\n    \"pkg\": \"folder-packages-open\",\n    \"pkgs\": \"folder-packages-open\",\n    \"shared\": \"folder-shared-open\",\n    \"common\": \"folder-shared-open\",\n    \"glsl\": \"folder-shader-open\",\n    \"hlsl\": \"folder-shader-open\",\n    \"shader\": \"folder-shader-open\",\n    \"shaders\": \"folder-shader-open\",\n    \"stack\": \"folder-stack-open\",\n    \"stacks\": \"folder-stack-open\",\n    \"template\": \"folder-template-open\",\n    \"templates\": \"folder-template-open\",\n    \"util\": \"folder-utils-open\",\n    \"utils\": \"folder-utils-open\",\n    \"utility\": \"folder-utils-open\",\n    \"utilities\": \"folder-utils-open\",\n    \"supabase\": \"folder-supabase-open\",\n    \".supabase\": \"folder-supabase-open\",\n    \"private\": \"folder-private-open\",\n    \".private\": \"folder-private-open\",\n    \"error\": \"folder-error-open\",\n    \"errors\": \"folder-error-open\",\n    \"err\": \"folder-error-open\",\n    \"event\": \"folder-event-open\",\n    \"events\": \"folder-event-open\",\n    \"auth\": \"folder-secure-open\",\n    \"authentication\": \"folder-secure-open\",\n    \"secure\": \"folder-secure-open\",\n    \"security\": \"folder-secure-open\",\n    \"cert\": \"folder-secure-open\",\n    \"certs\": \"folder-secure-open\",\n    \"certificate\": \"folder-secure-open\",\n    \"certificates\": \"folder-secure-open\",\n    \"ssl\": \"folder-secure-open\",\n    \"custom\": \"folder-custom-open\",\n    \"customs\": \"folder-custom-open\",\n    \"_draft\": \"folder-mock-open\",\n    \"_drafts\": \"folder-mock-open\",\n    \"mock\": \"folder-mock-open\",\n    \"mocks\": \"folder-mock-open\",\n    \"fixture\": \"folder-mock-open\",\n    \"fixtures\": \"folder-mock-open\",\n    \"draft\": \"folder-mock-open\",\n    \"drafts\": \"folder-mock-open\",\n    \"concept\": \"folder-mock-open\",\n    \"concepts\": \"folder-mock-open\",\n    \"sketch\": \"folder-mock-open\",\n    \"sketches\": \"folder-mock-open\",\n    \"syntax\": \"folder-syntax-open\",\n    \"syntaxes\": \"folder-syntax-open\",\n    \"spellcheck\": \"folder-syntax-open\",\n    \"vm\": \"folder-vm-open\",\n    \"vms\": \"folder-vm-open\",\n    \"stylus\": \"folder-stylus-open\",\n    \"flow-typed\": \"folder-flow-open\",\n    \"rule\": \"folder-rules-open\",\n    \"rules\": \"folder-rules-open\",\n    \"validation\": \"folder-rules-open\",\n    \"validations\": \"folder-rules-open\",\n    \"validator\": \"folder-rules-open\",\n    \"validators\": \"folder-rules-open\",\n    \"review\": \"folder-review-open\",\n    \"reviews\": \"folder-review-open\",\n    \"revisal\": \"folder-review-open\",\n    \"revisals\": \"folder-review-open\",\n    \"reviewed\": \"folder-review-open\",\n    \"anim\": \"folder-animation-open\",\n    \"anims\": \"folder-animation-open\",\n    \"animation\": \"folder-animation-open\",\n    \"animations\": \"folder-animation-open\",\n    \"animated\": \"folder-animation-open\",\n    \"guard\": \"folder-guard-open\",\n    \"guards\": \"folder-guard-open\",\n    \"prisma\": \"folder-prisma-open\",\n    \"pipe\": \"folder-pipe-open\",\n    \"pipes\": \"folder-pipe-open\",\n    \"svg\": \"folder-svg-open\",\n    \"svgs\": \"folder-svg-open\",\n    \"terraform\": \"folder-terraform-open\",\n    \".terraform\": \"folder-terraform-open\",\n    \"mobile\": \"folder-mobile-open\",\n    \"mobiles\": \"folder-mobile-open\",\n    \"portable\": \"folder-mobile-open\",\n    \"portability\": \"folder-mobile-open\",\n    \".stencil\": \"folder-stencil-open\",\n    \"firebase\": \"folder-firebase-open\",\n    \".firebase\": \"folder-firebase-open\",\n    \"svelte\": \"folder-svelte-open\",\n    \".svelte-kit\": \"folder-svelte-open\",\n    \"update\": \"folder-update-open\",\n    \"updates\": \"folder-update-open\",\n    \"upgrade\": \"folder-update-open\",\n    \"upgrades\": \"folder-update-open\",\n    \".idea\": \"folder-intellij-open\",\n    \".azure-pipelines\": \"folder-azure-pipelines-open\",\n    \".azure-pipelines-ci\": \"folder-azure-pipelines-open\",\n    \"mjml\": \"folder-mjml-open\",\n    \"admin\": \"folder-admin-open\",\n    \"manager\": \"folder-admin-open\",\n    \"moderator\": \"folder-admin-open\",\n    \"scala\": \"folder-scala-open\",\n    \"connection\": \"folder-connection-open\",\n    \"connections\": \"folder-connection-open\",\n    \"integration\": \"folder-connection-open\",\n    \"integrations\": \"folder-connection-open\",\n    \".quasar\": \"folder-quasar-open\",\n    \".next\": \"folder-next-open\",\n    \"cobol\": \"folder-cobol-open\",\n    \"yarn\": \"folder-yarn-open\",\n    \".yarn\": \"folder-yarn-open\",\n    \"husky\": \"folder-husky-open\",\n    \".husky\": \"folder-husky-open\",\n    \".storybook\": \"folder-storybook-open\",\n    \"storybook\": \"folder-storybook-open\",\n    \"stories\": \"folder-storybook-open\",\n    \"__stories__\": \"folder-storybook-open\",\n    \"base\": \"folder-base-open\",\n    \".base\": \"folder-base-open\",\n    \"bases\": \"folder-base-open\",\n    \"cart\": \"folder-cart-open\",\n    \"shopping-cart\": \"folder-cart-open\",\n    \"shopping\": \"folder-cart-open\",\n    \"shop\": \"folder-cart-open\",\n    \"home\": \"folder-home-open\",\n    \".home\": \"folder-home-open\",\n    \"start\": \"folder-home-open\",\n    \".start\": \"folder-home-open\",\n    \"project\": \"folder-project-open\",\n    \"projects\": \"folder-project-open\",\n    \".project\": \"folder-project-open\",\n    \".projects\": \"folder-project-open\",\n    \"interface\": \"folder-interface-open\",\n    \"interfaces\": \"folder-interface-open\",\n    \".netlify\": \"folder-netlify-open\",\n    \"pact\": \"folder-contract-open\",\n    \"pacts\": \"folder-contract-open\",\n    \"contract\": \"folder-contract-open\",\n    \".contract\": \"folder-contract-open\",\n    \"contracts\": \"folder-contract-open\",\n    \"contract-testing\": \"folder-contract-open\",\n    \"contract-test\": \"folder-contract-open\",\n    \"contract-tests\": \"folder-contract-open\",\n    \"queue\": \"folder-queue-open\",\n    \"queues\": \"folder-queue-open\",\n    \"bull\": \"folder-queue-open\",\n    \"mq\": \"folder-queue-open\",\n    \"vercel\": \"folder-vercel-open\",\n    \".vercel\": \"folder-vercel-open\",\n    \"now\": \"folder-vercel-open\",\n    \".now\": \"folder-vercel-open\",\n    \"cypress\": \"folder-cypress-open\",\n    \".cypress\": \"folder-cypress-open\",\n    \"decorator\": \"folder-decorators-open\",\n    \"decorators\": \"folder-decorators-open\",\n    \"java\": \"folder-java-open\",\n    \"resolver\": \"folder-resolver-open\",\n    \"resolvers\": \"folder-resolver-open\",\n    \"angular\": \"folder-angular-open\",\n    \".angular\": \"folder-angular-open\",\n    \"unity\": \"folder-unity-open\",\n    \"pdf\": \"folder-pdf-open\",\n    \"pdfs\": \"folder-pdf-open\",\n    \"protobufs\": \"folder-proto-open\",\n    \"proto\": \"folder-proto-open\",\n    \"plastic\": \"folder-plastic-open\",\n    \".plastic\": \"folder-plastic-open\",\n    \"gamemaker\": \"folder-gamemaker-open\",\n    \"gamemaker2\": \"folder-gamemaker-open\",\n    \".hg\": \"folder-mercurial-open\",\n    \"hghooks\": \"folder-mercurial-open\",\n    \".hghooks\": \"folder-mercurial-open\",\n    \".hgext\": \"folder-mercurial-open\",\n    \"godot\": \"folder-godot-open\",\n    \".godot\": \"folder-godot-open\",\n    \"godot-cpp\": \"folder-godot-open\",\n    \".godot-cpp\": \"folder-godot-open\"\n  },\n  \"fileExtensions\": {\n    \"htm\": \"html\",\n    \"xhtml\": \"html\",\n    \"html_vm\": \"html\",\n    \"asp\": \"html\",\n    \"jade\": \"pug\",\n    \"pug\": \"pug\",\n    \"md\": \"markdown\",\n    \"markdown\": \"markdown\",\n    \"rst\": \"markdown\",\n    \"blink\": \"blink\",\n    \"css\": \"css\",\n    \"scss\": \"sass\",\n    \"sass\": \"sass\",\n    \"less\": \"less\",\n    \"json\": \"json\",\n    \"jsonc\": \"json\",\n    \"tsbuildinfo\": \"json\",\n    \"json5\": \"json\",\n    \"jsonl\": \"json\",\n    \"ndjson\": \"json\",\n    \"jinja\": \"jinja\",\n    \"jinja2\": \"jinja\",\n    \"j2\": \"jinja\",\n    \"jinja-html\": \"jinja\",\n    \"proto\": \"proto\",\n    \"sublime-project\": \"sublime\",\n    \"sublime-workspace\": \"sublime\",\n    \"tw\": \"twine\",\n    \"twee\": \"twine\",\n    \"yml\": \"yaml\",\n    \"yaml\": \"yaml\",\n    \"yml.dist\": \"yaml\",\n    \"yaml.dist\": \"yaml\",\n    \"YAML-tmLanguage\": \"yaml\",\n    \"xml\": \"xml\",\n    \"plist\": \"xml\",\n    \"xsd\": \"xml\",\n    \"dtd\": \"xml\",\n    \"xsl\": \"xml\",\n    \"xslt\": \"xml\",\n    \"resx\": \"xml\",\n    \"iml\": \"xml\",\n    \"xquery\": \"xml\",\n    \"tmLanguage\": \"xml\",\n    \"manifest\": \"xml\",\n    \"project\": \"xml\",\n    \"xml.dist\": \"xml\",\n    \"xml.dist.sample\": \"xml\",\n    \"dmn\": \"xml\",\n    \"jrxml\": \"xml\",\n    \"png\": \"image\",\n    \"jpeg\": \"image\",\n    \"jpg\": \"image\",\n    \"gif\": \"image\",\n    \"ico\": \"image\",\n    \"tif\": \"image\",\n    \"tiff\": \"image\",\n    \"psd\": \"image\",\n    \"psb\": \"image\",\n    \"ami\": \"image\",\n    \"apx\": \"image\",\n    \"avif\": \"image\",\n    \"bmp\": \"image\",\n    \"bpg\": \"image\",\n    \"brk\": \"image\",\n    \"cur\": \"image\",\n    \"dds\": \"image\",\n    \"dng\": \"image\",\n    \"exr\": \"image\",\n    \"fpx\": \"image\",\n    \"gbr\": \"image\",\n    \"img\": \"image\",\n    \"jbig2\": \"image\",\n    \"jb2\": \"image\",\n    \"jng\": \"image\",\n    \"jxr\": \"image\",\n    \"pgf\": \"image\",\n    \"pic\": \"image\",\n    \"raw\": \"image\",\n    \"webp\": \"image\",\n    \"eps\": \"image\",\n    \"afphoto\": \"image\",\n    \"ase\": \"image\",\n    \"aseprite\": \"image\",\n    \"clip\": \"image\",\n    \"cpt\": \"image\",\n    \"heif\": \"image\",\n    \"heic\": \"image\",\n    \"kra\": \"image\",\n    \"mdp\": \"image\",\n    \"ora\": \"image\",\n    \"pdn\": \"image\",\n    \"reb\": \"image\",\n    \"sai\": \"image\",\n    \"tga\": \"image\",\n    \"xcf\": \"image\",\n    \"jfif\": \"image\",\n    \"ppm\": \"image\",\n    \"pbm\": \"image\",\n    \"pgm\": \"image\",\n    \"pnm\": \"image\",\n    \"icns\": \"image\",\n    \"esx\": \"javascript\",\n    \"mjs\": \"javascript\",\n    \"jsx\": \"react\",\n    \"tsx\": \"react_ts\",\n    \"routing.ts\": \"routing\",\n    \"routing.tsx\": \"routing\",\n    \"routing.js\": \"routing\",\n    \"routing.jsx\": \"routing\",\n    \"routes.ts\": \"routing\",\n    \"routes.tsx\": \"routing\",\n    \"routes.js\": \"routing\",\n    \"routes.jsx\": \"routing\",\n    \"ini\": \"settings\",\n    \"dlc\": \"settings\",\n    \"dll\": \"settings\",\n    \"config\": \"settings\",\n    \"conf\": \"settings\",\n    \"properties\": \"settings\",\n    \"prop\": \"settings\",\n    \"settings\": \"settings\",\n    \"option\": \"settings\",\n    \"props\": \"settings\",\n    \"toml\": \"settings\",\n    \"prefs\": \"settings\",\n    \"sln.dotsettings\": \"settings\",\n    \"sln.dotsettings.user\": \"settings\",\n    \"cfg\": \"settings\",\n    \"d.ts\": \"typescript-def\",\n    \"d.cts\": \"typescript-def\",\n    \"d.mts\": \"typescript-def\",\n    \"marko\": \"markojs\",\n    \"astro\": \"astro\",\n    \"pdf\": \"pdf\",\n    \"xlsx\": \"table\",\n    \"xlsm\": \"table\",\n    \"xls\": \"table\",\n    \"csv\": \"table\",\n    \"tsv\": \"table\",\n    \"psv\": \"table\",\n    \"ods\": \"table\",\n    \"vscodeignore\": \"vscode\",\n    \"vsixmanifest\": \"vscode\",\n    \"vsix\": \"vscode\",\n    \"code-workplace\": \"vscode\",\n    \"code-workspace\": \"vscode\",\n    \"code-profile\": \"vscode\",\n    \"code-snippets\": \"vscode\",\n    \"csproj\": \"visualstudio\",\n    \"ruleset\": \"visualstudio\",\n    \"sln\": \"visualstudio\",\n    \"suo\": \"visualstudio\",\n    \"vb\": \"visualstudio\",\n    \"vbs\": \"visualstudio\",\n    \"vcxitems\": \"visualstudio\",\n    \"vcxitems.filters\": \"visualstudio\",\n    \"vcxproj\": \"visualstudio\",\n    \"vcxproj.filters\": \"visualstudio\",\n    \"pdb\": \"database\",\n    \"sql\": \"database\",\n    \"pks\": \"database\",\n    \"pkb\": \"database\",\n    \"accdb\": \"database\",\n    \"mdb\": \"database\",\n    \"sqlite\": \"database\",\n    \"sqlite3\": \"database\",\n    \"pgsql\": \"database\",\n    \"postgres\": \"database\",\n    \"psql\": \"database\",\n    \"db\": \"database\",\n    \"db3\": \"database\",\n    \"kql\": \"kusto\",\n    \"cs\": \"csharp\",\n    \"csx\": \"csharp\",\n    \"qs\": \"qsharp\",\n    \"zip\": \"zip\",\n    \"tar\": \"zip\",\n    \"gz\": \"zip\",\n    \"xz\": \"zip\",\n    \"lzma\": \"zip\",\n    \"lz4\": \"zip\",\n    \"br\": \"zip\",\n    \"bz2\": \"zip\",\n    \"bzip2\": \"zip\",\n    \"gzip\": \"zip\",\n    \"brotli\": \"zip\",\n    \"7z\": \"zip\",\n    \"rar\": \"zip\",\n    \"tz\": \"zip\",\n    \"txz\": \"zip\",\n    \"tgz\": \"zip\",\n    \"vala\": \"vala\",\n    \"zig\": \"zig\",\n    \"exe\": \"exe\",\n    \"msi\": \"exe\",\n    \"dat\": \"hex\",\n    \"bin\": \"hex\",\n    \"hex\": \"hex\",\n    \"java\": \"java\",\n    \"jsp\": \"java\",\n    \"jar\": \"jar\",\n    \"class\": \"javaclass\",\n    \"c\": \"c\",\n    \"i\": \"c\",\n    \"mi\": \"c\",\n    \"h\": \"h\",\n    \"cc\": \"cpp\",\n    \"cpp\": \"cpp\",\n    \"cxx\": \"cpp\",\n    \"c++\": \"cpp\",\n    \"cp\": \"cpp\",\n    \"mii\": \"cpp\",\n    \"ii\": \"cpp\",\n    \"hh\": \"hpp\",\n    \"hpp\": \"hpp\",\n    \"hxx\": \"hpp\",\n    \"h++\": \"hpp\",\n    \"hp\": \"hpp\",\n    \"tcc\": \"hpp\",\n    \"inl\": \"hpp\",\n    \"m\": \"objective-c\",\n    \"mm\": \"objective-cpp\",\n    \"rc\": \"rc\",\n    \"go\": \"go\",\n    \"py\": \"python\",\n    \"pyc\": \"python-misc\",\n    \"whl\": \"python-misc\",\n    \"url\": \"url\",\n    \"sh\": \"console\",\n    \"ksh\": \"console\",\n    \"csh\": \"console\",\n    \"tcsh\": \"console\",\n    \"zsh\": \"console\",\n    \"bash\": \"console\",\n    \"bat\": \"console\",\n    \"cmd\": \"console\",\n    \"awk\": \"console\",\n    \"fish\": \"console\",\n    \"exp\": \"console\",\n    \"nu\": \"console\",\n    \"ps1\": \"powershell\",\n    \"psm1\": \"powershell\",\n    \"psd1\": \"powershell\",\n    \"ps1xml\": \"powershell\",\n    \"psc1\": \"powershell\",\n    \"pssc\": \"powershell\",\n    \"gradle\": \"gradle\",\n    \"doc\": \"word\",\n    \"docx\": \"word\",\n    \"rtf\": \"word\",\n    \"odt\": \"word\",\n    \"cer\": \"certificate\",\n    \"cert\": \"certificate\",\n    \"crt\": \"certificate\",\n    \"pub\": \"key\",\n    \"key\": \"key\",\n    \"pem\": \"key\",\n    \"asc\": \"key\",\n    \"gpg\": \"key\",\n    \"passwd\": \"key\",\n    \"woff\": \"font\",\n    \"woff2\": \"font\",\n    \"ttf\": \"font\",\n    \"eot\": \"font\",\n    \"suit\": \"font\",\n    \"otf\": \"font\",\n    \"bmap\": \"font\",\n    \"fnt\": \"font\",\n    \"odttf\": \"font\",\n    \"ttc\": \"font\",\n    \"font\": \"font\",\n    \"fonts\": \"font\",\n    \"sui\": \"font\",\n    \"ntf\": \"font\",\n    \"mrf\": \"font\",\n    \"lib\": \"lib\",\n    \"bib\": \"lib\",\n    \"rb\": \"ruby\",\n    \"erb\": \"ruby\",\n    \"fs\": \"fsharp\",\n    \"fsx\": \"fsharp\",\n    \"fsi\": \"fsharp\",\n    \"fsproj\": \"fsharp\",\n    \"swift\": \"swift\",\n    \"ino\": \"arduino\",\n    \"dockerignore\": \"docker\",\n    \"dockerfile\": \"docker\",\n    \"docker-compose.yml\": \"docker\",\n    \"docker-compose.yaml\": \"docker\",\n    \"compose.yaml\": \"docker\",\n    \"compose.yml\": \"docker\",\n    \"tex\": \"tex\",\n    \"sty\": \"tex\",\n    \"dtx\": \"tex\",\n    \"ltx\": \"tex\",\n    \"pptx\": \"powerpoint\",\n    \"ppt\": \"powerpoint\",\n    \"pptm\": \"powerpoint\",\n    \"potx\": \"powerpoint\",\n    \"potm\": \"powerpoint\",\n    \"ppsx\": \"powerpoint\",\n    \"ppsm\": \"powerpoint\",\n    \"pps\": \"powerpoint\",\n    \"ppam\": \"powerpoint\",\n    \"ppa\": \"powerpoint\",\n    \"odp\": \"powerpoint\",\n    \"webm\": \"video\",\n    \"mkv\": \"video\",\n    \"flv\": \"video\",\n    \"vob\": \"video\",\n    \"ogv\": \"video\",\n    \"ogg\": \"video\",\n    \"gifv\": \"video\",\n    \"avi\": \"video\",\n    \"mov\": \"video\",\n    \"qt\": \"video\",\n    \"wmv\": \"video\",\n    \"yuv\": \"video\",\n    \"rm\": \"video\",\n    \"rmvb\": \"video\",\n    \"mp4\": \"video\",\n    \"m4v\": \"video\",\n    \"mpg\": \"video\",\n    \"mp2\": \"video\",\n    \"mpeg\": \"video\",\n    \"mpe\": \"video\",\n    \"mpv\": \"video\",\n    \"m2v\": \"video\",\n    \"vdi\": \"virtual\",\n    \"vbox\": \"virtual\",\n    \"vbox-prev\": \"virtual\",\n    \"ics\": \"email\",\n    \"mp3\": \"audio\",\n    \"flac\": \"audio\",\n    \"m4a\": \"audio\",\n    \"wma\": \"audio\",\n    \"aiff\": \"audio\",\n    \"wav\": \"audio\",\n    \"coffee\": \"coffee\",\n    \"cson\": \"coffee\",\n    \"iced\": \"coffee\",\n    \"txt\": \"document\",\n    \"graphql\": \"graphql\",\n    \"gql\": \"graphql\",\n    \"rs\": \"rust\",\n    \"ron\": \"rust\",\n    \"raml\": \"raml\",\n    \"xaml\": \"xaml\",\n    \"hs\": \"haskell\",\n    \"kt\": \"kotlin\",\n    \"kts\": \"kotlin\",\n    \"otne\": \"otne\",\n    \"patch\": \"git\",\n    \"lua\": \"lua\",\n    \"clj\": \"clojure\",\n    \"cljs\": \"clojure\",\n    \"cljc\": \"clojure\",\n    \"groovy\": \"groovy\",\n    \"r\": \"r\",\n    \"rmd\": \"r\",\n    \"dart\": \"dart\",\n    \"freezed.dart\": \"dart_generated\",\n    \"g.dart\": \"dart_generated\",\n    \"as\": \"actionscript\",\n    \"mxml\": \"mxml\",\n    \"ahk\": \"autohotkey\",\n    \"swf\": \"flash\",\n    \"swc\": \"swc\",\n    \"cmake\": \"cmake\",\n    \"asm\": \"assembly\",\n    \"a51\": \"assembly\",\n    \"inc\": \"assembly\",\n    \"nasm\": \"assembly\",\n    \"s\": \"assembly\",\n    \"ms\": \"assembly\",\n    \"agc\": \"assembly\",\n    \"ags\": \"assembly\",\n    \"aea\": \"assembly\",\n    \"argus\": \"assembly\",\n    \"mitigus\": \"assembly\",\n    \"binsource\": \"assembly\",\n    \"vue\": \"vue\",\n    \"ml\": \"ocaml\",\n    \"mli\": \"ocaml\",\n    \"cmx\": \"ocaml\",\n    \"odin\": \"odin\",\n    \"js.map\": \"javascript-map\",\n    \"mjs.map\": \"javascript-map\",\n    \"cjs.map\": \"javascript-map\",\n    \"css.map\": \"css-map\",\n    \"lock\": \"lock\",\n    \"hbs\": \"handlebars\",\n    \"mustache\": \"handlebars\",\n    \"pm\": \"perl\",\n    \"raku\": \"perl\",\n    \"hx\": \"haxe\",\n    \"spec.ts\": \"test-ts\",\n    \"spec.cts\": \"test-ts\",\n    \"spec.mts\": \"test-ts\",\n    \"cy.ts\": \"test-ts\",\n    \"e2e-spec.ts\": \"test-ts\",\n    \"e2e-spec.cts\": \"test-ts\",\n    \"e2e-spec.mts\": \"test-ts\",\n    \"test.ts\": \"test-ts\",\n    \"test.cts\": \"test-ts\",\n    \"test.mts\": \"test-ts\",\n    \"ts.snap\": \"test-ts\",\n    \"spec-d.ts\": \"test-ts\",\n    \"test-d.ts\": \"test-ts\",\n    \"spec.tsx\": \"test-jsx\",\n    \"test.tsx\": \"test-jsx\",\n    \"tsx.snap\": \"test-jsx\",\n    \"spec.jsx\": \"test-jsx\",\n    \"test.jsx\": \"test-jsx\",\n    \"jsx.snap\": \"test-jsx\",\n    \"cy.jsx\": \"test-jsx\",\n    \"cy.tsx\": \"test-jsx\",\n    \"spec-d.tsx\": \"test-jsx\",\n    \"test-d.tsx\": \"test-jsx\",\n    \"spec.js\": \"test-js\",\n    \"spec.cjs\": \"test-js\",\n    \"spec.mjs\": \"test-js\",\n    \"e2e-spec.js\": \"test-js\",\n    \"e2e-spec.cjs\": \"test-js\",\n    \"e2e-spec.mjs\": \"test-js\",\n    \"test.js\": \"test-js\",\n    \"test.cjs\": \"test-js\",\n    \"test.mjs\": \"test-js\",\n    \"js.snap\": \"test-js\",\n    \"cy.js\": \"test-js\",\n    \"module.ts\": \"angular\",\n    \"module.js\": \"angular\",\n    \"ng-template\": \"angular\",\n    \"component.ts\": \"angular-component\",\n    \"component.js\": \"angular-component\",\n    \"guard.ts\": \"angular-guard\",\n    \"guard.js\": \"angular-guard\",\n    \"service.ts\": \"angular-service\",\n    \"service.js\": \"angular-service\",\n    \"pipe.ts\": \"angular-pipe\",\n    \"pipe.js\": \"angular-pipe\",\n    \"filter.js\": \"angular-pipe\",\n    \"directive.ts\": \"angular-directive\",\n    \"directive.js\": \"angular-directive\",\n    \"resolver.ts\": \"angular-resolver\",\n    \"resolver.js\": \"angular-resolver\",\n    \"pp\": \"puppet\",\n    \"ex\": \"elixir\",\n    \"exs\": \"elixir\",\n    \"eex\": \"elixir\",\n    \"leex\": \"elixir\",\n    \"heex\": \"elixir\",\n    \"ls\": \"livescript\",\n    \"erl\": \"erlang\",\n    \"twig\": \"twig\",\n    \"jl\": \"julia\",\n    \"elm\": \"elm\",\n    \"pure\": \"purescript\",\n    \"purs\": \"purescript\",\n    \"tpl\": \"smarty\",\n    \"styl\": \"stylus\",\n    \"re\": \"reason\",\n    \"rei\": \"reason\",\n    \"cmj\": \"bucklescript\",\n    \"merlin\": \"merlin\",\n    \"vhd\": \"verilog\",\n    \"sv\": \"verilog\",\n    \"svh\": \"verilog\",\n    \"nb\": \"mathematica\",\n    \"wl\": \"wolframlanguage\",\n    \"wls\": \"wolframlanguage\",\n    \"njk\": \"nunjucks\",\n    \"nunjucks\": \"nunjucks\",\n    \"robot\": \"robot\",\n    \"sol\": \"solidity\",\n    \"au3\": \"autoit\",\n    \"haml\": \"haml\",\n    \"yang\": \"yang\",\n    \"mjml\": \"mjml\",\n    \"tf\": \"terraform\",\n    \"tf.json\": \"terraform\",\n    \"tfvars\": \"terraform\",\n    \"tfstate\": \"terraform\",\n    \"blade.php\": \"laravel\",\n    \"inky.php\": \"laravel\",\n    \"applescript\": \"applescript\",\n    \"ipa\": \"applescript\",\n    \"cake\": \"cake\",\n    \"feature\": \"cucumber\",\n    \"features\": \"cucumber\",\n    \"nim\": \"nim\",\n    \"nimble\": \"nim\",\n    \"apib\": \"apiblueprint\",\n    \"apiblueprint\": \"apiblueprint\",\n    \"riot\": \"riot\",\n    \"tag\": \"riot\",\n    \"vfl\": \"vfl\",\n    \"kl\": \"kl\",\n    \"pcss\": \"postcss\",\n    \"sss\": \"postcss\",\n    \"todo\": \"todo\",\n    \"cfml\": \"coldfusion\",\n    \"cfc\": \"coldfusion\",\n    \"lucee\": \"coldfusion\",\n    \"cfm\": \"coldfusion\",\n    \"cabal\": \"cabal\",\n    \"nix\": \"nix\",\n    \"slim\": \"slim\",\n    \"http\": \"http\",\n    \"rest\": \"http\",\n    \"rql\": \"restql\",\n    \"restql\": \"restql\",\n    \"kv\": \"kivy\",\n    \"graphcool\": \"graphcool\",\n    \"sbt\": \"sbt\",\n    \"apk\": \"android\",\n    \"smali\": \"android\",\n    \"dex\": \"android\",\n    \"env\": \"tune\",\n    \"gitlab-ci.yml\": \"gitlab\",\n    \"jenkinsfile\": \"jenkins\",\n    \"jenkins\": \"jenkins\",\n    \"fig\": \"figma\",\n    \"cr\": \"crystal\",\n    \"ecr\": \"crystal\",\n    \"drone.yml\": \"drone\",\n    \"cu\": \"cuda\",\n    \"cuh\": \"cuda\",\n    \"log\": \"log\",\n    \"def\": \"dotjs\",\n    \"dot\": \"dotjs\",\n    \"jst\": \"dotjs\",\n    \"ejs\": \"ejs\",\n    \".wakatime-project\": \"wakatime\",\n    \"pde\": \"processing\",\n    \"stories.js\": \"storybook\",\n    \"stories.jsx\": \"storybook\",\n    \"stories.mdx\": \"storybook\",\n    \"story.js\": \"storybook\",\n    \"story.jsx\": \"storybook\",\n    \"stories.ts\": \"storybook\",\n    \"stories.tsx\": \"storybook\",\n    \"story.ts\": \"storybook\",\n    \"story.tsx\": \"storybook\",\n    \"stories.svelte\": \"storybook\",\n    \"story.mdx\": \"storybook\",\n    \"wpy\": \"wepy\",\n    \"hcl\": \"hcl\",\n    \"san\": \"san\",\n    \"djt\": \"django\",\n    \"red\": \"red\",\n    \"mk\": \"makefile\",\n    \"fxp\": \"foxpro\",\n    \"prg\": \"foxpro\",\n    \"pot\": \"i18n\",\n    \"po\": \"i18n\",\n    \"mo\": \"i18n\",\n    \"lang\": \"i18n\",\n    \"wat\": \"webassembly\",\n    \"wasm\": \"webassembly\",\n    \"ipynb\": \"jupyter\",\n    \"d\": \"d\",\n    \"mdx\": \"mdx\",\n    \"svx\": \"mdsvex\",\n    \"bal\": \"ballerina\",\n    \"balx\": \"ballerina\",\n    \"rkt\": \"racket\",\n    \"bzl\": \"bazel\",\n    \"bazel\": \"bazel\",\n    \"mint\": \"mint\",\n    \"vm\": \"velocity\",\n    \"fhtml\": \"velocity\",\n    \"vtl\": \"velocity\",\n    \"gd\": \"godot\",\n    \"godot\": \"godot-assets\",\n    \"tres\": \"godot-assets\",\n    \"tscn\": \"godot-assets\",\n    \"gdns\": \"godot-assets\",\n    \"gdnlib\": \"godot-assets\",\n    \"gdshader\": \"godot-assets\",\n    \"gdshaderinc\": \"godot-assets\",\n    \"gdextension\": \"godot-assets\",\n    \"azure-pipelines.yml\": \"azure-pipelines\",\n    \"azure-pipelines.yaml\": \"azure-pipelines\",\n    \"azcli\": \"azure\",\n    \"vagrantfile\": \"vagrant\",\n    \"prisma\": \"prisma\",\n    \"cshtml\": \"razor\",\n    \"vbhtml\": \"razor\",\n    \"abc\": \"abc\",\n    \"ad\": \"asciidoc\",\n    \"adoc\": \"asciidoc\",\n    \"asciidoc\": \"asciidoc\",\n    \"edge\": \"edge\",\n    \"ss\": \"scheme\",\n    \"scm\": \"scheme\",\n    \"lisp\": \"lisp\",\n    \"lsp\": \"lisp\",\n    \"cl\": \"lisp\",\n    \"fast\": \"lisp\",\n    \"stl\": \"3d\",\n    \"stp\": \"3d\",\n    \"obj\": \"3d\",\n    \"ac\": \"3d\",\n    \"blend\": \"3d\",\n    \"fbx\": \"3d\",\n    \"mesh\": \"3d\",\n    \"mqo\": \"3d\",\n    \"pmd\": \"3d\",\n    \"pmx\": \"3d\",\n    \"skp\": \"3d\",\n    \"vac\": \"3d\",\n    \"vdp\": \"3d\",\n    \"vox\": \"3d\",\n    \"svg\": \"svg\",\n    \"svelte\": \"svelte\",\n    \"vimrc\": \"vim\",\n    \"gvimrc\": \"vim\",\n    \"exrc\": \"vim\",\n    \"vim\": \"vim\",\n    \"viminfo\": \"vim\",\n    \"moon\": \"moonscript\",\n    \"prw\": \"advpl_prw\",\n    \"prx\": \"advpl_prw\",\n    \"ptm\": \"advpl_ptm\",\n    \"tlpp\": \"advpl_tlpp\",\n    \"ch\": \"advpl_include\",\n    \"iso\": \"disc\",\n    \"f\": \"fortran\",\n    \"f77\": \"fortran\",\n    \"f90\": \"fortran\",\n    \"f95\": \"fortran\",\n    \"f03\": \"fortran\",\n    \"f08\": \"fortran\",\n    \"tcl\": \"tcl\",\n    \"liquid\": \"liquid\",\n    \"p\": \"prolog\",\n    \"pro\": \"prolog\",\n    \"pl\": \"prolog\",\n    \"coco\": \"coconut\",\n    \"sketch\": \"sketch\",\n    \"pwn\": \"pawn\",\n    \"amx\": \"pawn\",\n    \"4th\": \"forth\",\n    \"fth\": \"forth\",\n    \"frt\": \"forth\",\n    \"iuml\": \"uml\",\n    \"pu\": \"uml\",\n    \"puml\": \"uml\",\n    \"plantuml\": \"uml\",\n    \"wsd\": \"uml\",\n    \"wrap\": \"meson\",\n    \"dhall\": \"dhall\",\n    \"dhallb\": \"dhall\",\n    \"sml\": \"sml\",\n    \"mlton\": \"sml\",\n    \"mlb\": \"sml\",\n    \"sig\": \"sml\",\n    \"fun\": \"sml\",\n    \"cm\": \"sml\",\n    \"lex\": \"sml\",\n    \"use\": \"sml\",\n    \"grm\": \"sml\",\n    \"opam\": \"opam\",\n    \"imba\": \"imba\",\n    \"drawio\": \"drawio\",\n    \"dio\": \"drawio\",\n    \"pas\": \"pascal\",\n    \"unity\": \"shaderlab\",\n    \"sas\": \"sas\",\n    \"sas7bdat\": \"sas\",\n    \"sashdat\": \"sas\",\n    \"astore\": \"sas\",\n    \"ast\": \"sas\",\n    \"sast\": \"sas\",\n    \"nupkg\": \"nuget\",\n    \"command\": \"command\",\n    \"dsc\": \"denizenscript\",\n    \"code-search\": \"search\",\n    \"nginx\": \"nginx\",\n    \"nginxconfig\": \"nginx\",\n    \"mcfunction\": \"minecraft\",\n    \"mcmeta\": \"minecraft\",\n    \"mcr\": \"minecraft\",\n    \"mca\": \"minecraft\",\n    \"mcgame\": \"minecraft\",\n    \"mclevel\": \"minecraft\",\n    \"mcworld\": \"minecraft\",\n    \"mine\": \"minecraft\",\n    \"mus\": \"minecraft\",\n    \"mcstructure\": \"minecraft\",\n    \"mcpack\": \"minecraft\",\n    \"mcaddon\": \"minecraft\",\n    \"mctemplate\": \"minecraft\",\n    \"mcproject\": \"minecraft\",\n    \"res\": \"rescript\",\n    \"resi\": \"rescript-interface\",\n    \"b\": \"brainfuck\",\n    \"bf\": \"brainfuck\",\n    \"bicep\": \"bicep\",\n    \"cob\": \"cobol\",\n    \"cbl\": \"cobol\",\n    \"gr\": \"grain\",\n    \"lol\": \"lolcode\",\n    \"idr\": \"idris\",\n    \"ibc\": \"idris\",\n    \"pipeline\": \"pipeline\",\n    \"rego\": \"opa\",\n    \"windi\": \"windicss\",\n    \"scala\": \"scala\",\n    \"sc\": \"scala\",\n    \"ly\": \"lilypond\",\n    \"v\": \"vlang\",\n    \"pgn\": \"chess\",\n    \"fen\": \"chess\",\n    \"gmi\": \"gemini\",\n    \"gemini\": \"gemini\",\n    \"tsconfig.json\": \"tsconfig\",\n    \"tauri\": \"tauri\",\n    \"jsconfig.json\": \"jsconfig\",\n    \"ada\": \"ada\",\n    \"adb\": \"ada\",\n    \"ads\": \"ada\",\n    \"ali\": \"ada\",\n    \"horusec-config.json\": \"horusec\",\n    \"coarc\": \"coala\",\n    \"coafile\": \"coala\",\n    \"bubble\": \"dinophp\",\n    \"html.bubble\": \"dinophp\",\n    \"php.bubble\": \"dinophp\",\n    \"tl\": \"teal\",\n    \"template\": \"template\",\n    \"glsl\": \"shader\",\n    \"vert\": \"shader\",\n    \"tesc\": \"shader\",\n    \"tese\": \"shader\",\n    \"geom\": \"shader\",\n    \"frag\": \"shader\",\n    \"comp\": \"shader\",\n    \"vert.glsl\": \"shader\",\n    \"tesc.glsl\": \"shader\",\n    \"tese.glsl\": \"shader\",\n    \"geom.glsl\": \"shader\",\n    \"frag.glsl\": \"shader\",\n    \"comp.glsl\": \"shader\",\n    \"vertex.glsl\": \"shader\",\n    \"geometry.glsl\": \"shader\",\n    \"fragment.glsl\": \"shader\",\n    \"compute.glsl\": \"shader\",\n    \"ts.glsl\": \"shader\",\n    \"gs.glsl\": \"shader\",\n    \"vs.glsl\": \"shader\",\n    \"fs.glsl\": \"shader\",\n    \"shader\": \"shader\",\n    \"vertexshader\": \"shader\",\n    \"fragmentshader\": \"shader\",\n    \"geometryshader\": \"shader\",\n    \"computeshader\": \"shader\",\n    \"hlsl\": \"shader\",\n    \"pixel.hlsl\": \"shader\",\n    \"geometry.hlsl\": \"shader\",\n    \"compute.hlsl\": \"shader\",\n    \"tessellation.hlsl\": \"shader\",\n    \"px.hlsl\": \"shader\",\n    \"geom.hlsl\": \"shader\",\n    \"comp.hlsl\": \"shader\",\n    \"tess.hlsl\": \"shader\",\n    \"wgsl\": \"shader\",\n    \"sy\": \"siyuan\",\n    \"ndst.yml\": \"ndst\",\n    \"ndst.yaml\": \"ndst\",\n    \"ndst.json\": \"ndst\",\n    \"tobi\": \"tobi\",\n    \"gleam\": \"gleam\",\n    \"steadybit.yml\": \"steadybit\",\n    \"steadybit.yaml\": \"steadybit\",\n    \"tree\": \"tree\",\n    \"cdc\": \"cadence\",\n    \"g4\": \"antlr\",\n    \"st.css\": \"stylable\",\n    \"pine\": \"pinejs\",\n    \"gml\": \"gamemaker\",\n    \"yy\": \"gamemaker\",\n    \"yyp\": \"gamemaker\",\n    \"yyz\": \"gamemaker\",\n    \"tldr\": \"tldraw\",\n    \"typ\": \"typst\",\n    \"mmd\": \"mermaid\",\n    \"mermaid\": \"mermaid\"\n  },\n  \"fileNames\": {\n    \".pug-lintrc\": \"pug\",\n    \".pug-lintrc.js\": \"pug\",\n    \".pug-lintrc.json\": \"pug\",\n    \".jscsrc\": \"json\",\n    \".jshintrc\": \"json\",\n    \"composer.lock\": \"json\",\n    \".jsbeautifyrc\": \"json\",\n    \".esformatter\": \"json\",\n    \"cdp.pid\": \"json\",\n    \".lintstagedrc\": \"json\",\n    \"playwright.config.js\": \"playwright\",\n    \"playwright.config.mjs\": \"playwright\",\n    \"playwright.config.ts\": \"playwright\",\n    \"playwright-ct.config.js\": \"playwright\",\n    \"playwright-ct.config.mjs\": \"playwright\",\n    \"playwright-ct.config.ts\": \"playwright\",\n    \".htaccess\": \"xml\",\n    \"router.js\": \"routing\",\n    \"router.jsx\": \"routing\",\n    \"router.ts\": \"routing\",\n    \"router.tsx\": \"routing\",\n    \"routes.js\": \"routing\",\n    \"routes.jsx\": \"routing\",\n    \"routes.ts\": \"routing\",\n    \"routes.tsx\": \"routing\",\n    \".jshintignore\": \"settings\",\n    \".buildignore\": \"settings\",\n    \".mrconfig\": \"settings\",\n    \".yardopts\": \"settings\",\n    \"manifest.mf\": \"settings\",\n    \".clang-format\": \"settings\",\n    \".clang-tidy\": \"settings\",\n    \"astro.config.js\": \"astro\",\n    \"astro.config.mjs\": \"astro\",\n    \"astro.config.cjs\": \"astro\",\n    \"astro.config.ts\": \"astro\",\n    \"astro.config.cts\": \"astro\",\n    \"astro.config.mts\": \"astro\",\n    \"go.mod\": \"go-mod\",\n    \"go.sum\": \"go-mod\",\n    \"go.work\": \"go-mod\",\n    \"go.work.sum\": \"go-mod\",\n    \"requirements.txt\": \"python-misc\",\n    \"pipfile\": \"python-misc\",\n    \".python-version\": \"python-misc\",\n    \"manifest.in\": \"python-misc\",\n    \"pylintrc\": \"python-misc\",\n    \".pylintrc\": \"python-misc\",\n    \"pyproject.toml\": \"python-misc\",\n    \"commit-msg\": \"console\",\n    \"pre-commit\": \"console\",\n    \"pre-push\": \"console\",\n    \"post-merge\": \"console\",\n    \"gradle.properties\": \"gradle\",\n    \"gradlew\": \"gradle\",\n    \"gradle-wrapper.properties\": \"gradle\",\n    \"copying\": \"certificate\",\n    \"copying.md\": \"certificate\",\n    \"copying.rst\": \"certificate\",\n    \"copying.txt\": \"certificate\",\n    \"copyright\": \"certificate\",\n    \"copyright.md\": \"certificate\",\n    \"copyright.rst\": \"certificate\",\n    \"copyright.txt\": \"certificate\",\n    \"license\": \"certificate\",\n    \"license-agpl\": \"certificate\",\n    \"license-apache\": \"certificate\",\n    \"license-bsd\": \"certificate\",\n    \"license-mit\": \"certificate\",\n    \"license-gpl\": \"certificate\",\n    \"license-lgpl\": \"certificate\",\n    \"license.md\": \"certificate\",\n    \"license.rst\": \"certificate\",\n    \"license.txt\": \"certificate\",\n    \"licence\": \"certificate\",\n    \"licence-agpl\": \"certificate\",\n    \"licence-apache\": \"certificate\",\n    \"licence-bsd\": \"certificate\",\n    \"licence-mit\": \"certificate\",\n    \"licence-gpl\": \"certificate\",\n    \"licence-lgpl\": \"certificate\",\n    \"licence.md\": \"certificate\",\n    \"licence.rst\": \"certificate\",\n    \"licence.txt\": \"certificate\",\n    \".htpasswd\": \"key\",\n    \"gemfile\": \"gemfile\",\n    \".rubocop.yml\": \"rubocop\",\n    \".rubocop-todo.yml\": \"rubocop\",\n    \".rubocop_todo.yml\": \"rubocop\",\n    \"dockerfile\": \"docker\",\n    \"dockerfile.prod\": \"docker\",\n    \"dockerfile.production\": \"docker\",\n    \"dockerfile.alpha\": \"docker\",\n    \"dockerfile.beta\": \"docker\",\n    \"dockerfile.stage\": \"docker\",\n    \"dockerfile.staging\": \"docker\",\n    \"dockerfile.dev\": \"docker\",\n    \"dockerfile.development\": \"docker\",\n    \"dockerfile.local\": \"docker\",\n    \"dockerfile.test\": \"docker\",\n    \"dockerfile.testing\": \"docker\",\n    \"dockerfile.ci\": \"docker\",\n    \"dockerfile.web\": \"docker\",\n    \"dockerfile.worker\": \"docker\",\n    \"docker-compose.yml\": \"docker\",\n    \"docker-compose.override.yml\": \"docker\",\n    \"docker-compose.prod.yml\": \"docker\",\n    \"docker-compose.production.yml\": \"docker\",\n    \"docker-compose.alpha.yml\": \"docker\",\n    \"docker-compose.beta.yml\": \"docker\",\n    \"docker-compose.stage.yml\": \"docker\",\n    \"docker-compose.staging.yml\": \"docker\",\n    \"docker-compose.dev.yml\": \"docker\",\n    \"docker-compose.development.yml\": \"docker\",\n    \"docker-compose.local.yml\": \"docker\",\n    \"docker-compose.test.yml\": \"docker\",\n    \"docker-compose.testing.yml\": \"docker\",\n    \"docker-compose.ci.yml\": \"docker\",\n    \"docker-compose.web.yml\": \"docker\",\n    \"docker-compose.worker.yml\": \"docker\",\n    \"docker-compose.yaml\": \"docker\",\n    \"docker-compose.override.yaml\": \"docker\",\n    \"docker-compose.prod.yaml\": \"docker\",\n    \"docker-compose.production.yaml\": \"docker\",\n    \"docker-compose.alpha.yaml\": \"docker\",\n    \"docker-compose.beta.yaml\": \"docker\",\n    \"docker-compose.stage.yaml\": \"docker\",\n    \"docker-compose.staging.yaml\": \"docker\",\n    \"docker-compose.dev.yaml\": \"docker\",\n    \"docker-compose.development.yaml\": \"docker\",\n    \"docker-compose.local.yaml\": \"docker\",\n    \"docker-compose.test.yaml\": \"docker\",\n    \"docker-compose.testing.yaml\": \"docker\",\n    \"docker-compose.ci.yaml\": \"docker\",\n    \"docker-compose.web.yaml\": \"docker\",\n    \"docker-compose.worker.yaml\": \"docker\",\n    \"compose.yaml\": \"docker\",\n    \"compose.override.yaml\": \"docker\",\n    \"compose.prod.yaml\": \"docker\",\n    \"compose.production.yaml\": \"docker\",\n    \"compose.alpha.yaml\": \"docker\",\n    \"compose.beta.yaml\": \"docker\",\n    \"compose.stage.yaml\": \"docker\",\n    \"compose.staging.yaml\": \"docker\",\n    \"compose.dev.yaml\": \"docker\",\n    \"compose.development.yaml\": \"docker\",\n    \"compose.local.yaml\": \"docker\",\n    \"compose.test.yaml\": \"docker\",\n    \"compose.testing.yaml\": \"docker\",\n    \"compose.ci.yaml\": \"docker\",\n    \"compose.web.yaml\": \"docker\",\n    \"compose.worker.yaml\": \"docker\",\n    \"compose.yml\": \"docker\",\n    \"compose.override.yml\": \"docker\",\n    \"compose.prod.yml\": \"docker\",\n    \"compose.production.yml\": \"docker\",\n    \"compose.alpha.yml\": \"docker\",\n    \"compose.beta.yml\": \"docker\",\n    \"compose.stage.yml\": \"docker\",\n    \"compose.staging.yml\": \"docker\",\n    \"compose.dev.yml\": \"docker\",\n    \"compose.development.yml\": \"docker\",\n    \"compose.local.yml\": \"docker\",\n    \"compose.test.yml\": \"docker\",\n    \"compose.testing.yml\": \"docker\",\n    \"compose.ci.yml\": \"docker\",\n    \"compose.web.yml\": \"docker\",\n    \"compose.worker.yml\": \"docker\",\n    \".mailmap\": \"email\",\n    \".graphqlconfig\": \"graphql\",\n    \".graphqlrc\": \"graphql\",\n    \".graphqlrc.json\": \"graphql\",\n    \".graphqlrc.js\": \"graphql\",\n    \".graphqlrc.cjs\": \"graphql\",\n    \".graphqlrc.ts\": \"graphql\",\n    \".graphqlrc.toml\": \"graphql\",\n    \".graphqlrc.yaml\": \"graphql\",\n    \".graphqlrc.yml\": \"graphql\",\n    \"graphql.config.json\": \"graphql\",\n    \"graphql.config.js\": \"graphql\",\n    \"graphql.config.cjs\": \"graphql\",\n    \"graphql.config.ts\": \"graphql\",\n    \"graphql.config.toml\": \"graphql\",\n    \"graphql.config.yaml\": \"graphql\",\n    \"graphql.config.yml\": \"graphql\",\n    \".git\": \"git\",\n    \".gitignore\": \"git\",\n    \".gitignore-global\": \"git\",\n    \".gitignore_global\": \"git\",\n    \".gitattributes\": \"git\",\n    \".gitattributes-global\": \"git\",\n    \".gitattributes_global\": \"git\",\n    \".gitconfig\": \"git\",\n    \".gitmodules\": \"git\",\n    \".gitkeep\": \"git\",\n    \".gitinclude\": \"git\",\n    \".git-blame-ignore\": \"git\",\n    \".git-blame-ignore-revs\": \"git\",\n    \".git-for-windows-updater\": \"git\",\n    \"git-history\": \"git\",\n    \".luacheckrc\": \"lua\",\n    \".Rhistory\": \"r\",\n    \".pubignore\": \"dart\",\n    \"cmakelists.txt\": \"cmake\",\n    \"cmakecache.txt\": \"cmake\",\n    \"vue.config.js\": \"vue-config\",\n    \"vue.config.ts\": \"vue-config\",\n    \"vetur.config.js\": \"vue-config\",\n    \"vetur.config.ts\": \"vue-config\",\n    \"volar.config.js\": \"vue-config\",\n    \"nuxt.config.js\": \"nuxt\",\n    \"nuxt.config.ts\": \"nuxt\",\n    \".nuxtignore\": \"nuxt\",\n    \"security.md\": \"lock\",\n    \"security.txt\": \"lock\",\n    \"security\": \"lock\",\n    \"angular-cli.json\": \"angular\",\n    \".angular-cli.json\": \"angular\",\n    \"angular.json\": \"angular\",\n    \"ng-package.json\": \"angular\",\n    \".mjmlconfig\": \"mjml\",\n    \"vercel.json\": \"vercel\",\n    \".vercelignore\": \"vercel\",\n    \"now.json\": \"vercel\",\n    \".nowignore\": \"vercel\",\n    \"verdaccio.yml\": \"verdaccio\",\n    \"next.config.js\": \"next\",\n    \"next.config.mjs\": \"next\",\n    \"next.config.ts\": \"next\",\n    \"next.config.mts\": \"next\",\n    \"remix.config.js\": \"remix\",\n    \"remix.config.ts\": \"remix\",\n    \"artisan\": \"laravel\",\n    \".vfl\": \"vfl\",\n    \".kl\": \"kl\",\n    \"postcss.config.js\": \"postcss\",\n    \"postcss.config.cjs\": \"postcss\",\n    \"postcss.config.ts\": \"postcss\",\n    \"postcss.config.cts\": \"postcss\",\n    \".postcssrc.js\": \"postcss\",\n    \".postcssrc.cjs\": \"postcss\",\n    \".postcssrc.ts\": \"postcss\",\n    \".postcssrc.cts\": \"postcss\",\n    \".postcssrc\": \"postcss\",\n    \".postcssrc.json\": \"postcss\",\n    \".postcssrc.yaml\": \"postcss\",\n    \".postcssrc.yml\": \"postcss\",\n    \"posthtml.config.js\": \"posthtml\",\n    \".posthtmlrc.js\": \"posthtml\",\n    \".posthtmlrc\": \"posthtml\",\n    \".posthtmlrc.json\": \"posthtml\",\n    \".posthtmlrc.yml\": \"posthtml\",\n    \"todo.md\": \"todo\",\n    \"todos.md\": \"todo\",\n    \"cabal.project\": \"cabal\",\n    \"cabal.project.freeze\": \"cabal\",\n    \"cabal.project.local\": \"cabal\",\n    \"CNAME\": \"http\",\n    \"project.graphcool\": \"graphcool\",\n    \"webpack.js\": \"webpack\",\n    \"webpack.cjs\": \"webpack\",\n    \"webpack.mjs\": \"webpack\",\n    \"webpack.ts\": \"webpack\",\n    \"webpack.cts\": \"webpack\",\n    \"webpack.mts\": \"webpack\",\n    \"webpack.base.js\": \"webpack\",\n    \"webpack.base.cjs\": \"webpack\",\n    \"webpack.base.mjs\": \"webpack\",\n    \"webpack.base.ts\": \"webpack\",\n    \"webpack.base.cts\": \"webpack\",\n    \"webpack.base.mts\": \"webpack\",\n    \"webpack.config.js\": \"webpack\",\n    \"webpack.config.cjs\": \"webpack\",\n    \"webpack.config.mjs\": \"webpack\",\n    \"webpack.config.ts\": \"webpack\",\n    \"webpack.config.cts\": \"webpack\",\n    \"webpack.config.mts\": \"webpack\",\n    \"webpack.common.js\": \"webpack\",\n    \"webpack.common.cjs\": \"webpack\",\n    \"webpack.common.mjs\": \"webpack\",\n    \"webpack.common.ts\": \"webpack\",\n    \"webpack.common.cts\": \"webpack\",\n    \"webpack.common.mts\": \"webpack\",\n    \"webpack.config.common.js\": \"webpack\",\n    \"webpack.config.common.cjs\": \"webpack\",\n    \"webpack.config.common.mjs\": \"webpack\",\n    \"webpack.config.common.ts\": \"webpack\",\n    \"webpack.config.common.cts\": \"webpack\",\n    \"webpack.config.common.mts\": \"webpack\",\n    \"webpack.config.common.babel.js\": \"webpack\",\n    \"webpack.config.common.babel.ts\": \"webpack\",\n    \"webpack.dev.js\": \"webpack\",\n    \"webpack.dev.cjs\": \"webpack\",\n    \"webpack.dev.mjs\": \"webpack\",\n    \"webpack.dev.ts\": \"webpack\",\n    \"webpack.dev.cts\": \"webpack\",\n    \"webpack.dev.mts\": \"webpack\",\n    \"webpack.development.js\": \"webpack\",\n    \"webpack.development.cjs\": \"webpack\",\n    \"webpack.development.mjs\": \"webpack\",\n    \"webpack.development.ts\": \"webpack\",\n    \"webpack.development.cts\": \"webpack\",\n    \"webpack.development.mts\": \"webpack\",\n    \"webpack.config.dev.js\": \"webpack\",\n    \"webpack.config.dev.cjs\": \"webpack\",\n    \"webpack.config.dev.mjs\": \"webpack\",\n    \"webpack.config.dev.ts\": \"webpack\",\n    \"webpack.config.dev.cts\": \"webpack\",\n    \"webpack.config.dev.mts\": \"webpack\",\n    \"webpack.config.dev.babel.js\": \"webpack\",\n    \"webpack.config.dev.babel.ts\": \"webpack\",\n    \"webpack.mix.js\": \"webpack\",\n    \"webpack.mix.cjs\": \"webpack\",\n    \"webpack.mix.mjs\": \"webpack\",\n    \"webpack.mix.ts\": \"webpack\",\n    \"webpack.mix.cts\": \"webpack\",\n    \"webpack.mix.mts\": \"webpack\",\n    \"webpack.prod.js\": \"webpack\",\n    \"webpack.prod.cjs\": \"webpack\",\n    \"webpack.prod.mjs\": \"webpack\",\n    \"webpack.prod.ts\": \"webpack\",\n    \"webpack.prod.cts\": \"webpack\",\n    \"webpack.prod.mts\": \"webpack\",\n    \"webpack.prod.config.js\": \"webpack\",\n    \"webpack.prod.config.cjs\": \"webpack\",\n    \"webpack.prod.config.mjs\": \"webpack\",\n    \"webpack.prod.config.ts\": \"webpack\",\n    \"webpack.prod.config.cts\": \"webpack\",\n    \"webpack.prod.config.mts\": \"webpack\",\n    \"webpack.production.js\": \"webpack\",\n    \"webpack.production.cjs\": \"webpack\",\n    \"webpack.production.mjs\": \"webpack\",\n    \"webpack.production.ts\": \"webpack\",\n    \"webpack.production.cts\": \"webpack\",\n    \"webpack.production.mts\": \"webpack\",\n    \"webpack.server.js\": \"webpack\",\n    \"webpack.server.cjs\": \"webpack\",\n    \"webpack.server.mjs\": \"webpack\",\n    \"webpack.server.ts\": \"webpack\",\n    \"webpack.server.cts\": \"webpack\",\n    \"webpack.server.mts\": \"webpack\",\n    \"webpack.client.js\": \"webpack\",\n    \"webpack.client.cjs\": \"webpack\",\n    \"webpack.client.mjs\": \"webpack\",\n    \"webpack.client.ts\": \"webpack\",\n    \"webpack.client.cts\": \"webpack\",\n    \"webpack.client.mts\": \"webpack\",\n    \"webpack.config.server.js\": \"webpack\",\n    \"webpack.config.server.cjs\": \"webpack\",\n    \"webpack.config.server.mjs\": \"webpack\",\n    \"webpack.config.server.ts\": \"webpack\",\n    \"webpack.config.server.cts\": \"webpack\",\n    \"webpack.config.server.mts\": \"webpack\",\n    \"webpack.config.client.js\": \"webpack\",\n    \"webpack.config.client.cjs\": \"webpack\",\n    \"webpack.config.client.mjs\": \"webpack\",\n    \"webpack.config.client.ts\": \"webpack\",\n    \"webpack.config.client.cts\": \"webpack\",\n    \"webpack.config.client.mts\": \"webpack\",\n    \"webpack.config.production.babel.js\": \"webpack\",\n    \"webpack.config.production.babel.ts\": \"webpack\",\n    \"webpack.config.prod.babel.js\": \"webpack\",\n    \"webpack.config.prod.babel.cjs\": \"webpack\",\n    \"webpack.config.prod.babel.mjs\": \"webpack\",\n    \"webpack.config.prod.babel.ts\": \"webpack\",\n    \"webpack.config.prod.babel.cts\": \"webpack\",\n    \"webpack.config.prod.babel.mts\": \"webpack\",\n    \"webpack.config.prod.js\": \"webpack\",\n    \"webpack.config.prod.cjs\": \"webpack\",\n    \"webpack.config.prod.mjs\": \"webpack\",\n    \"webpack.config.prod.ts\": \"webpack\",\n    \"webpack.config.prod.cts\": \"webpack\",\n    \"webpack.config.prod.mts\": \"webpack\",\n    \"webpack.config.production.js\": \"webpack\",\n    \"webpack.config.production.cjs\": \"webpack\",\n    \"webpack.config.production.mjs\": \"webpack\",\n    \"webpack.config.production.ts\": \"webpack\",\n    \"webpack.config.production.cts\": \"webpack\",\n    \"webpack.config.production.mts\": \"webpack\",\n    \"webpack.config.staging.js\": \"webpack\",\n    \"webpack.config.staging.cjs\": \"webpack\",\n    \"webpack.config.staging.mjs\": \"webpack\",\n    \"webpack.config.staging.ts\": \"webpack\",\n    \"webpack.config.staging.cts\": \"webpack\",\n    \"webpack.config.staging.mts\": \"webpack\",\n    \"webpack.config.babel.js\": \"webpack\",\n    \"webpack.config.babel.ts\": \"webpack\",\n    \"webpack.config.base.babel.js\": \"webpack\",\n    \"webpack.config.base.babel.ts\": \"webpack\",\n    \"webpack.config.base.js\": \"webpack\",\n    \"webpack.config.base.cjs\": \"webpack\",\n    \"webpack.config.base.mjs\": \"webpack\",\n    \"webpack.config.base.ts\": \"webpack\",\n    \"webpack.config.base.cts\": \"webpack\",\n    \"webpack.config.base.mts\": \"webpack\",\n    \"webpack.config.staging.babel.js\": \"webpack\",\n    \"webpack.config.staging.babel.ts\": \"webpack\",\n    \"webpack.config.coffee\": \"webpack\",\n    \"webpack.config.test.js\": \"webpack\",\n    \"webpack.config.test.cjs\": \"webpack\",\n    \"webpack.config.test.mjs\": \"webpack\",\n    \"webpack.config.test.ts\": \"webpack\",\n    \"webpack.config.test.cts\": \"webpack\",\n    \"webpack.config.test.mts\": \"webpack\",\n    \"webpack.config.vendor.js\": \"webpack\",\n    \"webpack.config.vendor.cjs\": \"webpack\",\n    \"webpack.config.vendor.mjs\": \"webpack\",\n    \"webpack.config.vendor.ts\": \"webpack\",\n    \"webpack.config.vendor.cts\": \"webpack\",\n    \"webpack.config.vendor.mts\": \"webpack\",\n    \"webpack.config.vendor.production.js\": \"webpack\",\n    \"webpack.config.vendor.production.cjs\": \"webpack\",\n    \"webpack.config.vendor.production.mjs\": \"webpack\",\n    \"webpack.config.vendor.production.ts\": \"webpack\",\n    \"webpack.config.vendor.production.cts\": \"webpack\",\n    \"webpack.config.vendor.production.mts\": \"webpack\",\n    \"webpack.test.js\": \"webpack\",\n    \"webpack.test.cjs\": \"webpack\",\n    \"webpack.test.mjs\": \"webpack\",\n    \"webpack.test.ts\": \"webpack\",\n    \"webpack.test.cts\": \"webpack\",\n    \"webpack.test.mts\": \"webpack\",\n    \"webpack.dist.js\": \"webpack\",\n    \"webpack.dist.cjs\": \"webpack\",\n    \"webpack.dist.mjs\": \"webpack\",\n    \"webpack.dist.ts\": \"webpack\",\n    \"webpack.dist.cts\": \"webpack\",\n    \"webpack.dist.mts\": \"webpack\",\n    \"webpackfile.js\": \"webpack\",\n    \"webpackfile.cjs\": \"webpack\",\n    \"webpackfile.mjs\": \"webpack\",\n    \"webpackfile.ts\": \"webpack\",\n    \"webpackfile.cts\": \"webpack\",\n    \"webpackfile.mts\": \"webpack\",\n    \"ionic.config.json\": \"ionic\",\n    \".io-config.json\": \"ionic\",\n    \"gulpfile.js\": \"gulp\",\n    \"gulpfile.mjs\": \"gulp\",\n    \"gulpfile.ts\": \"gulp\",\n    \"gulpfile.cts\": \"gulp\",\n    \"gulpfile.mts\": \"gulp\",\n    \"gulpfile.babel.js\": \"gulp\",\n    \"package.json\": \"nodejs\",\n    \"package-lock.json\": \"nodejs\",\n    \".nvmrc\": \"nodejs\",\n    \".esmrc\": \"nodejs\",\n    \".node-version\": \"nodejs\",\n    \".npmignore\": \"npm\",\n    \".npmrc\": \"npm\",\n    \".yarnrc\": \"yarn\",\n    \"yarn.lock\": \"yarn\",\n    \".yarnclean\": \"yarn\",\n    \".yarn-integrity\": \"yarn\",\n    \"yarn-error.log\": \"yarn\",\n    \".yarnrc.yml\": \"yarn\",\n    \".yarnrc.yaml\": \"yarn\",\n    \"androidmanifest.xml\": \"android\",\n    \".env.defaults\": \"tune\",\n    \".env.example\": \"tune\",\n    \".env.sample\": \"tune\",\n    \".env.template\": \"tune\",\n    \".env.schema\": \"tune\",\n    \".env.local\": \"tune\",\n    \".env.dev\": \"tune\",\n    \".env.development\": \"tune\",\n    \".env.alpha\": \"tune\",\n    \".env.e2e\": \"tune\",\n    \".env.qa\": \"tune\",\n    \".env.dist\": \"tune\",\n    \".env.prod\": \"tune\",\n    \".env.production\": \"tune\",\n    \".env.stage\": \"tune\",\n    \".env.staging\": \"tune\",\n    \".env.preview\": \"tune\",\n    \".env.test\": \"tune\",\n    \".env.testing\": \"tune\",\n    \".env.development.local\": \"tune\",\n    \".env.qa.local\": \"tune\",\n    \".env.production.local\": \"tune\",\n    \".env.staging.local\": \"tune\",\n    \".env.test.local\": \"tune\",\n    \".env.uat\": \"tune\",\n    \"turbo.json\": \"turborepo\",\n    \".babelrc\": \"babel\",\n    \".babelrc.cjs\": \"babel\",\n    \".babelrc.js\": \"babel\",\n    \".babelrc.mjs\": \"babel\",\n    \".babelrc.json\": \"babel\",\n    \"babel.config.cjs\": \"babel\",\n    \"babel.config.js\": \"babel\",\n    \"babel.config.mjs\": \"babel\",\n    \"babel.config.json\": \"babel\",\n    \"babel-transform.js\": \"babel\",\n    \".babel-plugin-macrosrc\": \"babel\",\n    \".babel-plugin-macrosrc.json\": \"babel\",\n    \".babel-plugin-macrosrc.yaml\": \"babel\",\n    \".babel-plugin-macrosrc.yml\": \"babel\",\n    \".babel-plugin-macrosrc.js\": \"babel\",\n    \"babel-plugin-macros.config.js\": \"babel\",\n    \"blitz.config.js\": \"blitz\",\n    \"blitz.config.ts\": \"blitz\",\n    \".blitz.config.compiled.js\": \"blitz\",\n    \"contributing.md\": \"contributing\",\n    \"contributing.rst\": \"contributing\",\n    \"contributing.txt\": \"contributing\",\n    \"contributing\": \"contributing\",\n    \"readme.md\": \"readme\",\n    \"readme.rst\": \"readme\",\n    \"readme.txt\": \"readme\",\n    \"readme\": \"readme\",\n    \"changelog\": \"changelog\",\n    \"changelog.md\": \"changelog\",\n    \"changelog.rst\": \"changelog\",\n    \"changelog.txt\": \"changelog\",\n    \"changes\": \"changelog\",\n    \"changes.md\": \"changelog\",\n    \"changes.rst\": \"changelog\",\n    \"changes.txt\": \"changelog\",\n    \"architecture.md\": \"architecture\",\n    \"architecture.rst\": \"architecture\",\n    \"architecture.txt\": \"architecture\",\n    \"architecture\": \"architecture\",\n    \"credits.md\": \"credits\",\n    \"credits.rst\": \"credits\",\n    \"credits.txt\": \"credits\",\n    \"credits\": \"credits\",\n    \"authors.md\": \"authors\",\n    \"authors.rst\": \"authors\",\n    \"authors.txt\": \"authors\",\n    \"authors\": \"authors\",\n    \"contributors.md\": \"authors\",\n    \"contributors.rst\": \"authors\",\n    \"contributors.txt\": \"authors\",\n    \"contributors\": \"authors\",\n    \".flowconfig\": \"flow\",\n    \"favicon.ico\": \"favicon\",\n    \"karma.conf.js\": \"karma\",\n    \"karma.conf.ts\": \"karma\",\n    \"karma.conf.coffee\": \"karma\",\n    \"karma.config.js\": \"karma\",\n    \"karma.config.ts\": \"karma\",\n    \"karma-main.js\": \"karma\",\n    \"karma-main.ts\": \"karma\",\n    \".bithoundrc\": \"bithound\",\n    \"svgo.config.js\": \"svgo\",\n    \"svgo.config.cjs\": \"svgo\",\n    \"svgo.config.mjs\": \"svgo\",\n    \".appveyor.yml\": \"appveyor\",\n    \"appveyor.yml\": \"appveyor\",\n    \".travis.yml\": \"travis\",\n    \".codecov.yml\": \"codecov\",\n    \"codecov.yml\": \"codecov\",\n    \"sonar-project.properties\": \"sonarcloud\",\n    \".sonarcloud.properties\": \"sonarcloud\",\n    \"sonarcloud.yaml\": \"sonarcloud\",\n    \"protractor.conf.js\": \"protractor\",\n    \"protractor.conf.ts\": \"protractor\",\n    \"protractor.conf.coffee\": \"protractor\",\n    \"protractor.config.js\": \"protractor\",\n    \"protractor.config.ts\": \"protractor\",\n    \"fuse.js\": \"fusebox\",\n    \"procfile\": \"heroku\",\n    \"procfile.windows\": \"heroku\",\n    \".editorconfig\": \"editorconfig\",\n    \".bowerrc\": \"bower\",\n    \"bower.json\": \"bower\",\n    \".eslintrc.js\": \"eslint\",\n    \".eslintrc.cjs\": \"eslint\",\n    \".eslintrc.yaml\": \"eslint\",\n    \".eslintrc.yml\": \"eslint\",\n    \".eslintrc.json\": \"eslint\",\n    \".eslintrc-md.js\": \"eslint\",\n    \".eslintrc-jsdoc.js\": \"eslint\",\n    \".eslintrc\": \"eslint\",\n    \".eslintignore\": \"eslint\",\n    \".eslintcache\": \"eslint\",\n    \"eslint.config.js\": \"eslint\",\n    \"eslint.config.mjs\": \"eslint\",\n    \"code_of_conduct.md\": \"conduct\",\n    \"code_of_conduct.txt\": \"conduct\",\n    \"code_of_conduct\": \"conduct\",\n    \".watchmanconfig\": \"watchman\",\n    \"aurelia.json\": \"aurelia\",\n    \".autorc\": \"auto\",\n    \"auto.config.js\": \"auto\",\n    \"auto.config.ts\": \"auto\",\n    \"auto-config.json\": \"auto\",\n    \"auto-config.yaml\": \"auto\",\n    \"auto-config.yml\": \"auto\",\n    \"auto-config.ts\": \"auto\",\n    \"auto-config.js\": \"auto\",\n    \"mocha.opts\": \"mocha\",\n    \".mocharc.yml\": \"mocha\",\n    \".mocharc.yaml\": \"mocha\",\n    \".mocharc.js\": \"mocha\",\n    \".mocharc.json\": \"mocha\",\n    \".mocharc.jsonc\": \"mocha\",\n    \"jenkinsfile\": \"jenkins\",\n    \"firebase.json\": \"firebase\",\n    \".firebaserc\": \"firebase\",\n    \"firestore.rules\": \"firebase\",\n    \"firestore.indexes.json\": \"firebase\",\n    \"rollup.config.js\": \"rollup\",\n    \"rollup.config.mjs\": \"rollup\",\n    \"rollup.config.ts\": \"rollup\",\n    \"rollup-config.js\": \"rollup\",\n    \"rollup-config.mjs\": \"rollup\",\n    \"rollup-config.ts\": \"rollup\",\n    \"rollup.config.common.js\": \"rollup\",\n    \"rollup.config.common.mjs\": \"rollup\",\n    \"rollup.config.common.ts\": \"rollup\",\n    \"rollup.config.base.js\": \"rollup\",\n    \"rollup.config.base.mjs\": \"rollup\",\n    \"rollup.config.base.ts\": \"rollup\",\n    \"rollup.config.prod.js\": \"rollup\",\n    \"rollup.config.prod.mjs\": \"rollup\",\n    \"rollup.config.prod.ts\": \"rollup\",\n    \"rollup.config.dev.js\": \"rollup\",\n    \"rollup.config.dev.mjs\": \"rollup\",\n    \"rollup.config.dev.ts\": \"rollup\",\n    \"rollup.config.prod.vendor.js\": \"rollup\",\n    \"rollup.config.prod.vendor.mjs\": \"rollup\",\n    \"rollup.config.prod.vendor.ts\": \"rollup\",\n    \".hhconfig\": \"hack\",\n    \"hardhat.config.js\": \"hardhat\",\n    \"hardhat.config.ts\": \"hardhat\",\n    \".stylelintrc\": \"stylelint\",\n    \"stylelint.config.js\": \"stylelint\",\n    \"stylelint.config.cjs\": \"stylelint\",\n    \".stylelintrc.json\": \"stylelint\",\n    \".stylelintrc.yaml\": \"stylelint\",\n    \".stylelintrc.yml\": \"stylelint\",\n    \".stylelintrc.js\": \"stylelint\",\n    \".stylelintrc.cjs\": \"stylelint\",\n    \".stylelintignore\": \"stylelint\",\n    \".stylelintcache\": \"stylelint\",\n    \".codeclimate.yml\": \"code-climate\",\n    \".prettierrc\": \"prettier\",\n    \"prettier.config.js\": \"prettier\",\n    \"prettier.config.cjs\": \"prettier\",\n    \".prettierrc.js\": \"prettier\",\n    \".prettierrc.cjs\": \"prettier\",\n    \".prettierrc.json\": \"prettier\",\n    \".prettierrc.json5\": \"prettier\",\n    \".prettierrc.yaml\": \"prettier\",\n    \".prettierrc.yml\": \"prettier\",\n    \".prettierignore\": \"prettier\",\n    \".prettierrc.toml\": \"prettier\",\n    \".renovaterc\": \"renovate\",\n    \".renovaterc.json\": \"renovate\",\n    \"renovate-config.json\": \"renovate\",\n    \"renovate.json\": \"renovate\",\n    \"renovate.json5\": \"renovate\",\n    \"apollo.config.js\": \"apollo\",\n    \"nodemon.json\": \"nodemon\",\n    \"nodemon-debug.json\": \"nodemon\",\n    \".hintrc\": \"webhint\",\n    \"browserslist\": \"browserlist\",\n    \".browserslistrc\": \"browserlist\",\n    \".snyk\": \"snyk\",\n    \".drone.yml\": \"drone\",\n    \".sequelizerc\": \"sequelize\",\n    \"gatsby-config.js\": \"gatsby\",\n    \"gatsby-config.mjs\": \"gatsby\",\n    \"gatsby-config.ts\": \"gatsby\",\n    \"gatsby-node.js\": \"gatsby\",\n    \"gatsby-node.mjs\": \"gatsby\",\n    \"gatsby-node.ts\": \"gatsby\",\n    \"gatsby-browser.js\": \"gatsby\",\n    \"gatsby-browser.tsx\": \"gatsby\",\n    \"gatsby-ssr.js\": \"gatsby\",\n    \"gatsby-ssr.tsx\": \"gatsby\",\n    \".wakatime-project\": \"wakatime\",\n    \"circle.yml\": \"circleci\",\n    \".cfignore\": \"cloudfoundry\",\n    \"gruntfile.js\": \"grunt\",\n    \"gruntfile.ts\": \"grunt\",\n    \"gruntfile.coffee\": \"grunt\",\n    \"gruntfile.babel.js\": \"grunt\",\n    \"gruntfile.babel.ts\": \"grunt\",\n    \"gruntfile.babel.coffee\": \"grunt\",\n    \"jest.config.js\": \"jest\",\n    \"jest.config.cjs\": \"jest\",\n    \"jest.config.mjs\": \"jest\",\n    \"jest.config.ts\": \"jest\",\n    \"jest.config.cts\": \"jest\",\n    \"jest.config.mts\": \"jest\",\n    \"jest.config.json\": \"jest\",\n    \"jest.e2e.config.js\": \"jest\",\n    \"jest.e2e.config.cjs\": \"jest\",\n    \"jest.e2e.config.mjs\": \"jest\",\n    \"jest.e2e.config.ts\": \"jest\",\n    \"jest.e2e.config.cts\": \"jest\",\n    \"jest.e2e.config.mts\": \"jest\",\n    \"jest.e2e.config.json\": \"jest\",\n    \"jest.e2e.json\": \"jest\",\n    \"jest-unit.config.js\": \"jest\",\n    \"jest-e2e.config.js\": \"jest\",\n    \"jest-e2e.config.cjs\": \"jest\",\n    \"jest-e2e.config.mjs\": \"jest\",\n    \"jest-e2e.config.ts\": \"jest\",\n    \"jest-e2e.config.cts\": \"jest\",\n    \"jest-e2e.config.mts\": \"jest\",\n    \"jest-e2e.config.json\": \"jest\",\n    \"jest-e2e.json\": \"jest\",\n    \"jest-github-actions-reporter.js\": \"jest\",\n    \"jest.setup.js\": \"jest\",\n    \"jest.setup.ts\": \"jest\",\n    \"jest.json\": \"jest\",\n    \".jestrc\": \"jest\",\n    \".jestrc.js\": \"jest\",\n    \".jestrc.json\": \"jest\",\n    \"jest.teardown.js\": \"jest\",\n    \"fastfile\": \"fastlane\",\n    \"appfile\": \"fastlane\",\n    \".helmignore\": \"helm\",\n    \"wallaby.js\": \"wallaby\",\n    \"wallaby.conf.js\": \"wallaby\",\n    \"stencil.config.js\": \"stencil\",\n    \"stencil.config.ts\": \"stencil\",\n    \"makefile\": \"makefile\",\n    \"gnumakefile\": \"makefile\",\n    \"kbuild\": \"makefile\",\n    \".releaserc\": \"semantic-release\",\n    \".releaserc.yaml\": \"semantic-release\",\n    \".releaserc.yml\": \"semantic-release\",\n    \".releaserc.json\": \"semantic-release\",\n    \".releaserc.js\": \"semantic-release\",\n    \"release.config.js\": \"semantic-release\",\n    \"release.config.cjs\": \"semantic-release\",\n    \"bitbucket-pipelines.yaml\": \"bitbucket\",\n    \"bitbucket-pipelines.yml\": \"bitbucket\",\n    \".bazelignore\": \"bazel\",\n    \".bazelrc\": \"bazel\",\n    \".bazelversion\": \"bazel\",\n    \".gdignore\": \"godot-assets\",\n    \"._sc_\": \"godot-assets\",\n    \"_sc_\": \"godot-assets\",\n    \"azure-pipelines.yml\": \"azure-pipelines\",\n    \"azure-pipelines.yaml\": \"azure-pipelines\",\n    \"vagrantfile\": \"vagrant\",\n    \"prisma.yml\": \"prisma\",\n    \".nycrc\": \"istanbul\",\n    \".nycrc.json\": \"istanbul\",\n    \"tailwind.js\": \"tailwindcss\",\n    \"tailwind.ts\": \"tailwindcss\",\n    \"tailwind.config.js\": \"tailwindcss\",\n    \"tailwind.config.cjs\": \"tailwindcss\",\n    \"tailwind.config.ts\": \"tailwindcss\",\n    \"tailwind.config.cts\": \"tailwindcss\",\n    \"buildkite.yml\": \"buildkite\",\n    \"buildkite.yaml\": \"buildkite\",\n    \"netlify.json\": \"netlify\",\n    \"netlify.yml\": \"netlify\",\n    \"netlify.yaml\": \"netlify\",\n    \"netlify.toml\": \"netlify\",\n    \"svelte.config.js\": \"svelte\",\n    \"svelte.config.cjs\": \"svelte\",\n    \"nest-cli.json\": \"nest\",\n    \".nest-cli.json\": \"nest\",\n    \"nestconfig.json\": \"nest\",\n    \".nestconfig.json\": \"nest\",\n    \".percy.yml\": \"percy\",\n    \".gitpod.yml\": \"gitpod\",\n    \"codeowners\": \"codeowners\",\n    \".gcloudignore\": \"gcp\",\n    \".huskyrc\": \"husky\",\n    \"husky.config.js\": \"husky\",\n    \".huskyrc.json\": \"husky\",\n    \".huskyrc.js\": \"husky\",\n    \".huskyrc.yaml\": \"husky\",\n    \".huskyrc.yml\": \"husky\",\n    \"tiltfile\": \"tilt\",\n    \"capacitor.config.json\": \"capacitor\",\n    \"capacitor.config.ts\": \"capacitor\",\n    \".adonisrc.json\": \"adonis\",\n    \"ace\": \"adonis\",\n    \"meson.build\": \"meson\",\n    \"meson_options.txt\": \"meson\",\n    \".commitlintrc\": \"commitlint\",\n    \".commitlintrc.js\": \"commitlint\",\n    \".commitlintrc.cjs\": \"commitlint\",\n    \".commitlintrc.ts\": \"commitlint\",\n    \".commitlintrc.cts\": \"commitlint\",\n    \".commitlintrc.json\": \"commitlint\",\n    \".commitlintrc.yaml\": \"commitlint\",\n    \".commitlintrc.yml\": \"commitlint\",\n    \".commitlint.yaml\": \"commitlint\",\n    \".commitlint.yml\": \"commitlint\",\n    \"commitlint.config.js\": \"commitlint\",\n    \"commitlint.config.cjs\": \"commitlint\",\n    \"commitlint.config.ts\": \"commitlint\",\n    \"commitlint.config.cts\": \"commitlint\",\n    \".buckconfig\": \"buck\",\n    \"nx.json\": \"nrwl\",\n    \".nxignore\": \"nrwl\",\n    \"dune\": \"dune\",\n    \"dune-project\": \"dune\",\n    \"dune-workspace\": \"dune\",\n    \"dune-workspace.dev\": \"dune\",\n    \"roadmap.md\": \"roadmap\",\n    \"roadmap.txt\": \"roadmap\",\n    \"timeline.md\": \"roadmap\",\n    \"timeline.txt\": \"roadmap\",\n    \"milestones.md\": \"roadmap\",\n    \"milestones.txt\": \"roadmap\",\n    \"nuget.config\": \"nuget\",\n    \".nuspec\": \"nuget\",\n    \"nuget.exe\": \"nuget\",\n    \"stryker.conf.json\": \"stryker\",\n    \"stryker.conf.js\": \"stryker\",\n    \"stryker.conf.cjs\": \"stryker\",\n    \"stryker.conf.mjs\": \"stryker\",\n    \".stryker.conf.json\": \"stryker\",\n    \".stryker.conf.js\": \"stryker\",\n    \".stryker.conf.cjs\": \"stryker\",\n    \".stryker.conf.mjs\": \"stryker\",\n    \".modernizrrc\": \"modernizr\",\n    \".modernizrrc.js\": \"modernizr\",\n    \".modernizrrc.json\": \"modernizr\",\n    \".slugignore\": \"slug\",\n    \"stitches.config.js\": \"stitches\",\n    \"stitches.config.ts\": \"stitches\",\n    \"nginx.conf\": \"nginx\",\n    \".mcattributes\": \"minecraft\",\n    \".mcdefinitions\": \"minecraft\",\n    \".mcignore\": \"minecraft\",\n    \".replit\": \"replit\",\n    \"snowpack.config.js\": \"snowpack\",\n    \"snowpack.config.cjs\": \"snowpack\",\n    \"snowpack.config.mjs\": \"snowpack\",\n    \"snowpack.config.ts\": \"snowpack\",\n    \"snowpack.config.cts\": \"snowpack\",\n    \"snowpack.config.mts\": \"snowpack\",\n    \"snowpack.deps.json\": \"snowpack\",\n    \"snowpack.config.json\": \"snowpack\",\n    \"quasar.conf.js\": \"quasar\",\n    \"quasar.config.js\": \"quasar\",\n    \"dependabot.yml\": \"dependabot\",\n    \"dependabot.yaml\": \"dependabot\",\n    \"vite.config.js\": \"vite\",\n    \"vite.config.mjs\": \"vite\",\n    \"vite.config.cjs\": \"vite\",\n    \"vite.config.ts\": \"vite\",\n    \"vite.config.cts\": \"vite\",\n    \"vite.config.mts\": \"vite\",\n    \"vitest.config.ts\": \"vitest\",\n    \"vitest.config.mts\": \"vitest\",\n    \"vitest.config.cts\": \"vitest\",\n    \"vitest.config.js\": \"vitest\",\n    \"vitest.config.mjs\": \"vitest\",\n    \"vitest.config.cjs\": \"vitest\",\n    \"lerna.json\": \"lerna\",\n    \"windi.config.js\": \"windicss\",\n    \"windi.config.cjs\": \"windicss\",\n    \"windi.config.ts\": \"windicss\",\n    \"windi.config.cts\": \"windicss\",\n    \"windi.config.json\": \"windicss\",\n    \".textlintrc\": \"textlint\",\n    \"vpkg.json\": \"vlang\",\n    \"v.mod\": \"vlang\",\n    \".sentryclirc\": \"sentry\",\n    \".phpunit.result.cache\": \"phpunit\",\n    \".phpunit-watcher.yml\": \"phpunit\",\n    \"phpunit.xml\": \"phpunit\",\n    \"phpunit.xml.dist\": \"phpunit\",\n    \"phpunit-watcher.yml\": \"phpunit\",\n    \"phpunit-watcher.yml.dist\": \"phpunit\",\n    \".php_cs\": \"php-cs-fixer\",\n    \".php_cs.dist\": \"php-cs-fixer\",\n    \".php_cs.php\": \"php-cs-fixer\",\n    \".php_cs.dist.php\": \"php-cs-fixer\",\n    \".php-cs-fixer.php\": \"php-cs-fixer\",\n    \".php-cs-fixer.dist.php\": \"php-cs-fixer\",\n    \"robots.txt\": \"robots\",\n    \"tsconfig.json\": \"tsconfig\",\n    \"tsconfig.app.json\": \"tsconfig\",\n    \"tsconfig.editor.json\": \"tsconfig\",\n    \"tsconfig.spec.json\": \"tsconfig\",\n    \"tsconfig.base.json\": \"tsconfig\",\n    \"tsconfig.build.json\": \"tsconfig\",\n    \"tsconfig.eslint.json\": \"tsconfig\",\n    \"tsconfig.lib.json\": \"tsconfig\",\n    \"tsconfig.lib.prod.json\": \"tsconfig\",\n    \"tsconfig.node.json\": \"tsconfig\",\n    \"tsconfig.test.json\": \"tsconfig\",\n    \"tsconfig.e2e.json\": \"tsconfig\",\n    \"tsconfig.web.json\": \"tsconfig\",\n    \"tsconfig.webworker.json\": \"tsconfig\",\n    \"tsconfig.worker.json\": \"tsconfig\",\n    \"tsconfig.config.json\": \"tsconfig\",\n    \"tsconfig.vitest.json\": \"tsconfig\",\n    \"tsconfig.cjs.json\": \"tsconfig\",\n    \"tsconfig.esm.json\": \"tsconfig\",\n    \"tsconfig.mjs.json\": \"tsconfig\",\n    \"tsconfig.doc.json\": \"tsconfig\",\n    \"tsconfig.paths.json\": \"tsconfig\",\n    \"tauri.conf.json\": \"tauri\",\n    \"tauri.config.json\": \"tauri\",\n    \"tauri.linux.conf.json\": \"tauri\",\n    \"tauri.windows.conf.json\": \"tauri\",\n    \"tauri.macos.conf.json\": \"tauri\",\n    \"jsconfig.json\": \"jsconfig\",\n    \"maven.config\": \"maven\",\n    \"jvm.config\": \"maven\",\n    \"pom.xml\": \"maven\",\n    \"serverless.yml\": \"serverless\",\n    \"serverless.yaml\": \"serverless\",\n    \"serverless.json\": \"serverless\",\n    \"serverless.js\": \"serverless\",\n    \"serverless.ts\": \"serverless\",\n    \"supabase.js\": \"supabase\",\n    \"supabase.py\": \"supabase\",\n    \".ember-cli\": \"ember\",\n    \".ember-cli.js\": \"ember\",\n    \"ember-cli-builds.js\": \"ember\",\n    \"horusec-config.json\": \"horusec\",\n    \"poetry.lock\": \"poetry\",\n    \".parcelrc\": \"parcel\",\n    \".astylerc\": \"astyle\",\n    \".lighthouserc.js\": \"lighthouse\",\n    \"lighthouserc.js\": \"lighthouse\",\n    \".lighthouserc.json\": \"lighthouse\",\n    \"lighthouserc.json\": \"lighthouse\",\n    \".lighthouserc.yml\": \"lighthouse\",\n    \"lighthouserc.yml\": \"lighthouse\",\n    \".lighthouserc.yaml\": \"lighthouse\",\n    \"lighthouserc.yaml\": \"lighthouse\",\n    \".svgrrc\": \"svgr\",\n    \"svgr.config.js\": \"svgr\",\n    \".svgrrc.js\": \"svgr\",\n    \".svgrrc.yaml\": \"svgr\",\n    \".svgrrc.yml\": \"svgr\",\n    \".svgrrc.json\": \"svgr\",\n    \"rome.json\": \"rome\",\n    \"cypress.json\": \"cypress\",\n    \"cypress.env.json\": \"cypress\",\n    \"cypress.config.ts\": \"cypress\",\n    \"cypress.config.js\": \"cypress\",\n    \"cypress.config.cjs\": \"cypress\",\n    \"cypress.config.mjs\": \"cypress\",\n    \"plopfile.js\": \"plop\",\n    \"plopfile.cjs\": \"plop\",\n    \"plopfile.mjs\": \"plop\",\n    \"plopfile.ts\": \"plop\",\n    \".tobimake\": \"tobimake\",\n    \"gleam.toml\": \"gleam\",\n    \"pnpm-lock.yaml\": \"pnpm\",\n    \"pnpm-workspace.yaml\": \"pnpm\",\n    \".pnpmfile.cjs\": \"pnpm\",\n    \"gridsome.config.js\": \"gridsome\",\n    \"gridsome.server.js\": \"gridsome\",\n    \".steadybit.yml\": \"steadybit\",\n    \"steadybit.yml\": \"steadybit\",\n    \".steadybit.yaml\": \"steadybit\",\n    \"steadybit.yaml\": \"steadybit\",\n    \"Caddyfile\": \"caddy\",\n    \"bun.lockb\": \"bun\",\n    \".nano-staged.js\": \"nano-staged\",\n    \"nano-staged.js\": \"nano-staged\",\n    \".nano-staged.cjs\": \"nano-staged\",\n    \"nano-staged.cjs\": \"nano-staged\",\n    \".nano-staged.mjs\": \"nano-staged\",\n    \"nano-staged.mjs\": \"nano-staged\",\n    \".nano-staged.json\": \"nano-staged\",\n    \"nano-staged.json\": \"nano-staged\",\n    \".nanostagedrc\": \"nano-staged\",\n    \"craco.config.ts\": \"craco\",\n    \"craco.config.js\": \"craco\",\n    \"craco.config.cjs\": \"craco\",\n    \".cracorc.ts\": \"craco\",\n    \".cracorc.js\": \"craco\",\n    \".cracorc\": \"craco\",\n    \".hg\": \"mercurial\",\n    \".hgignore\": \"mercurial\",\n    \".hgflow\": \"mercurial\",\n    \".hgrc\": \"mercurial\",\n    \"hgrc\": \"mercurial\",\n    \"mercurial.ini\": \"mercurial\",\n    \"deno.json\": \"deno\",\n    \"deno.jsonc\": \"deno\",\n    \"deno.lock\": \"deno\",\n    \"plastic.branchexplorer\": \"plastic\",\n    \"plastic.selector\": \"plastic\",\n    \"plastic.wktree\": \"plastic\",\n    \"plastic.workspace\": \"plastic\",\n    \"plastic.workspaces\": \"plastic\",\n    \".mincloudrc\": \"ifanr-cloud\"\n  },\n  \"languageIds\": {\n    \"git\": \"git\",\n    \"git-commit\": \"git\",\n    \"git-rebase\": \"git\",\n    \"ignore\": \"git\",\n    \"yaml\": \"yaml\",\n    \"xml\": \"xml\",\n    \"xquery\": \"xml\",\n    \"xsl\": \"xml\",\n    \"matlab\": \"matlab\",\n    \"makefile\": \"settings\",\n    \"toml\": \"settings\",\n    \"ini\": \"settings\",\n    \"properties\": \"settings\",\n    \"shaderlab\": \"shaderlab\",\n    \"diff\": \"diff\",\n    \"json\": \"json\",\n    \"jsonc\": \"json\",\n    \"json5\": \"json\",\n    \"blink\": \"blink\",\n    \"java\": \"java\",\n    \"razor\": \"razor\",\n    \"aspnetcorerazor\": \"razor\",\n    \"python\": \"python\",\n    \"javascript\": \"javascript\",\n    \"typescript\": \"typescript\",\n    \"scala\": \"scala\",\n    \"handlebars\": \"handlebars\",\n    \"perl\": \"perl\",\n    \"perl6\": \"perl\",\n    \"haxe\": \"haxe\",\n    \"hxml\": \"haxe\",\n    \"puppet\": \"puppet\",\n    \"elixir\": \"elixir\",\n    \"livescript\": \"livescript\",\n    \"erlang\": \"erlang\",\n    \"twig\": \"twig\",\n    \"julia\": \"julia\",\n    \"elm\": \"elm\",\n    \"purescript\": \"purescript\",\n    \"stylus\": \"stylus\",\n    \"nunjucks\": \"nunjucks\",\n    \"pug\": \"pug\",\n    \"robotframework\": \"robot\",\n    \"sass\": \"sass\",\n    \"scss\": \"sass\",\n    \"less\": \"less\",\n    \"css\": \"css\",\n    \"testOutput\": \"visualstudio\",\n    \"vb\": \"visualstudio\",\n    \"ng-template\": \"angular\",\n    \"graphql\": \"graphql\",\n    \"solidity\": \"solidity\",\n    \"autoit\": \"autoit\",\n    \"haml\": \"haml\",\n    \"yang\": \"yang\",\n    \"terraform\": \"terraform\",\n    \"applescript\": \"applescript\",\n    \"cake\": \"cake\",\n    \"cucumber\": \"cucumber\",\n    \"nim\": \"nim\",\n    \"nimble\": \"nim\",\n    \"apiblueprint\": \"apiblueprint\",\n    \"riot\": \"riot\",\n    \"postcss\": \"postcss\",\n    \"lang-cfml\": \"coldfusion\",\n    \"haskell\": \"haskell\",\n    \"dhall\": \"dhall\",\n    \"cabal\": \"cabal\",\n    \"nix\": \"nix\",\n    \"ruby\": \"ruby\",\n    \"slim\": \"slim\",\n    \"php\": \"php\",\n    \"hack\": \"hack\",\n    \"javascriptreact\": \"react\",\n    \"mjml\": \"mjml\",\n    \"processing\": \"processing\",\n    \"hcl\": \"hcl\",\n    \"go\": \"go\",\n    \"django-html\": \"django\",\n    \"django-txt\": \"django\",\n    \"html\": \"html\",\n    \"gdscript\": \"godot\",\n    \"gdresource\": \"godot-assets\",\n    \"gdshader\": \"godot-assets\",\n    \"viml\": \"vim\",\n    \"prolog\": \"prolog\",\n    \"pawn\": \"pawn\",\n    \"reason\": \"reason\",\n    \"reason_lisp\": \"reason\",\n    \"sml\": \"sml\",\n    \"tex\": \"tex\",\n    \"doctex\": \"tex\",\n    \"latex\": \"tex\",\n    \"latex-expl3\": \"tex\",\n    \"apex\": \"salesforce\",\n    \"sas\": \"sas\",\n    \"dockerfile\": \"docker\",\n    \"csv\": \"table\",\n    \"tsv\": \"table\",\n    \"psv\": \"table\",\n    \"csharp\": \"csharp\",\n    \"bat\": \"console\",\n    \"awk\": \"console\",\n    \"shellscript\": \"console\",\n    \"c\": \"c\",\n    \"cpp\": \"cpp\",\n    \"objective-c\": \"objective-c\",\n    \"objective-cpp\": \"objective-cpp\",\n    \"coffeescript\": \"coffee\",\n    \"fsharp\": \"fsharp\",\n    \"editorconfig\": \"editorconfig\",\n    \"clojure\": \"clojure\",\n    \"groovy\": \"groovy\",\n    \"markdown\": \"markdown\",\n    \"jinja\": \"jinja\",\n    \"proto\": \"proto\",\n    \"pip-requirements\": \"python-misc\",\n    \"vue\": \"vue\",\n    \"vue-postcss\": \"vue\",\n    \"vue-html\": \"vue\",\n    \"lua\": \"lua\",\n    \"bibtex\": \"lib\",\n    \"bibtex-style\": \"lib\",\n    \"log\": \"log\",\n    \"jupyter\": \"jupyter\",\n    \"plaintext\": \"document\",\n    \"pdf\": \"pdf\",\n    \"powershell\": \"powershell\",\n    \"jade\": \"pug\",\n    \"r\": \"r\",\n    \"rsweave\": \"r\",\n    \"rust\": \"rust\",\n    \"sql\": \"database\",\n    \"kql\": \"kusto\",\n    \"ssh_config\": \"lock\",\n    \"svg\": \"svg\",\n    \"swift\": \"swift\",\n    \"typescriptreact\": \"react_ts\",\n    \"search-result\": \"search\",\n    \"mcfunction\": \"minecraft\",\n    \"rescript\": \"rescript\",\n    \"otne\": \"otne\",\n    \"twee3\": \"twine\",\n    \"twee3-harlowe-3\": \"twine\",\n    \"twee3-chapbook-1\": \"twine\",\n    \"twee3-sugarcube-2\": \"twine\",\n    \"grain\": \"grain\",\n    \"lolcode\": \"lolcode\",\n    \"idris\": \"idris\",\n    \"pgn\": \"chess\",\n    \"gemini\": \"gemini\",\n    \"text-gemini\": \"gemini\",\n    \"v\": \"vlang\",\n    \"wolfram\": \"wolframlanguage\",\n    \"hlsl\": \"shader\",\n    \"glsl\": \"shader\",\n    \"wgsl\": \"shader\",\n    \"tree\": \"tree\",\n    \"svelte\": \"svelte\",\n    \"dart\": \"dart\",\n    \"cadence\": \"cadence\",\n    \"stylable\": \"stylable\"\n  },\n  \"light\": {\n    \"fileExtensions\": {\n      \"blink\": \"blink_light\",\n      \"jinja\": \"jinja_light\",\n      \"jinja2\": \"jinja_light\",\n      \"j2\": \"jinja_light\",\n      \"jinja-html\": \"jinja_light\",\n      \"cr\": \"crystal_light\",\n      \"ecr\": \"crystal_light\",\n      \"drone.yml\": \"drone_light\",\n      \".wakatime-project\": \"wakatime_light\",\n      \"hcl\": \"hcl_light\",\n      \"iuml\": \"uml_light\",\n      \"pu\": \"uml_light\",\n      \"puml\": \"uml_light\",\n      \"plantuml\": \"uml_light\",\n      \"wsd\": \"uml_light\",\n      \"pgn\": \"chess_light\",\n      \"fen\": \"chess_light\",\n      \"tldr\": \"tldraw_light\"\n    },\n    \"fileNames\": {\n      \".rubocop.yml\": \"rubocop_light\",\n      \".rubocop-todo.yml\": \"rubocop_light\",\n      \".rubocop_todo.yml\": \"rubocop_light\",\n      \"vercel.json\": \"vercel_light\",\n      \".vercelignore\": \"vercel_light\",\n      \"now.json\": \"vercel_light\",\n      \".nowignore\": \"vercel_light\",\n      \"next.config.js\": \"next_light\",\n      \"next.config.mjs\": \"next_light\",\n      \"next.config.ts\": \"next_light\",\n      \"next.config.mts\": \"next_light\",\n      \"remix.config.js\": \"remix_light\",\n      \"remix.config.ts\": \"remix_light\",\n      \"turbo.json\": \"turborepo_light\",\n      \".autorc\": \"auto_light\",\n      \"auto.config.js\": \"auto_light\",\n      \"auto.config.ts\": \"auto_light\",\n      \"auto-config.json\": \"auto_light\",\n      \"auto-config.yaml\": \"auto_light\",\n      \"auto-config.yml\": \"auto_light\",\n      \"auto-config.ts\": \"auto_light\",\n      \"auto-config.js\": \"auto_light\",\n      \".stylelintrc\": \"stylelint_light\",\n      \"stylelint.config.js\": \"stylelint_light\",\n      \"stylelint.config.cjs\": \"stylelint_light\",\n      \".stylelintrc.json\": \"stylelint_light\",\n      \".stylelintrc.yaml\": \"stylelint_light\",\n      \".stylelintrc.yml\": \"stylelint_light\",\n      \".stylelintrc.js\": \"stylelint_light\",\n      \".stylelintrc.cjs\": \"stylelint_light\",\n      \".stylelintignore\": \"stylelint_light\",\n      \".stylelintcache\": \"stylelint_light\",\n      \".codeclimate.yml\": \"code-climate_light\",\n      \"browserslist\": \"browserlist_light\",\n      \".browserslistrc\": \"browserlist_light\",\n      \".drone.yml\": \"drone_light\",\n      \".wakatime-project\": \"wakatime_light\",\n      \"circle.yml\": \"circleci_light\",\n      \".releaserc\": \"semantic-release_light\",\n      \".releaserc.yaml\": \"semantic-release_light\",\n      \".releaserc.yml\": \"semantic-release_light\",\n      \".releaserc.json\": \"semantic-release_light\",\n      \".releaserc.js\": \"semantic-release_light\",\n      \"release.config.js\": \"semantic-release_light\",\n      \"release.config.cjs\": \"semantic-release_light\",\n      \"netlify.json\": \"netlify_light\",\n      \"netlify.yml\": \"netlify_light\",\n      \"netlify.yaml\": \"netlify_light\",\n      \"netlify.toml\": \"netlify_light\",\n      \"stitches.config.js\": \"stitches_light\",\n      \"stitches.config.ts\": \"stitches_light\",\n      \"snowpack.config.js\": \"snowpack_light\",\n      \"snowpack.config.cjs\": \"snowpack_light\",\n      \"snowpack.config.mjs\": \"snowpack_light\",\n      \"snowpack.config.ts\": \"snowpack_light\",\n      \"snowpack.config.cts\": \"snowpack_light\",\n      \"snowpack.config.mts\": \"snowpack_light\",\n      \"snowpack.deps.json\": \"snowpack_light\",\n      \"snowpack.config.json\": \"snowpack_light\",\n      \"pnpm-lock.yaml\": \"pnpm_light\",\n      \"pnpm-workspace.yaml\": \"pnpm_light\",\n      \".pnpmfile.cjs\": \"pnpm_light\",\n      \"bun.lockb\": \"bun_light\",\n      \".nano-staged.js\": \"nano-staged_light\",\n      \"nano-staged.js\": \"nano-staged_light\",\n      \".nano-staged.cjs\": \"nano-staged_light\",\n      \"nano-staged.cjs\": \"nano-staged_light\",\n      \".nano-staged.mjs\": \"nano-staged_light\",\n      \"nano-staged.mjs\": \"nano-staged_light\",\n      \".nano-staged.json\": \"nano-staged_light\",\n      \"nano-staged.json\": \"nano-staged_light\",\n      \".nanostagedrc\": \"nano-staged_light\",\n      \"deno.json\": \"deno_light\",\n      \"deno.jsonc\": \"deno_light\",\n      \"deno.lock\": \"deno_light\"\n    },\n    \"folderNames\": {\n      \"jinja\": \"folder-jinja_light\",\n      \"jinja2\": \"folder-jinja_light\",\n      \"j2\": \"folder-jinja_light\",\n      \".idea\": \"folder-intellij_light\"\n    },\n    \"folderNamesExpanded\": {\n      \"jinja\": \"folder-jinja-open_light\",\n      \"jinja2\": \"folder-jinja-open_light\",\n      \"j2\": \"folder-jinja-open_light\",\n      \".idea\": \"folder-intellij-open_light\"\n    }\n  },\n  \"highContrast\": {\n    \"fileExtensions\": {},\n    \"fileNames\": {}\n  },\n  \"options\": {\n    \"folders\": {\n      \"theme\": \"specific\",\n      \"color\": \"#90a4ae\",\n      \"associations\": {}\n    },\n    \"activeIconPack\": \"angular\",\n    \"hidesExplorerArrows\": false,\n    \"opacity\": 1,\n    \"saturation\": 1,\n    \"files\": {\n      \"color\": \"#90a4ae\",\n      \"associations\": {}\n    },\n    \"languages\": {\n      \"associations\": {}\n    }\n  },\n  \"file\": \"file\",\n  \"hidesExplorerArrows\": false,\n  \"folder\": \"folder\",\n  \"folderExpanded\": \"folder-open\",\n  \"rootFolder\": \"folder-root\",\n  \"rootFolderExpanded\": \"folder-root-open\"\n}\n","import { FSDescriptor } from './filemanager.component';\nimport textExtensions from './textextensions';\nimport * as MIT from '../../assets/mat-icons';\n\n// Object.keys(MIT).forEach(k => {\n//     console.log(k, MIT[k])\n// })\n\nconst symIcon = Symbol('icon');\n\nconst folderNames = MIT['default'].folderNames;\nconst fileNames = MIT['default'].fileNames;\nconst fileExtensions = MIT['default'].fileExtensions;\n\nlet folderIconNameList = [];\nlet fileIconNameList = [];\nlet fileIconExtensionList = [];\n\nObject.entries(fileNames).forEach(([name, icon]) => {\n    fileIconNameList.push({\n        val: name,\n        iconName: icon\n    });\n})\nObject.entries(fileExtensions).forEach(([name, icon]) => {\n    fileIconExtensionList.push({\n        val: name,\n        iconName: icon\n    });\n})\n\nObject.entries(folderNames).forEach(([name, icon]) => {\n    folderIconNameList.push({\n        val: name,\n        iconName: icon,\n    });\n})\n\n// const getMimeType = (name: string) =>\n//     (/\\.(appimage)$/.test(name) && \"compressed\") ||\n//     (/\\.(pot|potx|pps|ppsx|ppt|pptm|pptx)$/.test(name) && \"presentation\") ||\n//     (/\\.(odt|rtf|doc|docm|docx|dot|dotm|dotx)$/.test(name) && \"richtext\") ||\n//     (/\\.(ods|xls|xlsm|xlsx|xps|xlsx|csv)$/.test(name) && \"spreadsheet\");\n\n\n// Limited list of pop-icons that match before mat-icons\n// const builtinIcons = [\n//     \"7z\",\n//     \"apk\",\n//     \"arc\",\n//     \"bz\",\n//     \"deb\",\n//     \"gz\",\n//     \"pdf\",\n//     \"rar\",\n//     \"rpm\",\n//     \"tar\",\n//     \"xar\",\n//     \"xz\",\n//     \"zip\"\n// ];\n\nexport class IconResolver {\n    public path: string;\n\n    constructor(assetPath = \"/assets/\") {\n        let path = assetPath.trim();\n\n        // Replace any duplicate slash occurences\n        path = path.replace(/\\/{2,99}/g, '\\/');\n\n        // Trim off trailing slashes\n        if (path.endsWith('/'))\n            path = path.replace(/\\/+$/, '');\n\n        // Ensure it starts with a slash.\n        if (!path.startsWith('/'))\n            path = '/' + path;\n\n        this.path = path;\n    }\n\n    private isText(path: string) {\n        const ext = path.split('.').pop();\n        return textExtensions.includes(ext);\n    }\n\n    private getBestMatch(data: { val: string, iconName: string; }[], filename) {\n        return data\n            .filter(d => filename.endsWith(d.val)) // filter to all match results\n            .sort((a, b) => b.val.length - a.val.length) // sort longest string first\n        [0]?.iconName; // Return the first result.\n    }\n\n    private resolveDirIcon (file: FSDescriptor) {\n        if (!file.name && !file.path)  {\n            return {\n                path: `${this.path}/material/folder.svg`,\n                needsBackdrop: false\n            }\n        }\n\n        const dirnameMatch = this.getBestMatch(folderIconNameList, file['vanityName'] || file.name || file.path);\n        // VS Code Material Icon Theme pack\n\n        // TODO: default to a clear icon that doesn't have decoration\n        return {\n            path: dirnameMatch ? `${this.path}/material/${dirnameMatch}.svg` : `${this.path}/material/folder.svg`,\n            needsBackdrop: false\n        };\n    }\n\n    private resolveFileIcon (file: FSDescriptor) {\n        // Folders always use the material-icon-theme\n\n        // const baseExt = builtinIcons.find(ext => (file['vanityName'] || file.name).endsWith('.' + ext));\n        // if (baseExt) {\n        //     return {\n        //         path: `${this.path}/pop/exts/${baseExt}.svg`,\n        //         needsBackdrop: false\n        //     };\n        // }\n\n        // // Resolve a base MIME type via path extension\n        // const base2Ext = getMimeType((file['vanityName'] || file.name));\n\n        // // If we get a path extension, we can easily map the icon\n        // if (base2Ext) {\n        //     return {\n        //         path: `${this.path}/pop/${base2Ext}.svg`,\n        //         needsBackdrop: false\n        //     };\n        // }\n\n        // Lookup a filename from material-icon-theme\n        const filename = fileIconNameList\n            .filter(d => (file['vanityName'] || file.name).toLowerCase() == d.val.toLowerCase())\n            .sort((a, b) => b.val.length - a.val.length)\n            [0]?.iconName;\n\n        if (filename) {\n            return {\n                path: `${this.path}/material/${filename}.svg`,\n                needsBackdrop: true\n            };\n        }\n\n        // foo.log.1 foo.log.123 should be treated clearly as log files.\n        if (/\\.log\\.\\d+$/.test(filename)) {\n            return {\n                path: `${this.path}/material/log.svg`,\n                needsBackdrop: true\n            };\n        }\n\n        // Check the file's extension -- we may\n        const fileext = fileIconExtensionList\n            .filter(d => (file['vanityName'] || file.name).toLowerCase().endsWith('.' + d.val.toLowerCase()))\n            .sort((a, b) => b.val.length - a.val.length)\n            [0]?.iconName;\n\n        if (fileext) return {\n            path: `${this.path}/material/${fileext}.svg`,\n            needsBackdrop: true\n        };\n\n        // If the file doesn't have a text extension, we're going to assume it's binary data.\n        const isFileBinary = !this.isText(file.path);\n\n\n        return {\n            path: isFileBinary ? `${this.path}/material/document.svg` : `${this.path}/material/assembly.svg`,\n            // path: isFileBinary ? `${this.path}/pop/text.svg` : `${this.path}/pop/binary.svg`,\n            needsBackdrop: false\n        };\n    }\n\n    // TODO: resolve dynamic thumbnails for media documents\n    resolveIcon(file: FSDescriptor): { path: string, needsBackdrop: boolean; } {\n        if (!file) return null;\n        if (file[symIcon]) return file[symIcon];\n\n        if (file.kind == \"directory\") {\n            return file[symIcon] = this.resolveDirIcon(file);\n        }\n\n        return file[symIcon] = this.resolveFileIcon(file);\n    };\n}\n","import { Component, ElementRef, Input, SimpleChanges, ViewChild, ViewEncapsulation, EventEmitter, Output } from '@angular/core';\nimport { ColumnDefinition, Options, RowComponent, TabulatorFull as Tabulator } from 'tabulator-tables';\n\nexport type TabulatorEvent<T = any> = {\n    event: any,\n    row: RowComponent,\n    data: T\n}\n\n@Component({\n    selector: 'app-tabulator',\n    templateUrl: './tabulator.component.html',\n    styleUrls: [\n        '../../../../../node_modules/tabulator-tables/dist/css/tabulator_simple.css',\n        './tabulator.component.scss'\n    ],\n    encapsulation: ViewEncapsulation.None,\n    imports: [],\n    standalone: true\n})\nexport class TabulatorComponent<T = any> {\n    @ViewChild(\"table\") tableRef: ElementRef<any>;\n\n    private _dataSource = [];\n    @Input() set dataSource(data: Object[]) {\n        this._dataSource = data;\n\n        // TODO: this is performance hell for reasons I do not understand.\n        if (this.table?.getDataCount() > 0) {\n            (async () => {\n                const container = this.table.element.querySelector(\".tabulator-tableholder\");\n                const initialTop = container.scrollTop;\n                const initialLeft = container.scrollLeft;\n\n                await this.table.setData(data);\n                // @ts-ignore\n                container.scrollTo({ left: initialLeft, top: initialTop+1, behavior: \"instant\" });\n                setTimeout(() => {\n                    // @ts-ignore\n                    container.scrollTo({ left: initialLeft, top: initialTop, behavior: \"instant\" });\n                })\n            })()\n        }\n        else {\n            this.table?.setData(this.dataSource);\n        }\n    };\n    get dataSource() { return this._dataSource };\n\n    private _columns = [];\n    @Input() set columns(data: ColumnDefinition[]) {\n        this._columns = data;\n        this.table?.setColumns(this.columns);\n    };\n    get columns() { return this._columns }\n\n    @Input() key: string;\n\n    @Input() options: Options = {};\n\n    table: Tabulator;\n\n    @Output() cellClick = new EventEmitter();\n    @Output() cellDblClick = new EventEmitter();\n\n    @Output() rowClick = new EventEmitter<TabulatorEvent<T>>();\n    @Output() rowContext = new EventEmitter<TabulatorEvent<T>>();\n    @Output() rowDblClick = new EventEmitter<TabulatorEvent<T>>();\n\n    constructor() { }\n\n    ngAfterViewInit() {\n\n        const table = this.table = new Tabulator(this.tableRef.nativeElement, {\n            index: this.key,\n            data: this._dataSource,\n            // reactiveData: true,\n            columns: this._columns,\n            layout: 'fitDataFill',\n            height: \"100%\",\n            maxHeight: window.innerHeight,\n            ...this.options\n        });\n\n        table.on(\"rowClick\", (e, row) => this.rowClick.next({ event: e, row, data: row.getData() }));\n        table.on(\"rowContext\", (e, row) => this.rowContext.next({ event: e, row, data: row.getData() }));\n        table.on(\"rowDblClick\", (e, row) => this.rowDblClick.next({ event: e, row, data: row.getData() }));\n\n        table.on(\"tableBuilt\", () => {\n            table.redraw()\n        })\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n\n    }\n\n}\n","<div #table></div>\n","import { Fetch } from '../../public-api';\nimport { NgxFileManagerConfiguration } from './filemanager.component';\n\nexport const uploadFile = (\n        fetch: Fetch,\n        config: NgxFileManagerConfiguration,\n        currentDirectory: string,\n        targetPath?: string,\n        contextTags: {[key: string]: string} = {}\n    ) => new Promise(r => {\n\n    const inEl = document.createElement('input');\n    inEl.setAttribute('type', 'file');\n    inEl.setAttribute('multiple', '');\n    inEl.click();\n\n    let formData = new FormData();\n\n    inEl.addEventListener('change', () => {\n        Object.keys(inEl.files).forEach(k => {\n            const file: {\n                lastModified: number,\n                lastModifiedDate: Date,\n                name: string,\n                size: number,\n                type: string;\n            } = inEl.files[k];\n\n            const name = file.name;\n            formData.append(name, file as any);\n        });\n        formData.append(\"data\", JSON.stringify({\n            path: currentDirectory,\n            ...contextTags\n        }));\n\n        const url = config.apiSettings.uploadEntryUrlTemplate\n            ? config.apiSettings.uploadEntryUrlTemplate(targetPath ?? currentDirectory)\n            : config.apiSettings.uploadEntryUrl;\n\n        r(fetch.post(url, formData).then(res => {\n            inEl.remove();\n            return res;\n        }));\n    });\n});\n\n","import { Component, OnInit, EventEmitter, Output, Input, ViewChild, ElementRef, TemplateRef, ChangeDetectorRef, SecurityContext } from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatCheckboxChange, MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { DatePipe, NgForOf, NgIf } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CellComponent, EmptyCallback } from 'tabulator-tables';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { DirectoryDescriptor, FileDescriptor, FilemanagerComponent, FileViewTab, FSDescriptor, NgxFileManagerConfiguration } from '../filemanager.component';\nimport { FileSorting } from '../../types';\nimport { IconResolver } from '../icon-resolver';\nimport { TabulatorComponent } from '../../tabulator/tabulator.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { uploadFile } from '../helpers';\nimport { DialogService, Fetch, KeyboardService, MenuDirective, MenuItem, openMenu } from '../../../public-api';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nconst itemWidth = (80 + 20);\n\n@Component({\n    selector: 'app-file-grid',\n    templateUrl: './file-grid.component.html',\n    styleUrls: ['./file-grid.component.scss'],\n    imports: [\n        NgIf,\n        NgForOf,\n        DatePipe,\n        MatTabsModule,\n        NgScrollbarModule,\n        MatInputModule,\n        MatCheckboxModule,\n        MatProgressBarModule,\n        MatIconModule,\n        MatButtonModule,\n        TabulatorComponent,\n        MenuDirective,\n        ScrollingModule\n    ],\n    standalone: true\n})\nexport class FileGridComponent implements OnInit {\n    @ViewChild(\"fileViewport\") filesRef: ElementRef;\n    @ViewChild(TabulatorComponent) tabulator: TabulatorComponent;\n\n    @ViewChild('renameTemplate', { read: TemplateRef }) renameTemplate: TemplateRef<any>;\n\n\n    private _path: string;\n    @Input() set path(value: string) {\n        if (!value) return;\n\n        if (this._path && this.config.navigateOnlyToDescendants) {\n            if (!value.startsWith('/'))\n                value = '/' + value;\n            if (!value.startsWith(this.config.path))\n                return;\n        }\n\n        let prev = this._path;\n\n        this._path = value;\n\n        if (prev != value) {\n            this.pathChange.next(this.path);\n            if (this.config.apiSettings)\n                this.loadFolder()\n        }\n    }\n    get path() {return this._path}\n    @Output() pathChange = new EventEmitter<string>();\n\n    @Input() config: NgxFileManagerConfiguration = {};\n    @Input() showHiddenFiles = false;\n    @Input() viewMode: \"list\" | \"grid\" = \"grid\";\n    @Input() gridSize: \"small\" | \"normal\" | \"large\" = \"normal\";\n    @Input() tab: FileViewTab;\n\n    @Output() fileSelect = new EventEmitter<FileDescriptor>();\n    @Output() fileDblClick = new EventEmitter<FileDescriptor>();\n    @Output() folderSelect = new EventEmitter<DirectoryDescriptor>();\n    @Output() folderDblClick = new EventEmitter<DirectoryDescriptor>();\n    @Output() newTab = new EventEmitter<{ path: string; }>();\n    @Output() loadFiles = new EventEmitter<FSDescriptor[]>();\n\n    directoryContents: FSDescriptor[] = [];\n    @Input() selection: FSDescriptor[] = [];\n    @Output() selectionChange = new EventEmitter<FSDescriptor[]>();\n\n    @Input() value: FSDescriptor[] = [];\n    @Output() valueChange = new EventEmitter<FSDescriptor[]>();\n\n    selectionText: string;\n\n    sortedFolders: any[][] = [];\n\n    private readonly sorters = {\n        \"a-z\": (a: FileDescriptor, b: FileDescriptor) => a.name > b.name ? 1 : -1,\n        \"z-a\": (a: FileDescriptor, b: FileDescriptor) => b.name > a.name ? 1 : -1,\n        \"lastmod\": (a: FileDescriptor, b: FileDescriptor) => b.stats.mtimeMs - a.stats.mtimeMs,\n        \"firstmod\": (a: FileDescriptor, b: FileDescriptor) => a.stats.mtimeMs - b.stats.mtimeMs,\n        \"size\": (a: FileDescriptor, b: FileDescriptor) => b.stats.size - a.stats.size,\n        \"type\": (a: FileDescriptor, b: FileDescriptor) => a.path.split('.').splice(-1, 1)[0] > b.path.split('.').splice(-1, 1)[0] ? 1 : -1\n    };\n    @Input() sortOrder: FileSorting = \"a-z\";\n\n    itemsPerRow = 6;\n\n    // If the current directory is inside of an archive\n    isArchive = true;\n\n    userIsDraggingFile = false;\n    draggingOver = false;\n\n    showLoader = false;\n    hideLoader = false;\n    failedLoad = false;\n    error;\n\n    readonly columns = [\n        { id: \"name\", label: \"Name\" },\n        { id: \"size\", label: \"Size\"},\n        { id: \"type\", label: \"Type\"},\n        { id: \"owner\", label: \"Owner\"},\n        { id: \"group\", label: \"Group\"},\n        { id: \"permissions\", label: \"Permissions\"},\n        { id: \"location\", label: \"Location\"},\n        { id: \"modified\", label: \"Modified\"},\n        { id: \"modified--time\", label: \"Modified - Time\"},\n        { id: \"accessed\", label: \"Accessed\"},\n        { id: \"created\", label: \"Created\"},\n        { id: \"recency\", label: \"Recency\"},\n        { id: \"star\", label: \"Star\"},\n        { id: \"detailed-type\", label: \"Detailed Type\"},\n    ];\n\n    cols = [\n        { id: \"name\", label: \"Name\" },\n        { id: \"size\", label: \"Size\" },\n        { id: \"modified\", label: \"Modified\" },\n        { id: \"star\", label: \"Star\" }\n    ];\n\n    folderContextMenu: MenuItem<FSDescriptor>[] = [\n        {\n            label: \"New Folder\",\n            // shortcutLabel: \"Shift+Ctrl+N\",\n            icon: \"create_new_folder\",\n            action: (data) => this.onCreateFolder(data)\n        },\n        {\n            label: \"Upload file\",\n            // shortcutLabel: \"Ctrl+D\",\n            icon: \"file_upload\",\n            action: (evt) => this.onUploadFile(evt)\n        },\n        \"separator\",\n        // {\n        //     isDisabled: (data) => true,\n        //     label: \"_P_aste\",\n        //     icon: \"content_paste\",\n        //     action: (evt) => {\n        //     }\n        // },\n        {\n            label: \"Select _A_ll\",\n            shortcutLabel: \"Ctrl+A\",\n            icon: \"select_all\",\n            action: (evt) => {\n                this.selection = this._sortFilter();\n                this.selectionText = this.getSelectionText();\n                this.selectionChange.next(this.selection);\n            }\n        },\n        // \"separator\",\n        // {\n        //     label: \"P_r_operties\",\n        //     icon: \"find_in_page\",\n        //     action: (evt) => {\n\n        //     }\n        // }\n    ];\n\n    fileContextMenu: MenuItem<FSDescriptor>[] = [];\n\n    performChecksum(path, digest) {\n        // this.windowManager.openWindow({\n        //     appId: \"checksum\",\n        //     data: { digest, path },\n        //     workspace: this.windowRef.workspace,\n        //     width: 600,\n        //     height: 250\n        // });\n    }\n\n    iconResolver: IconResolver;\n\n    get libConfig() { return this.fileManager.libConfig }\n    constructor(\n        private readonly fetch: Fetch,\n        private readonly keyboard: KeyboardService,\n        private readonly dialog: DialogService,\n        private readonly matDialog: MatDialog,\n        private readonly fileManager: FilemanagerComponent,\n        private readonly changeDetector: ChangeDetectorRef,\n        private readonly sanitizer: DomSanitizer\n    ) {\n\n\n        this.iconResolver = new IconResolver(this.libConfig.assetPath);\n\n        // ctrl + a => select all\n        keyboard.onKeyCommand({\n            key: \"a\",\n            ctrl: true,\n        }).subscribe(evt => {\n            this.selection = this._sortFilter();\n            this.selectionText = this.getSelectionText();\n            this.selectionChange.next(this.selection);\n        });\n\n        // ctrl + c => copy file names to clipboard\n        keyboard.onKeyCommand({\n            key: \"c\",\n            ctrl: true,\n        }).subscribe(evt => {\n\n        });\n\n        // ctrl + h => toggle hidden files\n        keyboard.onKeyCommand({\n            key: \"h\",\n            ctrl: true,\n            interrupt: true\n        }).subscribe(evt => {\n            this.showHiddenFiles = !this.showHiddenFiles;\n        });\n\n        // F2 => Rename selected files\n        keyboard.onKeyCommand({\n            key: \"f2\",\n        }).subscribe(evt => {\n            // Rename selected file(s)\n        });\n\n        // Enter => Open selected files\n        keyboard.onKeyCommand({\n            key: \"Enter\",\n        }).subscribe(evt => {\n            const files = this.directoryContents.filter(dc => this.selection.find(i => i.name == dc.name));\n            // this.windowManager.openFiles(files as any);\n        });\n\n        // Delete => delete selected files\n        keyboard.onKeyCommand({\n            key: \"delete\",\n        }).subscribe(evt => {\n            const files = this.directoryContents.filter(dc => this.selection.find(i => i.name == dc.name));\n        });\n    }\n\n    async ngOnInit() {\n        // this.loadFolder();\n    }\n\n    ngAfterViewInit() {\n        this.fileContextMenu = [\n            {\n                label: \"Download\",\n                icon: \"download\",\n                action: (file) => this.fileManager.downloadFile(file)\n            },\n            {\n                label: \"Open in new Tab\",\n                icon: \"open_in_new\",\n                isVisible: (data) => data.kind == \"directory\",\n                action: (data) => {\n                    this.fileManager.initTab(data.path + data.name);\n                }\n            },\n            // {\n            //     label: \"Open with Application...\",\n            //     isVisible: (data) => data.kind == \"file\",\n            //     shortcutLabel: \"Ctrl+D\",\n            //     action: (evt) => {\n\n            //     },\n            // },\n            \"separator\",\n            // {\n            //     label: \"Cut\",\n            //     icon: \"content_cut\",\n            //     isDisabled: data => true,\n            //     action: (evt) => {\n            //     },\n            // },\n            // {\n            //     label: \"Copy\",\n            //     icon: \"file_copy\",\n            //     isDisabled: data => true,\n            //     childrenResolver: () => new Promise(r => setTimeout(r, 500000))\n            // },\n            // {\n            //     label: \"Move To...\",\n            //     icon: \"drive_file_move\",\n            //     shortcutLabel: \"Ctrl+A\",\n            //     action: (evt) => {\n\n            //     },\n            // },\n            // {\n            //     label: \"Copy To...\",\n            //     icon: \"folder_copy\",\n            //     shortcutLabel: \"Ctrl+A\",\n            //     action: (evt) => {\n\n            //     },\n            // },\n            {\n                label: \"Delete\",\n                icon: \"delete\",\n                // shortcutLabel: \"Del\",\n                isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n                action: (evt) => {\n                    const path = evt.path + evt.name;\n\n                    const url = this.config.apiSettings.deleteEntryUrlTemplate\n                        ? this.config.apiSettings.deleteEntryUrlTemplate(path)\n                        : this.config.apiSettings.deleteEntryUrl;\n\n                    this.fetch.post(url, { path: evt.path + evt.name })\n                        .then(() => this.loadFolder())\n                },\n            },\n            // {\n            //     label: \"Shred file\",\n            //     icon: \"delete_forever\",\n            //     isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n            //     action: (evt) => {\n            //         this.fetch.post(`/api/filesystem/delete?wipe=true`, { files: [evt.path + evt.name]})\n            //             .then(() => this.loadFolder())\n            //     },\n            // },\n            {\n                label: \"Rename\",\n                icon: \"drive_file_rename_outline\",\n                isVisible: data => !data.path.includes(\"#/\"), // omit files in compressed dirs\n                // shortcutLabel: \"F2\",\n                action: (data) => {\n                    this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", {\n                        inputs: { path: data?.path || this.path, name: data?.name || '', config: this.config }\n                    }).then(r => this.loadFolder())\n                }\n            },\n\n            // Extract Here\n            // Extract To...\n            // {\n            //     label: \"Extract Here\",\n            //     icon: \"folder_zip\",\n            //     shortcutLabel: \"Ctrl+A\",\n            //     isDisabled: (data) => !(data.kind == \"file\" && data.ext != \".zip\" && isArchive(data)),\n            //     action: (evt) => {\n            //         // TODO\n            //     },\n            // },\n            // {\n            //     label: \"Extract to...\",\n            //     icon: \"folder_zip\",\n            //     shortcutLabel: \"Ctrl+A\",\n            //     isDisabled: (data) => !(data.kind == \"file\" && data.ext != \".zip\" && isArchive(data)),\n            //     action: (evt) => {\n            //         // TODO\n            //     },\n            // },\n            // {\n            //     label: \"Compress...\",\n            //     icon: \"folder_zip\",\n            //     shortcutLabel: \"Ctrl+A\",\n            //     isDisabled: (data) => data.kind == \"file\",\n            //     action: (evt) => {\n            //         // TODO\n            //     },\n            // },\n            {\n                label: \"Checksum\",\n                icon: \"manage_search\",\n                isDisabled: (data) => data.kind != \"file\",\n                children: [\n                    {\n                        label: \"MD5\",\n                        action: (evt) => this.performChecksum(evt.path + evt.name, \"md5\"),\n                    },\n                    {\n                        label: \"SHA1\",\n                        action: (evt) => this.performChecksum(evt.path + evt.name, \"sha1\"),\n                    },\n                    {\n                        label: \"SHA256\",\n                        action: (evt) => this.performChecksum(evt.path + evt.name, \"sha256\"),\n                    },\n                    {\n                        label: \"SHA512\",\n                        action: (evt) => this.performChecksum(evt.path + evt.name, \"sha512\"),\n                    },\n                ],\n                isVisible: (data) => {\n                    return false;\n                    return !this.isArchive || data.kind == \"file\";\n                },\n            },\n            // {\n            //     label: \"Star\",\n            //     icon: \"star\",\n            //     shortcutLabel: \"Ctrl+A\",\n            //     action: (evt) => {\n\n            //     },\n            // },\n            // \"separator\",\n            // {\n            //     label: \"P_r_operties\",\n            //     icon: \"find_in_page\",\n            //     action: (evt) => {\n\n            //     },\n            // }\n        ];\n    }\n\n    async loadFolder() {\n        this.showLoader = true;\n        this.hideLoader = false;\n        this.failedLoad = false;\n\n        const url = this.config.apiSettings.listEntriesUrlTemplate\n            ? this.config.apiSettings.listEntriesUrlTemplate(this.path)\n            : this.config.apiSettings.listEntriesUrl\n\n        this.fetch.post(url, { path: this.path, showHidden: this.showHiddenFiles }, {}, true)\n            .then((data: any) => {\n                const files: FileDescriptor[] = data?.files || [];\n                const dirs: DirectoryDescriptor[] = data?.dirs || [];\n                const descriptors = files.concat(dirs as any) as FSDescriptor[];\n\n                descriptors.forEach(f => {\n                    f['_icon'] = this.iconResolver.resolveIcon(f);\n                    if (f.kind == \"file\") {\n                        f['_ctime'] = new Date(f.stats?.ctimeMs)?.toLocaleString();\n                        f['_mtime'] = new Date(f.stats?.mtimeMs)?.toLocaleString();\n                        f['_size'] = this.bytesToString(f.stats?.size);\n                    }\n                });\n\n                this.directoryContents = descriptors;\n\n                this._sortFilter();\n                this.resize();\n                this.loadFiles.next(descriptors);\n\n                if (this.sortedFolders.length > 0)\n                    this.flowRows();\n\n                setTimeout(() => this.resize(), 250);\n                setTimeout(() => this.resize(), 500);\n                setTimeout(() => this.resize(), 1000);\n                setTimeout(() => this.resize(), 2500);\n                setTimeout(() => this.resize(), 5000);\n            })\n            .catch(e => {\n                this.failedLoad = true;\n                this.error = e;\n                console.error(e);\n            })\n            .finally(() => {\n                this.hideLoader = true;\n                setTimeout(() => {\n                    this.showLoader = false;\n                }, 200);\n            })\n    }\n\n    flowRows() {\n        let filtered = this._sortFilter();\n\n        this.sortedFolders = [];\n        const num = Math.ceil(filtered.length / this.itemsPerRow);\n        const iterations = Math.min(num, 100);\n\n        for (let row = 0; row < iterations; row++) {\n            if (!this.sortedFolders[row])\n                this.sortedFolders[row] = [];\n\n            for (let i = row * this.itemsPerRow; i < (row + 1) * this.itemsPerRow && i < filtered.length; i++) {\n                this.sortedFolders[row].push(filtered[i]);\n            }\n        }\n    }\n\n    onSelect(item: FSDescriptor, evt) {\n        evt.stopPropagation();\n\n        if (this.keyboard.isShiftPressed) {\n            let start = this.directoryContents.findIndex(i => i.name == this.selection.slice(-1, 1)[0].name);\n            let end = this.directoryContents.indexOf(item);\n\n            if (start == -1)\n                start = end;\n\n            let items = start > end\n                ? this.directoryContents.slice(end, start + 1)\n                : this.directoryContents.slice(start, end + 1);\n\n            this.selection = items;\n        }\n        else if (this.keyboard.isCtrlPressed) {\n            if (!this.selection.includes(item))\n                this.selection.push(item);\n            else // Case that we selected the same item twice\n                this.selection.splice(this.selection.indexOf(item), 1);\n        }\n        else\n            this.selection = [item];\n\n        if (this.selection.length == 1) {\n            if (this.selection[0].kind == \"directory\")\n                this.folderSelect.next(this.selection[0]);\n            else\n                this.fileSelect.next(this.selection[0]);\n        }\n\n        this.selectionChange.next(this.selection);\n        this.selectionText = this.getSelectionText();\n    }\n\n    onItemClick(file: FSDescriptor) {\n        console.log(file, this);\n        if (file.kind == \"directory\") {\n            this.folderDblClick.next(file);\n            this.path = file.path + file.name;\n        }\n        // else if (file.ext == \"zip\") {\n        //     this.fileDblClick.next(file);\n        //     this.path = file.path + file.name;\n        // }\n        else {\n            this.fileDblClick.next(file);\n            this.fileSelect.next(file);\n        }\n    }\n\n    onToggle(item, state: MatCheckboxChange) {\n        item['_value'] = state.checked;\n\n        // TODO: What causes this to be null when initialized with an array?\n        if (!this.value) {\n            this.value = [];\n        }\n\n        if (state.checked) {\n            this.value.push(item);\n        }\n        else {\n            const i = this.value.findIndex(v => v == item);\n            if (i >= 0)\n                this.value.splice(i, 1);\n        }\n        this.valueChange.next(this.value);\n    }\n\n    async clearSelection() {\n        this.value = [];\n        this.valueChange.next(this.value);\n\n        this.tabulator?.table?.getRows().forEach(r => r.getElement().classList.remove('selected'));\n    }\n\n    private _sortFilter(): FileDescriptor[] {\n        return this.directoryContents = this.directoryContents?.filter(d => d.kind == 'directory')\n            .concat(this.directoryContents?.filter(d => d.kind == 'file')\n                .sort(this.sorters[this.sortOrder])\n            ) as FileDescriptor[];\n    }\n\n    private getSelectionText() {\n        const dirCount = this.selection.filter(s => s.kind == \"directory\").length;\n        const fileCount = this.selection.filter(s => s.kind == \"file\").length;\n\n        if (dirCount + fileCount == 0) return \"\";\n\n        const totalSize =\n            this.directoryContents\n                .filter(d => d.kind == \"file\")\n                .filter(d => this.selection?.find(i => i.name == d.name))\n                .map(d => d['stats'].size).reduce((a, b) => a + b, 0);\n\n        if (dirCount + fileCount == 1)\n            return `\"${this.selection[0].name}\" selected (${this.bytesToString(totalSize)})`;\n\n        if (dirCount > 0 && fileCount == 0)\n            return `\"${dirCount}\" folders selected`;\n        if (fileCount > 0 && dirCount == 0)\n            return `${fileCount} items selected (${this.bytesToString(totalSize)})`;\n\n        return `${dirCount} folder${dirCount == 1 ? \"\" : \"s\"} selected, ${fileCount} other item${fileCount == 1 ? \"\" : \"s\"} selected (${this.bytesToString(totalSize)})`;\n    }\n\n    bytesToString(bytes: number, decimals = 2) {\n        if (!+bytes) return '0 Bytes';\n\n        const k = 1024;\n        const dm = decimals < 0 ? 0 : decimals;\n        const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n        const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n        return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n    }\n\n    resize() {\n        if (!this.filesRef) {\n            setTimeout(() => this.resize(), 25);\n            return;\n        };\n\n        const bounds = (this.filesRef.nativeElement as HTMLElement).getBoundingClientRect();\n\n        const newColCount = Math.floor(bounds.width / itemWidth);\n        if (newColCount != this.itemsPerRow) {\n            this.itemsPerRow = Math.floor(bounds.width / itemWidth);\n            if (this.itemsPerRow > 100)\n                this.itemsPerRow = 1;\n\n            this.flowRows();\n        }\n\n        if (this.sortedFolders?.length == 0)\n            this.flowRows();\n    }\n\n    onDragStart(evt: DragEvent, item: FSDescriptor) {\n        const target = `${window.origin}/api/filesystem/download?dir=${item.path}&file=${item.name}`;\n\n        evt.dataTransfer.clearData();\n        // evt.dataTransfer.setData('text/uri-list', target);\n        // evt.dataTransfer.setData('DownloadURL', `text/uri-list:${target}`);\n        evt.dataTransfer.setData('text/plain', item.name);\n    }\n\n    onDrop(ev) {\n        ev.preventDefault();\n\n        if (ev.dataTransfer.items) {\n            // Use DataTransferItemList interface to access the file(s)\n            [...ev.dataTransfer.items].forEach((item, i) => {\n            // If dropped items aren't files, reject them\n            if (item.kind === \"file\") {\n                const file = item.getAsFile();\n                console.log(`… file[${i}].name = ${file.name}`);\n            }\n            });\n        } else {\n            // Use DataTransfer interface to access the file(s)\n            [...ev.dataTransfer.files].forEach((file, i) => {\n            console.log(`… file[${i}].name = ${file.name}`);\n            });\n        }\n    }\n\n    nameCellFormatter = ((cell: CellComponent, formatterParams: {}, onRendered: EmptyCallback) => {\n        // TODO: Sanitize?\n        const item = cell.getData() as FSDescriptor;\n        return `\n            <span style=\"display: flex; align-items: center\">\n                <img style=\"height: 24px; margin-right: 6px\" src=\"${item['_icon'].path}\"/>\n                <p style=\"margin: 0\">${this.sanitizer.sanitize(SecurityContext.HTML, item['vanityName'] || item.name)}</p>\n            </span>\n        `;\n    }).bind(this)\n\n    onRowCtx({event, row}) {\n        openMenu(this.matDialog, this.fileContextMenu, row.getData(), event);\n    }\n\n    onRowClick({event, row, data}) {\n        // $event.data['_value'] = $event.data['_value'] == true ? false : true\n        // console.log(event, row, data, this.value);\n\n        const rowEl = row.getElement();\n        let state = rowEl.classList.contains('selected');\n        data['_value'] = !state;\n\n        if (!this.value) {\n            this.value = [];\n        }\n\n        if (!state) {\n            rowEl.classList.add('selected');\n            this.value.push(data);\n        }\n        else {\n            rowEl.classList.remove('selected');\n            const i = this.value.findIndex(v => v == data);\n            if (i >= 0)\n                this.value.splice(i, 1);\n        }\n\n        this.valueChange.next(this.value);\n    }\n\n    sort() {\n        this._sortFilter();\n    }\n\n    onUploadFile(evt?: FSDescriptor) {\n        uploadFile(\n            this.fetch,\n            this.config,\n            this._path,\n            evt ? (evt.path + evt.name) : null,\n            this.fileManager.contextTags\n        )\n        .then(res => {\n            // Refresh folder contents\n            this.loadFolder();\n        })\n    }\n\n    onCreateFolder(data?: FSDescriptor) {\n        this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", {\n            inputs: { path: data?.path || this.path, name: data?.name || '', config: this.config }\n        }).then(r => this.loadFolder())\n    }\n}\n\n","@if (showLoader) {\n    <mat-progress-bar [class.hide]=\"hideLoader\" mode=\"query\"/>\n}\n\n<div\n    style=\"display: contents\"\n    [style.--filemanager-fileicon-backdrop]=\"'url(' + iconResolver.path + '/pop/generic.svg)'\"\n    (dragstart)=\"userIsDraggingFile = true\"\n    (dragend)=\"userIsDraggingFile = false\"\n    (dragover)=\"draggingOver = true\"\n    (dragleave)=\"draggingOver = false\"\n    (ondrop)=\"onDrop($event)\"\n>\n\n    @if (failedLoad) {\n        <div style=\"display: flex; align-items: center; justify-content: center; height: 100%\">\n            <div style=\"max-width: 400px; display: flex; flex-direction: column; align-items: center; justify-content: center;\">\n                <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\n                <svg\n                    fill=\"var(--text-color)\"\n                    width=\"200px\"\n                    viewBox=\"0 0 600.525 600.525\"\n                >\n                    <path d=\"M57.375,138.656L43.031,95.146c-23.428,8.128-40.162,29.166-42.553,54.028l45.9,3.825C46.856,146.306,51.16,140.568,57.375,138.656z\" />\n                    <rect y=\"288.309\" width=\"45.9\" height=\"45.901\" />\n                    <path d=\"M554.625,446.091c0,3.346-0.956,6.215-2.868,9.084l38.25,25.34c6.693-10.039,10.04-21.992,10.04-34.424V423.14h-45.899v22.951H554.625z\" />\n                    <rect x=\"456.609\" y=\"146.306\" width=\"45.9\" height=\"45.9\" />\n                    <rect x=\"485.297\" y=\"462.825\" width=\"45.9\" height=\"45.9\" />\n                    <rect x=\"393.497\" y=\"462.825\" width=\"45.9\" height=\"45.9\" />\n                    <rect x=\"364.81\" y=\"146.306\" width=\"45.9\" height=\"45.9\" />\n                    <rect x=\"118.097\" y=\"462.825\" width=\"45.9\" height=\"45.9\" />\n                    <rect y=\"380.108\" width=\"45.9\" height=\"45.9\" />\n                    <rect y=\"196.509\" width=\"45.9\" height=\"45.9\" />\n                    <path d=\"M330.385,143.437c-2.391-1.434-3.825-2.391-4.304-2.869l-28.209-29.166c-1.913-1.913-4.303-3.825-6.694-5.737l-27.253,36.815c0.478,0.478,0.956,0.956,0.956,0.956s37.772,34.425,44.465,41.119L330.385,143.437z\" />\n                    <rect x=\"554.625\" y=\"239.541\" width=\"45.9\" height=\"45.9\" />\n                    <rect x=\"301.697\" y=\"462.825\" width=\"45.899\" height=\"45.9\" />\n                    <path d=\"M559.885,146.306h-10.997v47.812h5.737h45.9v-7.172C600.525,164.475,582.356,146.306,559.885,146.306z\" />\n                    <rect x=\"187.425\" y=\"91.8\" width=\"45.9\" height=\"45.9\" />\n                    <rect x=\"554.625\" y=\"331.341\" width=\"45.9\" height=\"45.9\" />\n                    <rect x=\"95.625\" y=\"91.8\" width=\"45.9\" height=\"45.9\" />\n                    <rect x=\"209.897\" y=\"462.825\" width=\"45.9\" height=\"45.9\" />\n                    <path d=\"M49.247,456.132l-36.337,27.73c11.953,15.777,30.122,24.863,49.725,24.863h9.562v-45.9h-9.562C57.375,462.825,52.594,460.435,49.247,456.132z\" />\n                </svg>\n\n                <h3>Sorry about that.</h3>\n                <p>\n                    Our servers aren't doing their thing right now.\n                    You can try again later or contact an administrator about this.\n                </p>\n                <hr style=\"width: 100%; opacity: .5;\"/>\n                <p>\n                    Error:\n                    <span style=\"color: var(--mat-tab-header-active-focus-label-text-color)\">{{error.status}}</span>\n                    <br/>\n                    @if (error.error?.message) {\n                        Message: {{error.error?.message}}\n                    }\n                </p>\n            </div>\n        </div>\n    }\n    @else {\n        <!-- <ng-container *ngIf=\"draggingOver\"></ng-container> -->\n        <!-- Grid mode -->\n        @if (viewMode == 'grid') {\n            <ng-scrollbar\n                class=\"grid content-area {{gridSize}} {{config.imageSize || 'normal'}}\"\n                [class.selectionMode]=\"config.mode == 'focusFiles'\"\n                [class.showDropArea]=\"draggingOver\"\n                style=\"height: 100%; width: 100%\"\n                track=\"vertical\"\n                pointerEventsMethod=\"scrollbar\"\n                [ngx-contextmenu]=\"folderContextMenu\"\n            >\n                <div class=\"resize-observer\" #fileViewport></div>\n                <cdk-virtual-scroll-viewport\n                    itemSize=\"150\"\n                    scrollViewport\n                    (click)=\"selection = []; selectionText = ''\"\n                >\n                    <div class=\"row\" *cdkVirtualFor=\"let row of sortedFolders\">\n                        @for (item of row; track item) {\n                            <div class=\"file\"\n                                [class.selected]=\"selection.includes(item)\"\n                                [class.generic]=\"item['_icon'].needsBackdrop\"\n                                [ngx-contextmenu]=\"fileContextMenu\"\n                                [ngx-menu-context]=\"item\"\n                            >\n                                @if (config.mode == 'focusFiles' && item.kind == 'file') {\n                                    <mat-checkbox\n                                        #checkbox\n                                        [checked]=\"item['_value']\"\n                                        (change)=\"onToggle(item, $event)\"\n                                    />\n                                }\n                                <div\n                                    style=\"display: contents\"\n                                    (click)=\"onSelect(item, $event)\"\n                                    (dblclick)=\"onItemClick(item)\"\n                                    (dragstart)=\"onDragStart($event, item)\"\n                                >\n                                    <img [src]=\"item['_icon'].path\"/>\n                                    <p>{{item['vanityName'] || item.name}}</p>\n                                </div>\n                            </div>\n                        }\n                    </div>\n                </cdk-virtual-scroll-viewport>\n            </ng-scrollbar>\n        }\n\n        <!-- List mode -->\n        @if (viewMode == 'list') {\n            <div\n                class=\"content-area\"\n                style=\"width: 100%; height: 100%\"\n                [class.showDropArea]=\"draggingOver\"\n                [ngx-contextmenu]=\"folderContextMenu\"\n            >\n                <app-tabulator\n                    [dataSource]=\"directoryContents\"\n                    [columns]=\"[\n                        { field: 'name', title: 'Name', formatter: nameCellFormatter },\n                        { field: '_size', title: 'Size' },\n                        { field: '_ctime', title: 'Created' },\n                        { field: '_mtime', title: 'Modified' },\n                    ]\"\n                    [options]=\"{\n                        rowHeight: 32\n                    }\"\n                    (rowClick)=\"onRowClick($event)\"\n                    (rowDblClick)=\"onItemClick($event.data)\"\n                    (rowContext)=\"onRowCtx($event)\"\n                />\n            </div>\n        }\n    }\n</div>\n\n@if (selectionText?.trim()?.length > 0) {\n    <div class=\"select-hint\">\n        {{selectionText}}\n    </div>\n}\n\n<div class=\"controls\">\n    <button\n        mat-flat-button\n        class=\"upload-button\"\n        (click)=\"onCreateFolder()\"\n    >\n        <mat-icon>create_new_folder</mat-icon>\n        New Folder\n    </button>\n    <button\n        mat-flat-button\n        class=\"upload-button\"\n        (click)=\"onUploadFile()\"\n    >\n        <mat-icon>upload_file</mat-icon>\n        Upload\n    </button>\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n    selector: 'gtk-icon-button',\n    templateUrl: './icon-button.component.html',\n    styleUrls: ['./icon-button.component.scss'],\n    imports: [\n        MatIconModule,\n        MatButtonModule\n    ],\n    standalone: true\n})\nexport class GtkIconButtonComponent {\n\n    @Input() fontIcon: string;\n\n    @Output() click = new EventEmitter();\n\n    @Input() disabled = false;\n\n    showDialog = false;\n\n    onClick() {\n\n        this.click.emit();\n    }\n}\n","<button mat-flat-button [disabled]=\"disabled\">\n    <mat-icon [fontIcon]=\"fontIcon\"></mat-icon>\n</button>\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\nimport { NgxFileManagerConfiguration } from '../../filemanager.component';\n\nexport type Breadcrumb = {\n    label: string,\n    id: string | number\n}\n\n@Component({\n    selector: 'app-breadcrumb',\n    templateUrl: './breadcrumb.component.html',\n    styleUrls: ['./breadcrumb.component.scss'],\n    standalone: true\n})\nexport class GtkBreadcrumbComponent implements OnInit {\n\n    // Could also do object array?\n    @Input() crumbs: Breadcrumb[];\n    @Output() crumbClick = new EventEmitter<Breadcrumb>();\n\n    @Input() config: NgxFileManagerConfiguration;\n\n    constructor() { }\n\n    ngOnInit() {\n    }\n}\n","<button (click)=\"crumbClick.next({ id: config.chrootPath || '/', label: ''})\">\n    {{config.rootName || 'Storage'}}\n</button>\n\n@for (crumb of crumbs; track crumb) {\n    @if (crumb.label?.trim()?.length > 0) {\n        <button (click)=\"crumbClick.next(crumb)\">{{crumb.label}}</button>\n    }\n}\n","import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GtkIconButtonComponent } from './icon-button/icon-button.component';\nimport { GtkBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { FilemanagerComponent, FileViewTab, FSDescriptor, NgxFileManagerConfiguration } from '../filemanager.component';\nimport { FileSorting } from '../../types';\nimport { uploadFile } from '../helpers';\nimport { DialogService, Fetch, MenuDirective, MenuItem } from '../../../public-api';\n\n@Component({\n    selector: 'app-toolbar',\n    templateUrl: './toolbar.component.html',\n    styleUrls: ['./toolbar.component.scss'],\n    imports: [\n        MatIconModule,\n        MatButtonModule,\n        GtkIconButtonComponent,\n        GtkBreadcrumbComponent,\n        MenuDirective\n    ],\n    standalone: true\n})\nexport class ToolbarComponent {\n    @ViewChild('zoomTemplate') zoomTemplate: TemplateRef<any>;\n    @ViewChild('actionTemplate') actionTemplate: TemplateRef<any>;\n\n    @Input() config: NgxFileManagerConfiguration;\n\n\n    @Output() onBreadcrumbClick = new EventEmitter();\n\n    @Input() currentTab: FileViewTab = {} as any;\n\n    @Input() showHiddenFiles: boolean;\n    @Output() showHiddenFilesChange = new EventEmitter<boolean>();\n    @Input() showSidebar: boolean;\n    @Output() showSidebarChange = new EventEmitter<boolean>();\n\n    @Input() drawerMode = false;\n    @Input() showBareMinimum = false;\n\n    constructor(\n        public fileManager: FilemanagerComponent,\n        private dialog: DialogService,\n        private fetch: Fetch\n    ) {\n\n    }\n\n    fileOptions: MenuItem<FSDescriptor>[] = [\n        {\n            label: \"New Folder\",\n            action: (folder) => {\n                this.dialog.open(\"folder-rename\", \"@dotglitch/ngx-web-components\", { inputs: { path: this.currentTab.path, name: '', config: this.config } })\n            }\n        },\n        {\n            label: \"Upload file\",\n            icon: \"file_upload\",\n            action: (evt) => uploadFile(this.fetch, this.config, this.fileManager.currentTab.path, null, this.fileManager.contextTags).then(res => {\n                // Tell the current tab to reload it's data.\n                const tab =  this.fileManager.currentTab;\n                const grid = this.fileManager.fileGrids.find(t => t.tab.id == tab.id);\n                grid.loadFolder();\n            })\n        },\n        // {\n        //     label: \"Add to Bookmarks (WIP)\",\n        //     action: (folder) => {\n        //         //\n        //     }\n        // },\n        // \"separator\",\n        // {\n        //     label: \"Paste\",\n        //     action: (folder) => {\n        //         //\n        //     }\n        // },\n        // {\n        //     label: \"Select All\",\n        //     action: (folder) => {\n        //         //\n        //     }\n        // },\n        // \"separator\",\n        // {\n        //     label: \"Properties\",\n        //     action: (folder) => {\n        //         //\n        //     }\n        // },\n    ]\n\n    sortOptions: MenuItem<FSDescriptor>[] = [\n        {\n            label: \"Sort\",\n            separator: true\n        },\n        {\n            label: \"A-Z\",\n            action: () => this.setSorter('a-z')\n        },\n        {\n            label: \"Z-A\",\n            action: () => this.setSorter('z-a')\n        },\n        {\n            label: \"Last Modified\",\n            action: () => this.setSorter('lastmod')\n        },\n        {\n            label: \"First Modified\",\n            action: () => this.setSorter('firstmod')\n        },\n        {\n            label: \"Size\",\n            action: () => this.setSorter('size')\n        },\n        {\n            label: \"Type\",\n            action: () => this.setSorter('type')\n        },\n        \"separator\",\n        {\n            label: \"Refresh\",\n            action: () => this.fileManager.currentFileGrid.loadFolder()\n        }\n    ];\n\n    historyBack(tab: FileViewTab) {\n        console.log(\"history ->\", tab)\n        tab.historyIndex--;\n        tab.path = tab.history[tab.historyIndex - 1];\n    }\n\n    historyForward(tab: FileViewTab) {\n        console.log(\"history <-\", tab)\n        tab.historyIndex++;\n        tab.path = tab.history[tab.historyIndex - 1];\n    }\n\n    toggleDrawer() {\n        if ([...this.fileManager.drawer._drawers][0].opened)\n            this.fileManager.drawer.close();\n        else\n            this.fileManager.drawer.open();\n    }\n\n    setSorter(mode: FileSorting) {\n        this.fileManager.currentTab.sortOrder = mode;\n        this.fileManager.refreshSorting();\n    }\n\n    onRefresh() {\n        // console.log(this.fileManager);\n        this.fileManager.fileGrids.forEach(g => g.loadFolder());\n    }\n}\n","@if (fileManager.sidebarOverlay && !drawerMode) {\n    <button\n        mat-icon-button\n        (click)=\"toggleDrawer()\"\n    >\n        <mat-icon>list</mat-icon>\n    </button>\n}\n\n@if (!showBareMinimum) {\n    <div class=\"buttongroup\">\n        <gtk-icon-button\n            fontIcon=\"arrow_back_ios_new\"\n            (click)=\"historyBack(currentTab)\"\n            [disabled]=\"currentTab.history?.length <= 1\"\n        />\n        <gtk-icon-button\n            fontIcon=\"arrow_forward_ios\"\n            (click)=\"historyForward(currentTab)\"\n            [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n        />\n    </div>\n\n    @if (!drawerMode) {\n        <div style=\"width: 40px\"></div>\n    }\n    <gtk-icon-button\n        fontIcon=\"sync\"\n        (click)=\"onRefresh()\"\n    />\n}\n\n@if (currentTab) {\n    <app-breadcrumb\n        style=\"flex: 1\"\n        [crumbs]=\"currentTab.breadcrumb\"\n        (crumbClick)=\"onBreadcrumbClick.next($event)\"\n        [config]=\"config\"\n    />\n}\n\n@if (!drawerMode) {\n    <!-- <div style=\"flex: 1\"></div> -->\n\n    <gtk-icon-button\n        fontIcon=\"more_vert\"\n        [ngx-menu]=\"fileOptions\"\n        [ngx-menu-config]=\"{position: 'bottom'}\"\n    />\n\n    <div style=\"width: 8px\"></div>\n\n    <!-- <gtk-icon-button\n        fontIcon=\"search\"\n    /> -->\n\n    @if (fileManager.width > 800) {\n        <div style=\"width: 100px\"></div>\n    }\n\n    <gtk-icon-button\n        [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n        (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n    />\n\n    <gtk-icon-button\n        fontIcon=\"sort\"\n        [ngx-menu]=\"sortOptions\"\n        [ngx-menu-config]=\"{position: 'bottom'}\"\n    />\n\n}\n","import { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, HostListener, Inject, Input, Optional, Output, TemplateRef, ElementRef, ViewContainerRef } from '@angular/core';\nimport { MatExpansionModule, MatExpansionPanel } from '@angular/material/expansion';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { IconResolver } from '../icon-resolver';\nimport { FilemanagerComponent } from '../filemanager.component';\n\n@Component({\n    selector: 'app-tree-view',\n    templateUrl: './tree-view.component.html',\n    styleUrls: ['./tree-view.component.scss'],\n    imports: [\n        NgTemplateOutlet,\n        MatExpansionModule,\n        MatProgressBarModule\n    ],\n    standalone: true\n})\nexport class TreeViewComponent {\n    @ContentChild(\"rowTemplate\", { read: TemplateRef }) rowTemplate: TemplateRef<any>;\n    @Input(\"rowTemplate\") rowTemplateIn: TemplateRef<any>;\n\n    @Input() data: any[];\n\n    @Output() click = new EventEmitter();\n    @Output() loadChildren = new EventEmitter();\n\n    iconResolver: IconResolver;\n    get libConfig() { return this.fileManager.libConfig; }\n\n    constructor(\n        private readonly fileManager: FilemanagerComponent,\n    ) {\n        this.iconResolver = new IconResolver(this.libConfig.assetPath);\n    }\n\n    tryLoadChildren(item, panel: MatExpansionPanel) {\n        this.loadChildren.next({\n            item,\n            cb: (children) => {\n                item['_children'] = children;\n                if (children.length == 0)\n                    panel.close();\n            }\n        })\n    }\n}\n","<mat-accordion displayMode=\"flat\" [multi]=\"true\">\n    @for (item of data; track item) {\n        <mat-expansion-panel\n            #panel\n            expanded=\"false\"\n            togglePosition=\"before\"\n            [class.isleaf]=\"item['_children']?.length == 0\"\n            (afterExpand)=\"tryLoadChildren(item, panel)\"\n        >\n            <mat-expansion-panel-header>\n                <div (click)=\"$event.stopPropagation(); click.next(item);\" style=\"display: flex; align-items: center;\">\n                    @if (panel.expanded) {\n                        <img\n                            style=\"height: 20px; margin-right: 8px\"\n                            [src]=\"iconResolver.resolveIcon(item)?.path.replace('.svg', '-open.svg')\"\n                        />\n                    }\n                    @else {\n                        <img\n                            style=\"height: 20px; margin-right: 8px\"\n                            [src]=\"iconResolver.resolveIcon(item)?.path\"\n                        />\n                    }\n\n                    {{item.name}}\n                </div>\n            </mat-expansion-panel-header>\n\n            @if (item['_children']) {\n                <app-tree-view\n                    [data]=\"item['_children']\"\n                    (click)=\"click.next(item)\"\n                    (loadChildren)=\"loadChildren.next($event)\"\n                />\n            }\n            @else {\n                <mat-progress-bar color=\"primary\" mode=\"query\"/>\n            }\n        </mat-expansion-panel>\n    }\n</mat-accordion>\n","import { InjectionToken } from '@angular/core';\n\nexport const NGX_WEB_COMPONENTS_CONFIG = new InjectionToken<NgxWebComponentsConfig>('webcomponents-config');\n\nexport type NgxWebComponentsConfig = Partial<{\n    /**\n     * The path that assets will ultimately be served from.\n     * Default `/assets/`\n     */\n    assetPath: string\n}>;\n\n\nexport type FileSorting = \"a-z\" | \"z-a\" | \"lastmod\" | \"firstmod\" | \"size\" | \"type\";\n","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { NgForOf, NgIf } from '@angular/common';\nimport { MatTabGroup, MatTabsModule } from '@angular/material/tabs';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDrawerContainer, MatSidenavModule } from '@angular/material/sidenav';\nimport { AngularSplitModule } from 'angular-split';\n\nimport { FileGridComponent } from './file-grid/file-grid.component';\nimport { ToolbarComponent } from './toolbar/toolbar.component';\nimport { TreeViewComponent } from './tree-view/tree-view.component';\nimport { FileSorting, NGX_WEB_COMPONENTS_CONFIG, NgxWebComponentsConfig } from '../types';\nimport { IconResolver } from './icon-resolver';\nimport { LazyLoaderService, NGX_LAZY_LOADER_CONFIG } from '../lazy-loader/lazy-loader.service';\nimport { Fetch } from '../../public-api';\nimport { ulid } from 'ulidx';\n\n// TODO:\n/**\n * Multiple music / video / image files selected turns into a playlist\n * Dragging music / video / image queues the file(s)\n * Can save and edit a list of files as playlist\n * Can \"loop\" \"randomize\"\n */\n\nexport type DirectoryDescriptor = {\n    kind: \"directory\",\n    path: string,\n    name: string\n    contents: {\n        dirs: DirectoryDescriptor[],\n        files: FileDescriptor[]\n    }\n}\n\nexport type FileDescriptor = {\n    kind: \"file\",\n    stats: {\n        size: number;\n        // Size for zipped file\n        compressedSize?: number,\n        atimeMs: number;\n        mtimeMs: number;\n        ctimeMs: number;\n        birthtimeMs: number;\n    },\n    path: string\n    name: string,\n    ext: string,\n    // Comment for entries in a zip file.\n    comment?: string\n};\n\nexport type FSDescriptor = DirectoryDescriptor | FileDescriptor;\n\nexport type FileViewTab = {\n    id: string,\n    label: string,\n    breadcrumb: {\n        id: string,\n        label: string\n    }[],\n    path: string,\n    selection: FSDescriptor[],\n    viewMode: \"grid\" | \"list\",\n    historyIndex: number,\n    history: string[],\n    sidebarItems: FSDescriptor[],\n    sortOrder: FileSorting\n}\n\n// TODO: replace http configs\ntype HttpConfiguration = (\n    { url: string } |\n    { urlTemplate: (path: string) => string }\n) & {\n    method?: \"get\" | \"put\" | \"post\" | \"patch\" | \"delete\",\n    headers?: { [key: string]: string }\n}\n\nexport type NgxFileManagerConfiguration = Partial<{\n    /**\n     * Initial path\n     */\n    path: string,\n\n    /**\n     * Custom root path (will appear as '/').\n     * Defaults to '/'.\n     *\n     * User cannot view outside of this path.\n     *   (Not to be used as a security measure!)\n     */\n    chrootPath: string,\n\n    /**\n     * Restrict users to only navigate around to subpaths of the specified `path`\n     */\n    navigateOnlyToDescendants: boolean,\n    showBreadcrumb: boolean,\n    showTreeview: boolean,\n\n    /**\n     * Name of the \"root\" path `/`\n     * Defaults to \"Storage\"\n     */\n    rootName: string,\n\n    /**\n     * Maximum number of items to be stored in history.\n     */\n    maxHistoryLength: number,\n\n    apiSettings: {\n        listEntriesUrl?: string,\n        listEntriesUrlTemplate?: (path: string) => string,\n        downloadEntryUrl?: string,\n        downloadEntryUrlTemplate?: (path: string) => string,\n        uploadEntryUrl?: string,\n        uploadEntryUrlTemplate?: (path: string) => string,\n        deleteEntryUrl?: string,\n        deleteEntryUrlTemplate?: (path: string) => string,\n        renameEntryUrl?: string,\n        renameEntryUrlTemplate?: (path: string) => string,\n        createDirectoryUrl?: string,\n        createDirectoryUrlTemplate?: (path: string) => string\n    },\n\n    /**\n     * The path that images are loaded from.\n     * Default value `/assets/dotglitch/webcomponents/`\n     */\n    assetPath: string,\n    sidebarLocationStrategy: \"known\" | \"currentDirectory\",\n\n    iconResolver: (file: FSDescriptor) => string,\n\n    imageSize: \"normal\" | \"small\" | \"huge\",\n\n    /**\n     *\n     */\n    selectionMode: \"single\" | \"multiple\",\n\n    /**\n     * This determines if the filemanager shows selected entries\n     *\n     * If set to `focusFiles`, file paths that match from the provided `focusedFiles`\n     * will be highlighted, and can be selected / deselected.\n     */\n    mode: \"focusFiles\" | \"normal\",\n    focusedFiles: string[]\n}>\n\n@Component({\n    selector: 'app-filemanager',\n    templateUrl: './filemanager.component.html',\n    styleUrls: ['./filemanager.component.scss'],\n    imports: [\n        AngularSplitModule,\n        FileGridComponent,\n        MatTabsModule,\n        MatIconModule,\n        MatSidenavModule,\n        ToolbarComponent,\n        TreeViewComponent\n    ],\n    standalone: true\n})\nexport class FilemanagerComponent implements OnInit {\n    @ViewChild('tabGroup') tabGroup: MatTabGroup;\n    @ViewChildren(FileGridComponent) fileGrids: QueryList<FileGridComponent>;\n    @ViewChild(TreeViewComponent) treeView: TreeViewComponent;\n    @ViewChild(ToolbarComponent) toolbar: ToolbarComponent;\n    @ViewChild(MatDrawerContainer) drawer: MatDrawerContainer;\n\n    @Input() config: NgxFileManagerConfiguration = {\n        apiSettings: {\n            listEntriesUrl: `/api/filesystem/`,\n            uploadEntryUrl: `/api/filesystem/`,\n            downloadEntryUrl: `/api/filesystem/`,\n            deleteEntryUrl: `/api/filesystem/`,\n            createDirectoryUrl: `/api/filesystem/folder`,\n            renameEntryUrl: `/api/filesystem/rename`\n        }\n    };\n\n    @Input() gridSize: \"small\" | \"normal\" | \"large\" = \"normal\";\n    @Input() mode: \"grid\" | \"list\";\n    @Input() contextTags: {[key: string]: string};\n\n\n    @Input() value: FSDescriptor[] = [];\n    @Output() valueChange = new EventEmitter<FSDescriptor[]>();\n\n    gridValues: FSDescriptor[][] = [];\n\n    /**\n     * Emits when focused files change.\n     * Only available in `focusFiles` mode.\n     */\n    @Output() focusedFilesChange = new EventEmitter();\n    /**\n     * Emits when a file is uploaded.\n     */\n    @Output() fileUpload = new EventEmitter();\n    /**\n     * Emits when a file is downloaded.\n     */\n    @Output() fileDownload = new EventEmitter();\n    @Output() fileRename = new EventEmitter();\n    @Output() fileDelete = new EventEmitter();\n    @Output() fileCopy = new EventEmitter();\n    @Output() filePaste = new EventEmitter();\n\n    @Output() fileSelect = new EventEmitter<FileDescriptor>();\n    @Output() fileDblClick = new EventEmitter<FileDescriptor>();\n    @Output() folderSelect = new EventEmitter<DirectoryDescriptor>();\n    @Output() folderDblClick = new EventEmitter<DirectoryDescriptor>();\n\n    /**\n     * Emits when multiple file selections change.\n     */\n    @Output() filesSelect = new EventEmitter<FSDescriptor[]>();\n    /**\n     * Emits when any selection changes, single or multiple files.\n     */\n    // @Output() selectionChange = new EventEmitter<FSDescriptor[]>();\n\n    showHiddenFiles = false;\n    showSidebar = true;\n    sidebarOverlay = false;\n    width = 0;\n\n    isHomeAncestor = false;\n\n    currentTab: FileViewTab = {} as any;\n    get currentFileGrid() { return this.fileGrids.get(this.tabIndex) }\n    tabIndex = 0;\n    tabs: FileViewTab[] = [];\n\n    iconResolver: IconResolver;\n\n    constructor (\n        @Optional() @Inject(NGX_WEB_COMPONENTS_CONFIG) readonly libConfig: NgxWebComponentsConfig = {},\n        private readonly lazyLoader: LazyLoaderService,\n        private viewContainer: ViewContainerRef,\n        private fetch: Fetch\n    ) {\n        lazyLoader.registerComponent({\n            id: \"folder-rename\",\n            group: \"@dotglitch/ngx-web-components\",\n            load: () => import('./folder-rename/folder-rename.component')\n        })\n\n        this.iconResolver = new IconResolver(libConfig.assetPath);\n    }\n\n    ngOnInit(): void {\n        this.initTab(this.config.path);\n        this.currentTab = this.tabs[0];\n    }\n\n    ngAfterViewInit() {\n        this.onResize();\n\n        setTimeout(() => this.onResize(), 250);\n    }\n\n    onTreeViewLoadChildren({item, cb}) {\n        const url = this.config.apiSettings.listEntriesUrlTemplate\n                  ? this.config.apiSettings.listEntriesUrlTemplate(item.path + item.name)\n                  : this.config.apiSettings.listEntriesUrl\n\n        this.fetch.post(url, { path: item.path + item.name, showHidden: this.showHiddenFiles })\n            .then((data: any) => {\n                const dirs: DirectoryDescriptor[] = data.dirs;\n                cb(dirs);\n            })\n    }\n\n    initTab(path: string) {\n        this.tabs.push(this.currentTab = {\n            id: ulid(),\n            label: this.getTabLabel(path),\n            breadcrumb: this.calcBreadcrumb(path),\n            path,\n            selection: [],\n            viewMode: this.mode || 'grid',\n            historyIndex: 0,\n            history: [],\n            sidebarItems: [],\n            sortOrder: 'a-z'\n        });\n        this.tabIndex = this.tabs.length;\n    }\n\n    closeTab(tab: FileViewTab) {\n        this.tabs.splice(this.tabs.findIndex(t => t.id == tab.id), 1);\n    }\n\n    calcBreadcrumb(path: string) {\n        if (!path) return null;\n\n        path = path.replace(\"#/\", '/');\n\n        // If we're acting like we're in a changed root, we wipe out\n        // breadcrumbs below the root\n        if (this.config.chrootPath) {\n            path = path.replace(this.config.chrootPath, '');\n            const parts = path.split('/');\n\n            path = path.replace(/^\\//, this.config.chrootPath);\n            return parts.map((p, i) => {\n                const path = parts.slice(0, i + 1).join('/');\n\n                return {\n                    id: (this.config.chrootPath + (path || '/')).replace(/\\/+/g, '/'),\n                    label: p || \"\"\n                };\n            });\n        }\n        else {\n            const parts = path.split('/');\n\n            return parts.map((p, i) => {\n                const path = parts.slice(0, i + 1).join('/');\n\n                return {\n                    id: path || '/',\n                    label: p || \"\"\n                };\n            });\n        }\n    }\n\n    onBreadcrumbClick(crumb) {\n        if (crumb.id) {\n            this.currentTab.path = crumb.id;\n            this.currentTab.breadcrumb = this.calcBreadcrumb(crumb.id);\n        }\n    }\n\n    onTabPathChange(tab: FileViewTab) {\n        tab.label = this.getTabLabel(tab.path);\n        tab.breadcrumb = this.calcBreadcrumb(tab.path);\n\n        tab.historyIndex++;\n        tab.history.push(tab.path);\n        tab.history.splice(typeof this.config.maxHistoryLength == 'number' ? this.config.maxHistoryLength : 50);\n    }\n\n    onTreeViewSelect(item: FSDescriptor) {\n        this.currentTab.path = item.path + item.name;\n    }\n\n    onTabLoadFiles(tab: FileViewTab, files: FSDescriptor[]) {\n        if (tab.sidebarItems.length == 0) {\n            tab.sidebarItems = files.filter(f => f.kind == \"directory\");\n            return;\n        }\n\n        const currentItems = tab.sidebarItems;\n        const dirItems = files.filter(f => f.kind == \"directory\");\n\n        function recurse(items) {\n            return items.find(i => tab.path?.startsWith(i.path));\n        }\n        const target = recurse(currentItems);\n\n        if (target)\n            target['_children'] = dirItems;\n\n        tab.sidebarItems = currentItems;\n    }\n\n    onGridValueChange() {\n        this.value = this.gridValues.flat(1);\n        this.valueChange.emit(this.value)\n    }\n\n    getTabLabel(path: string) {\n        return path?.split('/').filter(p => p).pop();\n    }\n\n    async onResize() {\n        // Trigger re-calculation of the view\n        this.fileGrids.forEach(g => g.resize());\n\n        const el = this.viewContainer.element.nativeElement as HTMLElement;\n        const bounds = el.getBoundingClientRect();\n        this.width = bounds.width;\n\n        // If the view area is less than 650px wide, use overlay the sidebar panel\n        this.sidebarOverlay = bounds.width < 650;\n        if (this.sidebarOverlay == false && [...this.drawer._drawers][0].opened) {\n            this.drawer.close();\n        }\n    }\n\n    async onResizeEnd() {\n        this.onResize();\n\n        setTimeout(() => this.onResize(), 250);\n    }\n\n    getSelection() {\n        if (this.currentTab.viewMode == \"grid\") {\n            return this.currentTab.selection\n        }\n        else {\n            return this.value;\n        }\n    }\n\n    clearSelection() {\n        this.fileGrids.forEach(g => g.clearSelection());\n    }\n\n    // Tell the child grid to refresh it's sorting\n    refreshSorting() {\n        this.fileGrids.forEach(g => g.sort());\n    }\n\n    refreshData() {\n        this.fileGrids.forEach(g => g.loadFolder());\n    }\n\n    getFileData(file: FileDescriptor) {\n        let url = this.config.apiSettings.renameEntryUrlTemplate\n            ? this.config.apiSettings.renameEntryUrlTemplate(file.path + file.name)\n            : this.config.apiSettings.renameEntryUrl;\n\n        url = (url.includes('?') ? '&' : '?') + `dir=${file.path}&file=${file.name}`;\n\n        return url;\n    }\n\n    downloadFile(file: FSDescriptor) {\n        let path = file.path + file.name;\n        if (file.kind == \"directory\" && !path.endsWith('/'))\n            path += \"/\";\n\n        const url = this.config.apiSettings.downloadEntryUrlTemplate\n            ? this.config.apiSettings.downloadEntryUrlTemplate(path)\n            : this.config.apiSettings.downloadEntryUrl;\n\n        // window.open(target);\n        var link = document.createElement(\"a\");\n        link.download = file.name;\n        link.href = url;\n        link.click();\n        link.remove();\n        this.fileDownload.next(file);\n    }\n}\n","<app-toolbar\n    [currentTab]=\"currentTab\"\n    [(showHiddenFiles)]=\"showHiddenFiles\"\n    [(showSidebar)]=\"showSidebar\"\n    [config]=\"config\"\n    [showBareMinimum]=\"width < 500 && config.showBreadcrumb != false\"\n    (onBreadcrumbClick)=\"onBreadcrumbClick($event)\"\n/>\n\n<mat-drawer-container style=\"flex: 1\">\n    <mat-drawer #drawer mode=\"over\">\n        @if (width < 500 && config.showBreadcrumb != false) {\n            <app-toolbar\n                [currentTab]=\"currentTab\"\n                [(showHiddenFiles)]=\"showHiddenFiles\"\n                [(showSidebar)]=\"showSidebar\"\n                [config]=\"config\"\n                [drawerMode]=\"true\"\n                (onBreadcrumbClick)=\"onBreadcrumbClick($event)\"\n            />\n        }\n        <app-tree-view\n            [data]=\"currentTab.sidebarItems\"\n            (loadChildren)=\"onTreeViewLoadChildren($event)\"\n            (click)=\"onTreeViewSelect($event)\"\n        />\n    </mat-drawer>\n    <mat-drawer-content>\n        <as-split direction=\"horizontal\" [gutterSize]=\"sidebarOverlay ? 0 : 2\" [unit]=\"'pixel'\" (dragEnd)=\"onResizeEnd()\">\n            <as-split-area\n                style=\"background-color: var(--filemanager-sidebar-background-color, #2c2c2c)\"\n                [size]=\"215\"\n                [minSize]=\"215\"\n                [maxSize]=\"width/4\"\n                [visible]=\"!sidebarOverlay && config.showTreeview != false\"\n            >\n                @if (!sidebarOverlay && config.showTreeview != false) {\n                    <div class=\"sidebar\"\n                        (click)=\"currentTab.selection = []\"\n                    >\n                        <app-tree-view\n                            [data]=\"currentTab.sidebarItems\"\n                            (loadChildren)=\"onTreeViewLoadChildren($event)\"\n                            (click)=\"onTreeViewSelect($event)\"\n                        />\n                    </div>\n                }\n            </as-split-area>\n            <as-split-area style=\"background-color: var(--filemanager-background-color, #272727);\">\n                <div class=\"content\"\n                    [style.--tab-height]=\"tabs.length > 1 ? '36px' : '0'\"\n                >\n                    <mat-tab-group #tabGroup (selectedTabChange)=\"currentTab = tabs[$event.index]\" [(selectedIndex)]=\"tabIndex\">\n                        @for (tab of tabs; track tab; let i = $index) {\n                            <mat-tab>\n                                <ng-template mat-tab-label>\n                                    {{tab.label}}\n                                    <mat-icon\n                                        class=\"close\"\n                                        (click)=\"closeTab(tab)\">\n                                        close\n                                    </mat-icon>\n                                </ng-template>\n\n                                <ng-template matTabContent>\n                                    <app-file-grid\n                                        [viewMode]=\"tab.viewMode\"\n                                        [tab]=\"tab\"\n                                        [config]=\"config\"\n                                        [gridSize]=\"gridSize\"\n                                        [sortOrder]=\"tab.sortOrder\"\n                                        [(selection)]=\"tab.selection\"\n                                        [(path)]=\"tab.path\"\n                                        (pathChange)=\"onTabPathChange(tab)\"\n                                        [(value)]=\"gridValues[i]\"\n                                        (valueChange)=\"onGridValueChange()\"\n                                        (loadFiles)=\"onTabLoadFiles(tab, $event)\"\n\n                                        (fileSelect)=\"fileSelect.next($event)\"\n                                        (fileDblClick)=\"fileDblClick.next($event)\"\n                                        (folderSelect)=\"folderSelect.next($event)\"\n                                        (folderDblClick)=\"folderDblClick.next($event)\"\n                                    />\n                                </ng-template>\n                            </mat-tab>\n                        }\n                    </mat-tab-group>\n                </div>\n            </as-split-area>\n        </as-split>\n    </mat-drawer-content>\n</mat-drawer-container>\n\n","import * as path from 'path-browserify';\nimport { ImportResourcePath } from './types';\n\nexport class DependencyParser {\n    private REGEX_NODE_MODULE = /^node:([\\w\\W\\/]+)$/;\n\n    // https://github.com/lukasbach/monaco-editor-auto-typings/commit/fc046e7d9a2abbb5121ad8ab25195d8c1c277416\n    public parseDependencies(source: string, parent: ImportResourcePath | string): ImportResourcePath[] {\n        const importRegex = /import *.+ *from *['\"](?<importPath>.+?)['\"]/g;\n        const dynamicImportRegex = /await import ?\\(['\"](?<importPath>.+?)['\"]\\)/g;\n        const cjsRequireRegex = /require *\\(['\"](?<importPath>.+?)['\"]\\)/g;\n\n        const matches = [\n            ...source.matchAll(importRegex),\n            ...source.matchAll(dynamicImportRegex),\n            ...source.matchAll(cjsRequireRegex)\n        ];\n        const importPaths = matches.map(match => match.groups?.['importPath']);\n        const result = importPaths.map(imp => this.resolvePath(imp, parent));\n\n        return result\n    }\n\n    private resolvePath(importPath: string, parent: ImportResourcePath | string): ImportResourcePath {\n        const nodeImport = importPath.match(this.REGEX_NODE_MODULE);\n        if (nodeImport) {\n            return {\n                kind: 'relative-in-package',\n                packageName: '@types/node',\n                importPath: `${nodeImport[1]}.d.ts`,\n                sourcePath: '',\n            };\n        }\n\n        if (typeof parent === 'string') {\n            if (importPath.startsWith('.')) {\n                return {\n                    kind: 'relative',\n                    importPath,\n                    sourcePath: parent,\n                };\n            }\n            else if (importPath.startsWith('@')) {\n                const segments = importPath.split('/');\n                return {\n                    kind: 'package',\n                    packageName: `${segments[0]}/${segments[1]}`,\n                    importPath: segments.slice(2).join('/'),\n                };\n            }\n            else {\n                const segments = importPath.split('/');\n                return {\n                    kind: 'package',\n                    packageName: segments[0],\n                    importPath: segments.slice(1).join('/'),\n                };\n            }\n        }\n        else {\n            switch (parent.kind) {\n                case 'package':\n                    throw Error('TODO?');\n                case 'relative':\n                    throw Error('TODO2?');\n                case 'relative-in-package':\n                    if (importPath.startsWith('.')) {\n                        return {\n                            kind: 'relative-in-package',\n                            packageName: parent.packageName,\n                            sourcePath: path.join(parent.sourcePath, parent.importPath),\n                            importPath: importPath,\n                        };\n                    }\n                    else if (importPath.startsWith('@')) {\n                        const segments = importPath.split('/');\n                        return {\n                            kind: 'package',\n                            packageName: `${segments[0]}/${segments[1]}`,\n                            importPath: segments.slice(2).join('/'),\n                        };\n                    }\n                    else {\n                        const segments = importPath.split('/');\n                        return {\n                            kind: 'package',\n                            packageName: segments[0],\n                            importPath: segments.slice(1).join('/'),\n                        };\n                    }\n            }\n        }\n        return null;\n    }\n}\n","import { ProgressUpdate, Options } from './types';\n\nexport const invokeUpdate = (progress: ProgressUpdate, options: Options) => {\n    let textual = `${progress.type}: `;\n\n    switch (progress.type) {\n        case 'CodeChanged':\n            textual += ``;\n            break;\n        case 'ResolveNewImports':\n            textual += ``;\n            break;\n        // case 'DetectedImport':\n        //     textual += `at \"${progress.source}\" the import \"${progress.importPath}\" was detected`;\n        //     break;\n        // case 'CompletedImport':\n        //     textual += `at \"${progress.source}\" the import \"${progress.importPath}\" was completed`;\n        //     break;\n        case 'LookedUpTypeFile':\n            textual += `\"${progress.path}\" was ${progress.success ? 'sucessfully' : 'not sucessfully'} looked up`;\n            break;\n        case 'AttemptedLookUpFile':\n            textual += `\"${progress.path}\" was ${\n                progress.success ? 'sucessfully' : 'not sucessfully'\n            } attempted to looked up`; // What in the hell is this grammar?\n            break;\n        case 'LookedUpPackage':\n            textual += `package.json for package \"${progress.package}\" was ${\n                progress.success ? 'sucessfully' : 'not sucessfully'\n            } looked up${progress.definitelyTyped ? ' (found in definitely typed repo)' : ''}`;\n            break;\n        case 'LoadedFromCache':\n            textual += `\"${progress.importPath}\" was loaded from cache`;\n            break;\n        case 'StoredToCache':\n            textual += `\"${progress.importPath}\" was stored to cache`;\n            break;\n    }\n\n    if (textual.endsWith(': ')) {\n        textual = textual.slice(undefined, -2);\n    }\n\n    options.onUpdate?.(progress, textual);\n};\n","import { Options } from './types';\n\nexport class RecursionDepth {\n    constructor(private options: Options, private fileRecursionDepth = 0, private packageRecursionDepth = 0) {}\n\n    public nextPackage() {\n        return new RecursionDepth(this.options, this.fileRecursionDepth, this.packageRecursionDepth + 1);\n    }\n\n    public nextFile() {\n        return new RecursionDepth(this.options, this.fileRecursionDepth + 1, this.packageRecursionDepth);\n    }\n\n    public same() {\n        return new RecursionDepth(this.options, this.fileRecursionDepth, this.packageRecursionDepth);\n    }\n\n    public shouldStop() {\n        return (\n            (this.options.fileRecursionDepth > 0 && this.fileRecursionDepth >= this.options.fileRecursionDepth) ||\n            (this.options.packageRecursionDepth > 0 && this.packageRecursionDepth >= this.options.packageRecursionDepth)\n        );\n    }\n}\n","import type * as monaco from 'monaco-editor';\nimport * as path from 'path-browserify';\n\nexport interface SourceCache {\n    isFileAvailable?: (uri: string) => Promise<boolean>;\n    storeFile: (uri: string, content: string) => Promise<void>;\n    getFile: (uri: string) => Promise<string | undefined>;\n    clear: () => Promise<void>;\n}\n\nexport type ProgressUpdate =\n    | {\n        type: 'CodeChanged';\n    }\n    | {\n        type: 'ResolveNewImports';\n    }\n    | {\n        type: 'LookedUpTypeFile';\n        path: string;\n        success: boolean;\n    }\n    | {\n        type: 'AttemptedLookUpFile';\n        path: string;\n        success: boolean;\n    }\n    | {\n        type: 'LookedUpPackage';\n        package: string;\n        definitelyTyped: boolean;\n        success: boolean;\n    }\n    | {\n        type: 'LoadedFromCache';\n        importPath: string;\n    }\n    | {\n        type: 'StoredToCache';\n        importPath: string;\n    };\n\n\n\nexport interface Options {\n    /**\n     * Share source cache between multiple editor instances by storing\n     * the cache in a static property.\n     *\n     * Defaults to false.\n     */\n    shareCache: boolean;\n\n    /**\n     * Only use packages specified in the `versions` property.\n     *\n     * Defaults to false.\n     */\n    onlySpecifiedPackages: boolean;\n\n    /**\n     * Load typings from prespecified versions when initializing. Versions\n     * need to be specified in the ``versions`` option.\n     *\n     * Defaults to false.\n     */\n    preloadPackages: boolean;\n\n    /**\n     * Updates compiler options to defaults suitable for auto-loaded\n     * declarations, specifically by setting ``moduleResolution`` to\n     * ``NodeJs`` and ``allowSyntheticDefaultImports`` to true.\n     * Other options are not changed. Set this property to true to\n     * disable this behaviour.\n     *\n     * Defaults to false.\n     */\n    dontAdaptEditorOptions: boolean;\n\n    /**\n     * After typings were resolved and injected into monaco, auto-typings\n     * updates the value of the current model to trigger a refresh in\n     * monaco's typing logic, so that it uses the injected typings.\n     */\n    dontRefreshModelValueAfterResolvement: boolean;\n\n    /**\n     * Prespecified package versions. If a package is loaded whose\n     * name is specified in this object, it will load with the exact\n     * version specified in the object.\n     *\n     * Example:\n     *\n     * ```json\n     * {\n     *   \"@types/react\": \"17.0.0\",\n     *   \"csstype\": \"3.0.5\"\n     * }\n     * ```\n     *\n     * Setting the option ``onlySpecifiedPackages`` to true makes this\n     * property act as a whitelist for packages.\n     *\n     * Setting the option ``preloadPackages`` makes the packages specified\n     * in this property load directly after initializing the auto-loader.\n     */\n    versions?: { [packageName: string]: string; };\n\n    /**\n     * If a new package was loaded, its name and version is added to the\n     * version object, and this method is called with the updated object.\n     * @param versions updated versions object.\n     */\n    onUpdateVersions?: (versions: { [packageName: string]: string; }) => void;\n\n    /**\n     * Supply a cache where declaration files and package.json files are\n     * cached to. Supply an instance of {@link LocalStorageCache} to cache\n     * files to localStorage.\n     */\n    sourceCache: SourceCache;\n\n    /**\n     * The root directory where your edited files are. Must end with\n     * a slash. The default is suitable unless you change the default\n     * URI of files loaded in the editor.\n     *\n     * Defaults to \"inmemory://model/\"\n     */\n    fileRootPath: string;\n\n    /**\n     * Debounces code reanalyzing after user has changed the editor contents\n     * by the specified amount. Set to zero to disable. Value provided in\n     * milliseconds.\n     *\n     * Defaults to 4000, i.e. 4 seconds.\n     */\n    debounceDuration: number;\n\n    /**\n     * Maximum recursion depth for recursing packages. Determines how many\n     * nested package declarations are loaded. For example, if ``packageRecursionDepth``\n     * has the value 2, the code in the monaco editor references packages ``A1``, ``A2``\n     * and ``A3``, package ``A1`` references package ``B1`` and ``B1`` references ``C1``,\n     * then packages ``A1``, ``A2``, ``A3`` and ``B1`` are loaded. Set to zero to\n     * disable.\n     *\n     * Defaults to 3.\n     */\n    packageRecursionDepth: number;\n\n    /**\n     * Maximum recursion depth for recursing files. Determines how many\n     * nested file declarations are loaded. The same as ``packageRecursionDepth``,\n     * but for individual files. Set to zero to disable.\n     *\n     * Defaults to 10.\n     */\n    fileRecursionDepth: number;\n\n    /**\n     * Called after progress updates like loaded declarations or events.\n     * @param update detailed event object containing update infos.\n     * @param textual a textual representation of the update for debugging.\n     */\n    onUpdate?: (update: ProgressUpdate, textual: string) => void;\n\n    /**\n     * Called if errors occur.\n     * @param error a textual representation of the error.\n     */\n    onError?: (error: string) => void;\n    /**\n     * instance of monaco editor\n     */\n    monaco: typeof monaco;\n}\n\n\nexport interface ImportResourcePathPackage {\n    kind: 'package';\n    packageName: string;\n    importPath?: string;\n}\n\nexport interface ImportResourcePathRelative {\n    kind: 'relative';\n    importPath: string;\n    sourcePath: string;\n}\n\nexport interface ImportResourcePathRelativeInPackage {\n    kind: 'relative-in-package';\n    packageName: string;\n    importPath: string;\n    sourcePath: string;\n}\n\nexport interface ImportResourceBruteForce {\n    kind: 'bruteforce';\n    packageName: string;\n    typingFiles: any[];\n}\n\nexport type ImportResourcePath =\n    | ImportResourcePathPackage\n    | ImportResourcePathRelative\n    | ImportResourcePathRelativeInPackage\n    | ImportResourceBruteForce;\n\nexport const importResourcePathToString = (p: ImportResourcePath) => {\n    switch (p.kind) {\n        case 'package':\n            return path.join(p.packageName, p.importPath ?? '', 'package.json');\n        case 'relative':\n            return path.join(p.sourcePath, p.importPath);\n        case 'relative-in-package':\n            return path.join(p.packageName, p.sourcePath, p.importPath);\n        case 'bruteforce':\n            throw new Error(\"Not Implemented\");\n    }\n};\n","\nexport class UnpkgSourceResolver {\n    public static async resolvePackageJson(\n        packageName: string,\n        version: string | undefined,\n        subPath: string | undefined\n    ): Promise<string | undefined> {\n        return await this.resolveFile(\n            `https://unpkg.com/${packageName}${version ? `@${version}` : ''}${subPath ? `/${subPath}` : ''}/package.json`\n        );\n    }\n\n    public static async resolveSourceFile(\n        packageName: string,\n        version: string | undefined,\n        path: string\n    ): Promise<string | undefined> {\n        return await this.resolveFile(`https://unpkg.com/${packageName}${version ? `@${version}` : ''}/${path}`);\n    }\n\n    private static async resolveFile(url: string) {\n        const res = await fetch(url, { method: 'GET' });\n\n        if (res.ok) {\n            return await res.text();\n        }\n        else if (res.status === 404) {\n            return '';\n        }\n        else {\n            throw Error(`Error other than 404 while fetching from Unpkg at ${url}`);\n        }\n    }\n}\n","import type * as monaco from 'monaco-editor';\nimport { DependencyParser } from './dependency-parser';\nimport * as path from 'path-browserify';\nimport { invokeUpdate } from './update-emitter';\nimport { RecursionDepth } from './recursion-depth';\nimport { ImportResourcePath, ImportResourcePathPackage, ImportResourcePathRelativeInPackage, Options, SourceCache, importResourcePathToString } from './types';\nimport { UnpkgSourceResolver } from './unpkg-source-resolver';\n\nexport class ImportResolver {\n    private loadedFiles: string[];\n    private dependencyParser: DependencyParser;\n    private cache: SourceCache;\n    private versions?: { [packageName: string]: string };\n    private newImportsResolved: boolean;\n    private monaco: typeof monaco;\n\n    constructor(private options: Options) {\n        this.loadedFiles = [];\n        this.dependencyParser = new DependencyParser();\n        this.cache = options.sourceCache;\n        this.newImportsResolved = false;\n        this.monaco = options.monaco!;\n\n        if (options.preloadPackages && options.versions) {\n            this.versions = options.versions;\n            for (const [packageName, version] of Object.entries(options.versions)) {\n                this.resolveImport(\n                    {\n                        kind: 'package',\n                        packageName: packageName,\n                        importPath: '',\n                    },\n                    new RecursionDepth(this.options)\n                ).catch(e => {\n                    console.error(e);\n                });\n            }\n        }\n    }\n\n    public wereNewImportsResolved() {\n        return this.newImportsResolved;\n    }\n\n    public resetNewImportsResolved() {\n        this.newImportsResolved = false;\n    }\n\n    public async resolveImportsInFile(source: string, parent: string | ImportResourcePath, depth: RecursionDepth) {\n        if (depth.shouldStop()) {\n            return;\n        }\n\n        const imports = this.dependencyParser.parseDependencies(source, parent);\n        for (const importCall of imports) {\n            try {\n                await this.resolveImport(importCall, depth);\n            }\n            catch (e) {\n                if (this.options.onError) {\n                    this.options.onError?.((e as Error).message ?? e);\n                }\n                else {\n                    console.error(e);\n                }\n            }\n        }\n    }\n\n    private async resolveImport(importResource: ImportResourcePath, depth: RecursionDepth) {\n        const hash = this.hashImportResourcePath(importResource);\n        if (this.loadedFiles.includes(hash)) {\n            return;\n        }\n\n        this.loadedFiles.push(hash);\n        console.log(\"resolveImport\", importResource, depth);\n\n        // Ignore these package imports as they are well-known to be pointless.\n        if (importResource.kind == \"package\" && importResource.packageName == \"require\")\n            return null;\n\n        switch (importResource.kind) {\n            case 'package':\n                const packageRelativeImport = await this.resolveImportFromPackageRoot(importResource);\n                if (packageRelativeImport) {\n                    return await this.resolveImportInPackage(packageRelativeImport, depth.nextPackage().nextFile());\n                }\n                break;\n            case 'relative':\n                throw Error('Not implemented yet');\n            case 'relative-in-package':\n                return await this.resolveImportInPackage(importResource, depth.nextFile());\n            case 'bruteforce': {\n\n            }\n        }\n    }\n\n    private async resolveImportInPackage(importResource: ImportResourcePathRelativeInPackage, depth: RecursionDepth) {\n        console.log(\"resolveImportInPackage\", importResource, depth);\n\n        const contents = await this.loadSourceFileContents(importResource);\n\n        if (contents) {\n            const { source, at } = contents;\n            this.createModel(\n                source,\n                this.monaco.Uri.parse(this.options.fileRootPath + path.join(`node_modules/${importResource.packageName}`, at))\n            );\n\n            await this.resolveImportsInFile(\n                source,\n                {\n                    kind: 'relative-in-package',\n                    packageName: importResource.packageName,\n                    sourcePath: path.dirname(at),\n                    importPath: '',\n                },\n                depth\n            );\n        }\n    }\n\n    private async resolveImportFromPackageRoot(\n        importResource: ImportResourcePathPackage\n    ): Promise<ImportResourcePathRelativeInPackage | void> {\n        console.log(\"resolveImportFromPackageRoot\", importResource);\n\n        const failedProgressUpdate = {\n            type: 'LookedUpPackage',\n            package: importResource.packageName,\n            definitelyTyped: false,\n            success: false,\n        } as const;\n\n        if (this.options.onlySpecifiedPackages) {\n            if (!this.versions?.[importResource.packageName] && !this.versions?.['@types/' + importResource.packageName]) {\n                invokeUpdate(failedProgressUpdate, this.options);\n                return null;\n            }\n        }\n\n        const doesPkgJsonHasSubpath = importResource.importPath?.length ?? 0 > 0;\n        let pkgJsonSubpath = doesPkgJsonHasSubpath ? `/${importResource.importPath}` : '';\n        let pkgJson = await this.resolvePackageJson(\n            importResource.packageName,\n            this.versions?.[importResource.packageName],\n            doesPkgJsonHasSubpath ? importResource.importPath : undefined\n        );\n\n        if (!pkgJson && doesPkgJsonHasSubpath) {\n            pkgJson = await this.resolvePackageJson(importResource.packageName, this.versions?.[importResource.packageName]);\n            pkgJsonSubpath = '';\n        }\n\n        if (!pkgJson) return invokeUpdate(failedProgressUpdate, this.options);\n\n        const pkg = JSON.parse(pkgJson);\n\n        console.log(\"package meta\", pkg);\n\n        if (pkg.typings || pkg.types) {\n            const typings = pkg.typings || pkg.types;\n            this.createModel(\n                pkgJson,\n                this.monaco.Uri.parse(\n                    `${this.options.fileRootPath}node_modules/${importResource.packageName}${pkgJsonSubpath}/package.json`\n                )\n            );\n\n            invokeUpdate(\n                {\n                    type: 'LookedUpPackage',\n                    package: importResource.packageName,\n                    definitelyTyped: false,\n                    success: true,\n                },\n                this.options\n            );\n            this.setVersion(importResource.packageName, pkg.version);\n\n            return {\n                kind: 'relative-in-package',\n                packageName: importResource.packageName,\n                sourcePath: '',\n                importPath: path.join(importResource.importPath ?? '', typings.startsWith('./') ? typings.slice(2) : typings),\n            };\n        }\n        else {\n\n            const typingPackageName = `@types/${\n                importResource.packageName.startsWith('@')\n                    ? importResource.packageName.slice(1).replace(/\\//, '__')\n                    : importResource.packageName\n            }`;\n\n            const pkgJsonTypings = await this.resolvePackageJson(typingPackageName, this.versions?.[typingPackageName]);\n\n            if (!pkgJsonTypings)\n                return invokeUpdate(failedProgressUpdate, this.options);\n\n            const pkg = JSON.parse(pkgJsonTypings);\n\n            if (!pkg.typings && !pkg.types) {\n                const files: {\n                    fileCount: number,\n                    files: {\n                        [key: string]: {\n                            size: number,\n                            hex: string,\n                            type: \"File\",\n                            isBinary: \"true\" | \"false\",\n                            path: string,\n                            contentType: string\n                        }\n                    },\n                    integrity: string,\n                    shasum: string,\n                    totalSize: number\n                } = await fetch(\"https://www.npmjs.com/package/@dt-esa/dynatrace-api-client/v/2.2.6/index\", {\n                    method: \"get\"\n                }).then(e => e.json());\n\n                const typingFiles = Object.entries(files.files).map(([key, val]) => val);\n\n                invokeUpdate(\n                    {\n                        type: 'LookedUpPackage',\n                        package: typingPackageName,\n                        definitelyTyped: true,\n                        success: true,\n                    },\n                    this.options\n                );\n\n                return {\n                    kind: 'bruteforce',\n                    packageName: typingPackageName,\n                    typingFiles,\n                } as any;\n\n                return;\n                // return invokeUpdate(failedProgressUpdate, this.options);\n            }\n\n            const typings = pkg.typings || pkg.types;\n            this.createModel(\n                pkgJsonTypings,\n                this.monaco.Uri.parse(`${this.options.fileRootPath}node_modules/${typingPackageName}/package.json`)\n            );\n\n            invokeUpdate(\n                {\n                    type: 'LookedUpPackage',\n                    package: typingPackageName,\n                    definitelyTyped: true,\n                    success: true,\n                },\n                this.options\n            );\n            this.setVersion(typingPackageName, pkg.version);\n\n            return {\n                kind: 'relative-in-package',\n                packageName: typingPackageName,\n                sourcePath: '',\n                importPath: path.join(\n                    importResource.importPath ?? '',\n                    typings.startsWith('./') ? typings.slice(2) : typings\n                ),\n            };\n        }\n    }\n\n    private async loadSourceFileContents(\n        importResource: ImportResourcePathRelativeInPackage\n    ): Promise<{ source: string; at: string } | null> {\n        const progressUpdatePath = path.join(\n            importResource.packageName,\n            importResource.sourcePath,\n            importResource.importPath\n        );\n\n        const failedProgressUpdate = {\n            type: 'LookedUpTypeFile',\n            path: progressUpdatePath,\n            definitelyTyped: false,\n            success: false,\n        } as const;\n\n        const pkgName = importResource.packageName;\n        const version = this.getVersion(importResource.packageName);\n\n        let appends = ['.d.ts', '/index.d.ts', '.ts', '.tsx', '/index.ts', '/index.tsx'];\n\n        if (appends.map(append => importResource.importPath.endsWith(append)).reduce((a, b) => a || b, false)) {\n            const source = await this.resolveSourceFile(\n                pkgName,\n                version,\n                path.join(importResource.sourcePath, importResource.importPath)\n            );\n            if (source) {\n                return { source, at: path.join(importResource.sourcePath, importResource.importPath) };\n            }\n        }\n        else {\n            for (const append of appends) {\n                const fullPath = path.join(importResource.sourcePath, importResource.importPath) + append;\n                const source = await this.resolveSourceFile(pkgName, version, fullPath);\n                invokeUpdate(\n                    {\n                        type: 'AttemptedLookUpFile',\n                        path: path.join(pkgName, fullPath),\n                        success: !!source,\n                    },\n                    this.options\n                );\n                if (source) {\n                    invokeUpdate(\n                        {\n                            type: 'LookedUpTypeFile',\n                            path: path.join(pkgName, fullPath),\n                            success: true,\n                        },\n                        this.options\n                    );\n                    return { source, at: fullPath };\n                }\n            }\n        }\n\n        const pkgJson = await this.resolvePackageJson(\n            pkgName,\n            version,\n            path.join(importResource.sourcePath, importResource.importPath)\n        );\n\n        if (pkgJson) {\n            const { types } = JSON.parse(pkgJson);\n            if (types) {\n                const fullPath = path.join(importResource.sourcePath, importResource.importPath, types);\n                const source = await this.resolveSourceFile(pkgName, version, fullPath);\n                if (source) {\n                    invokeUpdate(\n                        {\n                            type: 'LookedUpTypeFile',\n                            path: path.join(pkgName, fullPath),\n                            success: true,\n                        },\n                        this.options\n                    );\n                    return { source, at: fullPath };\n                }\n            }\n        }\n\n        invokeUpdate(failedProgressUpdate, this.options);\n        return null;\n    }\n\n    private getVersion(packageName: string) {\n        return this.versions?.[packageName];\n    }\n\n    public setVersions(versions: { [packageName: string]: string }) {\n        this.versions = versions;\n        this.options.onUpdateVersions?.(versions);\n        // TODO reload packages whose version has changed\n    }\n\n    private setVersion(packageName: string, version: string) {\n        this.setVersions({\n            ...this.versions,\n            [packageName]: version,\n        });\n    }\n\n    private createModel(source: string, uri: monaco.Uri) {\n        uri = uri.with({ path: uri.path.replace('@types/', '') });\n        if (!this.monaco.editor.getModel(uri)) {\n            this.monaco.editor.createModel(source, 'typescript', uri);\n            this.newImportsResolved = true;\n        }\n    }\n\n    private hashImportResourcePath(p: ImportResourcePath) {\n        return importResourcePathToString(p);\n    }\n\n    private async resolvePackageJson(\n        packageName: string,\n        version?: string,\n        subPath?: string\n    ): Promise<string | undefined> {\n\n        const uri = path.join(packageName + (version ? `@${version}` : ''), subPath ?? '', 'package.json');\n        let isAvailable = false;\n        let content: string | undefined = undefined;\n\n        if (this.cache.isFileAvailable) {\n            isAvailable = await this.cache.isFileAvailable(uri);\n        }\n        else {\n            content = await this.cache.getFile(uri);\n            isAvailable = content !== undefined;\n        }\n\n        if (isAvailable) {\n            return content ?? (await this.cache.getFile(uri));\n        }\n        else {\n            console.log(\"recursing resolvePackageJson\", packageName, version, subPath)\n            content = await UnpkgSourceResolver.resolvePackageJson(packageName, version, subPath);\n            if (content) {\n                this.cache.storeFile(uri, content);\n            }\n            return content;\n        }\n    }\n\n    private async resolveSourceFile(\n        packageName: string,\n        version: string | undefined,\n        filePath: string\n    ): Promise<string | undefined> {\n\n        const uri = path.join(packageName + (version ? `@${version}` : ''), filePath);\n        let isAvailable = false;\n        let content: string | undefined = undefined;\n\n        if (this.cache.isFileAvailable) {\n            isAvailable = await this.cache.isFileAvailable(uri);\n        }\n        else {\n            content = await this.cache.getFile(uri);\n            isAvailable = content !== undefined;\n        }\n\n        if (isAvailable) {\n            invokeUpdate(\n                {\n                    type: 'LoadedFromCache',\n                    importPath: uri,\n                },\n                this.options\n            );\n            return content ?? (await this.cache.getFile(uri));\n        }\n        else {\n            content = await UnpkgSourceResolver.resolveSourceFile(packageName, version, filePath);\n            if (content) {\n                invokeUpdate(\n                    {\n                        type: 'StoredToCache',\n                        importPath: uri,\n                    },\n                    this.options\n                );\n                this.cache.storeFile(uri, content);\n            }\n            return content;\n        }\n    }\n}\n","import { SourceCache } from './types';\n\nexport class DummySourceCache implements SourceCache {\n    public getFile(uri: string): Promise<string | undefined> {\n        return undefined;\n    }\n\n    public async isFileAvailable(uri: string): Promise<boolean> {\n        return false;\n    }\n\n    public storeFile(uri: string, content: string): Promise<void> {\n        return undefined;\n    }\n\n    public clear(): Promise<void> {\n        return undefined;\n    }\n}\n","import { ImportResolver } from './import-resolver';\nimport * as path from 'path-browserify';\nimport type * as monaco from 'monaco-editor';\nimport { invokeUpdate } from './update-emitter';\nimport { RecursionDepth } from './recursion-depth';\nimport { Options, SourceCache } from './types';\nimport { DummySourceCache } from './dummy-source-cache';\n\ntype Editor = monaco.editor.ICodeEditor | monaco.editor.IStandaloneCodeEditor;\n\n// https://github.com/lukasbach/monaco-editor-auto-typings\nexport class MonacoAutoTypeImporter implements monaco.IDisposable {\n    private static sharedCache?: SourceCache;\n    private importResolver: ImportResolver;\n    private debounceTimer?: number;\n    private isResolving?: boolean;\n    private disposables: monaco.IDisposable[] = [];\n\n    public constructor(private editor: Editor, private options: Options) {\n        this.importResolver = new ImportResolver(options);\n\n        const changeModelDisposable = editor.onDidChangeModelContent(e => {\n            this.debouncedResolveContents();\n        });\n        this.disposables.push(changeModelDisposable);\n        this.resolveContents();\n\n        if (!options.dontAdaptEditorOptions) {\n            options.monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n                ...options.monaco.languages.typescript.typescriptDefaults.getCompilerOptions(),\n                moduleResolution: options.monaco.languages.typescript.ModuleResolutionKind.NodeJs,\n                allowSyntheticDefaultImports: true,\n                rootDir: options.fileRootPath,\n            });\n        }\n    }\n\n    public static async create(editor: Editor, options?: Partial<Options>): Promise<MonacoAutoTypeImporter> {\n        if (options?.shareCache && options.sourceCache && !MonacoAutoTypeImporter.sharedCache) {\n            MonacoAutoTypeImporter.sharedCache = options.sourceCache;\n        }\n\n        const monacoInstance = options?.monaco ?? window['monaco'];\n\n        if (!monacoInstance) {\n            throw new Error('monacoInstance not found, you can specify the monaco instance via options.monaco');\n        }\n\n        return new MonacoAutoTypeImporter(editor, {\n            fileRootPath: 'inmemory://model/',\n            onlySpecifiedPackages: false,\n            preloadPackages: false,\n            shareCache: false,\n            dontAdaptEditorOptions: false,\n            dontRefreshModelValueAfterResolvement: false,\n            sourceCache: MonacoAutoTypeImporter.sharedCache ?? new DummySourceCache(),\n            debounceDuration: 4000,\n            fileRecursionDepth: 10,\n            packageRecursionDepth: 3,\n            ...options,\n            monaco: monacoInstance,\n        });\n    }\n\n    public dispose() {\n        this.disposables.forEach(d => d.dispose())\n    }\n\n    public setVersions(versions: { [packageName: string]: string }) {\n        this.importResolver.setVersions(versions);\n        this.options.versions = versions;\n    }\n\n    public async clearCache() {\n        await this.options.sourceCache.clear();\n    }\n\n    private debouncedResolveContents() {\n        if (this.isResolving) {\n            return;\n        }\n\n        invokeUpdate({ type: 'CodeChanged' }, this.options);\n\n        if (this.options.debounceDuration <= 0) {\n            this.resolveContents();\n        }\n        else {\n            if (this.debounceTimer !== undefined) {\n                clearTimeout(this.debounceTimer);\n            }\n            this.debounceTimer = setTimeout(async () => {\n                await this.resolveContents();\n                this.debounceTimer = undefined;\n            }, this.options.debounceDuration) as any;\n        }\n    }\n\n    private async resolveContents() {\n        this.isResolving = true;\n        invokeUpdate({ type: 'ResolveNewImports' }, this.options);\n\n        const model = this.editor.getModel();\n        // This can happen when the editor is disposed before all typings\n        // are installed.\n        if (!model) {\n            throw Error('No model');\n        }\n\n        const content = model.getLinesContent();\n\n        try {\n            await this.importResolver.resolveImportsInFile(\n                content.join('\\n'),\n                path.dirname(model.uri.toString()),\n                new RecursionDepth(this.options)\n            );\n        }\n        catch (e) {\n            if (this.options.onError) {\n                this.options.onError((e as Error).message ?? e);\n            }\n            else {\n                throw e;\n            }\n        }\n\n        if (this.importResolver.wereNewImportsResolved()) {\n            if (!this.options.dontRefreshModelValueAfterResolvement) {\n                const currentPosition = this.editor.getPosition();\n                model.setValue(model.getValue());\n                if (currentPosition) {\n                    this.editor.setPosition(currentPosition);\n                }\n            }\n            this.importResolver.resetNewImportsResolved();\n        }\n\n        this.isResolving = false;\n    }\n}\n","import { AfterViewInit, Component, EventEmitter, HostListener, Input, OnDestroy, Output, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\r\n\r\nimport * as MonacoEditor from 'monaco-editor';\r\nimport { MonacoAutoTypeImporter } from './ts-type-resolver/main';\r\nimport { debounceTime } from 'rxjs';\r\n\r\nlet Monaco: typeof MonacoEditor;\r\n\r\n@Component({\r\n    selector: 'app-vscode',\r\n    template: '',\r\n    styles: [`\r\n:host {\r\n    display: block;\r\n    height: 100%;\r\n    max-height: 100vh;\r\n    max-width: 100vw;\r\n}\r\n    `],\r\n    standalone: true\r\n})\r\nexport class VscodeComponent implements AfterViewInit, OnDestroy {\r\n    isDirty = false;\r\n    editor: MonacoEditor.editor.IStandaloneCodeEditor;\r\n    filename: string;\r\n\r\n    private _code: string;\r\n    @Input() set code(value: string) {\r\n        if (value == this._code)\r\n            return;\r\n        if (typeof value != \"string\")\r\n            throw new TypeError(\"Value must be of type string\");\r\n\r\n        this._code = value;\r\n        this.editor?.setValue(this.code);\r\n    };\r\n    get code() { return this._code?.trim() }\r\n    @Output() codeChange = new EventEmitter<string>();\r\n    private onCodeType = new EventEmitter<string>();\r\n    private typeDebounce = this.onCodeType.pipe(debounceTime(100));\r\n\r\n    @Input() customLanguage: { init: Function; };\r\n\r\n\r\n    private _language: string;\r\n    @Input() set language(value: string) {\r\n        this._language = {\r\n            'ts': \"typescript\",\r\n            'html': 'xml',\r\n            'scss': 'css'\r\n        }[value] || value || \"auto\"\r\n    }\r\n    get language() { return this._language }\r\n\r\n    @Input() installationLocation = \"/lib/monaco/vs\";\r\n\r\n\r\n    @Input() tabSize = 2;\r\n    @Input() readOnly = false;\r\n    @Input() theme = \"vs-dark\";\r\n    @Input() fontFamily = \"Droid Sans Mono\";\r\n    @Input() fontSize = 14;\r\n\r\n    @Input() automaticLayout = true;\r\n    @Input() colorDecorators = true;\r\n    @Input() folding = true;\r\n\r\n    @Input() minimapEnabled = true;\r\n    @Input() minimap: MonacoEditor.editor.IEditorMinimapOptions = {\r\n        enabled: true\r\n    };\r\n    @Input() scrollbar: MonacoEditor.editor.IEditorScrollbarOptions = {\r\n        alwaysConsumeMouseWheel: false,\r\n        // scrollByPage: true\r\n    };\r\n    @Input() smoothScrolling = true;\r\n    @Input() mouseWheelScrollSensitivity = 2;\r\n    @Input() scrollBeyondLastLine = false;\r\n    @Input() scrollBeyondLastColumn = 0;\r\n\r\n    @Input() lineNumbers: MonacoEditor.editor.LineNumbersType = \"on\";\r\n\r\n    @Input() restSettings: MonacoEditor.editor.IStandaloneEditorConstructionOptions = {};\r\n\r\n    get settings() {\r\n        return {\r\n            ...this.restSettings,\r\n            theme: this.theme,\r\n            language: this.language,\r\n            tabSize: this.tabSize,\r\n            readOnly: this.readOnly,\r\n            fontFamily: this.fontFamily,\r\n            fontSize: this.fontSize,\r\n            automaticLayout: this.automaticLayout,\r\n            scrollBeyondLastLine: this.scrollBeyondLastLine,\r\n            colorDecorators: this.colorDecorators,\r\n            folding: this.folding,\r\n            scrollBeyondLastColumn: this.scrollBeyondLastColumn,\r\n            minimap: this.minimap,\r\n            scrollbar: this.scrollbar,\r\n            smoothScrolling: this.smoothScrolling,\r\n            mouseWheelScrollSensitivity: this.mouseWheelScrollSensitivity,\r\n            lineNumbers: this.lineNumbers\r\n        } as MonacoEditor.editor.IStandaloneEditorConstructionOptions;\r\n    }\r\n\r\n    private _sub;\r\n    constructor(private viewContainer: ViewContainerRef) {\r\n        InstallMonacoUMD(this.installationLocation);\r\n\r\n        this._sub = this.typeDebounce.subscribe(t => {\r\n            this.codeChange.next(this._code = this.editor.getValue());\r\n        });\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges) {\r\n        // If we changed anything OTHER than code, reload the editor\r\n        if (Object.keys(changes).length > 1 || !changes['code']) {\r\n            if (this.editor) {\r\n                this.editor?.dispose();\r\n                this.createEditor();\r\n            }\r\n        }\r\n        if (changes['theme'])\r\n            window['monaco']?.editor.setTheme(this.theme);\r\n    }\r\n\r\n    async ngAfterViewInit() {\r\n        await InstallMonacoUMD();\r\n\r\n        this.createEditor();\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this.editor?.dispose();\r\n        this._sub?.unsubscribe();\r\n    }\r\n\r\n    private createEditor() {\r\n        if (this.customLanguage) {\r\n            this.customLanguage.init(window['monaco']);\r\n        }\r\n\r\n        let editor = this.editor = window['monaco'].editor.create(\r\n            this.viewContainer?.element?.nativeElement,\r\n            this.settings as any\r\n        );\r\n\r\n        // const autoTypings = await\r\n        MonacoAutoTypeImporter.create(editor, {\r\n            monaco: Monaco,\r\n        });\r\n\r\n        this.configureLanguageSupport();\r\n\r\n        if (this.code) {\r\n            editor.setValue(this.code);\r\n        }\r\n\r\n        editor.getModel().onDidChangeContent(() => this.onCodeType.emit());\r\n    }\r\n\r\n    private configureLanguageSupport() {\r\n\r\n    }\r\n\r\n    download() {\r\n        const code = this.editor.getValue();\r\n\r\n        let blob = new Blob([code], { type: 'text/log' });\r\n        let elm = document.createElement('a');\r\n        let blobURL = URL.createObjectURL(blob);\r\n\r\n        // Set the data values.\r\n        elm.href = blobURL;\r\n        elm.download = this.filename;\r\n\r\n        document.body.appendChild(elm);\r\n        elm.click();\r\n\r\n        document.body.removeChild(elm);\r\n        elm.remove();\r\n\r\n        URL.revokeObjectURL(blobURL);\r\n    }\r\n\r\n    @HostListener('window:resize', ['$event'])\r\n    resize = (): void => {\r\n        this.editor?.layout();\r\n    };\r\n}\r\n\r\nexport const InstallMonacoUMD = async (path?: string) => {\r\n    if (window['monaco']) return window['monaco'];\r\n\r\n    // Prevent duplicate injection\r\n    const scriptEls = document.querySelectorAll('body>script[monaco][defer][src]');\r\n\r\n    // Only perform installation if a path is specified.\r\n    if (path && scriptEls.length == 0) {\r\n        // Monaco has a UMD loader that requires this\r\n        // Merge with any pre-existing global require objects.\r\n        if (!window['require']) window['require'] = {} as any;\r\n        if (!window['require']['paths']) window['require']['paths'] = {};\r\n\r\n        if (path.endsWith('/'))\r\n            path = path.slice(0, -1);\r\n\r\n        window['require']['paths'].vs = path;\r\n\r\n        const monacoFiles = [\r\n            'loader.js',\r\n            'editor/editor.main.nls.js',\r\n            'editor/editor.main.js',\r\n        ];\r\n\r\n        for (let i = 0; i < monacoFiles.length; i++) {\r\n            const script = document.createElement(\"script\");\r\n            script.setAttribute(\"monaco\", \"\");\r\n            script.setAttribute(\"defer\", \"\");\r\n            script.setAttribute(\"src\", path + '/' + monacoFiles[i]);\r\n            document.body.append(script);\r\n        }\r\n    }\r\n\r\n    // Return a promise that will resolve when monaco finishes loading\r\n    return await new Promise((res, rej) => {\r\n        let count = 0;\r\n        let i = window.setInterval(() => {\r\n            count++;\r\n\r\n            if (window['monaco'] != undefined) {\r\n                window.clearInterval(i);\r\n                res(true);\r\n            }\r\n            else if (count >= 100) {\r\n                window.clearInterval(i);\r\n                res(false);\r\n            }\r\n        }, 100);\r\n    });\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\n\ntype CSSUnitString = 'px' | '%' | 'em' | 'in' | '';\ntype CSSUnit = `${number}${CSSUnitString}` | `var(--${string})`;\ntype CSSString = CSSUnit |\n    `calc(${CSSUnit|''}${''|' '}${'+'|'-'|'/'|'*'}${''|' '}${CSSUnit|''})`\n\n@Component({\n    selector: 'ngx-parallax-card',\n    templateUrl: './parallax-card.component.html',\n    styleUrls: ['./parallax-card.component.scss'],\n    imports: [\n        NgTemplateOutlet\n    ],\n    host: {\n        '[style.width]': 'width',\n        '[style.height]': 'height',\n        '[style.--card-bg-inset]': '-bgInset+\"px\"',\n        '[style.--flip-animation-duration]': 'flipAnimationDuration+\"ms\"',\n        '[class.flip]': 'showBackOfCard'\n    },\n    standalone: true\n})\nexport class ParallaxCardComponent {\n\n    // Front of card\n    @ContentChild('content', { read: TemplateRef }) content: TemplateRef<ElementRef>;\n    @ContentChild('background', { read: TemplateRef }) background: TemplateRef<ElementRef>;\n\n    // Back of card\n    @ContentChild('backContent', { read: TemplateRef }) backContent: TemplateRef<ElementRef>;\n    @ContentChild('backBackground', { read: TemplateRef }) backBackground: TemplateRef<ElementRef>;\n\n    /**\n     *\n     */\n    @Output() loaded = new EventEmitter();\n\n    /**\n     * Width of the card\n     * @default `240px`\n     */\n    @Input() width:  CSSString = '240px';\n    /**\n     * Height of the card\n     * @default `320px`\n     */\n    @Input() height: CSSString = '320px';\n    /**\n     * Inset padding of the parallax\n     * @default 80\n     */\n    @Input() bgInset:  number = 80;\n    /**\n     * Duration for the flip animation in ms\n     * @default 80\n     */\n    @Input() flipAnimationDuration:  number = 1600;\n\n    renderCardFront = true;\n    renderCardBack = true;\n    showBackOfCard = false;\n\n    private get wrapper() { return this.element.nativeElement as HTMLElement; }\n    private get cardFront() { return this.wrapper.querySelector('.card.front') as HTMLElement; }\n    private get cardBack() { return this.wrapper.querySelector('.card.backface') as HTMLElement; }\n    private get backgroundElement() { return this.cardFront.querySelector('.card-bg') as HTMLDivElement; }\n    private get backfaceBackgroundElement() { return this.cardBack.querySelector('.card-bg') as HTMLDivElement; }\n\n    private pointerX = 0;\n    private pointerY = 0;\n    private pointerLeave = 0;\n\n    constructor(\n        private readonly element: ElementRef\n    ) { }\n\n    ngAfterViewInit() {\n        const el = this.wrapper;\n\n        // Directly attach events to the wrapper\n        el.onpointermove = (e) => this.onPointerMove(e);\n        el.onpointerenter = () => this.onPointerEnter();\n        el.onpointerleave = () => this.onPointerLeave();\n        el.onclick = () => this.onClick();\n\n        this.loaded.emit();\n    }\n\n    onPointerMove(e: PointerEvent) {\n        const { width, height, left, top } = this.wrapper.getBoundingClientRect();\n        this.pointerX = e.pageX - left - (width / 2);\n        this.pointerY = e.pageY - top - (height / 2);\n\n        this.render();\n    }\n\n    onPointerEnter() {\n        clearTimeout(this.pointerLeave);\n    }\n\n    onPointerLeave() {\n        this.pointerLeave = setTimeout(() => {\n            this.pointerX = 0;\n            this.pointerY = 0;\n            this.render();\n        }, 600) as any;\n    }\n\n    // TODO: This can get intercepted in some states\n    onClick() {\n        this.showBackOfCard = !this.showBackOfCard;\n        this.render()\n    }\n\n    render = () => {\n        const { width, height } = this.wrapper.getBoundingClientRect();\n        const mousePX = this.pointerX / width;\n        const mousePY = this.pointerY / height;\n\n        // Rotation factors\n        const rX = mousePX * this.bgInset / 1.75;\n        const rY = mousePY * -this.bgInset / 1.75;\n\n        // Translation factors\n        const tX = mousePX * -this.bgInset * 2;\n        const tY = mousePY * -this.bgInset * 2;\n\n        if (this.renderCardFront) {\n            this.backgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;\n        }\n        if (this.renderCardBack) {\n            this.backfaceBackgroundElement.style.transform = `translateX(${tX}px) translateY(${tY}px)`;\n        }\n\n        if (this.showBackOfCard) {\n            this.cardFront.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;\n            this.cardBack.style.transform = `rotateY(${-rX}deg) rotateX(${-rY}deg)`;\n        }\n        else {\n            this.cardFront.style.transform = `rotateY(${rX}deg) rotateX(${rY}deg)`;\n            this.cardBack.style.transform = `rotateY(180deg) rotateX(${-rY}deg)`;\n        }\n    }\n}\n","@if (renderCardBack) {\n    <div class=\"card backface\">\n        <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n            <ng-template [ngTemplateOutlet]=\"backBackground\" />\n        </div>\n        <div class=\"card-content\">\n            <ng-template [ngTemplateOutlet]=\"backContent\" />\n        </div>\n    </div>\n}\n\n@if (renderCardFront) {\n    <div class=\"card front\">\n        <div class=\"card-bg\" style=\"transform: translateX(0) translateY(0)\">\n            <ng-template [ngTemplateOutlet]=\"background\" />\n        </div>\n        <div class=\"card-content\">\n            @if (content) {\n                <ng-template [ngTemplateOutlet]=\"content\"/>\n            }\n            @else {\n                <ng-content/>\n            }\n        </div>\n    </div>\n}\n\n\n","import { AfterViewInit, ApplicationRef, Component, ComponentFactoryResolver, EnvironmentInjector, EventEmitter, Injector, NgZone, OnChanges, OnDestroy, SimpleChanges, Type, ViewContainerRef, ViewRef, createComponent } from '@angular/core';\nimport * as React from 'react';\nimport { createRoot, Root } from 'react-dom/client';\n\nimport { ThemeService } from '../../services/theme.service';\nimport { ulid } from 'ulidx';\nimport { Subscription } from 'rxjs';\n\n/**\n * Extend this component to automatically generate\n * bindings to a React component.\n *\n * ! You _must_ override the property `ngReactComponent`\n * Failure to do so will result in errors\n * `override readonly ngReactComponent = ReactFlowWrappableComponent;`\n */\n@Component({\n    selector: 'app-react-magic-wrapper',\n    template: ``,\n    standalone: true\n})\nexport class ReactMagicWrapperComponent implements OnChanges, OnDestroy, AfterViewInit {\n\n    /**\n     * Wrap an angular component inside of a React memo object.\n     * Will attempt to bind @Input and @Output properties if provided,\n     * and will bind the react arguments directly as @Input properties.\n     *\n     * @experimental\n     * @param componentClass Angular component\n     * @param envInjector    An `EnvironmentInjector` instance to be used for the component\n     * @param injector       An `ElementInjector` instance\n     * @param _inputs\n     * @param _outputs\n     * @returns\n     */\n    static WrapAngularComponent = (\n        componentClass: Type<any>,\n        appRef: Omit<ApplicationRef, '_runningTick'>,\n        injector: Injector,\n        _inputs: { [key: string]: any } = {},\n        _outputs: { [key: string]: Function } = {},\n        additionalChildren: React.ReactNode[] = []\n    ) => React.memo((args) => {\n\n        const id = ulid();\n        React.useEffect(() => {\n            const component = createComponent(componentClass, {\n                environmentInjector: appRef.injector,\n                elementInjector: injector,\n                hostElement: document.getElementById(id)\n            });\n\n            appRef.attachView(component.hostView);\n            // @ts-ignore\n            // component.hostView = hostView;\n\n            Object.assign(_inputs, args);\n\n            const { inputs, outputs } = componentClass['ɵcmp'];\n\n            // Returns a list of entries that need to be set\n            // This makes it so that unnecessary setters are not invoked.\n            const updated = Object.entries(inputs).filter(([parentKey, childKey]: [string, string]) => {\n                return component.instance[childKey] != _inputs[parentKey];\n            });\n\n            updated.forEach(([parentKey, childKey]: [string, string]) => {\n                if (_inputs.hasOwnProperty(parentKey))\n                    component.instance[childKey] = _inputs[parentKey];\n            });\n\n            const outputSubscriptions: { [key: string]: Subscription } = {};\n            // Get a list of unregistered outputs\n            const newOutputs = Object.entries(outputs).filter(([parentKey, childKey]: [string, string]) => {\n                return !outputSubscriptions[parentKey];\n            });\n\n            // Reverse bind via subscription\n            newOutputs.forEach(([parentKey, childKey]: [string, string]) => {\n                if (_outputs.hasOwnProperty(parentKey)) {\n                    const target: EventEmitter<unknown> = component.instance[childKey];\n                    const outputs = _outputs;\n\n                    const sub = target.subscribe(outputs[parentKey]); // Subscription\n\n                    outputSubscriptions[parentKey] = sub;\n                }\n            });\n\n            // Wrap the destroy method to safely release the subscriptions\n            const originalDestroy = component.onDestroy?.bind(component);\n            component.onDestroy = (cb) => {\n                Object.values(outputSubscriptions).forEach(s => s.unsubscribe());\n                originalDestroy?.(cb);\n            }\n\n            component.changeDetectorRef.detectChanges();\n        }, []);\n\n        // Create a container for the wrapped element and\n        // all of the siblings we will inject into it's container.\n        // The double wrapper is necessary for React's mechanisms to properly\n        // associate things together.\n        return React.createElement('div',\n            {},\n            React.createElement(\"div\", { id }),\n            ...additionalChildren\n        );\n    });\n\n    /**\n     * The react component to be wrapped.\n     * ! Must be overridden for this wrapper to work\n     */\n    ngReactComponent: React.FunctionComponent<any> | React.ComponentClass<any> | string;\n\n    private _root: Root;\n    public theme: string;\n    private ngSubscriptions = [\n        this.ngTheme.subscribe(t => {\n            this.theme = t;\n            this.ngOnChanges();\n        })\n    ];\n\n    constructor(\n        private readonly ngContainer: ViewContainerRef,\n        private readonly ngTheme: ThemeService,\n        private readonly ngZone: NgZone\n    ) {\n    }\n\n    ngOnInit() {\n        if (!this.ngReactComponent)\n            throw new Error(\"ReactMagicWrapperComponent cannot start without a provided ngReactComponent!\");\n    }\n\n    ngOnChanges(changes?: SimpleChanges): void {\n        this._render();\n    }\n\n    ngAfterViewInit() {\n        this._render();\n    }\n\n    ngOnDestroy() {\n        this._root.unmount();\n        this.ngSubscriptions.forEach(s => s.unsubscribe());\n    }\n\n    private _render() {\n        if (!this.ngReactComponent) return;\n\n        this.ngZone.runOutsideAngular(() => {\n            if (!this._root) {\n                this._root = createRoot(this.ngContainer.element.nativeElement);\n            }\n\n            // List all keys that do not start with `_` nor `ng`\n            const keys = Object.keys(this).filter(k => !/^(?:_|ng)/.test(k));\n\n            // Get all property keys from the class\n            const propKeys = keys.filter(k => !k.startsWith(\"on\"));\n            // Get all event handler keys from the class\n            const evtKeys = keys.filter(k => k.startsWith(\"on\"));\n\n            const props = {};\n            // Project all key properties onto `props`\n            propKeys.forEach(k => props[k] = this[k]);\n\n            // Attempt to ensure no zone is lost during the event emitter fires\n            this.ngZone.run(() => {\n                // Bind all event handlers.\n                // ! important Angular uses EventEmitter, React uses\n                // a different method of event binding\n                evtKeys.forEach(k => props[k] = (...args) => this[k].next(args));\n            })\n\n            this._root.render(React.createElement(this.ngReactComponent, { props: props as any }));\n        })\n    }\n}\n","/*\n * Public API Surface of package\n */\n\n/**\n ** Types\n */\nexport * from './types/menu';\nexport * from './types/popup';\n\n/**\n ** Directives\n */\nexport * from './directives/tooltip.directive';\nexport * from './directives/menu.directive';\nexport * from './directives/image-cache.directive';\n\n/**\n ** Pipes\n */\nexport * from './pipes/html-bypass.pipe';\nexport * from './pipes/resource-bypass.pipe';\nexport * from './pipes/script-bypass.pipe';\nexport * from './pipes/style-bypass.pipe';\nexport * from './pipes/url-bypass.pipe';\n\n/**\n** Services\n*/\nexport * from './services/dependency.service';\nexport * from './services/dialog.service';\nexport * from './services/fetch.service';\nexport * from './services/keyboard.service';\nexport * from './services/file.service';\nexport * from './services/theme.service';\nexport * from './services/navigation.service';\nexport * from './services/command-palette.service';\n// export * from './services/serviceworker.service';\n\n/**\n** Lazy loader component & service\n*/\nexport * from './components/lazy-loader/lazy-loader.service';\nexport * from './components/lazy-loader/lazy-loader.module';\nexport * from './components/lazy-loader/lazy-loader.component';\nexport * from './components/lazy-loader/types';\n\n/**\n** Dynamic HTML (WIP)\n*/\nexport * from './components/dynamic-html/dynamic-html.service';\nexport * from './components/dynamic-html/dynamic-html.module';\nexport * from './components/dynamic-html/dynamic-html.component';\nexport * from './components/dynamic-html/types';\n\n/**\n ** Components\n */\nexport * from './components/filemanager/filemanager.component';\n// export * from './components/music-library/music-library.component';\nexport * from './components/tabulator/tabulator.component';\n// export * from './components/overlay-wrapper/overlay-wrapper.component';\nexport * from './components/vscode/vscode.component';\nexport * from './components/parallax-card/parallax-card.component';\nexport * from './components/react-magic-wrapper/react-magic-wrapper.component';\nexport * from './components/menu/menu.component';\nexport * from './components/types';\n\n\nexport { ConsoleLogger, LogIcon } from './utils/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["zone","i2","i4","i1","log","warn","err","i2.LazyLoaderService","i1.Fetch","i1.LazyLoaderService","i1.CommandPaletteComponent","i3","i5","i1.DynamicHTMLRenderer","MIT['default']","Tabulator","i1.KeyboardService","i1.DialogService","i3.FilemanagerComponent","i6","i7","i8","i10","i1.FilemanagerComponent","i2.DialogService","i2.Fetch","i1.ThemeService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAGG;AAEI,MAAM,WAAW,GAAG,CAAC,EAA8B,EAAE,MAAA,GAAc,EAAE,EAAE,MAAe,KAAI;;AAE7F,IAAA,MAAM,GAAG,GAAY,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AACzB,UAAG,EAAkB,CAAC,qBAAqB,EAAE;AAC7C,UAAE;;AAEE,YAAA,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;AAChB,YAAA,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;;AAEhB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;SACN,CAAC;;AAGzB,IAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAEjC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/B,IAAA,MAAM,KAAK,GAAG;AACV,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,IAAI,EAAE,IAAI;KACb,CAAC;AAEF,IAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;AAChF,QAAA,QAAQ,MAAM,EAAE,SAAS;YAErB,KAAK,KAAK,EAAE;;AAER,gBAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;gBACxC,MAAM;aACT;YACD,KAAK,UAAU,EAAE;;gBAEb,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC/B,MAAM;aACT;YACD,KAAK,aAAa,EAAE;;gBAEhB,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC3B,MAAM;aACT;YACD,KAAK,OAAO,EAAE;;AAEV,gBAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;gBAClB,MAAM;aACT;AACD,YAAA,KAAK,QAAQ,CAAC;YACd,SAAS;;gBAEL,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtD,MAAM;aACT;SACJ;;;AAID,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;;AAE1D,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAE/C,QAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,MAAM,EAAE;YAC5B,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;SACzF;QACD,IAAI,MAAM,EAAE,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;AAClD,YAAA,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;SAC7F;;AAGD,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;;AAE5D,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;KACnD;AACI,SAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,KAAK,IAAI,MAAM,EAAE,QAAQ,IAAI,QAAQ,EAAE;AAChE,QAAA,QAAQ,MAAM,EAAE,SAAS;YACrB,KAAK,KAAK,EAAE;;AAER,gBAAA,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;gBACvC,MAAM;aACT;YACD,KAAK,UAAU,EAAE;;gBAEb,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBAC/B,MAAM;aACT;YACD,KAAK,aAAa,EAAE;;gBAEhB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC3B,MAAM;aACT;YACD,KAAK,OAAO,EAAE;;AAEV,gBAAA,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;gBACnB,MAAM;aACT;AACD,YAAA,KAAK,QAAQ,CAAC;YACd,SAAS;;gBAEL,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;gBACrD,MAAM;aACT;SACJ;;;AAID,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;;AAE5D,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAGhD,QAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,KAAK,EAAE;YAC3B,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;SACzF;AACD,QAAA,IAAI,MAAM,EAAE,QAAQ,IAAI,QAAQ,EAAE;AAC9B,YAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;SAC7F;;AAGD,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;;AAE1D,QAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;KAClD;;IAGD,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AAE/B,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;;ACxHD,MAAMA,MAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAEpE,MAAA,kBAAkB,GAAG,OAAO,SAAqB,EAAE,OAAY,KAAI;AAC5E,IAAA,MAAM,IAAI,GAAG;AACT,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACtC,QAAA,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AAC/C,QAAA,EAAE,EAAE,IAAI;KACX,CAAA;AAED,IAAA,OAAO,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACpD,EAAC;AAED,MAAM,mBAAmB,GAAG,OAAO,SAAoB,EAAE,IAAS,KAAI;IAClE,OAAO,IAAI,OAAO,CAAU,CAAC,GAAG,EAAE,GAAG,KAAI;AACrC,QAAAA,MAAI,CAAC,GAAG,CAAC,YAAW;AAChB,YAAA,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC;AAChC,gBAAA,SAAS,EAAE;AACP,oBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC/C,iBAAA;AACJ,aAAA,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9B,YAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AAChC,YAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;AAC3B,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAE1B,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC3C,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAE1B,YAAA,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC;AAEvE,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;YACxC,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,EAAE,CAAC;YAEb,GAAG,CAAC,IAAI,CAAC,CAAC;AACd,SAAC,CAAC,CAAC;AACP,KAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;MAqBlB,aAAa,CAAA;IAuCtB,WACW,CAAA,aAA+B,EAC/B,SAAuB,EACe,KAAU,EACpC,MAAiB;IACjB,SAA4B,EAAA;QAJxC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QACe,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QACpC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAmB;QAtCnC,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,GAAG,CAAC;QACjB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAOhC,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAEvB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;QACtC,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAExB,QAAA,IAAA,CAAA,cAAc,GAAG;AACb,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,CAAC;SACX,CAAA;;QAGe,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;QACtC,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;QAKlB,IAAY,CAAA,YAAA,GAAwB,EAAE,CAAC;;AAU3C,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QAChD,IAAI,CAAC,IAAI,GAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;QAE7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AAErC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,YAAY,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpF,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE;YAClC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;SACpE;KACJ;IAED,QAAQ,GAAA;AAEJ,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAG;YACpB,IAAI,OAAO,CAAC,IAAI,QAAQ;gBAAE,OAAO;;AAGjC,YAAA,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;AACvB,YAAA,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YACrB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,UAAU;kBAC/B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,kBAAE,CAAC,CAAC,OAAO,CAAC;YAE1B,IAAI,CAAC,CAAC,KAAK;AACP,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBAAE;AAE3F,YAAA,IAAI,OAAO,CAAC,CAAC,UAAU,IAAI,UAAU;AACjC,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBAAE;gBAAC,OAAM,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBAAE;AAEvG,YAAA,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,UAAU;AAChC,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBAAE;AAEtG,YAAA,IAAI,OAAO,CAAC,CAAC,YAAY,IAAI,UAAU;AACnC,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;iBAAE;AAEtG,YAAA,IAAI,OAAO,CAAC,CAAC,YAAY,IAAI,UAAU;AACnC,gBAAA,IAAI;AAAE,oBAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAAE;AAC3G,SAAC,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAClC,OAAO,CAAC,IAAI,QAAQ;AACpB,YAAA,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ;YAC5B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CACvB,CAAC;AAEN,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IACtC,OAAO,CAAC,IAAI,QAAQ;AACpB,YAAA,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,QAAQ;YAChC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAC3B,CAAC;AAEN,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;AACrE,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;YAEtE,IAAI,CAAC,cAAc,GAAG;AAClB,gBAAA,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,cAAc,GAAC,CAAC,CAAC;AACxD,gBAAA,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,cAAc,GAAC,CAAC,CAAC;gBACzD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc;gBACpD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc;aACrD,CAAA;SACJ;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAE7B,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B,EAAE,GAAG,CAAC,CAAC;KACX;IAED,eAAe,GAAA;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;AACnE,QAAA,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,IAAG;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,SAAC,CAAC,CAAC;AACH,QAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,IAAG;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,SAAC,CAAC,CAAC;AACH,QAAA,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,IAAG;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;;QAEP,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC,KAAK,GAAG,IAAI,EAAC,CAAC,CAAC,CAAA;KAC3D;AAED;;AAEG;IACH,MAAM,eAAe,CAAC,IAAc,EAAE,GAAwB,EAAE,QAAQ,GAAG,KAAK,EAAA;QAC5E,IAAI,OAAO,IAAI,IAAI,QAAQ;AAAE,YAAA,OAAO,IAAI,CAAC;QACzC,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC;AAEhC,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;;AAGvC,QAAA,MAAM,SAAS,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAEvE,QAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;SAChC;aACI,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU,IAAI,SAAS,EAAE;AACtD,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;SAChC;aACI;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;SACrC;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,aAAa;AACvC,YAAA,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACvC,YAAA,IAAI,OAAO,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE;AAClC,gBAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACjD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;AAC3C,gBAAA,OAAO,GAAG,CAAC;aACd;;AAGD,YAAA,OAAO,IAAI,CAAC;SACf;;AAGD,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,GAAG;AACV,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,MAAM,EAAE,IAAI;;SAEf,CAAC;;AAGF,QAAA,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,aAAa;AAC1C,cAAE,mBAAmB,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACtE,cAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAEvC,IAAI,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,WAAW;AACtC,YAAA,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,UAAU;AACnD,YAAA,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC;QAE7C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,GAAG,GAAI,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,IAAI;AAAI,YAAA,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QAG/D,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC3C,QAAA,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;;;QAInC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK;YACzC,OAAO;QAEX,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;AAC9C,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;AAC/D,YAAA,aAAa,EAAE,mBAAmB;AAClC,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,IAAI,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,UAAU,EAAE,GAAG,CAAC,qBAAqB,EAAE;AACvC,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,aAAa,EAAE,OAAO;AACtB,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,aAAa;AAC5B,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,eAAe,EAAE,IAAI;gBACrB,YAAY;AACf,aAAA;AACJ,SAAA,CAAC,CAAC;QAEH,IAAI,EAAE,GAAG,SAAS;AACb,aAAA,WAAW,EAAE;AACT,aAAA,SAAS,CAAC,OAAO,MAAM,KAAI;;AAExB,YAAA,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;AACpD,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aACtB;;AAEI,iBAAA,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE;aAE7D;;AAEI,iBAAA,IAAI,MAAM,IAAI,IAAI,EAAE;;AAErB,gBAAA,IAAI,OAAO,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE;AAClC,oBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;iBAClD;;qBAEI;oBACD,IAAI,CAAC,KAAK,EAAE,CAAC;iBAChB;aACJ;AAED,YAAA,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;AAErB,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAElE,EAAE,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC,CAAC;AAEX,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClC,QAAA,OAAO,SAAS,CAAC;KACpB;AAED;;;;AAIG;AACH,IAAA,WAAW,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,KAAK,CAAA,IAAA,CAAM,CAAC,CAAC;KAC9E;AAED;;AAEG;;;AAGH,IAAA,KAAK,CAAC,MAAO,EAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;AACzC,QAAA,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACjC;IAED,WAAW,CAAC,KAAK,GAAG,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC,KAAK,GAAG,KAAK,EAAC,CAAC,CAAC;SAChC;KACJ;IAED,eAAe,CAAC,IAAI,EAAE,GAAG,EAAA;;;AAIrB,QAAA,IAAI,EACA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AACxD,YAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU;AAClC,YAAA,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,gBAAgB,CACxB;YACG,OAAO;AAEX,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAK;AAC3B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AAEpB,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5C,gBAAA,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aACnC;AACL,SAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACvB;AAED,IAAA,cAAc,CAAC,IAAI,EAAA;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;KACvB;IAGD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAK;YAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB,EAAE,GAAG,CAAQ,CAAC;KAClB;IACD,cAAc,GAAA;AACV,QAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACjC;AAED;;;AAGG;IAEK,QAAQ,GAAA;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,aAA4B,CAAC;AACrE,QAAA,IAAI,CAAC,EAAE;YAAE,OAAO;AAEhB,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;QAE3D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAgB,CAAC;AAClE,QAAA,IAAI,CAAC,MAAM;YAAE,OAAO;;QAGpB,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;YACjC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AACxF,YAAA,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;SACvC;;QAGD,IAAI,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE;YAC/B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAA;AACtF,YAAA,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;SACzC;KACJ;;AAGD,IAAA,OAAO,CAAC,GAAe,EAAA;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;AACnE,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACnE,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAE3B,MAAM,CAAC,MAAM,CAAC;AACV,YAAA,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS;AAClC,YAAA,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU;AACpC,YAAA,QAAQ,EAAE,QAAQ;AACrB,SAAA,CAAC,CAAA;KACL;AAxXQ,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,8EA0CE,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGA1C9B,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjF1B,ijQA8LA,ED3HQ,MAAA,EAAA,CAAA,uiEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,mJAChB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAWnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAnBzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAGX,OAAA,EAAA;wBACL,gBAAgB;wBAChB,YAAY;wBACZ,aAAa;wBACb,wBAAwB;wBACxB,gBAAgB;AACnB,qBAAA,EAAA,UAAA,EACW,IAAI,EACV,IAAA,EAAA;AACF,wBAAA,WAAW,EAAE,iBAAiB;AAC9B,wBAAA,WAAW,EAAE,iBAAiB;AAC9B,wBAAA,WAAW,EAAE,sBAAsB;AACnC,wBAAA,WAAW,EAAE,qBAAqB;AACrC,qBAAA,EAAA,QAAA,EAAA,ijQAAA,EAAA,MAAA,EAAA,CAAA,uiEAAA,CAAA,EAAA,CAAA;;0BA4CI,QAAQ;;0BAAI,MAAM;2BAAC,eAAe,CAAA;;0BAClC,QAAQ;;0BACR,QAAQ;yCA1CG,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACU,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAuUE,QAAQ,EAAA,CAAA;sBADf,YAAY;uBAAC,eAAe,CAAA;;;AE3ZjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAE1E,MAAM,iBAAiB,GAAG,OAAO,QAAsC,EAAE,IAAS,EAAE,eAAgC,KAAI;AAE3H,IAAA,MAAM,IAAI,GAAG;QACT,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,QAAQ;AACR,QAAA,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACtC,QAAA,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AAC/C,QAAA,EAAE,EAAE,IAAI;KACX,CAAA;;IAGD,IAAI,eAAe,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,EAAE;QACnD,OAAO;AACH,YAAA,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC;AACtC,YAAA,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;AACxC,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;SACD,CAAC;KAChB;IAED,OAAO,IAAI,OAAO,CAAU,CAAC,GAAG,EAAE,GAAG,KAAI;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAW;;AAEhB,YAAA,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC;AAChC,gBAAA,SAAS,EAAE;AACP,oBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC/C,iBAAA;AACJ,aAAA,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AAChC,YAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;AAC3B,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAE1B,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAClD,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAE1B,YAAA,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC;AAEvE,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;YACxC,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,EAAE,CAAC;YAEb,GAAG,CAAC,IAAI,CAAC,CAAA;AACb,SAAC,CAAC,CAAC;AACP,KAAC,CAAC,CAAA;AACN,CAAC,CAAA;MAaY,gBAAgB,CAAA;AAuBzB,IAAA,WAAA,CACW,aAA+B,EACO,KAAU,EACpC,MAAiB;IACjB,SAA4B,EAAA;QAHxC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QACO,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QACpC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAmB;QApB5C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE5B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;AAElC,QAAA,IAAA,CAAA,cAAc,GAAG;AACb,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,CAAC;SACX,CAAA;;AASG,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;AAChD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;AAChD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AACtD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;AAC5D,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC;AACzD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;KACzE;IAED,QAAQ,GAAA;AAEJ,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,cAAc,GAAG;YAClB,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;YACnC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;AACpC,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE;AACnC,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE;SACpC,CAAA;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC;AACnB,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,WAAW;AACzC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACtB,aAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU;AACvC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;;AAExB,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;;QAG9D,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,YAAA,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY;AAC1C,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SAC9B,EAAE,GAAG,CAAC,CAAC;KACX;IAED,eAAe,GAAA;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;AAEnE,QAAA,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,IAAG;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,IAAG;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,IAAG;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;AAGD,IAAA,SAAS,CAAC,GAAkB,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE;YAC9B,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe;AACvC,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAChC;KACJ;AAED,IAAA,iBAAiB,CAAC,GAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;YACnE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YAEnC,UAAU,CAAC,MAAK;gBACZ,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACvD,gBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAgB,CAAC;gBAElF,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAC,GAAG,EAAE,SAAS,EAAC,CAAC,CAAC;AAC9C,gBAAA,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aACnC,EAAE,EAAE,CAAC,CAAA;SACT;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;KACzB;;AAGD,IAAA,OAAO,CAAC,GAAe,EAAA;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;AACnE,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACnE,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAE3B,MAAM,CAAC,MAAM,CAAC;AACV,YAAA,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS;AAClC,YAAA,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU;AACpC,YAAA,QAAQ,EAAE,QAAQ;AACrB,SAAA,CAAC,CAAC;KACN;AAED;;AAEG;IAIK,OAAO,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,YAAY;AAClB,YAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;AAE5B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;KAC1C;IAED,WAAW,CAAC,KAAK,GAAG,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC9B;AA5IQ,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,kDAyBD,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzB9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,kVC7E7B,glGAuFA,EAAA,MAAA,EAAA,CAAA,o3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhBQ,gBAAgB,EAChB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,oPACjB,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIR,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGd,OAAA,EAAA;wBACL,gBAAgB;wBAChB,iBAAiB;wBACjB,aAAa;AAChB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,glGAAA,EAAA,MAAA,EAAA,CAAA,o3BAAA,CAAA,EAAA,CAAA;;0BA2BX,QAAQ;;0BAAI,MAAM;2BAAC,eAAe,CAAA;;0BAClC,QAAQ;;0BACR,QAAQ;yCA1BJ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAgFN,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBA6ClC,OAAO,EAAA,CAAA;sBAHd,YAAY;uBAAC,eAAe,CAAA;;sBAC5B,YAAY;uBAAC,aAAa,CAAA;;sBAC1B,YAAY;uBAAC,cAAc,CAAA;;;ME5LnB,gBAAgB,CAAA;IAmBzB,WACY,CAAA,MAAiB,EACjB,aAA+B,EAAA;QAD/B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAf3C;;AAEG;QAC0B,IAAM,CAAA,MAAA,GAAmB,EAAE,CAAC;AAEzD;;AAEG;QAC2B,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QAErC,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;KAM5B;IAED,eAAe,GAAA;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;QAEnE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAG;AAC/B,YAAA,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAK;gBACxB,IAAI,CAAC,IAAI,OAAO;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAEhC,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,aAAC,CAAC,CAAA;AACN,SAAC,CAAC,CAAA;KACL;AAED,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC;AACpD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1E,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;KACJ;IAGM,MAAM,cAAc,CAAC,GAAiB,EAAA;;AAEzC,QAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,YAAY,WAAW,CAAC;YACvC,OAAO;QAEX,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACjF,OAAO;SACV;AAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAE/B,UAAU,CAAC,YAAW;;YAElB,IAAI,CAAC,IAAI,CAAC,kBAAkB;gBACxB,OAAO;YAEX,IAAI,CAAC,IAAI,EAAE,CAAC;SACf,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;KAChC;IAGM,MAAM,cAAc,CAAC,GAAiB,EAAA;AACzC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACnC;8GAvEQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EALd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,CAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,SAAS;AACZ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;wBACP,SAAS;AACZ,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;+GAKyB,QAAQ,EAAA,CAAA;sBAA7B,KAAK;uBAAC,aAAa,CAAA;gBAKS,MAAM,EAAA,CAAA;sBAAlC,KAAK;uBAAC,oBAAoB,CAAA;gBAKG,IAAI,EAAA,CAAA;sBAAjC,KAAK;uBAAC,qBAAqB,CAAA;gBAkCf,cAAc,EAAA,CAAA;sBAD1B,YAAY;uBAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAsB3B,cAAc,EAAA,CAAA;sBAD1B,YAAY;uBAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAA;;AAM5C;MACa,WAAW,GAAG,OACvB,MAAiB,EACjB,QAAmD,EACnD,IAAS,EACT,EAAe,EACf,MAAuB,EACvB,SAAS,GAAG,KAAK,EACjB,eAAsC,KACtC;AAEA,IAAA,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,aAAa,GAAG,QAAQ,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AACvE,IAAA,MAAM,UAAU,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5C,IAAA,MAAM,UAAU,GAAG,IAAI,EAAE,CAAC;AAE1B,IAAA,OAAO,cAAc,CACjB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,IAAI,EAAE;YACF,MAAM;AACN,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,MAAM,EAAE,MAAM;YACd,eAAe;AACf,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,EAAE,EAAE,UAAU;AACjB,SAAA;AACD,QAAA,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;AAClF,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,GAAG,eAAe;KACrB,CAAC;SACD,WAAW,EAAE,CACjB,CAAC;AACN,EAAE;AASI,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AAPvD,IAAA,WAAA,GAAA;;AAcI;;AAEG;QAC2B,IAAO,CAAA,OAAA,GAAmB,EAAE,CAAC;AAU9D,KAAA;IARG,QAAQ,GAAA;;AAEJ,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;AAC1D,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;AAC3D,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;AAEtD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;KAC9B;8GAnBQ,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EALf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,SAAA,EAAA;YACP,SAAS;AACZ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,SAAS,EAAE;wBACP,SAAS;AACZ,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAMmC,QAAQ,EAAA,CAAA;sBAAvC,KAAK;uBAAC,cAAc,CAAA;gBAKS,OAAO,EAAA,CAAA;sBAApC,KAAK;uBAAC,qBAAqB,CAAA;;;MCrInB,aAAa,CAAA;IAuBtB,WACY,CAAA,MAAiB,EACjB,aAA+B,EAAA;QAD/B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAP3C;;AAEG;QACuB,IAAM,CAAA,MAAA,GAAgB,EAAE,CAAC;KAK9C;IAEL,eAAe,GAAA;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;;;AAInE,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,KAAI;gBACrC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,CAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACrD,aAAC,CAAC,CAAC;SACN;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;gBACvB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;oBAC/B,IAAI,CAAC,QAAQ,CAAC,CAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClD,iBAAC,CAAC,CAAC;aACN;iBACI;AACD,gBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAElG,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAG;oBACjB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;wBACtC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI;4BACzB,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,IAAI,CAAC,QAAQ,CAAC,CAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACrD,yBAAC,CAAC,CAAC;qBACN;yBACI;AACD,wBAAA,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;qBACpD;AACL,iBAAC,CAAC,CAAC;aACN;SACJ;KACJ;AAED,IAAA,MAAM,QAAQ,CAAC,GAAiB,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,EAAA;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;AAEnE,QAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAElC,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;QAEnC,OAAO,QAAQ,CACX,IAAI,CAAC,MAAM,EACX,KAAK,EACL,IAAI,CAAC,IAAI,EACT,GAAG,EACH,IAAI,CAAC,MAAM,EACX,UAAU,GAAG,IAAI,GAAG,EAAE,CACzB;AACI,aAAA,IAAI,CAAC,CAAC,GAAG,GAAG,KAAI;AACb,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACrC,YAAA,OAAO,GAAG,CAAC;AACf,SAAC,CAAC;AACD,aAAA,KAAK,CAAC,CAAC,EAAE,KAAI;AACV,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACrC,YAAA,MAAM,EAAE,CAAC;AACb,SAAC,CAAC,CAAC;KACV;8GA1FQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EALX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,CAAA,EAAA,SAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,SAAA,EAAA;YACP,SAAS;AACZ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGQ,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,SAAS,EAAE;wBACP,SAAS;AACZ,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;+GAM8B,IAAI,EAAA,CAAA;sBAA9B,KAAK;uBAAC,kBAAkB,CAAA;gBAKC,YAAY,EAAA,CAAA;sBAArC,KAAK;uBAAC,iBAAiB,CAAA;gBAML,SAAS,EAAA,CAAA;sBAA3B,KAAK;uBAAC,UAAU,CAAA;gBAKS,MAAM,EAAA,CAAA;sBAA/B,KAAK;uBAAC,iBAAiB,CAAA;;AAwE5B;AACa,MAAA,QAAQ,GAAG,OACpB,MAAiB,EACjB,SAAqB,EACrB,IAAS,EACT,GAAiB,EACjB,MAAA,GAAsB,EAAE,EACxB,EAAgB,KAChB;;IAGA,GAAG,CAAC,cAAc,EAAE,CAAC;IACrB,GAAG,CAAC,eAAe,EAAE,CAAC;;IAGtB,IAAI,CAAC,MAAM,CAAC,SAAS;AACjB,QAAA,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;IAE/B,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAChE,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAC5D,IAAA,MAAM,UAAU,GAAG,IAAI,EAAE,CAAC;AAE1B,IAAA,OAAO,cAAc,CACjB,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,QAAA,IAAI,EAAE;YACF,MAAM;AACN,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,EAAE,EAAE,qBAAqB,EAAE;AACvC,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,YAAY,EAAE,aAAa;AAC9B,SAAA;AACD,QAAA,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;AAC/E,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,aAAa,EAAE,mBAAmB;KACrC,CAAC;SACD,WAAW,EAAE,CAAC,CAAC;AACxB;;AChJA,MAAM,OAAO,GAAG,cAAc,CAAC;AAC3B,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,CAAC;AACb,CAAA,CAAC,CAAC;AAGH,MAAM,UAAU,GAEZ,EAAE,CAAC;AAEP,MAAM,UAAU,GAAG,CAAA,2hBAAA,CAA6hB,CAAC;AACjjB,MAAM,SAAS,GAAG,CAAA,s0BAAA,CAAw0B,CAAC;MAe90B,sBAAsB,GAAG,IAAI,cAAc,CAAsB,wBAAwB,EAAE;MA2B3F,sBAAsB,CAAA;IAO/B,IAAY,EAAE,GAAK,EAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAiC,CAAA,EAAE;IAE1E,WACqB,CAAA,OAAmB,EACyB,WAAgC,EAAA;QAD5E,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACyB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;KAC5F;IAEL,WAAW,GAAA;QACP,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAED,IAAA,MAAM,cAAc,GAAA;AAChB,QAAA,IACI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;YACvC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC;;YAC9B,OAAO;;AAGT,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACtB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;AAInC,YAAA,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;gBAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE7B,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,IAAI,UAAU,CAAC;aACpE;iBACI;;gBAED,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACzC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;aAC3B;;YAGD,OAAO;SACV;;QAGD,IAAI,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,KAAK,EAAE;YAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,MAAM,EAAE;;;gBAGR,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;gBAE1B,MAAM,GAAG,GAAU,MAAM,IAAI,OAAO,CAAC,GAAG,IAAG;oBACvC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACtC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC3C,iBAAC,CAAC,CAAC;;AAGH,gBAAA,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE;oBACpB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAEzC,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,KAAK,EAAE;;;AAG5C,wBAAA,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;AACjD,wBAAA,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;wBACxB,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;qBACpC;oBACD,OAAO;iBACV;qBACI;;AAED,oBAAA,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,IAAI,UAAU,CAAC;iBACpE;aACJ;SACJ;AAED,QAAA,MAAM,KAAK,GAAG,CAAC,MAAK;YAChB,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,KAAK,EAAE;gBAC5C,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;aAC7C;YACD,OAAO,IAAI,KAAK,EAAE,CAAC;SACtB,GAAG,CAAC;;QAGL,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAA,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;;QAGjC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,IAAI,UAAU,CAAC;;AAGjE,QAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aACjB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjC,aAAA,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AAC1C,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,YAAA,MAAM,CAAC,SAAS,GAAG,MAAK;AACpB,gBAAA,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,MAAgB,CAAC;AAEpC,gBAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;AACtB,oBAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,IAAI,EAAE,MAAM,CAAC,MAAM;AACtB,iBAAA,CAAC,CAAC;gBAEH,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAqB,KAAI;AAC7C,oBAAA,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACxB,iBAAC,CAAC,CAAC;AAEH,gBAAA,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;gBAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;AACf,aAAC,CAAC;AACF,YAAA,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AACxB,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;aACF,KAAK,CAAC,GAAG,IAAG;;;AAGT,YAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAqB,KAAI;gBAC7C,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,IAAI,SAAS,CAAC;AAC3D,gBAAA,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC1C,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACV;AAhIQ,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,sBAAsB,4CAWP,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAXrC,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,CAAA,QAAA,EAAA,KAAA,CAAA,EAAA,aAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;0BAYQ,QAAQ;;0BAAI,MAAM;2BAAC,sBAAsB,CAAA;yCAR1B,GAAG,EAAA,CAAA;sBADtB,KAAK;uBAAC,QAAQ,CAAA;;sBACd,KAAK;uBAAC,WAAW,CAAA;gBAES,aAAa,EAAA,CAAA;sBAAvC,KAAK;uBAAC,kBAAkB,CAAA;;;AC5D7B;;;;;AAKG;MAKU,UAAU,CAAA;AAEnB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAK;AAEzC,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;KACtD;8GANQ,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACTD;;;;;AAKG;MAKU,cAAc,CAAA;AAEvB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAK;AAEzC,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;KAC7D;8GANQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACTD;;;;;AAKG;MAKU,YAAY,CAAA;AAErB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAK;AAEzC,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;KACxD;8GANQ,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACTD;;;;;AAKG;MAKU,WAAW,CAAA;AAEpB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAK;AAEzC,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;KACvD;8GANQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACTD;;;;;AAKG;MAKU,SAAS,CAAA;AAElB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAK;AAEzC,IAAA,SAAS,CAAC,GAAW,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;KACrD;8GANQ,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACZM,MAAM,KAAK,GAAG,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE/D;;AAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,IAAY,KAAI;IAC3D,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC,IAAA,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,CAAC,CAAC,MAAM,EAAE,CAAC;AACf,CAAC,CAAC;AAEF;;AAEG;MACU,QAAQ,CAAA;AACjB,IAAA,WAAA,CAAoB,IAAY,EAAA;QAAZ,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;KAAG;AACtC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACU,MAAA,OAAO,GAAG;AACnB,IAAA,aAAa,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACjC,IAAA,UAAU,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC9B,IAAA,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACxB,IAAA,QAAQ,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC5B,IAAA,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC1B,IAAA,OAAO,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC3B,IAAA,KAAK,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC;AACxB,IAAA,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC1B,IAAA,QAAQ,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC5B,IAAA,OAAO,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC3B,IAAA,IAAI,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC;AACvB,IAAA,QAAQ,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC5B,IAAA,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC1B,IAAA,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACvB,IAAA,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACxB,IAAA,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACvB,IAAA,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACxB,IAAA,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC1B,IAAA,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC1B,IAAA,OAAO,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC3B,IAAA,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACzB,IAAA,QAAQ,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC5B,IAAA,UAAU,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAE9B,IAAA,UAAU,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC9B,IAAA,aAAa,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACjC,IAAA,aAAa,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACjC,IAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAChC,IAAA,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC/B,IAAA,aAAa,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACjC,IAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAChC,IAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAChC,IAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAChC,IAAA,UAAU,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC9B,IAAA,aAAa,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACjC,IAAA,aAAa,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACjC,IAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAChC,IAAA,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC/B,IAAA,aAAa,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACjC,IAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAChC,IAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAChC,IAAA,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;EACnC;AAED,MAAM,GAAG,CAAA;AACL,IAAA,WAAA,CACY,OAAe,EACf,YAAoB,EACpB,SAAiB,EAAA;QAFjB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAQ;QACpB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;;QAGzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtC;AAID,IAAA,GAAG,CAAC,aAAgC,EAAE,WAAmB,EAAE,GAAG,IAAI,EAAA;AAC9D,QAAA,IAAI,aAAa,YAAY,QAAQ,EAAE;AACnC,YAAA,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,aAAa,CAAC,IAAI,CAAA,IAAA,EAAO,IAAI,CAAC,OAAO,CAAA,IAAA,EAAO,WAAW,CAAE,CAAA,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;SACjJ;aACI;YACD,OAAO,CAAC,GAAG,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,OAAO,CAAO,IAAA,EAAA,aAAa,CAAE,CAAA,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;SAC7H;KACJ;AAID,IAAA,IAAI,CAAC,aAAgC,EAAE,WAAmB,EAAE,GAAG,IAAI,EAAA;AAC/D,QAAA,IAAI,aAAa,YAAY,QAAQ,EAAE;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,EAAG,aAAa,CAAC,IAAI,CAAA,IAAA,EAAO,IAAI,CAAC,OAAO,CAAA,IAAA,EAAO,WAAW,CAAE,CAAA,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;SAClJ;aACI;YACD,OAAO,CAAC,IAAI,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,OAAO,CAAO,IAAA,EAAA,aAAa,CAAE,CAAA,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;SAC9H;KACJ;AAID,IAAA,GAAG,CAAC,aAAgC,EAAE,WAAmB,EAAE,GAAG,IAAI,EAAA;AAC9D,QAAA,IAAI,aAAa,YAAY,QAAQ,EAAE;AACnC,YAAA,OAAO,CAAC,KAAK,CAAC,CAAA,EAAG,aAAa,CAAC,IAAI,CAAA,IAAA,EAAO,IAAI,CAAC,OAAO,CAAA,IAAA,EAAO,WAAW,CAAE,CAAA,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;SACnJ;aACI;YACD,OAAO,CAAC,KAAK,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,OAAO,CAAO,IAAA,EAAA,aAAa,CAAE,CAAA,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;SAC/H;KACJ;AAID,IAAA,KAAK,CAAC,aAAgC,EAAE,WAAmB,EAAE,GAAG,IAAI,EAAA;;QAEhE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;KACjD;AACJ,CAAA;AAED;;;AAGG;MACU,aAAa,GAAG,CAAC,OAAe,EAAE,YAAoB,EAAE,SAAoB,GAAA,SAAS,KAC9F,IAAI,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE;AAE9C;;AAEG;AACI,MAAM,YAAY,GAAG,CAAC,IAAY,KACrC,CAAC,IAAI,IAAI,EAAE;AACN,KAAA,IAAI,EAAE;AACN,KAAA,WAAW,EAAE;AACb,KAAA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AACxB,KAAA,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAGvC;;;;AAIE;AACK,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,IAAgF,GAAA,EAAE,EAAE,YAAY,GAAG,KAAK,KAAI;AACjJ,IAAA,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEpD,IAAA,IAAI,CAAC,IAAI;QACL,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjC,IAAA,MAAM,IAAI,GAAG,CAAK,EAAA,EAAA,IAAI,EAAE,CAAC;;AAGzB,IAAA,IAAI,IAAI,YAAY,eAAe,EAAE;QACjC,IAAI,GAAG,CAAC,GAAI,IAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;KAC5G;AAED,IAAA,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAW,CAAQ,CAAC;AACtD,IAAA,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,OAAO,CAAQ,CAAC;;AAGvD,IAAA,IAAI,IAAI,IAAI,OAAO,EAAE;QACjB,YAAY,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE;AAC3C,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACf,gBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;QACtC,IACI,GAAG,IAAI,IAAI;AACX,YAAA,GAAG,IAAI,SAAS;AAChB,YAAA,GAAG,IAAI,EAAE;AACT,YAAA,GAAG,IAAI,MAAM;AACb,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACjB,YAAA,GAAG,IAAI,KAAK;AAEZ,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACzB;AAED,IAAA,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,QAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAGvB,IAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,IAAI,YAAY,EAAE;QACd,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,QAAQ,IAAI,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;KACpF;SACI;QACD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,QAAQ,IAAI,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;KACjF;AACL,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAI;AACxD,IAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,IAAA,IAAI,IAAI,GAAG,IAAI,eAAe,CAAC,KAAK,CAAQ,CAAC;IAC7C,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACpG,CAAC;;ACzOD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;AAEG;MAIU,iBAAiB,CAAA;AAE1B,IAAA,WAAA,CAC8B,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAC3C;AAEL;;;;;;;AAOG;AACH,IAAA,UAAU,CAAC,EAAU,EAAE,GAAW,EAAE,YAAoB,IAAI,EAAA;QACxD,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAAE,OAAO,GAAG,EAAE,CAAC;YAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;AAEf,YAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACjC,YAAA,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAEhC,YAAA,MAAM,CAAC,MAAM,GAAG,YAAW;AACvB,gBAAA,IAAI,OAAO,SAAS,IAAI,QAAQ,EAAE;oBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;AAEV,oBAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,EAAE;AACzD,wBAAA,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;AAEpB,oBAAA,IAAI,CAAC,IAAI,mBAAmB,EAAE;wBAC1B,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;qBAC7E;iBACJ;AAED,gBAAA,GAAG,EAAE,CAAC;AACV,aAAC,CAAA;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAA;KACL;AAzCQ,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,iBAAiB,kBAGd,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAHX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAIQ,MAAM;2BAAC,QAAQ,CAAA;;;ICZZ,yBAwBX;AAxBD,CAAA,UAAY,wBAAwB,EAAA;AAChC;;;;AAIG;AACH,IAAA,wBAAA,CAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT;;;AAGG;AACH,IAAA,wBAAA,CAAA,wBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB;;;;;AAKG;AACH,IAAA,wBAAA,CAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAEhB;;AAEG;AACH,IAAA,wBAAA,CAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACV,CAAC,EAxBW,wBAAwB,KAAxB,wBAAwB,GAwBnC,EAAA,CAAA,CAAA;;ACvBD;AACA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAkB,CAAC;AAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAkB,CAAC;MAEnC,sBAAsB,GAAG,IAAI,cAAc,CAAsB,mBAAmB,EAAE;MAKtF,iBAAiB,CAAA;AAC1B,IAAA,IAAY,GAAG,GAAA,EAAK,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACjE,IAAA,IAAY,GAAG,GAAA,EAAK,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACjE,IAAA,IAAY,IAAI,GAAA,EAAK,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;;aAGpD,IAAQ,CAAA,QAAA,GAEnB,EAFmB,CAEhB,EAAA;AAIP,IAAA,WAAA,CAAwD,SAA8B,EAAE,EAAA;;AAEpF,QAAA,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACvC;IAEO,OAAO,SAAS,CAAC,MAA2B,EAAA;AAChD,QAAA,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,GAAG;YACV,wBAAwB,EAAE,wBAAwB,CAAC,SAAS;AAC5D,YAAA,MAAM,EAAE;gBACJ,GAAG;gBACH,IAAI;gBACJ,GAAG;AACN,aAAA;AACD,YAAA,GAAG,MAAM;SACZ,CAAC;AAEF,QAAA,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAA;;;QAI7D,IACI,IAAI,CAAC,MAAM,CAAC,wBAAwB,IAAI,wBAAwB,CAAC,MAAM;AACvE,YAAA,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAC7B;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;SAChH;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB;AAC7E,YAAA,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;QACrF,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;AACvD,YAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QAChF,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB;AAC7D,YAAA,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;KAEtF;IAEO,OAAO,sBAAsB,CAAC,YAAmC,EAAA;AACrE,QAAA,IAAI,CAAC,YAAY;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;;AAIvE,QAAA,MAAM,EAAE,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,IAAI,SAAS,CAAC;AAE9C,QAAA,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAG1B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;;;;;;;;;;;;;QAgB9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC3C;AAED;;;;;AAKG;AACI,IAAA,iBAAiB,CAAsD,IAAgC,EAAA;AAC1G,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,gCAAA,EAAmC,IAAI,CAAC,EAAE,CAAe,YAAA,EAAA,IAAI,CAAC,KAAK,IAAI,SAAS,CAAA,EAAA,CAAI,CAAC,CAAC;YAC/F,OAAO;SACV;QAED,iBAAiB,CAAC,sBAAsB,CAAC;AACrC,YAAA,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;AAC5C,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC;AAC5C,SAAA,CAAC,CAAC;KACN;AAED;;;;AAIG;AACI,IAAA,mBAAmB,CAAC,EAAU,EAAE,KAAK,GAAG,SAAS,EAAA;AACpD,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,KAAK,CAAC;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;;QAG5F,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;KAClD;AAGD;;;AAGG;AACI,IAAA,wBAAwB,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS,EAAA;AAC5D,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAEnC,QAAA,MAAM,WAAW,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE/D,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAG;AAC/B,YAAA,IAAI,CAAC,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;;YAGrB,IAAI,CAAC,CAAC,CAAC,OAAO;AACV,gBAAA,OAAO,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;;AAG1C,YAAA,IAAI,CAAC,CAAC,OAAO,YAAY,MAAM;AAC3B,gBAAA,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AAGxD,YAAA,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,EAAE;gBAC9B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvC,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACzC;;YAGD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AAC1B,gBAAA,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;aACxD;;AAGD,YAAA,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,UAAU;AAC9B,gBAAA,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAE1B,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAC;SAClH;AACD,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAErB,QAAA,IAAI,GAAG,CAAC,OAAO,YAAY,MAAM,EAAE;AAC/B,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAElE,OAAO;AACH,gBAAA,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,MAAM,EAAE,MAAM;aAC9B,CAAC;SACL;AAED,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACzB;AAED;;;AAGG;AACI,IAAA,qBAAqB,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS,EAAA;QACzD,OAAO,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KACxD;AAED;;;;;AAKG;AACI,IAAA,gBAAgB,CAAC,EAAU,EAAE,KAAa,EAAE,OAA+C,EAAA;AAE9F,QAAA,QAAQ,iBAAiB,CAAC,MAAM,CAAC,wBAAwB;AACrD,YAAA,KAAK,wBAAwB,CAAC,SAAS,EAAE;AAErC,gBAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;aACrB;;AAGD,YAAA,KAAK,wBAAwB,CAAC,kBAAkB,EAAE;gBAC9C,MAAM,OAAO,GACT,OAAO;qBACF,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAEnC,gBAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;AACnB,oBAAA,OAAO,IAAI,CAAC;AAEhB,gBAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;aACrB;;AAED,YAAA,KAAK,wBAAwB,CAAC,gBAAgB,EAAE;gBAC5C,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAE7C,gBAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;oBACjB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;AAC5G,oBAAA,OAAO,KAAK,CAAC;iBAChB;gBAED,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAI,CAAA,EAAA,EAAE,CAAsB,oBAAA,CAAA,EAAE,GAAG,CAAC,CAAC;gBAEzD,MAAM,OAAO,GAAG,OAAO;qBAClB,MAAM,CAAC,GAAG,IAAG;AACV,oBAAA,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAEjD,oBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,iBAAC,CAAC,CAAC;AAEP,gBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;AAC3F,oBAAA,OAAO,KAAK,CAAC;iBAChB;AAED,gBAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;oBACrB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;AACrF,oBAAA,OAAO,IAAI,CAAC;iBACf;AAED,gBAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;aACrB;AACD,YAAA,KAAK,wBAAwB,CAAC,MAAM,EAAE;gBAClC,OAAO,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,OAAc,CAAC,CAAC;aAClE;YACD,SAAS;AACL,gBAAA,OAAO,KAAK,CAAC;aAChB;SACJ;KACJ;AA1PQ,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,iBAAiB,kBAYM,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAZ7C,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAagB,QAAQ;;0BAAI,MAAM;2BAAC,sBAAsB,CAAA;;;MCR7C,mBAAmB,CAAA;AAiB5B;;AAEG;IACH,IAAwB,EAAE,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;;;QAI9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;aACI;AACD,YAAA,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;SACjB;KACJ;;IAID,IAAoB,KAAK,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAEjC,QAAA,IAAI,OAAO,KAAK,IAAI,QAAQ,IAAI,CAAC,KAAK;YAAE,OAAO;;QAG/C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO;SACV;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;IACD,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;AAIlC;;;;;;;;;;;;;;;;;AAiBG;IACH,IAAqB,MAAM,CAAC,IAA6B,EAAA;QACrD,IAAI,IAAI,IAAI,SAAS;YAAE,OAAO;AAE9B,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,IAAI,SAAS;AACjB,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAExB,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YAEpD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAExC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3E,YAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;;AAG9D,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAE7D,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;AAKD;;;;;;;;;;;AAWG;IACH,IAAsB,OAAO,CAAC,IAAkC,EAAA;AAC5D,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YAEpD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAEhF,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;;gBAEhB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;AAC3C,gBAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAC3C,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ;AA6ED,IAAA,WAAA,CACY,OAA0B,EACd,gBAAkC,EACnC,MAAiB,EACQ,eAAe,EAAA;QAHnD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;QACd,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QACnC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACQ,IAAe,CAAA,eAAA,GAAf,eAAe,CAAA;QAnLvD,IAAM,CAAA,MAAA,GAAG,SAAS,CAAC;QAkEnB,IAAmB,CAAA,mBAAA,GAAqC,EAAE,CAAC;AAkCnE;;AAEG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AAElD;;;;;;AAMG;AACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;;AAwCvC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAErD,QAAA,IAAA,CAAA,aAAa,GAAG;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;AAC7B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAE7B,UAAU,CAAC,MAAK;AACZ,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC9B,EAAE,GAAG,CAAC,CAAA;AACX,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;AAC5B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,aAAC,CAAC;SACL,CAAC;AAEK,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC;QAsBxB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAdxB,QAAA,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;;AAG/C,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACvE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC5C,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;SAC3C;KACJ;AAGD,IAAA,MAAM,eAAe,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACX,YAAA,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACzC,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7B;AAED,QAAA,IAAI;AACA,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1F,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1B,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,MAAM,CAAA,cAAA,CAAgB,CAAC,CAAC;AAC1F,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;aAC7B;AAED,YAAA,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;AACtC,YAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;;YAGhC,MAAM,MAAM,GAAmB,IAAI,CAAC,YAAY,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;;YAItE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;gBACtC,IAAI,CAAC,GAAG,CAAC,CAAA,qCAAA,EAAwC,IAAI,CAAC,GAAG,CAAgC,8BAAA,CAAA,CAAC,CAAC;AAC3F,gBAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;aAC3B;AAED,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;iBAC9B,GAAG,CAAC,CAAC,IAAG;AACL,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;gBAGxB,IAAI,OAAO,KAAK,IAAI,UAAU,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,UAAU;AAChE,oBAAA,OAAO,KAAK,CAAC;AACjB,gBAAA,OAAO,IAAI,CAAC;AAChB,aAAC,CAAC;iBACD,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;iBACtB,MAAM,CAAC,KAAK,IAAG;AACZ,gBAAA,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrC,gBAAA,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAExC,QAAQ,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE;AACzD,aAAC,CAAC,CAAC;AAEP,YAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,CAAA,6BAAA,EAAgC,IAAI,CAAC,GAAG,CAA0C,wCAAA,CAAA,CAAC,CAAC;AAC7F,gBAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;aAC3B;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAE5G,IAAI,CAAC,SAAS,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,CAAA,WAAA,EAAc,IAAI,CAAC,GAAG,CAA4B,0BAAA,CAAA,CAAC,CAAC;AAC7D,gBAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;aAC3B;;;;;;;;;;AAaD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,SAAgB,CAAC,CAAC;AAC/G,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YAExF,MAAM,QAAQ,GAAQ,IAAI,CAAC,uBAAuB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAE9E,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;AAEnB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;;;AAIzB,YAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAA6B,CAAC;YAE9E,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,SAAS,IAAI,UAAU,EAAE;gBACzD,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,IAAG;AACzD,oBAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACjE,iBAAC,CAAC,CAAC;aACN;iBACI;AACD,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAA,CAAA,CAAG,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAEzB,YAAA,OAAO,YAAY,CAAC;SACvB;QACD,OAAO,EAAE,EAAE;YAEP,IAAI,SAAS,EAAE,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,GAAG,2BAA2B,CAAC,CAAC;AACxE,gBAAA,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;AACxD,gBAAA,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACrB;;AAGD,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,gBAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACvD,gBAAA,MAAM,EAAE,CAAC;aACZ;AAED,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7B;KACJ;IAED,WAAW,CAAC,QAAQ,GAAG,IAAI,EAAA;;AAEvB,QAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAI;YAC5D,GAAG,CAAC,WAAW,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;;QAG9B,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAI;gBACtD,GAAG,CAAC,WAAW,EAAE,CAAC;AACtB,aAAC,CAAC,CAAC;SACN;AAED,QAAA,IAAI,CAAC,sBAAsB,EAAE,WAAW,EAAE,CAAC;;AAG3C,QAAA,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,2BAA2B,EAAE,OAAO,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC;;AAG9B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;KAC3C;AAED;;AAEG;IACK,UAAU,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAAE,OAAO;;AAG3D,QAAA,IAAI,OAAO,IAAI,CAAC,YAAY,IAAI,QAAQ,EAAE;AACtC,YAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAI;gBACrD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW;AACvC,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAChC,aAAC,CAAC,CAAC;SACN;;QAGD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;;;AAIpD,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;AACtF,YAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC7E,SAAC,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;AACxD,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;AACtC,gBAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACzE,SAAC,CAAC,CAAC;KACN;AAED;;AAEG;IACK,WAAW,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAAE,OAAO;QAE5D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;;AAGrD,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;AAC1F,YAAA,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;;QAGH,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;YAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBACzC,MAAM,MAAM,GAA0B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC7E,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;;gBAG9B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,gBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D,gBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;aAC7C;AACL,SAAC,CAAC,CAAC;KACN;AAED;;;;;;AAMG;IACK,WAAW,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAC7B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAExE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC5B;AAED;;;;;AAKG;IACK,SAAS,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc;YAC1B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAErE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC5B;AA1cQ,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,mBAAmB,yIAsNJ,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAtN9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,wVACE,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBlD,0mBAoBA,EDNe,MAAA,EAAA,CAAA,seAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,oPAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGrC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAGlB,CAAE,iBAAiB,EAAE,gBAAgB,CAAE,cACpC,IAAI,EAAA,QAAA,EAAA,0mBAAA,EAAA,MAAA,EAAA,CAAA,seAAA,CAAA,EAAA,CAAA;;0BAsNX,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;;0BAAI,MAAM;2BAAC,eAAe,CAAA;yCArNW,eAAe,EAAA,CAAA;sBAAhE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBAmBxB,EAAE,EAAA,CAAA;sBAAzB,KAAK;uBAAC,WAAW,CAAA;gBAiBE,KAAK,EAAA,CAAA;sBAAxB,KAAK;uBAAC,OAAO,CAAA;gBAsCO,MAAM,EAAA,CAAA;sBAA1B,KAAK;uBAAC,QAAQ,CAAA;gBAwCO,OAAO,EAAA,CAAA;sBAA5B,KAAK;uBAAC,SAAS,CAAA;gBAuBN,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBASG,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;AE9JX,MAAM,OAAEC,KAAG,QAAEC,MAAI,OAAEC,KAAG,EAAE,GAAG,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;MAqBxD,aAAa,CAAA;IAItB,WACY,CAAA,MAAiB,EACjB,UAA6B,EAAA;QAD7B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAJjC,IAAO,CAAA,OAAA,GAAiC,EAAE,CAAC;KAMlD;AAMD,IAAA,IAAI,CAAC,IAAY,EAAE,cAAoB,EAAE,OAAsB,EAAE,EAAA;AAC7D,QAAA,MAAM,KAAK,GAAG,OAAO,cAAc,IAAI,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;QAC7E,IAAI,OAAO,cAAc,IAAI,QAAQ;YACjC,IAAI,GAAG,cAAc,CAAC;QAE1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AAEnC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3E,YAAA,IAAI,CAAC,YAAY;AACb,gBAAA,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,GAAG,+BAA+B,CAAC,CAAC,CAAC;AAGjG,YAAA,MAAM,IAAI,GAAG;AACT,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;AAC5B,gBAAA,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;AAC9B,gBAAA,GAAG,IAAI;AACP,gBAAA,IAAI,EAAE;AACF,oBAAA,EAAE,EAAE,IAAI;AACR,oBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;AACzB,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,oBAAA,KAAK,EAAE,KAAK;AACf,iBAAA;AACD,gBAAA,UAAU,EAAE;AACR,oBAAA,SAAS,GAAG,IAAI;oBAChB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACjF,iBAAA;aACJ,CAAC;AAEF,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAEzD,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1B,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;AACpC,gBAAAF,KAAG,CAAC,gBAAgB,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,KAAK,CAAC,IAAY,EAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;AAC3D,QAAA,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KAC7C;AAED;;;AAGG;IACH,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KAClD;8GApEQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACrBD;AACA,MAAM,UAAU,GAAG,CAAC,CAAC;MAoBR,KAAK,CAAA;AACd,IAAA,WAAA,CACY,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACvB;;IAGE,GAAG,CAAI,GAAW,EAAE,OAAA,GAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AACtE,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;KAC5D;IACM,GAAG,CAAI,GAAW,EAAE,IAAS,EAAE,UAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AACjF,QAAA,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AAClG,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;KAC5D;IACM,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,UAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AAClF,QAAA,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AAClG,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;KAC7D;IACM,KAAK,CAAI,GAAW,EAAE,IAAS,EAAE,UAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AACnF,QAAA,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;AAClG,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;KAC9D;IACM,MAAM,CAAI,GAAW,EAAE,OAAA,GAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AACzE,QAAA,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;KAC/D;;IAGO,OAAO,CAAI,MAAc,EAAE,GAAW,EAAE,UAAwB,EAAE,EAAE,WAAW,GAAG,KAAK,EAAA;AAC3F,QAAA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;;;QAI9B,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC;AACtD,QAAA,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QAG/B,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;iBAC5C,IAAI,CAAC,KAAK,CAAC;gBACR,KAAK,CAAC,KAAK,EAAE,UAAU,EAAA;;;oBAGnB,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;AAC1C,wBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAElB,oBAAA,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE;wBAClC,KAAK,CAAC,gEAAgE,CAAC,CAAC;oBAE5E,KAAK,GAAG,IAAI,CAAC;oBAEb,MAAM,CAAC,KAAK,CAAC,CAAC;AACd,oBAAA,MAAM,KAAK,CAAC;iBACf;AACD,gBAAA,KAAK,EAAE,UAAU;AACpB,aAAA,CAAC,CAAC;iBACF,SAAS,CAAC,IAAI,IAAG;gBACd,OAAO,CAAC,IAAoB,CAAC,CAAC;;gBAG9B,UAAU,CAAC,MAAK;oBACZ,CAAC,CAAC,WAAW,EAAE,CAAC;iBACnB,EAAE,CAAC,CAAC,CAAC;AACV,aAAC,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,CAAe,CAAC;KAC1B;8GAlEQ,KAAK,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAL,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAK,cAFF,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,KAAK,EAAA,UAAA,EAAA,CAAA;kBAHjB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACHD;;AAEG;MAIU,eAAe,CAAA;AAcxB,IAAA,WAAA,GAAA;QAZQ,IAAQ,CAAA,QAAA,GAA+B,EAAE,CAAC;QAC3C,IAAW,CAAA,WAAA,GASZ,EAAE,CAAC;AAGL,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,QAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAChE;AAEO,IAAA,SAAS,CAAC,GAAkB,EAAA;;AAEhC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;;;AAI5C,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW;AAC1B,aAAA,MAAM,CAAC,EAAE,IACN,CAAC,EAAE,CAAC,IAAI,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO;AAChD,aAAC,EAAE,CAAC,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC;AAC9C,aAAC,EAAE,CAAC,KAAK,IAAI,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,QAAQ,CAAC;AACpD,aAAC,EAAE,CAAC,KAAK,IAAI,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,OAAO,CAAC;YACnD,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAClE,CAAC;QAEN,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE;YACvE,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,GAAG,CAAC,cAAc,EAAE,CAAC;SACxB;AAED,QAAA,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO;AAClB,YAAA,SAAS;AAEb,QAAA,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzC;;;;;;AAMG;;;;KAIN;AAEO,IAAA,OAAO,CAAC,GAAkB,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;KAChD;AAEO,IAAA,UAAU,CAAC,GAAkB,EAAA;;KAEpC;AAED;;;;AAIG;AACI,IAAA,YAAY,CAAC,GAAe,EAAA;AAC/B,QAAA,MAAM,GAAG,GAAG,IAAI,OAAO,EAAiB,CAAC;AACzC,QAAA,IAAI,IAAI,GAAG;AACP,YAAA,GAAG,GAAG;YACN,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpD,YAAA,GAAG,EAAE,GAAG;SACX,CAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,OAAO;AACH,YAAA,GAAG,GAAG;AACN,YAAA,SAAS,GAAG,CAAC,GAAG,IAAI,KAAI;gBACpB,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjC,OAAO;AACH,oBAAA,GAAG,CAAC;oBACJ,WAAW,EAAE,MAAK;wBACd,CAAC,CAAC,WAAW,EAAE,CAAC;;AAGhB,wBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;wBACrD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACjC;iBACJ,CAAC;AACN,aAAC,CAAwC;SAC5C,CAAC;KACL;AAED;;AAEG;AACH,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACnC;AACD;;AAEG;AACH,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACrC;AACD;;AAEG;AACH,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACjC;AACD;;AAEG;AACH,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACnC;AACD;;AAEG;AACH,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACjC;IAID,SAAS,GAAA;AACL,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;8GAtIQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;wDAmIG,SAAS,EAAA,CAAA;sBAFR,YAAY;uBAAC,aAAa,CAAA;;sBAC1B,YAAY;uBAAC,eAAe,CAAA;;;ACzJjC;;AAEG;MAIU,WAAW,CAAA;AAEpB,IAAA,WAAA,CAAoB,KAAY,EAAA;QAAZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAEhC,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,MAAe,EAAE,QAAQ,GAAG,KAAK,EAAE,YAAY,GAAG,EAAE,KAAM;AACpE,YAAA,OAAO,IAAI,OAAO,CAAC,CAAC,IAAG;gBACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClC,gBAAA,IAAI,QAAQ;AACR,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACtC,gBAAA,IAAI,MAAM;AACN,oBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAExC,IAAI,CAAC,KAAK,EAAE,CAAC;AAEb,gBAAA,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAE9B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;AACjC,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;wBAChC,MAAM,IAAI,GAMN,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAElB,wBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,wBAAA,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;AACvC,qBAAC,CAAC,CAAC;AACH,oBAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChB,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;KAjCmC;8GAF5B,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFR,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACAK,MAAO,YAAa,SAAQ,eAAyB,CAAA;AACvD,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;AAEpE,QAAA,IAAI,CAAC,SAAS,CAAC,CAAC,IAAG;AACf,YAAA,IAAI,CAAC,CAAC,IAAI,CAAQ,IAAI,WAAW;gBAAE,OAAO;AAE1C,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO;gBACxD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3C,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM;gBACxD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE5C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,QAAQ,CAAC,CAAW,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAChB;8GAlBQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACHD,MAAM,OAAEJ,KAAG,QAAEC,MAAI,OAAEC,KAAG,EAAE,GAAG,aAAa,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;MAa5D,iBAAiB,CAAA;AAG1B,IAAA,WAAA,CACqB,UAA6B,EAAA;QAA7B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;AAH3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAsB,IAAI,CAAC,CAAC;QAKjE,MAAM,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IAEO,mBAAmB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;;QAGzC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC;AAC5C,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAE1C,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACpC;AAEO,IAAA,YAAY,CAAC,GAAW,EAAE,IAAA,GAAe,EAAE,EAAA;AAE/C,QAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;AAG/B,QAAA,MAAM,MAAM,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AAC3B,aAAA,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;AAClB,YAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,YAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AACpB,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAGjBF,KAAG,CAAC,CAA0B,uBAAA,EAAA,IAAI,CAAG,CAAA,CAAA,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,IAAI;AACV,YAAA,MAAM,EAAE,MAAa;AACrB,YAAA,IAAI,EAAE,MAAM;AACf,SAAA,CAAC,CAAC;KACN;8GA5CQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCRY,iBAAiB,CAAA;AAN9B,IAAA,WAAA,GAAA;QAUI,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AAKvB,KAAA;IAHG,WAAW,GAAA;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;KACzC;8GARQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,8ICT9B,gKAOA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDEa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,cAG3B,IAAI,EAAA,QAAA,EAAA,gKAAA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA,CAAA;8BAIP,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEDG,mBAAmB,CAAA;AAS5B,IAAA,WAAA,CACY,cAAuC,EAAA;QAAvC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAyB;QAR1C,IAAW,CAAA,WAAA,GAKd,EAAE,CAAC;KAMR;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,KAAK,IAAI,CAAC,CAAC;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,QAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC;SACzD,EAAE,GAAG,CAAC,CAAA;KACV;8GA3BQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,iICVhC,oWAYA,EAAA,MAAA,EAAA,CAAA,6kDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDFa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAG7B,IAAI,EAAA,QAAA,EAAA,oWAAA,EAAA,MAAA,EAAA,CAAA,6kDAAA,CAAA,EAAA,CAAA;yFAIP,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MEeG,uBAAuB,CAAA;IAOhC,IAAI,EAAE,GAAK,EAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAA4B,CAAC,EAAE;IAmBjE,WACqB,CAAA,cAAqC,EACrC,MAAyB,EACzB,UAAsB,EACtB,cAAiC,EACzB,IAAS,EAAA;QAJjB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAuB;QACrC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QACzB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QArB7C,IAAc,CAAA,cAAA,GAAG,SAAS,CAAC;QAEpC,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QACP,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QAErB,IAAQ,CAAA,QAAA,GAAoB,EAAE,CAAC;QAC/B,IAAgB,CAAA,gBAAA,GAAoB,EAAE,CAAC;QAEvC,IAAW,CAAA,WAAA,GAKL,EAAE,CAAC;QASL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;KACpE;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAC9E,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAGnC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClB,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,aAAa,EAAE,CAAC;AACnB,SAAA,CAAC,CAAC;KACN;AAED,IAAA,SAAS,CAAC,GAAkB,EAAA;AACxB,QAAA,QAAO,GAAG,CAAC,GAAG;YACV,KAAK,OAAO,EAAE;;AAEV,gBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;AAChC,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAEjE,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,OAAO;aACV;YACD,KAAK,SAAS,EAAE;AACZ,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEnD,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;aACV;YACD,KAAK,WAAW,EAAE;gBACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAC,CAAC,CAAC,CAAC;gBAEhF,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;aACV;YACD,KAAK,QAAQ,EAAE;;AAEX,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAEpD,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;aACV;YACD,KAAK,UAAU,EAAE;gBACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAC,EAAE,CAAC,CAAC;gBAEjF,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;aACV;YACD,KAAK,QAAQ,EAAE;AACX,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,OAAO;aACV;YACD,KAAK,WAAW,EAAE;;;AAGd,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,oBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;oBACxB,UAAU,CAAC,MAAK;AACZ,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACtD,wBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AACvB,wBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC;qBAC1C,EAAE,GAAG,CAAC,CAAA;oBACP,OAAO;iBACV;qBACI;oBACD,MAAM;iBACT;aACJ;YACD,KAAK,QAAQ,EAAE;aAEd;SACJ;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;;;QAIrD,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,WAAW,GAAI,GAAG,CAAC,MAA2B,CAAC,KAAK,CAAC;YAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,SAAC,CAAC,CAAA;KACL;AAEO,IAAA,MAAM,aAAa,GAAA;;QAEvB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,OAAO;SACV;AAED,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW;AAC9B,aAAA,WAAW,EAAE;aACb,KAAK,CAAC,EAAE,CAAC,CAAC;QAEf,MAAM,eAAe,GAAoB,EAAE,CAAC;AAE5C,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjC,YAAA,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;;AAG1B,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE;gBACf,MAAM,YAAY,GAAG,KAAK;AACrB,qBAAA,WAAW,EAAE;qBACb,KAAK,CAAC,EAAE,CAAC,CAAC;gBAEf,IAAI,aAAa,GAAG,EAAE,CAAC;gBACvB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,gBAAA,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;oBAC3B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAEpD,oBAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;wBACb,OAAO,GAAG,KAAK,CAAC;wBAChB,MAAM;qBACT;yBACI;wBACD,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAA,GAAA,EAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA,IAAA,CAAM,CAAC;AAC3F,wBAAA,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;qBACzB;iBACJ;AAED,gBAAA,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAExC,IAAI,OAAO,EAAE;AACT,oBAAA,OAAO,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;AAC1C,oBAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACjC;aACJ;;AAGD,YAAA,IAAI,OAAO,CAAC,IAAI,EAAE;gBACd,MAAM,YAAY,GAAG,KAAK;AACrB,qBAAA,WAAW,EAAE;qBACb,KAAK,CAAC,EAAE,CAAC,CAAC;gBAEf,IAAI,YAAY,GAAG,EAAE,CAAC;gBACtB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,gBAAA,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;oBAC3B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAEpD,oBAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;wBACb,OAAO,GAAG,KAAK,CAAC;wBAChB,MAAM;qBACT;yBACI;wBACD,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAA,GAAA,EAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA,IAAA,CAAM,CAAC;AAC1F,wBAAA,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;qBACzB;iBACJ;AAED,gBAAA,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAEvC,IAAI,OAAO,EAAE;AACT,oBAAA,OAAO,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC;AACxC,oBAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACjC;aACJ;SACJ;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;KAC3C;AAEM,IAAA,cAAc,CAAC,QAAyB,EAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ;aACnB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;;AAGrB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;KACpE;IAEO,QAAQ,GAAA;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC;AAC1D,QAAA,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAExC,QAAA,IAAI,GAAG,GAAG,OAAO,EAAE;AACf,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;SAC9E;aACI,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,UAAU,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;SAChH;;AAGD,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACvC;AAED,IAAA,cAAc,CAAC,OAAsB,EAAA;;QAEjC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClB,gBAAA,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,aAAa,EAAE,IAAI,CAAC,WAAW;AAC/B,gBAAA,UAAU,EAAE,KAAK;AACpB,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACxC;;aAEI;AACD,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACvB;KACJ;IAID,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACvB;KACJ;AAvQQ,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,uBAAuB,6IA+BpB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA/BlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAErB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iCAAA,EAAA,aAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,EC7B1B,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8uFA0EA,ixEDxDQ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,EACjB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,8FACjB,mBAAmB,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAId,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjBnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGzB,IAAA,EAAA;AACF,wBAAA,SAAS,EAAE,iCAAiC;qBAC/C,EACQ,OAAA,EAAA;wBACL,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,iBAAiB;wBACjB,iBAAiB;wBACjB,mBAAmB;AACtB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,8uFAAA,EAAA,MAAA,EAAA,CAAA,0tEAAA,CAAA,EAAA,CAAA;;0BAiCX,MAAM;2BAAC,eAAe,CAAA;yCA7BH,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACE,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBAEb,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBA8PN,MAAM,EAAA,CAAA;sBAFL,YAAY;uBAAC,aAAa,CAAA;;sBAC1B,YAAY;uBAAC,eAAe,CAAA;;;AEvRjC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;MAkJzD,qBAAqB,CAAA;IAK9B,WACqB,CAAA,MAAiB,EACjB,UAA6B,EAAA;QAD7B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QAL1C,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;AAOvC,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAK;;AAE7B,YAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;;;;;AAOzC,gBAAA,IAAI,YAAY,IAAI,IAAI,EAAE;oBACtB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChC,OAAO;iBACV;;;;AAKD,gBAAA,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW;oBAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACvC;AACL,SAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;KACrB;IAEO,WAAW,GAAA;AACf,QAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChC;AAEO,IAAA,gBAAgB,CAAC,OAAA,GAAuB,QAAQ,CAAC,IAAI,EAAA;AACzD,QAAA,MAAM,WAAW,GAAkB,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,aAAa,GAAgB,OAAO,CAAC;AACzC,QAAA,GAAG;YACC,WAAW,CAAC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AACrE,SAAC,QAAQ,aAAa,CAAC,aAAa,EAAE;;QAGtC,MAAM,qBAAqB,GAAmB,EAAE,CAAC;AACjD,QAAA,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE;AAC/B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;YAC1E,IAAI,YAAY,EAAE;AACd,gBAAA,qBAAqB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aAC/C;SACJ;AAED,QAAA,OAAO,qBAAqB,CAAC;KAChC;AAED;;;;;;;AAOG;AACK,IAAA,SAAS,CAAC,GAAkB,EAAA;QAChC,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAqB,CAAC,CAAC;;AAG/E,QAAA,MAAM,GAAG,GAAG;YACR,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS;YAChC,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS;YAC9B,GAAG,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS;YAClC,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS;AAChC,YAAA,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI;AAClD,SAAA,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAEzC,QAAA,KAAK,MAAM,YAAY,IAAI,qBAAqB,EAAE;YAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAG;AACzC,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;sBAC7B,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAU,CAAC;AACpC,sBAAE,CAAC,CAAC,WAAW,IAAI,GAAU,CAAA;AACrC,aAAC,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE;gBACR,GAAG,CAAC,eAAe,EAAE,CAAC;gBACtB,GAAG,CAAC,cAAc,EAAE,CAAC;AAErB,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;;gBAG1B,OAAO;aACV;;SAEJ;;;KAIJ;IAEO,UAAU,CAAC,OAAoB,EAAE,MAAqB,EAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAK;YAC7E,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B,YAAA,OAAO,EAAE,CAAC;SACb,GAAG,CAAC;;QAGL,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;YACtF,IAAI,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;SACtE;aACI;;SAEJ;;AAGD,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;AACjC,gBAAA,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAQ,CAAC;;gBAEzE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAS,CAAC;SACpE;AAED,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACrC;IAEO,aAAa,CAAC,OAAoB,EAAE,MAA8B,EAAA;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACpG,QAAA,MAAM,WAAW,GAAG,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,MAAM,IAAI,QAAQ,GAAG,CAAC,CAAC,WAAW,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;QAE5H,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA,oEAAA,CAAsE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;SACpH;AACI,aAAA,IAAI,WAAW,IAAI,CAAC,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA,0CAAA,CAA4C,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;SAC3F;aACI;YACD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SAC/C;KACJ;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,OAA8B,EAAA;QACrC,IAAI,CAAC,qBAAqB,CAAC;AACvB,YAAA;gBACI,WAAW,EAAE,OAAO,CAAC,OAAO;AAC5B,gBAAA,MAAM,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE;AAChC,gBAAA,WAAW,EAAE,0BAA0B;gBACvC,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;AACrD,gBAAA,KAAK,EAAE,iBAAiB;AACxB,gBAAA,aAAa,EAAE,KAAK;AACvB,aAAA;AACJ,SAAA,CAAC,CAAC;KACN;AAED;;AAEG;IACH,WAAW,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC7C,YAAA,QAAQ,EAAE;AACN,gBAAA,GAAG,EAAE,KAAK;AACb,aAAA;AACD,YAAA,IAAI,EAAE;gBACF,cAAc,EAAE,QAAQ,CAAC,aAAa;AACzC,aAAA;YACD,UAAU,EAAE,CAAC,qBAAqB,CAAC;YACnC,aAAa,EAAE,CAAC,qBAAqB,CAAC;AACtC,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,QAAQ;AACjB,SAAA,CAAC,CAAC;KACN;AAED;;AAEG;IACH,YAAY,CAAC,MAAqB,EAAE,IAAK,EAAA;AACrC,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;AACzB,QAAA,IAAI,OAAO,EAAE,IAAI,UAAU,EAAE;AAEzB,YAAA,IAAI;AACA,gBAAA,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;;AAGrB,gBAAA,IAAI,GAAG,YAAY,OAAO,EAAE;;iBAE3B;qBACI;;iBAEJ;aACJ;YACD,OAAO,EAAE,EAAE;AACP,gBAAA,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA,+BAAA,CAAiC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aACxE;SACJ;aACI;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAA+C,6CAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACtF;KACJ;AAOD,IAAA,qBAAqB,CAAC,OAAyC,GAAA,QAAQ,CAAC,IAAI,EAAE,UAA2B,EAAE,EAAA;AACvG,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACxB,OAAO,GAAG,OAAO,CAAC;AAClB,YAAA,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;SAC3B;AAED,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAc,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5D;AAED;;AAEG;AACH,IAAA,qBAAqB,CAAC,OAAuB,GAAA,QAAQ,CAAC,IAAI,EAAE,UAA2B,EAAE,EAAA;AACrF,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;KACxD;AAED;;AAEG;AACH,IAAA,qBAAqB,CAAC,OAAA,GAAuB,QAAQ,CAAC,IAAI,EAAA;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;KACpE;8GArOQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAT,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MC9IY,gBAAgB,CAAA;AACX,IAAP,OAAO,OAAO,CAAa,MAA2B,EAAA;AACzD,QAAA,QAAQ;AACJ,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,QAAQ,EAAE,MAAM;AACnB,iBAAA;gBACD,iBAAiB;AACpB,aAAA;AACJ,SAAA,EAAE;KACN;8GAZQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,OAAA,EAAA,CAHf,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACnB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEpB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;AACX,UAAA,CAAA;IAAS,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;AAWhC,CAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,IAAA,CAAA,CAAA;2FAZQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;AACjC,iBAAA,CAAA;;;MCNqB,OAAO,CAAA;AAE5B,CAAA;MAMY,kBAAkB,CAAA;AAE9B,CAAA;MAEY,kBAAkB,GAAG,IAAI,cAAc,CAAqB,oBAAoB;;ACN7F,SAAS,iBAAiB,GAAA;IACtB,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;AACrD,CAAC;MAGY,mBAAmB,CAAA;AAM5B,IAAA,WAAA,CAAgD,MAA0B,EAAU,GAA6B,EAAU,QAAkB,EAAA;QAA7F,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;QAAU,IAAG,CAAA,GAAA,GAAH,GAAG,CAA0B;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAJrI,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAE9D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;AAG7D,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAI;AACvD,YAAA,IAAI,EAAyB,CAAC;YAC9B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;KACN;IAED,eAAe,CAAC,UAAsB,EAAE,IAAY,EAAA;AAChD,QAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE;YACtB,OAAO;AACH,gBAAA,KAAK,EAAE,MAAK,GAAI;AAChB,gBAAA,OAAO,EAAE,MAAK,GAAI;aACrB,CAAC;SACL;AACD,QAAA,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;QAE1C,MAAM,aAAa,GAA6B,EAAE,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAI;YAC5C,MAAM,QAAQ,GAAI,UAAU,CAAC,aAAyB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAClF,YAAA,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAW,KAAI;AACnD,gBAAA,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEnF,gBAAA,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAEjC,gBAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;AAChC,oBAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC3C,oBAAA,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE;AACpB,wBAAA,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAAU,KAAI;4BACvD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,yBAAC,CAAC,CAAC;qBACN;oBACA,MAAM,CAAC,QAAoB,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;iBACtE;AAED,gBAAA,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAElD,OAAO;AACH,YAAA,KAAK,EAAE,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAChF,OAAO,EAAE,MAAK;AACV,gBAAA,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;aACzC;SACJ,CAAC;KACL;AAtDQ,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,mBAAmB,kBAMR,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAN7B,mBAAmB,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;0BAOM,MAAM;2BAAC,kBAAkB,CAAA;;;MCF7B,oBAAoB,CAAA;IAK7B,WACY,CAAA,QAA6B,EAC7B,UAAsB,EAAA;QADtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAqB;QAC7B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAJ1B,IAAG,CAAA,GAAA,GAAmB,IAAI,CAAC;KAK9B;AAEL,IAAA,WAAW,CAAC,CAAgB,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3E;KACJ;IAED,SAAS,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;SACpB;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SACnB;KACJ;8GA/BQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAM,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,6HAHnB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAGH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8GAEY,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MCTG,oBAAoB,CAAA;IACtB,OAAO,OAAO,CAAC,MAA0B,EAAA;QAC5C,OAAO;AACH,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,SAAS,EAAE;gBACP,mBAAmB;AACnB,gBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE;AACpD,aAAA;SACJ,CAAC;KACL;8GATQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAApB,oBAAoB,EAAA,OAAA,EAAA,CAHnB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACpB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAErB,oBAAoB,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACRD;AACA,qBAAe;IACX,UAAU;IACV,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,aAAa;IACb,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,KAAK;IACL,UAAU;IACV,UAAU;IACV,SAAS;IACT,KAAK;IACL,SAAS;IACT,GAAG;IACH,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,WAAW;IACX,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,WAAW;IACX,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,cAAc;IACd,KAAK;IACL,IAAI;IACJ,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,cAAc;IACd,UAAU;IACV,IAAI;IACJ,KAAK;IACL,GAAG;IACH,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,eAAe;IACf,WAAW;IACX,WAAW;IACX,SAAS;IACT,YAAY;IACZ,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,GAAG;IACH,MAAM;IACN,KAAK;IACL,UAAU;IACV,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,UAAU;IACV,KAAK;IACL,KAAK;IACL,MAAM;IACN,UAAU;IACV,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,aAAa;IACb,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,IAAI;IACJ,QAAQ;IACR,cAAc;IACd,UAAU;IACV,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,GAAG;IACH,KAAK;IACL,KAAK;IACL,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,OAAO;IACP,MAAM;IACN,KAAK;IACL,UAAU;IACV,KAAK;IACL,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,WAAW;IACX,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,SAAS;IACT,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,YAAY;IACZ,OAAO;IACP,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,GAAG;IACH,MAAM;IACN,IAAI;IACJ,MAAM;IACN,cAAc;IACd,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,GAAG;IACH,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,UAAU;IACV,IAAI;IACJ,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,SAAS;IACT,KAAK;IACL,MAAM;IACN,QAAQ;IACR,KAAK;IACL,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,IAAI;IACJ,KAAK;IACL,KAAK;IACL,GAAG;IACH,KAAK;IACL,MAAM;IACN,UAAU;IACV,KAAK;IACL,MAAM;IACN,SAAS;IACT,IAAI;IACJ,YAAY;IACZ,SAAS;IACT,MAAM;IACN,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,GAAG;IACH,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,SAAS;IACT,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;CACV;;ACpSD,eAAe;AACb,IAAA,iBAAiB,EAAE;AACjB,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,UAAU,EAAE,mBAAmB;AAChC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,GAAG,EAAE;AACH,YAAA,UAAU,EAAE,kBAAkB;AAC/B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,GAAG,EAAE;AACH,YAAA,UAAU,EAAE,kBAAkB;AAC/B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,GAAG,EAAE;AACH,YAAA,UAAU,EAAE,kBAAkB;AAC/B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,UAAU,EAAE,mBAAmB;AAChC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,UAAU,EAAE,mBAAmB;AAChC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,GAAG,EAAE;AACH,YAAA,UAAU,EAAE,kBAAkB;AAC/B,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,UAAU,EAAE,mBAAmB;AAChC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,yBAAyB;AACtC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE,oBAAoB;AACjC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,UAAU,EAAE,sBAAsB;AACnC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,UAAU,EAAE,wBAAwB;AACrC,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,qBAAqB;AAClC,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,yBAAyB,EAAE;AACzB,YAAA,UAAU,EAAE,wCAAwC;AACrD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,yBAAyB,EAAE;AACzB,YAAA,UAAU,EAAE,wCAAwC;AACrD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,UAAU,EAAE,0BAA0B;AACvC,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,4BAA4B,EAAE;AAC5B,YAAA,UAAU,EAAE,2CAA2C;AACxD,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,6BAA6B,EAAE;AAC7B,YAAA,UAAU,EAAE,4CAA4C;AACzD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC3C,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,UAAU,EAAE,mCAAmC;AAChD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,wBAAwB,EAAE;AACxB,YAAA,UAAU,EAAE,uCAAuC;AACpD,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,UAAU,EAAE,qCAAqC;AAClD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,2BAA2B;AACxC,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,UAAU,EAAE,gCAAgC;AAC7C,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,UAAU,EAAE,+BAA+B;AAC5C,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,UAAU,EAAE,oCAAoC;AACjD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACD,QAAA,uBAAuB,EAAE;AACvB,YAAA,UAAU,EAAE,sCAAsC;AACnD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,UAAU,EAAE,6BAA6B;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,UAAU,EAAE,kCAAkC;AAC/C,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;AACF,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,aAAa,EAAE,YAAY;AAC3B,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,kBAAkB,EAAE,cAAc;AAClC,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,WAAW,EAAE,YAAY;AACzB,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,aAAa,EAAE,YAAY;AAC3B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,eAAe,EAAE,eAAe;AAChC,QAAA,gBAAgB,EAAE,eAAe;AACjC,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,WAAW,EAAE,eAAe;AAC5B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,sBAAsB,EAAE,aAAa;AACrC,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,iBAAiB,EAAE,gBAAgB;AACnC,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,WAAW,EAAE,YAAY;AACzB,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,aAAa,EAAE,YAAY;AAC3B,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,gBAAgB,EAAE,kBAAkB;AACpC,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,kBAAkB,EAAE,iBAAiB;AACrC,QAAA,mBAAmB,EAAE,iBAAiB;AACtC,QAAA,sBAAsB,EAAE,iBAAiB;AACzC,QAAA,uBAAuB,EAAE,iBAAiB;AAC1C,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,eAAe,EAAE,cAAc;AAC/B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,cAAc,EAAE,iBAAiB;AACjC,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,YAAY,EAAE,aAAa;AAC3B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,mBAAmB,EAAE,aAAa;AAClC,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,eAAe,EAAE,eAAe;AAChC,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,WAAW,EAAE,eAAe;AAC5B,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,UAAU,EAAE,mBAAmB;AAC/B,QAAA,UAAU,EAAE,mBAAmB;AAC/B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,UAAU,EAAE,mBAAmB;AAC/B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,UAAU,EAAE,cAAc;AAC1B,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,eAAe,EAAE,eAAe;AAChC,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,eAAe,EAAE,eAAe;AAChC,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,gBAAgB,EAAE,eAAe;AACjC,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,YAAY,EAAE,aAAa;AAC3B,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,aAAa,EAAE,cAAc;AAC7B,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,kBAAkB,EAAE,wBAAwB;AAC5C,QAAA,qBAAqB,EAAE,wBAAwB;AAC/C,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,kBAAkB,EAAE,iBAAiB;AACrC,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,gBAAgB,EAAE,iBAAiB;AACnC,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,YAAY,EAAE,cAAc;AAC7B,KAAA;AACD,IAAA,qBAAqB,EAAE;AACrB,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,YAAY,EAAE,oBAAoB;AAClC,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,YAAY,EAAE,oBAAoB;AAClC,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,IAAI,EAAE,wBAAwB;AAC9B,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,kBAAkB,EAAE,mBAAmB;AACvC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,eAAe,EAAE,oBAAoB;AACrC,QAAA,gBAAgB,EAAE,oBAAoB;AACtC,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,WAAW,EAAE,oBAAoB;AACjC,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,sBAAsB,EAAE,kBAAkB;AAC1C,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,QAAQ,EAAE,wBAAwB;AAClC,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,WAAW,EAAE,wBAAwB;AACrC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,KAAK,EAAE,sBAAsB;AAC7B,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,QAAQ,EAAE,sBAAsB;AAChC,QAAA,QAAQ,EAAE,sBAAsB;AAChC,QAAA,QAAQ,EAAE,sBAAsB;AAChC,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,WAAW,EAAE,qBAAqB;AAClC,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,WAAW,EAAE,qBAAqB;AAClC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,KAAK,EAAE,sBAAsB;AAC7B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,KAAK,EAAE,wBAAwB;AAC/B,QAAA,MAAM,EAAE,wBAAwB;AAChC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,gBAAgB,EAAE,uBAAuB;AACzC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,aAAa,EAAE,sBAAsB;AACrC,QAAA,aAAa,EAAE,sBAAsB;AACrC,QAAA,KAAK,EAAE,sBAAsB;AAC7B,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,kBAAkB,EAAE,sBAAsB;AAC1C,QAAA,mBAAmB,EAAE,sBAAsB;AAC3C,QAAA,sBAAsB,EAAE,sBAAsB;AAC9C,QAAA,uBAAuB,EAAE,sBAAsB;AAC/C,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,eAAe,EAAE,mBAAmB;AACpC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,IAAI,EAAE,wBAAwB;AAC9B,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,QAAQ,EAAE,wBAAwB;AAClC,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,aAAa,EAAE,uBAAuB;AACtC,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,aAAa,EAAE,uBAAuB;AACtC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,cAAc,EAAE,sBAAsB;AACtC,QAAA,eAAe,EAAE,sBAAsB;AACvC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,mBAAmB,EAAE,kBAAkB;AACvC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,eAAe,EAAE,oBAAoB;AACrC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,WAAW,EAAE,oBAAoB;AACjC,QAAA,YAAY,EAAE,oBAAoB;AAClC,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,UAAU,EAAE,wBAAwB;AACpC,QAAA,UAAU,EAAE,wBAAwB;AACpC,QAAA,WAAW,EAAE,wBAAwB;AACrC,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,UAAU,EAAE,wBAAwB;AACpC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,UAAU,EAAE,mBAAmB;AAC/B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,eAAe,EAAE,oBAAoB;AACrC,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,eAAe,EAAE,oBAAoB;AACrC,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,eAAe,EAAE,uBAAuB;AACxC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,QAAQ,EAAE,sBAAsB;AAChC,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,aAAa,EAAE,sBAAsB;AACrC,QAAA,MAAM,EAAE,yBAAyB;AACjC,QAAA,cAAc,EAAE,yBAAyB;AACzC,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,MAAM,EAAE,yBAAyB;AACjC,QAAA,aAAa,EAAE,yBAAyB;AACxC,QAAA,cAAc,EAAE,yBAAyB;AACzC,QAAA,OAAO,EAAE,yBAAyB;AAClC,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,QAAQ,EAAE,uBAAuB;AACjC,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,aAAa,EAAE,uBAAuB;AACtC,QAAA,cAAc,EAAE,uBAAuB;AACvC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,KAAK,EAAE,uBAAuB;AAC9B,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,KAAK,EAAE,sBAAsB;AAC7B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,gBAAgB,EAAE,oBAAoB;AACtC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,YAAY,EAAE,oBAAoB;AAClC,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,kBAAkB,EAAE,6BAA6B;AACjD,QAAA,qBAAqB,EAAE,6BAA6B;AACpD,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,aAAa,EAAE,wBAAwB;AACvC,QAAA,cAAc,EAAE,wBAAwB;AACxC,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,aAAa,EAAE,uBAAuB;AACtC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,WAAW,EAAE,qBAAqB;AAClC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,kBAAkB,EAAE,sBAAsB;AAC1C,QAAA,eAAe,EAAE,sBAAsB;AACvC,QAAA,gBAAgB,EAAE,sBAAsB;AACxC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,WAAW,EAAE,wBAAwB;AACrC,QAAA,YAAY,EAAE,wBAAwB;AACtC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,YAAY,EAAE,uBAAuB;AACrC,QAAA,KAAK,EAAE,uBAAuB;AAC9B,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,QAAQ,EAAE,uBAAuB;AACjC,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,YAAY,EAAE,mBAAmB;AAClC,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,iBAAiB,EAAE,KAAK;AACxB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,SAAS,EAAE,OAAO;AAClB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,sBAAsB,EAAE,UAAU;AAClC,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,UAAU,EAAE,cAAc;AAC1B,QAAA,kBAAkB,EAAE,cAAc;AAClC,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,iBAAiB,EAAE,cAAc;AACjC,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,IAAI,EAAE,GAAG;AACT,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,GAAG,EAAE,aAAa;AAClB,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,qBAAqB,EAAE,QAAQ;AAC/B,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,KAAK,EAAE,GAAG;AACV,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,GAAG,EAAE,UAAU;AACf,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,WAAW,EAAE,OAAO;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,gBAAgB,EAAE,WAAW;AAC7B,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,UAAU,EAAE,cAAc;AAC1B,QAAA,aAAa,EAAE,cAAc;AAC7B,QAAA,aAAa,EAAE,cAAc;AAC7B,QAAA,qBAAqB,EAAE,iBAAiB;AACxC,QAAA,sBAAsB,EAAE,iBAAiB;AACzC,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,aAAa,EAAE,OAAO;AACtB,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,GAAG,EAAE,WAAW;AAChB,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,SAAS,EAAE,OAAO;AAClB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,gBAAgB,EAAE,WAAW;AAC7B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,SAAS,EAAE,SAAS;AACrB,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,gBAAgB,EAAE,KAAK;AACvB,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,uBAAuB,EAAE,YAAY;AACrC,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,yBAAyB,EAAE,YAAY;AACvC,QAAA,0BAA0B,EAAE,YAAY;AACxC,QAAA,yBAAyB,EAAE,YAAY;AACvC,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,kBAAkB,EAAE,aAAa;AACjC,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,iBAAiB,EAAE,aAAa;AAChC,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,gBAAgB,EAAE,aAAa;AAC/B,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,2BAA2B,EAAE,QAAQ;AACrC,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,YAAY,EAAE,aAAa;AAC3B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,gBAAgB,EAAE,aAAa;AAC/B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,YAAY,EAAE,aAAa;AAC3B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,gBAAgB,EAAE,aAAa;AAC/B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,YAAY,EAAE,aAAa;AAC3B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,uBAAuB,EAAE,QAAQ;AACjC,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,wBAAwB,EAAE,QAAQ;AAClC,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,6BAA6B,EAAE,QAAQ;AACvC,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,+BAA+B,EAAE,QAAQ;AACzC,QAAA,0BAA0B,EAAE,QAAQ;AACpC,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,0BAA0B,EAAE,QAAQ;AACpC,QAAA,4BAA4B,EAAE,QAAQ;AACtC,QAAA,wBAAwB,EAAE,QAAQ;AAClC,QAAA,gCAAgC,EAAE,QAAQ;AAC1C,QAAA,0BAA0B,EAAE,QAAQ;AACpC,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,4BAA4B,EAAE,QAAQ;AACtC,QAAA,uBAAuB,EAAE,QAAQ;AACjC,QAAA,wBAAwB,EAAE,QAAQ;AAClC,QAAA,2BAA2B,EAAE,QAAQ;AACrC,QAAA,qBAAqB,EAAE,QAAQ;AAC/B,QAAA,8BAA8B,EAAE,QAAQ;AACxC,QAAA,0BAA0B,EAAE,QAAQ;AACpC,QAAA,gCAAgC,EAAE,QAAQ;AAC1C,QAAA,2BAA2B,EAAE,QAAQ;AACrC,QAAA,0BAA0B,EAAE,QAAQ;AACpC,QAAA,2BAA2B,EAAE,QAAQ;AACrC,QAAA,6BAA6B,EAAE,QAAQ;AACvC,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,iCAAiC,EAAE,QAAQ;AAC3C,QAAA,2BAA2B,EAAE,QAAQ;AACrC,QAAA,0BAA0B,EAAE,QAAQ;AACpC,QAAA,6BAA6B,EAAE,QAAQ;AACvC,QAAA,wBAAwB,EAAE,QAAQ;AAClC,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,4BAA4B,EAAE,QAAQ;AACtC,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,uBAAuB,EAAE,QAAQ;AACjC,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,sBAAsB,EAAE,QAAQ;AAChC,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,0BAA0B,EAAE,QAAQ;AACpC,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,sBAAsB,EAAE,QAAQ;AAChC,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,qBAAqB,EAAE,QAAQ;AAC/B,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,sBAAsB,EAAE,QAAQ;AAChC,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,wBAAwB,EAAE,QAAQ;AAClC,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,qBAAqB,EAAE,QAAQ;AAC/B,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,qBAAqB,EAAE,QAAQ;AAC/B,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,mBAAmB,EAAE,KAAK;AAC1B,QAAA,mBAAmB,EAAE,KAAK;AAC1B,QAAA,gBAAgB,EAAE,KAAK;AACvB,QAAA,uBAAuB,EAAE,KAAK;AAC9B,QAAA,uBAAuB,EAAE,KAAK;AAC9B,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,mBAAmB,EAAE,KAAK;AAC1B,QAAA,wBAAwB,EAAE,KAAK;AAC/B,QAAA,0BAA0B,EAAE,KAAK;AACjC,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,WAAW,EAAE,GAAG;AAChB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,gBAAgB,EAAE,OAAO;AACzB,QAAA,gBAAgB,EAAE,OAAO;AACzB,QAAA,eAAe,EAAE,YAAY;AAC7B,QAAA,eAAe,EAAE,YAAY;AAC7B,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,gBAAgB,EAAE,UAAU;AAC5B,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,kBAAkB,EAAE,UAAU;AAC9B,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,sBAAsB,EAAE,OAAO;AAC/B,QAAA,qBAAqB,EAAE,OAAO;AAC9B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,mBAAmB,EAAE,WAAW;AAChC,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,gCAAgC,EAAE,SAAS;AAC3C,QAAA,gCAAgC,EAAE,SAAS;AAC3C,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,uBAAuB,EAAE,SAAS;AAClC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,uBAAuB,EAAE,SAAS;AAClC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,6BAA6B,EAAE,SAAS;AACxC,QAAA,6BAA6B,EAAE,SAAS;AACxC,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,uBAAuB,EAAE,SAAS;AAClC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,uBAAuB,EAAE,SAAS;AAClC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,oCAAoC,EAAE,SAAS;AAC/C,QAAA,oCAAoC,EAAE,SAAS;AAC/C,QAAA,8BAA8B,EAAE,SAAS;AACzC,QAAA,+BAA+B,EAAE,SAAS;AAC1C,QAAA,+BAA+B,EAAE,SAAS;AAC1C,QAAA,8BAA8B,EAAE,SAAS;AACzC,QAAA,+BAA+B,EAAE,SAAS;AAC1C,QAAA,+BAA+B,EAAE,SAAS;AAC1C,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,8BAA8B,EAAE,SAAS;AACzC,QAAA,+BAA+B,EAAE,SAAS;AAC1C,QAAA,+BAA+B,EAAE,SAAS;AAC1C,QAAA,8BAA8B,EAAE,SAAS;AACzC,QAAA,+BAA+B,EAAE,SAAS;AAC1C,QAAA,+BAA+B,EAAE,SAAS;AAC1C,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,4BAA4B,EAAE,SAAS;AACvC,QAAA,4BAA4B,EAAE,SAAS;AACvC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,4BAA4B,EAAE,SAAS;AACvC,QAAA,4BAA4B,EAAE,SAAS;AACvC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,8BAA8B,EAAE,SAAS;AACzC,QAAA,8BAA8B,EAAE,SAAS;AACzC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,iCAAiC,EAAE,SAAS;AAC5C,QAAA,iCAAiC,EAAE,SAAS;AAC5C,QAAA,uBAAuB,EAAE,SAAS;AAClC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,2BAA2B,EAAE,SAAS;AACtC,QAAA,qCAAqC,EAAE,SAAS;AAChD,QAAA,sCAAsC,EAAE,SAAS;AACjD,QAAA,sCAAsC,EAAE,SAAS;AACjD,QAAA,qCAAqC,EAAE,SAAS;AAChD,QAAA,sCAAsC,EAAE,SAAS;AACjD,QAAA,sCAAsC,EAAE,SAAS;AACjD,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,mBAAmB,EAAE,OAAO;AAC5B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,mBAAmB,EAAE,MAAM;AAC3B,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,kBAAkB,EAAE,MAAM;AAC1B,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,wBAAwB,EAAE,MAAM;AAChC,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,uBAAuB,EAAE,MAAM;AAC/B,QAAA,oBAAoB,EAAE,MAAM;AAC5B,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,aAAa,EAAE,OAAO;AACtB,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,mBAAmB,EAAE,OAAO;AAC5B,QAAA,oBAAoB,EAAE,OAAO;AAC7B,QAAA,wBAAwB,EAAE,OAAO;AACjC,QAAA,6BAA6B,EAAE,OAAO;AACtC,QAAA,6BAA6B,EAAE,OAAO;AACtC,QAAA,4BAA4B,EAAE,OAAO;AACrC,QAAA,2BAA2B,EAAE,OAAO;AACpC,QAAA,+BAA+B,EAAE,OAAO;AACxC,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,2BAA2B,EAAE,OAAO;AACpC,QAAA,iBAAiB,EAAE,cAAc;AACjC,QAAA,kBAAkB,EAAE,cAAc;AAClC,QAAA,kBAAkB,EAAE,cAAc;AAClC,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,iBAAiB,EAAE,cAAc;AACjC,QAAA,kBAAkB,EAAE,cAAc;AAClC,QAAA,kBAAkB,EAAE,cAAc;AAClC,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,mBAAmB,EAAE,OAAO;AAC5B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,0BAA0B,EAAE,YAAY;AACxC,QAAA,wBAAwB,EAAE,YAAY;AACtC,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,oBAAoB,EAAE,YAAY;AAClC,QAAA,oBAAoB,EAAE,YAAY;AAClC,QAAA,wBAAwB,EAAE,YAAY;AACtC,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,eAAe,EAAE,cAAc;AAC/B,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,kBAAkB,EAAE,MAAM;AAC1B,QAAA,kBAAkB,EAAE,MAAM;AAC1B,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,aAAa,EAAE,OAAO;AACtB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,gBAAgB,EAAE,OAAO;AACzB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,wBAAwB,EAAE,UAAU;AACpC,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,0BAA0B,EAAE,QAAQ;AACpC,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,uBAAuB,EAAE,QAAQ;AACjC,QAAA,wBAAwB,EAAE,QAAQ;AAClC,QAAA,uBAAuB,EAAE,QAAQ;AACjC,QAAA,uBAAuB,EAAE,QAAQ;AACjC,QAAA,wBAAwB,EAAE,QAAQ;AAClC,QAAA,uBAAuB,EAAE,QAAQ;AACjC,QAAA,sBAAsB,EAAE,QAAQ;AAChC,QAAA,uBAAuB,EAAE,QAAQ;AACjC,QAAA,sBAAsB,EAAE,QAAQ;AAChC,QAAA,8BAA8B,EAAE,QAAQ;AACxC,QAAA,+BAA+B,EAAE,QAAQ;AACzC,QAAA,8BAA8B,EAAE,QAAQ;AACxC,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,qBAAqB,EAAE,WAAW;AAClC,QAAA,sBAAsB,EAAE,WAAW;AACnC,QAAA,mBAAmB,EAAE,WAAW;AAChC,QAAA,mBAAmB,EAAE,WAAW;AAChC,QAAA,kBAAkB,EAAE,WAAW;AAC/B,QAAA,iBAAiB,EAAE,WAAW;AAC9B,QAAA,kBAAkB,EAAE,WAAW;AAC/B,QAAA,kBAAkB,EAAE,WAAW;AAC/B,QAAA,iBAAiB,EAAE,WAAW;AAC9B,QAAA,kBAAkB,EAAE,cAAc;AAClC,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,qBAAqB,EAAE,UAAU;AACjC,QAAA,gBAAgB,EAAE,UAAU;AAC5B,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,kBAAkB,EAAE,UAAU;AAC9B,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,kBAAkB,EAAE,UAAU;AAC9B,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,kBAAkB,EAAE,UAAU;AAC9B,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,kBAAkB,EAAE,UAAU;AAC9B,QAAA,sBAAsB,EAAE,UAAU;AAClC,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,gBAAgB,EAAE,UAAU;AAC5B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,iBAAiB,EAAE,aAAa;AAChC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,oBAAoB,EAAE,QAAQ;AAC9B,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,oBAAoB,EAAE,OAAO;AAC7B,QAAA,oBAAoB,EAAE,OAAO;AAC7B,QAAA,wBAAwB,EAAE,OAAO;AACjC,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,kBAAkB,EAAE,MAAM;AAC1B,QAAA,oBAAoB,EAAE,MAAM;AAC5B,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,oBAAoB,EAAE,MAAM;AAC5B,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,sBAAsB,EAAE,MAAM;AAC9B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,oBAAoB,EAAE,MAAM;AAC5B,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,oBAAoB,EAAE,MAAM;AAC5B,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,sBAAsB,EAAE,MAAM;AAC9B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,iCAAiC,EAAE,MAAM;AACzC,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,kBAAkB,EAAE,MAAM;AAC1B,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,iBAAiB,EAAE,kBAAkB;AACrC,QAAA,gBAAgB,EAAE,kBAAkB;AACpC,QAAA,iBAAiB,EAAE,kBAAkB;AACrC,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,mBAAmB,EAAE,kBAAkB;AACvC,QAAA,oBAAoB,EAAE,kBAAkB;AACxC,QAAA,0BAA0B,EAAE,WAAW;AACvC,QAAA,yBAAyB,EAAE,WAAW;AACtC,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,qBAAqB,EAAE,iBAAiB;AACxC,QAAA,sBAAsB,EAAE,iBAAiB;AACzC,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,oBAAoB,EAAE,aAAa;AACnC,QAAA,qBAAqB,EAAE,aAAa;AACpC,QAAA,oBAAoB,EAAE,aAAa;AACnC,QAAA,qBAAqB,EAAE,aAAa;AACpC,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,gBAAgB,EAAE,WAAW;AAC7B,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,kBAAkB,EAAE,MAAM;AAC1B,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,aAAa,EAAE,OAAO;AACtB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,uBAAuB,EAAE,WAAW;AACpC,QAAA,qBAAqB,EAAE,WAAW;AAClC,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,aAAa,EAAE,OAAO;AACtB,QAAA,mBAAmB,EAAE,OAAO;AAC5B,QAAA,eAAe,EAAE,YAAY;AAC7B,QAAA,kBAAkB,EAAE,YAAY;AAChC,QAAA,mBAAmB,EAAE,YAAY;AACjC,QAAA,kBAAkB,EAAE,YAAY;AAChC,QAAA,mBAAmB,EAAE,YAAY;AACjC,QAAA,oBAAoB,EAAE,YAAY;AAClC,QAAA,oBAAoB,EAAE,YAAY;AAClC,QAAA,mBAAmB,EAAE,YAAY;AACjC,QAAA,kBAAkB,EAAE,YAAY;AAChC,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,uBAAuB,EAAE,YAAY;AACrC,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,uBAAuB,EAAE,YAAY;AACrC,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,oBAAoB,EAAE,MAAM;AAC5B,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,SAAS,EAAE,OAAO;AAClB,QAAA,WAAW,EAAE,OAAO;AACpB,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,iBAAiB,EAAE,WAAW;AAC9B,QAAA,mBAAmB,EAAE,WAAW;AAChC,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,gBAAgB,EAAE,WAAW;AAC7B,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,qBAAqB,EAAE,UAAU;AACjC,QAAA,qBAAqB,EAAE,UAAU;AACjC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,qBAAqB,EAAE,UAAU;AACjC,QAAA,qBAAqB,EAAE,UAAU;AACjC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,sBAAsB,EAAE,UAAU;AAClC,QAAA,gBAAgB,EAAE,QAAQ;AAC1B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,gBAAgB,EAAE,YAAY;AAC9B,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,iBAAiB,EAAE,MAAM;AACzB,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,kBAAkB,EAAE,QAAQ;AAC5B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,mBAAmB,EAAE,QAAQ;AAC7B,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,kBAAkB,EAAE,UAAU;AAC9B,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,kBAAkB,EAAE,UAAU;AAC9B,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,WAAW,EAAE,OAAO;AACpB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,uBAAuB,EAAE,SAAS;AAClC,QAAA,sBAAsB,EAAE,SAAS;AACjC,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,aAAa,EAAE,cAAc;AAC7B,QAAA,kBAAkB,EAAE,cAAc;AAClC,QAAA,mBAAmB,EAAE,cAAc;AACnC,QAAA,wBAAwB,EAAE,cAAc;AACxC,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,sBAAsB,EAAE,UAAU;AAClC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,qBAAqB,EAAE,UAAU;AACjC,QAAA,sBAAsB,EAAE,UAAU;AAClC,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,wBAAwB,EAAE,UAAU;AACpC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,yBAAyB,EAAE,UAAU;AACrC,QAAA,sBAAsB,EAAE,UAAU;AAClC,QAAA,sBAAsB,EAAE,UAAU;AAClC,QAAA,sBAAsB,EAAE,UAAU;AAClC,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,mBAAmB,EAAE,UAAU;AAC/B,QAAA,qBAAqB,EAAE,UAAU;AACjC,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,mBAAmB,EAAE,OAAO;AAC5B,QAAA,uBAAuB,EAAE,OAAO;AAChC,QAAA,yBAAyB,EAAE,OAAO;AAClC,QAAA,uBAAuB,EAAE,OAAO;AAChC,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,SAAS,EAAE,OAAO;AAClB,QAAA,gBAAgB,EAAE,YAAY;AAC9B,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,eAAe,EAAE,YAAY;AAC7B,QAAA,eAAe,EAAE,YAAY;AAC7B,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,qBAAqB,EAAE,OAAO;AAC9B,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,kBAAkB,EAAE,YAAY;AAChC,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,oBAAoB,EAAE,YAAY;AAClC,QAAA,mBAAmB,EAAE,YAAY;AACjC,QAAA,mBAAmB,EAAE,YAAY;AACjC,QAAA,kBAAkB,EAAE,YAAY;AAChC,QAAA,oBAAoB,EAAE,YAAY;AAClC,QAAA,mBAAmB,EAAE,YAAY;AACjC,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,aAAa,EAAE,MAAM;AACrB,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,gBAAgB,EAAE,MAAM;AACxB,QAAA,qBAAqB,EAAE,MAAM;AAC7B,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,gBAAgB,EAAE,WAAW;AAC7B,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,iBAAiB,EAAE,WAAW;AAC9B,QAAA,gBAAgB,EAAE,WAAW;AAC7B,QAAA,WAAW,EAAE,OAAO;AACpB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,iBAAiB,EAAE,aAAa;AAChC,QAAA,gBAAgB,EAAE,aAAa;AAC/B,QAAA,kBAAkB,EAAE,aAAa;AACjC,QAAA,iBAAiB,EAAE,aAAa;AAChC,QAAA,kBAAkB,EAAE,aAAa;AACjC,QAAA,iBAAiB,EAAE,aAAa;AAChC,QAAA,mBAAmB,EAAE,aAAa;AAClC,QAAA,kBAAkB,EAAE,aAAa;AACjC,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,aAAa,EAAE,OAAO;AACtB,QAAA,aAAa,EAAE,OAAO;AACtB,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,wBAAwB,EAAE,SAAS;AACnC,QAAA,kBAAkB,EAAE,SAAS;AAC7B,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,mBAAmB,EAAE,SAAS;AAC9B,QAAA,oBAAoB,EAAE,SAAS;AAC/B,QAAA,aAAa,EAAE,aAAa;AAC7B,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,gBAAgB,EAAE,OAAO;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,WAAW,EAAE,YAAY;AACzB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,UAAU,EAAE,cAAc;AAC1B,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,YAAY,EAAE,QAAQ;AACtB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,aAAa,EAAE,SAAS;AACxB,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,eAAe,EAAE,eAAe;AAChC,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,kBAAkB,EAAE,aAAa;AACjC,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,WAAW,EAAE,UAAU;AACvB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,SAAS,EAAE,GAAG;AACd,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,iBAAiB,EAAE,UAAU;AAC7B,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,iBAAiB,EAAE,OAAO;AAC1B,QAAA,kBAAkB,EAAE,OAAO;AAC3B,QAAA,mBAAmB,EAAE,OAAO;AAC5B,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,UAAU;AACvB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,gBAAgB,EAAE;AAChB,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,YAAY,EAAE,aAAa;AAC3B,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,KAAK,EAAE,eAAe;AACtB,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,mBAAmB,EAAE,gBAAgB;AACrC,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,MAAM,EAAE,cAAc;AACvB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,mBAAmB,EAAE,eAAe;AACpC,YAAA,mBAAmB,EAAE,eAAe;AACpC,YAAA,aAAa,EAAE,cAAc;AAC7B,YAAA,eAAe,EAAE,cAAc;AAC/B,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,gBAAgB,EAAE,YAAY;AAC9B,YAAA,iBAAiB,EAAE,YAAY;AAC/B,YAAA,gBAAgB,EAAE,YAAY;AAC9B,YAAA,iBAAiB,EAAE,YAAY;AAC/B,YAAA,iBAAiB,EAAE,aAAa;AAChC,YAAA,iBAAiB,EAAE,aAAa;AAChC,YAAA,YAAY,EAAE,iBAAiB;AAC/B,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,gBAAgB,EAAE,YAAY;AAC9B,YAAA,gBAAgB,EAAE,YAAY;AAC9B,YAAA,kBAAkB,EAAE,YAAY;AAChC,YAAA,kBAAkB,EAAE,YAAY;AAChC,YAAA,iBAAiB,EAAE,YAAY;AAC/B,YAAA,gBAAgB,EAAE,YAAY;AAC9B,YAAA,gBAAgB,EAAE,YAAY;AAC9B,YAAA,cAAc,EAAE,iBAAiB;AACjC,YAAA,qBAAqB,EAAE,iBAAiB;AACxC,YAAA,sBAAsB,EAAE,iBAAiB;AACzC,YAAA,mBAAmB,EAAE,iBAAiB;AACtC,YAAA,mBAAmB,EAAE,iBAAiB;AACtC,YAAA,kBAAkB,EAAE,iBAAiB;AACrC,YAAA,iBAAiB,EAAE,iBAAiB;AACpC,YAAA,kBAAkB,EAAE,iBAAiB;AACrC,YAAA,kBAAkB,EAAE,iBAAiB;AACrC,YAAA,iBAAiB,EAAE,iBAAiB;AACpC,YAAA,kBAAkB,EAAE,oBAAoB;AACxC,YAAA,cAAc,EAAE,mBAAmB;AACnC,YAAA,iBAAiB,EAAE,mBAAmB;AACtC,YAAA,YAAY,EAAE,aAAa;AAC3B,YAAA,mBAAmB,EAAE,gBAAgB;AACrC,YAAA,YAAY,EAAE,gBAAgB;AAC9B,YAAA,YAAY,EAAE,wBAAwB;AACtC,YAAA,iBAAiB,EAAE,wBAAwB;AAC3C,YAAA,gBAAgB,EAAE,wBAAwB;AAC1C,YAAA,iBAAiB,EAAE,wBAAwB;AAC3C,YAAA,eAAe,EAAE,wBAAwB;AACzC,YAAA,mBAAmB,EAAE,wBAAwB;AAC7C,YAAA,oBAAoB,EAAE,wBAAwB;AAC9C,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,aAAa,EAAE,eAAe;AAC9B,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,oBAAoB,EAAE,gBAAgB;AACtC,YAAA,oBAAoB,EAAE,gBAAgB;AACtC,YAAA,oBAAoB,EAAE,gBAAgB;AACtC,YAAA,qBAAqB,EAAE,gBAAgB;AACvC,YAAA,qBAAqB,EAAE,gBAAgB;AACvC,YAAA,oBAAoB,EAAE,gBAAgB;AACtC,YAAA,qBAAqB,EAAE,gBAAgB;AACvC,YAAA,qBAAqB,EAAE,gBAAgB;AACvC,YAAA,oBAAoB,EAAE,gBAAgB;AACtC,YAAA,sBAAsB,EAAE,gBAAgB;AACxC,YAAA,gBAAgB,EAAE,YAAY;AAC9B,YAAA,qBAAqB,EAAE,YAAY;AACnC,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,iBAAiB,EAAE,mBAAmB;AACtC,YAAA,gBAAgB,EAAE,mBAAmB;AACrC,YAAA,kBAAkB,EAAE,mBAAmB;AACvC,YAAA,iBAAiB,EAAE,mBAAmB;AACtC,YAAA,kBAAkB,EAAE,mBAAmB;AACvC,YAAA,iBAAiB,EAAE,mBAAmB;AACtC,YAAA,mBAAmB,EAAE,mBAAmB;AACxC,YAAA,kBAAkB,EAAE,mBAAmB;AACvC,YAAA,eAAe,EAAE,mBAAmB;AACpC,YAAA,WAAW,EAAE,YAAY;AACzB,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,WAAW,EAAE,YAAY;AAC1B,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,OAAO,EAAE,uBAAuB;AACjC,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,QAAQ,EAAE,yBAAyB;AACnC,YAAA,IAAI,EAAE,yBAAyB;AAC/B,YAAA,OAAO,EAAE,4BAA4B;AACtC,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE;AACd,QAAA,gBAAgB,EAAE,EAAE;AACpB,QAAA,WAAW,EAAE,EAAE;AAChB,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,cAAc,EAAE,EAAE;AACnB,SAAA;AACD,QAAA,gBAAgB,EAAE,SAAS;AAC3B,QAAA,qBAAqB,EAAE,KAAK;AAC5B,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,YAAY,EAAE,CAAC;AACf,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,cAAc,EAAE,EAAE;AACnB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,cAAc,EAAE,EAAE;AACnB,SAAA;AACF,KAAA;AACD,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,qBAAqB,EAAE,KAAK;AAC5B,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,gBAAgB,EAAE,aAAa;AAC/B,IAAA,YAAY,EAAE,aAAa;AAC3B,IAAA,oBAAoB,EAAE,kBAAkB;CACzC;;ACnkLD;AACA;AACA;AAEA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE/B,MAAM,WAAW,GAAGC,QAAc,CAAC,WAAW,CAAC;AAC/C,MAAM,SAAS,GAAGA,QAAc,CAAC,SAAS,CAAC;AAC3C,MAAM,cAAc,GAAGA,QAAc,CAAC,cAAc,CAAC;AAErD,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,IAAI,qBAAqB,GAAG,EAAE,CAAC;AAE/B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAI;IAC/C,gBAAgB,CAAC,IAAI,CAAC;AAClB,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA,CAAC,CAAC;AACP,CAAC,CAAC,CAAA;AACF,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAI;IACpD,qBAAqB,CAAC,IAAI,CAAC;AACvB,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA,CAAC,CAAC;AACP,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAI;IACjD,kBAAkB,CAAC,IAAI,CAAC;AACpB,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA,CAAC,CAAC;AACP,CAAC,CAAC,CAAA;AAEF;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MAEa,YAAY,CAAA;IAGrB,WAAY,CAAA,SAAS,GAAG,UAAU,EAAA;AAC9B,QAAA,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;;QAG5B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;;AAGvC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAClB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;;AAGpC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACrB,YAAA,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;AAEtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;AAEO,IAAA,MAAM,CAAC,IAAY,EAAA;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAClC,QAAA,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACvC;IAEO,YAAY,CAAC,IAA0C,EAAE,QAAQ,EAAA;AACrE,QAAA,OAAO,IAAI;AACN,aAAA,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/C,SAAA,CAAC,CAAC,EAAE,QAAQ,CAAC;KACjB;AAEO,IAAA,cAAc,CAAE,IAAkB,EAAA;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAG;YAC3B,OAAO;AACH,gBAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAsB,oBAAA,CAAA;AACxC,gBAAA,aAAa,EAAE,KAAK;aACvB,CAAA;SACJ;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;;;QAIzG,OAAO;AACH,YAAA,IAAI,EAAE,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,aAAa,YAAY,CAAA,IAAA,CAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAsB,oBAAA,CAAA;AACrG,YAAA,aAAa,EAAE,KAAK;SACvB,CAAC;KACL;AAEO,IAAA,eAAe,CAAE,IAAkB,EAAA;;;;;;;;;;;;;;;;;;;QAuBvC,MAAM,QAAQ,GAAG,gBAAgB;aAC5B,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;aACnF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAC3C,CAAC,CAAC,EAAE,QAAQ,CAAC;QAElB,IAAI,QAAQ,EAAE;YACV,OAAO;AACH,gBAAA,IAAI,EAAE,CAAG,EAAA,IAAI,CAAC,IAAI,CAAA,UAAA,EAAa,QAAQ,CAAM,IAAA,CAAA;AAC7C,gBAAA,aAAa,EAAE,IAAI;aACtB,CAAC;SACL;;AAGD,QAAA,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC9B,OAAO;AACH,gBAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAmB,iBAAA,CAAA;AACrC,gBAAA,aAAa,EAAE,IAAI;aACtB,CAAC;SACL;;QAGD,MAAM,OAAO,GAAG,qBAAqB;AAChC,aAAA,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;aAChG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAC3C,CAAC,CAAC,EAAE,QAAQ,CAAC;AAElB,QAAA,IAAI,OAAO;YAAE,OAAO;AAChB,gBAAA,IAAI,EAAE,CAAG,EAAA,IAAI,CAAC,IAAI,CAAA,UAAA,EAAa,OAAO,CAAM,IAAA,CAAA;AAC5C,gBAAA,aAAa,EAAE,IAAI;aACtB,CAAC;;QAGF,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAG7C,OAAO;AACH,YAAA,IAAI,EAAE,YAAY,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA,sBAAA,CAAwB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAwB,sBAAA,CAAA;;AAEhG,YAAA,aAAa,EAAE,KAAK;SACvB,CAAC;KACL;;AAGD,IAAA,WAAW,CAAC,IAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AAExC,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,EAAE;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SACpD;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACrD;;AACJ;;MCxKY,kBAAkB,CAAA;IAI3B,IAAa,UAAU,CAAC,IAAc,EAAA;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;;QAGxB,IAAI,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE;YAChC,CAAC,YAAW;AACR,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;AAC7E,gBAAA,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC;AACvC,gBAAA,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC;gBAEzC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAE/B,gBAAA,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,GAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClF,UAAU,CAAC,MAAK;;AAEZ,oBAAA,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AACpF,iBAAC,CAAC,CAAA;aACL,GAAG,CAAA;SACP;aACI;YACD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACxC;KACJ;;IACD,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,WAAW,CAAA,EAAE;;IAG5C,IAAa,OAAO,CAAC,IAAwB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACxC;;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAA,EAAE;AAetC,IAAA,WAAA,GAAA;QA9CQ,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QA0BjB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QASb,IAAO,CAAA,OAAA,GAAY,EAAE,CAAC;AAIrB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAElC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAqB,CAAC;AACjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAqB,CAAC;AACnD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAqB,CAAC;KAE7C;IAEjB,eAAe,GAAA;AAEX,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAIC,aAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YAClE,KAAK,EAAE,IAAI,CAAC,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,WAAW;;YAEtB,OAAO,EAAE,IAAI,CAAC,QAAQ;AACtB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,MAAM,CAAC,WAAW;YAC7B,GAAG,IAAI,CAAC,OAAO;AAClB,SAAA,CAAC,CAAC;AAEH,QAAA,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7F,QAAA,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACjG,QAAA,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnG,QAAA,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAK;YACxB,KAAK,CAAC,MAAM,EAAE,CAAA;AAClB,SAAC,CAAC,CAAA;KACL;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;KAEjC;8GA3EQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,0aCpB/B,sBACA,EAAA,MAAA,EAAA,CAAA,u7yBAAA,EAAA,o8DAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDmBa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,iBAMV,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,EAAE,cACC,IAAI,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,u7yBAAA,EAAA,o8DAAA,CAAA,EAAA,CAAA;wDAGI,QAAQ,EAAA,CAAA;sBAA3B,SAAS;uBAAC,OAAO,CAAA;gBAGL,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBA0BO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAMG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAII,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAEG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;AEhEJ,MAAM,UAAU,GAAG,CAClB,KAAY,EACZ,MAAmC,EACnC,gBAAwB,EACxB,UAAmB,EACnB,WAAA,GAAuC,EAAE,KACxC,IAAI,OAAO,CAAC,CAAC,IAAG;IAErB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC7C,IAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClC,IAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;AAEb,IAAA,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAE9B,IAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;AACjC,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;YAChC,MAAM,IAAI,GAMN,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAElB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;AACnC,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,GAAG,WAAW;AACjB,SAAA,CAAC,CAAC,CAAC;AAEJ,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,sBAAsB;cAC/C,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,UAAU,IAAI,gBAAgB,CAAC;AAC3E,cAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;AAExC,QAAA,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAG;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,YAAA,OAAO,GAAG,CAAC;SACd,CAAC,CAAC,CAAC;AACR,KAAC,CAAC,CAAC;AACP,CAAC,CAAC;;ACzBF,MAAM,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;MAuBf,iBAAiB,CAAA;IAQ1B,IAAa,IAAI,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE;AACrD,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;AACtB,gBAAA,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACnC,OAAO;SACd;AAED,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAEtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnB,QAAA,IAAI,IAAI,IAAI,KAAK,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW;gBACvB,IAAI,CAAC,UAAU,EAAE,CAAA;SACxB;KACJ;IACD,IAAI,IAAI,KAAI,OAAO,IAAI,CAAC,KAAK,CAAA,EAAC;IAqH9B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAA;;;;;;;;KAQ3B;IAID,IAAI,SAAS,GAAK,EAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAA,EAAE;AACrD,IAAA,WAAA,CACqB,KAAY,EACZ,QAAyB,EACzB,MAAqB,EACrB,SAAoB,EACpB,WAAiC,EACjC,cAAiC,EACjC,SAAuB,EAAA;QANvB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QACZ,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;QACjC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;AAxIlC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU,CAAC;QAEzC,IAAM,CAAA,MAAA,GAAgC,EAAE,CAAC;QACzC,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAoB,MAAM,CAAC;QACnC,IAAQ,CAAA,QAAA,GAAiC,QAAQ,CAAC;AAGjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAkB,CAAC;AAChD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAuB,CAAC;AACvD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAuB,CAAC;AACzD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAqB,CAAC;AAC/C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAkB,CAAC;QAEzD,IAAiB,CAAA,iBAAA,GAAmB,EAAE,CAAC;QAC9B,IAAS,CAAA,SAAA,GAAmB,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAkB,CAAC;QAEtD,IAAK,CAAA,KAAA,GAAmB,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;QAI3D,IAAa,CAAA,aAAA,GAAY,EAAE,CAAC;AAEX,QAAA,IAAA,CAAA,OAAO,GAAG;YACvB,KAAK,EAAE,CAAC,CAAiB,EAAE,CAAiB,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACzE,KAAK,EAAE,CAAC,CAAiB,EAAE,CAAiB,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AACzE,YAAA,SAAS,EAAE,CAAC,CAAiB,EAAE,CAAiB,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO;AACtF,YAAA,UAAU,EAAE,CAAC,CAAiB,EAAE,CAAiB,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO;AACvF,YAAA,MAAM,EAAE,CAAC,CAAiB,EAAE,CAAiB,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI;YAC7E,MAAM,EAAE,CAAC,CAAiB,EAAE,CAAiB,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACrI,CAAC;QACO,IAAS,CAAA,SAAA,GAAgB,KAAK,CAAC;QAExC,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;;QAGhB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QAEjB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAGV,QAAA,IAAA,CAAA,OAAO,GAAG;AACf,YAAA,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AAC7B,YAAA,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC;AAC5B,YAAA,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC;AAC5B,YAAA,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC;AAC9B,YAAA,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC;AAC9B,YAAA,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAC;AAC1C,YAAA,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAC;AACpC,YAAA,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAC;AACpC,YAAA,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAC;AACjD,YAAA,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAC;AACpC,YAAA,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAC;AAClC,YAAA,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAC;AAClC,YAAA,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC;AAC5B,YAAA,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAC;SACjD,CAAC;AAEF,QAAA,IAAA,CAAA,IAAI,GAAG;AACH,YAAA,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AAC7B,YAAA,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AAC7B,YAAA,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACrC,YAAA,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SAChC,CAAC;AAEF,QAAA,IAAA,CAAA,iBAAiB,GAA6B;AAC1C,YAAA;AACI,gBAAA,KAAK,EAAE,YAAY;;AAEnB,gBAAA,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC9C,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,aAAa;;AAEpB,gBAAA,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAC1C,aAAA;YACD,WAAW;;;;;;;;AAQX,YAAA;AACI,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,MAAM,EAAE,CAAC,GAAG,KAAI;AACZ,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACpC,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC7C;AACJ,aAAA;;;;;;;;SASJ,CAAC;QAEF,IAAe,CAAA,eAAA,GAA6B,EAAE,CAAC;QAse/C,IAAiB,CAAA,iBAAA,GAAG,CAAC,CAAC,IAAmB,EAAE,eAAmB,EAAE,UAAyB,KAAI;;AAEzF,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAkB,CAAC;YAC5C,OAAO,CAAA;;AAEqD,kEAAA,EAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;AAC/C,qCAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;;SAE5G,CAAC;AACN,SAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AArdT,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;QAG/D,QAAQ,CAAC,YAAY,CAAC;AAClB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACf,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;;QAGH,QAAQ,CAAC,YAAY,CAAC;AAClB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AAEnB,SAAC,CAAC,CAAC;;QAGH,QAAQ,CAAC,YAAY,CAAC;AAClB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,SAAS,EAAE,IAAI;AAClB,SAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACf,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;AACjD,SAAC,CAAC,CAAC;;QAGH,QAAQ,CAAC,YAAY,CAAC;AAClB,YAAA,GAAG,EAAE,IAAI;AACZ,SAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;;AAEnB,SAAC,CAAC,CAAC;;QAGH,QAAQ,CAAC,YAAY,CAAC;AAClB,YAAA,GAAG,EAAE,OAAO;AACf,SAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACf,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;;AAEnG,SAAC,CAAC,CAAC;;QAGH,QAAQ,CAAC,YAAY,CAAC;AAClB,YAAA,GAAG,EAAE,QAAQ;AAChB,SAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;AACf,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACnG,SAAC,CAAC,CAAC;KACN;AAED,IAAA,MAAM,QAAQ,GAAA;;KAEb;IAED,eAAe,GAAA;QACX,IAAI,CAAC,eAAe,GAAG;AACnB,YAAA;AACI,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,MAAM,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;AACxD,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,iBAAiB;AACxB,gBAAA,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,WAAW;AAC7C,gBAAA,MAAM,EAAE,CAAC,IAAI,KAAI;AACb,oBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnD;AACJ,aAAA;;;;;;;;YASD,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BX,YAAA;AACI,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,IAAI,EAAE,QAAQ;;AAEd,gBAAA,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5C,gBAAA,MAAM,EAAE,CAAC,GAAG,KAAI;oBACZ,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;oBAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB;0BACpD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC;0BACpD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;AAE7C,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;yBAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;iBACrC;AACJ,aAAA;;;;;;;;;;AAUD,YAAA;AACI,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,IAAI,EAAE,2BAA2B;AACjC,gBAAA,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAE5C,gBAAA,MAAM,EAAE,CAAC,IAAI,KAAI;oBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,+BAA+B,EAAE;wBAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACzF,qBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;iBAClC;AACJ,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BD,YAAA;AACI,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,MAAM;AACzC,gBAAA,QAAQ,EAAE;AACN,oBAAA;AACI,wBAAA,KAAK,EAAE,KAAK;AACZ,wBAAA,MAAM,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AACpE,qBAAA;AACD,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,MAAM,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACrE,qBAAA;AACD,oBAAA;AACI,wBAAA,KAAK,EAAE,QAAQ;AACf,wBAAA,MAAM,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;AACvE,qBAAA;AACD,oBAAA;AACI,wBAAA,KAAK,EAAE,QAAQ;AACf,wBAAA,MAAM,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;AACvE,qBAAA;AACJ,iBAAA;AACD,gBAAA,SAAS,EAAE,CAAC,IAAI,KAAI;AAChB,oBAAA,OAAO,KAAK,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;iBACjD;AACJ,aAAA;;;;;;;;;;;;;;;SAiBJ,CAAC;KACL;AAED,IAAA,MAAM,UAAU,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB;AACtD,cAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;cACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAA;QAE5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;AAChF,aAAA,IAAI,CAAC,CAAC,IAAS,KAAI;AAChB,YAAA,MAAM,KAAK,GAAqB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;AAClD,YAAA,MAAM,IAAI,GAA0B,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAW,CAAmB,CAAC;AAEhE,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAG;AACpB,gBAAA,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE;AAClB,oBAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;AAC3D,oBAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;AAC3D,oBAAA,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBAClD;AACL,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;YAErC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAEjC,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEpB,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YACtC,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YACtC,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1C,SAAC,CAAC;aACD,KAAK,CAAC,CAAC,IAAG;AACP,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,SAAC,CAAC;aACD,OAAO,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAC3B,EAAE,GAAG,CAAC,CAAC;AACZ,SAAC,CAAC,CAAA;KACT;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAElC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtC,QAAA,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACxB,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAEjC,YAAA,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/F,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aAC7C;SACJ;KACJ;IAED,QAAQ,CAAC,IAAkB,EAAE,GAAG,EAAA;QAC5B,GAAG,CAAC,eAAe,EAAE,CAAC;AAEtB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjG,IAAI,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,KAAK,IAAI,CAAC,CAAC;gBACX,KAAK,GAAG,GAAG,CAAC;AAEhB,YAAA,IAAI,KAAK,GAAG,KAAK,GAAG,GAAG;AACnB,kBAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAC9C,kBAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAEnD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;AACI,aAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9B,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE1B,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9D;;AAEG,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW;AACrC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE1C,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAChD;AAED,IAAA,WAAW,CAAC,IAAkB,EAAA;AAC1B,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,EAAE;AAC1B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACrC;;;;;aAKI;AACD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B;KACJ;IAED,QAAQ,CAAC,IAAI,EAAE,KAAwB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;;AAG/B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACnB;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;aACI;AACD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;AAED,IAAA,MAAM,cAAc,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;KAC9F;IAEO,WAAW,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC;AACrF,aAAA,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;aACxD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAClB,CAAC;KAC7B;IAEO,gBAAgB,GAAA;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,MAAM,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC;AAEtE,QAAA,IAAI,QAAQ,GAAG,SAAS,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;AAEzC,QAAA,MAAM,SAAS,GACX,IAAI,CAAC,iBAAiB;aACjB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;aAC7B,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,aAAA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9D,QAAA,IAAI,QAAQ,GAAG,SAAS,IAAI,CAAC;AACzB,YAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,YAAA,EAAe,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;AAErF,QAAA,IAAI,QAAQ,GAAG,CAAC,IAAI,SAAS,IAAI,CAAC;YAC9B,OAAO,CAAA,CAAA,EAAI,QAAQ,CAAA,kBAAA,CAAoB,CAAC;AAC5C,QAAA,IAAI,SAAS,GAAG,CAAC,IAAI,QAAQ,IAAI,CAAC;YAC9B,OAAO,CAAA,EAAG,SAAS,CAAA,iBAAA,EAAoB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA,CAAA,CAAG,CAAC;AAE5E,QAAA,OAAO,GAAG,QAAQ,CAAA,OAAA,EAAU,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAA,WAAA,EAAc,SAAS,CAAc,WAAA,EAAA,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAc,WAAA,EAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;KACpK;AAED,IAAA,aAAa,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC,EAAA;QACrC,IAAI,CAAC,CAAC,KAAK;AAAE,YAAA,OAAO,SAAS,CAAC;QAE9B,MAAM,CAAC,GAAG,IAAI,CAAC;AACf,QAAA,MAAM,EAAE,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACvC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAExE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,OAAO,CAAA,EAAG,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAI,CAAA,EAAA,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;KAC5E;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO;SACV;QAAA,CAAC;QAEF,MAAM,MAAM,GAAI,IAAI,CAAC,QAAQ,CAAC,aAA6B,CAAC,qBAAqB,EAAE,CAAC;AAEpF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;AACzD,QAAA,IAAI,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;AACjC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;AACxD,YAAA,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG;AACtB,gBAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YAEzB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACvB;IAED,WAAW,CAAC,GAAc,EAAE,IAAkB,EAAA;AAC1C,QAAA,MAAM,MAAM,GAAG,CAAG,EAAA,MAAM,CAAC,MAAM,CAAA,6BAAA,EAAgC,IAAI,CAAC,IAAI,CAAS,MAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAC;AAE7F,QAAA,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;;;QAG7B,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KACrD;AAED,IAAA,MAAM,CAAC,EAAE,EAAA;QACL,EAAE,CAAC,cAAc,EAAE,CAAC;AAEpB,QAAA,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE;;AAEvB,YAAA,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;;AAE/C,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACtB,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,CAAU,OAAA,EAAA,CAAC,CAAY,SAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;iBACnD;AACD,aAAC,CAAC,CAAC;SACN;aAAM;;AAEH,YAAA,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;gBAC/C,OAAO,CAAC,GAAG,CAAC,CAAU,OAAA,EAAA,CAAC,CAAY,SAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;AAChD,aAAC,CAAC,CAAC;SACN;KACJ;AAaD,IAAA,QAAQ,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,EAAA;AACjB,QAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;KACxE;AAED,IAAA,UAAU,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAC,EAAA;;;AAIzB,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACnB;QAED,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;aACI;AACD,YAAA,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,IAAI,GAAA;QACA,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;AAED,IAAA,YAAY,CAAC,GAAkB,EAAA;AAC3B,QAAA,UAAU,CACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,KAAK,EACV,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,EAClC,IAAI,CAAC,WAAW,CAAC,WAAW,CAC/B;aACA,IAAI,CAAC,GAAG,IAAG;;YAER,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,SAAC,CAAC,CAAA;KACL;AAED,IAAA,cAAc,CAAC,IAAmB,EAAA;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,+BAA+B,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACzF,SAAA,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;KAClC;8GAprBQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,KAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAhB,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAiB,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAhB,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEf,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEQ,WAAW,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/CpD,svPAmKA,EDrIQ,MAAA,EAAA,CAAA,snFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,EACjB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,8BACd,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,aAAa,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIV,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBArB7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAGhB,OAAA,EAAA;wBACL,IAAI;wBACJ,OAAO;wBACP,QAAQ;wBACR,aAAa;wBACb,iBAAiB;wBACjB,cAAc;wBACd,iBAAiB;wBACjB,oBAAoB;wBACpB,aAAa;wBACb,eAAe;wBACf,kBAAkB;wBAClB,aAAa;wBACb,eAAe;AAClB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,svPAAA,EAAA,MAAA,EAAA,CAAA,snFAAA,CAAA,EAAA,CAAA;gPAGW,QAAQ,EAAA,CAAA;sBAAlC,SAAS;uBAAC,cAAc,CAAA;gBACM,SAAS,EAAA,CAAA;sBAAvC,SAAS;uBAAC,kBAAkB,CAAA;gBAEuB,cAAc,EAAA,CAAA;sBAAjE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAIrC,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAqBI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEE,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAGE,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAEE,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAcE,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;ME3FG,sBAAsB,CAAA;AAVnC,IAAA,WAAA,GAAA;AAcc,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAE5B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAE1B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAMtB,KAAA;IAJG,OAAO,GAAA;AAEH,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACrB;8GAbQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECfnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kHAGA,EDOQ,MAAA,EAAA,CAAA,0XAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,qLACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArB,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIV,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGlB,OAAA,EAAA;wBACL,aAAa;wBACb,eAAe;AAClB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,kHAAA,EAAA,MAAA,EAAA,CAAA,0XAAA,CAAA,EAAA,CAAA;8BAIP,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAEE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEPG,sBAAsB,CAAA;AAQ/B,IAAA,WAAA,GAAA;AAJU,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAc,CAAC;KAIrC;IAEjB,QAAQ,GAAA;KACP;8GAXQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,iKCdnC,kTASA,EAAA,MAAA,EAAA,CAAA,izBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDKa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cAGd,IAAI,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,izBAAA,CAAA,EAAA,CAAA;wDAKP,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEE,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEIG,gBAAgB,CAAA;AAmBzB,IAAA,WAAA,CACW,WAAiC,EAChC,MAAqB,EACrB,KAAY,EAAA;QAFb,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;QAChC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAfd,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;QAExC,IAAU,CAAA,UAAA,GAAgB,EAAS,CAAC;AAGnC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAW,CAAC;AAEpD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW,CAAC;QAEjD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAUjC,QAAA,IAAA,CAAA,WAAW,GAA6B;AACpC,YAAA;AACI,gBAAA,KAAK,EAAE,YAAY;AACnB,gBAAA,MAAM,EAAE,CAAC,MAAM,KAAI;AACf,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,+BAA+B,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;iBAChJ;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,MAAM,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,IAAG;;AAElI,oBAAA,MAAM,GAAG,GAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;oBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtE,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,iBAAC,CAAC;AACL,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2BJ,CAAA;AAED,QAAA,IAAA,CAAA,WAAW,GAA6B;AACpC,YAAA;AACI,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,SAAS,EAAE,IAAI;AAClB,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACtC,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACtC,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAC1C,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAC3C,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACvC,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACvC,aAAA;YACD,WAAW;AACX,YAAA;AACI,gBAAA,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE;AAC9D,aAAA;SACJ,CAAC;KAjFD;AAmFD,IAAA,WAAW,CAAC,GAAgB,EAAA;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAC9B,GAAG,CAAC,YAAY,EAAE,CAAC;AACnB,QAAA,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;KAChD;AAED,IAAA,cAAc,CAAC,GAAgB,EAAA;AAC3B,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAC9B,GAAG,CAAC,YAAY,EAAE,CAAC;AACnB,QAAA,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;KAChD;IAED,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC/C,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;;AAEhC,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACtC;AAED,IAAA,SAAS,CAAC,IAAiB,EAAA;QACvB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;AAC7C,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;KACrC;IAED,SAAS,GAAA;;AAEL,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;KAC3D;8GAvIQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAsB,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxB7B,6zDAwEA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxDQ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,aAAa,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIR,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAb5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGd,OAAA,EAAA;wBACL,aAAa;wBACb,eAAe;wBACf,sBAAsB;wBACtB,sBAAsB;wBACtB,aAAa;AAChB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,6zDAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA;gIAGW,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;gBACI,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAElB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAGI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAEE,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAEE,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;MEvBG,iBAAiB,CAAA;IAU1B,IAAI,SAAS,GAAK,EAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AAEtD,IAAA,WAAA,CACqB,WAAiC,EAAA;QAAjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;AAP5C,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAQxC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAClE;IAED,eAAe,CAAC,IAAI,EAAE,KAAwB,EAAA;AAC1C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,IAAI;AACJ,YAAA,EAAE,EAAE,CAAC,QAAQ,KAAI;AACb,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;AAC7B,gBAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;oBACpB,KAAK,CAAC,KAAK,EAAE,CAAC;aACrB;AACJ,SAAA,CAAC,CAAA;KACL;8GA3BQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqB,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACW,WAAW,ECnBpD,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ilDAyCA,ijCDvBa,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EALtB,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtB,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAGhB,OAAA,EAAA;wBACL,gBAAgB;wBAChB,kBAAkB;wBAClB,oBAAoB;AACvB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,ilDAAA,EAAA,MAAA,EAAA,CAAA,y/BAAA,CAAA,EAAA,CAAA;sFAGoC,WAAW,EAAA,CAAA;sBAA9D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAC5B,aAAa,EAAA,CAAA;sBAAlC,KAAK;uBAAC,aAAa,CAAA;gBAEX,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEI,KAAK,EAAA,CAAA;sBAAd,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEvBE,yBAAyB,GAAG,IAAI,cAAc,CAAyB,sBAAsB;;MCsK7F,oBAAoB,CAAA;AAoE7B,IAAA,IAAI,eAAe,GAAA,EAAK,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,EAAE;AAMlE,IAAA,WAAA,CAC4D,YAAoC,EAAE,EAC7E,UAA6B,EACtC,aAA+B,EAC/B,KAAY,EAAA;QAHoC,IAAS,CAAA,SAAA,GAAT,SAAS,CAA6B;QAC7E,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;QACtC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAvEf,QAAA,IAAA,CAAA,MAAM,GAAgC;AAC3C,YAAA,WAAW,EAAE;AACT,gBAAA,cAAc,EAAE,CAAkB,gBAAA,CAAA;AAClC,gBAAA,cAAc,EAAE,CAAkB,gBAAA,CAAA;AAClC,gBAAA,gBAAgB,EAAE,CAAkB,gBAAA,CAAA;AACpC,gBAAA,cAAc,EAAE,CAAkB,gBAAA,CAAA;AAClC,gBAAA,kBAAkB,EAAE,CAAwB,sBAAA,CAAA;AAC5C,gBAAA,cAAc,EAAE,CAAwB,sBAAA,CAAA;AAC3C,aAAA;SACJ,CAAC;QAEO,IAAQ,CAAA,QAAA,GAAiC,QAAQ,CAAC;QAKlD,IAAK,CAAA,KAAA,GAAmB,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;QAE3D,IAAU,CAAA,UAAA,GAAqB,EAAE,CAAC;AAElC;;;AAGG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AAClD;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1C;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAE/B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAkB,CAAC;AAChD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAuB,CAAC;AACvD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAuB,CAAC;AAEnE;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;AAC3D;;AAEG;;QAGH,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QAEV,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAEvB,IAAU,CAAA,UAAA,GAAgB,EAAS,CAAC;QAEpC,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAI,CAAA,IAAA,GAAkB,EAAE,CAAC;QAUrB,UAAU,CAAC,iBAAiB,CAAC;AACzB,YAAA,EAAE,EAAE,eAAe;AACnB,YAAA,KAAK,EAAE,+BAA+B;AACtC,YAAA,IAAI,EAAE,MAAM,OAAO,6DAAyC,CAAC;AAChE,SAAA,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAC7D;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAClC;IAED,eAAe,GAAA;QACX,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,UAAU,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;KAC1C;AAED,IAAA,sBAAsB,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,EAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB;AAChD,cAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;cACrE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAA;QAElD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAClF,aAAA,IAAI,CAAC,CAAC,IAAS,KAAI;AAChB,YAAA,MAAM,IAAI,GAA0B,IAAI,CAAC,IAAI,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,CAAC;AACb,SAAC,CAAC,CAAA;KACT;AAED,IAAA,OAAO,CAAC,IAAY,EAAA;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG;YAC7B,EAAE,EAAE,IAAI,EAAE;AACV,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC7B,YAAA,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACrC,IAAI;AACJ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM;AAC7B,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,SAAS,EAAE,KAAK;AACnB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;KACpC;AAED,IAAA,QAAQ,CAAC,GAAgB,EAAA;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,cAAc,CAAC,IAAY,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;QAEvB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;;;AAI/B,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE9B,YAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACtB,gBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE7C,OAAO;oBACH,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;oBACjE,KAAK,EAAE,CAAC,IAAI,EAAE;iBACjB,CAAC;AACN,aAAC,CAAC,CAAC;SACN;aACI;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACtB,gBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE7C,OAAO;oBACH,EAAE,EAAE,IAAI,IAAI,GAAG;oBACf,KAAK,EAAE,CAAC,IAAI,EAAE;iBACjB,CAAC;AACN,aAAC,CAAC,CAAC;SACN;KACJ;AAED,IAAA,iBAAiB,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC9D;KACJ;AAED,IAAA,eAAe,CAAC,GAAgB,EAAA;QAC5B,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE/C,GAAG,CAAC,YAAY,EAAE,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;KAC3G;AAED,IAAA,gBAAgB,CAAC,IAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KAChD;IAED,cAAc,CAAC,GAAgB,EAAE,KAAqB,EAAA;QAClD,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;AAC9B,YAAA,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;YAC5D,OAAO;SACV;AAED,QAAA,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;AACtC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;QAE1D,SAAS,OAAO,CAAC,KAAK,EAAA;AAClB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACxD;AACD,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAErC,QAAA,IAAI,MAAM;AACN,YAAA,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;AAEnC,QAAA,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;KACnC;IAED,iBAAiB,GAAA;QACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACpC;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;AACpB,QAAA,OAAO,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAChD;AAED,IAAA,MAAM,QAAQ,GAAA;;AAEV,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAExC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAA4B,CAAC;AACnE,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;;QAG1B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QACzC,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACrE,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACvB;KACJ;AAED,IAAA,MAAM,WAAW,GAAA;QACb,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,UAAU,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;KAC1C;IAED,YAAY,GAAA;QACR,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,MAAM,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAA;SACnC;aACI;YACD,OAAO,IAAI,CAAC,KAAK,CAAC;SACrB;KACJ;IAED,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;KACnD;;IAGD,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACzC;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;KAC/C;AAED,IAAA,WAAW,CAAC,IAAoB,EAAA;QAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB;AACpD,cAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;cACrE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;QAE7C,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AAE7E,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,YAAY,CAAC,IAAkB,EAAA;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC/C,IAAI,IAAI,GAAG,CAAC;QAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,wBAAwB;cACtD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC;cACtD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;;QAG/C,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;AA7RQ,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,kBA2EL,yBAAyB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGA3ExC,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGlB,iBAAiB,EACjB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gBAAgB,yEAChB,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAHf,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1KnC,w5IA6FA,EAAA,MAAA,EAAA,CAAA,y9CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDiEQ,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,KAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,qLACb,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGlB,OAAA,EAAA;wBACL,kBAAkB;wBAClB,iBAAiB;wBACjB,aAAa;wBACb,aAAa;wBACb,gBAAgB;wBAChB,gBAAgB;wBAChB,iBAAiB;AACpB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,w5IAAA,EAAA,MAAA,EAAA,CAAA,y9CAAA,CAAA,EAAA,CAAA;;0BA6EX,QAAQ;;0BAAI,MAAM;2BAAC,yBAAyB,CAAA;sHA1E1B,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBACY,SAAS,EAAA,CAAA;sBAAzC,YAAY;uBAAC,iBAAiB,CAAA;gBACD,QAAQ,EAAA,CAAA;sBAArC,SAAS;uBAAC,iBAAiB,CAAA;gBACC,OAAO,EAAA,CAAA;sBAAnC,SAAS;uBAAC,gBAAgB,CAAA;gBACI,MAAM,EAAA,CAAA;sBAApC,SAAS;uBAAC,kBAAkB,CAAA;gBAEpB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAWG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAQG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAIG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAIG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,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,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAKG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;ME3NE,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;QACY,IAAiB,CAAA,iBAAA,GAAG,oBAAoB,CAAC;KA0FpD;;IAvFU,iBAAiB,CAAC,MAAc,EAAE,MAAmC,EAAA;QACxE,MAAM,WAAW,GAAG,+CAA+C,CAAC;QACpE,MAAM,kBAAkB,GAAG,+CAA+C,CAAC;QAC3E,MAAM,eAAe,GAAG,0CAA0C,CAAC;AAEnE,QAAA,MAAM,OAAO,GAAG;AACZ,YAAA,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC/B,YAAA,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AACtC,YAAA,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;SACtC,CAAC;AACF,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;AACvE,QAAA,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAErE,QAAA,OAAO,MAAM,CAAA;KAChB;IAEO,WAAW,CAAC,UAAkB,EAAE,MAAmC,EAAA;QACvE,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5D,IAAI,UAAU,EAAE;YACZ,OAAO;AACH,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,WAAW,EAAE,aAAa;AAC1B,gBAAA,UAAU,EAAE,CAAG,EAAA,UAAU,CAAC,CAAC,CAAC,CAAO,KAAA,CAAA;AACnC,gBAAA,UAAU,EAAE,EAAE;aACjB,CAAC;SACL;AAED,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC5B,OAAO;AACH,oBAAA,IAAI,EAAE,UAAU;oBAChB,UAAU;AACV,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAC;aACL;AACI,iBAAA,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,OAAO;AACH,oBAAA,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,CAAG,EAAA,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAA;oBAC5C,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC1C,CAAC;aACL;iBACI;gBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,OAAO;AACH,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACxB,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC1C,CAAC;aACL;SACJ;aACI;AACD,YAAA,QAAQ,MAAM,CAAC,IAAI;AACf,gBAAA,KAAK,SAAS;AACV,oBAAA,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;AACzB,gBAAA,KAAK,UAAU;AACX,oBAAA,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC1B,gBAAA,KAAK,qBAAqB;AACtB,oBAAA,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;wBAC5B,OAAO;AACH,4BAAA,IAAI,EAAE,qBAAqB;4BAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,4BAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAC3D,4BAAA,UAAU,EAAE,UAAU;yBACzB,CAAC;qBACL;AACI,yBAAA,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;wBACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACvC,OAAO;AACH,4BAAA,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,CAAG,EAAA,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAA;4BAC5C,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC1C,CAAC;qBACL;yBACI;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACvC,OAAO;AACH,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;4BACxB,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC1C,CAAC;qBACL;aACR;SACJ;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;AC5FM,MAAM,YAAY,GAAG,CAAC,QAAwB,EAAE,OAAgB,KAAI;AACvE,IAAA,IAAI,OAAO,GAAG,CAAA,EAAG,QAAQ,CAAC,IAAI,IAAI,CAAC;AAEnC,IAAA,QAAQ,QAAQ,CAAC,IAAI;AACjB,QAAA,KAAK,aAAa;YACd,OAAO,IAAI,EAAE,CAAC;YACd,MAAM;AACV,QAAA,KAAK,mBAAmB;YACpB,OAAO,IAAI,EAAE,CAAC;YACd,MAAM;;;;;;;AAOV,QAAA,KAAK,kBAAkB;AACnB,YAAA,OAAO,IAAI,CAAI,CAAA,EAAA,QAAQ,CAAC,IAAI,CAAA,MAAA,EAAS,QAAQ,CAAC,OAAO,GAAG,aAAa,GAAG,iBAAiB,YAAY,CAAC;YACtG,MAAM;AACV,QAAA,KAAK,qBAAqB;YACtB,OAAO,IAAI,IAAI,QAAQ,CAAC,IAAI,CACxB,MAAA,EAAA,QAAQ,CAAC,OAAO,GAAG,aAAa,GAAG,iBACvC,CAAyB,uBAAA,CAAA,CAAC;YAC1B,MAAM;AACV,QAAA,KAAK,iBAAiB;AAClB,YAAA,OAAO,IAAI,CAAA,0BAAA,EAA6B,QAAQ,CAAC,OAAO,CAAA,MAAA,EACpD,QAAQ,CAAC,OAAO,GAAG,aAAa,GAAG,iBACvC,CAAa,UAAA,EAAA,QAAQ,CAAC,eAAe,GAAG,mCAAmC,GAAG,EAAE,EAAE,CAAC;YACnF,MAAM;AACV,QAAA,KAAK,iBAAiB;AAClB,YAAA,OAAO,IAAI,CAAI,CAAA,EAAA,QAAQ,CAAC,UAAU,yBAAyB,CAAC;YAC5D,MAAM;AACV,QAAA,KAAK,eAAe;AAChB,YAAA,OAAO,IAAI,CAAI,CAAA,EAAA,QAAQ,CAAC,UAAU,uBAAuB,CAAC;YAC1D,MAAM;KACb;AAED,IAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACxB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;KAC1C;IAED,OAAO,CAAC,QAAQ,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;;MC1CY,cAAc,CAAA;AACvB,IAAA,WAAA,CAAoB,OAAgB,EAAU,kBAAA,GAAqB,CAAC,EAAU,wBAAwB,CAAC,EAAA;QAAnF,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAAU,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAI;QAAU,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAI;KAAI;IAEpG,WAAW,GAAA;AACd,QAAA,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;KACpG;IAEM,QAAQ,GAAA;AACX,QAAA,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;KACpG;IAEM,IAAI,GAAA;AACP,QAAA,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAChG;IAEM,UAAU,GAAA;AACb,QAAA,QACI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB;AAClG,aAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,CAAC,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAC9G;KACL;AACJ;;AC4LM,MAAM,0BAA0B,GAAG,CAAC,CAAqB,KAAI;AAChE,IAAA,QAAQ,CAAC,CAAC,IAAI;AACV,QAAA,KAAK,SAAS;AACV,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AACxE,QAAA,KAAK,UAAU;AACX,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;AACjD,QAAA,KAAK,qBAAqB;AACtB,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;AAChE,QAAA,KAAK,YAAY;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KAC1C;AACL,CAAC;;MC7NY,mBAAmB,CAAA;IACrB,aAAa,kBAAkB,CAClC,WAAmB,EACnB,OAA2B,EAC3B,OAA2B,EAAA;AAE3B,QAAA,OAAO,MAAM,IAAI,CAAC,WAAW,CACzB,CAAqB,kBAAA,EAAA,WAAW,CAAG,EAAA,OAAO,GAAG,CAAA,CAAA,EAAI,OAAO,CAAE,CAAA,GAAG,EAAE,CAAA,EAAG,OAAO,GAAG,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,GAAG,EAAE,CAAA,aAAA,CAAe,CAChH,CAAC;KACL;IAEM,aAAa,iBAAiB,CACjC,WAAmB,EACnB,OAA2B,EAC3B,IAAY,EAAA;QAEZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,CAAqB,kBAAA,EAAA,WAAW,CAAG,EAAA,OAAO,GAAG,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,GAAG,EAAE,CAAI,CAAA,EAAA,IAAI,CAAE,CAAA,CAAC,CAAC;KAC5G;AAEO,IAAA,aAAa,WAAW,CAAC,GAAW,EAAA;AACxC,QAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAEhD,QAAA,IAAI,GAAG,CAAC,EAAE,EAAE;AACR,YAAA,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;SAC3B;AACI,aAAA,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AACzB,YAAA,OAAO,EAAE,CAAC;SACb;aACI;AACD,YAAA,MAAM,KAAK,CAAC,CAAA,kDAAA,EAAqD,GAAG,CAAA,CAAE,CAAC,CAAC;SAC3E;KACJ;AACJ;;MCzBY,cAAc,CAAA;AAQvB,IAAA,WAAA,CAAoB,OAAgB,EAAA;QAAhB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;AACjC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;QAE9B,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACjC,YAAA,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACnE,IAAI,CAAC,aAAa,CACd;AACI,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,WAAW,EAAE,WAAW;AACxB,oBAAA,UAAU,EAAE,EAAE;AACjB,iBAAA,EACD,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CACnC,CAAC,KAAK,CAAC,CAAC,IAAG;AACR,oBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,iBAAC,CAAC,CAAC;aACN;SACJ;KACJ;IAEM,sBAAsB,GAAA;QACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAClC;IAEM,uBAAuB,GAAA;AAC1B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACnC;AAEM,IAAA,MAAM,oBAAoB,CAAC,MAAc,EAAE,MAAmC,EAAE,KAAqB,EAAA;AACxG,QAAA,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;YACpB,OAAO;SACV;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACxE,QAAA,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE;AAC9B,YAAA,IAAI;gBACA,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;aAC/C;YACD,OAAO,CAAC,EAAE;AACN,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAI,CAAW,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;iBACrD;qBACI;AACD,oBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACpB;aACJ;SACJ;KACJ;AAEO,IAAA,MAAM,aAAa,CAAC,cAAkC,EAAE,KAAqB,EAAA;QACjF,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACjC,OAAO;SACV;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;;QAGpD,IAAI,cAAc,CAAC,IAAI,IAAI,SAAS,IAAI,cAAc,CAAC,WAAW,IAAI,SAAS;AAC3E,YAAA,OAAO,IAAI,CAAC;AAEhB,QAAA,QAAQ,cAAc,CAAC,IAAI;AACvB,YAAA,KAAK,SAAS;gBACV,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,cAAc,CAAC,CAAC;gBACtF,IAAI,qBAAqB,EAAE;AACvB,oBAAA,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACnG;gBACD,MAAM;AACV,YAAA,KAAK,UAAU;AACX,gBAAA,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACvC,YAAA,KAAK,qBAAqB;AACtB,gBAAA,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/E,KAAK,YAAY,EAAE;aAElB;SACJ;KACJ;AAEO,IAAA,MAAM,sBAAsB,CAAC,cAAmD,EAAE,KAAqB,EAAA;QAC3G,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAEnE,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;AAChC,YAAA,IAAI,CAAC,WAAW,CACZ,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAgB,aAAA,EAAA,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CACjH,CAAC;AAEF,YAAA,MAAM,IAAI,CAAC,oBAAoB,CAC3B,MAAM,EACN;AACI,gBAAA,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,cAAc,CAAC,WAAW;AACvC,gBAAA,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC5B,gBAAA,UAAU,EAAE,EAAE;aACjB,EACD,KAAK,CACR,CAAC;SACL;KACJ;IAEO,MAAM,4BAA4B,CACtC,cAAyC,EAAA;AAEzC,QAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;AAE5D,QAAA,MAAM,oBAAoB,GAAG;AACzB,YAAA,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,cAAc,CAAC,WAAW;AACnC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,OAAO,EAAE,KAAK;SACR,CAAC;AAEX,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,EAAE;AAC1G,gBAAA,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACjD,gBAAA,OAAO,IAAI,CAAC;aACf;SACJ;QAED,MAAM,qBAAqB,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AACzE,QAAA,IAAI,cAAc,GAAG,qBAAqB,GAAG,CAAA,CAAA,EAAI,cAAc,CAAC,UAAU,CAAE,CAAA,GAAG,EAAE,CAAC;AAClF,QAAA,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACvC,cAAc,CAAC,WAAW,EAC1B,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,EAC3C,qBAAqB,GAAG,cAAc,CAAC,UAAU,GAAG,SAAS,CAChE,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,IAAI,qBAAqB,EAAE;YACnC,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;YACjH,cAAc,GAAG,EAAE,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAEhC,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEjC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE;YAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC;AACzC,YAAA,IAAI,CAAC,WAAW,CACZ,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CACjB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA,aAAA,EAAgB,cAAc,CAAC,WAAW,CAAA,EAAG,cAAc,CAAA,aAAA,CAAe,CACzG,CACJ,CAAC;AAEF,YAAA,YAAY,CACR;AACI,gBAAA,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,cAAc,CAAC,WAAW;AACnC,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,OAAO,EAAE,IAAI;AAChB,aAAA,EACD,IAAI,CAAC,OAAO,CACf,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAEzD,OAAO;AACH,gBAAA,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,cAAc,CAAC,WAAW;AACvC,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aAChH,CAAC;SACL;aACI;YAED,MAAM,iBAAiB,GAAG,CAAA,OAAA,EACtB,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;AACtC,kBAAE,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AACzD,kBAAE,cAAc,CAAC,WACzB,EAAE,CAAC;AAEH,YAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC;AAE5G,YAAA,IAAI,CAAC,cAAc;gBACf,OAAO,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAEvC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAC5B,gBAAA,MAAM,KAAK,GAeP,MAAM,KAAK,CAAC,0EAA0E,EAAE;AACxF,oBAAA,MAAM,EAAE,KAAK;AAChB,iBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEvB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAEzE,gBAAA,YAAY,CACR;AACI,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,eAAe,EAAE,IAAI;AACrB,oBAAA,OAAO,EAAE,IAAI;AAChB,iBAAA,EACD,IAAI,CAAC,OAAO,CACf,CAAC;gBAEF,OAAO;AACH,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,WAAW,EAAE,iBAAiB;oBAC9B,WAAW;iBACP,CAAC;gBAET,OAAO;;aAEV;YAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC;YACzC,IAAI,CAAC,WAAW,CACZ,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,YAAY,gBAAgB,iBAAiB,CAAA,aAAA,CAAe,CAAC,CACtG,CAAC;AAEF,YAAA,YAAY,CACR;AACI,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,eAAe,EAAE,IAAI;AACrB,gBAAA,OAAO,EAAE,IAAI;AAChB,aAAA,EACD,IAAI,CAAC,OAAO,CACf,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAEhD,OAAO;AACH,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,WAAW,EAAE,iBAAiB;AAC9B,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CACjB,cAAc,CAAC,UAAU,IAAI,EAAE,EAC/B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CACxD;aACJ,CAAC;SACL;KACJ;IAEO,MAAM,sBAAsB,CAChC,cAAmD,EAAA;AAEnD,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAChC,cAAc,CAAC,WAAW,EAC1B,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,UAAU,CAC5B,CAAC;AAEF,QAAA,MAAM,oBAAoB,GAAG;AACzB,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,OAAO,EAAE,KAAK;SACR,CAAC;AAEX,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAE5D,QAAA,IAAI,OAAO,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAEjF,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE;YACnG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACvC,OAAO,EACP,OAAO,EACP,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,CAClE,CAAC;YACF,IAAI,MAAM,EAAE;AACR,gBAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;aAC1F;SACJ;aACI;AACD,YAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1B,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AAC1F,gBAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxE,gBAAA,YAAY,CACR;AACI,oBAAA,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;oBAClC,OAAO,EAAE,CAAC,CAAC,MAAM;AACpB,iBAAA,EACD,IAAI,CAAC,OAAO,CACf,CAAC;gBACF,IAAI,MAAM,EAAE;AACR,oBAAA,YAAY,CACR;AACI,wBAAA,IAAI,EAAE,kBAAkB;wBACxB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAClC,wBAAA,OAAO,EAAE,IAAI;AAChB,qBAAA,EACD,IAAI,CAAC,OAAO,CACf,CAAC;AACF,oBAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;iBACnC;aACJ;SACJ;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACzC,OAAO,EACP,OAAO,EACP,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,CAClE,CAAC;QAEF,IAAI,OAAO,EAAE;YACT,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACxF,gBAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACxE,IAAI,MAAM,EAAE;AACR,oBAAA,YAAY,CACR;AACI,wBAAA,IAAI,EAAE,kBAAkB;wBACxB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAClC,wBAAA,OAAO,EAAE,IAAI;AAChB,qBAAA,EACD,IAAI,CAAC,OAAO,CACf,CAAC;AACF,oBAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;iBACnC;aACJ;SACJ;AAED,QAAA,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC;KACf;AAEO,IAAA,UAAU,CAAC,WAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;KACvC;AAEM,IAAA,WAAW,CAAC,QAA2C,EAAA;AAC1D,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC;;KAE7C;IAEO,UAAU,CAAC,WAAmB,EAAE,OAAe,EAAA;QACnD,IAAI,CAAC,WAAW,CAAC;YACb,GAAG,IAAI,CAAC,QAAQ;YAChB,CAAC,WAAW,GAAG,OAAO;AACzB,SAAA,CAAC,CAAC;KACN;IAEO,WAAW,CAAC,MAAc,EAAE,GAAe,EAAA;QAC/C,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;KACJ;AAEO,IAAA,sBAAsB,CAAC,CAAqB,EAAA;AAChD,QAAA,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC;KACxC;AAEO,IAAA,MAAM,kBAAkB,CAC5B,WAAmB,EACnB,OAAgB,EAChB,OAAgB,EAAA;AAGhB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,GAAG,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,GAAG,EAAE,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QACnG,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,OAAO,GAAuB,SAAS,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SACvD;aACI;YACD,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxC,YAAA,WAAW,GAAG,OAAO,KAAK,SAAS,CAAC;SACvC;QAED,IAAI,WAAW,EAAE;AACb,YAAA,OAAO,OAAO,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SACrD;aACI;YACD,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC1E,YAAA,OAAO,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACtF,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACtC;AACD,YAAA,OAAO,OAAO,CAAC;SAClB;KACJ;AAEO,IAAA,MAAM,iBAAiB,CAC3B,WAAmB,EACnB,OAA2B,EAC3B,QAAgB,EAAA;QAGhB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,GAAG,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,OAAO,GAAuB,SAAS,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SACvD;aACI;YACD,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxC,YAAA,WAAW,GAAG,OAAO,KAAK,SAAS,CAAC;SACvC;QAED,IAAI,WAAW,EAAE;AACb,YAAA,YAAY,CACR;AACI,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,UAAU,EAAE,GAAG;AAClB,aAAA,EACD,IAAI,CAAC,OAAO,CACf,CAAC;AACF,YAAA,OAAO,OAAO,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SACrD;aACI;AACD,YAAA,OAAO,GAAG,MAAM,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtF,IAAI,OAAO,EAAE;AACT,gBAAA,YAAY,CACR;AACI,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,UAAU,EAAE,GAAG;AAClB,iBAAA,EACD,IAAI,CAAC,OAAO,CACf,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACtC;AACD,YAAA,OAAO,OAAO,CAAC;SAClB;KACJ;AACJ;;MC9cY,gBAAgB,CAAA;AAClB,IAAA,OAAO,CAAC,GAAW,EAAA;AACtB,QAAA,OAAO,SAAS,CAAC;KACpB;IAEM,MAAM,eAAe,CAAC,GAAW,EAAA;AACpC,QAAA,OAAO,KAAK,CAAC;KAChB;IAEM,SAAS,CAAC,GAAW,EAAE,OAAe,EAAA;AACzC,QAAA,OAAO,SAAS,CAAC;KACpB;IAEM,KAAK,GAAA;AACR,QAAA,OAAO,SAAS,CAAC;KACpB;AACJ;;ACRD;MACa,sBAAsB,CAAA;IAO/B,WAA2B,CAAA,MAAc,EAAU,OAAgB,EAAA;QAAxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAF3D,IAAW,CAAA,WAAA,GAAyB,EAAE,CAAC;QAG3C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAG;YAC7D,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACpC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACjC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;gBACtE,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;gBAC9E,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM;AACjF,gBAAA,4BAA4B,EAAE,IAAI;gBAClC,OAAO,EAAE,OAAO,CAAC,YAAY;AAChC,aAAA,CAAC,CAAC;SACN;KACJ;AAEM,IAAA,aAAa,MAAM,CAAC,MAAc,EAAE,OAA0B,EAAA;AACjE,QAAA,IAAI,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;AACnF,YAAA,sBAAsB,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;SAC5D;QAED,MAAM,cAAc,GAAG,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,cAAc,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;SACvG;AAED,QAAA,OAAO,IAAI,sBAAsB,CAAC,MAAM,EAAE;AACtC,YAAA,YAAY,EAAE,mBAAmB;AACjC,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,qCAAqC,EAAE,KAAK;AAC5C,YAAA,WAAW,EAAE,sBAAsB,CAAC,WAAW,IAAI,IAAI,gBAAgB,EAAE;AACzE,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,qBAAqB,EAAE,CAAC;AACxB,YAAA,GAAG,OAAO;AACV,YAAA,MAAM,EAAE,cAAc;AACzB,SAAA,CAAC,CAAC;KACN;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;KAC7C;AAEM,IAAA,WAAW,CAAC,QAA2C,EAAA;AAC1D,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;KACpC;AAEM,IAAA,MAAM,UAAU,GAAA;QACnB,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;KAC1C;IAEO,wBAAwB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO;SACV;QAED,YAAY,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,EAAE;YACpC,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;aACI;AACD,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;AAClC,gBAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACpC;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,YAAW;AACvC,gBAAA,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7B,gBAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AACnC,aAAC,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAQ,CAAC;SAC5C;KACJ;AAEO,IAAA,MAAM,eAAe,GAAA;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,YAAY,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;;;QAGrC,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;SAC3B;AAED,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;AAExC,QAAA,IAAI;AACA,YAAA,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAClC,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CACnC,CAAC;SACL;QACD,OAAO,CAAC,EAAE;AACN,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAE,CAAW,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;aACnD;iBACI;AACD,gBAAA,MAAM,CAAC,CAAC;aACX;SACJ;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE,EAAE;AAC9C,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qCAAqC,EAAE;gBACrD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAClD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjC,IAAI,eAAe,EAAE;AACjB,oBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;iBAC5C;aACJ;AACD,YAAA,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;SACjD;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC5B;AACJ;;ACtID,IAAI,MAA2B,CAAC;MAenB,eAAe,CAAA;IAMxB,IAAa,IAAI,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK;YACnB,OAAO;QACX,IAAI,OAAO,KAAK,IAAI,QAAQ;AACxB,YAAA,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;AAExD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC;;IACD,IAAI,IAAI,GAAK,EAAA,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA,EAAE;IASxC,IAAa,QAAQ,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,SAAS,GAAG;AACb,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,MAAM,EAAE,KAAK;AAChB,SAAA,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,MAAM,CAAA;KAC9B;IACD,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAA,EAAE;AAgCxC,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO;YACH,GAAG,IAAI,CAAC,YAAY;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;YAC7D,WAAW,EAAE,IAAI,CAAC,WAAW;SAC4B,CAAC;KACjE;AAGD,IAAA,WAAA,CAAoB,aAA+B,EAAA;QAA/B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QArFnD,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAeN,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU,CAAC;AAC1C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU,CAAC;AACxC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAetD,IAAoB,CAAA,oBAAA,GAAG,gBAAgB,CAAC;QAGxC,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QACZ,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAK,CAAA,KAAA,GAAG,SAAS,CAAC;QAClB,IAAU,CAAA,UAAA,GAAG,iBAAiB,CAAC;QAC/B,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QAEd,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACvB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACvB,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QAEf,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;AACtB,QAAA,IAAA,CAAA,OAAO,GAA8C;AAC1D,YAAA,OAAO,EAAE,IAAI;SAChB,CAAC;AACO,QAAA,IAAA,CAAA,SAAS,GAAgD;AAC9D,YAAA,uBAAuB,EAAE,KAAK;;SAEjC,CAAC;QACO,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACvB,IAA2B,CAAA,2BAAA,GAAG,CAAC,CAAC;QAChC,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAsB,CAAA,sBAAA,GAAG,CAAC,CAAC;QAE3B,IAAW,CAAA,WAAA,GAAwC,IAAI,CAAC;QAExD,IAAY,CAAA,YAAA,GAA6D,EAAE,CAAC;QAyGrF,IAAM,CAAA,MAAA,GAAG,MAAW;AAChB,YAAA,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;AAC1B,SAAC,CAAC;AAjFE,QAAA,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAG;AACxC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;KACN;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;AAE9B,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACrD,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,gBAAA,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;SACJ;QACD,IAAI,OAAO,CAAC,OAAO,CAAC;AAChB,YAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrD;AAED,IAAA,MAAM,eAAe,GAAA;QACjB,MAAM,gBAAgB,EAAE,CAAC;QAEzB,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;KAC5B;IAEO,YAAY,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC9C;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CACrD,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,aAAa,EAC1C,IAAI,CAAC,QAAe,CACvB,CAAC;;AAGF,QAAA,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE;AAClC,YAAA,MAAM,EAAE,MAAM;AACjB,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAEhC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B;AAED,QAAA,MAAM,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;KACtE;IAEO,wBAAwB,GAAA;KAE/B;IAED,QAAQ,GAAA;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AAEpC,QAAA,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAClD,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;;AAGxC,QAAA,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;AACnB,QAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAE7B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/B,GAAG,CAAC,KAAK,EAAE,CAAC;AAEZ,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/B,GAAG,CAAC,MAAM,EAAE,CAAC;AAEb,QAAA,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;KAChC;8GAnKQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,40BAXd,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAWH,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,SAAS;+BACI,YAAY,EAAA,QAAA,EACZ,EAAE,EAAA,UAAA,EASA,IAAI,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA,CAAA;qFAQH,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAUI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAIE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBASG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,2BAA2B,EAAA,CAAA;sBAAnC,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAyGN,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;MAMhC,gBAAgB,GAAG,OAAO,IAAa,KAAI;IACpD,IAAI,MAAM,CAAC,QAAQ,CAAC;AAAE,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;;IAG9C,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;;IAG/E,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;;;AAG/B,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAAE,YAAA,MAAM,CAAC,SAAS,CAAC,GAAG,EAAS,CAAC;AACtD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAEjE,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAClB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAErC,QAAA,MAAM,WAAW,GAAG;YAChB,WAAW;YACX,2BAA2B;YAC3B,uBAAuB;SAC1B,CAAC;AAEF,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClC,YAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACjC,YAAA,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChC;KACJ;;IAGD,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;QAClC,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAK;AAC5B,YAAA,KAAK,EAAE,CAAC;AAER,YAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE;AAC/B,gBAAA,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC,CAAC;aACb;AACI,iBAAA,IAAI,KAAK,IAAI,GAAG,EAAE;AACnB,gBAAA,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACxB,GAAG,CAAC,KAAK,CAAC,CAAC;aACd;SACJ,EAAE,GAAG,CAAC,CAAC;AACZ,KAAC,CAAC,CAAC;AACP;;MCzNa,qBAAqB,CAAA;IAwC9B,IAAY,OAAO,GAAK,EAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAA4B,CAAC,EAAE;AAC3E,IAAA,IAAY,SAAS,GAAA,EAAK,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAgB,CAAC,EAAE;AAC5F,IAAA,IAAY,QAAQ,GAAA,EAAK,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAgB,CAAC,EAAE;AAC9F,IAAA,IAAY,iBAAiB,GAAA,EAAK,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC,EAAE;AACtG,IAAA,IAAY,yBAAyB,GAAA,EAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC,EAAE;AAM7G,IAAA,WAAA,CACqB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AAzCxC;;AAEG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAEtC;;;AAGG;QACM,IAAK,CAAA,KAAA,GAAe,OAAO,CAAC;AACrC;;;AAGG;QACM,IAAM,CAAA,MAAA,GAAc,OAAO,CAAC;AACrC;;;AAGG;QACM,IAAO,CAAA,OAAA,GAAY,EAAE,CAAC;AAC/B;;;AAGG;QACM,IAAqB,CAAA,qBAAA,GAAY,IAAI,CAAC;QAE/C,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACvB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAQf,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QA4CzB,IAAM,CAAA,MAAA,GAAG,MAAK;AACV,YAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAC/D,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;;YAGvC,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACzC,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;;YAG1C,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACvC,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEvC,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,WAAA,EAAc,EAAE,CAAA,eAAA,EAAkB,EAAE,CAAA,GAAA,CAAK,CAAC;aACtF;AACD,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,gBAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,WAAA,EAAc,EAAE,CAAA,eAAA,EAAkB,EAAE,CAAA,GAAA,CAAK,CAAC;aAC9F;AAED,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAA2B,wBAAA,EAAA,CAAC,EAAE,CAAA,IAAA,CAAM,CAAC;AACtE,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAW,QAAA,EAAA,CAAC,EAAE,CAAA,aAAA,EAAgB,CAAC,EAAE,MAAM,CAAC;aAC3E;iBACI;AACD,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,QAAA,EAAW,EAAE,CAAA,aAAA,EAAgB,EAAE,CAAA,IAAA,CAAM,CAAC;gBACvE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAA2B,wBAAA,EAAA,CAAC,EAAE,CAAA,IAAA,CAAM,CAAC;aACxE;AACL,SAAC,CAAA;KApEI;IAEL,eAAe,GAAA;AACX,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;;AAGxB,QAAA,EAAE,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAChD,EAAE,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,EAAE,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,EAAE,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAElC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACtB;AAED,IAAA,aAAa,CAAC,CAAe,EAAA;AACzB,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAC1E,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAED,cAAc,GAAA;AACV,QAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACnC;IAED,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB,EAAE,GAAG,CAAQ,CAAC;KAClB;;IAGD,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAA;KAChB;8GA1FQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,OAAA,EAAA,cAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,iCAAA,EAAA,8BAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGG,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACR,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGV,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACR,WAAW,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCvD,0zBA4BA,EAAA,MAAA,EAAA,CAAA,u9BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDfQ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAWX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhBjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGpB,OAAA,EAAA;wBACL,gBAAgB;qBACnB,EACK,IAAA,EAAA;AACF,wBAAA,eAAe,EAAE,OAAO;AACxB,wBAAA,gBAAgB,EAAE,QAAQ;AAC1B,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,mCAAmC,EAAE,4BAA4B;AACjE,wBAAA,cAAc,EAAE,gBAAgB;AACnC,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,0zBAAA,EAAA,MAAA,EAAA,CAAA,u9BAAA,CAAA,EAAA,CAAA;+EAKgC,OAAO,EAAA,CAAA;sBAAtD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBACK,UAAU,EAAA,CAAA;sBAA5D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAGG,WAAW,EAAA,CAAA;sBAA9D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBACK,cAAc,EAAA,CAAA;sBAApE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAK3C,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAME,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAKG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;;;AElDV;;;;;;;AAOG;MAMU,0BAA0B,CAAA;AAEnC;;;;;;;;;;;;AAYG;aACI,IAAoB,CAAA,oBAAA,GAAG,CAC1B,cAAyB,EACzB,MAA4C,EAC5C,QAAkB,EAClB,OAAA,GAAkC,EAAE,EACpC,QAAwC,GAAA,EAAE,EAC1C,kBAAwC,GAAA,EAAE,KACzC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AAErB,QAAA,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;AAClB,QAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACjB,YAAA,MAAM,SAAS,GAAG,eAAe,CAAC,cAAc,EAAE;gBAC9C,mBAAmB,EAAE,MAAM,CAAC,QAAQ;AACpC,gBAAA,eAAe,EAAE,QAAQ;AACzB,gBAAA,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;AAC3C,aAAA,CAAC,CAAC;AAEH,YAAA,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;;;AAItC,YAAA,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAE7B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;;;AAInD,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;gBACtF,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9D,aAAC,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;AACxD,gBAAA,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;oBACjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAoC,EAAE,CAAC;;AAEhE,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;AAC1F,gBAAA,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAC3C,aAAC,CAAC,CAAC;;YAGH,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAmB,KAAI;AAC3D,gBAAA,IAAI,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACpC,MAAM,MAAM,GAA0B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACnE,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEzB,oBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjD,oBAAA,mBAAmB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;iBACxC;AACL,aAAC,CAAC,CAAC;;YAGH,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7D,YAAA,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,KAAI;AACzB,gBAAA,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACjE,gBAAA,eAAe,GAAG,EAAE,CAAC,CAAC;AAC1B,aAAC,CAAA;AAED,YAAA,SAAS,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SAC/C,EAAE,EAAE,CAAC,CAAC;;;;;QAMP,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAC5B,EAAE,EACF,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAClC,GAAG,kBAAkB,CACxB,CAAC;KACL,CAAC,CAAC,EAAA;AAiBH,IAAA,WAAA,CACqB,WAA6B,EAC7B,OAAqB,EACrB,MAAc,EAAA;QAFd,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAC7B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAc;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAV3B,QAAA,IAAA,CAAA,eAAe,GAAG;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAG;AACvB,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,aAAC,CAAC;SACL,CAAC;KAOD;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,gBAAgB;AACtB,YAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;KACvG;AAED,IAAA,WAAW,CAAC,OAAuB,EAAA;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,eAAe,GAAA;QACX,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;KACtD;IAEO,OAAO,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;AAEnC,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,gBAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;aACnE;;YAGD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;;AAGjE,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;;AAEvD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAErD,MAAM,KAAK,GAAG,EAAE,CAAC;;AAEjB,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;;AAG1C,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;;;;AAIjB,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,aAAC,CAAC,CAAA;YAEF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAY,EAAE,CAAC,CAAC,CAAC;AAC3F,SAAC,CAAC,CAAA;KACL;8GAhKQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,wGAHzB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAGH,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,CAAE,CAAA;AACZ,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACpBD;;AAEG;AAEH;;AAEG;;ACNH;;AAEG;;;;"}