| 1 |
- {"ast":null,"code":"import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport * as i4 from '@angular/cdk/text-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Optional, Self, Inject, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport * as i3 from '@angular/material/core';\nimport { mixinErrorState, MatCommonModule } from '@angular/material/core';\nimport * as i5 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\n\n/** @docs-private */\nfunction getMatInputUnsupportedTypeError(type) {\n return Error(`Input type \"${type}\" isn't supported by matInput.`);\n}\n\n/**\n * This token is used to inject the object whose value should be set into `MatInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `MatInput` delegate the getting and setting of the\n * value to them.\n */\nconst MAT_INPUT_VALUE_ACCESSOR = new InjectionToken('MAT_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an MatInputUnsupportedTypeError.\nconst MAT_INPUT_INVALID_TYPES = ['button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'range', 'reset', 'submit'];\nlet nextUniqueId = 0;\n// Boilerplate for applying mixins to MatInput.\n/** @docs-private */\nconst _MatInputBase = mixinErrorState(class {\n constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n ngControl) {\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n }\n});\nclass MatInput extends _MatInputBase {\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n }\n /** Input type of the element. */\n get type() {\n return this._type;\n }\n set type(value) {\n this._type = value || 'text';\n this._validateType();\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n this._elementRef.nativeElement.type = this._type;\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get value() {\n return this._inputValueAccessor.value;\n }\n set value(value) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n /** Whether the element is readonly. */\n get readonly() {\n return this._readonly;\n }\n set readonly(value) {\n this._readonly = coerceBooleanProperty(value);\n }\n constructor(_elementRef, _platform, ngControl, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, inputValueAccessor, _autofillMonitor, ngZone,\n // TODO: Remove this once the legacy appearance has been removed. We only need\n // to inject the form field for determining whether the placeholder has been promoted.\n _formField) {\n super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._autofillMonitor = _autofillMonitor;\n this._formField = _formField;\n this._uid = `mat-input-${nextUniqueId++}`;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.focused = false;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.stateChanges = new Subject();\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.controlType = 'mat-input';\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.autofilled = false;\n this._disabled = false;\n this._type = 'text';\n this._readonly = false;\n this._neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter(t => getSupportedInputTypes().has(t));\n this._iOSKeyupListener = event => {\n const el = event.target;\n // Note: We specifically check for 0, rather than `!el.selectionStart`, because the two\n // indicate different things. If the value is 0, it means that the caret is at the start\n // of the input, whereas a value of `null` means that the input doesn't support\n // manipulating the selection range. Inputs that don't support setting the selection range\n // will throw an error so we want to avoid calling `setSelectionRange` on them. See:\n // https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n if (!el.value && el.selectionStart === 0 && el.selectionEnd === 0) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n };\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n this._previousNativeValue = this.value;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', this._iOSKeyupListener);\n });\n }\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n this._isInFormField = !!_formField;\n if (this._isNativeSelect) {\n this.controlType = element.multiple ? 'mat-native-select-multiple' : 'mat-native-select';\n }\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(event => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n ngOnChanges() {\n this.stateChanges.next();\n }\n ngOnDestroy() {\n this.stateChanges.complete();\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n if (this._platform.IOS) {\n this._elementRef.nativeElement.removeEventListener('keyup', this._iOSKeyupListener);\n }\n }\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n // Since the input isn't a `ControlValueAccessor`, we don't have a good way of knowing when\n // the disabled state has changed. We can't use the `ngControl.statusChanges`, because it\n // won't fire if the input is disabled with `emitEvents = false`, despite the input becoming\n // disabled.\n if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled) {\n this.disabled = this.ngControl.disabled;\n this.stateChanges.next();\n }\n }\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n // We need to dirty-check and set the placeholder attribute ourselves, because whether it's\n // present or not depends on a query which is prone to \"changed after checked\" errors.\n this._dirtyCheckPlaceholder();\n }\n /** Focuses the input. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Callback for the cases where the focused state of the input changes. */\n _focusChanged(isFocused) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n _onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n }\n /** Does some manual dirty checking on the native input `value` property. */\n _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n /** Does some manual dirty checking on the native input `placeholder` attribute. */\n _dirtyCheckPlaceholder() {\n const placeholder = this._getPlaceholder();\n if (placeholder !== this._previousPlaceholder) {\n const element = this._elementRef.nativeElement;\n this._previousPlaceholder = placeholder;\n placeholder ? element.setAttribute('placeholder', placeholder) : element.removeAttribute('placeholder');\n }\n }\n /** Gets the current placeholder of the form field. */\n _getPlaceholder() {\n return this.placeholder || null;\n }\n /** Make sure the input is a supported type. */\n _validateType() {\n if (MAT_INPUT_INVALID_TYPES.indexOf(this._type) > -1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatInputUnsupportedTypeError(this._type);\n }\n }\n /** Checks whether the input type is one of the types that are never empty. */\n _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n /** Checks whether the input is invalid based on the native validation. */\n _isBadInput() {\n // The `validity` property won't be present on platform-server.\n let validity = this._elementRef.nativeElement.validity;\n return validity && validity.badInput;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get empty() {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement;\n const firstOption = selectElement.options[0];\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label);\n } else {\n return this.focused || !this.empty;\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n /** Whether the form control is a native select that is displayed inline. */\n _isInlineSelect() {\n const element = this._elementRef.nativeElement;\n return this._isNativeSelect && (element.multiple || element.size > 1);\n }\n}\nMatInput.ɵfac = function MatInput_Factory(t) {\n return new (t || MatInput)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i2.NgControl, 10), i0.ɵɵdirectiveInject(i2.NgForm, 8), i0.ɵɵdirectiveInject(i2.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i3.ErrorStateMatcher), i0.ɵɵdirectiveInject(MAT_INPUT_VALUE_ACCESSOR, 10), i0.ɵɵdirectiveInject(i4.AutofillMonitor), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8));\n};\nMatInput.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatInput,\n selectors: [[\"input\", \"matInput\", \"\"], [\"textarea\", \"matInput\", \"\"], [\"select\", \"matNativeControl\", \"\"], [\"input\", \"matNativeControl\", \"\"], [\"textarea\", \"matNativeControl\", \"\"]],\n hostAttrs: [1, \"mat-mdc-input-element\"],\n hostVars: 18,\n hostBindings: function MatInput_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatInput_focus_HostBindingHandler() {\n return ctx._focusChanged(true);\n })(\"blur\", function MatInput_blur_HostBindingHandler() {\n return ctx._focusChanged(false);\n })(\"input\", function MatInput_input_HostBindingHandler() {\n return ctx._onInput();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id)(\"disabled\", ctx.disabled)(\"required\", ctx.required);\n i0.ɵɵattribute(\"name\", ctx.name || null)(\"readonly\", ctx.readonly && !ctx._isNativeSelect || null)(\"aria-invalid\", ctx.empty && ctx.required ? null : ctx.errorState)(\"aria-required\", ctx.required)(\"id\", ctx.id);\n i0.ɵɵclassProp(\"mat-input-server\", ctx._isServer)(\"mat-mdc-form-field-textarea-control\", ctx._isInFormField && ctx._isTextarea)(\"mat-mdc-form-field-input-control\", ctx._isInFormField)(\"mdc-text-field__input\", ctx._isInFormField)(\"mat-mdc-native-select-inline\", ctx._isInlineSelect());\n }\n },\n inputs: {\n disabled: \"disabled\",\n id: \"id\",\n placeholder: \"placeholder\",\n name: \"name\",\n required: \"required\",\n type: \"type\",\n errorStateMatcher: \"errorStateMatcher\",\n userAriaDescribedBy: [\"aria-describedby\", \"userAriaDescribedBy\"],\n value: \"value\",\n readonly: \"readonly\"\n },\n exportAs: [\"matInput\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatInput\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatInput, [{\n type: Directive,\n args: [{\n selector: `input[matInput], textarea[matInput], select[matNativeControl],\n input[matNativeControl], textarea[matNativeControl]`,\n exportAs: 'matInput',\n host: {\n 'class': 'mat-mdc-input-element',\n // The BaseMatInput parent class adds `mat-input-element`, `mat-form-field-control` and\n // `mat-form-field-autofill-control` to the CSS class list, but this should not be added for\n // this MDC equivalent input.\n '[class.mat-input-server]': '_isServer',\n '[class.mat-mdc-form-field-textarea-control]': '_isInFormField && _isTextarea',\n '[class.mat-mdc-form-field-input-control]': '_isInFormField',\n '[class.mdc-text-field__input]': '_isInFormField',\n '[class.mat-mdc-native-select-inline]': '_isInlineSelect()',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[id]': 'id',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.name]': 'name || null',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n // Only mark the input as invalid for assistive technology if it has a value since the\n // state usually overlaps with `aria-required` when the input is empty and can be redundant.\n '[attr.aria-invalid]': '(empty && required) ? null : errorState',\n '[attr.aria-required]': 'required',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n '(input)': '_onInput()'\n },\n providers: [{\n provide: MatFormFieldControl,\n useExisting: MatInput\n }]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i2.NgControl,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }]\n }, {\n type: i2.NgForm,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i2.FormGroupDirective,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i3.ErrorStateMatcher\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [MAT_INPUT_VALUE_ACCESSOR]\n }]\n }, {\n type: i4.AutofillMonitor\n }, {\n type: i0.NgZone\n }, {\n type: i5.MatFormField,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FORM_FIELD]\n }]\n }];\n }, {\n disabled: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n placeholder: [{\n type: Input\n }],\n name: [{\n type: Input\n }],\n required: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n errorStateMatcher: [{\n type: Input\n }],\n userAriaDescribedBy: [{\n type: Input,\n args: ['aria-describedby']\n }],\n value: [{\n type: Input\n }],\n readonly: [{\n type: Input\n }]\n });\n})();\nclass MatInputModule {}\nMatInputModule.ɵfac = function MatInputModule_Factory(t) {\n return new (t || MatInputModule)();\n};\nMatInputModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatInputModule\n});\nMatInputModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatFormFieldModule, MatFormFieldModule, TextFieldModule, MatCommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatInputModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, MatFormFieldModule],\n exports: [MatInput, MatFormFieldModule, TextFieldModule, MatCommonModule],\n declarations: [MatInput]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_INPUT_VALUE_ACCESSOR, MatInput, MatInputModule, getMatInputUnsupportedTypeError };","map":{"version":3,"names":["coerceBooleanProperty","i1","getSupportedInputTypes","i4","TextFieldModule","i0","InjectionToken","Directive","Optional","Self","Inject","Input","NgModule","i2","Validators","i3","mixinErrorState","MatCommonModule","i5","MAT_FORM_FIELD","MatFormFieldControl","MatFormFieldModule","Subject","getMatInputUnsupportedTypeError","type","Error","MAT_INPUT_VALUE_ACCESSOR","MAT_INPUT_INVALID_TYPES","nextUniqueId","_MatInputBase","constructor","_defaultErrorStateMatcher","_parentForm","_parentFormGroup","ngControl","stateChanges","MatInput","disabled","_disabled","value","focused","next","id","_id","_uid","required","_required","control","hasValidator","_type","_validateType","_isTextarea","has","_elementRef","nativeElement","_inputValueAccessor","readonly","_readonly","_platform","inputValueAccessor","_autofillMonitor","ngZone","_formField","controlType","autofilled","_neverEmptyInputTypes","filter","t","_iOSKeyupListener","event","el","target","selectionStart","selectionEnd","setSelectionRange","element","nodeName","toLowerCase","_previousNativeValue","IOS","runOutsideAngular","addEventListener","_isServer","isBrowser","_isNativeSelect","_isInFormField","multiple","ngAfterViewInit","monitor","subscribe","isAutofilled","ngOnChanges","ngOnDestroy","complete","stopMonitoring","removeEventListener","ngDoCheck","updateErrorState","_dirtyCheckNativeValue","_dirtyCheckPlaceholder","focus","options","_focusChanged","isFocused","_onInput","newValue","placeholder","_getPlaceholder","_previousPlaceholder","setAttribute","removeAttribute","indexOf","ngDevMode","_isNeverEmpty","_isBadInput","validity","badInput","empty","shouldLabelFloat","selectElement","firstOption","selectedIndex","label","setDescribedByIds","ids","length","join","onContainerClick","_isInlineSelect","size","ɵfac","MatInput_Factory","ɵɵdirectiveInject","ElementRef","Platform","NgControl","NgForm","FormGroupDirective","ErrorStateMatcher","AutofillMonitor","NgZone","ɵdir","ɵɵdefineDirective","selectors","hostAttrs","hostVars","hostBindings","MatInput_HostBindings","rf","ctx","ɵɵlistener","MatInput_focus_HostBindingHandler","MatInput_blur_HostBindingHandler","MatInput_input_HostBindingHandler","ɵɵhostProperty","ɵɵattribute","name","errorState","ɵɵclassProp","inputs","errorStateMatcher","userAriaDescribedBy","exportAs","features","ɵɵProvidersFeature","provide","useExisting","ɵɵInheritDefinitionFeature","ɵɵNgOnChangesFeature","ɵsetClassMetadata","args","selector","host","providers","decorators","undefined","MatFormField","MatInputModule","MatInputModule_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","exports","declarations"],"sources":["C:/Users/Quba/Desktop/studia/WPFt/RiffMaster project/Frontend/RiffMasterFront/node_modules/@angular/material/fesm2022/input.mjs"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport * as i4 from '@angular/cdk/text-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Optional, Self, Inject, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport * as i3 from '@angular/material/core';\nimport { mixinErrorState, MatCommonModule } from '@angular/material/core';\nimport * as i5 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\n\n/** @docs-private */\nfunction getMatInputUnsupportedTypeError(type) {\n return Error(`Input type \"${type}\" isn't supported by matInput.`);\n}\n\n/**\n * This token is used to inject the object whose value should be set into `MatInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `MatInput` delegate the getting and setting of the\n * value to them.\n */\nconst MAT_INPUT_VALUE_ACCESSOR = new InjectionToken('MAT_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an MatInputUnsupportedTypeError.\nconst MAT_INPUT_INVALID_TYPES = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit',\n];\nlet nextUniqueId = 0;\n// Boilerplate for applying mixins to MatInput.\n/** @docs-private */\nconst _MatInputBase = mixinErrorState(class {\n constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, \n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n ngControl) {\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n }\n});\nclass MatInput extends _MatInputBase {\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n }\n /** Input type of the element. */\n get type() {\n return this._type;\n }\n set type(value) {\n this._type = value || 'text';\n this._validateType();\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n this._elementRef.nativeElement.type = this._type;\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get value() {\n return this._inputValueAccessor.value;\n }\n set value(value) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n /** Whether the element is readonly. */\n get readonly() {\n return this._readonly;\n }\n set readonly(value) {\n this._readonly = coerceBooleanProperty(value);\n }\n constructor(_elementRef, _platform, ngControl, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, inputValueAccessor, _autofillMonitor, ngZone, \n // TODO: Remove this once the legacy appearance has been removed. We only need\n // to inject the form field for determining whether the placeholder has been promoted.\n _formField) {\n super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._autofillMonitor = _autofillMonitor;\n this._formField = _formField;\n this._uid = `mat-input-${nextUniqueId++}`;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.focused = false;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.stateChanges = new Subject();\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.controlType = 'mat-input';\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.autofilled = false;\n this._disabled = false;\n this._type = 'text';\n this._readonly = false;\n this._neverEmptyInputTypes = [\n 'date',\n 'datetime',\n 'datetime-local',\n 'month',\n 'time',\n 'week',\n ].filter(t => getSupportedInputTypes().has(t));\n this._iOSKeyupListener = (event) => {\n const el = event.target;\n // Note: We specifically check for 0, rather than `!el.selectionStart`, because the two\n // indicate different things. If the value is 0, it means that the caret is at the start\n // of the input, whereas a value of `null` means that the input doesn't support\n // manipulating the selection range. Inputs that don't support setting the selection range\n // will throw an error so we want to avoid calling `setSelectionRange` on them. See:\n // https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n if (!el.value && el.selectionStart === 0 && el.selectionEnd === 0) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n };\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n this._previousNativeValue = this.value;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', this._iOSKeyupListener);\n });\n }\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n this._isInFormField = !!_formField;\n if (this._isNativeSelect) {\n this.controlType = element.multiple\n ? 'mat-native-select-multiple'\n : 'mat-native-select';\n }\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(event => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n ngOnChanges() {\n this.stateChanges.next();\n }\n ngOnDestroy() {\n this.stateChanges.complete();\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n if (this._platform.IOS) {\n this._elementRef.nativeElement.removeEventListener('keyup', this._iOSKeyupListener);\n }\n }\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n // Since the input isn't a `ControlValueAccessor`, we don't have a good way of knowing when\n // the disabled state has changed. We can't use the `ngControl.statusChanges`, because it\n // won't fire if the input is disabled with `emitEvents = false`, despite the input becoming\n // disabled.\n if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled) {\n this.disabled = this.ngControl.disabled;\n this.stateChanges.next();\n }\n }\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n // We need to dirty-check and set the placeholder attribute ourselves, because whether it's\n // present or not depends on a query which is prone to \"changed after checked\" errors.\n this._dirtyCheckPlaceholder();\n }\n /** Focuses the input. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Callback for the cases where the focused state of the input changes. */\n _focusChanged(isFocused) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n _onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n }\n /** Does some manual dirty checking on the native input `value` property. */\n _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n /** Does some manual dirty checking on the native input `placeholder` attribute. */\n _dirtyCheckPlaceholder() {\n const placeholder = this._getPlaceholder();\n if (placeholder !== this._previousPlaceholder) {\n const element = this._elementRef.nativeElement;\n this._previousPlaceholder = placeholder;\n placeholder\n ? element.setAttribute('placeholder', placeholder)\n : element.removeAttribute('placeholder');\n }\n }\n /** Gets the current placeholder of the form field. */\n _getPlaceholder() {\n return this.placeholder || null;\n }\n /** Make sure the input is a supported type. */\n _validateType() {\n if (MAT_INPUT_INVALID_TYPES.indexOf(this._type) > -1 &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatInputUnsupportedTypeError(this._type);\n }\n }\n /** Checks whether the input type is one of the types that are never empty. */\n _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n /** Checks whether the input is invalid based on the native validation. */\n _isBadInput() {\n // The `validity` property won't be present on platform-server.\n let validity = this._elementRef.nativeElement.validity;\n return validity && validity.badInput;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get empty() {\n return (!this._isNeverEmpty() &&\n !this._elementRef.nativeElement.value &&\n !this._isBadInput() &&\n !this.autofilled);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement;\n const firstOption = selectElement.options[0];\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return (this.focused ||\n selectElement.multiple ||\n !this.empty ||\n !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label));\n }\n else {\n return this.focused || !this.empty;\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n }\n else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n /** Whether the form control is a native select that is displayed inline. */\n _isInlineSelect() {\n const element = this._elementRef.nativeElement;\n return this._isNativeSelect && (element.multiple || element.size > 1);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MatInput, deps: [{ token: i0.ElementRef }, { token: i1.Platform }, { token: i2.NgControl, optional: true, self: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MAT_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i4.AutofillMonitor }, { token: i0.NgZone }, { token: MAT_FORM_FIELD, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.0\", type: MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl],\\n input[matNativeControl], textarea[matNativeControl]\", inputs: { disabled: \"disabled\", id: \"id\", placeholder: \"placeholder\", name: \"name\", required: \"required\", type: \"type\", errorStateMatcher: \"errorStateMatcher\", userAriaDescribedBy: [\"aria-describedby\", \"userAriaDescribedBy\"], value: \"value\", readonly: \"readonly\" }, host: { listeners: { \"focus\": \"_focusChanged(true)\", \"blur\": \"_focusChanged(false)\", \"input\": \"_onInput()\" }, properties: { \"class.mat-input-server\": \"_isServer\", \"class.mat-mdc-form-field-textarea-control\": \"_isInFormField && _isTextarea\", \"class.mat-mdc-form-field-input-control\": \"_isInFormField\", \"class.mdc-text-field__input\": \"_isInFormField\", \"class.mat-mdc-native-select-inline\": \"_isInlineSelect()\", \"id\": \"id\", \"disabled\": \"disabled\", \"required\": \"required\", \"attr.name\": \"name || null\", \"attr.readonly\": \"readonly && !_isNativeSelect || null\", \"attr.aria-invalid\": \"(empty && required) ? null : errorState\", \"attr.aria-required\": \"required\", \"attr.id\": \"id\" }, classAttribute: \"mat-mdc-input-element\" }, providers: [{ provide: MatFormFieldControl, useExisting: MatInput }], exportAs: [\"matInput\"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MatInput, decorators: [{\n type: Directive,\n args: [{\n selector: `input[matInput], textarea[matInput], select[matNativeControl],\n input[matNativeControl], textarea[matNativeControl]`,\n exportAs: 'matInput',\n host: {\n 'class': 'mat-mdc-input-element',\n // The BaseMatInput parent class adds `mat-input-element`, `mat-form-field-control` and\n // `mat-form-field-autofill-control` to the CSS class list, but this should not be added for\n // this MDC equivalent input.\n '[class.mat-input-server]': '_isServer',\n '[class.mat-mdc-form-field-textarea-control]': '_isInFormField && _isTextarea',\n '[class.mat-mdc-form-field-input-control]': '_isInFormField',\n '[class.mdc-text-field__input]': '_isInFormField',\n '[class.mat-mdc-native-select-inline]': '_isInlineSelect()',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[id]': 'id',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.name]': 'name || null',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n // Only mark the input as invalid for assistive technology if it has a value since the\n // state usually overlaps with `aria-required` when the input is empty and can be redundant.\n '[attr.aria-invalid]': '(empty && required) ? null : errorState',\n '[attr.aria-required]': 'required',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n '(input)': '_onInput()',\n },\n providers: [{ provide: MatFormFieldControl, useExisting: MatInput }],\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Platform }, { type: i2.NgControl, decorators: [{\n type: Optional\n }, {\n type: Self\n }] }, { type: i2.NgForm, decorators: [{\n type: Optional\n }] }, { type: i2.FormGroupDirective, decorators: [{\n type: Optional\n }] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [MAT_INPUT_VALUE_ACCESSOR]\n }] }, { type: i4.AutofillMonitor }, { type: i0.NgZone }, { type: i5.MatFormField, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FORM_FIELD]\n }] }]; }, propDecorators: { disabled: [{\n type: Input\n }], id: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], name: [{\n type: Input\n }], required: [{\n type: Input\n }], type: [{\n type: Input\n }], errorStateMatcher: [{\n type: Input\n }], userAriaDescribedBy: [{\n type: Input,\n args: ['aria-describedby']\n }], value: [{\n type: Input\n }], readonly: [{\n type: Input\n }] } });\n\nclass MatInputModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MatInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.0\", ngImport: i0, type: MatInputModule, declarations: [MatInput], imports: [MatCommonModule, MatFormFieldModule], exports: [MatInput, MatFormFieldModule, TextFieldModule, MatCommonModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MatInputModule, imports: [MatCommonModule, MatFormFieldModule, MatFormFieldModule, TextFieldModule, MatCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.0\", ngImport: i0, type: MatInputModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, MatFormFieldModule],\n exports: [MatInput, MatFormFieldModule, TextFieldModule, MatCommonModule],\n declarations: [MatInput],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_INPUT_VALUE_ACCESSOR, MatInput, MatInputModule, getMatInputUnsupportedTypeError };\n"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,uBAAuB;AAC7D,OAAO,KAAKC,EAAE,MAAM,uBAAuB;AAC3C,SAASC,sBAAsB,QAAQ,uBAAuB;AAC9D,OAAO,KAAKC,EAAE,MAAM,yBAAyB;AAC7C,SAASC,eAAe,QAAQ,yBAAyB;AACzD,OAAO,KAAKC,EAAE,MAAM,eAAe;AACnC,SAASC,cAAc,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,QAAQ,QAAQ,eAAe;AAClG,OAAO,KAAKC,EAAE,MAAM,gBAAgB;AACpC,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAO,KAAKC,EAAE,MAAM,wBAAwB;AAC5C,SAASC,eAAe,EAAEC,eAAe,QAAQ,wBAAwB;AACzE,OAAO,KAAKC,EAAE,MAAM,8BAA8B;AAClD,SAASC,cAAc,EAAEC,mBAAmB,EAAEC,kBAAkB,QAAQ,8BAA8B;AACtG,SAASC,OAAO,QAAQ,MAAM;;AAE9B;AACA,SAASC,+BAA+BA,CAACC,IAAI,EAAE;EAC3C,OAAOC,KAAK,CAAE,eAAcD,IAAK,gCAA+B,CAAC;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,wBAAwB,GAAG,IAAIpB,cAAc,CAAC,0BAA0B,CAAC;;AAE/E;AACA,MAAMqB,uBAAuB,GAAG,CAC5B,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,CACX;AACD,IAAIC,YAAY,GAAG,CAAC;AACpB;AACA;AACA,MAAMC,aAAa,GAAGb,eAAe,CAAC,MAAM;EACxCc,WAAWA,CAACC,yBAAyB,EAAEC,WAAW,EAAEC,gBAAgB;EACpE;AACJ;AACA;AACA;AACA;EACIC,SAAS,EAAE;IACP,IAAI,CAACH,yBAAyB,GAAGA,yBAAyB;IAC1D,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACC,YAAY,GAAG,IAAIb,OAAO,EAAE;EACrC;AACJ,CAAC,CAAC;AACF,MAAMc,QAAQ,SAASP,aAAa,CAAC;EACjC;AACJ;AACA;AACA;EACI,IAAIQ,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACC,SAAS;EACzB;EACA,IAAID,QAAQA,CAACE,KAAK,EAAE;IAChB,IAAI,CAACD,SAAS,GAAGtC,qBAAqB,CAACuC,KAAK,CAAC;IAC7C;IACA;IACA,IAAI,IAAI,CAACC,OAAO,EAAE;MACd,IAAI,CAACA,OAAO,GAAG,KAAK;MACpB,IAAI,CAACL,YAAY,CAACM,IAAI,EAAE;IAC5B;EACJ;EACA;AACJ;AACA;AACA;EACI,IAAIC,EAAEA,CAAA,EAAG;IACL,OAAO,IAAI,CAACC,GAAG;EACnB;EACA,IAAID,EAAEA,CAACH,KAAK,EAAE;IACV,IAAI,CAACI,GAAG,GAAGJ,KAAK,IAAI,IAAI,CAACK,IAAI;EACjC;EACA;AACJ;AACA;AACA;EACI,IAAIC,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACC,SAAS,IAAI,IAAI,CAACZ,SAAS,EAAEa,OAAO,EAAEC,YAAY,CAAClC,UAAU,CAAC+B,QAAQ,CAAC,IAAI,KAAK;EAChG;EACA,IAAIA,QAAQA,CAACN,KAAK,EAAE;IAChB,IAAI,CAACO,SAAS,GAAG9C,qBAAqB,CAACuC,KAAK,CAAC;EACjD;EACA;EACA,IAAIf,IAAIA,CAAA,EAAG;IACP,OAAO,IAAI,CAACyB,KAAK;EACrB;EACA,IAAIzB,IAAIA,CAACe,KAAK,EAAE;IACZ,IAAI,CAACU,KAAK,GAAGV,KAAK,IAAI,MAAM;IAC5B,IAAI,CAACW,aAAa,EAAE;IACpB;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACC,WAAW,IAAIjD,sBAAsB,EAAE,CAACkD,GAAG,CAAC,IAAI,CAACH,KAAK,CAAC,EAAE;MAC/D,IAAI,CAACI,WAAW,CAACC,aAAa,CAAC9B,IAAI,GAAG,IAAI,CAACyB,KAAK;IACpD;EACJ;EACA;AACJ;AACA;AACA;EACI,IAAIV,KAAKA,CAAA,EAAG;IACR,OAAO,IAAI,CAACgB,mBAAmB,CAAChB,KAAK;EACzC;EACA,IAAIA,KAAKA,CAACA,KAAK,EAAE;IACb,IAAIA,KAAK,KAAK,IAAI,CAACA,KAAK,EAAE;MACtB,IAAI,CAACgB,mBAAmB,CAAChB,KAAK,GAAGA,KAAK;MACtC,IAAI,CAACJ,YAAY,CAACM,IAAI,EAAE;IAC5B;EACJ;EACA;EACA,IAAIe,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACC,SAAS;EACzB;EACA,IAAID,QAAQA,CAACjB,KAAK,EAAE;IAChB,IAAI,CAACkB,SAAS,GAAGzD,qBAAqB,CAACuC,KAAK,CAAC;EACjD;EACAT,WAAWA,CAACuB,WAAW,EAAEK,SAAS,EAAExB,SAAS,EAAEF,WAAW,EAAEC,gBAAgB,EAAEF,yBAAyB,EAAE4B,kBAAkB,EAAEC,gBAAgB,EAAEC,MAAM;EACrJ;EACA;EACAC,UAAU,EAAE;IACR,KAAK,CAAC/B,yBAAyB,EAAEC,WAAW,EAAEC,gBAAgB,EAAEC,SAAS,CAAC;IAC1E,IAAI,CAACmB,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACK,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACE,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACE,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAAClB,IAAI,GAAI,aAAYhB,YAAY,EAAG,EAAC;IACzC;AACR;AACA;AACA;IACQ,IAAI,CAACY,OAAO,GAAG,KAAK;IACpB;AACR;AACA;AACA;IACQ,IAAI,CAACL,YAAY,GAAG,IAAIb,OAAO,EAAE;IACjC;AACR;AACA;AACA;IACQ,IAAI,CAACyC,WAAW,GAAG,WAAW;IAC9B;AACR;AACA;AACA;IACQ,IAAI,CAACC,UAAU,GAAG,KAAK;IACvB,IAAI,CAAC1B,SAAS,GAAG,KAAK;IACtB,IAAI,CAACW,KAAK,GAAG,MAAM;IACnB,IAAI,CAACQ,SAAS,GAAG,KAAK;IACtB,IAAI,CAACQ,qBAAqB,GAAG,CACzB,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,MAAM,CACT,CAACC,MAAM,CAACC,CAAC,IAAIjE,sBAAsB,EAAE,CAACkD,GAAG,CAACe,CAAC,CAAC,CAAC;IAC9C,IAAI,CAACC,iBAAiB,GAAIC,KAAK,IAAK;MAChC,MAAMC,EAAE,GAAGD,KAAK,CAACE,MAAM;MACvB;MACA;MACA;MACA;MACA;MACA;MACA,IAAI,CAACD,EAAE,CAAC/B,KAAK,IAAI+B,EAAE,CAACE,cAAc,KAAK,CAAC,IAAIF,EAAE,CAACG,YAAY,KAAK,CAAC,EAAE;QAC/D;QACA;QACA;QACA;QACAH,EAAE,CAACI,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1BJ,EAAE,CAACI,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;MAC9B;IACJ,CAAC;IACD,MAAMC,OAAO,GAAG,IAAI,CAACtB,WAAW,CAACC,aAAa;IAC9C,MAAMsB,QAAQ,GAAGD,OAAO,CAACC,QAAQ,CAACC,WAAW,EAAE;IAC/C;IACA;IACA,IAAI,CAACtB,mBAAmB,GAAGI,kBAAkB,IAAIgB,OAAO;IACxD,IAAI,CAACG,oBAAoB,GAAG,IAAI,CAACvC,KAAK;IACtC;IACA,IAAI,CAACG,EAAE,GAAG,IAAI,CAACA,EAAE;IACjB;IACA;IACA;IACA,IAAIgB,SAAS,CAACqB,GAAG,EAAE;MACflB,MAAM,CAACmB,iBAAiB,CAAC,MAAM;QAC3B3B,WAAW,CAACC,aAAa,CAAC2B,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACb,iBAAiB,CAAC;MAC/E,CAAC,CAAC;IACN;IACA,IAAI,CAACc,SAAS,GAAG,CAAC,IAAI,CAACxB,SAAS,CAACyB,SAAS;IAC1C,IAAI,CAACC,eAAe,GAAGR,QAAQ,KAAK,QAAQ;IAC5C,IAAI,CAACzB,WAAW,GAAGyB,QAAQ,KAAK,UAAU;IAC1C,IAAI,CAACS,cAAc,GAAG,CAAC,CAACvB,UAAU;IAClC,IAAI,IAAI,CAACsB,eAAe,EAAE;MACtB,IAAI,CAACrB,WAAW,GAAGY,OAAO,CAACW,QAAQ,GAC7B,4BAA4B,GAC5B,mBAAmB;IAC7B;EACJ;EACAC,eAAeA,CAAA,EAAG;IACd,IAAI,IAAI,CAAC7B,SAAS,CAACyB,SAAS,EAAE;MAC1B,IAAI,CAACvB,gBAAgB,CAAC4B,OAAO,CAAC,IAAI,CAACnC,WAAW,CAACC,aAAa,CAAC,CAACmC,SAAS,CAACpB,KAAK,IAAI;QAC7E,IAAI,CAACL,UAAU,GAAGK,KAAK,CAACqB,YAAY;QACpC,IAAI,CAACvD,YAAY,CAACM,IAAI,EAAE;MAC5B,CAAC,CAAC;IACN;EACJ;EACAkD,WAAWA,CAAA,EAAG;IACV,IAAI,CAACxD,YAAY,CAACM,IAAI,EAAE;EAC5B;EACAmD,WAAWA,CAAA,EAAG;IACV,IAAI,CAACzD,YAAY,CAAC0D,QAAQ,EAAE;IAC5B,IAAI,IAAI,CAACnC,SAAS,CAACyB,SAAS,EAAE;MAC1B,IAAI,CAACvB,gBAAgB,CAACkC,cAAc,CAAC,IAAI,CAACzC,WAAW,CAACC,aAAa,CAAC;IACxE;IACA,IAAI,IAAI,CAACI,SAAS,CAACqB,GAAG,EAAE;MACpB,IAAI,CAAC1B,WAAW,CAACC,aAAa,CAACyC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC3B,iBAAiB,CAAC;IACvF;EACJ;EACA4B,SAASA,CAAA,EAAG;IACR,IAAI,IAAI,CAAC9D,SAAS,EAAE;MAChB;MACA;MACA;MACA,IAAI,CAAC+D,gBAAgB,EAAE;MACvB;MACA;MACA;MACA;MACA,IAAI,IAAI,CAAC/D,SAAS,CAACG,QAAQ,KAAK,IAAI,IAAI,IAAI,CAACH,SAAS,CAACG,QAAQ,KAAK,IAAI,CAACA,QAAQ,EAAE;QAC/E,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACH,SAAS,CAACG,QAAQ;QACvC,IAAI,CAACF,YAAY,CAACM,IAAI,EAAE;MAC5B;IACJ;IACA;IACA;IACA;IACA,IAAI,CAACyD,sBAAsB,EAAE;IAC7B;IACA;IACA,IAAI,CAACC,sBAAsB,EAAE;EACjC;EACA;EACAC,KAAKA,CAACC,OAAO,EAAE;IACX,IAAI,CAAChD,WAAW,CAACC,aAAa,CAAC8C,KAAK,CAACC,OAAO,CAAC;EACjD;EACA;EACAC,aAAaA,CAACC,SAAS,EAAE;IACrB,IAAIA,SAAS,KAAK,IAAI,CAAC/D,OAAO,EAAE;MAC5B,IAAI,CAACA,OAAO,GAAG+D,SAAS;MACxB,IAAI,CAACpE,YAAY,CAACM,IAAI,EAAE;IAC5B;EACJ;EACA+D,QAAQA,CAAA,EAAG;IACP;IACA;IACA;IACA;IACA;IACA;IACA;EAAA;EAEJ;EACAN,sBAAsBA,CAAA,EAAG;IACrB,MAAMO,QAAQ,GAAG,IAAI,CAACpD,WAAW,CAACC,aAAa,CAACf,KAAK;IACrD,IAAI,IAAI,CAACuC,oBAAoB,KAAK2B,QAAQ,EAAE;MACxC,IAAI,CAAC3B,oBAAoB,GAAG2B,QAAQ;MACpC,IAAI,CAACtE,YAAY,CAACM,IAAI,EAAE;IAC5B;EACJ;EACA;EACA0D,sBAAsBA,CAAA,EAAG;IACrB,MAAMO,WAAW,GAAG,IAAI,CAACC,eAAe,EAAE;IAC1C,IAAID,WAAW,KAAK,IAAI,CAACE,oBAAoB,EAAE;MAC3C,MAAMjC,OAAO,GAAG,IAAI,CAACtB,WAAW,CAACC,aAAa;MAC9C,IAAI,CAACsD,oBAAoB,GAAGF,WAAW;MACvCA,WAAW,GACL/B,OAAO,CAACkC,YAAY,CAAC,aAAa,EAAEH,WAAW,CAAC,GAChD/B,OAAO,CAACmC,eAAe,CAAC,aAAa,CAAC;IAChD;EACJ;EACA;EACAH,eAAeA,CAAA,EAAG;IACd,OAAO,IAAI,CAACD,WAAW,IAAI,IAAI;EACnC;EACA;EACAxD,aAAaA,CAAA,EAAG;IACZ,IAAIvB,uBAAuB,CAACoF,OAAO,CAAC,IAAI,CAAC9D,KAAK,CAAC,GAAG,CAAC,CAAC,KAC/C,OAAO+D,SAAS,KAAK,WAAW,IAAIA,SAAS,CAAC,EAAE;MACjD,MAAMzF,+BAA+B,CAAC,IAAI,CAAC0B,KAAK,CAAC;IACrD;EACJ;EACA;EACAgE,aAAaA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAChD,qBAAqB,CAAC8C,OAAO,CAAC,IAAI,CAAC9D,KAAK,CAAC,GAAG,CAAC,CAAC;EAC9D;EACA;EACAiE,WAAWA,CAAA,EAAG;IACV;IACA,IAAIC,QAAQ,GAAG,IAAI,CAAC9D,WAAW,CAACC,aAAa,CAAC6D,QAAQ;IACtD,OAAOA,QAAQ,IAAIA,QAAQ,CAACC,QAAQ;EACxC;EACA;AACJ;AACA;AACA;EACI,IAAIC,KAAKA,CAAA,EAAG;IACR,OAAQ,CAAC,IAAI,CAACJ,aAAa,EAAE,IACzB,CAAC,IAAI,CAAC5D,WAAW,CAACC,aAAa,CAACf,KAAK,IACrC,CAAC,IAAI,CAAC2E,WAAW,EAAE,IACnB,CAAC,IAAI,CAAClD,UAAU;EACxB;EACA;AACJ;AACA;AACA;EACI,IAAIsD,gBAAgBA,CAAA,EAAG;IACnB,IAAI,IAAI,CAAClC,eAAe,EAAE;MACtB;MACA;MACA;MACA,MAAMmC,aAAa,GAAG,IAAI,CAAClE,WAAW,CAACC,aAAa;MACpD,MAAMkE,WAAW,GAAGD,aAAa,CAAClB,OAAO,CAAC,CAAC,CAAC;MAC5C;MACA;MACA,OAAQ,IAAI,CAAC7D,OAAO,IAChB+E,aAAa,CAACjC,QAAQ,IACtB,CAAC,IAAI,CAAC+B,KAAK,IACX,CAAC,EAAEE,aAAa,CAACE,aAAa,GAAG,CAAC,CAAC,IAAID,WAAW,IAAIA,WAAW,CAACE,KAAK,CAAC;IAChF,CAAC,MACI;MACD,OAAO,IAAI,CAAClF,OAAO,IAAI,CAAC,IAAI,CAAC6E,KAAK;IACtC;EACJ;EACA;AACJ;AACA;AACA;EACIM,iBAAiBA,CAACC,GAAG,EAAE;IACnB,IAAIA,GAAG,CAACC,MAAM,EAAE;MACZ,IAAI,CAACxE,WAAW,CAACC,aAAa,CAACuD,YAAY,CAAC,kBAAkB,EAAEe,GAAG,CAACE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClF,CAAC,MACI;MACD,IAAI,CAACzE,WAAW,CAACC,aAAa,CAACwD,eAAe,CAAC,kBAAkB,CAAC;IACtE;EACJ;EACA;AACJ;AACA;AACA;EACIiB,gBAAgBA,CAAA,EAAG;IACf;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACvF,OAAO,EAAE;MACf,IAAI,CAAC4D,KAAK,EAAE;IAChB;EACJ;EACA;EACA4B,eAAeA,CAAA,EAAG;IACd,MAAMrD,OAAO,GAAG,IAAI,CAACtB,WAAW,CAACC,aAAa;IAC9C,OAAO,IAAI,CAAC8B,eAAe,KAAKT,OAAO,CAACW,QAAQ,IAAIX,OAAO,CAACsD,IAAI,GAAG,CAAC,CAAC;EACzE;AAGJ;AAjUM7F,QAAQ,CA+TI8F,IAAI,YAAAC,iBAAAhE,CAAA;EAAA,YAAAA,CAAA,IAAwF/B,QAAQ,EAGrC/B,EAAE,CAAA+H,iBAAA,CAHqD/H,EAAE,CAACgI,UAAU,GAGpEhI,EAAE,CAAA+H,iBAAA,CAH+EnI,EAAE,CAACqI,QAAQ,GAG5FjI,EAAE,CAAA+H,iBAAA,CAHuGvH,EAAE,CAAC0H,SAAS,OAGrHlI,EAAE,CAAA+H,iBAAA,CAH4JvH,EAAE,CAAC2H,MAAM,MAGvKnI,EAAE,CAAA+H,iBAAA,CAHkMvH,EAAE,CAAC4H,kBAAkB,MAGzNpI,EAAE,CAAA+H,iBAAA,CAHoPrH,EAAE,CAAC2H,iBAAiB,GAG1QrI,EAAE,CAAA+H,iBAAA,CAHqR1G,wBAAwB,OAG/SrB,EAAE,CAAA+H,iBAAA,CAHsVjI,EAAE,CAACwI,eAAe,GAG1WtI,EAAE,CAAA+H,iBAAA,CAHqX/H,EAAE,CAACuI,MAAM,GAGhYvI,EAAE,CAAA+H,iBAAA,CAH2YjH,cAAc;AAAA,CAA4D;AA/TliBiB,QAAQ,CAgUIyG,IAAI,kBAE2DxI,EAAE,CAAAyI,iBAAA;EAAAtH,IAAA,EAFeY,QAAQ;EAAA2G,SAAA;EAAAC,SAAA;EAAAC,QAAA;EAAAC,YAAA,WAAAC,sBAAAC,EAAA,EAAAC,GAAA;IAAA,IAAAD,EAAA;MAEzB/I,EAAE,CAAAiJ,UAAA,mBAAAC,kCAAA;QAAA,OAFeF,GAAA,CAAA/C,aAAA,CAAc,IAAI,CAAC;MAAA,oBAAAkD,iCAAA;QAAA,OAAnBH,GAAA,CAAA/C,aAAA,CAAc,KAAK,CAAC;MAAA,qBAAAmD,kCAAA;QAAA,OAApBJ,GAAA,CAAA7C,QAAA,EAAU;MAAA;IAAA;IAAA,IAAA4C,EAAA;MAE3B/I,EAAE,CAAAqJ,cAAA,OAAAL,GAAA,CAAA3G,EAAA,cAAA2G,GAAA,CAAAhH,QAAA,cAAAgH,GAAA,CAAAxG,QAAA;MAAFxC,EAAE,CAAAsJ,WAAA,SAAAN,GAAA,CAAAO,IAAA,sBAAAP,GAAA,CAAA7F,QAAA,KAAA6F,GAAA,CAAAjE,eAAA,0BAAAiE,GAAA,CAAAhC,KAAA,IAAAgC,GAAA,CAAAxG,QAAA,UAAAwG,GAAA,CAAAQ,UAAA,mBAAAR,GAAA,CAAAxG,QAAA,QAAAwG,GAAA,CAAA3G,EAAA;MAAFrC,EAAE,CAAAyJ,WAAA,qBAAAT,GAAA,CAAAnE,SAAA,yCAAAmE,GAAA,CAAAhE,cAAA,IAAAgE,GAAA,CAAAlG,WAAA,sCAAAkG,GAAA,CAAAhE,cAAA,2BAAAgE,GAAA,CAAAhE,cAAA,kCAAAgE,GAAA,CAAArB,eAAA;IAAA;EAAA;EAAA+B,MAAA;IAAA1H,QAAA;IAAAK,EAAA;IAAAgE,WAAA;IAAAkD,IAAA;IAAA/G,QAAA;IAAArB,IAAA;IAAAwI,iBAAA;IAAAC,mBAAA;IAAA1H,KAAA;IAAAiB,QAAA;EAAA;EAAA0G,QAAA;EAAAC,QAAA,GAAF9J,EAAE,CAAA+J,kBAAA,CAFgoC,CAAC;IAAEC,OAAO,EAAEjJ,mBAAmB;IAAEkJ,WAAW,EAAElI;EAAS,CAAC,CAAC,GAE3rC/B,EAAE,CAAAkK,0BAAA,EAAFlK,EAAE,CAAAmK,oBAAA;AAAA,EAF8wC;AAEj2C;EAAA,QAAAxD,SAAA,oBAAAA,SAAA,KAAiF3G,EAAE,CAAAoK,iBAAA,CAAQrI,QAAQ,EAAc,CAAC;IACtGZ,IAAI,EAAEjB,SAAS;IACfmK,IAAI,EAAE,CAAC;MACCC,QAAQ,EAAG;AAC/B,0DAA0D;MACtCT,QAAQ,EAAE,UAAU;MACpBU,IAAI,EAAE;QACF,OAAO,EAAE,uBAAuB;QAChC;QACA;QACA;QACA,0BAA0B,EAAE,WAAW;QACvC,6CAA6C,EAAE,+BAA+B;QAC9E,0CAA0C,EAAE,gBAAgB;QAC5D,+BAA+B,EAAE,gBAAgB;QACjD,sCAAsC,EAAE,mBAAmB;QAC3D;QACA;QACA,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,UAAU;QACxB,aAAa,EAAE,cAAc;QAC7B,iBAAiB,EAAE,sCAAsC;QACzD;QACA;QACA,qBAAqB,EAAE,yCAAyC;QAChE,sBAAsB,EAAE,UAAU;QAClC;QACA;QACA,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,qBAAqB;QAChC,QAAQ,EAAE,sBAAsB;QAChC,SAAS,EAAE;MACf,CAAC;MACDC,SAAS,EAAE,CAAC;QAAER,OAAO,EAAEjJ,mBAAmB;QAAEkJ,WAAW,EAAElI;MAAS,CAAC;IACvE,CAAC;EACT,CAAC,CAAC,EAAkB,YAAY;IAAE,OAAO,CAAC;MAAEZ,IAAI,EAAEnB,EAAE,CAACgI;IAAW,CAAC,EAAE;MAAE7G,IAAI,EAAEvB,EAAE,CAACqI;IAAS,CAAC,EAAE;MAAE9G,IAAI,EAAEX,EAAE,CAAC0H,SAAS;MAAEuC,UAAU,EAAE,CAAC;QACjHtJ,IAAI,EAAEhB;MACV,CAAC,EAAE;QACCgB,IAAI,EAAEf;MACV,CAAC;IAAE,CAAC,EAAE;MAAEe,IAAI,EAAEX,EAAE,CAAC2H,MAAM;MAAEsC,UAAU,EAAE,CAAC;QAClCtJ,IAAI,EAAEhB;MACV,CAAC;IAAE,CAAC,EAAE;MAAEgB,IAAI,EAAEX,EAAE,CAAC4H,kBAAkB;MAAEqC,UAAU,EAAE,CAAC;QAC9CtJ,IAAI,EAAEhB;MACV,CAAC;IAAE,CAAC,EAAE;MAAEgB,IAAI,EAAET,EAAE,CAAC2H;IAAkB,CAAC,EAAE;MAAElH,IAAI,EAAEuJ,SAAS;MAAED,UAAU,EAAE,CAAC;QAClEtJ,IAAI,EAAEhB;MACV,CAAC,EAAE;QACCgB,IAAI,EAAEf;MACV,CAAC,EAAE;QACCe,IAAI,EAAEd,MAAM;QACZgK,IAAI,EAAE,CAAChJ,wBAAwB;MACnC,CAAC;IAAE,CAAC,EAAE;MAAEF,IAAI,EAAErB,EAAE,CAACwI;IAAgB,CAAC,EAAE;MAAEnH,IAAI,EAAEnB,EAAE,CAACuI;IAAO,CAAC,EAAE;MAAEpH,IAAI,EAAEN,EAAE,CAAC8J,YAAY;MAAEF,UAAU,EAAE,CAAC;QAC3FtJ,IAAI,EAAEhB;MACV,CAAC,EAAE;QACCgB,IAAI,EAAEd,MAAM;QACZgK,IAAI,EAAE,CAACvJ,cAAc;MACzB,CAAC;IAAE,CAAC,CAAC;EAAE,CAAC,EAAkB;IAAEkB,QAAQ,EAAE,CAAC;MACvCb,IAAI,EAAEb;IACV,CAAC,CAAC;IAAE+B,EAAE,EAAE,CAAC;MACLlB,IAAI,EAAEb;IACV,CAAC,CAAC;IAAE+F,WAAW,EAAE,CAAC;MACdlF,IAAI,EAAEb;IACV,CAAC,CAAC;IAAEiJ,IAAI,EAAE,CAAC;MACPpI,IAAI,EAAEb;IACV,CAAC,CAAC;IAAEkC,QAAQ,EAAE,CAAC;MACXrB,IAAI,EAAEb;IACV,CAAC,CAAC;IAAEa,IAAI,EAAE,CAAC;MACPA,IAAI,EAAEb;IACV,CAAC,CAAC;IAAEqJ,iBAAiB,EAAE,CAAC;MACpBxI,IAAI,EAAEb;IACV,CAAC,CAAC;IAAEsJ,mBAAmB,EAAE,CAAC;MACtBzI,IAAI,EAAEb,KAAK;MACX+J,IAAI,EAAE,CAAC,kBAAkB;IAC7B,CAAC,CAAC;IAAEnI,KAAK,EAAE,CAAC;MACRf,IAAI,EAAEb;IACV,CAAC,CAAC;IAAE6C,QAAQ,EAAE,CAAC;MACXhC,IAAI,EAAEb;IACV,CAAC;EAAE,CAAC;AAAA;AAEhB,MAAMsK,cAAc,CAAC;AAAfA,cAAc,CACF/C,IAAI,YAAAgD,uBAAA/G,CAAA;EAAA,YAAAA,CAAA,IAAwF8G,cAAc;AAAA,CAAkD;AADxKA,cAAc,CAEFE,IAAI,kBAjF2D9K,EAAE,CAAA+K,gBAAA;EAAA5J,IAAA,EAiF4ByJ;AAAc,EAAwJ;AAF/QA,cAAc,CAGFI,IAAI,kBAlF2DhL,EAAE,CAAAiL,gBAAA;EAAAC,OAAA,GAkFsDtK,eAAe,EAAEI,kBAAkB,EAAEA,kBAAkB,EAAEjB,eAAe,EAAEa,eAAe;AAAA,EAAI;AAEtO;EAAA,QAAA+F,SAAA,oBAAAA,SAAA,KApFiF3G,EAAE,CAAAoK,iBAAA,CAoFQQ,cAAc,EAAc,CAAC;IAC5GzJ,IAAI,EAAEZ,QAAQ;IACd8J,IAAI,EAAE,CAAC;MACCa,OAAO,EAAE,CAACtK,eAAe,EAAEI,kBAAkB,CAAC;MAC9CmK,OAAO,EAAE,CAACpJ,QAAQ,EAAEf,kBAAkB,EAAEjB,eAAe,EAAEa,eAAe,CAAC;MACzEwK,YAAY,EAAE,CAACrJ,QAAQ;IAC3B,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;;AAEA,SAASV,wBAAwB,EAAEU,QAAQ,EAAE6I,cAAc,EAAE1J,+BAA+B"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|