monkey-front-core 0.0.602 → 0.0.604

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.
@@ -1 +1 @@
1
- {"version":3,"file":"monkey-front-core.mjs","sources":["../../../projects/monkey-front-core/src/lib/components/alerts/alerts.component.ts","../../../projects/monkey-front-core/src/lib/components/alerts/alerts.component.html","../../../projects/monkey-front-core/src/lib/components/alerts/alerts.module.ts","../../../projects/monkey-front-core/src/lib/core/utils/statics.ts","../../../projects/monkey-front-core/src/lib/core/utils/utils.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-timelapse.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.html","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-service.service.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-blob-secure.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-first-name.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-initials.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-support-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-address.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-beautify-json.ts","../../../projects/monkey-front-core/src/lib/core/injectors/index.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-group.ts","../../../projects/monkey-front-core/src/lib/core/utils/decorators-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validate-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validators.ts","../../../projects/monkey-front-core/src/lib/core/utils/index.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-unix-timelapse.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-number.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-size.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-tax.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-type-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-value.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-zipcode.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-text-truncate.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-truncate-qtd.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-currency-code.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-pipes.module.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.module.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.html","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.module.ts","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.component.ts","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.component.html","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.module.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-charts-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-download-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-upload-decorators.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-drag-drop.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-upper.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-alpha-numeric-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-number-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-popover-options.directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-popover.directive.ts","../../../projects/monkey-front-core/src/lib/store/actions/monkeyecx-storage.actions.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-seeder.reducer.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-storage.reducer.ts","../../../projects/monkey-front-core/src/lib/store/selectors/monkeyecx-storage.selector.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-model.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-links.model.ts","../../../projects/monkey-front-core/src/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons.service.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons-resolve-base.service.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons-resolve.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-error-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-i18n-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-logs-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-service-worker-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-security-console-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-maintenance-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-feature-toggle.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-gtm-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-alerts-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-token-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-security-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-tooltip-directive.ts","../../../projects/monkey-front-core/src/lib/core/services/alerts/monkeyecx-alerts.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-authentication.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-company.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-login.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-role.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.module.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-currency-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-http-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-others-errors-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.module.ts","../../../projects/monkey-front-core/src/lib/core/services/logged/monkeyecx-logged-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/pagination/monkeyecx-pagination.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-download-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/routes/monkeyecx-dicovery-params.service.ts","../../../projects/monkey-front-core/src/lib/core/services/schedules/monkeyecx-request-schedule.service.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store-base.service.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.actions.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.selector.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.service.ts","../../../projects/monkey-front-core/src/lib/core/services/l/l.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-by-program-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-loading.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-directives-module.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-error.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-header.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-interceptor.module.ts","../../../projects/monkey-front-core/src/lib/core/specification-search/monkeyecx-specification-search.ts","../../../projects/monkey-front-core/src/lib/monkey-front-core.module.ts","../../../projects/monkey-front-core/src/public-api.ts","../../../projects/monkey-front-core/src/monkey-front-core.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.scss']\n})\nexport class AlertsComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _img = '';\n\n _title = '';\n\n _message = '';\n\n _action: {\n href: string,\n label: string\n } | null = null;\n\n _hideClose = false;\n\n constructor(\n private modalService: MonkeyStyleGuideModalService\n ) {\n // not to do\n }\n\n ngOnInit() {\n const { config } = this;\n this._img = config?.data?.img;\n this._title = config?.data?.title;\n this._message = config?.data?.message;\n this._action = config?.data?.action;\n this._hideClose = config?.data?.hideClose;\n }\n\n onClose() {\n this.modalService.close(this.modalRef);\n }\n\n onAction() {\n const { _action } = this;\n if (_action?.href) {\n window.location.href = _action?.href;\n }\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"alert-header\">\n <img [src]=\"_img\">\n </div>\n <div class=\"alert-body\">\n <span class=\"title\">\n {{ _title | translate }}\n </span>\n <span class=\"message\">\n {{ _message | translate }}\n </span>\n </div>\n <div class=\"alert-footer\">\n <ng-container *ngIf=\"!_hideClose\">\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'BUTTONS.CLOSE' | translate }}\n </monkey-button>\n </ng-container>\n \n <ng-container *ngIf=\"_action\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onAction()\">\n {{ _action.label | translate }}\n </monkey-button>\n </ng-container>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyModalModule } from 'monkey-style-guide';\nimport { AlertsComponent } from './alerts.component';\n\n@NgModule({\n declarations: [AlertsComponent],\n imports: [CommonModule, MonkeyButtonModule, MonkeyModalModule, TranslateModule.forChild()],\n exports: [AlertsComponent]\n})\nexport class AlertsModule {}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-shadow */\nexport enum MonkeyEcxQueueEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxDownloadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxUploadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsTokenNotMandatory {\n Assets = 'assets/',\n MonkeyEcx = '/monkeyecx',\n ViaCep = 'viacep.com.br/'\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsHeaderNotMandatory {\n Assets = '/assets',\n PayablesUpload = 'payables-upload',\n PictureUser = '/user-pictures',\n Documents = 'documents/',\n BuyerTaxFile = '/buyer-tax-file',\n ViaCep = 'viacep.com.br/'\n}\n\nexport enum CountryMasks {\n CPF = '000.000.000-00',\n CNPJ = '00.000.000/0000-00',\n RUT1 = '0000000-A',\n RUT2 = '00000000-A',\n RFC1 = 'AAAA000000AA0',\n RFC2 = 'AAA000000AA0'\n}\n","/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-useless-escape */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-cond-assign */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-redeclare */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { CountryMasks } from './statics';\n\n/* eslint-disable block-scoped-var */\nexport class MonkeyEcxUtils {\n static persistNullEmptyUndefined(tp: any): boolean {\n return tp !== null && tp !== undefined && tp !== '';\n }\n\n static getDocumentType(doc: string, country?: string) {\n if (!doc) return '';\n if (country === 'cl') return 'RUT';\n if (country === 'mx') return 'RFC';\n if (country === 'us') return 'EIN';\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\n }\n\n static getDocumentMask(type: string, country = '') {\n return {\n BR: {\n CPF: CountryMasks.CPF,\n CNPJ: CountryMasks.CNPJ,\n '': `${CountryMasks.CPF}||${CountryMasks.CNPJ}`\n },\n CL: {\n CPF: CountryMasks.RUT1,\n CNPJ: CountryMasks.RUT2,\n '': `${CountryMasks.RUT1}||${CountryMasks.RUT2}`\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2,\n '': `${CountryMasks.RFC1}||${CountryMasks.RFC2}`\n }\n }[country.toUpperCase()]?.[type];\n }\n\n static getDocumentPlaceholder(type: string, country = '') {\n return {\n BR: {\n CPF: '000.000.000-XX',\n CNPJ: '00.000.000/0000-00'\n },\n CL: {\n CPF: '0000000-A',\n CNPJ: '0000000-A'\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2\n }\n }[country.toUpperCase()]?.[type];\n }\n\n static formatDocumentWithMask(doc: string, withType?: boolean, country?: string): string {\n if (!doc) return doc;\n let formated: string = '';\n if (country === 'cl') {\n formated = doc.replace(/^(\\d{1,2})(\\d{3})(\\d{3})(\\w{1})$/, '$1.$2.$3-$4');\n return `${formated}`;\n }\n if (country === 'us') {\n return doc;\n }\n if (doc.length === 14) {\n formated = doc\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\n .replace(/(\\d{4})(\\d)/, '$1-$2');\n } else {\n formated = doc\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n }\n\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\n }\n\n static cutFirstLastName(value: string, tp: string = 'first') {\n const split = value?.trim()?.split(' ');\n\n if (tp === 'first') return split[0];\n return split?.splice(1, split.length)?.join(' ');\n }\n\n static isCPFCNPJValid(document: any): boolean {\n document = document.replace(/[^\\d]/g, '');\n\n const handled = document.replace(new RegExp(document.charAt(0), 'g'), '');\n if (!handled) return false;\n\n if (document.length === 11) {\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]) ;\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]) ;\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n return true;\n }\n if (document.length === 14 || /0{14}/.test(document)) {\n const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]) ;\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]) ;\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n }\n return false;\n }\n\n public static isValidRUT(document: string): boolean {\n if (!document || document.trim().length < 3) return false;\n const documentHandled = document.replace(/[^0-9kK]/g, '');\n\n if (documentHandled.length < 3) return false;\n\n const calcDv = (rut: string) => {\n const value: string = `${rut}`;\n let sum = 0;\n let mult = 2;\n\n for (let i = 1; i <= value.length; i++) {\n const index = mult * Number(value.charAt(value.length - i));\n\n sum += index;\n\n if (mult < 7) {\n mult += 1;\n } else {\n mult = 2;\n }\n }\n\n const dvEsperado = 11 - (sum % 11);\n if (dvEsperado === 10) return 'K';\n if (dvEsperado === 11) return '0';\n return `${dvEsperado}`;\n };\n\n const num = documentHandled.slice(0, -1);\n const dgv = documentHandled.slice(-1).toUpperCase();\n\n const dvCalc = calcDv(num);\n return dvCalc === dgv;\n }\n\n public static isValidRFC(document: string) {\n const RFC_REGEXP = /^([A-ZÑ\\x26]{3,4})([0-9]{6})([A-Z0-9]{3})$/;\n const SPECIAL_CASES = {\n XEXX010101000: 'foreign',\n XAXX010101000: 'generic'\n };\n const FORBIDDEN_WORDS = [\n 'BUEI',\n 'BUEY',\n 'CACA',\n 'CACO',\n 'CAGA',\n 'CAGO',\n 'CAKA',\n 'CAKO',\n 'COGE',\n 'COJA',\n 'COJE',\n 'COJI',\n 'COJO',\n 'CULO',\n 'FETO',\n 'GUEY',\n 'JOTO',\n 'KACA',\n 'KACO',\n 'KAGA',\n 'KAGO',\n 'KOGE',\n 'KOJO',\n 'KAKA',\n 'KULO',\n 'MAME',\n 'MAMO',\n 'MEAR',\n 'MEAS',\n 'MEON',\n 'MION',\n 'MOCO',\n 'MULA',\n 'PEDA',\n 'PEDO',\n 'PENE',\n 'PUTA',\n 'PUTO',\n 'QULO',\n 'RATA',\n 'RUIN'\n ];\n\n const VALUES_MAP = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 18,\n J: 19,\n K: 20,\n L: 21,\n M: 22,\n N: 23,\n '&': 24,\n O: 25,\n P: 26,\n Q: 27,\n R: 28,\n S: 29,\n T: 30,\n U: 31,\n V: 32,\n W: 33,\n X: 34,\n Y: 35,\n Z: 36,\n ' ': 37,\n Ñ: 38\n };\n\n const getScore = (doc: string) => {\n return doc.split('').reverse().reduce((sum, char, i) => {\n const index = i + 2;\n const value = VALUES_MAP[char] || 0;\n return sum + value * index;\n }, 0);\n };\n\n const parseInput = (doc: string) => {\n return String(doc)\n .trim()\n .toUpperCase()\n .replace(/[^0-9A-ZÑ\\x26]/g, '');\n };\n\n const validateDate = (doc: string) => {\n const dateStr = doc.slice(0, -3).slice(-6);\n const year = dateStr.slice(0, 2);\n const month = dateStr.slice(2, 4);\n const day = dateStr.slice(4, 6);\n const date = new Date(`20${year}-${month}-${day}`);\n // eslint-disable-next-line no-restricted-globals\n return !isNaN(date.getTime());\n };\n\n const validateVerificationDigit = (doc: string) => {\n const digit = doc.slice(-1);\n const rfc = doc.length === 12 ? ` ${doc}` : doc;\n const base = rfc.slice(0, -1);\n const score = getScore(base);\n const mod = (11000 - score) % 11;\n if (mod === 11) return digit === '0';\n if (mod === 10) return digit === 'A';\n return String(mod) === digit;\n };\n\n const isSpecialCase = (doc: string) => { return doc in SPECIAL_CASES; };\n\n const hasForbiddenWords = (doc: string) => {\n const prefix = (doc || '').slice(0, 4);\n return FORBIDDEN_WORDS.includes(prefix);\n };\n\n try {\n const input = parseInput(document);\n\n if (isSpecialCase(input)) return false;\n const hasValidFormat = RFC_REGEXP.test(input);\n if (!hasValidFormat) return false;\n const hasValidDate = validateDate(input);\n if (!hasValidDate) return false;\n const hasValidDigit = validateVerificationDigit(input);\n if (!hasValidDigit) return false;\n if (hasForbiddenWords(input)) return false;\n\n return true;\n } catch (e) {\n // not to do\n }\n\n return false;\n }\n\n static isValidUrl(txt: string): boolean {\n const regex = /(https?:\\/\\/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])(:?\\d*)\\/?([a-z_\\\\/0-9\\-#.]*)\\??([a-z_\\\\/0-9\\-#=&]*)/g;\n return regex.test(txt);\n }\n\n static isValidZipCode(zipCode: string, country?: string): boolean {\n const length = {\n br: 8,\n cl: 7,\n mx: 5\n }[country || 'br'];\n\n return `${this.handleOnlyNumbers(zipCode)}`.length === length;\n }\n\n static isValidEmail(email: string) {\n return /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/.test(email || '');\n }\n\n static getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomString: string = new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet?.length));\n })\n .join('');\n return randomString;\n }\n\n static handleOnlyNumbers(value: any) {\n if (!value) return null;\n return value.replace(new RegExp(/[^0-9]/g), '');\n }\n\n static handleOnlyAlphaNumeric(value: any) {\n if (!value) return '';\n return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');\n }\n\n static capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n }\n\n static formatZipCode(zipCode: string): string {\n if (!zipCode) return zipCode;\n const formated: string = zipCode\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n\n return `${formated}`;\n }\n\n static formatFileSize(size: number): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let l = 0;\n while (size >= 1024 && ++l) {\n size /= 1024;\n }\n return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;\n }\n\n static sufflue(data: any[]): any[] {\n for (let i = data.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * i);\n const temp = data[i];\n data[i] = data[j];\n data[j] = temp;\n }\n return data;\n }\n\n static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\n function blobToFile(theBlob: any, fileName: string) {\n const b = theBlob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n return b;\n }\n\n let file: any;\n if (!(navigator as any).msSaveBlob) {\n file = new File([theBlob], fileName, {\n type: fileType,\n });\n } else {\n file = new Blob([theBlob], {\n type: fileType,\n });\n file = blobToFile(file, fileName);\n }\n return file;\n }\n\n static truncate(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n\n static isLocalhost() {\n const { href } = window?.location;\n if (!href) return false;\n return href?.search('localhost') >= 0;\n }\n\n static isSameOrigin(frontend: string): boolean {\n const initialPath: string = window.location.origin;\n return (initialPath || '') === frontend;\n }\n\n static replaceVariables(data: string, obj: any) {\n let handled = data;\n Object.entries(obj).forEach(([key, value]) => {\n handled = handled.replace(new RegExp(`{${key}}`, 'g'), `${value}`);\n });\n return handled;\n }\n\n static trimValuesToSave(obj: any, fields: string[]) {\n let ret = obj;\n const grouped = fields.join('#');\n Object.entries(obj).map(([key, value]) => {\n if (grouped.includes(key)) {\n ret = {\n ...ret,\n [key]: `${value}`.trim()\n };\n }\n return null;\n });\n\n return ret;\n }\n}\n\nexport type MonkeyEcxLogsErrorTypes = 'ok' |\n 'debug' |\n 'info' |\n 'notice' |\n 'warn' |\n 'error' |\n 'critical' |\n 'alert' |\n 'emerg';\n\nexport type MonkeyEcxLogParams = {\n message: string;\n context?: any;\n error?: Error;\n type?: MonkeyEcxLogsErrorTypes;\n}\n\nexport class MonkeyEcxLogs {\n static log(params: MonkeyEcxLogParams) {\n try {\n const { type, message, context, error } = params;\n datadogLogs.logger[type || 'error'](message, context, error);\n } catch (e) {\n // not to do\n }\n }\n}\n\nexport function bufferToBase64(buffer: ArrayBuffer): string {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\nexport function base64ToBuffer(base64: string): ArrayBuffer {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateTimelapse'\n})\nexport class MonkeyEcxFormatDateTimelapsePipe implements PipeTransform {\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (!useUtc) stillUtc = moment.default(date).toDate();\n if (date.toString().indexOf(':') <= -1) {\n if (typeof date === 'string') {\n stillUtc = date;\n showTime = false;\n }\n }\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\n }\n}\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\nimport { MonkeyEcxConfigBootstrap } from '../../core/interfaces';\n\n@Component({\n selector: 'monkeyecx-closed-to-maintenance',\n templateUrl: './closed-to-maintenance.component.html',\n styleUrls: ['./closed-to-maintenance.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ClosedToMaintenanceComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _configBootstrap: MonkeyEcxConfigBootstrap | null = null;\n\n ngOnInit() {\n this._configBootstrap = this.config?.data;\n }\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-1' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-2' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-3' | translate }}\n {{ _configBootstrap?.maintenance?.endDate | monkeyecxFormatDateTimelapse: true }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-4' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.BUTTONS.UPDATE-MAINTENANCE' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","/* eslint-disable max-len */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestDownload } from '../interfaces/request-download/monkeyecx-request-download';\nimport { MonkeyEcxRequestQueue } from '../interfaces/request-queue/monkeyecx-request-queue';\nimport { MonkeyEcxRequestUpload } from '../interfaces/request-upload/monkeyecx-request-upload';\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class MonkeyEcxHandlingService {\n private monkeyecxServiceCredentials: MonkeyEcxServiceCredentials | null = null;\n\n private monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = null;\n\n private monkeyecxRequestDownload: MonkeyEcxRequestDownload | null = null;\n\n private monkeyecxRequestUpload: MonkeyEcxRequestUpload | null = null;\n\n public clearAll() {\n this.monkeyecxServiceCredentials = null;\n this.monkeyecxRequestQueue = null;\n this.monkeyecxRequestDownload = null;\n this.monkeyecxRequestUpload = null;\n }\n\n public setMonkeyEcxServiceCredentials(param: MonkeyEcxServiceCredentials) {\n this.monkeyecxServiceCredentials = param;\n }\n\n public getMonkeyEcxServiceCredentials(): MonkeyEcxServiceCredentials | null {\n return this.monkeyecxServiceCredentials;\n }\n\n public setMonkeyEcxRequestQueue(queue: MonkeyEcxRequestQueue) {\n this.monkeyecxRequestQueue = queue;\n }\n\n public getMonkeyEcxRequestQueue(): MonkeyEcxRequestQueue | null {\n return this.monkeyecxRequestQueue;\n }\n\n public setMonkeyEcxRequestDownload(download: MonkeyEcxRequestDownload) {\n this.monkeyecxRequestDownload = download;\n }\n\n public getMonkeyEcxRequestDownload(): MonkeyEcxRequestDownload | null {\n return this.monkeyecxRequestDownload;\n }\n\n public setMonkeyEcxRequestUpload(upload: MonkeyEcxRequestUpload) {\n this.monkeyecxRequestUpload = upload;\n }\n\n public getMonkeyEcxRequestUpload(): MonkeyEcxRequestUpload | null {\n return this.monkeyecxRequestUpload;\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from './monkeyecx-handling.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxService {\n constructor(\n protected http: HttpClient,\n public monkeyecxHandlingService: MonkeyEcxHandlingService\n ) {\n // not to do\n }\n\n private handlelize(params: any): any {\n if (!params) {\n return params;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const field of [\n 'createdAt',\n 'createUserId',\n 'updatedAt',\n 'lastUserId',\n '_links',\n 'governmentIdType',\n 'governmentIdMask',\n 'screenType',\n 'screenTab'\n ]) {\n delete params[field];\n }\n return params;\n }\n\n public get<T>(url: string, options?: any): Observable<any> {\n return this.http.get<T>(url, options);\n }\n\n public post<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.post<T>(url, params, options);\n }\n\n public put<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.put<T>(\n url,\n this.handlelize({\n ...params\n }),\n options\n );\n }\n\n public patch<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.patch<T>(\n url,\n this.handlelize({\n ...params\n }),\n options\n );\n }\n\n public delete<T>(url: string, params?: any): Observable<any> {\n return this.http.delete<T>(url, params);\n }\n\n public download<T>(url: string, options?: any, filename?: string) {\n this.http.get<T>(url, options).subscribe(\n (resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n return {\n filename,\n blob\n };\n },\n (err: HttpErrorResponse) => {\n throwError(err);\n }\n );\n }\n\n public downloadOb<T>(url: string, options?: any, filename?: string): Observable<any> {\n return this.http.get<any>(url, options).pipe(\n map((resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n return {\n filename,\n blob\n };\n }),\n catchError((err: any) => {\n return throwError(err);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxService } from '../services/monkeyecx-service.service';\n\n@Pipe({\n name: 'monkeyecxBlobSecure'\n})\nexport class MonkeyEcxBlobSecurePipe implements PipeTransform {\n constructor(private monkeyecxService: MonkeyEcxService, private sanitizer: DomSanitizer) {\n // not to do\n }\n\n transform(url: string): Observable<SafeUrl> {\n return this.monkeyecxService.get(url, { responseType: 'blob' }).pipe(\n map((val: any) => {\n return this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val));\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayFirstName'\n})\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n return MonkeyEcxUtils.cutFirstLastName(name);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayInitials'\n})\nexport class MonkeyEcxDisplayInitialsPipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n const first = MonkeyEcxUtils.cutFirstLastName(name, 'first');\n const second = MonkeyEcxUtils.cutFirstLastName(name, 'last');\n return `${first?.charAt(0)} ${second?.charAt(0)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxConfigSupportPhone } from '../interfaces';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxDisplaySupportPhone'\n})\nexport class MonkeyEcxDisplaySupportPhone implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(phones: MonkeyEcxConfigSupportPhone[]) {\n return phones.map((phone: MonkeyEcxConfigSupportPhone) => {\n const isOnline = this.isPhoneOnline(phone);\n\n return {\n ...phone,\n isOnline,\n color: isOnline ? '#00875A' : '#FA3838'\n };\n });\n }\n\n isPhoneOnline(phone: any): boolean {\n const start = moment.default().startOf('day').add(phone?.startHour, 'hours').format('YYYY-MM-DD HH:mm');\n const end = moment.default().startOf('day').add(phone?.endHour, 'hours').format('YYYY-MM-DD HH:mm');\n\n return moment.default().isSameOrAfter(start) && moment.default().isSameOrBefore(end);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatAddress',\n})\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\n transform({\n zipCode,\n address,\n neighborhood,\n city,\n state,\n }: {\n zipCode: string;\n address: string;\n neighborhood: string;\n city: string;\n state: string;\n country: string;\n }): string {\n return [address, neighborhood, zipCode, city, state]\n .filter((_: string) => {\n return _;\n })\n .join(', ');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatBeautifyJSON'\n})\nexport class MonkeyEcxFormatBeaufityJSONPipe implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(value: any) {\n const jsonLine = /^( *)(\"[\\w]+\": )?(\"[^\"]*\"|[\\w.+-]*)?([,[{])?$/gm;\n\n const replacer = (match, pIndent, pKey, pVal, pEnd) => {\n const key = '<span class=\"json-key\" style=\"color: brown\">';\n const val = '<span class=\"json-value\" style=\"color: navy\">';\n const str = '<span class=\"json-string\" style=\"color: olive\">';\n let r = pIndent || '';\n if (pKey) {\n r = `${r + key + pKey.replace(/[\": ]/g, '')}</span>: `;\n }\n if (pVal) {\n r = `${r + (pVal[0] === '\"' ? str : val) + pVal}</span>`;\n }\n return r + (pEnd || '');\n };\n\n return JSON.stringify(value, null, 3)\n .replace(/&/g, '&amp;')\n .replace(/\\\\\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(jsonLine, replacer);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const MECX_TIMEZONEOFFSET = new InjectionToken<string>('');\nexport const MECX_DATE_FORMAT = new InjectionToken<string>('');\nexport const MECX_LANG = new InjectionToken<string>('');\nexport const MECX_ENV = new InjectionToken<string>('');\nexport const MECX_ALPHA = new InjectionToken<string>('');\nexport const MECX_BETA = new InjectionToken<string>('');\n","import { CurrencyPipe } from '@angular/common';\nimport { DEFAULT_CURRENCY_CODE, Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\nimport { MECX_LANG } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatCurrency'\n})\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\n constructor(\n private currencyPipe: CurrencyPipe,\n @Inject(DEFAULT_CURRENCY_CODE) private defaultCurencyCode: InjectionToken<string>,\n @Inject(MECX_LANG) private lang: InjectionToken<string>\n ) {\n // not to do\n }\n\n transform(value: any, symbol = 'symbol') {\n const currency = this.defaultCurencyCode.toString();\n const locale = this.lang.toString();\n\n try {\n if (currency === 'CLP') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '1.0-0', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n if (currency === 'MXN') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n return this.currencyPipe.transform(value, currency, symbol, '', locale);\n } catch (e) {\n // not to do\n }\n return value;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\nimport { MECX_DATE_FORMAT, MECX_TIMEZONEOFFSET } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatDate'\n})\nexport class MonkeyEcxFormatDatePipe implements PipeTransform {\n constructor(\n private dt: DatePipe,\n @Inject(MECX_DATE_FORMAT) private dateFormat: InjectionToken<string>,\n @Inject(MECX_TIMEZONEOFFSET) private timezone: InjectionToken<string>\n ) {\n // not to do\n }\n\n transform(date: any | Date, format = this.dateFormat.toString()) {\n return this.dt.transform(date, format, this.timezone.toString());\n }\n}\n","import { Injector, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateGroup',\n})\nexport class MonkeyEcxFormatDateGroupPipe implements PipeTransform {\n private lang = 'pt-BR';\n\n constructor(private injector: Injector) {\n const translateService = this.injector.get(TranslateService);\n this.lang = translateService.getDefaultLang();\n }\n\n private format(date: string | Date) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (date.toString()?.indexOf(':') <= -1) {\n stillUtc = date;\n }\n const formatFrom = 'YYYY/MM/DD';\n const fmt = moment.default(stillUtc, formatFrom).locale(this.lang);\n const dayFormated = fmt.format('DD/');\n const monthFormated = MonkeyEcxUtils.capitalize(fmt.format('MMMM'));\n const yearFormated = fmt.format('YYYY');\n return `${`${dayFormated}${monthFormated}`.substring(0, 6)}, ${yearFormated}`;\n }\n\n transform(obj: any): string {\n if (!obj || !obj?.start || !obj?.end) return '';\n const { start, end } = obj;\n const formatedStart = this.format(start);\n const formatedEnd = this.format(end);\n return `${formatedStart} - ${formatedEnd}`;\n }\n}\n","import {\n MonkeyEcxRequestDownload,\n MonkeyEcxRequestItemQueue,\n MonkeyEcxRequestQueue,\n MonkeyEcxRequestUpload\n} from '../interfaces';\nimport * as Statics from './statics';\nimport { MonkeyEcxUtils } from './utils';\n\nexport function buildQueuePropertys(queue: MonkeyEcxRequestItemQueue): MonkeyEcxRequestQueue {\n const params: MonkeyEcxRequestQueue = {\n item: {\n ...queue,\n id: MonkeyEcxUtils.getRandomString(40)\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildDownloadPropertys(\n name: string,\n description?: string,\n size?: number\n): MonkeyEcxRequestDownload {\n const params: MonkeyEcxRequestDownload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n size,\n createdAt: new Date()\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildUploadPropertys(name: string, description?: string): MonkeyEcxRequestUpload {\n const params: MonkeyEcxRequestUpload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`\n },\n status: Statics.MonkeyEcxUploadEvents.OnGoing\n };\n\n return params;\n}\n\nexport function hasMonkeyEcxServiceAndHandlingProperties(context: any): boolean {\n return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');\n}\n","/* eslint-disable max-classes-per-file */\nimport { AbstractControl } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nexport class DateValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRutValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidRut: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRFCValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidRfc: true\n };\n }\n }\n return null;\n }\n}\n\nexport class ZipCodeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\n return {\n invalidZipCode: true\n };\n }\n }\n return null;\n }\n}\n\nexport class ComboValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n return {\n invalidCombo: true\n };\n }\n}\n\nexport class isTrueValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n return {\n invalidTrue: true\n };\n }\n}\n\nexport class PasswordMatchValidation {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n return {\n passwordsNotMatching: true\n };\n }\n}\n\nexport class UrlValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n invalidUrl: true\n };\n }\n }\n return null;\n }\n}\n\nexport class CustomDatesStartValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateStart || !dateEnd) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n return null;\n }\n}\n\nexport class CustomDatesEndValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateEnd < dateStart) {\n return {\n dateEndMustBeGreaterThanStart: true\n };\n }\n return null;\n }\n}\n\nexport class UnlockRegisterBuyerValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYBUYER') {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n }\n}\n\nexport class UnlockRegisterSponsorValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYSPONSOR') {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n }\n}\n\nexport class DateRangeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))\n ) {\n return {\n invalidDateRange: true\n };\n }\n\n return null;\n }\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nconst EMAIL_REGEXP = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/;\n\nfunction isEmptyInputValue(value: any): boolean {\n return value == null || value.length === 0;\n}\n\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n const test = EMAIL_REGEXP.test(control.value);\n if (test) return null;\n return {\n email: true\n };\n}\n\nexport function dateRangeValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))\n ) {\n return {\n dateRange: true\n };\n }\n\n return null;\n}\n\nexport function registerValidator(control: AbstractControl, type: string): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n}\n\nexport function dateStartEndValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) {\n return null;\n }\n\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n\n return null;\n}\n\nexport function urlValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n url: true\n };\n }\n\n return null;\n}\n\nexport function passwordConfirmValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n\n return {\n passwordsNotMatching: true\n };\n}\n\nexport function trueValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n\n return {\n invalidTrue: true\n };\n}\n\nexport function comboValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n\n return {\n invalidCombo: true\n };\n}\n\nexport function zipCodeValidator(\n control: AbstractControl,\n country?: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value, country)) {\n return {\n invalidZipCode: true\n };\n }\n }\n\n return null;\n}\n\nexport function documentValidator(\n control: AbstractControl,\n country: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n country = `${country}`.toUpperCase();\n if (country === 'BR') {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n } else if (country === 'CL') {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n } else if (country === 'MX') {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n }\n\n return null;\n}\n\nexport function minYearsValidator(\n param: number,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const date = moment.default(control.value);\n const dif = moment.default().diff(date, 'years');\n\n if (dif < param) {\n return {\n invalidMinYears: {\n year: param\n }\n };\n }\n return null;\n}\n\nexport function dateValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true\n };\n }\n return null;\n}\n\nexport function valueGreaterThanZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (control && `${control?.value}` === '0') {\n return {\n invalidValueGreaterThanZero: true\n };\n }\n return null;\n}\n\nexport function requiredWithTrimValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n if (control && !`${control?.value}`.trim()) {\n return {\n required: true\n };\n }\n return null;\n}\n\nexport function differentFromZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n const handled = `${control?.value}`.trim().replace(/0/g, '');\n if (control && !handled) {\n return {\n differentFromZero: true\n };\n }\n\n return null;\n}\n\nexport function documentValidatorByType(\n type: string,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const handle = MonkeyEcxUtils.handleOnlyNumbers(control.value);\n let valid = false;\n if (type === 'CPF' || type === 'CNPJ') {\n if ((type === 'CNPJ' && `${handle}`.length !== 14) ||\n (type === 'CPF' && `${handle}`.length !== 11)) {\n valid = false;\n } else {\n valid = MonkeyEcxUtils.isCPFCNPJValid(control.value);\n }\n } else if (type === 'RUT') {\n valid = MonkeyEcxUtils.isValidRUT(control.value);\n } else if (type === 'RFC') {\n valid = MonkeyEcxUtils.isValidRFC(control.value);\n }\n\n if (!valid) {\n return {\n [`invalid${MonkeyEcxUtils.capitalize(type.toLowerCase())}`]: true\n };\n }\n\n return null;\n}\n\nexport function validateFullName(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n const fullName = value.split(/\\s+/);\n const hasShortPart = fullName.some((part: any) => { return part.length < 2; });\n\n if (fullName.length < 2 || hasShortPart) {\n return { fullName: true };\n }\n\n return null;\n}\n\nexport function containsNumber(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n return /\\d/.test(value) ? { containsNumber: true } : null;\n}\n\nexport class Validators {\n static email(control: AbstractControl): ValidationErrors | null {\n return emailValidator(control);\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n return dateRangeValidator(control);\n }\n\n static unlockSponsorRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'sponsor');\n }\n\n static unlockBuyerRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'buyer');\n }\n\n static dateStartEnd(control: AbstractControl): ValidationErrors | null {\n return dateStartEndValidator(control);\n }\n\n static url(control: AbstractControl): ValidationErrors | null {\n return urlValidator(control);\n }\n\n static passwordConfirm(control: AbstractControl): ValidationErrors | null {\n return passwordConfirmValidator(control);\n }\n\n static true(control: AbstractControl): ValidationErrors | null {\n return trueValidator(control);\n }\n\n static combo(control: AbstractControl): ValidationErrors | null {\n return comboValidator(control);\n }\n\n static zipCode(control: AbstractControl): ValidationErrors | null {\n return zipCodeValidator(control);\n }\n\n static zipCodeByCountry(country: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return zipCodeValidator(control, country);\n };\n }\n\n static documentBR(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'BR');\n }\n\n static documentCL(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'CL');\n }\n\n static documentMX(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'MX');\n }\n\n static date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\n }\n\n static minYears(param: number): ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n return minYearsValidator(param, control);\n };\n }\n\n static greaterThanZero(control: AbstractControl): ValidationErrors | null {\n return valueGreaterThanZero(control);\n }\n\n static required(control: AbstractControl): ValidationErrors | null {\n return requiredWithTrimValidator(control);\n }\n\n static differentFromZero(control: AbstractControl): ValidationErrors | null {\n return differentFromZero(control);\n }\n\n static documentValidatorByType(type: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return documentValidatorByType(type, control);\n };\n }\n\n static validateFullName(control: AbstractControl): ValidationErrors | null {\n return validateFullName(control);\n }\n\n static containsNumber(control: AbstractControl): ValidationErrors | null {\n return containsNumber(control);\n }\n}\n","/* eslint-disable object-curly-newline */\nimport * as DecoratorsUtils from './decorators-utils';\nimport * as Statics from './statics';\nimport { MonkeyEcxLogs, MonkeyEcxUtils } from './utils';\nimport * as ValidateUtils from './validate-utils';\n\nexport * from './validators';\nexport { DecoratorsUtils, MonkeyEcxLogs, MonkeyEcxUtils, Statics, ValidateUtils };\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateUnixTimelapse'\n})\nexport class MonkeyEcxFormatDateUnixTimelapsePipe implements PipeTransform {\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (!useUtc) stillUtc = moment.default(date).toDate();\n if (\n moment.default\n .utc(date)\n .toDate()\n .toLocaleString()\n .indexOf(':') <= -1\n ) {\n if (typeof date === 'string') {\n stillUtc = date;\n showTime = false;\n }\n }\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocument',\n})\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\n transform(document: string, withType = false, country?: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) {\n return '';\n }\n\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType, country);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatNumber } from '@angular/common';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatNumber'\n})\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n\n return formatNumber(Number(number), 'ptbr');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatPhone'\n})\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\n transform(phone: string): string {\n if (phone) {\n const value = `${phone || ''}`.replace(/\\D/g, '');\n\n let formated = '';\n\n if (value.length > 12) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 11) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 10) {\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 9) {\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 5) {\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\n } else if (value.length > 1) {\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\n } else if (phone !== '') {\n formated = value.replace(/^(\\d*)/, '($1');\n }\n return formated;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatSize'\n})\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\n transform(size: string): string {\n if (!size) return '0 B';\n const sizeNum = Number(size);\n return MonkeyEcxUtils.formatFileSize(sizeNum);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils';\n\n@Pipe({\n name: 'monkeyecxFormatTax',\n})\nexport class MonkeyEcxFormatTaxPipe implements PipeTransform {\n transform(tax: number, decimalDigits: number = 7) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tax)) return '0 %';\n const stringTax = tax.toString();\n const stringTaxLimited = stringTax.slice(0, stringTax.indexOf('.') + decimalDigits + 1);\n return `${Number(stringTaxLimited).toLocaleString('pt-br', {\n maximumFractionDigits: decimalDigits,\n })} %`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocumentType'\n})\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\n transform(document: string, country?: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\n return MonkeyEcxUtils.getDocumentType(document, country);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatValue'\n})\nexport class MonkeyEcxFormatValue implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n return number;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatZipCode'\n})\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\n transform(zipCode: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\n return MonkeyEcxUtils.formatZipCode(zipCode);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTextTruncate'\n})\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\n transform(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTruncateQtd'\n})\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\n transform(number: number, threshold: number): string {\n return `${number > threshold ? `${threshold}+` : number}`;\n }\n}\n","import { DEFAULT_CURRENCY_CODE, Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxCurrencyCode'\n})\nexport class MonkeyEcxCurrencyCodePipe implements PipeTransform {\n constructor(@Inject(DEFAULT_CURRENCY_CODE) private defaultCurencyCode: InjectionToken<string>) {\n // not to do\n }\n\n transform(value: any, type: 'symbol' | 'code' = 'symbol') {\n const currency = this.defaultCurencyCode?.toString() || 'BRL';\n\n const symbol = {\n BRL: 'R$',\n CLP: '$',\n MXN: '$',\n USD: '$'\n }[currency];\n\n return `${value} (${type === 'symbol' ? symbol : currency})`;\n }\n}\n","import { CurrencyPipe, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxBlobSecurePipe } from './monkeyecx-blob-secure';\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\nimport { MonkeyEcxDisplayInitialsPipe } from './monkeyecx-display-initials';\nimport { MonkeyEcxDisplaySupportPhone } from './monkeyecx-display-support-phone';\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\nimport { MonkeyEcxFormatBeaufityJSONPipe } from './monkeyecx-format-beautify-json';\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatDatePipe } from './monkeyecx-format-date';\nimport { MonkeyEcxFormatDateGroupPipe } from './monkeyecx-format-date-group';\nimport { MonkeyEcxFormatDateTimelapsePipe } from './monkeyecx-format-date-timelapse';\nimport { MonkeyEcxFormatDateUnixTimelapsePipe } from './monkeyecx-format-date-unix-timelapse';\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\nimport { MonkeyEcxFormatTaxPipe } from './monkeyecx-format-tax';\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\nimport { MonkeyEcxCurrencyCodePipe } from './monkeyecx-currency-code';\n\n@NgModule({\n declarations: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxDisplaySupportPhone,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDateGroupPipe,\n MonkeyEcxFormatDateTimelapsePipe,\n MonkeyEcxFormatDateUnixTimelapsePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n exports: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxDisplaySupportPhone,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDateGroupPipe,\n MonkeyEcxFormatDateTimelapsePipe,\n MonkeyEcxFormatDateUnixTimelapsePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n providers: [CurrencyPipe, DatePipe]\n})\nexport class MonkeyEcxPipesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { MonkeyEcxPipesModule } from '../../core/pipes/monkeyecx-pipes.module';\nimport { ClosedToMaintenanceComponent } from './closed-to-maintenance.component';\n\n@NgModule({\n declarations: [ClosedToMaintenanceComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n MonkeyEcxPipesModule,\n TranslateModule.forChild()\n ],\n exports: [ClosedToMaintenanceComponent]\n})\nexport class ClosedToMaintenanceModule {}\n","import { Injectable } from '@angular/core';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router\n} from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxProgressBarService {\n private visible: BehaviorSubject<any> | null = null;\n\n constructor(private router: Router) {\n this.init();\n }\n\n private init() {\n this.visible = new BehaviorSubject(false);\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.show();\n });\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return (\n event instanceof NavigationEnd ||\n event instanceof NavigationError ||\n event instanceof NavigationCancel\n );\n })\n )\n .subscribe(() => {\n this.hide();\n });\n }\n\n show() {\n this.visible?.next(true);\n }\n\n hide() {\n this.visible?.next(false);\n }\n\n visibleConfig(): Observable<any> | null {\n return this.visible?.asObservable() || null;\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyEcxProgressBarService } from './progress-bar.service';\n\n@Component({\n selector: 'monkeyecx-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MonkeyEcxProgressBarComponent implements OnInit {\n visible: boolean = false;\n\n constructor(private progressBarService: MonkeyEcxProgressBarService) {\n //not to do\n }\n\n ngOnInit() {\n this.progressBarService?.visibleConfig()?.subscribe((visible: boolean) => {\n this.visible = visible;\n });\n }\n}\n","<ng-container *ngIf=\"visible\">\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [MonkeyEcxProgressBarComponent],\n imports: [CommonModule],\n exports: [MonkeyEcxProgressBarComponent]\n})\nexport class MonkeyEcxProgressBarModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-version-changed',\n templateUrl: './version-changed.component.html',\n styleUrls: ['./version-changed.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class VersionChangedComponent {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.VERSION-CHANGED.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-1' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-2' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.VERSION-CHANGED.BUTTONS.UPDATE-VERSION' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { VersionChangedComponent } from './version-changed.component';\n\n@NgModule({\n declarations: [VersionChangedComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [VersionChangedComponent]\n})\nexport class VersionChangedModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-currency-config',\n templateUrl: './currency-config.component.html',\n styleUrls: ['./currency-config.component.scss']\n})\nexport class CurrencyConfigComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _currency = 'BRL';\n\n _currencies = ['BRL'];\n\n private callback: Function = () => {};\n\n constructor(\n private modalService: MonkeyStyleGuideModalService\n ) {\n // not to do\n }\n\n ngOnInit() {\n const { config } = this;\n this._currency = config?.data?.currency;\n this._currencies = config?.data?.currencies;\n this.callback = config?.data?.callback;\n }\n\n onClose() {\n this.modalService.close(this.modalRef);\n this.callback?.(this._currency);\n }\n\n onHandleChangeCurrency(currency: string) {\n this._currency = currency;\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"alert-body\">\n <span class=\"title\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.TITLE' | translate }}\n </span>\n <span class=\"message\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.SUB-TITLE' | translate }}\n </span>\n <monkey-radiobutton [value]=\"_currency\"\n (onChange)=\"onHandleChangeCurrency($event)\">\n <monkey-option \n [label]=\"'CURRENCIES.'+currency | translate\"\n [value]=\"currency\"\n *ngFor=\"let currency of _currencies\">\n </monkey-option>\n </monkey-radiobutton>\n <span class=\"info\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.INFO' | translate }}\n </span>\n </div>\n <div class=\"alert-footer\">\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'BUTTONS.CONFIRM' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyModalModule, MonkeyOptionModule, MonkeyRadioButtonModule } from 'monkey-style-guide';\nimport { CurrencyConfigComponent } from './currency-config.component';\n\n@NgModule({\n declarations: [CurrencyConfigComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyRadioButtonModule,\n MonkeyOptionModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [CurrencyConfigComponent]\n})\nexport class CurrencyConfigModule {}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\nexport function MonkeyEcxCoreCharts(render = true) {\n return (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor => {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function(...args: any[]) {\n const context = this;\n if (render) {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n const node = document.createElement('script');\n node.src = 'https://www.gstatic.com/charts/loader.js';\n node.type = 'text/javascript';\n node.async = true;\n node.id = 'monkeyecx-charts-settings';\n node.onload = () => {\n method.apply(context, args);\n };\n document.getElementsByTagName('head')[0].appendChild(node);\n } else {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n method.apply(context, args);\n }\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable no-console */\n/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport function MonkeyEcxCoreServiceConstructor() {\n return (target: any) => {\n Object.entries(target.prototype).forEach(([key, value]) => {\n const method = target.prototype[key];\n if (key !== 'constructor') {\n target.prototype[key] = function (...args: any[]) {\n const context = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context.monkeyecxService.monkeyecxHandlingService.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n }\n });\n return target;\n };\n}\n\nexport function MonkeyEcxCoreLog(tp: string) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n propertyDescriptor.value = function (...args: any[]) {\n const params = args\n .map((a: any) => {\n return JSON.stringify(a);\n })\n .join();\n const result = method.apply(this, args);\n const r = JSON.stringify(result);\n console.log(`Call: ${propertyName}(${params}) => ${r}`);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreClearDecorators() {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(params);\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServicePaged(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n const credentials =\n context?.monkeyecxService?.monkeyecxHandlingService?.getMonkeyEcxServiceCredentials();\n let requestPaged = null;\n if (credentials) {\n requestPaged = credentials.requestPaged;\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials({\n ...params,\n ...(requestPaged || {}),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServiceQueue(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService.monkeyecxHandlingService.setMonkeyEcxRequestQueue(\n DecoratorsUtils.buildQueuePropertys({\n name,\n description,\n })\n );\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceDownload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestDownload({\n ...DecoratorsUtils.buildDownloadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceUpload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestUpload({\n ...DecoratorsUtils.buildUploadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","import { Directive, HostListener, Output, HostBinding, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxDragDrop]',\n})\nexport class MonkeyEcxDragDropDirective {\n @Output() onFileDropped: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding('style.background-color') private background = '#f5fcff';\n\n @HostBinding('style.opacity') private opacity = '1';\n\n @HostListener('dragover', ['$event'])\n onDragOver(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#9ecbec';\n this.opacity = '0.8';\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n const { files } = evt?.dataTransfer;\n if (files.length > 0) {\n this.onFileDropped.emit(files);\n }\n }\n}\n","import { Directive, ElementRef, HostListener, OnInit, Injector } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFormatCurrency]',\n providers: [CurrencyPipe]\n})\nexport class MonkeyEcxFormatCurrency implements OnInit {\n private el: HTMLInputElement;\n\n private currency: any;\n\n private currencyCode: string = 'BRL';\n\n private currentLocale: string = 'pt-BR';\n\n constructor(private elementRef: ElementRef, private injector: Injector) {\n this.el = this.elementRef.nativeElement;\n this.currency = this.injector.get(CurrencyPipe);\n\n const translateService = this.injector.get(TranslateService);\n translateService.get('MONKEY-CURRENCY-CODE').subscribe((_: any) => {\n this.currencyCode = _;\n this.currentLocale = translateService.getDefaultLang();\n });\n }\n\n private handle(value: any): string {\n const { currencyCode, currentLocale } = this;\n const newValue = MonkeyEcxUtils.handleOnlyNumbers(value);\n return this.currency.transform(newValue / 100, currencyCode, 'symbol', '', currentLocale);\n }\n\n ngOnInit() {\n this.el.value = this.handle(this.el.value);\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: any) {\n this.el.value = this.handle(value);\n }\n}\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2, Self } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n selector: '[monkeyecxFormatUpper]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxFormatUpper;\n }),\n multi: true,\n },\n ],\n})\nexport class MonkeyEcxFormatUpper implements ControlValueAccessor {\n _onChange?: (_: any) => void;\n\n _touched?: () => void;\n\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('keyup', ['$event'])\n onKeyDown(evt: KeyboardEvent) {\n const value = this._el.nativeElement.value.toUpperCase();\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n this._onChange?.(value);\n evt.preventDefault();\n }\n\n @HostListener('blur', ['$event'])\n onBlur() {\n this._touched?.();\n }\n\n writeValue(value: any): void {\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._touched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyAlphaNumeric]'\n})\nexport class MonkeyEcxOnlyAlphaNumericDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyAlphaNumeric(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyNumbers]'\n})\nexport class MonkeyEcxOnlyNumbersDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyNumbers(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, forwardRef, InjectionToken, Input } from '@angular/core';\n\nexport const POPOVER_OPTIONS = new InjectionToken('POPOVER_OPTIONS');\n\nexport type PopoverDir =\n | 'rtl'\n | 'ltr'\n | 'trtl'\n | 'tltr'\n | 'ct'\n | 'cc'\n | 'cr'\n | 'rt'\n | 'rb'\n | 'lt'\n | 'lb';\n\nexport interface MonkeyEcxPopoverOptions {\n dir?: PopoverDir;\n minwidth?: boolean;\n backdrop?: boolean;\n contextmenu?: boolean;\n}\n\n@Directive({\n selector: '[monkeyecxPopoverOptions]',\n providers: [\n {\n provide: POPOVER_OPTIONS,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxPopoverOptionsDirective;\n })\n }\n ]\n})\nexport class MonkeyEcxPopoverOptionsDirective implements MonkeyEcxPopoverOptions {\n @Input('monkeyecxPopoverOptions')\n set options(options: MonkeyEcxPopoverOptions) {\n Object.entries(options).forEach(([k, v]) => {\n this[k] = v;\n });\n }\n\n minwidth?: boolean;\n\n dir?: PopoverDir;\n\n backdrop?: boolean;\n\n contextmenu?: boolean;\n}\n","import {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy, FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { POPOVER_OPTIONS } from './monkeyecx-popover-options.directive';\nimport type { PopoverDir, MonkeyEcxPopoverOptions } from './monkeyecx-popover-options.directive';\n\n@Directive({\n selector: '[monkeyecxPopover]'\n})\nexport class MonkeyEcxPopoverDirective implements OnDestroy {\n private _popover!: boolean;\n\n get popover() {\n return this._popover;\n }\n\n @Input('monkeyecxPopover')\n set popover(show: boolean) {\n this._popover = show;\n if (show) {\n this.createPopover();\n } else if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n @Input('monkeyecxPopoverClosed') closed!: (e?: MouseEvent) => void;\n\n private _target!: HTMLElement;\n\n get target() {\n return this._target;\n }\n\n @Input('monkeyecxPopoverTarget')\n set target(target: HTMLElement) {\n this._target = target;\n }\n\n @Input('monkeyecxPopoverMinwidth') minwidth = false;\n\n @Input('monkeyecxPopoverBackdrop') backdrop = true;\n\n @Input('monkeyecxPopoverWatch') watch = false;\n\n @Input('monkeyecxPopoverDir') dir: PopoverDir = 'ltr';\n\n @Input('monkeyecxPopoverContextmenu') contextmenu = false;\n\n @Input('monkeyecxPopoverHeight') height!: number | string;\n\n private overlayRef!: OverlayRef;\n\n private positionStrategy!: FlexibleConnectedPositionStrategy;\n\n private templatePortal!: TemplatePortal;\n\n private subs = new Subscription();\n\n private eventsSubs = new Subscription();\n\n private resizeObserver: any;\n\n constructor(\n private tpl: TemplateRef<any>,\n private vcr: ViewContainerRef,\n private el: ElementRef,\n private zone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n private _cd: ChangeDetectorRef,\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private router: Router,\n @Inject(POPOVER_OPTIONS) @Optional() private options: MonkeyEcxPopoverOptions\n ) {\n this.eventsSubs = this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.onHandleClose();\n });\n }\n\n private onHandleClose(e?: MouseEvent) {\n this.popover = false;\n this.subs.unsubscribe();\n this.resizeObserver?.disconnect();\n this.zone.run(() => {\n if (this.closed) {\n this.closed(e);\n }\n });\n }\n\n getDirPositions(dir?: PopoverDir): ConnectedPosition[] {\n const revert = {\n start: 'end', end: 'start', bottom: 'top', top: 'bottom', center: 'center'\n };\n const centerY = (pos: any): ConnectedPosition => {\n return {\n originX: 'center', originY: pos, overlayX: 'center', overlayY: revert[pos]\n };\n };\n const centerX = (pos: any): ConnectedPosition => {\n return {\n originX: revert[pos], originY: 'center', overlayX: pos, overlayY: 'center'\n };\n };\n const ltr = (axis: any): ConnectedPosition => {\n return {\n originX: 'start', originY: axis, overlayX: 'start', overlayY: revert[axis]\n };\n };\n const rtl = (axis: any): ConnectedPosition => {\n return {\n originX: 'end', originY: axis, overlayX: 'end', overlayY: revert[axis]\n };\n };\n const side = (axis: any, axis2: any): ConnectedPosition => {\n return {\n originX: axis, originY: axis2, overlayX: revert[axis], overlayY: axis2\n };\n };\n\n const cmp = dir || this.options?.dir || this.dir;\n if (cmp === 'ct') {\n return [centerY('top'), centerY('bottom'), centerX('start'), centerX('end')];\n }\n if (cmp === 'cr') {\n return [centerX('end'), centerX('start'), centerY('top'), centerY('bottom')];\n }\n if (cmp === 'cc') {\n return [centerX('center')];\n }\n if (cmp === 'ltr') {\n return [ltr('bottom'), ltr('top')];\n }\n if (cmp === 'rtl') {\n return [rtl('bottom'), rtl('top')];\n }\n if (cmp === 'tltr') {\n return [ltr('top'), ltr('bottom')];\n }\n if (cmp === 'trtl') {\n return [rtl('top'), rtl('bottom')];\n }\n if (cmp === 'rt') {\n return [side('end', 'top'), side('end', 'bottom'), ltr('top')];\n }\n if (cmp === 'rb') {\n return [side('end', 'bottom'), side('end', 'top'), ltr('bottom'), rtl('bottom')];\n }\n if (cmp === 'lt') {\n return [side('start', 'top'), side('start', 'bottom'), rtl('top')];\n }\n if (cmp === 'lb') {\n return [side('start', 'bottom'), side('start', 'top'), rtl('bottom')];\n }\n\n return [];\n }\n\n createPopover(\n origin?: FlexibleConnectedPositionStrategyOrigin,\n options?: MonkeyEcxPopoverOptions\n ) {\n this.templatePortal = new TemplatePortal(this.tpl, this._viewContainerRef);\n this.positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(origin || this.target)\n .withPush(true)\n .withGrowAfterOpen(true)\n .withPositions(this.getDirPositions(options?.dir));\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.positionStrategy,\n disposeOnNavigation: true,\n direction: 'ltr',\n hasBackdrop: this.backdrop,\n scrollStrategy: this.overlay.scrollStrategies.reposition({\n }),\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: (this.options?.minwidth || this.minwidth) ? (this.target.offsetWidth - 2) : undefined,\n maxHeight: '95%',\n height: this.height\n });\n\n this.subs = this.overlayRef.backdropClick().subscribe((e) => {\n this.onHandleClose(e);\n });\n\n const attached = this.overlayRef.attach(this.templatePortal);\n\n if (this.watch) {\n try {\n if ('ResizeObserver' in window) {\n this.resizeObserver = new ResizeObserver(([{ contentRect }]) => {\n this.overlayRef.updatePosition();\n })\n .observe(attached.rootNodes[0]);\n }\n } catch (e) {\n // not to do\n }\n }\n }\n\n ngOnDestroy() {\n this.popover = false;\n this.subs.unsubscribe();\n this.eventsSubs.unsubscribe();\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core/interfaces';\n\nconst clear = createAction('[MECX Core Storage] Clear All');\nconst create = createAction('[MECX Core Storage] Create', props<{ data: MonkeyEcxStorage[] }>());\nconst deleteOne = createAction(\n '[MECX Core Storage] Delete One',\n props<{ data: MonkeyEcxStorage }>()\n);\nconst updateControl = createAction('[MECX Core Storage] Update Control', props<{ data: any }>());\nconst updateOne = createAction(\n '[MECX Core Storage] Update One',\n props<{ data: MonkeyEcxStorage }>()\n);\n\nexport { clear, create, deleteOne, updateControl, updateOne };\n","import { ActionReducer, INIT } from '@ngrx/store';\n\nexport const seederReducer = (keys: string[]) => {\n return (reducer: ActionReducer<any>): ActionReducer<any> => {\n return (state, action) => {\n const handledState = reducer(state, action);\n if (action.type === INIT) {\n let data: any = null;\n try {\n const storage = localStorage.getItem('mecx-store');\n const handled = atob(storage || '');\n if (handled !== '{}') {\n const storageValue = JSON.parse(atob(storage || ''));\n keys.forEach((key: string) => {\n let value: any = null;\n if (storageValue?.[key]) {\n value = {\n [key]: storageValue?.[key]\n };\n }\n\n data = {\n ...data,\n ...value\n };\n });\n }\n\n return data;\n } catch (e) {\n localStorage.removeItem('mecx-store');\n return handledState;\n }\n }\n\n let data: any = null;\n try {\n keys.forEach((key: string) => {\n data = {\n ...data,\n [key]: handledState[key]\n };\n });\n const handled = JSON.stringify(data);\n if (handled !== '{}') {\n localStorage.setItem('mecx-store', btoa(JSON.stringify(data)));\n }\n } catch (e) {\n localStorage.removeItem('mecx-store');\n }\n\n return handledState;\n };\n };\n};\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { createReducer, on } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core';\nimport * as actions from '../actions';\n\nexport const featureKey = 'mecx-core-storage';\n\nexport interface State extends EntityState<MonkeyEcxStorage> {\n control: {\n isLoading: boolean;\n };\n error: any;\n}\n\nexport const adapter: EntityAdapter<MonkeyEcxStorage> = createEntityAdapter<MonkeyEcxStorage>({\n selectId: (item: MonkeyEcxStorage) => {\n return item.username;\n }\n});\n\nexport const initialState: State = adapter.getInitialState({\n control: {\n isLoading: false\n },\n error: null\n});\n\nexport const reducer = createReducer(\n initialState,\n on(actions.monkeyecxStorage.clear, (state: any) => {\n return adapter.removeAll(state);\n }),\n on(actions.monkeyecxStorage.create, (state, action) => {\n return adapter.upsertMany(action.data, {\n ...state\n });\n }),\n on(actions.monkeyecxStorage.updateControl, (state, action) => {\n return {\n ...state,\n control: {\n ...state.control,\n ...action.data\n }\n };\n }),\n on(actions.monkeyecxStorage.updateOne, (state, action) => {\n const { username } = action.data;\n return adapter.upsertOne(\n { ...action.data, username },\n {\n ...state\n }\n );\n }),\n on(actions.monkeyecxStorage.deleteOne, (state, action) => {\n const { username } = action.data;\n return adapter.removeOne(username, state);\n })\n);\n\nexport const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors();\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core';\nimport * as reducers from '../reducers';\n\ndeclare type State = reducers.fromMonkeyecxStorage.State;\n\nexport const selectState = createFeatureSelector<reducers.fromMonkeyecxStorage.State>(\n reducers.fromMonkeyecxStorage.featureKey\n);\n\nexport const selectAll = createSelector(selectState, reducers.fromMonkeyecxStorage.selectAll);\n\nexport const select = (props: { username: string }) => {\n return createSelector(\n selectAll,\n (entities: MonkeyEcxStorage[]): MonkeyEcxStorage | undefined => {\n return entities.find((_: MonkeyEcxStorage) => {\n return _.username === props.username;\n });\n }\n );\n};\n\nexport const selectControl = () => {\n return createSelector(\n selectState,\n (state: State): any => {\n return state.control;\n }\n );\n};\n","export class Link {\n href: string;\n\n type: string;\n\n profile: string;\n\n templated: boolean;\n\n constructor(data?: any) {\n this.href = data?.href;\n this.type = data?.type;\n this.profile = data?.profile;\n this.templated = data?.templated;\n }\n}\n\nexport class MonkeyEcxModel {\n _links: any;\n\n public getAction(\n type: string,\n replaceOptions?: {\n from: string;\n to: string;\n }\n ): Link | null {\n const { _links } = this;\n if (!_links) return null;\n let link: Link = _links[type.toLowerCase()];\n link = new Link(link);\n if (link && replaceOptions && link?.templated) {\n const { from, to } = replaceOptions;\n link = new Link({\n ...link,\n href: `${link.href}`.replace(from, to)\n });\n }\n return link;\n }\n}\n","import { MonkeyEcxModel } from './monkeyecx-model';\n\nexport class MonkeyEcxLinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n\n this._links = data?._links;\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { MonkeyEcxRequestPaged } from '../../interfaces/monkeyecx-request-paged';\nimport { MonkeyEcxResponseLinks } from '../../interfaces/monkeyecx-response-links';\n\nexport class MonkeyEcxRequestPagedHandling {\n private url?: string;\n\n private pagedParams: MonkeyEcxRequestPaged;\n\n private links: MonkeyEcxResponseLinks;\n\n private samePage = false;\n\n constructor(\n url?: string,\n pagedParams?: MonkeyEcxRequestPaged,\n links?: any,\n samePage: boolean = false\n ) {\n this.url = url;\n this.pagedParams = pagedParams || {\n page: {},\n };\n this.links = links;\n this.samePage = samePage;\n }\n\n private handlePagedValuesFromApi(url: string = '') {\n if (url.search('\\\\?') < 0) return url;\n const params = url.substring(url.search('\\\\?') + 1, url.length);\n url = url.substring(0, url.search('\\\\?'));\n return `${url}?${new HttpParams({\n fromString: params,\n })\n .delete('size')\n .delete('page')\n .toString()}`;\n }\n\n private getUrlParams(url: string): string {\n const { pagedParams } = this;\n const { number, size } = pagedParams?.page || {};\n const hasInitialQueryParams = url.search('\\\\?') > 0;\n return `${!hasInitialQueryParams ? '?' : '&'}page=${number || 0}&size=${size || 20}`;\n }\n\n public getRequestWithPagedParams(): string {\n const { url, links, samePage } = this;\n if (samePage && links.self) {\n return links.self.href;\n }\n if (links && links.next) {\n return links.next.href;\n }\n const handled = this.handlePagedValuesFromApi(url);\n return `${handled}${this.getUrlParams(handled)}`;\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport {\n ActivatedRouteSnapshot,\n NavigationStart,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { filter, take, takeWhile } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport {\n MonkeyEcxCompanyPendenciesValidated,\n MonkeyEcxConfig,\n MonkeyEcxCountrySecurity,\n MonkeyEcxErrorResponse,\n MonkeyEcxHandledErrorResponse,\n MonkeyEcxRequestPaged,\n MonkeyEcxRequestSchedule,\n MonkeyEcxResponseLinks,\n MonkeyEcxResponsePaged,\n MonkeyEcxSavedState,\n MonkeyEcxTranslateOptions\n} from '../../interfaces';\nimport { MonkeyEcxModel } from '../../model';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxFeatureToggleService } from '../config/monkeyecx-feature-toggle.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxPaginationService } from '../pagination';\nimport { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';\nimport { MonkeyEcxRequestQueueHandlingService } from '../request-queue/monkeyecx-request-queue-handling.service';\nimport { MonkeyEcxRequestScheduleService } from '../schedules/monkeyecx-request-schedule.service';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\n\nclass LinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n this._links = data?._links;\n }\n}\n\nexport class MonkeyEcxCommonsService {\n private flagValidator = true;\n\n private destroyed = false;\n\n __data$: Observable<any> | null = null;\n\n __pagination$: Observable<any> | null = null;\n\n __control$: Observable<any> | null = null;\n\n __page$: Observable<any> | null = null;\n\n __data: any | any[];\n\n __savedState: MonkeyEcxSavedState | null = null;\n\n __params: any | any[];\n\n __error: MonkeyEcxErrorResponse | null = null;\n\n __handledError: MonkeyEcxHandledErrorResponse | null = null;\n\n __page: MonkeyEcxResponsePaged | null = null;\n\n __links: MonkeyEcxResponseLinks | null = null;\n\n __search: any;\n\n __requestPaged: MonkeyEcxRequestPaged | null = null;\n\n __onSearchChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onLoadingInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onUploadInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onDataDeleted$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onErrorChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onGovernmentIdDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onZipCodeDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __oni18nDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDoSearch$: BehaviorSubject<MonkeyEcxRequestPaged> = new BehaviorSubject({});\n\n __schedule: MonkeyEcxRequestSchedule | null = null;\n\n __i18n: any;\n\n __callbackPagination: Function = () => {\n // eslint-disable-next-line no-console\n return console.error('Method callbackPagination needs to be declared');\n };\n\n __paginationOptions: {\n service: MonkeyEcxPaginationService;\n callback: Function;\n name?: string;\n } | undefined;\n\n __isAbleToDoPagination = {};\n\n constructor(\n public monkeyecxService?: MonkeyEcxService,\n public tokenStorage?: MonkeyEcxTokenStorageService,\n public otherArgs?: {\n router?: Router;\n schedule?: {\n service: MonkeyEcxRequestScheduleService;\n options?: {\n clearOnChangeRoute?: boolean;\n };\n };\n queue?: {\n service: MonkeyEcxRequestQueueHandlingService;\n };\n }\n ) {\n this.handleInit();\n }\n\n private handleInit() {\n if (this.otherArgs?.router) {\n const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {\n clearOnChangeRoute: false\n };\n\n this.otherArgs.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n }),\n takeWhile(() => {\n return !this.destroyed;\n })\n )\n .subscribe(() => {\n if (this.__schedule && clearOnChangeRoute) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n });\n }\n }\n\n private navigateToPendencyPage(\n arg: MonkeyEcxCompanyPendenciesValidated,\n companyType?: string,\n router?: Router\n ) {\n let route = '/app';\n\n if (companyType) {\n route = `${route}/${companyType}/pages`;\n } else {\n route = `${route}/user/profile/pages`;\n }\n\n if (!router) {\n // eslint-disable-next-line no-console\n console.error('Router must be declared');\n } else {\n router.navigate([`${route}/company-pendency`.toLowerCase()], {\n state: {\n pendencyData: arg\n }\n });\n }\n }\n\n private allowedSecurityAccessByPendency(args: any): MonkeyEcxCompanyPendenciesValidated {\n if (!args) {\n return {\n hasPendencies: false\n };\n }\n const { service, type } = args;\n return service.hasPendencies(type);\n }\n\n private allowedSecurityAccessByFeature(args: any): boolean {\n if (!args) {\n return true;\n }\n const { config, feature } = args;\n try {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\n return true;\n }\n return !config?.program?.settings?.[feature];\n } catch (e) {\n // not to do\n }\n return true;\n }\n\n private allowedSecurityAccessByCountry(arg?: MonkeyEcxCountrySecurity): boolean {\n if (!arg) return true;\n return arg.country === arg.envCountry;\n }\n\n private handlePaginationOptions() {\n const { __paginationOptions } = this;\n if (__paginationOptions) {\n const { service, callback, name } = __paginationOptions;\n service?.setCallback((type: string) => {\n this.doPaginationv2(type, callback);\n }, name || 'main');\n }\n }\n\n setPage(requestPaged: MonkeyEcxRequestPaged) {\n this.__requestPaged = {\n ...this.__requestPaged,\n ...requestPaged\n };\n return this;\n }\n\n nextPage(): boolean {\n if (this.__links) {\n return !!this.__links?.next;\n }\n if (!this.__requestPaged) return false;\n const { page } = this.__requestPaged as any;\n const { number, totalPages } = page;\n if (number < totalPages) {\n this.__requestPaged = {\n ...this.__requestPaged,\n page: {\n ...page,\n number: number + 1\n }\n };\n return true;\n }\n return false;\n }\n\n getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n getNormalizedUrl(url: string, samePage = false): string {\n const { __requestPaged, __links } = this;\n return new MonkeyEcxRequestPagedHandling(\n url,\n __requestPaged || {},\n __links,\n samePage\n ).getRequestWithPagedParams();\n }\n\n clear(clearData: boolean) {\n if (clearData) {\n this.__data = null;\n this.__requestPaged = null;\n this.__params = null;\n this.__page = null;\n this.__links = null;\n\n if (this.__schedule) {\n const { queue } = this.__schedule;\n if (queue) {\n this.otherArgs?.queue?.service?.removeQueueItem(queue);\n }\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n }\n this.__error = null;\n this.__handledError = null;\n this.flagValidator = false;\n this.destroyed = true;\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: {\n companyType?: string,\n callbackMain: Function;\n router?: Router;\n callbackPagination?: Function;\n translateOptions?: MonkeyEcxTranslateOptions;\n feature?: {\n service: MonkeyEcxFeatureToggleService;\n flag: string;\n };\n featureByProgram?: {\n config: MonkeyEcxConfig;\n feature: string;\n };\n countrySecurity?: MonkeyEcxCountrySecurity;\n pendency?: {\n service: {\n hasPendencies: Function;\n };\n type: string;\n };\n paginationOptions?: {\n service: MonkeyEcxPaginationService,\n callback: Function,\n name?: string\n }\n }\n ) {\n if (JSON.stringify(route?.queryParams) === '{}') {\n this.__data = null;\n this.__page = null;\n }\n\n this.__requestPaged = null;\n this.flagValidator = true;\n\n const pend = this.allowedSecurityAccessByPendency(otherArgs?.pendency);\n const allowedByProgram = this.allowedSecurityAccessByFeature(otherArgs?.featureByProgram);\n\n if (\n this.allowedSecurityAccessByCountry(otherArgs?.countrySecurity) &&\n !pend.hasPendencies &&\n allowedByProgram\n ) {\n if (this.__schedule) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n\n const { __requestPaged } = this;\n if (!__requestPaged) {\n this.setPage({\n page: {\n number: 0,\n size: 10\n }\n });\n }\n\n if (otherArgs?.translateOptions) {\n const { service, keys } = otherArgs?.translateOptions;\n this.geti18n(service, keys || '');\n }\n\n if (otherArgs?.callbackPagination) {\n this.__callbackPagination = otherArgs.callbackPagination;\n }\n\n if (otherArgs?.paginationOptions) {\n this.__paginationOptions = otherArgs?.paginationOptions;\n this.handlePaginationOptions();\n }\n\n if (otherArgs?.feature) {\n const { flag, service } = otherArgs.feature;\n\n service.onFlags\n .pipe(\n takeWhile(() => {\n return this.flagValidator;\n })\n )\n .subscribe((val: boolean) => {\n if (val) {\n const hasFlag = service.getFlag(flag);\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {\n if (!hasFlag) {\n this.navigateToErrorPage(404, otherArgs?.router);\n }\n }\n }\n });\n }\n\n otherArgs?.callbackMain();\n } else if (!allowedByProgram) {\n this.navigateToErrorPage(404, otherArgs?.router);\n } else if (pend.hasPendencies) {\n this.navigateToPendencyPage(pend, otherArgs?.companyType, otherArgs?.router);\n } else {\n this.navigateToErrorPage(403, otherArgs?.router);\n }\n }\n\n getHTTPHeaderApplicationPDF(): Object {\n return {\n observe: 'response',\n responseType: 'blob'\n };\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true\n }\n })\n genericMethod(link: any, data?: any, callback?: Function) {\n const { href, type = 'get' } = link;\n\n this.monkeyecxService?.[type.toLowerCase()](`${href}`, data)?.subscribe(\n (resp: any) => {\n if (callback) callback(resp);\n },\n (err: HttpErrorResponse) => {\n if (callback) callback();\n throwError(err);\n }\n );\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true\n }\n })\n async getGenericData(data: any, action: string) {\n const { monkeyecxService } = this;\n if (!monkeyecxService) return null;\n const { href, type } = new LinksModel(data)?.getAction(action) || {\n href: '', type: 'get'\n };\n\n return monkeyecxService[type.toLowerCase()]<any>(href)\n .pipe(take(1)).toPromise();\n }\n\n geti18n(translateService: TranslateService, keys: string | string[]) {\n translateService.onDefaultLangChange.subscribe(() => {\n this.__i18n = translateService.instant(keys);\n this.__oni18nDataChanged$.next(null);\n });\n translateService.getStreamOnTranslationChange(keys).subscribe(() => {\n this.__i18n = translateService.instant(keys);\n this.__oni18nDataChanged$.next(null);\n });\n }\n\n doPagination() {\n if (!this.__onLoadingInProgress$.value) {\n const hasMorePages = this.setPage({\n page: {\n ...this.__page\n }\n }).nextPage();\n\n if (hasMorePages && this.__callbackPagination) {\n this.__callbackPagination();\n }\n }\n }\n\n doPaginationv2(type: string, callback: Function) {\n if (!this.__onLoadingInProgress$.value) {\n if (callback) {\n callback(type);\n }\n }\n }\n\n setLinks(links: any) {\n this.__isAbleToDoPagination = {\n first: !!links?.first,\n next: !!links?.next\n };\n this.__links = links;\n }\n\n setSearchByUrl(router: Router, url: string, search: any, extras?: any) {\n this.__data = null;\n this.__page = null;\n this.__onDataChanged$.next(null);\n this.__onLoadingInProgress$.next(false);\n\n router.navigate([url], {\n queryParams: {\n ...search,\n r: MonkeyEcxUtils.getRandomString(30)\n },\n queryParamsHandling: 'merge',\n ...extras\n });\n }\n\n saveState(state: MonkeyEcxSavedState) {\n this.__savedState = {\n page: this.__page,\n ...state\n };\n }\n\n navigateToErrorPage(statusCode: number, router?: Router) {\n const routes: any = {\n 403: 'forbidden',\n 404: 'not-found',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n if (!router) {\n console.error('Router must be declared');\n } else {\n router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()]);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Action, Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '.';\nimport {\n MonkeyEcxDiscoveryParamsService,\n MonkeyEcxPaginationService,\n MonkeyEcxTokenStorageService\n} from '../..';\nimport {\n MonkeyEcxCommonsConfig,\n MonkeyEcxCommonsSearch,\n MonkeyEcxInitialResolverConfig\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\nexport abstract class MonkeyEcxCommonsResolveBaseService extends MonkeyEcxCommonsService {\n private action: any;\n\n protected route: string | null = null;\n\n protected currentRoute: string | null = null;\n\n protected paginationService = inject(MonkeyEcxPaginationService);\n\n protected translateService = inject(TranslateService);\n\n protected router = inject(Router);\n\n protected store = inject(Store);\n\n protected monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n config: {\n actions: {\n load: Action;\n loadPagination?: Action;\n }\n }\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions } = config;\n this.action = actions;\n }\n\n protected async getData() {\n try {\n const { store, route, action, tokenStorage } = this;\n const { companyId, governmentId } = await tokenStorage?.getToken();\n\n if (!route) return;\n\n const url = MonkeyEcxUtils.replaceVariables(route, { companyId, governmentId });\n\n store.dispatch(action.load({ url }));\n } catch (e) {\n throw new Error(`MECX Core - Method getData -> ${e}`);\n }\n }\n\n protected async loadPage(actionType: string) {\n try {\n const { store, action } = this;\n store.dispatch(\n action.loadPagination({\n pagination: {\n action: actionType\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method loadPage -> ${e}`);\n }\n }\n\n /**\n * @description Inicializar a class genérica\n * @param (args: MonkeyEcxInitialResolverConfig)\n * => route é obrigátorio pois ele quem inicializa a store.\n * A searchClass só se faz necessaria quando for usar filtros\n */\n protected init(args: MonkeyEcxInitialResolverConfig) {\n try {\n const { searchClass, route } = args;\n\n this.route = route;\n\n if (searchClass) {\n // eslint-disable-next-line new-cap\n const searchInstance: MonkeyEcxCommonsSearch = new searchClass(this.__search);\n\n this.route = `${route}${searchInstance.buildParams()}`;\n\n this.__onSearchChanged$.next(searchInstance);\n }\n\n this.getData();\n } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: MonkeyEcxCommonsConfig\n ) {\n this.__search = route?.queryParams;\n\n const [currentRoute] = state?.url.split('?') || [null];\n\n this.currentRoute = currentRoute;\n\n super.resolve(route, state, otherArgs);\n }\n\n /**\n * @description Atualizar os filtros da tela\n * @param (search: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public setSearch<T>(search: T, route?: string): void {\n try {\n const { currentRoute, router } = this;\n\n this.setSearchByUrl(router, route || `${currentRoute}`, search);\n } catch (e) {\n throw new Error(`MECX Core - Method setSearch -> ${e}`);\n }\n }\n\n /**\n * @description Navegação para details.\n * Por padrão sera redirecionado para '${currentRoute}/details'\n * @param (detailsData: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public navigateToDetails<T>(detailsData: T, route?: string) {\n try {\n const { router, currentRoute } = this;\n\n router.navigate([route || `${currentRoute}/details`], {\n state: {\n detailsData\n }\n });\n } catch (e) {\n throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Action, Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '.';\nimport {\n MonkeyEcxDiscoveryParamsService,\n MonkeyEcxPaginationService,\n MonkeyEcxTokenStorageService\n} from '../..';\nimport {\n MonkeyEcxCommonsConfig,\n MonkeyEcxCommonsSearch,\n MonkeyEcxInitialResolverConfig\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\ndeclare type Selectors =\n | {\n selectByIdentifier: Function;\n selectOneByIdentifier?: never;\n selectControl: Function;\n selectLinks?: Function;\n selectPage?: Function;\n }\n | {\n selectOneByIdentifier: Function;\n selectByIdentifier?: never;\n selectControl: Function;\n };\n\nexport abstract class MonkeyEcxCommonsResolveService extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n protected route: string | null = null;\n\n protected currentRoute: string | null = null;\n\n protected paginationService = inject(MonkeyEcxPaginationService);\n\n protected translateService = inject(TranslateService);\n\n protected router = inject(Router);\n\n protected store = inject(Store);\n\n protected monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n config: {\n actions: {\n load: Action;\n loadPagination?: Action;\n };\n selectors: Selectors;\n }\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n protected async getData() {\n try {\n const { store, route, action, selector, tokenStorage } = this;\n\n const { companyId, companyType, governmentId } = await tokenStorage?.getToken();\n\n const identifier = `${companyId || governmentId}-${companyType}`;\n\n if (!route) return;\n\n const url = MonkeyEcxUtils.replaceVariables(route, { companyId });\n\n store.dispatch(action.load({ url, identifier }));\n\n this.__control$ = store.select(selector.selectControl());\n\n if (selector?.selectByIdentifier) {\n this.__data$ = store.select(selector.selectByIdentifier({ identifier }));\n }\n\n if (selector?.selectOneByIdentifier) {\n this.__data$ = store.select(selector.selectOneByIdentifier({ identifier }));\n }\n\n if (selector?.selectLinks) {\n this.__pagination$ = store.select(selector.selectLinks({ identifier }));\n }\n\n if (selector?.selectPage) {\n this.__page$ = store.select(selector.selectPage({ identifier }));\n }\n\n this.__onDataChanged$.next(null);\n } catch (e) {\n throw new Error(`MECX Core - Method getData -> ${e}`);\n }\n }\n\n protected async loadPage() {\n try {\n const { store, tokenStorage, action } = this;\n const { companyId, companyType, governmentId } = await tokenStorage?.getToken();\n\n store.dispatch(\n action.loadPagination({\n identifier: `${companyId || governmentId}-${companyType}`,\n pagination: {\n action: 'next'\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method loadPage -> ${e}`);\n }\n }\n\n /**\n * @description Inicializar a class genérica\n * @param (args: MonkeyEcxInitialResolverConfig)\n * => route é obrigátorio pois ele quem inicializa a store.\n * A searchClass só se faz necessaria quando for usar filtros\n */\n protected init(args: MonkeyEcxInitialResolverConfig) {\n try {\n const { searchClass, route } = args;\n\n this.route = route;\n\n if (searchClass) {\n // eslint-disable-next-line new-cap\n const searchInstance: MonkeyEcxCommonsSearch = new searchClass(this.__search);\n\n this.route = `${route}${searchInstance.buildParams()}`;\n\n this.__onSearchChanged$.next(searchInstance);\n }\n\n this.getData();\n } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: MonkeyEcxCommonsConfig\n ) {\n this.__search = route?.queryParams;\n\n const [currentRoute] = state?.url.split('?') || [null];\n\n this.currentRoute = currentRoute;\n\n super.resolve(route, state, otherArgs);\n }\n\n /**\n * @description Atualizar os filtros da tela\n * @param (search: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public setSearch<T>(search: T, route?: string): void {\n try {\n const { currentRoute, router } = this;\n\n this.setSearchByUrl(router, route || `${currentRoute}`, search);\n } catch (e) {\n throw new Error(`MECX Core - Method setSearch -> ${e}`);\n }\n }\n\n /**\n * @description Navegação para details.\n * Por padrão sera redirecionado para '${currentRoute}/details'\n * @param (detailsData: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public navigateToDetails<T>(detailsData: T, route?: string) {\n try {\n const { router, currentRoute } = this;\n\n router.navigate([route || `${currentRoute}/details`], {\n state: {\n detailsData\n }\n });\n } catch (e) {\n throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nlet window: any;\n\nconst text: any = {\n i18n: {\n title: 'We have an quick update for you',\n message: 'Click anywhere here to reload your locale',\n },\n theme: {\n title: 'We have an quick update for you',\n message: 'Click anywhere here to reload your theme',\n },\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonkeyEcxErrorConfigService {\n constructor() {\n // not to do\n }\n\n private enableSupport() {\n window.zE('webWidget', 'updateSettings', {\n webWidget: {\n color: {\n theme: '#0273E8',\n launcherText: '#fff',\n header: '#0273E8',\n button: '#0273E8',\n },\n zIndex: 99,\n offset: {\n horizontal: '1px',\n vertical: '20px',\n },\n mobile: {\n labelVisible: true,\n },\n launcher: {\n mobile: {\n labelVisible: true,\n },\n },\n },\n });\n window.zE('webWidget', 'setLocale', 'en-US');\n window.zE('webWidget', 'show');\n }\n\n public apply(type: string) {\n const { title, message } = text?.[type];\n\n const element = document.createElement('div');\n element.id = 'monkeyecx-information';\n\n const elementImg = document.createElement('img');\n elementImg.width = 128;\n elementImg.src = 'assets/images/monkey.svg';\n elementImg.style.marginBottom = '50px';\n\n const elementTitle = document.createElement('span');\n elementTitle.id = 'title';\n elementTitle.innerText = title;\n elementTitle.style.marginBottom = '20px';\n\n const elementMessage = document.createElement('span');\n elementMessage.id = 'message';\n elementMessage.innerText = message;\n elementMessage.style.marginBottom = '20px';\n\n const elementChat = document.createElement('span');\n elementChat.id = 'message';\n elementChat.innerText =\n \"If you're having trouble to update, please use the support icon bellow\";\n\n element.appendChild(elementImg);\n element.appendChild(elementTitle);\n element.appendChild(elementMessage);\n element.appendChild(elementChat);\n\n element.addEventListener('click', () => {\n document.location.reload();\n });\n\n document.body.appendChild(element);\n\n document.body.getElementsByTagName('app-root')[0].remove();\n this.enableSupport();\n }\n}\n","/* eslint-disable no-console */\nimport { registerLocaleData } from '@angular/common';\nimport esCL from '@angular/common/locales/es-CL';\nimport esMX from '@angular/common/locales/es-MX';\nimport ptBr from '@angular/common/locales/pt';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxMeCredentials } from '../../interfaces/monkeyecx-me-credentials';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxErrorConfigService } from '../config/monkeyecx-error-config.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxi18nConfigService extends MonkeyEcxCommonsService {\n private i18nNotFound = false;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private translateService: TranslateService,\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService\n ) {\n super(monkeyecxService, tokenStorage);\n }\n\n private async loadInternalDefaultFromError(environment: any) {\n const lang = 'pt-BR';\n\n const url = `${environment.localAssets}/i18n/${lang}.json`;\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n this.i18nNotFound = true;\n }\n\n private async loadDefaultFromError(environment: any, name: string) {\n const lang = 'pt-BR';\n\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name,\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n this.i18nNotFound = true;\n }\n\n private async loadAuth(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'auth',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadAuth i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'auth');\n }\n }\n\n private async loadAlerts(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'alerts',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadAlerts i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'alerts');\n }\n }\n\n private async loadShared(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'shared',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadShared i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'shared');\n }\n }\n\n private async loadRegister(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'register',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadRegister i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'register');\n }\n }\n\n private async loadInternal(environment: any, lang: string) {\n try {\n const url = `${environment.localAssets}/i18n/${lang}.json`;\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadInternal i18n ${lang} not found!`);\n await this.loadInternalDefaultFromError(environment);\n }\n }\n\n public async apply(environment: any) {\n let lang = environment?.locale?.lang || 'pt-BR';\n\n try {\n const me: MonkeyEcxMeCredentials = JSON.parse(localStorage.getItem('me') || '{}');\n lang = me?.locale || lang;\n } catch (e) {\n // not to do\n }\n\n if (lang === 'es-CL') {\n registerLocaleData(esCL);\n } else if (lang === 'es-MX') {\n registerLocaleData(esMX);\n } else {\n registerLocaleData(ptBr);\n }\n\n await this.loadAuth(environment, lang);\n await this.loadInternal(environment, lang);\n this.loadAlerts(environment, lang);\n this.loadShared(environment, lang);\n this.loadRegister(environment, lang);\n\n if (this.i18nNotFound) {\n this.translateService.setDefaultLang('pt-BR');\n this.translateService.use('pt-BR');\n return;\n }\n\n this.translateService.setDefaultLang(lang);\n this.translateService.use(lang);\n }\n\n public applyExternal(params: MonkeyEcxConfig, lang: string) {\n try {\n const currentExternali18n = params?.externali18n?.[`${lang}`];\n\n let data = {};\n if (currentExternali18n) {\n data = {\n EXTERNAL: currentExternali18n\n };\n }\n\n this.translateService.setTranslation(lang, data, true);\n } catch (e) {\n console.error(`loadExternal i18n ${lang} not found!`);\n this.monkeyecxErrorConfigService.apply('i18n');\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\nimport { MonkeyEcxMeCredentials } from '../../interfaces/monkeyecx-me-credentials';\nimport { MonkeyEcxTokenCredentials } from '../../interfaces/monkeyecx-token-credentials';\nimport { MonkeyEcxTokenStorageService } from '../../services/storage/monkeyecx-token-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLogsConfigService {\n private allSet = false;\n\n constructor(\n private injector: Injector\n ) {\n // not to do\n }\n\n public apply(\n params: MonkeyEcxConfig,\n configBootstrap: MonkeyEcxConfigBootstrap,\n environment: any,\n identifyCode: string\n ) {\n const { program, logs } = params;\n if (logs?.enabled && environment.environment !== 'dev' && !this.allSet) {\n datadogRum.init({\n applicationId: environment?.dataDogApplicationId,\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n sessionSampleRate: 100,\n sessionReplaySampleRate: 100,\n env: `monkey-front-${identifyCode}-${environment.environment}`,\n version: configBootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n trackResources: true,\n trackLongTasks: true,\n trackUserInteractions: true,\n defaultPrivacyLevel: 'mask-user-input'\n });\n datadogRum.startSessionReplayRecording();\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.init({\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n env: `monkey-front-${identifyCode}-${environment.environment}`,\n version: configBootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n forwardErrorsToLogs: true,\n sessionSampleRate: 100,\n forwardConsoleLogs: 'all'\n });\n }\n\n this.allSet = true;\n }\n this.applyInfoToDataDog(environment);\n }\n\n public async applyInfoToDataDog(environment: any) {\n try {\n const tokenStorage = this.injector.get(MonkeyEcxTokenStorageService);\n const token: MonkeyEcxTokenCredentials = await tokenStorage.getToken();\n if (token.accessToken && environment.dataDogApplicationId) {\n const me: MonkeyEcxMeCredentials = await tokenStorage.getMe();\n\n const user = {\n id: token.username,\n email: token.username,\n name: me.name,\n locale: me.locale\n };\n\n datadogRum.setUser(user);\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.setUser(user);\n }\n }\n } catch (e) {\n // not to do\n }\n }\n\n public clearDataDogInfo() {\n datadogRum.clearUser();\n }\n}\n","import { ApplicationRef, Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { concat, interval } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxServiceWorkerConfigService {\n constructor(\n private appRef: ApplicationRef,\n private updates: SwUpdate,\n private modalService: MonkeyStyleGuideModalFixedService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\n const { updates, modalService } = this;\n updates?.available?.subscribe(() => {\n if (!config.showNewVersion || config.maintenance.closed) {\n document.location.reload();\n } else {\n modalService.closeAll();\n modalService.open(VersionChangedComponent, {\n hideClose: true,\n color: 'theme',\n size: 'md'\n });\n }\n });\n }\n\n private verify() {\n const { appRef, updates } = this;\n const appIsStable$ = appRef.isStable\n .pipe(first((isStable: boolean) => { return isStable === true; }));\n const everyHour$ = interval(1 * 60 * 60 * 1000);\n const everyHourOnceAppIsStable$ = concat(appIsStable$, everyHour$);\n everyHourOnceAppIsStable$.subscribe(() => {\n updates.checkForUpdate();\n });\n updates.checkForUpdate();\n }\n\n public apply(config: MonkeyEcxConfigBootstrap) {\n this.handleValidation(config);\n this.verify();\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyEcxCommonsService } from '../commons';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxSecurityConsoleConfigService extends MonkeyEcxCommonsService {\n private unsubscribeAll = new Subject();\n\n constructor(private translateService: TranslateService) {\n super();\n\n this.geti18n(this.translateService, 'SERVICES.WARNING.CONSOLE');\n }\n\n private handleValidation() {\n this.__oni18nDataChanged$\n .pipe(takeUntil(this.unsubscribeAll)).subscribe(() => {\n const { __i18n } = this;\n const title = __i18n?.TITLE;\n const message = __i18n?.MESSAGE;\n if (title) {\n console.log(`%c${title}`, 'background: #f2f061; color: #ff0000; font-size: 18px');\n console.log(`%c${message}`, 'font-size: x-large');\n console.log(\n '%c __ __ _ ______ \\n ' +\n '| \\\\/ | ___ _ __ | | _____ _ _\\\\ \\\\ \\\\ \\\\ \\n ' +\n \"| |\\\\/| |/ _ \\\\| '_ \\\\| |/ / _ \\\\ | | |\\\\ \\\\ \\\\ \\\\ \\n \" +\n '| | | | (_) | | | | < __/ |_| |/ / / / \\n ' +\n '|_| |_|\\\\___/|_| |_|_|\\\\_\\\\___|\\\\__, /_/_/_/ \\n ' +\n ' |___/ \\n ' +\n '', 'background: #1976d2; color: #fff'\n );\n\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n });\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { ClosedToMaintenanceComponent } from '../../../components/closed-to-maintenance/closed-to-maintenance.component';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxMaintenanceConfigService {\n constructor(private modalService: MonkeyStyleGuideModalService, private router: Router) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\n if (config.maintenance.closed) {\n localStorage.clear();\n this.router.navigate(['']);\n\n setTimeout(() => {\n this.modalService.open(ClosedToMaintenanceComponent, {\n color: 'theme',\n size: 'md',\n data: config\n });\n }, 200);\n }\n }\n\n public apply(config: MonkeyEcxConfigBootstrap) {\n this.handleValidation(config);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LDClient, LDFlagSet, initialize } from 'launchdarkly-js-client-sdk';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxFeatureToggleService {\n private readonly flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n private flags: LDFlagSet | undefined = undefined;\n\n private ldClient: LDClient | undefined = undefined;\n\n constructor() {\n // not to do\n }\n\n private getAllFlags(): void {\n if (!this) return;\n this.flags = this.ldClient?.allFlags();\n\n this.flagSubject$.next(true);\n }\n\n private identify(config: MonkeyEcxConfig, environment: any): void {\n if (config) {\n const email = 'monkey@monkey.exchange';\n const user = {\n email,\n kind: 'user',\n key: `${config.program?.token}#${email}`\n };\n\n if (!this.ldClient) {\n this.ldClient = initialize(environment.launchDarklyClientSideID, user, {\n streaming: true,\n sendEvents: true,\n logger: {\n debug: () => {},\n warn: () => {},\n info: () => {},\n error: (args: any) => {\n console.log('Monkey Client => ', args);\n }\n }\n });\n\n this.ldClient.on('change', this.getAllFlags.bind(this));\n this.ldClient.on('ready', this.getAllFlags.bind(this));\n } else {\n this.ldClient.identify(user, undefined, this.getAllFlags);\n }\n }\n }\n\n public apply(configSubject$: BehaviorSubject<MonkeyEcxConfig>, environment: any) {\n if (environment.launchDarklyClientSideID) {\n configSubject$.subscribe((config) => {\n this.identify(config, environment);\n });\n } else {\n this.flagSubject$.next(true);\n }\n }\n\n public get onFlags(): Observable<any> {\n return this.flagSubject$.asObservable();\n }\n\n public getFlag(flag: string): boolean | null {\n const flagValue = this.flags?.[flag];\n\n return MonkeyUtils.persistNullEmptyUndefined(flagValue) ? flagValue : null;\n }\n\n public sendEvent(key: string, data: any) {\n this.ldClient?.track(key, data);\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\ndeclare const window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxGTMConfigService {\n private handleCode(key: string) {\n try {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js'\n });\n const head = document.querySelector('head');\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=GTM-${key}`;\n head?.appendChild(script);\n\n const body = document.querySelector('body');\n const noscript = document.createElement('noscript');\n const iframe = document.createElement('iframe');\n iframe.src = `https://www.googletagmanager.com/ns.html?id=GTM-${key}`;\n iframe.height = '0';\n iframe.width = '0';\n iframe.style.display = 'none';\n iframe.style.visibility = 'hidden';\n noscript.appendChild(iframe);\n body?.appendChild(noscript);\n } catch (e) {\n console.error('GTM Configuration Error!');\n }\n }\n\n public async apply(config: MonkeyEcxConfig, environment: any) {\n const { enabled, key } = config?.gtm || environment?.gtm || { enabled: false, key: '' };\n\n if (enabled) {\n this.handleCode(key);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { AlertsComponent } from '../../../components/alerts/alerts.component';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\nconst moment: any = moment_;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsConfigService {\n constructor(private modalService: MonkeyStyleGuideModalFixedService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfig) {\n if (config.alert) {\n const { img, title, message, endDate, noEndDate, action, hideClose } = config.alert;\n if (moment.default().isSameOrBefore(moment.default(endDate)) || noEndDate) {\n this.modalService.open(AlertsComponent, {\n hideClose: true,\n color: 'theme',\n size: 'md',\n data: {\n img,\n title,\n message,\n action,\n hideClose\n }\n });\n }\n }\n }\n\n public apply(config: MonkeyEcxConfig) {\n this.handleValidation(config);\n }\n}\n","/* eslint-disable no-console */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideSettingsService } from 'monkey-style-guide';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\nimport { MonkeyEcxCommonsService } from '../commons/monkeyecx-commons.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxAlertsConfigService } from './monkeyecx-alerts-config.service';\nimport { MonkeyEcxErrorConfigService } from './monkeyecx-error-config.service';\nimport { MonkeyEcxFeatureToggleService } from './monkeyecx-feature-toggle.service';\nimport { MonkeyEcxGTMConfigService } from './monkeyecx-gtm-config.service';\nimport { MonkeyEcxi18nConfigService } from './monkeyecx-i18n-config.service';\nimport { MonkeyEcxLogsConfigService } from './monkeyecx-logs-config.service';\nimport { MonkeyEcxMaintenanceConfigService } from './monkeyecx-maintenance-config.service';\nimport { MonkeyEcxSecurityConsoleConfigService } from './monkeyecx-security-console-config.service';\nimport { MonkeyEcxServiceWorkerConfigService } from './monkeyecx-service-worker-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxConfigService extends MonkeyEcxCommonsService {\n private readonly configSubject$: BehaviorSubject<MonkeyEcxConfig>;\n\n private readonly configBootstrapSubject$: BehaviorSubject<MonkeyEcxConfig>;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n private monkeyecxi18nConfigService: MonkeyEcxi18nConfigService,\n private monkeyecxLogsConfigService: MonkeyEcxLogsConfigService,\n private monkeyStyleGuideSettingsService: MonkeyStyleGuideSettingsService,\n private monkeyecxServiceWorkerConfigService: MonkeyEcxServiceWorkerConfigService,\n private monkeyecxSecurityConsoleConfigService: MonkeyEcxSecurityConsoleConfigService,\n private monkeyecxMaintenanceConfigService: MonkeyEcxMaintenanceConfigService,\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService,\n private monkeyEcxFeatureToggleService: MonkeyEcxFeatureToggleService,\n private monkeyGTMConfigService: MonkeyEcxGTMConfigService,\n private monkeyEcxAlertsConfigService: MonkeyEcxAlertsConfigService\n ) {\n super(monkeyecxService);\n this.configSubject$ = new BehaviorSubject({});\n this.configBootstrapSubject$ = new BehaviorSubject({});\n }\n\n private async getSettings(\n monkeyecxCode: string,\n configBootstrap: MonkeyEcxConfigBootstrap,\n callback: Function,\n environment: any,\n identifyCode: string\n ) {\n const {\n monkeyecxSecurityConsoleConfigService,\n monkeyecxServiceWorkerConfigService,\n monkeyecxMaintenanceConfigService,\n monkeyStyleGuideSettingsService,\n getWhiteLabel,\n monkeyecxi18nConfigService\n } = this;\n\n monkeyecxServiceWorkerConfigService.apply(configBootstrap);\n monkeyecxMaintenanceConfigService.apply(configBootstrap);\n monkeyecxSecurityConsoleConfigService.apply();\n\n const url = `${environment.urlAssets}/${monkeyecxCode.toLowerCase()}`;\n\n await monkeyecxi18nConfigService.apply(environment);\n\n monkeyStyleGuideSettingsService.bootstrap(\n `${url}/monkey-style-guide-settings.json`,\n getWhiteLabel.bind(this, configBootstrap, callback, environment, identifyCode, url)\n );\n }\n\n private getWhiteLabel(\n configBootstrap: MonkeyEcxConfigBootstrap,\n callback: Function,\n environment: any,\n identifyCode: string,\n url: string\n ) {\n const {\n monkeyecxService,\n configSubject$,\n monkeyGTMConfigService,\n monkeyecxLogsConfigService,\n monkeyecxErrorConfigService,\n monkeyEcxFeatureToggleService,\n monkeyecxi18nConfigService,\n monkeyEcxAlertsConfigService\n } = this;\n\n monkeyecxService?.get<any>(`${url}/white-label.json`)?.subscribe(\n async (config: MonkeyEcxConfig) => {\n monkeyecxi18nConfigService.applyExternal(config, environment?.locale?.lang || 'pt-BR');\n monkeyecxLogsConfigService.apply(config, configBootstrap, environment, identifyCode);\n monkeyEcxFeatureToggleService.apply(configSubject$, environment);\n monkeyEcxAlertsConfigService.apply(config);\n monkeyGTMConfigService.apply(config, environment);\n configSubject$.next(config);\n\n if (callback) callback();\n },\n (err: HttpErrorResponse) => {\n monkeyecxErrorConfigService.apply('theme');\n console.error('Program Configuration not found!');\n throwError(err);\n }\n );\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [404]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n public init(callback: Function, environment: any, identifyCode: string, monkeyecxCode?: string) {\n const { monkeyecxService, configBootstrapSubject$, monkeyecxErrorConfigService } = this;\n\n monkeyecxService\n ?.get<any>(`${environment.bootstrapAssets}`, {\n observe: 'response'\n })\n ?.subscribe(\n ({ headers, body }) => {\n const monkeyCode = headers.get('monkey-code') || monkeyecxCode;\n if (monkeyCode) {\n this.getSettings(monkeyCode, body, callback, environment, identifyCode);\n configBootstrapSubject$.next(body);\n } else {\n monkeyecxErrorConfigService.apply('theme');\n console.error(`Bootstrap ${monkeyCode} Configuration not found!`);\n }\n },\n (err: HttpErrorResponse) => {\n monkeyecxErrorConfigService.apply('theme');\n console.error('Bootstrap Configuration not found!');\n throwError(err);\n }\n );\n }\n\n public config(): Observable<any> {\n return this.configSubject$.asObservable();\n }\n\n public bootstrapConfig(): Observable<any> {\n return this.configBootstrapSubject$.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { actions, selectors } from '../../../store';\nimport {\n MonkeyEcxMeCredentials,\n MonkeyEcxStorage,\n MonkeyEcxTokenCredentials\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxConfigService } from '../config/monkeyecx-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxTokenStorageService {\n private token: MonkeyEcxTokenCredentials | null;\n\n private token$: BehaviorSubject<MonkeyEcxTokenCredentials | any>;\n\n private me$: BehaviorSubject<MonkeyEcxMeCredentials | any>;\n\n constructor(\n private monkeyecxConfigService: MonkeyEcxConfigService,\n private store: Store\n ) {\n this.token = {\n username: '',\n program: '',\n accessToken: '',\n refreshToken: '',\n companyId: '',\n governmentId: '',\n companyTypeUrl: '',\n companyType: '',\n programAdmin: false,\n programType: '',\n accessType: '',\n role: '',\n ownerGovernmentId: '',\n name: '',\n _clearIgnore: {\n ignore: ['username', 'program', 'accessType']\n }\n };\n this.token$ = new BehaviorSubject(null);\n this.me$ = new BehaviorSubject(null);\n }\n\n private setAllTokens(token: MonkeyEcxTokenCredentials) {\n const { token$, store } = this;\n // #TODO - Remover esse código e apenas deixar o username\n // todo o restante ficou salvo na store com a keu sendo o username\n Object.entries(token).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n localStorage.setItem(key, value);\n }\n });\n\n const username = token.username || localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n ...token\n }\n ]\n })\n );\n }\n\n token$.next(token);\n }\n\n private async getAllTokens() {\n try {\n const { store, monkeyecxConfigService } = this;\n const username = localStorage.getItem('username');\n\n let data: any = {\n username: username || '',\n program: '',\n accessToken: ''\n };\n\n if (username) {\n data = await store.select(\n selectors.monkeyecxStorage.select({ username })\n ).pipe(take(1)).toPromise();\n if (!data?.program) {\n const program = localStorage.getItem('program');\n data = {\n ...data,\n program\n };\n }\n }\n\n const config = await monkeyecxConfigService.config()\n .pipe(take(1)).toPromise();\n\n const accessType = localStorage.getItem('accessType');\n const companyType = localStorage.getItem('companyType');\n\n if (!data.accessToken) {\n const accessToken = localStorage.getItem('accessToken');\n const refreshToken = localStorage.getItem('refreshToken');\n data = {\n ...data,\n accessToken,\n refreshToken\n };\n }\n\n if (!data.role) {\n const role = localStorage.getItem('role');\n data = {\n ...data,\n role\n };\n }\n\n const handledData = {\n ...data,\n accessType,\n companyType\n };\n if (!data?.program && config?.program) {\n handledData.program = config?.program?.token;\n }\n delete handledData?.me;\n\n return handledData;\n } catch (e) {\n // not to do\n }\n return null;\n }\n\n private setAllMe(me: MonkeyEcxMeCredentials) {\n const { me$, store } = this;\n let previousMe = JSON.parse(localStorage?.getItem('me') || '{}');\n Object.entries(me).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n previousMe = {\n ...previousMe,\n [key]: value\n };\n }\n });\n\n const username = me.username || localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n me\n }\n ]\n })\n );\n }\n\n localStorage.setItem('me', JSON.stringify(previousMe));\n me$.next(previousMe);\n }\n\n private async getAllMe() {\n const { store } = this;\n const username = localStorage.getItem('username');\n let data: MonkeyEcxStorage | undefined = {\n username: username || '',\n program: ''\n };\n\n if (username) {\n data = await store.select(\n selectors.monkeyecxStorage.select({ username })\n ).pipe(take(1)).toPromise();\n }\n\n let handledData: any = {\n ...data\n };\n\n if (!handledData.me) {\n try {\n handledData = {\n me: JSON.parse(localStorage.getItem('me') || '{}')\n };\n } catch (e) {\n // not to do\n }\n }\n\n return handledData?.me;\n }\n\n public tokenHasChanged(): Observable<MonkeyEcxTokenCredentials> {\n return this.token$.asObservable();\n }\n\n public meHasChanged(): Observable<MonkeyEcxMeCredentials> {\n return this.me$.asObservable() || null;\n }\n\n public async getToken() {\n return this.getAllTokens();\n }\n\n public async getMe() {\n return this.getAllMe();\n }\n\n public setToken(token: MonkeyEcxTokenCredentials) {\n this.setAllTokens(token);\n }\n\n public setMe(me: MonkeyEcxMeCredentials) {\n this.setAllMe(me);\n }\n\n public clear(force?: boolean): Observable<boolean> {\n const { token, store } = this;\n try {\n Object.entries(token || {}).forEach(([key, value]) => {\n if (\n (token?._clearIgnore?.ignore || []).filter((val: any) => {\n return val === key;\n }).length <= 0 ||\n force === true\n ) {\n localStorage.removeItem(key);\n }\n });\n\n localStorage.removeItem('me');\n localStorage.removeItem('mecx-store');\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(actions.monkeyecxStorage.deleteOne({ data: { username } }));\n }\n } catch (error) {\n return of(false);\n }\n return of(true);\n }\n\n /**\n * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])\n */\n public clearCredentials(\n fields = ['companyId', 'governmentId', 'companyType', 'programAdmin', 'role']\n ) {\n const { store } = this;\n let obj: any = null;\n fields?.forEach((key: string) => {\n obj = {\n ...obj,\n [key]: null\n };\n localStorage.removeItem(key);\n });\n\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n ...obj\n }\n ]\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCookieStorageService {\n constructor(private cookieService: CookieService) {\n // not to do\n }\n\n public setCookie(name: string, value: any, environment: any) {\n this.removeCookie(name, environment);\n const { urlDomain } = environment;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.set(name, value, undefined, '/', handledDomain, true, 'None');\n }\n\n public getCookie(name: string) {\n return this.cookieService.get(name);\n }\n\n public removeCookie(name: string, environment: any) {\n const { urlDomain } = environment;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.delete(name, '/', handledDomain, true, 'None');\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxTokenStorageService } from '../services/storage';\n\n@Directive({\n selector: '[monkeyecxSecurity]'\n})\nexport class MonkeyEcxSecurityDirective implements OnInit {\n @Input('securityRoles') roles: string[] = [];\n\n @Input('securityByExclusion') byExclusion: boolean = false;\n\n private tokenCredentials: any = null;\n\n constructor(\n private elementRef: ElementRef,\n private tokenStorageService: MonkeyEcxTokenStorageService,\n private cdr: ChangeDetectorRef\n ) {\n // not to do\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n const handledRole = localStorage.getItem('role');\n\n return tokenCredentials?.role || handledRole || '';\n }\n\n private handleAccess() {\n const { roles, byExclusion } = this;\n let display = 'none';\n const found = roles?.indexOf(this.getRole());\n if (byExclusion) {\n display = 'block';\n if (found > -1) {\n display = 'none';\n }\n } else {\n display = 'none';\n if (found > -1) {\n display = 'block';\n }\n }\n\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n private async handleData() {\n this.tokenCredentials = await this.tokenStorageService.getToken();\n this.handleAccess();\n }\n\n ngOnInit() {\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.tokenStorageService.tokenHasChanged().subscribe(() => {\n this.handleData();\n });\n\n this.handleData();\n }\n}\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxTooltip]',\n})\nexport class MonkeyEcxTooltipDirective {\n @Input() tooltipDelay?: number;\n\n @Input() tooltipPosition?: string;\n\n @Input() tooltipText?: string;\n\n @Input() tooltipTitle?: string;\n\n @Input() enableToShow = true;\n\n offset = 10;\n\n tooltip: HTMLElement | null = null;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('mouseenter')\n onMouseEnter() {\n if (!this.tooltip) {\n this.show();\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.tooltip) {\n this.hide();\n }\n }\n\n @HostListener('click')\n clickout() {\n if (this.tooltip) {\n this.hide();\n }\n }\n\n show() {\n if (this.enableToShow) {\n this.create();\n this.setPosition();\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip-show');\n setTimeout(() => {\n this.hide();\n }, 5000);\n }\n }\n\n hide() {\n if (!this.tooltip) return;\n this.renderer.removeClass(this.tooltip, 'monkeyecx-tooltip-show');\n this.renderer.removeChild(document.body, this.tooltip);\n\n this.tooltip = null;\n }\n\n create() {\n const tooltipElement = document.createElement('div');\n\n this.tooltip = this.renderer.createElement('span');\n\n if (this.tooltipTitle) {\n const tooltipTitleElement = document.createElement('span');\n\n tooltipTitleElement.innerText = `${this.tooltipTitle}`;\n tooltipTitleElement.className = 'monkeyecx-tooltip-title';\n\n tooltipElement.appendChild(tooltipTitleElement);\n }\n\n if (this.tooltipText) {\n const tooltipTextElement = document.createElement('span');\n\n tooltipTextElement.innerText = `${this.tooltipText}`;\n tooltipTextElement.className = 'monkeyecx-tooltip-description';\n tooltipElement.appendChild(tooltipTextElement);\n }\n\n this.renderer.appendChild(this.tooltip, tooltipElement);\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip');\n this.renderer.addClass(this.tooltip, `monkeyecx-tooltip-${this.tooltipPosition}`);\n\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.tooltipDelay}ms`);\n }\n\n setPosition() {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n const tooltipPos = this.tooltip?.getBoundingClientRect();\n if (!tooltipPos) return;\n const scrollPos =\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n let top: number = 0;\n let left: number = 0;\n\n if (this.tooltipPosition === 'top') {\n top = hostPos.top - tooltipPos.height - this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPosition === 'bottom') {\n top = hostPos.bottom + this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPosition === 'left') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - this.offset;\n }\n\n if (this.tooltipPosition === 'right') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + this.offset;\n }\n\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\n\ninterface SnackbarActionConfig {\n confirm?: {\n style: 'link' | 'button';\n label: string;\n action: Function;\n keepOnAction?: boolean;\n };\n cancel?: {\n style: 'link' | 'button';\n label: string;\n action: Function;\n keepOnAction?: boolean;\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsService {\n constructor(\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n // not to do\n }\n\n show({\n type = 'warning',\n title,\n message,\n duration\n }: {\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading';\n title: string;\n message: string;\n duration: number;\n }) {\n const i18n = this.translateService.instant(`MECX-ALERTS.${type}`.toUpperCase());\n\n this.snackbarService.show({\n title: i18n?.TITLES?.[title],\n message: i18n?.MESSAGES[message],\n type,\n duration: duration || 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n\n showWarning({ title, message, duration }: { title: string; message: string; duration: number }) {\n const i18n = this.translateService.instant('MECX-ALERTS.WARNING');\n\n this.snackbarService.show({\n title: i18n?.TITLES?.[title],\n message: i18n?.MESSAGES[message],\n type: 'warning',\n duration: duration || 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n\n showWithClose({\n type = 'warning',\n title,\n message\n }: {\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading';\n title: string;\n message: string;\n }) {\n const i18n = this.translateService.instant([\n `MECX-ALERTS.${type}`.toUpperCase(),\n 'MECX-ALERTS.BUTTONS'\n ]);\n\n this.snackbarService.show({\n title: i18n?.[`MECX-ALERTS.${type}`.toUpperCase()].TITLES?.[title],\n message: i18n?.[`MECX-ALERTS.${type}`.toUpperCase()].MESSAGES[message],\n type,\n keepOpen: true,\n horizontalPosition: 'center',\n verticalPosition: 'top',\n action: {\n cancel: {\n style: 'button',\n label: i18n?.['MECX-ALERTS.BUTTONS'].CLOSE,\n action: () => {}\n }\n }\n });\n }\n\n showWithActions({\n type = 'warning',\n title,\n message,\n duration,\n keepOpen,\n action\n }: {\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading';\n title: string;\n message: string;\n duration?: number;\n keepOpen?: boolean;\n action: SnackbarActionConfig;\n }) {\n const i18n = this.translateService.instant([\n `MECX-ALERTS.${type}`.toUpperCase(),\n 'MECX-ALERTS.BUTTONS'\n ]);\n\n action = {\n ...action,\n confirm: action.confirm\n ? { ...action.confirm, label: i18n?.['MECX-ALERTS.BUTTONS'][action.confirm.label] }\n : action.confirm,\n cancel: action.cancel\n ? { ...action.cancel, label: i18n?.['MECX-ALERTS.BUTTONS'][action.cancel.label] }\n : action.cancel\n };\n\n this.snackbarService.show({\n title: i18n?.[`MECX-ALERTS.${type}`.toUpperCase()].TITLES?.[title],\n message: i18n?.[`MECX-ALERTS.${type}`.toUpperCase()].MESSAGES[message],\n type,\n duration: duration || undefined,\n keepOpen: keepOpen || false,\n horizontalPosition: 'center',\n verticalPosition: 'top',\n action\n });\n }\n}\n","/* eslint-disable no-console */\nimport { HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthenticationService {\n constructor() {\n // not to do\n }\n\n hadAtLeastOneLogin = async () => {\n console.error('hadAtLeastOneLogin needs to be declared!');\n return null;\n };\n\n redirectApp = () => {\n console.error('redirectApp needs to be declared!');\n return null;\n };\n\n redirectLoginWelcomeBack = (route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot) => {\n console.error('redirectLoginWelcomeBack needs to be declared!');\n return null;\n };\n\n isAuthorized = async () => {\n console.error('isAuthorized needs to be declared!');\n return false;\n };\n\n isCompanyAuthorized = async () => {\n console.error('isCompanyAuthorized needs to be declared!');\n return false;\n };\n\n isTokenMandatory = (url: string): boolean => {\n console.error('isTokenMandatory needs to be declared!');\n return false;\n };\n\n getRequestWithHeaders = (request: HttpRequest<any>): HttpRequest<any> | any => {\n console.error('getRequestWithHeaders needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersOb = (request: HttpRequest<any>): Observable<any> | any => {\n console.error('getRequestWithHeadersOb needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersAsync = async (request: HttpRequest<any>) => {\n console.error('getRequestWithHeadersAsync needs to be declared!');\n return null;\n };\n\n refreshShouldHappen = (response: HttpErrorResponse): boolean => {\n console.error('refreshShouldHappen needs to be declared!');\n return false;\n };\n\n refreshToken = async () => {\n console.error('refreshToken needs to be declared!');\n return null;\n };\n\n getToken = async () => {\n console.error('getToken needs to be declared!');\n return null;\n };\n\n init(args: {\n hadAtLeastOneLogin?: any;\n redirectApp?: any;\n redirectLoginWelcomeBack?: any;\n isAuthorized?: any;\n isTokenMandatory?: any;\n isCompanyAuthorized?: any;\n getRequestWithHeaders?: any;\n getRequestWithHeadersAsync?: any;\n getRequestWithHeadersOb?: any;\n refreshShouldHappen?: any;\n refreshToken?: any;\n getToken?: any;\n }) {\n this.hadAtLeastOneLogin = args?.hadAtLeastOneLogin || this.hadAtLeastOneLogin.bind(this);\n this.redirectApp = args?.redirectApp || this.redirectApp.bind(this);\n this.redirectLoginWelcomeBack =\n args?.redirectLoginWelcomeBack || this.redirectLoginWelcomeBack.bind(this);\n this.isAuthorized = args?.isAuthorized || this.isAuthorized.bind(this);\n this.isTokenMandatory = args?.isTokenMandatory || this.isTokenMandatory.bind(this);\n this.isCompanyAuthorized = args?.isCompanyAuthorized || this.isCompanyAuthorized.bind(this);\n this.getRequestWithHeaders =\n args?.getRequestWithHeaders || this.getRequestWithHeaders.bind(this);\n this.getRequestWithHeadersAsync =\n args?.getRequestWithHeadersAsync || this.getRequestWithHeadersAsync.bind(this);\n this.getRequestWithHeadersOb = args?.getRequestWithHeadersOb.bind(this);\n this.refreshShouldHappen = args?.refreshShouldHappen || this.refreshShouldHappen.bind(this);\n this.refreshToken = args?.refreshToken || this.refreshToken.bind(this);\n this.getToken = args?.getToken || this.getToken.bind(this);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardCompany implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n const { monkeyecxAuthenticationService } = this;\n\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\n if (await monkeyecxAuthenticationService.isCompanyAuthorized()) {\n return true;\n }\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n if (await this.monkeyecxAuthenticationService.hadAtLeastOneLogin()) {\n this.monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n return false;\n }\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuardByRole implements CanActivate {\n private securityCredentials: {\n roles: string[],\n byExclusion: boolean\n } | null = null;\n\n private tokenCredentials: any = null;\n\n constructor(\n private tokenStorage: MonkeyEcxTokenStorageService,\n private router: Router\n ) {\n // not to do\n }\n\n private navigateToErrorPage() {\n const { tokenCredentials } = this;\n const companyType = tokenCredentials?.companyType;\n let path = '/app/pages/forbidden';\n if (companyType) {\n path = `/app/${companyType}/pages/forbidden`;\n }\n this.router?.navigate([path.toLowerCase()]);\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n return tokenCredentials?.role || '';\n }\n\n private allowedSecurityAccess(roles: string[], byExclusion: boolean): boolean {\n if (!roles?.length) return true;\n\n const found = roles?.indexOf(this.getRole());\n let ret = false;\n if (byExclusion) {\n ret = true;\n if (found > -1) {\n ret = false;\n }\n } else {\n ret = false;\n if (found > -1) {\n ret = true;\n }\n }\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\n ret = true;\n }\n return ret;\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\n this.securityCredentials = route.data?.securityCredentials;\n if (this.securityCredentials) {\n const { roles, byExclusion } = this.securityCredentials;\n\n this.tokenCredentials = await this.tokenStorage.getToken();\n\n if (!this.allowedSecurityAccess(roles, byExclusion)) {\n this.navigateToErrorPage();\n return false;\n }\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuard implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n const { monkeyecxAuthenticationService } = this;\n\n if (await monkeyecxAuthenticationService.isAuthorized()) {\n return true;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","/* eslint-disable indent */\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\n\n@NgModule()\nexport class MonkeyEcxConfigModule {\n constructor(\n @Optional()\n @SkipSelf()\n parentModule: MonkeyEcxConfigModule\n ) {\n if (parentModule) {\n throw new Error('MonkeyEcxConfigModule is already loaded. Import it in the AppModule only!');\n }\n }\n\n static forRoot(): ModuleWithProviders<MonkeyEcxConfigModule> {\n return {\n ngModule: MonkeyEcxConfigModule,\n providers: [MonkeyEcxConfigService]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { first } from 'rxjs/operators';\nimport { MonkeyEcxConfig } from '../../interfaces';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\nimport { MonkeyEcxCookieStorageService } from '../storage';\nimport { CurrencyConfigComponent } from '../../../components/currency-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCurrencyConfigService {\n constructor(\n private modalService: MonkeyStyleGuideModalFixedService,\n private cookieService: MonkeyEcxCookieStorageService,\n private configService: MonkeyEcxConfigService\n ) {\n // not to do\n }\n\n private onHandleCurrencyConfig({ currency, environment }) {\n const { cookieService } = this;\n const settings: string = cookieService.getCookie('monkey-app-settings');\n const locale: string = cookieService.getCookie('monkey-app-locale');\n\n if (!settings) {\n cookieService.setCookie(\n 'monkey-app-settings',\n btoa(\n JSON.stringify({\n showedCurrencyConfig: true\n })\n ),\n environment\n );\n } else {\n const decoded = JSON.parse(atob(settings));\n\n cookieService.setCookie(\n 'monkey-app-settings',\n btoa(\n JSON.stringify({\n ...decoded,\n showedCurrencyConfig: true\n })\n ),\n environment\n );\n }\n\n if (locale) {\n const decoded = JSON.parse(atob(locale));\n\n cookieService.setCookie(\n 'monkey-app-locale',\n btoa(\n JSON.stringify({\n ...decoded,\n currency\n })\n ),\n environment\n );\n }\n }\n\n private async onShowCurrencyConfig(environment: any, force = false) {\n const { cookieService } = this;\n const settings: string = cookieService.getCookie('monkey-app-settings');\n let showed = false;\n if (settings) {\n const decoded = JSON.parse(atob(settings));\n showed = decoded.showedCurrencyConfig;\n }\n\n const config: MonkeyEcxConfig = await this.configService\n .config()\n .pipe(\n first((val: any) => {\n return !!val && JSON.stringify(val) !== '{}';\n })\n )\n .toPromise();\n\n const currency = config?.i18n?.currency;\n const currencies = config?.i18n?.currencies;\n\n if ((!showed || force) && currencies?.length) {\n this.modalService.open(CurrencyConfigComponent, {\n color: 'theme',\n size: 'md',\n data: {\n currency,\n currencies,\n callback: (currency = 'BRL') => {\n this.onHandleCurrencyConfig({\n currency,\n environment\n });\n }\n }\n });\n }\n }\n\n public apply(environment: any, force = false) {\n this.onShowCurrencyConfig(environment, force);\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, NgZone } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxAuthenticationService } from '../auth';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxHttpErrorHandlingService extends MonkeyEcxCommonsService {\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private router: Router,\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n super(monkeyecxService, tokenStorage);\n\n super.resolve(null, null);\n\n this.geti18n(this.translateService, 'SERVICES.WARNING');\n }\n\n private isHttpCodeIgnoreMessage(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private isHttpCodeIgnoreRedirect(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\n if (status === 409 || status === 400 || status === 401 || status === 429) {\n return 'warning';\n }\n\n return 'error';\n }\n\n private showMessage(message: string, error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { snackbarService } = this;\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status) || error.status === 401) {\n const keepOnUrlChange = error.status === 401;\n\n snackbarService.show({\n title: this.__i18n?.TITLE,\n message,\n type: this.getMessageType(error.status),\n duration: 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top',\n keepOnUrlChange\n });\n }\n }\n\n private handleMessage(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n // eslint-disable-next-line camelcase\n const { notifications, error_description, message } = error?.error || {\n notifications: '',\n error_description: '',\n message: ''\n };\n\n let customMessage = '';\n\n if (message) {\n customMessage = message;\n }\n\n // eslint-disable-next-line camelcase\n if (error_description) {\n // eslint-disable-next-line camelcase\n customMessage = error_description;\n }\n\n if (notifications) {\n customMessage = notifications;\n }\n\n if (!customMessage) {\n if (error.error instanceof Blob) {\n const blob = new Blob([error.error], {\n type: 'application/json'\n });\n const reader = new FileReader();\n reader.addEventListener('loadend', (e) => {\n const text = e?.target?.result;\n const jsonResp = JSON.parse(text as string);\n customMessage = jsonResp.notifications;\n this.showMessage(customMessage, error, mkc);\n });\n reader.readAsText(blob);\n } else if (!error?.url?.includes('assets.monkey')) {\n const defaultMsg = this.__i18n['ERROR-HANDLING']?.ERROR;\n const msg =\n error.status === 429\n ? this.__i18n['ERROR-HANDLING']?.['TOO-MANY-REQUEST'] ?? defaultMsg\n : defaultMsg;\n\n this.showMessage(msg, error, mkc);\n }\n } else {\n this.showMessage(customMessage, error, mkc);\n }\n }\n\n public async handleError(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { router, tokenStorage } = this;\n const { status } = error;\n const { companyType } = (await tokenStorage?.getToken()) || { companyType: '' };\n\n const routes: any = {\n 403: 'forbidden',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n let route = '/app';\n if (companyType) {\n route = `${route}/${companyType}/pages`;\n } else {\n route = `${route}/pages`;\n }\n\n const found = routes[status];\n let timeout = 0;\n\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\n route = `${route}/${found}`.toLowerCase();\n timeout = 800;\n router.navigate([route]);\n }\n\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, timeout);\n }\n\n public handleErrorRefreshToken(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const hasToRefresh = this.monkeyecxAuthenticationService.refreshShouldHappen(error);\n if ((error.status === 401 || error.status === 400) && hasToRefresh) {\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, 1000);\n NgZone.call(this.monkeyecxAuthenticationService.redirectLoginWelcomeBack(), {});\n } else if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\n this.handleMessage(error, mkc);\n }\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MECX_ENV } from '../../injectors';\nimport { MonkeyEcxLogs } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxOthersErrorsHandlingService {\n constructor(\n private modalService: MonkeyStyleGuideModalService,\n @Inject(MECX_ENV) private env: InjectionToken<string>\n ) {\n // not to do\n }\n\n public handleError(error: any) {\n const { modalService } = this;\n const { message } = error;\n\n try {\n if (this.env.toString() !== 'prod') {\n console.log('==> error <==');\n console.log(error);\n }\n\n MonkeyEcxLogs.log({\n message: '==> error <==',\n error\n });\n } catch (e) {\n // not to\n }\n\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(message)) {\n modalService.open(VersionChangedComponent, {\n color: 'theme',\n size: 'md',\n hideClose: true\n });\n }\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxHandlingService } from '../monkeyecx-handling.service';\nimport { MonkeyEcxHttpErrorHandlingService } from './monkeyecx-http-error-handling.service';\nimport { MonkeyEcxOthersErrorsHandlingService } from './monkeyecx-others-errors-handling.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxErrorHandlingService implements ErrorHandler {\n constructor(private injector: Injector) {\n // not to do\n }\n\n handleError(error: any, type?: string) {\n const { injector } = this;\n const handlingService = injector.get(MonkeyEcxHandlingService);\n const httpErrorHandlingService = injector.get(MonkeyEcxHttpErrorHandlingService);\n const othersErrorsHandlingService = injector.get(MonkeyEcxOthersErrorsHandlingService);\n\n if (error instanceof HttpErrorResponse) {\n const sCredentials: MonkeyEcxServiceCredentials =\n handlingService?.getMonkeyEcxServiceCredentials() || {};\n if (MonkeyEcxUtils.persistNullEmptyUndefined(type) && type === 'refresh_token') {\n httpErrorHandlingService.handleErrorRefreshToken(error, sCredentials);\n } else httpErrorHandlingService.handleError(error, sCredentials);\n } else {\n othersErrorsHandlingService.handleError(error);\n }\n }\n}\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxErrorHandlingService } from './monkeyecx-error-handling.service';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxErrorHandlingModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxErrorHandlingModule> {\n return {\n ngModule: MonkeyEcxErrorHandlingModule,\n providers: [\n {\n provide: ErrorHandler,\n useClass: MonkeyEcxErrorHandlingService,\n },\n ],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLoggedHandlingService {\n private schedules: MonkeyEcxRequestSchedule[] = [];\n\n private genericSchedules: MonkeyEcxRequestSchedule[] = [];\n\n constructor() {\n // not to do\n }\n\n private destroySchedule() {\n this.schedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.schedules = [];\n }\n\n private destroyGenericSchedule() {\n this.genericSchedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.genericSchedules = [];\n }\n\n public addSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.schedules = sch;\n }\n\n public addGenericSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.genericSchedules = sch;\n }\n\n public destroy() {\n this.destroySchedule();\n this.destroyGenericSchedule();\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxPaginationService {\n private callbacks: {\n [key: string]: Function;\n } = {};\n\n constructor() {\n // not to do\n }\n\n public setCallback(callback: Function, name: string = 'main') {\n this.callbacks = {\n ...this.callbacks,\n [name]: callback\n };\n }\n\n public execute(type: string, name: string = 'main') {\n const { callbacks } = this;\n const callback = callbacks?.[name];\n if (callback) callback(type);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestDownload } from '../../interfaces';\nimport { MonkeyEcxDownloadEvents } from '../../utils/statics';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadHandlingService {\n private download: MonkeyEcxRequestDownload[] = [];\n\n private download$: BehaviorSubject<MonkeyEcxRequestDownload[] | any>;\n\n constructor() {\n this.download$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownload) {\n this.download.push(q);\n this.download$.next(this.download);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownload, status?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved\n .map((val: any) => {\n if (val.status === MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || MonkeyEcxDownloadEvents.Finished\n };\n }\n return valSaved;\n }\n return null;\n })\n .filter((_: any) => {\n return _;\n })\n ];\n\n this.download = this.download.filter((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n this.download$.next(this.download);\n }\n\n private updateItem(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const currentPecentage = Math.floor(((loaded || 0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n };\n }\n return valSaved;\n })\n ];\n this.download$.next(this.download);\n }\n\n public set(q: MonkeyEcxRequestDownload) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownload[]> {\n return this.download$.asObservable();\n }\n\n public update(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n this.updateItem(q, loaded, total);\n }\n\n public finishItem(q: MonkeyEcxRequestDownload, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.download.find((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { Statics } from '../../utils';\nimport { MonkeyEcxRequestDownloaded } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadedHandlingService {\n private downloaded: MonkeyEcxRequestDownloaded[] = [];\n\n private downloaded$: BehaviorSubject<MonkeyEcxRequestDownloaded[] | any>;\n\n constructor() {\n this.downloaded$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownloaded) {\n this.downloaded.push(q);\n this.downloaded$.next(this.downloaded);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownloaded, status?: number) {\n const saved = [...this.downloaded];\n this.downloaded = [\n ...saved.map((val: any) => {\n if (val.status === Statics.MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxDownloadEvents.Finished,\n action: q.action\n };\n }\n return valSaved;\n }\n return val;\n })\n ];\n this.downloaded$.next(this.downloaded);\n }\n\n public set(q: MonkeyEcxRequestDownloaded) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownloaded[]> {\n return this.downloaded$.asObservable();\n }\n\n public finishItem(q: MonkeyEcxRequestDownloaded, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.downloaded.find((_: any) => {\n return _.status === Statics.MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n }\n\n public setQueue(q: MonkeyEcxRequestQueue | null) {\n if (!q) return;\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue | null, action?: Function, status?: number) {\n if (!q) return;\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueModalHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue$ = new BehaviorSubject(false);\n\n private allQueueFinished$ = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue$.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total||0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n if (this.queue.length <= 0) {\n this.allQueueFinished$.next(true);\n }\n }\n\n public setQueue(q: MonkeyEcxRequestQueue) {\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue, action?: Function, status?: number) {\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n\n public hasAllQueueFinished(): Observable<boolean> {\n return this.allQueueFinished$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { MonkeyEcxUtils } from '../../utils/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDiscoveryParamsService {\n constructor(private router: Router) {\n // not to do\n }\n\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.getLastChild(route.firstChild);\n }\n\n return route;\n }\n\n public setData(field: string, value: any): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n route.data[field] = value;\n }\n\n public getData(field: string): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\n return found;\n }\n\n public getDataFromCurrentNavigation(field: string, router?: Router): any {\n const navigation = this.router.getCurrentNavigation() || router?.getCurrentNavigation();\n let state: any = null;\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\n state = navigation?.extras.state;\n }\n\n return state ? state[field] : null;\n }\n\n public getParam(param: string): string | null {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\n ? route?.paramMap?.get(param) || ''\n : '';\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\n return found;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxLoggedHandlingService } from '../logged';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestScheduleService {\n private schedule: MonkeyEcxRequestSchedule[] | any[] = [];\n\n private genericSchedule: MonkeyEcxRequestSchedule[] | any[] = [];\n\n constructor(\n public monkeyecxService: MonkeyEcxService,\n private monkeyLoggedHandlingService: MonkeyEcxLoggedHandlingService\n ) {\n // not to do\n }\n\n private addToSchedule(q: MonkeyEcxRequestSchedule) {\n this.schedule.push(q);\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private addToGenericSchedule(q: MonkeyEcxRequestSchedule) {\n this.genericSchedule.push(q);\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\n }\n\n private removeFromSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private removeFromGenericSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.genericSchedule];\n this.genericSchedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\n }\n\n private removeFromScheduleById(id: string) {\n const q = this.getScheduleById(id);\n clearInterval(q?.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q?.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 403, 404, 500, 503]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n private doCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action, errorAction } = sch;\n\n const errAction = errorAction || ((...args) => {});\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp\n },\n sch\n );\n },\n (err: HttpErrorResponse) => {\n this.removeFromSchedule(sch);\n errAction(\n {\n ...data\n },\n sch,\n err\n );\n }\n );\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 401, 403, 404, 500, 503],\n httpCodeIgnoreRedirect: [503]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n private doGenericCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action, errorAction } = sch;\n\n const errAction = errorAction || ((...args) => {});\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp\n },\n sch\n );\n },\n (err: HttpErrorResponse) => {\n this.removeFromGenericSchedule(sch);\n errAction(\n {\n ...data\n },\n sch,\n err\n );\n }\n );\n }\n\n public setSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const id = q?.id || `${MonkeyEcxUtils.getRandomString(40)}`;\n const obj = {\n ...q,\n id\n };\n\n const interval = setInterval(() => {\n this.doCall({\n ...obj,\n interval\n });\n }, delay);\n\n const sch = {\n ...obj,\n interval\n };\n\n this.addToSchedule(sch);\n return sch;\n }\n\n public setGenericSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const interval = setInterval(() => {\n this.doGenericCall({\n ...q,\n interval\n });\n }, delay);\n\n const sch = {\n ...q,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n interval\n };\n\n this.addToGenericSchedule(sch);\n return sch;\n }\n\n public removeSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromSchedule(q);\n }\n\n public removeGenericSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromGenericSchedule(q);\n }\n\n public removeScheduleById(id: string) {\n this.removeFromScheduleById(id);\n }\n\n public getScheduleById(id: string) {\n const q = this.schedule.find((sch: MonkeyEcxRequestSchedule) => {\n return sch.id === id;\n });\n return q;\n }\n}\n","import { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreBaseService<\n T,\n K extends MonkeyEcxConfigStore\n> extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n protected store: Store,\n config: K\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links);\n }\n\n this.updatePage?.(page);\n } else data = resp;\n\n this.update?.(data);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[]): T | T[] {\n try {\n const handle = (item: T) => {\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[]) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(data: MonkeyEcxPage) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(data: MonkeyEcxLinks) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n },\n requestInProgress: {\n showProgress: true\n }\n })\n protected async loadData(url: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\n this.handleResponseData(data, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw new Error(`${e?.message}`);\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination) {\n const { store, selector } = this;\n const data = await store\n .select(selector.selectLinks())\n .pipe(take(1))\n .toPromise();\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport {\n MonkeyEcxPage,\n MonkeyEcxPaginationData,\n MonkeyEcxStoreControl,\n MonkeyEcxStoreLoadPageParams,\n MonkeyEcxStoreLoadParams\n} from '../../interfaces';\n\nexport abstract class MonkeyEcxCommonsActions {\n static getActions<T>(actionName: string) {\n const clear = createAction(`[${actionName}] Clear All`, props<{ identifier: string }>());\n const load = createAction(`[${actionName}] Load`, props<MonkeyEcxStoreLoadParams>());\n const loadPagination = createAction(\n `[${actionName} Pagination] Load`,\n props<MonkeyEcxStoreLoadPageParams>()\n );\n const updateAll = createAction(`[${actionName}] Update All`, props<{ data: T[] }>());\n const updateOne = createAction(`[${actionName}] Update One`, props<{ data: T }>());\n const removeOne = createAction(`[${actionName}] Remove One`, props<{ data: T }>());\n const updateControl = createAction(\n `[${actionName}] Update Control`,\n props<{ data: MonkeyEcxStoreControl }>()\n );\n const updatePage = createAction(\n `[${actionName}] Update Page`,\n props<{ data: MonkeyEcxPage }>()\n );\n const updateLinks = createAction(\n `[${actionName}] Update Links`,\n props<{ data: MonkeyEcxPaginationData }>()\n );\n\n return {\n clear,\n load,\n loadPagination,\n removeOne,\n updateAll,\n updateOne,\n updateControl,\n updateLinks,\n updatePage\n };\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { parseUrl } from 'query-string';\n\ninterface Identifiable {\n identifier?: string;\n}\n\ninterface IReducer {\n featureKey: string;\n selectAll: any;\n}\n\nconst urlHasField = (url: string, field: string) => {\n const obj: any = parseUrl(url);\n return !!obj?.query?.[field];\n};\n\nexport abstract class MonkeyEcxCommonsSelectors {\n static getSelectors<T extends Identifiable>(reducer: IReducer) {\n const selectState = createFeatureSelector(reducer.featureKey);\n\n const selectAll: any = createSelector(selectState, reducer.selectAll);\n\n const selectByIdentifier = (props: { identifier: string }) => {\n return createSelector(selectAll, (entities: T[]): T[] => {\n return entities.filter((_: T) => {\n return _.identifier === props.identifier;\n });\n });\n };\n\n const selectOneByIdentifier = (props: { identifier: string }) => {\n return createSelector(selectAll, (entities: T[]): T | null => {\n return (\n entities.find((_: T) => {\n return _.identifier === props.identifier;\n }) || null\n );\n });\n };\n\n const selectControl = () => {\n return createSelector(selectState, (state: any): any => {\n return state.control;\n });\n };\n\n const selectLinks = (props?: { identifier: string }) => {\n return createSelector(selectState, (state: any): any => {\n if (props?.identifier) {\n return state.links?.[props.identifier];\n }\n\n return state.links;\n });\n };\n\n const selectPage = (props?: { identifier: string }) => {\n return createSelector(selectState, (state: any): any => {\n if (props?.identifier) {\n return state.page?.[props.identifier];\n }\n\n return state.page;\n });\n };\n\n const selectData = () => {\n return createSelector(selectState, (state: any): any => {\n return state.data;\n });\n };\n\n const linksHasDifference = (props: { identifier: string; url: string }) => {\n return createSelector(selectState, (state: any): any => {\n const { pagination } = state;\n const { identifier, url } = props;\n let hasDifference = false;\n let hasField = false;\n\n try {\n const handlePaginationUrl = parseUrl(`${pagination?.[identifier]?.url}`);\n const handleUrl = parseUrl(`${url}`);\n hasDifference =\n handlePaginationUrl?.query?.search !== handleUrl?.query?.search ||\n handlePaginationUrl?.query?.sort !== handleUrl?.query?.sort;\n hasField = urlHasField(url, 'search') || urlHasField(url, 'sort');\n } catch (e) {\n // not to do\n }\n\n return {\n hasDifference,\n hasField\n };\n });\n };\n\n return {\n selectState,\n selectAll,\n selectData,\n selectControl,\n selectLinks,\n selectByIdentifier,\n selectOneByIdentifier,\n selectPage,\n linksHasDifference\n };\n }\n}\n","import { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreService<\n T,\n K extends MonkeyEcxConfigStore\n> extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n protected store: Store,\n config: K\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, identifier: string, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links, identifier);\n }\n\n this.updatePage?.(page, identifier);\n } else data = resp;\n\n this.update?.(data, identifier);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected async linksHasDifference(url: string, identifier: string) {\n try {\n const { action, store, selector } = this;\n\n const { hasDifference, hasField } = <any>(\n await store\n .select(selector.linksHasDifference({ identifier, url }))\n .pipe(take(1))\n .toPromise()\n );\n\n if (hasDifference && hasField) {\n store.dispatch(action.clear({ identifier }));\n }\n\n return { hasDifference };\n } catch (e) {\n throw new Error(`MECX Core - Method linksHasDifference -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[], identifier: string): T | T[] {\n try {\n const handle = (item: T) => {\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n identifier,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[], identifier: string) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args, identifier)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(args: MonkeyEcxPage, identifier: string) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data: {\n [identifier]: args\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(args: MonkeyEcxLinks, identifier: string) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data: {\n [identifier]: args\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n },\n requestInProgress: {\n showProgress: true\n }\n })\n protected async loadData(url: string, identifier: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\n this.handleResponseData(data, identifier, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw new Error(`${e?.message}`);\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination, identifier: string) {\n const { store, selector } = this;\n const data = await store\n .select(selector.selectLinks({ identifier }))\n .pipe(take(1))\n .toPromise();\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href, identifier);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url, identifier) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { base64ToBuffer } from '../../utils/utils';\nimport { MECX_ALPHA, MECX_BETA } from '../../injectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LService {\n constructor(\n @Inject(MECX_ALPHA) private alpha: InjectionToken<string>,\n @Inject(MECX_BETA) private beta: InjectionToken<string>\n ) {\n // not to do\n }\n\n async y(data: string): Promise<string> {\n if (!window.crypto || !window.crypto.subtle) {\n throw new Error('unsupported function');\n }\n\n const key = await this.w();\n const decrypted = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: base64ToBuffer(this.alpha.toString())\n },\n key,\n base64ToBuffer(data)\n );\n const decoder = new TextDecoder();\n return decoder.decode(decrypted);\n }\n\n private async w() {\n const parsedKey = JSON.parse(atob(this.beta.toString()));\n return window.crypto.subtle.importKey('jwk', parsedKey, { name: 'AES-GCM' }, true, [\n 'encrypt',\n 'decrypt'\n ]);\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxConfig } from '../interfaces';\nimport { MonkeyEcxConfigService } from '../services';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFeatureByProgram]'\n})\nexport class MonkeyEcxFeatureByProgramDirective implements OnInit {\n @Input('feature') feature: string = '';\n\n private config?: MonkeyEcxConfig;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private monkeyConfigService: MonkeyEcxConfigService\n ) {\n this.monkeyConfigService.config().subscribe((_: MonkeyEcxConfig) => {\n this.config = _;\n this.init();\n });\n }\n\n private init() {\n if (!this.feature) return;\n this.cdr.detectChanges();\n this.handleDisplay();\n }\n\n private handleDisplay(): void {\n const { feature, config } = this;\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\n return;\n }\n\n const disabled = config?.program?.settings?.[feature];\n\n if (!disabled) {\n display = 'block';\n }\n\n this.elementRef.nativeElement.style.display = display;\n\n if (display === 'none') {\n this.elementRef.nativeElement.remove();\n }\n\n this.cdr.detectChanges();\n }\n\n ngOnInit() {\n this.init();\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\n\n@Directive({\n selector: '[monkeyecxFeature]'\n})\nexport class MonkeyEcxFeatureDirective implements OnDestroy, OnInit {\n @Input('featureName') feature?: string;\n\n private unsubscribeAll = new Subject();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private monkeyecxFeatureToggleService: MonkeyEcxFeatureToggleService\n ) {\n // not to do\n }\n\n private getFeature(feature: string): boolean {\n const { monkeyecxFeatureToggleService } = this;\n\n if (!monkeyecxFeatureToggleService) {\n return false;\n }\n\n return monkeyecxFeatureToggleService?.getFlag(feature) || false;\n }\n\n private handleDisplay(): void {\n if (!this.feature) return;\n const flag = this.getFeature(this.feature);\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\n return;\n }\n\n if (flag) {\n display = 'block';\n }\n\n if (display === 'none') {\n this.elementRef.nativeElement.remove();\n }\n\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n\n ngOnInit() {\n if (!this.feature) return;\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.monkeyecxFeatureToggleService.onFlags\n .pipe(takeUntil(this.unsubscribeAll))\n .subscribe((val: boolean) => {\n if (val) {\n this.handleDisplay();\n }\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxLoading]'\n})\nexport class MonkeyEcxLoadingDirective implements OnChanges {\n private view: EmbeddedViewRef<any> | null = null;\n\n private loadingElement: HTMLElement | null = null;\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n @Input() monkeyecxLoading: boolean = false;\n\n @Input() monkeyecxLoadingSize: 'lg' | 'md' | 'sm' = 'sm';\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['monkeyecxLoading'] || changes['monkeyecxLoadingSize']) {\n this.updateView();\n }\n }\n\n updateView() {\n if (this.monkeyecxLoading) {\n if (this.view) this.viewContainer.clear();\n\n this.loadingElement = document.createElement('div');\n\n this.loadingElement.className = `mecx-loading ${this.monkeyecxLoadingSize}`;\n\n this.elementRef.nativeElement.parentNode.insertBefore(\n this.loadingElement,\n this.elementRef.nativeElement.nextSibling\n );\n } else {\n if (this.loadingElement && this.loadingElement.parentNode) {\n this.loadingElement.parentNode.removeChild(this.loadingElement);\n this.loadingElement = null;\n }\n\n this.viewContainer.clear();\n this.view = this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxDragDropDirective } from './monkeyecx-drag-drop';\nimport { MonkeyEcxFeatureByProgramDirective } from './monkeyecx-feature-by-program-directive';\nimport { MonkeyEcxFeatureDirective } from './monkeyecx-feature-directive';\nimport { MonkeyEcxFormatCurrency } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatUpper } from './monkeyecx-format-upper';\nimport { MonkeyEcxOnlyAlphaNumericDirective } from './monkeyecx-only-alpha-numeric-directive';\nimport { MonkeyEcxOnlyNumbersDirective } from './monkeyecx-only-number-directive';\nimport { MonkeyEcxPopoverOptionsDirective } from './monkeyecx-popover-options.directive';\nimport { MonkeyEcxPopoverDirective } from './monkeyecx-popover.directive';\nimport { MonkeyEcxSecurityDirective } from './monkeyecx-security-directive';\nimport { MonkeyEcxTooltipDirective } from './monkeyecx-tooltip-directive';\nimport { MonkeyEcxLoadingDirective } from './monkeyecx-loading';\n\n@NgModule({\n declarations: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFeatureByProgramDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxLoadingDirective,\n MonkeyEcxTooltipDirective,\n MonkeyEcxPopoverDirective,\n MonkeyEcxPopoverOptionsDirective\n ],\n imports: [CommonModule, OverlayModule],\n exports: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFeatureByProgramDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxLoadingDirective,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxTooltipDirective,\n MonkeyEcxPopoverDirective,\n MonkeyEcxPopoverOptionsDirective\n ]\n})\nexport class MonkeyEcxDirectivesModule {}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { from, Observable, throwError } from 'rxjs';\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\nexport interface Headers {\n name: string;\n value: string;\n}\n\n@Injectable()\nexport class MonkeyEcxHttpConfigErrorInterceptor implements HttpInterceptor {\n constructor(\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\n ) {\n // no to do\n }\n\n private async handle(request: HttpRequest<any>, error: HttpErrorResponse) {\n try {\n if (this.monkeyecxAuthenticationService.refreshShouldHappen(error)) {\n await this.monkeyecxAuthenticationService?.refreshToken();\n const headers = await this.monkeyecxAuthenticationService.getRequestWithHeadersAsync(\n request\n );\n return headers;\n }\n } catch (e) {\n return throwError(e);\n }\n\n return null;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(\n map((event: HttpEvent<any>) => {\n return event;\n }),\n catchError((error: HttpErrorResponse) => {\n return from(this.handle(request, error)).pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError(() => {\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\n return throwError(error);\n })\n );\n })\n );\n }\n}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { from, Observable, throwError } from 'rxjs';\nimport { catchError, first, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxConfigService } from '../services';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigHeaderInterceptor implements HttpInterceptor {\n constructor(\n private authService: MonkeyEcxAuthenticationService,\n private errorHandlingService: MonkeyEcxErrorHandlingService,\n private config: MonkeyEcxConfigService\n ) {\n // not to do\n }\n\n private async handle(request: HttpRequest<any>) {\n const { url } = request;\n if (this.authService.isTokenMandatory(url)) {\n try {\n await this.config\n .config()\n .pipe(\n first((val: any) => {\n return !!val && JSON.stringify(val) !== '{}';\n })\n )\n .toPromise();\n } catch (e) {\n // not to do\n }\n }\n let resp = null;\n try {\n resp = await this.authService.getRequestWithHeadersAsync(request);\n } catch (e) {\n this.errorHandlingService.handleError(e);\n return throwError(e);\n }\n\n return resp;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return from(this.handle(request)).pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError((error: HttpErrorResponse) => {\n this.errorHandlingService.handleError(error);\n return throwError(error);\n })\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxRequestQueueHandlingService } from '../services/request-queue';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestQueue } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigQueueInterceptor implements HttpInterceptor {\n constructor(\n private injector: Injector,\n private monkeyecxRequestQueueHandlingService: MonkeyEcxRequestQueueHandlingService\n ) {\n // not to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isQueueProperty } = this;\n const monkeyecxHandlingService = injector.get(MonkeyEcxHandlingService);\n\n const monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = monkeyecxHandlingService?.getMonkeyEcxRequestQueue();\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.setQueue(monkeyecxRequestQueue);\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.finishQueueItem(monkeyecxRequestQueue);\n }\n })\n );\n }\n\n private isQueueProperty(mrq?: MonkeyEcxRequestQueue | null): boolean {\n return (\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq?.item?.name)\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestLoadingInProgress } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxProgressBarService } from '../../components';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigLoadingInProgressInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {\n // no to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isLoadingInProgressProperty } = this;\n const handlingService: MonkeyEcxHandlingService = injector.get(MonkeyEcxHandlingService);\n const progressBarService: MonkeyEcxProgressBarService = injector.get(\n MonkeyEcxProgressBarService\n );\n\n const inProgress: MonkeyEcxRequestLoadingInProgress | null = handlingService?.getMonkeyEcxServiceCredentials()\n ? handlingService?.getMonkeyEcxServiceCredentials()?.requestInProgress || null\n : null;\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.show();\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.hide();\n }\n })\n );\n }\n\n private isLoadingInProgressProperty(mlp: MonkeyEcxRequestLoadingInProgress | null): boolean {\n if (!mlp) return false;\n return MonkeyEcxUtils.persistNullEmptyUndefined(mlp) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mlp.showProgress)\n ? mlp.showProgress\n : true;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxHttpConfigErrorInterceptor } from './monkeyecx-http-config-error.interceptor';\nimport { MonkeyEcxHttpConfigHeaderInterceptor } from './monkeyecx-http-config-header.interceptor';\nimport { MonkeyEcxHttpConfigQueueInterceptor } from './monkeyecx-http-config-queue.interceptor';\nimport { MonkeyEcxHttpConfigLoadingInProgressInterceptor } from './monkeyecx-http-config-loading-in-progress.interceptor';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxHttpConfigInterceptorModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxHttpConfigInterceptorModule> {\n return {\n ngModule: MonkeyEcxHttpConfigInterceptorModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigHeaderInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigErrorInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigQueueInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigLoadingInProgressInterceptor,\n multi: true,\n },\n ],\n };\n }\n}\n","/* eslint-disable no-unused-vars */\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport enum OpSearch {\n LIKE = ':\\'*:value*\\'',\n BETWEEN = ':first AND :last',\n OR = 'OR',\n AND = 'AND',\n GT = '>:value',\n LT = '<:value',\n EQUAL = '::value',\n IN = ' IN :value',\n NOT = ' !:value'\n}\n\nexport class MonkeyEcxSpecificationSearch {\n constructor() {\n // not to do\n }\n\n private handleValue(value: any) {\n return Object.entries(value).map(([key, value1]) => {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {\n return null;\n }\n if (Array.isArray(value1)) {\n if (key === OpSearch.BETWEEN) {\n return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);\n }\n }\n return `${key}`.replace(':value', `${value1}`);\n })[0];\n }\n\n private queryVisitor(value: any): any {\n const okay = Object.entries(value).map(([key1, value1]) => {\n if (key1 === OpSearch.OR || key1 === OpSearch.AND) {\n const join = (value1 as any[])\n .map((_: any) => {\n return Object.entries(_).map(([key2, value2]) => {\n if (value2 instanceof Object) {\n value2 = this.handleValue(value2);\n }\n return this.criteriaParser(key2, value2);\n })[0];\n })\n .filter((_: any) => {\n return _;\n })\n .join(` ${key1} `);\n return `${join ? `(${join})` : ''}`;\n }\n if (value1 instanceof Object) {\n value1 = this.handleValue(value1);\n }\n return this.criteriaParser(key1, value1);\n });\n return okay\n .filter((_: any) => {\n return _;\n })\n .join(' AND ');\n }\n\n private criteriaParser(key: string, value: any | any[]) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n return '';\n }\n if (value instanceof Object) {\n return this.queryVisitor(value);\n }\n return `${key}${value}`;\n }\n\n public build(spec: any): string {\n try {\n return this.queryVisitor(spec);\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public buildMoreThanOne(field: string, op = OpSearch.EQUAL, addSingleQuotes = false) {\n const self: any = this;\n try {\n if (!self[field]) return [];\n\n const filters = self[field]?.split(',')?.map((filter: string) => {\n if (!filter) return null;\n return {\n [field]: {\n [op]: addSingleQuotes ? `'${filter}'` : `${filter}`\n }\n };\n }).filter((val: any) => { return val; });\n return filters || [];\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public handleFieldSeparatedBy(field: string, signal = ',', op = OpSearch.EQUAL) {\n return this[field]?.split(signal)?.map((_) => {\n return {\n [field]: {\n [op]: _\n }\n };\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { StoreModule } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideModule,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n} from 'monkey-style-guide';\nimport {\n AlertsModule,\n ClosedToMaintenanceModule,\n CurrencyConfigModule,\n VersionChangedModule\n} from './components';\nimport { MonkeyEcxHttpConfigInterceptorModule } from './core/interceptors/monkeyecx-http-config-interceptor.module';\nimport { MonkeyEcxConfigModule } from './core/services/config/monkeyecx-config.module';\nimport { MonkeyEcxErrorHandlingModule } from './core/services/error/monkeyecx-error-handling.module';\nimport { reducers } from './store';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n TranslateModule.forRoot(),\n MonkeyEcxConfigModule.forRoot(),\n MonkeyEcxHttpConfigInterceptorModule.forRoot(),\n MonkeyEcxErrorHandlingModule.forRoot(),\n MonkeyStyleGuideModule,\n ServiceWorkerModule.register('ngsw-worker.js'),\n ClosedToMaintenanceModule,\n StoreModule.forFeature(\n reducers.fromMonkeyecxStorage.featureKey,\n reducers.fromMonkeyecxStorage.reducer\n ),\n VersionChangedModule,\n AlertsModule,\n CurrencyConfigModule\n ],\n providers: [\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n ]\n})\nexport class MonkeyFrontCoreModule {}\n","/*\n * Public API Surface of monkey-front-core\n */\nexport * from './lib/components';\nexport * from './lib/core';\nexport * from './lib/monkey-front-core.module';\nexport * as store from './lib/store';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","moment","i4.MonkeyEcxFormatDateTimelapsePipe","i2.MonkeyEcxHandlingService","i1.MonkeyEcxService","i2","Statics.MonkeyEcxQueueEvents","Statics.MonkeyEcxUploadEvents","i1.MonkeyEcxProgressBarService","DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties","DecoratorsUtils.buildQueuePropertys","DecoratorsUtils.buildDownloadPropertys","DecoratorsUtils.buildUploadPropertys","actions.monkeyecxStorage.clear","actions.monkeyecxStorage.create","actions.monkeyecxStorage.updateControl","actions.monkeyecxStorage.updateOne","actions.monkeyecxStorage.deleteOne","selectAll","reducers.fromMonkeyecxStorage.featureKey","reducers.fromMonkeyecxStorage.selectAll","window","i2.MonkeyEcxTokenStorageService","i4.MonkeyEcxErrorConfigService","i2.MonkeyEcxi18nConfigService","i3.MonkeyEcxLogsConfigService","i4","i5.MonkeyEcxServiceWorkerConfigService","i6.MonkeyEcxSecurityConsoleConfigService","i7.MonkeyEcxMaintenanceConfigService","i8.MonkeyEcxErrorConfigService","i9.MonkeyEcxFeatureToggleService","i10.MonkeyEcxGTMConfigService","i11.MonkeyEcxAlertsConfigService","selectors.monkeyecxStorage.select","i1.MonkeyEcxConfigService","i1.MonkeyEcxTokenStorageService","i1.MonkeyEcxAuthenticationService","i2.MonkeyEcxCookieStorageService","i3.MonkeyEcxConfigService","i3.MonkeyEcxAuthenticationService","i5","i6","Statics.MonkeyEcxDownloadEvents","i2.MonkeyEcxLoggedHandlingService","i1.MonkeyEcxFeatureToggleService","i2.MonkeyEcxErrorHandlingService","i1.MonkeyEcxRequestQueueHandlingService","i2.MonkeyEcxConfigModule","i3.MonkeyEcxHttpConfigInterceptorModule","i4.MonkeyEcxErrorHandlingModule","reducers.fromMonkeyecxStorage.reducer"],"mappings":"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"}
1
+ {"version":3,"file":"monkey-front-core.mjs","sources":["../../../projects/monkey-front-core/src/lib/components/alerts/alerts.component.ts","../../../projects/monkey-front-core/src/lib/components/alerts/alerts.component.html","../../../projects/monkey-front-core/src/lib/components/alerts/alerts.module.ts","../../../projects/monkey-front-core/src/lib/core/utils/statics.ts","../../../projects/monkey-front-core/src/lib/core/utils/utils.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-timelapse.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.html","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-service.service.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-blob-secure.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-first-name.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-initials.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-support-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-address.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-beautify-json.ts","../../../projects/monkey-front-core/src/lib/core/injectors/index.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-group.ts","../../../projects/monkey-front-core/src/lib/core/utils/decorators-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validate-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validators.ts","../../../projects/monkey-front-core/src/lib/core/utils/index.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-unix-timelapse.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-number.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-size.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-tax.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-type-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-value.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-zipcode.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-text-truncate.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-truncate-qtd.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-currency-code.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-pipes.module.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.module.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.html","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.module.ts","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.component.ts","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.component.html","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.module.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-charts-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-download-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-upload-decorators.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-drag-drop.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-upper.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-alpha-numeric-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-number-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-popover-options.directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-popover.directive.ts","../../../projects/monkey-front-core/src/lib/store/actions/monkeyecx-storage.actions.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-seeder.reducer.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-storage.reducer.ts","../../../projects/monkey-front-core/src/lib/store/selectors/monkeyecx-storage.selector.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-model.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-links.model.ts","../../../projects/monkey-front-core/src/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons.service.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons-resolve-base.service.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons-resolve.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-error-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-i18n-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-logs-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-service-worker-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-security-console-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-maintenance-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-feature-toggle.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-gtm-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-alerts-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-token-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-security-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-tooltip-directive.ts","../../../projects/monkey-front-core/src/lib/core/services/alerts/monkeyecx-alerts.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-authentication.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-company.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-login.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-role.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.module.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-currency-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-http-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-others-errors-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.module.ts","../../../projects/monkey-front-core/src/lib/core/services/logged/monkeyecx-logged-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/pagination/monkeyecx-pagination.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-download-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/routes/monkeyecx-dicovery-params.service.ts","../../../projects/monkey-front-core/src/lib/core/services/schedules/monkeyecx-request-schedule.service.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store-base.service.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.actions.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.selector.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.service.ts","../../../projects/monkey-front-core/src/lib/core/services/l/l.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-by-program-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-loading.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-directives-module.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-error.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-header.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-interceptor.module.ts","../../../projects/monkey-front-core/src/lib/core/specification-search/monkeyecx-specification-search.ts","../../../projects/monkey-front-core/src/lib/monkey-front-core.module.ts","../../../projects/monkey-front-core/src/public-api.ts","../../../projects/monkey-front-core/src/monkey-front-core.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.scss']\n})\nexport class AlertsComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _img = '';\n\n _title = '';\n\n _message = '';\n\n _action: {\n href: string,\n label: string\n } | null = null;\n\n _hideClose = false;\n\n constructor(\n private modalService: MonkeyStyleGuideModalService\n ) {\n // not to do\n }\n\n ngOnInit() {\n const { config } = this;\n this._img = config?.data?.img;\n this._title = config?.data?.title;\n this._message = config?.data?.message;\n this._action = config?.data?.action;\n this._hideClose = config?.data?.hideClose;\n }\n\n onClose() {\n this.modalService.close(this.modalRef);\n }\n\n onAction() {\n const { _action } = this;\n if (_action?.href) {\n window.location.href = _action?.href;\n }\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"alert-header\">\n <img [src]=\"_img\">\n </div>\n <div class=\"alert-body\">\n <span class=\"title\">\n {{ _title | translate }}\n </span>\n <span class=\"message\">\n {{ _message | translate }}\n </span>\n </div>\n <div class=\"alert-footer\">\n <ng-container *ngIf=\"!_hideClose\">\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'BUTTONS.CLOSE' | translate }}\n </monkey-button>\n </ng-container>\n \n <ng-container *ngIf=\"_action\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onAction()\">\n {{ _action.label | translate }}\n </monkey-button>\n </ng-container>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyModalModule } from 'monkey-style-guide';\nimport { AlertsComponent } from './alerts.component';\n\n@NgModule({\n declarations: [AlertsComponent],\n imports: [CommonModule, MonkeyButtonModule, MonkeyModalModule, TranslateModule.forChild()],\n exports: [AlertsComponent]\n})\nexport class AlertsModule {}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-shadow */\nexport enum MonkeyEcxQueueEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxDownloadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxUploadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsTokenNotMandatory {\n Assets = 'assets/',\n MonkeyEcx = '/monkeyecx',\n ViaCep = 'viacep.com.br/'\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsHeaderNotMandatory {\n Assets = '/assets',\n PayablesUpload = 'payables-upload',\n PictureUser = '/user-pictures',\n Documents = 'documents/',\n BuyerTaxFile = '/buyer-tax-file',\n ViaCep = 'viacep.com.br/'\n}\n\nexport enum CountryMasks {\n CPF = '000.000.000-00',\n CNPJ = '00.000.000/0000-00',\n RUT1 = '0000000-A',\n RUT2 = '00000000-A',\n RFC1 = 'AAAA000000AA0',\n RFC2 = 'AAA000000AA0'\n}\n","/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-useless-escape */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-cond-assign */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-redeclare */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { CountryMasks } from './statics';\n\n/* eslint-disable block-scoped-var */\nexport class MonkeyEcxUtils {\n static persistNullEmptyUndefined(tp: any): boolean {\n return tp !== null && tp !== undefined && tp !== '';\n }\n\n static getDocumentType(doc: string, country?: string) {\n if (!doc) return '';\n if (country === 'cl') return 'RUT';\n if (country === 'mx') return 'RFC';\n if (country === 'us') return 'EIN';\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\n }\n\n static getDocumentMask(type: string, country = '') {\n return {\n BR: {\n CPF: CountryMasks.CPF,\n CNPJ: CountryMasks.CNPJ,\n '': `${CountryMasks.CPF}||${CountryMasks.CNPJ}`\n },\n CL: {\n CPF: CountryMasks.RUT1,\n CNPJ: CountryMasks.RUT2,\n '': `${CountryMasks.RUT1}||${CountryMasks.RUT2}`\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2,\n '': `${CountryMasks.RFC1}||${CountryMasks.RFC2}`\n }\n }[country.toUpperCase()]?.[type];\n }\n\n static getDocumentPlaceholder(type: string, country = '') {\n return {\n BR: {\n CPF: '000.000.000-XX',\n CNPJ: '00.000.000/0000-00'\n },\n CL: {\n CPF: '0000000-A',\n CNPJ: '0000000-A'\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2\n }\n }[country.toUpperCase()]?.[type];\n }\n\n static formatDocumentWithMask(doc: string, withType?: boolean, country?: string): string {\n if (!doc) return doc;\n let formated: string = '';\n if (country === 'cl') {\n formated = doc.replace(/^(\\d{1,2})(\\d{3})(\\d{3})(\\w{1})$/, '$1.$2.$3-$4');\n return `${formated}`;\n }\n if (country === 'us') {\n return doc;\n }\n if (doc.length === 14) {\n formated = doc\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\n .replace(/(\\d{4})(\\d)/, '$1-$2');\n } else {\n formated = doc\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n }\n\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\n }\n\n static cutFirstLastName(value: string, tp: string = 'first') {\n const split = value?.trim()?.split(' ');\n\n if (tp === 'first') return split[0];\n return split?.splice(1, split.length)?.join(' ');\n }\n\n static isCPFCNPJValid(document: any): boolean {\n document = document.replace(/[^\\d]/g, '');\n\n const handled = document.replace(new RegExp(document.charAt(0), 'g'), '');\n if (!handled) return false;\n\n if (document.length === 11) {\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]) ;\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]) ;\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n return true;\n }\n if (document.length === 14 || /0{14}/.test(document)) {\n const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]) ;\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]) ;\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n }\n return false;\n }\n\n public static isValidRUT(document: string): boolean {\n if (!document || document.trim().length < 3) return false;\n const documentHandled = document.replace(/[^0-9kK]/g, '');\n\n if (documentHandled.length < 3) return false;\n\n const calcDv = (rut: string) => {\n const value: string = `${rut}`;\n let sum = 0;\n let mult = 2;\n\n for (let i = 1; i <= value.length; i++) {\n const index = mult * Number(value.charAt(value.length - i));\n\n sum += index;\n\n if (mult < 7) {\n mult += 1;\n } else {\n mult = 2;\n }\n }\n\n const dvEsperado = 11 - (sum % 11);\n if (dvEsperado === 10) return 'K';\n if (dvEsperado === 11) return '0';\n return `${dvEsperado}`;\n };\n\n const num = documentHandled.slice(0, -1);\n const dgv = documentHandled.slice(-1).toUpperCase();\n\n const dvCalc = calcDv(num);\n return dvCalc === dgv;\n }\n\n public static isValidRFC(document: string) {\n const RFC_REGEXP = /^([A-ZÑ\\x26]{3,4})([0-9]{6})([A-Z0-9]{3})$/;\n const SPECIAL_CASES = {\n XEXX010101000: 'foreign',\n XAXX010101000: 'generic'\n };\n const FORBIDDEN_WORDS = [\n 'BUEI',\n 'BUEY',\n 'CACA',\n 'CACO',\n 'CAGA',\n 'CAGO',\n 'CAKA',\n 'CAKO',\n 'COGE',\n 'COJA',\n 'COJE',\n 'COJI',\n 'COJO',\n 'CULO',\n 'FETO',\n 'GUEY',\n 'JOTO',\n 'KACA',\n 'KACO',\n 'KAGA',\n 'KAGO',\n 'KOGE',\n 'KOJO',\n 'KAKA',\n 'KULO',\n 'MAME',\n 'MAMO',\n 'MEAR',\n 'MEAS',\n 'MEON',\n 'MION',\n 'MOCO',\n 'MULA',\n 'PEDA',\n 'PEDO',\n 'PENE',\n 'PUTA',\n 'PUTO',\n 'QULO',\n 'RATA',\n 'RUIN'\n ];\n\n const VALUES_MAP = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 18,\n J: 19,\n K: 20,\n L: 21,\n M: 22,\n N: 23,\n '&': 24,\n O: 25,\n P: 26,\n Q: 27,\n R: 28,\n S: 29,\n T: 30,\n U: 31,\n V: 32,\n W: 33,\n X: 34,\n Y: 35,\n Z: 36,\n ' ': 37,\n Ñ: 38\n };\n\n const getScore = (doc: string) => {\n return doc.split('').reverse().reduce((sum, char, i) => {\n const index = i + 2;\n const value = VALUES_MAP[char] || 0;\n return sum + value * index;\n }, 0);\n };\n\n const parseInput = (doc: string) => {\n return String(doc)\n .trim()\n .toUpperCase()\n .replace(/[^0-9A-ZÑ\\x26]/g, '');\n };\n\n const validateDate = (doc: string) => {\n const dateStr = doc.slice(0, -3).slice(-6);\n const year = dateStr.slice(0, 2);\n const month = dateStr.slice(2, 4);\n const day = dateStr.slice(4, 6);\n const date = new Date(`20${year}-${month}-${day}`);\n // eslint-disable-next-line no-restricted-globals\n return !isNaN(date.getTime());\n };\n\n const validateVerificationDigit = (doc: string) => {\n const digit = doc.slice(-1);\n const rfc = doc.length === 12 ? ` ${doc}` : doc;\n const base = rfc.slice(0, -1);\n const score = getScore(base);\n const mod = (11000 - score) % 11;\n if (mod === 11) return digit === '0';\n if (mod === 10) return digit === 'A';\n return String(mod) === digit;\n };\n\n const isSpecialCase = (doc: string) => { return doc in SPECIAL_CASES; };\n\n const hasForbiddenWords = (doc: string) => {\n const prefix = (doc || '').slice(0, 4);\n return FORBIDDEN_WORDS.includes(prefix);\n };\n\n try {\n const input = parseInput(document);\n\n if (isSpecialCase(input)) return false;\n const hasValidFormat = RFC_REGEXP.test(input);\n if (!hasValidFormat) return false;\n const hasValidDate = validateDate(input);\n if (!hasValidDate) return false;\n const hasValidDigit = validateVerificationDigit(input);\n if (!hasValidDigit) return false;\n if (hasForbiddenWords(input)) return false;\n\n return true;\n } catch (e) {\n // not to do\n }\n\n return false;\n }\n\n static isValidUrl(txt: string): boolean {\n const regex = /(https?:\\/\\/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])(:?\\d*)\\/?([a-z_\\\\/0-9\\-#.]*)\\??([a-z_\\\\/0-9\\-#=&]*)/g;\n return regex.test(txt);\n }\n\n static isValidZipCode(zipCode: string, country?: string): boolean {\n const length = {\n br: 8,\n cl: 7,\n mx: 5\n }[country || 'br'];\n\n return `${this.handleOnlyNumbers(zipCode)}`.length === length;\n }\n\n static isValidEmail(email: string) {\n return /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/.test(email || '');\n }\n\n static getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomString: string = new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet?.length));\n })\n .join('');\n return randomString;\n }\n\n static handleOnlyNumbers(value: any) {\n if (!value) return null;\n return value.replace(new RegExp(/[^0-9]/g), '');\n }\n\n static handleOnlyAlphaNumeric(value: any) {\n if (!value) return '';\n return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');\n }\n\n static capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n }\n\n static formatZipCode(zipCode: string): string {\n if (!zipCode) return zipCode;\n const formated: string = zipCode\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n\n return `${formated}`;\n }\n\n static formatFileSize(size: number): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let l = 0;\n while (size >= 1024 && ++l) {\n size /= 1024;\n }\n return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;\n }\n\n static sufflue(data: any[]): any[] {\n for (let i = data.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * i);\n const temp = data[i];\n data[i] = data[j];\n data[j] = temp;\n }\n return data;\n }\n\n static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\n function blobToFile(theBlob: any, fileName: string) {\n const b = theBlob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n return b;\n }\n\n let file: any;\n if (!(navigator as any).msSaveBlob) {\n file = new File([theBlob], fileName, {\n type: fileType,\n });\n } else {\n file = new Blob([theBlob], {\n type: fileType,\n });\n file = blobToFile(file, fileName);\n }\n return file;\n }\n\n static truncate(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n\n static isLocalhost() {\n const { href } = window?.location;\n if (!href) return false;\n return href?.search('localhost') >= 0;\n }\n\n static isSameOrigin(frontend: string): boolean {\n const initialPath: string = window.location.origin;\n return (initialPath || '') === frontend;\n }\n\n static replaceVariables(data: string, obj: any) {\n let handled = data;\n Object.entries(obj).forEach(([key, value]) => {\n handled = handled.replace(new RegExp(`{${key}}`, 'g'), `${value}`);\n });\n return handled;\n }\n\n static trimValuesToSave(obj: any, fields: string[]) {\n let ret = obj;\n const grouped = fields.join('#');\n Object.entries(obj).map(([key, value]) => {\n if (grouped.includes(key)) {\n ret = {\n ...ret,\n [key]: `${value}`.trim()\n };\n }\n return null;\n });\n\n return ret;\n }\n}\n\nexport type MonkeyEcxLogsErrorTypes = 'ok' |\n 'debug' |\n 'info' |\n 'notice' |\n 'warn' |\n 'error' |\n 'critical' |\n 'alert' |\n 'emerg';\n\nexport type MonkeyEcxLogParams = {\n message: string;\n context?: any;\n error?: Error;\n type?: MonkeyEcxLogsErrorTypes;\n}\n\nexport class MonkeyEcxLogs {\n static log(params: MonkeyEcxLogParams) {\n try {\n const { type, message, context, error } = params;\n datadogLogs.logger[type || 'error'](message, context, error);\n } catch (e) {\n // not to do\n }\n }\n}\n\nexport function bufferToBase64(buffer: ArrayBuffer): string {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\nexport function base64ToBuffer(base64: string): ArrayBuffer {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateTimelapse'\n})\nexport class MonkeyEcxFormatDateTimelapsePipe implements PipeTransform {\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (!useUtc) stillUtc = moment.default(date).toDate();\n if (date.toString().indexOf(':') <= -1) {\n if (typeof date === 'string') {\n stillUtc = date;\n showTime = false;\n }\n }\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\n }\n}\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\nimport { MonkeyEcxConfigBootstrap } from '../../core/interfaces';\n\n@Component({\n selector: 'monkeyecx-closed-to-maintenance',\n templateUrl: './closed-to-maintenance.component.html',\n styleUrls: ['./closed-to-maintenance.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ClosedToMaintenanceComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _configBootstrap: MonkeyEcxConfigBootstrap | null = null;\n\n ngOnInit() {\n this._configBootstrap = this.config?.data;\n }\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-1' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-2' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-3' | translate }}\n {{ _configBootstrap?.maintenance?.endDate | monkeyecxFormatDateTimelapse: true }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-4' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.BUTTONS.UPDATE-MAINTENANCE' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","/* eslint-disable max-len */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestDownload } from '../interfaces/request-download/monkeyecx-request-download';\nimport { MonkeyEcxRequestQueue } from '../interfaces/request-queue/monkeyecx-request-queue';\nimport { MonkeyEcxRequestUpload } from '../interfaces/request-upload/monkeyecx-request-upload';\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class MonkeyEcxHandlingService {\n private monkeyecxServiceCredentials: MonkeyEcxServiceCredentials | null = null;\n\n private monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = null;\n\n private monkeyecxRequestDownload: MonkeyEcxRequestDownload | null = null;\n\n private monkeyecxRequestUpload: MonkeyEcxRequestUpload | null = null;\n\n public clearAll() {\n this.monkeyecxServiceCredentials = null;\n this.monkeyecxRequestQueue = null;\n this.monkeyecxRequestDownload = null;\n this.monkeyecxRequestUpload = null;\n }\n\n public setMonkeyEcxServiceCredentials(param: MonkeyEcxServiceCredentials) {\n this.monkeyecxServiceCredentials = param;\n }\n\n public getMonkeyEcxServiceCredentials(): MonkeyEcxServiceCredentials | null {\n return this.monkeyecxServiceCredentials;\n }\n\n public setMonkeyEcxRequestQueue(queue: MonkeyEcxRequestQueue) {\n this.monkeyecxRequestQueue = queue;\n }\n\n public getMonkeyEcxRequestQueue(): MonkeyEcxRequestQueue | null {\n return this.monkeyecxRequestQueue;\n }\n\n public setMonkeyEcxRequestDownload(download: MonkeyEcxRequestDownload) {\n this.monkeyecxRequestDownload = download;\n }\n\n public getMonkeyEcxRequestDownload(): MonkeyEcxRequestDownload | null {\n return this.monkeyecxRequestDownload;\n }\n\n public setMonkeyEcxRequestUpload(upload: MonkeyEcxRequestUpload) {\n this.monkeyecxRequestUpload = upload;\n }\n\n public getMonkeyEcxRequestUpload(): MonkeyEcxRequestUpload | null {\n return this.monkeyecxRequestUpload;\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from './monkeyecx-handling.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxService {\n constructor(\n protected http: HttpClient,\n public monkeyecxHandlingService: MonkeyEcxHandlingService\n ) {\n // not to do\n }\n\n private handlelize(params: any): any {\n if (!params) {\n return params;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const field of [\n 'createdAt',\n 'createUserId',\n 'updatedAt',\n 'lastUserId',\n '_links',\n 'governmentIdType',\n 'governmentIdMask',\n 'screenType',\n 'screenTab'\n ]) {\n delete params[field];\n }\n return params;\n }\n\n public get<T>(url: string, options?: any): Observable<any> {\n return this.http.get<T>(url, options);\n }\n\n public post<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.post<T>(url, params, options);\n }\n\n public put<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.put<T>(\n url,\n this.handlelize({\n ...params\n }),\n options\n );\n }\n\n public patch<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.patch<T>(\n url,\n this.handlelize({\n ...params\n }),\n options\n );\n }\n\n public delete<T>(url: string, params?: any): Observable<any> {\n return this.http.delete<T>(url, params);\n }\n\n public download<T>(url: string, options?: any, filename?: string) {\n this.http.get<T>(url, options).subscribe(\n (resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n return {\n filename,\n blob\n };\n },\n (err: HttpErrorResponse) => {\n throwError(err);\n }\n );\n }\n\n public downloadOb<T>(url: string, options?: any, filename?: string): Observable<any> {\n return this.http.get<any>(url, options).pipe(\n map((resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n return {\n filename,\n blob\n };\n }),\n catchError((err: any) => {\n return throwError(err);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxService } from '../services/monkeyecx-service.service';\n\n@Pipe({\n name: 'monkeyecxBlobSecure'\n})\nexport class MonkeyEcxBlobSecurePipe implements PipeTransform {\n constructor(private monkeyecxService: MonkeyEcxService, private sanitizer: DomSanitizer) {\n // not to do\n }\n\n transform(url: string): Observable<SafeUrl> {\n return this.monkeyecxService.get(url, { responseType: 'blob' }).pipe(\n map((val: any) => {\n return this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val));\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayFirstName'\n})\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n return MonkeyEcxUtils.cutFirstLastName(name);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayInitials'\n})\nexport class MonkeyEcxDisplayInitialsPipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n const first = MonkeyEcxUtils.cutFirstLastName(name, 'first');\n const second = MonkeyEcxUtils.cutFirstLastName(name, 'last');\n return `${first?.charAt(0)} ${second?.charAt(0)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxConfigSupportPhone } from '../interfaces';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxDisplaySupportPhone'\n})\nexport class MonkeyEcxDisplaySupportPhone implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(phones: MonkeyEcxConfigSupportPhone[]) {\n return phones.map((phone: MonkeyEcxConfigSupportPhone) => {\n const isOnline = this.isPhoneOnline(phone);\n\n return {\n ...phone,\n isOnline,\n color: isOnline ? '#00875A' : '#FA3838'\n };\n });\n }\n\n isPhoneOnline(phone: any): boolean {\n const start = moment.default().startOf('day').add(phone?.startHour, 'hours').format('YYYY-MM-DD HH:mm');\n const end = moment.default().startOf('day').add(phone?.endHour, 'hours').format('YYYY-MM-DD HH:mm');\n\n return moment.default().isSameOrAfter(start) && moment.default().isSameOrBefore(end);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatAddress',\n})\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\n transform({\n zipCode,\n address,\n neighborhood,\n city,\n state,\n }: {\n zipCode: string;\n address: string;\n neighborhood: string;\n city: string;\n state: string;\n country: string;\n }): string {\n return [address, neighborhood, zipCode, city, state]\n .filter((_: string) => {\n return _;\n })\n .join(', ');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatBeautifyJSON'\n})\nexport class MonkeyEcxFormatBeaufityJSONPipe implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(value: any) {\n const jsonLine = /^( *)(\"[\\w]+\": )?(\"[^\"]*\"|[\\w.+-]*)?([,[{])?$/gm;\n\n const replacer = (match, pIndent, pKey, pVal, pEnd) => {\n const key = '<span class=\"json-key\" style=\"color: brown\">';\n const val = '<span class=\"json-value\" style=\"color: navy\">';\n const str = '<span class=\"json-string\" style=\"color: olive\">';\n let r = pIndent || '';\n if (pKey) {\n r = `${r + key + pKey.replace(/[\": ]/g, '')}</span>: `;\n }\n if (pVal) {\n r = `${r + (pVal[0] === '\"' ? str : val) + pVal}</span>`;\n }\n return r + (pEnd || '');\n };\n\n return JSON.stringify(value, null, 3)\n .replace(/&/g, '&amp;')\n .replace(/\\\\\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(jsonLine, replacer);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const MECX_TIMEZONEOFFSET = new InjectionToken<string>('');\nexport const MECX_DATE_FORMAT = new InjectionToken<string>('');\nexport const MECX_LANG = new InjectionToken<string>('');\nexport const MECX_ENV = new InjectionToken<string>('');\nexport const MECX_ALPHA = new InjectionToken<string>('');\nexport const MECX_BETA = new InjectionToken<string>('');\n","import { CurrencyPipe } from '@angular/common';\nimport { DEFAULT_CURRENCY_CODE, Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\nimport { MECX_LANG } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatCurrency'\n})\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\n constructor(\n private currencyPipe: CurrencyPipe,\n @Inject(DEFAULT_CURRENCY_CODE) private defaultCurencyCode: InjectionToken<string>,\n @Inject(MECX_LANG) private lang: InjectionToken<string>\n ) {\n // not to do\n }\n\n transform(value: any, symbol = 'symbol') {\n const currency = this.defaultCurencyCode.toString();\n const locale = this.lang.toString();\n\n try {\n if (currency === 'CLP') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '1.0-0', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n if (currency === 'MXN') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n return this.currencyPipe.transform(value, currency, symbol, '', locale);\n } catch (e) {\n // not to do\n }\n return value;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\nimport { MECX_DATE_FORMAT, MECX_TIMEZONEOFFSET } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatDate'\n})\nexport class MonkeyEcxFormatDatePipe implements PipeTransform {\n constructor(\n private dt: DatePipe,\n @Inject(MECX_DATE_FORMAT) private dateFormat: InjectionToken<string>,\n @Inject(MECX_TIMEZONEOFFSET) private timezone: InjectionToken<string>\n ) {\n // not to do\n }\n\n transform(date: any | Date, format = this.dateFormat.toString()) {\n return this.dt.transform(date, format, this.timezone.toString());\n }\n}\n","import { Injector, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateGroup',\n})\nexport class MonkeyEcxFormatDateGroupPipe implements PipeTransform {\n private lang = 'pt-BR';\n\n constructor(private injector: Injector) {\n const translateService = this.injector.get(TranslateService);\n this.lang = translateService.getDefaultLang();\n }\n\n private format(date: string | Date) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (date.toString()?.indexOf(':') <= -1) {\n stillUtc = date;\n }\n const formatFrom = 'YYYY/MM/DD';\n const fmt = moment.default(stillUtc, formatFrom).locale(this.lang);\n const dayFormated = fmt.format('DD/');\n const monthFormated = MonkeyEcxUtils.capitalize(fmt.format('MMMM'));\n const yearFormated = fmt.format('YYYY');\n return `${`${dayFormated}${monthFormated}`.substring(0, 6)}, ${yearFormated}`;\n }\n\n transform(obj: any): string {\n if (!obj || !obj?.start || !obj?.end) return '';\n const { start, end } = obj;\n const formatedStart = this.format(start);\n const formatedEnd = this.format(end);\n return `${formatedStart} - ${formatedEnd}`;\n }\n}\n","import {\n MonkeyEcxRequestDownload,\n MonkeyEcxRequestItemQueue,\n MonkeyEcxRequestQueue,\n MonkeyEcxRequestUpload\n} from '../interfaces';\nimport * as Statics from './statics';\nimport { MonkeyEcxUtils } from './utils';\n\nexport function buildQueuePropertys(queue: MonkeyEcxRequestItemQueue): MonkeyEcxRequestQueue {\n const params: MonkeyEcxRequestQueue = {\n item: {\n ...queue,\n id: MonkeyEcxUtils.getRandomString(40)\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildDownloadPropertys(\n name: string,\n description?: string,\n size?: number\n): MonkeyEcxRequestDownload {\n const params: MonkeyEcxRequestDownload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n size,\n createdAt: new Date()\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildUploadPropertys(name: string, description?: string): MonkeyEcxRequestUpload {\n const params: MonkeyEcxRequestUpload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`\n },\n status: Statics.MonkeyEcxUploadEvents.OnGoing\n };\n\n return params;\n}\n\nexport function hasMonkeyEcxServiceAndHandlingProperties(context: any): boolean {\n return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');\n}\n","/* eslint-disable max-classes-per-file */\nimport { AbstractControl } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nexport class DateValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRutValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidRut: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRFCValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidRfc: true\n };\n }\n }\n return null;\n }\n}\n\nexport class ZipCodeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\n return {\n invalidZipCode: true\n };\n }\n }\n return null;\n }\n}\n\nexport class ComboValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n return {\n invalidCombo: true\n };\n }\n}\n\nexport class isTrueValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n return {\n invalidTrue: true\n };\n }\n}\n\nexport class PasswordMatchValidation {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n return {\n passwordsNotMatching: true\n };\n }\n}\n\nexport class UrlValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n invalidUrl: true\n };\n }\n }\n return null;\n }\n}\n\nexport class CustomDatesStartValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateStart || !dateEnd) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n return null;\n }\n}\n\nexport class CustomDatesEndValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateEnd < dateStart) {\n return {\n dateEndMustBeGreaterThanStart: true\n };\n }\n return null;\n }\n}\n\nexport class UnlockRegisterBuyerValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYBUYER') {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n }\n}\n\nexport class UnlockRegisterSponsorValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYSPONSOR') {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n }\n}\n\nexport class DateRangeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))\n ) {\n return {\n invalidDateRange: true\n };\n }\n\n return null;\n }\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nconst EMAIL_REGEXP = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/;\n\nfunction isEmptyInputValue(value: any): boolean {\n return value == null || value.length === 0;\n}\n\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n const test = EMAIL_REGEXP.test(control.value);\n if (test) return null;\n return {\n email: true\n };\n}\n\nexport function dateRangeValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))\n ) {\n return {\n dateRange: true\n };\n }\n\n return null;\n}\n\nexport function registerValidator(control: AbstractControl, type: string): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n}\n\nexport function dateStartEndValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) {\n return null;\n }\n\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n\n return null;\n}\n\nexport function urlValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n url: true\n };\n }\n\n return null;\n}\n\nexport function passwordConfirmValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n\n return {\n passwordsNotMatching: true\n };\n}\n\nexport function trueValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n\n return {\n invalidTrue: true\n };\n}\n\nexport function comboValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n\n return {\n invalidCombo: true\n };\n}\n\nexport function zipCodeValidator(\n control: AbstractControl,\n country?: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value, country)) {\n return {\n invalidZipCode: true\n };\n }\n }\n\n return null;\n}\n\nexport function documentValidator(\n control: AbstractControl,\n country: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n country = `${country}`.toUpperCase();\n if (country === 'BR') {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n } else if (country === 'CL') {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n } else if (country === 'MX') {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n }\n\n return null;\n}\n\nexport function minYearsValidator(\n param: number,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const date = moment.default(control.value);\n const dif = moment.default().diff(date, 'years');\n\n if (dif < param) {\n return {\n invalidMinYears: {\n year: param\n }\n };\n }\n return null;\n}\n\nexport function dateValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true\n };\n }\n return null;\n}\n\nexport function valueGreaterThanZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (control && `${control?.value}` === '0') {\n return {\n invalidValueGreaterThanZero: true\n };\n }\n return null;\n}\n\nexport function requiredWithTrimValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n if (control && !`${control?.value}`.trim()) {\n return {\n required: true\n };\n }\n return null;\n}\n\nexport function differentFromZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n const handled = `${control?.value}`.trim().replace(/0/g, '');\n if (control && !handled) {\n return {\n differentFromZero: true\n };\n }\n\n return null;\n}\n\nexport function documentValidatorByType(\n type: string,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const handle = MonkeyEcxUtils.handleOnlyNumbers(control.value);\n let valid = false;\n if (type === 'CPF' || type === 'CNPJ') {\n if ((type === 'CNPJ' && `${handle}`.length !== 14) ||\n (type === 'CPF' && `${handle}`.length !== 11)) {\n valid = false;\n } else {\n valid = MonkeyEcxUtils.isCPFCNPJValid(control.value);\n }\n } else if (type === 'RUT') {\n valid = MonkeyEcxUtils.isValidRUT(control.value);\n } else if (type === 'RFC') {\n valid = MonkeyEcxUtils.isValidRFC(control.value);\n }\n\n if (!valid) {\n return {\n [`invalid${MonkeyEcxUtils.capitalize(type.toLowerCase())}`]: true\n };\n }\n\n return null;\n}\n\nexport function validateFullName(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n const fullName = value.split(/\\s+/);\n const hasShortPart = fullName.filter((part: any) => {\n return part.length >= 2;\n }).length;\n\n if (hasShortPart < 2) {\n return { fullName: true };\n }\n\n return null;\n}\n\nexport function containsNumber(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n return /\\d/.test(value) ? { containsNumber: true } : null;\n}\n\nexport class Validators {\n static email(control: AbstractControl): ValidationErrors | null {\n return emailValidator(control);\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n return dateRangeValidator(control);\n }\n\n static unlockSponsorRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'sponsor');\n }\n\n static unlockBuyerRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'buyer');\n }\n\n static dateStartEnd(control: AbstractControl): ValidationErrors | null {\n return dateStartEndValidator(control);\n }\n\n static url(control: AbstractControl): ValidationErrors | null {\n return urlValidator(control);\n }\n\n static passwordConfirm(control: AbstractControl): ValidationErrors | null {\n return passwordConfirmValidator(control);\n }\n\n static true(control: AbstractControl): ValidationErrors | null {\n return trueValidator(control);\n }\n\n static combo(control: AbstractControl): ValidationErrors | null {\n return comboValidator(control);\n }\n\n static zipCode(control: AbstractControl): ValidationErrors | null {\n return zipCodeValidator(control);\n }\n\n static zipCodeByCountry(country: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return zipCodeValidator(control, country);\n };\n }\n\n static documentBR(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'BR');\n }\n\n static documentCL(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'CL');\n }\n\n static documentMX(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'MX');\n }\n\n static date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\n }\n\n static minYears(param: number): ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n return minYearsValidator(param, control);\n };\n }\n\n static greaterThanZero(control: AbstractControl): ValidationErrors | null {\n return valueGreaterThanZero(control);\n }\n\n static required(control: AbstractControl): ValidationErrors | null {\n return requiredWithTrimValidator(control);\n }\n\n static differentFromZero(control: AbstractControl): ValidationErrors | null {\n return differentFromZero(control);\n }\n\n static documentValidatorByType(type: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return documentValidatorByType(type, control);\n };\n }\n\n static validateFullName(control: AbstractControl): ValidationErrors | null {\n return validateFullName(control);\n }\n\n static containsNumber(control: AbstractControl): ValidationErrors | null {\n return containsNumber(control);\n }\n}\n","/* eslint-disable object-curly-newline */\nimport * as DecoratorsUtils from './decorators-utils';\nimport * as Statics from './statics';\nimport { MonkeyEcxLogs, MonkeyEcxUtils } from './utils';\nimport * as ValidateUtils from './validate-utils';\n\nexport * from './validators';\nexport { DecoratorsUtils, MonkeyEcxLogs, MonkeyEcxUtils, Statics, ValidateUtils };\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateUnixTimelapse'\n})\nexport class MonkeyEcxFormatDateUnixTimelapsePipe implements PipeTransform {\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (!useUtc) stillUtc = moment.default(date).toDate();\n if (\n moment.default\n .utc(date)\n .toDate()\n .toLocaleString()\n .indexOf(':') <= -1\n ) {\n if (typeof date === 'string') {\n stillUtc = date;\n showTime = false;\n }\n }\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocument',\n})\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\n transform(document: string, withType = false, country?: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) {\n return '';\n }\n\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType, country);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatNumber } from '@angular/common';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatNumber'\n})\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n\n return formatNumber(Number(number), 'ptbr');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatPhone'\n})\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\n transform(phone: string): string {\n if (phone) {\n const value = `${phone || ''}`.replace(/\\D/g, '');\n\n let formated = '';\n\n if (value.length > 12) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 11) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 10) {\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 9) {\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 5) {\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\n } else if (value.length > 1) {\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\n } else if (phone !== '') {\n formated = value.replace(/^(\\d*)/, '($1');\n }\n return formated;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatSize'\n})\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\n transform(size: string): string {\n if (!size) return '0 B';\n const sizeNum = Number(size);\n return MonkeyEcxUtils.formatFileSize(sizeNum);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils';\n\n@Pipe({\n name: 'monkeyecxFormatTax',\n})\nexport class MonkeyEcxFormatTaxPipe implements PipeTransform {\n transform(tax: number, decimalDigits: number = 7) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tax)) return '0 %';\n const stringTax = tax.toString();\n const stringTaxLimited = stringTax.slice(0, stringTax.indexOf('.') + decimalDigits + 1);\n return `${Number(stringTaxLimited).toLocaleString('pt-br', {\n maximumFractionDigits: decimalDigits,\n })} %`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocumentType'\n})\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\n transform(document: string, country?: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\n return MonkeyEcxUtils.getDocumentType(document, country);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatValue'\n})\nexport class MonkeyEcxFormatValue implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n return number;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatZipCode'\n})\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\n transform(zipCode: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\n return MonkeyEcxUtils.formatZipCode(zipCode);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTextTruncate'\n})\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\n transform(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTruncateQtd'\n})\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\n transform(number: number, threshold: number): string {\n return `${number > threshold ? `${threshold}+` : number}`;\n }\n}\n","import { DEFAULT_CURRENCY_CODE, Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxCurrencyCode'\n})\nexport class MonkeyEcxCurrencyCodePipe implements PipeTransform {\n constructor(@Inject(DEFAULT_CURRENCY_CODE) private defaultCurencyCode: InjectionToken<string>) {\n // not to do\n }\n\n transform(value: any, type: 'symbol' | 'code' = 'symbol') {\n const currency = this.defaultCurencyCode?.toString() || 'BRL';\n\n const symbol = {\n BRL: 'R$',\n CLP: '$',\n MXN: '$',\n USD: '$'\n }[currency];\n\n return `${value} (${type === 'symbol' ? symbol : currency})`;\n }\n}\n","import { CurrencyPipe, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxBlobSecurePipe } from './monkeyecx-blob-secure';\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\nimport { MonkeyEcxDisplayInitialsPipe } from './monkeyecx-display-initials';\nimport { MonkeyEcxDisplaySupportPhone } from './monkeyecx-display-support-phone';\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\nimport { MonkeyEcxFormatBeaufityJSONPipe } from './monkeyecx-format-beautify-json';\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatDatePipe } from './monkeyecx-format-date';\nimport { MonkeyEcxFormatDateGroupPipe } from './monkeyecx-format-date-group';\nimport { MonkeyEcxFormatDateTimelapsePipe } from './monkeyecx-format-date-timelapse';\nimport { MonkeyEcxFormatDateUnixTimelapsePipe } from './monkeyecx-format-date-unix-timelapse';\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\nimport { MonkeyEcxFormatTaxPipe } from './monkeyecx-format-tax';\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\nimport { MonkeyEcxCurrencyCodePipe } from './monkeyecx-currency-code';\n\n@NgModule({\n declarations: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxDisplaySupportPhone,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDateGroupPipe,\n MonkeyEcxFormatDateTimelapsePipe,\n MonkeyEcxFormatDateUnixTimelapsePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n exports: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxDisplaySupportPhone,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDateGroupPipe,\n MonkeyEcxFormatDateTimelapsePipe,\n MonkeyEcxFormatDateUnixTimelapsePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n providers: [CurrencyPipe, DatePipe]\n})\nexport class MonkeyEcxPipesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { MonkeyEcxPipesModule } from '../../core/pipes/monkeyecx-pipes.module';\nimport { ClosedToMaintenanceComponent } from './closed-to-maintenance.component';\n\n@NgModule({\n declarations: [ClosedToMaintenanceComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n MonkeyEcxPipesModule,\n TranslateModule.forChild()\n ],\n exports: [ClosedToMaintenanceComponent]\n})\nexport class ClosedToMaintenanceModule {}\n","import { Injectable } from '@angular/core';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router\n} from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxProgressBarService {\n private visible: BehaviorSubject<any> | null = null;\n\n constructor(private router: Router) {\n this.init();\n }\n\n private init() {\n this.visible = new BehaviorSubject(false);\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.show();\n });\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return (\n event instanceof NavigationEnd ||\n event instanceof NavigationError ||\n event instanceof NavigationCancel\n );\n })\n )\n .subscribe(() => {\n this.hide();\n });\n }\n\n show() {\n this.visible?.next(true);\n }\n\n hide() {\n this.visible?.next(false);\n }\n\n visibleConfig(): Observable<any> | null {\n return this.visible?.asObservable() || null;\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyEcxProgressBarService } from './progress-bar.service';\n\n@Component({\n selector: 'monkeyecx-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MonkeyEcxProgressBarComponent implements OnInit {\n visible: boolean = false;\n\n constructor(private progressBarService: MonkeyEcxProgressBarService) {\n //not to do\n }\n\n ngOnInit() {\n this.progressBarService?.visibleConfig()?.subscribe((visible: boolean) => {\n this.visible = visible;\n });\n }\n}\n","<ng-container *ngIf=\"visible\">\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [MonkeyEcxProgressBarComponent],\n imports: [CommonModule],\n exports: [MonkeyEcxProgressBarComponent]\n})\nexport class MonkeyEcxProgressBarModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-version-changed',\n templateUrl: './version-changed.component.html',\n styleUrls: ['./version-changed.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class VersionChangedComponent {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.VERSION-CHANGED.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-1' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-2' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.VERSION-CHANGED.BUTTONS.UPDATE-VERSION' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { VersionChangedComponent } from './version-changed.component';\n\n@NgModule({\n declarations: [VersionChangedComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [VersionChangedComponent]\n})\nexport class VersionChangedModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-currency-config',\n templateUrl: './currency-config.component.html',\n styleUrls: ['./currency-config.component.scss']\n})\nexport class CurrencyConfigComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _currency = 'BRL';\n\n _currencies = ['BRL'];\n\n private callback: Function = () => {};\n\n constructor(\n private modalService: MonkeyStyleGuideModalService\n ) {\n // not to do\n }\n\n ngOnInit() {\n const { config } = this;\n this._currency = config?.data?.currency;\n this._currencies = config?.data?.currencies;\n this.callback = config?.data?.callback;\n }\n\n onClose() {\n this.modalService.close(this.modalRef);\n this.callback?.(this._currency);\n }\n\n onHandleChangeCurrency(currency: string) {\n this._currency = currency;\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"alert-body\">\n <span class=\"title\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.TITLE' | translate }}\n </span>\n <span class=\"message\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.SUB-TITLE' | translate }}\n </span>\n <monkey-radiobutton [value]=\"_currency\"\n (onChange)=\"onHandleChangeCurrency($event)\">\n <monkey-option \n [label]=\"'CURRENCIES.'+currency | translate\"\n [value]=\"currency\"\n *ngFor=\"let currency of _currencies\">\n </monkey-option>\n </monkey-radiobutton>\n <span class=\"info\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.INFO' | translate }}\n </span>\n </div>\n <div class=\"alert-footer\">\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'BUTTONS.CONFIRM' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyModalModule, MonkeyOptionModule, MonkeyRadioButtonModule } from 'monkey-style-guide';\nimport { CurrencyConfigComponent } from './currency-config.component';\n\n@NgModule({\n declarations: [CurrencyConfigComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyRadioButtonModule,\n MonkeyOptionModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [CurrencyConfigComponent]\n})\nexport class CurrencyConfigModule {}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\nexport function MonkeyEcxCoreCharts(render = true) {\n return (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor => {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function(...args: any[]) {\n const context = this;\n if (render) {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n const node = document.createElement('script');\n node.src = 'https://www.gstatic.com/charts/loader.js';\n node.type = 'text/javascript';\n node.async = true;\n node.id = 'monkeyecx-charts-settings';\n node.onload = () => {\n method.apply(context, args);\n };\n document.getElementsByTagName('head')[0].appendChild(node);\n } else {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n method.apply(context, args);\n }\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable no-console */\n/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport function MonkeyEcxCoreServiceConstructor() {\n return (target: any) => {\n Object.entries(target.prototype).forEach(([key, value]) => {\n const method = target.prototype[key];\n if (key !== 'constructor') {\n target.prototype[key] = function (...args: any[]) {\n const context = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context.monkeyecxService.monkeyecxHandlingService.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n }\n });\n return target;\n };\n}\n\nexport function MonkeyEcxCoreLog(tp: string) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n propertyDescriptor.value = function (...args: any[]) {\n const params = args\n .map((a: any) => {\n return JSON.stringify(a);\n })\n .join();\n const result = method.apply(this, args);\n const r = JSON.stringify(result);\n console.log(`Call: ${propertyName}(${params}) => ${r}`);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreClearDecorators() {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(params);\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServicePaged(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n const credentials =\n context?.monkeyecxService?.monkeyecxHandlingService?.getMonkeyEcxServiceCredentials();\n let requestPaged = null;\n if (credentials) {\n requestPaged = credentials.requestPaged;\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials({\n ...params,\n ...(requestPaged || {}),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServiceQueue(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService.monkeyecxHandlingService.setMonkeyEcxRequestQueue(\n DecoratorsUtils.buildQueuePropertys({\n name,\n description,\n })\n );\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceDownload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestDownload({\n ...DecoratorsUtils.buildDownloadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceUpload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestUpload({\n ...DecoratorsUtils.buildUploadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","import { Directive, HostListener, Output, HostBinding, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxDragDrop]',\n})\nexport class MonkeyEcxDragDropDirective {\n @Output() onFileDropped: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding('style.background-color') private background = '#f5fcff';\n\n @HostBinding('style.opacity') private opacity = '1';\n\n @HostListener('dragover', ['$event'])\n onDragOver(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#9ecbec';\n this.opacity = '0.8';\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n const { files } = evt?.dataTransfer;\n if (files.length > 0) {\n this.onFileDropped.emit(files);\n }\n }\n}\n","import { Directive, ElementRef, HostListener, OnInit, Injector } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFormatCurrency]',\n providers: [CurrencyPipe]\n})\nexport class MonkeyEcxFormatCurrency implements OnInit {\n private el: HTMLInputElement;\n\n private currency: any;\n\n private currencyCode: string = 'BRL';\n\n private currentLocale: string = 'pt-BR';\n\n constructor(private elementRef: ElementRef, private injector: Injector) {\n this.el = this.elementRef.nativeElement;\n this.currency = this.injector.get(CurrencyPipe);\n\n const translateService = this.injector.get(TranslateService);\n translateService.get('MONKEY-CURRENCY-CODE').subscribe((_: any) => {\n this.currencyCode = _;\n this.currentLocale = translateService.getDefaultLang();\n });\n }\n\n private handle(value: any): string {\n const { currencyCode, currentLocale } = this;\n const newValue = MonkeyEcxUtils.handleOnlyNumbers(value);\n return this.currency.transform(newValue / 100, currencyCode, 'symbol', '', currentLocale);\n }\n\n ngOnInit() {\n this.el.value = this.handle(this.el.value);\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: any) {\n this.el.value = this.handle(value);\n }\n}\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2, Self } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n selector: '[monkeyecxFormatUpper]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxFormatUpper;\n }),\n multi: true,\n },\n ],\n})\nexport class MonkeyEcxFormatUpper implements ControlValueAccessor {\n _onChange?: (_: any) => void;\n\n _touched?: () => void;\n\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('keyup', ['$event'])\n onKeyDown(evt: KeyboardEvent) {\n const value = this._el.nativeElement.value.toUpperCase();\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n this._onChange?.(value);\n evt.preventDefault();\n }\n\n @HostListener('blur', ['$event'])\n onBlur() {\n this._touched?.();\n }\n\n writeValue(value: any): void {\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._touched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyAlphaNumeric]'\n})\nexport class MonkeyEcxOnlyAlphaNumericDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyAlphaNumeric(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyNumbers]'\n})\nexport class MonkeyEcxOnlyNumbersDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyNumbers(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, forwardRef, InjectionToken, Input } from '@angular/core';\n\nexport const POPOVER_OPTIONS = new InjectionToken('POPOVER_OPTIONS');\n\nexport type PopoverDir =\n | 'rtl'\n | 'ltr'\n | 'trtl'\n | 'tltr'\n | 'ct'\n | 'cc'\n | 'cr'\n | 'rt'\n | 'rb'\n | 'lt'\n | 'lb';\n\nexport interface MonkeyEcxPopoverOptions {\n dir?: PopoverDir;\n minwidth?: boolean;\n backdrop?: boolean;\n contextmenu?: boolean;\n}\n\n@Directive({\n selector: '[monkeyecxPopoverOptions]',\n providers: [\n {\n provide: POPOVER_OPTIONS,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxPopoverOptionsDirective;\n })\n }\n ]\n})\nexport class MonkeyEcxPopoverOptionsDirective implements MonkeyEcxPopoverOptions {\n @Input('monkeyecxPopoverOptions')\n set options(options: MonkeyEcxPopoverOptions) {\n Object.entries(options).forEach(([k, v]) => {\n this[k] = v;\n });\n }\n\n minwidth?: boolean;\n\n dir?: PopoverDir;\n\n backdrop?: boolean;\n\n contextmenu?: boolean;\n}\n","import {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy, FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { POPOVER_OPTIONS } from './monkeyecx-popover-options.directive';\nimport type { PopoverDir, MonkeyEcxPopoverOptions } from './monkeyecx-popover-options.directive';\n\n@Directive({\n selector: '[monkeyecxPopover]'\n})\nexport class MonkeyEcxPopoverDirective implements OnDestroy {\n private _popover!: boolean;\n\n get popover() {\n return this._popover;\n }\n\n @Input('monkeyecxPopover')\n set popover(show: boolean) {\n this._popover = show;\n if (show) {\n this.createPopover();\n } else if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n @Input('monkeyecxPopoverClosed') closed!: (e?: MouseEvent) => void;\n\n private _target!: HTMLElement;\n\n get target() {\n return this._target;\n }\n\n @Input('monkeyecxPopoverTarget')\n set target(target: HTMLElement) {\n this._target = target;\n }\n\n @Input('monkeyecxPopoverMinwidth') minwidth = false;\n\n @Input('monkeyecxPopoverBackdrop') backdrop = true;\n\n @Input('monkeyecxPopoverWatch') watch = false;\n\n @Input('monkeyecxPopoverDir') dir: PopoverDir = 'ltr';\n\n @Input('monkeyecxPopoverContextmenu') contextmenu = false;\n\n @Input('monkeyecxPopoverHeight') height!: number | string;\n\n private overlayRef!: OverlayRef;\n\n private positionStrategy!: FlexibleConnectedPositionStrategy;\n\n private templatePortal!: TemplatePortal;\n\n private subs = new Subscription();\n\n private eventsSubs = new Subscription();\n\n private resizeObserver: any;\n\n constructor(\n private tpl: TemplateRef<any>,\n private vcr: ViewContainerRef,\n private el: ElementRef,\n private zone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n private _cd: ChangeDetectorRef,\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private router: Router,\n @Inject(POPOVER_OPTIONS) @Optional() private options: MonkeyEcxPopoverOptions\n ) {\n this.eventsSubs = this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.onHandleClose();\n });\n }\n\n private onHandleClose(e?: MouseEvent) {\n this.popover = false;\n this.subs.unsubscribe();\n this.resizeObserver?.disconnect();\n this.zone.run(() => {\n if (this.closed) {\n this.closed(e);\n }\n });\n }\n\n getDirPositions(dir?: PopoverDir): ConnectedPosition[] {\n const revert = {\n start: 'end', end: 'start', bottom: 'top', top: 'bottom', center: 'center'\n };\n const centerY = (pos: any): ConnectedPosition => {\n return {\n originX: 'center', originY: pos, overlayX: 'center', overlayY: revert[pos]\n };\n };\n const centerX = (pos: any): ConnectedPosition => {\n return {\n originX: revert[pos], originY: 'center', overlayX: pos, overlayY: 'center'\n };\n };\n const ltr = (axis: any): ConnectedPosition => {\n return {\n originX: 'start', originY: axis, overlayX: 'start', overlayY: revert[axis]\n };\n };\n const rtl = (axis: any): ConnectedPosition => {\n return {\n originX: 'end', originY: axis, overlayX: 'end', overlayY: revert[axis]\n };\n };\n const side = (axis: any, axis2: any): ConnectedPosition => {\n return {\n originX: axis, originY: axis2, overlayX: revert[axis], overlayY: axis2\n };\n };\n\n const cmp = dir || this.options?.dir || this.dir;\n if (cmp === 'ct') {\n return [centerY('top'), centerY('bottom'), centerX('start'), centerX('end')];\n }\n if (cmp === 'cr') {\n return [centerX('end'), centerX('start'), centerY('top'), centerY('bottom')];\n }\n if (cmp === 'cc') {\n return [centerX('center')];\n }\n if (cmp === 'ltr') {\n return [ltr('bottom'), ltr('top')];\n }\n if (cmp === 'rtl') {\n return [rtl('bottom'), rtl('top')];\n }\n if (cmp === 'tltr') {\n return [ltr('top'), ltr('bottom')];\n }\n if (cmp === 'trtl') {\n return [rtl('top'), rtl('bottom')];\n }\n if (cmp === 'rt') {\n return [side('end', 'top'), side('end', 'bottom'), ltr('top')];\n }\n if (cmp === 'rb') {\n return [side('end', 'bottom'), side('end', 'top'), ltr('bottom'), rtl('bottom')];\n }\n if (cmp === 'lt') {\n return [side('start', 'top'), side('start', 'bottom'), rtl('top')];\n }\n if (cmp === 'lb') {\n return [side('start', 'bottom'), side('start', 'top'), rtl('bottom')];\n }\n\n return [];\n }\n\n createPopover(\n origin?: FlexibleConnectedPositionStrategyOrigin,\n options?: MonkeyEcxPopoverOptions\n ) {\n this.templatePortal = new TemplatePortal(this.tpl, this._viewContainerRef);\n this.positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(origin || this.target)\n .withPush(true)\n .withGrowAfterOpen(true)\n .withPositions(this.getDirPositions(options?.dir));\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.positionStrategy,\n disposeOnNavigation: true,\n direction: 'ltr',\n hasBackdrop: this.backdrop,\n scrollStrategy: this.overlay.scrollStrategies.reposition({\n }),\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: (this.options?.minwidth || this.minwidth) ? (this.target.offsetWidth - 2) : undefined,\n maxHeight: '95%',\n height: this.height\n });\n\n this.subs = this.overlayRef.backdropClick().subscribe((e) => {\n this.onHandleClose(e);\n });\n\n const attached = this.overlayRef.attach(this.templatePortal);\n\n if (this.watch) {\n try {\n if ('ResizeObserver' in window) {\n this.resizeObserver = new ResizeObserver(([{ contentRect }]) => {\n this.overlayRef.updatePosition();\n })\n .observe(attached.rootNodes[0]);\n }\n } catch (e) {\n // not to do\n }\n }\n }\n\n ngOnDestroy() {\n this.popover = false;\n this.subs.unsubscribe();\n this.eventsSubs.unsubscribe();\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core/interfaces';\n\nconst clear = createAction('[MECX Core Storage] Clear All');\nconst create = createAction('[MECX Core Storage] Create', props<{ data: MonkeyEcxStorage[] }>());\nconst deleteOne = createAction(\n '[MECX Core Storage] Delete One',\n props<{ data: MonkeyEcxStorage }>()\n);\nconst updateControl = createAction('[MECX Core Storage] Update Control', props<{ data: any }>());\nconst updateOne = createAction(\n '[MECX Core Storage] Update One',\n props<{ data: MonkeyEcxStorage }>()\n);\n\nexport { clear, create, deleteOne, updateControl, updateOne };\n","import { ActionReducer, INIT } from '@ngrx/store';\n\nexport const seederReducer = (keys: string[]) => {\n return (reducer: ActionReducer<any>): ActionReducer<any> => {\n return (state, action) => {\n const handledState = reducer(state, action);\n if (action.type === INIT) {\n let data: any = null;\n try {\n const storage = localStorage.getItem('mecx-store');\n const handled = atob(storage || '');\n if (handled !== '{}') {\n const storageValue = JSON.parse(atob(storage || ''));\n keys.forEach((key: string) => {\n let value: any = null;\n if (storageValue?.[key]) {\n value = {\n [key]: storageValue?.[key]\n };\n }\n\n data = {\n ...data,\n ...value\n };\n });\n }\n\n return data;\n } catch (e) {\n localStorage.removeItem('mecx-store');\n return handledState;\n }\n }\n\n let data: any = null;\n try {\n keys.forEach((key: string) => {\n data = {\n ...data,\n [key]: handledState[key]\n };\n });\n const handled = JSON.stringify(data);\n if (handled !== '{}') {\n localStorage.setItem('mecx-store', btoa(JSON.stringify(data)));\n }\n } catch (e) {\n localStorage.removeItem('mecx-store');\n }\n\n return handledState;\n };\n };\n};\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { createReducer, on } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core';\nimport * as actions from '../actions';\n\nexport const featureKey = 'mecx-core-storage';\n\nexport interface State extends EntityState<MonkeyEcxStorage> {\n control: {\n isLoading: boolean;\n };\n error: any;\n}\n\nexport const adapter: EntityAdapter<MonkeyEcxStorage> = createEntityAdapter<MonkeyEcxStorage>({\n selectId: (item: MonkeyEcxStorage) => {\n return item.username;\n }\n});\n\nexport const initialState: State = adapter.getInitialState({\n control: {\n isLoading: false\n },\n error: null\n});\n\nexport const reducer = createReducer(\n initialState,\n on(actions.monkeyecxStorage.clear, (state: any) => {\n return adapter.removeAll(state);\n }),\n on(actions.monkeyecxStorage.create, (state, action) => {\n return adapter.upsertMany(action.data, {\n ...state\n });\n }),\n on(actions.monkeyecxStorage.updateControl, (state, action) => {\n return {\n ...state,\n control: {\n ...state.control,\n ...action.data\n }\n };\n }),\n on(actions.monkeyecxStorage.updateOne, (state, action) => {\n const { username } = action.data;\n return adapter.upsertOne(\n { ...action.data, username },\n {\n ...state\n }\n );\n }),\n on(actions.monkeyecxStorage.deleteOne, (state, action) => {\n const { username } = action.data;\n return adapter.removeOne(username, state);\n })\n);\n\nexport const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors();\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core';\nimport * as reducers from '../reducers';\n\ndeclare type State = reducers.fromMonkeyecxStorage.State;\n\nexport const selectState = createFeatureSelector<reducers.fromMonkeyecxStorage.State>(\n reducers.fromMonkeyecxStorage.featureKey\n);\n\nexport const selectAll = createSelector(selectState, reducers.fromMonkeyecxStorage.selectAll);\n\nexport const select = (props: { username: string }) => {\n return createSelector(\n selectAll,\n (entities: MonkeyEcxStorage[]): MonkeyEcxStorage | undefined => {\n return entities.find((_: MonkeyEcxStorage) => {\n return _.username === props.username;\n });\n }\n );\n};\n\nexport const selectControl = () => {\n return createSelector(\n selectState,\n (state: State): any => {\n return state.control;\n }\n );\n};\n","export class Link {\n href: string;\n\n type: string;\n\n profile: string;\n\n templated: boolean;\n\n constructor(data?: any) {\n this.href = data?.href;\n this.type = data?.type;\n this.profile = data?.profile;\n this.templated = data?.templated;\n }\n}\n\nexport class MonkeyEcxModel {\n _links: any;\n\n public getAction(\n type: string,\n replaceOptions?: {\n from: string;\n to: string;\n }\n ): Link | null {\n const { _links } = this;\n if (!_links) return null;\n let link: Link = _links[type.toLowerCase()];\n link = new Link(link);\n if (link && replaceOptions && link?.templated) {\n const { from, to } = replaceOptions;\n link = new Link({\n ...link,\n href: `${link.href}`.replace(from, to)\n });\n }\n return link;\n }\n}\n","import { MonkeyEcxModel } from './monkeyecx-model';\n\nexport class MonkeyEcxLinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n\n this._links = data?._links;\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { MonkeyEcxRequestPaged } from '../../interfaces/monkeyecx-request-paged';\nimport { MonkeyEcxResponseLinks } from '../../interfaces/monkeyecx-response-links';\n\nexport class MonkeyEcxRequestPagedHandling {\n private url?: string;\n\n private pagedParams: MonkeyEcxRequestPaged;\n\n private links: MonkeyEcxResponseLinks;\n\n private samePage = false;\n\n constructor(\n url?: string,\n pagedParams?: MonkeyEcxRequestPaged,\n links?: any,\n samePage: boolean = false\n ) {\n this.url = url;\n this.pagedParams = pagedParams || {\n page: {},\n };\n this.links = links;\n this.samePage = samePage;\n }\n\n private handlePagedValuesFromApi(url: string = '') {\n if (url.search('\\\\?') < 0) return url;\n const params = url.substring(url.search('\\\\?') + 1, url.length);\n url = url.substring(0, url.search('\\\\?'));\n return `${url}?${new HttpParams({\n fromString: params,\n })\n .delete('size')\n .delete('page')\n .toString()}`;\n }\n\n private getUrlParams(url: string): string {\n const { pagedParams } = this;\n const { number, size } = pagedParams?.page || {};\n const hasInitialQueryParams = url.search('\\\\?') > 0;\n return `${!hasInitialQueryParams ? '?' : '&'}page=${number || 0}&size=${size || 20}`;\n }\n\n public getRequestWithPagedParams(): string {\n const { url, links, samePage } = this;\n if (samePage && links.self) {\n return links.self.href;\n }\n if (links && links.next) {\n return links.next.href;\n }\n const handled = this.handlePagedValuesFromApi(url);\n return `${handled}${this.getUrlParams(handled)}`;\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport {\n ActivatedRouteSnapshot,\n NavigationStart,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { filter, take, takeWhile } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport {\n MonkeyEcxCompanyPendenciesValidated,\n MonkeyEcxConfig,\n MonkeyEcxCountrySecurity,\n MonkeyEcxErrorResponse,\n MonkeyEcxHandledErrorResponse,\n MonkeyEcxRequestPaged,\n MonkeyEcxRequestSchedule,\n MonkeyEcxResponseLinks,\n MonkeyEcxResponsePaged,\n MonkeyEcxSavedState,\n MonkeyEcxTranslateOptions\n} from '../../interfaces';\nimport { MonkeyEcxModel } from '../../model';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxFeatureToggleService } from '../config/monkeyecx-feature-toggle.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxPaginationService } from '../pagination';\nimport { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';\nimport { MonkeyEcxRequestQueueHandlingService } from '../request-queue/monkeyecx-request-queue-handling.service';\nimport { MonkeyEcxRequestScheduleService } from '../schedules/monkeyecx-request-schedule.service';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\n\nclass LinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n this._links = data?._links;\n }\n}\n\nexport class MonkeyEcxCommonsService {\n private flagValidator = true;\n\n private destroyed = false;\n\n __data$: Observable<any> | null = null;\n\n __pagination$: Observable<any> | null = null;\n\n __control$: Observable<any> | null = null;\n\n __page$: Observable<any> | null = null;\n\n __data: any | any[];\n\n __savedState: MonkeyEcxSavedState | null = null;\n\n __params: any | any[];\n\n __error: MonkeyEcxErrorResponse | null = null;\n\n __handledError: MonkeyEcxHandledErrorResponse | null = null;\n\n __page: MonkeyEcxResponsePaged | null = null;\n\n __links: MonkeyEcxResponseLinks | null = null;\n\n __search: any;\n\n __requestPaged: MonkeyEcxRequestPaged | null = null;\n\n __onSearchChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onLoadingInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onUploadInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onDataDeleted$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onErrorChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onGovernmentIdDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onZipCodeDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __oni18nDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDoSearch$: BehaviorSubject<MonkeyEcxRequestPaged> = new BehaviorSubject({});\n\n __schedule: MonkeyEcxRequestSchedule | null = null;\n\n __i18n: any;\n\n __callbackPagination: Function = () => {\n // eslint-disable-next-line no-console\n return console.error('Method callbackPagination needs to be declared');\n };\n\n __paginationOptions: {\n service: MonkeyEcxPaginationService;\n callback: Function;\n name?: string;\n } | undefined;\n\n __isAbleToDoPagination = {};\n\n constructor(\n public monkeyecxService?: MonkeyEcxService,\n public tokenStorage?: MonkeyEcxTokenStorageService,\n public otherArgs?: {\n router?: Router;\n schedule?: {\n service: MonkeyEcxRequestScheduleService;\n options?: {\n clearOnChangeRoute?: boolean;\n };\n };\n queue?: {\n service: MonkeyEcxRequestQueueHandlingService;\n };\n }\n ) {\n this.handleInit();\n }\n\n private handleInit() {\n if (this.otherArgs?.router) {\n const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {\n clearOnChangeRoute: false\n };\n\n this.otherArgs.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n }),\n takeWhile(() => {\n return !this.destroyed;\n })\n )\n .subscribe(() => {\n if (this.__schedule && clearOnChangeRoute) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n });\n }\n }\n\n private navigateToPendencyPage(\n arg: MonkeyEcxCompanyPendenciesValidated,\n companyType?: string,\n router?: Router\n ) {\n let route = '/app';\n\n if (companyType) {\n route = `${route}/${companyType}/pages`;\n } else {\n route = `${route}/user/profile/pages`;\n }\n\n if (!router) {\n // eslint-disable-next-line no-console\n console.error('Router must be declared');\n } else {\n router.navigate([`${route}/company-pendency`.toLowerCase()], {\n state: {\n pendencyData: arg\n }\n });\n }\n }\n\n private allowedSecurityAccessByPendency(args: any): MonkeyEcxCompanyPendenciesValidated {\n if (!args) {\n return {\n hasPendencies: false\n };\n }\n const { service, type } = args;\n return service.hasPendencies(type);\n }\n\n private allowedSecurityAccessByFeature(args: any): boolean {\n if (!args) {\n return true;\n }\n const { config, feature } = args;\n try {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\n return true;\n }\n return !config?.program?.settings?.[feature];\n } catch (e) {\n // not to do\n }\n return true;\n }\n\n private allowedSecurityAccessByCountry(arg?: MonkeyEcxCountrySecurity): boolean {\n if (!arg) return true;\n return arg.country === arg.envCountry;\n }\n\n private handlePaginationOptions() {\n const { __paginationOptions } = this;\n if (__paginationOptions) {\n const { service, callback, name } = __paginationOptions;\n service?.setCallback((type: string) => {\n this.doPaginationv2(type, callback);\n }, name || 'main');\n }\n }\n\n setPage(requestPaged: MonkeyEcxRequestPaged) {\n this.__requestPaged = {\n ...this.__requestPaged,\n ...requestPaged\n };\n return this;\n }\n\n nextPage(): boolean {\n if (this.__links) {\n return !!this.__links?.next;\n }\n if (!this.__requestPaged) return false;\n const { page } = this.__requestPaged as any;\n const { number, totalPages } = page;\n if (number < totalPages) {\n this.__requestPaged = {\n ...this.__requestPaged,\n page: {\n ...page,\n number: number + 1\n }\n };\n return true;\n }\n return false;\n }\n\n getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n getNormalizedUrl(url: string, samePage = false): string {\n const { __requestPaged, __links } = this;\n return new MonkeyEcxRequestPagedHandling(\n url,\n __requestPaged || {},\n __links,\n samePage\n ).getRequestWithPagedParams();\n }\n\n clear(clearData: boolean) {\n if (clearData) {\n this.__data = null;\n this.__requestPaged = null;\n this.__params = null;\n this.__page = null;\n this.__links = null;\n\n if (this.__schedule) {\n const { queue } = this.__schedule;\n if (queue) {\n this.otherArgs?.queue?.service?.removeQueueItem(queue);\n }\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n }\n this.__error = null;\n this.__handledError = null;\n this.flagValidator = false;\n this.destroyed = true;\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: {\n companyType?: string,\n callbackMain: Function;\n router?: Router;\n callbackPagination?: Function;\n translateOptions?: MonkeyEcxTranslateOptions;\n feature?: {\n service: MonkeyEcxFeatureToggleService;\n flag: string;\n };\n featureByProgram?: {\n config: MonkeyEcxConfig;\n feature: string;\n };\n countrySecurity?: MonkeyEcxCountrySecurity;\n pendency?: {\n service: {\n hasPendencies: Function;\n };\n type: string;\n };\n paginationOptions?: {\n service: MonkeyEcxPaginationService,\n callback: Function,\n name?: string\n }\n }\n ) {\n if (JSON.stringify(route?.queryParams) === '{}') {\n this.__data = null;\n this.__page = null;\n }\n\n this.__requestPaged = null;\n this.flagValidator = true;\n\n const pend = this.allowedSecurityAccessByPendency(otherArgs?.pendency);\n const allowedByProgram = this.allowedSecurityAccessByFeature(otherArgs?.featureByProgram);\n\n if (\n this.allowedSecurityAccessByCountry(otherArgs?.countrySecurity) &&\n !pend.hasPendencies &&\n allowedByProgram\n ) {\n if (this.__schedule) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n\n const { __requestPaged } = this;\n if (!__requestPaged) {\n this.setPage({\n page: {\n number: 0,\n size: 10\n }\n });\n }\n\n if (otherArgs?.translateOptions) {\n const { service, keys } = otherArgs?.translateOptions;\n this.geti18n(service, keys || '');\n }\n\n if (otherArgs?.callbackPagination) {\n this.__callbackPagination = otherArgs.callbackPagination;\n }\n\n if (otherArgs?.paginationOptions) {\n this.__paginationOptions = otherArgs?.paginationOptions;\n this.handlePaginationOptions();\n }\n\n if (otherArgs?.feature) {\n const { flag, service } = otherArgs.feature;\n\n service.onFlags\n .pipe(\n takeWhile(() => {\n return this.flagValidator;\n })\n )\n .subscribe((val: boolean) => {\n if (val) {\n const hasFlag = service.getFlag(flag);\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {\n if (!hasFlag) {\n this.navigateToErrorPage(404, otherArgs?.router);\n }\n }\n }\n });\n }\n\n otherArgs?.callbackMain();\n } else if (!allowedByProgram) {\n this.navigateToErrorPage(404, otherArgs?.router);\n } else if (pend.hasPendencies) {\n this.navigateToPendencyPage(pend, otherArgs?.companyType, otherArgs?.router);\n } else {\n this.navigateToErrorPage(403, otherArgs?.router);\n }\n }\n\n getHTTPHeaderApplicationPDF(): Object {\n return {\n observe: 'response',\n responseType: 'blob'\n };\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true\n }\n })\n genericMethod(link: any, data?: any, callback?: Function) {\n const { href, type = 'get' } = link;\n\n this.monkeyecxService?.[type.toLowerCase()](`${href}`, data)?.subscribe(\n (resp: any) => {\n if (callback) callback(resp);\n },\n (err: HttpErrorResponse) => {\n if (callback) callback();\n throwError(err);\n }\n );\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true\n }\n })\n async getGenericData(data: any, action: string) {\n const { monkeyecxService } = this;\n if (!monkeyecxService) return null;\n const { href, type } = new LinksModel(data)?.getAction(action) || {\n href: '', type: 'get'\n };\n\n return monkeyecxService[type.toLowerCase()]<any>(href)\n .pipe(take(1)).toPromise();\n }\n\n geti18n(translateService: TranslateService, keys: string | string[]) {\n translateService.onDefaultLangChange.subscribe(() => {\n this.__i18n = translateService.instant(keys);\n this.__oni18nDataChanged$.next(null);\n });\n translateService.getStreamOnTranslationChange(keys).subscribe(() => {\n this.__i18n = translateService.instant(keys);\n this.__oni18nDataChanged$.next(null);\n });\n }\n\n doPagination() {\n if (!this.__onLoadingInProgress$.value) {\n const hasMorePages = this.setPage({\n page: {\n ...this.__page\n }\n }).nextPage();\n\n if (hasMorePages && this.__callbackPagination) {\n this.__callbackPagination();\n }\n }\n }\n\n doPaginationv2(type: string, callback: Function) {\n if (!this.__onLoadingInProgress$.value) {\n if (callback) {\n callback(type);\n }\n }\n }\n\n setLinks(links: any) {\n this.__isAbleToDoPagination = {\n first: !!links?.first,\n next: !!links?.next\n };\n this.__links = links;\n }\n\n setSearchByUrl(router: Router, url: string, search: any, extras?: any) {\n this.__data = null;\n this.__page = null;\n this.__onDataChanged$.next(null);\n this.__onLoadingInProgress$.next(false);\n\n router.navigate([url], {\n queryParams: {\n ...search,\n r: MonkeyEcxUtils.getRandomString(30)\n },\n queryParamsHandling: 'merge',\n ...extras\n });\n }\n\n saveState(state: MonkeyEcxSavedState) {\n this.__savedState = {\n page: this.__page,\n ...state\n };\n }\n\n navigateToErrorPage(statusCode: number, router?: Router) {\n const routes: any = {\n 403: 'forbidden',\n 404: 'not-found',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n if (!router) {\n console.error('Router must be declared');\n } else {\n router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()]);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Action, Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '.';\nimport {\n MonkeyEcxDiscoveryParamsService,\n MonkeyEcxPaginationService,\n MonkeyEcxTokenStorageService\n} from '../..';\nimport {\n MonkeyEcxCommonsConfig,\n MonkeyEcxCommonsSearch,\n MonkeyEcxInitialResolverConfig\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\nexport abstract class MonkeyEcxCommonsResolveBaseService extends MonkeyEcxCommonsService {\n private action: any;\n\n protected route: string | null = null;\n\n protected currentRoute: string | null = null;\n\n protected paginationService = inject(MonkeyEcxPaginationService);\n\n protected translateService = inject(TranslateService);\n\n protected router = inject(Router);\n\n protected store = inject(Store);\n\n protected monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n config: {\n actions: {\n load: Action;\n loadPagination?: Action;\n }\n }\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions } = config;\n this.action = actions;\n }\n\n protected async getData() {\n try {\n const { store, route, action, tokenStorage } = this;\n const { companyId, governmentId } = await tokenStorage?.getToken();\n\n if (!route) return;\n\n const url = MonkeyEcxUtils.replaceVariables(route, { companyId, governmentId });\n\n store.dispatch(action.load({ url }));\n } catch (e) {\n throw new Error(`MECX Core - Method getData -> ${e}`);\n }\n }\n\n protected async loadPage(actionType: string) {\n try {\n const { store, action } = this;\n store.dispatch(\n action.loadPagination({\n pagination: {\n action: actionType\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method loadPage -> ${e}`);\n }\n }\n\n /**\n * @description Inicializar a class genérica\n * @param (args: MonkeyEcxInitialResolverConfig)\n * => route é obrigátorio pois ele quem inicializa a store.\n * A searchClass só se faz necessaria quando for usar filtros\n */\n protected init(args: MonkeyEcxInitialResolverConfig) {\n try {\n const { searchClass, route } = args;\n\n this.route = route;\n\n if (searchClass) {\n // eslint-disable-next-line new-cap\n const searchInstance: MonkeyEcxCommonsSearch = new searchClass(this.__search);\n\n this.route = `${route}${searchInstance.buildParams()}`;\n\n this.__onSearchChanged$.next(searchInstance);\n }\n\n this.getData();\n } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: MonkeyEcxCommonsConfig\n ) {\n this.__search = route?.queryParams;\n\n const [currentRoute] = state?.url.split('?') || [null];\n\n this.currentRoute = currentRoute;\n\n super.resolve(route, state, otherArgs);\n }\n\n /**\n * @description Atualizar os filtros da tela\n * @param (search: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public setSearch<T>(search: T, route?: string): void {\n try {\n const { currentRoute, router } = this;\n\n this.setSearchByUrl(router, route || `${currentRoute}`, search);\n } catch (e) {\n throw new Error(`MECX Core - Method setSearch -> ${e}`);\n }\n }\n\n /**\n * @description Navegação para details.\n * Por padrão sera redirecionado para '${currentRoute}/details'\n * @param (detailsData: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public navigateToDetails<T>(detailsData: T, route?: string) {\n try {\n const { router, currentRoute } = this;\n\n router.navigate([route || `${currentRoute}/details`], {\n state: {\n detailsData\n }\n });\n } catch (e) {\n throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Action, Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '.';\nimport {\n MonkeyEcxDiscoveryParamsService,\n MonkeyEcxPaginationService,\n MonkeyEcxTokenStorageService\n} from '../..';\nimport {\n MonkeyEcxCommonsConfig,\n MonkeyEcxCommonsSearch,\n MonkeyEcxInitialResolverConfig\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\ndeclare type Selectors =\n | {\n selectByIdentifier: Function;\n selectOneByIdentifier?: never;\n selectControl: Function;\n selectLinks?: Function;\n selectPage?: Function;\n }\n | {\n selectOneByIdentifier: Function;\n selectByIdentifier?: never;\n selectControl: Function;\n };\n\nexport abstract class MonkeyEcxCommonsResolveService extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n protected route: string | null = null;\n\n protected currentRoute: string | null = null;\n\n protected paginationService = inject(MonkeyEcxPaginationService);\n\n protected translateService = inject(TranslateService);\n\n protected router = inject(Router);\n\n protected store = inject(Store);\n\n protected monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n config: {\n actions: {\n load: Action;\n loadPagination?: Action;\n };\n selectors: Selectors;\n }\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n protected async getData() {\n try {\n const { store, route, action, selector, tokenStorage } = this;\n\n const { companyId, companyType, governmentId } = await tokenStorage?.getToken();\n\n const identifier = `${companyId || governmentId}-${companyType}`;\n\n if (!route) return;\n\n const url = MonkeyEcxUtils.replaceVariables(route, { companyId });\n\n store.dispatch(action.load({ url, identifier }));\n\n this.__control$ = store.select(selector.selectControl());\n\n if (selector?.selectByIdentifier) {\n this.__data$ = store.select(selector.selectByIdentifier({ identifier }));\n }\n\n if (selector?.selectOneByIdentifier) {\n this.__data$ = store.select(selector.selectOneByIdentifier({ identifier }));\n }\n\n if (selector?.selectLinks) {\n this.__pagination$ = store.select(selector.selectLinks({ identifier }));\n }\n\n if (selector?.selectPage) {\n this.__page$ = store.select(selector.selectPage({ identifier }));\n }\n\n this.__onDataChanged$.next(null);\n } catch (e) {\n throw new Error(`MECX Core - Method getData -> ${e}`);\n }\n }\n\n protected async loadPage() {\n try {\n const { store, tokenStorage, action } = this;\n const { companyId, companyType, governmentId } = await tokenStorage?.getToken();\n\n store.dispatch(\n action.loadPagination({\n identifier: `${companyId || governmentId}-${companyType}`,\n pagination: {\n action: 'next'\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method loadPage -> ${e}`);\n }\n }\n\n /**\n * @description Inicializar a class genérica\n * @param (args: MonkeyEcxInitialResolverConfig)\n * => route é obrigátorio pois ele quem inicializa a store.\n * A searchClass só se faz necessaria quando for usar filtros\n */\n protected init(args: MonkeyEcxInitialResolverConfig) {\n try {\n const { searchClass, route } = args;\n\n this.route = route;\n\n if (searchClass) {\n // eslint-disable-next-line new-cap\n const searchInstance: MonkeyEcxCommonsSearch = new searchClass(this.__search);\n\n this.route = `${route}${searchInstance.buildParams()}`;\n\n this.__onSearchChanged$.next(searchInstance);\n }\n\n this.getData();\n } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: MonkeyEcxCommonsConfig\n ) {\n this.__search = route?.queryParams;\n\n const [currentRoute] = state?.url.split('?') || [null];\n\n this.currentRoute = currentRoute;\n\n super.resolve(route, state, otherArgs);\n }\n\n /**\n * @description Atualizar os filtros da tela\n * @param (search: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public setSearch<T>(search: T, route?: string): void {\n try {\n const { currentRoute, router } = this;\n\n this.setSearchByUrl(router, route || `${currentRoute}`, search);\n } catch (e) {\n throw new Error(`MECX Core - Method setSearch -> ${e}`);\n }\n }\n\n /**\n * @description Navegação para details.\n * Por padrão sera redirecionado para '${currentRoute}/details'\n * @param (detailsData: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public navigateToDetails<T>(detailsData: T, route?: string) {\n try {\n const { router, currentRoute } = this;\n\n router.navigate([route || `${currentRoute}/details`], {\n state: {\n detailsData\n }\n });\n } catch (e) {\n throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nlet window: any;\n\nconst text: any = {\n i18n: {\n title: 'We have an quick update for you',\n message: 'Click anywhere here to reload your locale',\n },\n theme: {\n title: 'We have an quick update for you',\n message: 'Click anywhere here to reload your theme',\n },\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonkeyEcxErrorConfigService {\n constructor() {\n // not to do\n }\n\n private enableSupport() {\n window.zE('webWidget', 'updateSettings', {\n webWidget: {\n color: {\n theme: '#0273E8',\n launcherText: '#fff',\n header: '#0273E8',\n button: '#0273E8',\n },\n zIndex: 99,\n offset: {\n horizontal: '1px',\n vertical: '20px',\n },\n mobile: {\n labelVisible: true,\n },\n launcher: {\n mobile: {\n labelVisible: true,\n },\n },\n },\n });\n window.zE('webWidget', 'setLocale', 'en-US');\n window.zE('webWidget', 'show');\n }\n\n public apply(type: string) {\n const { title, message } = text?.[type];\n\n const element = document.createElement('div');\n element.id = 'monkeyecx-information';\n\n const elementImg = document.createElement('img');\n elementImg.width = 128;\n elementImg.src = 'assets/images/monkey.svg';\n elementImg.style.marginBottom = '50px';\n\n const elementTitle = document.createElement('span');\n elementTitle.id = 'title';\n elementTitle.innerText = title;\n elementTitle.style.marginBottom = '20px';\n\n const elementMessage = document.createElement('span');\n elementMessage.id = 'message';\n elementMessage.innerText = message;\n elementMessage.style.marginBottom = '20px';\n\n const elementChat = document.createElement('span');\n elementChat.id = 'message';\n elementChat.innerText =\n \"If you're having trouble to update, please use the support icon bellow\";\n\n element.appendChild(elementImg);\n element.appendChild(elementTitle);\n element.appendChild(elementMessage);\n element.appendChild(elementChat);\n\n element.addEventListener('click', () => {\n document.location.reload();\n });\n\n document.body.appendChild(element);\n\n document.body.getElementsByTagName('app-root')[0].remove();\n this.enableSupport();\n }\n}\n","/* eslint-disable no-console */\nimport { registerLocaleData } from '@angular/common';\nimport esCL from '@angular/common/locales/es-CL';\nimport esMX from '@angular/common/locales/es-MX';\nimport ptBr from '@angular/common/locales/pt';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxMeCredentials } from '../../interfaces/monkeyecx-me-credentials';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxErrorConfigService } from '../config/monkeyecx-error-config.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxi18nConfigService extends MonkeyEcxCommonsService {\n private i18nNotFound = false;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private translateService: TranslateService,\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService\n ) {\n super(monkeyecxService, tokenStorage);\n }\n\n private async loadInternalDefaultFromError(environment: any) {\n const lang = 'pt-BR';\n\n const url = `${environment.localAssets}/i18n/${lang}.json`;\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n this.i18nNotFound = true;\n }\n\n private async loadDefaultFromError(environment: any, name: string) {\n const lang = 'pt-BR';\n\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name,\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n this.i18nNotFound = true;\n }\n\n private async loadAuth(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'auth',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadAuth i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'auth');\n }\n }\n\n private async loadAlerts(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'alerts',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadAlerts i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'alerts');\n }\n }\n\n private async loadShared(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'shared',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadShared i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'shared');\n }\n }\n\n private async loadRegister(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'register',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadRegister i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'register');\n }\n }\n\n private async loadInternal(environment: any, lang: string) {\n try {\n const url = `${environment.localAssets}/i18n/${lang}.json`;\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadInternal i18n ${lang} not found!`);\n await this.loadInternalDefaultFromError(environment);\n }\n }\n\n public async apply(environment: any) {\n let lang = environment?.locale?.lang || 'pt-BR';\n\n try {\n const me: MonkeyEcxMeCredentials = JSON.parse(localStorage.getItem('me') || '{}');\n lang = me?.locale || lang;\n } catch (e) {\n // not to do\n }\n\n if (lang === 'es-CL') {\n registerLocaleData(esCL);\n } else if (lang === 'es-MX') {\n registerLocaleData(esMX);\n } else {\n registerLocaleData(ptBr);\n }\n\n await this.loadAuth(environment, lang);\n await this.loadInternal(environment, lang);\n this.loadAlerts(environment, lang);\n this.loadShared(environment, lang);\n this.loadRegister(environment, lang);\n\n if (this.i18nNotFound) {\n this.translateService.setDefaultLang('pt-BR');\n this.translateService.use('pt-BR');\n return;\n }\n\n this.translateService.setDefaultLang(lang);\n this.translateService.use(lang);\n }\n\n public applyExternal(params: MonkeyEcxConfig, lang: string) {\n try {\n const currentExternali18n = params?.externali18n?.[`${lang}`];\n\n let data = {};\n if (currentExternali18n) {\n data = {\n EXTERNAL: currentExternali18n\n };\n }\n\n this.translateService.setTranslation(lang, data, true);\n } catch (e) {\n console.error(`loadExternal i18n ${lang} not found!`);\n this.monkeyecxErrorConfigService.apply('i18n');\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\nimport { MonkeyEcxMeCredentials } from '../../interfaces/monkeyecx-me-credentials';\nimport { MonkeyEcxTokenCredentials } from '../../interfaces/monkeyecx-token-credentials';\nimport { MonkeyEcxTokenStorageService } from '../../services/storage/monkeyecx-token-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLogsConfigService {\n private allSet = false;\n\n constructor(\n private injector: Injector\n ) {\n // not to do\n }\n\n public apply(\n params: MonkeyEcxConfig,\n configBootstrap: MonkeyEcxConfigBootstrap,\n environment: any,\n identifyCode: string\n ) {\n const { program, logs } = params;\n if (logs?.enabled && environment.environment !== 'dev' && !this.allSet) {\n datadogRum.init({\n applicationId: environment?.dataDogApplicationId,\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n sessionSampleRate: 100,\n sessionReplaySampleRate: 100,\n env: `monkey-front-${identifyCode}-${environment.environment}`,\n version: configBootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n trackResources: true,\n trackLongTasks: true,\n trackUserInteractions: true,\n defaultPrivacyLevel: 'mask-user-input'\n });\n datadogRum.startSessionReplayRecording();\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.init({\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n env: `monkey-front-${identifyCode}-${environment.environment}`,\n version: configBootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n forwardErrorsToLogs: true,\n sessionSampleRate: 100,\n forwardConsoleLogs: 'all'\n });\n }\n\n this.allSet = true;\n }\n this.applyInfoToDataDog(environment);\n }\n\n public async applyInfoToDataDog(environment: any) {\n try {\n const tokenStorage = this.injector.get(MonkeyEcxTokenStorageService);\n const token: MonkeyEcxTokenCredentials = await tokenStorage.getToken();\n if (token.accessToken && environment.dataDogApplicationId) {\n const me: MonkeyEcxMeCredentials = await tokenStorage.getMe();\n\n const user = {\n id: token.username,\n email: token.username,\n name: me.name,\n locale: me.locale\n };\n\n datadogRum.setUser(user);\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.setUser(user);\n }\n }\n } catch (e) {\n // not to do\n }\n }\n\n public clearDataDogInfo() {\n datadogRum.clearUser();\n }\n}\n","import { ApplicationRef, Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { concat, interval } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxServiceWorkerConfigService {\n constructor(\n private appRef: ApplicationRef,\n private updates: SwUpdate,\n private modalService: MonkeyStyleGuideModalFixedService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\n const { updates, modalService } = this;\n updates?.available?.subscribe(() => {\n if (!config.showNewVersion || config.maintenance.closed) {\n document.location.reload();\n } else {\n modalService.closeAll();\n modalService.open(VersionChangedComponent, {\n hideClose: true,\n color: 'theme',\n size: 'md'\n });\n }\n });\n }\n\n private verify() {\n const { appRef, updates } = this;\n const appIsStable$ = appRef.isStable\n .pipe(first((isStable: boolean) => { return isStable === true; }));\n const everyHour$ = interval(1 * 60 * 60 * 1000);\n const everyHourOnceAppIsStable$ = concat(appIsStable$, everyHour$);\n everyHourOnceAppIsStable$.subscribe(() => {\n updates.checkForUpdate();\n });\n updates.checkForUpdate();\n }\n\n public apply(config: MonkeyEcxConfigBootstrap) {\n this.handleValidation(config);\n this.verify();\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyEcxCommonsService } from '../commons';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxSecurityConsoleConfigService extends MonkeyEcxCommonsService {\n private unsubscribeAll = new Subject();\n\n constructor(private translateService: TranslateService) {\n super();\n\n this.geti18n(this.translateService, 'SERVICES.WARNING.CONSOLE');\n }\n\n private handleValidation() {\n this.__oni18nDataChanged$\n .pipe(takeUntil(this.unsubscribeAll)).subscribe(() => {\n const { __i18n } = this;\n const title = __i18n?.TITLE;\n const message = __i18n?.MESSAGE;\n if (title) {\n console.log(`%c${title}`, 'background: #f2f061; color: #ff0000; font-size: 18px');\n console.log(`%c${message}`, 'font-size: x-large');\n console.log(\n '%c __ __ _ ______ \\n ' +\n '| \\\\/ | ___ _ __ | | _____ _ _\\\\ \\\\ \\\\ \\\\ \\n ' +\n \"| |\\\\/| |/ _ \\\\| '_ \\\\| |/ / _ \\\\ | | |\\\\ \\\\ \\\\ \\\\ \\n \" +\n '| | | | (_) | | | | < __/ |_| |/ / / / \\n ' +\n '|_| |_|\\\\___/|_| |_|_|\\\\_\\\\___|\\\\__, /_/_/_/ \\n ' +\n ' |___/ \\n ' +\n '', 'background: #1976d2; color: #fff'\n );\n\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n });\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { ClosedToMaintenanceComponent } from '../../../components/closed-to-maintenance/closed-to-maintenance.component';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxMaintenanceConfigService {\n constructor(private modalService: MonkeyStyleGuideModalService, private router: Router) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\n if (config.maintenance.closed) {\n localStorage.clear();\n this.router.navigate(['']);\n\n setTimeout(() => {\n this.modalService.open(ClosedToMaintenanceComponent, {\n color: 'theme',\n size: 'md',\n data: config\n });\n }, 200);\n }\n }\n\n public apply(config: MonkeyEcxConfigBootstrap) {\n this.handleValidation(config);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LDClient, LDFlagSet, initialize } from 'launchdarkly-js-client-sdk';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxFeatureToggleService {\n private readonly flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n private flags: LDFlagSet | undefined = undefined;\n\n private ldClient: LDClient | undefined = undefined;\n\n constructor() {\n // not to do\n }\n\n private getAllFlags(): void {\n if (!this) return;\n this.flags = this.ldClient?.allFlags();\n\n this.flagSubject$.next(true);\n }\n\n private identify(config: MonkeyEcxConfig, environment: any): void {\n if (config) {\n const email = 'monkey@monkey.exchange';\n const user = {\n email,\n kind: 'user',\n key: `${config.program?.token}#${email}`\n };\n\n if (!this.ldClient) {\n this.ldClient = initialize(environment.launchDarklyClientSideID, user, {\n streaming: true,\n sendEvents: true,\n logger: {\n debug: () => {},\n warn: () => {},\n info: () => {},\n error: (args: any) => {\n console.log('Monkey Client => ', args);\n }\n }\n });\n\n this.ldClient.on('change', this.getAllFlags.bind(this));\n this.ldClient.on('ready', this.getAllFlags.bind(this));\n } else {\n this.ldClient.identify(user, undefined, this.getAllFlags);\n }\n }\n }\n\n public apply(configSubject$: BehaviorSubject<MonkeyEcxConfig>, environment: any) {\n if (environment.launchDarklyClientSideID) {\n configSubject$.subscribe((config) => {\n this.identify(config, environment);\n });\n } else {\n this.flagSubject$.next(true);\n }\n }\n\n public get onFlags(): Observable<any> {\n return this.flagSubject$.asObservable();\n }\n\n public getFlag(flag: string): boolean | null {\n const flagValue = this.flags?.[flag];\n\n return MonkeyUtils.persistNullEmptyUndefined(flagValue) ? flagValue : null;\n }\n\n public sendEvent(key: string, data: any) {\n this.ldClient?.track(key, data);\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\ndeclare const window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxGTMConfigService {\n private handleCode(key: string) {\n try {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js'\n });\n const head = document.querySelector('head');\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=GTM-${key}`;\n head?.appendChild(script);\n\n const body = document.querySelector('body');\n const noscript = document.createElement('noscript');\n const iframe = document.createElement('iframe');\n iframe.src = `https://www.googletagmanager.com/ns.html?id=GTM-${key}`;\n iframe.height = '0';\n iframe.width = '0';\n iframe.style.display = 'none';\n iframe.style.visibility = 'hidden';\n noscript.appendChild(iframe);\n body?.appendChild(noscript);\n } catch (e) {\n console.error('GTM Configuration Error!');\n }\n }\n\n public async apply(config: MonkeyEcxConfig, environment: any) {\n const { enabled, key } = config?.gtm || environment?.gtm || { enabled: false, key: '' };\n\n if (enabled) {\n this.handleCode(key);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { AlertsComponent } from '../../../components/alerts/alerts.component';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\nconst moment: any = moment_;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsConfigService {\n constructor(private modalService: MonkeyStyleGuideModalFixedService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfig) {\n if (config.alert) {\n const { img, title, message, endDate, noEndDate, action, hideClose } = config.alert;\n if (moment.default().isSameOrBefore(moment.default(endDate)) || noEndDate) {\n this.modalService.open(AlertsComponent, {\n hideClose: true,\n color: 'theme',\n size: 'md',\n data: {\n img,\n title,\n message,\n action,\n hideClose\n }\n });\n }\n }\n }\n\n public apply(config: MonkeyEcxConfig) {\n this.handleValidation(config);\n }\n}\n","/* eslint-disable no-console */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideSettingsService } from 'monkey-style-guide';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\nimport { MonkeyEcxCommonsService } from '../commons/monkeyecx-commons.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxAlertsConfigService } from './monkeyecx-alerts-config.service';\nimport { MonkeyEcxErrorConfigService } from './monkeyecx-error-config.service';\nimport { MonkeyEcxFeatureToggleService } from './monkeyecx-feature-toggle.service';\nimport { MonkeyEcxGTMConfigService } from './monkeyecx-gtm-config.service';\nimport { MonkeyEcxi18nConfigService } from './monkeyecx-i18n-config.service';\nimport { MonkeyEcxLogsConfigService } from './monkeyecx-logs-config.service';\nimport { MonkeyEcxMaintenanceConfigService } from './monkeyecx-maintenance-config.service';\nimport { MonkeyEcxSecurityConsoleConfigService } from './monkeyecx-security-console-config.service';\nimport { MonkeyEcxServiceWorkerConfigService } from './monkeyecx-service-worker-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxConfigService extends MonkeyEcxCommonsService {\n private readonly configSubject$: BehaviorSubject<MonkeyEcxConfig>;\n\n private readonly configBootstrapSubject$: BehaviorSubject<MonkeyEcxConfig>;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n private monkeyecxi18nConfigService: MonkeyEcxi18nConfigService,\n private monkeyecxLogsConfigService: MonkeyEcxLogsConfigService,\n private monkeyStyleGuideSettingsService: MonkeyStyleGuideSettingsService,\n private monkeyecxServiceWorkerConfigService: MonkeyEcxServiceWorkerConfigService,\n private monkeyecxSecurityConsoleConfigService: MonkeyEcxSecurityConsoleConfigService,\n private monkeyecxMaintenanceConfigService: MonkeyEcxMaintenanceConfigService,\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService,\n private monkeyEcxFeatureToggleService: MonkeyEcxFeatureToggleService,\n private monkeyGTMConfigService: MonkeyEcxGTMConfigService,\n private monkeyEcxAlertsConfigService: MonkeyEcxAlertsConfigService\n ) {\n super(monkeyecxService);\n this.configSubject$ = new BehaviorSubject({});\n this.configBootstrapSubject$ = new BehaviorSubject({});\n }\n\n private async getSettings(\n monkeyecxCode: string,\n configBootstrap: MonkeyEcxConfigBootstrap,\n callback: Function,\n environment: any,\n identifyCode: string\n ) {\n const {\n monkeyecxSecurityConsoleConfigService,\n monkeyecxServiceWorkerConfigService,\n monkeyecxMaintenanceConfigService,\n monkeyStyleGuideSettingsService,\n getWhiteLabel,\n monkeyecxi18nConfigService\n } = this;\n\n monkeyecxServiceWorkerConfigService.apply(configBootstrap);\n monkeyecxMaintenanceConfigService.apply(configBootstrap);\n monkeyecxSecurityConsoleConfigService.apply();\n\n const url = `${environment.urlAssets}/${monkeyecxCode.toLowerCase()}`;\n\n await monkeyecxi18nConfigService.apply(environment);\n\n monkeyStyleGuideSettingsService.bootstrap(\n `${url}/monkey-style-guide-settings.json`,\n getWhiteLabel.bind(this, configBootstrap, callback, environment, identifyCode, url)\n );\n }\n\n private getWhiteLabel(\n configBootstrap: MonkeyEcxConfigBootstrap,\n callback: Function,\n environment: any,\n identifyCode: string,\n url: string\n ) {\n const {\n monkeyecxService,\n configSubject$,\n monkeyGTMConfigService,\n monkeyecxLogsConfigService,\n monkeyecxErrorConfigService,\n monkeyEcxFeatureToggleService,\n monkeyecxi18nConfigService,\n monkeyEcxAlertsConfigService\n } = this;\n\n monkeyecxService?.get<any>(`${url}/white-label.json`)?.subscribe(\n async (config: MonkeyEcxConfig) => {\n monkeyecxi18nConfigService.applyExternal(config, environment?.locale?.lang || 'pt-BR');\n monkeyecxLogsConfigService.apply(config, configBootstrap, environment, identifyCode);\n monkeyEcxFeatureToggleService.apply(configSubject$, environment);\n monkeyEcxAlertsConfigService.apply(config);\n monkeyGTMConfigService.apply(config, environment);\n configSubject$.next(config);\n\n if (callback) callback();\n },\n (err: HttpErrorResponse) => {\n monkeyecxErrorConfigService.apply('theme');\n console.error('Program Configuration not found!');\n throwError(err);\n }\n );\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [404]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n public init(callback: Function, environment: any, identifyCode: string, monkeyecxCode?: string) {\n const { monkeyecxService, configBootstrapSubject$, monkeyecxErrorConfigService } = this;\n\n monkeyecxService\n ?.get<any>(`${environment.bootstrapAssets}`, {\n observe: 'response'\n })\n ?.subscribe(\n ({ headers, body }) => {\n const monkeyCode = headers.get('monkey-code') || monkeyecxCode;\n if (monkeyCode) {\n this.getSettings(monkeyCode, body, callback, environment, identifyCode);\n configBootstrapSubject$.next(body);\n } else {\n monkeyecxErrorConfigService.apply('theme');\n console.error(`Bootstrap ${monkeyCode} Configuration not found!`);\n }\n },\n (err: HttpErrorResponse) => {\n monkeyecxErrorConfigService.apply('theme');\n console.error('Bootstrap Configuration not found!');\n throwError(err);\n }\n );\n }\n\n public config(): Observable<any> {\n return this.configSubject$.asObservable();\n }\n\n public bootstrapConfig(): Observable<any> {\n return this.configBootstrapSubject$.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { actions, selectors } from '../../../store';\nimport {\n MonkeyEcxMeCredentials,\n MonkeyEcxStorage,\n MonkeyEcxTokenCredentials\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxConfigService } from '../config/monkeyecx-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxTokenStorageService {\n private token: MonkeyEcxTokenCredentials | null;\n\n private token$: BehaviorSubject<MonkeyEcxTokenCredentials | any>;\n\n private me$: BehaviorSubject<MonkeyEcxMeCredentials | any>;\n\n constructor(\n private monkeyecxConfigService: MonkeyEcxConfigService,\n private store: Store\n ) {\n this.token = {\n username: '',\n program: '',\n accessToken: '',\n refreshToken: '',\n companyId: '',\n governmentId: '',\n companyTypeUrl: '',\n companyType: '',\n programAdmin: false,\n programType: '',\n accessType: '',\n role: '',\n ownerGovernmentId: '',\n name: '',\n _clearIgnore: {\n ignore: ['username', 'program', 'accessType']\n }\n };\n this.token$ = new BehaviorSubject(null);\n this.me$ = new BehaviorSubject(null);\n }\n\n private setAllTokens(token: MonkeyEcxTokenCredentials) {\n const { token$, store } = this;\n // #TODO - Remover esse código e apenas deixar o username\n // todo o restante ficou salvo na store com a keu sendo o username\n Object.entries(token).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n localStorage.setItem(key, value);\n }\n });\n\n const username = token.username || localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n ...token\n }\n ]\n })\n );\n }\n\n token$.next(token);\n }\n\n private async getAllTokens() {\n try {\n const { store, monkeyecxConfigService } = this;\n const username = localStorage.getItem('username');\n\n let data: any = {\n username: username || '',\n program: '',\n accessToken: ''\n };\n\n if (username) {\n data = await store.select(\n selectors.monkeyecxStorage.select({ username })\n ).pipe(take(1)).toPromise();\n if (!data?.program) {\n const program = localStorage.getItem('program');\n data = {\n ...data,\n program\n };\n }\n }\n\n const config = await monkeyecxConfigService.config()\n .pipe(take(1)).toPromise();\n\n const accessType = localStorage.getItem('accessType');\n const companyType = localStorage.getItem('companyType');\n\n if (!data.accessToken) {\n const accessToken = localStorage.getItem('accessToken');\n const refreshToken = localStorage.getItem('refreshToken');\n data = {\n ...data,\n accessToken,\n refreshToken\n };\n }\n\n if (!data.role) {\n const role = localStorage.getItem('role');\n data = {\n ...data,\n role\n };\n }\n\n const handledData = {\n ...data,\n accessType,\n companyType\n };\n if (!data?.program && config?.program) {\n handledData.program = config?.program?.token;\n }\n delete handledData?.me;\n\n return handledData;\n } catch (e) {\n // not to do\n }\n return null;\n }\n\n private setAllMe(me: MonkeyEcxMeCredentials) {\n const { me$, store } = this;\n let previousMe = JSON.parse(localStorage?.getItem('me') || '{}');\n Object.entries(me).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n previousMe = {\n ...previousMe,\n [key]: value\n };\n }\n });\n\n const username = me.username || localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n me\n }\n ]\n })\n );\n }\n\n localStorage.setItem('me', JSON.stringify(previousMe));\n me$.next(previousMe);\n }\n\n private async getAllMe() {\n const { store } = this;\n const username = localStorage.getItem('username');\n let data: MonkeyEcxStorage | undefined = {\n username: username || '',\n program: ''\n };\n\n if (username) {\n data = await store.select(\n selectors.monkeyecxStorage.select({ username })\n ).pipe(take(1)).toPromise();\n }\n\n let handledData: any = {\n ...data\n };\n\n if (!handledData.me) {\n try {\n handledData = {\n me: JSON.parse(localStorage.getItem('me') || '{}')\n };\n } catch (e) {\n // not to do\n }\n }\n\n return handledData?.me;\n }\n\n public tokenHasChanged(): Observable<MonkeyEcxTokenCredentials> {\n return this.token$.asObservable();\n }\n\n public meHasChanged(): Observable<MonkeyEcxMeCredentials> {\n return this.me$.asObservable() || null;\n }\n\n public async getToken() {\n return this.getAllTokens();\n }\n\n public async getMe() {\n return this.getAllMe();\n }\n\n public setToken(token: MonkeyEcxTokenCredentials) {\n this.setAllTokens(token);\n }\n\n public setMe(me: MonkeyEcxMeCredentials) {\n this.setAllMe(me);\n }\n\n public clear(force?: boolean): Observable<boolean> {\n const { token, store } = this;\n try {\n Object.entries(token || {}).forEach(([key, value]) => {\n if (\n (token?._clearIgnore?.ignore || []).filter((val: any) => {\n return val === key;\n }).length <= 0 ||\n force === true\n ) {\n localStorage.removeItem(key);\n }\n });\n\n localStorage.removeItem('me');\n localStorage.removeItem('mecx-store');\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(actions.monkeyecxStorage.deleteOne({ data: { username } }));\n }\n } catch (error) {\n return of(false);\n }\n return of(true);\n }\n\n /**\n * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])\n */\n public clearCredentials(\n fields = ['companyId', 'governmentId', 'companyType', 'programAdmin', 'role']\n ) {\n const { store } = this;\n let obj: any = null;\n fields?.forEach((key: string) => {\n obj = {\n ...obj,\n [key]: null\n };\n localStorage.removeItem(key);\n });\n\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n ...obj\n }\n ]\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCookieStorageService {\n constructor(private cookieService: CookieService) {\n // not to do\n }\n\n public setCookie(name: string, value: any, environment: any) {\n this.removeCookie(name, environment);\n const { urlDomain } = environment;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.set(name, value, undefined, '/', handledDomain, true, 'None');\n }\n\n public getCookie(name: string) {\n return this.cookieService.get(name);\n }\n\n public removeCookie(name: string, environment: any) {\n const { urlDomain } = environment;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.delete(name, '/', handledDomain, true, 'None');\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxTokenStorageService } from '../services/storage';\n\n@Directive({\n selector: '[monkeyecxSecurity]'\n})\nexport class MonkeyEcxSecurityDirective implements OnInit {\n @Input('securityRoles') roles: string[] = [];\n\n @Input('securityByExclusion') byExclusion: boolean = false;\n\n private tokenCredentials: any = null;\n\n constructor(\n private elementRef: ElementRef,\n private tokenStorageService: MonkeyEcxTokenStorageService,\n private cdr: ChangeDetectorRef\n ) {\n // not to do\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n const handledRole = localStorage.getItem('role');\n\n return tokenCredentials?.role || handledRole || '';\n }\n\n private handleAccess() {\n const { roles, byExclusion } = this;\n let display = 'none';\n const found = roles?.indexOf(this.getRole());\n if (byExclusion) {\n display = 'block';\n if (found > -1) {\n display = 'none';\n }\n } else {\n display = 'none';\n if (found > -1) {\n display = 'block';\n }\n }\n\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n private async handleData() {\n this.tokenCredentials = await this.tokenStorageService.getToken();\n this.handleAccess();\n }\n\n ngOnInit() {\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.tokenStorageService.tokenHasChanged().subscribe(() => {\n this.handleData();\n });\n\n this.handleData();\n }\n}\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxTooltip]',\n})\nexport class MonkeyEcxTooltipDirective {\n @Input() tooltipDelay?: number;\n\n @Input() tooltipPosition?: string;\n\n @Input() tooltipText?: string;\n\n @Input() tooltipTitle?: string;\n\n @Input() enableToShow = true;\n\n offset = 10;\n\n tooltip: HTMLElement | null = null;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('mouseenter')\n onMouseEnter() {\n if (!this.tooltip) {\n this.show();\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.tooltip) {\n this.hide();\n }\n }\n\n @HostListener('click')\n clickout() {\n if (this.tooltip) {\n this.hide();\n }\n }\n\n show() {\n if (this.enableToShow) {\n this.create();\n this.setPosition();\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip-show');\n setTimeout(() => {\n this.hide();\n }, 5000);\n }\n }\n\n hide() {\n if (!this.tooltip) return;\n this.renderer.removeClass(this.tooltip, 'monkeyecx-tooltip-show');\n this.renderer.removeChild(document.body, this.tooltip);\n\n this.tooltip = null;\n }\n\n create() {\n const tooltipElement = document.createElement('div');\n\n this.tooltip = this.renderer.createElement('span');\n\n if (this.tooltipTitle) {\n const tooltipTitleElement = document.createElement('span');\n\n tooltipTitleElement.innerText = `${this.tooltipTitle}`;\n tooltipTitleElement.className = 'monkeyecx-tooltip-title';\n\n tooltipElement.appendChild(tooltipTitleElement);\n }\n\n if (this.tooltipText) {\n const tooltipTextElement = document.createElement('span');\n\n tooltipTextElement.innerText = `${this.tooltipText}`;\n tooltipTextElement.className = 'monkeyecx-tooltip-description';\n tooltipElement.appendChild(tooltipTextElement);\n }\n\n this.renderer.appendChild(this.tooltip, tooltipElement);\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip');\n this.renderer.addClass(this.tooltip, `monkeyecx-tooltip-${this.tooltipPosition}`);\n\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.tooltipDelay}ms`);\n }\n\n setPosition() {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n const tooltipPos = this.tooltip?.getBoundingClientRect();\n if (!tooltipPos) return;\n const scrollPos =\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n let top: number = 0;\n let left: number = 0;\n\n if (this.tooltipPosition === 'top') {\n top = hostPos.top - tooltipPos.height - this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPosition === 'bottom') {\n top = hostPos.bottom + this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPosition === 'left') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - this.offset;\n }\n\n if (this.tooltipPosition === 'right') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + this.offset;\n }\n\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\n\ninterface SnackbarActionConfig {\n confirm?: {\n style: 'link' | 'button';\n label: string;\n action: Function;\n keepOnAction?: boolean;\n };\n cancel?: {\n style: 'link' | 'button';\n label: string;\n action: Function;\n keepOnAction?: boolean;\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsService {\n constructor(\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n // not to do\n }\n\n show({\n type = 'warning',\n title,\n message,\n duration\n }: {\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading';\n title: string;\n message: string;\n duration: number;\n }) {\n const i18n = this.translateService.instant(`MECX-ALERTS.${type}`.toUpperCase());\n\n this.snackbarService.show({\n title: i18n?.TITLES?.[title],\n message: i18n?.MESSAGES[message],\n type,\n duration: duration || 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n\n showWarning({ title, message, duration }: { title: string; message: string; duration: number }) {\n const i18n = this.translateService.instant('MECX-ALERTS.WARNING');\n\n this.snackbarService.show({\n title: i18n?.TITLES?.[title],\n message: i18n?.MESSAGES[message],\n type: 'warning',\n duration: duration || 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n\n showWithClose({\n type = 'warning',\n title,\n message\n }: {\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading';\n title: string;\n message: string;\n }) {\n const i18n = this.translateService.instant([\n `MECX-ALERTS.${type}`.toUpperCase(),\n 'MECX-ALERTS.BUTTONS'\n ]);\n\n this.snackbarService.show({\n title: i18n?.[`MECX-ALERTS.${type}`.toUpperCase()].TITLES?.[title],\n message: i18n?.[`MECX-ALERTS.${type}`.toUpperCase()].MESSAGES[message],\n type,\n keepOpen: true,\n horizontalPosition: 'center',\n verticalPosition: 'top',\n action: {\n cancel: {\n style: 'button',\n label: i18n?.['MECX-ALERTS.BUTTONS'].CLOSE,\n action: () => {}\n }\n }\n });\n }\n\n showWithActions({\n type = 'warning',\n title,\n message,\n duration,\n keepOpen,\n action\n }: {\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading';\n title: string;\n message: string;\n duration?: number;\n keepOpen?: boolean;\n action: SnackbarActionConfig;\n }) {\n const i18n = this.translateService.instant([\n `MECX-ALERTS.${type}`.toUpperCase(),\n 'MECX-ALERTS.BUTTONS'\n ]);\n\n action = {\n ...action,\n confirm: action.confirm\n ? { ...action.confirm, label: i18n?.['MECX-ALERTS.BUTTONS'][action.confirm.label] }\n : action.confirm,\n cancel: action.cancel\n ? { ...action.cancel, label: i18n?.['MECX-ALERTS.BUTTONS'][action.cancel.label] }\n : action.cancel\n };\n\n this.snackbarService.show({\n title: i18n?.[`MECX-ALERTS.${type}`.toUpperCase()].TITLES?.[title],\n message: i18n?.[`MECX-ALERTS.${type}`.toUpperCase()].MESSAGES[message],\n type,\n duration: duration || undefined,\n keepOpen: keepOpen || false,\n horizontalPosition: 'center',\n verticalPosition: 'top',\n action\n });\n }\n}\n","/* eslint-disable no-console */\nimport { HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthenticationService {\n constructor() {\n // not to do\n }\n\n hadAtLeastOneLogin = async () => {\n console.error('hadAtLeastOneLogin needs to be declared!');\n return null;\n };\n\n redirectApp = () => {\n console.error('redirectApp needs to be declared!');\n return null;\n };\n\n redirectLoginWelcomeBack = (route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot) => {\n console.error('redirectLoginWelcomeBack needs to be declared!');\n return null;\n };\n\n isAuthorized = async () => {\n console.error('isAuthorized needs to be declared!');\n return false;\n };\n\n isCompanyAuthorized = async () => {\n console.error('isCompanyAuthorized needs to be declared!');\n return false;\n };\n\n isTokenMandatory = (url: string): boolean => {\n console.error('isTokenMandatory needs to be declared!');\n return false;\n };\n\n getRequestWithHeaders = (request: HttpRequest<any>): HttpRequest<any> | any => {\n console.error('getRequestWithHeaders needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersOb = (request: HttpRequest<any>): Observable<any> | any => {\n console.error('getRequestWithHeadersOb needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersAsync = async (request: HttpRequest<any>) => {\n console.error('getRequestWithHeadersAsync needs to be declared!');\n return null;\n };\n\n refreshShouldHappen = (response: HttpErrorResponse): boolean => {\n console.error('refreshShouldHappen needs to be declared!');\n return false;\n };\n\n refreshToken = async () => {\n console.error('refreshToken needs to be declared!');\n return null;\n };\n\n getToken = async () => {\n console.error('getToken needs to be declared!');\n return null;\n };\n\n init(args: {\n hadAtLeastOneLogin?: any;\n redirectApp?: any;\n redirectLoginWelcomeBack?: any;\n isAuthorized?: any;\n isTokenMandatory?: any;\n isCompanyAuthorized?: any;\n getRequestWithHeaders?: any;\n getRequestWithHeadersAsync?: any;\n getRequestWithHeadersOb?: any;\n refreshShouldHappen?: any;\n refreshToken?: any;\n getToken?: any;\n }) {\n this.hadAtLeastOneLogin = args?.hadAtLeastOneLogin || this.hadAtLeastOneLogin.bind(this);\n this.redirectApp = args?.redirectApp || this.redirectApp.bind(this);\n this.redirectLoginWelcomeBack =\n args?.redirectLoginWelcomeBack || this.redirectLoginWelcomeBack.bind(this);\n this.isAuthorized = args?.isAuthorized || this.isAuthorized.bind(this);\n this.isTokenMandatory = args?.isTokenMandatory || this.isTokenMandatory.bind(this);\n this.isCompanyAuthorized = args?.isCompanyAuthorized || this.isCompanyAuthorized.bind(this);\n this.getRequestWithHeaders =\n args?.getRequestWithHeaders || this.getRequestWithHeaders.bind(this);\n this.getRequestWithHeadersAsync =\n args?.getRequestWithHeadersAsync || this.getRequestWithHeadersAsync.bind(this);\n this.getRequestWithHeadersOb = args?.getRequestWithHeadersOb.bind(this);\n this.refreshShouldHappen = args?.refreshShouldHappen || this.refreshShouldHappen.bind(this);\n this.refreshToken = args?.refreshToken || this.refreshToken.bind(this);\n this.getToken = args?.getToken || this.getToken.bind(this);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardCompany implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n const { monkeyecxAuthenticationService } = this;\n\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\n if (await monkeyecxAuthenticationService.isCompanyAuthorized()) {\n return true;\n }\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n if (await this.monkeyecxAuthenticationService.hadAtLeastOneLogin()) {\n this.monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n return false;\n }\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuardByRole implements CanActivate {\n private securityCredentials: {\n roles: string[],\n byExclusion: boolean\n } | null = null;\n\n private tokenCredentials: any = null;\n\n constructor(\n private tokenStorage: MonkeyEcxTokenStorageService,\n private router: Router\n ) {\n // not to do\n }\n\n private navigateToErrorPage() {\n const { tokenCredentials } = this;\n const companyType = tokenCredentials?.companyType;\n let path = '/app/pages/forbidden';\n if (companyType) {\n path = `/app/${companyType}/pages/forbidden`;\n }\n this.router?.navigate([path.toLowerCase()]);\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n return tokenCredentials?.role || '';\n }\n\n private allowedSecurityAccess(roles: string[], byExclusion: boolean): boolean {\n if (!roles?.length) return true;\n\n const found = roles?.indexOf(this.getRole());\n let ret = false;\n if (byExclusion) {\n ret = true;\n if (found > -1) {\n ret = false;\n }\n } else {\n ret = false;\n if (found > -1) {\n ret = true;\n }\n }\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\n ret = true;\n }\n return ret;\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\n this.securityCredentials = route.data?.securityCredentials;\n if (this.securityCredentials) {\n const { roles, byExclusion } = this.securityCredentials;\n\n this.tokenCredentials = await this.tokenStorage.getToken();\n\n if (!this.allowedSecurityAccess(roles, byExclusion)) {\n this.navigateToErrorPage();\n return false;\n }\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuard implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n const { monkeyecxAuthenticationService } = this;\n\n if (await monkeyecxAuthenticationService.isAuthorized()) {\n return true;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","/* eslint-disable indent */\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\n\n@NgModule()\nexport class MonkeyEcxConfigModule {\n constructor(\n @Optional()\n @SkipSelf()\n parentModule: MonkeyEcxConfigModule\n ) {\n if (parentModule) {\n throw new Error('MonkeyEcxConfigModule is already loaded. Import it in the AppModule only!');\n }\n }\n\n static forRoot(): ModuleWithProviders<MonkeyEcxConfigModule> {\n return {\n ngModule: MonkeyEcxConfigModule,\n providers: [MonkeyEcxConfigService]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { first } from 'rxjs/operators';\nimport { MonkeyEcxConfig } from '../../interfaces';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\nimport { MonkeyEcxCookieStorageService } from '../storage';\nimport { CurrencyConfigComponent } from '../../../components/currency-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCurrencyConfigService {\n constructor(\n private modalService: MonkeyStyleGuideModalFixedService,\n private cookieService: MonkeyEcxCookieStorageService,\n private configService: MonkeyEcxConfigService\n ) {\n // not to do\n }\n\n private onHandleCurrencyConfig({ currency, environment }) {\n const { cookieService } = this;\n const settings: string = cookieService.getCookie('monkey-app-settings');\n const locale: string = cookieService.getCookie('monkey-app-locale');\n\n if (!settings) {\n cookieService.setCookie(\n 'monkey-app-settings',\n btoa(\n JSON.stringify({\n showedCurrencyConfig: true\n })\n ),\n environment\n );\n } else {\n const decoded = JSON.parse(atob(settings));\n\n cookieService.setCookie(\n 'monkey-app-settings',\n btoa(\n JSON.stringify({\n ...decoded,\n showedCurrencyConfig: true\n })\n ),\n environment\n );\n }\n\n if (locale) {\n const decoded = JSON.parse(atob(locale));\n\n cookieService.setCookie(\n 'monkey-app-locale',\n btoa(\n JSON.stringify({\n ...decoded,\n currency\n })\n ),\n environment\n );\n }\n }\n\n private async onShowCurrencyConfig(environment: any, force = false) {\n const { cookieService } = this;\n const settings: string = cookieService.getCookie('monkey-app-settings');\n let showed = false;\n if (settings) {\n const decoded = JSON.parse(atob(settings));\n showed = decoded.showedCurrencyConfig;\n }\n\n const config: MonkeyEcxConfig = await this.configService\n .config()\n .pipe(\n first((val: any) => {\n return !!val && JSON.stringify(val) !== '{}';\n })\n )\n .toPromise();\n\n const currency = config?.i18n?.currency;\n const currencies = config?.i18n?.currencies;\n\n if ((!showed || force) && currencies?.length) {\n this.modalService.open(CurrencyConfigComponent, {\n color: 'theme',\n size: 'md',\n data: {\n currency,\n currencies,\n callback: (currency = 'BRL') => {\n this.onHandleCurrencyConfig({\n currency,\n environment\n });\n }\n }\n });\n }\n }\n\n public apply(environment: any, force = false) {\n this.onShowCurrencyConfig(environment, force);\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, NgZone } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxAuthenticationService } from '../auth';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxHttpErrorHandlingService extends MonkeyEcxCommonsService {\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private router: Router,\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n super(monkeyecxService, tokenStorage);\n\n super.resolve(null, null);\n\n this.geti18n(this.translateService, 'SERVICES.WARNING');\n }\n\n private isHttpCodeIgnoreMessage(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private isHttpCodeIgnoreRedirect(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\n if (status === 409 || status === 400 || status === 401 || status === 429) {\n return 'warning';\n }\n\n return 'error';\n }\n\n private showMessage(message: string, error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { snackbarService } = this;\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status) || error.status === 401) {\n const keepOnUrlChange = error.status === 401;\n\n snackbarService.show({\n title: this.__i18n?.TITLE,\n message,\n type: this.getMessageType(error.status),\n duration: 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top',\n keepOnUrlChange\n });\n }\n }\n\n private handleMessage(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n // eslint-disable-next-line camelcase\n const { notifications, error_description, message } = error?.error || {\n notifications: '',\n error_description: '',\n message: ''\n };\n\n let customMessage = '';\n\n if (message) {\n customMessage = message;\n }\n\n // eslint-disable-next-line camelcase\n if (error_description) {\n // eslint-disable-next-line camelcase\n customMessage = error_description;\n }\n\n if (notifications) {\n customMessage = notifications;\n }\n\n if (!customMessage) {\n if (error.error instanceof Blob) {\n const blob = new Blob([error.error], {\n type: 'application/json'\n });\n const reader = new FileReader();\n reader.addEventListener('loadend', (e) => {\n const text = e?.target?.result;\n const jsonResp = JSON.parse(text as string);\n customMessage = jsonResp.notifications;\n this.showMessage(customMessage, error, mkc);\n });\n reader.readAsText(blob);\n } else if (!error?.url?.includes('assets.monkey')) {\n const defaultMsg = this.__i18n['ERROR-HANDLING']?.ERROR;\n const msg =\n error.status === 429\n ? this.__i18n['ERROR-HANDLING']?.['TOO-MANY-REQUEST'] ?? defaultMsg\n : defaultMsg;\n\n this.showMessage(msg, error, mkc);\n }\n } else {\n this.showMessage(customMessage, error, mkc);\n }\n }\n\n public async handleError(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { router, tokenStorage } = this;\n const { status } = error;\n const { companyType } = (await tokenStorage?.getToken()) || { companyType: '' };\n\n const routes: any = {\n 403: 'forbidden',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n let route = '/app';\n if (companyType) {\n route = `${route}/${companyType}/pages`;\n } else {\n route = `${route}/pages`;\n }\n\n const found = routes[status];\n let timeout = 0;\n\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\n route = `${route}/${found}`.toLowerCase();\n timeout = 800;\n router.navigate([route]);\n }\n\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, timeout);\n }\n\n public handleErrorRefreshToken(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const hasToRefresh = this.monkeyecxAuthenticationService.refreshShouldHappen(error);\n if ((error.status === 401 || error.status === 400) && hasToRefresh) {\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, 1000);\n NgZone.call(this.monkeyecxAuthenticationService.redirectLoginWelcomeBack(), {});\n } else if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\n this.handleMessage(error, mkc);\n }\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MECX_ENV } from '../../injectors';\nimport { MonkeyEcxLogs } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxOthersErrorsHandlingService {\n constructor(\n private modalService: MonkeyStyleGuideModalService,\n @Inject(MECX_ENV) private env: InjectionToken<string>\n ) {\n // not to do\n }\n\n public handleError(error: any) {\n const { modalService } = this;\n const { message } = error;\n\n try {\n if (this.env.toString() !== 'prod') {\n console.log('==> error <==');\n console.log(error);\n }\n\n MonkeyEcxLogs.log({\n message: '==> error <==',\n error\n });\n } catch (e) {\n // not to\n }\n\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(message)) {\n modalService.open(VersionChangedComponent, {\n color: 'theme',\n size: 'md',\n hideClose: true\n });\n }\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxHandlingService } from '../monkeyecx-handling.service';\nimport { MonkeyEcxHttpErrorHandlingService } from './monkeyecx-http-error-handling.service';\nimport { MonkeyEcxOthersErrorsHandlingService } from './monkeyecx-others-errors-handling.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxErrorHandlingService implements ErrorHandler {\n constructor(private injector: Injector) {\n // not to do\n }\n\n handleError(error: any, type?: string) {\n const { injector } = this;\n const handlingService = injector.get(MonkeyEcxHandlingService);\n const httpErrorHandlingService = injector.get(MonkeyEcxHttpErrorHandlingService);\n const othersErrorsHandlingService = injector.get(MonkeyEcxOthersErrorsHandlingService);\n\n if (error instanceof HttpErrorResponse) {\n const sCredentials: MonkeyEcxServiceCredentials =\n handlingService?.getMonkeyEcxServiceCredentials() || {};\n if (MonkeyEcxUtils.persistNullEmptyUndefined(type) && type === 'refresh_token') {\n httpErrorHandlingService.handleErrorRefreshToken(error, sCredentials);\n } else httpErrorHandlingService.handleError(error, sCredentials);\n } else {\n othersErrorsHandlingService.handleError(error);\n }\n }\n}\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxErrorHandlingService } from './monkeyecx-error-handling.service';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxErrorHandlingModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxErrorHandlingModule> {\n return {\n ngModule: MonkeyEcxErrorHandlingModule,\n providers: [\n {\n provide: ErrorHandler,\n useClass: MonkeyEcxErrorHandlingService,\n },\n ],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLoggedHandlingService {\n private schedules: MonkeyEcxRequestSchedule[] = [];\n\n private genericSchedules: MonkeyEcxRequestSchedule[] = [];\n\n constructor() {\n // not to do\n }\n\n private destroySchedule() {\n this.schedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.schedules = [];\n }\n\n private destroyGenericSchedule() {\n this.genericSchedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.genericSchedules = [];\n }\n\n public addSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.schedules = sch;\n }\n\n public addGenericSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.genericSchedules = sch;\n }\n\n public destroy() {\n this.destroySchedule();\n this.destroyGenericSchedule();\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxPaginationService {\n private callbacks: {\n [key: string]: Function;\n } = {};\n\n constructor() {\n // not to do\n }\n\n public setCallback(callback: Function, name: string = 'main') {\n this.callbacks = {\n ...this.callbacks,\n [name]: callback\n };\n }\n\n public execute(type: string, name: string = 'main') {\n const { callbacks } = this;\n const callback = callbacks?.[name];\n if (callback) callback(type);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestDownload } from '../../interfaces';\nimport { MonkeyEcxDownloadEvents } from '../../utils/statics';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadHandlingService {\n private download: MonkeyEcxRequestDownload[] = [];\n\n private download$: BehaviorSubject<MonkeyEcxRequestDownload[] | any>;\n\n constructor() {\n this.download$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownload) {\n this.download.push(q);\n this.download$.next(this.download);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownload, status?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved\n .map((val: any) => {\n if (val.status === MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || MonkeyEcxDownloadEvents.Finished\n };\n }\n return valSaved;\n }\n return null;\n })\n .filter((_: any) => {\n return _;\n })\n ];\n\n this.download = this.download.filter((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n this.download$.next(this.download);\n }\n\n private updateItem(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const currentPecentage = Math.floor(((loaded || 0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n };\n }\n return valSaved;\n })\n ];\n this.download$.next(this.download);\n }\n\n public set(q: MonkeyEcxRequestDownload) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownload[]> {\n return this.download$.asObservable();\n }\n\n public update(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n this.updateItem(q, loaded, total);\n }\n\n public finishItem(q: MonkeyEcxRequestDownload, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.download.find((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { Statics } from '../../utils';\nimport { MonkeyEcxRequestDownloaded } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadedHandlingService {\n private downloaded: MonkeyEcxRequestDownloaded[] = [];\n\n private downloaded$: BehaviorSubject<MonkeyEcxRequestDownloaded[] | any>;\n\n constructor() {\n this.downloaded$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownloaded) {\n this.downloaded.push(q);\n this.downloaded$.next(this.downloaded);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownloaded, status?: number) {\n const saved = [...this.downloaded];\n this.downloaded = [\n ...saved.map((val: any) => {\n if (val.status === Statics.MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxDownloadEvents.Finished,\n action: q.action\n };\n }\n return valSaved;\n }\n return val;\n })\n ];\n this.downloaded$.next(this.downloaded);\n }\n\n public set(q: MonkeyEcxRequestDownloaded) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownloaded[]> {\n return this.downloaded$.asObservable();\n }\n\n public finishItem(q: MonkeyEcxRequestDownloaded, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.downloaded.find((_: any) => {\n return _.status === Statics.MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n }\n\n public setQueue(q: MonkeyEcxRequestQueue | null) {\n if (!q) return;\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue | null, action?: Function, status?: number) {\n if (!q) return;\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueModalHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue$ = new BehaviorSubject(false);\n\n private allQueueFinished$ = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue$.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total||0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n if (this.queue.length <= 0) {\n this.allQueueFinished$.next(true);\n }\n }\n\n public setQueue(q: MonkeyEcxRequestQueue) {\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue, action?: Function, status?: number) {\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n\n public hasAllQueueFinished(): Observable<boolean> {\n return this.allQueueFinished$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { MonkeyEcxUtils } from '../../utils/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDiscoveryParamsService {\n constructor(private router: Router) {\n // not to do\n }\n\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.getLastChild(route.firstChild);\n }\n\n return route;\n }\n\n public setData(field: string, value: any): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n route.data[field] = value;\n }\n\n public getData(field: string): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\n return found;\n }\n\n public getDataFromCurrentNavigation(field: string, router?: Router): any {\n const navigation = this.router.getCurrentNavigation() || router?.getCurrentNavigation();\n let state: any = null;\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\n state = navigation?.extras.state;\n }\n\n return state ? state[field] : null;\n }\n\n public getParam(param: string): string | null {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\n ? route?.paramMap?.get(param) || ''\n : '';\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\n return found;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxLoggedHandlingService } from '../logged';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestScheduleService {\n private schedule: MonkeyEcxRequestSchedule[] | any[] = [];\n\n private genericSchedule: MonkeyEcxRequestSchedule[] | any[] = [];\n\n constructor(\n public monkeyecxService: MonkeyEcxService,\n private monkeyLoggedHandlingService: MonkeyEcxLoggedHandlingService\n ) {\n // not to do\n }\n\n private addToSchedule(q: MonkeyEcxRequestSchedule) {\n this.schedule.push(q);\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private addToGenericSchedule(q: MonkeyEcxRequestSchedule) {\n this.genericSchedule.push(q);\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\n }\n\n private removeFromSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private removeFromGenericSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.genericSchedule];\n this.genericSchedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\n }\n\n private removeFromScheduleById(id: string) {\n const q = this.getScheduleById(id);\n clearInterval(q?.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q?.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 403, 404, 500, 503]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n private doCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action, errorAction } = sch;\n\n const errAction = errorAction || ((...args) => {});\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp\n },\n sch\n );\n },\n (err: HttpErrorResponse) => {\n this.removeFromSchedule(sch);\n errAction(\n {\n ...data\n },\n sch,\n err\n );\n }\n );\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 401, 403, 404, 500, 503],\n httpCodeIgnoreRedirect: [503]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n private doGenericCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action, errorAction } = sch;\n\n const errAction = errorAction || ((...args) => {});\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp\n },\n sch\n );\n },\n (err: HttpErrorResponse) => {\n this.removeFromGenericSchedule(sch);\n errAction(\n {\n ...data\n },\n sch,\n err\n );\n }\n );\n }\n\n public setSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const id = q?.id || `${MonkeyEcxUtils.getRandomString(40)}`;\n const obj = {\n ...q,\n id\n };\n\n const interval = setInterval(() => {\n this.doCall({\n ...obj,\n interval\n });\n }, delay);\n\n const sch = {\n ...obj,\n interval\n };\n\n this.addToSchedule(sch);\n return sch;\n }\n\n public setGenericSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const interval = setInterval(() => {\n this.doGenericCall({\n ...q,\n interval\n });\n }, delay);\n\n const sch = {\n ...q,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n interval\n };\n\n this.addToGenericSchedule(sch);\n return sch;\n }\n\n public removeSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromSchedule(q);\n }\n\n public removeGenericSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromGenericSchedule(q);\n }\n\n public removeScheduleById(id: string) {\n this.removeFromScheduleById(id);\n }\n\n public getScheduleById(id: string) {\n const q = this.schedule.find((sch: MonkeyEcxRequestSchedule) => {\n return sch.id === id;\n });\n return q;\n }\n}\n","import { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreBaseService<\n T,\n K extends MonkeyEcxConfigStore\n> extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n protected store: Store,\n config: K\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links);\n }\n\n this.updatePage?.(page);\n } else data = resp;\n\n this.update?.(data);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[]): T | T[] {\n try {\n const handle = (item: T) => {\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[]) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(data: MonkeyEcxPage) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(data: MonkeyEcxLinks) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n },\n requestInProgress: {\n showProgress: true\n }\n })\n protected async loadData(url: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\n this.handleResponseData(data, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw new Error(`${e?.message}`);\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination) {\n const { store, selector } = this;\n const data = await store\n .select(selector.selectLinks())\n .pipe(take(1))\n .toPromise();\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport {\n MonkeyEcxPage,\n MonkeyEcxPaginationData,\n MonkeyEcxStoreControl,\n MonkeyEcxStoreLoadPageParams,\n MonkeyEcxStoreLoadParams\n} from '../../interfaces';\n\nexport abstract class MonkeyEcxCommonsActions {\n static getActions<T>(actionName: string) {\n const clear = createAction(`[${actionName}] Clear All`, props<{ identifier: string }>());\n const load = createAction(`[${actionName}] Load`, props<MonkeyEcxStoreLoadParams>());\n const loadPagination = createAction(\n `[${actionName} Pagination] Load`,\n props<MonkeyEcxStoreLoadPageParams>()\n );\n const updateAll = createAction(`[${actionName}] Update All`, props<{ data: T[] }>());\n const updateOne = createAction(`[${actionName}] Update One`, props<{ data: T }>());\n const removeOne = createAction(`[${actionName}] Remove One`, props<{ data: T }>());\n const updateControl = createAction(\n `[${actionName}] Update Control`,\n props<{ data: MonkeyEcxStoreControl }>()\n );\n const updatePage = createAction(\n `[${actionName}] Update Page`,\n props<{ data: MonkeyEcxPage }>()\n );\n const updateLinks = createAction(\n `[${actionName}] Update Links`,\n props<{ data: MonkeyEcxPaginationData }>()\n );\n\n return {\n clear,\n load,\n loadPagination,\n removeOne,\n updateAll,\n updateOne,\n updateControl,\n updateLinks,\n updatePage\n };\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { parseUrl } from 'query-string';\n\ninterface Identifiable {\n identifier?: string;\n}\n\ninterface IReducer {\n featureKey: string;\n selectAll: any;\n}\n\nconst urlHasField = (url: string, field: string) => {\n const obj: any = parseUrl(url);\n return !!obj?.query?.[field];\n};\n\nexport abstract class MonkeyEcxCommonsSelectors {\n static getSelectors<T extends Identifiable>(reducer: IReducer) {\n const selectState = createFeatureSelector(reducer.featureKey);\n\n const selectAll: any = createSelector(selectState, reducer.selectAll);\n\n const selectByIdentifier = (props: { identifier: string }) => {\n return createSelector(selectAll, (entities: T[]): T[] => {\n return entities.filter((_: T) => {\n return _.identifier === props.identifier;\n });\n });\n };\n\n const selectOneByIdentifier = (props: { identifier: string }) => {\n return createSelector(selectAll, (entities: T[]): T | null => {\n return (\n entities.find((_: T) => {\n return _.identifier === props.identifier;\n }) || null\n );\n });\n };\n\n const selectControl = () => {\n return createSelector(selectState, (state: any): any => {\n return state.control;\n });\n };\n\n const selectLinks = (props?: { identifier: string }) => {\n return createSelector(selectState, (state: any): any => {\n if (props?.identifier) {\n return state.links?.[props.identifier];\n }\n\n return state.links;\n });\n };\n\n const selectPage = (props?: { identifier: string }) => {\n return createSelector(selectState, (state: any): any => {\n if (props?.identifier) {\n return state.page?.[props.identifier];\n }\n\n return state.page;\n });\n };\n\n const selectData = () => {\n return createSelector(selectState, (state: any): any => {\n return state.data;\n });\n };\n\n const linksHasDifference = (props: { identifier: string; url: string }) => {\n return createSelector(selectState, (state: any): any => {\n const { pagination } = state;\n const { identifier, url } = props;\n let hasDifference = false;\n let hasField = false;\n\n try {\n const handlePaginationUrl = parseUrl(`${pagination?.[identifier]?.url}`);\n const handleUrl = parseUrl(`${url}`);\n hasDifference =\n handlePaginationUrl?.query?.search !== handleUrl?.query?.search ||\n handlePaginationUrl?.query?.sort !== handleUrl?.query?.sort;\n hasField = urlHasField(url, 'search') || urlHasField(url, 'sort');\n } catch (e) {\n // not to do\n }\n\n return {\n hasDifference,\n hasField\n };\n });\n };\n\n return {\n selectState,\n selectAll,\n selectData,\n selectControl,\n selectLinks,\n selectByIdentifier,\n selectOneByIdentifier,\n selectPage,\n linksHasDifference\n };\n }\n}\n","import { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreService<\n T,\n K extends MonkeyEcxConfigStore\n> extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n protected store: Store,\n config: K\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, identifier: string, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links, identifier);\n }\n\n this.updatePage?.(page, identifier);\n } else data = resp;\n\n this.update?.(data, identifier);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected async linksHasDifference(url: string, identifier: string) {\n try {\n const { action, store, selector } = this;\n\n const { hasDifference, hasField } = <any>(\n await store\n .select(selector.linksHasDifference({ identifier, url }))\n .pipe(take(1))\n .toPromise()\n );\n\n if (hasDifference && hasField) {\n store.dispatch(action.clear({ identifier }));\n }\n\n return { hasDifference };\n } catch (e) {\n throw new Error(`MECX Core - Method linksHasDifference -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[], identifier: string): T | T[] {\n try {\n const handle = (item: T) => {\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n identifier,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[], identifier: string) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args, identifier)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(args: MonkeyEcxPage, identifier: string) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data: {\n [identifier]: args\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(args: MonkeyEcxLinks, identifier: string) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data: {\n [identifier]: args\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n },\n requestInProgress: {\n showProgress: true\n }\n })\n protected async loadData(url: string, identifier: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\n this.handleResponseData(data, identifier, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw new Error(`${e?.message}`);\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination, identifier: string) {\n const { store, selector } = this;\n const data = await store\n .select(selector.selectLinks({ identifier }))\n .pipe(take(1))\n .toPromise();\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href, identifier);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url, identifier) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { base64ToBuffer } from '../../utils/utils';\nimport { MECX_ALPHA, MECX_BETA } from '../../injectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LService {\n constructor(\n @Inject(MECX_ALPHA) private alpha: InjectionToken<string>,\n @Inject(MECX_BETA) private beta: InjectionToken<string>\n ) {\n // not to do\n }\n\n async y(data: string): Promise<string> {\n if (!window.crypto || !window.crypto.subtle) {\n throw new Error('unsupported function');\n }\n\n const key = await this.w();\n const decrypted = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: base64ToBuffer(this.alpha.toString())\n },\n key,\n base64ToBuffer(data)\n );\n const decoder = new TextDecoder();\n return decoder.decode(decrypted);\n }\n\n private async w() {\n const parsedKey = JSON.parse(atob(this.beta.toString()));\n return window.crypto.subtle.importKey('jwk', parsedKey, { name: 'AES-GCM' }, true, [\n 'encrypt',\n 'decrypt'\n ]);\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxConfig } from '../interfaces';\nimport { MonkeyEcxConfigService } from '../services';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFeatureByProgram]'\n})\nexport class MonkeyEcxFeatureByProgramDirective implements OnInit {\n @Input('feature') feature: string = '';\n\n private config?: MonkeyEcxConfig;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private monkeyConfigService: MonkeyEcxConfigService\n ) {\n this.monkeyConfigService.config().subscribe((_: MonkeyEcxConfig) => {\n this.config = _;\n this.init();\n });\n }\n\n private init() {\n if (!this.feature) return;\n this.cdr.detectChanges();\n this.handleDisplay();\n }\n\n private handleDisplay(): void {\n const { feature, config } = this;\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\n return;\n }\n\n const disabled = config?.program?.settings?.[feature];\n\n if (!disabled) {\n display = 'block';\n }\n\n this.elementRef.nativeElement.style.display = display;\n\n if (display === 'none') {\n this.elementRef.nativeElement.remove();\n }\n\n this.cdr.detectChanges();\n }\n\n ngOnInit() {\n this.init();\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\n\n@Directive({\n selector: '[monkeyecxFeature]'\n})\nexport class MonkeyEcxFeatureDirective implements OnDestroy, OnInit {\n @Input('featureName') feature?: string;\n\n private unsubscribeAll = new Subject();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private monkeyecxFeatureToggleService: MonkeyEcxFeatureToggleService\n ) {\n // not to do\n }\n\n private getFeature(feature: string): boolean {\n const { monkeyecxFeatureToggleService } = this;\n\n if (!monkeyecxFeatureToggleService) {\n return false;\n }\n\n return monkeyecxFeatureToggleService?.getFlag(feature) || false;\n }\n\n private handleDisplay(): void {\n if (!this.feature) return;\n const flag = this.getFeature(this.feature);\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\n return;\n }\n\n if (flag) {\n display = 'block';\n }\n\n if (display === 'none') {\n this.elementRef.nativeElement.remove();\n }\n\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n\n ngOnInit() {\n if (!this.feature) return;\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.monkeyecxFeatureToggleService.onFlags\n .pipe(takeUntil(this.unsubscribeAll))\n .subscribe((val: boolean) => {\n if (val) {\n this.handleDisplay();\n }\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxLoading]'\n})\nexport class MonkeyEcxLoadingDirective implements OnChanges {\n private view: EmbeddedViewRef<any> | null = null;\n\n private loadingElement: HTMLElement | null = null;\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n @Input() monkeyecxLoading: boolean = false;\n\n @Input() monkeyecxLoadingSize: 'lg' | 'md' | 'sm' = 'sm';\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['monkeyecxLoading'] || changes['monkeyecxLoadingSize']) {\n this.updateView();\n }\n }\n\n updateView() {\n if (this.monkeyecxLoading) {\n if (this.view) this.viewContainer.clear();\n\n this.loadingElement = document.createElement('div');\n\n this.loadingElement.className = `mecx-loading ${this.monkeyecxLoadingSize}`;\n\n this.elementRef.nativeElement.parentNode.insertBefore(\n this.loadingElement,\n this.elementRef.nativeElement.nextSibling\n );\n } else {\n if (this.loadingElement && this.loadingElement.parentNode) {\n this.loadingElement.parentNode.removeChild(this.loadingElement);\n this.loadingElement = null;\n }\n\n this.viewContainer.clear();\n this.view = this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxDragDropDirective } from './monkeyecx-drag-drop';\nimport { MonkeyEcxFeatureByProgramDirective } from './monkeyecx-feature-by-program-directive';\nimport { MonkeyEcxFeatureDirective } from './monkeyecx-feature-directive';\nimport { MonkeyEcxFormatCurrency } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatUpper } from './monkeyecx-format-upper';\nimport { MonkeyEcxOnlyAlphaNumericDirective } from './monkeyecx-only-alpha-numeric-directive';\nimport { MonkeyEcxOnlyNumbersDirective } from './monkeyecx-only-number-directive';\nimport { MonkeyEcxPopoverOptionsDirective } from './monkeyecx-popover-options.directive';\nimport { MonkeyEcxPopoverDirective } from './monkeyecx-popover.directive';\nimport { MonkeyEcxSecurityDirective } from './monkeyecx-security-directive';\nimport { MonkeyEcxTooltipDirective } from './monkeyecx-tooltip-directive';\nimport { MonkeyEcxLoadingDirective } from './monkeyecx-loading';\n\n@NgModule({\n declarations: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFeatureByProgramDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxLoadingDirective,\n MonkeyEcxTooltipDirective,\n MonkeyEcxPopoverDirective,\n MonkeyEcxPopoverOptionsDirective\n ],\n imports: [CommonModule, OverlayModule],\n exports: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFeatureByProgramDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxLoadingDirective,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxTooltipDirective,\n MonkeyEcxPopoverDirective,\n MonkeyEcxPopoverOptionsDirective\n ]\n})\nexport class MonkeyEcxDirectivesModule {}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { from, Observable, throwError } from 'rxjs';\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\nexport interface Headers {\n name: string;\n value: string;\n}\n\n@Injectable()\nexport class MonkeyEcxHttpConfigErrorInterceptor implements HttpInterceptor {\n constructor(\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\n ) {\n // no to do\n }\n\n private async handle(request: HttpRequest<any>, error: HttpErrorResponse) {\n try {\n if (this.monkeyecxAuthenticationService.refreshShouldHappen(error)) {\n await this.monkeyecxAuthenticationService?.refreshToken();\n const headers = await this.monkeyecxAuthenticationService.getRequestWithHeadersAsync(\n request\n );\n return headers;\n }\n } catch (e) {\n return throwError(e);\n }\n\n return null;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(\n map((event: HttpEvent<any>) => {\n return event;\n }),\n catchError((error: HttpErrorResponse) => {\n return from(this.handle(request, error)).pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError(() => {\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\n return throwError(error);\n })\n );\n })\n );\n }\n}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { from, Observable, throwError } from 'rxjs';\nimport { catchError, first, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxConfigService } from '../services';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigHeaderInterceptor implements HttpInterceptor {\n constructor(\n private authService: MonkeyEcxAuthenticationService,\n private errorHandlingService: MonkeyEcxErrorHandlingService,\n private config: MonkeyEcxConfigService\n ) {\n // not to do\n }\n\n private async handle(request: HttpRequest<any>) {\n const { url } = request;\n if (this.authService.isTokenMandatory(url)) {\n try {\n await this.config\n .config()\n .pipe(\n first((val: any) => {\n return !!val && JSON.stringify(val) !== '{}';\n })\n )\n .toPromise();\n } catch (e) {\n // not to do\n }\n }\n let resp = null;\n try {\n resp = await this.authService.getRequestWithHeadersAsync(request);\n } catch (e) {\n this.errorHandlingService.handleError(e);\n return throwError(e);\n }\n\n return resp;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return from(this.handle(request)).pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError((error: HttpErrorResponse) => {\n this.errorHandlingService.handleError(error);\n return throwError(error);\n })\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxRequestQueueHandlingService } from '../services/request-queue';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestQueue } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigQueueInterceptor implements HttpInterceptor {\n constructor(\n private injector: Injector,\n private monkeyecxRequestQueueHandlingService: MonkeyEcxRequestQueueHandlingService\n ) {\n // not to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isQueueProperty } = this;\n const monkeyecxHandlingService = injector.get(MonkeyEcxHandlingService);\n\n const monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = monkeyecxHandlingService?.getMonkeyEcxRequestQueue();\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.setQueue(monkeyecxRequestQueue);\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.finishQueueItem(monkeyecxRequestQueue);\n }\n })\n );\n }\n\n private isQueueProperty(mrq?: MonkeyEcxRequestQueue | null): boolean {\n return (\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq?.item?.name)\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestLoadingInProgress } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxProgressBarService } from '../../components';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigLoadingInProgressInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {\n // no to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isLoadingInProgressProperty } = this;\n const handlingService: MonkeyEcxHandlingService = injector.get(MonkeyEcxHandlingService);\n const progressBarService: MonkeyEcxProgressBarService = injector.get(\n MonkeyEcxProgressBarService\n );\n\n const inProgress: MonkeyEcxRequestLoadingInProgress | null = handlingService?.getMonkeyEcxServiceCredentials()\n ? handlingService?.getMonkeyEcxServiceCredentials()?.requestInProgress || null\n : null;\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.show();\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.hide();\n }\n })\n );\n }\n\n private isLoadingInProgressProperty(mlp: MonkeyEcxRequestLoadingInProgress | null): boolean {\n if (!mlp) return false;\n return MonkeyEcxUtils.persistNullEmptyUndefined(mlp) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mlp.showProgress)\n ? mlp.showProgress\n : true;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxHttpConfigErrorInterceptor } from './monkeyecx-http-config-error.interceptor';\nimport { MonkeyEcxHttpConfigHeaderInterceptor } from './monkeyecx-http-config-header.interceptor';\nimport { MonkeyEcxHttpConfigQueueInterceptor } from './monkeyecx-http-config-queue.interceptor';\nimport { MonkeyEcxHttpConfigLoadingInProgressInterceptor } from './monkeyecx-http-config-loading-in-progress.interceptor';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxHttpConfigInterceptorModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxHttpConfigInterceptorModule> {\n return {\n ngModule: MonkeyEcxHttpConfigInterceptorModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigHeaderInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigErrorInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigQueueInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigLoadingInProgressInterceptor,\n multi: true,\n },\n ],\n };\n }\n}\n","/* eslint-disable no-unused-vars */\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport enum OpSearch {\n LIKE = ':\\'*:value*\\'',\n BETWEEN = ':first AND :last',\n OR = 'OR',\n AND = 'AND',\n GT = '>:value',\n LT = '<:value',\n EQUAL = '::value',\n IN = ' IN :value',\n NOT = ' !:value'\n}\n\nexport class MonkeyEcxSpecificationSearch {\n constructor() {\n // not to do\n }\n\n private handleValue(value: any) {\n return Object.entries(value).map(([key, value1]) => {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {\n return null;\n }\n if (Array.isArray(value1)) {\n if (key === OpSearch.BETWEEN) {\n return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);\n }\n }\n return `${key}`.replace(':value', `${value1}`);\n })[0];\n }\n\n private queryVisitor(value: any): any {\n const okay = Object.entries(value).map(([key1, value1]) => {\n if (key1 === OpSearch.OR || key1 === OpSearch.AND) {\n const join = (value1 as any[])\n .map((_: any) => {\n return Object.entries(_).map(([key2, value2]) => {\n if (value2 instanceof Object) {\n value2 = this.handleValue(value2);\n }\n return this.criteriaParser(key2, value2);\n })[0];\n })\n .filter((_: any) => {\n return _;\n })\n .join(` ${key1} `);\n return `${join ? `(${join})` : ''}`;\n }\n if (value1 instanceof Object) {\n value1 = this.handleValue(value1);\n }\n return this.criteriaParser(key1, value1);\n });\n return okay\n .filter((_: any) => {\n return _;\n })\n .join(' AND ');\n }\n\n private criteriaParser(key: string, value: any | any[]) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n return '';\n }\n if (value instanceof Object) {\n return this.queryVisitor(value);\n }\n return `${key}${value}`;\n }\n\n public build(spec: any): string {\n try {\n return this.queryVisitor(spec);\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public buildMoreThanOne(field: string, op = OpSearch.EQUAL, addSingleQuotes = false) {\n const self: any = this;\n try {\n if (!self[field]) return [];\n\n const filters = self[field]?.split(',')?.map((filter: string) => {\n if (!filter) return null;\n return {\n [field]: {\n [op]: addSingleQuotes ? `'${filter}'` : `${filter}`\n }\n };\n }).filter((val: any) => { return val; });\n return filters || [];\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public handleFieldSeparatedBy(field: string, signal = ',', op = OpSearch.EQUAL) {\n return this[field]?.split(signal)?.map((_) => {\n return {\n [field]: {\n [op]: _\n }\n };\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { StoreModule } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideModule,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n} from 'monkey-style-guide';\nimport {\n AlertsModule,\n ClosedToMaintenanceModule,\n CurrencyConfigModule,\n VersionChangedModule\n} from './components';\nimport { MonkeyEcxHttpConfigInterceptorModule } from './core/interceptors/monkeyecx-http-config-interceptor.module';\nimport { MonkeyEcxConfigModule } from './core/services/config/monkeyecx-config.module';\nimport { MonkeyEcxErrorHandlingModule } from './core/services/error/monkeyecx-error-handling.module';\nimport { reducers } from './store';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n TranslateModule.forRoot(),\n MonkeyEcxConfigModule.forRoot(),\n MonkeyEcxHttpConfigInterceptorModule.forRoot(),\n MonkeyEcxErrorHandlingModule.forRoot(),\n MonkeyStyleGuideModule,\n ServiceWorkerModule.register('ngsw-worker.js'),\n ClosedToMaintenanceModule,\n StoreModule.forFeature(\n reducers.fromMonkeyecxStorage.featureKey,\n reducers.fromMonkeyecxStorage.reducer\n ),\n VersionChangedModule,\n AlertsModule,\n CurrencyConfigModule\n ],\n providers: [\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n ]\n})\nexport class MonkeyFrontCoreModule {}\n","/*\n * Public API Surface of monkey-front-core\n */\nexport * from './lib/components';\nexport * from './lib/core';\nexport * from './lib/monkey-front-core.module';\nexport * as store from './lib/store';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","moment","i4.MonkeyEcxFormatDateTimelapsePipe","i2.MonkeyEcxHandlingService","i1.MonkeyEcxService","i2","Statics.MonkeyEcxQueueEvents","Statics.MonkeyEcxUploadEvents","i1.MonkeyEcxProgressBarService","DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties","DecoratorsUtils.buildQueuePropertys","DecoratorsUtils.buildDownloadPropertys","DecoratorsUtils.buildUploadPropertys","actions.monkeyecxStorage.clear","actions.monkeyecxStorage.create","actions.monkeyecxStorage.updateControl","actions.monkeyecxStorage.updateOne","actions.monkeyecxStorage.deleteOne","selectAll","reducers.fromMonkeyecxStorage.featureKey","reducers.fromMonkeyecxStorage.selectAll","window","i2.MonkeyEcxTokenStorageService","i4.MonkeyEcxErrorConfigService","i2.MonkeyEcxi18nConfigService","i3.MonkeyEcxLogsConfigService","i4","i5.MonkeyEcxServiceWorkerConfigService","i6.MonkeyEcxSecurityConsoleConfigService","i7.MonkeyEcxMaintenanceConfigService","i8.MonkeyEcxErrorConfigService","i9.MonkeyEcxFeatureToggleService","i10.MonkeyEcxGTMConfigService","i11.MonkeyEcxAlertsConfigService","selectors.monkeyecxStorage.select","i1.MonkeyEcxConfigService","i1.MonkeyEcxTokenStorageService","i1.MonkeyEcxAuthenticationService","i2.MonkeyEcxCookieStorageService","i3.MonkeyEcxConfigService","i3.MonkeyEcxAuthenticationService","i5","i6","Statics.MonkeyEcxDownloadEvents","i2.MonkeyEcxLoggedHandlingService","i1.MonkeyEcxFeatureToggleService","i2.MonkeyEcxErrorHandlingService","i1.MonkeyEcxRequestQueueHandlingService","i2.MonkeyEcxConfigModule","i3.MonkeyEcxHttpConfigInterceptorModule","i4.MonkeyEcxErrorHandlingModule","reducers.fromMonkeyecxStorage.reducer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQa,eAAe,CAAA;AAkB1B,IAAA,WAAA,CACU,YAA0C,EAAA;AAA1C,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA8B;AAlB3C,QAAA,IAAM,CAAA,MAAA,GAA6B,IAAI,CAAC;AAIjD,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAEV,QAAA,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;AAEZ,QAAA,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEd,QAAA,IAAO,CAAA,OAAA,GAGI,IAAI,CAAC;AAEhB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;KAMlB;IAED,QAAQ,GAAA;;AACN,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;KAC3C;IAED,OAAO,GAAA;QACL,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxC;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;AACjB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,IAAI,CAAC;AACtC,SAAA;KACF;;4GA1CU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,4GCR5B,4yBAyBe,EAAA,MAAA,EAAA,CAAA,6nCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,WAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;2FDjBF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,4yBAAA,EAAA,MAAA,EAAA,CAAA,6nCAAA,CAAA,EAAA,CAAA;mHAKnB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEAK,YAAY,CAAA;;yGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0GAAZ,YAAY,EAAA,YAAA,EAAA,CAJR,eAAe,CACpB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAAC,IAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CACnD,eAAe,CAAA,EAAA,CAAA,CAAA;AAEd,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAHd,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAA,EAAA,CAAA,CAAA;2FAG/E,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC;oBAC1F,OAAO,EAAE,CAAC,eAAe,CAAC;iBAC3B,CAAA;;;ACVD;AACA;AACA,IAAY,oBAIX,CAAA;AAJD,CAAA,UAAY,oBAAoB,EAAA;IAC9B,oBAAA,CAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,oBAAA,CAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,oBAAA,CAAA,oBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACnB,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,GAI/B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,uBAIX,CAAA;AAJD,CAAA,UAAY,uBAAuB,EAAA;IACjC,uBAAA,CAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,uBAAA,CAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,uBAAA,CAAA,uBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACnB,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,GAIlC,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,qBAIX,CAAA;AAJD,CAAA,UAAY,qBAAqB,EAAA;IAC/B,qBAAA,CAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,qBAAA,CAAA,qBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACnB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,GAIhC,EAAA,CAAA,CAAA,CAAA;AAED;AACA,IAAY,6BAIX,CAAA;AAJD,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,6BAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,6BAAA,CAAA,QAAA,CAAA,GAAA,gBAAyB,CAAA;AAC3B,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,GAIxC,EAAA,CAAA,CAAA,CAAA;AAED;AACA,IAAY,8BAOX,CAAA;AAPD,CAAA,UAAY,8BAA8B,EAAA;AACxC,IAAA,8BAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,8BAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,8BAAA,CAAA,aAAA,CAAA,GAAA,gBAA8B,CAAA;AAC9B,IAAA,8BAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,8BAAA,CAAA,cAAA,CAAA,GAAA,iBAAgC,CAAA;AAChC,IAAA,8BAAA,CAAA,QAAA,CAAA,GAAA,gBAAyB,CAAA;AAC3B,CAAC,EAPW,8BAA8B,KAA9B,8BAA8B,GAOzC,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,YAOX,CAAA;AAPD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,gBAAsB,CAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,oBAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,WAAkB,CAAA;AAClB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,eAAsB,CAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,cAAqB,CAAA;AACvB,CAAC,EAPW,YAAY,KAAZ,YAAY,GAOvB,EAAA,CAAA,CAAA;;;;;;;;;;;;AC5CD;AAaA;MACa,cAAc,CAAA;IACzB,OAAO,yBAAyB,CAAC,EAAO,EAAA;QACtC,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;KACrD;AAED,IAAA,OAAO,eAAe,CAAC,GAAW,EAAE,OAAgB,EAAA;AAClD,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,EAAE,CAAC;QACpB,IAAI,OAAO,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC;QACnC,IAAI,OAAO,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC;QACnC,IAAI,OAAO,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC;AACnC,QAAA,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC;KAC1C;AAED,IAAA,OAAO,eAAe,CAAC,IAAY,EAAE,OAAO,GAAG,EAAE,EAAA;;AAC/C,QAAA,OAAO,CAAA,EAAA,GAAA;AACL,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,GAAG;gBACrB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,EAAE,EAAE,GAAG,YAAY,CAAC,GAAG,CAAK,EAAA,EAAA,YAAY,CAAC,IAAI,CAAE,CAAA;AAChD,aAAA;AACD,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,IAAI;gBACtB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAK,EAAA,EAAA,YAAY,CAAC,IAAI,CAAE,CAAA;AACjD,aAAA;AACD,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,IAAI;gBACtB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAK,EAAA,EAAA,YAAY,CAAC,IAAI,CAAE,CAAA;AACjD,aAAA;SACF,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC,CAAC;KAClC;AAED,IAAA,OAAO,sBAAsB,CAAC,IAAY,EAAE,OAAO,GAAG,EAAE,EAAA;;AACtD,QAAA,OAAO,CAAA,EAAA,GAAA;AACL,YAAA,EAAE,EAAE;AACF,gBAAA,GAAG,EAAE,gBAAgB;AACrB,gBAAA,IAAI,EAAE,oBAAoB;AAC3B,aAAA;AACD,YAAA,EAAE,EAAE;AACF,gBAAA,GAAG,EAAE,WAAW;AAChB,gBAAA,IAAI,EAAE,WAAW;AAClB,aAAA;AACD,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,IAAI;gBACtB,IAAI,EAAE,YAAY,CAAC,IAAI;AACxB,aAAA;SACF,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC,CAAC;KAClC;AAED,IAAA,OAAO,sBAAsB,CAAC,GAAW,EAAE,QAAkB,EAAE,OAAgB,EAAA;AAC7E,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,GAAG,CAAC;QACrB,IAAI,QAAQ,GAAW,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,aAAa,CAAC,CAAC;YAC1E,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE,CAAC;AACtB,SAAA;QACD,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;AACrB,YAAA,QAAQ,GAAG,GAAG;AACX,iBAAA,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;AAChC,iBAAA,OAAO,CAAC,uBAAuB,EAAE,UAAU,CAAC;AAC5C,iBAAA,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC;AAClC,iBAAA,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,QAAQ,GAAG,GAAG;AACX,iBAAA,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;AAChC,iBAAA,OAAO,CAAC,uBAAuB,EAAE,UAAU,CAAC;AAC5C,iBAAA,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AACvC,SAAA;QAED,OAAO,CAAA,EAAG,QAAQ,GAAG,CAAG,EAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE,CAAI,CAAA,EAAA,QAAQ,EAAE,CAAC;KACzE;AAED,IAAA,OAAO,gBAAgB,CAAC,KAAa,EAAE,KAAa,OAAO,EAAA;;AACzD,QAAA,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,IAAI,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,EAAE,KAAK,OAAO;AAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,CAAA,EAAA,GAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KAClD;IAED,OAAO,cAAc,CAAC,QAAa,EAAA;QACjC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,KAAK,CAAC;AAE3B,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAE,CAAC;YAC7D,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;AAChD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YACD,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAE,CAAC;YAC9D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;AACjD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACpD,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAE,CAAC;YAC9D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;AAChD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAE,CAAC;YAC/D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;AAChD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAED,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,OAAO,UAAU,CAAC,QAAgB,EAAA;QACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK,CAAC;QAC1D,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAE1D,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK,CAAC;AAE7C,QAAA,MAAM,MAAM,GAAG,CAAC,GAAW,KAAI;AAC7B,YAAA,MAAM,KAAK,GAAW,CAAG,EAAA,GAAG,EAAE,CAAC;YAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,IAAI,GAAG,CAAC,CAAC;AAEb,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,gBAAA,MAAM,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE5D,GAAG,IAAI,KAAK,CAAC;gBAEb,IAAI,IAAI,GAAG,CAAC,EAAE;oBACZ,IAAI,IAAI,CAAC,CAAC;AACX,iBAAA;AAAM,qBAAA;oBACL,IAAI,GAAG,CAAC,CAAC;AACV,iBAAA;AACF,aAAA;YAED,MAAM,UAAU,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;YACnC,IAAI,UAAU,KAAK,EAAE;AAAE,gBAAA,OAAO,GAAG,CAAC;YAClC,IAAI,UAAU,KAAK,EAAE;AAAE,gBAAA,OAAO,GAAG,CAAC;YAClC,OAAO,CAAA,EAAG,UAAU,CAAA,CAAE,CAAC;AACzB,SAAC,CAAC;QAEF,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAEpD,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,MAAM,KAAK,GAAG,CAAC;KACvB;IAEM,OAAO,UAAU,CAAC,QAAgB,EAAA;QACvC,MAAM,UAAU,GAAG,4CAA4C,CAAC;AAChE,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,aAAa,EAAE,SAAS;AACxB,YAAA,aAAa,EAAE,SAAS;SACzB,CAAC;AACF,QAAA,MAAM,eAAe,GAAG;YACtB,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;SACP,CAAC;AAEF,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,CAAC,EAAE,EAAE;SACN,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,CAAC,GAAW,KAAI;AAC/B,YAAA,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,KAAI;AACrD,gBAAA,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,gBAAA,OAAO,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;aAC5B,EAAE,CAAC,CAAC,CAAC;AACR,SAAC,CAAC;AAEF,QAAA,MAAM,UAAU,GAAG,CAAC,GAAW,KAAI;YACjC,OAAO,MAAM,CAAC,GAAG,CAAC;AACf,iBAAA,IAAI,EAAE;AACN,iBAAA,WAAW,EAAE;AACb,iBAAA,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACpC,SAAC,CAAC;AAEF,QAAA,MAAM,YAAY,GAAG,CAAC,GAAW,KAAI;AACnC,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC,CAAC;;YAEnD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAChC,SAAC,CAAC;AAEF,QAAA,MAAM,yBAAyB,GAAG,CAAC,GAAW,KAAI;YAChD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAA,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,EAAE,GAAG,IAAI,GAAG,CAAA,CAAE,GAAG,GAAG,CAAC;YAChD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,KAAK,KAAK,GAAG,CAAC;YACrC,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,KAAK,KAAK,GAAG,CAAC;AACrC,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AAC/B,SAAC,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,CAAC,GAAW,KAAI,EAAG,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC;AAExE,QAAA,MAAM,iBAAiB,GAAG,CAAC,GAAW,KAAI;AACxC,YAAA,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,YAAA,OAAO,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,SAAC,CAAC;QAEF,IAAI;AACF,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,aAAa,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;YACvC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,cAAc;AAAE,gBAAA,OAAO,KAAK,CAAC;AAClC,YAAA,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,YAAY;AAAE,gBAAA,OAAO,KAAK,CAAC;AAChC,YAAA,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACvD,YAAA,IAAI,CAAC,aAAa;AAAE,gBAAA,OAAO,KAAK,CAAC;YACjC,IAAI,iBAAiB,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;AAE3C,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;;AAEX,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAED,OAAO,UAAU,CAAC,GAAW,EAAA;QAC3B,MAAM,KAAK,GAAG,8IAA8I,CAAC;AAC7J,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACxB;AAED,IAAA,OAAO,cAAc,CAAC,OAAe,EAAE,OAAgB,EAAA;AACrD,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACN,SAAA,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;AAEnB,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC,MAAM,KAAK,MAAM,CAAC;KAC/D;IAED,OAAO,YAAY,CAAC,KAAa,EAAA;QAC/B,OAAO,kCAAkC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KAC7D;AAED,IAAA,OAAO,eAAe,CAAC,GAAW,EAAE,OAAgB,EAAA;AAClD,QAAA,OAAO,GAAG,OAAO,IAAI,gEAAgE,CAAC;AAEtF,QAAA,MAAM,YAAY,GAAW,IAAI,KAAK,CAAC,GAAG,CAAC;aACxC,IAAI,CAAC,GAAG,CAAC;aACT,GAAG,CAAC,MAAK;YACR,OAAO,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,MAAM,CAAA,CAAC,CAAC,CAAC;AACtE,SAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,QAAA,OAAO,YAAY,CAAC;KACrB;IAED,OAAO,iBAAiB,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;AACxB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;KACjD;IAED,OAAO,sBAAsB,CAAC,KAAU,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE,CAAC;AACtB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;KAC3D;IAED,OAAO,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D;IAED,OAAO,aAAa,CAAC,OAAe,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAW,OAAO;AAC7B,aAAA,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;AAChC,aAAA,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEtC,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE,CAAC;KACtB;IAED,OAAO,cAAc,CAAC,IAAY,EAAA;QAChC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,QAAA,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE;YAC1B,IAAI,IAAI,IAAI,CAAC;AACd,SAAA;QACD,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAI,CAAA,EAAA,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;KAClE;IAED,OAAO,OAAO,CAAC,IAAW,EAAA;AACxB,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACxC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,OAAO,cAAc,CAAC,OAAY,EAAE,QAAgB,EAAE,QAAgB,EAAA;AACpE,QAAA,SAAS,UAAU,CAAC,OAAY,EAAE,QAAgB,EAAA;YAChD,MAAM,CAAC,GAAG,OAAO,CAAC;AAClB,YAAA,CAAC,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;AAChC,YAAA,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;AAClB,YAAA,OAAO,CAAC,CAAC;SACV;AAED,QAAA,IAAI,IAAS,CAAC;AACd,QAAA,IAAI,CAAE,SAAiB,CAAC,UAAU,EAAE;YAClC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE;AACnC,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AACzB,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,OAAO,QAAQ,CAAC,IAAY,EAAE,YAAoB,EAAE,EAAA;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,OAAO,CAAC;AAC1B,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC;QAElD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;AAErC,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;KACtE;AAED,IAAA,OAAO,WAAW,GAAA;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,QAAQ,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC;AACxB,QAAA,OAAO,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAI,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC,QAAgB,EAAA;AAClC,QAAA,MAAM,WAAW,GAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AACnD,QAAA,OAAO,CAAC,WAAW,IAAI,EAAE,MAAM,QAAQ,CAAC;KACzC;AAED,IAAA,OAAO,gBAAgB,CAAC,IAAY,EAAE,GAAQ,EAAA;QAC5C,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC3C,YAAA,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,GAAG,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAA,CAAE,CAAC,CAAC;AACrE,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,OAAO,gBAAgB,CAAC,GAAQ,EAAE,MAAgB,EAAA;QAChD,IAAI,GAAG,GAAG,GAAG,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,QAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACvC,YAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACzB,gBAAA,GAAG,GACE,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CACN,EAAA,EAAA,CAAC,GAAG,GAAG,CAAG,EAAA,KAAK,CAAE,CAAA,CAAC,IAAI,EAAE,GACzB,CAAC;AACH,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,GAAG,CAAC;KACZ;AACF,CAAA;MAmBY,aAAa,CAAA;IACxB,OAAO,GAAG,CAAC,MAA0B,EAAA;QACnC,IAAI;YACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;AACjD,YAAA,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9D,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;;AAEX,SAAA;KACF;AACF,CAAA;AAEK,SAAU,cAAc,CAAC,MAAmB,EAAA;IAChD,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACrC,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,KAAA;AACD,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAEK,SAAU,cAAc,CAAC,MAAc,EAAA;IAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,IAAA,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;AAChC,IAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,KAAA;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB;;AC5fA,MAAMC,QAAM,GAAQ,OAAO,CAAC;MAKf,gCAAgC,CAAA;AAC3C,IAAA,SAAS,CAAC,IAAgB,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,SAAS,EAAA;AAC7E,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;AAC/D,QAAA,IAAI,QAAQ,GAAQA,QAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,MAAM;YAAE,QAAQ,GAAGA,QAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AACtC,YAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,QAAQ,GAAG,KAAK,CAAC;AAClB,aAAA;AACF,SAAA;AACD,QAAA,MAAM,UAAU,GAAG,CAAa,UAAA,EAAA,QAAQ,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;AAC/D,QAAA,MAAM,QAAQ,GAAG,CAAa,UAAA,EAAA,QAAQ,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;AAC7D,QAAA,OAAO,CAAG,EAAAA,QAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;KACnE;;6HAdU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2HAAhC,gCAAgC,EAAA,IAAA,EAAA,8BAAA,EAAA,CAAA,CAAA;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAH5C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,8BAA8B;iBACrC,CAAA;;;MCEY,4BAA4B,CAAA;AANzC,IAAA,WAAA,GAAA;AAOW,QAAA,IAAM,CAAA,MAAA,GAA6B,IAAI,CAAC;AAIjD,QAAA,IAAgB,CAAA,gBAAA,GAAoC,IAAI,CAAC;KAS1D;IAPC,QAAQ,GAAA;;QACN,IAAI,CAAC,gBAAgB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC;KAC3C;IAED,OAAO,GAAA;AACL,QAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KAC5B;;yHAbU,4BAA4B,EAAA,IAAA,EAAA,EAAA,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,2HCVzC,yoCAwBe,EAAA,MAAA,EAAA,CAAA,g0BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,WAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,8BAAA,EAAAG,gCAAA,EAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDdF,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,iCAAiC,EAAA,aAAA,EAG5B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,yoCAAA,EAAA,MAAA,EAAA,CAAA,g0BAAA,CAAA,EAAA,CAAA;8BAG5B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;AEbR;MAUsB,wBAAwB,CAAA;AAH9C,IAAA,WAAA,GAAA;AAIU,QAAA,IAA2B,CAAA,2BAAA,GAAuC,IAAI,CAAC;AAEvE,QAAA,IAAqB,CAAA,qBAAA,GAAiC,IAAI,CAAC;AAE3D,QAAA,IAAwB,CAAA,wBAAA,GAAoC,IAAI,CAAC;AAEjE,QAAA,IAAsB,CAAA,sBAAA,GAAkC,IAAI,CAAC;KAwCtE;IAtCQ,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;KACpC;AAEM,IAAA,8BAA8B,CAAC,KAAkC,EAAA;AACtE,QAAA,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;KAC1C;IAEM,8BAA8B,GAAA;QACnC,OAAO,IAAI,CAAC,2BAA2B,CAAC;KACzC;AAEM,IAAA,wBAAwB,CAAC,KAA4B,EAAA;AAC1D,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACpC;IAEM,wBAAwB,GAAA;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;AAEM,IAAA,2BAA2B,CAAC,QAAkC,EAAA;AACnE,QAAA,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC;KAC1C;IAEM,2BAA2B,GAAA;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACtC;AAEM,IAAA,yBAAyB,CAAC,MAA8B,EAAA;AAC7D,QAAA,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;KACtC;IAEM,yBAAyB,GAAA;QAC9B,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACpC;;qHA9CmB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFhC,MAAM,EAAA,CAAA,CAAA;2FAEE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAH7C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCAY,gBAAgB,CAAA;IAC3B,WACY,CAAA,IAAgB,EACnB,wBAAkD,EAAA;AAD/C,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AACnB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;;KAG1D;AAEO,IAAA,UAAU,CAAC,MAAW,EAAA;QAC5B,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;;QAGD,KAAK,MAAM,KAAK,IAAI;YAClB,WAAW;YACX,cAAc;YACd,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,kBAAkB;YAClB,kBAAkB;YAClB,YAAY;YACZ,WAAW;SACZ,EAAE;AACD,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAEM,GAAG,CAAI,GAAW,EAAE,OAAa,EAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC;KACvC;AAEM,IAAA,IAAI,CAAI,GAAW,EAAE,MAAS,EAAE,OAAa,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KAChD;AAEM,IAAA,GAAG,CAAI,GAAW,EAAE,MAAS,EAAE,OAAa,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,UAAU,CACV,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,EACT,EACF,OAAO,CACR,CAAC;KACH;AAEM,IAAA,KAAK,CAAI,GAAW,EAAE,MAAS,EAAE,OAAa,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,GAAG,EACH,IAAI,CAAC,UAAU,CACV,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,EACT,EACF,OAAO,CACR,CAAC;KACH;IAEM,MAAM,CAAI,GAAW,EAAE,MAAY,EAAA;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;KACzC;AAEM,IAAA,QAAQ,CAAI,GAAW,EAAE,OAAa,EAAE,QAAiB,EAAA;AAC9D,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,CACtC,CAAC,IAAS,KAAI;AACZ,YAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC9D,YAAA,IAAI,kBAAkB,EAAE;AACtB,gBAAA,QAAQ,GAAG,kBAAkB;AAC1B,qBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,qBAAA,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpB,qBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,qBAAA,IAAI,EAAE;qBACN,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAClC,aAAA;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,EAAE,CAAG,EAAA,WAAW,CAAE,CAAA;AACvB,aAAA,CAAC,CAAC;YACH,OAAO;gBACL,QAAQ;gBACR,IAAI;aACL,CAAC;AACJ,SAAC,EACD,CAAC,GAAsB,KAAI;YACzB,UAAU,CAAC,GAAG,CAAC,CAAC;AAClB,SAAC,CACF,CAAC;KACH;AAEM,IAAA,UAAU,CAAI,GAAW,EAAE,OAAa,EAAE,QAAiB,EAAA;AAChE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAC1C,GAAG,CAAC,CAAC,IAAS,KAAI;AAChB,YAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC9D,YAAA,IAAI,kBAAkB,EAAE;AACtB,gBAAA,QAAQ,GAAG,kBAAkB;AAC1B,qBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,qBAAA,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpB,qBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,qBAAA,IAAI,EAAE;qBACN,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAClC,aAAA;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,EAAE,CAAG,EAAA,WAAW,CAAE,CAAA;AACvB,aAAA,CAAC,CAAC;YACH,OAAO;gBACL,QAAQ;gBACR,IAAI;aACL,CAAC;AACJ,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;SACxB,CAAC,CACH,CAAC;KACH;;6GApHU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCCY,uBAAuB,CAAA;IAClC,WAAoB,CAAA,gBAAkC,EAAU,SAAuB,EAAA;AAAnE,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAAU,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;;KAEtF;AAED,IAAA,SAAS,CAAC,GAAW,EAAA;QACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAClE,GAAG,CAAC,CAAC,GAAQ,KAAI;AACf,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;SACxE,CAAC,CACH,CAAC;KACH;;oHAXU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;iBAC5B,CAAA;;;MCFY,6BAA6B,CAAA;AACxC,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;AAC/D,QAAA,OAAO,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC9C;;0HAJU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;wHAA7B,6BAA6B,EAAA,IAAA,EAAA,2BAAA,EAAA,CAAA,CAAA;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,2BAA2B;iBAClC,CAAA;;;MCCY,4BAA4B,CAAA;AACvC,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAA,EAAG,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,MAAM,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;KACnD;;yHANU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uHAA5B,4BAA4B,EAAA,IAAA,EAAA,0BAAA,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,0BAA0B;iBACjC,CAAA;;;ACDD,MAAMJ,QAAM,GAAQ,OAAO,CAAC;MAKf,4BAA4B,CAAA;AACvC,IAAA,WAAA,GAAA;;KAEC;AAED,IAAA,SAAS,CAAC,MAAqC,EAAA;AAC7C,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkC,KAAI;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAE3C,YAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,KAAK,CAAA,EAAA,EACR,QAAQ,EACR,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,EACvC,CAAA,CAAA;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,MAAM,KAAK,GAAGA,QAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACxG,QAAA,MAAM,GAAG,GAAGA,QAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAEpG,QAAA,OAAOA,QAAM,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAIA,QAAM,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;KACtF;;yHAtBU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uHAA5B,4BAA4B,EAAA,IAAA,EAAA,8BAAA,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,8BAA8B;iBACrC,CAAA;;;MCHY,0BAA0B,CAAA;IACrC,SAAS,CAAC,EACR,OAAO,EACP,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,KAAK,GAQN,EAAA;QACC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACjD,aAAA,MAAM,CAAC,CAAC,CAAS,KAAI;AACpB,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;KACf;;uHApBU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;qHAA1B,0BAA0B,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,wBAAwB;iBAC/B,CAAA;;;MCCY,+BAA+B,CAAA;AAC1C,IAAA,WAAA,GAAA;;KAEC;AAED,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,MAAM,QAAQ,GAAG,iDAAiD,CAAC;AAEnE,QAAA,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAI;YACpD,MAAM,GAAG,GAAG,8CAA8C,CAAC;YAC3D,MAAM,GAAG,GAAG,+CAA+C,CAAC;YAC5D,MAAM,GAAG,GAAG,iDAAiD,CAAC;AAC9D,YAAA,IAAI,CAAC,GAAG,OAAO,IAAI,EAAE,CAAC;AACtB,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,CAAC,GAAG,CAAA,EAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC;AACxD,aAAA;AACD,YAAA,IAAI,IAAI,EAAE;gBACR,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAA,OAAA,CAAS,CAAC;AAC1D,aAAA;AACD,YAAA,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AAC1B,SAAC,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AACtB,aAAA,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;AACzB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AACrB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AACrB,aAAA,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAChC;;4HA5BU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0HAA/B,+BAA+B,EAAA,IAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,6BAA6B;iBACpC,CAAA;;;MCFY,mBAAmB,GAAG,IAAI,cAAc,CAAS,EAAE,EAAE;MACrD,gBAAgB,GAAG,IAAI,cAAc,CAAS,EAAE,EAAE;MAClD,SAAS,GAAG,IAAI,cAAc,CAAS,EAAE,EAAE;MAC3C,QAAQ,GAAG,IAAI,cAAc,CAAS,EAAE,EAAE;MAC1C,UAAU,GAAG,IAAI,cAAc,CAAS,EAAE,EAAE;MAC5C,SAAS,GAAG,IAAI,cAAc,CAAS,EAAE;;MCAzC,2BAA2B,CAAA;AACtC,IAAA,WAAA,CACU,YAA0B,EACK,kBAA0C,EACtD,IAA4B,EAAA;AAF/C,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AACK,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAwB;AACtD,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAwB;;KAGxD;AAED,IAAA,SAAS,CAAC,KAAU,EAAE,MAAM,GAAG,QAAQ,EAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEpC,IAAI;YACF,IAAI,QAAQ,KAAK,KAAK,EAAE;AACtB,gBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3E,GAAG,GAAG,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACxC,gBAAA,OAAO,GAAG,GAAG,CAAA,EAAG,MAAM,KAAK,EAAE,GAAG,CAAA,CAAA,EAAI,QAAQ,CAAE,CAAA,GAAG,EAAE,EAAE,CAAC;AACvD,aAAA;YAED,IAAI,QAAQ,KAAK,KAAK,EAAE;AACtB,gBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;gBACtE,GAAG,GAAG,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACxC,gBAAA,OAAO,GAAG,GAAG,CAAA,EAAG,MAAM,KAAK,EAAE,GAAG,CAAA,CAAA,EAAI,QAAQ,CAAE,CAAA,GAAG,EAAE,EAAE,CAAC;AACvD,aAAA;AAED,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACzE,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;;AAEX,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;;wHA/BU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAG5B,qBAAqB,EAAA,EAAA,EAAA,KAAA,EACrB,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;sHAJR,2BAA2B,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,yBAAyB;iBAChC,CAAA;;;8BAII,MAAM;+BAAC,qBAAqB,CAAA;;8BAC5B,MAAM;+BAAC,SAAS,CAAA;;;;MCJR,uBAAuB,CAAA;AAClC,IAAA,WAAA,CACU,EAAY,EACc,UAAkC,EAC/B,QAAgC,EAAA;AAF7D,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAU;AACc,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;AAC/B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAwB;;KAGtE;IAED,SAAS,CAAC,IAAgB,EAAE,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;KAClE;;oHAXU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAGxB,gBAAgB,EAAA,EAAA,EAAA,KAAA,EAChB,mBAAmB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;kHAJlB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;iBAC5B,CAAA;;;8BAII,MAAM;+BAAC,gBAAgB,CAAA;;8BACvB,MAAM;+BAAC,mBAAmB,CAAA;;;;ACN/B,MAAMC,QAAM,GAAQ,OAAO,CAAC;MAKf,4BAA4B,CAAA;AAGvC,IAAA,WAAA,CAAoB,QAAkB,EAAA;AAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAF9B,QAAA,IAAI,CAAA,IAAA,GAAG,OAAO,CAAC;QAGrB,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;KAC/C;AAEO,IAAA,MAAM,CAAC,IAAmB,EAAA;;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;AAC/D,QAAA,IAAI,QAAQ,GAAQA,QAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,GAAG,CAAC,KAAI,CAAC,CAAC,EAAE;YACvC,QAAQ,GAAG,IAAI,CAAC;AACjB,SAAA;QACD,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,QAAA,MAAM,GAAG,GAAGA,QAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACxC,QAAA,OAAO,GAAG,CAAG,EAAA,WAAW,CAAG,EAAA,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAK,EAAA,EAAA,YAAY,EAAE,CAAC;KAC/E;AAED,IAAA,SAAS,CAAC,GAAQ,EAAA;QAChB,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,KAAK,CAAA,IAAI,EAAC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,CAAA;AAAE,YAAA,OAAO,EAAE,CAAC;AAChD,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,OAAO,CAAG,EAAA,aAAa,CAAM,GAAA,EAAA,WAAW,EAAE,CAAC;KAC5C;;yHA5BU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uHAA5B,4BAA4B,EAAA,IAAA,EAAA,0BAAA,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,0BAA0B;iBACjC,CAAA;;;ACAK,SAAU,mBAAmB,CAAC,KAAgC,EAAA;AAClE,IAAA,MAAM,MAAM,GAA0B;QACpC,IAAI,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACC,KAAK,CAAA,EAAA,EACR,EAAE,EAAE,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,EACvC,CAAA;AACD,QAAA,MAAM,EAAEK,oBAA4B,CAAC,OAAO;KAC7C,CAAC;AAEF,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;SAEe,sBAAsB,CACpC,IAAY,EACZ,WAAoB,EACpB,IAAa,EAAA;AAEb,IAAA,MAAM,MAAM,GAA6B;AACvC,QAAA,IAAI,EAAE;YACJ,IAAI;YACJ,WAAW;YACX,EAAE,EAAE,GAAG,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,CAAE,CAAA;YAC3C,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,SAAA;AACD,QAAA,MAAM,EAAEA,oBAA4B,CAAC,OAAO;KAC7C,CAAC;AAEF,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,oBAAoB,CAAC,IAAY,EAAE,WAAoB,EAAA;AACrE,IAAA,MAAM,MAAM,GAA2B;AACrC,QAAA,IAAI,EAAE;YACJ,IAAI;YACJ,WAAW;YACX,EAAE,EAAE,GAAG,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,CAAE,CAAA;AAC5C,SAAA;AACD,QAAA,MAAM,EAAEC,qBAA6B,CAAC,OAAO;KAC9C,CAAC;AAEF,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEK,SAAU,wCAAwC,CAAC,OAAY,EAAA;AACnE,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAC3E;;;;;;;;;;AClDA,MAAMN,QAAM,GAAQ,OAAO,CAAC;MAEf,aAAa,CAAA;IACxB,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,YAAA,IACE,CAACA,QAAM;iBACJ,OAAO,CACNA,QAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAChD,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,EAC1C,IAAI,CACL;AACA,iBAAA,OAAO,EAAE,EACZ;gBACA,OAAO;AACL,oBAAA,WAAW,EAAE,IAAI;iBAClB,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,iBAAiB,CAAA;IAC5B,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjD,OAAO;AACL,oBAAA,cAAc,EAAE,IAAI;iBACrB,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,oBAAoB,CAAA;IAC/B,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC7C,OAAO;AACL,oBAAA,UAAU,EAAE,IAAI;iBACjB,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,oBAAoB,CAAA;IAC/B,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC7C,OAAO;AACL,oBAAA,UAAU,EAAE,IAAI;iBACjB,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,gBAAgB,CAAA;IAC3B,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjD,OAAO;AACL,oBAAA,cAAc,EAAE,IAAI;iBACrB,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,cAAc,CAAA;IACzB,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG;AAAE,YAAA,OAAO,IAAI,CAAC;QAClD,OAAO;AACL,YAAA,YAAY,EAAE,IAAI;SACnB,CAAC;KACH;AACF,CAAA;MAEY,eAAe,CAAA;IAC1B,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;QACpD,OAAO;AACL,YAAA,WAAW,EAAE,IAAI;SAClB,CAAC;KACH;AACF,CAAA;MAEY,uBAAuB,CAAA;IAClC,OAAO,EAAE,CAAC,OAAwB,EAAA;;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AAC3B,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAChD,QAAA,MAAM,eAAe,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,iBAAiB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAC9D,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe;AAAE,YAAA,OAAO,IAAI,CAAC;QAC/C,IAAI,QAAQ,KAAK,eAAe;AAAE,YAAA,OAAO,IAAI,CAAC;QAC9C,OAAO;AACL,YAAA,oBAAoB,EAAE,IAAI;SAC3B,CAAC;KACH;AACF,CAAA;MAEY,YAAY,CAAA;IACvB,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC7C,OAAO;AACL,oBAAA,UAAU,EAAE,IAAI;iBACjB,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,yBAAyB,CAAA;IACpC,OAAO,EAAE,CAAC,OAAwB,EAAA;;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AAE3B,QAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AACnD,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;QAC/C,IAAI,SAAS,GAAgB,IAAI,CAAC;QAClC,IAAI,OAAO,GAAgB,IAAI,CAAC;AAChC,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;QACxC,IAAI,SAAS,GAAG,OAAO,EAAE;YACvB,OAAO;AACL,gBAAA,0BAA0B,EAAE,IAAI;aACjC,CAAC;AACH,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,uBAAuB,CAAA;IAClC,OAAO,EAAE,CAAC,OAAwB,EAAA;;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAC7C,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AAE3B,QAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AACnD,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;QAC/C,IAAI,SAAS,GAAgB,IAAI,CAAC;QAClC,IAAI,OAAO,GAAgB,IAAI,CAAC;AAChC,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC;QACxC,IAAI,OAAO,GAAG,SAAS,EAAE;YACvB,OAAO;AACL,gBAAA,6BAA6B,EAAE,IAAI;aACpC,CAAC;AACH,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,4BAA4B,CAAA;IACvC,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAE7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,cAAc,EAAE;YAC/C,OAAO;AACL,gBAAA,qBAAqB,EAAE,IAAI;aAC5B,CAAC;AACH,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,8BAA8B,CAAA;IACzC,OAAO,EAAE,CAAC,OAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC;AAE7C,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,gBAAgB,EAAE;YACjD,OAAO;AACL,gBAAA,qBAAqB,EAAE,IAAI;aAC5B,CAAC;AACH,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;MAEY,kBAAkB,CAAA;IAC7B,OAAO,EAAE,CAAC,OAAwB,EAAA;;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,MAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,MAAM,0CAAE,GAAG,CAAC,OAAO,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAEnD,QAAA,IACE,KAAK;aACJ,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,SAAS,CAAC;gBACzD,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAC3D;YACA,OAAO;AACL,gBAAA,gBAAgB,EAAE,IAAI;aACvB,CAAC;AACH,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AACF;;;;;;;;;;;;;;;;;;;;ACtOD,MAAMA,QAAM,GAAQ,OAAO,CAAC;AAE5B,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,SAAS,iBAAiB,CAAC,KAAU,EAAA;IACnC,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7C,CAAC;AAEK,SAAU,cAAc,CAAC,OAAwB,EAAA;AACrD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnE,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAA,IAAI,IAAI;AAAE,QAAA,OAAO,IAAI,CAAC;IACtB,OAAO;AACL,QAAA,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAEK,SAAU,kBAAkB,CAAC,OAAwB,EAAA;;AACzD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnE,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAED,IAAA,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,MAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,MAAM,0CAAE,GAAG,CAAC,OAAO,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AACnD,IAAA,IACE,KAAK;AACL,SAAC,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,SAAS,CAAC;AAC1D,YAAA,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,OAAO,CAAC,CAAC,EAC5D;QACA,OAAO;AACL,YAAA,SAAS,EAAE,IAAI;SAChB,CAAC;AACH,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEe,SAAA,iBAAiB,CAAC,OAAwB,EAAE,IAAY,EAAA;AACtE,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnE,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAED,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,CAAU,OAAA,EAAA,IAAI,CAAE,CAAA,CAAC,WAAW,EAAE,EAAE;QAC/D,OAAO;AACL,YAAA,qBAAqB,EAAE,IAAI;SAC5B,CAAC;AACH,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,qBAAqB,CAAC,OAAwB,EAAA;;AAC5D,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;AAC/B,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAED,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AAE3B,IAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AACnD,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;IAC/C,IAAI,SAAS,GAAgB,IAAI,CAAC;IAClC,IAAI,OAAO,GAAgB,IAAI,CAAC;AAChC,IAAA,IAAI,UAAU,EAAE;AACd,QAAA,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAClC,KAAA;AACD,IAAA,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,KAAA;AAED,IAAA,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI,CAAC;IACxC,IAAI,SAAS,GAAG,OAAO,EAAE;QACvB,OAAO;AACL,YAAA,0BAA0B,EAAE,IAAI;SACjC,CAAC;AACH,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,YAAY,CAAC,OAAwB,EAAA;AACnD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC;IAEjF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC7C,OAAO;AACL,YAAA,GAAG,EAAE,IAAI;SACV,CAAC;AACH,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,wBAAwB,CAAC,OAAwB,EAAA;;AAC/D,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC;AAEjF,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AAC3B,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAChD,IAAA,MAAM,eAAe,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,CAAC,iBAAiB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAC9D,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe;AAAE,QAAA,OAAO,IAAI,CAAC;IAC/C,IAAI,QAAQ,KAAK,eAAe;AAAE,QAAA,OAAO,IAAI,CAAC;IAE9C,OAAO;AACL,QAAA,oBAAoB,EAAE,IAAI;KAC3B,CAAC;AACJ,CAAC;AAEK,SAAU,aAAa,CAAC,OAAwB,EAAA;AACpD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI,CAAC;AAC7C,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;AAAE,QAAA,OAAO,IAAI,CAAC;IAEpD,OAAO;AACL,QAAA,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC;AAEK,SAAU,cAAc,CAAC,OAAwB,EAAA;AACrD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI,CAAC;AAC7C,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG;AAAE,QAAA,OAAO,IAAI,CAAC;IAElD,OAAO;AACL,QAAA,YAAY,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAEe,SAAA,gBAAgB,CAC9B,OAAwB,EACxB,OAAgB,EAAA;AAEhB,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC;AACjF,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;QAC5B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAC1D,OAAO;AACL,gBAAA,cAAc,EAAE,IAAI;aACrB,CAAC;AACH,SAAA;AACF,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEe,SAAA,iBAAiB,CAC/B,OAAwB,EACxB,OAAe,EAAA;AAEf,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC;AACjF,IAAA,OAAO,GAAG,CAAG,EAAA,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjD,OAAO;AACL,gBAAA,cAAc,EAAE,IAAI;aACrB,CAAC;AACH,SAAA;AACF,KAAA;SAAM,IAAI,OAAO,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO;AACL,gBAAA,cAAc,EAAE,IAAI;aACrB,CAAC;AACH,SAAA;AACF,KAAA;SAAM,IAAI,OAAO,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO;AACL,gBAAA,cAAc,EAAE,IAAI;aACrB,CAAC;AACH,SAAA;AACF,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEe,SAAA,iBAAiB,CAC/B,KAAa,EACb,OAAwB,EAAA;AAExB,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC;IAEjF,MAAM,IAAI,GAAGA,QAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3C,IAAA,MAAM,GAAG,GAAGA,QAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEjD,IAAI,GAAG,GAAG,KAAK,EAAE;QACf,OAAO;AACL,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE,KAAK;AACZ,aAAA;SACF,CAAC;AACH,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,aAAa,CAAC,OAAwB,EAAA;AACpD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC;IAEjF,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,IAAA,IACE,CAACA,QAAM;SACJ,OAAO,CACNA,QAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAChD,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,EAC1C,IAAI,CACL;AACA,SAAA,OAAO,EAAE,EACZ;QACA,OAAO;AACL,YAAA,WAAW,EAAE,IAAI;SAClB,CAAC;AACH,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,oBAAoB,CAAC,OAAwB,EAAA;AAC3D,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC;AAEjF,IAAA,IAAI,OAAO,IAAI,CAAG,EAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,KAAK,CAAE,CAAA,KAAK,GAAG,EAAE;QAC1C,OAAO;AACL,YAAA,2BAA2B,EAAE,IAAI;SAClC,CAAC;AACH,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,yBAAyB,CAAC,OAAwB,EAAA;AAChE,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI,CAAC;AAE7C,IAAA,IAAI,OAAO,IAAI,CAAC,CAAA,EAAG,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,KAAK,CAAA,CAAE,CAAC,IAAI,EAAE,EAAE;QAC1C,OAAO;AACL,YAAA,QAAQ,EAAE,IAAI;SACf,CAAC;AACH,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,iBAAiB,CAAC,OAAwB,EAAA;AACxD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI,CAAC;IAE7C,MAAM,OAAO,GAAG,CAAG,EAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO;AACL,YAAA,iBAAiB,EAAE,IAAI;SACxB,CAAC;AACH,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEe,SAAA,uBAAuB,CACrC,IAAY,EACZ,OAAwB,EAAA;AAExB,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC;IAEjF,MAAM,MAAM,GAAG,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,IAAA,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,EAAE;AACrC,QAAA,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC,MAAM,KAAK,EAAE;AAC/C,aAAC,IAAI,KAAK,KAAK,IAAI,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE;YAC/C,KAAK,GAAG,KAAK,CAAC;AACf,SAAA;AAAM,aAAA;YACL,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD,SAAA;AACF,KAAA;SAAM,IAAI,IAAI,KAAK,KAAK,EAAE;QACzB,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,KAAA;SAAM,IAAI,IAAI,KAAK,KAAK,EAAE;QACzB,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,KAAA;IAED,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;AACL,YAAA,CAAC,CAAU,OAAA,EAAA,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAE,CAAA,GAAG,IAAI;SAClE,CAAC;AACH,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,gBAAgB,CAAC,OAAwB,EAAA;;IACvD,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,EAAE,CAAC;AACpC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI,CAAC;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAS,KAAI;AACjD,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;KACzB,CAAC,CAAC,MAAM,CAAC;IAEV,IAAI,YAAY,GAAG,CAAC,EAAE;AACpB,QAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC3B,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEK,SAAU,cAAc,CAAC,OAAwB,EAAA;;IACrD,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,EAAE,CAAC;AACpC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI,CAAC;AAExB,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAC5D,CAAC;MAEY,UAAU,CAAA;IACrB,OAAO,KAAK,CAAC,OAAwB,EAAA;AACnC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;KAChC;IAED,OAAO,SAAS,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;KACpC;IAED,OAAO,qBAAqB,CAAC,OAAwB,EAAA;AACnD,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC9C;IAED,OAAO,mBAAmB,CAAC,OAAwB,EAAA;AACjD,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAC5C;IAED,OAAO,YAAY,CAAC,OAAwB,EAAA;AAC1C,QAAA,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;KACvC;IAED,OAAO,GAAG,CAAC,OAAwB,EAAA;AACjC,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;KAC9B;IAED,OAAO,eAAe,CAAC,OAAwB,EAAA;AAC7C,QAAA,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;KAC1C;IAED,OAAO,IAAI,CAAC,OAAwB,EAAA;AAClC,QAAA,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,OAAO,KAAK,CAAC,OAAwB,EAAA;AACnC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC,OAAwB,EAAA;AACrC,QAAA,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClC;IAED,OAAO,gBAAgB,CAAC,OAAe,EAAA;QACrC,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,OAAO,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,SAAC,CAAC;KACH;IAED,OAAO,UAAU,CAAC,OAAwB,EAAA;AACxC,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,OAAO,UAAU,CAAC,OAAwB,EAAA;AACxC,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,OAAO,UAAU,CAAC,OAAwB,EAAA;AACxC,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,OAAO,IAAI,CAAC,OAAwB,EAAA;AAClC,QAAA,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,OAAO,QAAQ,CAAC,KAAa,EAAA;QAC3B,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,OAAO,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC3C,SAAC,CAAC;KACH;IAED,OAAO,eAAe,CAAC,OAAwB,EAAA;AAC7C,QAAA,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;KACtC;IAED,OAAO,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;KAC3C;IAED,OAAO,iBAAiB,CAAC,OAAwB,EAAA;AAC/C,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACnC;IAED,OAAO,uBAAuB,CAAC,IAAY,EAAA;QACzC,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,SAAC,CAAC;KACH;IAED,OAAO,gBAAgB,CAAC,OAAwB,EAAA;AAC9C,QAAA,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClC;IAED,OAAO,cAAc,CAAC,OAAwB,EAAA;AAC5C,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;KAChC;AACF;;AC1YD;;ACIA,MAAMA,QAAM,GAAQ,OAAO,CAAC;MAKf,oCAAoC,CAAA;AAC/C,IAAA,SAAS,CAAC,IAAgB,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,SAAS,EAAA;AAC7E,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;AAC/D,QAAA,IAAI,QAAQ,GAAQA,QAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,MAAM;YAAE,QAAQ,GAAGA,QAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACtD,IACEA,QAAM,CAAC,OAAO;aACX,GAAG,CAAC,IAAI,CAAC;AACT,aAAA,MAAM,EAAE;AACR,aAAA,cAAc,EAAE;AAChB,aAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EACrB;AACA,YAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,QAAQ,GAAG,KAAK,CAAC;AAClB,aAAA;AACF,SAAA;AACD,QAAA,MAAM,UAAU,GAAG,CAAa,UAAA,EAAA,QAAQ,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;AAC/D,QAAA,MAAM,QAAQ,GAAG,CAAa,UAAA,EAAA,QAAQ,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;AAC7D,QAAA,OAAO,CAAG,EAAAA,QAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;KACnE;;iIApBU,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;+HAApC,oCAAoC,EAAA,IAAA,EAAA,kCAAA,EAAA,CAAA,CAAA;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,kCAAkC;iBACzC,CAAA;;;MCFY,2BAA2B,CAAA;AACtC,IAAA,SAAS,CAAC,QAAgB,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAgB,EAAA;AAC5D,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE;AACvD,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,OAAO,cAAc,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC3E;;wHAPU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;sHAA3B,2BAA2B,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,yBAAyB;iBAChC,CAAA;;;MCEY,yBAAyB,CAAA;AACpC,IAAA,SAAS,CAAC,MAAc,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;QAEjE,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;KAC7C;;sHALU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;oHAAzB,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;iBAC9B,CAAA;;;MCDY,wBAAwB,CAAA;AACnC,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,KAAK,GAAG,CAAG,EAAA,KAAK,IAAI,EAAE,CAAA,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAElD,IAAI,QAAQ,GAAG,EAAE,CAAC;AAElB,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBACrB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;AAC/E,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC5B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;AAC/E,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC5B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;AACnE,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;AACnE,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC;AACtE,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;AAC3D,aAAA;iBAAM,IAAI,KAAK,KAAK,EAAE,EAAE;gBACvB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3C,aAAA;AACD,YAAA,OAAO,QAAQ,CAAC;AACjB,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;;qHAzBU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mHAAxB,wBAAwB,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,sBAAsB;iBAC7B,CAAA;;;MCEY,uBAAuB,CAAA;AAClC,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC;AACxB,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,QAAA,OAAO,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;KAC/C;;oHALU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;iBAC5B,CAAA;;;MCCY,sBAAsB,CAAA;AACjC,IAAA,SAAS,CAAC,GAAW,EAAE,aAAA,GAAwB,CAAC,EAAA;AAC9C,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK,CAAC;AACjE,QAAA,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AACjC,QAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC;QACxF,OAAO,CAAA,EAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;AACzD,YAAA,qBAAqB,EAAE,aAAa;AACrC,SAAA,CAAC,IAAI,CAAC;KACR;;mHARU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;iHAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;iBAC3B,CAAA;;;MCCY,+BAA+B,CAAA;IAC1C,SAAS,CAAC,QAAgB,EAAE,OAAgB,EAAA;AAC1C,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;QACnE,OAAO,cAAc,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC1D;;4HAJU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0HAA/B,+BAA+B,EAAA,IAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,6BAA6B;iBACpC,CAAA;;;MCCY,oBAAoB,CAAA;AAC/B,IAAA,SAAS,CAAC,MAAc,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;AACjE,QAAA,OAAO,MAAM,CAAC;KACf;;iHAJU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,sBAAsB;iBAC7B,CAAA;;;MCCY,0BAA0B,CAAA;AACrC,IAAA,SAAS,CAAC,OAAe,EAAA;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;AAClE,QAAA,OAAO,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC9C;;uHAJU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;qHAA1B,0BAA0B,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,wBAAwB;iBAC/B,CAAA;;;MCAY,yBAAyB,CAAA;AACpC,IAAA,SAAS,CAAC,IAAY,EAAE,SAAA,GAAoB,EAAE,EAAA;QAC5C,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,OAAO,CAAC;AAC1B,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC;QAElD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;AAErC,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;KACtE;;sHAVU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;oHAAzB,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;iBAC9B,CAAA;;;MCCY,wBAAwB,CAAA;IACnC,SAAS,CAAC,MAAc,EAAE,SAAiB,EAAA;AACzC,QAAA,OAAO,CAAG,EAAA,MAAM,GAAG,SAAS,GAAG,CAAG,EAAA,SAAS,GAAG,GAAG,MAAM,EAAE,CAAC;KAC3D;;qHAHU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mHAAxB,wBAAwB,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,sBAAsB;iBAC7B,CAAA;;;MCCY,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAAmD,kBAA0C,EAAA;AAA1C,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAwB;;KAE5F;AAED,IAAA,SAAS,CAAC,KAAU,EAAE,IAAA,GAA0B,QAAQ,EAAA;;AACtD,QAAA,MAAM,QAAQ,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,kBAAkB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE,KAAI,KAAK,CAAC;AAE9D,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;SACT,CAAC,QAAQ,CAAC,CAAC;AAEZ,QAAA,OAAO,CAAG,EAAA,KAAK,CAAK,EAAA,EAAA,IAAI,KAAK,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,CAAC;KAC9D;;AAhBU,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBAChB,qBAAqB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;oHAD9B,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;iBAC9B,CAAA;;;8BAEc,MAAM;+BAAC,qBAAqB,CAAA;;;;MCsE9B,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAjD7B,uBAAuB;QACvB,6BAA6B;QAC7B,4BAA4B;QAC5B,4BAA4B;QAC5B,0BAA0B;QAC1B,+BAA+B;QAC/B,2BAA2B;QAC3B,yBAAyB;QACzB,4BAA4B;QAC5B,gCAAgC;QAChC,oCAAoC;QACpC,2BAA2B;QAC3B,+BAA+B;QAC/B,yBAAyB;QACzB,wBAAwB;QACxB,uBAAuB;QACvB,sBAAsB;QACtB,oBAAoB;QACpB,0BAA0B;QAC1B,yBAAyB;QACzB,wBAAwB;AACxB,QAAA,uBAAuB,aAGvB,uBAAuB;QACvB,6BAA6B;QAC7B,4BAA4B;QAC5B,4BAA4B;QAC5B,0BAA0B;QAC1B,+BAA+B;QAC/B,2BAA2B;QAC3B,yBAAyB;QACzB,4BAA4B;QAC5B,gCAAgC;QAChC,oCAAoC;QACpC,2BAA2B;QAC3B,+BAA+B;QAC/B,yBAAyB;QACzB,wBAAwB;QACxB,uBAAuB;QACvB,sBAAsB;QACtB,oBAAoB;QACpB,0BAA0B;QAC1B,yBAAyB;QACzB,wBAAwB;QACxB,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAId,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAFpB,SAAA,EAAA,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAA,CAAA,CAAA;2FAExB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAnDhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,uBAAuB;wBACvB,6BAA6B;wBAC7B,4BAA4B;wBAC5B,4BAA4B;wBAC5B,0BAA0B;wBAC1B,+BAA+B;wBAC/B,2BAA2B;wBAC3B,yBAAyB;wBACzB,4BAA4B;wBAC5B,gCAAgC;wBAChC,oCAAoC;wBACpC,2BAA2B;wBAC3B,+BAA+B;wBAC/B,yBAAyB;wBACzB,wBAAwB;wBACxB,uBAAuB;wBACvB,sBAAsB;wBACtB,oBAAoB;wBACpB,0BAA0B;wBAC1B,yBAAyB;wBACzB,wBAAwB;wBACxB,uBAAuB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,uBAAuB;wBACvB,6BAA6B;wBAC7B,4BAA4B;wBAC5B,4BAA4B;wBAC5B,0BAA0B;wBAC1B,+BAA+B;wBAC/B,2BAA2B;wBAC3B,yBAAyB;wBACzB,4BAA4B;wBAC5B,gCAAgC;wBAChC,oCAAoC;wBACpC,2BAA2B;wBAC3B,+BAA+B;wBAC/B,yBAAyB;wBACzB,wBAAwB;wBACxB,uBAAuB;wBACvB,sBAAsB;wBACtB,oBAAoB;wBACpB,0BAA0B;wBAC1B,yBAAyB;wBACzB,wBAAwB;wBACxB,uBAAuB;AACxB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;iBACpC,CAAA;;;MClDY,yBAAyB,CAAA;;sHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;uHAAzB,yBAAyB,EAAA,YAAA,EAAA,CAZrB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEzC,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;AACjB,QAAA,oBAAoB,mCAGZ,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAE3B,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAX3B,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,oBAAoB;YACpB,eAAe,CAAC,QAAQ,EAAE;SAC3B,CAAA,EAAA,CAAA,CAAA;2FAGU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAbrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,gBAAgB;wBAChB,iBAAiB;wBACjB,iBAAiB;wBACjB,oBAAoB;wBACpB,eAAe,CAAC,QAAQ,EAAE;AAC3B,qBAAA;oBACD,OAAO,EAAE,CAAC,4BAA4B,CAAC;iBACxC,CAAA;;;MCVY,2BAA2B,CAAA;AAGtC,IAAA,WAAA,CAAoB,MAAc,EAAA;AAAd,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAF1B,QAAA,IAAO,CAAA,OAAA,GAAgC,IAAI,CAAC;QAGlD,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAEO,IAAI,GAAA;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,MAAM;AACf,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAU,KAAI;YACpB,OAAO,KAAK,YAAY,eAAe,CAAC;AAC1C,SAAC,CAAC,CACH;aACA,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;QAEL,IAAI,CAAC,MAAM,CAAC,MAAM;AACf,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAU,KAAI;YACpB,QACE,KAAK,YAAY,aAAa;AAC9B,gBAAA,KAAK,YAAY,eAAe;gBAChC,KAAK,YAAY,gBAAgB,EACjC;AACJ,SAAC,CAAC,CACH;aACA,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;KACN;IAED,IAAI,GAAA;;QACF,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,IAAI,GAAA;;QACF,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,aAAa,GAAA;;QACX,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,EAAE,KAAI,IAAI,CAAC;KAC7C;;wHA7CU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA;2FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCJY,6BAA6B,CAAA;AAGxC,IAAA,WAAA,CAAoB,kBAA+C,EAAA;AAA/C,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAA6B;AAFnE,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;;KAIxB;IAED,QAAQ,GAAA;;AACN,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,kBAAkB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,CAAC,OAAgB,KAAI;AACvE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACzB,SAAC,CAAC,CAAC;KACJ;;0HAXU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAQ,2BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,8DCT1C,+HAGA,EAAA,MAAA,EAAA,CAAA,wFAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDMa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;+BACE,wBAAwB,EAAA,aAAA,EAGnB,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+HAAA,EAAA,MAAA,EAAA,CAAA,wFAAA,CAAA,EAAA,CAAA;;;MEE1B,0BAA0B,CAAA;;uHAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAJtB,YAAA,EAAA,CAAA,6BAA6B,CAClC,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,6BAA6B,CAAA,EAAA,CAAA,CAAA;wHAE5B,0BAA0B,EAAA,OAAA,EAAA,CAH5B,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAGZ,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,6BAA6B,CAAC;oBAC7C,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,6BAA6B,CAAC;iBACzC,CAAA;;;MCCY,uBAAuB,CAAA;AANpC,IAAA,WAAA,GAAA;AAOW,QAAA,IAAM,CAAA,MAAA,GAA6B,IAAI,CAAC;KAOlD;IAHC,OAAO,GAAA;AACL,QAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KAC5B;;oHAPU,uBAAuB,EAAA,IAAA,EAAA,EAAA,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,qHCTpC,kxBAiBe,EAAA,MAAA,EAAA,CAAA,4yBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,WAAA,EAAAT,IAAA,CAAA,aAAA,EAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDRF,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,2BAA2B,EAAA,aAAA,EAGtB,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,kxBAAA,EAAA,MAAA,EAAA,CAAA,4yBAAA,CAAA,EAAA,CAAA;8BAG5B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEWK,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,YAAA,EAAA,CAXhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAEpC,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;AACjB,QAAA,iBAAiB,mCAGT,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAEtB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAVtB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,eAAe,CAAC,QAAQ,EAAE;SAC3B,CAAA,EAAA,CAAA,CAAA;2FAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,gBAAgB;wBAChB,iBAAiB;wBACjB,iBAAiB;wBACjB,eAAe,CAAC,QAAQ,EAAE;AAC3B,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;iBACnC,CAAA;;;MCdY,uBAAuB,CAAA;AAWlC,IAAA,WAAA,CACU,YAA0C,EAAA;AAA1C,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA8B;AAX3C,QAAA,IAAM,CAAA,MAAA,GAA6B,IAAI,CAAC;AAIjD,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAElB,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;AAEd,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAK,GAAG,CAAC;;KAMrC;IAED,QAAQ,GAAA;;AACN,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC;KACxC;IAED,OAAO,GAAA;;QACL,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAb,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAI,EAAY,IAAI,CAAC,SAAS,CAAC,CAAC;KACjC;AAED,IAAA,sBAAsB,CAAC,QAAgB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC3B;;oHA/BU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,CAAA,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,qHCRpC,06BAyBe,EAAA,MAAA,EAAA,CAAA,0qCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,aAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,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,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,WAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;2FDjBF,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,06BAAA,EAAA,MAAA,EAAA,CAAA,0qCAAA,CAAA,EAAA,CAAA;mHAK5B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEOK,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,YAAA,EAAA,CAXhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAEpC,YAAY;QACZ,kBAAkB;QAClB,uBAAuB;QACvB,kBAAkB;AAClB,QAAA,iBAAiB,mCAGT,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAEtB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAVtB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,kBAAkB;YAClB,uBAAuB;YACvB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe,CAAC,QAAQ,EAAE;SAC3B,CAAA,EAAA,CAAA,CAAA;2FAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,uBAAuB;wBACvB,kBAAkB;wBAClB,iBAAiB;wBACjB,eAAe,CAAC,QAAQ,EAAE;AAC3B,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;iBACnC,CAAA;;;ACjBD;AACA;AACgB,SAAA,mBAAmB,CAAC,MAAM,GAAG,IAAI,EAAA;AAC/C,IAAA,OAAO,CACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,KAChB;AACtB,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAExC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAS,GAAG,IAAW,EAAA;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,MAAM,EAAE;gBACV,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACnD,gBAAA,aAAa,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;AACpC,oBAAA,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvB,IAAI,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE;AAC5C,wBAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9D,qBAAA;AACH,iBAAC,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,GAAG,GAAG,0CAA0C,CAAC;AACtD,gBAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAC9B,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,gBAAA,IAAI,CAAC,EAAE,GAAG,2BAA2B,CAAC;AACtC,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAK;AACjB,oBAAA,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC9B,iBAAC,CAAC;AACF,gBAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5D,aAAA;AAAM,iBAAA;gBACL,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACnD,gBAAA,aAAa,CAAC,OAAO,CAAC,CAAC,MAAW,KAAI;AACpC,oBAAA,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvB,IAAI,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE;AAC5C,wBAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9D,qBAAA;AACH,iBAAC,CAAC,CAAC;AAEH,gBAAA,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7B,aAAA;AACH,SAAC,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AACJ;;SCrCgB,+BAA+B,GAAA;IAC7C,OAAO,CAAC,MAAW,KAAI;AACrB,QAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;YACxD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,GAAG,KAAK,aAAa,EAAE;gBACzB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,IAAW,EAAA;oBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,oBAAA,IAAIU,wCAAwD,CAAC,OAAO,CAAC,EAAE;AACrE,wBAAA,OAAO,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAC9D,qBAAA;oBACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,oBAAA,OAAO,MAAM,CAAC;AAChB,iBAAC,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;AAChB,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,gBAAgB,CAAC,EAAU,EAAA;AACzC,IAAA,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACxC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;YACjD,MAAM,MAAM,GAAG,IAAI;AAChB,iBAAA,GAAG,CAAC,CAAC,CAAM,KAAI;AACd,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAC,CAAC;AACD,iBAAA,IAAI,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,CAAS,MAAA,EAAA,YAAY,CAAI,CAAA,EAAA,MAAM,CAAQ,KAAA,EAAA,CAAC,CAAE,CAAA,CAAC,CAAC;AACxD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AACJ,CAAC;SAEe,4BAA4B,GAAA;AAC1C,IAAA,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAExC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;AAC1B,YAAA,IAAIA,wCAAwD,CAAC,OAAO,CAAC,EAAE;AACrE,gBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;AACjE,aAAA;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,oBAAoB,CAAC,MAAmC,EAAA;AACtE,IAAA,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAExC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;AAC1B,YAAA,IAAIA,wCAAwD,CAAC,OAAO,CAAC,EAAE;AACrE,gBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;AAChE,gBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,8BAA8B,CAAC,MAAM,CAAC,CAAC;AAC7F,aAAA;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,yBAAyB,CAAC,MAAmC,EAAA;AAC3E,IAAA,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAExC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;AAC1B,YAAA,IAAIA,wCAAwD,CAAC,OAAO,CAAC,EAAE;AACrE,gBAAA,MAAM,WAAW,GACf,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,8BAA8B,EAAE,CAAC;gBACxF,IAAI,YAAY,GAAG,IAAI,CAAC;AACxB,gBAAA,IAAI,WAAW,EAAE;AACf,oBAAA,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;AACzC,iBAAA;AACD,gBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;gBAChE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,wBAAwB,0CAAE,8BAA8B,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC9E,MAAM,CACN,GAAC,YAAY,IAAI,EAAE,EAAC,CACvB,CAAC;AACJ,aAAA;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AACJ,CAAC;SAEe,yBAAyB,CACvC,IAAY,EACZ,WAAoB,EACpB,MAAoC,EAAA;AAEpC,IAAA,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAExC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;AAC1B,YAAA,IAAIA,wCAAwD,CAAC,OAAO,CAAC,EAAE;AACrE,gBAAA,IAAI,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;AACpD,oBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;AAChE,oBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,8BAA8B,CACjF,MAAM,CACP,CAAC;AACH,iBAAA;AACD,gBAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,gBAAgB,CAAC,wBAAwB,CAAC,wBAAwB,CACzEC,mBAAmC,CAAC;oBAClC,IAAI;oBACJ,WAAW;AACZ,iBAAA,CAAC,CACH,CAAC;AACH,aAAA;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AACJ;;AC9JA;SAOgB,wBAAwB,CACtC,IAAY,EACZ,WAAoB,EACpB,MAAoC,EAAA;AAEpC,IAAA,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAExC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;AAC1B,YAAA,IAAID,wCAAwD,CAAC,OAAO,CAAC,EAAE;AACrE,gBAAA,IAAI,WAAW,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;AACjD,oBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;AAChE,oBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,8BAA8B,CACjF,MAAM,CACP,CAAC;AACH,iBAAA;gBACD,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,wBAAwB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,2BAA2B,CAC3E,MAAA,CAAA,MAAA,CAAA,EAAA,EAAAE,sBAAsC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA,CAC5D,CAAC;AACJ,aAAA;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AACJ;;ACtCA;SAOgB,sBAAsB,CACpC,IAAY,EACZ,WAAoB,EACpB,MAAoC,EAAA;AAEpC,IAAA,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAExC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;AAC1B,YAAA,IAAIF,wCAAwD,CAAC,OAAO,CAAC,EAAE;AACrE,gBAAA,IAAI,WAAW,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;AACjD,oBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;AAChE,oBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,wBAAwB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,8BAA8B,CACjF,MAAM,CACP,CAAC;AACH,iBAAA;gBACD,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,wBAAwB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,yBAAyB,CACzE,MAAA,CAAA,MAAA,CAAA,EAAA,EAAAG,oBAAoC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA,CAC1D,CAAC;AACJ,aAAA;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AACJ;;MCjCa,0BAA0B,CAAA;AAHvC,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAO,CAAC;AAEtB,QAAA,IAAU,CAAA,UAAA,GAAG,SAAS,CAAC;AAEhC,QAAA,IAAO,CAAA,OAAA,GAAG,GAAG,CAAC;KA6BrD;AA1BC,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,cAAc,EAAE,CAAC;AACtB,QAAA,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;AAGM,IAAA,WAAW,CAAC,GAAQ,EAAA;AACzB,QAAA,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,cAAc,EAAE,CAAC;AACtB,QAAA,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;KACpB;AAGM,IAAA,MAAM,CAAC,GAAQ,EAAA;AACpB,QAAA,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,cAAc,EAAE,CAAC;AACtB,QAAA,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,YAAY,CAAC;AACpC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;KACF;;uHAjCU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;iBAChC,CAAA;8BAEW,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAEwC,UAAU,EAAA,CAAA;sBAAxD,WAAW;uBAAC,wBAAwB,CAAA;gBAEC,OAAO,EAAA,CAAA;sBAA5C,WAAW;uBAAC,eAAe,CAAA;gBAG5B,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAS7B,WAAW,EAAA,CAAA;sBADjB,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAS9B,MAAM,EAAA,CAAA;sBADZ,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCnBrB,uBAAuB,CAAA;IASlC,WAAoB,CAAA,UAAsB,EAAU,QAAkB,EAAA;AAAlD,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAJ9D,QAAA,IAAY,CAAA,YAAA,GAAW,KAAK,CAAC;AAE7B,QAAA,IAAa,CAAA,aAAA,GAAW,OAAO,CAAC;QAGtC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC7D,gBAAgB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AAChE,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;AACzD,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,MAAM,CAAC,KAAU,EAAA;AACvB,QAAA,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;KAC3F;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KAC5C;AAGD,IAAA,OAAO,CAAC,KAAU,EAAA;QAChB,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACpC;;oHAjCU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,SAAA,EAFvB,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEd,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,SAAS,EAAE,CAAC,YAAY,CAAC;iBAC1B,CAAA;wHAgCC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC,CAAA;;;MCvBnC,oBAAoB,CAAA;IAK/B,WAA4B,CAAA,GAAe,EAAU,SAAoB,EAAA;AAA7C,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;AAAU,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;;KAExE;AAGD,IAAA,SAAS,CAAC,GAAkB,EAAA;;AAC1B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACnE,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAd,IAAI,EAAa,KAAK,CAAC,CAAC;QACxB,GAAG,CAAC,cAAc,EAAE,CAAC;KACtB;IAGD,MAAM,GAAA;;AACJ,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAb,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAI,CAAa,CAAC;KACnB;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;KACpE;AAED,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KAC5E;;iHApCU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,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,EAXpB,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAK;;AAE3B,gBAAA,OAAO,oBAAoB,CAAC;AAC9B,aAAC,CAAC;AACF,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,MAAK;;AAE3B,gCAAA,OAA4B,oBAAA,CAAA;AAC9B,6BAAC,CAAC;AACF,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;iBACF,CAAA;;;8BAMc,IAAI;;yBAKjB,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBASjC,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC3BrB,kCAAkC,CAAA;AAC7C,IAAA,WAAA,CAAoB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;KAEzC;AAGD,IAAA,aAAa,CAAC,KAAY,EAAA;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;AAExD,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,cAAc,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACzF,IAAI,WAAW,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;YACvD,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,SAAA;KACF;;+HAbU,kCAAkC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mHAAlC,kCAAkC,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAH9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;iBACxC,CAAA;iGAOC,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCLtB,6BAA6B,CAAA;AACxC,IAAA,WAAA,CAAoB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;KAEzC;AAGD,IAAA,aAAa,CAAC,KAAY,EAAA;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;AAExD,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACpF,IAAI,WAAW,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;YACvD,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,SAAA;KACF;;0HAbU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8GAA7B,6BAA6B,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;iBACnC,CAAA;iGAOC,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCTtB,eAAe,GAAG,IAAI,cAAc,CAAC,iBAAiB,EAAE;MAkCxD,gCAAgC,CAAA;IAC3C,IACI,OAAO,CAAC,OAAgC,EAAA;AAC1C,QAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI;AACzC,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,SAAC,CAAC,CAAC;KACJ;;6HANU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAVhC,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAK;;AAE3B,gBAAA,OAAO,gCAAgC,CAAC;AAC1C,aAAC,CAAC;AACH,SAAA;AACF,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEU,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAZ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAE,UAAU,CAAC,MAAK;;AAE3B,gCAAA,OAAwC,gCAAA,CAAA;AAC1C,6BAAC,CAAC;AACH,yBAAA;AACF,qBAAA;iBACF,CAAA;8BAGK,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,yBAAyB,CAAA;;;MCRrB,yBAAyB,CAAA;AAsDpC,IAAA,WAAA,CACW,GAAqB,EACrB,GAAqB,EACrB,EAAc,EACd,IAAY,EACZ,iBAAmC,EACnC,GAAsB,EACtB,OAAgB,EACjB,sBAA8C,EAC7C,MAAc,EACsB,OAAgC,EAAA;AATpE,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;AACrB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;AACrB,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AACd,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AACZ,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AACnC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACtB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AACjB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;AAC7C,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACsB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;AAlC5C,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEjB,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAG,CAAA,GAAA,GAAe,KAAK,CAAC;AAEhB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAUlD,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAE1B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAgBtC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACjC,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAU,KAAI;YACpB,OAAO,KAAK,YAAY,eAAe,CAAC;AAC1C,SAAC,CAAC,CACH;aACA,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;AAxED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,IACI,OAAO,CAAC,IAAa,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC3B,SAAA;KACF;AAMD,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAED,IACI,MAAM,CAAC,MAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;KACvB;AAiDO,IAAA,aAAa,CAAC,CAAc,EAAA;;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;YACjB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,eAAe,CAAC,GAAgB,EAAA;;AAC9B,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;SAC3E,CAAC;AACF,QAAA,MAAM,OAAO,GAAG,CAAC,GAAQ,KAAuB;YAC9C,OAAO;AACL,gBAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;aAC3E,CAAC;AACJ,SAAC,CAAC;AACF,QAAA,MAAM,OAAO,GAAG,CAAC,GAAQ,KAAuB;YAC9C,OAAO;AACL,gBAAA,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ;aAC3E,CAAC;AACJ,SAAC,CAAC;AACF,QAAA,MAAM,GAAG,GAAG,CAAC,IAAS,KAAuB;YAC3C,OAAO;AACL,gBAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;aAC3E,CAAC;AACJ,SAAC,CAAC;AACF,QAAA,MAAM,GAAG,GAAG,CAAC,IAAS,KAAuB;YAC3C,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;aACvE,CAAC;AACJ,SAAC,CAAC;AACF,QAAA,MAAM,IAAI,GAAG,CAAC,IAAS,EAAE,KAAU,KAAuB;YACxD,OAAO;AACL,gBAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK;aACvE,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,MAAM,GAAG,GAAG,GAAG,KAAI,MAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAA,IAAI,IAAI,CAAC,GAAG,CAAC;QACjD,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,SAAA;QACD,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,SAAA;QACD,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,YAAA,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5B,SAAA;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,SAAA;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,SAAA;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,SAAA;QACD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,SAAA;QACD,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,SAAA;QACD,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,SAAA;QACD,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,SAAA;QACD,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvE,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;IAED,aAAa,CACX,MAAgD,EAChD,OAAiC,EAAA;;AAEjC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB;AAChD,aAAA,mBAAmB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;aAC1C,QAAQ,CAAC,IAAI,CAAC;aACd,iBAAiB,CAAC,IAAI,CAAC;AACvB,aAAA,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,GAAG,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACvC,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACxD,CAAC;AACF,YAAA,aAAa,EAAE,kCAAkC;AACjD,YAAA,KAAK,EAAE,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,KAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,SAAS;AAC5F,YAAA,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC1D,YAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI;gBACF,IAAI,gBAAgB,IAAI,MAAM,EAAE;AAC9B,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,KAAI;AAC7D,wBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACnC,qBAAC,CAAC;yBACC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,iBAAA;AACF,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KAC/B;;AA5MU,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,uRAgE1B,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAhEd,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,SAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,EAAA,UAAA,CAAA,EAAA,KAAA,EAAA,CAAA,uBAAA,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,qBAAA,EAAA,KAAA,CAAA,EAAA,WAAA,EAAA,CAAA,6BAAA,EAAA,aAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;iBAC/B,CAAA;;;8BAiEI,MAAM;+BAAC,eAAe,CAAA;;8BAAG,QAAQ;;yBAxDhC,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,kBAAkB,CAAA;gBAUQ,MAAM,EAAA,CAAA;sBAAtC,KAAK;uBAAC,wBAAwB,CAAA;gBAS3B,MAAM,EAAA,CAAA;sBADT,KAAK;uBAAC,wBAAwB,CAAA;gBAKI,QAAQ,EAAA,CAAA;sBAA1C,KAAK;uBAAC,0BAA0B,CAAA;gBAEE,QAAQ,EAAA,CAAA;sBAA1C,KAAK;uBAAC,0BAA0B,CAAA;gBAED,KAAK,EAAA,CAAA;sBAApC,KAAK;uBAAC,uBAAuB,CAAA;gBAEA,GAAG,EAAA,CAAA;sBAAhC,KAAK;uBAAC,qBAAqB,CAAA;gBAEU,WAAW,EAAA,CAAA;sBAAhD,KAAK;uBAAC,6BAA6B,CAAA;gBAEH,MAAM,EAAA,CAAA;sBAAtC,KAAK;uBAAC,wBAAwB,CAAA;;;AClEjC,MAAM,KAAK,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,4BAA4B,EAAE,KAAK,EAAgC,CAAC,CAAC;AACjG,MAAM,SAAS,GAAG,YAAY,CAC5B,gCAAgC,EAChC,KAAK,EAA8B,CACpC,CAAC;AACF,MAAM,aAAa,GAAG,YAAY,CAAC,oCAAoC,EAAE,KAAK,EAAiB,CAAC,CAAC;AACjG,MAAM,SAAS,GAAG,YAAY,CAC5B,gCAAgC,EAChC,KAAK,EAA8B,CACpC;;;;;;;;;;;;;;;;ACXM,MAAM,aAAa,GAAG,CAAC,IAAc,KAAI;IAC9C,OAAO,CAAC,OAA2B,KAAwB;AACzD,QAAA,OAAO,CAAC,KAAK,EAAE,MAAM,KAAI;YACvB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5C,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,IAAI,IAAI,GAAQ,IAAI,CAAC;gBACrB,IAAI;oBACF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;oBACpC,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,wBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;AACrD,wBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;4BAC3B,IAAI,KAAK,GAAQ,IAAI,CAAC;4BACtB,IAAI,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,GAAG,CAAC,EAAE;AACvB,gCAAA,KAAK,GAAG;oCACN,CAAC,GAAG,GAAG,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAG,GAAG,CAAC;iCAC3B,CAAC;AACH,6BAAA;AAED,4BAAA,IAAI,GACC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACJ,EAAA,KAAK,CACT,CAAC;AACJ,yBAAC,CAAC,CAAC;AACJ,qBAAA;AAED,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;AACV,oBAAA,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACtC,oBAAA,OAAO,YAAY,CAAC;AACrB,iBAAA;AACF,aAAA;YAED,IAAI,IAAI,GAAQ,IAAI,CAAC;YACrB,IAAI;AACF,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AAC3B,oBAAA,IAAI,GACC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,EAAA,CACzB,CAAC;AACJ,iBAAC,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,oBAAA,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,iBAAA;AACF,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACvC,aAAA;AAED,YAAA,OAAO,YAAY,CAAC;AACtB,SAAC,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;;;;;;;ACjDM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AASvC,MAAM,OAAO,GAAoC,mBAAmB,CAAmB;AAC5F,IAAA,QAAQ,EAAE,CAAC,IAAsB,KAAI;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AACF,CAAA,CAAC,CAAC;AAEI,MAAM,YAAY,GAAU,OAAO,CAAC,eAAe,CAAC;AACzD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA;AACD,IAAA,KAAK,EAAE,IAAI;AACZ,CAAA,CAAC,CAAC;AAEI,MAAM,OAAO,GAAG,aAAa,CAClC,YAAY,EACZ,EAAE,CAACC,KAA8B,EAAE,CAAC,KAAU,KAAI;AAChD,IAAA,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC,CAAC,EACF,EAAE,CAACC,MAA+B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAI;IACpD,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAChC,KAAK,CAAA,CACR,CAAC;AACL,CAAC,CAAC,EACF,EAAE,CAACC,aAAsC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAI;IAC3D,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CACR,EAAA,EAAA,OAAO,EACF,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,OAAO,CACb,EAAA,MAAM,CAAC,IAAI,CAEhB,EAAA,CAAA,CAAA;AACJ,CAAC,CAAC,EACF,EAAE,CAACC,SAAkC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAI;AACvD,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,IAAA,OAAO,OAAO,CAAC,SAAS,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACjB,MAAM,CAAC,IAAI,CAAA,EAAA,EAAE,QAAQ,EAAA,CAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAErB,KAAK,CAAA,CAEX,CAAC;AACJ,CAAC,CAAC,EACF,EAAE,CAACC,SAAkC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAI;AACvD,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IACjC,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC,CACH,CAAC;AAEK,MAAM,aAAEC,WAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;ACvDpF,MAAM,WAAW,GAAG,qBAAqB,CAC9CC,UAAwC,CACzC,CAAC;AAEK,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,EAAEC,WAAuC,CAAC,CAAC;AAEvF,MAAM,MAAM,GAAG,CAAC,KAA2B,KAAI;AACpD,IAAA,OAAO,cAAc,CACnB,SAAS,EACT,CAAC,QAA4B,KAAkC;AAC7D,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAmB,KAAI;AAC3C,YAAA,OAAO,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;AACvC,SAAC,CAAC,CAAC;AACL,KAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,MAAK;AAChC,IAAA,OAAO,cAAc,CACnB,WAAW,EACX,CAAC,KAAY,KAAS;QACpB,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,KAAC,CACF,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;MC9BY,IAAI,CAAA;AASf,IAAA,WAAA,CAAY,IAAU,EAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,OAAO,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,SAAS,CAAC;KAClC;AACF,CAAA;MAEY,cAAc,CAAA;IAGlB,SAAS,CACd,IAAY,EACZ,cAGC,EAAA;AAED,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC;QACzB,IAAI,IAAI,GAAS,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,QAAA,IAAI,IAAI,IAAI,cAAc,KAAI,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,SAAS,CAAA,EAAE;AAC7C,YAAA,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC;YACpC,IAAI,GAAG,IAAI,IAAI,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACV,IAAI,CACP,EAAA,EAAA,IAAI,EAAE,CAAG,EAAA,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA,CAAA,CACtC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF;;ACtCK,MAAO,mBAAoB,SAAQ,cAAc,CAAA;AACrD,IAAA,WAAA,CAAY,IAAU,EAAA;AACpB,QAAA,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,CAAC;KAC5B;AACF;;MCJY,6BAA6B,CAAA;IASxC,WACE,CAAA,GAAY,EACZ,WAAmC,EACnC,KAAW,EACX,WAAoB,KAAK,EAAA;AANnB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAQvB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI;AAChC,YAAA,IAAI,EAAE,EAAE;SACT,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;IAEO,wBAAwB,CAAC,MAAc,EAAE,EAAA;AAC/C,QAAA,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,GAAG,CAAC;AACtC,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AAChE,QAAA,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,QAAA,OAAO,CAAG,EAAA,GAAG,CAAI,CAAA,EAAA,IAAI,UAAU,CAAC;AAC9B,YAAA,UAAU,EAAE,MAAM;SACnB,CAAC;aACC,MAAM,CAAC,MAAM,CAAC;aACd,MAAM,CAAC,MAAM,CAAC;aACd,QAAQ,EAAE,EAAE,CAAC;KACjB;AAEO,IAAA,YAAY,CAAC,GAAW,EAAA;AAC9B,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AAC7B,QAAA,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAA,WAAW,KAAX,IAAA,IAAA,WAAW,uBAAX,WAAW,CAAE,IAAI,KAAI,EAAE,CAAC;QACjD,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,CAAA,EAAG,CAAC,qBAAqB,GAAG,GAAG,GAAG,GAAG,CAAQ,KAAA,EAAA,MAAM,IAAI,CAAC,CAAA,MAAA,EAAS,IAAI,IAAI,EAAE,EAAE,CAAC;KACtF;IAEM,yBAAyB,GAAA;QAC9B,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AACtC,QAAA,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;AAC1B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;AACvB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,CAAA,EAAG,OAAO,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC;KAClD;AACF;;ACvBD,MAAM,mBAAmB,cAAc,CAAA;AACrC,IAAA,WAAA,CAAY,IAAU,EAAA;AACpB,QAAA,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,CAAC;KAC5B;AACF,CAAA;MAEY,uBAAuB,CAAA;AAoElC,IAAA,WAAA,CACS,gBAAmC,EACnC,YAA2C,EAC3C,SAWN,EAAA;AAbM,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAmB;AACnC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA+B;AAC3C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAWf;AAjFK,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAErB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE1B,QAAA,IAAO,CAAA,OAAA,GAA2B,IAAI,CAAC;AAEvC,QAAA,IAAa,CAAA,aAAA,GAA2B,IAAI,CAAC;AAE7C,QAAA,IAAU,CAAA,UAAA,GAA2B,IAAI,CAAC;AAE1C,QAAA,IAAO,CAAA,OAAA,GAA2B,IAAI,CAAC;AAIvC,QAAA,IAAY,CAAA,YAAA,GAA+B,IAAI,CAAC;AAIhD,QAAA,IAAO,CAAA,OAAA,GAAkC,IAAI,CAAC;AAE9C,QAAA,IAAc,CAAA,cAAA,GAAyC,IAAI,CAAC;AAE5D,QAAA,IAAM,CAAA,MAAA,GAAkC,IAAI,CAAC;AAE7C,QAAA,IAAO,CAAA,OAAA,GAAkC,IAAI,CAAC;AAI9C,QAAA,IAAc,CAAA,cAAA,GAAiC,IAAI,CAAC;QAEpD,IAAA,CAAA,kBAAkB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAErE,IAAA,CAAA,gBAAgB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAA,CAAA,sBAAsB,GAAyB,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAE1E,IAAA,CAAA,qBAAqB,GAAyB,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzE,IAAA,CAAA,gBAAgB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAA,CAAA,iBAAiB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAEpE,IAAA,CAAA,4BAA4B,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAE/E,IAAA,CAAA,uBAAuB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1E,IAAA,CAAA,oBAAoB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAA,CAAA,aAAa,GAA2C,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AAEhF,QAAA,IAAU,CAAA,UAAA,GAAoC,IAAI,CAAC;AAInD,QAAA,IAAoB,CAAA,oBAAA,GAAa,MAAK;;AAEpC,YAAA,OAAO,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AACzE,SAAC,CAAC;AAQF,QAAA,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;QAkB1B,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAEO,UAAU,GAAA;;AAChB,QAAA,IAAI,MAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,EAAE;AAC1B,YAAA,MAAM,EAAE,kBAAkB,EAAE,GAAG,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,KAAI;AAClE,gBAAA,kBAAkB,EAAE,KAAK;aAC1B,CAAC;AAEF,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;AACzB,iBAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAU,KAAI;gBACpB,OAAO,KAAK,YAAY,eAAe,CAAC;AAC1C,aAAC,CAAC,EACF,SAAS,CAAC,MAAK;AACb,gBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AACzB,aAAC,CAAC,CACH;iBACA,SAAS,CAAC,MAAK;;AACd,gBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,kBAAkB,EAAE;AACzC,oBAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnE,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,iBAAA;AACH,aAAC,CAAC,CAAC;AACN,SAAA;KACF;AAEO,IAAA,sBAAsB,CAC5B,GAAwC,EACxC,WAAoB,EACpB,MAAe,EAAA;QAEf,IAAI,KAAK,GAAG,MAAM,CAAC;AAEnB,QAAA,IAAI,WAAW,EAAE;AACf,YAAA,KAAK,GAAG,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,WAAW,QAAQ,CAAC;AACzC,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,mBAAA,CAAqB,CAAC;AACvC,SAAA;QAED,IAAI,CAAC,MAAM,EAAE;;AAEX,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC1C,SAAA;AAAM,aAAA;YACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,EAAG,KAAK,CAAA,iBAAA,CAAmB,CAAC,WAAW,EAAE,CAAC,EAAE;AAC3D,gBAAA,KAAK,EAAE;AACL,oBAAA,YAAY,EAAE,GAAG;AAClB,iBAAA;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAEO,IAAA,+BAA+B,CAAC,IAAS,EAAA;QAC/C,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;AACL,gBAAA,aAAa,EAAE,KAAK;aACrB,CAAC;AACH,SAAA;AACD,QAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAC/B,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACpC;AAEO,IAAA,8BAA8B,CAAC,IAAS,EAAA;;QAC9C,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI;AACF,YAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC;AACpD,gBAAA,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,EAAE;AACtE,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACD,YAAA,OAAO,EAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,0CAAG,OAAO,CAAC,CAAA,CAAC;AAC9C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;;AAEX,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAEO,IAAA,8BAA8B,CAAC,GAA8B,EAAA;AACnE,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI,CAAC;AACtB,QAAA,OAAO,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,UAAU,CAAC;KACvC;IAEO,uBAAuB,GAAA;AAC7B,QAAA,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;AACrC,QAAA,IAAI,mBAAmB,EAAE;YACvB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC;YACxD,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,WAAW,CAAC,CAAC,IAAY,KAAI;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACtC,aAAC,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;AACpB,SAAA;KACF;AAED,IAAA,OAAO,CAAC,YAAmC,EAAA;QACzC,IAAI,CAAC,cAAc,GACd,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,CAAA,EACnB,YAAY,CAChB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;IAED,QAAQ,GAAA;;QACN,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,CAAC,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAA,CAAC;AAC7B,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,cAAc;AAAE,YAAA,OAAO,KAAK,CAAC;AACvC,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,cAAqB,CAAC;AAC5C,QAAA,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,MAAM,GAAG,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACd,IAAI,CAAC,cAAc,CACtB,EAAA,EAAA,IAAI,EACC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,KACP,MAAM,EAAE,MAAM,GAAG,CAAC,MAErB,CAAC;AACF,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,eAAe,CAAC,IAAS,EAAE,KAAa,EAAA;AACtC,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;AAC3B,QAAA,OAAO,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;KAC5C;AAED,IAAA,gBAAgB,CAAC,GAAW,EAAE,QAAQ,GAAG,KAAK,EAAA;AAC5C,QAAA,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;AACzC,QAAA,OAAO,IAAI,6BAA6B,CACtC,GAAG,EACH,cAAc,IAAI,EAAE,EACpB,OAAO,EACP,QAAQ,CACT,CAAC,yBAAyB,EAAE,CAAC;KAC/B;AAED,IAAA,KAAK,CAAC,SAAkB,EAAA;;AACtB,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;AAClC,gBAAA,IAAI,KAAK,EAAE;AACT,oBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,eAAe,CAAC,KAAK,CAAC,CAAC;AACxD,iBAAA;AACD,gBAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnE,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACvB;AAED,IAAA,OAAO,CACL,KAAoC,EACpC,KAAiC,EACjC,SA0BC,EAAA;;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,WAAW,CAAC,KAAK,IAAI,EAAE;AAC/C,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACpB,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAE1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,+BAA+B,CAAC,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,QAAQ,CAAC,CAAC;AACvE,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,gBAAgB,CAAC,CAAC;QAE1F,IACE,IAAI,CAAC,8BAA8B,CAAC,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,eAAe,CAAC;YAC/D,CAAC,IAAI,CAAC,aAAa;AACnB,YAAA,gBAAgB,EAChB;YACA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnE,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,aAAA;AAED,YAAA,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC;AACX,oBAAA,IAAI,EAAE;AACJ,wBAAA,MAAM,EAAE,CAAC;AACT,wBAAA,IAAI,EAAE,EAAE;AACT,qBAAA;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,IAAI,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,gBAAgB,EAAE;AAC/B,gBAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,gBAAgB,CAAC;gBACtD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACnC,aAAA;AAED,YAAA,IAAI,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,kBAAkB,EAAE;AACjC,gBAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,kBAAkB,CAAC;AAC1D,aAAA;AAED,YAAA,IAAI,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,iBAAiB,EAAE;gBAChC,IAAI,CAAC,mBAAmB,GAAG,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,iBAAiB,CAAC;gBACxD,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChC,aAAA;AAED,YAAA,IAAI,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE;gBACtB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC;AAE5C,gBAAA,OAAO,CAAC,OAAO;AACZ,qBAAA,IAAI,CACH,SAAS,CAAC,MAAK;oBACb,OAAO,IAAI,CAAC,aAAa,CAAC;AAC5B,iBAAC,CAAC,CACH;AACA,qBAAA,SAAS,CAAC,CAAC,GAAY,KAAI;AAC1B,oBAAA,IAAI,GAAG,EAAE;wBACP,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtC,wBAAA,IAAI,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE;4BACrD,IAAI,CAAC,OAAO,EAAE;AACZ,gCAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,MAAM,CAAC,CAAC;AAClD,6BAAA;AACF,yBAAA;AACF,qBAAA;AACH,iBAAC,CAAC,CAAC;AACN,aAAA;AAED,YAAA,SAAS,aAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,YAAY,EAAE,CAAC;AAC3B,SAAA;aAAM,IAAI,CAAC,gBAAgB,EAAE;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,MAAM,CAAC,CAAC;AAClD,SAAA;aAAM,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,WAAW,EAAE,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAC,CAAC;AAC9E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,MAAM,CAAC,CAAC;AAClD,SAAA;KACF;IAED,2BAA2B,GAAA;QACzB,OAAO;AACL,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC;KACH;AAOD,IAAA,aAAa,CAAC,IAAS,EAAE,IAAU,EAAE,QAAmB,EAAA;;QACtD,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QAEpC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,0CAAG,IAAI,CAAC,WAAW,EAAE,CAAE,CAAA,CAAA,EAAG,IAAI,CAAE,CAAA,EAAE,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CACrE,CAAC,IAAS,KAAI;AACZ,YAAA,IAAI,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAC,EACD,CAAC,GAAsB,KAAI;AACzB,YAAA,IAAI,QAAQ;AAAE,gBAAA,QAAQ,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,CAAC;AAClB,SAAC,CACF,CAAC;KACH;IAOK,cAAc,CAAC,IAAS,EAAE,MAAc,EAAA;;;AAC5C,YAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;AAClC,YAAA,IAAI,CAAC,gBAAgB;AAAE,gBAAA,OAAO,IAAI,CAAC;AACnC,YAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,UAAU,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,MAAM,CAAC,KAAI;AAChE,gBAAA,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK;aACtB,CAAC;YAEF,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAM,IAAI,CAAC;iBACnD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;;AAC9B,KAAA;IAED,OAAO,CAAC,gBAAkC,EAAE,IAAuB,EAAA;AACjE,QAAA,gBAAgB,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAK;YAClD,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;QACH,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAK;YACjE,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;AACtC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC,gBAAA,IAAI,EACC,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,MAAM,CACf;aACF,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEd,YAAA,IAAI,YAAY,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7C,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,aAAA;AACF,SAAA;KACF;IAED,cAAc,CAAC,IAAY,EAAE,QAAkB,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;AACtC,YAAA,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChB,aAAA;AACF,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;QACjB,IAAI,CAAC,sBAAsB,GAAG;YAC5B,KAAK,EAAE,CAAC,EAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,KAAK,CAAA;YACrB,IAAI,EAAE,CAAC,EAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,IAAI,CAAA;SACpB,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;AAED,IAAA,cAAc,CAAC,MAAc,EAAE,GAAW,EAAE,MAAW,EAAE,MAAY,EAAA;AACnE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAA,MAAA,CAAA,MAAA,CAAA,EACnB,WAAW,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACN,MAAM,CAAA,EAAA,EACT,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,EAAA,CAAA,EAEvC,mBAAmB,EAAE,OAAO,EAAA,EACzB,MAAM,CAAA,CACT,CAAC;KACJ;AAED,IAAA,SAAS,CAAC,KAA0B,EAAA;QAClC,IAAI,CAAC,YAAY,GAAA,MAAA,CAAA,MAAA,CAAA,EACf,IAAI,EAAE,IAAI,CAAC,MAAM,EAAA,EACd,KAAK,CACT,CAAC;KACH;IAED,mBAAmB,CAAC,UAAkB,EAAE,MAAe,EAAA;AACrD,QAAA,MAAM,MAAM,GAAQ;AAClB,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,GAAG,EAAE,kBAAkB;AACvB,YAAA,GAAG,EAAE,kBAAkB;SACxB,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC1C,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,QAAQ,CAAC,CAAC,CAAA,WAAA,EAAc,MAAM,CAAC,UAAU,CAAC,CAAE,CAAA,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACtE,SAAA;KACF;AACF,CAAA;AA5GC,UAAA,CAAA;AALC,IAAA,oBAAoB,CAAC;AACpB,QAAA,iBAAiB,EAAE;AACjB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA;KACF,CAAC;CAaD,EAAA,uBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAOD,UAAA,CAAA;AALC,IAAA,oBAAoB,CAAC;AACpB,QAAA,iBAAiB,EAAE;AACjB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA;KACF,CAAC;CAUD,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;;AC/ZG,MAAgB,kCAAmC,SAAQ,uBAAuB,CAAA;AAiBtF,IAAA,WAAA,CACE,gBAAkC,EAClC,YAA0C,EAC1C,MAKC,EAAA;AAED,QAAA,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAxB9B,QAAA,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;AAE5B,QAAA,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;AAEnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAEvD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAEtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAalE,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;KACvB;IAEe,OAAO,GAAA;;YACrB,IAAI;gBACF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;AACpD,gBAAA,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,OAAM,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,QAAQ,EAAE,CAAA,CAAC;AAEnE,gBAAA,IAAI,CAAC,KAAK;oBAAE,OAAO;AAEnB,gBAAA,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AAEhF,gBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA,CAAE,CAAC,CAAC;AACvD,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAEe,IAAA,QAAQ,CAAC,UAAkB,EAAA;;YACzC,IAAI;AACF,gBAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAC/B,gBAAA,KAAK,CAAC,QAAQ,CACZ,MAAM,CAAC,cAAc,CAAC;AACpB,oBAAA,UAAU,EAAE;AACV,wBAAA,MAAM,EAAE,UAAU;AACnB,qBAAA;AACF,iBAAA,CAAC,CACH,CAAC;AACH,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA,CAAE,CAAC,CAAC;AACxD,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAED;;;;;AAKG;AACO,IAAA,IAAI,CAAC,IAAoC,EAAA;QACjD,IAAI;AACF,YAAA,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AAEpC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnB,YAAA,IAAI,WAAW,EAAE;;gBAEf,MAAM,cAAc,GAA2B,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAE9E,IAAI,CAAC,KAAK,GAAG,CAAG,EAAA,KAAK,CAAG,EAAA,cAAc,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC;AAEvD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,aAAA;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;AAChB,SAAA;AAAC,QAAA,OAAO,CAAM,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,OAAO,CAAA,CAAE,CAAC,CAAC;AAClC,SAAA;KACF;AAED,IAAA,OAAO,CACL,KAAoC,EACpC,KAAiC,EACjC,SAAkC,EAAA;QAElC,IAAI,CAAC,QAAQ,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,WAAW,CAAC;QAEnC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC;AAEvD,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;KACxC;AAED;;;;AAIG;IACI,SAAS,CAAI,MAAS,EAAE,KAAc,EAAA;QAC3C,IAAI;AACF,YAAA,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAEtC,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,IAAI,CAAA,EAAG,YAAY,CAAA,CAAE,EAAE,MAAM,CAAC,CAAC;AACjE,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA,CAAE,CAAC,CAAC;AACzD,SAAA;KACF;AAED;;;;;AAKG;IACI,iBAAiB,CAAI,WAAc,EAAE,KAAc,EAAA;QACxD,IAAI;AACF,YAAA,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;YAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAG,EAAA,YAAY,CAAU,QAAA,CAAA,CAAC,EAAE;AACpD,gBAAA,KAAK,EAAE;oBACL,WAAW;AACZ,iBAAA;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA,CAAE,CAAC,CAAC;AACjE,SAAA;KACF;AACF;;AC3HK,MAAgB,8BAA+B,SAAQ,uBAAuB,CAAA;AAmBlF,IAAA,WAAA,CACE,gBAAkC,EAClC,YAA0C,EAC1C,MAMC,EAAA;AAED,QAAA,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAzB9B,QAAA,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;AAE5B,QAAA,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;AAEnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAEvD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAEtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAclE,QAAA,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AAEtC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;KAC3B;IAEe,OAAO,GAAA;;YACrB,IAAI;AACF,gBAAA,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;AAE9D,gBAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,OAAM,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,QAAQ,EAAE,CAAA,CAAC;gBAEhF,MAAM,UAAU,GAAG,CAAG,EAAA,SAAS,IAAI,YAAY,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,CAAC;AAEjE,gBAAA,IAAI,CAAC,KAAK;oBAAE,OAAO;AAEnB,gBAAA,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAElE,gBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAEjD,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;AAEzD,gBAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,kBAAkB,EAAE;AAChC,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC1E,iBAAA;AAED,gBAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,qBAAqB,EAAE;AACnC,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC7E,iBAAA;AAED,gBAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AACzE,iBAAA;AAED,gBAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,UAAU,EAAE;AACxB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAClE,iBAAA;AAED,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA,CAAE,CAAC,CAAC;AACvD,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;IAEe,QAAQ,GAAA;;YACtB,IAAI;gBACF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAC7C,gBAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,OAAM,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,QAAQ,EAAE,CAAA,CAAC;AAEhF,gBAAA,KAAK,CAAC,QAAQ,CACZ,MAAM,CAAC,cAAc,CAAC;AACpB,oBAAA,UAAU,EAAE,CAAG,EAAA,SAAS,IAAI,YAAY,CAAA,CAAA,EAAI,WAAW,CAAE,CAAA;AACzD,oBAAA,UAAU,EAAE;AACV,wBAAA,MAAM,EAAE,MAAM;AACf,qBAAA;AACF,iBAAA,CAAC,CACH,CAAC;AACH,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA,CAAE,CAAC,CAAC;AACxD,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAED;;;;;AAKG;AACO,IAAA,IAAI,CAAC,IAAoC,EAAA;QACjD,IAAI;AACF,YAAA,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AAEpC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnB,YAAA,IAAI,WAAW,EAAE;;gBAEf,MAAM,cAAc,GAA2B,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAE9E,IAAI,CAAC,KAAK,GAAG,CAAG,EAAA,KAAK,CAAG,EAAA,cAAc,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC;AAEvD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,aAAA;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;AAChB,SAAA;AAAC,QAAA,OAAO,CAAM,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,OAAO,CAAA,CAAE,CAAC,CAAC;AAClC,SAAA;KACF;AAED,IAAA,OAAO,CACL,KAAoC,EACpC,KAAiC,EACjC,SAAkC,EAAA;QAElC,IAAI,CAAC,QAAQ,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,WAAW,CAAC;QAEnC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC;AAEvD,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;KACxC;AAED;;;;AAIG;IACI,SAAS,CAAI,MAAS,EAAE,KAAc,EAAA;QAC3C,IAAI;AACF,YAAA,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAEtC,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,IAAI,CAAA,EAAG,YAAY,CAAA,CAAE,EAAE,MAAM,CAAC,CAAC;AACjE,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA,CAAE,CAAC,CAAC;AACzD,SAAA;KACF;AAED;;;;;AAKG;IACI,iBAAiB,CAAI,WAAc,EAAE,KAAc,EAAA;QACxD,IAAI;AACF,YAAA,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;YAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAG,EAAA,YAAY,CAAU,QAAA,CAAA,CAAC,EAAE;AACpD,gBAAA,KAAK,EAAE;oBACL,WAAW;AACZ,iBAAA;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA,CAAE,CAAC,CAAC;AACjE,SAAA;KACF;AACF;;ACtMD,IAAIC,QAAW,CAAC;AAEhB,MAAM,IAAI,GAAQ;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,iCAAiC;AACxC,QAAA,OAAO,EAAE,2CAA2C;AACrD,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,KAAK,EAAE,iCAAiC;AACxC,QAAA,OAAO,EAAE,0CAA0C;AACpD,KAAA;CACF,CAAC;MAKW,2BAA2B,CAAA;AACtC,IAAA,WAAA,GAAA;;KAEC;IAEO,aAAa,GAAA;AACnB,QAAAA,QAAM,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE;AACvC,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE;AACL,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,YAAY,EAAE,MAAM;AACpB,oBAAA,MAAM,EAAE,SAAS;AACjB,oBAAA,MAAM,EAAE,SAAS;AAClB,iBAAA;AACD,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,MAAM,EAAE;AACN,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,MAAM;AACjB,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACR,oBAAA,MAAM,EAAE;AACN,wBAAA,YAAY,EAAE,IAAI;AACnB,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CAAC;QACHA,QAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC7C,QAAAA,QAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KAChC;AAEM,IAAA,KAAK,CAAC,IAAY,EAAA;AACvB,QAAA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAG,IAAI,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,OAAO,CAAC,EAAE,GAAG,uBAAuB,CAAC;QAErC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACjD,QAAA,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;AACvB,QAAA,UAAU,CAAC,GAAG,GAAG,0BAA0B,CAAC;AAC5C,QAAA,UAAU,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;QAEvC,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACpD,QAAA,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC;AAC1B,QAAA,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAA,YAAY,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;QAEzC,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACtD,QAAA,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC;AAC9B,QAAA,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC;AACnC,QAAA,cAAc,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;QAE3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACnD,QAAA,WAAW,CAAC,EAAE,GAAG,SAAS,CAAC;AAC3B,QAAA,WAAW,CAAC,SAAS;AACnB,YAAA,wEAAwE,CAAC;AAE3E,QAAA,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAChC,QAAA,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAClC,QAAA,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACpC,QAAA,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAEjC,QAAA,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;AACrC,YAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEnC,QAAA,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;wHAxEU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA;2FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACEK,MAAO,0BAA2B,SAAQ,uBAAuB,CAAA;AAGrE,IAAA,WAAA,CACE,gBAAkC,EAClC,YAA0C,EAClC,gBAAkC,EAClC,2BAAwD,EAAA;AAEhE,QAAA,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAH9B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAA6B;AAN1D,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;KAS5B;AAEa,IAAA,4BAA4B,CAAC,WAAgB,EAAA;;;YACzD,MAAM,IAAI,GAAG,OAAO,CAAC;YAErB,MAAM,GAAG,GAAG,CAAG,EAAA,WAAW,CAAC,WAAW,CAAA,MAAA,EAAS,IAAI,CAAA,KAAA,CAAO,CAAC;YAE3D,MAAM,IAAI,GAAG,OAAM,MAAA,IAAI,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAM,GAAG,CAAE,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA,SAAS,EAAE,CAAA,CAAC;AAClF,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;AAC1B,KAAA;IAEa,oBAAoB,CAAC,WAAgB,EAAE,IAAY,EAAA;;;YAC/D,MAAM,IAAI,GAAG,OAAO,CAAC;YAErB,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,aAAa,EAAE;gBACrE,IAAI;gBACJ,IAAI;AACL,aAAA,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,OAAM,MAAA,IAAI,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAM,GAAG,CAAE,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA,SAAS,EAAE,CAAA,CAAC;AAClF,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;AAC1B,KAAA;IAEa,QAAQ,CAAC,WAAgB,EAAE,IAAY,EAAA;;;YACnD,IAAI;gBACF,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,aAAa,EAAE;AACrE,oBAAA,IAAI,EAAE,MAAM;oBACZ,IAAI;AACL,iBAAA,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,OAAM,MAAA,IAAI,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAM,GAAG,CAAE,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA,SAAS,EAAE,CAAA,CAAC;AAClF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAA,WAAA,CAAa,CAAC,CAAC;gBAClD,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,aAAA;;AACF,KAAA;IAEa,UAAU,CAAC,WAAgB,EAAE,IAAY,EAAA;;;YACrD,IAAI;gBACF,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,aAAa,EAAE;AACrE,oBAAA,IAAI,EAAE,QAAQ;oBACd,IAAI;AACL,iBAAA,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,OAAM,MAAA,IAAI,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAM,GAAG,CAAE,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA,SAAS,EAAE,CAAA,CAAC;AAClF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAA,WAAA,CAAa,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACxD,aAAA;;AACF,KAAA;IAEa,UAAU,CAAC,WAAgB,EAAE,IAAY,EAAA;;;YACrD,IAAI;gBACF,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,aAAa,EAAE;AACrE,oBAAA,IAAI,EAAE,QAAQ;oBACd,IAAI;AACL,iBAAA,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,OAAM,MAAA,IAAI,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAM,GAAG,CAAE,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA,SAAS,EAAE,CAAA,CAAC;AAClF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAA,WAAA,CAAa,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACxD,aAAA;;AACF,KAAA;IAEa,YAAY,CAAC,WAAgB,EAAE,IAAY,EAAA;;;YACvD,IAAI;gBACF,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,aAAa,EAAE;AACrE,oBAAA,IAAI,EAAE,UAAU;oBAChB,IAAI;AACL,iBAAA,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,OAAM,MAAA,IAAI,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAM,GAAG,CAAE,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA,SAAS,EAAE,CAAA,CAAC;AAClF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAA,WAAA,CAAa,CAAC,CAAC;gBACtD,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAC1D,aAAA;;AACF,KAAA;IAEa,YAAY,CAAC,WAAgB,EAAE,IAAY,EAAA;;;YACvD,IAAI;gBACF,MAAM,GAAG,GAAG,CAAG,EAAA,WAAW,CAAC,WAAW,CAAA,MAAA,EAAS,IAAI,CAAA,KAAA,CAAO,CAAC;gBAE3D,MAAM,IAAI,GAAG,OAAM,MAAA,IAAI,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAM,GAAG,CAAE,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA,SAAS,EAAE,CAAA,CAAC;AAClF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAA,WAAA,CAAa,CAAC,CAAC;AACtD,gBAAA,MAAM,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;AACtD,aAAA;;AACF,KAAA;AAEY,IAAA,KAAK,CAAC,WAAgB,EAAA;;;AACjC,YAAA,IAAI,IAAI,GAAG,CAAA,CAAA,EAAA,GAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,KAAI,OAAO,CAAC;YAEhD,IAAI;AACF,gBAAA,MAAM,EAAE,GAA2B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;gBAClF,IAAI,GAAG,CAAA,EAAE,KAAF,IAAA,IAAA,EAAE,KAAF,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAE,CAAE,MAAM,KAAI,IAAI,CAAC;AAC3B,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,aAAA;YAED,IAAI,IAAI,KAAK,OAAO,EAAE;gBACpB,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA;iBAAM,IAAI,IAAI,KAAK,OAAO,EAAE;gBAC3B,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA;AAAM,iBAAA;gBACL,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA;YAED,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACnC,OAAO;AACR,aAAA;AAED,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;AACjC,KAAA;IAEM,aAAa,CAAC,MAAuB,EAAE,IAAY,EAAA;;QACxD,IAAI;AACF,YAAA,MAAM,mBAAmB,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,YAAY,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAA,EAAG,IAAI,CAAA,CAAE,CAAC,CAAC;YAE9D,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,YAAA,IAAI,mBAAmB,EAAE;AACvB,gBAAA,IAAI,GAAG;AACL,oBAAA,QAAQ,EAAE,mBAAmB;iBAC9B,CAAC;AACH,aAAA;YAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACxD,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAA,WAAA,CAAa,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChD,SAAA;KACF;;uHA7JU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjB,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAkB,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAwB,2BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;2FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCNY,0BAA0B,CAAA;AAGrC,IAAA,WAAA,CACU,QAAkB,EAAA;AAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAHpB,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;KAMtB;AAEM,IAAA,KAAK,CACV,MAAuB,EACvB,eAAyC,EACzC,WAAgB,EAChB,YAAoB,EAAA;AAEpB,QAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;AACjC,QAAA,IAAI,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,OAAO,KAAI,WAAW,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACtE,UAAU,CAAC,IAAI,CAAC;AACd,gBAAA,aAAa,EAAE,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,oBAAoB;AAChD,gBAAA,WAAW,EAAE,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,kBAAkB;AAC5C,gBAAA,OAAO,EAAE,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,KAAK;AACvB,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,iBAAiB,EAAE,GAAG;AACtB,gBAAA,uBAAuB,EAAE,GAAG;AAC5B,gBAAA,GAAG,EAAE,CAAgB,aAAA,EAAA,YAAY,IAAI,WAAW,CAAC,WAAW,CAAE,CAAA;AAC9D,gBAAA,OAAO,EAAE,eAAe,KAAA,IAAA,IAAf,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,eAAe,CAAE,OAAO;AACjC,gBAAA,4BAA4B,EAAE,IAAI;AAClC,gBAAA,sBAAsB,EAAE,IAAI;AAC5B,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,qBAAqB,EAAE,IAAI;AAC3B,gBAAA,mBAAmB,EAAE,iBAAiB;AACvC,aAAA,CAAC,CAAC;YACH,UAAU,CAAC,2BAA2B,EAAE,CAAC;YAEzC,IAAI,WAAW,CAAC,wBAAwB,EAAE;gBACxC,WAAW,CAAC,IAAI,CAAC;AACf,oBAAA,WAAW,EAAE,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,kBAAkB;AAC5C,oBAAA,OAAO,EAAE,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,KAAK;AACvB,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,GAAG,EAAE,CAAgB,aAAA,EAAA,YAAY,IAAI,WAAW,CAAC,WAAW,CAAE,CAAA;AAC9D,oBAAA,OAAO,EAAE,eAAe,KAAA,IAAA,IAAf,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,eAAe,CAAE,OAAO;AACjC,oBAAA,4BAA4B,EAAE,IAAI;AAClC,oBAAA,sBAAsB,EAAE,IAAI;AAC5B,oBAAA,mBAAmB,EAAE,IAAI;AACzB,oBAAA,iBAAiB,EAAE,GAAG;AACtB,oBAAA,kBAAkB,EAAE,KAAK;AAC1B,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACpB,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;KACtC;AAEY,IAAA,kBAAkB,CAAC,WAAgB,EAAA;;YAC9C,IAAI;gBACF,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AACrE,gBAAA,MAAM,KAAK,GAA8B,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;AACvE,gBAAA,IAAI,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,oBAAoB,EAAE;AACzD,oBAAA,MAAM,EAAE,GAA2B,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;AAE9D,oBAAA,MAAM,IAAI,GAAG;wBACX,EAAE,EAAE,KAAK,CAAC,QAAQ;wBAClB,KAAK,EAAE,KAAK,CAAC,QAAQ;wBACrB,IAAI,EAAE,EAAE,CAAC,IAAI;wBACb,MAAM,EAAE,EAAE,CAAC,MAAM;qBAClB,CAAC;AAEF,oBAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAEzB,IAAI,WAAW,CAAC,wBAAwB,EAAE;AACxC,wBAAA,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACF,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;IAEM,gBAAgB,GAAA;QACrB,UAAU,CAAC,SAAS,EAAE,CAAC;KACxB;;uHAlFU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;2FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCAY,mCAAmC,CAAA;AAC9C,IAAA,WAAA,CACU,MAAsB,EACtB,OAAiB,EACjB,YAA+C,EAAA;AAF/C,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;AACtB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAU;AACjB,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmC;;KAExD;AAEO,IAAA,gBAAgB,CAAC,MAAgC,EAAA;;AACvD,QAAA,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QACvC,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,MAAK;YACjC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;AACvD,gBAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC5B,aAAA;AAAM,iBAAA;gBACL,YAAY,CAAC,QAAQ,EAAE,CAAC;AACxB,gBAAA,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACzC,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,MAAM,GAAA;AACZ,QAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;AACjC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ;AACjC,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,QAAiB,KAAI,EAAG,OAAO,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,MAAM,yBAAyB,GAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACnE,QAAA,yBAAyB,CAAC,SAAS,CAAC,MAAK;YACvC,OAAO,CAAC,cAAc,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,EAAE,CAAC;KAC1B;AAEM,IAAA,KAAK,CAAC,MAAgC,EAAA;AAC3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;;gIAvCU,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,EAAA,CAAA,iCAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,cAFlC,MAAM,EAAA,CAAA,CAAA;2FAEP,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAH/C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACVD;AAUM,MAAO,qCAAsC,SAAQ,uBAAuB,CAAA;AAGhF,IAAA,WAAA,CAAoB,gBAAkC,EAAA;AACpD,QAAA,KAAK,EAAE,CAAC;AADU,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAF9C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;QAKrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;KACjE;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,oBAAoB;AACtB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACnD,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,KAAK,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,OAAO,CAAC;AAChC,YAAA,IAAI,KAAK,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,CAAA,EAAA,EAAK,KAAK,CAAE,CAAA,EAAE,sDAAsD,CAAC,CAAC;gBAClF,OAAO,CAAC,GAAG,CAAC,CAAA,EAAA,EAAK,OAAO,CAAE,CAAA,EAAE,oBAAoB,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CACT,mDAAmD;oBACrD,qDAAqD;oBACrD,wDAAwD;oBACxD,gDAAgD;oBAChD,oDAAoD;oBACpD,gDAAgD;oBAChD,EAAE,EAAE,kCAAkC,CACrC,CAAC;AAEF,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC3B,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;AAChC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEM,KAAK,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;;kIApCU,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArC,qCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qCAAqC,cAFpC,MAAM,EAAA,CAAA,CAAA;2FAEP,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAHjD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCAY,iCAAiC,CAAA;IAC5C,WAAoB,CAAA,YAA0C,EAAU,MAAc,EAAA;AAAlE,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA8B;AAAU,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;KAErF;AAEO,IAAA,gBAAgB,CAAC,MAAgC,EAAA;AACvD,QAAA,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;YAC7B,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE3B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,4BAA4B,EAAE;AACnD,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA,CAAC,CAAC;aACJ,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;KACF;AAEM,IAAA,KAAK,CAAC,MAAgC,EAAA;AAC3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;KAC/B;;8HAtBU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjC,iCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,cAFhC,MAAM,EAAA,CAAA,CAAA;2FAEP,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAH7C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCCY,6BAA6B,CAAA;AAOxC,IAAA,WAAA,GAAA;QANiB,IAAA,CAAA,YAAY,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AAExE,QAAA,IAAK,CAAA,KAAA,GAA0B,SAAS,CAAC;AAEzC,QAAA,IAAQ,CAAA,QAAA,GAAyB,SAAS,CAAC;;KAIlD;IAEO,WAAW,GAAA;;AACjB,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,KAAK,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE,CAAC;AAEvC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAEO,QAAQ,CAAC,MAAuB,EAAE,WAAgB,EAAA;;AACxD,QAAA,IAAI,MAAM,EAAE;YACV,MAAM,KAAK,GAAG,wBAAwB,CAAC;AACvC,YAAA,MAAM,IAAI,GAAG;gBACX,KAAK;AACL,gBAAA,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,CAAG,EAAA,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA;aACzC,CAAC;AAEF,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,wBAAwB,EAAE,IAAI,EAAE;AACrE,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,MAAM,EAAE;AACN,wBAAA,KAAK,EAAE,MAAK,GAAG;AACf,wBAAA,IAAI,EAAE,MAAK,GAAG;AACd,wBAAA,IAAI,EAAE,MAAK,GAAG;AACd,wBAAA,KAAK,EAAE,CAAC,IAAS,KAAI;AACnB,4BAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;yBACxC;AACF,qBAAA;AACF,iBAAA,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3D,aAAA;AACF,SAAA;KACF;IAEM,KAAK,CAAC,cAAgD,EAAE,WAAgB,EAAA;QAC7E,IAAI,WAAW,CAAC,wBAAwB,EAAE;AACxC,YAAA,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAClC,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACrC,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAA;KACF;AAED,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;AAEM,IAAA,OAAO,CAAC,IAAY,EAAA;;QACzB,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,IAAI,CAAC,CAAC;AAErC,QAAA,OAAO,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;KAC5E;IAEM,SAAS,CAAC,GAAW,EAAE,IAAS,EAAA;;QACrC,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACjC;;0HAvEU,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;;;MCCY,yBAAyB,CAAA;AAC5B,IAAA,UAAU,CAAC,GAAW,EAAA;QAC5B,IAAI;YACF,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;AAC1C,YAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACpB,gBAAA,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AACjC,gBAAA,KAAK,EAAE,QAAQ;AAChB,aAAA,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;AACpB,YAAA,MAAM,CAAC,GAAG,GAAG,CAAkD,+CAAA,EAAA,GAAG,EAAE,CAAC;YACrE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAE1B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,GAAG,GAAG,CAAmD,gDAAA,EAAA,GAAG,EAAE,CAAC;AACtE,YAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;AACpB,YAAA,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;AACnB,YAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC9B,YAAA,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AACnC,YAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC7B,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC3C,SAAA;KACF;IAEY,KAAK,CAAC,MAAuB,EAAE,WAAgB,EAAA;;AAC1D,YAAA,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,MAAI,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,GAAG,CAAA,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAExF,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACtB,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;;sHAnCU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;2FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACFD,MAAM,MAAM,GAAQ,OAAO,CAAC;MAKf,4BAA4B,CAAA;AACvC,IAAA,WAAA,CAAoB,YAA+C,EAAA;AAA/C,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmC;;KAElE;AAEO,IAAA,gBAAgB,CAAC,MAAuB,EAAA;QAC9C,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,YAAA,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;AACpF,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,EAAE;AACzE,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE;AACtC,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,IAAI,EAAE;wBACJ,GAAG;wBACH,KAAK;wBACL,OAAO;wBACP,MAAM;wBACN,SAAS;AACV,qBAAA;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;KACF;AAEM,IAAA,KAAK,CAAC,MAAuB,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;KAC/B;;yHA3BU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iCAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;2FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACaK,MAAO,sBAAuB,SAAQ,uBAAuB,CAAA;IAKjE,WACE,CAAA,gBAAkC,EAC1B,0BAAsD,EACtD,0BAAsD,EACtD,+BAAgE,EAChE,mCAAwE,EACxE,qCAA4E,EAC5E,iCAAoE,EACpE,2BAAwD,EACxD,6BAA4D,EAC5D,sBAAiD,EACjD,4BAA0D,EAAA;QAElE,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAXhB,QAAA,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA4B;AACtD,QAAA,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA4B;AACtD,QAAA,IAA+B,CAAA,+BAAA,GAA/B,+BAA+B,CAAiC;AAChE,QAAA,IAAmC,CAAA,mCAAA,GAAnC,mCAAmC,CAAqC;AACxE,QAAA,IAAqC,CAAA,qCAAA,GAArC,qCAAqC,CAAuC;AAC5E,QAAA,IAAiC,CAAA,iCAAA,GAAjC,iCAAiC,CAAmC;AACpE,QAAA,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAA6B;AACxD,QAAA,IAA6B,CAAA,6BAAA,GAA7B,6BAA6B,CAA+B;AAC5D,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAA2B;AACjD,QAAA,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B,CAA8B;QAGlE,IAAI,CAAC,cAAc,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KACxD;IAEa,WAAW,CACvB,aAAqB,EACrB,eAAyC,EACzC,QAAkB,EAClB,WAAgB,EAChB,YAAoB,EAAA;;AAEpB,YAAA,MAAM,EACJ,qCAAqC,EACrC,mCAAmC,EACnC,iCAAiC,EACjC,+BAA+B,EAC/B,aAAa,EACb,0BAA0B,EAC3B,GAAG,IAAI,CAAC;AAET,YAAA,mCAAmC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC3D,YAAA,iCAAiC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACzD,qCAAqC,CAAC,KAAK,EAAE,CAAC;AAE9C,YAAA,MAAM,GAAG,GAAG,CAAG,EAAA,WAAW,CAAC,SAAS,CAAI,CAAA,EAAA,aAAa,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC;AAEtE,YAAA,MAAM,0BAA0B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAEpD,+BAA+B,CAAC,SAAS,CACvC,CAAG,EAAA,GAAG,mCAAmC,EACzC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,CACpF,CAAC;SACH,CAAA,CAAA;AAAA,KAAA;IAEO,aAAa,CACnB,eAAyC,EACzC,QAAkB,EAClB,WAAgB,EAChB,YAAoB,EACpB,GAAW,EAAA;;AAEX,QAAA,MAAM,EACJ,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,0BAA0B,EAC1B,4BAA4B,EAC7B,GAAG,IAAI,CAAC;AAET,QAAA,CAAA,EAAA,GAAA,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,CAAM,CAAA,EAAG,GAAG,CAAA,iBAAA,CAAmB,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAC9D,CAAO,MAAuB,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;;AAChC,YAAA,0BAA0B,CAAC,aAAa,CAAC,MAAM,EAAE,CAAA,MAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,KAAI,OAAO,CAAC,CAAC;YACvF,0BAA0B,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACrF,YAAA,6BAA6B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACjE,YAAA,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3C,YAAA,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClD,YAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE5B,YAAA,IAAI,QAAQ;AAAE,gBAAA,QAAQ,EAAE,CAAC;AAC3B,SAAC,CAAA,EACD,CAAC,GAAsB,KAAI;AACzB,YAAA,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3C,YAAA,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,UAAU,CAAC,GAAG,CAAC,CAAC;AAClB,SAAC,CACF,CAAC;KACH;AAUM,IAAA,IAAI,CAAC,QAAkB,EAAE,WAAgB,EAAE,YAAoB,EAAE,aAAsB,EAAA;;QAC5F,MAAM,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC;AAExF,QAAA,CAAA,EAAA,GAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CACZ,GAAG,CAAM,CAAG,EAAA,WAAW,CAAC,eAAe,EAAE,EAAE;AAC3C,YAAA,OAAO,EAAE,UAAU;SACpB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CACA,SAAS,CACT,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAI;YACpB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;AAC/D,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACxE,gBAAA,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,aAAA;AAAM,iBAAA;AACL,gBAAA,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3C,gBAAA,OAAO,CAAC,KAAK,CAAC,aAAa,UAAU,CAAA,yBAAA,CAA2B,CAAC,CAAC;AACnE,aAAA;AACH,SAAC,EACD,CAAC,GAAsB,KAAI;AACzB,YAAA,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3C,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,CAAC,CAAC;AAClB,SAAC,CACF,CAAC;KACL;IAEM,MAAM,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC3C;IAEM,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;KACpD;;mHAlIU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAoB,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,+BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mCAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qCAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iCAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;AAoGlB,UAAA,CAAA;AARC,IAAA,oBAAoB,CAAC;AACpB,QAAA,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,CAAC;AACtB,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,YAAY,EAAE,KAAK;AACpB,SAAA;KACF,CAAC;CAyBD,EAAA,sBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,IAAA,CAAA,CAAA;2FA1HU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;wgBAmGQ,IAAI,EAAA,EAAA,EAAA,EAAA,CAAA;;MCzGA,4BAA4B,CAAA;IAOvC,WACU,CAAA,sBAA8C,EAC9C,KAAY,EAAA;AADZ,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;AAC9C,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QAEpB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,YAAY,EAAE;AACZ,gBAAA,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC;AAC9C,aAAA;SACF,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KACtC;AAEO,IAAA,YAAY,CAAC,KAAgC,EAAA;AACnD,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;;;AAG/B,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC7C,YAAA,IAAI,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE;AACnD,gBAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACpE,QAAA,IAAI,QAAQ,EAAE;YACZ,KAAK,CAAC,QAAQ,CACZnB,MAA+B,CAAC;AAC9B,gBAAA,IAAI,EAAE;AAEF,oBAAA,MAAA,CAAA,MAAA,CAAA,EAAA,QAAQ,IACL,KAAK,CAAA;AAEX,iBAAA;AACF,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAED,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAEa,YAAY,GAAA;;;YACxB,IAAI;AACF,gBAAA,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC;gBAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAElD,gBAAA,IAAI,IAAI,GAAQ;oBACd,QAAQ,EAAE,QAAQ,IAAI,EAAE;AACxB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,WAAW,EAAE,EAAE;iBAChB,CAAC;AAEF,gBAAA,IAAI,QAAQ,EAAE;AACZ,oBAAA,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CACvBoB,MAAiC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC5B,IAAI,EAAC,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,EAAE;wBAClB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChD,wBAAA,IAAI,GACC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,OAAO,GACR,CAAC;AACH,qBAAA;AACF,iBAAA;AAED,gBAAA,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE;qBACjD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBAE7B,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBACtD,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAExD,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrB,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;oBACxD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC1D,IAAI,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACC,IAAI,CAAA,EAAA,EACP,WAAW;AACX,wBAAA,YAAY,GACb,CAAC;AACH,iBAAA;AAED,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACd,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1C,oBAAA,IAAI,GACC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,IAAI,GACL,CAAC;AACH,iBAAA;AAED,gBAAA,MAAM,WAAW,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACZ,IAAI,CAAA,EAAA,EACP,UAAU;AACV,oBAAA,WAAW,GACZ,CAAC;AACF,gBAAA,IAAI,EAAC,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,OAAO,CAAA,KAAI,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO,CAAA,EAAE;AACrC,oBAAA,WAAW,CAAC,OAAO,GAAG,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAC9C,iBAAA;AACM,gBAAA,WAAW,aAAX,WAAW,KAAA,KAAA,CAAA,GAAA,IAAA,GAAA,OAAX,WAAW,CAAE,EAAE,CAAC;AAEvB,gBAAA,OAAO,WAAW,CAAC;AACpB,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;;AACb,KAAA;AAEO,IAAA,QAAQ,CAAC,EAA0B,EAAA;AACzC,QAAA,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAC,IAAI,CAAC,KAAI,IAAI,CAAC,CAAC;AACjE,QAAA,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC1C,YAAA,IAAI,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE;gBACnD,UAAU,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACL,UAAU,CACb,EAAA,EAAA,CAAC,GAAG,GAAG,KAAK,EAAA,CACb,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACjE,QAAA,IAAI,QAAQ,EAAE;YACZ,KAAK,CAAC,QAAQ,CACZpB,MAA+B,CAAC;AAC9B,gBAAA,IAAI,EAAE;AACJ,oBAAA;wBACE,QAAQ;wBACR,EAAE;AACH,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAED,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACvD,QAAA,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACtB;IAEa,QAAQ,GAAA;;AACpB,YAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAClD,YAAA,IAAI,IAAI,GAAiC;gBACvC,QAAQ,EAAE,QAAQ,IAAI,EAAE;AACxB,gBAAA,OAAO,EAAE,EAAE;aACZ,CAAC;AAEF,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CACvBoB,MAAiC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC7B,aAAA;AAED,YAAA,IAAI,WAAW,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACV,IAAI,CACR,CAAC;AAEF,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;gBACnB,IAAI;AACF,oBAAA,WAAW,GAAG;AACZ,wBAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;qBACnD,CAAC;AACH,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;;AAEX,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,WAAW,KAAX,IAAA,IAAA,WAAW,uBAAX,WAAW,CAAE,EAAE,CAAC;SACxB,CAAA,CAAA;AAAA,KAAA;IAEM,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KACnC;IAEM,YAAY,GAAA;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC;KACxC;IAEY,QAAQ,GAAA;;AACnB,YAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;SAC5B,CAAA,CAAA;AAAA,KAAA;IAEY,KAAK,GAAA;;AAChB,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;SACxB,CAAA,CAAA;AAAA,KAAA;AAEM,IAAA,QAAQ,CAAC,KAAgC,EAAA;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AAEM,IAAA,KAAK,CAAC,EAA0B,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACnB;AAEM,IAAA,KAAK,CAAC,KAAe,EAAA;AAC1B,QAAA,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,IAAI;AACF,YAAA,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;;gBACnD,IACE,CAAC,CAAA,CAAA,EAAA,GAAA,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,YAAY,0CAAE,MAAM,KAAI,EAAE,EAAE,MAAM,CAAC,CAAC,GAAQ,KAAI;oBACtD,OAAO,GAAG,KAAK,GAAG,CAAC;AACrB,iBAAC,CAAC,CAAC,MAAM,IAAI,CAAC;oBACd,KAAK,KAAK,IAAI,EACd;AACA,oBAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9B,iBAAA;AACH,aAAC,CAAC,CAAC;AAEH,YAAA,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAClD,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,KAAK,CAAC,QAAQ,CAACjB,SAAkC,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5E,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AAClB,SAAA;AACD,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;KACjB;AAED;;AAEG;AACI,IAAA,gBAAgB,CACrB,MAAM,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC,EAAA;AAE7E,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,GAAG,GAAQ,IAAI,CAAC;QACpB,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO,CAAC,CAAC,GAAW,KAAI;YAC9B,GAAG,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACE,GAAG,CACN,EAAA,EAAA,CAAC,GAAG,GAAG,IAAI,EAAA,CACZ,CAAC;AACF,YAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAClD,QAAA,IAAI,QAAQ,EAAE;YACZ,KAAK,CAAC,QAAQ,CACZH,MAA+B,CAAC;AAC9B,gBAAA,IAAI,EAAE;AAEF,oBAAA,MAAA,CAAA,MAAA,CAAA,EAAA,QAAQ,IACL,GAAG,CAAA;AAET,iBAAA;AACF,aAAA,CAAC,CACH,CAAC;AACH,SAAA;KACF;;yHA1QU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqB,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA9B,IAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;2FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCTY,6BAA6B,CAAA;AACxC,IAAA,WAAA,CAAoB,aAA4B,EAAA;AAA5B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;;KAE/C;AAEM,IAAA,SAAS,CAAC,IAAY,EAAE,KAAU,EAAE,WAAgB,EAAA;AACzD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACrC,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AAClC,QAAA,MAAM,aAAa,GAAG,SAAS,GAAG,CAAI,CAAA,EAAA,SAAS,CAAE,CAAA,GAAG,EAAE,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KAClF;AAEM,IAAA,SAAS,CAAC,IAAY,EAAA;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACrC;IAEM,YAAY,CAAC,IAAY,EAAE,WAAgB,EAAA;AAChD,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AAClC,QAAA,MAAM,aAAa,GAAG,SAAS,GAAG,CAAI,CAAA,EAAA,SAAS,CAAE,CAAA,GAAG,EAAE,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACnE;;0HApBU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,CAAA,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;;;MCCY,0BAA0B,CAAA;AAOrC,IAAA,WAAA,CACU,UAAsB,EACtB,mBAAiD,EACjD,GAAsB,EAAA;AAFtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACtB,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAA8B;AACjD,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AATR,QAAA,IAAK,CAAA,KAAA,GAAa,EAAE,CAAC;AAEf,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAEnD,QAAA,IAAgB,CAAA,gBAAA,GAAQ,IAAI,CAAC;;KAQpC;IAEO,OAAO,GAAA;AACb,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,gBAAgB;AAAE,YAAA,OAAO,EAAE,CAAC;QAEjC,IAAI,CAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CAAE,YAAY,MAAK,MAAM,EAAE;AAC7C,YAAA,OAAO,eAAe,CAAC;AACxB,SAAA;QAED,IAAI,CAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CAAE,YAAY,MAAK,IAAI,EAAE;AAC3C,YAAA,OAAO,eAAe,CAAC;AACxB,SAAA;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAEjD,QAAA,OAAO,CAAA,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,KAAhB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,gBAAgB,CAAE,IAAI,KAAI,WAAW,IAAI,EAAE,CAAC;KACpD;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,OAAO,GAAG,MAAM,CAAC;AACrB,QAAA,MAAM,KAAK,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAI,WAAW,EAAE;YACf,OAAO,GAAG,OAAO,CAAC;AAClB,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,OAAO,GAAG,MAAM,CAAC;AAClB,aAAA;AACF,SAAA;AAAM,aAAA;YACL,OAAO,GAAG,MAAM,CAAC;AACjB,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,OAAO,GAAG,OAAO,CAAC;AACnB,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,eAAe;YAAE,OAAO,GAAG,OAAO,CAAC;QAC1F,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAEa,UAAU,GAAA;;YACtB,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAClE,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB,CAAA,CAAA;AAAA,KAAA;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACrD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAEzB,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAK;YACxD,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;uHApEU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAoC,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,eAAA,EAAA,OAAA,CAAA,EAAA,WAAA,EAAA,CAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;iBAChC,CAAA;yKAEyB,KAAK,EAAA,CAAA;sBAA5B,KAAK;uBAAC,eAAe,CAAA;gBAEQ,WAAW,EAAA,CAAA;sBAAxC,KAAK;uBAAC,qBAAqB,CAAA;;;MCJjB,yBAAyB,CAAA;IAepC,WAAoB,CAAA,EAAc,EAAU,QAAmB,EAAA;AAA3C,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AANtD,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAE7B,QAAA,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;AAEZ,QAAA,IAAO,CAAA,OAAA,GAAuB,IAAI,CAAC;;KAIlC;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;KACF;IAGD,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;KACF;IAGD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;KACF;IAED,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;YAC/D,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,IAAI,EAAE,CAAC;aACb,EAAE,IAAI,CAAC,CAAC;AACV,SAAA;KACF;IAED,IAAI,GAAA;QACF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAEvD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;IAED,MAAM,GAAA;QACJ,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAE3D,mBAAmB,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACvD,YAAA,mBAAmB,CAAC,SAAS,GAAG,yBAAyB,CAAC;AAE1D,YAAA,cAAc,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AACjD,SAAA;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAE1D,kBAAkB,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACrD,YAAA,kBAAkB,CAAC,SAAS,GAAG,+BAA+B,CAAC;AAC/D,YAAA,cAAc,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAChD,SAAA;QAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,IAAI,CAAC,eAAe,CAAA,CAAE,CAAC,CAAC;AAElF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAW,QAAA,EAAA,IAAI,CAAC,YAAY,CAAA,EAAA,CAAI,CAAC,CAAC;AAC7F,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAW,QAAA,EAAA,IAAI,CAAC,YAAY,CAAA,EAAA,CAAI,CAAC,CAAC;AAC1F,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,CAAW,QAAA,EAAA,IAAI,CAAC,YAAY,CAAA,EAAA,CAAI,CAAC,CAAC;AACxF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAW,QAAA,EAAA,IAAI,CAAC,YAAY,CAAA,EAAA,CAAI,CAAC,CAAC;KACtF;IAED,WAAW,GAAA;;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,qBAAqB,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,UAAU;YAAE,OAAO;AACxB,QAAA,MAAM,SAAS,GACb,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAC3F,IAAI,GAAG,GAAW,CAAC,CAAC;QACpB,IAAI,IAAI,GAAW,CAAC,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AAClC,YAAA,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACpD,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;AAC9D,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;YACrC,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACnC,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;AAC9D,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,EAAE;AACnC,YAAA,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AACtD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,EAAE;AACpC,YAAA,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAC7D,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAG,EAAA,GAAG,GAAG,SAAS,CAAA,EAAA,CAAI,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC,CAAC;KAC3D;;sHA5HU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;iBAC/B,CAAA;yHAEU,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAWN,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,YAAY,CAAA;gBAQ1B,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,YAAY,CAAA;gBAQ1B,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,OAAO,CAAA;;;MChBV,sBAAsB,CAAA;IACjC,WACU,CAAA,eAAgD,EAChD,gBAAkC,EAAA;AADlC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiC;AAChD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;;KAG3C;IAED,IAAI,CAAC,EACH,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,OAAO,EACP,QAAQ,EAMT,EAAA;;AACC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,YAAA,EAAe,IAAI,CAAE,CAAA,CAAC,WAAW,EAAE,CAAC,CAAC;AAEhF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;YAC5B,OAAO,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,QAAQ,CAAC,OAAO,CAAC;YAChC,IAAI;YACJ,QAAQ,EAAE,QAAQ,IAAI,IAAI;AAC1B,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,gBAAgB,EAAE,KAAK;AACxB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAwD,EAAA;;QAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAElE,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;YAC5B,OAAO,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,QAAQ,CAAC,OAAO,CAAC;AAChC,YAAA,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,QAAQ,IAAI,IAAI;AAC1B,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,gBAAgB,EAAE,KAAK;AACxB,SAAA,CAAC,CAAC;KACJ;IAED,aAAa,CAAC,EACZ,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,OAAO,EAKR,EAAA;;AACC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACzC,YAAA,CAAA,YAAA,EAAe,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE;YACnC,qBAAqB;AACtB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,YAAA,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAG,CAAA,YAAA,EAAe,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE,EAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,KAAK,CAAC;AAClE,YAAA,OAAO,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAG,CAAA,YAAA,EAAe,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC;YACtE,IAAI;AACJ,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE;AACN,oBAAA,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAG,qBAAqB,CAAA,CAAE,KAAK;AAC1C,oBAAA,MAAM,EAAE,MAAK,GAAG;AACjB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,eAAe,CAAC,EACd,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EAQP,EAAA;;AACC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACzC,YAAA,CAAA,YAAA,EAAe,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE;YACnC,qBAAqB;AACtB,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,mCACD,MAAM,CAAA,EAAA,EACT,OAAO,EAAE,MAAM,CAAC,OAAO;AACrB,kBAAO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CAAC,OAAO,KAAE,KAAK,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAG,qBAAqB,CAAE,CAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA,CAAA,GAC/E,MAAM,CAAC,OAAO,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM;AACnB,kBAAO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CAAC,MAAM,CAAE,EAAA,EAAA,KAAK,EAAE,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAG,qBAAqB,CAAE,CAAA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CAAA,GAC7E,MAAM,CAAC,MAAM,EAAA,CAClB,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,YAAA,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAG,CAAA,YAAA,EAAe,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE,EAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,KAAK,CAAC;AAClE,YAAA,OAAO,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAG,CAAA,YAAA,EAAe,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC;YACtE,IAAI;YACJ,QAAQ,EAAE,QAAQ,IAAI,SAAS;YAC/B,QAAQ,EAAE,QAAQ,IAAI,KAAK;AAC3B,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,gBAAgB,EAAE,KAAK;YACvB,MAAM;AACP,SAAA,CAAC,CAAC;KACJ;;mHAnHU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,+BAAA,EAAA,EAAA,EAAA,KAAA,EAAA/B,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCdY,8BAA8B,CAAA;AACzC,IAAA,WAAA,GAAA;AAIA,QAAA,IAAkB,CAAA,kBAAA,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AAC9B,YAAA,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC1D,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAA,CAAC;AAEF,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;AACjB,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACnD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;QAEF,IAAA,CAAA,wBAAwB,GAAG,CAAC,KAA8B,EAAE,KAA2B,KAAI;AACzF,YAAA,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAChE,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AAEF,QAAA,IAAY,CAAA,YAAA,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACxB,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACpD,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAA,CAAC;AAEF,QAAA,IAAmB,CAAA,mBAAA,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AAC/B,YAAA,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC3D,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAA,CAAC;AAEF,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,GAAW,KAAa;AAC1C,YAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACxD,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,OAAyB,KAA4B;AAC5E,YAAA,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;AAC7D,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,uBAAuB,GAAG,CAAC,OAAyB,KAA2B;AAC7E,YAAA,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAC/D,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,0BAA0B,GAAG,CAAO,OAAyB,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AAC/D,YAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAClE,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAA,CAAC;AAEF,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,QAA2B,KAAa;AAC7D,YAAA,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC3D,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,IAAY,CAAA,YAAA,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACxB,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACpD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAA,CAAC;AAEF,QAAA,IAAQ,CAAA,QAAA,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACpB,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAChD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAA,CAAC;;KA5DD;AA8DD,IAAA,IAAI,CAAC,IAaJ,EAAA;QACC,IAAI,CAAC,kBAAkB,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,KAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,WAAW,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,wBAAwB;AAC3B,YAAA,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,wBAAwB,KAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,KAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,IAAI,CAAC,mBAAmB,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,KAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,qBAAqB;AACxB,YAAA,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,qBAAqB,KAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,0BAA0B;AAC7B,YAAA,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,0BAA0B,KAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,mBAAmB,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,KAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,QAAQ,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5D;;2HA9FU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA,CAAA;2FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCDrB,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAAoB,8BAA8D,EAAA;AAA9D,QAAA,IAA8B,CAAA,8BAAA,GAA9B,8BAA8B,CAAgC;;KAEjF;IAEK,WAAW,GAAA;;AACf,YAAA,MAAM,EAAE,8BAA8B,EAAE,GAAG,IAAI,CAAC;AAEhD,YAAA,IAAI,MAAM,IAAI,CAAC,8BAA8B,CAAC,YAAY,EAAE,EAAE;AAC5D,gBAAA,IAAI,MAAM,8BAA8B,CAAC,mBAAmB,EAAE,EAAE;AAC9D,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACD,gBAAA,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC;AAClD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YAED,8BAA8B,CAAC,wBAAwB,EAAE,CAAC;AAE1D,YAAA,OAAO,KAAK,CAAC;SACd,CAAA,CAAA;AAAA,KAAA;;sHAnBU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAgC,8BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cADZ,MAAM,EAAA,CAAA,CAAA;2FACnB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCCrB,uBAAuB,CAAA;AAClC,IAAA,WAAA,CAAoB,8BAA8D,EAAA;AAA9D,QAAA,IAA8B,CAAA,8BAAA,GAA9B,8BAA8B,CAAgC;;KAEjF;IAEK,WAAW,GAAA;;AACf,YAAA,IAAI,MAAM,IAAI,CAAC,8BAA8B,CAAC,YAAY,EAAE,EAAE;AAC5D,gBAAA,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC;AAClD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,IAAI,MAAM,IAAI,CAAC,8BAA8B,CAAC,kBAAkB,EAAE,EAAE;AAClE,gBAAA,IAAI,CAAC,8BAA8B,CAAC,wBAAwB,EAAE,CAAC;AAC/D,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;SACb,CAAA,CAAA;AAAA,KAAA;;oHAfU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,8BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA,CAAA;2FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCGrB,wBAAwB,CAAA;IAQnC,WACU,CAAA,YAA0C,EAC1C,MAAc,EAAA;AADd,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA8B;AAC1C,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAThB,QAAA,IAAmB,CAAA,mBAAA,GAGhB,IAAI,CAAC;AAER,QAAA,IAAgB,CAAA,gBAAA,GAAQ,IAAI,CAAC;;KAOpC;IAEO,mBAAmB,GAAA;;AACzB,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QAClC,MAAM,WAAW,GAAG,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAhB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,gBAAgB,CAAE,WAAW,CAAC;QAClD,IAAI,IAAI,GAAG,sBAAsB,CAAC;AAClC,QAAA,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,GAAG,CAAA,KAAA,EAAQ,WAAW,CAAA,gBAAA,CAAkB,CAAC;AAC9C,SAAA;AACD,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;KAC7C;IAEO,OAAO,GAAA;AACb,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,gBAAgB;AAAE,YAAA,OAAO,EAAE,CAAC;QACjC,IAAI,CAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CAAE,YAAY,MAAK,MAAM,EAAE;AAC7C,YAAA,OAAO,eAAe,CAAC;AACxB,SAAA;QACD,IAAI,CAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CAAE,YAAY,MAAK,IAAI,EAAE;AAC3C,YAAA,OAAO,eAAe,CAAC;AACxB,SAAA;QAED,OAAO,CAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CAAE,IAAI,KAAI,EAAE,CAAC;KACrC;IAEO,qBAAqB,CAAC,KAAe,EAAE,WAAoB,EAAA;QACjE,IAAI,EAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,MAAM,CAAA;AAAE,YAAA,OAAO,IAAI,CAAC;AAEhC,QAAA,MAAM,KAAK,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,IAAI,GAAG,GAAG,KAAK,CAAC;AAChB,QAAA,IAAI,WAAW,EAAE;YACf,GAAG,GAAG,IAAI,CAAC;AACX,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,GAAG,GAAG,KAAK,CAAC;AACb,aAAA;AACF,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,KAAK,CAAC;AACZ,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,GAAG,GAAG,IAAI,CAAC;AACZ,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,eAAe,EAAE;YACtE,GAAG,GAAG,IAAI,CAAC;AACZ,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;IAEK,WAAW,CAAC,KAA6B,EAAE,KAA0B,EAAA;;;YACzE,IAAI,CAAC,mBAAmB,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC;YAC3D,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAExD,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAE3D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;oBACnD,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,IAAI,CAAC;;AACb,KAAA;;qHA3EU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAA/B,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;2FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCCY,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAoB,8BAA8D,EAAA;AAA9D,QAAA,IAA8B,CAAA,8BAAA,GAA9B,8BAA8B,CAAgC;;KAEjF;IAEK,WAAW,GAAA;;AACf,YAAA,MAAM,EAAE,8BAA8B,EAAE,GAAG,IAAI,CAAC;AAEhD,YAAA,IAAI,MAAM,8BAA8B,CAAC,YAAY,EAAE,EAAE;AACvD,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;YAED,8BAA8B,CAAC,wBAAwB,EAAE,CAAC;AAE1D,YAAA,OAAO,KAAK,CAAC;SACd,CAAA,CAAA;AAAA,KAAA;;+GAfU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAgC,8BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACND;MAKa,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAGE,YAAmC,EAAA;AAEnC,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC9F,SAAA;KACF;AAED,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;KACH;;AAhBU,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAIhB,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mHAJ1B,qBAAqB,EAAA,CAAA,CAAA;mHAArB,qBAAqB,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,QAAQ;;wBAKS,qBAAqB,EAAA,UAAA,EAAA,CAAA;8BAFlC,QAAQ;;8BACR,QAAQ;;;;MCGA,8BAA8B,CAAA;AACzC,IAAA,WAAA,CACU,YAA+C,EAC/C,aAA4C,EAC5C,aAAqC,EAAA;AAFrC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmC;AAC/C,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA+B;AAC5C,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAwB;;KAG9C;AAEO,IAAA,sBAAsB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAA;AACtD,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAW,aAAa,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACxE,MAAM,MAAM,GAAW,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAEpE,IAAI,CAAC,QAAQ,EAAE;YACb,aAAa,CAAC,SAAS,CACrB,qBAAqB,EACrB,IAAI,CACF,IAAI,CAAC,SAAS,CAAC;AACb,gBAAA,oBAAoB,EAAE,IAAI;AAC3B,aAAA,CAAC,CACH,EACD,WAAW,CACZ,CAAC;AACH,SAAA;AAAM,aAAA;YACL,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE3C,aAAa,CAAC,SAAS,CACrB,qBAAqB,EACrB,IAAI,CACF,IAAI,CAAC,SAAS,iCACT,OAAO,CAAA,EAAA,EACV,oBAAoB,EAAE,IAAI,IAC1B,CACH,EACD,WAAW,CACZ,CAAC;AACH,SAAA;AAED,QAAA,IAAI,MAAM,EAAE;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzC,YAAA,aAAa,CAAC,SAAS,CACrB,mBAAmB,EACnB,IAAI,CACF,IAAI,CAAC,SAAS,CACT,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,KACV,QAAQ,EAAA,CAAA,CACR,CACH,EACD,WAAW,CACZ,CAAC;AACH,SAAA;KACF;AAEa,IAAA,oBAAoB,CAAC,WAAgB,EAAE,KAAK,GAAG,KAAK,EAAA;;;AAChE,YAAA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;YAC/B,MAAM,QAAQ,GAAW,aAAa,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACxE,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,QAAQ,EAAE;gBACZ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3C,gBAAA,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;AACvC,aAAA;AAED,YAAA,MAAM,MAAM,GAAoB,MAAM,IAAI,CAAC,aAAa;AACrD,iBAAA,MAAM,EAAE;AACR,iBAAA,IAAI,CACH,KAAK,CAAC,CAAC,GAAQ,KAAI;AACjB,gBAAA,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAC/C,aAAC,CAAC,CACH;AACA,iBAAA,SAAS,EAAE,CAAC;AAEf,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;AACxC,YAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,CAAC;AAE5C,YAAA,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,MAAK,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,MAAM,CAAA,EAAE;AAC5C,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC9C,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,IAAI,EAAE;wBACJ,QAAQ;wBACR,UAAU;AACV,wBAAA,QAAQ,EAAE,CAAC,QAAQ,GAAG,KAAK,KAAI;4BAC7B,IAAI,CAAC,sBAAsB,CAAC;gCAC1B,QAAQ;gCACR,WAAW;AACZ,6BAAA,CAAC,CAAC;yBACJ;AACF,qBAAA;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;;AACF,KAAA;AAEM,IAAA,KAAK,CAAC,WAAgB,EAAE,KAAK,GAAG,KAAK,EAAA;AAC1C,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;KAC/C;;2HAhGU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iCAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cAF7B,MAAM,EAAA,CAAA,CAAA;2FAEP,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACKK,MAAO,iCAAkC,SAAQ,uBAAuB,CAAA;IAC5E,WACE,CAAA,gBAAkC,EAClC,YAA0C,EAClC,8BAA8D,EAC9D,MAAc,EACd,eAAgD,EAChD,gBAAkC,EAAA;AAE1C,QAAA,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAL9B,QAAA,IAA8B,CAAA,8BAAA,GAA9B,8BAA8B,CAAgC;AAC9D,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACd,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiC;AAChD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAI1C,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;KACzD;IAEO,uBAAuB,CAAC,EAA+B,EAAE,QAAgB,EAAA;;AAC/E,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,aAAF,EAAE,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAF,EAAE,CAAE,YAAY,CAAA,EAAE;AACtE,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,MAAM,KAAK,GAAG,CAAA,CAAA,EAAA,IAAC,CAAA,CAAA,EAAA,GAAA,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAF,EAAE,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,KAAI,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,QAAQ,CAAC,IAAG,CAAC,CAAC,CAAC;AAE/E,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,wBAAwB,CAAC,EAA+B,EAAE,QAAgB,EAAA;;AAChF,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,aAAF,EAAE,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAF,EAAE,CAAE,YAAY,CAAA,EAAE;AACtE,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,MAAM,KAAK,GAAG,CAAA,CAAA,EAAA,IAAC,CAAA,CAAA,EAAA,GAAA,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAF,EAAE,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,sBAAsB,KAAI,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,QAAQ,CAAC,IAAG,CAAC,CAAC,CAAC;AAEvF,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,cAAc,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE;AACxE,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;AAEO,IAAA,WAAW,CAAC,OAAe,EAAE,KAAwB,EAAE,GAAgC,EAAA;;AAC7F,QAAA,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;AAC5E,YAAA,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;YAE7C,eAAe,CAAC,IAAI,CAAC;AACnB,gBAAA,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,0CAAE,KAAK;gBACzB,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;AACvC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,kBAAkB,EAAE,QAAQ;AAC5B,gBAAA,gBAAgB,EAAE,KAAK;gBACvB,eAAe;AAChB,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,aAAa,CAAC,KAAwB,EAAE,GAAgC,EAAA;;;AAE9E,QAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,CAAA,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,KAAK,KAAI;AACpE,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,IAAI,aAAa,GAAG,EAAE,CAAC;AAEvB,QAAA,IAAI,OAAO,EAAE;YACX,aAAa,GAAG,OAAO,CAAC;AACzB,SAAA;;AAGD,QAAA,IAAI,iBAAiB,EAAE;;YAErB,aAAa,GAAG,iBAAiB,CAAC;AACnC,SAAA;AAED,QAAA,IAAI,aAAa,EAAE;YACjB,aAAa,GAAG,aAAa,CAAC;AAC/B,SAAA;QAED,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,IAAI,KAAK,CAAC,KAAK,YAAY,IAAI,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACnC,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA,CAAC,CAAC;AACH,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAChC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAI;;AACvC,oBAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,CAAC,KAAD,IAAA,IAAA,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC;oBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;AAC5C,oBAAA,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACvC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9C,iBAAC,CAAC,CAAC;AACH,gBAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA,IAAI,EAAC,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,GAAG,0CAAE,QAAQ,CAAC,eAAe,CAAC,CAAA,EAAE;gBACjD,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;AACxD,gBAAA,MAAM,GAAG,GACP,KAAK,CAAC,MAAM,KAAK,GAAG;AAClB,sBAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,kBAAkB,CAAC,mCAAI,UAAU;sBACjE,UAAU,CAAC;gBAEjB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7C,SAAA;KACF;IAEY,WAAW,CAAC,KAAwB,EAAE,GAAgC,EAAA;;AACjF,YAAA,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;AACtC,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YACzB,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,OAAM,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,EAAE,CAAA,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAEhF,YAAA,MAAM,MAAM,GAAQ;AAClB,gBAAA,GAAG,EAAE,WAAW;AAChB,gBAAA,GAAG,EAAE,kBAAkB;AACvB,gBAAA,GAAG,EAAE,kBAAkB;aACxB,CAAC;YAEF,IAAI,KAAK,GAAG,MAAM,CAAC;AACnB,YAAA,IAAI,WAAW,EAAE;AACf,gBAAA,KAAK,GAAG,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,WAAW,QAAQ,CAAC;AACzC,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,MAAA,CAAQ,CAAC;AAC1B,aAAA;AAED,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,YAAA,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,MAAM,CAAC,EAAE;gBAC/D,KAAK,GAAG,GAAG,KAAK,CAAA,CAAA,EAAI,KAAK,CAAE,CAAA,CAAC,WAAW,EAAE,CAAC;gBAC1C,OAAO,GAAG,GAAG,CAAC;AACd,gBAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B,aAAA;YAED,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAChC,EAAE,OAAO,CAAC,CAAC;SACb,CAAA,CAAA;AAAA,KAAA;IAEM,uBAAuB,CAAC,KAAwB,EAAE,GAAgC,EAAA;QACvF,MAAM,YAAY,GAAG,IAAI,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,KAAK,YAAY,EAAE;YAClE,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAChC,EAAE,IAAI,CAAC,CAAC;AACT,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,wBAAwB,EAAE,EAAE,EAAE,CAAC,CAAC;AACjF,SAAA;aAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC3D,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChC,SAAA;KACF;;8HA1JU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAnC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAkB,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAkB,8BAAA,EAAA,EAAA,EAAA,KAAA,EAAAd,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAe,EAAA,CAAA,+BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjC,iCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,cAFhC,MAAM,EAAA,CAAA,CAAA;2FAEP,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAH7C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCLY,oCAAoC,CAAA;IAC/C,WACU,CAAA,YAA0C,EACxB,GAA2B,EAAA;AAD7C,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA8B;AACxB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAwB;;KAGtD;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;AAC9B,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAE1B,IAAI;YACF,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;AAClC,gBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7B,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,aAAA;YAED,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE,eAAe;gBACxB,KAAK;AACN,aAAA,CAAC,CAAC;AACJ,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;;AAEX,SAAA;QAED,IAAI,IAAI,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC1D,YAAA,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACzC,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;;AAjCU,oCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oCAAoC,8DAGrC,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHP,oCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oCAAoC,cAFnC,MAAM,EAAA,CAAA,CAAA;2FAEP,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;8BAII,MAAM;+BAAC,QAAQ,CAAA;;;;MCHP,6BAA6B,CAAA;AACxC,IAAA,WAAA,CAAoB,QAAkB,EAAA;AAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;;KAErC;IAED,WAAW,CAAC,KAAU,EAAE,IAAa,EAAA;AACnC,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC/D,MAAM,wBAAwB,GAAG,QAAQ,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjF,MAAM,2BAA2B,GAAG,QAAQ,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAEvF,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACtC,YAAA,MAAM,YAAY,GAChB,CAAA,eAAe,KAAf,IAAA,IAAA,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,eAAe,CAAE,8BAA8B,EAAE,KAAI,EAAE,CAAC;YAC1D,IAAI,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,eAAe,EAAE;AAC9E,gBAAA,wBAAwB,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACvE,aAAA;;AAAM,gBAAA,wBAAwB,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAClE,SAAA;AAAM,aAAA;AACL,YAAA,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAChD,SAAA;KACF;;0HApBU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,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,cADhB,MAAM,EAAA,CAAA,CAAA;2FACnB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCDrB,4BAA4B,CAAA;AAChC,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO;AACL,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE,6BAA6B;AACxC,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;yHAXU,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,YAF7B,YAAY,CAAA,EAAA,CAAA,CAAA;0HAEX,4BAA4B,EAAA,OAAA,EAAA,CAF9B,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAEZ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB,CAAA;;;MCAY,8BAA8B,CAAA;AAKzC,IAAA,WAAA,GAAA;AAJQ,QAAA,IAAS,CAAA,SAAA,GAA+B,EAAE,CAAC;AAE3C,QAAA,IAAgB,CAAA,gBAAA,GAA+B,EAAE,CAAC;;KAIzD;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAA6B,KAAI;AACvD,YAAA,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAEO,sBAAsB,GAAA;QAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAA6B,KAAI;AAC9D,YAAA,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;AAEM,IAAA,WAAW,CAAC,GAA+B,EAAA;AAChD,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;KACtB;AAEM,IAAA,kBAAkB,CAAC,GAA+B,EAAA;AACvD,QAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;KAC7B;IAEM,OAAO,GAAA;QACZ,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;;2HAlCU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cAF7B,MAAM,EAAA,CAAA,CAAA;2FAEP,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCAY,0BAA0B,CAAA;AAKrC,IAAA,WAAA,GAAA;AAJQ,QAAA,IAAS,CAAA,SAAA,GAEb,EAAE,CAAC;;KAIN;AAEM,IAAA,WAAW,CAAC,QAAkB,EAAE,IAAA,GAAe,MAAM,EAAA;AAC1D,QAAA,IAAI,CAAC,SAAS,GACT,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,SAAS,CACjB,EAAA,EAAA,CAAC,IAAI,GAAG,QAAQ,GACjB,CAAC;KACH;AAEM,IAAA,OAAO,CAAC,IAAY,EAAE,IAAA,GAAe,MAAM,EAAA;AAChD,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,QAAQ,GAAG,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAG,IAAI,CAAC,CAAC;AACnC,QAAA,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC9B;;uHApBU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;2FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCKY,uCAAuC,CAAA;AAKlD,IAAA,WAAA,GAAA;AAJQ,QAAA,IAAQ,CAAA,QAAA,GAA+B,EAAE,CAAC;QAKhD,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAC1C;AAEO,IAAA,KAAK,CAAC,CAA2B,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;IAEO,gBAAgB,CAAC,CAA2B,EAAE,MAAe,EAAA;QACnE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;AACd,YAAA,GAAG,KAAK;AACL,iBAAA,GAAG,CAAC,CAAC,GAAQ,KAAI;AAChB,gBAAA,IAAI,GAAG,CAAC,MAAM,KAAK,uBAAuB,CAAC,OAAO,EAAE;AAClD,oBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;oBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;wBAClC,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,KACX,MAAM,EAAE,MAAM,IAAI,uBAAuB,CAAC,QAAQ,EAClD,CAAA,CAAA;AACH,qBAAA;AACD,oBAAA,OAAO,QAAQ,CAAC;AACjB,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC;AACD,iBAAA,MAAM,CAAC,CAAC,CAAM,KAAI;AACjB,gBAAA,OAAO,CAAC,CAAC;AACX,aAAC,CAAC;SACL,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;AAC9C,YAAA,OAAO,CAAC,CAAC,MAAM,KAAK,uBAAuB,CAAC,OAAO,CAAC;AACtD,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;AAEO,IAAA,UAAU,CAAC,CAA2B,EAAE,MAAe,EAAE,KAAc,EAAA;QAC7E,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;AACd,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACxB,gBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;gBACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC1E,MAAM,eAAe,GAAG,GAAG,CAAC;gBAC5B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClC,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,KACX,MAAM;AACN,wBAAA,KAAK,EACL,iBAAiB,EAAE,gBAAgB,EACnC,eAAe,EACf,CAAA,CAAA;AACH,iBAAA;AACD,gBAAA,OAAO,QAAQ,CAAC;AAClB,aAAC,CAAC;SACH,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;AAEM,IAAA,GAAG,CAAC,CAA2B,EAAA;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACf;IAEM,GAAG,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACtC;AAEM,IAAA,MAAM,CAAC,CAA2B,EAAE,MAAe,EAAE,KAAc,EAAA;QACxE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;KACnC;IAEM,UAAU,CAAC,CAA2B,EAAE,MAAe,EAAA;AAC5D,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KAClC;IAEM,kBAAkB,GAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,KAAI;AAC1C,YAAA,OAAO,CAAC,CAAC,MAAM,KAAK,uBAAuB,CAAC,OAAO,CAAC;AACtD,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;KACxD;;oIAzFU,uCAAuC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvC,uCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uCAAuC,cAFtC,MAAM,EAAA,CAAA,CAAA;2FAEP,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBAHnD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCCY,yCAAyC,CAAA;AAKpD,IAAA,WAAA,GAAA;AAJQ,QAAA,IAAU,CAAA,UAAA,GAAiC,EAAE,CAAC;QAKpD,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAC5C;AAEO,IAAA,KAAK,CAAC,CAA6B,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACxC;IAEO,gBAAgB,CAAC,CAA6B,EAAE,MAAe,EAAA;QACrE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG;AAChB,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;gBACxB,IAAI,GAAG,CAAC,MAAM,KAAKC,uBAA+B,CAAC,OAAO,EAAE;AAC1D,oBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;oBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;AAClC,wBAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,QAAQ,CACX,EAAA,EAAA,MAAM,EAAE,MAAM,IAAIA,uBAA+B,CAAC,QAAQ,EAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAChB,CAAA,CAAA;AACH,qBAAA;AACD,oBAAA,OAAO,QAAQ,CAAC;AACjB,iBAAA;AACD,gBAAA,OAAO,GAAG,CAAC;AACb,aAAC,CAAC;SACH,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACxC;AAEM,IAAA,GAAG,CAAC,CAA6B,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACf;IAEM,GAAG,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;IAEM,UAAU,CAAC,CAA6B,EAAE,MAAe,EAAA;AAC9D,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KAClC;IAEM,kBAAkB,GAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,KAAI;YAC5C,OAAO,CAAC,CAAC,MAAM,KAAKA,uBAA+B,CAAC,OAAO,CAAC;AAC9D,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;KACxD;;sIAtDU,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzC,yCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yCAAyC,cAFxC,MAAM,EAAA,CAAA,CAAA;2FAEP,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBAHrD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCCY,oCAAoC,CAAA;AAO/C,IAAA,WAAA,GAAA;AANQ,QAAA,IAAK,CAAA,KAAA,GAA4B,EAAE,CAAC;QAIpC,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAG5C,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KACxC;AAEO,IAAA,UAAU,CAAC,CAAwB,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;AAEO,IAAA,qBAAqB,CAAC,CAAwB,EAAE,MAAe,EAAE,MAAiB,EAAA;QACxF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACxB,gBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;gBACF,IAAI,GAAG,CAAC,MAAM,KAAKrC,oBAA4B,CAAC,OAAO,EAAE;oBACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;AAClC,wBAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,QAAQ,CAAA,EAAA,EACX,MAAM,EAAE,MAAM,IAAIA,oBAA4B,CAAC,QAAQ,EACvD,MAAM,EACN,CAAA,CAAA;AACH,qBAAA;AACF,iBAAA;AACD,gBAAA,OAAO,QAAQ,CAAC;AAClB,aAAC,CAAC;SACH,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEO,WAAW,CAAC,CAAwB,EAAE,QAAuC,EAAA;QACnF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACxB,gBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;AACF,gBAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;gBACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACxE,MAAM,eAAe,GAAG,GAAG,CAAC;gBAC5B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClC,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,CACX,EAAA,EAAA,QAAQ,EAAE;4BACR,MAAM;4BACN,KAAK;AACL,4BAAA,iBAAiB,EAAE,gBAAgB;4BACnC,eAAe;yBAChB,EACD,CAAA,CAAA;AACH,iBAAA;AACD,gBAAA,OAAO,QAAQ,CAAC;AAClB,aAAC,CAAC;SACH,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAEO,IAAA,WAAW,CAAC,CAAwB,EAAA;QAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACxB,gBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;gBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;AAClC,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACD,gBAAA,OAAO,QAAQ,CAAC;AAClB,aAAC,CAAC;AACH,SAAA,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;AAClB,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAEM,IAAA,QAAQ,CAAC,CAA+B,EAAA;AAC7C,QAAA,IAAI,CAAC,CAAC;YAAE,OAAO;AACf,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACpB;IAEM,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;KACpC;AAEM,IAAA,eAAe,CAAC,CAA+B,EAAE,MAAiB,EAAE,MAAe,EAAA;AACxF,QAAA,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/C;AAEM,IAAA,eAAe,CAAC,CAAwB,EAAA;AAC7C,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACrB;IAEM,eAAe,CAAC,CAAwB,EAAE,QAAuC,EAAA;AACtF,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC/B;IAEM,WAAW,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,GAAG,CAAC,CAAC,CAAM,KAAI;AACb,YAAA,OAAO,CAAC,CAAC;SACV,CAAC,CACH,CAAC;KACH;;iIAlHU,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApC,oCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oCAAoC,cAFnC,MAAM,EAAA,CAAA,CAAA;2FAEP,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCCY,yCAAyC,CAAA;AASpD,IAAA,WAAA,GAAA;AARQ,QAAA,IAAK,CAAA,KAAA,GAA4B,EAAE,CAAC;QAIpC,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAA,CAAA,iBAAiB,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAGrD,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KACxC;AAEO,IAAA,UAAU,CAAC,CAAwB,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;AAEO,IAAA,qBAAqB,CAAC,CAAwB,EAAE,MAAe,EAAE,MAAiB,EAAA;QACxF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACxB,gBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;gBACF,IAAI,GAAG,CAAC,MAAM,KAAKA,oBAA4B,CAAC,OAAO,EAAE;oBACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;AAClC,wBAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,QAAQ,CAAA,EAAA,EACX,MAAM,EAAE,MAAM,IAAIA,oBAA4B,CAAC,QAAQ,EACvD,MAAM,EACN,CAAA,CAAA;AACH,qBAAA;AACF,iBAAA;AACD,gBAAA,OAAO,QAAQ,CAAC;AAClB,aAAC,CAAC;SACH,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEO,WAAW,CAAC,CAAwB,EAAE,QAAuC,EAAA;QACnF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACxB,gBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;AACF,gBAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;gBACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAE,CAAC,KAAK,KAAK,IAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACtE,MAAM,eAAe,GAAG,GAAG,CAAC;gBAC5B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClC,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,CACX,EAAA,EAAA,QAAQ,EAAE;4BACR,MAAM;4BACN,KAAK;AACL,4BAAA,iBAAiB,EAAE,gBAAgB;4BACnC,eAAe;yBAChB,EACD,CAAA,CAAA;AACH,iBAAA;AACD,gBAAA,OAAO,QAAQ,CAAC;AAClB,aAAC,CAAC;SACH,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAEO,IAAA,WAAW,CAAC,CAAwB,EAAA;QAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,KAAI;AACxB,gBAAA,MAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,GAAG,CACP,CAAC;gBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;AAClC,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACD,gBAAA,OAAO,QAAQ,CAAC;AAClB,aAAC,CAAC;AACH,SAAA,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;AAClB,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,CAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACpB;IAEM,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;KACpC;AAEM,IAAA,eAAe,CAAC,CAAwB,EAAE,MAAiB,EAAE,MAAe,EAAA;QACjF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/C;AAEM,IAAA,eAAe,CAAC,CAAwB,EAAA;AAC7C,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACrB;IAEM,eAAe,CAAC,CAAwB,EAAE,QAAuC,EAAA;AACtF,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC/B;IAEM,WAAW,GAAA;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACxB,GAAG,CAAC,CAAC,CAAM,KAAI;AACb,YAAA,OAAO,CAAC,CAAC;SACV,CAAC,CACH,CAAC;KACH;IAEM,mBAAmB,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,CAAM,KAAI;AACb,YAAA,OAAO,CAAC,CAAC;SACV,CAAC,CACH,CAAC;KACH;;sIA7HU,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzC,yCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yCAAyC,cAFxC,MAAM,EAAA,CAAA,CAAA;2FAEP,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBAHrD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCDY,+BAA+B,CAAA;AAC1C,IAAA,WAAA,CAAoB,MAAc,EAAA;AAAd,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;KAEjC;AAEO,IAAA,YAAY,CAAC,KAA6B,EAAA;QAChD,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC5C,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,OAAO,CAAC,KAAa,EAAE,KAAU,EAAA;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAClD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC9D,QAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;KAC3B;AAEM,IAAA,OAAO,CAAC,KAAa,EAAA;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAClD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE9D,MAAM,KAAK,GAAQ,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC9F,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,4BAA4B,CAAC,KAAa,EAAE,MAAe,EAAA;AAChE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAI,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,oBAAoB,EAAE,CAAA,CAAC;QACxF,IAAI,KAAK,GAAQ,IAAI,CAAC;AACtB,QAAA,IAAI,cAAc,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE;YACxD,KAAK,GAAG,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,MAAM,CAAC,KAAK,CAAC;AAClC,SAAA;AAED,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;KACpC;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAClD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC9D,QAAA,IAAI,KAAK,GAAW,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC;AACjE,cAAE,CAAA,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,QAAQ,0CAAE,GAAG,CAAC,KAAK,CAAC,KAAI,EAAE;cACjC,EAAE,CAAC;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAAE,YAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClF,QAAA,OAAO,KAAK,CAAC;KACd;;4HA7CU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA,CAAA;2FAEP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCKY,+BAA+B,CAAA;IAK1C,WACS,CAAA,gBAAkC,EACjC,2BAA2D,EAAA;AAD5D,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AACjC,QAAA,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAAgC;AAN7D,QAAA,IAAQ,CAAA,QAAA,GAAuC,EAAE,CAAC;AAElD,QAAA,IAAe,CAAA,eAAA,GAAuC,EAAE,CAAC;;KAOhE;AAEO,IAAA,aAAa,CAAC,CAA2B,EAAA;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7D;AAEO,IAAA,oBAAoB,CAAC,CAA2B,EAAA;AACtD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC3E;AAEO,IAAA,kBAAkB,CAAC,CAA2B,EAAA;AACpD,QAAA,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;AACd,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAA6B,KAAI;AAC7C,gBAAA,MAAM,UAAU,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACX,GAAG,CACP,CAAC;AACF,gBAAA,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACnB,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACD,gBAAA,OAAO,UAAU,CAAC;AACpB,aAAC,CAAC;AACH,SAAA,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;AAClB,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7D;AAEO,IAAA,yBAAyB,CAAC,CAA2B,EAAA;AAC3D,QAAA,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG;AACrB,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAA6B,KAAI;AAC7C,gBAAA,MAAM,UAAU,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACX,GAAG,CACP,CAAC;AACF,gBAAA,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACnB,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACD,gBAAA,OAAO,UAAU,CAAC;AACpB,aAAC,CAAC;AACH,SAAA,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;AAClB,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC3E;AAEO,IAAA,sBAAsB,CAAC,EAAU,EAAA;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACnC,aAAa,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,QAAQ,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;AACd,YAAA,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAA6B,KAAI;AAC7C,gBAAA,MAAM,UAAU,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACX,GAAG,CACP,CAAC;AACF,gBAAA,IAAI,GAAG,CAAC,EAAE,MAAK,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,EAAE,CAAA,EAAE;AACpB,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACD,gBAAA,OAAO,UAAU,CAAC;AACpB,aAAC,CAAC;AACH,SAAA,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;AAClB,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7D;AAUO,IAAA,MAAM,CAAC,GAA6B,EAAA;AAC1C,QAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;AAE/D,QAAA,MAAM,SAAS,GAAG,WAAW,KAAK,CAAC,GAAG,IAAI,KAAM,GAAC,CAAC,CAAC;QAEnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAM,CAAA,EAAG,GAAG,CAAE,CAAA,EAAE,MAAM,CAAC,CAAC,SAAS,CAC1E,CAAC,IAAS,KAAI;AACZ,YAAA,MAAM,iCAEC,IAAI,CAAA,EACJ,IAAI,CAET,EAAA,GAAG,CACJ,CAAC;AACJ,SAAC,EACD,CAAC,GAAsB,KAAI;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC7B,YAAA,SAAS,mBAEF,IAAI,CAAA,EAET,GAAG,EACH,GAAG,CACJ,CAAC;AACJ,SAAC,CACF,CAAC;KACH;AAWO,IAAA,aAAa,CAAC,GAA6B,EAAA;AACjD,QAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;AAE/D,QAAA,MAAM,SAAS,GAAG,WAAW,KAAK,CAAC,GAAG,IAAI,KAAM,GAAC,CAAC,CAAC;QAEnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAM,CAAA,EAAG,GAAG,CAAE,CAAA,EAAE,MAAM,CAAC,CAAC,SAAS,CAC1E,CAAC,IAAS,KAAI;AACZ,YAAA,MAAM,iCAEC,IAAI,CAAA,EACJ,IAAI,CAET,EAAA,GAAG,CACJ,CAAC;AACJ,SAAC,EACD,CAAC,GAAsB,KAAI;AACzB,YAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;AACpC,YAAA,SAAS,mBAEF,IAAI,CAAA,EAET,GAAG,EACH,GAAG,CACJ,CAAC;AACJ,SAAC,CACF,CAAC;KACH;AAEM,IAAA,WAAW,CAAC,CAA2B,EAAE,KAAA,GAAgB,IAAI,EAAA;AAClE,QAAA,MAAM,EAAE,GAAG,CAAA,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,EAAE,KAAI,CAAA,EAAG,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5D,QAAA,MAAM,GAAG,GACJ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAC,CACJ,EAAA,EAAA,EAAE,GACH,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,MAAM,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACN,GAAG,CACN,EAAA,EAAA,QAAQ,IACR,CAAC;SACJ,EAAE,KAAK,CAAC,CAAC;AAEV,QAAA,MAAM,GAAG,GACJ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CACN,EAAA,EAAA,QAAQ,GACT,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,OAAO,GAAG,CAAC;KACZ;AAEM,IAAA,kBAAkB,CAAC,CAA2B,EAAE,KAAA,GAAgB,IAAI,EAAA;AACzE,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,aAAa,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACb,CAAC,CACJ,EAAA,EAAA,QAAQ,IACR,CAAC;SACJ,EAAE,KAAK,CAAC,CAAC;AAEV,QAAA,MAAM,GAAG,GACJ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAC,CACJ,EAAA,EAAA,EAAE,EAAE,CAAG,EAAA,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAC3C,QAAQ,GACT,CAAC;AAEF,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAA,OAAO,GAAG,CAAC;KACZ;AAEM,IAAA,cAAc,CAAC,CAA2B,EAAA;AAC/C,QAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KAC5B;AAEM,IAAA,qBAAqB,CAAC,CAA2B,EAAA;AACtD,QAAA,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;KACnC;AAEM,IAAA,kBAAkB,CAAC,EAAU,EAAA;AAClC,QAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;KACjC;AAEM,IAAA,eAAe,CAAC,EAAU,EAAA;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAA6B,KAAI;AAC7D,YAAA,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,CAAC,CAAC;KACV;;4HAnNU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAwC,8BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA,CAAA;AA0FlB,UAAA,CAAA;AARC,IAAA,oBAAoB,CAAC;AACpB,QAAA,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1C,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,YAAY,EAAE,KAAK;AACpB,SAAA;KACF,CAAC;CA2BD,EAAA,+BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA,CAAA;AAWD,UAAA,CAAA;AATC,IAAA,oBAAoB,CAAC;AACpB,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC9C,sBAAsB,EAAE,CAAC,GAAG,CAAC;AAC9B,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,YAAY,EAAE,KAAK;AACpB,SAAA;KACF,CAAC;CA2BD,EAAA,+BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;2FAvJU,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;AAyFS,SAAA,CAAA,EAAA,cAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,IAAA,EAAAxC,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAAwC,8BAAA,EAAA,CAAA,CAAA,EAAA,EAAA,cAAA,EAAA,EAAA,MAAM,MAqCN,aAAa,EAAA,EAAA,EAAA,EAAA,CAAA;;ACzHvB;;;;;;;;;;AAUG;AACG,MAAgB,gCAGpB,SAAQ,uBAAuB,CAAA;AAK/B,IAAA,WAAA,CACE,gBAAkC,EAClC,YAA0C,EAChC,KAAY,EACtB,MAAS,EAAA;AAET,QAAA,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAH5B,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAItB,QAAA,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AAEtC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;KAC3B;AAEO,IAAA,kBAAkB,CAAC,IAAS,EAAE,WAAW,GAAG,IAAI,EAAA;;QACtD,IAAI;AACF,YAAA,IAAI,IAAO,CAAC;AAEZ,YAAA,IAAI,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;gBACnB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;gBACzC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtC,gBAAA,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAEtB,gBAAA,IAAI,WAAW,EAAE;oBACf,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAhB,IAAI,EAAe,MAAM,CAAC,CAAC;AAC5B,iBAAA;gBAED,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAf,IAAI,EAAc,IAAI,CAAC,CAAC;AACzB,aAAA;;gBAAM,IAAI,GAAG,IAAI,CAAC;YAEnB,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAX,IAAI,EAAU,IAAI,CAAC,CAAC;AACrB,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA,CAAE,CAAC,CAAC;AAClE,SAAA;KACF;AAES,IAAA,aAAa,CAAC,IAA2B,EAAA;QACjD,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACxB,IAAI;AACL,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC7D,SAAA;KACF;AAES,IAAA,WAAW,CAAC,IAAa,EAAA;QACjC,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,CAAC,IAAO,KAAI;;gBACzB,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,gBAAA,MAAM,EAAE,IAAI,EAAE,GAAG,CAAA,MAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,MAAM,CAAC,KAAI;AACnE,oBAAA,IAAI,EAAE,EAAE;iBACT,CAAC;AAEF,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AAClC,iBAAA;gBAED,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,EAAE,EACF,CAAA,CAAA;AACJ,aAAC,CAAC;YAEF,IAAI,IAAI,YAAY,KAAK,EAAE;AACzB,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAO,KAAI;AAC1B,oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,iBAAC,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC3D,SAAA;KACF;AAES,IAAA,MAAM,CAAE,IAAa,EAAA;QAC7B,IAAI;YACF,IAAI,UAAU,GAAG,WAAW,CAAC;YAE7B,IAAI,IAAI,YAAY,KAAK,EAAE;gBACzB,UAAU,GAAG,WAAW,CAAC;AAC1B,aAAA;YAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtB,gBAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC7B,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA,CAAE,CAAC,CAAC;AACtD,SAAA;KACF;AAES,IAAA,UAAU,CAAE,IAAmB,EAAA;QACvC,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrB,IAAI;AACL,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC1D,SAAA;KACF;AAES,IAAA,WAAW,CAAE,IAAoB,EAAA;QACzC,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBACtB,IAAI;AACL,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC3D,SAAA;KACF;AAWe,IAAA,QAAQ,CAAC,GAAW,EAAE,WAAW,GAAG,IAAI,EAAA;;;YACtD,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAExC,IAAI;AACF,gBAAA,MAAM,IAAI,GAAG,OAAM,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAM,GAAG,CAAA,CAAE,SAAS,EAAE,CAAA,CAAC;AACpE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC3C,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,aAAA;AAAC,YAAA,OAAO,CAAM,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,OAAO,CAAA,CAAE,CAAC,CAAC;AAClC,aAAA;;AACF,KAAA;AAEe,IAAA,YAAY,CAAC,UAA+B,EAAA;;AAC1D,YAAA,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,KAAK;AACrB,iBAAA,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC9B,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,EAAE,CAAC;AAEf,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;AAC9B,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI;AAC9E,gBAAA,IAAI,EAAE,EAAE;aACT,CAAC;AAEF,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;;;;;;;;;AAcG;AACI,IAAA,IAAI,CAAE,IAAS,EAAA;AACpB,QAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;AAEM,IAAA,QAAQ,CAAE,IAAS,EAAA;AACxB,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;AACF,CAAA;AApDC,UAAA,CAAA;AATC,IAAA,oBAAoB,CAAC;AACpB,QAAA,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,CAAC;YACrB,sBAAsB,EAAE,CAAC,GAAG,CAAC;AAC9B,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA;KACF,CAAC;CAYD,EAAA,gCAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;;MCrKmB,uBAAuB,CAAA;IAC3C,OAAO,UAAU,CAAI,UAAkB,EAAA;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,WAAA,CAAa,EAAE,KAAK,EAA0B,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,MAAA,CAAQ,EAAE,KAAK,EAA4B,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,YAAY,CACjC,CAAA,CAAA,EAAI,UAAU,CAAA,iBAAA,CAAmB,EACjC,KAAK,EAAgC,CACtC,CAAC;QACF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,YAAA,CAAc,EAAE,KAAK,EAAiB,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,YAAA,CAAc,EAAE,KAAK,EAAe,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,YAAA,CAAc,EAAE,KAAK,EAAe,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,YAAY,CAChC,CAAA,CAAA,EAAI,UAAU,CAAA,gBAAA,CAAkB,EAChC,KAAK,EAAmC,CACzC,CAAC;QACF,MAAM,UAAU,GAAG,YAAY,CAC7B,CAAA,CAAA,EAAI,UAAU,CAAA,aAAA,CAAe,EAC7B,KAAK,EAA2B,CACjC,CAAC;QACF,MAAM,WAAW,GAAG,YAAY,CAC9B,CAAA,CAAA,EAAI,UAAU,CAAA,cAAA,CAAgB,EAC9B,KAAK,EAAqC,CAC3C,CAAC;QAEF,OAAO;YACL,KAAK;YACL,IAAI;YACJ,cAAc;YACd,SAAS;YACT,SAAS;YACT,SAAS;YACT,aAAa;YACb,WAAW;YACX,UAAU;SACX,CAAC;KACH;AACF;;ACjCD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,KAAa,KAAI;;AACjD,IAAA,MAAM,GAAG,GAAQ,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/B,IAAA,OAAO,CAAC,EAAC,CAAA,EAAA,GAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,KAAK,CAAC,CAAA,CAAC;AAC/B,CAAC,CAAC;MAEoB,yBAAyB,CAAA;IAC7C,OAAO,YAAY,CAAyB,OAAiB,EAAA;QAC3D,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE9D,MAAM,SAAS,GAAQ,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AAEtE,QAAA,MAAM,kBAAkB,GAAG,CAAC,KAA6B,KAAI;AAC3D,YAAA,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,QAAa,KAAS;AACtD,gBAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAI,KAAI;AAC9B,oBAAA,OAAO,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC;AAC3C,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;AAEF,QAAA,MAAM,qBAAqB,GAAG,CAAC,KAA6B,KAAI;AAC9D,YAAA,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,QAAa,KAAc;gBAC3D,QACE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAI,KAAI;AACrB,oBAAA,OAAO,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC;AAC3C,iBAAC,CAAC,IAAI,IAAI,EACV;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;QAEF,MAAM,aAAa,GAAG,MAAK;AACzB,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;gBACrD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,CAAC,KAA8B,KAAI;AACrD,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;;AACrD,gBAAA,IAAI,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,UAAU,EAAE;oBACrB,OAAO,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,0CAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AACxC,iBAAA;gBAED,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;AAEF,QAAA,MAAM,UAAU,GAAG,CAAC,KAA8B,KAAI;AACpD,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;;AACrD,gBAAA,IAAI,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,UAAU,EAAE;oBACrB,OAAO,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,0CAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AACvC,iBAAA;gBAED,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;QAEF,MAAM,UAAU,GAAG,MAAK;AACtB,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;gBACrD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAG,CAAC,KAA0C,KAAI;AACxE,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;;AACrD,gBAAA,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;AAC7B,gBAAA,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;gBAClC,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,IAAI;AACF,oBAAA,MAAM,mBAAmB,GAAG,QAAQ,CAAC,CAAG,EAAA,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAG,UAAU,CAAC,0CAAE,GAAG,CAAA,CAAE,CAAC,CAAC;oBACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAA,CAAE,CAAC,CAAC;oBACrC,aAAa;wBACX,CAAA,CAAA,EAAA,GAAA,mBAAmB,KAAnB,IAAA,IAAA,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,OAAK,CAAA,EAAA,GAAA,SAAS,aAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAA;4BAC/D,CAAA,CAAA,EAAA,GAAA,mBAAmB,KAAnB,IAAA,IAAA,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,OAAK,MAAA,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAA,CAAC;AAC9D,oBAAA,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnE,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;;AAEX,iBAAA;gBAED,OAAO;oBACL,aAAa;oBACb,QAAQ;iBACT,CAAC;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;QAEF,OAAO;YACL,WAAW;YACX,SAAS;YACT,UAAU;YACV,aAAa;YACb,WAAW;YACX,kBAAkB;YAClB,qBAAqB;YACrB,UAAU;YACV,kBAAkB;SACnB,CAAC;KACH;AACF;;AC/FD;;;;;;;;;;AAUG;AACG,MAAgB,4BAGpB,SAAQ,uBAAuB,CAAA;AAK/B,IAAA,WAAA,CACE,gBAAkC,EAClC,YAA0C,EAChC,KAAY,EACtB,MAAS,EAAA;AAET,QAAA,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAH5B,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAItB,QAAA,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AAEtC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;KAC3B;AAEO,IAAA,kBAAkB,CAAC,IAAS,EAAE,UAAkB,EAAE,WAAW,GAAG,IAAI,EAAA;;QAC1E,IAAI;AACF,YAAA,IAAI,IAAO,CAAC;AAEZ,YAAA,IAAI,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;gBACnB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;gBACzC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtC,gBAAA,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAEtB,gBAAA,IAAI,WAAW,EAAE;oBACf,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAhB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAI,EAAe,MAAM,EAAE,UAAU,CAAC,CAAC;AACxC,iBAAA;gBAED,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAf,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAI,EAAc,IAAI,EAAE,UAAU,CAAC,CAAC;AACrC,aAAA;;gBAAM,IAAI,GAAG,IAAI,CAAC;YAEnB,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAX,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAI,EAAU,IAAI,EAAE,UAAU,CAAC,CAAC;AACjC,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA,CAAE,CAAC,CAAC;AAClE,SAAA;KACF;IAEe,kBAAkB,CAAC,GAAW,EAAE,UAAkB,EAAA;;YAChE,IAAI;gBACF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;gBAEzC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,IAC/B,MAAM,KAAK;qBACR,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;AACxD,qBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACb,SAAS,EAAE,CACf,CAAC;gBAEF,IAAI,aAAa,IAAI,QAAQ,EAAE;AAC7B,oBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC9C,iBAAA;gBAED,OAAO,EAAE,aAAa,EAAE,CAAC;AAC1B,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA,CAAE,CAAC,CAAC;AAClE,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAES,IAAA,aAAa,CAAC,IAA2B,EAAA;QACjD,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACxB,IAAI;AACL,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC7D,SAAA;KACF;IAES,WAAW,CAAC,IAAa,EAAE,UAAkB,EAAA;QACrD,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,CAAC,IAAO,KAAI;;gBACzB,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,gBAAA,MAAM,EAAE,IAAI,EAAE,GAAG,CAAA,MAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,MAAM,CAAC,KAAI;AACnE,oBAAA,IAAI,EAAE,EAAE;iBACT,CAAC;AAEF,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AAClC,iBAAA;gBAED,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,KACP,UAAU;AACV,oBAAA,EAAE,EACF,CAAA,CAAA;AACJ,aAAC,CAAC;YAEF,IAAI,IAAI,YAAY,KAAK,EAAE;AACzB,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAO,KAAI;AAC1B,oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,iBAAC,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC3D,SAAA;KACF;IAES,MAAM,CAAE,IAAa,EAAE,UAAkB,EAAA;QACjD,IAAI;YACF,IAAI,UAAU,GAAG,WAAW,CAAC;YAE7B,IAAI,IAAI,YAAY,KAAK,EAAE;gBACzB,UAAU,GAAG,WAAW,CAAC;AAC1B,aAAA;YAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACtB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;AACzC,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA,CAAE,CAAC,CAAC;AACtD,SAAA;KACF;IAES,UAAU,CAAE,IAAmB,EAAE,UAAkB,EAAA;QAC3D,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AACrB,gBAAA,IAAI,EAAE;oBACJ,CAAC,UAAU,GAAG,IAAI;AACnB,iBAAA;AACF,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC1D,SAAA;KACF;IAES,WAAW,CAAE,IAAoB,EAAE,UAAkB,EAAA;QAC7D,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACtB,gBAAA,IAAI,EAAE;oBACJ,CAAC,UAAU,GAAG,IAAI;AACnB,iBAAA;AACF,aAAA,CAAC,CACH,CAAC;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC3D,SAAA;KACF;AAWe,IAAA,QAAQ,CAAC,GAAW,EAAE,UAAkB,EAAE,WAAW,GAAG,IAAI,EAAA;;;YAC1E,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAExC,IAAI;AACF,gBAAA,MAAM,IAAI,GAAG,OAAM,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAM,GAAG,CAAA,CAAE,SAAS,EAAE,CAAA,CAAC;gBACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBACvD,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,aAAA;AAAC,YAAA,OAAO,CAAM,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,OAAO,CAAA,CAAE,CAAC,CAAC;AAClC,aAAA;;AACF,KAAA;IAEe,YAAY,CAAC,UAA+B,EAAE,UAAkB,EAAA;;AAC9E,YAAA,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,KAAK;iBACrB,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AAC5C,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,EAAE,CAAC;AAEf,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;AAC9B,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI;AAC9E,gBAAA,IAAI,EAAE,EAAE;aACT,CAAC;AAEF,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACjC,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;;;;;;;;;AAcG;AACI,IAAA,IAAI,CAAE,IAAS,EAAA;AACpB,QAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;AAEM,IAAA,QAAQ,CAAE,IAAS,EAAA;AACxB,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;AACF,CAAA;AApDC,UAAA,CAAA;AATC,IAAA,oBAAoB,CAAC;AACpB,QAAA,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,CAAC;YACrB,sBAAsB,EAAE,CAAC,GAAG,CAAC;AAC9B,SAAA;AACD,QAAA,iBAAiB,EAAE;AACjB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA;KACF,CAAC;CAYD,EAAA,4BAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;;MCjMU,QAAQ,CAAA;IACnB,WAC8B,CAAA,KAA6B,EAC9B,IAA4B,EAAA;AAD3B,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAwB;AAC9B,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAwB;;KAGxD;AAEK,IAAA,CAAC,CAAC,IAAY,EAAA;;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3C,gBAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACzC,aAAA;AAED,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAClD;AACE,gBAAA,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1C,aAAA,EACD,GAAG,EACH,cAAc,CAAC,IAAI,CAAC,CACrB,CAAC;AACF,YAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAClC,CAAA,CAAA;AAAA,KAAA;IAEa,CAAC,GAAA;;AACb,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACzD,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE;gBACjF,SAAS;gBACT,SAAS;AACV,aAAA,CAAC,CAAC;SACJ,CAAA,CAAA;AAAA,KAAA;;qGAhCU,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAET,UAAU,EAAA,EAAA,EAAA,KAAA,EACV,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHR,QAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAQ,cAFP,MAAM,EAAA,CAAA,CAAA;2FAEP,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;8BAGI,MAAM;+BAAC,UAAU,CAAA;;8BACjB,MAAM;+BAAC,SAAS,CAAA;;;;MCFR,kCAAkC,CAAA;AAK7C,IAAA,WAAA,CACU,GAAsB,EACtB,UAAsB,EACtB,mBAA2C,EAAA;AAF3C,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACtB,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAwB;AAPnC,QAAA,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QASrC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAkB,KAAI;AACjE,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,IAAI,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;KACJ;IAEO,IAAI,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEO,aAAa,GAAA;;AACnB,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,OAAO,GAAG,MAAM,CAAC;AAErB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC;AACtD,YAAA,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,EAAE;YACpE,OAAO;AACR,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,GAAG,OAAO,CAAC;AACnB,SAAA;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAEtD,IAAI,OAAO,KAAK,MAAM,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AACxC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;;+HAhDU,kCAAkC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mHAAlC,kCAAkC,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAH9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;iBACxC,CAAA;mKAEmB,OAAO,EAAA,CAAA;sBAAxB,KAAK;uBAAC,SAAS,CAAA;;;MCAL,yBAAyB,CAAA;AAKpC,IAAA,WAAA,CACU,GAAsB,EACtB,UAAsB,EACtB,6BAA4D,EAAA;AAF5D,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACtB,QAAA,IAA6B,CAAA,6BAAA,GAA7B,6BAA6B,CAA+B;AAL9D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;;KAQtC;AAEO,IAAA,UAAU,CAAC,OAAe,EAAA;AAChC,QAAA,MAAM,EAAE,6BAA6B,EAAE,GAAG,IAAI,CAAC;QAE/C,IAAI,CAAC,6BAA6B,EAAE;AAClC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAED,QAAA,OAAO,CAAA,6BAA6B,KAA7B,IAAA,IAAA,6BAA6B,KAA7B,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,6BAA6B,CAAE,OAAO,CAAC,OAAO,CAAC,KAAI,KAAK,CAAC;KACjE;IAEO,aAAa,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAO,GAAG,MAAM,CAAC;AAErB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;YACnD,OAAO;AACR,SAAA;AAED,QAAA,IAAI,IAAI,EAAE;YACR,OAAO,GAAG,OAAO,CAAC;AACnB,SAAA;QAED,IAAI,OAAO,KAAK,MAAM,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AACxC,SAAA;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAChC;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACrD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAEzB,IAAI,CAAC,6BAA6B,CAAC,OAAO;AACvC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,GAAY,KAAI;AAC1B,YAAA,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;sHA7DU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,6BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;iBAC/B,CAAA;0KAEuB,OAAO,EAAA,CAAA;sBAA5B,KAAK;uBAAC,aAAa,CAAA;;;MCIT,yBAAyB,CAAA;AAKpC,IAAA,WAAA,CACU,WAA6B,EAC7B,aAA+B,EAC/B,UAAsB,EAAA;AAFtB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AAC7B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAC/B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAPxB,QAAA,IAAI,CAAA,IAAA,GAAgC,IAAI,CAAC;AAEzC,QAAA,IAAc,CAAA,cAAA,GAAuB,IAAI,CAAC;AAQzC,QAAA,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAElC,QAAA,IAAoB,CAAA,oBAAA,GAAuB,IAAI,CAAC;KAJrD;AAMJ,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,sBAAsB,CAAC,EAAE;YAClE,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;KACF;IAED,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,IAAI,CAAC,IAAI;AAAE,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAE1C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,gBAAgB,IAAI,CAAC,oBAAoB,CAAA,CAAE,CAAC;YAE5E,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CACnD,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAC1C,CAAC;AACH,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;gBACzD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAChE,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;AAED,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrE,SAAA;KACF;;sHA1CU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;iBAC/B,CAAA;0JAYU,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;;;MCoBK,yBAAyB,CAAA;;sHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,iBA7BlC,0BAA0B;QAC1B,uBAAuB;QACvB,yBAAyB;QACzB,kCAAkC;QAClC,oBAAoB;QACpB,kCAAkC;QAClC,6BAA6B;QAC7B,0BAA0B;QAC1B,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB;AACzB,QAAA,gCAAgC,CAExB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,aAEnC,0BAA0B;QAC1B,uBAAuB;QACvB,yBAAyB;QACzB,kCAAkC;QAClC,oBAAoB;QACpB,yBAAyB;QACzB,kCAAkC;QAClC,6BAA6B;QAC7B,0BAA0B;QAC1B,yBAAyB;QACzB,yBAAyB;QACzB,gCAAgC,CAAA,EAAA,CAAA,CAAA;AAGvB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAhB3B,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA,EAAA,CAAA,CAAA;2FAgB3B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA/BrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,0BAA0B;wBAC1B,uBAAuB;wBACvB,yBAAyB;wBACzB,kCAAkC;wBAClC,oBAAoB;wBACpB,kCAAkC;wBAClC,6BAA6B;wBAC7B,0BAA0B;wBAC1B,yBAAyB;wBACzB,yBAAyB;wBACzB,yBAAyB;wBACzB,gCAAgC;AACjC,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;AACtC,oBAAA,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,uBAAuB;wBACvB,yBAAyB;wBACzB,kCAAkC;wBAClC,oBAAoB;wBACpB,yBAAyB;wBACzB,kCAAkC;wBAClC,6BAA6B;wBAC7B,0BAA0B;wBAC1B,yBAAyB;wBACzB,yBAAyB;wBACzB,gCAAgC;AACjC,qBAAA;iBACF,CAAA;;;MC3BY,mCAAmC,CAAA;IAC9C,WACU,CAAA,8BAA8D,EAC9D,6BAA4D,EAAA;AAD5D,QAAA,IAA8B,CAAA,8BAAA,GAA9B,8BAA8B,CAAgC;AAC9D,QAAA,IAA6B,CAAA,6BAAA,GAA7B,6BAA6B,CAA+B;;KAGrE;IAEa,MAAM,CAAC,OAAyB,EAAE,KAAwB,EAAA;;;YACtE,IAAI;gBACF,IAAI,IAAI,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;oBAClE,OAAM,MAAA,IAAI,CAAC,8BAA8B,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,EAAE,CAAA,CAAC;oBAC1D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,0BAA0B,CAClF,OAAO,CACR,CAAC;AACF,oBAAA,OAAO,OAAO,CAAC;AAChB,iBAAA;AACF,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACtB,aAAA;AAED,YAAA,OAAO,IAAI,CAAC;;AACb,KAAA;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,GAAG,CAAC,CAAC,KAAqB,KAAI;AAC5B,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAwB,KAAI;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAC3C,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,KAAU,KAAI;AACjB,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC,EACF,QAAQ,CAAC,CAAC,IAAS,KAAI;AACrB,gBAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACtB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9B,aAAC,CAAC,EACF,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AACvE,gBAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;aAC1B,CAAC,CACH,CAAC;SACH,CAAC,CACH,CAAC;KACH;;gIAhDU,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,8BAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,6BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oIAAnC,mCAAmC,EAAA,CAAA,CAAA;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAD/C,UAAU;;;MCHE,oCAAoC,CAAA;AAC/C,IAAA,WAAA,CACU,WAA2C,EAC3C,oBAAmD,EACnD,MAA8B,EAAA;AAF9B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgC;AAC3C,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA+B;AACnD,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAwB;;KAGvC;AAEa,IAAA,MAAM,CAAC,OAAyB,EAAA;;AAC5C,YAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YACxB,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAC1C,IAAI;oBACF,MAAM,IAAI,CAAC,MAAM;AACd,yBAAA,MAAM,EAAE;AACR,yBAAA,IAAI,CACH,KAAK,CAAC,CAAC,GAAQ,KAAI;AACjB,wBAAA,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAC/C,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;AAChB,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;;AAEX,iBAAA;AACF,aAAA;YACD,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI;gBACF,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACnE,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACzC,gBAAA,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACtB,aAAA;AAED,YAAA,OAAO,IAAI,CAAC;SACb,CAAA,CAAA;AAAA,KAAA;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACpC,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,KAAU,KAAI;AACjB,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,EACF,QAAQ,CAAC,CAAC,IAAS,KAAI;AACrB,YAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACtB,gBAAA,UAAU,EAAE,IAAI;AACjB,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9B,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAwB,KAAI;AACtC,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7C,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;SAC1B,CAAC,CACH,CAAC;KACH;;iIArDU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAT,8BAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAAP,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qIAApC,oCAAoC,EAAA,CAAA,CAAA;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBADhD,UAAU;;;ACdX;MAWa,mCAAmC,CAAA;IAC9C,WACU,CAAA,QAAkB,EAClB,oCAA0E,EAAA;AAD1E,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAoC,CAAA,oCAAA,GAApC,oCAAoC,CAAsC;;KAGnF;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;AACpD,QAAA,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAC3C,MAAM,wBAAwB,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAExE,MAAM,qBAAqB,GAAiC,wBAAwB,KAAxB,IAAA,IAAA,wBAAwB,uBAAxB,wBAAwB,CAAE,wBAAwB,EAAE,CAAC;AACjH,QAAA,IAAI,eAAe,CAAC,qBAAqB,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,oCAAoC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAC3E,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,eAAe,CAAC,qBAAqB,CAAC,EAAE;AAC1C,gBAAA,IAAI,CAAC,oCAAoC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;AAClF,aAAA;SACF,CAAC,CACH,CAAC;KACH;AAEO,IAAA,eAAe,CAAC,GAAkC,EAAA;;AACxD,QAAA,QACE,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC;AAC7C,YAAA,cAAc,CAAC,yBAAyB,CAAC,CAAA,EAAA,GAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,EACzD;KACH;;gIA/BU,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,oCAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oIAAnC,mCAAmC,EAAA,CAAA,CAAA;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAD/C,UAAU;;;ACVX;MAWa,+CAA+C,CAAA;AAC1D,IAAA,WAAA,CAAoB,QAAkB,EAAA;AAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;;KAErC;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;;AACpD,QAAA,MAAM,EAAE,QAAQ,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC;QACvD,MAAM,eAAe,GAA6B,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACzF,MAAM,kBAAkB,GAAgC,QAAQ,CAAC,GAAG,CAClE,2BAA2B,CAC5B,CAAC;QAEF,MAAM,UAAU,GAA6C,CAAA,eAAe,KAAA,IAAA,IAAf,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,eAAe,CAAE,8BAA8B,EAAE;AAC5G,cAAE,CAAA,CAAA,EAAA,GAAA,eAAe,aAAf,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAf,eAAe,CAAE,8BAA8B,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,iBAAiB,KAAI,IAAI;cAC5E,IAAI,CAAC;AACT,QAAA,IAAI,2BAA2B,CAAC,UAAU,CAAC,EAAE;YAC3C,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,2BAA2B,CAAC,UAAU,CAAC,EAAE;gBAC3C,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAC3B,aAAA;SACF,CAAC,CACH,CAAC;KACH;AAEO,IAAA,2BAA2B,CAAC,GAA6C,EAAA;AAC/E,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,KAAK,CAAC;AACvB,QAAA,OAAO,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC;AAClD,YAAA,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC;cACxD,GAAG,CAAC,YAAY;cAChB,IAAI,CAAC;KACV;;4IAlCU,+CAA+C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;gJAA/C,+CAA+C,EAAA,CAAA,CAAA;2FAA/C,+CAA+C,EAAA,UAAA,EAAA,CAAA;kBAD3D,UAAU;;;MCCE,oCAAoC,CAAA;AACxC,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO;AACL,YAAA,QAAQ,EAAE,oCAAoC;AAC9C,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,QAAQ,EAAE,+CAA+C;AACzD,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;iIA3BU,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApC,oCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oCAAoC,YAFrC,YAAY,CAAA,EAAA,CAAA,CAAA;kIAEX,oCAAoC,EAAA,OAAA,EAAA,CAFtC,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAEZ,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB,CAAA;;;ACVD;AAGY,IAAA,SAUX;AAVD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,aAAsB,CAAA;AACtB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,kBAA4B,CAAA;AAC5B,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,SAAc,CAAA;AACd,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,SAAc,CAAA;AACd,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,SAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,UAAgB,CAAA;AAClB,CAAC,EAVW,QAAQ,KAAR,QAAQ,GAUnB,EAAA,CAAA,CAAA,CAAA;MAEY,4BAA4B,CAAA;AACvC,IAAA,WAAA,GAAA;;KAEC;AAEO,IAAA,WAAW,CAAC,KAAU,EAAA;AAC5B,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAI;AACjD,YAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;AACrD,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,gBAAA,IAAI,GAAG,KAAK,QAAQ,CAAC,OAAO,EAAE;oBAC5B,OAAO,CAAA,EAAG,GAAG,CAAE,CAAA,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAG,EAAA,MAAM,CAAE,CAAA,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACP;AAEO,IAAA,YAAY,CAAC,KAAU,EAAA;AAC7B,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAI;YACxD,IAAI,IAAI,KAAK,QAAQ,CAAC,EAAE,IAAI,IAAI,KAAK,QAAQ,CAAC,GAAG,EAAE;gBACjD,MAAM,IAAI,GAAI,MAAgB;AAC3B,qBAAA,GAAG,CAAC,CAAC,CAAM,KAAI;AACd,oBAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAI;wBAC9C,IAAI,MAAM,YAAY,MAAM,EAAE;AAC5B,4BAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACnC,yBAAA;wBACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3C,qBAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,iBAAC,CAAC;AACD,qBAAA,MAAM,CAAC,CAAC,CAAM,KAAI;AACjB,oBAAA,OAAO,CAAC,CAAC;AACX,iBAAC,CAAC;AACD,qBAAA,IAAI,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,CAAG,CAAC,CAAC;AACrB,gBAAA,OAAO,CAAG,EAAA,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,CAAG,GAAG,EAAE,EAAE,CAAC;AACrC,aAAA;YACD,IAAI,MAAM,YAAY,MAAM,EAAE;AAC5B,gBAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACnC,aAAA;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI;AACR,aAAA,MAAM,CAAC,CAAC,CAAM,KAAI;AACjB,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC;aACD,IAAI,CAAC,OAAO,CAAC,CAAC;KAClB;IAEO,cAAc,CAAC,GAAW,EAAE,KAAkB,EAAA;AACpD,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE;AACpD,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QACD,IAAI,KAAK,YAAY,MAAM,EAAE;AAC3B,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,CAAG,EAAA,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC;KACzB;AAEM,IAAA,KAAK,CAAC,IAAS,EAAA;QACpB,IAAI;AACF,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAChC,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC5D,SAAA;KACF;IAEM,gBAAgB,CAAC,KAAa,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,EAAA;;QACjF,MAAM,IAAI,GAAQ,IAAI,CAAC;QACvB,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,EAAE,CAAC;AAE5B,YAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC,GAAG,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,CAAC,MAAc,KAAI;AAC9D,gBAAA,IAAI,CAAC,MAAM;AAAE,oBAAA,OAAO,IAAI,CAAC;gBACzB,OAAO;oBACL,CAAC,KAAK,GAAG;AACP,wBAAA,CAAC,EAAE,GAAG,eAAe,GAAG,CAAI,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,EAAG,MAAM,CAAE,CAAA;AACpD,qBAAA;iBACF,CAAC;AACJ,aAAC,CAAE,CAAA,MAAM,CAAC,CAAC,GAAQ,KAAO,EAAA,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,OAAO,OAAO,IAAI,EAAE,CAAC;AACtB,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC5D,SAAA;KACF;IAEM,sBAAsB,CAAC,KAAa,EAAE,MAAM,GAAG,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAA;;AAC5E,QAAA,OAAO,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC,MAAM,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,CAAC,CAAC,KAAI;YAC3C,OAAO;gBACL,CAAC,KAAK,GAAG;oBACP,CAAC,EAAE,GAAG,CAAC;AACR,iBAAA;aACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AACF;;MC9DY,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAvB9B,YAAY;AACZ,QAAA,gBAAgB,EAKhB/C,IAAA,CAAA,eAAA,EAAAgD,qBAAA,EAAAC,oCAAA,EAAAC,4BAAA,EAAA,sBAAsB,EAEtBT,IAAA,CAAA,mBAAA,EAAA,yBAAyB,2BAKzB,oBAAoB;QACpB,YAAY;QACZ,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAQX,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EANrB,SAAA,EAAA;QACT,4BAA4B;QAC5B,+BAA+B;QAC/B,+BAA+B;KAChC,EAtBQ,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,gBAAgB;YAChB,eAAe,CAAC,OAAO,EAAE;YACzB,qBAAqB,CAAC,OAAO,EAAE;YAC/B,oCAAoC,CAAC,OAAO,EAAE;YAC9C,4BAA4B,CAAC,OAAO,EAAE;YACtC,sBAAsB;AACtB,YAAA,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC9C,yBAAyB;AACzB,YAAA,WAAW,CAAC,UAAU,CACpBtB,UAAwC,EACxCgC,OAAqC,CACtC;YACD,oBAAoB;YACpB,YAAY;YACZ,oBAAoB;SACrB,CAAA,EAAA,CAAA,CAAA;2FAOU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAzBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,eAAe,CAAC,OAAO,EAAE;wBACzB,qBAAqB,CAAC,OAAO,EAAE;wBAC/B,oCAAoC,CAAC,OAAO,EAAE;wBAC9C,4BAA4B,CAAC,OAAO,EAAE;wBACtC,sBAAsB;AACtB,wBAAA,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;wBAC9C,yBAAyB;AACzB,wBAAA,WAAW,CAAC,UAAU,CACpBhC,UAAwC,EACxCgC,OAAqC,CACtC;wBACD,oBAAoB;wBACpB,YAAY;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,4BAA4B;wBAC5B,+BAA+B;wBAC/B,+BAA+B;AAChC,qBAAA;iBACF,CAAA;;;AC/CD;;AAEG;;ACFH;;AAEG;;;;"}