ngx-render-material-forms 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/esm2020/lib/{FormioControl.js → FormioControl.mjs} +0 -0
  2. package/esm2020/lib/components/{Base.js → Base.mjs} +0 -0
  3. package/esm2020/lib/components/{MaterialComponent.js → MaterialComponent.mjs} +0 -0
  4. package/esm2020/lib/components/{MaterialNestedComponent.js → MaterialNestedComponent.mjs} +0 -0
  5. package/esm2020/lib/components/{Webform.js → Webform.mjs} +0 -1
  6. package/esm2020/lib/components/{formio.wizard.js → formio.wizard.mjs} +0 -0
  7. package/esm2020/lib/components/{index.js → index.mjs} +0 -0
  8. package/esm2020/lib/components/select/select.component.mjs +1 -1
  9. package/esm2020/lib/const/{ButtonsThemes.js → ButtonsThemes.mjs} +0 -0
  10. package/esm2020/lib/const/{LabelPositions.js → LabelPositions.mjs} +0 -0
  11. package/esm2020/lib/directives/{mask.directive.js → mask.directive.mjs} +0 -0
  12. package/esm2020/lib/{formio.component.js → formio.component.mjs} +0 -0
  13. package/esm2020/lib/{ngx-render-material-forms.component.js → ngx-render-material-forms.component.mjs} +0 -0
  14. package/esm2020/lib/{ngx-render-material-forms.service.js → ngx-render-material-forms.service.mjs} +0 -0
  15. package/esm2020/lib/{renderer.js → renderer.mjs} +0 -0
  16. package/esm2020/{public-api.js → public-api.mjs} +0 -0
  17. package/fesm2015/ngx-render-material-forms.js +1 -2
  18. package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
  19. package/fesm2020/{ngx-render-material-forms.mjs → ngx-render-material-forms.js} +1 -1
  20. package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
  21. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-render-material-forms.mjs","sources":["../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.service.ts","../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/Webform.ts","../../../projects/ngx-render-material-forms/src/lib/components/Base.ts","../../../projects/ngx-render-material-forms/src/lib/FormioControl.ts","../../../projects/ngx-render-material-forms/src/lib/components/MaterialComponent.ts","../../../projects/ngx-render-material-forms/src/lib/const/LabelPositions.ts","../../../projects/ngx-render-material-forms/src/lib/components/label/label.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/label/label.component.html","../../../projects/ngx-render-material-forms/src/lib/components/formio-form-field/formio-form-field.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/formio-form-field/formio-form-field.component.html","../../../projects/ngx-render-material-forms/src/lib/components/textfield/textfield.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/password/password.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/email/email.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/url/url.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/phonenumber/phonenumber.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/number/number.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/currency/currency.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/day/day.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/hidden/hidden.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/html/html.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/tags/tags.component.ts","../../../projects/ngx-render-material-forms/src/lib/const/ButtonsThemes.ts","../../../projects/ngx-render-material-forms/src/lib/components/button/button.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/button/button.component.html","../../../projects/ngx-render-material-forms/src/lib/components/textarea/textarea.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/MaterialNestedComponent.ts","../../../projects/ngx-render-material-forms/src/lib/components/panel/panel.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/columns/columns.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/container/container.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/tabs/tabs.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/time/time.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/calendar/calendar.component.ts","../../../projects/ngx-render-material-forms/src/lib/directives/mask.directive.ts","../../../projects/ngx-render-material-forms/src/lib/components/date/date.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/fieldset/fieldset.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/content/content.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/signature/signature.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/survey/survey.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/radio/radio.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/selectboxes/selectboxes.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/select/select.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/well/well.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/datagrid/datagrid.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/editgrid/editgrid.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/editgrid/editgrid.component.html","../../../projects/ngx-render-material-forms/src/lib/components/table/table.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/formio.wizard.ts","../../../projects/ngx-render-material-forms/src/lib/components/index.ts","../../../projects/ngx-render-material-forms/src/lib/renderer.ts","../../../projects/ngx-render-material-forms/src/lib/formio.component.ts","../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.module.ts","../../../projects/ngx-render-material-forms/src/public-api.ts","../../../projects/ngx-render-material-forms/src/ngx-render-material-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxRenderMaterialFormsService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'NgxMat-NgxRenderMaterialForms',\n template: `\n <p>\n ngx-render-material-forms works!\n </p>\n `,\n styles: [\n ]\n})\nexport class NgxRenderMaterialFormsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import Webform from 'formiojs/Webform.js';\nconsole.log('Webform=>', Webform)\nWebform.prototype.redraw = function() {\n return this.render();\n};\nWebform.prototype.clear = function() {\n const viewContainer = this.viewContainer ? this.viewContainer() : null;\n if (viewContainer) {\n viewContainer.clear(); \n }\n};\nWebform.prototype.render = function() {\n if (this.viewContainer && this.viewContainer()) {\n this.clear();\n this.renderComponents();\n this.setValue(this._submission);\n }\n};\n","import FormioComponent from 'formiojs/components/_classes/component/Component.js';\n\nexport default (() => {\n const beforeSubmit = FormioComponent.prototype.beforeSubmit;\n FormioComponent.prototype.beforeSubmit = function(...args) {\n if (this.materialComponent) {\n this.materialComponent.beforeSubmit();\n }\n return beforeSubmit.call(this, ...args);\n };\n\n Object.defineProperty(FormioComponent.prototype, 'disabled', {\n set(disabled) {\n this._disabled = disabled;\n if (this.materialComponent) {\n this.materialComponent.setDisabled(disabled);\n }\n }\n });\n\n Object.defineProperty(FormioComponent.prototype, 'visible', {\n set(visible) {\n if (this._visible !== visible) {\n this._visible = visible;\n this.clearOnHide();\n this.redraw();\n }\n if (this.materialComponent) {\n this.materialComponent.setVisible(visible);\n }\n }\n });\n return FormioComponent;\n})();\n\n","import { FormControl, ValidationErrors } from '@angular/forms';\nimport unescape from 'lodash/unescape';\n\n// @dynamic\nexport class FormioControl extends FormControl {\n public instance: any;\n\n static customValidator(control: FormioControl): Promise<ValidationErrors> {\n return new Promise((resolve) => {\n if (control.instance) {\n control.instance.validateResolve = resolve;\n } else {\n resolve(null);\n }\n });\n }\n\n constructor(...args) {\n super(args[0], [], [FormioControl.customValidator.bind(FormioControl)]);\n }\n\n setInstance(instance: any) {\n this.instance = instance;\n const setCustomValidity = instance.setCustomValidity;\n instance.setCustomValidity = (message: any, dirty, external, isWarning = false) => {\n let decodedMessage = message;\n if (Array.isArray(message)) {\n decodedMessage = message.map(msg => Object.assign(msg, { message: unescape(msg.message) }));\n }\n else if (message) {\n decodedMessage = unescape(message);\n }\n\n setCustomValidity.call(instance, decodedMessage, dirty, external, isWarning);\n if (instance.validateResolve) {\n instance.validateResolve(decodedMessage ? {custom: true} : null);\n }\n };\n }\n}\n","import {Component, Input, ViewChild, ElementRef, ChangeDetectorRef, AfterViewInit, OnInit} from '@angular/core';\nimport FormioComponent from './Base';\nimport Validator from 'formiojs/validator/Validator.js';\nimport { FormioControl } from '../FormioControl';\nimport get from 'lodash/get';\n\n@Component({\n selector: 'mat-formio-comp',\n template: '<mat-card>Unknown Component: {{ instance.component.type }}</mat-card>'\n})\nexport class MaterialComponent implements AfterViewInit, OnInit {\n @Input() instance: any;\n @ViewChild('input') input: ElementRef;\n @Input() control: FormioControl = new FormioControl();\n constructor(public element: ElementRef, public ref: ChangeDetectorRef) {}\n\n setInstance(instance: any) {\n this.control.setInstance(instance);\n instance.materialComponent = this;\n this.instance = instance;\n this.instance.disabled = this.instance.shouldDisabled;\n this.setVisible(this.instance.visible);\n this.renderComponents();\n }\n\n ngOnInit() {\n if (this.instance) {\n if (this.shouldValidateOnInit()) {\n this.storeFormData();\n this.validateOnInit();\n }\n this.instance.component.defaultValue ? this.setValue(this.instance.component.defaultValue) : '';\n }\n }\n\n validateOnInit() {\n const {key} = this.instance.component;\n const validationValue = this.getFormValue(this.instance.path);\n\n if (validationValue === null) {\n return;\n }\n\n this.instance.setPristine(false);\n\n const validationResult = Validator.checkComponent(\n this.instance,\n {[key]: validationValue},\n {[key]: validationValue}\n );\n\n if (validationResult.length) {\n this.instance.setCustomValidity(validationResult, false);\n if (!!validationValue) {\n this.control.markAsTouched();\n }\n this.ref.detectChanges();\n }\n }\n\n storeFormData() {\n if (this.instance.parent && this.instance.parent.submission && this.instance.parent.submission.data) {\n sessionStorage.setItem('formData', JSON.stringify(this.instance.parent.submission.data));\n }\n }\n\n getFormValue(path) {\n const formData = JSON.parse(sessionStorage.getItem('formData'));\n\n if (!formData) {\n return null;\n }\n\n return get(formData, path);\n }\n\n renderComponents() {}\n\n onChange(keepInputRaw?: boolean) {\n let value = this.getValue();\n\n if (value === undefined || value === null) {\n value = this.instance.emptyValue;\n }\n\n if (this.input && this.input.nativeElement.mask && value && !keepInputRaw) {\n this.input.nativeElement.mask.textMaskInputElement.update(value);\n this.control.setValue(this.input.nativeElement.value);\n value = this.getValue();\n }\n this.instance.updateValue(value, {modified: true});\n }\n\n getValue() {\n return this.control.value;\n }\n\n setValue(value) {\n this.control.setValue(value);\n }\n\n beforeSubmit() {\n this.control.markAsTouched();\n }\n\n hasError() {\n return !!this.instance && !!this.instance.error;\n }\n\n shouldValidateOnInit() {\n if (!this.instance) {\n return;\n }\n\n return this.instance.options.validateOnInit\n || this.instance.parent.options.validateOnInit;\n }\n\n setDisabled(disabled) {\n if (disabled) {\n this.control.disable();\n } else {\n this.control.enable();\n }\n }\n\n setVisible(visible) {\n if (this.element && this.element.nativeElement) {\n if (visible) {\n this.element.nativeElement.removeAttribute('hidden');\n this.element.nativeElement.style.visibility = 'visible';\n this.element.nativeElement.style.position = 'relative';\n } else {\n this.element.nativeElement.setAttribute('hidden', true);\n this.element.nativeElement.style.visibility = 'hidden';\n this.element.nativeElement.style.position = 'absolute';\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.element && this.element.nativeElement && this.instance) {\n // Add custom classes to elements.\n if (this.instance.component.customClass) {\n this.element.nativeElement.classList.add(this.instance.component.customClass);\n }\n }\n\n if (this.input) {\n // Set the input masks.\n this.instance.setInputMask(this.input.nativeElement);\n this.instance.addFocusBlurEvents(this.input.nativeElement);\n }\n }\n}\n\nFormioComponent.MaterialComponent = MaterialComponent;\nexport { FormioComponent };\n","export enum LabelPositions {\n RIGHT_RIGHT = 'right-right',\n RIGHT_LEFT = 'right-left',\n LEFT_LEFT = 'left-left',\n LEFT_RIGHT = 'left-right',\n BOTTOM = 'bottom',\n TOP = 'top',\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'span[matFormioLabel]',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.css']\n})\nexport class LabelComponent {\n @Input() instance;\n}\n","<ng-container *ngIf=\"instance\">\n {{ instance.component.label }}<span class=\"required-star\" *ngIf=\"instance.component.validate.required\">*</span>\n <mat-icon *ngIf=\"instance.component.tooltip\" style=\"font-size: 1rem;\"\n matTooltip=\"{{ instance.component.tooltip }}\" matSuffix\n >\n info\n </mat-icon>\n</ng-container>\n","import { Component, Input, TemplateRef } from '@angular/core';\nimport { LabelPositions } from '../../const/LabelPositions';\n\n@Component({\n selector: 'mat-formio-form-field',\n templateUrl: './formio-form-field.component.html',\n styleUrls: ['./formio-form-field.component.css']\n})\nexport class FormioFormFieldComponent {\n private _instance;\n public labelPositions = LabelPositions;\n @Input() labelTemplate: TemplateRef<any>;\n @Input() renderTopLabel = false;\n @Input() showDescription = true;\n @Input() renderElementOnly = false;\n\n @Input('instance')\n set instance(instance) {\n this._instance = instance;\n if (instance) {\n this.componentTemplateContext = {$implicit: this.hasLabel(['top'])};\n }\n }\n\n get instance() {\n return this._instance;\n }\n\n @Input() componentTemplate: TemplateRef<any>;\n componentTemplateContext;\n\n hasLabel(labelPositions?: string[]) {\n const { component } = this.instance;\n const hasNoLabel = !component.label || component.hideLabel;\n const labelPositionIsNotSpecified = !labelPositions ||\n !labelPositions.length ||\n !component.labelPosition;\n\n if (hasNoLabel || labelPositionIsNotSpecified || this.renderElementOnly) {\n return false;\n }\n\n if (labelPositions.includes(component.labelPosition)) {\n return true;\n }\n }\n}\n","<div class=\"mat-formio-component-wrapper\" *ngIf=\"instance && !renderElementOnly\"\n [ngClass]=\"{\n 'mat-formio-label-right': hasLabel([labelPositions.RIGHT_RIGHT, labelPositions.RIGHT_LEFT]),\n 'mat-formio-label-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.LEFT_RIGHT])\n }\"\n>\n <span *ngIf=\"renderTopLabel && hasLabel([labelPositions.TOP])\"\n class=\"mat-formio-label\"\n [ngClass]=\"{\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\n }\"\n >\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\n </span>\n\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\n\n <span *ngIf=\"hasLabel([\n labelPositions.BOTTOM,\n labelPositions.RIGHT_RIGHT,\n labelPositions.RIGHT_LEFT,\n labelPositions.LEFT_LEFT,\n labelPositions.LEFT_RIGHT\n ])\"\n class=\"mat-formio-label\"\n [ngClass]=\"{\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\n }\"\n >\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\n </span>\n\n <mat-hint *ngIf=\"showDescription && instance.component.description\" class=\"mat-formio-component-description\">\n {{ instance.component.description }}\n </mat-hint>\n</div>\n\n<div class=\"mat-formio-component-wrapper\" *ngIf=\"renderElementOnly\">\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\n</div>\n\n<ng-template #defaultLabel>\n <mat-label>\n <span style=\"display: block;\"\n [instance]=\"instance\" matFormioLabel>\n </span>\n </mat-label>\n</ng-template>\n","import { Component, OnInit, AfterContentInit } from '@angular/core';\nimport TextFieldComponent from 'formiojs/components/textfield/TextField.js';\nimport { MaterialComponent } from '../MaterialComponent';\n\nexport const TEXTFIELD_TEMPLATE = `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field [appearance]=\"getFormFieldAppearance()\" fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <span *ngIf=\"instance.component.prefix && instance.type !== 'currency'\"\n matPrefix\n >\n {{ instance.component.prefix }}&nbsp;\n </span>\n <input matInput\n type=\"{{ inputType }}\"\n [formControl]=\"control\"\n [placeholder]=\"instance.component.placeholder\"\n (input)=\"onChange()\" #input\n >\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\n\n <mat-hint *ngIf=\"instance.component.showWordCount || instance.component.showCharCount\">\n {{ getHint() }}\n </mat-hint>\n\n <br/>\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </ng-template>\n`;\n\n@Component({\n selector: 'mat-formio-textfield',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialTextfieldComponent extends MaterialComponent implements AfterContentInit {\n public inputType = 'text';\n\n ngAfterContentInit() {\n if (this.instance && this.control && this.instance.component.disabled) {\n this.control.disable();\n }\n }\n\n getHint() {\n if (!this.instance || !this.control || !this.control.value) {\n return '';\n }\n\n const {showWordCount, showCharCount} = this.instance.component;\n\n if (showWordCount && showCharCount) {\n return `${this.getWordsCount()} words, ${this.control.value.length} characters`;\n } else if (showWordCount) {\n return `${this.getWordsCount()} words`;\n } else {\n return `${this.control.value.length} characters`;\n }\n }\n\n getWordsCount() {\n const matches = this.control.value ? this.control.value.match(/[\\w\\d’'-]+/gi) : [];\n return matches ? matches.length : 0;\n }\n\n getFormFieldAppearance() {\n const appearances = ['legacy', 'standard', 'fill', 'outline'];\n const appearance = this.instance.component.appearance ? this.instance.component.appearance.toLowerCase() : '';\n return appearances.includes(appearance) ? appearance : undefined;\n }\n\n isError() {\n if (this.instance.error) {\n this.control.setErrors(this.instance.component.validate);\n return true;\n }\n else {\n return false;\n }\n }\n\n getErrorMessage() {\n if (this.instance.error && this.instance.error.messages) {\n const { messages } = this.instance.error;\n\n for (const msg of messages) {\n if (msg.context && this.control.hasError(msg.context.validator)) {\n return this.instance.error.message;\n }\n }\n }\n }\n}\nTextFieldComponent.MaterialComponent = MaterialTextfieldComponent;\nexport { TextFieldComponent };\n","import { Component } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport PasswordComponent from 'formiojs/components/password/Password.js';\n@Component({\n selector: 'mat-formio-password',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialPasswordComponent extends MaterialTextfieldComponent {\n public inputType = 'password';\n}\nPasswordComponent.MaterialComponent = MaterialPasswordComponent;\nexport { PasswordComponent };\n","import { Component } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport EmailComponent from 'formiojs/components/email/Email.js';\n@Component({\n selector: 'mat-formio-email',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialEmailComponent extends MaterialTextfieldComponent {\n public inputType = 'email';\n}\nEmailComponent.MaterialComponent = MaterialEmailComponent;\nexport { EmailComponent };\n","import { Component } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport UrlComponent from 'formiojs/components/url/Url.js';\n@Component({\n selector: 'mat-formio-url',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialUrlComponent extends MaterialTextfieldComponent {\n public inputType = 'url';\n}\nUrlComponent.MaterialComponent = MaterialUrlComponent;\nexport { UrlComponent };\n","import { Component } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport PhoneNumberComponent from 'formiojs/components/phonenumber/PhoneNumber.js';\n@Component({\n selector: 'mat-formio-phonenumber',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialPhoneNumberComponent extends MaterialTextfieldComponent {\n public inputType = 'text';\n}\nPhoneNumberComponent.MaterialComponent = MaterialPhoneNumberComponent;\nexport { PhoneNumberComponent };\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Renderer2 } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport NumberComponent from 'formiojs/components/number/Number.js';\nimport _ from 'lodash';\n\n@Component({\n selector: 'mat-formio-number',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialNumberComponent extends MaterialTextfieldComponent implements AfterViewInit {\n public inputType = 'text';\n\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, private renderer: Renderer2) {\n super(element, ref);\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.instance) {\n const { instance } = this;\n\n this.renderer.listen(this.input.nativeElement, 'blur', () => {\n let value = instance.parseValue(this.control.value);\n value = instance.formatValue(value);\n value = instance.getValueAsString(value);\n this.control.setValue(value);\n });\n\n }\n }\n\n getValue() {\n let value = this.control.value;\n if (value && this.instance) {\n value = value.replace(this.instance.prefix, '');\n return !_.isNil(value) && value !== '' ? this.instance.parseNumber(value) : value;\n }\n return value;\n }\n\n setValue(value) {\n if (this.instance) {\n const { instance } = this;\n value = instance.formatValue(instance.parseValue(value));\n }\n else {\n value = value.toString();\n }\n\n return super.setValue(value);\n }\n\n onChange() {\n super.onChange(true);\n }\n}\nNumberComponent.MaterialComponent = MaterialNumberComponent;\nexport { NumberComponent };\n","import { Component } from '@angular/core';\nimport { TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport { MaterialNumberComponent } from '../number/number.component';\nimport CurrencyComponent from 'formiojs/components/currency/Currency.js';\nimport _ from 'lodash';\n\n@Component({\n selector: 'mat-formio-currency',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialCurrencyComponent extends MaterialNumberComponent {\n public inputType = 'text';\n\n onChange() {\n const newValue = _.isNil(this.getValue()) ? '' : this.getValue();\n this.instance.updateValue(newValue, {modified: true});\n }\n}\nCurrencyComponent.MaterialComponent = MaterialCurrencyComponent;\nexport { CurrencyComponent };\n","import { Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MaterialComponent } from '../MaterialComponent';\nimport DayComponent from 'formiojs/components/day/Day.js';\nimport { momentDate } from 'formiojs/utils/utils.js';\nDayComponent.prototype.getFieldValue = function(name) {\n return this.refs[name] ? this.refs[name].value : '';\n};\n\n@Component({\n selector: 'mat-formio-day',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n <mat-form-field *ngIf=\"instance.dayFirst && instance.showDay\">\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Day</mat-label>\n <mat-select [formControl]=\"dayControl\" (selectionChange)=\"onChange()\" [required]=\"instance.dayRequired\">\n <mat-option *ngFor=\"let day of instance.days\" [value]=\"day.value\">\n {{day.label}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field *ngIf=\"instance.showMonth\">\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Month</mat-label>\n <mat-select [formControl]=\"monthControl\" (selectionChange)=\"onChange()\" [required]=\"instance.monthRequired\">\n <mat-option *ngFor=\"let month of instance.months\" [value]=\"month.value\">\n {{month.label}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field *ngIf=\"!instance.dayFirst && instance.showDay\">\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Day</mat-label>\n <mat-select [formControl]=\"dayControl\" (selectionChange)=\"onChange()\" [required]=\"instance.dayRequired\">\n <mat-option *ngFor=\"let day of instance.days\" [value]=\"day.value\">\n {{day.label}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field *ngIf=\"instance.showYear\">\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Year</mat-label>\n <mat-select [formControl]=\"yearControl\" (selectionChange)=\"onChange()\" [required]=\"instance.yearRequired\">\n <mat-option *ngFor=\"let year of instance.years\" [value]=\"year.value\">\n {{year.label}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </ng-template>\n `\n})\nexport class MaterialDayComponent extends MaterialComponent {\n public dayControl: FormControl = new FormControl();\n public monthControl: FormControl = new FormControl();\n public yearControl: FormControl = new FormControl();\n setInstance(instance) {\n // Add stub methods to match dom elements.\n (this.dayControl as any).setAttribute = () => {};\n (this.dayControl as any).removeAttribute = () => {};\n (this.monthControl as any).setAttribute = () => {};\n (this.monthControl as any).removeAttribute = () => {};\n (this.yearControl as any).setAttribute = () => {};\n (this.yearControl as any).removeAttribute = () => {};\n instance.refs = {\n day: this.dayControl,\n month: this.monthControl,\n year: this.yearControl\n };\n return super.setInstance(instance);\n }\n\n setDisabled(disabled) {\n if (disabled) {\n this.dayControl.disable();\n this.monthControl.disable();\n this.yearControl.disable();\n } else {\n this.dayControl.enable();\n this.monthControl.enable();\n this.yearControl.enable();\n }\n }\n\n getValue() {\n return this.instance.getDate();\n }\n\n setValue(value) {\n if (value) {\n this.dayControl.setValue(parseInt(momentDate(value).format('D')));\n this.monthControl.setValue(parseInt(momentDate(value).format('M')));\n this.yearControl.setValue(parseInt(momentDate(value).format('YYYY')));\n }\n this.instance.setValueAt(0, value);\n }\n}\nDayComponent.MaterialComponent = MaterialDayComponent;\nexport { DayComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport HiddenComponent from 'formiojs/components/hidden/Hidden.js';\n@Component({\n selector: 'mat-formio-hidden',\n template: `<input matInput type=\"hidden\" [formControl]=\"control\" #input>`\n})\nexport class MaterialHiddenComponent extends MaterialComponent {}\nHiddenComponent.MaterialComponent = MaterialHiddenComponent;\nexport { HiddenComponent };\n","import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport HtmlComponent from 'formiojs/components/html/HTML.js';\n\n@Component({\n selector: 'mat-formio-html',\n template: `<div #htmlBody></div>`\n})\nexport class MaterialHtmlComponent extends MaterialComponent implements AfterViewInit {\n @ViewChild('htmlBody') htmlBody: ElementRef;\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.instance.component.refreshOnChange) {\n this.instance.checkRefreshOn = () => {\n this.htmlBody.nativeElement.innerHTML = this.instance.renderContent();\n };\n }\n }\n}\nHtmlComponent.MaterialComponent = MaterialHtmlComponent;\nexport { HtmlComponent };\n","import { Component } from '@angular/core';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport TagsComponent from 'formiojs/components/tags/Tags.js';\nimport { MaterialComponent } from '../MaterialComponent';\nimport { MatChipInputEvent } from '@angular/material/chips';\n\n@Component({\n selector: 'mat-formio-tags',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field class=\"example-chip-list\" fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <mat-chip-list #chipList [attr.aria-label]=\"instance.component.label\">\n <mat-chip *ngFor=\"let tag of tags; index as i;\"\n [selectable]=\"true\"\n [removable]=\"true\"\n (removed)=\"remove(i)\"\n >\n {{tag}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input [formControl]=\"control\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\"\n >\n </mat-chip-list>\n </mat-form-field>\n </ng-template>\n `\n})\nexport class MaterialTagsComponent extends MaterialComponent {\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\n tags: string[] = [];\n add(event: MatChipInputEvent): void {\n const input = event.input;\n const value = event.value;\n if ((value || '').trim()) {\n this.tags.push(value.trim());\n }\n if (input) {\n input.value = '';\n }\n this.onChange();\n }\n\n remove(index): void {\n if (index >= 0 && index < this.tags.length) {\n this.tags.splice(index, 1);\n }\n this.onChange();\n }\n\n getValue() {\n return (this.instance.component.storeas === 'string') ? this.tags.join(this.instance.delimiter) : this.tags;\n }\n\n setValue(value) {\n if (typeof value === 'string') {\n value = value.split(this.instance.delimiter);\n }\n if (value && !Array.isArray(value)) {\n value = [value];\n }\n this.tags = value;\n }\n}\n(TagsComponent as any).MaterialComponent = MaterialTagsComponent;\nexport { TagsComponent };\n","export enum ButtonsThemes {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger',\n SUCCESS = 'success'\n}\n\nexport enum AngularButtonsThemes {\n WARN = 'warn',\n PRIMARY = 'primary',\n BASIC = 'basic',\n ACCENT = 'accent'\n}\n","import { Component } from '@angular/core';\n import ButtonComponent from 'formiojs/components/button/Button.js';\nimport { MaterialComponent } from '../MaterialComponent';\nimport { AngularButtonsThemes, ButtonsThemes } from '../../const/ButtonsThemes';\n\n@Component({\n selector: 'mat-formio-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.css']\n})\nexport class MaterialButtonComponent extends MaterialComponent {\n public loading = false;\n public done = false;\n public error = false;\n public disabled = false;\n public clicked = false;\n\n get color() {\n if (this.error) {\n return AngularButtonsThemes.WARN;\n }\n const theme = this.angularButtonTheme;\n return theme || AngularButtonsThemes.PRIMARY;\n }\n\n get angularButtonTheme() {\n switch (this.instance.component.theme) {\n case ButtonsThemes.PRIMARY:\n return AngularButtonsThemes.PRIMARY;\n\n case ButtonsThemes.WARNING:\n return AngularButtonsThemes.ACCENT;\n\n case ButtonsThemes.DANGER:\n return AngularButtonsThemes.WARN;\n\n case ButtonsThemes.SECONDARY:\n return AngularButtonsThemes.BASIC;\n\n default:\n return '';\n }\n }\n\n get buttonClass() {\n let className = this.instance.component.block ? 'mat-formio-button-block' : '';\n className += this.instance.component.size ? ` mat-formio-button-${this.instance.component.size}` : '';\n className += !this.angularButtonTheme ? ` mat-formio-theme-${this.instance.component.theme}` : '';\n return className;\n }\n\n onClick(event) {\n this.clicked = true;\n this.instance.onClick(event);\n }\n\n getValue() {\n return this.clicked;\n }\n\n setState(loading, error, done) {\n this.loading = loading;\n this.done = done;\n this.error = error;\n }\n\n getIconFontSet(icon: string) {\n const fontSet = icon.split(' ')[0];\n return fontSet;\n }\n\n getIconName(icon: string) {\n return icon.replace(this.getIconFontSet(icon), '');\n }\n\n setInstance(instance) {\n const retVal = super.setInstance(instance);\n this.disabled = instance.shouldDisabled;\n instance.on('submitButton', () => this.setState(true, false, false));\n instance.on('submitDone', () => this.setState(false, false, true));\n instance.on('submitError', () => this.setState(false, true, false));\n instance.on('requestButton', () => this.setState(true, false, false));\n instance.on('requestDone', () => this.setState(false, false, true));\n instance.on('change', (event) => {\n this.disabled = this.instance.shouldDisabled || (this.instance.component.disableOnInvalid && !event.isValid);\n if (event.isValid) {\n this.loading = false;\n this.error = false;\n }\n });\n return retVal;\n }\n}\nButtonComponent.MaterialComponent = MaterialButtonComponent;\nexport { ButtonComponent };\n","<button *ngIf=\"instance\"\n [ngClass]=\"buttonClass\"\n type=\"{{ instance.component.action }}\"\n mat-raised-button [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"instance.onClick($event)\"\n>\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\n <mat-icon *ngIf=\"done\">done</mat-icon>\n <mat-icon *ngIf=\"error\">close</mat-icon>\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\n {{ instance.component.label }}\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\n</button>\n","import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport TextAreaComponent from 'formiojs/components/textarea/TextArea.js';\nimport isNil from 'lodash/isNil';\n\n@Component({\n selector: 'mat-formio-textarea',\n styleUrls: ['./textarea.component.css'],\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field class=\"mat-formio-textarea\"\n [ngClass]=\"{'editor-enabled': !!instance.component.editor}\"\n fxFill\n fxFlexAlign=\"center\"\n >\n <mat-label fxFill *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n <span *ngIf=\"instance.component.prefix\" matPrefix>{{ instance.component.prefix }}&nbsp;</span>\n <textarea matInput\n [placeholder]=\"instance.component.placeholder\"\n [formControl]=\"control\"\n [rows]=\"(instance.component.rows || 3)\"\n (input)=\"onChange()\"\n #textarea\n >\n </textarea>\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </mat-form-field>\n </ng-template>\n `\n})\nexport class MaterialTextareaComponent extends MaterialComponent implements AfterViewInit {\n @ViewChild('textarea') textarea: ElementRef;\n\n ngAfterViewInit() {\n // Attach the element so the wysiwyg will work.\n this.instance.attachElement(this.textarea.nativeElement);\n }\n\n getValue() {\n return isNil(this.control.value) ? '' : this.control.value;\n }\n}\nTextAreaComponent.MaterialComponent = MaterialTextareaComponent;\nexport { TextAreaComponent };\n","import { AfterViewInit, Component, QueryList, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { MaterialComponent } from './MaterialComponent';\n\n@Component({\n selector: 'mat-formio-nested',\n template: '<ng-template #components></ng-template>'\n})\nexport class MaterialNestedComponent extends MaterialComponent implements AfterViewInit {\n public viewContainers;\n @ViewChildren('components', {read: ViewContainerRef}) components: QueryList<ViewContainerRef>;\n setInstance(instance: any) {\n instance.viewContainer = () => {\n return this.viewContainers ? this.viewContainers[0] : null;\n };\n super.setInstance(instance);\n }\n\n renderComponents() {\n if (this.instance.renderComponents) {\n this.instance.renderComponents();\n }\n }\n\n render() {\n this.viewContainers = this.components.toArray();\n this.renderComponents();\n this.ref.detectChanges();\n }\n\n ngAfterViewInit() {\n this.components.changes.subscribe(() => this.render());\n this.render();\n }\n}\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport PanelComponent from 'formiojs/components/panel/Panel.js';\n@Component({\n selector: 'mat-formio-panel',\n template: `\n <mat-card *ngIf=\"!instance.component.collapsible\">\n <mat-card-title *ngIf=\"instance?.component?.title\">\n {{ instance.component.title }}\n </mat-card-title>\n <mat-card-content fxLayout=\"column\" fxLayoutGap=\"1em\">\n <ng-template #components></ng-template>\n </mat-card-content>\n </mat-card>\n <mat-expansion-panel *ngIf=\"instance.component.collapsible\"\n [expanded]=\"!instance.component.collapsed\"\n >\n <mat-expansion-panel-header *ngIf=\"instance?.component?.title\">\n <mat-panel-title>\n {{ instance.component.title }}\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template #components></ng-template>\n </mat-expansion-panel>\n `,\n styles: [\n ':host { margin-bottom: 1em; }'\n ]\n})\nexport class MaterialPanelComponent extends MaterialNestedComponent {}\nPanelComponent.MaterialComponent = MaterialPanelComponent;\nexport { PanelComponent };\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport ColumnsComponent from 'formiojs/components/columns/Columns.js';\n\n@Component({\n selector: 'mat-formio-columns',\n template: `\n <div class=\"container\"\n fxLayout=\"row\"\n fxLayout.xs=\"column\"\n fxLayoutWrap\n fxLayoutGap=\"{{ flexGap }}%\"\n fxLayoutAlign=\"center\"\n >\n <div\n *ngFor=\"let column of instance.component.columns; let i = index\"\n [fxFlex]=\"flexWidth(column, i)\"\n fxLayout=\"column\"\n fxLayoutGap=\"1em\">\n <ng-template #components></ng-template>\n </div>\n </div>\n `,\n styles: []\n})\nexport class MaterialColumnsComponent extends MaterialNestedComponent {\n public flexGap = 0.5;\n public totalSpace = 0;\n setInstance(instance: any) {\n this.totalSpace = 100 - ((instance.component.columns.length - 1) * this.flexGap);\n super.setInstance(instance);\n instance.viewContainer = (component) => {\n return this.viewContainers ? this.viewContainers[component.column] : null;\n };\n }\n\n flexWidth(column, index) {\n if (index >= (this.instance.component.columns.length - 1)) {\n return Math.ceil(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';\n } else {\n return Math.floor(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';\n }\n }\n}\nColumnsComponent.MaterialComponent = MaterialColumnsComponent;\nexport { ColumnsComponent };\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport ContainerComponent from 'formiojs/components/container/Container.js';\n@Component({\n selector: 'mat-formio-container',\n template: `\n <div fxLayout=\"column\" fxLayoutGap=\"1em\">\n <ng-template #components></ng-template>\n </div>`\n})\nexport class MaterialContainerComponent extends MaterialNestedComponent { }\nContainerComponent.MaterialComponent = MaterialContainerComponent;\nexport { ContainerComponent };\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport TabsComponent from 'formiojs/components/tabs/Tabs.js';\n\n@Component({\n selector: 'mat-formio-tabs',\n template: `\n <mat-tab-group>\n <mat-tab *ngFor=\"let tab of instance.component.components\" [label]=\"tab.label\">\n <div fxLayout=\"column\" fxLayoutGap=\"1em\" style=\"border: 1px dotted rgba(0, 0, 0, 0.125)\">\n <ng-template #components></ng-template>\n </div>\n </mat-tab>\n </mat-tab-group>\n `\n})\nexport class MaterialTabsComponent extends MaterialNestedComponent {\n setInstance(instance: any) {\n super.setInstance(instance);\n instance.viewContainer = (component) => {\n return this.viewContainers ? this.viewContainers[component.tab] : null;\n };\n }\n}\nTabsComponent.MaterialComponent = MaterialTabsComponent;\nexport { TabsComponent };\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MaterialComponent } from '../MaterialComponent';\nimport TimeComponent from 'formiojs/components/time/Time.js';\nimport * as moment_ from 'moment';\n@Component({\n selector: 'mat-formio-time',\n template: `\n <mat-formio-form-field\n [instance]=\"instance\"\n [componentTemplate]=\"componentTemplate\"\n [renderElementOnly]=\"renderElementOnly\"\n ></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-label fxFill *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <div style=\"display: block\">\n <div fxLayout=\"row\" fxLayoutGap=\"5%\">\n <input\n [formControl]=\"hourControl\"\n [step]=\"hourStep\"\n [min]=\"0\"\n [max]=\"12\"\n type=\"number\"\n fxFlex=\"25%\"\n (input)=\"onChange()\"\n >\n <input\n [formControl]=\"minuteControl\"\n [step]=\"minuteStep\"\n [min]=\"0\"\n [max]=\"59\"\n type=\"number\"\n fxFlex=\"25%\"\n (input)=\"onChange()\"\n >\n <input\n [formControl]=\"secondControl\"\n [step]=\"secondStep\"\n [min]=\"0\"\n [max]=\"59\"\n type=\"number\"\n fxFlex=\"25%\"\n (input)=\"onChange()\"\n *ngIf=\"instance?.component?.dataFormat === 'HH:mm:ss' ||\n instance?.component?.dataFormat === 'HH:mm:ss.SSS'\"\n >\n <button\n [disabled]=\"instance?.component?.disabled\"\n fxFlex=\"25%\"\n (click)=\"changePeriod()\"\n >\n {{period}}\n </button>\n </div>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </div>\n </ng-template>\n `\n})\n\nexport class MaterialTimeComponent extends MaterialComponent {\n public disabled = false;\n public period = 'AM';\n public hourControl: FormControl = new FormControl();\n public minuteControl: FormControl = new FormControl();\n public secondControl: FormControl = new FormControl();\n @Output() selectedEvent = new EventEmitter<any>();\n @Input() hourStep = 1;\n @Input() minuteStep = 1;\n @Input() secondStep = 1;\n @Input() renderElementOnly = false;\n\n setDisabled(disabled) {\n if (disabled) {\n this.hourControl.disable();\n this.minuteControl.disable();\n this.secondControl.disable();\n }\n }\n\n get dataFormat() {\n let format = this.instance.component.dataFormat;\n format = format ? format : 'HH:mm';\n return format;\n }\n\n setInstance(instance) {\n super.setInstance(instance);\n // this.control.setValue('00:00:00');\n this.onChange();\n }\n\n onChange() {\n const hours = this.hourControl.value;\n const minutes = this.minuteControl.value || '00';\n const seconds = this.secondControl.value || '';\n const rawValue = `${hours || '00'}:${minutes}${seconds ? ':' + seconds : ''} ${this.period}`;\n let value = this.getTwentyFourHourTime(rawValue);\n\n if (!hours) {\n value = this.instance.emptyValue;\n }\n\n this.control.setValue(value);\n if (this.instance) {\n super.onChange();\n }\n this.selectedEvent.emit(this.control);\n }\n\n setValue(value) {\n if (!value) {\n return;\n }\n super.setValue(value);\n const [hourValue, minuteValue, period] = value.split(':');\n this.hourControl.setValue(hourValue);\n this.minuteControl.setValue(minuteValue);\n // fix for default value with seconds instead of period\n this.period = period === ('AM' || 'PM') ? period : this.period;\n }\n\n getTwentyFourHourTime(amPmString) {\n const moment = moment_;\n return moment(amPmString, ['h:mm:ss A']).format(this.dataFormat);\n }\n\n changePeriod() {\n this.period = this.period === 'AM' ? 'PM' : 'AM';\n this.onChange();\n }\n}\n\nTimeComponent.MaterialComponent = MaterialTimeComponent;\nexport { TimeComponent };\n","import {Component, EventEmitter, Input, NgModule, Output, ViewChild} from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\n@Component({\n selector: 'mat-formio-calendar',\n styles: [\n `.calendar, .formio-time {\n padding: 16px;\n background-color: white;\n box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);\n }\n .formio-time {\n display: flex;\n }\n `\n ],\n template: `\n <div class=\"container\" fxLayout=\"row\" fxLayout.xs=\"column\" fxLayoutGap=\"0.5%\">\n <div [ngStyle]=\"getPopupStyles()\">\n <mat-card style=\"padding: 0;\">\n <mat-calendar\n [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selected]=\"selectedDate\"\n (selectedChange)=\"onDate($event)\"\n class=\"calendar\"\n *ngIf=\"enableDate !== false\"\n >\n </mat-calendar>\n <mat-formio-time\n #time\n [hourStep]=\"hourStep\"\n [instance]=\"instance\"\n [renderElementOnly]=\"true\"\n [minuteStep]=\"minuteStep\"\n (selectedEvent)=\"onTime($event)\"\n class=\"ml-3 formio-time\"\n *ngIf=\"enableTime\"\n >\n </mat-formio-time>\n </mat-card>\n </div>\n </div>\n `\n})\n\nexport class MaterialCalendarComponent extends MaterialComponent {\n public selectedDate: any;\n public selectedTime: any;\n public selectedTimeComponent: any;\n\n @ViewChild('time') time;\n\n @Input() enableDate: boolean;\n @Input() enableTime: boolean;\n @Input() minDate: any;\n @Input() maxDate: any;\n @Input() dateFilter: any;\n @Input() hourStep: any;\n @Input() minuteStep: any;\n @Output() timeSelectEvent = new EventEmitter<any>();\n @Output() dateSelectEvent = new EventEmitter<any>();\n\n setInstance(instance: any) {\n super.setInstance(instance);\n }\n\n setExistedDate(value) {\n this.selectedDate = value;\n }\n\n setExistedTime(value, forTime) {\n this.selectedTime = value;\n this.time.setValue(forTime);\n }\n\n onDate(event){\n this.selectedDate = event;\n this.dateSelectEvent.emit(this.selectedDate);\n }\n\n onTime(event) {\n this.selectedTime = event.value;\n this.timeSelectEvent.emit(this.selectedTime);\n }\n\n getPopupStyles() {\n return {\n position: 'absolute',\n zIndex: '1000',\n display: 'flex',\n maxWidth: '100%',\n maxHeight: '100%',\n top: '90px',\n left: '30px'\n }\n }\n}\n","import { Directive, ElementRef, forwardRef, Input } from '@angular/core';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n selector: 'input[matMask]',\n providers: [\n {provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MaskDirective},\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MaskDirective),\n multi: true,\n }\n ]\n})\nexport class MaskDirective {\n @Input('matMask') format: (value: string) => string;\n private _value: string | null;\n\n constructor(private elementRef: ElementRef<HTMLInputElement>) {}\n\n\n get value(): string | null {\n return this._value;\n }\n\n @Input('value')\n set value(value: string | null) {\n this._value = value;\n this.formatValue(value);\n }\n\n private formatValue(value: string | null) {\n if (value !== null) {\n this.elementRef.nativeElement.value = this.format(value);\n }\n else {\n this.elementRef.nativeElement.value = '';\n }\n }\n\n _onChange(value: any): void {\n }\n\n writeValue(value: any) {\n this._value = value;\n this.formatValue(this._value); // format Value\n }\n\n registerOnChange(fn: (value: any) => void) {\n this._onChange = fn;\n }\n\n registerOnTouched() {\n }\n}\n","import { Component, ViewChild } from '@angular/core'\nimport { MaterialComponent } from '../MaterialComponent';\nimport DateTimeComponent from 'formiojs/components/datetime/DateTime.js';\nimport { momentDate } from 'formiojs/utils/utils.js';\nimport {FormControl} from '@angular/forms';\n@Component({\n selector: 'mat-formio-date',\n host: {\n '(document:click)': 'clickOutside($event)',\n },\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-label *ngIf=\"hasLabel\" fxFill>\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <form class=\"example-form\">\n <mat-datepicker-toggle [disabled]=\"isDisabled()\" (click)=\"toggleCalendar($event)\">\n <mat-icon matDatepickerToggleIcon *ngIf=\"enableTime && !enableDate\">schedule</mat-icon>\n </mat-datepicker-toggle>\n <mat-form-field class=\"example-full-width\">\n <input\n *ngIf=\"enableTime && enableDate\"\n matInput\n type=\"datetime-local\"\n [placeholder]=\"instance.component.placeholder\"\n [formControl]=\"displayControl\"\n (input)=\"onChangeInput()\"\n [readonly]=\"!allowManualInput\"\n >\n <input\n *ngIf=\"enableTime && !enableDate\"\n matInput\n [placeholder]=\"instance.component.placeholder\"\n [formControl]=\"displayControl\"\n [matMask]=\"formatTime\"\n (input)=\"onChangeInput()\"\n [readonly]=\"!allowManualInput\"\n >\n <input\n *ngIf=\"!enableTime && enableDate\"\n matInput\n [placeholder]=\"instance.component.placeholder\"\n [formControl]=\"displayControl\"\n (input)=\"onChangeInput()\"\n [readonly]=\"!allowManualInput\"\n >\n </mat-form-field>\n\n <mat-formio-calendar\n #calendar\n [minDate]=\"instance.component.datePicker.minDate || ''\"\n [maxDate]=\"instance.component.datePicker.maxDate || ''\"\n [dateFilter]=\"dateFilter\"\n [hidden]=\"!isPickerOpened\"\n (dateSelectEvent)=\"onChangeDate($event)\"\n (timeSelectEvent)=\"onChangeTime($event)\"\n [enableDate]=\"enableDate\"\n [enableTime]=\"enableTime\"\n [hourStep]=\"instance.component.timePicker.hourStep\"\n [minuteStep]=\"instance.component.timePicker.minuteStep\"\n [instance]=\"instance\"\n ></mat-formio-calendar>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </form>\n </ng-template>\n `\n})\n\nexport class MaterialDateComponent extends MaterialComponent {\n public timeControl: FormControl = new FormControl();\n public displayControl: FormControl = new FormControl();\n public isPickerOpened: boolean;\n public selectedDate: any;\n public selectedTime: any = '00:00';\n public allowManualInput: boolean = true;\n\n @ViewChild('calendar') calendar;\n\n get enableDate() {\n return this.instance && this.instance.component.enableDate !== false;\n }\n\n get enableTime() {\n return this.instance && this.instance.component.enableTime === true;\n }\n\n setDisplayControlValue(value = null) {\n const format = `YYYY-MM-DD${this.enableTime ? 'THH:mm' : ''}`;\n value = value || this.getDateTimeValue();\n\n if (value) {\n this.displayControl.setValue(momentDate(value).format(format));\n }\n else {\n this.displayControl.setValue('');\n }\n }\n\n onChangeDate(event) {\n this.selectedDate = momentDate(event).utc().format();\n this.control.setValue(this.selectedDate);\n this.setDateTime();\n }\n\n onChangeTime(time) {\n this.selectedTime = time;\n if (this.selectedDate || (this.enableTime && !this.enableDate)) {\n this.setDateTime();\n }\n }\n\n onChangeInput() {\n const value = this.dateFilter(this.displayControl.value) &&\n this.checkMinMax(this.displayControl.value) ? this.displayControl.value : '';\n\n this.control.setValue(value);\n this.onChange();\n }\n\n getDateTimeValue() {\n let newDate = '';\n let isSelectedTime = false;\n\n if (this.calendar && this.calendar.selectedTime) {\n const { selectedTime } = this.calendar;\n isSelectedTime = true;\n\n if (this.selectedTime !== selectedTime) {\n this.selectedTime = selectedTime;\n }\n }\n\n if (this.enableTime && this.enableDate) {\n const [hours, minutes] = this.selectedTime.split(':');\n newDate = isSelectedTime\n ? momentDate(this.selectedDate)\n .hours(Number.parseInt(hours))\n .minutes(Number.parseInt(minutes))\n .utc()\n : this.selectedDate;\n }\n\n if (!this.enableTime && this.enableDate) {\n newDate = this.selectedDate;\n }\n\n if (this.enableTime && !this.enableDate) {\n const [hours, minutes] = this.selectedTime.split(':');\n newDate = momentDate(new Date())\n .hours(Number.parseInt(hours))\n .minutes(Number.parseInt(minutes))\n .seconds(0)\n .utc();\n }\n\n return newDate;\n }\n\n setDateTime() {\n this.control.setValue(this.getDateTimeValue());\n this.onChange();\n }\n\n setInstance(instance: any) {\n super.setInstance(instance);\n this.isDisabled() ? this.control.disable() : this.control.enable();\n this.isDisabled() ? this.displayControl.disable() : this.displayControl.enable();\n\n if (this.instance) {\n this.allowManualInput = this.instance.component.allowInput === false ? false : true;\n if (this.instance.component && this.instance.component.datePicker) {\n const {minDate: min, maxDate: max} = this.instance.component.datePicker;\n\n // It improves the date to the full format if the customer set only a year. Otherwise we will have conflicts into the moment.js.\n const { minDate, maxDate } = this.improveMinMaxDate(min, max);\n this.instance.component.datePicker.minDate = minDate;\n this.instance.component.datePicker.maxDate = maxDate;\n }\n }\n }\n\n toggleCalendar(event) {\n if (!this.isDisabled()) {\n if (!this.isPickerOpened) {\n const date = this.getValue();\n if (date &&this.checkMinMax(date)) {\n if (this.enableDate && this.calendar && !this.calendar.selectedDate) {\n this.calendar.setExistedDate(momentDate(date).toDate())\n }\n\n if (this.enableTime && this.calendar && !this.calendar.selectedTime) {\n const time = momentDate(date)\n this.calendar.setExistedTime(time.format('HH:mm'), time.format('h:mm:A'))\n }\n }\n }\n this.isPickerOpened = !this.isPickerOpened;\n event.stopPropagation();\n }\n }\n\n isDisabled() {\n const { readonly, disabled } = this.instance.component;\n return readonly || disabled || this.instance.root.options.readOnly\n }\n\n public formatTime = (value) => {\n if (!value) {\n return this.instance.emptyValue;\n }\n return momentDate(value).format(this.instance.component.format);\n }\n\n setValue(value) {\n if (this.dateFilter(value) && this.checkMinMax(value)) {\n this.setDisplayControlValue(value);\n super.setValue(value);\n }\n }\n\n onChange() {\n const value = this.dateFilter(this.getValue()) && this.checkMinMax(this.getValue()) ? this.getValue() : '';\n this.setDisplayControlValue(value);\n }\n\n beforeSubmit() {\n this.onChange();\n super.beforeSubmit();\n }\n\n checkMinMax(value) {\n let isValid = true;\n const { minDate: min, maxDate: max } = this.instance.component.datePicker;\n const { minDate, maxDate } = this.improveMinMaxDate(min, max);\n\n if (minDate) {\n isValid = momentDate(value).isSameOrAfter(minDate);\n }\n if (maxDate && isValid) {\n isValid = momentDate(value).isSameOrBefore(maxDate);\n }\n return isValid;\n }\n\n disableWeekends(d: Date) {\n if (d && d.getDay) {\n const day = d.getDay();\n return day !== 0 && day !== 6;\n }\n return true;\n }\n\n disableDates(dates: Array<string>, d: Date) {\n const formattedDates = dates.map((date) => momentDate(date).format('YYYY-MM-DD'));\n return !formattedDates.includes(momentDate(d).format('YYYY-MM-DD'));\n }\n\n dateFilter = (d: Date | null): boolean => {\n const isValid = this.instance.component.datePicker.disableWeekends ? this.disableWeekends(d) : true;\n return this.instance.component.widget.disabledDates && isValid ?\n this.disableDates(this.instance.component.widget.disabledDates.split(','), d) : isValid;\n }\n\n clickOutside(event) {\n if (event.target.classList.contains('mat-calendar-body-selected') && this.isPickerOpened)\n this.toggleCalendar(event);\n }\n\n improveMinMaxDate(minDate, maxDate) {\n if (minDate && minDate.length === 4) {\n minDate = momentDate(`${minDate}-01-01`).format('YYYY-MM-DD');\n }\n\n if (maxDate && maxDate.length === 4) {\n maxDate = momentDate(`${maxDate}-01-01`).subtract(1, 'day').format('YYYY-MM-DD');\n }\n return {minDate, maxDate};\n }\n}\nDateTimeComponent.MaterialComponent = MaterialDateComponent;\nexport { DateTimeComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\n// import CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';\nimport CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';\nimport _ from 'lodash';\n\n@Component({\n selector: 'mat-formio-checkbox',\n template: `\n <mat-checkbox (change)=\"onChange()\" [ngClass]=\"{'validation-error' : !!instance.error}\"\n [formControl]=\"control\"\n >\n <span matFormioLabel [instance]=\"instance\"></span>\n <mat-icon *ngIf=\"instance.component.tooltip\" matSuffix\n matTooltip=\"{{ instance.component.tooltip }}\" style=\"font-size: 1rem;\">info\n </mat-icon>\n </mat-checkbox>\n <mat-hint>\n {{ instance.component.description }}\n </mat-hint>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n `,\n styles:['::ng-deep .mat-checkbox.validation-error .mat-checkbox-frame {border-color: red; }']\n})\nexport class MaterialCheckboxComponent extends MaterialComponent {\n getValue() {\n return _.isNil(this.control.value) ? '' : this.control.value;\n }\n}\nCheckboxComponent.MaterialComponent = MaterialCheckboxComponent;\nexport { CheckboxComponent };\n","import { Component } from '@angular/core';\nimport FieldsetComponent from 'formiojs/components/fieldset/Fieldset.js';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\n@Component({\n selector: 'mat-formio-fieldset',\n template: `\n <fieldset>\n <legend [attr.ref]=\"'header'\">\n {{ instance.component.legend }}\n <mat-icon *ngIf=\"instance.component.tooltip\"\n matSuffix\n matTooltip=\"{{ instance.component.tooltip }}\"\n >\n info\n </mat-icon>\n </legend>\n <div class=\"fieldset-body\" [attr.ref]=\"instance.component.key\" fxLayout=\"column\" fxLayoutGap=\"1em\">\n <ng-template #components></ng-template>\n </div>\n </fieldset>\n `,\n styles: []\n})\nexport class MaterialFieldsetComponent extends MaterialNestedComponent {}\nFieldsetComponent.MaterialComponent = MaterialFieldsetComponent;\nexport { FieldsetComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport ContentComponent from 'formiojs/components/content/Content.js';\n@Component({\n selector: 'mat-formio-content',\n template: `<div [innerHTML]=\"instance.content\"></div>`\n})\nexport class MaterialContentComponent extends MaterialComponent {}\nContentComponent.MaterialComponent = MaterialContentComponent;\nexport { ContentComponent };\n","import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport SignatureComponent from 'formiojs/components/signature/Signature.js';\n@Component({\n selector: 'mat-formio-signature',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <div #signature>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <button mat-icon-button [ngStyle]=\"{position: 'absolute'}\" ref=\"refresh\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <div class=\"signature-pad-body\"\n [ngStyle]=\"{width: instance.component.width, height: instance.component.height, padding: 0, margin: 0}\"\n [attr.tabindex]=\"instance.component.tabindex || 0\"\n ref=\"padBody\"\n >\n <canvas class=\"signature-pad-canvas\"\n [attr.height]=\"instance.component.height\"\n ref=\"canvas\"\n ></canvas>\n <img fxFlexFill [ngStyle]=\"{display: 'none' }\" ref=\"signatureImage\">\n </div>\n <div *ngIf=\"instance.component.footer\"\n class=\"signature-pad-footer\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <mat-hint>{{ instance.t(instance.component.footer) }}</mat-hint>\n </div>\n </div>\n </ng-template>\n `\n})\nexport class MaterialSignatureComponent extends MaterialComponent implements AfterViewInit {\n @ViewChild('signature') signatureElement: ElementRef;\n\n renderComponents() {\n if (this.signatureElement) {\n this.instance.attach(this.signatureElement.nativeElement);\n }\n }\n\n ngAfterViewInit() {\n this.renderComponents();\n }\n}\nSignatureComponent.MaterialComponent = MaterialSignatureComponent;\nexport { SignatureComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport SurveyComponent from 'formiojs/components/survey/Survey.js';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'mat-formio-survey',\n template: `\n\n <mat-formio-form-field\n [instance]=\"instance\"\n [componentTemplate]=\"componentTemplate\"\n [showDescription]=\"false\"\n ></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n\n <table class=\"mat-elevation-z8 mat-table\" fxFill>\n <thead>\n <tr class=\"mat-header-row\">\n <th class=\"mat-header-cell\">\n <h2 *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </h2>\n </th>\n <th class=\"mat-header-cell\"\n *ngFor=\"let value of instance.component.values\"\n style=\"text-align: center;\"\n >\n {{ value.label }}\n </th>\n </tr>\n </thead>\n\n <tbody>\n <tr class=\"mat-row\" *ngFor=\"let question of instance.component.questions; index as i;\">\n <td class=\"mat-cell\">{{ question.label }}</td>\n <td class=\"mat-cell\"\n *ngFor=\"let value of instance.component.values; index as j;\"\n style=\"text-align: center;\"\n >\n <mat-radio-group (change)=\"onChange()\"\n [formControl]=\"getFormControl(question.value)\"\n [name]=\"getUniqueName(question.value)\"\n >\n <mat-radio-button [value]=\"value.value\"></mat-radio-button>\n </mat-radio-group>\n </td>\n </tr>\n <mat-hint *ngIf=\"instance.component.description\" class=\"mat-formio-component-description\">\n {{ instance.component.description }}\n </mat-hint>\n </tbody>\n\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </table>\n </ng-template>\n `\n})\nexport class MaterialSurveyComponent extends MaterialComponent {\n public controls: any = {};\n getFormControl(question) {\n if (!this.controls[question]) {\n this.controls[question] = new FormControl();\n if (this.instance.shouldDisabled) {\n this.controls[question].disable();\n }\n }\n return this.controls[question];\n }\n\n setDisabled(disabled) {\n const method = disabled ? 'disable' : 'enable';\n for (const question in this.controls) {\n if (this.controls.hasOwnProperty(question)) {\n this.controls[question][method]();\n }\n }\n }\n\n getValue() {\n const values = {};\n for (const question in this.controls) {\n if (this.controls.hasOwnProperty(question)) {\n values[question] = this.controls[question].value || false;\n }\n }\n return values;\n }\n\n setValue(value) {\n for (const question in value) {\n if (value.hasOwnProperty(question)) {\n const control = this.getFormControl(question);\n if (control) {\n control.setValue(value[question] || false);\n }\n }\n }\n }\n\n getUniqueName(question) {\n return `${this.instance.id}-${question}`;\n }\n}\nSurveyComponent.MaterialComponent = MaterialSurveyComponent;\nexport { SurveyComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport RadioComponent from 'formiojs/components/radio/Radio.js';\n\n@Component({\n selector: 'mat-formio-radio',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <div fxLayout=\"column\">\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <mat-radio-group\n (change)=\"onChange()\"\n [formControl]=\"control\"\n fxFlexOffset=\"10px\"\n fxLayout=\"{{ getLayout() }}\"\n fxLayoutGap=\"10px\"\n >\n <mat-radio-button *ngFor=\"let option of instance.component.values\"\n value=\"{{ option.value }}\"\n [checked]=\"isRadioChecked(option)\"\n (keyup.space)=\"clearValue($event, option)\"\n (click)=\"clearValue($event, option)\"\n >\n {{ option.label }}\n </mat-radio-button>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </mat-radio-group>\n </div>\n </ng-template>\n `\n})\nexport class MaterialRadioComponent extends MaterialComponent {\n getLayout() {\n return this.instance.component.inline ? 'row' : 'column';\n }\n\n isRadioChecked(option) {\n return option.value === this.instance.dataValue;\n }\n\n clearValue(event, option) {\n if (this.isRadioChecked(option)) {\n event.preventDefault();\n this.deselectValue();\n }\n }\n\n deselectValue() {\n this.instance.updateValue(null, {\n modified: true,\n });\n }\n}\nRadioComponent.MaterialComponent = MaterialRadioComponent;\nexport { RadioComponent };\n","import { Component } from '@angular/core';\nimport { MaterialRadioComponent } from '../radio/radio.component';\nimport SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';\n@Component({\n selector: 'mat-formio-selectboxes',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <div fxLayout=\"column\">\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n <div\n fxFlexOffset=\"10px\"\n fxLayout=\"{{ getLayout() }}\"\n fxLayoutGap=\"10px\"\n >\n <mat-checkbox\n *ngFor=\"let option of instance.component.values\"\n (change)=\"onChange()\"\n [(ngModel)]=\"value[option.value]\"\n [disabled]=\"disabled\"\n >\n {{ option.label }}\n </mat-checkbox>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </div>\n </div>\n </ng-template>\n `\n})\nexport class MaterialSelectBoxesComponent extends MaterialRadioComponent {\n public value: any = {};\n public disabled = false;\n\n setInstance(instance) {\n instance.component.values.forEach((option) => {\n this.value[option.value] = false;\n });\n super.setInstance(instance);\n }\n\n getValue() {\n return this.value;\n }\n\n setValue(value) {\n const normalizedValue = this.instance.normalizeValue(value);\n for (const prop in normalizedValue) {\n if (normalizedValue.hasOwnProperty(prop)) {\n this.value[prop] = normalizedValue[prop];\n }\n }\n }\n\n setDisabled(disabled) {\n this.disabled = !!disabled;\n }\n\n onChange() {\n this.instance.updateValue(this.getValue(), {modified: true});\n this.instance.triggerChange({modified: true});\n }\n}\nSelectBoxesComponent.MaterialComponent = MaterialSelectBoxesComponent;\nexport { SelectBoxesComponent };\n","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport SelectComponent from 'formiojs/components/select/Select.js';\nimport _ from 'lodash';\nimport { FormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatSelect } from '@angular/material/select';\n\n@Component({\n selector: 'mat-formio-select',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <span *ngIf=\"instance.component.prefix\" matPrefix>\n {{ instance.component.prefix }}&nbsp;\n </span>\n <mat-select\n [multiple]=\"instance.component.multiple\"\n [formControl]=\"control\"\n [placeholder]=\"instance.component.placeholder\"\n (selectionChange)=\"onChange()\"\n [compareWith]=\"compareObjects\"\n >\n\n <mat-option>\n <ngx-mat-select-search placeholderLabel=\"Type to search\" [formControl]=\"websiteMultiFilterCtrl\"></ngx-mat-select-search>\n </mat-option>\n \n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.value\">\n <span [innerHTML]=\"option.label\"></span>\n </mat-option>\n\n <!-- <div class=\"mat-option\">\n <input class=\"mat-input-element\" placeholder=\"Type to search the risk\" (input)=\"onFilter($event.target.value)\">\n </div> -->\n <mat-option *ngIf=\"!filteredOptionsLength\" disabled>\n <span>Nothing was found</span>\n </mat-option>\n <!-- <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.value\">\n <span [innerHTML]=\"option.label\"></span>\n </mat-option> -->\n </mat-select>\n\n <span *ngIf=\"instance.component.suffix\" matSuffix>\n {{ instance.component.suffix }}\n </span>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </mat-form-field>\n </ng-template>\n `\n})\nexport class MaterialSelectComponent extends MaterialComponent implements OnInit, AfterViewInit, OnDestroy {\n\n selectOptions: Promise<any[]>;\n filteredOptions: Promise<any[]>;\n\n filteredOptionsLength: number;\n\n selectOptionsResolve: any;\n\n public websiteMultiCtrl: FormControl = new FormControl();\n public websiteMultiFilterCtrl: FormControl = new FormControl();\n\n @ViewChild('multiSelect', { static: true }) multiSelect: MatSelect;\n protected _onDestroy = new Subject();\n\n filterWebsiteMulti() {\n if (!this.selectOptions) {\n return;\n }\n let search = this.websiteMultiFilterCtrl.value;\n search = search.toLowerCase();\n this.filteredOptions = this.selectOptions.then((options) => {\n const filtered = options.filter((option) => option.label.toLowerCase().indexOf(search) !== -1);\n this.filteredOptionsLength = filtered.length;\n return filtered;\n })\n }\n ngOnDestroy() {\n this._onDestroy.next('');\n this._onDestroy.complete();\n }\n\n\n /*End*/\n setInstance(instance: any) {\n super.setInstance(instance);\n this.instance.triggerUpdate();\n }\n\n ngOnInit() {\n /*new logic */\n //this.websiteMultiCtrl.setValue(this.websites[1]);\n //this.filteredOptions.next(this.websites.slice());\n\n this.websiteMultiFilterCtrl.valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterWebsiteMulti();\n });\n /*End */\n this.selectOptions = new Promise((resolve) => {\n this.selectOptionsResolve = resolve;\n });\n this.selectOptions.then((options) => {\n this.filteredOptionsLength = options.length;\n })\n\n this.filteredOptions = this.selectOptions;\n }\n\n // onFilter(value) {\n // this.filteredOptions = this.selectOptions.then((options) => {\n // const filtered = options.filter((option) => option.label.toLowerCase().indexOf(value.toLowerCase()) !== -1);\n // this.filteredOptionsLength = filtered.length;\n // return filtered;\n // })\n // }\n\n compareObjects(o1: any, o2: any): boolean {\n return _.isEqual(o1, o2);\n }\n}\nSelectComponent.MaterialComponent = MaterialSelectComponent;\n\n// Make sure we detect changes when new items make their way into the select dropdown.\nconst setItems = SelectComponent.prototype.setItems;\nSelectComponent.prototype.setItems = function (...args) {\n setItems.call(this, ...args);\n if (this.materialComponent && this.materialComponent.selectOptionsResolve) {\n this.materialComponent.selectOptionsResolve(this.selectOptions);\n }\n};\n\nexport { SelectComponent };\n","import { Component } from '@angular/core';\nimport WellComponent from 'formiojs/components/well/Well.js';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\n@Component({\n selector: 'mat-formio-well',\n template: `\n <mat-card>\n <mat-card-content fxLayout=\"column\"\n fxLayoutGap=\"1em\"\n [ngStyle]=\"{\n 'background-color':'#f5f5f5',\n 'padding': '1.5em'\n }\"\n >\n <ng-template #components></ng-template>\n </mat-card-content>\n </mat-card>\n `,\n styles: []\n})\nexport class MaterialWellComponent extends MaterialNestedComponent {}\nWellComponent.MaterialComponent = MaterialWellComponent;\nexport { WellComponent };\n","import { Component, ViewChild } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';\nimport {CdkDragDrop, moveItemInArray, DragDropModule} from '@angular/cdk/drag-drop';\nimport {MatTable} from '@angular/material/table';\n@Component({\n selector: 'mat-formio-datagrid',\n template: `\n <mat-formio-form-field [instance]=\"instance\"\n [componentTemplate]=\"componentTemplate\"\n [labelTemplate]=\"labelTemplate\"\n ></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-card fxFill>\n <ng-container *ngIf=\"hasLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </ng-container>\n <mat-card-content>\n <mat-card-actions\n *ngIf=\"instance.hasAddButton() && (instance.component.addAnotherPosition === 'both' || instance.component.addAnotherPosition === 'top')\">\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\n <mat-icon>add</mat-icon>\n {{instance.component.addAnother || 'Add Another'}}\n </button>\n </mat-card-actions>\n <table\n mat-table\n [dataSource]=\"dataSource\"\n class=\"mat-elevation-z8\"\n fxFill\n cdkDropList\n [cdkDropListData]=\"dataSource\"\n (cdkDropListDropped)=\"dropTable($event)\">\n >\n <ng-container *ngFor=\"let column of formColumns\" [matColumnDef]=\"column\">\n <th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>\n <td mat-cell *matCellDef=\"let i = index;\" [attr.rowIndex]=\"i\" [attr.component]=\"column\">\n <ng-template #components></ng-template>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"__removeRow\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let i = index;\">\n <button mat-button *ngIf=\"instance.hasRemoveButtons()\" (click)=\"removeRow(i)\">\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\n </button>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"position\" *ngIf=\"instance.component.reorder\">\n <th mat-header-cell *matHeaderCellDef> No.</th>\n <td mat-cell *matCellDef=\"let element\">\n <mat-icon cdkDragHandle>reorder</mat-icon>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <div *ngIf=\"instance?.component?.reorder\">\n <tr class=\"datagrid-row\" mat-row *matRowDef=\"let row; columns: displayedColumns;\" cdkDrag\n [cdkDragData]=\"row\"></tr>\n </div>\n <div *ngIf=\"!instance?.component?.reorder\">\n <tr class=\"datagrid-row\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </div>\n </table>\n </mat-card-content>\n <mat-card-actions *ngIf=\"instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'\">\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\n <mat-icon>add</mat-icon>\n {{instance.component.addAnother || 'Add Another'}}\n </button>\n </mat-card-actions>\n </mat-card>\n </ng-template>\n\n <ng-template #labelTemplate>\n <mat-card-title>\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-card-title>\n </ng-template>\n `,\n styles: [\n '.datagrid-row { height: auto; }'\n ]\n})\nexport class MaterialDataGridComponent extends MaterialNestedComponent {\n displayedColumns: string[];\n formColumns: string[];\n columns: any;\n dataSource = new MatTableDataSource();\n\n getColumnLabel(column) {\n return column.label || column.key;\n }\n\n setInstance(instance: any) {\n super.setInstance(instance);\n this.dataSource.data = instance.dataValue;\n this.columns = {};\n this.displayedColumns = [];\n this.formColumns = [];\n instance.getColumns().map((column) => {\n this.formColumns.push(column.key);\n this.displayedColumns.push(column.key);\n this.columns[column.key] = column;\n });\n this.displayedColumns.push('__removeRow');\n if (this.instance.component.reorder) {\n this.displayedColumns.push('position');\n }\n instance.viewContainer = (component) => {\n let viewContainer;\n if (this.instance.component.disabled) {\n component.component.disabled = true;\n }\n this.viewContainers.forEach((container) => {\n const td = container.element.nativeElement.parentNode;\n if (\n component.rowIndex === parseInt(td.getAttribute('rowIndex'), 10) &&\n component.component.key === td.getAttribute('component')\n ) {\n viewContainer = container;\n }\n });\n\n return viewContainer ? viewContainer : null;\n };\n }\n\n addAnother() {\n this.checkRowsNumber();\n this.instance.addRow();\n if (this.dataSource.data.length < this.instance.rows.length) {\n this.dataSource.data.push({});\n }\n this.dataSource.data = [...this.dataSource.data];\n }\n\n checkRowsNumber() {\n while (this.instance.rows.length < this.dataSource.data.length) {\n this.instance.addRow();\n }\n }\n\n removeRow(index) {\n this.instance.removeRow(index);\n this.dataSource.data.splice(index, 1);\n this.dataSource.data = [...this.dataSource.data];\n }\n\n dropTable(event: CdkDragDrop<any>) {\n const prevIndex = this.dataSource.data.findIndex((d) => d === event.item.data);\n moveItemInArray(this.control.value, prevIndex, event.currentIndex);\n this.renderComponents();\n }\n\n renderComponents() {\n this.instance.getRows();\n this.instance.setValue(this.control.value || []);\n }\n\n setValue(value: [] | null) {\n const gridLength = value ? value.length : 0;\n\n while (this.instance.rows.length < gridLength) {\n this.addAnother();\n this.instance.dataValue = value;\n this.instance.setValue(value);\n }\n\n if (!value && this.instance.component.clearOnHide) {\n this.dataSource = new MatTableDataSource(this.instance.defaultValue);\n }\n super.setValue(value);\n }\n}\nDataGridComponent.MaterialComponent = MaterialDataGridComponent;\nexport { DataGridComponent };\n","import {\n Component,\n ViewChild,\n ViewChildren,\n QueryList,\n ElementRef,\n AfterViewInit\n} from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';\nimport { FormioComponent } from '../../formio.component';\nimport Components from 'formiojs/components/Components';\nimport isString from 'lodash/isString';\n\nenum EditRowState {\n NEW = 'new',\n EDITING ='editing',\n SAVED = 'saved',\n REMOVED = 'removed',\n DRAFT = 'draft'\n};\n\n/* tslint:disable no-bitwise only-arrow-functions */\nconst hashCode = function(str) {\n let hash = 0;\n let i = 0;\n let chr;\n str = str.replace(/\\s/g, '');\n if (str.length === 0) {\n return hash;\n }\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n};\n/* tslint:enable no-bitwise only-arrow-functions */\n\n// Do nothing to createRowComponents, let mat-formio handle it.\n/* tslint:disable only-arrow-functions */\nEditGridComponent.prototype.createRowComponents = function() {\n return [];\n};\n\nconst checkRow = EditGridComponent.prototype.checkRow;\nEditGridComponent.prototype.checkRow = function(data, editRow, flags: any = {}) {\n if (flags.checkRow) {\n return checkRow.call(this, data, editRow, flags);\n } else {\n return true;\n }\n};\n/* tslint:enable only-arrow-functions */\n\nconst DEFAULT_HEADER_TEMPLATES = [\n hashCode((EditGridComponent as any).defaultHeaderTemplate),\n hashCode(`\n <div class=\"row\">\n {% (components || []).forEach(function(component) { %}\n <div class=\"col-sm-2\">{{ component.label }}</div>\n {% }) %}\n </div>`)\n];\n\nconst DEFAULT_ROW_TEMPLATES = [\n hashCode((EditGridComponent as any).defaultRowTemplate),\n hashCode(`<div class=\"row\">\n {% util.eachComponent(components, function(component) { %}\n <div class=\"col-sm-2\">\n {{ getView(component, row[component.key]) }}\n </div>\n {% }) %}\n {% if (!instance.options.readOnly) { %}\n <div class=\"col-sm-2\">\n <div class=\"btn-group pull-right\">\n <button class=\"btn btn-default btn-sm editRow\">Edit</button>\n <button class=\"btn btn-danger btn-sm removeRow\">Delete</button>\n </div>\n </div>\n {% } %}\n</div>`)\n];\n\n@Component({\n selector: 'mat-formio-editgrid',\n styleUrls: ['./editgrid.component.css'],\n templateUrl: './editgrid.component.html'\n})\nexport class MaterialEditGridComponent extends MaterialNestedComponent implements AfterViewInit {\n @ViewChild('header') headerElement: ElementRef;\n @ViewChild('footer') footerElement: ElementRef;\n @ViewChildren('rows') rowElements: QueryList<ElementRef>;\n @ViewChildren('forms') forms: QueryList<FormioComponent>;\n public header: string;\n public footer: string;\n public displayedColumns: string[];\n public columns: any = {};\n public colWidth = 0;\n public valid = true;\n public RowStates = EditRowState;\n\n getRowTemplate(content) {\n return `<mat-list style=\"display: flex;\">\n {% (components || []).forEach(function(component) { %}\n {% if (!component.hasOwnProperty('tableView') || component.tableView) { %}\n <mat-list-item style=\"width: {{ colWidth }}%; margin: 0 0.8rem\">${content}</mat-list-item>\n {% } %}\n {% }) %}\n </mat-list>`;\n}\n\n validate(index) {\n if (!this.forms) {\n return;\n }\n const forms = this.forms.toArray();\n if (!forms[index]) {\n return;\n }\n const formioComponent = forms[index];\n const {data} = formioComponent.formio.submission;\n const isInvalid = Object.keys(data).some(\n value => isString(data[value]) && data[value].length === 0\n );\n\n if (isInvalid) {\n this.valid = false;\n } else {\n this.valid = true;\n }\n }\n\n setInstance(instance) {\n if (\n instance.component.templates.header &&\n (DEFAULT_HEADER_TEMPLATES.indexOf(hashCode(instance.component.templates.header)) !== -1)\n ) {\n instance.component.templates.header = this.getRowTemplate('{{ component.label }}');\n }\n\n if (instance.component.templates.row &&\n (DEFAULT_ROW_TEMPLATES.indexOf(hashCode(instance.component.templates.row)) !== -1)\n ) {\n instance.component.templates.row = this.getRowTemplate('{{ getView(component, row[component.key]) }}');\n }\n\n this.displayedColumns = instance.component.components.map((comp) => {\n if (comp.hasOwnProperty('tableView') && !comp.tableView) {\n return false;\n }\n\n this.columns[comp.key] = comp;\n return comp.key;\n }).filter(name => !!name);\n const dataValue = instance.dataValue || [];\n this.colWidth = instance.component.components.length ? Math.floor(100 / instance.component.components.length) : 100;\n if (instance.component.templates && instance.component.templates.header) {\n this.header = instance.renderString(instance.component.templates.header, {\n components: instance.component.components,\n value: dataValue,\n colWidth: this.colWidth\n });\n }\n if (instance.component.templates && instance.component.templates.footer) {\n this.footer = instance.renderString(instance.component.templates.footer, {\n components: instance.component.components,\n value: dataValue,\n colWidth: this.colWidth\n });\n }\n setTimeout(() => {\n this.renderTemplate(this.headerElement, this.header);\n this.renderTemplate(this.footerElement, this.footer);\n }, 0);\n super.setInstance(instance);\n }\n\n addAnother() {\n const row = this.instance.addRow();\n }\n\n editRow(row, index) {\n const { state } = row;\n const { NEW, REMOVED } = this.RowStates;\n\n if (state === NEW || state === REMOVED) {\n return;\n }\n this.instance.editRow(index);\n const forms = this.forms.toArray();\n if (forms[index]) {\n forms[index].formio.submission = {data: JSON.parse(JSON.stringify(row.data))};\n }\n }\n\n /**\n * Updates the row template.\n *\n * @param row\n * @param index\n */\n updateRowTemplate(rowElement: ElementRef, index, comps) {\n const self = this;\n const editRow: any = {...this.instance.editRows[index]};\n if (editRow.state !== this.RowStates.NEW) {\n this.renderTemplate(rowElement, this.instance.renderString(this.instance.component.templates.row, {\n row: this.instance.dataValue[index] || {},\n data: this.instance.data,\n rowIndex: index,\n colWidth: this.colWidth,\n components: this.instance.component.components,\n getView: function getView(component, data) {\n if (!comps[component.type]) {\n comps[component.type] = Components.create(component, {}, {}, true);\n }\n return comps[component.type] ? comps[component.type].getView(data) : '';\n }\n }));\n }\n }\n\n /**\n * Saves a row.\n *\n * @param row - The edit grid row.\n * @param index - The index for this row.\n */\n saveRow(row, index) {\n const forms = this.forms.toArray();\n if (forms[index]) {\n const formioComponent = forms[index];\n row.data = JSON.parse(JSON.stringify(formioComponent.formio.submission.data));\n this.instance.saveRow(index);\n const rows = this.rowElements.toArray();\n if (rows && rows[index]) {\n this.updateRowTemplate(rows[index], index, {});\n }\n }\n }\n\n cancelRow(index) {\n this.instance.cancelRow(index);\n this.valid = true;\n }\n\n renderTemplate(element: ElementRef, template) {\n if (!element || !element.nativeElement) {\n return;\n }\n element.nativeElement.innerHTML = template;\n }\n\n ngAfterViewInit() {\n this.rowElements.changes.subscribe((rows: QueryList<ElementRef>) => {\n const rowCache = {};\n rows.forEach((row: ElementRef, index) => this.updateRowTemplate(row, index, rowCache));\n });\n }\n}\nEditGridComponent.MaterialComponent = MaterialEditGridComponent;\nexport { EditGridComponent };\n","<!-- <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\" [labelTemplate]=\"labelTemplate\">\n</mat-formio-form-field>\n<ng-template #componentTemplate let-hasLabel>\n\n <span fxLayout=\"column\" fxLayoutGap=\"1em\" fxFill>\n <ng-container *ngIf=\"hasLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </ng-container>\n <mat-accordion>\n <mat-expansion-panel *ngIf=\"header\" disabled=\"true\">\n <mat-expansion-panel-header>\n <span #header fxFill></span>\n </mat-expansion-panel-header>\n </mat-expansion-panel>\n\n <mat-expansion-panel *ngFor=\"let row of instance.editRows; index as i;\" [expanded]=\"instance.isOpen(row)\">\n <mat-expansion-panel-header (click)=\"editRow(row, i)\">\n <span *ngIf=\"row.state !== RowStates.NEW\" #rows fxFill></span>\n </mat-expansion-panel-header>\n\n <mat-formio [form]=\"instance.component\" #forms (change)=\"validate(i)\"></mat-formio>\n\n <span fxLayout=\"row\" fxLayoutGap=\"1em\">\n <button mat-raised-button color=\"primary\" [disabled]=\"!valid\" (click)=\"saveRow(row, i)\">Save</button>\n <button mat-raised-button color=\"secondary\" (click)=\"cancelRow(i)\">Cancel</button>\n <button mat-raised-button color=\"warn\" (click)=\"instance.removeRow(i)\" class=\"delete-button\">\n <mat-icon>delete</mat-icon>\n </button>\n </span>\n </mat-expansion-panel>\n\n <mat-expansion-panel *ngIf=\"footer\" disabled=\"true\">\n <mat-expansion-panel-header>\n <span #footer></span>\n </mat-expansion-panel-header>\n </mat-expansion-panel>\n </mat-accordion>\n\n <span fxFill=\"none\" *ngIf=\"instance.hasAddButton()\">\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\n <mat-icon>add</mat-icon> Add Another\n </button>\n </span>\n </span>\n</ng-template>\n\n<ng-template #labelTemplate>\n <mat-card-title>\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-card-title>\n</ng-template> -->\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport TableComponent from 'formiojs/components/table/Table.js';\n\n@Component({\n selector: 'mat-formio-table',\n styleUrls: [ './table.component.css' ],\n template: `\n <table class=\"mat-table\" style=\"width: 100%;\" [ngClass]=\"{'is-bordered' : instance.component.bordered}\">\n <thead>\n <tr class=\"mat-header-row\">\n <th *ngFor=\"let header of instance.component.header\"\n class=\"mat-header-cell\"\n >\n {{ instance.t(header) }}\n </th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let row of instance.table; let i = index\"\n role=\"row\"\n class=\"mat-row\"\n [ngClass]=\"{\n 'is-hover': instance.component.hover,\n 'is-striped': instance.component.striped && i % 2 === 0\n }\"\n >\n <td *ngFor=\"let col of row\"\n role=\"gridcell\"\n class=\"mat-cell\"\n [ngClass]=\"getTableColClasses()\"\n >\n <ng-template #components></ng-template>\n </td>\n </tr>\n </tbody>\n </table>\n `\n})\nexport class MaterialTableComponent extends MaterialNestedComponent {\n\n setInstance(instance: any) {\n super.setInstance(instance);\n instance.viewContainer = (component) => {\n return this.viewContainers ?\n this.viewContainers[(component.tableRow * this.instance.component.numCols) + component.tableColumn] :\n null;\n };\n }\n\n getTableColClasses() {\n if (!this.instance) {\n return;\n }\n const {condensed, cellAlignment} = this.instance.component;\n return {\n 'is-condensed': condensed,\n ...(cellAlignment && {[cellAlignment]: true})\n }\n }\n}\nTableComponent.MaterialComponent = MaterialTableComponent;\nexport { TableComponent };\n","import { Component, ViewChild } from '@angular/core';\nimport { MatStepper } from '@angular/material/stepper';\nimport Wizard from 'formiojs/Wizard';\nimport Displays from 'formiojs/displays/Displays';\nimport { MaterialNestedComponent } from './MaterialNestedComponent';\n\n@Component({\n selector: 'mat-formio-wizard',\n styles: [\n ':host .navigation-button-row { margin-top: 8px; }',\n ':host .navigation-button-row button { margin-right: 8px; }'\n ],\n template: `\n <mat-horizontal-stepper [linear]=\"isLinear\" #stepper>\n <mat-step *ngFor=\"let page of instance.pages\" [label]=\"page.component.title\">\n <ng-template #components></ng-template>\n <div class=\"navigation-button-row\">\n <button *ngIf=\"instance.hasButton('cancel')\" mat-raised-button (click)=\"resetWizard()\">Cancel</button>\n <button *ngIf=\"instance.hasButton('previous')\" mat-raised-button color=\"primary\" (click)=\"prevPage()\">Previous</button>\n <button *ngIf=\"instance.hasButton('next')\" mat-raised-button color=\"primary\" (click)=\"nextPage()\">Next</button>\n <button *ngIf=\"instance.hasButton('submit')\" mat-raised-button color=\"primary\" (click)=\"submit()\">Submit</button>\n </div>\n </mat-step>\n </mat-horizontal-stepper>`\n})\nexport class MaterialWizardComponent extends MaterialNestedComponent {\n @ViewChild('stepper', {static: true}) stepper: MatStepper;\n public isLinear = true;\n private prevNumOfPages = 0;\n\n setInstance(instance: any) {\n this.isLinear = (\n instance.options &&\n instance.options.breadcrumbSettings &&\n instance.options.breadcrumbSettings.clickable\n ) ? false : true;\n\n this.updatePages(instance);\n instance.on('pagesChanged', () => this.updatePages());\n\n super.setInstance(instance);\n }\n\n updatePages(instance = this.instance) {\n if (this.prevNumOfPages !== instance.pages.length) {\n instance.pages.forEach((page, pageIndex) => {\n page.viewContainer = () => {\n return this.viewContainers ? this.viewContainers[pageIndex] : null;\n };\n });\n this.prevNumOfPages = instance.pages.length;\n }\n }\n\n resetWizard() {\n this.instance.cancel();\n this.stepper.reset();\n }\n\n nextPage() {\n this.instance.nextPage().then(() => this.stepper.next());\n }\n\n prevPage() {\n this.instance.prevPage().then(() => this.stepper.previous());\n }\n\n submit() {\n this.instance.submit();\n }\n\n renderComponents() {\n if (this.instance.renderComponents && this.instance.pages) {\n this.instance.renderComponents(this.instance.pages.reduce((comps, page) => {\n return comps.concat(page.components);\n }, []));\n }\n }\n}\nWizard.MaterialComponent = MaterialWizardComponent;\nDisplays.addDisplay('wizard', Wizard);\nexport { Wizard };\n","declare var require: any\nconst Components = require('formiojs/components/Components').default;\nimport Component from 'formiojs/components/_classes/component/Component.js';\n\nimport { TextFieldComponent } from './textfield/textfield.component';\nimport { PasswordComponent } from './password/password.component';\nimport { EmailComponent } from './email/email.component';\nimport { UrlComponent } from './url/url.component';\nimport { PhoneNumberComponent } from './phonenumber/phonenumber.component';\nimport { NumberComponent } from './number/number.component';\nimport { CurrencyComponent } from './currency/currency.component';\nimport { DayComponent } from './day/day.component';\nimport { HiddenComponent } from './hidden/hidden.component';\nimport { HtmlComponent } from './html/html.component';\nimport { TagsComponent } from './tags/tags.component';\nimport { ButtonComponent } from './button/button.component';\nimport { TextAreaComponent } from './textarea/textarea.component';\nimport { PanelComponent } from './panel/panel.component';\nimport { ColumnsComponent } from './columns/columns.component';\nimport { ContainerComponent } from './container/container.component';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { DateTimeComponent } from './date/date.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { FieldsetComponent } from './fieldset/fieldset.component';\nimport { ContentComponent } from './content/content.component';\nimport { SignatureComponent } from './signature/signature.component';\nimport { SurveyComponent } from './survey/survey.component';\nimport { SelectBoxesComponent } from './selectboxes/selectboxes.component';\nimport { RadioComponent } from './radio/radio.component';\nimport { SelectComponent } from './select/select.component';\nimport { WellComponent } from './well/well.component';\nimport { DataGridComponent } from './datagrid/datagrid.component';\nimport { EditGridComponent } from './editgrid/editgrid.component';\nimport { TableComponent } from './table/table.component';\nimport { FormioComponent } from './MaterialComponent';\nimport { Wizard } from './formio.wizard';\nimport { TimeComponent } from './time/time.component'\n\n// Set the components.\nconst components: any = {\n textfield: TextFieldComponent,\n password: PasswordComponent,\n url: UrlComponent,\n checkbox: CheckboxComponent,\n email: EmailComponent,\n phoneNumber: PhoneNumberComponent,\n number: NumberComponent,\n currency: CurrencyComponent,\n day: DayComponent,\n hidden: HiddenComponent,\n htmlelement: HtmlComponent,\n tags: TagsComponent,\n textarea: TextAreaComponent,\n button: ButtonComponent,\n datetime: DateTimeComponent,\n panel: PanelComponent,\n columns: ColumnsComponent,\n tabs: TabsComponent,\n table: TableComponent,\n well: WellComponent,\n fieldset: FieldsetComponent,\n content: ContentComponent,\n signature: SignatureComponent,\n survey: SurveyComponent,\n selectboxes: SelectBoxesComponent,\n radio: RadioComponent,\n select: SelectComponent,\n container: ContainerComponent,\n datagrid: DataGridComponent,\n editgrid: EditGridComponent,\n unknown: FormioComponent,\n time: TimeComponent,\n wizard: Wizard\n};\n\nexport function getComponents() {\n for (const type of Object.keys(components)) {\n const CompClass = components[type];\n CompClass.prototype.render = (function () {\n if (this.materialComponent) {\n return this.materialComponent.renderComponents();\n }\n\n const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);\n if (!viewContainer) {\n return;\n }\n const factory = this.options.viewResolver.resolveComponentFactory(CompClass.MaterialComponent);\n const componentRef = viewContainer.createComponent(factory);\n (componentRef.instance as any).setInstance(this);\n });\n\n const setValue = CompClass.prototype.setValue;\n CompClass.prototype.setValue = (function (...args) {\n if (this.materialComponent) {\n this.materialComponent.setValue(args[0]);\n }\n return setValue.call(this, ...args);\n });\n\n components[type] = CompClass;\n }\n\n return components;\n}\n\nexport function registerComponent(name: string, CompClass: any) {\n\n class DummyComponent extends Component {};\n const formIOComp = (DummyComponent as any);\n\n formIOComp.MaterialComponent = CompClass;\n formIOComp.prototype.render = (function () {\n if (this.materialComponent) {\n return this.materialComponent;\n }\n const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);\n if (!viewContainer) {\n return;\n }\n const factory = this.options.viewResolver.resolveComponentFactory(formIOComp.MaterialComponent);\n const componentRef = viewContainer.createComponent(factory);\n (componentRef.instance as any).setInstance(this);\n });\n\n const setValue = formIOComp.prototype.setValue;\n formIOComp.prototype.setValue = (function (...args) {\n if (this.materialComponent) {\n this.materialComponent.setValue(args[0]);\n }\n return setValue.call(this, ...args);\n });\n\n Components.addComponent(name, formIOComp);\n\n}\n","declare var require: any\nconst Components = require('formiojs/components/Components').default;\nimport './components/Webform';\nimport { getComponents, registerComponent } from './components';\nconst Formio = require('formiojs/Formio').default;\nconst Form = require('formiojs/Form').default;\nconst Utils = require('formiojs/utils').default;\n\nfunction initRenderer() {\n Components.setComponents(getComponents());\n Formio.Components = Components;\n Formio.Templates = {};\n}\n\nexport { Form, Utils, Components, Formio, initRenderer, registerComponent };\n","import { Component, Optional, ChangeDetectorRef, ViewContainerRef, ViewChild, ComponentFactoryResolver, NgZone, Input, Output } from '@angular/core';\nimport { FormioAppConfig, FormioBaseComponent } from '@formio/angular';\nimport { Form } from './renderer';\nimport { get } from 'lodash';\n@Component({\n selector: 'mat-formio',\n styles: [\n `.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n }\n .alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n }\n .alert {\n position: relative;\n padding: .75rem 1.25rem;\n margin-bottom: 0.5rem;\n border: 1px solid transparent;\n border-radius: .25rem;\n }\n ::ng-deep mat-card {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n }\n `\n ],\n template: `\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\n <div *ngIf=\"!this.options?.disableAlerts\">\n <div *ngFor=\"let alert of alerts.alerts\"\n class=\"alert alert-{{ alert.type }}\"\n role=\"alert\"\n >\n {{ alert.message }}\n </div>\n </div>\n <div fxLayout=\"column\" fxLayoutGap=\"1em\">\n <ng-template #formio></ng-template>\n </div>\n `\n})\nexport class FormioComponent extends FormioBaseComponent {\n @ViewChild('formio', {static: true, read: ViewContainerRef}) formioViewContainer: ViewContainerRef;\n constructor(\n private resolver: ComponentFactoryResolver,\n private cd: ChangeDetectorRef,\n public ngZone: NgZone,\n @Optional() public config: FormioAppConfig\n ) {\n super(ngZone, config);\n }\n\n getRendererOptions(): any {\n const rendererOptions = super.getRendererOptions();\n return {...rendererOptions, validateOnInit: get(rendererOptions, 'validateOnInit', true) }\n }\n\n createRenderer() {\n const options = this.getRendererOptions();\n const flags = {\n validateOnInit: options.validateOnInit\n };\n options.viewResolver = this.resolver;\n const form = new Form();\n form._form = this.form;\n form.options = options;\n form.options.events = form.events;\n form.instance = form.create(this.form.display);\n form.instance.viewContainer = () => this.formioViewContainer;\n if (this.submission && this.submission.data) {\n form.instance.data = this.submission.data;\n }\n this.ngZone.run(() => form.instance.setForm(this.form, flags)\n .then(() => form.readyResolve(form.instance))\n .catch(() => form.readyReject())\n );\n return form.instance;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatListModule } from '@angular/material/list';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { NgxRenderMaterialFormsComponent } from './ngx-render-material-forms.component';\n\nimport { initRenderer } from './renderer';\nimport { FormioComponent } from './formio.component';\nimport { MaterialComponent } from './components/MaterialComponent';\nimport { MaterialNestedComponent } from './components/MaterialNestedComponent';\nimport { MaterialButtonComponent } from './components/button/button.component';\nimport { MaterialTextfieldComponent } from './components/textfield/textfield.component';\nimport { MaterialPasswordComponent } from './components/password/password.component';\nimport { MaterialUrlComponent } from './components/url/url.component';\nimport { MaterialEmailComponent } from './components/email/email.component';\nimport { MaterialPhoneNumberComponent } from './components/phonenumber/phonenumber.component';\nimport { MaterialNumberComponent } from './components/number/number.component';\nimport { MaterialHiddenComponent } from './components/hidden/hidden.component';\nimport { MaterialHtmlComponent } from './components/html/html.component';\nimport { MaterialTagsComponent } from './components/tags/tags.component';\nimport { MaterialCurrencyComponent } from './components/currency/currency.component';\nimport { MaterialDayComponent } from './components/day/day.component';\nimport { MaterialTextareaComponent } from './components/textarea/textarea.component';\nimport { MaterialColumnsComponent } from './components/columns/columns.component';\nimport { MaterialContainerComponent } from './components/container/container.component';\nimport { MaterialCheckboxComponent } from './components/checkbox/checkbox.component';\nimport { MaterialFieldsetComponent } from './components/fieldset/fieldset.component';\nimport { MaterialContentComponent } from './components/content/content.component';\nimport { MaterialSignatureComponent } from './components/signature/signature.component';\nimport { MaterialSurveyComponent } from './components/survey/survey.component';\nimport { MaterialSelectBoxesComponent } from './components/selectboxes/selectboxes.component';\nimport { MaterialRadioComponent } from './components/radio/radio.component';\nimport { MaterialSelectComponent } from './components/select/select.component';\nimport { MaterialPanelComponent } from './components/panel/panel.component';\nimport { MaterialTabsComponent } from './components/tabs/tabs.component';\nimport { MaterialTableComponent } from './components/table/table.component';\nimport { MaterialDateComponent } from './components/date/date.component';\nimport { MaterialDataGridComponent } from './components/datagrid/datagrid.component';\nimport { MaterialEditGridComponent } from './components/editgrid/editgrid.component';\nimport { MaterialWellComponent } from './components/well/well.component';\nimport { MaterialWizardComponent } from './components/formio.wizard';\nimport { MaterialTimeComponent } from './components/time/time.component';\nimport { MaterialCalendarComponent } from './components/calendar/calendar.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { FormioFormFieldComponent } from './components/formio-form-field/formio-form-field.component';\nimport { LabelComponent } from './components/label/label.component';\nimport { MaskDirective } from './directives/mask.directive';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nexport {\n FormioComponent,\n MaterialButtonComponent,\n MaterialTextfieldComponent,\n MaterialPasswordComponent,\n MaterialUrlComponent,\n MaterialEmailComponent,\n MaterialPhoneNumberComponent,\n MaterialNumberComponent,\n MaterialCurrencyComponent,\n MaterialDayComponent,\n MaterialHiddenComponent,\n MaterialHtmlComponent,\n MaterialTagsComponent,\n MaterialTableComponent,\n MaterialTextareaComponent,\n MaterialColumnsComponent,\n MaterialContainerComponent,\n MaterialDataGridComponent,\n MaterialEditGridComponent,\n MaterialPanelComponent,\n MaterialCheckboxComponent,\n MaterialFieldsetComponent,\n MaterialContentComponent,\n MaterialSignatureComponent,\n MaterialSurveyComponent,\n MaterialSelectBoxesComponent,\n MaterialRadioComponent,\n MaterialSelectComponent,\n MaterialTabsComponent,\n MaterialDateComponent,\n MaterialWellComponent,\n MaterialComponent,\n MaterialNestedComponent,\n MaterialTimeComponent\n};\n\n\n\n@NgModule({\n declarations: [\n NgxRenderMaterialFormsComponent,\n FormioComponent,\n MaterialButtonComponent,\n MaterialTextfieldComponent,\n MaterialPasswordComponent,\n MaterialUrlComponent,\n MaterialEmailComponent,\n MaterialPhoneNumberComponent,\n MaterialNumberComponent,\n MaterialCurrencyComponent,\n MaterialDayComponent,\n MaterialHiddenComponent,\n MaterialHtmlComponent,\n MaterialTagsComponent,\n MaterialTextareaComponent,\n MaterialColumnsComponent,\n MaterialContainerComponent,\n MaterialDataGridComponent,\n MaterialEditGridComponent,\n MaterialPanelComponent,\n MaterialCheckboxComponent,\n MaterialFieldsetComponent,\n MaterialContentComponent,\n MaterialSignatureComponent,\n MaterialSurveyComponent,\n MaterialSelectBoxesComponent,\n MaterialRadioComponent,\n MaterialSelectComponent,\n MaterialTabsComponent,\n MaterialTableComponent,\n MaterialDateComponent,\n MaterialWellComponent,\n MaterialWizardComponent,\n MaterialComponent,\n MaterialNestedComponent,\n MaterialTimeComponent,\n MaterialCalendarComponent,\n FormioFormFieldComponent,\n LabelComponent,\n MaskDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatButtonModule,\n MatInputModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatRadioModule,\n MatSelectModule,\n MatListModule,\n MatChipsModule,\n MatExpansionModule,\n MatButtonModule,\n MatTabsModule,\n MatTableModule,\n MatNativeDateModule,\n MatDatepickerModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MatIconModule,\n FlexLayoutModule,\n MatStepperModule,\n MatCardModule,\n DragDropModule,\n NgxMatSelectSearchModule\n ],\n exports: [\n NgxRenderMaterialFormsComponent,\n FormioComponent,\n MatInputModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatRadioModule,\n MatSelectModule,\n MatListModule,\n MatChipsModule,\n MatExpansionModule,\n MatButtonModule,\n MatCardModule,\n MatTabsModule,\n MatTableModule,\n MatNativeDateModule,\n MatDatepickerModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MatIconModule,\n DragDropModule,\n MatStepperModule,\n FlexLayoutModule,\n NgxMatSelectSearchModule\n ],\n entryComponents: [\n MaterialButtonComponent,\n MaterialTextfieldComponent,\n MaterialPasswordComponent,\n MaterialUrlComponent,\n MaterialEmailComponent,\n MaterialPhoneNumberComponent,\n MaterialNumberComponent,\n MaterialCurrencyComponent,\n MaterialDayComponent,\n MaterialHiddenComponent,\n MaterialHtmlComponent,\n MaterialTagsComponent,\n MaterialTextareaComponent,\n MaterialColumnsComponent,\n MaterialContainerComponent,\n MaterialDataGridComponent,\n MaterialEditGridComponent,\n MaterialPanelComponent,\n MaterialCheckboxComponent,\n MaterialFieldsetComponent,\n MaterialContentComponent,\n MaterialSignatureComponent,\n MaterialSurveyComponent,\n MaterialSelectBoxesComponent,\n MaterialRadioComponent,\n MaterialSelectComponent,\n MaterialTabsComponent,\n MaterialTableComponent,\n MaterialDateComponent,\n MaterialWellComponent,\n MaterialComponent,\n MaterialNestedComponent,\n MaterialTimeComponent,\n MaterialWizardComponent\n ]\n})\nexport class NgxRenderMaterialFormsModule { \n constructor() {\n initRenderer();\n }\n}\n\nexport * from './renderer';\n","/*\n * Public API Surface of ngx-render-material-forms\n */\n\nexport * from './lib/ngx-render-material-forms.service';\nexport * from './lib/ngx-render-material-forms.component';\nexport * from './lib/ngx-render-material-forms.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["FormioComponent","i1","i2","i3","i4","i4.LabelComponent","i6.FormioFormFieldComponent","i7.LabelComponent","i5","i6","i7.FormioFormFieldComponent","i8.LabelComponent","i5.FormioFormFieldComponent","i6.LabelComponent","i6.MaterialTimeComponent","i7","i8.MaterialCalendarComponent","i9.FormioFormFieldComponent","i10.LabelComponent","i11.MaskDirective","i8.FormioFormFieldComponent","i9.LabelComponent","Components","Component","get"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-render-material-forms.mjs","sources":["../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.service.ts","../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/Webform.ts","../../../projects/ngx-render-material-forms/src/lib/components/Base.ts","../../../projects/ngx-render-material-forms/src/lib/FormioControl.ts","../../../projects/ngx-render-material-forms/src/lib/components/MaterialComponent.ts","../../../projects/ngx-render-material-forms/src/lib/const/LabelPositions.ts","../../../projects/ngx-render-material-forms/src/lib/components/label/label.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/label/label.component.html","../../../projects/ngx-render-material-forms/src/lib/components/formio-form-field/formio-form-field.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/formio-form-field/formio-form-field.component.html","../../../projects/ngx-render-material-forms/src/lib/components/textfield/textfield.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/password/password.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/email/email.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/url/url.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/phonenumber/phonenumber.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/number/number.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/currency/currency.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/day/day.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/hidden/hidden.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/html/html.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/tags/tags.component.ts","../../../projects/ngx-render-material-forms/src/lib/const/ButtonsThemes.ts","../../../projects/ngx-render-material-forms/src/lib/components/button/button.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/button/button.component.html","../../../projects/ngx-render-material-forms/src/lib/components/textarea/textarea.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/MaterialNestedComponent.ts","../../../projects/ngx-render-material-forms/src/lib/components/panel/panel.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/columns/columns.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/container/container.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/tabs/tabs.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/time/time.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/calendar/calendar.component.ts","../../../projects/ngx-render-material-forms/src/lib/directives/mask.directive.ts","../../../projects/ngx-render-material-forms/src/lib/components/date/date.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/fieldset/fieldset.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/content/content.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/signature/signature.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/survey/survey.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/radio/radio.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/selectboxes/selectboxes.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/select/select.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/well/well.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/datagrid/datagrid.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/editgrid/editgrid.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/editgrid/editgrid.component.html","../../../projects/ngx-render-material-forms/src/lib/components/table/table.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/formio.wizard.ts","../../../projects/ngx-render-material-forms/src/lib/components/index.ts","../../../projects/ngx-render-material-forms/src/lib/renderer.ts","../../../projects/ngx-render-material-forms/src/lib/formio.component.ts","../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.module.ts","../../../projects/ngx-render-material-forms/src/public-api.ts","../../../projects/ngx-render-material-forms/src/ngx-render-material-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxRenderMaterialFormsService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'NgxMat-NgxRenderMaterialForms',\n template: `\n <p>\n ngx-render-material-forms works!\n </p>\n `,\n styles: [\n ]\n})\nexport class NgxRenderMaterialFormsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import Webform from 'formiojs/Webform.js';\nconsole.log('Webform=>', Webform)\nWebform.prototype.redraw = function() {\n return this.render();\n};\nWebform.prototype.clear = function() {\n const viewContainer = this.viewContainer ? this.viewContainer() : null;\n if (viewContainer) {\n viewContainer.clear(); \n }\n};\nWebform.prototype.render = function() {\n if (this.viewContainer && this.viewContainer()) {\n this.clear();\n this.renderComponents();\n this.setValue(this._submission);\n }\n};\n","import FormioComponent from 'formiojs/components/_classes/component/Component.js';\n\nexport default (() => {\n const beforeSubmit = FormioComponent.prototype.beforeSubmit;\n FormioComponent.prototype.beforeSubmit = function(...args) {\n if (this.materialComponent) {\n this.materialComponent.beforeSubmit();\n }\n return beforeSubmit.call(this, ...args);\n };\n\n Object.defineProperty(FormioComponent.prototype, 'disabled', {\n set(disabled) {\n this._disabled = disabled;\n if (this.materialComponent) {\n this.materialComponent.setDisabled(disabled);\n }\n }\n });\n\n Object.defineProperty(FormioComponent.prototype, 'visible', {\n set(visible) {\n if (this._visible !== visible) {\n this._visible = visible;\n this.clearOnHide();\n this.redraw();\n }\n if (this.materialComponent) {\n this.materialComponent.setVisible(visible);\n }\n }\n });\n return FormioComponent;\n})();\n\n","import { FormControl, ValidationErrors } from '@angular/forms';\nimport unescape from 'lodash/unescape';\n\n// @dynamic\nexport class FormioControl extends FormControl {\n public instance: any;\n\n static customValidator(control: FormioControl): Promise<ValidationErrors> {\n return new Promise((resolve) => {\n if (control.instance) {\n control.instance.validateResolve = resolve;\n } else {\n resolve(null);\n }\n });\n }\n\n constructor(...args) {\n super(args[0], [], [FormioControl.customValidator.bind(FormioControl)]);\n }\n\n setInstance(instance: any) {\n this.instance = instance;\n const setCustomValidity = instance.setCustomValidity;\n instance.setCustomValidity = (message: any, dirty, external, isWarning = false) => {\n let decodedMessage = message;\n if (Array.isArray(message)) {\n decodedMessage = message.map(msg => Object.assign(msg, { message: unescape(msg.message) }));\n }\n else if (message) {\n decodedMessage = unescape(message);\n }\n\n setCustomValidity.call(instance, decodedMessage, dirty, external, isWarning);\n if (instance.validateResolve) {\n instance.validateResolve(decodedMessage ? {custom: true} : null);\n }\n };\n }\n}\n","import {Component, Input, ViewChild, ElementRef, ChangeDetectorRef, AfterViewInit, OnInit} from '@angular/core';\nimport FormioComponent from './Base';\nimport Validator from 'formiojs/validator/Validator.js';\nimport { FormioControl } from '../FormioControl';\nimport get from 'lodash/get';\n\n@Component({\n selector: 'mat-formio-comp',\n template: '<mat-card>Unknown Component: {{ instance.component.type }}</mat-card>'\n})\nexport class MaterialComponent implements AfterViewInit, OnInit {\n @Input() instance: any;\n @ViewChild('input') input: ElementRef;\n @Input() control: FormioControl = new FormioControl();\n constructor(public element: ElementRef, public ref: ChangeDetectorRef) {}\n\n setInstance(instance: any) {\n this.control.setInstance(instance);\n instance.materialComponent = this;\n this.instance = instance;\n this.instance.disabled = this.instance.shouldDisabled;\n this.setVisible(this.instance.visible);\n this.renderComponents();\n }\n\n ngOnInit() {\n if (this.instance) {\n if (this.shouldValidateOnInit()) {\n this.storeFormData();\n this.validateOnInit();\n }\n this.instance.component.defaultValue ? this.setValue(this.instance.component.defaultValue) : '';\n }\n }\n\n validateOnInit() {\n const {key} = this.instance.component;\n const validationValue = this.getFormValue(this.instance.path);\n\n if (validationValue === null) {\n return;\n }\n\n this.instance.setPristine(false);\n\n const validationResult = Validator.checkComponent(\n this.instance,\n {[key]: validationValue},\n {[key]: validationValue}\n );\n\n if (validationResult.length) {\n this.instance.setCustomValidity(validationResult, false);\n if (!!validationValue) {\n this.control.markAsTouched();\n }\n this.ref.detectChanges();\n }\n }\n\n storeFormData() {\n if (this.instance.parent && this.instance.parent.submission && this.instance.parent.submission.data) {\n sessionStorage.setItem('formData', JSON.stringify(this.instance.parent.submission.data));\n }\n }\n\n getFormValue(path) {\n const formData = JSON.parse(sessionStorage.getItem('formData'));\n\n if (!formData) {\n return null;\n }\n\n return get(formData, path);\n }\n\n renderComponents() {}\n\n onChange(keepInputRaw?: boolean) {\n let value = this.getValue();\n\n if (value === undefined || value === null) {\n value = this.instance.emptyValue;\n }\n\n if (this.input && this.input.nativeElement.mask && value && !keepInputRaw) {\n this.input.nativeElement.mask.textMaskInputElement.update(value);\n this.control.setValue(this.input.nativeElement.value);\n value = this.getValue();\n }\n this.instance.updateValue(value, {modified: true});\n }\n\n getValue() {\n return this.control.value;\n }\n\n setValue(value) {\n this.control.setValue(value);\n }\n\n beforeSubmit() {\n this.control.markAsTouched();\n }\n\n hasError() {\n return !!this.instance && !!this.instance.error;\n }\n\n shouldValidateOnInit() {\n if (!this.instance) {\n return;\n }\n\n return this.instance.options.validateOnInit\n || this.instance.parent.options.validateOnInit;\n }\n\n setDisabled(disabled) {\n if (disabled) {\n this.control.disable();\n } else {\n this.control.enable();\n }\n }\n\n setVisible(visible) {\n if (this.element && this.element.nativeElement) {\n if (visible) {\n this.element.nativeElement.removeAttribute('hidden');\n this.element.nativeElement.style.visibility = 'visible';\n this.element.nativeElement.style.position = 'relative';\n } else {\n this.element.nativeElement.setAttribute('hidden', true);\n this.element.nativeElement.style.visibility = 'hidden';\n this.element.nativeElement.style.position = 'absolute';\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.element && this.element.nativeElement && this.instance) {\n // Add custom classes to elements.\n if (this.instance.component.customClass) {\n this.element.nativeElement.classList.add(this.instance.component.customClass);\n }\n }\n\n if (this.input) {\n // Set the input masks.\n this.instance.setInputMask(this.input.nativeElement);\n this.instance.addFocusBlurEvents(this.input.nativeElement);\n }\n }\n}\n\nFormioComponent.MaterialComponent = MaterialComponent;\nexport { FormioComponent };\n","export enum LabelPositions {\n RIGHT_RIGHT = 'right-right',\n RIGHT_LEFT = 'right-left',\n LEFT_LEFT = 'left-left',\n LEFT_RIGHT = 'left-right',\n BOTTOM = 'bottom',\n TOP = 'top',\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'span[matFormioLabel]',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.css']\n})\nexport class LabelComponent {\n @Input() instance;\n}\n","<ng-container *ngIf=\"instance\">\n {{ instance.component.label }}<span class=\"required-star\" *ngIf=\"instance.component.validate.required\">*</span>\n <mat-icon *ngIf=\"instance.component.tooltip\" style=\"font-size: 1rem;\"\n matTooltip=\"{{ instance.component.tooltip }}\" matSuffix\n >\n info\n </mat-icon>\n</ng-container>\n","import { Component, Input, TemplateRef } from '@angular/core';\nimport { LabelPositions } from '../../const/LabelPositions';\n\n@Component({\n selector: 'mat-formio-form-field',\n templateUrl: './formio-form-field.component.html',\n styleUrls: ['./formio-form-field.component.css']\n})\nexport class FormioFormFieldComponent {\n private _instance;\n public labelPositions = LabelPositions;\n @Input() labelTemplate: TemplateRef<any>;\n @Input() renderTopLabel = false;\n @Input() showDescription = true;\n @Input() renderElementOnly = false;\n\n @Input('instance')\n set instance(instance) {\n this._instance = instance;\n if (instance) {\n this.componentTemplateContext = {$implicit: this.hasLabel(['top'])};\n }\n }\n\n get instance() {\n return this._instance;\n }\n\n @Input() componentTemplate: TemplateRef<any>;\n componentTemplateContext;\n\n hasLabel(labelPositions?: string[]) {\n const { component } = this.instance;\n const hasNoLabel = !component.label || component.hideLabel;\n const labelPositionIsNotSpecified = !labelPositions ||\n !labelPositions.length ||\n !component.labelPosition;\n\n if (hasNoLabel || labelPositionIsNotSpecified || this.renderElementOnly) {\n return false;\n }\n\n if (labelPositions.includes(component.labelPosition)) {\n return true;\n }\n }\n}\n","<div class=\"mat-formio-component-wrapper\" *ngIf=\"instance && !renderElementOnly\"\n [ngClass]=\"{\n 'mat-formio-label-right': hasLabel([labelPositions.RIGHT_RIGHT, labelPositions.RIGHT_LEFT]),\n 'mat-formio-label-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.LEFT_RIGHT])\n }\"\n>\n <span *ngIf=\"renderTopLabel && hasLabel([labelPositions.TOP])\"\n class=\"mat-formio-label\"\n [ngClass]=\"{\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\n }\"\n >\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\n </span>\n\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\n\n <span *ngIf=\"hasLabel([\n labelPositions.BOTTOM,\n labelPositions.RIGHT_RIGHT,\n labelPositions.RIGHT_LEFT,\n labelPositions.LEFT_LEFT,\n labelPositions.LEFT_RIGHT\n ])\"\n class=\"mat-formio-label\"\n [ngClass]=\"{\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\n }\"\n >\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\n </span>\n\n <mat-hint *ngIf=\"showDescription && instance.component.description\" class=\"mat-formio-component-description\">\n {{ instance.component.description }}\n </mat-hint>\n</div>\n\n<div class=\"mat-formio-component-wrapper\" *ngIf=\"renderElementOnly\">\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\n</div>\n\n<ng-template #defaultLabel>\n <mat-label>\n <span style=\"display: block;\"\n [instance]=\"instance\" matFormioLabel>\n </span>\n </mat-label>\n</ng-template>\n","import { Component, OnInit, AfterContentInit } from '@angular/core';\nimport TextFieldComponent from 'formiojs/components/textfield/TextField.js';\nimport { MaterialComponent } from '../MaterialComponent';\n\nexport const TEXTFIELD_TEMPLATE = `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field [appearance]=\"getFormFieldAppearance()\" fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <span *ngIf=\"instance.component.prefix && instance.type !== 'currency'\"\n matPrefix\n >\n {{ instance.component.prefix }}&nbsp;\n </span>\n <input matInput\n type=\"{{ inputType }}\"\n [formControl]=\"control\"\n [placeholder]=\"instance.component.placeholder\"\n (input)=\"onChange()\" #input\n >\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\n\n <mat-hint *ngIf=\"instance.component.showWordCount || instance.component.showCharCount\">\n {{ getHint() }}\n </mat-hint>\n\n <br/>\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </ng-template>\n`;\n\n@Component({\n selector: 'mat-formio-textfield',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialTextfieldComponent extends MaterialComponent implements AfterContentInit {\n public inputType = 'text';\n\n ngAfterContentInit() {\n if (this.instance && this.control && this.instance.component.disabled) {\n this.control.disable();\n }\n }\n\n getHint() {\n if (!this.instance || !this.control || !this.control.value) {\n return '';\n }\n\n const {showWordCount, showCharCount} = this.instance.component;\n\n if (showWordCount && showCharCount) {\n return `${this.getWordsCount()} words, ${this.control.value.length} characters`;\n } else if (showWordCount) {\n return `${this.getWordsCount()} words`;\n } else {\n return `${this.control.value.length} characters`;\n }\n }\n\n getWordsCount() {\n const matches = this.control.value ? this.control.value.match(/[\\w\\d’'-]+/gi) : [];\n return matches ? matches.length : 0;\n }\n\n getFormFieldAppearance() {\n const appearances = ['legacy', 'standard', 'fill', 'outline'];\n const appearance = this.instance.component.appearance ? this.instance.component.appearance.toLowerCase() : '';\n return appearances.includes(appearance) ? appearance : undefined;\n }\n\n isError() {\n if (this.instance.error) {\n this.control.setErrors(this.instance.component.validate);\n return true;\n }\n else {\n return false;\n }\n }\n\n getErrorMessage() {\n if (this.instance.error && this.instance.error.messages) {\n const { messages } = this.instance.error;\n\n for (const msg of messages) {\n if (msg.context && this.control.hasError(msg.context.validator)) {\n return this.instance.error.message;\n }\n }\n }\n }\n}\nTextFieldComponent.MaterialComponent = MaterialTextfieldComponent;\nexport { TextFieldComponent };\n","import { Component } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport PasswordComponent from 'formiojs/components/password/Password.js';\n@Component({\n selector: 'mat-formio-password',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialPasswordComponent extends MaterialTextfieldComponent {\n public inputType = 'password';\n}\nPasswordComponent.MaterialComponent = MaterialPasswordComponent;\nexport { PasswordComponent };\n","import { Component } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport EmailComponent from 'formiojs/components/email/Email.js';\n@Component({\n selector: 'mat-formio-email',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialEmailComponent extends MaterialTextfieldComponent {\n public inputType = 'email';\n}\nEmailComponent.MaterialComponent = MaterialEmailComponent;\nexport { EmailComponent };\n","import { Component } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport UrlComponent from 'formiojs/components/url/Url.js';\n@Component({\n selector: 'mat-formio-url',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialUrlComponent extends MaterialTextfieldComponent {\n public inputType = 'url';\n}\nUrlComponent.MaterialComponent = MaterialUrlComponent;\nexport { UrlComponent };\n","import { Component } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport PhoneNumberComponent from 'formiojs/components/phonenumber/PhoneNumber.js';\n@Component({\n selector: 'mat-formio-phonenumber',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialPhoneNumberComponent extends MaterialTextfieldComponent {\n public inputType = 'text';\n}\nPhoneNumberComponent.MaterialComponent = MaterialPhoneNumberComponent;\nexport { PhoneNumberComponent };\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Renderer2 } from '@angular/core';\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport NumberComponent from 'formiojs/components/number/Number.js';\nimport _ from 'lodash';\n\n@Component({\n selector: 'mat-formio-number',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialNumberComponent extends MaterialTextfieldComponent implements AfterViewInit {\n public inputType = 'text';\n\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, private renderer: Renderer2) {\n super(element, ref);\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.instance) {\n const { instance } = this;\n\n this.renderer.listen(this.input.nativeElement, 'blur', () => {\n let value = instance.parseValue(this.control.value);\n value = instance.formatValue(value);\n value = instance.getValueAsString(value);\n this.control.setValue(value);\n });\n\n }\n }\n\n getValue() {\n let value = this.control.value;\n if (value && this.instance) {\n value = value.replace(this.instance.prefix, '');\n return !_.isNil(value) && value !== '' ? this.instance.parseNumber(value) : value;\n }\n return value;\n }\n\n setValue(value) {\n if (this.instance) {\n const { instance } = this;\n value = instance.formatValue(instance.parseValue(value));\n }\n else {\n value = value.toString();\n }\n\n return super.setValue(value);\n }\n\n onChange() {\n super.onChange(true);\n }\n}\nNumberComponent.MaterialComponent = MaterialNumberComponent;\nexport { NumberComponent };\n","import { Component } from '@angular/core';\nimport { TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\nimport { MaterialNumberComponent } from '../number/number.component';\nimport CurrencyComponent from 'formiojs/components/currency/Currency.js';\nimport _ from 'lodash';\n\n@Component({\n selector: 'mat-formio-currency',\n template: TEXTFIELD_TEMPLATE\n})\nexport class MaterialCurrencyComponent extends MaterialNumberComponent {\n public inputType = 'text';\n\n onChange() {\n const newValue = _.isNil(this.getValue()) ? '' : this.getValue();\n this.instance.updateValue(newValue, {modified: true});\n }\n}\nCurrencyComponent.MaterialComponent = MaterialCurrencyComponent;\nexport { CurrencyComponent };\n","import { Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MaterialComponent } from '../MaterialComponent';\nimport DayComponent from 'formiojs/components/day/Day.js';\nimport { momentDate } from 'formiojs/utils/utils.js';\nDayComponent.prototype.getFieldValue = function(name) {\n return this.refs[name] ? this.refs[name].value : '';\n};\n\n@Component({\n selector: 'mat-formio-day',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n <mat-form-field *ngIf=\"instance.dayFirst && instance.showDay\">\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Day</mat-label>\n <mat-select [formControl]=\"dayControl\" (selectionChange)=\"onChange()\" [required]=\"instance.dayRequired\">\n <mat-option *ngFor=\"let day of instance.days\" [value]=\"day.value\">\n {{day.label}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field *ngIf=\"instance.showMonth\">\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Month</mat-label>\n <mat-select [formControl]=\"monthControl\" (selectionChange)=\"onChange()\" [required]=\"instance.monthRequired\">\n <mat-option *ngFor=\"let month of instance.months\" [value]=\"month.value\">\n {{month.label}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field *ngIf=\"!instance.dayFirst && instance.showDay\">\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Day</mat-label>\n <mat-select [formControl]=\"dayControl\" (selectionChange)=\"onChange()\" [required]=\"instance.dayRequired\">\n <mat-option *ngFor=\"let day of instance.days\" [value]=\"day.value\">\n {{day.label}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field *ngIf=\"instance.showYear\">\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Year</mat-label>\n <mat-select [formControl]=\"yearControl\" (selectionChange)=\"onChange()\" [required]=\"instance.yearRequired\">\n <mat-option *ngFor=\"let year of instance.years\" [value]=\"year.value\">\n {{year.label}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </ng-template>\n `\n})\nexport class MaterialDayComponent extends MaterialComponent {\n public dayControl: FormControl = new FormControl();\n public monthControl: FormControl = new FormControl();\n public yearControl: FormControl = new FormControl();\n setInstance(instance) {\n // Add stub methods to match dom elements.\n (this.dayControl as any).setAttribute = () => {};\n (this.dayControl as any).removeAttribute = () => {};\n (this.monthControl as any).setAttribute = () => {};\n (this.monthControl as any).removeAttribute = () => {};\n (this.yearControl as any).setAttribute = () => {};\n (this.yearControl as any).removeAttribute = () => {};\n instance.refs = {\n day: this.dayControl,\n month: this.monthControl,\n year: this.yearControl\n };\n return super.setInstance(instance);\n }\n\n setDisabled(disabled) {\n if (disabled) {\n this.dayControl.disable();\n this.monthControl.disable();\n this.yearControl.disable();\n } else {\n this.dayControl.enable();\n this.monthControl.enable();\n this.yearControl.enable();\n }\n }\n\n getValue() {\n return this.instance.getDate();\n }\n\n setValue(value) {\n if (value) {\n this.dayControl.setValue(parseInt(momentDate(value).format('D')));\n this.monthControl.setValue(parseInt(momentDate(value).format('M')));\n this.yearControl.setValue(parseInt(momentDate(value).format('YYYY')));\n }\n this.instance.setValueAt(0, value);\n }\n}\nDayComponent.MaterialComponent = MaterialDayComponent;\nexport { DayComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport HiddenComponent from 'formiojs/components/hidden/Hidden.js';\n@Component({\n selector: 'mat-formio-hidden',\n template: `<input matInput type=\"hidden\" [formControl]=\"control\" #input>`\n})\nexport class MaterialHiddenComponent extends MaterialComponent {}\nHiddenComponent.MaterialComponent = MaterialHiddenComponent;\nexport { HiddenComponent };\n","import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport HtmlComponent from 'formiojs/components/html/HTML.js';\n\n@Component({\n selector: 'mat-formio-html',\n template: `<div #htmlBody></div>`\n})\nexport class MaterialHtmlComponent extends MaterialComponent implements AfterViewInit {\n @ViewChild('htmlBody') htmlBody: ElementRef;\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.instance.component.refreshOnChange) {\n this.instance.checkRefreshOn = () => {\n this.htmlBody.nativeElement.innerHTML = this.instance.renderContent();\n };\n }\n }\n}\nHtmlComponent.MaterialComponent = MaterialHtmlComponent;\nexport { HtmlComponent };\n","import { Component } from '@angular/core';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport TagsComponent from 'formiojs/components/tags/Tags.js';\nimport { MaterialComponent } from '../MaterialComponent';\nimport { MatChipInputEvent } from '@angular/material/chips';\n\n@Component({\n selector: 'mat-formio-tags',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field class=\"example-chip-list\" fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <mat-chip-list #chipList [attr.aria-label]=\"instance.component.label\">\n <mat-chip *ngFor=\"let tag of tags; index as i;\"\n [selectable]=\"true\"\n [removable]=\"true\"\n (removed)=\"remove(i)\"\n >\n {{tag}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input [formControl]=\"control\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\"\n >\n </mat-chip-list>\n </mat-form-field>\n </ng-template>\n `\n})\nexport class MaterialTagsComponent extends MaterialComponent {\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\n tags: string[] = [];\n add(event: MatChipInputEvent): void {\n const input = event.input;\n const value = event.value;\n if ((value || '').trim()) {\n this.tags.push(value.trim());\n }\n if (input) {\n input.value = '';\n }\n this.onChange();\n }\n\n remove(index): void {\n if (index >= 0 && index < this.tags.length) {\n this.tags.splice(index, 1);\n }\n this.onChange();\n }\n\n getValue() {\n return (this.instance.component.storeas === 'string') ? this.tags.join(this.instance.delimiter) : this.tags;\n }\n\n setValue(value) {\n if (typeof value === 'string') {\n value = value.split(this.instance.delimiter);\n }\n if (value && !Array.isArray(value)) {\n value = [value];\n }\n this.tags = value;\n }\n}\n(TagsComponent as any).MaterialComponent = MaterialTagsComponent;\nexport { TagsComponent };\n","export enum ButtonsThemes {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger',\n SUCCESS = 'success'\n}\n\nexport enum AngularButtonsThemes {\n WARN = 'warn',\n PRIMARY = 'primary',\n BASIC = 'basic',\n ACCENT = 'accent'\n}\n","import { Component } from '@angular/core';\n import ButtonComponent from 'formiojs/components/button/Button.js';\nimport { MaterialComponent } from '../MaterialComponent';\nimport { AngularButtonsThemes, ButtonsThemes } from '../../const/ButtonsThemes';\n\n@Component({\n selector: 'mat-formio-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.css']\n})\nexport class MaterialButtonComponent extends MaterialComponent {\n public loading = false;\n public done = false;\n public error = false;\n public disabled = false;\n public clicked = false;\n\n get color() {\n if (this.error) {\n return AngularButtonsThemes.WARN;\n }\n const theme = this.angularButtonTheme;\n return theme || AngularButtonsThemes.PRIMARY;\n }\n\n get angularButtonTheme() {\n switch (this.instance.component.theme) {\n case ButtonsThemes.PRIMARY:\n return AngularButtonsThemes.PRIMARY;\n\n case ButtonsThemes.WARNING:\n return AngularButtonsThemes.ACCENT;\n\n case ButtonsThemes.DANGER:\n return AngularButtonsThemes.WARN;\n\n case ButtonsThemes.SECONDARY:\n return AngularButtonsThemes.BASIC;\n\n default:\n return '';\n }\n }\n\n get buttonClass() {\n let className = this.instance.component.block ? 'mat-formio-button-block' : '';\n className += this.instance.component.size ? ` mat-formio-button-${this.instance.component.size}` : '';\n className += !this.angularButtonTheme ? ` mat-formio-theme-${this.instance.component.theme}` : '';\n return className;\n }\n\n onClick(event) {\n this.clicked = true;\n this.instance.onClick(event);\n }\n\n getValue() {\n return this.clicked;\n }\n\n setState(loading, error, done) {\n this.loading = loading;\n this.done = done;\n this.error = error;\n }\n\n getIconFontSet(icon: string) {\n const fontSet = icon.split(' ')[0];\n return fontSet;\n }\n\n getIconName(icon: string) {\n return icon.replace(this.getIconFontSet(icon), '');\n }\n\n setInstance(instance) {\n const retVal = super.setInstance(instance);\n this.disabled = instance.shouldDisabled;\n instance.on('submitButton', () => this.setState(true, false, false));\n instance.on('submitDone', () => this.setState(false, false, true));\n instance.on('submitError', () => this.setState(false, true, false));\n instance.on('requestButton', () => this.setState(true, false, false));\n instance.on('requestDone', () => this.setState(false, false, true));\n instance.on('change', (event) => {\n this.disabled = this.instance.shouldDisabled || (this.instance.component.disableOnInvalid && !event.isValid);\n if (event.isValid) {\n this.loading = false;\n this.error = false;\n }\n });\n return retVal;\n }\n}\nButtonComponent.MaterialComponent = MaterialButtonComponent;\nexport { ButtonComponent };\n","<button *ngIf=\"instance\"\n [ngClass]=\"buttonClass\"\n type=\"{{ instance.component.action }}\"\n mat-raised-button [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"instance.onClick($event)\"\n>\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\n <mat-icon *ngIf=\"done\">done</mat-icon>\n <mat-icon *ngIf=\"error\">close</mat-icon>\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\n {{ instance.component.label }}\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\n</button>\n","import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport TextAreaComponent from 'formiojs/components/textarea/TextArea.js';\nimport isNil from 'lodash/isNil';\n\n@Component({\n selector: 'mat-formio-textarea',\n styleUrls: ['./textarea.component.css'],\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field class=\"mat-formio-textarea\"\n [ngClass]=\"{'editor-enabled': !!instance.component.editor}\"\n fxFill\n fxFlexAlign=\"center\"\n >\n <mat-label fxFill *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n <span *ngIf=\"instance.component.prefix\" matPrefix>{{ instance.component.prefix }}&nbsp;</span>\n <textarea matInput\n [placeholder]=\"instance.component.placeholder\"\n [formControl]=\"control\"\n [rows]=\"(instance.component.rows || 3)\"\n (input)=\"onChange()\"\n #textarea\n >\n </textarea>\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </mat-form-field>\n </ng-template>\n `\n})\nexport class MaterialTextareaComponent extends MaterialComponent implements AfterViewInit {\n @ViewChild('textarea') textarea: ElementRef;\n\n ngAfterViewInit() {\n // Attach the element so the wysiwyg will work.\n this.instance.attachElement(this.textarea.nativeElement);\n }\n\n getValue() {\n return isNil(this.control.value) ? '' : this.control.value;\n }\n}\nTextAreaComponent.MaterialComponent = MaterialTextareaComponent;\nexport { TextAreaComponent };\n","import { AfterViewInit, Component, QueryList, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { MaterialComponent } from './MaterialComponent';\n\n@Component({\n selector: 'mat-formio-nested',\n template: '<ng-template #components></ng-template>'\n})\nexport class MaterialNestedComponent extends MaterialComponent implements AfterViewInit {\n public viewContainers;\n @ViewChildren('components', {read: ViewContainerRef}) components: QueryList<ViewContainerRef>;\n setInstance(instance: any) {\n instance.viewContainer = () => {\n return this.viewContainers ? this.viewContainers[0] : null;\n };\n super.setInstance(instance);\n }\n\n renderComponents() {\n if (this.instance.renderComponents) {\n this.instance.renderComponents();\n }\n }\n\n render() {\n this.viewContainers = this.components.toArray();\n this.renderComponents();\n this.ref.detectChanges();\n }\n\n ngAfterViewInit() {\n this.components.changes.subscribe(() => this.render());\n this.render();\n }\n}\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport PanelComponent from 'formiojs/components/panel/Panel.js';\n@Component({\n selector: 'mat-formio-panel',\n template: `\n <mat-card *ngIf=\"!instance.component.collapsible\">\n <mat-card-title *ngIf=\"instance?.component?.title\">\n {{ instance.component.title }}\n </mat-card-title>\n <mat-card-content fxLayout=\"column\" fxLayoutGap=\"1em\">\n <ng-template #components></ng-template>\n </mat-card-content>\n </mat-card>\n <mat-expansion-panel *ngIf=\"instance.component.collapsible\"\n [expanded]=\"!instance.component.collapsed\"\n >\n <mat-expansion-panel-header *ngIf=\"instance?.component?.title\">\n <mat-panel-title>\n {{ instance.component.title }}\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template #components></ng-template>\n </mat-expansion-panel>\n `,\n styles: [\n ':host { margin-bottom: 1em; }'\n ]\n})\nexport class MaterialPanelComponent extends MaterialNestedComponent {}\nPanelComponent.MaterialComponent = MaterialPanelComponent;\nexport { PanelComponent };\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport ColumnsComponent from 'formiojs/components/columns/Columns.js';\n\n@Component({\n selector: 'mat-formio-columns',\n template: `\n <div class=\"container\"\n fxLayout=\"row\"\n fxLayout.xs=\"column\"\n fxLayoutWrap\n fxLayoutGap=\"{{ flexGap }}%\"\n fxLayoutAlign=\"center\"\n >\n <div\n *ngFor=\"let column of instance.component.columns; let i = index\"\n [fxFlex]=\"flexWidth(column, i)\"\n fxLayout=\"column\"\n fxLayoutGap=\"1em\">\n <ng-template #components></ng-template>\n </div>\n </div>\n `,\n styles: []\n})\nexport class MaterialColumnsComponent extends MaterialNestedComponent {\n public flexGap = 0.5;\n public totalSpace = 0;\n setInstance(instance: any) {\n this.totalSpace = 100 - ((instance.component.columns.length - 1) * this.flexGap);\n super.setInstance(instance);\n instance.viewContainer = (component) => {\n return this.viewContainers ? this.viewContainers[component.column] : null;\n };\n }\n\n flexWidth(column, index) {\n if (index >= (this.instance.component.columns.length - 1)) {\n return Math.ceil(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';\n } else {\n return Math.floor(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';\n }\n }\n}\nColumnsComponent.MaterialComponent = MaterialColumnsComponent;\nexport { ColumnsComponent };\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport ContainerComponent from 'formiojs/components/container/Container.js';\n@Component({\n selector: 'mat-formio-container',\n template: `\n <div fxLayout=\"column\" fxLayoutGap=\"1em\">\n <ng-template #components></ng-template>\n </div>`\n})\nexport class MaterialContainerComponent extends MaterialNestedComponent { }\nContainerComponent.MaterialComponent = MaterialContainerComponent;\nexport { ContainerComponent };\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport TabsComponent from 'formiojs/components/tabs/Tabs.js';\n\n@Component({\n selector: 'mat-formio-tabs',\n template: `\n <mat-tab-group>\n <mat-tab *ngFor=\"let tab of instance.component.components\" [label]=\"tab.label\">\n <div fxLayout=\"column\" fxLayoutGap=\"1em\" style=\"border: 1px dotted rgba(0, 0, 0, 0.125)\">\n <ng-template #components></ng-template>\n </div>\n </mat-tab>\n </mat-tab-group>\n `\n})\nexport class MaterialTabsComponent extends MaterialNestedComponent {\n setInstance(instance: any) {\n super.setInstance(instance);\n instance.viewContainer = (component) => {\n return this.viewContainers ? this.viewContainers[component.tab] : null;\n };\n }\n}\nTabsComponent.MaterialComponent = MaterialTabsComponent;\nexport { TabsComponent };\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MaterialComponent } from '../MaterialComponent';\nimport TimeComponent from 'formiojs/components/time/Time.js';\nimport * as moment_ from 'moment';\n@Component({\n selector: 'mat-formio-time',\n template: `\n <mat-formio-form-field\n [instance]=\"instance\"\n [componentTemplate]=\"componentTemplate\"\n [renderElementOnly]=\"renderElementOnly\"\n ></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-label fxFill *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <div style=\"display: block\">\n <div fxLayout=\"row\" fxLayoutGap=\"5%\">\n <input\n [formControl]=\"hourControl\"\n [step]=\"hourStep\"\n [min]=\"0\"\n [max]=\"12\"\n type=\"number\"\n fxFlex=\"25%\"\n (input)=\"onChange()\"\n >\n <input\n [formControl]=\"minuteControl\"\n [step]=\"minuteStep\"\n [min]=\"0\"\n [max]=\"59\"\n type=\"number\"\n fxFlex=\"25%\"\n (input)=\"onChange()\"\n >\n <input\n [formControl]=\"secondControl\"\n [step]=\"secondStep\"\n [min]=\"0\"\n [max]=\"59\"\n type=\"number\"\n fxFlex=\"25%\"\n (input)=\"onChange()\"\n *ngIf=\"instance?.component?.dataFormat === 'HH:mm:ss' ||\n instance?.component?.dataFormat === 'HH:mm:ss.SSS'\"\n >\n <button\n [disabled]=\"instance?.component?.disabled\"\n fxFlex=\"25%\"\n (click)=\"changePeriod()\"\n >\n {{period}}\n </button>\n </div>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </div>\n </ng-template>\n `\n})\n\nexport class MaterialTimeComponent extends MaterialComponent {\n public disabled = false;\n public period = 'AM';\n public hourControl: FormControl = new FormControl();\n public minuteControl: FormControl = new FormControl();\n public secondControl: FormControl = new FormControl();\n @Output() selectedEvent = new EventEmitter<any>();\n @Input() hourStep = 1;\n @Input() minuteStep = 1;\n @Input() secondStep = 1;\n @Input() renderElementOnly = false;\n\n setDisabled(disabled) {\n if (disabled) {\n this.hourControl.disable();\n this.minuteControl.disable();\n this.secondControl.disable();\n }\n }\n\n get dataFormat() {\n let format = this.instance.component.dataFormat;\n format = format ? format : 'HH:mm';\n return format;\n }\n\n setInstance(instance) {\n super.setInstance(instance);\n // this.control.setValue('00:00:00');\n this.onChange();\n }\n\n onChange() {\n const hours = this.hourControl.value;\n const minutes = this.minuteControl.value || '00';\n const seconds = this.secondControl.value || '';\n const rawValue = `${hours || '00'}:${minutes}${seconds ? ':' + seconds : ''} ${this.period}`;\n let value = this.getTwentyFourHourTime(rawValue);\n\n if (!hours) {\n value = this.instance.emptyValue;\n }\n\n this.control.setValue(value);\n if (this.instance) {\n super.onChange();\n }\n this.selectedEvent.emit(this.control);\n }\n\n setValue(value) {\n if (!value) {\n return;\n }\n super.setValue(value);\n const [hourValue, minuteValue, period] = value.split(':');\n this.hourControl.setValue(hourValue);\n this.minuteControl.setValue(minuteValue);\n // fix for default value with seconds instead of period\n this.period = period === ('AM' || 'PM') ? period : this.period;\n }\n\n getTwentyFourHourTime(amPmString) {\n const moment = moment_;\n return moment(amPmString, ['h:mm:ss A']).format(this.dataFormat);\n }\n\n changePeriod() {\n this.period = this.period === 'AM' ? 'PM' : 'AM';\n this.onChange();\n }\n}\n\nTimeComponent.MaterialComponent = MaterialTimeComponent;\nexport { TimeComponent };\n","import {Component, EventEmitter, Input, NgModule, Output, ViewChild} from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\n@Component({\n selector: 'mat-formio-calendar',\n styles: [\n `.calendar, .formio-time {\n padding: 16px;\n background-color: white;\n box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);\n }\n .formio-time {\n display: flex;\n }\n `\n ],\n template: `\n <div class=\"container\" fxLayout=\"row\" fxLayout.xs=\"column\" fxLayoutGap=\"0.5%\">\n <div [ngStyle]=\"getPopupStyles()\">\n <mat-card style=\"padding: 0;\">\n <mat-calendar\n [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selected]=\"selectedDate\"\n (selectedChange)=\"onDate($event)\"\n class=\"calendar\"\n *ngIf=\"enableDate !== false\"\n >\n </mat-calendar>\n <mat-formio-time\n #time\n [hourStep]=\"hourStep\"\n [instance]=\"instance\"\n [renderElementOnly]=\"true\"\n [minuteStep]=\"minuteStep\"\n (selectedEvent)=\"onTime($event)\"\n class=\"ml-3 formio-time\"\n *ngIf=\"enableTime\"\n >\n </mat-formio-time>\n </mat-card>\n </div>\n </div>\n `\n})\n\nexport class MaterialCalendarComponent extends MaterialComponent {\n public selectedDate: any;\n public selectedTime: any;\n public selectedTimeComponent: any;\n\n @ViewChild('time') time;\n\n @Input() enableDate: boolean;\n @Input() enableTime: boolean;\n @Input() minDate: any;\n @Input() maxDate: any;\n @Input() dateFilter: any;\n @Input() hourStep: any;\n @Input() minuteStep: any;\n @Output() timeSelectEvent = new EventEmitter<any>();\n @Output() dateSelectEvent = new EventEmitter<any>();\n\n setInstance(instance: any) {\n super.setInstance(instance);\n }\n\n setExistedDate(value) {\n this.selectedDate = value;\n }\n\n setExistedTime(value, forTime) {\n this.selectedTime = value;\n this.time.setValue(forTime);\n }\n\n onDate(event){\n this.selectedDate = event;\n this.dateSelectEvent.emit(this.selectedDate);\n }\n\n onTime(event) {\n this.selectedTime = event.value;\n this.timeSelectEvent.emit(this.selectedTime);\n }\n\n getPopupStyles() {\n return {\n position: 'absolute',\n zIndex: '1000',\n display: 'flex',\n maxWidth: '100%',\n maxHeight: '100%',\n top: '90px',\n left: '30px'\n }\n }\n}\n","import { Directive, ElementRef, forwardRef, Input } from '@angular/core';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n selector: 'input[matMask]',\n providers: [\n {provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MaskDirective},\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MaskDirective),\n multi: true,\n }\n ]\n})\nexport class MaskDirective {\n @Input('matMask') format: (value: string) => string;\n private _value: string | null;\n\n constructor(private elementRef: ElementRef<HTMLInputElement>) {}\n\n\n get value(): string | null {\n return this._value;\n }\n\n @Input('value')\n set value(value: string | null) {\n this._value = value;\n this.formatValue(value);\n }\n\n private formatValue(value: string | null) {\n if (value !== null) {\n this.elementRef.nativeElement.value = this.format(value);\n }\n else {\n this.elementRef.nativeElement.value = '';\n }\n }\n\n _onChange(value: any): void {\n }\n\n writeValue(value: any) {\n this._value = value;\n this.formatValue(this._value); // format Value\n }\n\n registerOnChange(fn: (value: any) => void) {\n this._onChange = fn;\n }\n\n registerOnTouched() {\n }\n}\n","import { Component, ViewChild } from '@angular/core'\nimport { MaterialComponent } from '../MaterialComponent';\nimport DateTimeComponent from 'formiojs/components/datetime/DateTime.js';\nimport { momentDate } from 'formiojs/utils/utils.js';\nimport {FormControl} from '@angular/forms';\n@Component({\n selector: 'mat-formio-date',\n host: {\n '(document:click)': 'clickOutside($event)',\n },\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-label *ngIf=\"hasLabel\" fxFill>\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <form class=\"example-form\">\n <mat-datepicker-toggle [disabled]=\"isDisabled()\" (click)=\"toggleCalendar($event)\">\n <mat-icon matDatepickerToggleIcon *ngIf=\"enableTime && !enableDate\">schedule</mat-icon>\n </mat-datepicker-toggle>\n <mat-form-field class=\"example-full-width\">\n <input\n *ngIf=\"enableTime && enableDate\"\n matInput\n type=\"datetime-local\"\n [placeholder]=\"instance.component.placeholder\"\n [formControl]=\"displayControl\"\n (input)=\"onChangeInput()\"\n [readonly]=\"!allowManualInput\"\n >\n <input\n *ngIf=\"enableTime && !enableDate\"\n matInput\n [placeholder]=\"instance.component.placeholder\"\n [formControl]=\"displayControl\"\n [matMask]=\"formatTime\"\n (input)=\"onChangeInput()\"\n [readonly]=\"!allowManualInput\"\n >\n <input\n *ngIf=\"!enableTime && enableDate\"\n matInput\n [placeholder]=\"instance.component.placeholder\"\n [formControl]=\"displayControl\"\n (input)=\"onChangeInput()\"\n [readonly]=\"!allowManualInput\"\n >\n </mat-form-field>\n\n <mat-formio-calendar\n #calendar\n [minDate]=\"instance.component.datePicker.minDate || ''\"\n [maxDate]=\"instance.component.datePicker.maxDate || ''\"\n [dateFilter]=\"dateFilter\"\n [hidden]=\"!isPickerOpened\"\n (dateSelectEvent)=\"onChangeDate($event)\"\n (timeSelectEvent)=\"onChangeTime($event)\"\n [enableDate]=\"enableDate\"\n [enableTime]=\"enableTime\"\n [hourStep]=\"instance.component.timePicker.hourStep\"\n [minuteStep]=\"instance.component.timePicker.minuteStep\"\n [instance]=\"instance\"\n ></mat-formio-calendar>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </form>\n </ng-template>\n `\n})\n\nexport class MaterialDateComponent extends MaterialComponent {\n public timeControl: FormControl = new FormControl();\n public displayControl: FormControl = new FormControl();\n public isPickerOpened: boolean;\n public selectedDate: any;\n public selectedTime: any = '00:00';\n public allowManualInput: boolean = true;\n\n @ViewChild('calendar') calendar;\n\n get enableDate() {\n return this.instance && this.instance.component.enableDate !== false;\n }\n\n get enableTime() {\n return this.instance && this.instance.component.enableTime === true;\n }\n\n setDisplayControlValue(value = null) {\n const format = `YYYY-MM-DD${this.enableTime ? 'THH:mm' : ''}`;\n value = value || this.getDateTimeValue();\n\n if (value) {\n this.displayControl.setValue(momentDate(value).format(format));\n }\n else {\n this.displayControl.setValue('');\n }\n }\n\n onChangeDate(event) {\n this.selectedDate = momentDate(event).utc().format();\n this.control.setValue(this.selectedDate);\n this.setDateTime();\n }\n\n onChangeTime(time) {\n this.selectedTime = time;\n if (this.selectedDate || (this.enableTime && !this.enableDate)) {\n this.setDateTime();\n }\n }\n\n onChangeInput() {\n const value = this.dateFilter(this.displayControl.value) &&\n this.checkMinMax(this.displayControl.value) ? this.displayControl.value : '';\n\n this.control.setValue(value);\n this.onChange();\n }\n\n getDateTimeValue() {\n let newDate = '';\n let isSelectedTime = false;\n\n if (this.calendar && this.calendar.selectedTime) {\n const { selectedTime } = this.calendar;\n isSelectedTime = true;\n\n if (this.selectedTime !== selectedTime) {\n this.selectedTime = selectedTime;\n }\n }\n\n if (this.enableTime && this.enableDate) {\n const [hours, minutes] = this.selectedTime.split(':');\n newDate = isSelectedTime\n ? momentDate(this.selectedDate)\n .hours(Number.parseInt(hours))\n .minutes(Number.parseInt(minutes))\n .utc()\n : this.selectedDate;\n }\n\n if (!this.enableTime && this.enableDate) {\n newDate = this.selectedDate;\n }\n\n if (this.enableTime && !this.enableDate) {\n const [hours, minutes] = this.selectedTime.split(':');\n newDate = momentDate(new Date())\n .hours(Number.parseInt(hours))\n .minutes(Number.parseInt(minutes))\n .seconds(0)\n .utc();\n }\n\n return newDate;\n }\n\n setDateTime() {\n this.control.setValue(this.getDateTimeValue());\n this.onChange();\n }\n\n setInstance(instance: any) {\n super.setInstance(instance);\n this.isDisabled() ? this.control.disable() : this.control.enable();\n this.isDisabled() ? this.displayControl.disable() : this.displayControl.enable();\n\n if (this.instance) {\n this.allowManualInput = this.instance.component.allowInput === false ? false : true;\n if (this.instance.component && this.instance.component.datePicker) {\n const {minDate: min, maxDate: max} = this.instance.component.datePicker;\n\n // It improves the date to the full format if the customer set only a year. Otherwise we will have conflicts into the moment.js.\n const { minDate, maxDate } = this.improveMinMaxDate(min, max);\n this.instance.component.datePicker.minDate = minDate;\n this.instance.component.datePicker.maxDate = maxDate;\n }\n }\n }\n\n toggleCalendar(event) {\n if (!this.isDisabled()) {\n if (!this.isPickerOpened) {\n const date = this.getValue();\n if (date &&this.checkMinMax(date)) {\n if (this.enableDate && this.calendar && !this.calendar.selectedDate) {\n this.calendar.setExistedDate(momentDate(date).toDate())\n }\n\n if (this.enableTime && this.calendar && !this.calendar.selectedTime) {\n const time = momentDate(date)\n this.calendar.setExistedTime(time.format('HH:mm'), time.format('h:mm:A'))\n }\n }\n }\n this.isPickerOpened = !this.isPickerOpened;\n event.stopPropagation();\n }\n }\n\n isDisabled() {\n const { readonly, disabled } = this.instance.component;\n return readonly || disabled || this.instance.root.options.readOnly\n }\n\n public formatTime = (value) => {\n if (!value) {\n return this.instance.emptyValue;\n }\n return momentDate(value).format(this.instance.component.format);\n }\n\n setValue(value) {\n if (this.dateFilter(value) && this.checkMinMax(value)) {\n this.setDisplayControlValue(value);\n super.setValue(value);\n }\n }\n\n onChange() {\n const value = this.dateFilter(this.getValue()) && this.checkMinMax(this.getValue()) ? this.getValue() : '';\n this.setDisplayControlValue(value);\n }\n\n beforeSubmit() {\n this.onChange();\n super.beforeSubmit();\n }\n\n checkMinMax(value) {\n let isValid = true;\n const { minDate: min, maxDate: max } = this.instance.component.datePicker;\n const { minDate, maxDate } = this.improveMinMaxDate(min, max);\n\n if (minDate) {\n isValid = momentDate(value).isSameOrAfter(minDate);\n }\n if (maxDate && isValid) {\n isValid = momentDate(value).isSameOrBefore(maxDate);\n }\n return isValid;\n }\n\n disableWeekends(d: Date) {\n if (d && d.getDay) {\n const day = d.getDay();\n return day !== 0 && day !== 6;\n }\n return true;\n }\n\n disableDates(dates: Array<string>, d: Date) {\n const formattedDates = dates.map((date) => momentDate(date).format('YYYY-MM-DD'));\n return !formattedDates.includes(momentDate(d).format('YYYY-MM-DD'));\n }\n\n dateFilter = (d: Date | null): boolean => {\n const isValid = this.instance.component.datePicker.disableWeekends ? this.disableWeekends(d) : true;\n return this.instance.component.widget.disabledDates && isValid ?\n this.disableDates(this.instance.component.widget.disabledDates.split(','), d) : isValid;\n }\n\n clickOutside(event) {\n if (event.target.classList.contains('mat-calendar-body-selected') && this.isPickerOpened)\n this.toggleCalendar(event);\n }\n\n improveMinMaxDate(minDate, maxDate) {\n if (minDate && minDate.length === 4) {\n minDate = momentDate(`${minDate}-01-01`).format('YYYY-MM-DD');\n }\n\n if (maxDate && maxDate.length === 4) {\n maxDate = momentDate(`${maxDate}-01-01`).subtract(1, 'day').format('YYYY-MM-DD');\n }\n return {minDate, maxDate};\n }\n}\nDateTimeComponent.MaterialComponent = MaterialDateComponent;\nexport { DateTimeComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\n// import CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';\nimport CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';\nimport _ from 'lodash';\n\n@Component({\n selector: 'mat-formio-checkbox',\n template: `\n <mat-checkbox (change)=\"onChange()\" [ngClass]=\"{'validation-error' : !!instance.error}\"\n [formControl]=\"control\"\n >\n <span matFormioLabel [instance]=\"instance\"></span>\n <mat-icon *ngIf=\"instance.component.tooltip\" matSuffix\n matTooltip=\"{{ instance.component.tooltip }}\" style=\"font-size: 1rem;\">info\n </mat-icon>\n </mat-checkbox>\n <mat-hint>\n {{ instance.component.description }}\n </mat-hint>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n `,\n styles:['::ng-deep .mat-checkbox.validation-error .mat-checkbox-frame {border-color: red; }']\n})\nexport class MaterialCheckboxComponent extends MaterialComponent {\n getValue() {\n return _.isNil(this.control.value) ? '' : this.control.value;\n }\n}\nCheckboxComponent.MaterialComponent = MaterialCheckboxComponent;\nexport { CheckboxComponent };\n","import { Component } from '@angular/core';\nimport FieldsetComponent from 'formiojs/components/fieldset/Fieldset.js';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\n@Component({\n selector: 'mat-formio-fieldset',\n template: `\n <fieldset>\n <legend [attr.ref]=\"'header'\">\n {{ instance.component.legend }}\n <mat-icon *ngIf=\"instance.component.tooltip\"\n matSuffix\n matTooltip=\"{{ instance.component.tooltip }}\"\n >\n info\n </mat-icon>\n </legend>\n <div class=\"fieldset-body\" [attr.ref]=\"instance.component.key\" fxLayout=\"column\" fxLayoutGap=\"1em\">\n <ng-template #components></ng-template>\n </div>\n </fieldset>\n `,\n styles: []\n})\nexport class MaterialFieldsetComponent extends MaterialNestedComponent {}\nFieldsetComponent.MaterialComponent = MaterialFieldsetComponent;\nexport { FieldsetComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport ContentComponent from 'formiojs/components/content/Content.js';\n@Component({\n selector: 'mat-formio-content',\n template: `<div [innerHTML]=\"instance.content\"></div>`\n})\nexport class MaterialContentComponent extends MaterialComponent {}\nContentComponent.MaterialComponent = MaterialContentComponent;\nexport { ContentComponent };\n","import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport SignatureComponent from 'formiojs/components/signature/Signature.js';\n@Component({\n selector: 'mat-formio-signature',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <div #signature>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <button mat-icon-button [ngStyle]=\"{position: 'absolute'}\" ref=\"refresh\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <div class=\"signature-pad-body\"\n [ngStyle]=\"{width: instance.component.width, height: instance.component.height, padding: 0, margin: 0}\"\n [attr.tabindex]=\"instance.component.tabindex || 0\"\n ref=\"padBody\"\n >\n <canvas class=\"signature-pad-canvas\"\n [attr.height]=\"instance.component.height\"\n ref=\"canvas\"\n ></canvas>\n <img fxFlexFill [ngStyle]=\"{display: 'none' }\" ref=\"signatureImage\">\n </div>\n <div *ngIf=\"instance.component.footer\"\n class=\"signature-pad-footer\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <mat-hint>{{ instance.t(instance.component.footer) }}</mat-hint>\n </div>\n </div>\n </ng-template>\n `\n})\nexport class MaterialSignatureComponent extends MaterialComponent implements AfterViewInit {\n @ViewChild('signature') signatureElement: ElementRef;\n\n renderComponents() {\n if (this.signatureElement) {\n this.instance.attach(this.signatureElement.nativeElement);\n }\n }\n\n ngAfterViewInit() {\n this.renderComponents();\n }\n}\nSignatureComponent.MaterialComponent = MaterialSignatureComponent;\nexport { SignatureComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport SurveyComponent from 'formiojs/components/survey/Survey.js';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'mat-formio-survey',\n template: `\n\n <mat-formio-form-field\n [instance]=\"instance\"\n [componentTemplate]=\"componentTemplate\"\n [showDescription]=\"false\"\n ></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n\n <table class=\"mat-elevation-z8 mat-table\" fxFill>\n <thead>\n <tr class=\"mat-header-row\">\n <th class=\"mat-header-cell\">\n <h2 *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </h2>\n </th>\n <th class=\"mat-header-cell\"\n *ngFor=\"let value of instance.component.values\"\n style=\"text-align: center;\"\n >\n {{ value.label }}\n </th>\n </tr>\n </thead>\n\n <tbody>\n <tr class=\"mat-row\" *ngFor=\"let question of instance.component.questions; index as i;\">\n <td class=\"mat-cell\">{{ question.label }}</td>\n <td class=\"mat-cell\"\n *ngFor=\"let value of instance.component.values; index as j;\"\n style=\"text-align: center;\"\n >\n <mat-radio-group (change)=\"onChange()\"\n [formControl]=\"getFormControl(question.value)\"\n [name]=\"getUniqueName(question.value)\"\n >\n <mat-radio-button [value]=\"value.value\"></mat-radio-button>\n </mat-radio-group>\n </td>\n </tr>\n <mat-hint *ngIf=\"instance.component.description\" class=\"mat-formio-component-description\">\n {{ instance.component.description }}\n </mat-hint>\n </tbody>\n\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </table>\n </ng-template>\n `\n})\nexport class MaterialSurveyComponent extends MaterialComponent {\n public controls: any = {};\n getFormControl(question) {\n if (!this.controls[question]) {\n this.controls[question] = new FormControl();\n if (this.instance.shouldDisabled) {\n this.controls[question].disable();\n }\n }\n return this.controls[question];\n }\n\n setDisabled(disabled) {\n const method = disabled ? 'disable' : 'enable';\n for (const question in this.controls) {\n if (this.controls.hasOwnProperty(question)) {\n this.controls[question][method]();\n }\n }\n }\n\n getValue() {\n const values = {};\n for (const question in this.controls) {\n if (this.controls.hasOwnProperty(question)) {\n values[question] = this.controls[question].value || false;\n }\n }\n return values;\n }\n\n setValue(value) {\n for (const question in value) {\n if (value.hasOwnProperty(question)) {\n const control = this.getFormControl(question);\n if (control) {\n control.setValue(value[question] || false);\n }\n }\n }\n }\n\n getUniqueName(question) {\n return `${this.instance.id}-${question}`;\n }\n}\nSurveyComponent.MaterialComponent = MaterialSurveyComponent;\nexport { SurveyComponent };\n","import { Component } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport RadioComponent from 'formiojs/components/radio/Radio.js';\n\n@Component({\n selector: 'mat-formio-radio',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <div fxLayout=\"column\">\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <mat-radio-group\n (change)=\"onChange()\"\n [formControl]=\"control\"\n fxFlexOffset=\"10px\"\n fxLayout=\"{{ getLayout() }}\"\n fxLayoutGap=\"10px\"\n >\n <mat-radio-button *ngFor=\"let option of instance.component.values\"\n value=\"{{ option.value }}\"\n [checked]=\"isRadioChecked(option)\"\n (keyup.space)=\"clearValue($event, option)\"\n (click)=\"clearValue($event, option)\"\n >\n {{ option.label }}\n </mat-radio-button>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </mat-radio-group>\n </div>\n </ng-template>\n `\n})\nexport class MaterialRadioComponent extends MaterialComponent {\n getLayout() {\n return this.instance.component.inline ? 'row' : 'column';\n }\n\n isRadioChecked(option) {\n return option.value === this.instance.dataValue;\n }\n\n clearValue(event, option) {\n if (this.isRadioChecked(option)) {\n event.preventDefault();\n this.deselectValue();\n }\n }\n\n deselectValue() {\n this.instance.updateValue(null, {\n modified: true,\n });\n }\n}\nRadioComponent.MaterialComponent = MaterialRadioComponent;\nexport { RadioComponent };\n","import { Component } from '@angular/core';\nimport { MaterialRadioComponent } from '../radio/radio.component';\nimport SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';\n@Component({\n selector: 'mat-formio-selectboxes',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <div fxLayout=\"column\">\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n <div\n fxFlexOffset=\"10px\"\n fxLayout=\"{{ getLayout() }}\"\n fxLayoutGap=\"10px\"\n >\n <mat-checkbox\n *ngFor=\"let option of instance.component.values\"\n (change)=\"onChange()\"\n [(ngModel)]=\"value[option.value]\"\n [disabled]=\"disabled\"\n >\n {{ option.label }}\n </mat-checkbox>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </div>\n </div>\n </ng-template>\n `\n})\nexport class MaterialSelectBoxesComponent extends MaterialRadioComponent {\n public value: any = {};\n public disabled = false;\n\n setInstance(instance) {\n instance.component.values.forEach((option) => {\n this.value[option.value] = false;\n });\n super.setInstance(instance);\n }\n\n getValue() {\n return this.value;\n }\n\n setValue(value) {\n const normalizedValue = this.instance.normalizeValue(value);\n for (const prop in normalizedValue) {\n if (normalizedValue.hasOwnProperty(prop)) {\n this.value[prop] = normalizedValue[prop];\n }\n }\n }\n\n setDisabled(disabled) {\n this.disabled = !!disabled;\n }\n\n onChange() {\n this.instance.updateValue(this.getValue(), {modified: true});\n this.instance.triggerChange({modified: true});\n }\n}\nSelectBoxesComponent.MaterialComponent = MaterialSelectBoxesComponent;\nexport { SelectBoxesComponent };\n","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MaterialComponent } from '../MaterialComponent';\nimport SelectComponent from 'formiojs/components/select/Select.js';\nimport _ from 'lodash';\nimport { FormControl } from '@angular/forms';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { map, startWith, takeUntil, take } from 'rxjs/operators';\nimport { MatSelect } from '@angular/material/select';\n\n@Component({\n selector: 'mat-formio-select',\n template: `\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <span *ngIf=\"instance.component.prefix\" matPrefix>\n {{ instance.component.prefix }}&nbsp;\n </span>\n <mat-select\n [multiple]=\"instance.component.multiple\"\n [formControl]=\"control\"\n [placeholder]=\"instance.component.placeholder\"\n (selectionChange)=\"onChange()\"\n [compareWith]=\"compareObjects\"\n >\n\n <mat-option>\n <ngx-mat-select-search placeholderLabel=\"Type to search\" [formControl]=\"websiteMultiFilterCtrl\"></ngx-mat-select-search>\n </mat-option>\n \n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.value\">\n <span [innerHTML]=\"option.label\"></span>\n </mat-option>\n\n <!-- <div class=\"mat-option\">\n <input class=\"mat-input-element\" placeholder=\"Type to search the risk\" (input)=\"onFilter($event.target.value)\">\n </div> -->\n <mat-option *ngIf=\"!filteredOptionsLength\" disabled>\n <span>Nothing was found</span>\n </mat-option>\n <!-- <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.value\">\n <span [innerHTML]=\"option.label\"></span>\n </mat-option> -->\n </mat-select>\n\n <span *ngIf=\"instance.component.suffix\" matSuffix>\n {{ instance.component.suffix }}\n </span>\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\n </mat-form-field>\n </ng-template>\n `\n})\nexport class MaterialSelectComponent extends MaterialComponent implements OnInit, AfterViewInit, OnDestroy {\n\n selectOptions: Promise<any[]>;\n filteredOptions: Promise<any[]>;\n\n filteredOptionsLength: number;\n\n selectOptionsResolve: any;\n\n public websiteMultiCtrl: FormControl = new FormControl();\n public websiteMultiFilterCtrl: FormControl = new FormControl();\n\n @ViewChild('multiSelect', { static: true }) multiSelect: MatSelect;\n protected _onDestroy = new Subject();\n\n filterWebsiteMulti() {\n if (!this.selectOptions) {\n return;\n }\n let search = this.websiteMultiFilterCtrl.value;\n search = search.toLowerCase();\n this.filteredOptions = this.selectOptions.then((options) => {\n const filtered = options.filter((option) => option.label.toLowerCase().indexOf(search) !== -1);\n this.filteredOptionsLength = filtered.length;\n return filtered;\n })\n }\n ngOnDestroy() {\n this._onDestroy.next('');\n this._onDestroy.complete();\n }\n\n\n /*End*/\n setInstance(instance: any) {\n super.setInstance(instance);\n this.instance.triggerUpdate();\n }\n\n ngOnInit() {\n /*new logic */\n //this.websiteMultiCtrl.setValue(this.websites[1]);\n //this.filteredOptions.next(this.websites.slice());\n\n this.websiteMultiFilterCtrl.valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterWebsiteMulti();\n });\n /*End */\n this.selectOptions = new Promise((resolve) => {\n this.selectOptionsResolve = resolve;\n });\n this.selectOptions.then((options) => {\n this.filteredOptionsLength = options.length;\n })\n\n this.filteredOptions = this.selectOptions;\n }\n\n // onFilter(value) {\n // this.filteredOptions = this.selectOptions.then((options) => {\n // const filtered = options.filter((option) => option.label.toLowerCase().indexOf(value.toLowerCase()) !== -1);\n // this.filteredOptionsLength = filtered.length;\n // return filtered;\n // })\n // }\n\n compareObjects(o1: any, o2: any): boolean {\n return _.isEqual(o1, o2);\n }\n}\nSelectComponent.MaterialComponent = MaterialSelectComponent;\n\n// Make sure we detect changes when new items make their way into the select dropdown.\nconst setItems = SelectComponent.prototype.setItems;\nSelectComponent.prototype.setItems = function (...args) {\n setItems.call(this, ...args);\n if (this.materialComponent && this.materialComponent.selectOptionsResolve) {\n this.materialComponent.selectOptionsResolve(this.selectOptions);\n }\n};\n\nexport { SelectComponent };\n","import { Component } from '@angular/core';\nimport WellComponent from 'formiojs/components/well/Well.js';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\n@Component({\n selector: 'mat-formio-well',\n template: `\n <mat-card>\n <mat-card-content fxLayout=\"column\"\n fxLayoutGap=\"1em\"\n [ngStyle]=\"{\n 'background-color':'#f5f5f5',\n 'padding': '1.5em'\n }\"\n >\n <ng-template #components></ng-template>\n </mat-card-content>\n </mat-card>\n `,\n styles: []\n})\nexport class MaterialWellComponent extends MaterialNestedComponent {}\nWellComponent.MaterialComponent = MaterialWellComponent;\nexport { WellComponent };\n","import { Component, ViewChild } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';\nimport {CdkDragDrop, moveItemInArray, DragDropModule} from '@angular/cdk/drag-drop';\nimport {MatTable} from '@angular/material/table';\n@Component({\n selector: 'mat-formio-datagrid',\n template: `\n <mat-formio-form-field [instance]=\"instance\"\n [componentTemplate]=\"componentTemplate\"\n [labelTemplate]=\"labelTemplate\"\n ></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-card fxFill>\n <ng-container *ngIf=\"hasLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </ng-container>\n <mat-card-content>\n <mat-card-actions\n *ngIf=\"instance.hasAddButton() && (instance.component.addAnotherPosition === 'both' || instance.component.addAnotherPosition === 'top')\">\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\n <mat-icon>add</mat-icon>\n {{instance.component.addAnother || 'Add Another'}}\n </button>\n </mat-card-actions>\n <table\n mat-table\n [dataSource]=\"dataSource\"\n class=\"mat-elevation-z8\"\n fxFill\n cdkDropList\n [cdkDropListData]=\"dataSource\"\n (cdkDropListDropped)=\"dropTable($event)\">\n >\n <ng-container *ngFor=\"let column of formColumns\" [matColumnDef]=\"column\">\n <th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>\n <td mat-cell *matCellDef=\"let i = index;\" [attr.rowIndex]=\"i\" [attr.component]=\"column\">\n <ng-template #components></ng-template>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"__removeRow\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let i = index;\">\n <button mat-button *ngIf=\"instance.hasRemoveButtons()\" (click)=\"removeRow(i)\">\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\n </button>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"position\" *ngIf=\"instance.component.reorder\">\n <th mat-header-cell *matHeaderCellDef> No.</th>\n <td mat-cell *matCellDef=\"let element\">\n <mat-icon cdkDragHandle>reorder</mat-icon>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <div *ngIf=\"instance?.component?.reorder\">\n <tr class=\"datagrid-row\" mat-row *matRowDef=\"let row; columns: displayedColumns;\" cdkDrag\n [cdkDragData]=\"row\"></tr>\n </div>\n <div *ngIf=\"!instance?.component?.reorder\">\n <tr class=\"datagrid-row\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </div>\n </table>\n </mat-card-content>\n <mat-card-actions *ngIf=\"instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'\">\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\n <mat-icon>add</mat-icon>\n {{instance.component.addAnother || 'Add Another'}}\n </button>\n </mat-card-actions>\n </mat-card>\n </ng-template>\n\n <ng-template #labelTemplate>\n <mat-card-title>\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-card-title>\n </ng-template>\n `,\n styles: [\n '.datagrid-row { height: auto; }'\n ]\n})\nexport class MaterialDataGridComponent extends MaterialNestedComponent {\n displayedColumns: string[];\n formColumns: string[];\n columns: any;\n dataSource = new MatTableDataSource();\n\n getColumnLabel(column) {\n return column.label || column.key;\n }\n\n setInstance(instance: any) {\n super.setInstance(instance);\n this.dataSource.data = instance.dataValue;\n this.columns = {};\n this.displayedColumns = [];\n this.formColumns = [];\n instance.getColumns().map((column) => {\n this.formColumns.push(column.key);\n this.displayedColumns.push(column.key);\n this.columns[column.key] = column;\n });\n this.displayedColumns.push('__removeRow');\n if (this.instance.component.reorder) {\n this.displayedColumns.push('position');\n }\n instance.viewContainer = (component) => {\n let viewContainer;\n if (this.instance.component.disabled) {\n component.component.disabled = true;\n }\n this.viewContainers.forEach((container) => {\n const td = container.element.nativeElement.parentNode;\n if (\n component.rowIndex === parseInt(td.getAttribute('rowIndex'), 10) &&\n component.component.key === td.getAttribute('component')\n ) {\n viewContainer = container;\n }\n });\n\n return viewContainer ? viewContainer : null;\n };\n }\n\n addAnother() {\n this.checkRowsNumber();\n this.instance.addRow();\n if (this.dataSource.data.length < this.instance.rows.length) {\n this.dataSource.data.push({});\n }\n this.dataSource.data = [...this.dataSource.data];\n }\n\n checkRowsNumber() {\n while (this.instance.rows.length < this.dataSource.data.length) {\n this.instance.addRow();\n }\n }\n\n removeRow(index) {\n this.instance.removeRow(index);\n this.dataSource.data.splice(index, 1);\n this.dataSource.data = [...this.dataSource.data];\n }\n\n dropTable(event: CdkDragDrop<any>) {\n const prevIndex = this.dataSource.data.findIndex((d) => d === event.item.data);\n moveItemInArray(this.control.value, prevIndex, event.currentIndex);\n this.renderComponents();\n }\n\n renderComponents() {\n this.instance.getRows();\n this.instance.setValue(this.control.value || []);\n }\n\n setValue(value: [] | null) {\n const gridLength = value ? value.length : 0;\n\n while (this.instance.rows.length < gridLength) {\n this.addAnother();\n this.instance.dataValue = value;\n this.instance.setValue(value);\n }\n\n if (!value && this.instance.component.clearOnHide) {\n this.dataSource = new MatTableDataSource(this.instance.defaultValue);\n }\n super.setValue(value);\n }\n}\nDataGridComponent.MaterialComponent = MaterialDataGridComponent;\nexport { DataGridComponent };\n","import {\n Component,\n ViewChild,\n ViewChildren,\n QueryList,\n ElementRef,\n AfterViewInit\n} from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';\nimport { FormioComponent } from '../../formio.component';\nimport Components from 'formiojs/components/Components';\nimport isString from 'lodash/isString';\n\nenum EditRowState {\n NEW = 'new',\n EDITING ='editing',\n SAVED = 'saved',\n REMOVED = 'removed',\n DRAFT = 'draft'\n};\n\n/* tslint:disable no-bitwise only-arrow-functions */\nconst hashCode = function(str) {\n let hash = 0;\n let i = 0;\n let chr;\n str = str.replace(/\\s/g, '');\n if (str.length === 0) {\n return hash;\n }\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n};\n/* tslint:enable no-bitwise only-arrow-functions */\n\n// Do nothing to createRowComponents, let mat-formio handle it.\n/* tslint:disable only-arrow-functions */\nEditGridComponent.prototype.createRowComponents = function() {\n return [];\n};\n\nconst checkRow = EditGridComponent.prototype.checkRow;\nEditGridComponent.prototype.checkRow = function(data, editRow, flags: any = {}) {\n if (flags.checkRow) {\n return checkRow.call(this, data, editRow, flags);\n } else {\n return true;\n }\n};\n/* tslint:enable only-arrow-functions */\n\nconst DEFAULT_HEADER_TEMPLATES = [\n hashCode((EditGridComponent as any).defaultHeaderTemplate),\n hashCode(`\n <div class=\"row\">\n {% (components || []).forEach(function(component) { %}\n <div class=\"col-sm-2\">{{ component.label }}</div>\n {% }) %}\n </div>`)\n];\n\nconst DEFAULT_ROW_TEMPLATES = [\n hashCode((EditGridComponent as any).defaultRowTemplate),\n hashCode(`<div class=\"row\">\n {% util.eachComponent(components, function(component) { %}\n <div class=\"col-sm-2\">\n {{ getView(component, row[component.key]) }}\n </div>\n {% }) %}\n {% if (!instance.options.readOnly) { %}\n <div class=\"col-sm-2\">\n <div class=\"btn-group pull-right\">\n <button class=\"btn btn-default btn-sm editRow\">Edit</button>\n <button class=\"btn btn-danger btn-sm removeRow\">Delete</button>\n </div>\n </div>\n {% } %}\n</div>`)\n];\n\n@Component({\n selector: 'mat-formio-editgrid',\n styleUrls: ['./editgrid.component.css'],\n templateUrl: './editgrid.component.html'\n})\nexport class MaterialEditGridComponent extends MaterialNestedComponent implements AfterViewInit {\n @ViewChild('header') headerElement: ElementRef;\n @ViewChild('footer') footerElement: ElementRef;\n @ViewChildren('rows') rowElements: QueryList<ElementRef>;\n @ViewChildren('forms') forms: QueryList<FormioComponent>;\n public header: string;\n public footer: string;\n public displayedColumns: string[];\n public columns: any = {};\n public colWidth = 0;\n public valid = true;\n public RowStates = EditRowState;\n\n getRowTemplate(content) {\n return `<mat-list style=\"display: flex;\">\n {% (components || []).forEach(function(component) { %}\n {% if (!component.hasOwnProperty('tableView') || component.tableView) { %}\n <mat-list-item style=\"width: {{ colWidth }}%; margin: 0 0.8rem\">${content}</mat-list-item>\n {% } %}\n {% }) %}\n </mat-list>`;\n}\n\n validate(index) {\n if (!this.forms) {\n return;\n }\n const forms = this.forms.toArray();\n if (!forms[index]) {\n return;\n }\n const formioComponent = forms[index];\n const {data} = formioComponent.formio.submission;\n const isInvalid = Object.keys(data).some(\n value => isString(data[value]) && data[value].length === 0\n );\n\n if (isInvalid) {\n this.valid = false;\n } else {\n this.valid = true;\n }\n }\n\n setInstance(instance) {\n if (\n instance.component.templates.header &&\n (DEFAULT_HEADER_TEMPLATES.indexOf(hashCode(instance.component.templates.header)) !== -1)\n ) {\n instance.component.templates.header = this.getRowTemplate('{{ component.label }}');\n }\n\n if (instance.component.templates.row &&\n (DEFAULT_ROW_TEMPLATES.indexOf(hashCode(instance.component.templates.row)) !== -1)\n ) {\n instance.component.templates.row = this.getRowTemplate('{{ getView(component, row[component.key]) }}');\n }\n\n this.displayedColumns = instance.component.components.map((comp) => {\n if (comp.hasOwnProperty('tableView') && !comp.tableView) {\n return false;\n }\n\n this.columns[comp.key] = comp;\n return comp.key;\n }).filter(name => !!name);\n const dataValue = instance.dataValue || [];\n this.colWidth = instance.component.components.length ? Math.floor(100 / instance.component.components.length) : 100;\n if (instance.component.templates && instance.component.templates.header) {\n this.header = instance.renderString(instance.component.templates.header, {\n components: instance.component.components,\n value: dataValue,\n colWidth: this.colWidth\n });\n }\n if (instance.component.templates && instance.component.templates.footer) {\n this.footer = instance.renderString(instance.component.templates.footer, {\n components: instance.component.components,\n value: dataValue,\n colWidth: this.colWidth\n });\n }\n setTimeout(() => {\n this.renderTemplate(this.headerElement, this.header);\n this.renderTemplate(this.footerElement, this.footer);\n }, 0);\n super.setInstance(instance);\n }\n\n addAnother() {\n const row = this.instance.addRow();\n }\n\n editRow(row, index) {\n const { state } = row;\n const { NEW, REMOVED } = this.RowStates;\n\n if (state === NEW || state === REMOVED) {\n return;\n }\n this.instance.editRow(index);\n const forms = this.forms.toArray();\n if (forms[index]) {\n forms[index].formio.submission = {data: JSON.parse(JSON.stringify(row.data))};\n }\n }\n\n /**\n * Updates the row template.\n *\n * @param row\n * @param index\n */\n updateRowTemplate(rowElement: ElementRef, index, comps) {\n const self = this;\n const editRow: any = {...this.instance.editRows[index]};\n if (editRow.state !== this.RowStates.NEW) {\n this.renderTemplate(rowElement, this.instance.renderString(this.instance.component.templates.row, {\n row: this.instance.dataValue[index] || {},\n data: this.instance.data,\n rowIndex: index,\n colWidth: this.colWidth,\n components: this.instance.component.components,\n getView: function getView(component, data) {\n if (!comps[component.type]) {\n comps[component.type] = Components.create(component, {}, {}, true);\n }\n return comps[component.type] ? comps[component.type].getView(data) : '';\n }\n }));\n }\n }\n\n /**\n * Saves a row.\n *\n * @param row - The edit grid row.\n * @param index - The index for this row.\n */\n saveRow(row, index) {\n const forms = this.forms.toArray();\n if (forms[index]) {\n const formioComponent = forms[index];\n row.data = JSON.parse(JSON.stringify(formioComponent.formio.submission.data));\n this.instance.saveRow(index);\n const rows = this.rowElements.toArray();\n if (rows && rows[index]) {\n this.updateRowTemplate(rows[index], index, {});\n }\n }\n }\n\n cancelRow(index) {\n this.instance.cancelRow(index);\n this.valid = true;\n }\n\n renderTemplate(element: ElementRef, template) {\n if (!element || !element.nativeElement) {\n return;\n }\n element.nativeElement.innerHTML = template;\n }\n\n ngAfterViewInit() {\n this.rowElements.changes.subscribe((rows: QueryList<ElementRef>) => {\n const rowCache = {};\n rows.forEach((row: ElementRef, index) => this.updateRowTemplate(row, index, rowCache));\n });\n }\n}\nEditGridComponent.MaterialComponent = MaterialEditGridComponent;\nexport { EditGridComponent };\n","<!-- <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\" [labelTemplate]=\"labelTemplate\">\n</mat-formio-form-field>\n<ng-template #componentTemplate let-hasLabel>\n\n <span fxLayout=\"column\" fxLayoutGap=\"1em\" fxFill>\n <ng-container *ngIf=\"hasLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </ng-container>\n <mat-accordion>\n <mat-expansion-panel *ngIf=\"header\" disabled=\"true\">\n <mat-expansion-panel-header>\n <span #header fxFill></span>\n </mat-expansion-panel-header>\n </mat-expansion-panel>\n\n <mat-expansion-panel *ngFor=\"let row of instance.editRows; index as i;\" [expanded]=\"instance.isOpen(row)\">\n <mat-expansion-panel-header (click)=\"editRow(row, i)\">\n <span *ngIf=\"row.state !== RowStates.NEW\" #rows fxFill></span>\n </mat-expansion-panel-header>\n\n <mat-formio [form]=\"instance.component\" #forms (change)=\"validate(i)\"></mat-formio>\n\n <span fxLayout=\"row\" fxLayoutGap=\"1em\">\n <button mat-raised-button color=\"primary\" [disabled]=\"!valid\" (click)=\"saveRow(row, i)\">Save</button>\n <button mat-raised-button color=\"secondary\" (click)=\"cancelRow(i)\">Cancel</button>\n <button mat-raised-button color=\"warn\" (click)=\"instance.removeRow(i)\" class=\"delete-button\">\n <mat-icon>delete</mat-icon>\n </button>\n </span>\n </mat-expansion-panel>\n\n <mat-expansion-panel *ngIf=\"footer\" disabled=\"true\">\n <mat-expansion-panel-header>\n <span #footer></span>\n </mat-expansion-panel-header>\n </mat-expansion-panel>\n </mat-accordion>\n\n <span fxFill=\"none\" *ngIf=\"instance.hasAddButton()\">\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\n <mat-icon>add</mat-icon> Add Another\n </button>\n </span>\n </span>\n</ng-template>\n\n<ng-template #labelTemplate>\n <mat-card-title>\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-card-title>\n</ng-template> -->\n","import { Component } from '@angular/core';\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\nimport TableComponent from 'formiojs/components/table/Table.js';\n\n@Component({\n selector: 'mat-formio-table',\n styleUrls: [ './table.component.css' ],\n template: `\n <table class=\"mat-table\" style=\"width: 100%;\" [ngClass]=\"{'is-bordered' : instance.component.bordered}\">\n <thead>\n <tr class=\"mat-header-row\">\n <th *ngFor=\"let header of instance.component.header\"\n class=\"mat-header-cell\"\n >\n {{ instance.t(header) }}\n </th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let row of instance.table; let i = index\"\n role=\"row\"\n class=\"mat-row\"\n [ngClass]=\"{\n 'is-hover': instance.component.hover,\n 'is-striped': instance.component.striped && i % 2 === 0\n }\"\n >\n <td *ngFor=\"let col of row\"\n role=\"gridcell\"\n class=\"mat-cell\"\n [ngClass]=\"getTableColClasses()\"\n >\n <ng-template #components></ng-template>\n </td>\n </tr>\n </tbody>\n </table>\n `\n})\nexport class MaterialTableComponent extends MaterialNestedComponent {\n\n setInstance(instance: any) {\n super.setInstance(instance);\n instance.viewContainer = (component) => {\n return this.viewContainers ?\n this.viewContainers[(component.tableRow * this.instance.component.numCols) + component.tableColumn] :\n null;\n };\n }\n\n getTableColClasses() {\n if (!this.instance) {\n return;\n }\n const {condensed, cellAlignment} = this.instance.component;\n return {\n 'is-condensed': condensed,\n ...(cellAlignment && {[cellAlignment]: true})\n }\n }\n}\nTableComponent.MaterialComponent = MaterialTableComponent;\nexport { TableComponent };\n","import { Component, ViewChild } from '@angular/core';\nimport { MatStepper } from '@angular/material/stepper';\nimport Wizard from 'formiojs/Wizard';\nimport Displays from 'formiojs/displays/Displays';\nimport { MaterialNestedComponent } from './MaterialNestedComponent';\n\n@Component({\n selector: 'mat-formio-wizard',\n styles: [\n ':host .navigation-button-row { margin-top: 8px; }',\n ':host .navigation-button-row button { margin-right: 8px; }'\n ],\n template: `\n <mat-horizontal-stepper [linear]=\"isLinear\" #stepper>\n <mat-step *ngFor=\"let page of instance.pages\" [label]=\"page.component.title\">\n <ng-template #components></ng-template>\n <div class=\"navigation-button-row\">\n <button *ngIf=\"instance.hasButton('cancel')\" mat-raised-button (click)=\"resetWizard()\">Cancel</button>\n <button *ngIf=\"instance.hasButton('previous')\" mat-raised-button color=\"primary\" (click)=\"prevPage()\">Previous</button>\n <button *ngIf=\"instance.hasButton('next')\" mat-raised-button color=\"primary\" (click)=\"nextPage()\">Next</button>\n <button *ngIf=\"instance.hasButton('submit')\" mat-raised-button color=\"primary\" (click)=\"submit()\">Submit</button>\n </div>\n </mat-step>\n </mat-horizontal-stepper>`\n})\nexport class MaterialWizardComponent extends MaterialNestedComponent {\n @ViewChild('stepper', {static: true}) stepper: MatStepper;\n public isLinear = true;\n private prevNumOfPages = 0;\n\n setInstance(instance: any) {\n this.isLinear = (\n instance.options &&\n instance.options.breadcrumbSettings &&\n instance.options.breadcrumbSettings.clickable\n ) ? false : true;\n\n this.updatePages(instance);\n instance.on('pagesChanged', () => this.updatePages());\n\n super.setInstance(instance);\n }\n\n updatePages(instance = this.instance) {\n if (this.prevNumOfPages !== instance.pages.length) {\n instance.pages.forEach((page, pageIndex) => {\n page.viewContainer = () => {\n return this.viewContainers ? this.viewContainers[pageIndex] : null;\n };\n });\n this.prevNumOfPages = instance.pages.length;\n }\n }\n\n resetWizard() {\n this.instance.cancel();\n this.stepper.reset();\n }\n\n nextPage() {\n this.instance.nextPage().then(() => this.stepper.next());\n }\n\n prevPage() {\n this.instance.prevPage().then(() => this.stepper.previous());\n }\n\n submit() {\n this.instance.submit();\n }\n\n renderComponents() {\n if (this.instance.renderComponents && this.instance.pages) {\n this.instance.renderComponents(this.instance.pages.reduce((comps, page) => {\n return comps.concat(page.components);\n }, []));\n }\n }\n}\nWizard.MaterialComponent = MaterialWizardComponent;\nDisplays.addDisplay('wizard', Wizard);\nexport { Wizard };\n","declare var require: any\nconst Components = require('formiojs/components/Components').default;\nimport Component from 'formiojs/components/_classes/component/Component.js';\n\nimport { TextFieldComponent } from './textfield/textfield.component';\nimport { PasswordComponent } from './password/password.component';\nimport { EmailComponent } from './email/email.component';\nimport { UrlComponent } from './url/url.component';\nimport { PhoneNumberComponent } from './phonenumber/phonenumber.component';\nimport { NumberComponent } from './number/number.component';\nimport { CurrencyComponent } from './currency/currency.component';\nimport { DayComponent } from './day/day.component';\nimport { HiddenComponent } from './hidden/hidden.component';\nimport { HtmlComponent } from './html/html.component';\nimport { TagsComponent } from './tags/tags.component';\nimport { ButtonComponent } from './button/button.component';\nimport { TextAreaComponent } from './textarea/textarea.component';\nimport { PanelComponent } from './panel/panel.component';\nimport { ColumnsComponent } from './columns/columns.component';\nimport { ContainerComponent } from './container/container.component';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { DateTimeComponent } from './date/date.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { FieldsetComponent } from './fieldset/fieldset.component';\nimport { ContentComponent } from './content/content.component';\nimport { SignatureComponent } from './signature/signature.component';\nimport { SurveyComponent } from './survey/survey.component';\nimport { SelectBoxesComponent } from './selectboxes/selectboxes.component';\nimport { RadioComponent } from './radio/radio.component';\nimport { SelectComponent } from './select/select.component';\nimport { WellComponent } from './well/well.component';\nimport { DataGridComponent } from './datagrid/datagrid.component';\nimport { EditGridComponent } from './editgrid/editgrid.component';\nimport { TableComponent } from './table/table.component';\nimport { FormioComponent } from './MaterialComponent';\nimport { Wizard } from './formio.wizard';\nimport { TimeComponent } from './time/time.component'\n\n// Set the components.\nconst components: any = {\n textfield: TextFieldComponent,\n password: PasswordComponent,\n url: UrlComponent,\n checkbox: CheckboxComponent,\n email: EmailComponent,\n phoneNumber: PhoneNumberComponent,\n number: NumberComponent,\n currency: CurrencyComponent,\n day: DayComponent,\n hidden: HiddenComponent,\n htmlelement: HtmlComponent,\n tags: TagsComponent,\n textarea: TextAreaComponent,\n button: ButtonComponent,\n datetime: DateTimeComponent,\n panel: PanelComponent,\n columns: ColumnsComponent,\n tabs: TabsComponent,\n table: TableComponent,\n well: WellComponent,\n fieldset: FieldsetComponent,\n content: ContentComponent,\n signature: SignatureComponent,\n survey: SurveyComponent,\n selectboxes: SelectBoxesComponent,\n radio: RadioComponent,\n select: SelectComponent,\n container: ContainerComponent,\n datagrid: DataGridComponent,\n editgrid: EditGridComponent,\n unknown: FormioComponent,\n time: TimeComponent,\n wizard: Wizard\n};\n\nexport function getComponents() {\n for (const type of Object.keys(components)) {\n const CompClass = components[type];\n CompClass.prototype.render = (function () {\n if (this.materialComponent) {\n return this.materialComponent.renderComponents();\n }\n\n const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);\n if (!viewContainer) {\n return;\n }\n const factory = this.options.viewResolver.resolveComponentFactory(CompClass.MaterialComponent);\n const componentRef = viewContainer.createComponent(factory);\n (componentRef.instance as any).setInstance(this);\n });\n\n const setValue = CompClass.prototype.setValue;\n CompClass.prototype.setValue = (function (...args) {\n if (this.materialComponent) {\n this.materialComponent.setValue(args[0]);\n }\n return setValue.call(this, ...args);\n });\n\n components[type] = CompClass;\n }\n\n return components;\n}\n\nexport function registerComponent(name: string, CompClass: any) {\n\n class DummyComponent extends Component {};\n const formIOComp = (DummyComponent as any);\n\n formIOComp.MaterialComponent = CompClass;\n formIOComp.prototype.render = (function () {\n if (this.materialComponent) {\n return this.materialComponent;\n }\n const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);\n if (!viewContainer) {\n return;\n }\n const factory = this.options.viewResolver.resolveComponentFactory(formIOComp.MaterialComponent);\n const componentRef = viewContainer.createComponent(factory);\n (componentRef.instance as any).setInstance(this);\n });\n\n const setValue = formIOComp.prototype.setValue;\n formIOComp.prototype.setValue = (function (...args) {\n if (this.materialComponent) {\n this.materialComponent.setValue(args[0]);\n }\n return setValue.call(this, ...args);\n });\n\n Components.addComponent(name, formIOComp);\n\n}\n","declare var require: any\nconst Components = require('formiojs/components/Components').default;\nimport './components/Webform';\nimport { getComponents, registerComponent } from './components';\nconst Formio = require('formiojs/Formio').default;\nconst Form = require('formiojs/Form').default;\nconst Utils = require('formiojs/utils').default;\n\nfunction initRenderer() {\n Components.setComponents(getComponents());\n Formio.Components = Components;\n Formio.Templates = {};\n}\n\nexport { Form, Utils, Components, Formio, initRenderer, registerComponent };\n","import { Component, Optional, ChangeDetectorRef, ViewContainerRef, ViewChild, ComponentFactoryResolver, NgZone, Input, Output } from '@angular/core';\nimport { FormioAppConfig, FormioBaseComponent } from '@formio/angular';\nimport { Form } from './renderer';\nimport { get } from 'lodash';\n@Component({\n selector: 'mat-formio',\n styles: [\n `.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n }\n .alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n }\n .alert {\n position: relative;\n padding: .75rem 1.25rem;\n margin-bottom: 0.5rem;\n border: 1px solid transparent;\n border-radius: .25rem;\n }\n ::ng-deep mat-card {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n }\n `\n ],\n template: `\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\n <div *ngIf=\"!this.options?.disableAlerts\">\n <div *ngFor=\"let alert of alerts.alerts\"\n class=\"alert alert-{{ alert.type }}\"\n role=\"alert\"\n >\n {{ alert.message }}\n </div>\n </div>\n <div fxLayout=\"column\" fxLayoutGap=\"1em\">\n <ng-template #formio></ng-template>\n </div>\n `\n})\nexport class FormioComponent extends FormioBaseComponent {\n @ViewChild('formio', {static: true, read: ViewContainerRef}) formioViewContainer: ViewContainerRef;\n constructor(\n private resolver: ComponentFactoryResolver,\n private cd: ChangeDetectorRef,\n public ngZone: NgZone,\n @Optional() public config: FormioAppConfig\n ) {\n super(ngZone, config);\n }\n\n getRendererOptions(): any {\n const rendererOptions = super.getRendererOptions();\n return {...rendererOptions, validateOnInit: get(rendererOptions, 'validateOnInit', true) }\n }\n\n createRenderer() {\n const options = this.getRendererOptions();\n const flags = {\n validateOnInit: options.validateOnInit\n };\n options.viewResolver = this.resolver;\n const form = new Form();\n form._form = this.form;\n form.options = options;\n form.options.events = form.events;\n form.instance = form.create(this.form.display);\n form.instance.viewContainer = () => this.formioViewContainer;\n if (this.submission && this.submission.data) {\n form.instance.data = this.submission.data;\n }\n this.ngZone.run(() => form.instance.setForm(this.form, flags)\n .then(() => form.readyResolve(form.instance))\n .catch(() => form.readyReject())\n );\n return form.instance;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatListModule } from '@angular/material/list';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { NgxRenderMaterialFormsComponent } from './ngx-render-material-forms.component';\n\nimport { initRenderer } from './renderer';\nimport { FormioComponent } from './formio.component';\nimport { MaterialComponent } from './components/MaterialComponent';\nimport { MaterialNestedComponent } from './components/MaterialNestedComponent';\nimport { MaterialButtonComponent } from './components/button/button.component';\nimport { MaterialTextfieldComponent } from './components/textfield/textfield.component';\nimport { MaterialPasswordComponent } from './components/password/password.component';\nimport { MaterialUrlComponent } from './components/url/url.component';\nimport { MaterialEmailComponent } from './components/email/email.component';\nimport { MaterialPhoneNumberComponent } from './components/phonenumber/phonenumber.component';\nimport { MaterialNumberComponent } from './components/number/number.component';\nimport { MaterialHiddenComponent } from './components/hidden/hidden.component';\nimport { MaterialHtmlComponent } from './components/html/html.component';\nimport { MaterialTagsComponent } from './components/tags/tags.component';\nimport { MaterialCurrencyComponent } from './components/currency/currency.component';\nimport { MaterialDayComponent } from './components/day/day.component';\nimport { MaterialTextareaComponent } from './components/textarea/textarea.component';\nimport { MaterialColumnsComponent } from './components/columns/columns.component';\nimport { MaterialContainerComponent } from './components/container/container.component';\nimport { MaterialCheckboxComponent } from './components/checkbox/checkbox.component';\nimport { MaterialFieldsetComponent } from './components/fieldset/fieldset.component';\nimport { MaterialContentComponent } from './components/content/content.component';\nimport { MaterialSignatureComponent } from './components/signature/signature.component';\nimport { MaterialSurveyComponent } from './components/survey/survey.component';\nimport { MaterialSelectBoxesComponent } from './components/selectboxes/selectboxes.component';\nimport { MaterialRadioComponent } from './components/radio/radio.component';\nimport { MaterialSelectComponent } from './components/select/select.component';\nimport { MaterialPanelComponent } from './components/panel/panel.component';\nimport { MaterialTabsComponent } from './components/tabs/tabs.component';\nimport { MaterialTableComponent } from './components/table/table.component';\nimport { MaterialDateComponent } from './components/date/date.component';\nimport { MaterialDataGridComponent } from './components/datagrid/datagrid.component';\nimport { MaterialEditGridComponent } from './components/editgrid/editgrid.component';\nimport { MaterialWellComponent } from './components/well/well.component';\nimport { MaterialWizardComponent } from './components/formio.wizard';\nimport { MaterialTimeComponent } from './components/time/time.component';\nimport { MaterialCalendarComponent } from './components/calendar/calendar.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { FormioFormFieldComponent } from './components/formio-form-field/formio-form-field.component';\nimport { LabelComponent } from './components/label/label.component';\nimport { MaskDirective } from './directives/mask.directive';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nexport {\n FormioComponent,\n MaterialButtonComponent,\n MaterialTextfieldComponent,\n MaterialPasswordComponent,\n MaterialUrlComponent,\n MaterialEmailComponent,\n MaterialPhoneNumberComponent,\n MaterialNumberComponent,\n MaterialCurrencyComponent,\n MaterialDayComponent,\n MaterialHiddenComponent,\n MaterialHtmlComponent,\n MaterialTagsComponent,\n MaterialTableComponent,\n MaterialTextareaComponent,\n MaterialColumnsComponent,\n MaterialContainerComponent,\n MaterialDataGridComponent,\n MaterialEditGridComponent,\n MaterialPanelComponent,\n MaterialCheckboxComponent,\n MaterialFieldsetComponent,\n MaterialContentComponent,\n MaterialSignatureComponent,\n MaterialSurveyComponent,\n MaterialSelectBoxesComponent,\n MaterialRadioComponent,\n MaterialSelectComponent,\n MaterialTabsComponent,\n MaterialDateComponent,\n MaterialWellComponent,\n MaterialComponent,\n MaterialNestedComponent,\n MaterialTimeComponent\n};\n\n\n\n@NgModule({\n declarations: [\n NgxRenderMaterialFormsComponent,\n FormioComponent,\n MaterialButtonComponent,\n MaterialTextfieldComponent,\n MaterialPasswordComponent,\n MaterialUrlComponent,\n MaterialEmailComponent,\n MaterialPhoneNumberComponent,\n MaterialNumberComponent,\n MaterialCurrencyComponent,\n MaterialDayComponent,\n MaterialHiddenComponent,\n MaterialHtmlComponent,\n MaterialTagsComponent,\n MaterialTextareaComponent,\n MaterialColumnsComponent,\n MaterialContainerComponent,\n MaterialDataGridComponent,\n MaterialEditGridComponent,\n MaterialPanelComponent,\n MaterialCheckboxComponent,\n MaterialFieldsetComponent,\n MaterialContentComponent,\n MaterialSignatureComponent,\n MaterialSurveyComponent,\n MaterialSelectBoxesComponent,\n MaterialRadioComponent,\n MaterialSelectComponent,\n MaterialTabsComponent,\n MaterialTableComponent,\n MaterialDateComponent,\n MaterialWellComponent,\n MaterialWizardComponent,\n MaterialComponent,\n MaterialNestedComponent,\n MaterialTimeComponent,\n MaterialCalendarComponent,\n FormioFormFieldComponent,\n LabelComponent,\n MaskDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatButtonModule,\n MatInputModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatRadioModule,\n MatSelectModule,\n MatListModule,\n MatChipsModule,\n MatExpansionModule,\n MatButtonModule,\n MatTabsModule,\n MatTableModule,\n MatNativeDateModule,\n MatDatepickerModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MatIconModule,\n FlexLayoutModule,\n MatStepperModule,\n MatCardModule,\n DragDropModule,\n NgxMatSelectSearchModule\n ],\n exports: [\n NgxRenderMaterialFormsComponent,\n FormioComponent,\n MatInputModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatRadioModule,\n MatSelectModule,\n MatListModule,\n MatChipsModule,\n MatExpansionModule,\n MatButtonModule,\n MatCardModule,\n MatTabsModule,\n MatTableModule,\n MatNativeDateModule,\n MatDatepickerModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MatIconModule,\n DragDropModule,\n MatStepperModule,\n FlexLayoutModule,\n NgxMatSelectSearchModule\n ],\n entryComponents: [\n MaterialButtonComponent,\n MaterialTextfieldComponent,\n MaterialPasswordComponent,\n MaterialUrlComponent,\n MaterialEmailComponent,\n MaterialPhoneNumberComponent,\n MaterialNumberComponent,\n MaterialCurrencyComponent,\n MaterialDayComponent,\n MaterialHiddenComponent,\n MaterialHtmlComponent,\n MaterialTagsComponent,\n MaterialTextareaComponent,\n MaterialColumnsComponent,\n MaterialContainerComponent,\n MaterialDataGridComponent,\n MaterialEditGridComponent,\n MaterialPanelComponent,\n MaterialCheckboxComponent,\n MaterialFieldsetComponent,\n MaterialContentComponent,\n MaterialSignatureComponent,\n MaterialSurveyComponent,\n MaterialSelectBoxesComponent,\n MaterialRadioComponent,\n MaterialSelectComponent,\n MaterialTabsComponent,\n MaterialTableComponent,\n MaterialDateComponent,\n MaterialWellComponent,\n MaterialComponent,\n MaterialNestedComponent,\n MaterialTimeComponent,\n MaterialWizardComponent\n ]\n})\nexport class NgxRenderMaterialFormsModule { \n constructor() {\n initRenderer();\n }\n}\n\nexport * from './renderer';\n","/*\n * Public API Surface of ngx-render-material-forms\n */\n\nexport * from './lib/ngx-render-material-forms.service';\nexport * from './lib/ngx-render-material-forms.component';\nexport * from './lib/ngx-render-material-forms.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["FormioComponent","i1","i2","i3","i4","i4.LabelComponent","i6.FormioFormFieldComponent","i7.LabelComponent","i5","i6","i7.FormioFormFieldComponent","i8.LabelComponent","i5.FormioFormFieldComponent","i6.LabelComponent","i6.MaterialTimeComponent","i7","i8.MaterialCalendarComponent","i9.FormioFormFieldComponent","i10.LabelComponent","i11.MaskDirective","i8.FormioFormFieldComponent","i9.LabelComponent","Components","Component","get"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKa,6BAA6B,CAAA;AAExC,IAAA,WAAA,GAAA,GAAiB;;0HAFN,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCQY,+BAA+B,CAAA;AAE1C,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;4HALU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EARhC,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAV3C,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAC/B,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;ACPH,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;AACjC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAA;AACzB,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAC;AACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAA;AACxB,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC;AACvE,IAAA,IAAI,aAAa,EAAE;QACjB,aAAa,CAAC,KAAK,EAAE,CAAC;AACvB,KAAA;AACH,CAAC,CAAC;AACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAA;IACzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,KAAA;AACH,CAAC;;ACfD,wBAAe,CAAC,MAAK;AACnB,IAAA,MAAM,YAAY,GAAGA,iBAAe,CAAC,SAAS,CAAC,YAAY,CAAC;AAC5D,IAAAA,iBAAe,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,GAAG,IAAI,EAAA;QACvD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACvC,SAAA;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1C,KAAC,CAAC;IAEF,MAAM,CAAC,cAAc,CAACA,iBAAe,CAAC,SAAS,EAAE,UAAU,EAAE;AAC3D,QAAA,GAAG,CAAC,QAAQ,EAAA;AACV,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC9C,aAAA;SACF;AACF,KAAA,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAACA,iBAAe,CAAC,SAAS,EAAE,SAAS,EAAE;AAC1D,QAAA,GAAG,CAAC,OAAO,EAAA;AACT,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,aAAA;YACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5C,aAAA;SACF;AACF,KAAA,CAAC,CAAC;AACH,IAAA,OAAOA,iBAAe,CAAC;AACzB,CAAC,GAAG;;AC9BJ;AACM,MAAO,aAAc,SAAQ,WAAW,CAAA;AAa5C,IAAA,WAAA,CAAY,GAAG,IAAI,EAAA;AACjB,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;KACzE;IAZD,OAAO,eAAe,CAAC,OAAsB,EAAA;AAC3C,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;YAC7B,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,gBAAA,OAAO,CAAC,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC;AAC5C,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAMD,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;AACrD,QAAA,QAAQ,CAAC,iBAAiB,GAAG,CAAC,OAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAG,KAAK,KAAI;YAChF,IAAI,cAAc,GAAG,OAAO,CAAC;AAC7B,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1B,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,aAAA;AACI,iBAAA,IAAI,OAAO,EAAE;AAChB,gBAAA,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpC,aAAA;AAED,YAAA,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7E,IAAI,QAAQ,CAAC,eAAe,EAAE;AAC5B,gBAAA,QAAQ,CAAC,eAAe,CAAC,cAAc,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,CAAC;AAClE,aAAA;AACH,SAAC,CAAC;KACH;AACF;;MC7BY,iBAAiB,CAAA;IAI5B,WAAmB,CAAA,OAAmB,EAAS,GAAsB,EAAA;AAAlD,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AAAS,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAD5D,QAAA,IAAA,CAAA,OAAO,GAAkB,IAAI,aAAa,EAAE,CAAC;KACmB;AAEzE,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,aAAA;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACjG,SAAA;KACF;IAED,cAAc,GAAA;QACZ,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9D,IAAI,eAAe,KAAK,IAAI,EAAE;YAC5B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEjC,MAAM,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAC/C,IAAI,CAAC,QAAQ,EACb,EAAC,CAAC,GAAG,GAAG,eAAe,EAAC,EACxB,EAAC,CAAC,GAAG,GAAG,eAAe,EAAC,CACzB,CAAC;QAEF,IAAI,gBAAgB,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,eAAe,EAAE;AACrB,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;AAC9B,aAAA;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC1B,SAAA;KACF;IAED,aAAa,GAAA;QACX,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;YACnG,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1F,SAAA;KACF;AAED,IAAA,YAAY,CAAC,IAAI,EAAA;AACf,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KAC5B;AAED,IAAA,gBAAgB,MAAK;AAErB,IAAA,QAAQ,CAAC,YAAsB,EAAA;AAC7B,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAE5B,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzC,YAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AAClC,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE;AACzE,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;KACpD;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC3B;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;KAC9B;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;KACjD;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;AACR,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc;eACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;KAClD;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACvB,SAAA;KACF;AAED,IAAA,UAAU,CAAC,OAAO,EAAA;QAChB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AAC9C,YAAA,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AACxD,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;gBACvD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AACxD,aAAA;AACF,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;;AAE/D,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACvC,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC/E,aAAA;AACF,SAAA;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;;YAEd,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;;8GA/IU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,6MAFlB,uEAAuE,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEtE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,uEAAuE;iBAClF,CAAA;iIAEU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACc,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBACT,OAAO,EAAA,CAAA;sBAAf,KAAK;;AA+IRD,iBAAe,CAAC,iBAAiB,GAAG,iBAAiB;;AC5JrD,IAAY,cAOX,CAAA;AAPD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EAPW,cAAc,KAAd,cAAc,GAOzB,EAAA,CAAA,CAAA;;MCCY,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,8FCR3B,+VAQA,EAAA,MAAA,EAAA,CAAA,yHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDAa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BAEE,sBAAsB,EAAA,QAAA,EAAA,+VAAA,EAAA,MAAA,EAAA,CAAA,yHAAA,CAAA,EAAA,CAAA;8BAKvB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEDK,wBAAwB,CAAA;AALrC,IAAA,WAAA,GAAA;AAOS,QAAA,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;AAE9B,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AACvB,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AACvB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;KAgCpC;IA9BC,IACI,QAAQ,CAAC,QAAQ,EAAA;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,wBAAwB,GAAG,EAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC;AACrE,SAAA;KACF;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAKD,IAAA,QAAQ,CAAC,cAAyB,EAAA;AAChC,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpC,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC;QAC3D,MAAM,2BAA2B,GAAG,CAAC,cAAc;YACf,CAAC,cAAc,CAAC,MAAM;YACtB,CAAC,SAAS,CAAC,aAAa,CAAC;AAE7D,QAAA,IAAI,UAAU,IAAI,2BAA2B,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACvE,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;AACpD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;;qHArCU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,qRCRrC,2oEAkDA,EAAA,MAAA,EAAA,CAAA,qqBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD1Ca,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,2oEAAA,EAAA,MAAA,EAAA,CAAA,qqBAAA,CAAA,EAAA,CAAA;8BAOxB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAGF,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,UAAU,CAAA;gBAYR,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;;;AExBD,MAAM,kBAAkB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BjC,CAAC;AAMI,MAAO,0BAA2B,SAAQ,iBAAiB,CAAA;AAJjE,IAAA,WAAA,GAAA;;AAKS,QAAA,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;KAwD3B;IAtDC,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrE,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACxB,SAAA;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC1D,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,MAAM,EAAC,aAAa,EAAE,aAAa,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAE/D,IAAI,aAAa,IAAI,aAAa,EAAE;AAClC,YAAA,OAAO,CAAG,EAAA,IAAI,CAAC,aAAa,EAAE,CAAW,QAAA,EAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC;AACjF,SAAA;AAAM,aAAA,IAAI,aAAa,EAAE;AACxB,YAAA,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAA,WAAA,CAAa,CAAC;AAClD,SAAA;KACF;IAED,aAAa,GAAA;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QACnF,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;KACrC;IAED,sBAAsB,GAAA;QACpB,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;AAC9G,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;KAClE;IAED,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACzD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACI,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAEzC,YAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC1B,gBAAA,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC/D,oBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;AACpC,iBAAA;AACF,aAAA;AACF,SAAA;KACF;;uHAxDU,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wmCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;;AA2DD,kBAAkB,CAAC,iBAAiB,GAAG,0BAA0B;;AC3F3D,MAAO,yBAA0B,SAAQ,0BAA0B,CAAA;AAJzE,IAAA,WAAA,GAAA;;AAKS,QAAA,IAAS,CAAA,SAAA,GAAG,UAAU,CAAC;KAC/B;;sHAFY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wmCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;;AAID,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACHzD,MAAO,sBAAuB,SAAQ,0BAA0B,CAAA;AAJtE,IAAA,WAAA,GAAA;;AAKS,QAAA,IAAS,CAAA,SAAA,GAAG,OAAO,CAAC;KAC5B;;mHAFY,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wmCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;;AAID,cAAc,CAAC,iBAAiB,GAAG,sBAAsB;;ACHnD,MAAO,oBAAqB,SAAQ,0BAA0B,CAAA;AAJpE,IAAA,WAAA,GAAA;;AAKS,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAC1B;;iHAFY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAApB,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wmCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;;AAID,YAAY,CAAC,iBAAiB,GAAG,oBAAoB;;ACH/C,MAAO,4BAA6B,SAAQ,0BAA0B,CAAA;AAJ5E,IAAA,WAAA,GAAA;;AAKS,QAAA,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;KAC3B;;yHAFY,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAA5B,4BAA4B,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wmCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;;AAID,oBAAoB,CAAC,iBAAiB,GAAG,4BAA4B;;ACD/D,MAAO,uBAAwB,SAAQ,0BAA0B,CAAA;AAGrE,IAAA,WAAA,CAAmB,OAAmB,EAAS,GAAsB,EAAU,QAAmB,EAAA;AAChG,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AADH,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AAAS,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AAF3F,QAAA,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;KAIzB;IAED,eAAe,GAAA;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAExB,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,MAAK;AAC1D,gBAAA,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpD,gBAAA,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACpC,gBAAA,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/B,aAAC,CAAC,CAAC;AAEN,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC1B,YAAA,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACnF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAC1B,YAAA,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,SAAA;AACI,aAAA;AACH,YAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,SAAA;AAED,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,QAAQ,GAAA;AACN,QAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACtB;;oHA7CU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wmCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;;AAgDD,eAAe,CAAC,iBAAiB,GAAG,uBAAuB;;AC9CrD,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;AAJtE,IAAA,WAAA,GAAA;;AAKS,QAAA,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;KAM3B;IAJC,QAAQ,GAAA;QACN,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;KACvD;;sHANU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wmCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;;AASD,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACb/D,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,UAAS,IAAI,EAAA;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AACtD,CAAC,CAAC;AA8CI,MAAO,oBAAqB,SAAQ,iBAAiB,CAAA;AA5C3D,IAAA,WAAA,GAAA;;AA6CS,QAAA,IAAA,CAAA,UAAU,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,YAAY,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;KAyCrD;AAxCC,IAAA,WAAW,CAAC,QAAQ,EAAA;;QAEjB,IAAI,CAAC,UAAkB,CAAC,YAAY,GAAG,MAAO,GAAC,CAAC;QAChD,IAAI,CAAC,UAAkB,CAAC,eAAe,GAAG,MAAO,GAAC,CAAC;QACnD,IAAI,CAAC,YAAoB,CAAC,YAAY,GAAG,MAAO,GAAC,CAAC;QAClD,IAAI,CAAC,YAAoB,CAAC,eAAe,GAAG,MAAO,GAAC,CAAC;QACrD,IAAI,CAAC,WAAmB,CAAC,YAAY,GAAG,MAAO,GAAC,CAAC;QACjD,IAAI,CAAC,WAAmB,CAAC,eAAe,GAAG,MAAO,GAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,IAAI,EAAE,IAAI,CAAC,WAAW;SACvB,CAAC;AACF,QAAA,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACpC;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;AAC3B,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;KAChC;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvE,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KACpC;;iHA3CU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EA1CrB,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA5ChC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCT,EAAA,CAAA;iBACF,CAAA;;AA8CD,YAAY,CAAC,iBAAiB,GAAG,oBAAoB;;AC3F/C,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;;oHAAjD,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,gFAFxB,CAA+D,6DAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAE9D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAA+D,6DAAA,CAAA;iBAC1E,CAAA;;AAED,eAAe,CAAC,iBAAiB,GAAG,uBAAuB;;ACArD,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;IAG1D,eAAe,GAAA;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE;AAC3C,YAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,MAAK;AAClC,gBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;AACxE,aAAC,CAAC;AACH,SAAA;KACF;;kHAVU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,oLAFtB,CAAuB,qBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAEtB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAuB,qBAAA,CAAA;iBAClC,CAAA;8BAEwB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;AAWvB,aAAa,CAAC,iBAAiB,GAAG,qBAAqB;;ACkBjD,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AAhC5D,IAAA,WAAA,GAAA;;QAiCW,IAAA,CAAA,kBAAkB,GAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACvD,QAAA,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;KAiCrB;AAhCC,IAAA,GAAG,CAAC,KAAwB,EAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;AAED,IAAA,MAAM,CAAC,KAAK,EAAA;QACV,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5B,SAAA;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;KAC7G;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;QACD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACjB,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;;kHAlCU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EA9BtB,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhCjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA;iBACF,CAAA;;AAqCA,aAAqB,CAAC,iBAAiB,GAAG,qBAAqB;;AC1EhE,IAAY,aAOX,CAAA;AAPD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAPW,aAAa,KAAb,aAAa,GAOxB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,oBAKX,CAAA;AALD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,GAK/B,EAAA,CAAA,CAAA;;ACJK,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AAL9D,IAAA,WAAA,GAAA;;AAMS,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAChB,QAAA,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AACb,QAAA,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AACd,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KA6ExB;AA3EC,IAAA,IAAI,KAAK,GAAA;QACP,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,oBAAoB,CAAC,IAAI,CAAC;AAClC,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC;AACtC,QAAA,OAAO,KAAK,IAAI,oBAAoB,CAAC,OAAO,CAAC;KAC9C;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;YACnC,KAAK,aAAa,CAAC,OAAO;gBACxB,OAAO,oBAAoB,CAAC,OAAO,CAAC;YAEtC,KAAK,aAAa,CAAC,OAAO;gBACxB,OAAO,oBAAoB,CAAC,MAAM,CAAC;YAErC,KAAK,aAAa,CAAC,MAAM;gBACvB,OAAO,oBAAoB,CAAC,IAAI,CAAC;YAEnC,KAAK,aAAa,CAAC,SAAS;gBAC1B,OAAO,oBAAoB,CAAC,KAAK,CAAC;AAEpC,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACF;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,yBAAyB,GAAG,EAAE,CAAC;QAC/E,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAA,mBAAA,EAAsB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACtG,SAAS,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAqB,kBAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;AAClG,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,OAAO,CAAC,KAAK,EAAA;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AAED,IAAA,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED,IAAA,cAAc,CAAC,IAAY,EAAA;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KACpD;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC;AACxC,QAAA,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACrE,QAAA,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACnE,QAAA,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACpE,QAAA,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtE,QAAA,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACpE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7G,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;;oHAjFU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,gFCVpC,moBAcA,EAAA,MAAA,EAAA,CAAA,syBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDJa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,moBAAA,EAAA,MAAA,EAAA,CAAA,syBAAA,CAAA,EAAA,CAAA;;AAuF/B,eAAe,CAAC,iBAAiB,GAAG,uBAAuB;;AE3DrD,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;IAG9D,eAAe,GAAA;;QAEb,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KAC1D;IAED,QAAQ,GAAA;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC5D;;sHAVU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EA1B1B,QAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA7BrC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAErB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,CAAA;8BAGsB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;AAWvB,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACvCzD,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AAG5D,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,QAAQ,CAAC,aAAa,GAAG,MAAK;AAC5B,YAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7D,SAAC,CAAC;AACF,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;AAClC,SAAA;KACF;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;;oHAzBU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEC,gBAAgB,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAJzC,yCAAyC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAExC,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,yCAAyC;iBACpD,CAAA;8BAGuD,UAAU,EAAA,CAAA;sBAA/D,YAAY;gBAAC,IAAA,EAAA,CAAA,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAA;;;ACoBhD,MAAO,sBAAuB,SAAQ,uBAAuB,CAAA;;mHAAtD,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAxBvB,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAKU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA1BlC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;;AAMH,cAAc,CAAC,iBAAiB,GAAG,sBAAsB;;ACLnD,MAAO,wBAAyB,SAAQ,uBAAuB,CAAA;AArBrE,IAAA,WAAA,GAAA;;AAsBS,QAAA,IAAO,CAAA,OAAA,GAAG,GAAG,CAAC;AACd,QAAA,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;KAgBvB;AAfC,IAAA,WAAW,CAAC,QAAa,EAAA;QACvB,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AACjF,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,QAAQ,CAAC,aAAa,GAAG,CAAC,SAAS,KAAI;AACrC,YAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC5E,SAAC,CAAC;KACH;IAED,SAAS,CAAC,MAAM,EAAE,KAAK,EAAA;AACrB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC;AAC7E,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC;AAC9E,SAAA;KACF;;qHAjBU,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAnBzB,QAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;GAgBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,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,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBArBpC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,CAAA;;AAsBH,gBAAgB,CAAC,iBAAiB,GAAG,wBAAwB;;AClCvD,MAAO,0BAA2B,SAAQ,uBAAuB,CAAA;;uHAA1D,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAL3B,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;WAGD,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEE,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;AAGD,UAAA,CAAA;iBACV,CAAA;;AAED,kBAAkB,CAAC,iBAAiB,GAAG,0BAA0B;;ACK3D,MAAO,qBAAsB,SAAQ,uBAAuB,CAAA;AAChE,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,QAAQ,CAAC,aAAa,GAAG,CAAC,SAAS,KAAI;AACrC,YAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACzE,SAAC,CAAC;KACH;;kHANU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAVtB,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;GAQT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,EAAA,CAAA;iBACF,CAAA;;AASD,aAAa,CAAC,iBAAiB,GAAG,qBAAqB;;ACuCjD,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AA1D5D,IAAA,WAAA,GAAA;;AA2DS,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AACd,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,aAAa,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,aAAa,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;AACzC,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AACb,QAAA,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;AACf,QAAA,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;AACf,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;KA6DpC;AA3DC,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC9B,SAAA;KACF;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;QAChD,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACnC,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;;QAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,CAAA,EAAG,KAAK,IAAI,IAAI,CAAI,CAAA,EAAA,OAAO,CAAG,EAAA,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;QAC7F,IAAI,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;QACZ,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;AACR,SAAA;AACD,QAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,QAAA,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;;QAEzC,IAAI,CAAC,MAAM,GAAG,MAAM,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;KAChE;AAED,IAAA,qBAAqB,CAAC,UAAU,EAAA;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAClE;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;;kHAtEU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAxDtB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA1DjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDT,EAAA,CAAA;iBACF,CAAA;8BAQW,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;;AA+DR,aAAa,CAAC,iBAAiB,GAAG,qBAAqB;;AC1FjD,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;AA5ChE,IAAA,WAAA,GAAA;;AA0DY,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO,CAAC;KAoCrD;AAlCC,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;AAED,IAAA,cAAc,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IAED,cAAc,CAAC,KAAK,EAAE,OAAO,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC7B;AAED,IAAA,MAAM,CAAC,KAAK,EAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;AAED,IAAA,MAAM,CAAC,KAAK,EAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,cAAc,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,IAAI,EAAE,MAAM;SACb,CAAA;KACF;;sHAlDU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EA/B1B,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA5CrC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAYrB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,gKAAA,CAAA,EAAA,CAAA;8BAQkB,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM,CAAA;gBAER,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MC9CI,aAAa,CAAA;AAIxB,IAAA,WAAA,CAAoB,UAAwC,EAAA;AAAxC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAA8B;KAAI;AAGhE,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IACI,KAAK,CAAC,KAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;AAEO,IAAA,WAAW,CAAC,KAAoB,EAAA;QACtC,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,SAAA;AACI,aAAA;YACH,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AAC1C,SAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAU,EAAA;KACnB;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;AAED,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,iBAAiB,GAAA;KAChB;;0GAvCU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EATb,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA,EAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,aAAa,EAAC;AAC/D,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,aAAa,CAAC;AAC5C,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,eAAe,EAAC;AAC/D,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,mBAAmB,CAAC;AAC5C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;iBACF,CAAA;iGAEmB,MAAM,EAAA,CAAA;sBAAvB,KAAK;uBAAC,SAAS,CAAA;gBAWZ,KAAK,EAAA,CAAA;sBADR,KAAK;uBAAC,OAAO,CAAA;;;AC4CV,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AAjE5D,IAAA,WAAA,GAAA;;AAkES,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAgB,IAAI,WAAW,EAAE,CAAC;AAGhD,QAAA,IAAY,CAAA,YAAA,GAAQ,OAAO,CAAC;AAC5B,QAAA,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AAoIjC,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,KAAK,KAAI;YAC5B,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjC,aAAA;AACD,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAClE,SAAC,CAAA;AA8CD,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,CAAc,KAAa;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACpG,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,IAAI,OAAO;gBAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;AAC5F,SAAC,CAAA;KAiBF;AAxMC,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC;KACtE;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;KACrE;IAED,sBAAsB,CAAC,KAAK,GAAG,IAAI,EAAA;AACjC,QAAA,MAAM,MAAM,GAAG,CAAa,UAAA,EAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,EAAE,EAAE,CAAC;AAC9D,QAAA,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAEzC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAChE,SAAA;AACI,aAAA;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClC,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAK,EAAA;AAChB,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,YAAY,CAAC,IAAI,EAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;IAED,aAAa,GAAA;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC;AAE7E,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,gBAAgB,GAAA;QACd,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC/C,YAAA,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvC,cAAc,GAAG,IAAI,CAAC;AAEtB,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;AACtC,gBAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AAClC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,YAAA,OAAO,GAAG,cAAc;AACpB,kBAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7B,qBAAA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,qBAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,qBAAA,GAAG,EAAE;AACP,kBAAE,IAAI,CAAC,YAAY,CAAC;AACzB,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACvC,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAC7B,SAAA;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACvC,YAAA,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,YAAA,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;AAC7B,iBAAA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,iBAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBACjC,OAAO,CAAC,CAAC,CAAC;AACV,iBAAA,GAAG,EAAE,CAAC;AACV,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;AAED,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAEjF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AACpF,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE;AACjE,gBAAA,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;;AAGxE,gBAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC9D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;gBACrD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;AACtD,aAAA;AACF,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,IAAI,IAAI,IAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACjC,oBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AACnE,wBAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;AACxD,qBAAA;AAED,oBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AACnE,wBAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;AAC7B,wBAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC1E,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,SAAA;KACF;IAED,UAAU,GAAA;QACR,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvD,QAAA,OAAO,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;KACnE;AASD,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACnC,YAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC3G,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;KACpC;IAED,YAAY,GAAA;QACV,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,KAAK,CAAC,YAAY,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,KAAK,EAAA;QACf,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;AAC1E,QAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE9D,QAAA,IAAI,OAAO,EAAE;YACX,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACpD,SAAA;QACD,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACrD,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,eAAe,CAAC,CAAO,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACjB,YAAA,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACvB,YAAA,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAED,YAAY,CAAC,KAAoB,EAAE,CAAO,EAAA;QACxC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAClF,QAAA,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;KACrE;AAQD,IAAA,YAAY,CAAC,KAAK,EAAA;AAChB,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,IAAI,CAAC,cAAc;AACtF,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAA;AAChC,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,YAAA,OAAO,GAAG,UAAU,CAAC,CAAA,EAAG,OAAO,CAAA,MAAA,CAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC/D,SAAA;AAED,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,YAAA,OAAO,GAAG,UAAU,CAAC,GAAG,OAAO,CAAA,MAAA,CAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAClF,SAAA;AACD,QAAA,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC;KAC3B;;kHAjNU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EA5DtB,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjEjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,kBAAkB,EAAE,sBAAsB;AAC3C,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDT,EAAA,CAAA;iBACF,CAAA;8BAUwB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;AA2MvB,iBAAiB,CAAC,iBAAiB,GAAG,qBAAqB;;ACjQrD,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;IAC9D,QAAQ,GAAA;QACN,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC9D;;sHAHU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAhB1B,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAlBrC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,CAAA;;AAQH,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACNzD,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;;sHAAzD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAlB1B,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;GAeT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBApBrC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,CAAA;;AAIH,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACjBzD,MAAO,wBAAyB,SAAQ,iBAAiB,CAAA;;qHAAlD,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,iFAFzB,4CAA4C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAE3C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAA4C,0CAAA,CAAA;iBACvD,CAAA;;AAED,gBAAgB,CAAC,iBAAiB,GAAG,wBAAwB;;ACgCvD,MAAO,0BAA2B,SAAQ,iBAAiB,CAAA;IAG/D,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAC3D,SAAA;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;;uHAXU,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAnC3B,QAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBArCtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCT,EAAA,CAAA;iBACF,CAAA;8BAEyB,gBAAgB,EAAA,CAAA;sBAAvC,SAAS;uBAAC,WAAW,CAAA;;AAYxB,kBAAkB,CAAC,iBAAiB,GAAG,0BAA0B;;ACK3D,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AArD9D,IAAA,WAAA,GAAA;;AAsDS,QAAA,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;KA4C3B;AA3CC,IAAA,cAAc,CAAC,QAAQ,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;AAC5C,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;AACnC,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAChC;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/C,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AACnC,aAAA;AACF,SAAA;KACF;IAED,QAAQ,GAAA;QACN,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC1C,gBAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;AAC3D,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;AAC5B,YAAA,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC9C,gBAAA,IAAI,OAAO,EAAE;oBACX,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;AAC5C,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,aAAa,CAAC,QAAQ,EAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,CAAC;KAC1C;;oHA5CU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAnDtB,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBArDnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDT,IAAA,CAAA;iBACJ,CAAA;;AA+CD,eAAe,CAAC,iBAAiB,GAAG,uBAAuB;;ACrErD,MAAO,sBAAuB,SAAQ,iBAAiB,CAAA;IAC3D,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;KAC1D;AAED,IAAA,cAAc,CAAC,MAAM,EAAA;QACnB,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;KACjD;IAED,UAAU,CAAC,KAAK,EAAE,MAAM,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;AAC9B,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAC;KACJ;;mHApBU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EA7BvB,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,oSAAA,EAAA,MAAA,EAAA,CAAA,cAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA/BlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA;iBACF,CAAA;;AAuBD,cAAc,CAAC,iBAAiB,GAAG,sBAAsB;;AC1BnD,MAAO,4BAA6B,SAAQ,sBAAsB,CAAA;AA5BxE,IAAA,WAAA,GAAA;;AA6BS,QAAA,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAC;AAChB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KA8BzB;AA5BC,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;QACZ,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,QAAA,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;AAClC,YAAA,IAAI,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAC1C,aAAA;AACF,SAAA;KACF;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;KAC5B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;KAC/C;;yHA/BU,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EA1B7B,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,oSAAA,EAAA,MAAA,EAAA,CAAA,cAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBA5BxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA;iBACF,CAAA;;AAkCD,oBAAoB,CAAC,iBAAiB,GAAG,4BAA4B;;ACN/D,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AAjD9D,IAAA,WAAA,GAAA;;AA0DS,QAAA,IAAA,CAAA,gBAAgB,GAAgB,IAAI,WAAW,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,sBAAsB,GAAgB,IAAI,WAAW,EAAE,CAAC;AAGrD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;KA0DtC;IAxDC,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;AACR,SAAA;AACD,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;AAC/C,QAAA,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;YACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/F,YAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC7C,YAAA,OAAO,QAAQ,CAAC;AAClB,SAAC,CAAC,CAAA;KACH;IACD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;;AAID,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;KAC/B;IAED,QAAQ,GAAA;;;;QAKN,IAAI,CAAC,sBAAsB,CAAC,YAAY;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;;QAEL,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC3C,YAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;AACtC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9C,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;KAC3C;;;;;;;;IAUD,cAAc,CAAC,EAAO,EAAE,EAAO,EAAA;QAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KAC1B;;oHAtEU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EA/CxB,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,uCAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,kCAAA,EAAA,uBAAA,EAAA,mCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjDnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CT,EAAA,CAAA;iBACF,CAAA;8BAa6C,WAAW,EAAA,CAAA;sBAAtD,SAAS;gBAAC,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;AA4D5C,eAAe,CAAC,iBAAiB,GAAG,uBAAuB,CAAC;AAE5D;AACA,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC;AACpD,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,EAAA;IACpD,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE;QACzE,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjE,KAAA;AACH,CAAC;;ACvHK,MAAO,qBAAsB,SAAQ,uBAAuB,CAAA;;kHAArD,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAftB,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;GAYT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnB,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjBjC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,CAAA;;AAIH,aAAa,CAAC,iBAAiB,GAAG,qBAAqB;;AC+DjD,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;AA9EtE,IAAA,WAAA,GAAA;;AAkFE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAC;KAsFvC;AApFC,IAAA,cAAc,CAAC,MAAM,EAAA;AACnB,QAAA,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC;KACnC;AAED,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AACpC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,QAAQ,CAAC,aAAa,GAAG,CAAC,SAAS,KAAI;AACrC,YAAA,IAAI,aAAa,CAAC;AAClB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;AACpC,gBAAA,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrC,aAAA;YACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;gBACxC,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;AACtD,gBAAA,IACE,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBAChE,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EACxD;oBACA,aAAa,GAAG,SAAS,CAAC;AAC3B,iBAAA;AACH,aAAC,CAAC,CAAC;YAEH,OAAO,aAAa,GAAG,aAAa,GAAG,IAAI,CAAC;AAC9C,SAAC,CAAC;KACH;IAED,UAAU,GAAA;QACR,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;YAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/B,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAClD;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9D,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACxB,SAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAClD;AAED,IAAA,SAAS,CAAC,KAAuB,EAAA;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/E,QAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KAClD;AAED,IAAA,QAAQ,CAAC,KAAgB,EAAA;AACvB,QAAA,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE;YAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;QAED,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACtE,SAAA;AACD,QAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACvB;;sHAzFU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EA5E1B,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAKU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA9ErC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuET,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,CAAA;;AAgGH,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACjK/D,IAAK,YAMJ,CAAA;AAND,CAAA,UAAK,YAAY,EAAA;AACf,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EANI,YAAY,KAAZ,YAAY,GAMhB,EAAA,CAAA,CAAA,CAAA;AAAA,CAAC;AAEF;AACA,MAAM,QAAQ,GAAG,UAAS,GAAG,EAAA;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAA,IAAI,GAAG,CAAC;IACR,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC7B,IAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,GAAG,GAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,CAAC;AACX,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AAEA;AACA;AACA,iBAAiB,CAAC,SAAS,CAAC,mBAAmB,GAAG,YAAA;AAChD,IAAA,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC;AACtD,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI,EAAE,OAAO,EAAE,KAAA,GAAa,EAAE,EAAA;IAC5E,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAClD,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACH,CAAC,CAAC;AACF;AAEA,MAAM,wBAAwB,GAAG;AAC/B,IAAA,QAAQ,CAAE,iBAAyB,CAAC,qBAAqB,CAAC;AAC1D,IAAA,QAAQ,CAAC,CAAA;;;;;SAKF,CAAC;CACT,CAAC;AAEF,MAAM,qBAAqB,GAAG;AAC5B,IAAA,QAAQ,CAAE,iBAAyB,CAAC,kBAAkB,CAAC;AACvD,IAAA,QAAQ,CAAC,CAAA;;;;;;;;;;;;;;OAcJ,CAAC;CACP,CAAC;AAOI,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;AALtE,IAAA,WAAA,GAAA;;AAaS,QAAA,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;AAClB,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AACb,QAAA,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AACb,QAAA,IAAS,CAAA,SAAA,GAAG,YAAY,CAAC;KA+JjC;AA7JC,IAAA,cAAc,CAAC,OAAO,EAAA;QACpB,OAAO,CAAA;;;4EAGiE,OAAO,CAAA;;;gBAGnE,CAAC;KAChB;AAEC,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO;AACR,SAAA;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO;AACR,SAAA;AACD,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,EAAC,IAAI,EAAC,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC;AACjD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CACtC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAC3D,CAAC;AAEF,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACnB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,IACE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM;AACnC,aAAC,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACxF;AACA,YAAA,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AACpF,SAAA;AAED,QAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG;AAClC,aAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAClF;AACA,YAAA,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,8CAA8C,CAAC,CAAC;AACxG,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACjE,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC9B,OAAO,IAAI,CAAC,GAAG,CAAC;AAClB,SAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AACpH,QAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACvE,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACvE,gBAAA,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU;AACzC,gBAAA,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACvE,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACvE,gBAAA,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU;AACzC,gBAAA,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;QACD,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD,EAAE,CAAC,CAAC,CAAC;AACN,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAED,UAAU,GAAA;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACpC;IAED,OAAO,CAAC,GAAG,EAAE,KAAK,EAAA;AAChB,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;AAExC,QAAA,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO,EAAE;YACtC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAChB,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC;AAC/E,SAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAC,UAAsB,EAAE,KAAK,EAAE,KAAK,EAAA;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,OAAO,GAAY,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;gBAChG,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;AACzC,gBAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;AACxB,gBAAA,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU;AAC9C,gBAAA,OAAO,EAAE,SAAS,OAAO,CAAC,SAAS,EAAE,IAAI,EAAA;AACvC,oBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC1B,wBAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAGC,YAAU,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACpE,qBAAA;oBACD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;iBACzE;AACF,aAAA,CAAC,CAAC,CAAC;AACL,SAAA;KACF;AAED;;;;;AAKG;IACH,OAAO,CAAC,GAAG,EAAE,KAAK,EAAA;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,YAAA,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AACxC,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAChD,aAAA;AACF,SAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;IAED,cAAc,CAAC,OAAmB,EAAE,QAAQ,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YACtC,OAAO;AACR,SAAA;AACD,QAAA,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC5C;IAED,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAA2B,KAAI;YACjE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAe,EAAE,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzF,SAAC,CAAC,CAAC;KACJ;;sHAzKU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,kaC1FtC,gmEAmDA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,CAAA,CAAA;2FDuCa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,gmEAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,CAAA;8BAKV,aAAa,EAAA,CAAA;sBAAjC,SAAS;uBAAC,QAAQ,CAAA;gBACE,aAAa,EAAA,CAAA;sBAAjC,SAAS;uBAAC,QAAQ,CAAA;gBACG,WAAW,EAAA,CAAA;sBAAhC,YAAY;uBAAC,MAAM,CAAA;gBACG,KAAK,EAAA,CAAA;sBAA3B,YAAY;uBAAC,OAAO,CAAA;;AAuKvB,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;AE7NzD,MAAO,sBAAuB,SAAQ,uBAAuB,CAAA;AAEjE,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,QAAQ,CAAC,aAAa,GAAG,CAAC,SAAS,KAAI;AACrC,YAAA,OAAO,IAAI,CAAC,cAAc;gBACxB,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,WAAW,CAAC;AACnG,gBAAA,IAAI,CAAC;AACT,SAAC,CAAC;KACH;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;AACR,SAAA;QACD,MAAM,EAAC,SAAS,EAAE,aAAa,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC3D,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,EACE,cAAc,EAAE,SAAS,EAAA,GACrB,aAAa,IAAI,EAAC,CAAC,aAAa,GAAG,IAAI,EAAC,EAC7C,CAAA;KACF;;mHApBU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAjCvB,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApB,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBApClC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAElB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,yQAAA,CAAA,EAAA,CAAA;;AAwBH,cAAc,CAAC,iBAAiB,GAAG,sBAAsB;;ACrCnD,MAAO,uBAAwB,SAAQ,uBAAuB,CAAA;AAnBpE,IAAA,WAAA,GAAA;;AAqBS,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AACf,QAAA,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;KAkD5B;AAhDC,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CACd,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,OAAO,CAAC,kBAAkB;AACnC,YAAA,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,IAC3C,KAAK,GAAG,IAAI,CAAC;AAEjB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3B,QAAA,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAEtD,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;AAED,IAAA,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA;QAClC,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACjD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,KAAI;AACzC,gBAAA,IAAI,CAAC,aAAa,GAAG,MAAK;AACxB,oBAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AACrE,iBAAC,CAAC;AACJ,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7C,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACtB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;KAC1D;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC9D;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACxB;IAED,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,KAAI;gBACxE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,aAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACT,SAAA;KACF;;oHApDU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAbxB,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWkB,6BAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gDAAA,EAAA,yDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,OAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEjB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnBnC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAKnB,QAAA,EAAA,CAAA;;;;;;;;;;;8BAWkB,EAAA,MAAA,EAAA,CAAA,gDAAA,EAAA,yDAAA,CAAA,EAAA,CAAA;8BAGU,OAAO,EAAA,CAAA;sBAA5C,SAAS;gBAAC,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;;AAqDtC,MAAM,CAAC,iBAAiB,GAAG,uBAAuB,CAAC;AACnD,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;;AC/ErC,MAAMmB,YAAU,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC,OAAO,CAAC;AAqCrE;AACA,MAAM,UAAU,GAAQ;AACtB,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,OAAO,EAAEtB,iBAAe;AACxB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,MAAM;CACf,CAAC;SAEc,aAAa,GAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1C,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,YAAA;YAC5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;AAClD,aAAA;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC/F,IAAI,CAAC,aAAa,EAAE;gBAClB,OAAO;AACR,aAAA;AACD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC/F,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC3D,YAAA,YAAY,CAAC,QAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC9C,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,UAAU,GAAG,IAAI,EAAA;YAC/C,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,aAAA;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;AAEH,QAAA,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC9B,KAAA;AAED,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC;AAEe,SAAA,iBAAiB,CAAC,IAAY,EAAE,SAAc,EAAA;IAE5D,MAAM,uBAAuBuB,iBAAS,CAAA;AAAG,KAAA;IAAA,CAAC;IAC1C,MAAM,UAAU,GAAI,cAAsB,CAAC;AAE3C,IAAA,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACzC,IAAA,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,YAAA;QAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAC/B,SAAA;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/F,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;AACR,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAChG,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC3D,QAAA,YAAY,CAAC,QAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC/C,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,UAAU,GAAG,IAAI,EAAA;QAChD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,SAAA;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACtC,KAAC,CAAC,CAAC;AAEH,IAAAD,YAAU,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5C;;ACtIM,MAAA,UAAU,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC,QAAQ;AAG/D,MAAA,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ;AAC5C,MAAA,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,QAAQ;AACxC,MAAA,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ;AAEhD,SAAS,YAAY,GAAA;AACjB,IAAA,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;AAC1C,IAAA,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;AAC/B,IAAA,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;AAC1B;;ACiCM,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AAEtD,IAAA,WAAA,CACU,QAAkC,EAClC,EAAqB,EACtB,MAAc,EACF,MAAuB,EAAA;AAE1C,QAAA,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AALd,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA0B;AAClC,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AACtB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACF,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;KAG3C;IAED,kBAAkB,GAAA;AAChB,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;AACnD,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAW,eAAe,CAAA,EAAA,EAAE,cAAc,EAAEE,KAAG,CAAC,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAA,CAAA;KAC3F;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1C,QAAA,MAAM,KAAK,GAAG;YACZ,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC;AACF,QAAA,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AACrC,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;QAC7D,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,aAAA,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC5C,KAAK,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CACjC,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;;4GApCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACgB,gBAAgB,EAhBhD,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;GAaT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,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,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAzC3B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAyBZ,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA,CAAA;;;8BAQE,QAAQ;;yBALkD,mBAAmB,EAAA,CAAA;sBAA/E,SAAS;uBAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAC,CAAA;;;MCiMhD,4BAA4B,CAAA;AACvC,IAAA,WAAA,GAAA;AACE,QAAA,YAAY,EAAE,CAAC;KAChB;;yHAHU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,iBAnIrC,+BAA+B;QAC/B,eAAe;QACf,uBAAuB;QACvB,0BAA0B;QAC1B,yBAAyB;QACzB,oBAAoB;QACpB,sBAAsB;QACtB,4BAA4B;QAC5B,uBAAuB;QACvB,yBAAyB;QACzB,oBAAoB;QACpB,uBAAuB;QACvB,qBAAqB;QACrB,qBAAqB;QACrB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,yBAAyB;QACzB,yBAAyB;QACzB,sBAAsB;QACtB,yBAAyB;QACzB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,uBAAuB;QACvB,4BAA4B;QAC5B,sBAAsB;QACtB,uBAAuB;QACvB,qBAAqB;QACrB,sBAAsB;QACtB,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,yBAAyB;QACzB,wBAAwB;QACxB,cAAc;AACd,QAAA,aAAa,aAGb,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,wBAAwB;QACxB,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,cAAc;AACd,QAAA,wBAAwB,aAGxB,+BAA+B;QAC/B,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,aAAa;QACb,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,wBAAwB;QACxB,gBAAgB;QAChB,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAuCf,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAzFrC,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,wBAAwB;QACxB,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,cAAc;AACd,QAAA,wBAAwB,EAKxB,cAAc;QACd,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,aAAa;QACb,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,wBAAwB;QACxB,gBAAgB;QAChB,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,wBAAwB,CAAA,EAAA,CAAA,CAAA;2FAuCf,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBArIxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,+BAA+B;wBAC/B,eAAe;wBACf,uBAAuB;wBACvB,0BAA0B;wBAC1B,yBAAyB;wBACzB,oBAAoB;wBACpB,sBAAsB;wBACtB,4BAA4B;wBAC5B,uBAAuB;wBACvB,yBAAyB;wBACzB,oBAAoB;wBACpB,uBAAuB;wBACvB,qBAAqB;wBACrB,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,0BAA0B;wBAC1B,yBAAyB;wBACzB,yBAAyB;wBACzB,sBAAsB;wBACtB,yBAAyB;wBACzB,yBAAyB;wBACzB,wBAAwB;wBACxB,0BAA0B;wBAC1B,uBAAuB;wBACvB,4BAA4B;wBAC5B,sBAAsB;wBACtB,uBAAuB;wBACvB,qBAAqB;wBACrB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;wBACrB,uBAAuB;wBACvB,iBAAiB;wBACjB,uBAAuB;wBACvB,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,cAAc;wBACd,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,kBAAkB;wBAClB,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,mBAAmB;wBACnB,mBAAmB;wBACnB,wBAAwB;wBACxB,gBAAgB;wBAChB,aAAa;wBACb,gBAAgB;wBAChB,gBAAgB;wBAChB,aAAa;wBACb,cAAc;wBACd,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,+BAA+B;wBAC/B,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,kBAAkB;wBAClB,eAAe;wBACf,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,mBAAmB;wBACnB,mBAAmB;wBACnB,wBAAwB;wBACxB,gBAAgB;wBAChB,aAAa;wBACb,cAAc;wBACd,gBAAgB;wBAChB,gBAAgB;wBAChB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,eAAe,EAAE;wBACf,uBAAuB;wBACvB,0BAA0B;wBAC1B,yBAAyB;wBACzB,oBAAoB;wBACpB,sBAAsB;wBACtB,4BAA4B;wBAC5B,uBAAuB;wBACvB,yBAAyB;wBACzB,oBAAoB;wBACpB,uBAAuB;wBACvB,qBAAqB;wBACrB,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,0BAA0B;wBAC1B,yBAAyB;wBACzB,yBAAyB;wBACzB,sBAAsB;wBACtB,yBAAyB;wBACzB,yBAAyB;wBACzB,wBAAwB;wBACxB,0BAA0B;wBAC1B,uBAAuB;wBACvB,4BAA4B;wBAC5B,sBAAsB;wBACtB,uBAAuB;wBACvB,qBAAqB;wBACrB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;wBACrB,iBAAiB;wBACjB,uBAAuB;wBACvB,qBAAqB;wBACrB,uBAAuB;AACxB,qBAAA;iBACF,CAAA;;;AC9OD;;AAEG;;ACFH;;AAEG;;;;"}