{"version":3,"file":"ng-flex-layout-flex.mjs","sources":["../../../../projects/libs/flex-layout/flex/layout/layout.ts","../../../../projects/libs/flex-layout/flex/layout-gap/layout-gap.ts","../../../../projects/libs/flex-layout/flex/flex/flex.ts","../../../../projects/libs/flex-layout/flex/flex-order/flex-order.ts","../../../../projects/libs/flex-layout/flex/flex-offset/flex-offset.ts","../../../../projects/libs/flex-layout/flex/flex-align/flex-align.ts","../../../../projects/libs/flex-layout/flex/flex-fill/flex-fill.ts","../../../../projects/libs/flex-layout/flex/layout-align/layout-align.ts","../../../../projects/libs/flex-layout/flex/module.ts","../../../../projects/libs/flex-layout/flex/public-api.ts","../../../../projects/libs/flex-layout/flex/ng-flex-layout-flex.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, OnChanges, Injectable, Inject} from '@angular/core';\nimport {\n    BaseDirective2,\n    StyleBuilder,\n    StyleDefinition,\n    StyleUtils,\n    MediaMarshaller,\n    LAYOUT_CONFIG,\n    LayoutConfigOptions,\n} from 'ng-flex-layout/core';\n\nimport {buildLayoutCSS} from 'ng-flex-layout/_private-utils';\n\nexport interface LayoutStyleDisplay {\n    readonly display: string\n}\n\n@Injectable({providedIn: 'root'})\nexport class LayoutStyleBuilder extends StyleBuilder {\n    buildStyles(input: string, {display}: LayoutStyleDisplay) {\n        const css = buildLayoutCSS(input);\n        return {\n            ...css,\n            display: display === 'none' ? display : css.display,\n        };\n    }\n}\n\nconst inputs = [\n    'fxLayout', 'fxLayout.xs', 'fxLayout.sm', 'fxLayout.md',\n    'fxLayout.lg', 'fxLayout.xl', 'fxLayout.lt-sm', 'fxLayout.lt-md',\n    'fxLayout.lt-lg', 'fxLayout.lt-xl', 'fxLayout.gt-xs', 'fxLayout.gt-sm',\n    'fxLayout.gt-md', 'fxLayout.gt-lg'\n];\nconst selector = `\n  [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],\n  [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],\n  [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],\n  [fxLayout.gt-md], [fxLayout.gt-lg]\n`;\n\n/**\n * 'layout' flexbox styling directive\n * Defines the positioning flow direction for the child elements: row or column\n * Optional values: column or row (default)\n * @see https://css-tricks.com/almanac/properties/f/flex-direction/\n *\n */\n@Directive()\nexport class LayoutDirective extends BaseDirective2 implements OnChanges {\n\n    protected override DIRECTIVE_KEY = 'layout';\n\n    constructor(elRef: ElementRef,\n        styleUtils: StyleUtils,\n        styleBuilder: LayoutStyleBuilder,\n        marshal: MediaMarshaller,\n        @Inject(LAYOUT_CONFIG) private _config: LayoutConfigOptions) {\n        super(elRef, styleBuilder, styleUtils, marshal);\n        this.init();\n    }\n\n    protected override updateWithValue(input: string) {\n        const detectLayoutDisplay = this._config.detectLayoutDisplay;\n        const display = detectLayoutDisplay ? this.styler.lookupStyle(this.nativeElement, 'display') : '';\n        this.styleCache = cacheMap.get(display) ?? new Map();\n        cacheMap.set(display, this.styleCache);\n\n        if (this.currentValue !== input) {\n            this.addStyles(input, {display});\n            this.currentValue = input;\n        }\n    }\n}\n\n@Directive({selector, inputs})\nexport class DefaultLayoutDirective extends LayoutDirective {\n    protected override inputs = inputs;\n}\n\ntype CacheMap = Map<string, StyleDefinition>;\nconst cacheMap = new Map<string, CacheMap>();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n    Directive,\n    ElementRef,\n    OnDestroy,\n    NgZone,\n    Injectable,\n    AfterContentInit,\n    Inject,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n    BaseDirective2,\n    StyleBuilder,\n    StyleDefinition,\n    StyleUtils,\n    MediaMarshaller,\n    ElementMatcher,\n    LAYOUT_CONFIG,\n    LayoutConfigOptions,\n    ɵmultiply as multiply,\n} from 'ng-flex-layout/core';\nimport {LAYOUT_VALUES} from 'ng-flex-layout/_private-utils';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n\nexport interface LayoutGapParent {\n    directionality: string\n    items: HTMLElement[]\n    layout: string\n}\n\nconst CLEAR_MARGIN_CSS = {\n    'margin-left': null,\n    'margin-right': null,\n    'margin-top': null,\n    'margin-bottom': null\n};\n\n@Injectable({providedIn: 'root'})\nexport class LayoutGapStyleBuilder extends StyleBuilder {\n    constructor(private _styler: StyleUtils,\n        @Inject(LAYOUT_CONFIG) private _config: LayoutConfigOptions) {\n        super();\n    }\n\n    buildStyles(gapValue: string, parent: LayoutGapParent) {\n        if (gapValue.endsWith(GRID_SPECIFIER)) {\n            gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));\n            gapValue = multiply(gapValue, this._config.multiplier);\n\n            // Add the margin to the host element\n            return buildGridMargin(gapValue, parent.directionality);\n        } else {\n            return {};\n        }\n    }\n\n    override sideEffect(gapValue: string, _styles: StyleDefinition, parent: LayoutGapParent) {\n        const items = parent.items;\n        if (gapValue.endsWith(GRID_SPECIFIER)) {\n            gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));\n            gapValue = multiply(gapValue, this._config.multiplier);\n            // For each `element` children, set the padding\n            const paddingStyles = buildGridPadding(gapValue, parent.directionality);\n            this._styler.applyStyleToElements(paddingStyles, parent.items);\n        } else {\n            gapValue = multiply(gapValue, this._config.multiplier);\n            gapValue = this.addFallbackUnit(gapValue);\n\n            const lastItem = items.pop()!;\n\n            // For each `element` children EXCEPT the last,\n            // set the margin right/bottom styles...\n            const gapCss = buildGapCSS(gapValue, parent);\n            this._styler.applyStyleToElements(gapCss, items);\n\n            // Clear all gaps for all visible elements\n            this._styler.applyStyleToElements(CLEAR_MARGIN_CSS, [lastItem]);\n        }\n    }\n\n    private addFallbackUnit(value: string) {\n        return !isNaN(+value) ? `${value}${this._config.defaultUnit}` : value;\n    }\n}\n\nconst inputs = [\n    'fxLayoutGap', 'fxLayoutGap.xs', 'fxLayoutGap.sm', 'fxLayoutGap.md',\n    'fxLayoutGap.lg', 'fxLayoutGap.xl', 'fxLayoutGap.lt-sm', 'fxLayoutGap.lt-md',\n    'fxLayoutGap.lt-lg', 'fxLayoutGap.lt-xl', 'fxLayoutGap.gt-xs', 'fxLayoutGap.gt-sm',\n    'fxLayoutGap.gt-md', 'fxLayoutGap.gt-lg'\n];\nconst selector = `\n  [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md],\n  [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md],\n  [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm],\n  [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]\n`;\n\n/**\n * 'layout-padding' styling directive\n *  Defines padding of child elements in a layout container\n */\n@Directive()\nexport class LayoutGapDirective extends BaseDirective2 implements AfterContentInit, OnDestroy {\n    protected layout = 'row';  // default flex-direction\n    protected override DIRECTIVE_KEY = 'layout-gap';\n    protected observerSubject = new Subject<void>();\n\n    /** Special accessor to query for all child 'element' nodes regardless of type, class, etc */\n    protected get childrenNodes(): HTMLElement[] {\n        const obj = this.nativeElement.children;\n        const buffer: any[] = [];\n\n        // iterate backwards ensuring that length is an UInt32\n        for (let i = obj.length; i--;) {\n            buffer[i] = obj[i];\n        }\n        return buffer;\n    }\n\n    constructor(elRef: ElementRef,\n        protected zone: NgZone,\n        protected directionality: Directionality,\n        protected styleUtils: StyleUtils,\n        styleBuilder: LayoutGapStyleBuilder,\n        marshal: MediaMarshaller) {\n        super(elRef, styleBuilder, styleUtils, marshal);\n        const extraTriggers = [this.directionality.change, this.observerSubject.asObservable()];\n        this.init(extraTriggers);\n        this.marshal\n            .trackValue(this.nativeElement, 'layout')\n            .pipe(takeUntil(this.destroySubject))\n            .subscribe(this.onLayoutChange.bind(this));\n    }\n\n    // *********************************************\n    // Lifecycle Methods\n    // *********************************************\n\n    ngAfterContentInit() {\n        this.buildChildObservable();\n        this.triggerUpdate();\n    }\n\n    override ngOnDestroy() {\n        super.ngOnDestroy();\n        if (this.observer) {\n            this.observer.disconnect();\n        }\n    }\n\n    // *********************************************\n    // Protected methods\n    // *********************************************\n\n    /**\n   * Cache the parent container 'flex-direction' and update the 'margin' styles\n   */\n    protected onLayoutChange(matcher: ElementMatcher) {\n        const layout: string = matcher.value;\n        // Make sure to filter out 'wrap' option\n        const direction = layout.split(' ');\n        this.layout = direction[0];\n        if (!LAYOUT_VALUES.find(x => x === this.layout)) {\n            this.layout = 'row';\n        }\n        this.triggerUpdate();\n    }\n\n    /**\n   *\n   */\n    protected override updateWithValue(value: string) {\n    // Gather all non-hidden Element nodes\n        const items = this.childrenNodes\n            .filter(el => el.nodeType === 1 && this.willDisplay(el))\n            .sort((a, b) => {\n                const orderA = +this.styler.lookupStyle(a, 'order');\n                const orderB = +this.styler.lookupStyle(b, 'order');\n                if (isNaN(orderA) || isNaN(orderB) || orderA === orderB) {\n                    return 0;\n                } else {\n                    return orderA > orderB ? 1 : -1;\n                }\n            });\n\n        if (items.length > 0) {\n            const directionality = this.directionality.value;\n            const layout = this.layout;\n            if (layout === 'row' && directionality === 'rtl') {\n                this.styleCache = layoutGapCacheRowRtl;\n            } else if (layout === 'row' && directionality !== 'rtl') {\n                this.styleCache = layoutGapCacheRowLtr;\n            } else if (layout === 'column' && directionality === 'rtl') {\n                this.styleCache = layoutGapCacheColumnRtl;\n            } else if (layout === 'column' && directionality !== 'rtl') {\n                this.styleCache = layoutGapCacheColumnLtr;\n            }\n            this.addStyles(value, {directionality, items, layout});\n        }\n    }\n\n    /** We need to override clearStyles because in most cases mru isn't populated */\n    protected override clearStyles() {\n        const gridMode = Object.keys(this.mru).length > 0;\n        const childrenStyle = gridMode ? 'padding' :\n            getMarginType(this.directionality.value, this.layout);\n\n        // If there are styles on the parent remove them\n        if (gridMode) {\n            super.clearStyles();\n        }\n\n        // Then remove the children styles too\n        this.styleUtils.applyStyleToElements({[childrenStyle]: ''}, this.childrenNodes);\n    }\n\n    /** Determine if an element will show or hide based on current activation */\n    protected willDisplay(source: HTMLElement): boolean {\n        const value = this.marshal.getValue(source, 'show-hide');\n        return value === true ||\n      (value === undefined && this.styleUtils.lookupStyle(source, 'display') !== 'none');\n    }\n\n    protected buildChildObservable(): void {\n        this.zone.runOutsideAngular(() => {\n            if (typeof MutationObserver !== 'undefined') {\n                this.observer = new MutationObserver((mutations: MutationRecord[]) => {\n                    const validatedChanges = (it: MutationRecord): boolean => {\n                        return (it.addedNodes && it.addedNodes.length > 0) ||\n              (it.removedNodes && it.removedNodes.length > 0);\n                    };\n\n                    // update gap styles only for child 'added' or 'removed' events\n                    if (mutations.some(validatedChanges)) {\n                        this.observerSubject.next();\n                    }\n                });\n                this.observer.observe(this.nativeElement, {childList: true});\n            }\n        });\n    }\n\n    protected observer?: MutationObserver;\n}\n\n@Directive({selector, inputs})\nexport class DefaultLayoutGapDirective extends LayoutGapDirective {\n    protected override inputs = inputs;\n}\n\nconst layoutGapCacheRowRtl: Map<string, StyleDefinition> = new Map();\nconst layoutGapCacheColumnRtl: Map<string, StyleDefinition> = new Map();\nconst layoutGapCacheRowLtr: Map<string, StyleDefinition> = new Map();\nconst layoutGapCacheColumnLtr: Map<string, StyleDefinition> = new Map();\n\nconst GRID_SPECIFIER = ' grid';\n\nfunction buildGridPadding(value: string, directionality: string): StyleDefinition {\n    const [between, below] = value.split(' ');\n    const bottom = below ?? between;\n    let paddingRight = '0px', paddingBottom = bottom, paddingLeft = '0px';\n\n    if (directionality === 'rtl') {\n        paddingLeft = between;\n    } else {\n        paddingRight = between;\n    }\n\n    return {'padding': `0px ${paddingRight} ${paddingBottom} ${paddingLeft}`};\n}\n\nfunction buildGridMargin(value: string, directionality: string): StyleDefinition {\n    const [between, below] = value.split(' ');\n    const bottom = below ?? between;\n    const minus = (str: string) => `-${str}`;\n    let marginRight = '0px', marginBottom = minus(bottom), marginLeft = '0px';\n\n    if (directionality === 'rtl') {\n        marginLeft = minus(between);\n    } else {\n        marginRight = minus(between);\n    }\n\n    return {'margin': `0px ${marginRight} ${marginBottom} ${marginLeft}`};\n}\n\nfunction getMarginType(directionality: string, layout: string) {\n    switch (layout) {\n        case 'column':\n            return 'margin-bottom';\n        case 'column-reverse':\n            return 'margin-top';\n        case 'row':\n            return directionality === 'rtl' ? 'margin-left' : 'margin-right';\n        case 'row-reverse':\n            return directionality === 'rtl' ? 'margin-right' : 'margin-left';\n        default :\n            return directionality === 'rtl' ? 'margin-left' : 'margin-right';\n    }\n}\n\nfunction buildGapCSS(gapValue: string,\n    parent: {directionality: string; layout: string}): StyleDefinition {\n    const key = getMarginType(parent.directionality, parent.layout);\n    const margins: {[key: string]: string | null} = {...CLEAR_MARGIN_CSS};\n    margins[key] = gapValue;\n    return margins;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directive, ElementRef, Inject, Injectable, Input, OnInit } from '@angular/core';\nimport {\n    BaseDirective2,\n    ElementMatcher,\n    LAYOUT_CONFIG,\n    LayoutConfigOptions,\n    MediaMarshaller,\n    StyleBuilder,\n    StyleDefinition,\n    StyleUtils,\n    validateBasis,\n} from 'ng-flex-layout/core';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { extendObject, isFlowHorizontal } from 'ng-flex-layout/_private-utils';\n\ninterface FlexBuilderParent {\n    direction: string\n    hasWrap: boolean\n}\n\n@Injectable({providedIn: 'root'})\nexport class FlexStyleBuilder extends StyleBuilder {\n    constructor(@Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions) {\n        super();\n    }\n    buildStyles(input: string, parent: FlexBuilderParent) {\n        let [grow, shrink, ...basisParts]: (string|number)[] = input.split(' ');\n        let basis = basisParts.join(' ');\n\n        // The flex-direction of this element's flex container. Defaults to 'row'.\n        const direction = (parent.direction.indexOf('column') > -1) ? 'column' : 'row';\n\n        const max = isFlowHorizontal(direction) ? 'max-width' : 'max-height';\n        const min = isFlowHorizontal(direction) ? 'min-width' : 'min-height';\n\n        const hasCalc = String(basis).indexOf('calc') > -1;\n        const usingCalc = hasCalc || (basis === 'auto');\n        const isPercent = String(basis).indexOf('%') > -1 && !hasCalc;\n        const hasUnits = String(basis).indexOf('px') > -1 || String(basis).indexOf('rem') > -1 ||\n      String(basis).indexOf('em') > -1 || String(basis).indexOf('vw') > -1 ||\n      String(basis).indexOf('vh') > -1;\n\n        let isValue = (hasCalc || hasUnits);\n\n        grow = (grow == '0') ? 0 : grow;\n        shrink = (shrink == '0') ? 0 : shrink;\n\n        // make box inflexible when shrink and grow are both zero\n        // should not set a min when the grow is zero\n        // should not set a max when the shrink is zero\n        const isFixed = !grow && !shrink;\n\n        let css: {[key: string]: string | number | null} = {};\n\n        // flex-basis allows you to specify the initial/starting main-axis size of the element,\n        // before anything else is computed. It can either be a percentage or an absolute value.\n        // It is, however, not the breaking point for flex-grow/shrink properties\n        //\n        // flex-grow can be seen as this:\n        //   0: Do not stretch. Either size to element's content width, or obey 'flex-basis'.\n        //   1: (Default value). Stretch; will be the same size to all other flex items on\n        //       the same row since they have a default value of 1.\n        //   ≥2 (integer n): Stretch. Will be n times the size of other elements\n        //      with 'flex-grow: 1' on the same row.\n\n        // Use `null` to clear existing styles.\n        const clearStyles = {\n            'max-width': null,\n            'max-height': null,\n            'min-width': null,\n            'min-height': null\n        };\n        switch (basis || '') {\n            case '':\n                const useColumnBasisZero = this.layoutConfig.useColumnBasisZero !== false;\n                basis = direction === 'row' ? '0%' : (useColumnBasisZero ? '0.000000001px' : 'auto');\n                break;\n            case 'initial':   // default\n            case 'nogrow':\n                grow = 0;\n                basis = 'auto';\n                break;\n            case 'grow':\n                basis = '100%';\n                break;\n            case 'noshrink':\n                shrink = 0;\n                basis = 'auto';\n                break;\n            case 'auto':\n                break;\n            case 'none':\n                grow = 0;\n                shrink = 0;\n                basis = 'auto';\n                break;\n            default:\n                // Defaults to percentage sizing unless `px` is explicitly set\n                if (!isValue && !isPercent && !isNaN(basis as any)) {\n                    basis = basis + '%';\n                }\n\n                // Fix for issue 280\n                if (basis === '0%') {\n                    isValue = true;\n                }\n\n                if (basis === '0px') {\n                    basis = '0%';\n                }\n\n                // fix issue #5345\n                if (hasCalc) {\n                    css = extendObject(clearStyles, {\n                        'flex-grow': grow,\n                        'flex-shrink': shrink,\n                        'flex-basis': isValue ? basis : '100%'\n                    });\n                } else {\n                    css = extendObject(clearStyles, {\n                        'flex': `${grow} ${shrink} ${isValue ? basis : '100%'}`\n                    });\n                }\n\n                break;\n        }\n\n        if (!(css['flex'] || css['flex-grow'])) {\n            if (hasCalc) {\n                css = extendObject(clearStyles, {\n                    'flex-grow': grow,\n                    'flex-shrink': shrink,\n                    'flex-basis': basis\n                });\n            } else {\n                css = extendObject(clearStyles, {\n                    'flex': `${grow} ${shrink} ${basis}`\n                });\n            }\n        }\n\n        // Fix for issues 277, 534, and 728\n        if (basis !== '0%' && basis !== '0px' && basis !== '0.000000001px' && basis !== 'auto') {\n            css[min] = isFixed || (isValue && grow) ? basis : null;\n            css[max] = isFixed || (!usingCalc && shrink) ? basis : null;\n        }\n\n        // Fix for issue 528\n        if (!css[min] && !css[max]) {\n            if (hasCalc) {\n                css = extendObject(clearStyles, {\n                    'flex-grow': grow,\n                    'flex-shrink': shrink,\n                    'flex-basis': basis\n                });\n            } else {\n                css = extendObject(clearStyles, {\n                    'flex': `${grow} ${shrink} ${basis}`\n                });\n            }\n        } else {\n            // Fix for issue 660\n            if (parent.hasWrap) {\n                css[hasCalc ? 'flex-basis' : 'flex'] = css[max] ?\n                    (hasCalc ? css[max] : `${grow} ${shrink} ${css[max]}`) :\n                    (hasCalc ? css[min] : `${grow} ${shrink} ${css[min]}`);\n            }\n        }\n\n        return extendObject(css, {'box-sizing': 'border-box'}) as StyleDefinition;\n    }\n}\n\nconst inputs = [\n    'fxFlex', 'fxFlex.xs', 'fxFlex.sm', 'fxFlex.md',\n    'fxFlex.lg', 'fxFlex.xl', 'fxFlex.lt-sm', 'fxFlex.lt-md',\n    'fxFlex.lt-lg', 'fxFlex.lt-xl', 'fxFlex.gt-xs', 'fxFlex.gt-sm',\n    'fxFlex.gt-md', 'fxFlex.gt-lg'\n];\nconst selector = `\n  [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md],\n  [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md],\n  [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm],\n  [fxFlex.gt-md], [fxFlex.gt-lg]\n`;\n\n/**\n * Directive to control the size of a flex item using flex-basis, flex-grow, and flex-shrink.\n * Corresponds to the css `flex` shorthand property.\n *\n * @see https://css-tricks.com/snippets/css/a-guide-to-flexbox/\n */\n@Directive()\nexport class FlexDirective extends BaseDirective2 implements OnInit {\n\n    protected override DIRECTIVE_KEY = 'flex';\n    protected direction?: string = undefined;\n    protected wrap?: boolean = undefined;\n\n\n    @Input('fxShrink')\n    get shrink(): string {\n        return this.flexShrink;\n    }\n    set shrink(value: string) {\n        this.flexShrink = value || '1';\n        this.triggerReflow();\n    }\n\n    @Input('fxGrow')\n    get grow(): string {\n        return this.flexGrow;\n    }\n    set grow(value: string) {\n        this.flexGrow = value || '1';\n        this.triggerReflow();\n    }\n\n    protected flexGrow = '1';\n    protected flexShrink = '1';\n\n    constructor(elRef: ElementRef,\n        styleUtils: StyleUtils,\n        @Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions,\n        styleBuilder: FlexStyleBuilder,\n        protected override marshal: MediaMarshaller) {\n        super(elRef, styleBuilder, styleUtils, marshal);\n        this.init();\n    }\n\n    ngOnInit() {\n        if (this.parentElement) {\n            this.marshal.trackValue(this.parentElement, 'layout')\n                .pipe(takeUntil(this.destroySubject))\n                .subscribe(this.onLayoutChange.bind(this));\n            this.marshal.trackValue(this.nativeElement, 'layout-align')\n                .pipe(takeUntil(this.destroySubject))\n                .subscribe(this.triggerReflow.bind(this));\n        }\n    }\n\n    /**\n   * Caches the parent container's 'flex-direction' and updates the element's style.\n   * Used as a handler for layout change events from the parent flex container.\n   */\n    protected onLayoutChange(matcher: ElementMatcher) {\n        const layout: string = matcher.value;\n        const layoutParts = layout.split(' ');\n        this.direction = layoutParts[0];\n        this.wrap = layoutParts[1] !== undefined && layoutParts[1] === 'wrap';\n        this.triggerUpdate();\n    }\n\n    /** Input to this is exclusively the basis input value */\n    protected override updateWithValue(value: string) {\n        const addFlexToParent = this.layoutConfig.addFlexToParent !== false;\n        if (this.direction === undefined) {\n            this.direction = this.getFlexFlowDirection(this.parentElement!, addFlexToParent);\n        }\n        if (this.wrap === undefined) {\n            this.wrap = this.hasWrap(this.parentElement!);\n        }\n        const direction = this.direction;\n        const isHorizontal = direction.startsWith('row');\n        const hasWrap = this.wrap;\n        if (isHorizontal && hasWrap) {\n            this.styleCache = flexRowWrapCache;\n        } else if (isHorizontal && !hasWrap) {\n            this.styleCache = flexRowCache;\n        } else if (!isHorizontal && hasWrap) {\n            this.styleCache = flexColumnWrapCache;\n        } else if (!isHorizontal && !hasWrap) {\n            this.styleCache = flexColumnCache;\n        }\n        const basis = String(value).replace(';', '');\n        const parts = validateBasis(basis, this.flexGrow, this.flexShrink);\n        this.addStyles(parts.join(' '), {direction, hasWrap});\n    }\n\n    /** Trigger a style reflow, usually based on a shrink/grow input event */\n    protected triggerReflow() {\n        const activatedValue = this.activatedValue;\n        if (activatedValue !== undefined) {\n            const parts = validateBasis(activatedValue + '', this.flexGrow, this.flexShrink);\n            this.marshal.updateElement(this.nativeElement, this.DIRECTIVE_KEY, parts.join(' '));\n        }\n    }\n}\n\n@Directive({inputs, selector})\nexport class DefaultFlexDirective extends FlexDirective {\n    protected override inputs = inputs;\n}\n\nconst flexRowCache: Map<string, StyleDefinition> = new Map();\nconst flexColumnCache: Map<string, StyleDefinition> = new Map();\nconst flexRowWrapCache: Map<string, StyleDefinition> = new Map();\nconst flexColumnWrapCache: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, OnChanges, Injectable} from '@angular/core';\nimport {\n    BaseDirective2,\n    StyleBuilder,\n    StyleDefinition,\n    StyleUtils,\n    MediaMarshaller,\n} from 'ng-flex-layout/core';\n\n@Injectable({providedIn: 'root'})\nexport class FlexOrderStyleBuilder extends StyleBuilder {\n    buildStyles(value: string) {\n        return {order: (value && parseInt(value, 10)) || ''};\n    }\n}\n\nconst inputs = [\n    'fxFlexOrder', 'fxFlexOrder.xs', 'fxFlexOrder.sm', 'fxFlexOrder.md',\n    'fxFlexOrder.lg', 'fxFlexOrder.xl', 'fxFlexOrder.lt-sm', 'fxFlexOrder.lt-md',\n    'fxFlexOrder.lt-lg', 'fxFlexOrder.lt-xl', 'fxFlexOrder.gt-xs', 'fxFlexOrder.gt-sm',\n    'fxFlexOrder.gt-md', 'fxFlexOrder.gt-lg'\n];\nconst selector = `\n  [fxFlexOrder], [fxFlexOrder.xs], [fxFlexOrder.sm], [fxFlexOrder.md],\n  [fxFlexOrder.lg], [fxFlexOrder.xl], [fxFlexOrder.lt-sm], [fxFlexOrder.lt-md],\n  [fxFlexOrder.lt-lg], [fxFlexOrder.lt-xl], [fxFlexOrder.gt-xs], [fxFlexOrder.gt-sm],\n  [fxFlexOrder.gt-md], [fxFlexOrder.gt-lg]\n`;\n\n/**\n * 'flex-order' flexbox styling directive\n * Configures the positional ordering of the element in a sorted layout container\n * @see https://css-tricks.com/almanac/properties/o/order/\n */\n@Directive()\nexport class FlexOrderDirective extends BaseDirective2 implements OnChanges {\n\n    protected override DIRECTIVE_KEY = 'flex-order';\n\n    constructor(elRef: ElementRef,\n        styleUtils: StyleUtils,\n        styleBuilder: FlexOrderStyleBuilder,\n        marshal: MediaMarshaller) {\n        super(elRef, styleBuilder, styleUtils, marshal);\n        this.init();\n    }\n\n    protected override styleCache = flexOrderCache;\n}\n\nconst flexOrderCache: Map<string, StyleDefinition> = new Map();\n\n@Directive({selector, inputs})\nexport class DefaultFlexOrderDirective extends FlexOrderDirective {\n    protected override inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, OnChanges, Injectable, Inject} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n    MediaMarshaller,\n    BaseDirective2,\n    StyleBuilder,\n    StyleDefinition,\n    StyleUtils,\n    ɵmultiply as multiply,\n    LAYOUT_CONFIG,\n    LayoutConfigOptions,\n} from 'ng-flex-layout/core';\nimport {isFlowHorizontal} from 'ng-flex-layout/_private-utils';\nimport {takeUntil} from 'rxjs/operators';\n\n\nexport interface FlexOffsetParent {\n    layout: string\n    isRtl: boolean\n}\n\n@Injectable({providedIn: 'root'})\nexport class FlexOffsetStyleBuilder extends StyleBuilder {\n    constructor(@Inject(LAYOUT_CONFIG) private _config: LayoutConfigOptions) {\n        super();\n    }\n\n    buildStyles(offset: string, parent: FlexOffsetParent) {\n        offset ||= '0';\n        offset = multiply(offset, this._config.multiplier);\n        const isPercent = String(offset).indexOf('%') > -1;\n        const isPx = String(offset).indexOf('px') > -1;\n        if (!isPx && !isPercent && !isNaN(+offset)) {\n            offset = `${offset}%`;\n        }\n        const horizontalLayoutKey = parent.isRtl ? 'margin-right' : 'margin-left';\n        const styles: StyleDefinition = isFlowHorizontal(parent.layout) ?\n            {[horizontalLayoutKey]: offset} : {'margin-top': offset};\n\n        return styles;\n    }\n}\n\nconst inputs = [\n    'fxFlexOffset', 'fxFlexOffset.xs', 'fxFlexOffset.sm', 'fxFlexOffset.md',\n    'fxFlexOffset.lg', 'fxFlexOffset.xl', 'fxFlexOffset.lt-sm', 'fxFlexOffset.lt-md',\n    'fxFlexOffset.lt-lg', 'fxFlexOffset.lt-xl', 'fxFlexOffset.gt-xs', 'fxFlexOffset.gt-sm',\n    'fxFlexOffset.gt-md', 'fxFlexOffset.gt-lg'\n];\nconst selector = `\n  [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md],\n  [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md],\n  [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm],\n  [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]\n`;\n\n/**\n * 'flex-offset' flexbox styling directive\n * Configures the 'margin-left' of the element in a layout container\n */\n@Directive()\nexport class FlexOffsetDirective extends BaseDirective2 implements OnChanges {\n    protected override DIRECTIVE_KEY = 'flex-offset';\n\n    constructor(elRef: ElementRef,\n        protected directionality: Directionality,\n        styleBuilder: FlexOffsetStyleBuilder,\n        marshal: MediaMarshaller,\n        styler: StyleUtils) {\n        super(elRef, styleBuilder, styler, marshal);\n        this.init([this.directionality.change]);\n        // Parent DOM `layout-gap` with affect the nested child with `flex-offset`\n        if (this.parentElement) {\n            this.marshal\n                .trackValue(this.parentElement, 'layout-gap')\n                .pipe(takeUntil(this.destroySubject))\n                .subscribe(this.triggerUpdate.bind(this));\n        }\n    }\n\n    // *********************************************\n    // Protected methods\n    // *********************************************\n\n    /**\n   * Using the current fxFlexOffset value, update the inline CSS\n   * NOTE: this will assign `margin-left` if the parent flex-direction == 'row',\n   *       otherwise `margin-top` is used for the offset.\n   */\n    protected override updateWithValue(value: string|number = ''): void {\n    // The flex-direction of this element's flex container. Defaults to 'row'.\n        const layout = this.getFlexFlowDirection(this.parentElement!, true);\n        const isRtl = this.directionality.value === 'rtl';\n        if (layout === 'row' && isRtl) {\n            this.styleCache = flexOffsetCacheRowRtl;\n        } else if (layout === 'row' && !isRtl) {\n            this.styleCache = flexOffsetCacheRowLtr;\n        } else if (layout === 'column' && isRtl) {\n            this.styleCache = flexOffsetCacheColumnRtl;\n        } else if (layout === 'column' && !isRtl) {\n            this.styleCache = flexOffsetCacheColumnLtr;\n        }\n        this.addStyles(value + '', {layout, isRtl});\n    }\n}\n\n@Directive({selector, inputs})\nexport class DefaultFlexOffsetDirective extends FlexOffsetDirective {\n    protected override inputs = inputs;\n}\n\nconst flexOffsetCacheRowRtl: Map<string, StyleDefinition> = new Map();\nconst flexOffsetCacheColumnRtl: Map<string, StyleDefinition> = new Map();\nconst flexOffsetCacheRowLtr: Map<string, StyleDefinition> = new Map();\nconst flexOffsetCacheColumnLtr: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable} from '@angular/core';\nimport {\n    MediaMarshaller,\n    BaseDirective2,\n    StyleBuilder,\n    StyleDefinition,\n    StyleUtils,\n} from 'ng-flex-layout/core';\n\n@Injectable({providedIn: 'root'})\nexport class FlexAlignStyleBuilder extends StyleBuilder {\n    buildStyles(input: string) {\n        input = input || 'stretch';\n        const styles: StyleDefinition = {};\n\n        // Cross-axis\n        switch (input) {\n            case 'start':\n                styles['align-self'] = 'flex-start';\n                break;\n            case 'end':\n                styles['align-self'] = 'flex-end';\n                break;\n            default:\n                styles['align-self'] = input;\n                break;\n        }\n\n        return styles;\n    }\n}\n\nconst inputs = [\n    'fxFlexAlign', 'fxFlexAlign.xs', 'fxFlexAlign.sm', 'fxFlexAlign.md',\n    'fxFlexAlign.lg', 'fxFlexAlign.xl', 'fxFlexAlign.lt-sm', 'fxFlexAlign.lt-md',\n    'fxFlexAlign.lt-lg', 'fxFlexAlign.lt-xl', 'fxFlexAlign.gt-xs', 'fxFlexAlign.gt-sm',\n    'fxFlexAlign.gt-md', 'fxFlexAlign.gt-lg'\n];\nconst selector = `\n  [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md],\n  [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md],\n  [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm],\n  [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]\n`;\n\n/**\n * 'flex-align' flexbox styling directive\n * Allows element-specific overrides for cross-axis alignments in a layout container\n * @see https://css-tricks.com/almanac/properties/a/align-self/\n */\n@Directive()\nexport class FlexAlignDirective extends BaseDirective2 {\n\n    protected override DIRECTIVE_KEY = 'flex-align';\n\n    constructor(elRef: ElementRef,\n        styleUtils: StyleUtils,\n        styleBuilder: FlexAlignStyleBuilder,\n        marshal: MediaMarshaller) {\n        super(elRef, styleBuilder, styleUtils, marshal);\n        this.init();\n    }\n\n    protected override styleCache = flexAlignCache;\n}\n\nconst flexAlignCache: Map<string, StyleDefinition> = new Map();\n\n@Directive({selector, inputs})\nexport class DefaultFlexAlignDirective extends FlexAlignDirective {\n    protected override inputs = inputs;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable} from '@angular/core';\nimport {\n    BaseDirective2,\n    StyleBuilder,\n    StyleDefinition,\n    StyleUtils,\n    MediaMarshaller,\n} from 'ng-flex-layout/core';\n\nconst FLEX_FILL_CSS = {\n    'margin': 0,\n    'width': '100%',\n    'height': '100%',\n    'min-width': '100%',\n    'min-height': '100%'\n};\n\n@Injectable({providedIn: 'root'})\nexport class FlexFillStyleBuilder extends StyleBuilder {\n    buildStyles(_input: string) {\n        return FLEX_FILL_CSS;\n    }\n}\n\n/**\n * 'fxFill' flexbox styling directive\n *  Maximizes width and height of element in a layout container\n *\n *  NOTE: fxFill is NOT responsive API!!\n */\n@Directive({\n    selector: '[fxFill], [fxFlexFill]',\n    standalone: false\n})\nexport class FlexFillDirective extends BaseDirective2 {\n    constructor(elRef: ElementRef,\n        styleUtils: StyleUtils,\n        styleBuilder: FlexFillStyleBuilder,\n        marshal: MediaMarshaller) {\n        super(elRef, styleBuilder, styleUtils, marshal);\n        this.addStyles('');\n    }\n\n    protected override styleCache = flexFillCache;\n}\n\nconst flexFillCache: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {Directive, ElementRef, Injectable} from '@angular/core';\nimport {\n    BaseDirective2,\n    StyleBuilder,\n    StyleDefinition,\n    StyleUtils,\n    MediaMarshaller,\n    ElementMatcher,\n} from 'ng-flex-layout/core';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {extendObject} from 'ng-flex-layout/_private-utils';\nimport {LAYOUT_VALUES, isFlowHorizontal} from 'ng-flex-layout/_private-utils';\n\nexport interface LayoutAlignParent {\n    layout: string\n    inline: boolean\n}\n\n@Injectable({providedIn: 'root'})\nexport class LayoutAlignStyleBuilder extends StyleBuilder {\n    buildStyles(align: string, parent: LayoutAlignParent) {\n        const css: StyleDefinition = {}, [mainAxis, crossAxis] = align.split(' ');\n\n        // Main axis\n        switch (mainAxis) {\n            case 'center':\n                css['justify-content'] = 'center';\n                break;\n            case 'space-around':\n                css['justify-content'] = 'space-around';\n                break;\n            case 'space-between':\n                css['justify-content'] = 'space-between';\n                break;\n            case 'space-evenly':\n                css['justify-content'] = 'space-evenly';\n                break;\n            case 'end':\n            case 'flex-end':\n                css['justify-content'] = 'flex-end';\n                break;\n            case 'start':\n            case 'flex-start':\n            default :\n                css['justify-content'] = 'flex-start';  // default main axis\n                break;\n        }\n\n        // Cross-axis\n        switch (crossAxis) {\n            case 'start':\n            case 'flex-start':\n                css['align-items'] = css['align-content'] = 'flex-start';\n                break;\n            case 'center':\n                css['align-items'] = css['align-content'] = 'center';\n                break;\n            case 'end':\n            case 'flex-end':\n                css['align-items'] = css['align-content'] = 'flex-end';\n                break;\n            case 'space-between':\n                css['align-content'] = 'space-between';\n                css['align-items'] = 'stretch';\n                break;\n            case 'space-around':\n                css['align-content'] = 'space-around';\n                css['align-items'] = 'stretch';\n                break;\n            case 'baseline':\n                css['align-content'] = 'stretch';\n                css['align-items'] = 'baseline';\n                break;\n            case 'stretch':\n            default : // 'stretch'\n                css['align-items'] = css['align-content'] = 'stretch';   // default cross axis\n                break;\n        }\n\n        return extendObject(css, {\n            'display' : parent.inline ? 'inline-flex' : 'flex',\n            'flex-direction' : parent.layout,\n            'box-sizing' : 'border-box',\n            'max-width': crossAxis === 'stretch' ?\n                !isFlowHorizontal(parent.layout) ? '100%' : null : null,\n            'max-height': crossAxis === 'stretch' ?\n                isFlowHorizontal(parent.layout) ? '100%' : null : null,\n        }) as StyleDefinition;\n    }\n}\n\nconst inputs = [\n    'fxLayoutAlign', 'fxLayoutAlign.xs', 'fxLayoutAlign.sm', 'fxLayoutAlign.md',\n    'fxLayoutAlign.lg', 'fxLayoutAlign.xl', 'fxLayoutAlign.lt-sm', 'fxLayoutAlign.lt-md',\n    'fxLayoutAlign.lt-lg', 'fxLayoutAlign.lt-xl', 'fxLayoutAlign.gt-xs', 'fxLayoutAlign.gt-sm',\n    'fxLayoutAlign.gt-md', 'fxLayoutAlign.gt-lg'\n];\nconst selector = `\n  [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],\n  [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],\n  [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],\n  [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]\n`;\n\n/**\n * 'layout-align' flexbox styling directive\n *  Defines positioning of child elements along main and cross axis in a layout container\n *  Optional values: {main-axis} values or {main-axis cross-axis} value pairs\n *\n *  @see https://css-tricks.com/almanac/properties/j/justify-content/\n *  @see https://css-tricks.com/almanac/properties/a/align-items/\n *  @see https://css-tricks.com/almanac/properties/a/align-content/\n */\n@Directive()\nexport class LayoutAlignDirective extends BaseDirective2 {\n    protected override DIRECTIVE_KEY = 'layout-align';\n    protected layout = 'row';  // default flex-direction\n    protected inline = false;  // default inline value\n\n    constructor(elRef: ElementRef,\n        styleUtils: StyleUtils,\n        styleBuilder: LayoutAlignStyleBuilder,\n        marshal: MediaMarshaller) {\n        super(elRef, styleBuilder, styleUtils, marshal);\n        this.init();\n        this.marshal.trackValue(this.nativeElement, 'layout')\n            .pipe(takeUntil(this.destroySubject))\n            .subscribe(this.onLayoutChange.bind(this));\n    }\n\n    // *********************************************\n    // Protected methods\n    // *********************************************\n\n    /**\n   *\n   */\n    protected override updateWithValue(value: string) {\n        const layout = this.layout || 'row';\n        const inline = this.inline;\n        if (layout === 'row' && inline) {\n            this.styleCache = layoutAlignHorizontalInlineCache;\n        } else if (layout === 'row' && !inline) {\n            this.styleCache = layoutAlignHorizontalCache;\n        } else if (layout === 'row-reverse' && inline) {\n            this.styleCache = layoutAlignHorizontalRevInlineCache;\n        } else if (layout === 'row-reverse' && !inline) {\n            this.styleCache = layoutAlignHorizontalRevCache;\n        } else if (layout === 'column' && inline) {\n            this.styleCache = layoutAlignVerticalInlineCache;\n        } else if (layout === 'column' && !inline) {\n            this.styleCache = layoutAlignVerticalCache;\n        } else if (layout === 'column-reverse' && inline) {\n            this.styleCache = layoutAlignVerticalRevInlineCache;\n        } else if (layout === 'column-reverse' && !inline) {\n            this.styleCache = layoutAlignVerticalRevCache;\n        }\n        this.addStyles(value, {layout, inline});\n    }\n\n    /**\n   * Cache the parent container 'flex-direction' and update the 'flex' styles\n   */\n    protected onLayoutChange(matcher: ElementMatcher) {\n        const layoutKeys: string[] = matcher.value.split(' ');\n        this.layout = layoutKeys[0];\n        this.inline = matcher.value.includes('inline');\n        if (!LAYOUT_VALUES.find(x => x === this.layout)) {\n            this.layout = 'row';\n        }\n        this.triggerUpdate();\n    }\n}\n\n@Directive({selector, inputs})\nexport class DefaultLayoutAlignDirective extends LayoutAlignDirective {\n    protected override inputs = inputs;\n}\n\nconst layoutAlignHorizontalCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignVerticalCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignHorizontalRevCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignVerticalRevCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignHorizontalInlineCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignVerticalInlineCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignHorizontalRevInlineCache: Map<string, StyleDefinition> = new Map();\nconst layoutAlignVerticalRevInlineCache: Map<string, StyleDefinition> = new Map();\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { CoreModule } from 'ng-flex-layout/core';\n\nimport { DefaultLayoutDirective } from './layout/layout';\nimport { DefaultLayoutGapDirective } from './layout-gap/layout-gap';\nimport { DefaultFlexDirective } from './flex/flex';\nimport { DefaultFlexOrderDirective } from './flex-order/flex-order';\nimport { DefaultFlexOffsetDirective } from './flex-offset/flex-offset';\nimport { DefaultFlexAlignDirective } from './flex-align/flex-align';\nimport { FlexFillDirective } from './flex-fill/flex-fill';\nimport { DefaultLayoutAlignDirective } from './layout-align/layout-align';\n\n\nconst ALL_DIRECTIVES = [\n    DefaultLayoutDirective,\n    DefaultLayoutGapDirective,\n    DefaultLayoutAlignDirective,\n    DefaultFlexOrderDirective,\n    DefaultFlexOffsetDirective,\n    DefaultFlexAlignDirective,\n    DefaultFlexDirective,\n];\n\n/**\n * *****************************************************************\n * Define module for the Flex API\n * *****************************************************************\n */\n\n@NgModule({\n    imports: [CoreModule, BidiModule, ...ALL_DIRECTIVES],\n    declarations: [FlexFillDirective],\n    exports: [...ALL_DIRECTIVES, FlexFillDirective]\n})\nexport class FlexModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './module';\n\nexport * from './flex/flex';\nexport * from './flex-align/flex-align';\nexport * from './flex-fill/flex-fill';\nexport * from './flex-offset/flex-offset';\nexport * from './flex-order/flex-order';\nexport * from './layout/layout';\nexport * from './layout-align/layout-align';\nexport * from './layout-gap/layout-gap';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["inputs","selector","multiply","i1","i2"],"mappings":";;;;;;;;;;AAAA;;;;;;AAMG;AAmBG,MAAO,kBAAmB,SAAQ,YAAY,CAAA;AAChD,IAAA,WAAW,CAAC,KAAa,EAAE,EAAC,OAAO,EAAqB,EAAA;AACpD,QAAA,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC;QACjC,OAAO;AACH,YAAA,GAAG,GAAG;AACN,YAAA,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC,OAAO;SACtD;;8GANI,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,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,kBAAkB,cADN,MAAM,EAAA,CAAA,CAAA;;2FAClB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;AAWhC,MAAMA,QAAM,GAAG;AACX,IAAA,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;AACvD,IAAA,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB;AAChE,IAAA,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;AACtE,IAAA,gBAAgB,EAAE;CACrB;AACD,MAAMC,UAAQ,GAAG;;;;;CAKhB;AAED;;;;;;AAMG;AAEG,MAAO,eAAgB,SAAQ,cAAc,CAAA;IAI/C,WAAY,CAAA,KAAiB,EACzB,UAAsB,EACtB,YAAgC,EAChC,OAAwB,EACO,OAA4B,EAAA;QAC3D,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;QADhB,IAAO,CAAA,OAAA,GAAP,OAAO;QANvB,IAAa,CAAA,aAAA,GAAG,QAAQ;QAQvC,IAAI,CAAC,IAAI,EAAE;;AAGI,IAAA,eAAe,CAAC,KAAa,EAAA;AAC5C,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB;QAC5D,MAAM,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,EAAE;AACjG,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE;QACpD,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;AAEtC,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,CAAC;AAChC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;;;AArBxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,oIAQZ,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGARhB,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;0BASQ,MAAM;2BAAC,aAAa;;AAmBvB,MAAO,sBAAuB,SAAQ,eAAe,CAAA;AAD3D,IAAA,WAAA,GAAA;;QAEuB,IAAM,CAAA,MAAA,GAAGD,QAAM;AACrC;8GAFY,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sPAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;mBAAC,YAACC,UAAQ,UAAED,QAAM,EAAC;;AAM7B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB;;ACxF5C;;;;;;AAMG;AAiCH,MAAM,gBAAgB,GAAG;AACrB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,eAAe,EAAE;CACpB;AAGK,MAAO,qBAAsB,SAAQ,YAAY,CAAA;IACnD,WAAoB,CAAA,OAAmB,EACJ,OAA4B,EAAA;AAC3D,QAAA,KAAK,EAAE;QAFS,IAAO,CAAA,OAAA,GAAP,OAAO;QACQ,IAAO,CAAA,OAAA,GAAP,OAAO;;IAI1C,WAAW,CAAC,QAAgB,EAAE,MAAuB,EAAA;AACjD,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AACnC,YAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC9D,QAAQ,GAAGE,SAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;;YAGtD,OAAO,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC;;aACpD;AACH,YAAA,OAAO,EAAE;;;AAIR,IAAA,UAAU,CAAC,QAAgB,EAAE,OAAwB,EAAE,MAAuB,EAAA;AACnF,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC1B,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AACnC,YAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC9D,QAAQ,GAAGA,SAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;;YAEtD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;;aAC3D;YACH,QAAQ,GAAGA,SAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACtD,YAAA,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AAEzC,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAG;;;YAI7B,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC;;YAGhD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;;;AAI/D,IAAA,eAAe,CAAC,KAAa,EAAA;QACjC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAG,EAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,KAAK;;AA3ChE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,4CAElB,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFhB,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,cADT,MAAM,EAAA,CAAA,CAAA;;2FAClB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;0BAGvB,MAAM;2BAAC,aAAa;;AA6C7B,MAAMF,QAAM,GAAG;AACX,IAAA,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;AACnE,IAAA,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB;AAC5E,IAAA,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB;AAClF,IAAA,mBAAmB,EAAE;CACxB;AACD,MAAMC,UAAQ,GAAG;;;;;CAKhB;AAED;;;AAGG;AAEG,MAAO,kBAAmB,SAAQ,cAAc,CAAA;;AAMlD,IAAA,IAAc,aAAa,GAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ;QACvC,MAAM,MAAM,GAAU,EAAE;;QAGxB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;YAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;;AAEtB,QAAA,OAAO,MAAM;;IAGjB,WAAY,CAAA,KAAiB,EACf,IAAY,EACZ,cAA8B,EAC9B,UAAsB,EAChC,YAAmC,EACnC,OAAwB,EAAA;QACxB,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;QALrC,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAc,CAAA,cAAA,GAAd,cAAc;QACd,IAAU,CAAA,UAAA,GAAV,UAAU;AAnBd,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC;QACN,IAAa,CAAA,aAAA,GAAG,YAAY;AACrC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;AAqB3C,QAAA,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;AACvF,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACxB,QAAA,IAAI,CAAC;AACA,aAAA,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ;AACvC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;aACnC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;IAOlD,kBAAkB,GAAA;QACd,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,aAAa,EAAE;;IAGf,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;;;;;;AAQlC;;AAEC;AACS,IAAA,cAAc,CAAC,OAAuB,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAW,OAAO,CAAC,KAAK;;QAEpC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;QAEvB,IAAI,CAAC,aAAa,EAAE;;AAGxB;;AAEC;AACkB,IAAA,eAAe,CAAC,KAAa,EAAA;;AAE5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC;AACd,aAAA,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AACtD,aAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACX,YAAA,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC;AACnD,YAAA,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC;AACnD,YAAA,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,MAAM,EAAE;AACrD,gBAAA,OAAO,CAAC;;iBACL;AACH,gBAAA,OAAO,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;;AAEvC,SAAC,CAAC;AAEN,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;AAChD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YAC1B,IAAI,MAAM,KAAK,KAAK,IAAI,cAAc,KAAK,KAAK,EAAE;AAC9C,gBAAA,IAAI,CAAC,UAAU,GAAG,oBAAoB;;iBACnC,IAAI,MAAM,KAAK,KAAK,IAAI,cAAc,KAAK,KAAK,EAAE;AACrD,gBAAA,IAAI,CAAC,UAAU,GAAG,oBAAoB;;iBACnC,IAAI,MAAM,KAAK,QAAQ,IAAI,cAAc,KAAK,KAAK,EAAE;AACxD,gBAAA,IAAI,CAAC,UAAU,GAAG,uBAAuB;;iBACtC,IAAI,MAAM,KAAK,QAAQ,IAAI,cAAc,KAAK,KAAK,EAAE;AACxD,gBAAA,IAAI,CAAC,UAAU,GAAG,uBAAuB;;AAE7C,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC;;;;IAK3C,WAAW,GAAA;AAC1B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;QACjD,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS;YACtC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;;QAGzD,IAAI,QAAQ,EAAE;YACV,KAAK,CAAC,WAAW,EAAE;;;AAIvB,QAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAC,CAAC,aAAa,GAAG,EAAE,EAAC,EAAE,IAAI,CAAC,aAAa,CAAC;;;AAIzE,IAAA,WAAW,CAAC,MAAmB,EAAA;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;QACxD,OAAO,KAAK,KAAK,IAAI;AACvB,aAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,MAAM,CAAC;;IAG1E,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,YAAA,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;gBACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAA2B,KAAI;AACjE,oBAAA,MAAM,gBAAgB,GAAG,CAAC,EAAkB,KAAa;AACrD,wBAAA,OAAO,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;AAC3D,6BAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,qBAAC;;AAGD,oBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAClC,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;;AAEnC,iBAAC,CAAC;AACF,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;;AAEpE,SAAC,CAAC;;8GAzIG,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;AAiJK,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;AADjE,IAAA,WAAA,GAAA;;QAEuB,IAAM,CAAA,MAAA,GAAGD,QAAM;AACrC;8GAFY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gSAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;mBAAC,YAACC,UAAQ,UAAED,QAAM,EAAC;;AAK7B,MAAM,oBAAoB,GAAiC,IAAI,GAAG,EAAE;AACpE,MAAM,uBAAuB,GAAiC,IAAI,GAAG,EAAE;AACvE,MAAM,oBAAoB,GAAiC,IAAI,GAAG,EAAE;AACpE,MAAM,uBAAuB,GAAiC,IAAI,GAAG,EAAE;AAEvE,MAAM,cAAc,GAAG,OAAO;AAE9B,SAAS,gBAAgB,CAAC,KAAa,EAAE,cAAsB,EAAA;AAC3D,IAAA,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACzC,IAAA,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO;IAC/B,IAAI,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,WAAW,GAAG,KAAK;AAErE,IAAA,IAAI,cAAc,KAAK,KAAK,EAAE;QAC1B,WAAW,GAAG,OAAO;;SAClB;QACH,YAAY,GAAG,OAAO;;IAG1B,OAAO,EAAC,SAAS,EAAE,CAAO,IAAA,EAAA,YAAY,CAAI,CAAA,EAAA,aAAa,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA,EAAC;AAC7E;AAEA,SAAS,eAAe,CAAC,KAAa,EAAE,cAAsB,EAAA;AAC1D,IAAA,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACzC,IAAA,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO;IAC/B,MAAM,KAAK,GAAG,CAAC,GAAW,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;AACxC,IAAA,IAAI,WAAW,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,KAAK;AAEzE,IAAA,IAAI,cAAc,KAAK,KAAK,EAAE;AAC1B,QAAA,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;;SACxB;AACH,QAAA,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;;IAGhC,OAAO,EAAC,QAAQ,EAAE,CAAO,IAAA,EAAA,WAAW,CAAI,CAAA,EAAA,YAAY,CAAI,CAAA,EAAA,UAAU,CAAE,CAAA,EAAC;AACzE;AAEA,SAAS,aAAa,CAAC,cAAsB,EAAE,MAAc,EAAA;IACzD,QAAQ,MAAM;AACV,QAAA,KAAK,QAAQ;AACT,YAAA,OAAO,eAAe;AAC1B,QAAA,KAAK,gBAAgB;AACjB,YAAA,OAAO,YAAY;AACvB,QAAA,KAAK,KAAK;YACN,OAAO,cAAc,KAAK,KAAK,GAAG,aAAa,GAAG,cAAc;AACpE,QAAA,KAAK,aAAa;YACd,OAAO,cAAc,KAAK,KAAK,GAAG,cAAc,GAAG,aAAa;AACpE,QAAA;YACI,OAAO,cAAc,KAAK,KAAK,GAAG,aAAa,GAAG,cAAc;;AAE5E;AAEA,SAAS,WAAW,CAAC,QAAgB,EACjC,MAAgD,EAAA;AAChD,IAAA,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC;AAC/D,IAAA,MAAM,OAAO,GAAmC,EAAC,GAAG,gBAAgB,EAAC;AACrE,IAAA,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ;AACvB,IAAA,OAAO,OAAO;AAClB;;AC7TA;;;;;;AAMG;AAuBG,MAAO,gBAAiB,SAAQ,YAAY,CAAA;AAC9C,IAAA,WAAA,CAA6C,YAAiC,EAAA;AAC1E,QAAA,KAAK,EAAE;QADkC,IAAY,CAAA,YAAA,GAAZ,YAAY;;IAGzD,WAAW,CAAC,KAAa,EAAE,MAAyB,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAsB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QACvE,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;QAGhC,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,GAAG,KAAK;AAE9E,QAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,WAAW,GAAG,YAAY;AACpE,QAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,WAAW,GAAG,YAAY;AAEpE,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,KAAK,MAAM,CAAC;AAC/C,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpE,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9B,QAAA,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,CAAC;AAEnC,QAAA,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;AAC/B,QAAA,MAAM,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,MAAM;;;;AAKrC,QAAA,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;QAEhC,IAAI,GAAG,GAA4C,EAAE;;;;;;;;;;;;AAcrD,QAAA,MAAM,WAAW,GAAG;AAChB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,YAAY,EAAE;SACjB;AACD,QAAA,QAAQ,KAAK,IAAI,EAAE;AACf,YAAA,KAAK,EAAE;gBACH,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,KAAK,KAAK;gBACzE,KAAK,GAAG,SAAS,KAAK,KAAK,GAAG,IAAI,IAAI,kBAAkB,GAAG,eAAe,GAAG,MAAM,CAAC;gBACpF;YACJ,KAAK,SAAS,CAAC;AACf,YAAA,KAAK,QAAQ;gBACT,IAAI,GAAG,CAAC;gBACR,KAAK,GAAG,MAAM;gBACd;AACJ,YAAA,KAAK,MAAM;gBACP,KAAK,GAAG,MAAM;gBACd;AACJ,YAAA,KAAK,UAAU;gBACX,MAAM,GAAG,CAAC;gBACV,KAAK,GAAG,MAAM;gBACd;AACJ,YAAA,KAAK,MAAM;gBACP;AACJ,YAAA,KAAK,MAAM;gBACP,IAAI,GAAG,CAAC;gBACR,MAAM,GAAG,CAAC;gBACV,KAAK,GAAG,MAAM;gBACd;AACJ,YAAA;;AAEI,gBAAA,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,KAAY,CAAC,EAAE;AAChD,oBAAA,KAAK,GAAG,KAAK,GAAG,GAAG;;;AAIvB,gBAAA,IAAI,KAAK,KAAK,IAAI,EAAE;oBAChB,OAAO,GAAG,IAAI;;AAGlB,gBAAA,IAAI,KAAK,KAAK,KAAK,EAAE;oBACjB,KAAK,GAAG,IAAI;;;gBAIhB,IAAI,OAAO,EAAE;AACT,oBAAA,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE;AAC5B,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,aAAa,EAAE,MAAM;wBACrB,YAAY,EAAE,OAAO,GAAG,KAAK,GAAG;AACnC,qBAAA,CAAC;;qBACC;AACH,oBAAA,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE;AAC5B,wBAAA,MAAM,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAI,CAAA,EAAA,OAAO,GAAG,KAAK,GAAG,MAAM,CAAE;AAC1D,qBAAA,CAAC;;gBAGN;;AAGR,QAAA,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE;YACpC,IAAI,OAAO,EAAE;AACT,gBAAA,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE;AAC5B,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,aAAa,EAAE,MAAM;AACrB,oBAAA,YAAY,EAAE;AACjB,iBAAA,CAAC;;iBACC;AACH,gBAAA,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE;AAC5B,oBAAA,MAAM,EAAE,CAAG,EAAA,IAAI,IAAI,MAAM,CAAA,CAAA,EAAI,KAAK,CAAE;AACvC,iBAAA,CAAC;;;;AAKV,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,eAAe,IAAI,KAAK,KAAK,MAAM,EAAE;AACpF,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI;YACtD,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI;;;AAI/D,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACxB,IAAI,OAAO,EAAE;AACT,gBAAA,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE;AAC5B,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,aAAa,EAAE,MAAM;AACrB,oBAAA,YAAY,EAAE;AACjB,iBAAA,CAAC;;iBACC;AACH,gBAAA,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE;AAC5B,oBAAA,MAAM,EAAE,CAAG,EAAA,IAAI,IAAI,MAAM,CAAA,CAAA,EAAI,KAAK,CAAE;AACvC,iBAAA,CAAC;;;aAEH;;AAEH,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAChB,gBAAA,GAAG,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;qBAC1C,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,EAAI,GAAG,CAAC,GAAG,CAAC,CAAA,CAAE;qBACpD,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAI,CAAA,EAAA,GAAG,CAAC,GAAG,CAAC,CAAE,CAAA,CAAC;;;QAIlE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAC,YAAY,EAAE,YAAY,EAAC,CAAoB;;AApJpE,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,kBACL,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AADxB,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,gBAAgB,cADJ,MAAM,EAAA,CAAA,CAAA;;2FAClB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;0BAEf,MAAM;2BAAC,aAAa;;AAuJrC,MAAMA,QAAM,GAAG;AACX,IAAA,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW;AAC/C,IAAA,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc;AACxD,IAAA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9D,IAAA,cAAc,EAAE;CACnB;AACD,MAAMC,UAAQ,GAAG;;;;;CAKhB;AAED;;;;;AAKG;AAEG,MAAO,aAAc,SAAQ,cAAc,CAAA;AAO7C,IAAA,IACI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,UAAU;;IAE1B,IAAI,MAAM,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,IAAI,GAAG;QAC9B,IAAI,CAAC,aAAa,EAAE;;AAGxB,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,QAAQ;;IAExB,IAAI,IAAI,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,GAAG;QAC5B,IAAI,CAAC,aAAa,EAAE;;IAMxB,WAAY,CAAA,KAAiB,EACzB,UAAsB,EACW,YAAiC,EAClE,YAA8B,EACX,OAAwB,EAAA;QAC3C,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;QAHd,IAAY,CAAA,YAAA,GAAZ,YAAY;QAE1B,IAAO,CAAA,OAAA,GAAP,OAAO;QA9BX,IAAa,CAAA,aAAA,GAAG,MAAM;QAC/B,IAAS,CAAA,SAAA,GAAY,SAAS;QAC9B,IAAI,CAAA,IAAA,GAAa,SAAS;QAqB1B,IAAQ,CAAA,QAAA,GAAG,GAAG;QACd,IAAU,CAAA,UAAA,GAAG,GAAG;QAQtB,IAAI,CAAC,IAAI,EAAE;;IAGf,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ;AAC/C,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;iBACnC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc;AACrD,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;iBACnC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;AAIrD;;;AAGC;AACS,IAAA,cAAc,CAAC,OAAuB,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAW,OAAO,CAAC,KAAK;QACpC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM;QACrE,IAAI,CAAC,aAAa,EAAE;;;AAIL,IAAA,eAAe,CAAC,KAAa,EAAA;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,KAAK,KAAK;AACnE,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAc,EAAE,eAAe,CAAC;;AAEpF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAc,CAAC;;AAEjD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;QAChC,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;AAChD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI;AACzB,QAAA,IAAI,YAAY,IAAI,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,gBAAgB;;AAC/B,aAAA,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,YAAY;;AAC3B,aAAA,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,mBAAmB;;AAClC,aAAA,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE;AAClC,YAAA,IAAI,CAAC,UAAU,GAAG,eAAe;;AAErC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAC5C,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;AAClE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,SAAS,EAAE,OAAO,EAAC,CAAC;;;IAI/C,aAAa,GAAA;AACnB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;AAC1C,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAC9B,YAAA,MAAM,KAAK,GAAG,aAAa,CAAC,cAAc,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;YAChF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;AA3FlF,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,sEA8BV,aAAa,EAAA,EAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGA9BhB,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,CAAA,EAAA,IAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BA+BQ,MAAM;2BAAC,aAAa;mGAtBrB,MAAM,EAAA,CAAA;sBADT,KAAK;uBAAC,UAAU;gBAUb,IAAI,EAAA,CAAA;sBADP,KAAK;uBAAC,QAAQ;;AAiFb,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AADvD,IAAA,WAAA,GAAA;;QAEuB,IAAM,CAAA,MAAA,GAAGD,QAAM;AACrC;8GAFY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0NAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;mBAAC,UAACA,QAAM,YAAEC,UAAQ,EAAC;;AAK7B,MAAM,YAAY,GAAiC,IAAI,GAAG,EAAE;AAC5D,MAAM,eAAe,GAAiC,IAAI,GAAG,EAAE;AAC/D,MAAM,gBAAgB,GAAiC,IAAI,GAAG,EAAE;AAChE,MAAM,mBAAmB,GAAiC,IAAI,GAAG,EAAE;;ACjTnE;;;;;;AAMG;AAWG,MAAO,qBAAsB,SAAQ,YAAY,CAAA;AACnD,IAAA,WAAW,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,EAAC,KAAK,EAAE,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAC;;8GAF/C,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;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,cADT,MAAM,EAAA,CAAA,CAAA;;2FAClB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;AAOhC,MAAMD,QAAM,GAAG;AACX,IAAA,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;AACnE,IAAA,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB;AAC5E,IAAA,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB;AAClF,IAAA,mBAAmB,EAAE;CACxB;AACD,MAAMC,UAAQ,GAAG;;;;;CAKhB;AAED;;;;AAIG;AAEG,MAAO,kBAAmB,SAAQ,cAAc,CAAA;AAIlD,IAAA,WAAA,CAAY,KAAiB,EACzB,UAAsB,EACtB,YAAmC,EACnC,OAAwB,EAAA;QACxB,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;QANhC,IAAa,CAAA,aAAA,GAAG,YAAY;QAU5B,IAAU,CAAA,UAAA,GAAG,cAAc;QAH1C,IAAI,CAAC,IAAI,EAAE;;8GATN,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;AAgBD,MAAM,cAAc,GAAiC,IAAI,GAAG,EAAE;AAGxD,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;AADjE,IAAA,WAAA,GAAA;;QAEuB,IAAM,CAAA,MAAA,GAAGD,QAAM;AACrC;8GAFY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gSAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;mBAAC,YAACC,UAAQ,UAAED,QAAM,EAAC;;;AC3D7B;;;;;;AAMG;AAuBG,MAAO,sBAAuB,SAAQ,YAAY,CAAA;AACpD,IAAA,WAAA,CAA2C,OAA4B,EAAA;AACnE,QAAA,KAAK,EAAE;QADgC,IAAO,CAAA,OAAA,GAAP,OAAO;;IAIlD,WAAW,CAAC,MAAc,EAAE,MAAwB,EAAA;QAChD,MAAM,KAAK,GAAG;QACd,MAAM,GAAGE,SAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AAClD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClD,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE;AACxC,YAAA,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,CAAA,CAAG;;AAEzB,QAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,GAAG,cAAc,GAAG,aAAa;QACzE,MAAM,MAAM,GAAoB,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;AAC3D,YAAA,EAAC,CAAC,mBAAmB,GAAG,MAAM,EAAC,GAAG,EAAC,YAAY,EAAE,MAAM,EAAC;AAE5D,QAAA,OAAO,MAAM;;AAjBR,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,kBACX,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AADxB,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,sBAAsB,cADV,MAAM,EAAA,CAAA,CAAA;;2FAClB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;0BAEf,MAAM;2BAAC,aAAa;;AAoBrC,MAAMF,QAAM,GAAG;AACX,IAAA,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB;AACvE,IAAA,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB;AAChF,IAAA,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB;AACtF,IAAA,oBAAoB,EAAE;CACzB;AACD,MAAMC,UAAQ,GAAG;;;;;CAKhB;AAED;;;AAGG;AAEG,MAAO,mBAAoB,SAAQ,cAAc,CAAA;IAGnD,WAAY,CAAA,KAAiB,EACf,cAA8B,EACxC,YAAoC,EACpC,OAAwB,EACxB,MAAkB,EAAA;QAClB,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;QAJjC,IAAc,CAAA,cAAA,GAAd,cAAc;QAHT,IAAa,CAAA,aAAA,GAAG,aAAa;QAQ5C,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;AAEvC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC;AACA,iBAAA,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY;AAC3C,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;iBACnC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;;AAQrD;;;;AAIC;IACkB,eAAe,CAAC,QAAuB,EAAE,EAAA;;AAExD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAc,EAAE,IAAI,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,KAAK,KAAK;AACjD,QAAA,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB;;AACpC,aAAA,IAAI,MAAM,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB;;AACpC,aAAA,IAAI,MAAM,KAAK,QAAQ,IAAI,KAAK,EAAE;AACrC,YAAA,IAAI,CAAC,UAAU,GAAG,wBAAwB;;AACvC,aAAA,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,wBAAwB;;AAE9C,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC;;8GAzCtC,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;AA+CK,MAAO,0BAA2B,SAAQ,mBAAmB,CAAA;AADnE,IAAA,WAAA,GAAA;;QAEuB,IAAM,CAAA,MAAA,GAAGJ,QAAM;AACrC;8GAFY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8SAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,SAAS;mBAAC,YAACC,UAAQ,UAAED,QAAM,EAAC;;AAK7B,MAAM,qBAAqB,GAAiC,IAAI,GAAG,EAAE;AACrE,MAAM,wBAAwB,GAAiC,IAAI,GAAG,EAAE;AACxE,MAAM,qBAAqB,GAAiC,IAAI,GAAG,EAAE;AACrE,MAAM,wBAAwB,GAAiC,IAAI,GAAG,EAAE;;ACzHxE;;;;;;AAMG;AAWG,MAAO,qBAAsB,SAAQ,YAAY,CAAA;AACnD,IAAA,WAAW,CAAC,KAAa,EAAA;AACrB,QAAA,KAAK,GAAG,KAAK,IAAI,SAAS;QAC1B,MAAM,MAAM,GAAoB,EAAE;;QAGlC,QAAQ,KAAK;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY;gBACnC;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU;gBACjC;AACJ,YAAA;AACI,gBAAA,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK;gBAC5B;;AAGR,QAAA,OAAO,MAAM;;8GAlBR,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;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,cADT,MAAM,EAAA,CAAA,CAAA;;2FAClB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;AAuBhC,MAAMA,QAAM,GAAG;AACX,IAAA,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;AACnE,IAAA,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB;AAC5E,IAAA,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB;AAClF,IAAA,mBAAmB,EAAE;CACxB;AACD,MAAMC,UAAQ,GAAG;;;;;CAKhB;AAED;;;;AAIG;AAEG,MAAO,kBAAmB,SAAQ,cAAc,CAAA;AAIlD,IAAA,WAAA,CAAY,KAAiB,EACzB,UAAsB,EACtB,YAAmC,EACnC,OAAwB,EAAA;QACxB,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;QANhC,IAAa,CAAA,aAAA,GAAG,YAAY;QAU5B,IAAU,CAAA,UAAA,GAAG,cAAc;QAH1C,IAAI,CAAC,IAAI,EAAE;;8GATN,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;AAgBD,MAAM,cAAc,GAAiC,IAAI,GAAG,EAAE;AAGxD,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;AADjE,IAAA,WAAA,GAAA;;QAEuB,IAAM,CAAA,MAAA,GAAGD,QAAM;AACrC;8GAFY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gSAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;mBAAC,YAACC,UAAQ,UAAED,QAAM,EAAC;;;AC3E7B;;;;;;AAMG;AAUH,MAAM,aAAa,GAAG;AAClB,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,WAAW,EAAE,MAAM;AACnB,IAAA,YAAY,EAAE;CACjB;AAGK,MAAO,oBAAqB,SAAQ,YAAY,CAAA;AAClD,IAAA,WAAW,CAAC,MAAc,EAAA;AACtB,QAAA,OAAO,aAAa;;8GAFf,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,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,oBAAoB,cADR,MAAM,EAAA,CAAA,CAAA;;2FAClB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;AAOhC;;;;;AAKG;AAKG,MAAO,iBAAkB,SAAQ,cAAc,CAAA;AACjD,IAAA,WAAA,CAAY,KAAiB,EACzB,UAAsB,EACtB,YAAkC,EAClC,OAAwB,EAAA;QACxB,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;QAIhC,IAAU,CAAA,UAAA,GAAG,aAAa;AAHzC,QAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;;8GANb,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE;AACf,iBAAA;;AAaD,MAAM,aAAa,GAAiC,IAAI,GAAG,EAAE;;ACrD7D;;;;;;AAMG;AAqBG,MAAO,uBAAwB,SAAQ,YAAY,CAAA;IACrD,WAAW,CAAC,KAAa,EAAE,MAAyB,EAAA;AAChD,QAAA,MAAM,GAAG,GAAoB,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;QAGzE,QAAQ,QAAQ;AACZ,YAAA,KAAK,QAAQ;AACT,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,QAAQ;gBACjC;AACJ,YAAA,KAAK,cAAc;AACf,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,cAAc;gBACvC;AACJ,YAAA,KAAK,eAAe;AAChB,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,eAAe;gBACxC;AACJ,YAAA,KAAK,cAAc;AACf,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,cAAc;gBACvC;AACJ,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,UAAU;AACX,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,UAAU;gBACnC;AACJ,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,YAAY;AACjB,YAAA;AACI,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;gBACtC;;;QAIR,QAAQ,SAAS;AACb,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,YAAY;gBACb,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,YAAY;gBACxD;AACJ,YAAA,KAAK,QAAQ;gBACT,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,QAAQ;gBACpD;AACJ,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,UAAU;gBACX,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,UAAU;gBACtD;AACJ,YAAA,KAAK,eAAe;AAChB,gBAAA,GAAG,CAAC,eAAe,CAAC,GAAG,eAAe;AACtC,gBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS;gBAC9B;AACJ,YAAA,KAAK,cAAc;AACf,gBAAA,GAAG,CAAC,eAAe,CAAC,GAAG,cAAc;AACrC,gBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS;gBAC9B;AACJ,YAAA,KAAK,UAAU;AACX,gBAAA,GAAG,CAAC,eAAe,CAAC,GAAG,SAAS;AAChC,gBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,UAAU;gBAC/B;AACJ,YAAA,KAAK,SAAS;AACd,YAAA;AACI,gBAAA,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;gBACtD;;QAGR,OAAO,YAAY,CAAC,GAAG,EAAE;YACrB,SAAS,EAAG,MAAM,CAAC,MAAM,GAAG,aAAa,GAAG,MAAM;YAClD,gBAAgB,EAAG,MAAM,CAAC,MAAM;AAChC,YAAA,YAAY,EAAG,YAAY;AAC3B,YAAA,WAAW,EAAE,SAAS,KAAK,SAAS;AAChC,gBAAA,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI;AAC3D,YAAA,YAAY,EAAE,SAAS,KAAK,SAAS;AACjC,gBAAA,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI;AAC7D,SAAA,CAAoB;;8GApEhB,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,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,uBAAuB,cADX,MAAM,EAAA,CAAA,CAAA;;2FAClB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;AAyEhC,MAAM,MAAM,GAAG;AACX,IAAA,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB;AAC3E,IAAA,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB;AACpF,IAAA,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB;AAC1F,IAAA,qBAAqB,EAAE;CAC1B;AACD,MAAM,QAAQ,GAAG;;;;;CAKhB;AAED;;;;;;;;AAQG;AAEG,MAAO,oBAAqB,SAAQ,cAAc,CAAA;AAKpD,IAAA,WAAA,CAAY,KAAiB,EACzB,UAAsB,EACtB,YAAqC,EACrC,OAAwB,EAAA;QACxB,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;QARhC,IAAa,CAAA,aAAA,GAAG,cAAc;AACvC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC;AACf,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC;QAOrB,IAAI,CAAC,IAAI,EAAE;QACX,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ;AAC/C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;aACnC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;AAOlD;;AAEC;AACkB,IAAA,eAAe,CAAC,KAAa,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,QAAA,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,GAAG,gCAAgC;;AAC/C,aAAA,IAAI,MAAM,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,GAAG,0BAA0B;;AACzC,aAAA,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,EAAE;AAC3C,YAAA,IAAI,CAAC,UAAU,GAAG,mCAAmC;;AAClD,aAAA,IAAI,MAAM,KAAK,aAAa,IAAI,CAAC,MAAM,EAAE;AAC5C,YAAA,IAAI,CAAC,UAAU,GAAG,6BAA6B;;AAC5C,aAAA,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,8BAA8B;;AAC7C,aAAA,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE;AACvC,YAAA,IAAI,CAAC,UAAU,GAAG,wBAAwB;;AACvC,aAAA,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,EAAE;AAC9C,YAAA,IAAI,CAAC,UAAU,GAAG,iCAAiC;;AAChD,aAAA,IAAI,MAAM,KAAK,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC/C,YAAA,IAAI,CAAC,UAAU,GAAG,2BAA2B;;QAEjD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC;;AAG3C;;AAEC;AACS,IAAA,cAAc,CAAC,OAAuB,EAAA;QAC5C,MAAM,UAAU,GAAa,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACrD,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;QAEvB,IAAI,CAAC,aAAa,EAAE;;8GAxDf,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;AA8DK,MAAO,2BAA4B,SAAQ,oBAAoB,CAAA;AADrE,IAAA,WAAA,GAAA;;QAEuB,IAAM,CAAA,MAAA,GAAG,MAAM;AACrC;8GAFY,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4TAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;mBAAC,EAAC,QAAQ,EAAE,MAAM,EAAC;;AAK7B,MAAM,0BAA0B,GAAiC,IAAI,GAAG,EAAE;AAC1E,MAAM,wBAAwB,GAAiC,IAAI,GAAG,EAAE;AACxE,MAAM,6BAA6B,GAAiC,IAAI,GAAG,EAAE;AAC7E,MAAM,2BAA2B,GAAiC,IAAI,GAAG,EAAE;AAC3E,MAAM,gCAAgC,GAAiC,IAAI,GAAG,EAAE;AAChF,MAAM,8BAA8B,GAAiC,IAAI,GAAG,EAAE;AAC9E,MAAM,mCAAmC,GAAiC,IAAI,GAAG,EAAE;AACnF,MAAM,iCAAiC,GAAiC,IAAI,GAAG,EAAE;;AClMjF;;;;;;AAMG;AAeH,MAAM,cAAc,GAAG;IACnB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,oBAAoB;CACvB;AAED;;;;AAIG;MAOU,UAAU,CAAA;8GAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,iBAHJ,iBAAiB,CAAA,EAAA,OAAA,EAAA,CADtB,UAAU,EAAE,UAAU,EAhBhC,sBAAsB;YACtB,yBAAyB;YACzB,2BAA2B;YAC3B,yBAAyB;YACzB,0BAA0B;YAC1B,yBAAyB;AACzB,YAAA,oBAAoB,aANpB,sBAAsB;YACtB,yBAAyB;YACzB,2BAA2B;YAC3B,yBAAyB;YACzB,0BAA0B;YAC1B,yBAAyB;AACzB,YAAA,oBAAoB,EAYS,iBAAiB,CAAA,EAAA,CAAA,CAAA;+GAErC,UAAU,EAAA,OAAA,EAAA,CAJT,UAAU,EAAE,UAAU,CAAA,EAAA,CAAA,CAAA;;2FAIvB,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;oBACpD,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,GAAG,cAAc,EAAE,iBAAiB;AACjD,iBAAA;;;ACzCD;;;;;;AAMG;;ACNH;;AAEG;;;;"}