UNPKG

333 kBSource Map (JSON)View Raw
1{"version":3,"file":"vendasta-store.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@vendasta/store/lib/pricing/pricing.component.ts","ng://@vendasta/store/lib/pricing/highlight-pricing/highlight-pricing.component.ts","ng://@vendasta/store/lib/pricing/table-pricing/table-pricing.component.ts","ng://@vendasta/store/lib/assets/i18n/en.ts","ng://@vendasta/store/lib/assets/i18n/cs.ts","ng://@vendasta/store/lib/pricing/pricing.module.ts","ng://@vendasta/store/lib/store-card.component.ts","ng://@vendasta/store/lib/store-card.module.ts","ng://@vendasta/store/lib/store.component.ts","ng://@vendasta/store/lib/order-form/dropdown-form-section/dropdown-form-section.component.ts","ng://@vendasta/store/lib/order-form/fields/field.component.ts","ng://@vendasta/store/lib/order-form/fields/field.service.ts","ng://@vendasta/store/lib/header-container/header-container.component.ts","ng://@vendasta/store/lib/header-container/header-container.module.ts","ng://@vendasta/store/lib/order-form/order-form-section/order-form-section-data.ts","ng://@vendasta/store/lib/order-form/order-form-section/order-form-section.component.ts","ng://@vendasta/store/lib/order-form/dropdown-form-section/dropdown-form-section-data.ts","ng://@vendasta/store/lib/order-form/order-form/interface.ts","ng://@vendasta/store/lib/order-form/order-form/order-form.service.ts","ng://@vendasta/store/lib/order-form/order-form/order-form.component.ts","ng://@vendasta/store/lib/order-form/fields/field-base.ts","ng://@vendasta/store/lib/order-form/fields/field-builder/field-builder.component.ts","ng://@vendasta/store/lib/order-form/order-item-list/order-item-list.service.ts","ng://@vendasta/store/lib/order-form/order-item-list/order-item-list.component.ts","ng://@vendasta/store/lib/shared/pricing-pipes.ts","ng://@vendasta/store/lib/order-form/order-form.module.ts","ng://@vendasta/store/lib/store.service.ts","ng://@vendasta/store/lib/files/shared/file.model.ts","ng://@vendasta/store/lib/pricing/pricing.ts","ng://@vendasta/store/lib/shared/sellable.ts","ng://@vendasta/store/lib/shared/case-transform.ts","ng://@vendasta/store/lib/shared/product.ts","ng://@vendasta/store/lib/addon-details/addon-details.component.ts","ng://@vendasta/store/lib/files/files.component.ts","ng://@vendasta/store/lib/files/files.module.ts","ng://@vendasta/store/lib/faqs/faqs.component.ts","ng://@vendasta/store/lib/faqs/faqs.module.ts","ng://@vendasta/store/lib/selling-info/selling-info.component.ts","ng://@vendasta/store/lib/selling-info/selling-info.module.ts","ng://@vendasta/store/lib/restrictions/country/supported-countries.component.ts","ng://@vendasta/store/lib/restrictions/restrictions.module.ts","ng://@vendasta/store/lib/addon-details/addon.module.ts","ng://@vendasta/store/lib/stencils/details-stencil.component.ts","ng://@vendasta/store/lib/stencils/card-stencil.component.ts","ng://@vendasta/store/lib/stencils/card-list-stencil.component.ts","ng://@vendasta/store/lib/stencils/search-bar-stencil.component.ts","ng://@vendasta/store/lib/stencils/list-stencil.component.ts","ng://@vendasta/store/lib/stencils/stencils.module.ts","ng://@vendasta/store/lib/addon-list/addon-list.component.ts","ng://@vendasta/store/lib/addon-list/addon-list.module.ts","ng://@vendasta/store/lib/heimdall-client-token.ts","ng://@vendasta/store/lib/storefront/storefront.component.ts","ng://@vendasta/store/lib/store.module.ts","ng://@vendasta/store/lib/lmi-categories.ts","ng://@vendasta/store/lib/salesperson-details/salesperson-details.component.ts","ng://@vendasta/store/lib/salesperson-details/salesperson-details.module.ts","ng://@vendasta/store/lib/package-details/package.ts","ng://@vendasta/store/lib/package-details/utils.ts","ng://@vendasta/store/lib/package-details/package-details.component.ts","ng://@vendasta/store/lib/products-nav/products-nav.component.ts","ng://@vendasta/store/lib/products-nav/products-nav-v2/products-nav-v2.component.ts","ng://@vendasta/store/lib/products-nav/products-nav.module.ts","ng://@vendasta/store/lib/package-details/package-details.module.ts","ng://@vendasta/store/lib/package-details-v2/package.ts","ng://@vendasta/store/lib/package-details-v2/package-details-v2.component.ts","ng://@vendasta/store/lib/package-details-v2/package-details-v2.module.ts","ng://@vendasta/store/lib/package-dropdown/sales-package.ts","ng://@vendasta/store/lib/package-dropdown/package-dropdown-item/package-dropdown-item.component.ts","ng://@vendasta/store/lib/package-dropdown/package-dropdown.component.ts","ng://@vendasta/store/lib/package-dropdown/package-dropdown.module.ts","ng://@vendasta/store/lib/product-details/product-details.component.ts","ng://@vendasta/store/lib/product-details/product-details.module.ts","ng://@vendasta/store/lib/shared/reseller-item.ts","ng://@vendasta/store/lib/order-form/fields/field-checkbox.ts","ng://@vendasta/store/lib/order-form/fields/field-dropdown.ts","ng://@vendasta/store/lib/order-form/fields/field-fileuploadgroup.ts","ng://@vendasta/store/lib/order-form/fields/field-textarea.ts","ng://@vendasta/store/lib/order-form/fields/field-textbox.ts","ng://@vendasta/store/lib/order-form/fields/field-vbcuser.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { BilledProduct, PricingTier } from '@vendasta/core/billing';\nimport { MarketplaceBillingFrequency, DisplayPriceService } from '@vendasta/core/shared';\nimport { Pricing, Price } from './pricing';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { map, switchMap } from 'rxjs/operators';\n\n@Component({\n selector: 'va-pricing',\n templateUrl: './pricing.component.html',\n styleUrls: ['./pricing.component.scss']\n})\nexport class VaPricingComponent implements OnChanges {\n @Input() pricing: Pricing = null;\n @Input() billedProduct: BilledProduct;\n @Input() wrapFrequency = false;\n @Input() isAddon = false;\n @Input() hasVerifiedContract = false;\n @Input() highlightPrice = true;\n @Input() loaded = true;\n\n pricing$$ = new BehaviorSubject<Pricing>(null);\n billedProduct$$ = new BehaviorSubject<BilledProduct>(null);\n hasVerifiedContract$$ = new BehaviorSubject<boolean>(false);\n\n isFree$: Observable<boolean>;\n shouldContactSales$: Observable<boolean>;\n isFlatPrice$: Observable<boolean>;\n\n pricingTierData$: Observable<{\n isStartingPrice: boolean,\n pricingTierString: string,\n pricingTierForProduct: string,\n pricingTierForAddon: string,\n priceStringForTier: string,\n priceStringForTierWithoutFreq: string,\n }[]>;\n\n priceData$: Observable<{\n isStartingPrice: boolean,\n priceStringForPricingWithoutFrequency: string,\n priceStringForPricingWithFrequency: string,\n frequencyString: string,\n }[]>;\n\n commitmentMessage$: Observable<string>;\n\n get pricing$(): Observable<Pricing> {\n return this.pricing$$.asObservable();\n }\n\n get billedProduct$(): Observable<BilledProduct> {\n return this.billedProduct$$.asObservable();\n }\n\n get hasVerifiedContract$(): Observable<boolean> {\n return this.hasVerifiedContract$$.asObservable();\n }\n\n constructor(private translateService: TranslateService, private displayPriceService: DisplayPriceService) {\n this.isFree$ = combineLatest([this.pricing$, this.billedProduct$, this.hasVerifiedContract$]).pipe(\n map(([pricing, billedProduct, hasVerifiedContract]) => {\n const isFreeHelper = (prices: { price: number }[]): boolean => {\n return prices ? prices.some(p => p.price === 0 || p.price === undefined) : false;\n };\n\n if (hasVerifiedContract && billedProduct) {\n return billedProduct.pricingTiers.length === 1 ? isFreeHelper(billedProduct.pricingTiers) : false;\n }\n return !!pricing && isFreeHelper(pricing.prices);\n })\n );\n\n this.shouldContactSales$ = combineLatest([this.pricing$, this.billedProduct$, this.hasVerifiedContract$]).pipe(\n map(([pricing, billedProduct, hasVerifiedContract]) => {\n const nestedPricesIsContactSales = (prices: { price: number }[]) => {\n return prices && prices.length > 0 ? prices.some(p => p.price === null || p.price < 0) : true;\n };\n\n if (hasVerifiedContract && billedProduct) {\n return nestedPricesIsContactSales(billedProduct.pricingTiers);\n }\n if (!pricing) {\n return true;\n }\n return nestedPricesIsContactSales(pricing.prices);\n })\n );\n\n this.isFlatPrice$ = this.billedProduct$.pipe(map(billedProduct => billedProduct.pricingTiers.length === 1));\n this.pricingTierData$ = this.billedProduct$.pipe(\n switchMap(billedProduct => {\n const pricingTierObservables = billedProduct.pricingTiers.map(pricingTier => {\n return combineLatest(\n of(pricingTier.isStartingPrice),\n this.buildPricingTierString(pricingTier),\n this.buildPricingTierForProduct(pricingTier, billedProduct.billingFrequency),\n this.buildPricingTierForAddon(pricingTier),\n this.buildPriceStringForTier(pricingTier, billedProduct.billingFrequency, pricingTier.isStartingPrice),\n this.buildPriceStringForTier(pricingTier)\n ).pipe(\n map(([isStartingPrice, pricingTierString, pricingTierForProduct,\n pricingTierForAddon, priceStringForTier, priceStringForTierWithoutFreq]) => {\n return {\n isStartingPrice: isStartingPrice,\n pricingTierString: pricingTierString,\n pricingTierForProduct: pricingTierForProduct,\n pricingTierForAddon: pricingTierForAddon,\n priceStringForTier: priceStringForTier,\n priceStringForTierWithoutFreq: priceStringForTierWithoutFreq\n };\n })\n )\n });\n return combineLatest(...pricingTierObservables)\n })\n );\n\n this.priceData$ = this.pricing$.pipe(\n switchMap(pricing => {\n const priceObservables = pricing.prices.map(price => {\n return combineLatest(\n of(price.isStartingPrice),\n this.buildPriceStringForPricing(price, pricing.currency, true, false),\n this.buildPriceStringForPricing(price, pricing.currency, false, true),\n this.buildFrequencyString(price.frequency)\n ).pipe(\n map(([isStartingPrice, priceStringForPricingWithoutFrequency, priceStringForPricingWithFrequency, frequencyString]) => {\n return {\n isStartingPrice: isStartingPrice,\n priceStringForPricingWithoutFrequency: priceStringForPricingWithoutFrequency,\n priceStringForPricingWithFrequency: priceStringForPricingWithFrequency,\n frequencyString: frequencyString\n };\n })\n )\n });\n return combineLatest(...priceObservables);\n })\n );\n\n this.commitmentMessage$ = this.buildCommitmentMessage();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.hasOwnProperty('pricing')) {\n this.pricing$$.next(changes.pricing.currentValue);\n }\n if (changes.hasOwnProperty('billedProduct')) {\n this.billedProduct$$.next(changes.billedProduct.currentValue);\n }\n if (changes.hasOwnProperty('hasVerifiedContract')) {\n this.hasVerifiedContract$$.next(changes.hasVerifiedContract.currentValue);\n }\n }\n\n buildPricingTierString(tier: PricingTier): Observable<string> {\n let max = String(tier.rangeMax);\n if (tier.rangeMax === -1) {\n max = '∞';\n if (tier.rangeMin === 0 || tier.rangeMin === 1) {\n return of('');\n }\n }\n return this.translateService.stream('FRONTEND.STORE.MIN_TO_MAX', {minRange: String(tier.rangeMin), maxRange: max});\n }\n\n buildPricingTierForProduct(tier: PricingTier, frequency?: string): Observable<string> {\n return combineLatest(this.buildPricingTierString(tier), this.buildFrequencyString(frequency)).pipe(\n switchMap(([pricingTier, formattedFrequency]) => {\n if (pricingTier) {\n return this.translateService.stream('FRONTEND.STORE.PRODUCT_PRICING_WITH_FREQUENCY', {\n pricingTier: pricingTier,\n frequency: formattedFrequency\n });\n }\n return of(formattedFrequency);\n })\n );\n }\n\n buildPricingTierForAddon(tier: PricingTier): Observable<string> {\n return this.buildPricingTierString(tier).pipe(\n map(pricingRange => pricingRange ? pricingRange : '')\n );\n }\n\n buildPriceStringForPricing(price: Price, currency: string, excludeFrequency: boolean, canIncludeStartingAtPrefix: boolean):\n Observable<string> {\n return this.displayPriceService.formatDisplayPrice(\n price.price,\n currency,\n (excludeFrequency ? '' : price.frequency) as any,\n true,\n true,\n true,\n price.isStartingPrice && canIncludeStartingAtPrefix,\n )\n }\n\n buildPriceStringForTier(tier: PricingTier, frequency?: MarketplaceBillingFrequency, isStartingPrice?: boolean): Observable<string> {\n return this.displayPriceService.formatDisplayPrice(\n tier.price,\n this.billedProduct.currency,\n frequency as any,\n undefined,\n undefined,\n undefined,\n isStartingPrice);\n }\n\n buildFrequencyString(frequency?: string): Observable<string> {\n return this.displayPriceService.formatBillingFrequency(frequency);\n }\n\n buildCommitmentMessage(): Observable<string> {\n return combineLatest([\n this.translateService.stream('FRONTEND.STORE.PRICING_FREQUENCIES'),\n this.billedProduct$,\n this.pricing$,\n this.isFree$,\n this.shouldContactSales$\n ]).pipe(\n switchMap(([frequencyTranslations, billedProduct, pricing, isFree, shouldContactSales]) => {\n const frequency = billedProduct ? billedProduct.billingFrequency.toString().toLowerCase() :\n pricing && pricing.prices.length > 0 ? pricing.prices[0].frequency.toLowerCase() : '';\n let frequencyString = '';\n if (frequency === 'yearly') {\n frequencyString = frequencyTranslations.YEAR;\n } else if (frequency === 'monthly') {\n frequencyString = frequencyTranslations.MONTH;\n }\n if (!frequencyString || isFree || shouldContactSales) {\n return of('');\n }\n if (billedProduct && billedProduct.commitment) {\n const initial = billedProduct.commitment.initial;\n const recurring = billedProduct.commitment.recurring;\n return this.translateService.stream('FRONTEND.STORE.COMMITMENT_WITH_RENEWAL', {\n initial: initial,\n frequencyString: frequencyString,\n recurring: recurring,\n });\n }\n return of('');\n })\n )\n }\n}\n","import {Component} from '@angular/core';\nimport {VaPricingComponent} from '../pricing.component';\n\n@Component({\n selector: 'highlight-pricing',\n templateUrl: './highlight-pricing.component.html',\n styleUrls: ['./highlight-pricing.component.scss'],\n})\nexport class HighlightPricingComponent extends VaPricingComponent {\n}\n","import {Component} from '@angular/core';\nimport {VaPricingComponent} from '../pricing.component';\n\n@Component({\n selector: 'table-pricing',\n templateUrl: './table-pricing.component.html',\n styleUrls: ['./table-pricing.component.scss'],\n})\nexport class TablePricingComponent extends VaPricingComponent {\n}\n","/*tslint:disable*/\nexport class En {\n static readonly en = {\n \"FRONTEND.STORE\": {\n \"TOTAL\": \"Total\",\n \"CONTACT_SALES\": \"Contact Sales\",\n \"FREE\": \"Free\",\n \"STARTING_AT\": \"Starting at\",\n \"ENABLED_UPPER\": \"ENABLED\",\n \"ENABLE_UPPER\": \"ENABLE\",\n \"MIN_TO_MAX\": \"{{minRange}} to {{maxRange}}\",\n \"PRODUCT_PRICING_WITH_FREQUENCY\": \"{{pricingTier}} accounts {{frequency}}\",\n \"COMMITMENT_WITH_RENEWAL\": \"*{{initial}} {{frequencyString}} minimum, renews for {{recurring}} {{frequencyString}} periods\",\n \"COMMITMENT\": \"${{initial}} ${{frequencyString}} commitment\",\n \"PRICING_FREQUENCIES\": {\n \"MONTH\": \"month\",\n \"YEAR\": \"year\"\n },\n \"REQUIRES_DESCRIPTOR\": \"(Requires {{requirementName}})\",\n \"ADMINISTRATIVE_QUESTIONS\": \"Administrative Questions\",\n \"AUTO_TITLE_TEXT\": {\n \"SOME_FIELDS_INVALID\": \"* Some fields are invalid and/or required but empty\",\n \"OPTIONAL_FIELDS_UNANSWERED\": \"Optional fields unanswered\",\n \"COMPLETE\": \"Complete\"\n },\n \"REQUIRES\": \"Requires\",\n \"ENABLED_WITH_PREREQUISITE\": \"Enabled with {{prerequisite}}\",\n \"PRICE_APPLIES_PER_UNIT\": \"Price applies per unit within a range\",\n \"PRICE_APPLIES_TO_ALL_UNITS\": \"Price applies to all units once range is met\",\n \"PRICING\": \"Pricing\",\n \"FAQS\": \"FAQs\",\n \"GALLERY\": \"Gallery\",\n \"FILES\": \"Files\",\n \"GET_IT_NOW\": \"Get It Now\",\n \"CONTAINS_NUM_ITEMS\": \"Contains {{itemCount}} items\"\n }\n };\n}\n","/*tslint:disable*/\nexport class Cs {\n static readonly cs = {\n \"FRONTEND.STORE\": {\n \"TOTAL\": \"Celkem\",\n \"CONTACT_SALES\": \"Kontaktovat obchodního zástupce\",\n \"FREE\": \"Zdarma\",\n \"STARTING_AT\": \"Začíná na\",\n \"ENABLED_UPPER\": \"POVOLENO\",\n \"ENABLE_UPPER\": \"POVOLIT\",\n \"MIN_TO_MAX\": \"{{minRange}} až {{maxRange}}\",\n \"PRODUCT_PRICING_WITH_FREQUENCY\": \"{{pricingTier}} účtů za {{frequency}}\",\n \"COMMITMENT_WITH_RENEWAL\": \"*{{initial}} {{frequencyString}} minimum, obnovuje se na {{recurring}} {{frequencyString}}\",\n \"COMMITMENT\": \"Závazek {{initial}} {{frequencyString}}\",\n \"PRICING_FREQUENCIES\": {\n \"MONTH\": \"měsíč\",\n \"YEAR\": \"rok\"\n },\n \"REQUIRES_DESCRIPTOR\": \"(Vyžaduje {{requirementName}})\",\n \"ADMINISTRATIVE_QUESTIONS\": \"Administrativní otázky\",\n \"AUTO_TITLE_TEXT\": {\n \"SOME_FIELDS_INVALID\": \"* Některá pole jsou neplatná a/nebo povinná, ale prázdná\",\n \"OPTIONAL_FIELDS_UNANSWERED\": \"Volitelná pole nezodpovězena\",\n \"COMPLETE\": \"Kompletní\"\n },\n \"REQUIRES\": \"Vyžaduje\",\n \"ENABLED_WITH_PREREQUISITE\": \"Povoleno s {{prerequisite}}\",\n \"PRICE_APPLIES_PER_UNIT\": \"Cena platí za jednotku v rozsahu\",\n \"PRICE_APPLIES_TO_ALL_UNITS\": \"Cena se vztahuje na všechny jednotky, jakmile je dosaženo rozsahu\",\n \"PRICING\": \"Cena\",\n \"FAQS\": \"FAQ\",\n \"GALLERY\": \"Galerie\",\n \"FILES\": \"Soubory\",\n \"GET_IT_NOW\": \"Získat hned\",\n \"CONTAINS_NUM_ITEMS\": \"Obsahuje {{itemCount}} položek\"\n }\n };\n}\n","import {Inject, NgModule, Optional} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {VaPricingComponent} from './pricing.component';\nimport {HighlightPricingComponent} from './highlight-pricing/highlight-pricing.component';\nimport {TablePricingComponent} from './table-pricing/table-pricing.component';\nimport {CoreSharedModule} from '@vendasta/core/shared';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {Observable} from 'rxjs';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\n@NgModule({\n imports: [\n CommonModule,\n CoreSharedModule,\n TranslateModule.forChild()\n ],\n declarations: [VaPricingComponent, HighlightPricingComponent, TablePricingComponent],\n exports: [VaPricingComponent]\n})\nexport class VaPricingModule {\n constructor(private translateService: TranslateService,\n @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>,\n @Optional() @Inject('DEFAULT_LANG') defaultLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => translateService.use(currentLang)); }\n if (defaultLang$) { defaultLang$.subscribe(defaultLang => translateService.setDefaultLang(defaultLang)); }\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\nimport {StoreItem} from './store-item';\nimport {ImageTransformationService} from '@vendasta/core/image-transformation';\n\n@Component({\n selector: 'va-store-card',\n template: `\n<mat-card class=\"hover-card\" *ngIf=\"item\" (click)=\"cardClicked.emit(item)\">\n<div class=\"hover-area\">\n <div class=\"product-banner\" (click)=\"bannerClicked.emit(item)\"\n [style.background-color]=\"item.headerImageUrl ? '': getBannerColorForName()\">\n <img class=\"img-container\" *ngIf=\"item.headerImageUrl\"\n [src]=\"item.headerImageUrl\" [srcset]=\"getSrcsetHeaderUrls(item.headerImageUrl)\">\n </div>\n\n <div class=\"description\" (click)=\"descriptionClicked.emit(item)\">\n <mat-card-header>\n <va-icon mat-card-avatar [diameter]=\"40\" [name]=\"item.name\" [iconUrl]=\"item.iconUrl\"></va-icon>\n <mat-card-title>{{item.name}}</mat-card-title>\n <mat-card-subtitle>\n <ng-container *ngIf=\"item.pricing; else formatted\">\n <va-pricing [pricing]=\"item.pricing\"\n [highlightPrice]=\"false\"></va-pricing>\n </ng-container>\n <ng-template #formatted>{{item.formattedPrice}}</ng-template>\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content> {{ item.tagline }}\n </mat-card-content>\n </div>\n\n <button *ngIf=\"item.purchased !== undefined\"\n mat-button color=\"primary\" class=\"enabled-indicator\" (click)=\"purchasedClicked.emit(item)\" [disabled]=\"item.purchased\">\n <i *ngIf=\"!item.purchased\" class=\"material-icons\">add</i>\n <i *ngIf=\"item.purchased\" class=\"material-icons\" style=\"color: #39B74A\">check</i>\n <span>{{ (item.purchased ? 'FRONTEND.STORE.ENABLED_UPPER' : 'FRONTEND.STORE.ENABLE_UPPER') | translate }}</span>\n </button>\n </div>\n</mat-card>\n `,\n styleUrls: ['./store-card.component.scss']\n})\nexport class StoreCardComponent {\n @Input() item: StoreItem;\n @Output() purchasedClicked = new EventEmitter<StoreItem>();\n @Output() cardClicked = new EventEmitter<StoreItem>();\n @Output() descriptionClicked = new EventEmitter<StoreItem>();\n @Output() bannerClicked = new EventEmitter<StoreItem>();\n\n constructor(private imageTransformationService: ImageTransformationService) {}\n\n getBannerColorForName(): string {\n // determine an icon color for a product with no icon by using the product name\n const COLOR_CODES = [\n '#EF5350', '#42A5F5', '#66BB6A', '#FFA726', '#AB47BC', '#FFCA28', '#EC407A', '#26C6DA',\n '#FF7B57'\n ];\n let nameSum = 0;\n const defaultColor = '#808080';\n if (!this.item.name) {\n return defaultColor;\n }\n for (let i = 0; i < this.item.name.length; i++) {\n nameSum += this.item.name[i].charCodeAt(0);\n }\n const index = nameSum % COLOR_CODES.length;\n return COLOR_CODES[index];\n }\n\n getSrcsetHeaderUrls(imageUrl: string): string {\n return this.imageTransformationService.getSrcSetForImage(imageUrl, [680, 1360, 2720]);\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, NgModule, Optional } from '@angular/core';\nimport { MatButtonModule, MatCardModule, MatIconModule, MatMenuModule } from '@angular/material';\nimport { ImageTransformationModule } from '@vendasta/core/image-transformation';\nimport { VaIconModule } from '@vendasta/uikit';\nimport { VaPricingModule } from './pricing/pricing.module';\nimport { StoreCardComponent } from './store-card.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { En } from './assets/i18n/en';\nimport { Cs } from './assets/i18n/cs';\n\n@NgModule({\n imports: [\n CommonModule,\n VaIconModule,\n MatCardModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n ImageTransformationModule,\n VaPricingModule,\n TranslateModule.forChild()\n ],\n declarations: [StoreCardComponent],\n exports: [StoreCardComponent]\n})\nexport class StoreCardModule {\n constructor(private translateService: TranslateService,\n @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>,\n @Optional() @Inject('DEFAULT_LANG') defaultLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => translateService.use(currentLang)); }\n if (defaultLang$) { defaultLang$.subscribe(defaultLang => translateService.setDefaultLang(defaultLang)); }\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\n\nimport {StoreItem} from './store-item';\n\n@Component({\n selector: 'va-store',\n template: `\n <div class=\"toolbar\">\n <div *ngIf=\"searchable\" class=\"table-controls-row\">\n <va-search-box (update)=\"filterTerm = $event\"></va-search-box>\n </div>\n </div>\n <div class=\"row row-gutters\">\n <div *ngFor=\"let item of filteredItems\" class=\"col-flex\">\n <va-store-card [item]=\"item\" (cardClicked)=\"this.itemClicked.emit(item)\"></va-store-card>\n </div>\n </div>\n `,\n styleUrls: ['./store.component.scss']\n})\nexport class StoreComponent {\n @Input() items: StoreItem[] = [];\n @Input() searchable = true;\n @Output() itemClicked = new EventEmitter<StoreItem>();\n\n filterTerm: string;\n\n get filteredItems(): StoreItem[] {\n if (this.filterTerm) {\n return this.items.filter(pkg => pkg.name.toLowerCase().indexOf(this.filterTerm.toLowerCase()) !== -1);\n }\n return this.items;\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { FieldBase } from '../fields/field-base';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'va-dropdown-form-section',\n template: `\n <mat-expansion-panel *ngIf=\"expandable || expandable == undefined\" [expanded]=\"startOpen\">\n <mat-expansion-panel-header [collapsedHeight]=\"'*'\" [expandedHeight]=\"'*'\">\n <div class=\"dropdown-form-header\">\n <mat-icon\n [ngClass]=\"{invalid: iconName=='warning', valid: iconName=='check_circle', question: iconName=='help_outline'}\">\n {{ iconName }}\n </mat-icon>\n <mat-panel-title *ngIf=\"!displayAutoTitle\">\n {{ titleText }}\n </mat-panel-title>\n <mat-panel-title *ngIf=\"displayAutoTitle\"\n [ngClass]=\"{valid: iconName=='check_circle', invalid: iconName=='warning'}\">\n <div class=\"title\"> {{ titleText }}</div>\n <div *ngIf=\"titleText && autoTitleText\"> &nbsp;</div>\n <div><ng-container><i> {{autoTitleText}} </i></ng-container></div>\n </mat-panel-title>\n <mat-panel-description *ngIf=\"displayAutoDescription\" [ngClass]=\"{invalid: iconName=='warning'}\">\n {{ autoDescriptionText }}\n </mat-panel-description>\n <mat-panel-description *ngIf=\"!displayAutoDescription\" [ngClass]=\"{invalid: iconName=='warning'}\">\n <i> {{descriptionText}} </i>\n </mat-panel-description>\n </div>\n </mat-expansion-panel-header>\n <div class=\"expansion-panel-body\">\n <va-field *ngFor=\"let field of fields\" [field]=\"field\"\n [form]=\"parentForm.controls[titleText + uniqueIndex]\"\n ></va-field>\n <p *ngIf=\"editingHint != ''\" class=\"editing-hint\"><i>{{ editingHint }}</i></p>\n </div>\n </mat-expansion-panel>\n `,\n styleUrls: ['./dropdown-form-section.component.scss']\n})\nexport class DropDownFormSectionComponent implements OnInit, OnDestroy {\n @Input() prepopulatedData: {};\n @Input() startOpen = false;\n @Input() parentForm: FormGroup;\n @Input() displayAutoTitle = false;\n @Input() titleText = '';\n @Input() displayAutoDescription = true;\n @Input() descriptionText = '';\n @Input() fields: FieldBase<any>[];\n @Input() editingHint = '';\n @Input() expandable = true;\n autoDescriptionText = '';\n iconName = 'help_outline';\n subscriptions: Subscription[] = [];\n uniqueIndex = 1;\n autoTitleText = '';\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n const allFieldsHidden = this.fields.reduce((p, c, i, a) => p && c.hidden, true);\n if (allFieldsHidden) {\n this.expandable = false;\n }\n while (this.parentForm.controls.hasOwnProperty(this.titleText + this.uniqueIndex)) {\n this.uniqueIndex += 1;\n }\n this.parentForm.addControl(this.titleText + this.uniqueIndex, this.toFormGroup(this.fields));\n const form = this.parentForm.controls[this.titleText + this.uniqueIndex] as FormGroup;\n\n for (const key in form.controls) {\n if (form.controls.hasOwnProperty(key)) {\n if (this.prepopulatedData != null && this.prepopulatedData.hasOwnProperty(key)) {\n form.controls[key].setValue(this.prepopulatedData[key]);\n }\n }\n }\n this.subscriptions.push(\n combineLatest([\n form.statusChanges,\n this.translateService.stream('FRONTEND.STORE.AUTO_TITLE_TEXT')\n ]).subscribe(([change, autoTitleText]) => {\n let missingFields = false;\n for (const control in form.controls) {\n if (!form.controls[control].value || (form.controls[control].value.constructor === Array && !form.controls[control].value[0])) {\n this.iconName = 'help_outline';\n missingFields = true;\n if (change === 'INVALID') {\n this.autoTitleText = autoTitleText.SOME_FIELDS_INVALID;\n if (form.controls[control].dirty || form.controls[control].touched) {\n this.iconName = 'warning';\n break;\n }\n } else {\n this.autoTitleText = autoTitleText.OPTIONAL_FIELDS_UNANSWERED;\n }\n }\n }\n if (!missingFields) {\n this.iconName = 'check_circle';\n this.autoTitleText = autoTitleText.COMPLETE;\n }\n })\n );\n\n if (this.displayAutoDescription) {\n this.subscriptions.push(\n form.valueChanges.subscribe(changes => {\n let description = '';\n for (const key in changes) {\n if (changes.hasOwnProperty(key) && changes[key] != null && changes[key].length > 0) {\n if (changes[key][0].name) {\n for (const fileKey in changes[key]) {\n if (changes[key][fileKey] != null) {\n description += changes[key][fileKey].name;\n description += ', ';\n }\n }\n } else {\n description += changes[key];\n description += ', ';\n }\n }\n }\n this.autoDescriptionText = description.substring(0, description.length - 2);\n })\n );\n }\n form.updateValueAndValidity({ onlySelf: false, emitEvent: true });\n }\n\n toFormGroup(formFields: FieldBase<any>[]): FormGroup {\n const group: any = {};\n formFields.forEach(field => {\n let validations;\n if (!field.required || field.hidden) {\n validations = field.validator;\n } else if (field.controlType === 'checkbox') {\n validations = [Validators.requiredTrue, field.validator];\n } else {\n validations = [Validators.required, field.validator];\n }\n\n const formControl = new FormControl({value: field.value, disabled: field.disabled}, validations);\n group[field.id] = formControl;\n this.subscriptions.push(formControl.valueChanges.subscribe(value => (field.value = value)));\n });\n\n return new FormGroup(group);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}\n","import {Input, Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\n\n@Component({\n selector: 'va-field',\n styleUrls: ['./field.component.scss'],\n templateUrl: './field.component.html'\n})\nexport class FieldComponent {\n @Input() field: any; // avoid checking union type in template\n @Input() form: FormGroup;\n get isValid(): boolean {\n return this.form.controls[this.field.id].valid || this.form.controls[this.field.id].pristine;\n }\n\n showCheckboxError(field): boolean {\n return this.form.controls[field].errors && this.form.controls[field].errors.required && this.form.controls[field].touched;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FieldBase } from './field-base';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n@Injectable()\nexport class FieldService {\n createFormControl(field: FieldBase<any>): FormControl {\n if (field.required) {\n return new FormControl(field.value, Validators.required);\n } else {\n return new FormControl(field.value);\n }\n }\n\n toFormGroup(formFields: FieldBase<any>[], subscriptions: Subscription[]): FormGroup {\n const group: any = {};\n formFields.forEach(field => {\n let formControl: FormControl;\n if (field.controlType === 'checkbox') {\n formControl = new FormControl(field.value);\n } else {\n formControl = this.createFormControl(field);\n }\n group[field.id] = formControl;\n if (subscriptions) {\n subscriptions.push(formControl.valueChanges.subscribe(value => (field.value = value)));\n }\n });\n return new FormGroup(group);\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Pricing} from '../pricing/pricing';\nimport {BilledProduct, BillingModel} from '@vendasta/core/billing';\nimport { Observable, of } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'va-header-container',\n templateUrl: './header-container.component.html',\n styleUrls: ['./header-container.component.scss']\n})\n\nexport class VaHeaderContainerComponent {\n @Input() iconUrl: string;\n @Input() title: string;\n @Input() tagline: string;\n @Input() prerequisite: string;\n @Input() chipLabels: string[];\n @Input() pricing: Pricing;\n @Input() billedProduct: BilledProduct;\n @Input() loaded = true;\n @Input() hasVerifiedContract: boolean;\n @Input() pricingLabel: string;\n @Input() primaryPricingActionLabel: string;\n @Input() pricingActionLabel: string;\n @Input() pricingActionEnabled: boolean;\n @Input() actionEnabled: boolean;\n @Input() actionLabel: string;\n @Input() showAction: boolean;\n @Input() showPricing: boolean;\n @Input() showEnableAddon = false;\n @Input() prerequisiteLabel: string;\n @Output() prerequisiteSelected = new EventEmitter();\n @Output() actionSelected = new EventEmitter();\n @Output() primaryPricingActionSelected = new EventEmitter();\n @Output() pricingActionSelected = new EventEmitter();\n\n constructor(private translateService: TranslateService) {}\n\n onActionSelected(): void {\n this.actionSelected.emit();\n }\n\n onPrerequisiteSelected(): void {\n this.prerequisiteSelected.emit();\n }\n\n showPricingModel(billedProduct: BilledProduct): boolean {\n return billedProduct && [BillingModel.Tiered, BillingModel.Stairstep].includes(billedProduct.billingModel);\n }\n\n getPricingModelTooltips(billingModel: BillingModel): Observable<string> {\n switch (billingModel) {\n case BillingModel.Stairstep:\n return this.translateService.stream('FRONTEND.STORE.PRICE_APPLIES_PER_UNIT');\n case BillingModel.Tiered:\n return this.translateService.stream('FRONTEND.STORE.PRICE_APPLIES_TO_ALL_UNITS');\n default:\n return of('');\n }\n }\n}\n","import { Inject, NgModule, Optional } from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {VaHeaderContainerComponent} from './header-container.component';\nimport {MatChipsModule, MatIconModule, MatButtonModule, MatTooltipModule} from '@angular/material';\nimport {VaPricingModule} from '../pricing/pricing.module';\nimport {VaIconModule} from '@vendasta/uikit';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n VaPricingModule,\n VaIconModule,\n MatChipsModule,\n MatButtonModule,\n MatTooltipModule,\n TranslateModule.forChild()\n ],\n declarations: [VaHeaderContainerComponent],\n exports: [VaHeaderContainerComponent]\n})\nexport class VaHeaderContainerModule {\n constructor(private translateService: TranslateService,\n @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>,\n @Optional() @Inject('DEFAULT_LANG') defaultLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => translateService.use(currentLang)); }\n if (defaultLang$) { defaultLang$.subscribe(defaultLang => translateService.setDefaultLang(defaultLang)); }\n }\n}\n","import {FormGroup} from '@angular/forms';\nimport {DropDownFormSectionData} from '../dropdown-form-section/dropdown-form-section-data';\nexport class OrderFormSectionData {\n parentForm: FormGroup;\n titleText: string;\n subtitleText: string;\n descriptionText: string;\n iconUrl: string;\n primarySection: DropDownFormSectionData;\n subsections: DropDownFormSectionData[];\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {DropDownFormSectionData} from '../dropdown-form-section/dropdown-form-section-data';\nimport {OrderFormSectionData} from './order-form-section-data';\n\n@Component({\n selector: 'va-order-form-section',\n templateUrl: 'order-form-section.component.html',\n styleUrls: ['./order-form-section.component.scss'],\n})\n\nexport class OrderFormSectionComponent implements OnInit {\n @Input() data: OrderFormSectionData;\n\n constructor() {}\n\n ngOnInit(): void {\n // The first section should always be expanded.\n const topSection = this.getTopSection();\n if (topSection) {\n topSection.startOpen = true;\n }\n }\n\n getTopSection(): DropDownFormSectionData {\n if (!this.data) {\n return null;\n }\n if (this.data.primarySection) {\n return this.data.primarySection;\n }\n if (this.data.subsections && this.data.subsections.length > 0) {\n return this.data.subsections[0];\n }\n return null;\n }\n}\n","import {FieldBase} from '../fields/field-base';\nimport {FormGroup} from '@angular/forms';\n\nexport class DropDownFormSectionData {\n prepopulatedData: any;\n startOpen: boolean;\n parentForm: FormGroup;\n displayAutoTitle: boolean;\n titleText: string;\n displayAutoDescription: boolean;\n descriptionText: string;\n fields: FieldBase<any>[];\n editingHint: string;\n /* tslint:disable */\n expandable? = true;\n /* tslint:enable */\n}\n","import {DropDownFormSectionData} from '../dropdown-form-section/dropdown-form-section-data';\nimport {OrderFormSectionData} from '../order-form-section/order-form-section-data';\nimport {FieldBase, FieldBaseOptions} from '../fields/field-base';\nimport {DropDownFieldOptions} from '../fields/field-dropdown';\nimport {FileUploadGroupFieldOptions} from '../fields/field-fileuploadgroup';\nimport {TextBoxFieldOptions} from '../fields/field-textbox';\nimport {VBCUserFieldOptions} from '../fields/field-vbcuser';\n\nexport interface OrderLabelsInterface {\n commonForm: {\n headerTitle: string;\n headerText: string;\n editingHint: string;\n businessSectionTitle?: string;\n salespersonSectionTitle?: string;\n contactSectionTitle?: string;\n businessName?: string;\n businessAddress?: string;\n businessPhoneNumber?: string;\n businessAccountGroupId?: string;\n businessWebsite?: string;\n salespersonName?: string;\n salespersonPhoneNumber?: string;\n salespersonEmail?: string;\n contactName?: string;\n contactPhoneNumber?: string;\n contactEmail?: string;\n };\n}\n\nexport type OrderFormFieldOptionsType = (FieldBaseOptions | DropDownFieldOptions | FileUploadGroupFieldOptions | TextBoxFieldOptions | VBCUserFieldOptions)\n\nexport interface OrderFormInterface {\n appId: string;\n addonId?: string;\n commonForm?: IncludedCommonFormFieldsInterface;\n commonFormRequiredFields?: IncludedCommonFormFieldsInterface;\n customFields?: OrderFormFieldOptionsType[];\n}\n\nexport interface IncludedCommonFormFieldsInterface {\n businessName?: boolean;\n businessAddress?: boolean;\n businessPhoneNumber?: boolean;\n businessAccountGroupId?: boolean;\n businessWebsite?: boolean;\n salespersonName?: boolean;\n salespersonPhoneNumber?: boolean;\n salespersonEmail?: boolean;\n contactName?: boolean;\n contactPhoneNumber?: boolean;\n contactEmail?: boolean;\n}\n\nexport interface CommonFormSectionInterface {\n fields: CommonFormFieldInterface[];\n sectionName?: string;\n populatedData?: CommonFormData;\n}\n\nexport interface AddonKeyInterface {\n addonId?: string;\n appId?: string;\n}\n\nexport interface CommonFormFieldInterface extends FieldBase<any> {\n productIds?: string[];\n addonKeys?: AddonKeyInterface[];\n}\n\nexport interface CommonFieldIdsInterface {\n fieldId: string;\n required: boolean;\n}\n\n// Keys are snake cased here because that is the format in which we submit this data to vendors\nexport interface CommonFormData {\n contact_email?: string;\n contact_name?: string;\n contact_phone_number?: string;\n business_account_group_id?: string;\n business_name?: string;\n business_address?: string;\n business_phone_number?: string;\n business_website?: string;\n salesperson_name?: string;\n salesperson_email?: string;\n salesperson_phone_number?: string;\n}\n\nexport class ProductOrderFormSectionData extends OrderFormSectionData {\n productId: string;\n subsections: AddonDropDownFormSectionData[];\n}\n\nexport class AddonDropDownFormSectionData extends DropDownFormSectionData {\n productId: string;\n addonId: string;\n}\n\nexport interface ProductInfoInterface {\n productId: string;\n name?: string;\n tagline?: string;\n icon?: string;\n addonInfo?: AddonInfoInterface[];\n}\n\nexport interface AddonInfoInterface {\n addonId: string;\n name?: string;\n}\n\nexport interface CustomFieldsAnswers {\n productID: string;\n addonKey?: AddonKeyInterface;\n customFieldsAnswers: CustomFieldsAnswer[];\n}\n\nexport interface CustomFieldsAnswer {\n fieldId: string;\n answer?: string;\n}\n\nexport interface OrderFormOptionsInterface {\n bypassRequiredQuestions?: boolean;\n readOnly?: boolean;\n showOfficeUseQuestions?: boolean;\n}\n","import { Injectable } from '@angular/core';\nimport { AddonKey, CommonField, CustomField, Field, FieldType } from '@vendasta/sales-orders';\nimport {\n AddonDropDownFormSectionData,\n CommonFieldIdsInterface,\n CommonFormData,\n CommonFormFieldInterface,\n CommonFormSectionInterface, CustomFieldsAnswer,\n CustomFieldsAnswers,\n OrderFormFieldOptionsType,\n OrderFormInterface,\n OrderLabelsInterface,\n ProductInfoInterface,\n ProductOrderFormSectionData\n} from './interface';\nimport {\n CheckboxField,\n DropdownField,\n FileUploadGroupField,\n FileUploadGroupFieldOptions,\n TextareaField,\n TextboxField,\n VBCUserField,\n VBCUserFieldOptions,\n FieldBase,\n User, DropDownFormSectionData, ControlType,\n} from '../..';\nimport { FormGroup } from '@angular/forms';\nimport uuid from 'uuid/v4';\nimport { OrderFormOptions } from './order-form.component';\n\n@Injectable()\nexport class OrderFormService {\n static camelToSnakeCaseMap = {\n 'contactName': 'contact_name',\n 'contactEmail': 'contact_email',\n 'contactPhoneNumber': 'contact_phone_number',\n 'businessAccountGroupId': 'business_account_group_id',\n 'businessName': 'business_name',\n 'businessAddress': 'business_address',\n 'businessPhoneNumber': 'business_phone_number',\n 'businessWebsite': 'business_website',\n 'salespersonName': 'salesperson_name',\n 'salespersonEmail': 'salesperson_email',\n 'salespersonPhoneNumber': 'salesperson_phone_number'\n };\n\n private static extractRequiredCommonFieldIds(orderForm: OrderFormInterface): string[] {\n if (!orderForm || !orderForm.commonFormRequiredFields) {\n return [];\n }\n return Object.keys(orderForm.commonFormRequiredFields).filter(k => orderForm.commonFormRequiredFields[k]);\n }\n\n private static buildCommonFieldIds(orderForms: OrderFormInterface[]): CommonFieldIdsInterface[] {\n const commonFieldIdsMap: Map<string, CommonFieldIdsInterface> = new Map<string, CommonFieldIdsInterface>();\n for (const key in OrderFormService.camelToSnakeCaseMap) {\n if (key) {\n commonFieldIdsMap.set(key,\n {\n fieldId: key,\n required: false,\n }\n )\n }\n }\n orderForms.map(orderForm => {\n const requiredCommonFieldIds = this.extractRequiredCommonFieldIds(orderForm);\n requiredCommonFieldIds.map(fieldId => {\n const commonFieldId = commonFieldIdsMap.get(fieldId);\n commonFieldId.required = true;\n commonFieldIdsMap.set(fieldId, commonFieldId);\n });\n });\n return Array.from(commonFieldIdsMap.values());\n }\n\n private static fillCommonFormSections(fieldIds: CommonFieldIdsInterface[], commonData: CommonFormData, labels: OrderLabelsInterface,\n options: OrderFormOptions):\n CommonFormSectionInterface[] {\n const commonFormSections = OrderFormService.buildCommonOrderFormFields(fieldIds, labels, options);\n return commonFormSections.map(section => ({...section, populatedData: commonData}));\n }\n\n private static buildCommonOrderFormFields(fieldIds: CommonFieldIdsInterface[], labels: OrderLabelsInterface, options: OrderFormOptions):\n CommonFormSectionInterface[] {\n const businessSection: CommonFormSectionInterface = {\n sectionName: labels.commonForm.businessSectionTitle || 'Business',\n fields: []\n };\n const salespersonSection: CommonFormSectionInterface = {\n sectionName: labels.commonForm.salespersonSectionTitle || 'Salesperson',\n fields: []\n };\n const contactSection: CommonFormSectionInterface = {\n sectionName: labels.commonForm.contactSectionTitle || 'Contact',\n fields: []\n };\n\n for (const field of fieldIds) {\n const fieldLabel = this.getLabelForFieldId(field.fieldId, labels);\n const commonFormField: CommonFormFieldInterface = new TextboxField({\n id: OrderFormService.camelToSnakeCaseMap[field.fieldId],\n label: fieldLabel,\n textboxType: 'text'\n });\n commonFormField.displayOnly = commonFormField.id === 'business_account_group_id';\n commonFormField.disabled = options.readOnly;\n if (!options.bypassRequiredQuestions) {\n commonFormField.required = field.required;\n }\n if (field.fieldId.startsWith('contact')) {\n contactSection.fields.push(commonFormField);\n }\n if (field.fieldId.startsWith('business')) {\n businessSection.fields.push(commonFormField);\n }\n if (field.fieldId.startsWith('salesperson')) {\n if (!options.showOfficeUseQuestions) {\n commonFormField.hidden = true;\n }\n salespersonSection.fields.push(commonFormField);\n }\n }\n return [businessSection, contactSection, salespersonSection].filter(section =>\n section.fields ? section.fields.length > 0 : false\n );\n }\n\n private static getLabelForFieldId(fieldId: string, labels: OrderLabelsInterface): string {\n return labels.commonForm[fieldId] || '';\n }\n\n private static buildOrderFormSectionData(parentForm: FormGroup): AddonDropDownFormSectionData {\n const section = new AddonDropDownFormSectionData();\n section.displayAutoTitle = true;\n section.descriptionText = '';\n section.displayAutoDescription = false;\n section.parentForm = parentForm;\n return section;\n }\n\n private static buildCustomOrderFormFields(customFields: OrderFormFieldOptionsType[], fileUploadUrl: string, users: User[],\n answers: CustomFieldsAnswer[], options: OrderFormOptions):\n FieldBase<any>[] {\n const fieldTypeMap = {\n text: TextboxField,\n textbox: TextboxField,\n dropdown: DropdownField,\n checkbox: CheckboxField,\n file: FileUploadGroupField,\n textarea: TextareaField,\n vbcuser: VBCUserField\n };\n return customFields\n .filter(field => {\n return fieldTypeMap[field.type];\n })\n .map(field => {\n const fieldClass = fieldTypeMap[field.type];\n const result = (function () {\n switch (fieldClass) {\n case VBCUserField:\n const fieldConfig = {\n description: field.description,\n id: field.id,\n required: field.required,\n type: field.type,\n label: field.label,\n forOfficeUseOnly: field.forOfficeUseOnly,\n hidden: field.hidden,\n users: users // TODO: Get users in this component\n } as VBCUserFieldOptions;\n return new VBCUserField(fieldConfig);\n case FileUploadGroupField:\n const uploadField = field as FileUploadGroupFieldOptions;\n uploadField.uploadUrl = fileUploadUrl;\n return new FileUploadGroupField(uploadField);\n default:\n return new fieldClass(field);\n }\n })();\n result.id = OrderFormService.encodeCustomFieldId(field.id);\n if (!options.showOfficeUseQuestions) {\n result.hidden = result.forOfficeUseOnly ? true : result.hidden;\n }\n result.required = options.bypassRequiredQuestions ? false : result.required;\n result.disabled = options.readOnly ? options.readOnly : result.disabled;\n if (answers) {\n const ca = answers.find(a => a.fieldId === field.id);\n if (ca) {\n try {\n result.value = JSON.parse(ca.answer);\n } catch (error) {\n result.value = ca.answer;\n }\n }\n }\n return result\n });\n }\n\n // Different products can have order form fields with the same fieldID, which will cause problem.\n // Please refer to https://github.com/vendasta/business-center-client/pull/1002\n // We will prefix the fieldID with uuid, and take it off before we same the order form into session storage\n private static encodeCustomFieldId(fieldId: string): string {\n const id = uuid();\n return `${id}#${fieldId}`;\n }\n\n private static decodeCustomFieldId(fieldId: string): string {\n return fieldId.replace(new RegExp('(.*#)'), '');\n }\n\n private static mapFieldType(fieldType: ControlType): FieldType {\n switch (fieldType) {\n case 'textbox':\n return FieldType.TEXT;\n case 'textarea':\n return FieldType.TEXTAREA;\n case 'checkbox':\n return FieldType.CHECKBOX;\n case 'dropdown':\n return FieldType.DROPDOWN;\n case 'file':\n return FieldType.FILE;\n case 'vbcuser':\n return FieldType.VBCUSER;\n default:\n return FieldType.NOT_SPECIFIED;\n }\n }\n\n private static orderFieldToSalesOrderField(fieldBase: FieldBase<any>): Field {\n return new Field({\n fieldId: OrderFormService.decodeCustomFieldId(fieldBase.id),\n fieldType: OrderFormService.mapFieldType(fieldBase.controlType),\n label: fieldBase.label,\n description: fieldBase.description || '',\n prefix: fieldBase.prefix || '',\n suffix: fieldBase.suffix || '',\n regexValidator: fieldBase.regexValidator || '',\n regexErrorMessage: fieldBase.regexErrorMessage || '',\n answer: fieldBase.value ? JSON.stringify(fieldBase.value) : 'null'\n });\n }\n\n private static productOrderFormToCustomFields(orderFormData: ProductOrderFormSectionData): CustomField[] {\n const primaryCustomField = new CustomField();\n primaryCustomField.productId = orderFormData.productId;\n primaryCustomField.fields = orderFormData.primarySection\n ? orderFormData.primarySection.fields.map(field => this.orderFieldToSalesOrderField(field))\n : [];\n const secondaryCustomFields = orderFormData.subsections.map(subsection => {\n const customField = new CustomField();\n if (subsection.addonId) {\n customField.addonKey = new AddonKey({\n appId: subsection.productId,\n addonId: subsection.addonId\n });\n } else {\n customField.productId = orderFormData.productId;\n }\n customField.fields = subsection.fields.map(field => this.orderFieldToSalesOrderField(field));\n return customField;\n });\n return [].concat(primaryCustomField, secondaryCustomFields);\n }\n\n public static getCommonFormSections(orderForms: OrderFormInterface[], commonData: CommonFormData, labels: OrderLabelsInterface,\n options: OrderFormOptions):\n CommonFormSectionInterface[] {\n const fieldIds = OrderFormService.buildCommonFieldIds(orderForms);\n return OrderFormService.fillCommonFormSections(fieldIds, commonData, labels, options);\n }\n\n public static getCustomFormSections(orderForms: OrderFormInterface[], products: ProductInfoInterface[], parentForm: FormGroup,\n fileUploadUrl: string, users: User[], answers: CustomFieldsAnswers[], options: OrderFormOptions)\n : ProductOrderFormSectionData[] {\n const formSections = products.map(product => {\n const subsections: AddonDropDownFormSectionData[] = [];\n (product.addonInfo || []).map(addon => {\n const addonOrderForms = orderForms.filter(o => o.addonId === addon.addonId);\n const addonAnswers: CustomFieldsAnswers[] = (answers || []).filter(a => a.addonKey &&\n a.addonKey.appId === product.productId && a.addonKey.addonId === addon.addonId && a.productID === product.productId);\n addonOrderForms.map((addonOrderForm, index) => {\n if (addonOrderForm && addonOrderForm.customFields && addonOrderForm.customFields.length > 0) {\n const addonSection = OrderFormService.buildOrderFormSectionData(parentForm);\n const addonAnswersForThisSpecificFormIndex = (addonAnswers.length > index) ? addonAnswers[index].customFieldsAnswers : [];\n const formFields = OrderFormService.buildCustomOrderFormFields(addonOrderForm.customFields, fileUploadUrl, users,\n addonAnswersForThisSpecificFormIndex, options);\n addonSection.expandable = true;\n addonSection.titleText = addon.name;\n addonSection.fields = formFields;\n addonSection.productId = product.productId;\n addonSection.addonId = addon.addonId;\n subsections.push(addonSection);\n }\n });\n });\n\n const foundOrderForms = orderForms.reduce((orderFormsFound, o) => {\n if (o.appId === product.productId && !o.addonId) {\n orderFormsFound.push(o);\n }\n return orderFormsFound;\n }, []);\n const [primaryOrder, ...otherOrdersForSameProduct] = foundOrderForms;\n\n const productHasOrderForm = primaryOrder && primaryOrder.customFields && primaryOrder.customFields.length > 0;\n if (subsections.length > 0 || productHasOrderForm) {\n const sectionData = new ProductOrderFormSectionData();\n sectionData.productId = product.productId;\n sectionData.parentForm = parentForm;\n sectionData.titleText = product.name;\n sectionData.subtitleText = product.tagline;\n sectionData.descriptionText = ''; // TODO: build the description string to show which common data this form uses\n sectionData.iconUrl = product.icon;\n\n if (productHasOrderForm) {\n const section = OrderFormService.buildOrderFormSectionData(parentForm);\n section.titleText = product.name;\n let productAnswers: CustomFieldsAnswers[] = [];\n if (answers) {\n productAnswers = answers.filter(a => !a.addonKey && a.productID === product.productId);\n }\n const [ firstProductAnswers, ...otherProductAnswers] = productAnswers;\n section.fields = OrderFormService.buildCustomOrderFormFields(primaryOrder.customFields, fileUploadUrl, users,\n firstProductAnswers ? firstProductAnswers.customFieldsAnswers : [], options);\n sectionData.primarySection = section;\n\n otherOrdersForSameProduct.forEach((_, index) => {\n /**\n * Clone the same section to avoid child component from modifying all as if these are all the top section.\n * All sections need to be re-created or else they will have the same id and send repeated data as well.\n */\n const dupeSection = { ...section };\n const answersForSpecificForm = (otherProductAnswers.length > index) ? otherProductAnswers[index].customFieldsAnswers : [];\n dupeSection.fields = OrderFormService.buildCustomOrderFormFields(primaryOrder.customFields, fileUploadUrl, users,\n answersForSpecificForm, options);\n\n subsections.unshift(dupeSection);\n });\n }\n\n sectionData.subsections = subsections;\n return sectionData;\n }\n return null;\n }).filter(s => !!s);\n return formSections;\n }\n\n public static getExtraFieldsSection(extraFields: OrderFormFieldOptionsType[], parentForm: FormGroup, fileUploadUrl: string, users: User[],\n answers: CustomFieldsAnswer[], options: OrderFormOptions): DropDownFormSectionData {\n if (!extraFields || extraFields.length < 1) {\n return null\n }\n const section = OrderFormService.buildOrderFormSectionData(parentForm);\n section.fields = OrderFormService.buildCustomOrderFormFields(extraFields, fileUploadUrl, users, answers, options);\n return section\n }\n\n public static getCustomFieldsData(customFormSections: ProductOrderFormSectionData[]): CustomField[] {\n const customFormData = customFormSections.reduce((acc, orderFormData) => {\n acc = acc.concat(OrderFormService.productOrderFormToCustomFields(orderFormData));\n return acc;\n }, []);\n return customFormData;\n }\n\n public static getCommonFieldsData(commonFormSections: CommonFormSectionInterface[]): CommonField[] {\n let commonFields: CommonField[] = [];\n if (commonFormSections) {\n commonFields = commonFormSections.reduce((acc, group) => {\n const fields = group.fields.map(singleField => {\n const field = OrderFormService.orderFieldToSalesOrderField(singleField);\n if (field.fieldId) {\n return new CommonField({\n field: field,\n productIds: singleField.productIds,\n addonKeys: singleField.addonKeys\n });\n }\n });\n return acc.concat(fields);\n }, [])\n }\n return commonFields;\n }\n\n public static getExtraFieldsData(extraFieldsSection: DropDownFormSectionData): Field[] {\n let extraFieldsData: Field[] = [];\n if (!!extraFieldsSection) {\n extraFieldsData = extraFieldsSection.fields.map(field => OrderFormService.orderFieldToSalesOrderField(field));\n }\n return extraFieldsData;\n }\n\n constructor() {\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n CommonFormData,\n CommonFormSectionInterface, CustomFieldsAnswer,\n CustomFieldsAnswers, OrderFormFieldOptionsType,\n OrderFormInterface, OrderFormOptionsInterface,\n OrderLabelsInterface,\n ProductInfoInterface,\n ProductOrderFormSectionData\n} from './interface';\nimport { OrderFormService } from './order-form.service';\nimport { DropDownFormSectionData, User } from '../..';\nimport { CommonField, CustomField, Field } from '@vendasta/sales-orders';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n styleUrls: ['order-form.component.scss'],\n templateUrl: 'order-form.component.html',\n providers: [],\n selector: 'va-order-form'\n})\nexport class OrderFormComponent implements OnInit {\n @Input() commonData: CommonFormData;\n @Input() answers: CustomFieldsAnswers[];\n @Input() parentForm: FormGroup;\n @Input() fileUploadUrl: string; // TODO: One standard fileuploadurl in this component\n @Input() orderForms: OrderFormInterface[]; // TODO: Get orderForms in this component\n @Input() productInfo: ProductInfoInterface[]; // TODO: Get productInfo in this component\n @Input() labels: OrderLabelsInterface; // TODO: Handle common field labels with translations in this component\n @Input() users: User[]; // TODO: Get users in this component\n @Input() extraFields: OrderFormFieldOptionsType[]; // TODO: Get this into the component\n @Input() extraFieldsAnswers: CustomFieldsAnswer[]; // TODO: Get this into the component\n @Input() orderFormOptions: OrderFormOptionsInterface;\n\n commonFormSections: CommonFormSectionInterface[];\n customFormSections: ProductOrderFormSectionData[];\n extraFieldsSection: DropDownFormSectionData;\n\n dropdownOpen$$ = new BehaviorSubject<boolean>(false);\n dropdownOpen$ = this.dropdownOpen$$.asObservable();\n\n ngOnInit(): void {\n const options = new OrderFormOptions(this.orderFormOptions || {});\n\n this.commonFormSections = OrderFormService.getCommonFormSections(this.orderForms, this.commonData, this.labels, options);\n this.customFormSections = OrderFormService.getCustomFormSections(this.orderForms, this.productInfo, this.parentForm,\n this.fileUploadUrl, this.users, this.answers, options);\n // TODO: Handle MyCorporation OrderForm (handled in a separate component right now)\n this.extraFieldsSection = OrderFormService.getExtraFieldsSection(this.extraFields, this.parentForm, this.fileUploadUrl,\n this.users, this.extraFieldsAnswers, options);\n\n }\n\n /**\n * returns the data from common form fields in a format that is usable by sales orders\n */\n public getCommonFormData(): CommonField[] {\n return OrderFormService.getCommonFieldsData(this.commonFormSections);\n }\n\n /**\n * returns the data from custom forms in a format that is usable by sales orders\n */\n public getCustomFormData(): CustomField[] {\n return OrderFormService.getCustomFieldsData(this.customFormSections);\n }\n\n /**\n * returns the data from extra fields in a format that is usable by sales orders\n */\n public getExtraFieldsData(): Field[] {\n return OrderFormService.getExtraFieldsData(this.extraFieldsSection);\n }\n\n /**\n * changes the read only state of the sales order form\n */\n public changeReadOnly(readOnly: boolean): void {\n this.orderFormOptions.readOnly = readOnly;\n readOnly ? this.parentForm.disable() : this.parentForm.enable();\n }\n\n public openDropdown(): void {\n this.dropdownOpen$$.next(true);\n }\n}\n\nexport class OrderFormOptions implements OrderFormOptionsInterface {\n bypassRequiredQuestions: boolean;\n readOnly: boolean;\n showOfficeUseQuestions: boolean;\n\n constructor(i: OrderFormOptionsInterface) {\n this.bypassRequiredQuestions = !!i.bypassRequiredQuestions;\n this.readOnly = !!i.readOnly;\n this.showOfficeUseQuestions = !!i.showOfficeUseQuestions;\n }\n\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport const FILES = 'file';\nexport const DROP_DOWN = 'dropdown';\nexport const CHECK_BOX = 'checkbox';\nexport const TEXT_AREA = 'textarea';\nexport const TEXT_BOX = 'textbox';\nexport const BUSINESS_USER = 'vbcuser';\n\nexport type ControlType = 'checkbox' | 'dropdown' | 'file' | 'textbox' | 'textarea' | 'vbcuser';\n\nexport interface FieldBaseOptions {\n // TODO This and marketplace-apps OrderFormFieldInterface should share a common base\n id: string;\n label: string;\n required?: boolean;\n description?: string;\n type?: string;\n prefix?: string;\n suffix?: string;\n regexValidator?: string;\n regexErrorMessage?: string;\n disabled?: boolean;\n forOfficeUseOnly?: boolean;\n hidden?: boolean;\n displayOnly?: boolean;\n}\n\nexport abstract class FieldBase<T> implements FieldBaseOptions {\n value: T;\n id: string;\n label: string;\n required: boolean;\n order: number;\n description: string;\n controlType: ControlType;\n prefix: string;\n suffix: string;\n regexValidator: string;\n regexErrorMessage: string;\n disabled: boolean;\n validator: ValidatorFn;\n forOfficeUseOnly: boolean;\n hidden: boolean;\n displayOnly: boolean;\n\n constructor(options: FieldBaseOptions) {\n this.id = options.id;\n this.label = options.label;\n this.required = !!options.required;\n this.description = options.description || null;\n options.type = options.type === 'text' ? 'textbox' : options.type;\n this.controlType = options.type as ControlType;\n this.prefix = options.prefix;\n this.suffix = options.suffix;\n this.regexValidator = options.regexValidator;\n this.regexErrorMessage = options.regexErrorMessage;\n this.disabled = options.disabled || false;\n this.validator = this.validatorBuilder();\n this.forOfficeUseOnly = !!options.forOfficeUseOnly;\n this.hidden = options.hidden;\n this.displayOnly = options.displayOnly;\n }\n\n getLabel(): string {\n let fieldLabel = this.label;\n if (this.required) {\n fieldLabel += ' *';\n }\n return fieldLabel;\n }\n\n protected validatorBuilder(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n return null\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { OrderFormFieldInterface, OrderFormFieldOptionInterface } from '@vendasta/core/marketplace-apps';\nimport { BUSINESS_USER, CHECK_BOX, ControlType, DROP_DOWN, FILES, TEXT_AREA, TEXT_BOX } from '../field-base';\n\n@Component({\n selector: 'va-field-builder',\n templateUrl: './field-builder.component.html',\n styleUrls: ['./field-builder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldBuilderComponent implements OnInit {\n @Input() orderFormFieldGroup: FormGroup;\n @Input() supportedFieldTypes: FormFieldInterface[];\n @Output() removeField: EventEmitter<string> = new EventEmitter(null);\n\n showValidators: boolean;\n showSuffixes: boolean;\n\n static createDropDownOption(option: OrderFormFieldOptionInterface, required: boolean): FormGroup {\n return new FormGroup({\n label: new FormControl(option.label || option.value, required ? [Validators.required] : []),\n value: new FormControl(option.value),\n useValue: new FormControl(!!option.value)\n });\n }\n\n static createDropDownOptions(options: OrderFormFieldOptionInterface[]): FormArray {\n if (options === null || options === undefined) {\n options = [];\n }\n const orderFormFieldsGroupArray: FormGroup[] =\n options.map(option => FieldBuilderComponent.createDropDownOption(option, false));\n return new FormArray(orderFormFieldsGroupArray);\n }\n\n static createOrderFormFieldGroup(orderFormField: OrderFormFieldInterface): FormGroup {\n const orderFormFieldGroup = new FormGroup({\n descriptionControl: new FormControl(orderFormField.description, []),\n labelControl: new FormControl(orderFormField.label, [Validators.required]),\n idControl: new FormControl(orderFormField.id, [Validators.required]),\n requiredControl: new FormControl(orderFormField.required || false, []),\n uploadUrlControl: new FormControl(orderFormField.uploadUrl, []),\n prefixControl: new FormControl(orderFormField.prefix, []),\n suffixControl: new FormControl(orderFormField.suffix, []),\n regexValidatorControl: new FormControl(orderFormField.regexValidator, regexValidator()),\n regexErrorMessageControl: new FormControl(orderFormField.regexErrorMessage, []),\n typeControl: new FormControl(getFieldInterface(orderFormField.type), [Validators.required]),\n allowMultiples: new FormControl(orderFormField.allowMultiples || false, []),\n allowDuplicates: new FormControl(orderFormField.allowDuplicates || false, []),\n maxChoices: new FormControl(orderFormField.maxChoices ? orderFormField.maxChoices : 1, [Validators.min(1), numberValidator()]),\n forOfficeUseOnly : new FormControl(orderFormField.forOfficeUseOnly || false, [])\n });\n if (orderFormField.optionsWithLabels) {\n const optionsArray = FieldBuilderComponent.createDropDownOptions(orderFormField.optionsWithLabels);\n orderFormFieldGroup.addControl('optionsFormArray', optionsArray);\n } else if (orderFormField.options) {\n const optionsArray = FieldBuilderComponent.createDropDownOptions(orderFormField.options.map(option => ({label: option})));\n orderFormFieldGroup.addControl('optionsFormArray', optionsArray);\n } else {\n orderFormFieldGroup.addControl('optionsFormArray', new FormArray([]));\n }\n\n return orderFormFieldGroup;\n }\n\n ngOnInit(): void {\n if (!this.supportedFieldTypes || this.supportedFieldTypes.length < 1) {\n this.supportedFieldTypes = FORM_FIELDS;\n }\n this.initForm();\n }\n\n initForm(): void {\n // Check to see if form has been initiated\n if (!this.orderFormFieldGroup.get('labelControl')) {\n this.orderFormFieldGroup =\n FieldBuilderComponent.createOrderFormFieldGroup({});\n }\n }\n\n getOptionsArray(): FormArray {\n return this.orderFormFieldGroup.get('optionsFormArray') as FormArray;\n }\n\n getCurrentFieldInterface(): string {\n const formFieldTypeInterface =\n (this.orderFormFieldGroup.get('typeControl').value as FormFieldInterface);\n return formFieldTypeInterface ? formFieldTypeInterface.id : null;\n }\n\n removeOption(index: number): void {\n const formArray = this.getOptionsArray();\n formArray.removeAt(index);\n }\n\n addOption(): void {\n const fieldArray = this.getOptionsArray();\n fieldArray.push(FieldBuilderComponent.createDropDownOption({label: ''}, true));\n }\n\n getFormValues(): OrderFormFieldInterface {\n const obj: OrderFormFieldInterface = {};\n obj.label = this.orderFormFieldGroup.get('labelControl').value;\n obj.id = this.orderFormFieldGroup.get('idControl').value;\n\n const formFieldType =\n (this.orderFormFieldGroup.get('typeControl').value as\n FormFieldInterface); // use the id instead of the whole object\n obj.type = formFieldType ? formFieldType.id : null;\n\n // Options will be nested under their own form control in the larger Orderformfield array\n const optionsArray = (this.orderFormFieldGroup.get('optionsFormArray') as FormArray);\n if (optionsArray && optionsArray.value) {\n obj.options = optionsArray.value.map(option => option.value || option.label);\n obj.optionsWithLabels = optionsArray.value.map(option => ({label: option.label, value: option.value}));\n }\n\n obj.description = this.orderFormFieldGroup.get('descriptionControl').value;\n obj.required = this.orderFormFieldGroup.get('requiredControl').value || false;\n obj.uploadUrl = this.orderFormFieldGroup.get('uploadUrlControl').value;\n obj.prefix = this.orderFormFieldGroup.get('prefixControl').value;\n obj.suffix = this.orderFormFieldGroup.get('suffixControl').value;\n obj.regexValidator = this.orderFormFieldGroup.get('regexValidatorControl').value;\n obj.regexErrorMessage = this.orderFormFieldGroup.get('regexErrorMessageControl').value;\n obj.allowMultiples = this.orderFormFieldGroup.get('allowMultiples').value || false;\n obj.allowDuplicates = this.orderFormFieldGroup.get('allowDuplicates').value || false;\n obj.maxChoices = this.orderFormFieldGroup.get('maxChoices').value || 1;\n obj.forOfficeUseOnly = this.orderFormFieldGroup.get('forOfficeUseOnly').value || false;\n return obj;\n }\n}\n\n// Validation to ensure supplied regex is valid\nexport function regexValidator(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n try {\n const _ = new RegExp(control.value || '');\n } catch (e) {\n return {'regex': true};\n }\n return null;\n };\n}\n\nexport function numberValidator(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const isNumber = /^\\d+$/;\n if (isNumber.test(control.value)) {\n return null\n }\n return {'number': true};\n };\n}\n\nexport interface FormFieldInterface {\n id: ControlType;\n name: string;\n}\n\nexport const FORM_FIELDS: FormFieldInterface[] = [\n {id: FILES, name: 'Files'}, {id: DROP_DOWN, name: 'Drop Down'},\n {id: CHECK_BOX, name: 'Check Box'}, {id: TEXT_AREA, name: 'Text Area'},\n {id: TEXT_BOX, name: 'Text Box'}, {id: BUSINESS_USER, name: 'End User'}\n];\n\nexport function getFieldInterface(formFieldId: string): FormFieldInterface {\n return getFormFieldInterfaceFromId((formFieldId as ControlType));\n}\n\nexport function getFormFieldInterfaceFromId(id: ControlType): FormFieldInterface {\n return FORM_FIELDS.find((obj: FormFieldInterface) => obj.id === id);\n}\n","import { OrderConfirmationItem, Pricing } from './interface';\n\nexport class OrderItemListService {\n static getPriceSummary(items: OrderConfirmationItem[]): { items: Pricing[]; includesUndefinedPricing: boolean } {\n if (!items) {\n return { items: [], includesUndefinedPricing: false };\n }\n let includesUndefinedPricing = false;\n const summaryItems = items.reduce((currentArray, item) => {\n if (item.pricing.prices.length <= 0) {\n includesUndefinedPricing = true;\n return currentArray;\n }\n\n item.pricing.prices.map(price => {\n if (!price || price.price < 0) {\n includesUndefinedPricing = true;\n return;\n }\n\n const freq = price.billingFrequency;\n const cur = item.pricing.currency;\n\n const existingCurIndex = currentArray.findIndex(summaryItem => summaryItem.currency === cur);\n let pricing: Pricing = {\n currency: cur,\n prices: []\n };\n if (existingCurIndex > -1) {\n pricing = currentArray[existingCurIndex];\n }\n\n const existingFreqIndex = pricing.prices.findIndex(\n summaryItem => summaryItem.billingFrequency === freq\n );\n const quantifiedPrice = price.price !== null ? price.price * item.quantity : null;\n const quantifiedDiscount = (price.discountAmount || 0) * item.quantity;\n if (existingFreqIndex > -1) {\n pricing.prices[existingFreqIndex] = {\n price: pricing.prices[existingFreqIndex].price + quantifiedPrice,\n billingFrequency: freq,\n discountAmount:\n pricing.prices[existingFreqIndex].discountAmount + quantifiedDiscount\n };\n } else {\n pricing.prices.push({\n price: quantifiedPrice,\n billingFrequency: freq,\n discountAmount: quantifiedDiscount\n });\n }\n if (existingCurIndex > -1) {\n currentArray[existingCurIndex] = pricing;\n } else {\n currentArray.push(pricing);\n }\n });\n return currentArray;\n }, []);\n return { items: summaryItems, includesUndefinedPricing: includesUndefinedPricing };\n }\n}\n","import { Component, Input } from '@angular/core';\nimport {\n OrderConfirmationItem,\n Pricing,\n TaxOption,\n RetailPrice,\n } from './interface';\nimport { OrderItemListService } from './order-item-list.service';\n\n@Component({\n selector: 'va-order-item-list',\n templateUrl: './order-item-list.component.html',\n styleUrls: ['./order-item-list.component.scss']\n})\nexport class OrderItemListComponent {\n items: OrderConfirmationItem[];\n summaryItems: Pricing[];\n includesUndefinedPricing = false;\n\n @Input() taxOptions: TaxOption[];\n @Input() hidePricing: boolean;\n\n @Input()\n set orderItems(items: OrderConfirmationItem[]) {\n this.items = items || [];\n const summary = OrderItemListService.getPriceSummary(items);\n this.summaryItems = summary.items;\n this.includesUndefinedPricing = summary.includesUndefinedPricing;\n }\n\n public calculateTotalPrice(price: RetailPrice): number {\n if (price.price === null) {\n return null;\n }\n\n const totalPrice = price.price - price.discountAmount;\n\n if (!this.taxOptions) {\n return totalPrice;\n }\n\n const taxTotal = this.taxOptions.reduce(\n (all, tax) => all + (tax.percentage * totalPrice),\n 0\n );\n\n return totalPrice + taxTotal;\n }\n\n public buildTaxLabel(tax: TaxOption): string {\n const taxPercentage = Number(tax.percentage * 100).toFixed(2);\n\n return `${tax.label} (${taxPercentage}%)`;\n }\n\n public isFree(): boolean {\n const summaryTotal = this.summaryItems.reduce(\n (all, item) => {\n const totalPrices = item.prices.reduce((acc, price) => acc + price.price, 0);\n\n return all + totalPrices;\n }\n , 0);\n\n return summaryTotal === 0;\n }\n}\n","import { BillingFrequency, Currency, formatBillingFrequency, formatDisplayPrice } from '@vendasta/core/shared';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'price' })\nexport class PricePipe implements PipeTransform {\n transform(\n value: any,\n currency: Currency,\n billingFrequency?: BillingFrequency,\n isCents: boolean = true,\n translateZero: boolean = true,\n displaySymbol: boolean = true\n ): any {\n return formatDisplayPrice(value, currency, billingFrequency, isCents, translateZero, displaySymbol);\n }\n}\n\n@Pipe({ name: 'formatBillingFrequency' })\nexport class FormatBillingFrequencyPipe implements PipeTransform {\n transform(value: string): string {\n return formatBillingFrequency(value);\n }\n}\n","import { Inject, NgModule, Optional } from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n MatButtonModule, MatCheckboxModule, MatExpansionModule, MatIconModule, MatInputModule, MatOptionModule,\n MatProgressSpinnerModule, MatSelectModule, MatCardModule, MatTooltipModule\n} from '@angular/material';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\nimport { MatListModule } from '@angular/material/list'\nimport {VaFormsModule} from '@vendasta/forms';\nimport {VaIconModule, VaBadgeModule } from '@vendasta/uikit';\n\nimport {DropDownFormSectionComponent} from './dropdown-form-section/dropdown-form-section.component';\nimport {FieldComponent} from './fields/field.component';\nimport {FieldService} from './fields/field.service';\nimport {VaHeaderContainerModule} from '../header-container/header-container.module';\nimport {OrderFormSectionComponent} from './order-form-section/order-form-section.component';\nimport {OrderFormComponent} from './order-form/order-form.component';\nimport {OrderFormService} from './order-form/order-form.service';\nimport {FieldBuilderComponent} from './fields/field-builder/field-builder.component';\nimport { OrderItemListComponent } from './order-item-list/order-item-list.component';\nimport { OrderItemListService } from './order-item-list/order-item-list.service';\n\nimport { PricePipe, FormatBillingFrequencyPipe } from './../shared/pricing-pipes';\nimport { Observable } from 'rxjs';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatCheckboxModule,\n MatExpansionModule,\n MatIconModule,\n MatInputModule,\n MatOptionModule,\n MatProgressSpinnerModule,\n MatSelectModule,\n MatCardModule,\n MatTooltipModule,\n ReactiveFormsModule,\n VaFormsModule,\n VaHeaderContainerModule,\n VaIconModule,\n VaFormsModule,\n VaBadgeModule,\n MatListModule,\n TranslateModule.forChild(),\n ],\n declarations: [\n DropDownFormSectionComponent,\n FieldComponent,\n OrderFormSectionComponent,\n OrderFormComponent,\n FieldBuilderComponent,\n OrderItemListComponent,\n PricePipe,\n FormatBillingFrequencyPipe,\n ],\n exports: [\n DropDownFormSectionComponent,\n FieldComponent,\n OrderFormSectionComponent,\n OrderFormComponent,\n FieldBuilderComponent,\n OrderItemListComponent,\n ],\n providers: [\n FieldService,\n OrderFormService,\n OrderItemListService,\n ]\n})\nexport class VaOrderFormModule {\n constructor(private translateService: TranslateService,\n @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>,\n @Optional() @Inject('DEFAULT_LANG') defaultLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => translateService.use(currentLang)); }\n if (defaultLang$) { defaultLang$.subscribe(defaultLang => translateService.setDefaultLang(defaultLang)); }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\n\n@Injectable()\nexport class StoreService {\n\n markFormsAsTouched(formGroup: FormGroup) {\n for (const key in formGroup.controls) {\n if (formGroup.controls[key] instanceof FormGroup) {\n this.markFormsAsTouched(formGroup.controls[key] as FormGroup);\n } else {\n (formGroup.controls[key] as FormControl).markAsTouched();\n (formGroup.controls[key] as FormControl).updateValueAndValidity();\n }\n }\n }\n}\n","export class File {\n\n constructor(public url: string) {\n this.url = url;\n }\n\n get name(): string {\n return this.url ? this.url.substring(this.url.lastIndexOf('/') + 1, this.url.lastIndexOf('.')) : null;\n }\n\n get icon(): string {\n const ext = this.url ? this.url.substring(this.url.lastIndexOf('.') + 1) : null;\n switch (ext) {\n case 'pdf':\n return 'icon-pdf';\n case 'ppt':\n return 'icon-ppt';\n default:\n return 'icon-docs';\n }\n }\n}\n","export interface Pricing {\n currency: string;\n prices: Price[];\n}\n\nexport interface Price {\n price: number;\n frequency: string;\n isStartingPrice?: boolean;\n}\n\nexport const CONTACT_SALES = -1;\n","import { CONTACT_SALES, Pricing } from '../pricing/pricing';\n\nexport class Sellable {\n pricing: Pricing;\n\n get isFree(): boolean {\n return this.pricing && this.pricing.prices ? this.pricing.prices.some(p => p.price === 0 || p.price === undefined) : false;\n }\n\n get shouldContactSales(): boolean {\n return this.pricing && this.pricing.prices ?\n this.pricing.prices.some(p => p.price === null || p.price === CONTACT_SALES) ||\n this.pricing.prices.length === 0 : true;\n }\n\n static getCapitalizeFirstLetter(inputString: string): string {\n return inputString ? inputString.charAt(0).toUpperCase() + inputString.slice(1) : null;\n }\n\n get formattedPricingList(): string[] {\n if (this.pricing && this.pricing.prices && this.pricing.prices.length) {\n const hasCurrencyAndIsNotUSD = this.pricing.currency && this.pricing.currency !== 'USD';\n const currencyStr = hasCurrencyAndIsNotUSD ? this.pricing.currency : '';\n const currencySymbol = Sellable.getCurrencySymbol(this.pricing.currency);\n\n return this.pricing.prices.map(price => {\n const frequencyStr = price.frequency ? '/ ' + Sellable.getCapitalizeFirstLetter(price.frequency) : '';\n const roundedPrice = ((price.price || 0) / 100.0).toFixed(2);\n const startingAtPrefix = price.isStartingPrice ? 'Starting at ' : '';\n const priceStr = `${startingAtPrefix}${currencySymbol}${roundedPrice} ${currencyStr} ${frequencyStr}`;\n return (priceStr.trim().replace(/\\s+/g, ' '));\n });\n } else {\n return ['Contact Sales'];\n }\n }\n\n get priceStrings(): string[] {\n if (this.shouldContactSales) {\n return ['Contact Sales'];\n }\n\n if (this.isFree) {\n return ['Free'];\n }\n\n return this.formattedPricingList;\n }\n\n get formattedWholesalePrice(): string {\n return this.priceStrings.join(' + ');\n }\n\n static getCurrencySymbol(currency: string): string {\n let currencySymbol = '$';\n switch (currency) {\n case 'EUR': currencySymbol = '\\u20AC'; break;\n case 'GBP': currencySymbol = '\\u00A3'; break;\n case 'CHF': currencySymbol = 'Fr'; break;\n case 'CNY': currencySymbol = '\\u00A5'; break;\n case 'JPY': currencySymbol = '\\u00A5'; break;\n case 'CZK': currencySymbol = 'K\\u010d'; break;\n case 'INR': currencySymbol = '\\u20B9'; break;\n case 'KHR': currencySymbol = '\\u17DB'; break;\n case 'KRW': currencySymbol = '\\u20A9'; break;\n case 'NOK': currencySymbol = 'kr'; break;\n case 'SEK': currencySymbol = 'kr'; break;\n case 'RUB': currencySymbol = '\\u20BD'; break;\n case 'TRY': currencySymbol = '\\u20BA'; break;\n case 'ZAR': currencySymbol = 'R'; break;\n default: currencySymbol = '$'; break;\n }\n return currencySymbol;\n }\n\n}\n","// @dynamic\nexport class CaseTransform {\n static snakeToCamelCase(value: string): string {\n return value ? value.replace(new RegExp(/_/g), ' ').replace(/\\b\\w/g, l => l.toUpperCase())\n .replace(/\\b\\w/, l => l.toLowerCase()).replace(/\\s/g, '') : value;\n }\n\n static lowerToTitleCase(value: string): string {\n // Code taken from https://github.com/gouch/to-title-case to support the proper spec.\n const smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\n\n return value ? value.replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length &&\n match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' &&\n (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') &&\n title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n }) : value;\n };\n}\n","import {File} from '../files/shared/file.model';\nimport {Faq} from '../faqs/shared/faqs.model';\nimport {Sellable} from './sellable';\nimport {CaseTransform} from './case-transform';\nimport {Addon} from '@vendasta/core/shared';\nimport {Restrictions} from '../restrictions/shared/restrictions.model';\n\nconst COLOR_CODES = [\n '#EF5350', '#42A5F5', '#66BB6A', '#FFA726', '#AB47BC', '#FFCA28', '#EC407A', '#26C6DA',\n '#FF7B57'\n];\n\nconst DEFAULT_COLOR = '#808080';\n\nexport class Product extends Sellable {\n productId: string;\n editionId: string;\n editionName: string;\n name: string;\n description: string;\n tagline: string;\n iconUrl: string;\n entryUrl: string;\n screenshotUrls: string[];\n pdfUploadUrls: string[];\n lmiCategories: string[];\n keySellingPoints: string[];\n faqs: Faq[];\n wholesalePrice: number;\n currency: string;\n billingFrequency: string;\n billingId: string;\n isArchived: boolean;\n addons: Addon[] = [];\n files: File[];\n restrictions: Restrictions;\n trialConfiguration: TrialConfigurationInterface;\n\n static fromApi(data: any): Product {\n const newProduct = {};\n data = data || {};\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n const newKey = CaseTransform.snakeToCamelCase(key);\n newProduct[newKey] = data[key];\n }\n }\n return new Product(newProduct);\n }\n constructor(data?: any) {\n super();\n data = data || {};\n this.pricing = data.pricing;\n this.productId = data.productId;\n this.editionId = data.editionId;\n this.editionName = data.editionName;\n this.name = data.name;\n this.description = data.description;\n this.tagline = data.tagline;\n this.iconUrl = data.iconUrl;\n this.entryUrl = data.entryUrl;\n this.screenshotUrls = data.screenshotUrls;\n this.pdfUploadUrls = data.pdfUploadUrls;\n this.lmiCategories = data.lmiCategories;\n this.keySellingPoints = data.keySellingPoints;\n this.faqs = data.faqs;\n this.wholesalePrice = data.wholesalePrice;\n this.currency = data.currency;\n this.billingFrequency = data.billingFrequency;\n this.isArchived = data.isArchived;\n this.addons = data.addons;\n this.restrictions = data.restrictions;\n this.billingId = data.billingId;\n if (data.hasOwnProperty('pdfUploadUrls')) {\n this.files = this.pdfUploadUrls ? this.pdfUploadUrls.map(url => new File(url)) : null;\n }\n }\n get iconStyle(): string {\n return this.iconUrl ? `url(\"${this.iconUrl}\") no-repeat center / 100% 100%` : null;\n }\n\n get iconColor(): string {\n // determine an icon color for a product with no icon by using the product name\n if (!this.name) {\n return DEFAULT_COLOR;\n }\n\n let nameSum = 0;\n for (let i = 0; i < this.name.length; i++) {\n nameSum += this.name[i].charCodeAt(0);\n }\n\n const index = nameSum % COLOR_CODES.length;\n return COLOR_CODES[index];\n }\n\n getLmiCategoryNames(): string[] {\n const lmiCategories = this.lmiCategories || [];\n return lmiCategories.map(lmiCategory => CaseTransform.lowerToTitleCase(lmiCategory.toLowerCase().replace(/_/g, ' ')));\n }\n}\n\nexport class ProductWithParent extends Product {\n parentId: string;\n parentName: string;\n parentIconUrl: string;\n multipleActivations: boolean;\n\n static fromApi(data: any): ProductWithParent {\n const newProduct = {};\n data = data || {};\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n const newKey = CaseTransform.snakeToCamelCase(key);\n newProduct[newKey] = data[key];\n }\n }\n return new ProductWithParent(newProduct);\n }\n constructor(data?: any) {\n super(data);\n this.parentId = data.parentId;\n this.parentName = data.parentName;\n this.parentIconUrl = data.parentIconUrl;\n this.multipleActivations = data.multipleActivations || false;\n }\n}\n\nexport interface TrialConfigurationInterface {\n trialEnabled: boolean;\n trialDuration: number;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Product } from '../shared/product';\nimport { Addon } from '@vendasta/core/shared';\nimport { Pricing } from '../pricing/pricing';\nimport { BilledProduct } from '@vendasta/core/billing';\n\n@Component({\n selector: 'addon-details',\n templateUrl: 'addon-details.component.html',\n styleUrls: ['./addon-details.component.scss']\n})\nexport class AddonDetailsComponent {\n @Input() product: Product;\n @Input() addon: Addon;\n @Input() reseller: true;\n @Input() billedProduct: BilledProduct;\n @Input() hasVerifiedContract = false;\n @Input() loaded = true;\n @Input() showPricing = true;\n @Input() showEnableAddon = false;\n @Input() actionEnabled = false;\n @Output() prerequisiteSelected = new EventEmitter();\n @Output() actionSelected = new EventEmitter();\n\n onPrerequisiteSelected(): void {\n this.prerequisiteSelected.emit();\n }\n onActionSelected(): void {\n this.actionSelected.emit();\n }\n\n getPricing(product: Product, addon: Addon): Pricing {\n return {\n currency: product.currency,\n prices: [\n {\n price: addon.price,\n frequency: addon.billingFrequency ? addon.billingFrequency : 'Monthly'\n }\n ]\n };\n }\n\n get pricingLabel(): string {\n return this.reseller ? 'Wholesale Pricing' : 'Pricing';\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {File} from './shared/file.model';\n\n@Component({\n selector: 'va-files',\n template: `\n <div class=\"va-files file-list-container\" *ngFor=\"let file of files\">\n <mat-icon class=\"file-icon\">insert_drive_file</mat-icon>\n <a [href]=\"file.url\" target=\"_blank\">{{ file.name }}</a>\n </div>`,\n styleUrls: ['./files.component.scss']\n})\n\nexport class VaFilesComponent {\n @Input() files: File[];\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {VaFilesComponent} from './files.component';\nimport {MatIconModule} from '@angular/material';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule\n ],\n declarations: [VaFilesComponent],\n exports: [VaFilesComponent]\n})\nexport class VaFilesModule {\n}\n","import {Component, Input} from '@angular/core';\nimport {Faq} from './shared/faqs.model';\n\n@Component({\n selector: 'va-faqs',\n template: `\n <div class=\"va-faq\" *ngFor=\"let faq of faqs; let i = index;\">\n <div class=\"question\" (click)=\"toggleFaq(i)\">\n <span>{{ faq.question }}</span>\n <mat-icon>{{ faqIcon(i) }}</mat-icon>\n </div>\n <span class=\"answer\" [ngClass]=\"{'show': isFaqOpen(i) }\" [innerHtml]=\"faq.answer | vaSanitize\"></span>\n </div>`,\n styleUrls: ['./faqs.component.scss']\n})\n\nexport class VaFaqsComponent {\n @Input() faqs: Faq[];\n openFaqs: number[] = [];\n\n toggleFaq(index: number): void {\n if (this.openFaqs.indexOf(index) >= 0) {\n this.openFaqs.splice(this.openFaqs.indexOf(index), 1); // Remove\n } else {\n this.openFaqs.push(index); // Insert\n }\n }\n\n isFaqOpen(index: number): boolean {\n return this.openFaqs.indexOf(index) >= 0;\n }\n\n faqIcon(index: number): string {\n return this.isFaqOpen(index) ? 'keyboard_arrow_up' : 'keyboard_arrow_down';\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {VaFaqsComponent} from './faqs.component';\nimport {MatIconModule} from '@angular/material';\nimport {VaSafeHtmlModule} from '@vendasta/uikit';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, VaSafeHtmlModule],\n declarations: [VaFaqsComponent],\n exports: [VaFaqsComponent]\n})\nexport class VaFaqsModule {}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'va-selling-info',\n template: `\n <section *ngIf=\"description\" class=\"resize\" [innerHtml]=\"filterDescription | vaSafeHtml\"></section>\n <section *ngIf=\"keySellingPoints && keySellingPoints.length > 0\" class=\"key-selling-points\">\n <div *ngFor=\"let ksp of keySellingPoints\" class=\"key-selling-point\">\n <mat-icon>check_circle</mat-icon>\n {{ ksp }}\n </div>\n </section>\n `,\n styleUrls: ['./selling-info.component.scss']\n})\n\nexport class VaSellingInfoComponent {\n @Input() description: String;\n @Input() keySellingPoints: String[];\n\n get filterDescription() {\n const desc = this.description.replace(/max-width:\\d*[^\\\"]/i, 'max-width:100%');\n if ((desc.indexOf('\"max-width:100%\"') === -1) && (desc.indexOf('<iframe ') !== -1)) {\n const index = desc.indexOf('<iframe ') + 7;\n return desc.substr(0, index) + ' style=\"max-width:100%\"' + desc.substr(index);\n }\n return String(desc);\n }\n}\n\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {VaSellingInfoComponent} from './selling-info.component';\nimport {MatIconModule} from '@angular/material';\nimport {VaSafeHtmlModule} from '@vendasta/uikit';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, VaSafeHtmlModule],\n declarations: [VaSellingInfoComponent],\n exports: [VaSellingInfoComponent]\n})\nexport class VaSellingInfoModule {}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'supported-countries',\n template: `\n <span class=\"supported-text\"> Supported Countries: </span>\n <div class=\"flags\">\n <span *ngFor=\"let countryCode of countryCodes\" matTooltip=\"{{countryCode}}\" matTooltipPosition=\"below\"\n class=\"flag-icon flag-icon-{{countryCode.toLowerCase()}}\">\n </span>\n </div>\n `,\n styleUrls: ['./supported-countries.component.scss']\n})\n\nexport class SupportedCountriesComponent {\n @Input() countryCodes: string[];\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SupportedCountriesComponent} from './country/supported-countries.component';\nimport {MatTooltipModule} from '@angular/material';\n\n@NgModule({\n imports: [CommonModule, MatTooltipModule],\n declarations: [SupportedCountriesComponent],\n exports: [SupportedCountriesComponent]\n})\nexport class RestrictionsModule {}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {VaBreadcrumbsModule, VaIconModule, VaImageGalleryModule, VaListModule, VaSafeHtmlModule} from '@vendasta/uikit';\nimport {AddonDetailsComponent} from './addon-details.component';\nimport {VaPricingModule} from '../pricing/pricing.module';\nimport {VaFilesModule} from '../files/files.module';\nimport {VaFaqsModule} from '../faqs/faqs.module';\nimport {VaSellingInfoModule} from '../selling-info/selling-info.module';\nimport {VaHeaderContainerModule} from '../header-container/header-container.module';\nimport {RestrictionsModule} from '../restrictions/restrictions.module';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\n@NgModule({\n imports: [\n CommonModule,\n VaListModule,\n VaImageGalleryModule,\n VaIconModule,\n VaPricingModule,\n VaFilesModule,\n VaFaqsModule,\n VaSellingInfoModule,\n VaHeaderContainerModule,\n VaSafeHtmlModule,\n MatProgressSpinnerModule,\n VaBreadcrumbsModule,\n RestrictionsModule\n ],\n exports: [AddonDetailsComponent],\n declarations: [AddonDetailsComponent],\n providers: [],\n entryComponents: []\n})\nexport class AddonModule {\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'details-stencil',\n template: `\n <div class=\"details\">\n\n <mat-card class=\"details-header\">\n <div class=\"details-column-0\">\n <div class=\"details-column-0-1\">\n <div class=\"details-icon stencil-shimmer\"></div>\n </div>\n <div class=\"details-column-0-2\">\n <div class=\"details-title stencil-shimmer\"></div>\n <div class=\"details-title stencil-shimmer\"></div>\n </div>\n </div>\n <div class=\"details-column-1\">\n <div class=\"details-column-1-0 stencil-shimmer\"></div>\n <div class=\"details-column-1-1 stencil-shimmer\"></div>\n </div>\n </mat-card>\n\n <mat-card>\n <div class=\"details-box-large stencil-shimmer\"></div>\n </mat-card>\n\n <mat-card class=\"details-body\">\n <div class=\"details-body-column-0\" >\n <div class=\"details-icon-small stencil-shimmer\"></div>\n <div class=\"details-icon-small stencil-shimmer\"></div>\n <div class=\"details-icon-small stencil-shimmer\"></div>\n <div class=\"details-icon-small stencil-shimmer\"></div>\n <div class=\"details-icon-small stencil-shimmer\"></div>\n <div class=\"details-icon-small stencil-shimmer\"></div>\n <div class=\"details-icon-small stencil-shimmer\"></div>\n </div>\n <div class=\"details-body-column-1\">\n <div class=\"details-line stencil-shimmer\"></div>\n <div class=\"details-line stencil-shimmer\"></div>\n <div class=\"details-line stencil-shimmer\"></div>\n <div class=\"details-line stencil-shimmer\"></div>\n <div class=\"details-line stencil-shimmer\"></div>\n <div class=\"details-line stencil-shimmer\"></div>\n <div class=\"details-line stencil-shimmer\"></div>\n </div>\n <div class=\"details-body-column-2\">\n <div class=\"details-box stencil-shimmer\"></div>\n <div class=\"details-box stencil-shimmer\"></div>\n <div class=\"details-box stencil-shimmer\"></div>\n <div class=\"details-box stencil-shimmer\"></div>\n <div class=\"details-box stencil-shimmer\"></div>\n </div>\n </mat-card>\n\n </div>\n `,\n styleUrls: ['./details-stencil.component.scss']\n})\n\nexport class DetailsStencilComponent {\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'card-stencil',\n template: `\n <div class=\"card-stencil-container\">\n <mat-card class=\"card-stencil\">\n <div class=\"card-stencil-header stencil-shimmer\"></div>\n <div class=\"card-stencil-footer\">\n <div class=\"card-stencil-circle stencil-shimmer\"></div>\n <div>\n <div class=\"card-stencil-line-large stencil-shimmer\"></div>\n <div class=\"card-stencil-line-medium stencil-shimmer\"></div>\n </div>\n </div>\n </mat-card>\n </div>\n `,\n styleUrls: ['card-stencil.component.scss']\n})\n\nexport class CardStencilComponent {\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'card-stencil-list',\n template: `\n <div class=\"row row-gutters\">\n <div *ngFor=\"let _ of cards\" class=\"col-flex\">\n <card-stencil></card-stencil>\n </div>\n </div>\n `,\n styles: [`\n .row {\n display: flex;\n flex-wrap: wrap;\n }\n\n .row + .row-gutters {\n margin-top: 0;\n }\n\n .row-gutters {\n margin-top: -20px;\n margin-left: -20px;\n }\n\n .row-gutters > .col-flex {\n padding-top: 20px;\n padding-left: 20px;\n }\n\n .col-flex {\n position: relative;\n max-width: 100%;\n box-sizing: border-box;\n flex: 0 0 auto;\n width: 100%;\n }\n\n @media screen and (min-width: 480px) {\n .col-flex {\n width: 50%;\n }\n }\n\n @media screen and (min-width: 1200px) {\n\n .col-flex {\n width: 33.333333%;\n }\n }\n\n `]\n})\n\nexport class CardListStencilComponent implements OnInit {\n\n @Input() numCards = 3;\n cards: number[] = [];\n\n ngOnInit() {\n for (let n = 0; n < this.numCards; n++) {\n this.cards.push(n);\n }\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'search-bar-stencil',\n template: `\n <div class=\"search-bar-stencil-container\">\n <div class=\"search-bar-stencil-line stencil-shimmer\">\n <div class=\"search-bar-stencil-icon\"></div>\n </div>\n </div>\n `,\n styles: [`\n .search-bar-stencil-container {\n height: 52px;\n display: flex;\n align-content: center;\n background-color: white;\n border-radius: 2px;\n }\n .search-bar-stencil-line {\n height: 30px;\n width: 350px;\n margin: auto 10px;\n display: flex;\n justify-content: flex-end;\n }\n .search-bar-stencil-icon {\n background-color: white;\n width: 20px;\n height: 20px;\n margin: auto 5px;\n }\n `]\n})\n\nexport class SearchBarStencilComponent {\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'list-stencil',\n template: `\n <mat-card class=\"list-container\">\n <div *ngIf=\"showHeader\" class=\"list-header stencil-shimmer\" style=\"\"></div>\n <div *ngFor=\"let _ of rows\">\n <div class=\"list-item-row\" [ngStyle]=\"listItemRowStyles\">\n <div class=\"stencil-shimmer\" style=\"margin: 0; padding: 0; width: 100%; height: 80%;\"></div>\n </div>\n </div>\n </mat-card>\n `,\n styles: [`\n .list-container { padding: 0; }\n .list-header { height: 40px; }\n .list-item-row { height: 50px; display: flex; justify-content: space-between; align-items: center; }\n `]\n})\n\nexport class ListStencilComponent implements OnInit {\n\n @Input() showHeader = true;\n @Input() numRows = 3;\n @Input() rowHeight = '51px'; // defaults to height of partner center business tab height (95px for marketplace)\n @Input() sidePadding = '17px'; // defaults to padding on partner center business padding (38px for marketplace)\n\n rows: number[] = []; // this is to turn the number of rows into an arbitrary list so we can loop through them\n listItemRowStyles: any;\n\n ngOnInit() {\n for (let n = 0; n < this.numRows; n++) {\n this.rows.push(n);\n }\n\n // if you think this is gross i agree\n // if you think this is gross and actually have a solution hit me up otherwise just enjoy the magic.\n // determine the height of each row for the table\n\n this.listItemRowStyles = {\n 'height': `${this.rowHeight}`,\n 'padding': `0 ${this.sidePadding}`\n }\n\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n MatCardModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n MatExpansionModule,\n MatCheckboxModule} from '@angular/material';\nimport {CommonModule} from '@angular/common';\n\nimport {DetailsStencilComponent} from './details-stencil.component';\nimport {CardStencilComponent} from './card-stencil.component';\nimport {CardListStencilComponent} from './card-list-stencil.component';\nimport {SearchBarStencilComponent} from './search-bar-stencil.component';\nimport {ListStencilComponent} from './list-stencil.component';\n\n@NgModule({\n imports: [CommonModule, MatCardModule, MatIconModule, MatInputModule, MatSelectModule, MatExpansionModule, MatCheckboxModule],\n declarations: [DetailsStencilComponent, CardStencilComponent, CardListStencilComponent, SearchBarStencilComponent, ListStencilComponent],\n exports: [DetailsStencilComponent, CardStencilComponent, CardListStencilComponent, SearchBarStencilComponent, ListStencilComponent]\n})\nexport class StencilsModule {}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ChangeDetectorRef } from '@angular/core';\nimport { Addon } from '@vendasta/core/shared';\nimport { Subscription } from 'rxjs';\nimport { Pricing } from '../pricing/pricing';\nimport { isNullOrUndefined } from 'util';\nimport { BillingService, BilledProduct, buildBilledProductFromProductPricingAndAddon } from '@vendasta/core/billing';\n\n@Component({\n selector: 'va-addon-list',\n templateUrl: './addon-list.component.html',\n styleUrls: ['./addon-list.component.scss']\n})\nexport class VaAddonListComponent implements OnDestroy, OnInit {\n _addons: Addon[];\n @Input('addons')\n set addons(addons: Addon[]) {\n this._addons = addons;\n this.populateBilledProduct();\n }\n @Input() showPricing = true;\n @Input() partnerID: string;\n\n _hasVerifiedContract: boolean = null;\n @Input('hasVerifiedContract')\n set hasVerifiedContract(value: boolean) {\n this._hasVerifiedContract = value;\n this.populateBilledProduct();\n }\n _canAccessContractPricing: boolean = null;\n @Input('canAccessContractPricing')\n set canAccessContractPricing(value: boolean) {\n this._canAccessContractPricing = value;\n this.populateBilledProduct();\n }\n\n @Output() addonSelected = new EventEmitter<String>();\n\n billedProductsMap: Map<string, BilledProduct> = new Map();\n private billedProductLoaded: Map<string, boolean> = new Map();\n private subscriptions: Subscription[] = [];\n\n constructor(private billingService: BillingService, private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.populateBilledProduct();\n }\n\n populateBilledProduct() {\n if (this.displayContractPricing()) {\n const billingIDs = this._addons.map(a => {\n this.billedProductsMap.set(a.addonId, null);\n this.billedProductLoaded.set(a.addonId, false);\n return a.billingId;\n });\n this.subscriptions.push(\n this.billingService.getMultiProductPricing(this.partnerID, billingIDs).subscribe(pricing => {\n this._addons.forEach(addon => {\n const addonPricing = pricing[addon.billingId];\n if (!addonPricing) {\n return;\n }\n const billedProduct = buildBilledProductFromProductPricingAndAddon(addon, addonPricing);\n this.billedProductsMap.set(addon.addonId, billedProduct);\n this.billedProductLoaded.set(addon.addonId, true);\n });\n this.cdr.detectChanges();\n })\n )\n }\n }\n\n onClick(addonId: String): void {\n this.addonSelected.emit(addonId);\n }\n\n public instanceOfPricing(object: any) {\n if (typeof object === 'number') {\n return false;\n }\n return object.currency !== undefined && object.prices !== undefined;\n }\n\n getDisplayPricing(addon: Addon): Pricing {\n const price: any = addon.price;\n if (price && this.instanceOfPricing(price)) {\n return price;\n }\n return {\n currency: addon.currency,\n prices: [\n {\n price: addon.price,\n frequency: addon.billingFrequency ? addon.billingFrequency : 'Monthly'\n }\n ]\n };\n }\n\n noData(): boolean {\n return isNullOrUndefined(this._hasVerifiedContract) || isNullOrUndefined(this._canAccessContractPricing);\n }\n\n displayContractPricing(): boolean {\n return this._canAccessContractPricing && this._hasVerifiedContract;\n }\n\n isBilledProductLoaded(addon: Addon): boolean {\n\n if (this.noData()) {\n return false;\n }\n if (this.displayContractPricing()) {\n const value = this.billedProductLoaded.get(addon.addonId);\n return value ? value : false;\n }\n return true;\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {VaAddonListComponent} from './addon-list.component';\nimport {MatDividerModule, MatIconModule, MatListModule} from '@angular/material';\nimport {VaPricingModule} from '../pricing/pricing.module';\nimport {BillingModule} from '@vendasta/core/billing';\n\n@NgModule({\n imports: [\n BillingModule,\n CommonModule,\n MatIconModule,\n MatListModule,\n MatDividerModule,\n VaPricingModule\n ],\n declarations: [VaAddonListComponent],\n exports: [VaAddonListComponent]\n})\nexport class VaAddonListModule {\n}\n","import { Inject, Injectable, InjectionToken, NgModule } from '@angular/core';\n\nexport interface HeimdallServiceTokenInterface {\n track(category: string, action: string, label: string, value?: number, dimensions?: {[key: string]: string}): void;\n}\n\nexport const HeimdallServiceToken: InjectionToken<HeimdallServiceTokenInterface> = new InjectionToken<\n HeimdallServiceTokenInterface\n >('HeimdallService');\n\n@Injectable()\nexport class HeimdallClient {\n constructor(@Inject(HeimdallServiceToken) private userEvents: HeimdallServiceTokenInterface) {}\n\n track(category: string, action: string, label: string, value?: number, dimensions?: {[key: string]: string}): void {\n this.userEvents.track(category, action, label, value, dimensions);\n }\n}\n\n@NgModule({\n providers: [HeimdallClient]\n})\nexport class HeimdallClientModule {}\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, Inject } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith, filter, take } from 'rxjs/operators';\n\nimport { Filters, FilterSection, TabbedFilterField, CheckboxFilterField, FilterService, FilterField } from '@vendasta/uikit';\nimport { StoreItem, CategoryToItemListMap } from '../store-item';\nimport { HeimdallServiceToken, HeimdallServiceTokenInterface } from '../heimdall-client-token';\nimport { LMI_CATEGORIES } from '../';\nimport { Categories } from '@vendasta/core/marketplace-packages';\nimport { TranslateService } from '@ngx-translate/core';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\nexport const STOREFRONT_FILTER_NAME = 'Store Filters';\n\nexport interface StorefrontCategory {\n id: string,\n name: string,\n packageIds: string[],\n}\n\n@Component({\n selector: 'va-storefront',\n templateUrl: './storefront.component.html',\n styleUrls: ['./storefront.component.scss']\n})\nexport class StorefrontComponent implements OnInit, OnDestroy {\n @Input()\n set categories(value: StorefrontCategory[]) {\n this.categories$$.next(value || []);\n }\n @Input()\n set categoryIdToStoreItemListMap(value: CategoryToItemListMap) {\n this.packagesMap$$.next(value || new Map<string, StoreItem[]>());\n }\n @Input() useCustomCase = false;\n @Output() categorySelected = new EventEmitter<StorefrontCategory>();\n @Output() packageIdSelected = new EventEmitter<string>();\n @Output() getDataForCategory = new EventEmitter<StorefrontCategory>();\n\n private categories$$: BehaviorSubject<StorefrontCategory[]> = new BehaviorSubject<StorefrontCategory[]>([]);\n private packagesMap$$: BehaviorSubject<CategoryToItemListMap> =\n new BehaviorSubject<CategoryToItemListMap>(new Map<string, StoreItem[]>());\n private searchTerm$$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private selectedCateoryId$$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private lmiCategoryFilter: Filters;\n filters$: Observable<Filters>;\n filteredItems$: Observable<StoreItem[]>;\n searchTermSubscription: Subscription;\n showLMIFilter$: Observable<boolean>;\n\n constructor(\n @Inject(HeimdallServiceToken) private userEvents: HeimdallServiceTokenInterface,\n private filterService: FilterService,\n private translateService: TranslateService\n ) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n }\n\n ngOnInit(): void {\n const lmiCategoryCheckboxList = LMI_CATEGORIES.map((category) => {\n return new CheckboxFilterField({\n name: category.name,\n id: category.categoryId,\n value: false,\n condition: (item: {lmiCategories: string[]}): boolean => {\n let lmiCategories: string[] = [];\n if (item.lmiCategories) {\n lmiCategories = item.lmiCategories.map((cat) => {\n return Categories[cat].toLowerCase();\n });\n }\n return lmiCategories.indexOf(category.categoryId) > -1;\n }\n });\n });\n\n const lmiCategoryFilterSection = new FilterSection({\n title: 'LMI Category',\n type: 'or',\n fields: lmiCategoryCheckboxList\n });\n\n this.lmiCategoryFilter = new Filters(STOREFRONT_FILTER_NAME, [\n lmiCategoryFilterSection\n ]);\n\n this.filters$ = this.categories$$.pipe(\n map(categories => {\n const tabbedFilterField = new TabbedFilterField({\n name: '',\n value: null,\n id: 'categorytab',\n options: categories\n });\n\n const filters = new Filters(STOREFRONT_FILTER_NAME, [\n new FilterSection({\n title: 'Categories',\n type: 'or',\n fields: [tabbedFilterField]\n }),\n lmiCategoryFilterSection\n ]);\n\n return filters;\n })\n );\n\n this.filterService.setFilters(this.lmiCategoryFilter);\n\n this.searchTermSubscription = this.searchTerm$$.asObservable().pipe(\n debounceTime(300),\n distinctUntilChanged()).subscribe(\n searchTerm => this.userEvents.track('store', 'search-input', '', 1, {'searchTerm': searchTerm})\n );\n\n const selectedLMIFilters$ = this.filterService.filters.fieldValuesObservable.pipe(\n startWith([]),\n map(() => {\n return this.lmiCategoryFilter.fields.filter((item: CheckboxFilterField) => item.value);\n })\n );\n\n this.showLMIFilter$ = selectedLMIFilters$.pipe(\n filter(selectedLMIFilters => !!selectedLMIFilters),\n take(1),\n map(selectedLMIFilters => selectedLMIFilters.length > 0)\n );\n\n this.filteredItems$ = combineLatest(this.packagesMap$$, this.searchTerm$$, this.selectedCateoryId$$, selectedLMIFilters$).pipe(\n map(([packages, searchTerm, selectedCategoryId, selectedLMIFilters]) => {\n let storeItems: StoreItem[] = [];\n if (packages.size) {\n storeItems = (selectedCategoryId ? packages.get(selectedCategoryId) : packages.get(Array.from(packages.keys())[0]));\n }\n storeItems = storeItems ? this.lmiCategoryFilter.applyFilters(storeItems) : [];\n\n return searchTerm ? storeItems.filter(item => item.name.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1) : storeItems;\n })\n );\n }\n\n ngOnDestroy(): void {\n this.searchTermSubscription.unsubscribe();\n }\n\n public onSearchTermChanged(term: string): void {\n this.searchTerm$$.next(term);\n }\n\n public onFieldValueChanged(filterField: FilterField<any>): void {\n if (!(filterField instanceof TabbedFilterField)) {\n return;\n }\n\n this.selectedCateoryId$$.next(filterField.value.id);\n this.categorySelected.emit(filterField.value as StorefrontCategory);\n\n const currentStoreItemsForSelectCategory = this.packagesMap$$.getValue().get(filterField.value.id);\n if (!(currentStoreItemsForSelectCategory && currentStoreItemsForSelectCategory.length)) {\n this.getDataForCategory.emit(filterField.value as StorefrontCategory);\n }\n}\n\n public storeItemClicked(item: StoreItem): void {\n this.packageIdSelected.emit(item.id);\n }\n\n}\n","import { Inject, NgModule, Optional } from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n MatCardModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n MatExpansionModule,\n MatCheckboxModule} from '@angular/material';\nimport {CommonModule} from '@angular/common';\n\nimport {UIKitModule, FilterService} from '@vendasta/uikit';\n\nimport {StoreCardModule} from './store-card.module';\nimport {StoreComponent} from './store.component';\nimport {VaOrderFormModule} from './order-form/order-form.module';\nimport {StoreService} from './store.service';\nimport {AddonModule} from './addon-details/addon.module';\nimport {StencilsModule} from './stencils/stencils.module';\nimport {VaPricingModule} from './pricing/pricing.module';\nimport {VaAddonListModule} from './addon-list/addon-list.module';\nimport {StorefrontComponent} from './storefront/storefront.component';\nimport {HeimdallClientModule} from './heimdall-client-token';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { En } from './assets/i18n/en';\nimport { Cs } from './assets/i18n/cs';\n\n@NgModule({\n imports: [CommonModule, UIKitModule, MatCardModule, MatIconModule, MatInputModule, FormsModule, ReactiveFormsModule,\n MatSelectModule, MatExpansionModule, MatCheckboxModule, StoreCardModule, VaOrderFormModule, AddonModule, StencilsModule,\n VaPricingModule, VaAddonListModule, HeimdallClientModule, TranslateModule.forChild()],\n declarations: [StoreComponent, StorefrontComponent],\n providers: [StoreService, FilterService],\n exports: [StoreComponent, StoreCardModule, VaOrderFormModule, StencilsModule, StorefrontComponent]\n})\nexport class StoreModule {\n constructor(private translateService: TranslateService,\n @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>,\n @Optional() @Inject('DEFAULT_LANG') defaultLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => translateService.use(currentLang)); }\n if (defaultLang$) { defaultLang$.subscribe(defaultLang => translateService.setDefaultLang(defaultLang)); }\n }\n}\n","export interface LmiCategory {\n name: string;\n categoryId: string;\n}\n\nexport const LMI_CATEGORIES: LmiCategory[] = [\n { name: 'Listings', categoryId: 'listings' },\n { name: 'Social', categoryId: 'social' },\n { name: 'Reputation', categoryId: 'reputation' },\n { name: 'SEO', categoryId: 'seo' },\n { name: 'Website', categoryId: 'website' },\n { name: 'Advertising', categoryId: 'advertising' },\n { name: 'Content & Experience', categoryId: 'content_and_experience' }\n];\n\nexport const LMI_CATEGORY_MAP = LMI_CATEGORIES.reduce((previous, current) => {\n previous[current.categoryId] = current;\n return previous;\n}, {});\n\nexport const LMI_CATEGORIES_BY_NAME = LMI_CATEGORIES.reduce((previous, current) => {\n previous[current.name] = current;\n return previous;\n}, {});\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\nimport {Pricing} from '../pricing/pricing';\nimport {Salesperson} from './salesperson';\n\n\n@Component({\n selector: 'va-salesperson-details',\n templateUrl: './salesperson-details.component.html',\n styleUrls: ['./salesperson-details.component.scss']\n})\nexport class VaSalespersonDetailsComponent {\n @Input() salesperson: Salesperson;\n @Input() packagePricing: Pricing;\n @Input() brandName: string;\n @Input() showGetItNow = true;\n @Output() getItNow = new EventEmitter();\n\n onGetItNowSelected(): void {\n this.getItNow.emit(this.salesperson);\n }\n\n get iconUrl(): string {\n return this.salesperson && this.salesperson.photoUrlSecure ?\n this.salesperson.photoUrlSecure :\n 'https://vbc-frontend.storage-download.googleapis.com/salesperson-details/default_sales_person.jpg';\n }\n\n get name(): string {\n return this.salesperson && this.salesperson.formattedName ?\n this.salesperson.formattedName : '';\n }\n\n get title(): string {\n return this.salesperson && this.salesperson.jobTitle ?\n this.salesperson.jobTitle : '';\n }\n\n get email(): string {\n return this.salesperson && this.salesperson.email ?\n this.salesperson.email : '';\n }\n\n get cityAndState(): string {\n return this.salesperson && this.salesperson.city && this.salesperson.state ?\n this.salesperson.city + ', ' + this.salesperson.state : '';\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatButtonModule, MatIconModule} from '@angular/material';\nimport {VaIconModule} from '@vendasta/uikit';\n\nimport {VaPricingModule} from '../pricing/pricing.module';\n\nimport {VaSalespersonDetailsComponent} from './salesperson-details.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n VaIconModule,\n VaPricingModule,\n ],\n declarations: [\n VaSalespersonDetailsComponent\n ],\n exports: [\n VaSalespersonDetailsComponent\n ],\n entryComponents: [\n VaSalespersonDetailsComponent\n ]\n})\nexport class VaSalespersonDetailsModule {\n}\n","import { Sellable } from '../shared/sellable';\nimport { AddonKey } from '@vendasta/core/marketplace-packages';\n\nexport class Package extends Sellable {\n solution_id: string;\n partner_id: string;\n market_id: string;\n name: string;\n icon: string;\n status: string;\n tagline: string;\n header_image_url: string;\n content: string;\n products: string[];\n addon_keys: AddonKey[];\n hide_product_icons_and_names: boolean;\n hide_product_details: boolean;\n createdDate: Date;\n updatedDate: Date;\n productOrder: string[]; // the order the product / addons in the package\n\n static fromApi(data: any): Package {\n const newPackage = new Package();\n if (!data.pricing && data.selling_price) {\n data.pricing = {\n currency: data.currency,\n prices: [{\n price: data.selling_price * 100,\n frequency: data.billingFrequency,\n isStartingPrice: false,\n }]\n };\n }\n Object.assign(newPackage, data);\n if (!newPackage.name) {\n newPackage.name = 'Untitled';\n }\n if (data.created) {\n newPackage.createdDate = new Date(data.created);\n }\n if (data.updated) {\n newPackage.updatedDate = new Date(data.updated);\n }\n return newPackage;\n }\n\n get isPackageFree(): boolean {\n return this.isFree;\n }\n}\n","import { Addon } from '@vendasta/core/shared';\nimport { Product } from '../shared/product';\n\nexport function orderProductsAndAddons(combined: (Product | Addon)[], order: string[]): (Product | Addon)[] {\n if (!order || order.length === 0) {\n return combined || [];\n }\n if (!combined || combined.length === 0) {\n return [];\n }\n\n const itemMap = (combined || []).reduce((m, curr) => {\n m.set(getUniqueProductAddonId(curr), curr);\n return m;\n }, new Map<string, (Product | Addon)>());\n\n const combinedIdList = combined.map(getUniqueProductAddonId);\n const finalOrderedIds = combineProductOrderWithContainedProducts(order, combinedIdList);\n\n const orderedList = finalOrderedIds.reduce((items, id) => {\n items.push(itemMap.get(id));\n return items;\n }, []) as (Product | Addon)[];\n\n return orderedList.filter(filterUniqueAndDefined);\n}\n\nfunction filterUniqueAndDefined(elem, pos, arr) {\n return elem && arr.indexOf(elem) === pos;\n}\n\nexport function combineProductOrderWithContainedProducts(productOrder: string[], itemIds: string[]): string[] {\n if (itemIds == null || itemIds.length === 0) {\n return []\n }\n if (!productOrder || productOrder.length === 0) {\n return itemIds.filter(filterUniqueAndDefined);\n }\n return productOrder\n .filter(elem => itemIds.indexOf(elem) >= 0)\n .concat(itemIds)\n .filter(filterUniqueAndDefined);\n}\n\nexport function getUniqueProductAddonId(thing: any): string {\n return thing['addonId'] || thing['productId'];\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Observable, ReplaySubject, combineLatest, merge as observableMerge } from 'rxjs';\nimport { Package } from './package';\nimport { Addon } from '@vendasta/core/shared';\nimport { Product } from '../shared/product';\nimport { skipWhile, shareReplay, map, take } from 'rxjs/operators';\nimport { orderProductsAndAddons } from './utils';\n\n@Component({\n selector: 'va-package-details',\n templateUrl: 'package-details.component.html',\n styleUrls: ['./package-details.component.scss']\n})\nexport class VaPackageDetailsComponent {\n @Input() showActionButton = true;\n @Input() showPricing = true;\n @Input() actionLabel = 'Get It Now';\n\n @Output() getItNow = new EventEmitter();\n\n standAloneProducts$$: BehaviorSubject<Product[]> = new BehaviorSubject<Product[]>([]);\n products$: BehaviorSubject<Product[]> = new BehaviorSubject<Product[]>([]);\n addons$: BehaviorSubject<Addon[]> = new BehaviorSubject<Addon[]>([]);\n pkg$: ReplaySubject<Package> = new ReplaySubject<Package>(1);\n itemSelectedEvent$: ReplaySubject<number> = new ReplaySubject<number>(1);\n\n selectedItem$: Observable<Product | Addon>;\n combinedItemsList$: Observable<(Product | Addon)[]>;\n orderedItemsList$: Observable<(Product | Addon)[]>;\n lmiCategories$: Observable<Set<string>>;\n productNameForSingleAddon$: Observable<string>;\n displayTagName$: Observable<string>;\n\n @Input()\n set standAloneProducts(standAloneProducts: Product[]) {\n this.standAloneProducts$$.next(standAloneProducts);\n }\n\n @Input()\n set products(products: Product[]) {\n this.products$.next(products);\n }\n\n @Input()\n set addons(addons: Addon[]) {\n this.addons$.next(addons);\n }\n\n @Input()\n set pkg(pkg: Package) {\n this.pkg$.next(pkg);\n }\n\n static getLmiCategories(products: Product[]): Set<string> {\n let lmiCategories: string[] = [];\n if (products) {\n products.forEach(product => {\n lmiCategories = lmiCategories.concat(product.getLmiCategoryNames());\n });\n }\n return new Set(lmiCategories);\n }\n\n static getDisplayTagline(pkg: Package, items: (Product | Addon)[]): string {\n if (pkg && pkg.tagline) {\n return pkg.tagline;\n } else if (items && items.length === 1) {\n // Single product / addon package.\n return items[0].tagline || '';\n }\n return '';\n }\n\n static getProductNameForSingleAddon(items: (Product | Addon)[]): string {\n if (items && items.length === 1 && items[0] instanceof Addon) {\n const addon = items[0] as Addon;\n return addon.productName;\n }\n }\n\n constructor() {\n this.combinedItemsList$ = combineLatest(this.products$, this.addons$, (products: Product[], addons: Addon[]) => {\n return [].concat(products || []).concat(addons || []) as (Product | Addon)[];\n });\n\n this.orderedItemsList$ = combineLatest(this.combinedItemsList$, this.pkg$, (combined: (Product | Addon)[], pkg: Package) => {\n return orderProductsAndAddons(combined, pkg ? pkg.productOrder || [] : [])\n });\n\n const nonEmptyCombinedItemsList = this.combinedItemsList$.pipe(\n skipWhile(items => !items || items.length === 0),\n shareReplay(1)\n );\n\n // Need to map to an index because that's how product selection works.\n const initialSelectedItem$ = nonEmptyCombinedItemsList.pipe(\n map((_: any) => 0),\n take(1)\n );\n\n const mergedSelection = observableMerge(initialSelectedItem$, this.itemSelectedEvent$);\n\n this.selectedItem$ = combineLatest(mergedSelection, this.orderedItemsList$).pipe(\n map(([index, items]) => {\n return items[index];\n })\n );\n\n this.lmiCategories$ = this.products$.pipe(\n skipWhile(products => !products || products.length === 0),\n map(products => {\n return VaPackageDetailsComponent.getLmiCategories(products);\n })\n );\n\n this.productNameForSingleAddon$ = nonEmptyCombinedItemsList.pipe(\n map(items => {\n return VaPackageDetailsComponent.getProductNameForSingleAddon(items);\n })\n );\n\n this.displayTagName$ = combineLatest(this.pkg$, this.combinedItemsList$).pipe(\n map(([pkg, items]) => {\n return VaPackageDetailsComponent.getDisplayTagline(pkg, items);\n })\n );\n }\n\n selectItem(i: number): void {\n this.itemSelectedEvent$.next(i);\n }\n\n emitGetItNow(): void {\n this.getItNow.emit();\n }\n}\n","import {Component, Input, Output, EventEmitter} from '@angular/core';\nimport {Addon} from '@vendasta/core/shared';\nimport {Product} from '../shared/product';\n\n@Component({\n selector: 'va-products-nav',\n templateUrl: './products-nav.component.html',\n styleUrls: ['./products-nav.component.scss']\n})\n\nexport class VaProductsNavComponent {\n @Input() items: (Addon | Product) [];\n @Input() hideItemsNav: boolean;\n @Output() itemSelected = new EventEmitter();\n\n selectedIndex = 0;\n pageMarker = 0;\n\n onItemSelected(index: any): void {\n this.selectedIndex = index;\n this.itemSelected.emit(index);\n }\n\n moveSlides(slides: HTMLBodyElement): void {\n const sliderWidth = Math.round(slides.offsetWidth / slides.children[0].clientWidth);\n const numSlides = Math.ceil(slides.children.length / sliderWidth);\n if (numSlides === 0) {\n return;\n }\n const pageWidth = slides.offsetWidth;\n let move = 0;\n\n if (this.pageMarker === -1) {\n this.pageMarker = numSlides - 1; // go to end\n move = pageWidth * this.pageMarker;\n slides.style.left = `-${move}px`;\n } else if (this.pageMarker >= numSlides) {\n slides.style.left = '0px';\n this.pageMarker = 0; // reset\n } else {\n move = pageWidth * this.pageMarker;\n slides.style.left = `-${move}px`;\n }\n }\n\n pageNext(slides: HTMLBodyElement): void {\n this.pageMarker++;\n this.moveSlides(slides);\n }\n\n pagePrev(slides: HTMLBodyElement): void {\n this.pageMarker--;\n this.moveSlides(slides);\n }\n}\n","import {Component, Input, Output, EventEmitter} from '@angular/core';\nimport {StoreLineItem} from '../../package-details-v2/interface';\n\n@Component({\n selector: 'va-products-nav-v2',\n templateUrl: './products-nav-v2.component.html',\n styleUrls: ['./products-nav-v2.component.scss']\n})\n\nexport class ProductsNavV2Component {\n @Input() items: StoreLineItem[];\n @Input() hideItemsNav: boolean;\n @Output() itemSelected = new EventEmitter<string>();\n\n selected_id = '';\n pageMarker = 0;\n\n onItemSelected(id: string): void {\n this.selected_id = id;\n this.itemSelected.emit(id);\n }\n\n moveSlides(slides: HTMLBodyElement): void {\n const sliderWidth = Math.round(slides.offsetWidth / slides.children[0].clientWidth);\n const numSlides = Math.ceil(slides.children.length / sliderWidth);\n if (numSlides === 0) {\n return;\n }\n const pageWidth = slides.offsetWidth;\n let move = 0;\n\n if (this.pageMarker === -1) {\n this.pageMarker = numSlides - 1; // go to end\n move = pageWidth * this.pageMarker;\n slides.style.left = `-${move}px`;\n } else if (this.pageMarker >= numSlides) {\n slides.style.left = '0px';\n this.pageMarker = 0; // reset\n } else {\n move = pageWidth * this.pageMarker;\n slides.style.left = `-${move}px`;\n }\n }\n\n pageNext(slides: HTMLBodyElement): void {\n this.pageMarker++;\n this.moveSlides(slides);\n }\n\n pagePrev(slides: HTMLBodyElement): void {\n this.pageMarker--;\n this.moveSlides(slides);\n }\n}\n","import { Inject, NgModule, Optional } from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatIconModule} from '@angular/material';\nimport {VaProductsNavComponent} from './products-nav.component';\nimport {VaIconModule, VaBadgeModule} from '@vendasta/uikit';\nimport {ProductsNavV2Component} from './products-nav-v2/products-nav-v2.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n VaIconModule,\n VaBadgeModule,\n TranslateModule.forChild()\n ],\n declarations: [VaProductsNavComponent, ProductsNavV2Component],\n exports: [VaProductsNavComponent, ProductsNavV2Component]\n})\n\nexport class VaProductsNavModule {\n constructor(private translateService: TranslateService,\n @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>,\n @Optional() @Inject('DEFAULT_LANG') defaultLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => translateService.use(currentLang)); }\n if (defaultLang$) { defaultLang$.subscribe(defaultLang => translateService.setDefaultLang(defaultLang)); }\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatIconModule, MatButtonModule} from '@angular/material';\nimport {VaImageGalleryModule, VaSafeHtmlModule, VaIconModule} from '@vendasta/uikit';\n\nimport {VaPricingModule} from '../pricing/pricing.module';\nimport {VaPackageDetailsComponent} from './package-details.component';\nimport {VaFilesModule} from '../files/files.module';\nimport {VaFaqsModule} from '../faqs/faqs.module';\nimport {VaSellingInfoModule} from '../selling-info/selling-info.module';\nimport {VaHeaderContainerModule} from '../header-container/header-container.module';\nimport {VaAddonListModule} from '../addon-list/addon-list.module';\nimport {VaProductsNavModule} from '../products-nav/products-nav.module';\n\n@NgModule({\n imports: [\n VaImageGalleryModule, CommonModule, MatIconModule, VaSafeHtmlModule, VaIconModule,\n VaPricingModule, MatButtonModule, VaFilesModule, VaFaqsModule, VaSellingInfoModule,\n VaHeaderContainerModule, VaAddonListModule, VaProductsNavModule],\n declarations: [VaPackageDetailsComponent],\n exports: [VaPackageDetailsComponent],\n entryComponents: [VaPackageDetailsComponent]\n})\nexport class VaPackageDetailsModule {}\n","import {Price, Pricing, File} from '..';\nimport {StoreLineItem} from './interface';\nimport {\n LineItem as ProtoLineItem,\n ProductInterface,\n LineItems as ProtoLineItems,\n Package as ProtoPackage,\n Pricing as ProtoPricing,\n Currency as ProtoCurrency,\n MarketAction,\n} from '@vendasta/core/marketplace-packages';\n\nexport class PackageDetails {\n solution_id: string;\n partner_id: string;\n market_id: string;\n name: string;\n icon: string;\n status: string;\n tagline: string;\n header_image_url: string;\n content: string;\n hide_product_icons_and_names: boolean;\n hide_product_details: boolean;\n createdDate: Date;\n updatedDate: Date;\n pricing: Pricing;\n line_items: StoreLineItem[];\n market_action: MarketAction;\n\n get isPackageFree(): boolean {\n const isFreeHelper = (prices: Price[]): boolean => {\n return prices ? prices.some(p => p.price === 0 || p.price === undefined) : false;\n };\n return this.pricing && isFreeHelper(this.pricing.prices);\n }\n}\n\nexport function convertToPackageDetails(data: ProtoPackage, products: ProductInterface[]): PackageDetails {\n if (!data) {\n return undefined;\n }\n\n const newPackage = new PackageDetails();\n if (!data.pricing) {\n data.pricing = ProtoPricing.fromProto({\n currency: undefined,\n prices: [{\n price: 0,\n frequency: undefined,\n isStartingPrice: false,\n }]\n });\n }\n\n Object.assign(newPackage, data);\n\n if (!newPackage.name) {\n newPackage.name = 'Untitled';\n }\n if (data.created) {\n newPackage.createdDate = new Date(data.created);\n }\n if (data.updated) {\n newPackage.updatedDate = new Date(data.updated);\n }\n if (data.lineItems) {\n newPackage.line_items = convertProtoLineItemsToStoreLineItems(data.lineItems, products);\n }\n if (typeof data.pricing.currency === 'number') {\n newPackage.pricing.currency = ProtoCurrency[data.pricing.currency];\n }\n\n return newPackage;\n}\n\nexport function convertProtoLineItemsToStoreLineItems(protoLineItems: ProtoLineItems, products: ProductInterface[]): StoreLineItem[] {\n if (!protoLineItems || !protoLineItems.lineItems || protoLineItems.lineItems.length === 0 || !products || products.length === 0) {\n return [];\n }\n return protoLineItems.lineItems.map(lineItem => {\n const product = products.find(p => p.productId === lineItem.id);\n let parent;\n if (!!lineItem.parentId) {\n parent = products.find(p => p.productId === lineItem.parentId);\n }\n return convertProtoLineItemToStoreLineItem(lineItem, product, parent);\n });\n}\n\nfunction convertProtoLineItemToStoreLineItem(\n protoLineItem: ProtoLineItem,\n product: ProductInterface,\n parentProduct?: ProductInterface\n): StoreLineItem {\n if (!product || !protoLineItem) {\n return undefined;\n }\n\n let files = [];\n if (product.pdfUploadUrls && product.pdfUploadUrls.length > 0) {\n files = product.pdfUploadUrls.map(url => new File(url));\n }\n\n const lineItem = {\n item: {\n id: protoLineItem.id,\n editionId: protoLineItem.editionId,\n icon: product.iconUrl,\n name: product.name,\n editionName: '',\n description: product.description,\n keySellingPoints: product.keySellingPoints,\n faqs: product.faqs,\n files: files,\n screenshotUrls: product.screenshotUrls,\n lmiCategories: [],\n\n },\n quantity: protoLineItem.quantity,\n parent: {}\n } as StoreLineItem;\n\n if (protoLineItem.parentId && parentProduct) {\n lineItem.parent = {\n id: protoLineItem.parentId,\n editionId: '',\n icon: parentProduct.iconUrl,\n name: parentProduct.name,\n editionName: '',\n }\n }\n return lineItem;\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\nimport {Observable, combineLatest, BehaviorSubject, ReplaySubject} from 'rxjs';\nimport {PackageDetails} from './package';\nimport {map, take, tap, filter, shareReplay} from 'rxjs/operators';\nimport {StoreLineItem} from './interface';\nimport { TranslateService } from '@ngx-translate/core';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\n@Component({\n selector: 'va-package-details-v2',\n templateUrl: 'package-details-v2.component.html',\n styleUrls: ['./package-details-v2.component.scss']\n})\nexport class VaPackageDetailsV2Component {\n @Input() showActionButton = true;\n @Input() showPricing = true;\n @Input() actionLabel = 'FRONTEND.STORE.GET_IT_NOW';\n @Input() set pkg(pkg: PackageDetails) {\n this.pkg$$.next(pkg);\n }\n @Output() getItNow = new EventEmitter();\n\n pkg$$ = new ReplaySubject<PackageDetails>(1);\n itemSelectedEvent$$ = new BehaviorSubject<string>('');\n selectedItem$: Observable<StoreLineItem>;\n orderedLineItems$: Observable<StoreLineItem[]>;\n productNameForSingleAddon$: Observable<string>;\n lmiCategories$: Observable<string[]>;\n\n constructor(private translateService: TranslateService, @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => this.translateService.use(currentLang)); }\n\n this.orderedLineItems$ = this.pkg$$.pipe(\n map(pkg => pkg.line_items),\n filter(items => !!items || items.length === 0),\n shareReplay(1),\n );\n\n this.productNameForSingleAddon$ = this.orderedLineItems$.pipe(\n map(items => this.getParentsNameForItem(items))\n );\n\n this.selectedItem$ = combineLatest([this.itemSelectedEvent$$, this.orderedLineItems$]).pipe(\n map(([id, lineItems]) => lineItems.find(lineItem => lineItem.item.id === id)),\n );\n\n this.lmiCategories$ = this.orderedLineItems$.pipe(map((lis) => {\n const lmiMap = (lis || []).reduce((prev, li) => {\n if (li && li.item) {\n (li.item.lmiCategories || []).forEach(lmi => prev.set(lmi, lmi))\n }\n return prev;\n }, new Map<string, string>());\n\n const lmiCats = [];\n lmiMap.forEach((v, k) => {\n lmiCats.push(k);\n });\n return lmiCats;\n }));\n\n // Set the initial selected Item\n this.orderedLineItems$.pipe(\n map(lineItems => lineItems[0]),\n tap(lineItem => this.selectItem(lineItem && lineItem.item ? lineItem.item.id : '')),\n take(1)\n ).subscribe();\n }\n\n selectItem(id: string): void {\n this.itemSelectedEvent$$.next(id);\n }\n\n emitGetItNow(): void {\n this.getItNow.emit();\n }\n\n getParentsNameForItem(items: StoreLineItem[]): string {\n if (items && items.length === 1 && items[0]) {\n return items[0].parent.name;\n }\n }\n}\n","import {Inject, NgModule, Optional} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatIconModule, MatButtonModule} from '@angular/material';\nimport {VaImageGalleryModule, VaSafeHtmlModule, VaIconModule} from '@vendasta/uikit';\n\nimport {VaPricingModule} from '../pricing/pricing.module';\nimport {VaPackageDetailsV2Component} from './package-details-v2.component';\nimport {VaFilesModule} from '../files/files.module';\nimport {VaFaqsModule} from '../faqs/faqs.module';\nimport {VaSellingInfoModule} from '../selling-info/selling-info.module';\nimport {VaHeaderContainerModule} from '../header-container/header-container.module';\nimport {VaAddonListModule} from '../addon-list/addon-list.module';\nimport {VaProductsNavModule} from '../products-nav/products-nav.module';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {Observable} from 'rxjs';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\n@NgModule({\n imports: [\n VaImageGalleryModule,\n CommonModule,\n MatIconModule,\n VaSafeHtmlModule,\n VaIconModule,\n VaPricingModule,\n MatButtonModule,\n VaFilesModule,\n VaFaqsModule,\n VaSellingInfoModule,\n VaHeaderContainerModule,\n VaAddonListModule,\n VaProductsNavModule,\n TranslateModule.forChild()\n ],\n declarations: [VaPackageDetailsV2Component],\n exports: [VaPackageDetailsV2Component],\n entryComponents: [VaPackageDetailsV2Component]\n})\nexport class VaPackageDetailsV2Module {\n constructor(private translateService: TranslateService,\n @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>,\n @Optional() @Inject('DEFAULT_LANG') defaultLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => translateService.use(currentLang)); }\n if (defaultLang$) { defaultLang$.subscribe(defaultLang => translateService.setDefaultLang(defaultLang)); }\n }\n}\n","import { Product, Package, ProductWithParent } from '../';\nimport { Addon, AddonKey } from '@vendasta/core/marketplace-packages';\n\nexport interface SalesPackage {\n formattedPrices: string;\n packageId: string;\n name: string;\n icon: string;\n productIds: string[];\n products: SalesProduct[];\n addonsWithNoParent: SalesAddon[];\n totalAddons: number;\n activationStatus?: StatusNotificationItem;\n}\n\nexport interface SalesProduct {\n formattedPrices: string;\n productId: string;\n name: string;\n icon: string;\n tagline: string;\n activationStatus?: StatusNotificationItem;\n editionId?: string;\n editionName?: string;\n addons: SalesAddon[];\n parentInfo?: ProductParentInfo;\n}\n\nexport interface ProductParentInfo {\n parentId: string;\n parentName: string;\n parentIconUrl: string;\n multipleActivations: boolean;\n}\n\nexport interface SalesAddon {\n parentId: string;\n addonId: string;\n name: string;\n icon: string;\n tagline: string;\n parentName: string;\n parentIcon: string;\n multipleActivations: boolean;\n activationStatus?: StatusNotificationItem;\n}\n\nexport interface PackageItemActivationStatus {\n packageItemId: string;\n status: ActivationStatus;\n}\n\nexport enum ActivationStatus {\n SUCCESS = 0,\n WARNING = 1,\n ERROR = 2\n}\n\nexport interface StatusNotificationItem {\n icon: string,\n text: string,\n status: ActivationStatus\n}\n\nexport function buildSalesPackages(packages: Package[], products: Product[], addons: Addon[]): SalesPackage[] {\n if (!packages || packages.length < 1) {\n return [];\n }\n return packages.map(pkg => buildSalesPackageFromPackage(pkg, products, addons));\n}\n\nfunction buildSalesPackageFromPackage(pkg: Package, products: Product[], addons: Addon[]): SalesPackage {\n if (!pkg) {\n return null;\n }\n\n const salesProducts = buildSalesProducts(pkg, products, addons);\n // Addons can be in a package even if the parent product is not, this will create salesAddons with no parent\n const addonsWithNoParent: SalesAddon[] = buildSalesAddonsWithNoParent(pkg, products, addons);\n\n return createSalesPackage(pkg, salesProducts, addonsWithNoParent);\n}\n\nexport function buildSalesProducts(pkg: Package, products: Product[], addons: Addon[]): SalesProduct[] {\n if (!(products && products.length && pkg.products && pkg.products.length)) {\n return [];\n }\n const productMap: Map<string, Product> = new Map<string, Product>();\n products.forEach(product => productMap.set(product.productId, product));\n return pkg.products\n .map(productId => {\n const productMatch: Product = productMap.get(productId);\n const addonsInPackage = coerceAddonsForAddonKeys(addons, pkg.addon_keys);\n return productMatch ? buildSalesProductFromProduct(productMatch, addonsInPackage) : null;\n })\n .filter(productItem => productItem);\n}\n\nexport function coerceAddonsForAddonKeys(addons: Addon[], addonKeys: AddonKey[]): Addon[] {\n if (!addons || addons.length === 0 || !addonKeys || addonKeys.length === 0) {\n return [];\n }\n\n return addons.reduce((addonsArray, addon) => {\n const key = addonKeys.find(k => k.addonId === addon.addonId);\n if (key) {\n const quantity = key.quantity || 1;\n for (let i = 0; i < quantity; i++) {\n addonsArray.push(addon)\n }\n }\n return addonsArray;\n }, []);\n}\n\nexport function buildSalesAddonsWithNoParent(pkg: Package, products: Product[], addons: Addon[]): SalesAddon[] {\n if (!addons || addons.length < 1 || !pkg.addon_keys) {\n return [];\n }\n const productMap: Map<string, Product> = new Map<string, Product>();\n products.forEach(product => productMap.set(product.productId, product));\n const addonsMap: Map<string, Addon> = new Map<string, Addon>();\n addons.forEach(addon => addonsMap.set(addon.addonId, addon));\n\n const addonsWithNoParent = pkg.addon_keys.reduce<SalesAddon[]>((addonArray: SalesAddon[], addonKey: AddonKey): SalesAddon[] => {\n if (pkg.products && pkg.products.some(productId => productId === addonKey.appId)) {\n return addonArray || [];\n }\n const parentProduct = productMap.get(addonKey.appId);\n const parentName = parentProduct ? parentProduct.name : null;\n const parentIcon = parentProduct ? parentProduct.iconUrl : null;\n const quantity = addonKey.quantity || 1;\n const addon: Addon = addonsMap.get(addonKey.addonId); // could be undefined\n for (let i = 0; i < quantity; i++) {\n addonArray.push(createSalesAddon(addon, parentName, parentIcon));\n }\n return addonArray;\n }, []);\n return addonsWithNoParent;\n}\n\nexport function buildSalesProductFromProduct(product: Product | ProductWithParent, addons: Addon[]): SalesProduct {\n if (!product) {\n return null;\n }\n if (!addons || addons.length < 1) {\n return createSalesProduct(product, null);\n }\n\n const productAddons = addons.filter(addon => addon.appId === product.productId);\n const salesAddons = createSalesAddons(productAddons);\n return createSalesProduct(product, salesAddons);\n}\n\nfunction createSalesPackage(pkg: Package, salesProducts: SalesProduct[], addonsWithNoParent: SalesAddon[]): SalesPackage {\n let totalAddons = 0;\n for (const key of pkg.addon_keys || []) {\n totalAddons += key.quantity || 1;\n }\n\n return {\n formattedPrices: pkg.priceStrings.join(', '),\n packageId: pkg.solution_id,\n name: pkg.name,\n icon: pkg.icon,\n productIds: pkg.products,\n products: salesProducts || [],\n addonsWithNoParent: addonsWithNoParent || [],\n totalAddons: totalAddons\n }\n}\n\nfunction createSalesProduct(product: Product | ProductWithParent, salesAddons: SalesAddon[]): SalesProduct {\n let parentInfo: ProductParentInfo;\n if (product instanceof ProductWithParent) {\n parentInfo = {\n parentId: product.parentId,\n parentName: product.parentName,\n parentIconUrl: product.parentIconUrl,\n multipleActivations: product.multipleActivations || false,\n }\n }\n return {\n formattedPrices: product.priceStrings.join(', '),\n productId: product.productId,\n name: product.name,\n tagline: product.tagline || '',\n icon: product.iconUrl,\n addons: salesAddons || [],\n editionId: product.editionId,\n editionName: product.editionName,\n parentInfo: parentInfo,\n }\n}\n\nfunction createSalesAddons(addons: Addon[]): SalesAddon[] {\n return addons.map(addon => createSalesAddon(addon));\n}\n\nfunction createSalesAddon(addon: Addon, parentName?: string, parentIcon?: string): SalesAddon {\n return {\n parentId: addon.appId,\n addonId: addon.addonId,\n name: addon.title,\n tagline: addon.tagline || '',\n icon: addon.icon || '',\n multipleActivations: addon.multipleActivations,\n parentIcon: parentIcon || '',\n parentName: parentName || ''\n }\n}\n\nfunction createSalesPackageWithStatus(pkg: SalesPackage, products: SalesProduct[], addons: SalesAddon[],\n activationStatus: StatusNotificationItem): SalesPackage {\n\n return {\n formattedPrices: pkg.formattedPrices,\n packageId: pkg.packageId,\n name: pkg.name,\n icon: pkg.icon,\n productIds: pkg.productIds,\n products: products || [],\n addonsWithNoParent: addons || [],\n activationStatus: activationStatus || null,\n totalAddons: pkg.totalAddons\n }\n}\n\nfunction createSalesProductWithStatus(product: SalesProduct, addons: SalesAddon[], activationStatus: StatusNotificationItem): SalesProduct {\n return {\n formattedPrices: product.formattedPrices,\n productId: product.productId,\n name: product.name,\n editionId: product.editionId,\n editionName: product.editionName,\n tagline: product.tagline,\n icon: product.icon,\n addons: addons || [],\n activationStatus: activationStatus || null,\n parentInfo: product.parentInfo || null,\n };\n}\n\nfunction createSalesAddonWithStatus(addon: SalesAddon, activationStatus: StatusNotificationItem): SalesAddon {\n return {\n parentId: addon.parentId,\n addonId: addon.addonId,\n name: addon.name,\n tagline: addon.tagline,\n icon: addon.icon,\n parentIcon: addon.parentIcon,\n parentName: addon.parentName,\n multipleActivations: addon.multipleActivations,\n activationStatus: activationStatus || null\n }\n}\n\nexport function addStatusesToSalesPackages(salesPackages: SalesPackage[], statuses: PackageItemActivationStatus[]): SalesPackage[] {\n if (!statuses || statuses.length === 0) {\n return salesPackages;\n }\n\n return salesPackages.map(salesPackage => {\n const newProducts = salesPackage.products.map(product => addStatusesToSalesProduct(product, statuses));\n\n const newAddonsWithNoParent = salesPackage.addonsWithNoParent.map(addon => {\n const status = findStatus(statuses, addon.addonId);\n return addStatusesToSalesAddon(addon, status)\n });\n\n const productStatuses = newProducts\n .map(product => product.activationStatus.status);\n const addonStatuses = newProducts\n .map(product => product.addons ? product.addons.map(addon => addon.activationStatus.status) : [])\n .reduce((statusList, reducedList) => reducedList.concat(statusList), []);\n const addonsWithNoParentStatuses = newAddonsWithNoParent\n .map(addon => addon.activationStatus ? addon.activationStatus.status : null);\n const allStatuses = [...productStatuses, ...addonStatuses, ...addonsWithNoParentStatuses];\n\n const packageStatus = convertNumberToActivationStatus(Math.max(...allStatuses));\n const statusNotification = createStatusNotificationItemForPackage(packageStatus);\n\n return createSalesPackageWithStatus(salesPackage, newProducts, newAddonsWithNoParent, statusNotification);\n });\n}\n\nexport function addStatusesToSalesProduct(product: SalesProduct, statuses: PackageItemActivationStatus[]): SalesProduct {\n if (!statuses || statuses.length === 0) {\n return product;\n }\n const productStatus = findStatus(statuses, product.productId);\n const statusNotification = createStatusNotificationItemForPackageItem(productStatus);\n if (!product.addons) {\n return createSalesProductWithStatus(product, null, statusNotification)\n }\n\n const newSalesAddons = product.addons.map(addon => {\n const addonStatus = findStatus(statuses, addon.addonId);\n return addStatusesToSalesAddon(addon, addonStatus)\n });\n\n return createSalesProductWithStatus(product, newSalesAddons, statusNotification);\n}\n\nfunction addStatusesToSalesAddon(addon: SalesAddon, status: ActivationStatus): SalesAddon {\n const addonStatusNotification = createStatusNotificationItemForPackageItem(status);\n return createSalesAddonWithStatus(addon, addonStatusNotification);\n}\n\nfunction findStatus(statuses: PackageItemActivationStatus[], id: string): ActivationStatus {\n if (!statuses || statuses.length <= 0) {\n return null\n }\n const statusIndex = statuses.findIndex(s => {\n return s.packageItemId === id;\n });\n if (statusIndex < 0) {\n return null;\n }\n const status = statuses[statusIndex].status;\n statuses.splice(statusIndex, 1);\n return status;\n}\n\nfunction createStatusNotificationItemForPackageItem(status: ActivationStatus): StatusNotificationItem {\n switch (status) {\n case ActivationStatus.SUCCESS:\n return {icon: 'check_circle', status: status, text: 'Activated'};\n case ActivationStatus.WARNING:\n return {icon: 'warning', status: status, text: 'Already Activated'};\n default:\n return {icon: 'error', status: status, text: 'Activation Errors'};\n }\n}\n\nfunction createStatusNotificationItemForPackage(status: ActivationStatus): StatusNotificationItem {\n switch (status) {\n case ActivationStatus.SUCCESS:\n return {icon: 'check_circle', status: status, text: 'Activated'};\n case ActivationStatus.WARNING:\n return {icon: 'warning', status: status, text: 'Activation Warnings'};\n default:\n return {icon: 'error', status: status, text: 'Activation Errors Occured'};\n }\n}\n\nfunction convertNumberToActivationStatus(number: Number): ActivationStatus {\n switch (number) {\n case 0:\n return ActivationStatus.SUCCESS;\n case 1:\n return ActivationStatus.WARNING;\n default:\n return ActivationStatus.ERROR;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ActivationStatus, StatusNotificationItem } from '../sales-package';\n\nexport enum ListIndent {\n INDENT_ZERO = 'indent-zero',\n INDENT_ONE = 'indent-one',\n INDENT_TWO = 'indent-two',\n}\n\n@Component({\n selector: 'va-package-dropdown-item',\n templateUrl: './package-dropdown-item.component.html',\n styleUrls: ['./package-dropdown-item.component.scss', '../package-dropdown.component.scss']\n})\nexport class VaPackageDropdownItemComponent implements OnInit {\n @Input() title: string;\n @Input() titleBadge: string;\n @Input() titleDescriptor: string;\n @Input() iconUrl: string;\n @Input() secondaryIconUrl: string;\n @Input() secondaryIconName: string;\n @Input() subtitle: string;\n @Input() statusItem: StatusNotificationItem;\n @Input() enableDropdown = false;\n @Input() indent = ListIndent.INDENT_ZERO;\n @Input() toggleValue: boolean;\n @Input() description: string;\n @Output() itemToggled: EventEmitter<null> = new EventEmitter<null>();\n\n ngOnInit() {\n }\n\n toggleItem(): void {\n this.itemToggled.emit(null);\n }\n\n isActivatedStatus(status: ActivationStatus): boolean {\n return status === ActivationStatus.SUCCESS;\n }\n isWarningStatus(status: ActivationStatus): boolean {\n return status === ActivationStatus.WARNING;\n }\n isErrorStatus(status: ActivationStatus): boolean {\n return status === ActivationStatus.ERROR\n }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport { trigger, transition, animate, style, state } from '@angular/animations';\nimport { Observable, BehaviorSubject, ReplaySubject, combineLatest, zip } from 'rxjs';\nimport {filter, map, startWith, tap} from 'rxjs/operators';\n\nimport { Addon } from '@vendasta/core/marketplace-packages';\nimport {\n SalesPackage,\n SalesProduct,\n buildSalesPackages,\n buildSalesProductFromProduct,\n addStatusesToSalesPackages,\n addStatusesToSalesProduct,\n PackageItemActivationStatus,\n} from './sales-package';\nimport { Product, ProductWithParent } from '../shared/product';\nimport { Package } from '../package-details/package';\nimport { ListIndent } from './package-dropdown-item/package-dropdown-item.component';\n\ninterface OrderLengthsForToggling {\n packages: number;\n products: number;\n}\n\n@Component({\n selector: 'va-package-dropdown',\n animations: [\n trigger('listAnimationStart', [\n state('void', style({ height: '0px' })),\n state('*', style({ height: '*' })),\n transition('void => *', [animate('0.25s ease')]),\n transition('* => void', [animate('0.25s ease')])\n ])\n ],\n templateUrl: 'package-dropdown.component.html',\n styleUrls: ['./package-dropdown.component.scss']\n})\nexport class VaPackageDropdownComponent implements OnInit {\n // packages in dropdown\n @Input()\n set packages(packages: Package[]) {\n this.packages$$.next(packages);\n }\n\n // products within given packages\n @Input()\n set products(products: Product[]) {\n this.products$$.next(products);\n }\n\n // products not associated with a package\n @Input()\n set standAloneProducts(standAloneProducts: Product[]) {\n this.standAloneProducts$$.next(standAloneProducts);\n }\n\n // statuses for all products and addons\n @Input()\n set statuses(statuses: PackageItemActivationStatus[]) {\n this.statuses$$.next(statuses);\n }\n\n // addons within given packages\n @Input()\n set addons(addons: Addon[]) {\n this.addons$$.next(addons);\n }\n\n // controls whether only one dropdown can be expanded at a time\n @Input() singularDropdown = false;\n\n // hides pricing\n @Input() hidePricing = false;\n\n packageProductIndent = ListIndent.INDENT_ONE;\n packageAddonWithoutProductIndent = ListIndent.INDENT_ONE;\n packageAddonWithProductIndent = ListIndent.INDENT_TWO;\n productAddonIndent = ListIndent.INDENT_ONE;\n\n packages$$: ReplaySubject<Package[]> = new ReplaySubject(1);\n products$$: ReplaySubject<Product[]> = new ReplaySubject(1);\n standAloneProducts$$: ReplaySubject<(Product | ProductWithParent) []> = new ReplaySubject(1);\n statuses$$: BehaviorSubject<PackageItemActivationStatus[]> = new BehaviorSubject([]);\n addons$$: ReplaySubject<Addon[]> = new ReplaySubject(1);\n\n orderItemLengths$$ = new BehaviorSubject<OrderLengthsForToggling> (\n <OrderLengthsForToggling> {\n packages: 0,\n products: 0\n }\n );\n\n templateData$: Observable<{ packages: SalesPackage[]; products: SalesProduct[] }>;\n salesPackages$: Observable<SalesPackage[]>;\n salesProducts$: Observable<SalesProduct[]>;\n packageToggles: boolean[] = [];\n productToggles: boolean[] = [];\n\n ngOnInit(): void {\n const packages$: Observable<Package[]> = this.packages$$.pipe(filter(packages => packages !== null));\n const products$: Observable<Product[]> = this.products$$.pipe(filter(products => products !== null));\n const addons$: Observable<Addon[]> = this.addons$$.pipe(filter(addons => addons !== null));\n\n const salesPackage$ = zip(packages$, products$, addons$).pipe(\n tap(([packages, products, _]) => {\n this.orderItemLengths$$.next(\n <OrderLengthsForToggling> {\n packages: packages.length,\n products: products.length\n });\n }),\n map(([packages, products, addons]) => buildSalesPackages(packages, products, addons)),\n );\n\n this.salesPackages$ = combineLatest(salesPackage$, this.statuses$$).pipe(\n map(([salesPackages, statuses]) => addStatusesToSalesPackages(salesPackages, statuses)),\n startWith([]),\n );\n\n this.salesProducts$ = combineLatest(this.standAloneProducts$$, this.statuses$$).pipe(\n filter(([products, _]) => products !== null),\n map(([products, statuses]: [(Product | ProductWithParent)[], PackageItemActivationStatus[]]): SalesProduct[] => {\n return products.map(p => {\n const addons = p.addons || null;\n const salesProducts = buildSalesProductFromProduct(p, addons);\n return addStatusesToSalesProduct(salesProducts, statuses);\n });\n }),\n startWith([]),\n );\n this.templateData$ = combineLatest(this.salesPackages$, this.salesProducts$).pipe(\n map(([packages, products]) => ({packages: packages, products: products}))\n )\n }\n\n public openAllDropdowns() {\n for (let x = 0; x < this.orderItemLengths$$.getValue().packages; x++) {\n this.packageToggles[x] = true;\n }\n for (let x = 0; x < this.orderItemLengths$$.getValue().products; x++) {\n this.productToggles[x] = true;\n }\n }\n\n public togglePackage(indexToToggle: number): void {\n if (this.singularDropdown) {\n const openedIndex = this.packageToggles.findIndex(value => value === true);\n if (openedIndex !== indexToToggle) {\n this.packageToggles[openedIndex] = false;\n }\n const productOpenedIndex = this.productToggles.findIndex(value => value === true);\n if (productOpenedIndex > -1) {\n this.productToggles[productOpenedIndex] = false;\n }\n }\n this.packageToggles[indexToToggle] = !this.packageToggles[indexToToggle];\n }\n\n public toggleProduct(indexToToggle: number): void {\n if (this.singularDropdown) {\n const openedIndex = this.productToggles.findIndex(value => value === true);\n if (openedIndex !== indexToToggle) {\n this.productToggles[openedIndex] = false;\n }\n const packageOpenedIndex = this.packageToggles.findIndex(value => value === true);\n if (packageOpenedIndex > -1) {\n this.packageToggles[packageOpenedIndex] = false;\n }\n }\n this.productToggles[indexToToggle] = !this.productToggles[indexToToggle];\n }\n\n public standAloneProductDescription(product: SalesProduct): string {\n if (product.addons && product.addons.length > 0) {\n let description = `Contains ${product.addons.length}`;\n description = product.addons.length === 1 ? `${description} Addon` : `${description} Addons`;\n return description;\n }\n return '';\n }\n\n public standAloneProductWithParentDescription(product: SalesProduct): string {\n if (!product.parentInfo) {\n return '';\n }\n\n return `(Requires ${product.parentInfo.parentName})`\n }\n\n public packageDescription(pkg: SalesPackage): string {\n const hasProducts = pkg.products && pkg.products.length > 0;\n if (!hasProducts && pkg.totalAddons === 0) {\n return 'No Items in Package';\n }\n\n let description = '';\n const hasOneProduct = pkg.products && pkg.products.length === 1;\n if (hasProducts || pkg.totalAddons > 0) {\n description = 'Contains ';\n }\n if (hasProducts) {\n description = `${description} ${pkg.products.length}`;\n description = hasOneProduct ? `${description} Product` : `${description} Products`;\n }\n if (hasProducts && pkg.totalAddons > 0) {\n description = `${description} & ${pkg.totalAddons}`;\n description = pkg.totalAddons === 1 ? `${description} Addon` : `${description} Addons`;\n }\n return description;\n }\n}\n","import { Inject, NgModule, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCardModule, MatButtonModule, MatListModule, MatIconModule } from '@angular/material';\n\nimport { VaIconModule, VaBadgeModule } from '@vendasta/uikit';\nimport { VaPackageDropdownComponent } from './package-dropdown.component';\nimport { VaPackageDropdownItemComponent } from './package-dropdown-item/package-dropdown-item.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { En } from '../assets/i18n/en';\nimport { Cs } from '../assets/i18n/cs';\n\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatCardModule,\n MatListModule,\n MatIconModule,\n VaIconModule,\n VaBadgeModule,\n TranslateModule.forChild()\n ],\n declarations: [VaPackageDropdownComponent, VaPackageDropdownItemComponent],\n exports: [VaPackageDropdownComponent],\n entryComponents: [VaPackageDropdownComponent]\n})\nexport class VaPackageDropdownModule {\n constructor(private translateService: TranslateService,\n @Optional() @Inject('CURRENT_LANG') currentLang$: Observable<string>,\n @Optional() @Inject('DEFAULT_LANG') defaultLang$: Observable<string>) {\n if (!this.translateService.translations.hasOwnProperty('en')) {\n this.translateService.reloadLang('en');\n }\n if (!this.translateService.translations.hasOwnProperty('cs')) {\n this.translateService.reloadLang('cs');\n }\n this.translateService.setTranslation('en', En.en, true);\n this.translateService.setTranslation('cs', Cs.cs, true);\n if (currentLang$) { currentLang$.subscribe(currentLang => translateService.use(currentLang)); }\n if (defaultLang$) { defaultLang$.subscribe(defaultLang => translateService.setDefaultLang(defaultLang)); }\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Product} from '../shared/product';\nimport {Price, CONTACT_SALES} from '../pricing/pricing';\nimport {Addon} from '@vendasta/core/shared';\nimport {BilledProduct} from '@vendasta/core/billing';\n\n@Component({\n selector: 'va-product-details',\n templateUrl: 'product-details.component.html',\n styleUrls: ['./product-details.component.scss']\n})\n\nexport class VaProductDetailsComponent {\n @Input() product: Product;\n @Input() billedProduct: BilledProduct;\n @Input() hasVerifiedContract = false;\n @Input() canAccessContractPricing = false;\n @Input() showActionButton = false;\n @Input() showPricing = false;\n @Input() primaryPricingActionLabel: string;\n @Input() pricingActionLabel: string;\n @Input() showPricingAction = false;\n @Input() loaded = true;\n @Input() partnerID: string;\n\n @Output() enableClicked = new EventEmitter();\n @Output() addonSelected = new EventEmitter<string>();\n @Output() primaryPricingActionSelected = new EventEmitter();\n @Output() pricingActionSelected = new EventEmitter();\n private _addons: Addon[];\n\n getAddons(): Addon[] {\n if (!this._addons) {\n this._addons = this.product.addons.map((addon) => Addon.fromApi(addon))\n }\n return this._addons;\n }\n\n getActionLabel(): string {\n if (this.product.isArchived) {\n return 'Enable';\n }\n return 'Enabled';\n }\n\n get price() {\n // NOTE: wholesalePrice = 0 means free, wholesalePrice = null || -1 means \"contact sales\"\n let prices: Price[] = [];\n if (this.product.wholesalePrice !== CONTACT_SALES && this.product.wholesalePrice != null) {\n prices = [{\n price: this.product.wholesalePrice,\n frequency: this.product.billingFrequency\n }]\n }\n return {\n currency: this.product.currency,\n prices: prices\n }\n }\n\n onAddonSelected(addonId: string): void {\n this.addonSelected.emit(addonId);\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {VaImageGalleryModule, VaIconModule, VaSafeHtmlModule} from '@vendasta/uikit';\nimport {VaPricingModule} from '../pricing/pricing.module';\nimport {VaFilesModule} from '../files/files.module';\nimport {VaFaqsModule} from '../faqs/faqs.module';\nimport {VaSellingInfoModule} from '../selling-info/selling-info.module';\nimport {VaProductDetailsComponent} from './product-details.component';\nimport {VaHeaderContainerModule} from '../header-container/header-container.module';\nimport {VaAddonListModule} from '../addon-list/addon-list.module';\nimport {RestrictionsModule} from '../restrictions/restrictions.module';\n\n@NgModule({\n imports: [\n VaImageGalleryModule,\n CommonModule,\n VaIconModule,\n VaPricingModule, VaFilesModule, VaFaqsModule, VaSellingInfoModule,\n VaHeaderContainerModule, VaSafeHtmlModule, VaAddonListModule, RestrictionsModule],\n declarations: [VaProductDetailsComponent],\n exports: [VaProductDetailsComponent],\n entryComponents: [VaProductDetailsComponent]\n})\nexport class VaProductDetailsModule {}\n","import { OrderForm, Restrictions, TrialConfiguration, Integration } from '@vendasta/core/marketplace-apps';\n\nexport class ResellerItem {\n appId?: string;\n addonId?: string;\n name?: string;\n icon?: string;\n tagline?: string;\n headerImage?: string;\n currency?: string;\n price?: number;\n billingFrequency?: string;\n lmiCategories?: string[];\n enabled: boolean;\n isCustom: boolean;\n orderForm?: OrderForm;\n quantity = 1;\n allowMultipleActivations: boolean;\n usesCustomizationForm: boolean;\n usesActivationSpecificEntryUrl: boolean;\n entryUrl: string;\n restrictions?: Restrictions;\n activationRequiresApproval?: boolean;\n billingId?: string;\n usesEditions: boolean;\n editionIds: string[];\n suggestedRetailPrice: number; // price is in cents\n editionId?: string;\n trialConfiguration?: TrialConfiguration;\n integration?: Integration;\n\n constructor(data?: any) {\n data = data || {};\n Object.assign(this, data);\n }\n}\n","import {ControlType, FieldBase} from './field-base';\n\nexport class CheckboxField extends FieldBase<boolean> {\n readonly controlType: ControlType = 'checkbox';\n}\n","import {ControlType, FieldBase, FieldBaseOptions} from './field-base';\nimport {Option as InputOption} from '@vendasta/forms'\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport interface Option {\n value: string,\n label: string,\n disabled?: boolean\n}\n\nexport interface DropDownFieldOptions extends FieldBaseOptions {\n options: Option[] | InputOption[] | string[];\n allowMultiples?: boolean;\n allowDuplicates?: boolean;\n maxChoices?: number;\n}\n\nexport class DropdownField extends FieldBase<string | string[]> {\n readonly controlType: ControlType = 'dropdown';\n options: Option[] | InputOption[];\n allowMultiples: boolean;\n allowDuplicates: boolean;\n maxChoices: number;\n\n constructor(options: DropDownFieldOptions) {\n super(options);\n this.options = [];\n if (!!options.options && options.options.length > 0) {\n // Because this typeof guard is on the element and not the array as a whole typescript doesn't recognize it as a valid type assertion\n // The ts-ignore's are required because of this\n if (typeof options.options[0] === 'string') {\n if (options.allowMultiples) {\n // @ts-ignore\n this.options = options.options.map((o: string) => ({value: o, name: o}));\n } else {\n // @ts-ignore\n this.options = options.options.map((o: string) => ({value: o, label: o}));\n }\n } else {\n if (options.allowMultiples) {\n // @ts-ignore\n this.options = options.options.map((o: string) => ({value: o.value, name: o.label}));\n } else {\n // @ts-ignore\n this.options = options.options;\n }\n }\n }\n\n this.allowMultiples = !!options.allowMultiples;\n this.allowDuplicates = !!options.allowDuplicates;\n this.maxChoices = options.maxChoices ? options.maxChoices : 1;\n\n this.validator = this.validatorBuilder();\n }\n\n protected validatorBuilder(): ValidatorFn {\n const maxChoices = this.maxChoices;\n return (control: AbstractControl): { [key: string]: any } => {\n if (Array.isArray(control.value) && maxChoices && control.value.length > maxChoices) {\n return {overMaxChoices: true}\n }\n }\n }\n}\n","import {ControlType, FieldBase, FieldBaseOptions} from './field-base';\n\nconst DEFAULT_NUM_FILES = 5;\n\nexport type FileType = 'image';\n\nexport interface FileUploadGroupFieldOptions extends FieldBaseOptions {\n fileType: FileType;\n uploadUrl: string;\n numFiles: number;\n}\n\nexport class FileUploadGroupField extends FieldBase<string[]> {\n readonly controlType: ControlType = 'file';\n fileType: FileType;\n uploadUrl: string;\n numFiles: number;\n\n constructor(options: FileUploadGroupFieldOptions) {\n super(options);\n if (!options.uploadUrl) {\n throw new Error('uploadUrl is required.');\n }\n this.fileType = options.fileType || 'image';\n this.numFiles = options.numFiles || DEFAULT_NUM_FILES;\n this.uploadUrl = options.uploadUrl;\n this.value = [];\n }\n}\n","import {ControlType, FieldBase, FieldBaseOptions} from './field-base';\n\n\nexport class TextareaField extends FieldBase<string> { controlType: ControlType = 'textarea'; }\n","import {ControlType, FieldBase, FieldBaseOptions} from './field-base';\n\nexport type TextboxType = 'text';\n\nexport interface TextBoxFieldOptions extends FieldBaseOptions {\n textboxType: TextboxType;\n prefix?: string;\n suffix?: string;\n displayOnly?: boolean;\n}\n\nexport class TextboxField extends FieldBase<string> {\n readonly controlType: ControlType = 'textbox';\n textboxType: TextboxType;\n prefix: string;\n suffix: string;\n regexValidator: string;\n regexErrorMessage: string;\n displayOnly: boolean;\n\n constructor(options: TextBoxFieldOptions) {\n super(options);\n this.textboxType = options.textboxType || 'text';\n this.prefix = options.prefix || '';\n this.suffix = options.suffix || '';\n this.regexValidator = options.regexValidator || '';\n this.regexErrorMessage = options.regexErrorMessage || '';\n this.displayOnly = options.displayOnly || false;\n }\n}\n","import {ControlType, FieldBaseOptions} from './field-base';\nimport {DropdownField, Option} from './field-dropdown';\n\nexport interface User {\n userId: string,\n email: string,\n firstName?: string,\n lastName?: string,\n}\n\nexport interface VBCUserFieldOptions extends FieldBaseOptions { users: User[]; }\n\nexport class VBCUserField extends DropdownField {\n readonly controlType: ControlType = 'vbcuser';\n\n constructor(options: VBCUserFieldOptions) {\n super({\n id: options.id,\n label: options.label,\n required: options.required,\n description: options.description,\n options: getOptions(options.users),\n disabled: options.disabled,\n forOfficeUseOnly: options.forOfficeUseOnly\n });\n }\n}\n\nfunction getOptions(vbcUsers: User[]): Option[] {\n if (vbcUsers && vbcUsers.length > 0) {\n vbcUsers.sort(compareUsersByEmail);\n return vbcUsers.map(user => {\n const labelString = createLabelString(user.firstName, user.lastName, user.email);\n\n if (user.userId && user.email && user.firstName && user.lastName) {\n return {\n label: labelString,\n value: JSON.stringify({firstName: user.firstName, lastName: user.lastName, email: user.email, id: user.userId})\n };\n }\n return {label: labelString, value: '', disabled: true};\n });\n }\n return [{label: 'No Users — Please add one to this account', value: '', disabled: true}];\n}\n\nfunction compareUsersByEmail(a: User, b: User): number {\n if (a == null) {\n return -1;\n }\n if (b == null) {\n return 1;\n }\n return a.email.localeCompare(b.email);\n}\n\nfunction createLabelString(firstName: string, lastName: string, email: string): string {\n let returnString = '';\n returnString += firstName ? firstName + ' ' : '';\n returnString += lastName ? lastName + ' ' : '';\n returnString += email ? `(${email})` : '';\n return returnString;\n}\n"],"names":["BehaviorSubject","combineLatest","map","switchMap","of","Component","TranslateService","DisplayPriceService","Input","tslib_1.__extends","NgModule","CommonModule","CoreSharedModule","TranslateModule","Observable","Optional","Inject","EventEmitter","ImageTransformationService","Output","VaIconModule","MatCardModule","MatButtonModule","MatIconModule","MatMenuModule","ImageTransformationModule","Validators","FormControl","FormGroup","Injectable","BillingModel","MatChipsModule","MatTooltipModule","tslib_1.__values","FieldType","Field","CustomField","AddonKey","CommonField","FormArray","ChangeDetectionStrategy","formatDisplayPrice","Pipe","formatBillingFrequency","FormsModule","MatCheckboxModule","MatExpansionModule","MatInputModule","MatOptionModule","MatProgressSpinnerModule","MatSelectModule","ReactiveFormsModule","VaFormsModule","VaBadgeModule","MatListModule","VaSafeHtmlModule","VaListModule","VaImageGalleryModule","VaBreadcrumbsModule","buildBilledProductFromProductPricingAndAddon","isNullOrUndefined","BillingService","ChangeDetectorRef","BillingModule","MatDividerModule","InjectionToken","CheckboxFilterField","Categories","FilterSection","Filters","TabbedFilterField","debounceTime","distinctUntilChanged","startWith","filter","take","FilterService","UIKitModule","ReplaySubject","skipWhile","shareReplay","observableMerge","Addon","ProtoPricing","ProtoCurrency","tap","zip","trigger","state","style","transition","animate"],"mappings":";;;;;;;;IAAA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;;AAEF,IAAO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;;AAED,IAAO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS;IACT,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;;AAED,IAAO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;;AAED,IAAO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACvJ,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;;AAED,IAAO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;;AAED,IAAO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;;AAED,IAAO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO;IACX,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,CAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,cAAc,GAAG;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;;AAEF,IAAO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;;AAED,IAAO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;;AAED,IAAO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;;AAEF,IAAO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;;AAED,IAAO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;;;;;;;QCvIG,4BAAoB,gBAAkC,EAAU,mBAAwC;YAAxG,iBAmFC;YAnFmB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAAU,wBAAmB,GAAnB,mBAAmB,CAAqB;YA9C/F,YAAO,GAAY,IAAI,CAAC;YAExB,kBAAa,GAAG,KAAK,CAAC;YACtB,YAAO,GAAG,KAAK,CAAC;YAChB,wBAAmB,GAAG,KAAK,CAAC;YAC5B,mBAAc,GAAG,IAAI,CAAC;YACtB,WAAM,GAAG,IAAI,CAAC;YAEvB,cAAS,GAAG,IAAIA,oBAAe,CAAU,IAAI,CAAC,CAAC;YAC/C,oBAAe,GAAG,IAAIA,oBAAe,CAAgB,IAAI,CAAC,CAAC;YAC3D,0BAAqB,GAAG,IAAIA,oBAAe,CAAU,KAAK,CAAC,CAAC;YAqC1D,IAAI,CAAC,OAAO,GAAGC,kBAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAChGC,aAAG;;;;YAAC,UAAC,EAA6C;oBAA7C,kBAA6C,EAA5C,eAAO,EAAE,qBAAa,EAAE,2BAAmB;;oBACzC,YAAY;;;;gBAAG,UAAC,MAA2B;oBAC/C,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI;;;;oBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,GAAA,EAAC,GAAG,KAAK,CAAC;iBAClF,CAAA;gBAED,IAAI,mBAAmB,IAAI,aAAa,EAAE;oBACtC,OAAO,aAAa,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;iBACrG;gBACD,OAAO,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAClD,EAAC,CACH,CAAC;YAEF,IAAI,CAAC,mBAAmB,GAAGD,kBAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAC5GC,aAAG;;;;YAAC,UAAC,EAA6C;oBAA7C,kBAA6C,EAA5C,eAAO,EAAE,qBAAa,EAAE,2BAAmB;;oBACzC,0BAA0B;;;;gBAAG,UAAC,MAA2B;oBAC7D,OAAO,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI;;;;oBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,GAAA,EAAC,GAAG,IAAI,CAAC;iBAC/F,CAAA;gBAED,IAAI,mBAAmB,IAAI,aAAa,EAAE;oBACtC,OAAO,0BAA0B,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;iBACjE;gBACD,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACnD,EAAC,CACH,CAAC;YAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAACA,aAAG;;;;YAAC,UAAA,aAAa,IAAI,OAAA,aAAa,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,GAAA,EAAC,CAAC,CAAC;YAC5G,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAC9CC,mBAAS;;;;YAAC,UAAA,aAAa;;oBACf,sBAAsB,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG;;;;gBAAC,UAAA,WAAW;oBACvE,OAAOF,kBAAa,CAClBG,OAAE,CAAC,WAAW,CAAC,eAAe,CAAC,EAC/B,KAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EACxC,KAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAC5E,KAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAC1C,KAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC,gBAAgB,EAAE,WAAW,CAAC,eAAe,CAAC,EACtG,KAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAC1C,CAAC,IAAI,CACJF,aAAG;;;;oBAAC,UAAC,EACyE;4BADzE,kBACyE,EADxE,uBAAe,EAAE,yBAAiB,EAAE,6BAAqB,EACxD,2BAAmB,EAAE,0BAAkB,EAAE,qCAA6B;wBAC3E,OAAO;4BACL,eAAe,EAAE,eAAe;4BAChC,iBAAiB,EAAE,iBAAiB;4BACpC,qBAAqB,EAAE,qBAAqB;4BAC5C,mBAAmB,EAAE,mBAAmB;4BACxC,kBAAkB,EAAE,kBAAkB;4BACtC,6BAA6B,EAAE,6BAA6B;yBAC7D,CAAC;qBACH,EAAC,CACH,CAAA;iBACF,EAAC;gBACF,OAAOD,kBAAa,wBAAI,sBAAsB,GAAC;aAChD,EAAC,CACH,CAAC;YAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAClCE,mBAAS;;;;YAAC,UAAA,OAAO;;oBACT,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG;;;;gBAAC,UAAA,KAAK;oBAC/C,OAAOF,kBAAa,CAClBG,OAAE,CAAC,KAAK,CAAC,eAAe,CAAC,EACzB,KAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,EACrE,KAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EACrE,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAC3C,CAAC,IAAI,CACJF,aAAG;;;;oBAAC,UAAC,EAA6G;4BAA7G,kBAA6G,EAA5G,uBAAe,EAAE,6CAAqC,EAAE,0CAAkC,EAAE,uBAAe;wBAC/G,OAAO;4BACL,eAAe,EAAE,eAAe;4BAChC,qCAAqC,EAAE,qCAAqC;4BAC5E,kCAAkC,EAAE,kCAAkC;4BACtE,eAAe,EAAE,eAAe;yBACjC,CAAC;qBACH,EAAC,CACH,CAAA;iBACF,EAAC;gBACF,OAAOD,kBAAa,wBAAI,gBAAgB,GAAE;aAC3C,EAAC,CACH,CAAC;YAEF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACzD;QA/FD,sBAAI,wCAAQ;;;;YAAZ;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;aACtC;;;WAAA;QAED,sBAAI,8CAAc;;;;YAAlB;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;aAC5C;;;WAAA;QAED,sBAAI,oDAAoB;;;;YAAxB;gBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;aAClD;;;WAAA;;;;;QAuFD,wCAAW;;;;QAAX,UAAY,OAAsB;YAChC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aACnD;YACD,IAAI,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;gBAC3C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;aAC/D;YACD,IAAI,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE;gBACjD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;aAC3E;SACF;;;;;QAED,mDAAsB;;;;QAAtB,UAAuB,IAAiB;;gBAChC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;gBACtB,GAAG,GAAG,GAAG,CAAC;gBACV,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;oBAC5C,OAAOG,OAAE,CAAC,EAAE,CAAC,CAAC;iBACjB;aACJ;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAC,CAAC,CAAC;SACtH;;;;;;QAED,uDAA0B;;;;;QAA1B,UAA2B,IAAiB,EAAE,SAAkB;YAAhE,iBAYC;YAXG,OAAOH,kBAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAChGE,mBAAS;;;;YAAC,UAAC,EAAiC;oBAAjC,kBAAiC,EAAhC,mBAAW,EAAE,0BAAkB;gBACzC,IAAI,WAAW,EAAE;oBACf,OAAO,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,+CAA+C,EAAE;wBACnF,WAAW,EAAE,WAAW;wBACxB,SAAS,EAAE,kBAAkB;qBAC9B,CAAC,CAAC;iBACJ;gBACD,OAAOC,OAAE,CAAC,kBAAkB,CAAC,CAAC;aAC/B,EAAC,CACH,CAAC;SACL;;;;;QAED,qDAAwB;;;;QAAxB,UAAyB,IAAiB;YACtC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3CF,aAAG;;;;YAAC,UAAA,YAAY,IAAI,OAAA,YAAY,GAAG,YAAY,GAAG,EAAE,GAAA,EAAC,CACtD,CAAC;SACL;;;;;;;;QAED,uDAA0B;;;;;;;QAA1B,UAA2B,KAAY,EAAE,QAAgB,EAAE,gBAAyB,EAAE,0BAAmC;YAErH,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAChD,KAAK,CAAC,KAAK,EACX,QAAQ,sBACP,gBAAgB,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,KACxC,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,CAAC,eAAe,IAAI,0BAA0B,CACpD,CAAA;SACJ;;;;;;;QAED,oDAAuB;;;;;;QAAvB,UAAwB,IAAiB,EAAE,SAAuC,EAAE,eAAyB;YACzG,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAChD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,CAAC,QAAQ,qBAC3B,SAAS,IACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,eAAe,CAAC,CAAC;SACtB;;;;;QAED,iDAAoB;;;;QAApB,UAAqB,SAAkB;YACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;SACrE;;;;QAED,mDAAsB;;;QAAtB;YAAA,iBAgCC;YA/BC,OAAOD,kBAAa,CAAC;gBACnB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,oCAAoC,CAAC;gBAClE,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,mBAAmB;aACzB,CAAC,CAAC,IAAI,CACLE,mBAAS;;;;YAAC,UAAC,EAA2E;oBAA3E,kBAA2E,EAA1E,6BAAqB,EAAE,qBAAa,EAAE,eAAO,EAAE,cAAM,EAAE,0BAAkB;;oBAC7E,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;oBACvF,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE;;oBACnF,eAAe,GAAG,EAAE;gBACxB,IAAI,SAAS,KAAK,QAAQ,EAAE;oBAC1B,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC;iBAC9C;qBAAM,IAAI,SAAS,KAAK,SAAS,EAAE;oBAClC,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC;iBAC/C;gBACD,IAAI,CAAC,eAAe,IAAI,MAAM,IAAI,kBAAkB,EAAE;oBACpD,OAAOC,OAAE,CAAC,EAAE,CAAC,CAAC;iBACf;gBACD,IAAI,aAAa,IAAI,aAAa,CAAC,UAAU,EAAE;;wBACvC,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO;;wBAC1C,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS;oBACpD,OAAO,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,wCAAwC,EAAE;wBAC5E,OAAO,EAAE,OAAO;wBAChB,eAAe,EAAE,eAAe;wBAChC,SAAS,EAAE,SAAS;qBACrB,CAAC,CAAC;iBACJ;gBACD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf,EAAC,CACH,CAAA;SACF;;oBAhPJC,cAAS,SAAC;wBACP,QAAQ,EAAE,YAAY;wBACtB,uxBAAuC;;qBAE1C;;;;oBAPQC,uBAAgB;oBAHaC,0BAAmB;;;8BAYpDC,UAAK;oCACLA,UAAK;oCACLA,UAAK;8BACLA,UAAK;0CACLA,UAAK;qCACLA,UAAK;6BACLA,UAAK;;QAqOV,yBAAC;KAjPD,IAiPC;;;QA3OG,qCAAiC;;QACjC,2CAAsC;;QACtC,2CAA+B;;QAC/B,qCAAyB;;QACzB,iDAAqC;;QACrC,4CAA+B;;QAC/B,oCAAuB;;QAEvB,uCAA+C;;QAC/C,6CAA2D;;QAC3D,mDAA4D;;QAE5D,qCAA6B;;QAC7B,iDAAyC;;QACzC,0CAAkC;;QAElC,8CAOK;;QAEL,wCAKK;;QAEL,gDAAuC;;;;;QAc3B,8CAA0C;;;;;QAAE,iDAAgD;;;;;;;;QCpD7DC,6CAAkB;QALjE;;SAMC;;oBANAJ,cAAS,SAAC;wBACP,QAAQ,EAAE,mBAAmB;wBAC7B,2sIAAiD;;qBAEpD;;QAED,gCAAC;KAAA,CAD8C,kBAAkB;;;;;;;QCAtBI,yCAAkB;QAL7D;;SAMC;;oBANAJ,cAAS,SAAC;wBACP,QAAQ,EAAE,eAAe;wBACzB,qjEAA6C;;qBAEhD;;QAED,4BAAC;KAAA,CAD0C,kBAAkB;;;;;;;ICP7D;QAAA;SAoCC;QAnCiB,KAAE,GAAG;YACnB,gBAAgB,EAAE;gBAChB,OAAO,EAAE,OAAO;gBAChB,eAAe,EAAE,eAAe;gBAChC,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,aAAa;gBAC5B,eAAe,EAAE,SAAS;gBAC1B,cAAc,EAAE,QAAQ;gBACxB,YAAY,EAAE,8BAA8B;gBAC5C,gCAAgC,EAAE,wCAAwC;gBAC1E,yBAAyB,EAAE,gGAAgG;gBAC3H,YAAY,EAAE,8CAA8C;gBAC5D,qBAAqB,EAAE;oBACrB,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,MAAM;iBACf;gBACD,qBAAqB,EAAE,gCAAgC;gBACvD,0BAA0B,EAAE,0BAA0B;gBACtD,iBAAiB,EAAE;oBACjB,qBAAqB,EAAE,qDAAqD;oBAC5E,4BAA4B,EAAE,4BAA4B;oBAC1D,UAAU,EAAE,UAAU;iBACvB;gBACD,UAAU,EAAE,UAAU;gBACtB,2BAA2B,EAAE,+BAA+B;gBAC5D,wBAAwB,EAAE,uCAAuC;gBACjE,4BAA4B,EAAE,8CAA8C;gBAC5E,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,YAAY;gBAC1B,oBAAoB,EAAE,8BAA8B;aACrD;SACF,CAAC;QACJ,SAAC;KApCD,IAoCC;;;QAnCC,MAkCE;;;;;;;;ICnCJ;QAAA;SAoCC;QAnCiB,KAAE,GAAG;YACnB,gBAAgB,EAAE;gBAChB,OAAO,EAAE,QAAQ;gBACjB,eAAe,EAAE,iCAAiC;gBAClD,MAAM,EAAE,QAAQ;gBAChB,aAAa,EAAE,WAAW;gBAC1B,eAAe,EAAE,UAAU;gBAC3B,cAAc,EAAE,SAAS;gBACzB,YAAY,EAAE,8BAA8B;gBAC5C,gCAAgC,EAAE,uCAAuC;gBACzE,yBAAyB,EAAE,4FAA4F;gBACvH,YAAY,EAAE,yCAAyC;gBACvD,qBAAqB,EAAE;oBACrB,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,KAAK;iBACd;gBACD,qBAAqB,EAAE,gCAAgC;gBACvD,0BAA0B,EAAE,wBAAwB;gBACpD,iBAAiB,EAAE;oBACjB,qBAAqB,EAAE,0DAA0D;oBACjF,4BAA4B,EAAE,8BAA8B;oBAC5D,UAAU,EAAE,WAAW;iBACxB;gBACD,UAAU,EAAE,UAAU;gBACtB,2BAA2B,EAAE,6BAA6B;gBAC1D,wBAAwB,EAAE,kCAAkC;gBAC5D,4BAA4B,EAAE,mEAAmE;gBACjG,SAAS,EAAE,MAAM;gBACjB,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,SAAS;gBAClB,YAAY,EAAE,aAAa;gBAC3B,oBAAoB,EAAE,gCAAgC;aACvD;SACF,CAAC;QACJ,SAAC;KApCD,IAoCC;;;QAnCC,MAkCE;;;;;;;ACpCJ;QAqBE,yBAAoB,gBAAkC,EACN,YAAgC,EAChC,YAAgC;YAF5D,qBAAgB,GAAhB,gBAAgB,CAAkB;YAGpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAC/F,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;SAC3G;;oBAvBFK,aAAQ,SAAC;wBACN,OAAO,EAAE;4BACPC,mBAAY;4BACZC,uBAAgB;4BAChBC,sBAAe,CAAC,QAAQ,EAAE;yBAC3B;wBACD,YAAY,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC;wBACpF,OAAO,EAAE,CAAC,kBAAkB,CAAC;qBAChC;;;;oBAbwBP,uBAAgB;oBACjCQ,eAAU,uBAeHC,aAAQ,YAAIC,WAAM,SAAC,cAAc;oBAfxCF,eAAU,uBAgBHC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;QAYhD,sBAAC;KAxBD,IAwBC;;;;;;QAda,2CAA0C;;;;;;;ACrBxD;QAkDI,4BAAoB,0BAAsD;YAAtD,+BAA0B,GAA1B,0BAA0B,CAA4B;YALhE,qBAAgB,GAAG,IAAIC,iBAAY,EAAa,CAAC;YACjD,gBAAW,GAAG,IAAIA,iBAAY,EAAa,CAAC;YAC5C,uBAAkB,GAAG,IAAIA,iBAAY,EAAa,CAAC;YACnD,kBAAa,GAAG,IAAIA,iBAAY,EAAa,CAAC;SAEsB;;;;QAE9E,kDAAqB;;;QAArB;;;gBAEM,WAAW,GAAG;gBAClB,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;gBACtF,SAAS;aACV;;gBACG,OAAO,GAAG,CAAC;;gBACT,YAAY,GAAG,SAAS;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACnB,OAAO,YAAY,CAAC;aACrB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aAC5C;;gBACK,KAAK,GAAG,OAAO,GAAG,WAAW,CAAC,MAAM;YAC1C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3B;;;;;QAED,gDAAmB;;;;QAAnB,UAAoB,QAAgB;YAC9B,OAAO,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;SAC3F;;oBAnEFZ,cAAS,SAAC;wBACP,QAAQ,EAAE,eAAe;wBACzB,QAAQ,EAAE,+lDAiCT;;qBAEJ;;;;oBAvCOa,8CAA0B;;;2BAyC7BV,UAAK;uCACLW,WAAM;kCACNA,WAAM;yCACNA,WAAM;oCACNA,WAAM;;QA0BX,yBAAC;KArED,IAqEC;;;QA9BG,kCAAyB;;QACzB,8CAA2D;;QAC3D,yCAAsD;;QACtD,gDAA6D;;QAC7D,2CAAwD;;;;;QAE5C,wDAA8D;;;;;;;AClD9E;QA4BE,yBAAoB,gBAAkC,EACN,YAAgC,EAChC,YAAgC;YAF5D,qBAAgB,GAAhB,gBAAgB,CAAkB;YAGpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAC/F,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;SAC3G;;oBA7BFT,aAAQ,SAAC;wBACN,OAAO,EAAE;4BACLC,mBAAY;4BACZS,kBAAY;4BACZC,sBAAa;4BACbC,wBAAe;4BACfC,sBAAa;4BACbC,sBAAa;4BACbC,6CAAyB;4BACzB,eAAe;4BACfZ,sBAAe,CAAC,QAAQ,EAAE;yBAC3B;wBACH,YAAY,EAAE,CAAC,kBAAkB,CAAC;wBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;qBAChC;;;;oBAnByBP,uBAAgB;oBACjCQ,eAAU,uBAqBJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;oBArBvCF,eAAU,uBAsBJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;QAYhD,sBAAC;KA9BD,IA8BC;;;;;;QAda,2CAA0C;;;;;;;AC5BxD;QAIA;YAiBW,UAAK,GAAgB,EAAE,CAAC;YACxB,eAAU,GAAG,IAAI,CAAC;YACjB,gBAAW,GAAG,IAAIC,iBAAY,EAAa,CAAC;SAUvD;QANC,sBAAI,yCAAa;;;;YAAjB;gBAAA,iBAKC;gBAJC,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;;;;oBAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAA,EAAC,CAAC;iBACvG;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC;aACnB;;;WAAA;;oBA5BFZ,cAAS,SAAC;wBACT,QAAQ,EAAE,UAAU;wBACpB,QAAQ,EAAE,iaAWT;;qBAEF;;;4BAEEG,UAAK;iCACLA,UAAK;kCACLW,WAAM;;QAUT,qBAAC;KA7BD,IA6BC;;;QAZC,+BAAiC;;QACjC,oCAA2B;;QAC3B,qCAAsD;;QAEtD,oCAAmB;;;;;;;;QCmCnB,sCAAoB,gBAAkC;YAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;YAf7C,cAAS,GAAG,KAAK,CAAC;YAElB,qBAAgB,GAAG,KAAK,CAAC;YACzB,cAAS,GAAG,EAAE,CAAC;YACf,2BAAsB,GAAG,IAAI,CAAC;YAC9B,oBAAe,GAAG,EAAE,CAAC;YAErB,gBAAW,GAAG,EAAE,CAAC;YACjB,eAAU,GAAG,IAAI,CAAC;YAC3B,wBAAmB,GAAG,EAAE,CAAC;YACzB,aAAQ,GAAG,cAAc,CAAC;YAC1B,kBAAa,GAAmB,EAAE,CAAC;YACnC,gBAAW,GAAG,CAAC,CAAC;YAChB,kBAAa,GAAG,EAAE,CAAC;SAEuC;;;;QAE1D,+CAAQ;;;QAAR;YAAA,iBAsEC;;gBArEO,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;;;;;;;YAAC,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAM,OAAA,CAAC,IAAI,CAAC,CAAC,MAAM,GAAA,GAAE,IAAI,CAAC;YAChF,IAAI,eAAe,EAAE;gBACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aACzB;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE;gBACjF,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;aACvB;YACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;gBACvF,IAAI,sBAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAa;YAErF,KAAK,IAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACrC,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;wBAC9E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;qBACzD;iBACF;aACF;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CACrBlB,kBAAa,CAAC;gBACZ,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,gCAAgC,CAAC;aAC/D,CAAC,CAAC,SAAS;;;;YAAC,UAAC,EAAuB;oBAAvB,kBAAuB,EAAtB,cAAM,EAAE,qBAAa;;oBAC9B,aAAa,GAAG,KAAK;gBACzB,KAAK,IAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC7H,KAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;wBAC/B,aAAa,GAAG,IAAI,CAAC;wBACrB,IAAI,MAAM,KAAK,SAAS,EAAE;4BACxB,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC,mBAAmB,CAAC;4BACvD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;gCAClE,KAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;gCAC1B,MAAM;6BACP;yBACF;6BAAM;4BACL,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC,0BAA0B,CAAC;yBAC/D;qBACF;iBACF;gBACD,IAAI,CAAC,aAAa,EAAE;oBAClB,KAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;oBAC/B,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC;iBAC7C;aACF,EAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,OAAO;;wBAC7B,WAAW,GAAG,EAAE;oBACpB,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;wBACzB,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;4BAClF,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gCACxB,KAAK,IAAM,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;oCAClC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;wCACjC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;wCAC1C,WAAW,IAAI,IAAI,CAAC;qCACrB;iCACF;6BACF;iCAAM;gCACL,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;gCAC5B,WAAW,IAAI,IAAI,CAAC;6BACrB;yBACF;qBACF;oBACD,KAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBAC7E,EAAC,CACH,CAAC;aACH;YACD,IAAI,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SACnE;;;;;QAED,kDAAW;;;;QAAX,UAAY,UAA4B;YAAxC,iBAkBC;;gBAjBO,KAAK,GAAQ,EAAE;YACrB,UAAU,CAAC,OAAO;;;;YAAC,UAAA,KAAK;;oBAClB,WAAW;gBACf,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;oBACnC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC;iBAC/B;qBAAM,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE;oBAC3C,WAAW,GAAG,CAACyB,gBAAU,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;iBAC1D;qBAAM;oBACL,WAAW,GAAG,CAACA,gBAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;iBACtD;;oBAEK,WAAW,GAAG,IAAIC,iBAAW,CAAC,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAC,EAAE,WAAW,CAAC;gBAChG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;gBAC9B,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,KAAK,IAAI,QAAC,KAAK,CAAC,KAAK,GAAG,KAAK,IAAC,EAAC,CAAC,CAAC;aAC7F,EAAC,CAAC;YAEH,OAAO,IAAIC,eAAS,CAAC,KAAK,CAAC,CAAC;SAC7B;;;;QAED,kDAAW;;;QAAX;YACE,IAAI,CAAC,aAAa,CAAC,OAAO;;;;YAAC,UAAA,YAAY,IAAI,OAAA,YAAY,CAAC,WAAW,EAAE,GAAA,EAAC,CAAC;SACxE;;oBAtJFvB,cAAS,SAAC;wBACT,QAAQ,EAAE,0BAA0B;wBACpC,QAAQ,EAAE,isDAgCT;;qBAEF;;;;oBAtCQC,uBAAgB;;;uCAwCtBE,UAAK;gCACLA,UAAK;iCACLA,UAAK;uCACLA,UAAK;gCACLA,UAAK;6CACLA,UAAK;sCACLA,UAAK;6BACLA,UAAK;kCACLA,UAAK;iCACLA,UAAK;;QAwGR,mCAAC;KAvJD,IAuJC;;;QAjHC,wDAA8B;;QAC9B,iDAA2B;;QAC3B,kDAA+B;;QAC/B,wDAAkC;;QAClC,iDAAwB;;QACxB,8DAAuC;;QACvC,uDAA8B;;QAC9B,8CAAkC;;QAClC,mDAA0B;;QAC1B,kDAA2B;;QAC3B,2DAAyB;;QACzB,gDAA0B;;QAC1B,qDAAmC;;QACnC,mDAAgB;;QAChB,qDAAmB;;;;;QAEP,wDAA0C;;;;;;;AC5DxD;QAGA;SAeC;QAPC,sBAAI,mCAAO;;;;YAAX;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;aAC9F;;;WAAA;;;;;QAED,0CAAiB;;;;QAAjB,UAAkB,KAAK;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;SAC3H;;oBAdFH,cAAS,SAAC;wBACT,QAAQ,EAAE,UAAU;wBAEpB,w9HAAqC;;qBACtC;;;4BAEEG,UAAK;2BACLA,UAAK;;QAQR,qBAAC;KAfD,IAeC;;;QATC,+BAAoB;;QACpB,8BAAyB;;;;;;;ACV3B;QAKA;SA0BC;;;;;QAxBC,wCAAiB;;;;QAAjB,UAAkB,KAAqB;YACrC,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,OAAO,IAAImB,iBAAW,CAAC,KAAK,CAAC,KAAK,EAAED,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAC1D;iBAAM;gBACL,OAAO,IAAIC,iBAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACrC;SACF;;;;;;QAED,kCAAW;;;;;QAAX,UAAY,UAA4B,EAAE,aAA6B;YAAvE,iBAeC;;gBAdO,KAAK,GAAQ,EAAE;YACrB,UAAU,CAAC,OAAO;;;;YAAC,UAAA,KAAK;;oBAClB,WAAwB;gBAC5B,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE;oBACpC,WAAW,GAAG,IAAIA,iBAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC5C;qBAAM;oBACL,WAAW,GAAG,KAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;iBAC7C;gBACD,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;gBAC9B,IAAI,aAAa,EAAE;oBACjB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS;;;;oBAAC,UAAA,KAAK,IAAI,QAAC,KAAK,CAAC,KAAK,GAAG,KAAK,IAAC,EAAC,CAAC,CAAC;iBACxF;aACF,EAAC,CAAC;YACH,OAAO,IAAIC,eAAS,CAAC,KAAK,CAAC,CAAC;SAC7B;;oBAzBFC,eAAU;;QA0BX,mBAAC;KA1BD;;;;;;ACLA;QAqCE,oCAAoB,gBAAkC;YAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;YAjB7C,WAAM,GAAG,IAAI,CAAC;YAUd,oBAAe,GAAG,KAAK,CAAC;YAEvB,yBAAoB,GAAG,IAAIZ,iBAAY,EAAE,CAAC;YAC1C,mBAAc,GAAG,IAAIA,iBAAY,EAAE,CAAC;YACpC,iCAA4B,GAAG,IAAIA,iBAAY,EAAE,CAAC;YAClD,0BAAqB,GAAG,IAAIA,iBAAY,EAAE,CAAC;SAEK;;;;QAE1D,qDAAgB;;;QAAhB;YACE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC5B;;;;QAED,2DAAsB;;;QAAtB;YACE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;SAClC;;;;;QAED,qDAAgB;;;;QAAhB,UAAiB,aAA4B;YAC3C,OAAO,aAAa,IAAI,CAACa,oBAAY,CAAC,MAAM,EAAEA,oBAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;SAC5G;;;;;QAED,4DAAuB;;;;QAAvB,UAAwB,YAA0B;YAChD,QAAQ,YAAY;gBAClB,KAAKA,oBAAY,CAAC,SAAS;oBACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;gBAC/E,KAAKA,oBAAY,CAAC,MAAM;oBACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC;gBACnF;oBACE,OAAO1B,OAAE,CAAC,EAAE,CAAC,CAAC;aACjB;SACF;;oBAtDFC,cAAS,SAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,0mFAAgD;;qBAEjD;;;;oBANQC,uBAAgB;;;8BAStBE,UAAK;4BACLA,UAAK;8BACLA,UAAK;mCACLA,UAAK;iCACLA,UAAK;8BACLA,UAAK;oCACLA,UAAK;6BACLA,UAAK;0CACLA,UAAK;mCACLA,UAAK;gDACLA,UAAK;yCACLA,UAAK;2CACLA,UAAK;oCACLA,UAAK;kCACLA,UAAK;iCACLA,UAAK;kCACLA,UAAK;sCACLA,UAAK;wCACLA,UAAK;2CACLW,WAAM;qCACNA,WAAM;mDACNA,WAAM;4CACNA,WAAM;;QA0BT,iCAAC;KAvDD,IAuDC;;;QAhDC,6CAAyB;;QACzB,2CAAuB;;QACvB,6CAAyB;;QACzB,kDAA8B;;QAC9B,gDAA8B;;QAC9B,6CAA0B;;QAC1B,mDAAsC;;QACtC,4CAAuB;;QACvB,yDAAsC;;QACtC,kDAA8B;;QAC9B,+DAA2C;;QAC3C,wDAAoC;;QACpC,0DAAuC;;QACvC,mDAAgC;;QAChC,iDAA6B;;QAC7B,gDAA6B;;QAC7B,iDAA8B;;QAC9B,qDAAiC;;QACjC,uDAAmC;;QACnC,0DAAoD;;QACpD,oDAA8C;;QAC9C,kEAA4D;;QAC5D,2DAAqD;;;;;QAEzC,sDAA0C;;;;;;;ACrCxD;QA0BE,iCAAoB,gBAAkC,EACN,YAAgC,EAChC,YAAgC;YAF5D,qBAAgB,GAAhB,gBAAgB,CAAkB;YAGpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAC/F,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;SAC3G;;oBA5BFT,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZY,sBAAa;4BACb,eAAe;4BACfH,kBAAY;4BACZW,uBAAc;4BACdT,wBAAe;4BACfU,yBAAgB;4BAChBnB,sBAAe,CAAC,QAAQ,EAAE;yBAC3B;wBACD,YAAY,EAAE,CAAC,0BAA0B,CAAC;wBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;qBACtC;;;;oBAlByBP,uBAAgB;oBACjCQ,eAAU,uBAoBJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;oBApBvCF,eAAU,uBAqBJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;QAYhD,8BAAC;KA7BD,IA6BC;;;;;;QAda,mDAA0C;;;;;;;ACxBxD;QAAA;SAQC;QAAD,2BAAC;KAAA,IAAA;;;QAPC,0CAAsB;;QACtB,yCAAkB;;QAClB,4CAAqB;;QACrB,+CAAwB;;QACxB,uCAAgB;;QAChB,8CAAwC;;QACxC,2CAAuC;;;;;;;ACTzC;QAaE;SAAgB;;;;QAEhB,4CAAQ;;;QAAR;;;gBAEQ,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;YACvC,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;aAC7B;SACF;;;;QAED,iDAAa;;;QAAb;YACE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,OAAO,IAAI,CAAC;aACb;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;aACjC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aACjC;YACD,OAAO,IAAI,CAAC;SACb;;oBA9BFX,cAAS,SAAC;wBACT,QAAQ,EAAE,uBAAuB;wBACjC,ioFAAgD;;qBAEjD;;;;;2BAGEG,UAAK;;QAwBR,gCAAC;KA/BD,IA+BC;;;QAxBC,yCAAoC;;;;;;;ACRtC;QAAA;;YAWE,eAAU,GAAI,IAAI,CAAC;;SAEpB;QAAD,8BAAC;KAAA,IAAA;;;QAZC,mDAAsB;;QACtB,4CAAmB;;QACnB,6CAAsB;;QACtB,mDAA0B;;QAC1B,4CAAkB;;QAClB,yDAAgC;;QAChC,kDAAwB;;QACxB,yCAAyB;;QACzB,8CAAoB;;QAEpB,6CAAmB;;;;;;;;;;ICNrB,mCAoBC;;;QAnBC,0CAkBE;;;;;IAKJ,iCAMC;;;QALC,mCAAc;;QACd,qCAAiB;;QACjB,wCAA+C;;QAC/C,sDAA6D;;QAC7D,0CAA2C;;;;;IAG7C,gDAYC;;;QAXC,yDAAuB;;QACvB,4DAA0B;;QAC1B,gEAA8B;;QAC9B,mEAAiC;;QACjC,4DAA0B;;QAC1B,4DAA0B;;QAC1B,mEAAiC;;QACjC,6DAA2B;;QAC3B,wDAAsB;;QACtB,+DAA6B;;QAC7B,yDAAuB;;;;;IAGzB,yCAIC;;;QAHC,4CAAmC;;QACnC,iDAAqB;;QACrB,mDAA+B;;;;;IAGjC,gCAGC;;;QAFC,oCAAiB;;QACjB,kCAAe;;;;;IAGjB,uCAGC;;;QAFC,8CAAsB;;QACtB,6CAAgC;;;;;IAGlC,sCAGC;;;QAFC,0CAAgB;;QAChB,2CAAkB;;;;;IAIpB,6BAYC;;;QAXC,uCAAuB;;QACvB,sCAAsB;;QACtB,8CAA8B;;QAC9B,mDAAmC;;QACnC,uCAAuB;;QACvB,0CAA0B;;QAC1B,+CAA+B;;QAC/B,0CAA0B;;QAC1B,0CAA0B;;QAC1B,2CAA2B;;QAC3B,kDAAkC;;AAGpC;QAAiDC,+CAAoB;QAArE;;SAGC;QAAD,kCAAC;KAHD,CAAiD,oBAAoB,GAGpE;;;QAFC,gDAAkB;;QAClB,kDAA4C;;AAG9C;QAAkDA,gDAAuB;QAAzE;;SAGC;QAAD,mCAAC;KAHD,CAAkD,uBAAuB,GAGxE;;;QAFC,iDAAkB;;QAClB,+CAAgB;;;;;IAGlB,mCAMC;;;QALC,yCAAkB;;QAClB,oCAAc;;QACd,uCAAiB;;QACjB,oCAAc;;QACd,yCAAiC;;;;;IAGnC,iCAGC;;;QAFC,qCAAgB;;QAChB,kCAAc;;;;;IAGhB,kCAIC;;;QAHC,wCAAkB;;QAClB,uCAA6B;;QAC7B,kDAA0C;;;;;IAG5C,iCAGC;;;QAFC,qCAAgB;;QAChB,oCAAgB;;;;;IAGlB,wCAIC;;;QAHC,4DAAkC;;QAClC,6CAAmB;;QACnB,2DAAiC;;;;;;;;QCgRjC;SACC;;;;;;QAjWc,8CAA6B;;;;;QAA5C,UAA6C,SAA6B;YACxE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;gBACrD,OAAO,EAAE,CAAC;aACX;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,MAAM;;;;YAAC,UAAA,CAAC,IAAI,OAAA,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAA,EAAC,CAAC;SAC3G;;;;;;QAEc,oCAAmB;;;;;QAAlC,UAAmC,UAAgC;YAAnE,iBAqBC;;gBApBO,iBAAiB,GAAyC,IAAI,GAAG,EAAmC;YAC1G,KAAK,IAAM,GAAG,IAAI,gBAAgB,CAAC,mBAAmB,EAAE;gBACtD,IAAI,GAAG,EAAE;oBACP,iBAAiB,CAAC,GAAG,CAAC,GAAG,EACvB;wBACE,OAAO,EAAE,GAAG;wBACZ,QAAQ,EAAE,KAAK;qBAChB,CACF,CAAA;iBACF;aACF;YACD,UAAU,CAAC,GAAG;;;;YAAC,UAAA,SAAS;;oBAChB,sBAAsB,GAAG,KAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC;gBAC5E,sBAAsB,CAAC,GAAG;;;;gBAAC,UAAA,OAAO;;wBAC1B,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;oBACpD,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC9B,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;iBAC/C,EAAC,CAAC;aACJ,EAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/C;;;;;;;;;QAEc,uCAAsB;;;;;;;;QAArC,UAAsC,QAAmC,EAAE,UAA0B,EAAE,MAA4B,EAC7F,OAAyB;;gBAEvD,kBAAkB,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;YACjG,OAAO,kBAAkB,CAAC,GAAG;;;;YAAC,UAAA,OAAO,IAAI,qBAAK,OAAO,IAAE,aAAa,EAAE,UAAU,OAAE,EAAC,CAAC;SACrF;;;;;;;;QAEc,2CAA0B;;;;;;;QAAzC,UAA0C,QAAmC,EAAE,MAA4B,EAAE,OAAyB;;;gBAE9H,eAAe,GAA+B;gBAClD,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,oBAAoB,IAAI,UAAU;gBACjE,MAAM,EAAE,EAAE;aACX;;gBACK,kBAAkB,GAA+B;gBACrD,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,uBAAuB,IAAI,aAAa;gBACvE,MAAM,EAAE,EAAE;aACX;;gBACK,cAAc,GAA+B;gBACjD,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,mBAAmB,IAAI,SAAS;gBAC/D,MAAM,EAAE,EAAE;aACX;;gBAED,KAAoB,IAAA,aAAAwB,SAAA,QAAQ,CAAA,kCAAA,wDAAE;oBAAzB,IAAM,KAAK,qBAAA;;wBACR,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;;wBAC3D,eAAe,GAA6B,IAAI,YAAY,CAAC;wBACjE,EAAE,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;wBACvD,KAAK,EAAE,UAAU;wBACjB,WAAW,EAAE,MAAM;qBACpB,CAAC;oBACF,eAAe,CAAC,WAAW,GAAG,eAAe,CAAC,EAAE,KAAK,2BAA2B,CAAC;oBACjF,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;oBAC5C,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;wBACpC,eAAe,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;qBAC3C;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;wBACvC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;qBAC7C;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBACxC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;qBAC9C;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;wBAC3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;4BACnC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;yBAC/B;wBACD,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;qBACjD;iBACF;;;;;;;;;YACD,OAAO,CAAC,eAAe,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC,MAAM;;;;YAAC,UAAA,OAAO;gBACzE,OAAA,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK;aAAA,EACnD,CAAC;SACH;;;;;;;QAEc,mCAAkB;;;;;;QAAjC,UAAkC,OAAe,EAAE,MAA4B;YAC7E,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACzC;;;;;;QAEc,0CAAyB;;;;;QAAxC,UAAyC,UAAqB;;gBACtD,OAAO,GAAG,IAAI,4BAA4B,EAAE;YAClD,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAChC,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC;YAC7B,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACvC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;YAChC,OAAO,OAAO,CAAC;SAChB;;;;;;;;;;QAEc,2CAA0B;;;;;;;;;QAAzC,UAA0C,YAAyC,EAAE,aAAqB,EAAE,KAAa,EAC/E,OAA6B,EAAE,OAAyB;;gBAE1F,YAAY,GAAG;gBACnB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,aAAa;gBACvB,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,oBAAoB;gBAC1B,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,YAAY;aACtB;YACD,OAAO,YAAY;iBAChB,MAAM;;;;YAAC,UAAA,KAAK;gBACX,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACjC,EAAC;iBACD,GAAG;;;;YAAC,UAAA,KAAK;;oBACF,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;;oBACrC,MAAM,GAAG;;;gBAAC;oBACd,QAAQ,UAAU;wBAChB,KAAK,YAAY;;gCACT,WAAW,sBAAG;gCAClB,WAAW,EAAE,KAAK,CAAC,WAAW;gCAC9B,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;gCACxB,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gCACxC,MAAM,EAAE,KAAK,CAAC,MAAM;gCACpB,KAAK,EAAE,KAAK;6BACb,EAAuB;4BACxB,OAAO,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;wBACvC,KAAK,oBAAoB;;gCACjB,WAAW,sBAAG,KAAK,EAA+B;4BACxD,WAAW,CAAC,SAAS,GAAG,aAAa,CAAC;4BACtC,OAAO,IAAI,oBAAoB,CAAC,WAAW,CAAC,CAAC;wBAC/C;4BACE,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;qBAChC;iBACF,IAAG;gBACJ,MAAM,CAAC,EAAE,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;oBACnC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,gBAAgB,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;iBAChE;gBACD,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,uBAAuB,GAAG,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC5E,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACxE,IAAI,OAAO,EAAE;;wBACL,EAAE,GAAG,OAAO,CAAC,IAAI;;;;oBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,GAAA,EAAC;oBACpD,IAAI,EAAE,EAAE;wBACN,IAAI;4BACF,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;yBACtC;wBAAC,OAAO,KAAK,EAAE;4BACd,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC;yBAC1B;qBACF;iBACF;gBACD,OAAO,MAAM,CAAA;aACd,EAAC,CAAC;SACN;;;;;;;;;;;;QAKc,oCAAmB;;;;;;;;;QAAlC,UAAmC,OAAe;;gBAC1C,EAAE,GAAG,IAAI,EAAE;YACjB,OAAU,EAAE,SAAI,OAAS,CAAC;SAC3B;;;;;;QAEc,oCAAmB;;;;;QAAlC,UAAmC,OAAe;YAChD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;SACjD;;;;;;QAEc,6BAAY;;;;;QAA3B,UAA4B,SAAsB;YAChD,QAAQ,SAAS;gBACf,KAAK,SAAS;oBACZ,OAAOC,qBAAS,CAAC,IAAI,CAAC;gBACxB,KAAK,UAAU;oBACb,OAAOA,qBAAS,CAAC,QAAQ,CAAC;gBAC5B,KAAK,UAAU;oBACb,OAAOA,qBAAS,CAAC,QAAQ,CAAC;gBAC5B,KAAK,UAAU;oBACb,OAAOA,qBAAS,CAAC,QAAQ,CAAC;gBAC5B,KAAK,MAAM;oBACT,OAAOA,qBAAS,CAAC,IAAI,CAAC;gBACxB,KAAK,SAAS;oBACZ,OAAOA,qBAAS,CAAC,OAAO,CAAC;gBAC3B;oBACE,OAAOA,qBAAS,CAAC,aAAa,CAAC;aAClC;SACF;;;;;;QAEc,4CAA2B;;;;;QAA1C,UAA2C,SAAyB;YAClE,OAAO,IAAIC,iBAAK,CAAC;gBACf,OAAO,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC/D,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;gBACxC,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE;gBAC9B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE;gBAC9B,cAAc,EAAE,SAAS,CAAC,cAAc,IAAI,EAAE;gBAC9C,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,EAAE;gBACpD,MAAM,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM;aACnE,CAAC,CAAC;SACJ;;;;;;QAEc,+CAA8B;;;;;QAA7C,UAA8C,aAA0C;YAAxF,iBAoBC;;gBAnBO,kBAAkB,GAAG,IAAIC,uBAAW,EAAE;YAC5C,kBAAkB,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YACvD,kBAAkB,CAAC,MAAM,GAAG,aAAa,CAAC,cAAc;kBACpD,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAA,EAAC;kBACzF,EAAE,CAAC;;gBACD,qBAAqB,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG;;;;YAAC,UAAA,UAAU;;oBAC9D,WAAW,GAAG,IAAIA,uBAAW,EAAE;gBACrC,IAAI,UAAU,CAAC,OAAO,EAAE;oBACtB,WAAW,CAAC,QAAQ,GAAG,IAAIC,oBAAQ,CAAC;wBAClC,KAAK,EAAE,UAAU,CAAC,SAAS;wBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;qBAC5B,CAAC,CAAC;iBACJ;qBAAM;oBACL,WAAW,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;iBACjD;gBACD,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAA,EAAC,CAAC;gBAC7F,OAAO,WAAW,CAAC;aACpB,EAAC;YACF,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;SAC7D;;;;;;;;QAEa,sCAAqB;;;;;;;QAAnC,UAAoC,UAAgC,EAAE,UAA0B,EAAE,MAA4B,EAC1F,OAAyB;;gBAErD,QAAQ,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,UAAU,CAAC;YACjE,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACvF;;;;;;;;;;;QAEa,sCAAqB;;;;;;;;;;QAAnC,UAAoC,UAAgC,EAAE,QAAgC,EAAE,UAAqB,EACvG,aAAqB,EAAE,KAAa,EAAE,OAA8B,EAAE,OAAyB;;gBAE7G,YAAY,GAAG,QAAQ,CAAC,GAAG;;;;YAAC,UAAA,OAAO;;oBACjC,WAAW,GAAmC,EAAE;gBACtD,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,GAAG;;;;gBAAC,UAAA,KAAK;;wBAC3B,eAAe,GAAG,UAAU,CAAC,MAAM;;;;oBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,GAAA,EAAC;;wBACrE,YAAY,GAA0B,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM;;;;oBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ;wBAChF,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,GAAA,EAAC;oBACtH,eAAe,CAAC,GAAG;;;;;oBAAC,UAAC,cAAc,EAAE,KAAK;wBACxC,IAAI,cAAc,IAAI,cAAc,CAAC,YAAY,IAAI,cAAc,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;;gCACrF,YAAY,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,UAAU,CAAC;;gCACrE,oCAAoC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,mBAAmB,GAAG,EAAE;;gCACnH,UAAU,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,cAAc,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAC9G,oCAAoC,EAAE,OAAO,CAAC;4BAChD,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;4BAC/B,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;4BACpC,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC;4BACjC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;4BAC3C,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;4BACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;yBAChC;qBACF,EAAC,CAAC;iBACJ,EAAC,CAAC;;oBAEG,eAAe,GAAG,UAAU,CAAC,MAAM;;;;;gBAAC,UAAC,eAAe,EAAE,CAAC;oBAC3D,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;wBAC/C,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACzB;oBACD,OAAO,eAAe,CAAC;iBACxB,GAAE,EAAE,CAAC;gBACA,IAAA,4BAA8D,EAA7D,oBAAY,EAAE,uCAA+C;;oBAE9D,mBAAmB,GAAG,YAAY,IAAI,YAAY,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAC7G,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,EAAE;;wBAC3C,WAAW,GAAG,IAAI,2BAA2B,EAAE;oBACrD,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;oBAC1C,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;oBACpC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;oBACrC,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;oBAC3C,WAAW,CAAC,eAAe,GAAG,EAAE,CAAC;oBACjC,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;oBAEnC,IAAI,mBAAmB,EAAE;;4BACjB,SAAO,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,UAAU,CAAC;wBACtE,SAAO,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;;4BAC7B,cAAc,GAA0B,EAAE;wBAC9C,IAAI,OAAO,EAAE;4BACX,cAAc,GAAG,OAAO,CAAC,MAAM;;;;4BAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,GAAA,EAAC,CAAC;yBACxF;wBACK,IAAA,2BAA+D,EAA7D,2BAAmB,EAAE,mCAAwC;wBACrE,SAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAC1G,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;wBAC/E,WAAW,CAAC,cAAc,GAAG,SAAO,CAAC;wBAErC,yBAAyB,CAAC,OAAO;;;;;wBAAC,UAAC,CAAC,EAAE,KAAK;;;;;;gCAKnC,WAAW,gBAAQ,SAAO,CAAE;;gCAC5B,sBAAsB,GAAG,CAAC,qBAAmB,CAAC,MAAM,GAAG,KAAK,IAAI,qBAAmB,CAAC,KAAK,CAAC,CAAC,mBAAmB,GAAG,EAAE;4BACzH,WAAW,CAAC,MAAM,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAC9G,sBAAsB,EAAE,OAAO,CAAC,CAAC;4BAEnC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;yBAClC,EAAC,CAAC;qBACJ;oBAED,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;oBACtC,OAAO,WAAW,CAAC;iBACpB;gBACD,OAAO,IAAI,CAAC;aACb,EAAC,CAAC,MAAM;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,GAAA,EAAC;YACnB,OAAO,YAAY,CAAC;SACrB;;;;;;;;;;QAEa,sCAAqB;;;;;;;;;QAAnC,UAAoC,WAAwC,EAAE,UAAqB,EAAE,aAAqB,EAAE,KAAa,EACnH,OAA6B,EAAE,OAAyB;YAC5E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1C,OAAO,IAAI,CAAA;aACZ;;gBACK,OAAO,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,UAAU,CAAC;YACtE,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAClH,OAAO,OAAO,CAAA;SACf;;;;;QAEa,oCAAmB;;;;QAAjC,UAAkC,kBAAiD;;gBAC3E,cAAc,GAAG,kBAAkB,CAAC,MAAM;;;;;YAAC,UAAC,GAAG,EAAE,aAAa;gBAClE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC,CAAC;gBACjF,OAAO,GAAG,CAAC;aACZ,GAAE,EAAE,CAAC;YACN,OAAO,cAAc,CAAC;SACvB;;;;;QAEa,oCAAmB;;;;QAAjC,UAAkC,kBAAgD;;gBAC5E,YAAY,GAAkB,EAAE;YACpC,IAAI,kBAAkB,EAAE;gBACtB,YAAY,GAAG,kBAAkB,CAAC,MAAM;;;;;gBAAC,UAAC,GAAG,EAAE,KAAK;;wBAC5C,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG;;;;oBAAC,UAAA,WAAW;;4BACnC,KAAK,GAAG,gBAAgB,CAAC,2BAA2B,CAAC,WAAW,CAAC;wBACvE,IAAI,KAAK,CAAC,OAAO,EAAE;4BACjB,OAAO,IAAIC,uBAAW,CAAC;gCACrB,KAAK,EAAE,KAAK;gCACZ,UAAU,EAAE,WAAW,CAAC,UAAU;gCAClC,SAAS,EAAE,WAAW,CAAC,SAAS;6BACjC,CAAC,CAAC;yBACJ;qBACF,EAAC;oBACF,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBAC3B,GAAE,EAAE,CAAC,CAAA;aACP;YACD,OAAO,YAAY,CAAC;SACrB;;;;;QAEa,mCAAkB;;;;QAAhC,UAAiC,kBAA2C;;gBACtE,eAAe,GAAY,EAAE;YACjC,IAAI,CAAC,CAAC,kBAAkB,EAAE;gBACxB,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,gBAAgB,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAA,EAAC,CAAC;aAC/G;YACD,OAAO,eAAe,CAAC;SACxB;QA5WM,oCAAmB,GAAG;YAC3B,aAAa,EAAE,cAAc;YAC7B,cAAc,EAAE,eAAe;YAC/B,oBAAoB,EAAE,sBAAsB;YAC5C,wBAAwB,EAAE,2BAA2B;YACrD,cAAc,EAAE,eAAe;YAC/B,iBAAiB,EAAE,kBAAkB;YACrC,qBAAqB,EAAE,uBAAuB;YAC9C,iBAAiB,EAAE,kBAAkB;YACrC,iBAAiB,EAAE,kBAAkB;YACrC,kBAAkB,EAAE,mBAAmB;YACvC,wBAAwB,EAAE,0BAA0B;SACrD,CAAC;;oBAdHT,eAAU;;;;QAkXX,uBAAC;KAlXD,IAkXC;;;QAhXC,qCAYE;;;;;;;AC7CJ;QAgBA;YAuBE,mBAAc,GAAG,IAAI7B,oBAAe,CAAU,KAAK,CAAC,CAAC;YACrD,kBAAa,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SA8CpD;;;;QA5CC,qCAAQ;;;QAAR;;gBACQ,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;YAEjE,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACzH,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EACjH,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;YAEzD,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EACpH,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;SAEjD;;;;;;;;QAKM,8CAAiB;;;;QAAxB;YACE,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACtE;;;;;;;;QAKM,8CAAiB;;;;QAAxB;YACE,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACtE;;;;;;;;QAKM,+CAAkB;;;;QAAzB;YACE,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACrE;;;;;;;;;QAKM,2CAAc;;;;;QAArB,UAAsB,QAAiB;YACrC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC1C,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;SACjE;;;;QAEM,yCAAY;;;QAAnB;YACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;;oBArEFK,cAAS,SAAC;wBAET,8mDAAwC;wBACxC,SAAS,EAAE,EAAE;wBACb,QAAQ,EAAE,eAAe;;qBAC1B;;;iCAEEG,UAAK;8BACLA,UAAK;iCACLA,UAAK;oCACLA,UAAK;iCACLA,UAAK;kCACLA,UAAK;6BACLA,UAAK;4BACLA,UAAK;kCACLA,UAAK;yCACLA,UAAK;uCACLA,UAAK;;QAqDR,yBAAC;KAtED,IAsEC;;;QA/DC,wCAAoC;;QACpC,qCAAwC;;QACxC,wCAA+B;;QAC/B,2CAA+B;;QAC/B,wCAA0C;;QAC1C,yCAA6C;;QAC7C,oCAAsC;;QACtC,mCAAuB;;QACvB,yCAAkD;;QAClD,gDAAkD;;QAClD,8CAAqD;;QAErD,gDAAiD;;QACjD,gDAAkD;;QAClD,gDAA4C;;QAE5C,4CAAqD;;QACrD,2CAAmD;;IAgDrD;QAKE,0BAAY,CAA4B;YACtC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;SAC1D;QAEH,uBAAC;KAAA,IAAA;;;QAVC,mDAAiC;;QACjC,oCAAkB;;QAClB,kDAAgC;;;;;;;;ACzFlC,QAAa,KAAK,GAAG,MAAM;;AAC3B,QAAa,SAAS,GAAG,UAAU;;AACnC,QAAa,SAAS,GAAG,UAAU;;AACnC,QAAa,SAAS,GAAG,UAAU;;AACnC,QAAa,QAAQ,GAAG,SAAS;;AACjC,QAAa,aAAa,GAAG,SAAS;;;;IAItC,+BAeC;;;QAbC,8BAAW;;QACX,iCAAc;;QACd,oCAAmB;;QACnB,uCAAqB;;QACrB,gCAAc;;QACd,kCAAgB;;QAChB,kCAAgB;;QAChB,0CAAwB;;QACxB,6CAA2B;;QAC3B,oCAAmB;;QACnB,4CAA2B;;QAC3B,kCAAiB;;QACjB,uCAAsB;;;;;;AAGxB;;;;;QAkBE,mBAAY,OAAyB;YACnC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;YAC/C,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAClE,IAAI,CAAC,WAAW,sBAAG,OAAO,CAAC,IAAI,EAAe,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC7C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;YAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACnD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;SACxC;;;;QAED,4BAAQ;;;QAAR;;gBACQ,UAAU,GAAG,IAAI,CAAC,KAAK;YAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,UAAU,IAAI,IAAI,CAAC;aACtB;YACD,OAAO,UAAU,CAAC;SACrB;;;;;QAES,oCAAgB;;;;QAA1B;YACE;;;;YAAO,UAAC,OAAwB;gBAC9B,OAAO,IAAI,CAAA;aACZ,EAAA;SACF;QACH,gBAAC;KAAA,IAAA;;;QAhDC,0BAAS;;QACT,uBAAW;;QACX,0BAAc;;QACd,6BAAkB;;QAClB,0BAAc;;QACd,gCAAoB;;QACpB,gCAAyB;;QACzB,2BAAe;;QACf,2BAAe;;QACf,mCAAuB;;QACvB,sCAA0B;;QAC1B,6BAAkB;;QAClB,8BAAuB;;QACvB,qCAA0B;;QAC1B,2BAAgB;;QAChB,gCAAqB;;;;;;;AC5CvB;QAKA;YASY,gBAAW,GAAyB,IAAIS,iBAAY,CAAC,IAAI,CAAC,CAAC;SAqHtE;;;;;;QAhHQ,0CAAoB;;;;;QAA3B,UAA4B,MAAqC,EAAE,QAAiB;YAClF,OAAO,IAAIW,eAAS,CAAC;gBACnB,KAAK,EAAE,IAAID,iBAAW,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,CAACD,gBAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAC3F,KAAK,EAAE,IAAIC,iBAAW,CAAC,MAAM,CAAC,KAAK,CAAC;gBACpC,QAAQ,EAAE,IAAIA,iBAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC1C,CAAC,CAAC;SACJ;;;;;QAEM,2CAAqB;;;;QAA5B,UAA6B,OAAwC;YACnE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;gBAC7C,OAAO,GAAG,EAAE,CAAC;aACd;;gBACK,yBAAyB,GAC7B,OAAO,CAAC,GAAG;;;;YAAC,UAAA,MAAM,IAAI,OAAA,qBAAqB,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAA,EAAC;YAClF,OAAO,IAAIY,eAAS,CAAC,yBAAyB,CAAC,CAAC;SACjD;;;;;QAEM,+CAAyB;;;;QAAhC,UAAiC,cAAuC;;gBAChE,mBAAmB,GAAG,IAAIX,eAAS,CAAC;gBACxC,kBAAkB,EAAE,IAAID,iBAAW,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnE,YAAY,EAAE,IAAIA,iBAAW,CAAC,cAAc,CAAC,KAAK,EAAE,CAACD,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1E,SAAS,EAAE,IAAIC,iBAAW,CAAC,cAAc,CAAC,EAAE,EAAE,CAACD,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBACpE,eAAe,EAAE,IAAIC,iBAAW,CAAC,cAAc,CAAC,QAAQ,IAAI,KAAK,EAAE,EAAE,CAAC;gBACtE,gBAAgB,EAAE,IAAIA,iBAAW,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC/D,aAAa,EAAE,IAAIA,iBAAW,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzD,aAAa,EAAE,IAAIA,iBAAW,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzD,qBAAqB,EAAE,IAAIA,iBAAW,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,EAAE,CAAC;gBACvF,wBAAwB,EAAE,IAAIA,iBAAW,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBAC/E,WAAW,EAAE,IAAIA,iBAAW,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAACD,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBAC3F,cAAc,EAAE,IAAIC,iBAAW,CAAC,cAAc,CAAC,cAAc,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC3E,eAAe,EAAE,IAAIA,iBAAW,CAAC,cAAc,CAAC,eAAe,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC7E,UAAU,EAAE,IAAIA,iBAAW,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,GAAG,CAAC,EAAE,CAACD,gBAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9H,gBAAgB,EAAG,IAAIC,iBAAW,CAAC,cAAc,CAAC,gBAAgB,IAAI,KAAK,EAAE,EAAE,CAAC;aACjF,CAAC;YACF,IAAI,cAAc,CAAC,iBAAiB,EAAE;;oBAC9B,YAAY,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,cAAc,CAAC,iBAAiB,CAAC;gBAClG,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;aAClE;iBAAM,IAAI,cAAc,CAAC,OAAO,EAAE;;oBAC3B,YAAY,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG;;;;gBAAC,UAAA,MAAM,IAAI,QAAC,EAAC,KAAK,EAAE,MAAM,EAAC,IAAC,EAAC,CAAC;gBACzH,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;aAClE;iBAAM;gBACL,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,EAAE,IAAIY,eAAS,CAAC,EAAE,CAAC,CAAC,CAAC;aACvE;YAED,OAAO,mBAAmB,CAAC;SAC5B;;;;QAED,wCAAQ;;;QAAR;YACE,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpE,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;aACxC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;;;;QAED,wCAAQ;;;QAAR;;YAEE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;gBACjD,IAAI,CAAC,mBAAmB;oBACpB,qBAAqB,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;aACzD;SACF;;;;QAED,+CAAe;;;QAAf;YACE,0BAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAc;SACtE;;;;QAED,wDAAwB;;;QAAxB;;gBACQ,sBAAsB,uBACvB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,GAAuB;YAC7E,OAAO,sBAAsB,GAAG,sBAAsB,CAAC,EAAE,GAAG,IAAI,CAAC;SAClE;;;;;QAED,4CAAY;;;;QAAZ,UAAa,KAAa;;gBAClB,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;YACxC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC3B;;;;QAED,yCAAS;;;QAAT;;gBACQ,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE;YACzC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,EAAC,KAAK,EAAE,EAAE,EAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SAChF;;;;QAED,6CAAa;;;QAAb;;gBACQ,GAAG,GAA4B,EAAE;YACvC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;YAC/D,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;gBAEnD,aAAa,uBACd,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,GAC9B;YACxB,GAAG,CAAC,IAAI,GAAG,aAAa,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC;;;gBAG7C,YAAY,uBAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAc;YACpF,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,EAAE;gBACtC,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG;;;;gBAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAA,EAAC,CAAC;gBAC7E,GAAG,CAAC,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG;;;;gBAAC,UAAA,MAAM,IAAI,QAAC,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAC,IAAC,EAAC,CAAC;aACxG;YAED,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC;YAC3E,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;YAC9E,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC;YACvE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;YACjE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;YACjE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC;YACjF,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC;YACvF,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;YACnF,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;YACrF,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACvE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;YACvF,OAAO,GAAG,CAAC;SACZ;;oBA7HFlC,cAAS,SAAC;wBACT,QAAQ,EAAE,kBAAkB;wBAC5B,i5MAA6C;wBAE7C,eAAe,EAAEmC,4BAAuB,CAAC,MAAM;;qBAChD;;;0CAEEhC,UAAK;0CACLA,UAAK;kCACLW,WAAM;;QAqHT,4BAAC;KA9HD,IA8HC;;;QAvHC,oDAAwC;;QACxC,oDAAmD;;QACnD,4CAAqE;;QAErE,+CAAwB;;QACxB,6CAAsB;;;;;;IAqHxB,SAAgB,cAAc;QAC5B;;;;QAAO,UAAC,OAAwB;YAC9B,IAAI;;oBACI,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;aAC1C;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;aACxB;YACD,OAAO,IAAI,CAAC;SACb,EAAC;KACH;;;;IAED,SAAgB,eAAe;QAC7B;;;;QAAO,UAAC,OAAwB;;gBACxB,QAAQ,GAAG,OAAO;YACxB,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAA;aACZ;YACD,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;SACzB,EAAC;KACH;;;;IAED,iCAGC;;;QAFC,gCAAgB;;QAChB,kCAAa;;;AAGf,QAAa,WAAW,GAAyB;QAC/C,EAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAC,EAAE,EAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAC;QAC9D,EAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAC,EAAE,EAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAC;QACtE,EAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EAAE,EAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAC;KACxE;;;;;IAED,SAAgB,iBAAiB,CAAC,WAAmB;QACnD,OAAO,2BAA2B,qBAAE,WAAW,IAAiB,CAAC;KAClE;;;;;IAED,SAAgB,2BAA2B,CAAC,EAAe;QACzD,OAAO,WAAW,CAAC,IAAI;;;;QAAC,UAAC,GAAuB,IAAK,OAAA,GAAG,CAAC,EAAE,KAAK,EAAE,GAAA,EAAC,CAAC;KACrE;;;;;;AC1KD;QAAA;SA2DC;;;;;QA1DU,oCAAe;;;;QAAtB,UAAuB,KAA8B;YACjD,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;aACzD;;gBACG,wBAAwB,GAAG,KAAK;;gBAC9B,YAAY,GAAG,KAAK,CAAC,MAAM;;;;;YAAC,UAAC,YAAY,EAAE,IAAI;gBACjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;oBACjC,wBAAwB,GAAG,IAAI,CAAC;oBAChC,OAAO,YAAY,CAAC;iBACvB;gBAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;;;;gBAAC,UAAA,KAAK;oBAC3B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;wBAC7B,wBAAwB,GAAG,IAAI,CAAC;wBAChC,OAAO;qBACR;;wBAEK,IAAI,GAAG,KAAK,CAAC,gBAAgB;;wBAC7B,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;;wBAE3B,gBAAgB,GAAG,YAAY,CAAC,SAAS;;;;oBAAC,UAAA,WAAW,IAAI,OAAA,WAAW,CAAC,QAAQ,KAAK,GAAG,GAAA,EAAC;;wBACxF,OAAO,GAAY;wBACnB,QAAQ,EAAE,GAAG;wBACb,MAAM,EAAE,EAAE;qBACb;oBACD,IAAI,gBAAgB,GAAG,CAAC,CAAC,EAAE;wBACvB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;qBAC5C;;wBAEK,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS;;;;oBAC9C,UAAA,WAAW,IAAI,OAAA,WAAW,CAAC,gBAAgB,KAAK,IAAI,GAAA,EACvD;;wBACK,eAAe,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI;;wBAC3E,kBAAkB,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;oBACtE,IAAI,iBAAiB,GAAG,CAAC,CAAC,EAAE;wBACxB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG;4BAChC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,GAAG,eAAe;4BAChE,gBAAgB,EAAE,IAAI;4BACtB,cAAc,EACV,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,GAAG,kBAAkB;yBAC5E,CAAC;qBACL;yBAAM;wBACH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;4BAChB,KAAK,EAAE,eAAe;4BACtB,gBAAgB,EAAE,IAAI;4BACtB,cAAc,EAAE,kBAAkB;yBACrC,CAAC,CAAC;qBACN;oBACD,IAAI,gBAAgB,GAAG,CAAC,CAAC,EAAE;wBACvB,YAAY,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC;qBAC5C;yBAAM;wBACH,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBAC9B;iBACF,EAAC,CAAC;gBACH,OAAO,YAAY,CAAC;aACvB,GAAE,EAAE,CAAC;YACN,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,CAAC;SACtF;QACL,2BAAC;KAAA;;;;;;AC7DD;QASA;YAQI,6BAAwB,GAAG,KAAK,CAAC;SAiDpC;QA5CG,sBACI,8CAAU;;;;;YADd,UACe,KAA8B;gBACzC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;;oBACnB,OAAO,GAAG,oBAAoB,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC3D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;gBAClC,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;aACpE;;;WAAA;;;;;QAEM,oDAAmB;;;;QAA1B,UAA2B,KAAkB;YAC3C,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;gBACxB,OAAO,IAAI,CAAC;aACb;;gBAEK,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc;YAErD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,OAAO,UAAU,CAAC;aACnB;;gBAEK,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;;;;;YACrC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,GAAA,GACjD,CAAC,CACF;YAED,OAAO,UAAU,GAAG,QAAQ,CAAC;SAC9B;;;;;QAEM,8CAAa;;;;QAApB,UAAqB,GAAc;;gBAC3B,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAE7D,OAAU,GAAG,CAAC,KAAK,UAAK,aAAa,OAAI,CAAC;SAC3C;;;;QAEM,uCAAM;;;QAAb;;gBACQ,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;;;;;YAC3C,UAAC,GAAG,EAAE,IAAI;;oBACF,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;;;;;gBAAC,UAAC,GAAG,EAAE,KAAK,IAAK,OAAA,GAAG,GAAG,KAAK,CAAC,KAAK,GAAA,GAAE,CAAC,CAAC;gBAE5E,OAAO,GAAG,GAAG,WAAW,CAAC;aAC1B,GACD,CAAC,CAAC;YAEJ,OAAO,YAAY,KAAK,CAAC,CAAC;SAC3B;;oBAxDJd,cAAS,SAAC;wBACP,QAAQ,EAAE,oBAAoB;wBAC9B,+4KAA+C;;qBAElD;;;iCAMIG,UAAK;kCACLA,UAAK;iCAELA,UAAK;;QA4CV,6BAAC;KAzDD,IAyDC;;;QAnDG,uCAA+B;;QAC/B,8CAAwB;;QACxB,0DAAiC;;QAEjC,4CAAiC;;QACjC,6CAA8B;;;;;;;ACpBlC;QAGA;SAYC;;;;;;;;;;QAVG,6BAAS;;;;;;;;;QAAT,UACI,KAAU,EACV,QAAkB,EAClB,gBAAmC,EACnC,OAAuB,EACvB,aAA6B,EAC7B,aAA6B;YAF7B,wBAAA,EAAA,cAAuB;YACvB,8BAAA,EAAA,oBAA6B;YAC7B,8BAAA,EAAA,oBAA6B;YAE7B,OAAOiC,yBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;SACvG;;oBAXJC,SAAI,SAAC,EAAE,IAAI,EAAE,OAAO,EAAE;;QAYvB,gBAAC;KAZD,IAYC;;QAED;SAKC;;;;;QAHG,8CAAS;;;;QAAT,UAAU,KAAa;YACnB,OAAOC,6BAAsB,CAAC,KAAK,CAAC,CAAC;SACxC;;oBAJJD,SAAI,SAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE;;QAKxC,iCAAC;KALD;;;;;;ACjBA;QA6EE,2BAAoB,gBAAkC,EACN,YAAgC,EAChC,YAAgC;YAF5D,qBAAgB,GAAhB,gBAAgB,CAAkB;YAGpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAC/F,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;SAC3G;;oBA7DFhC,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZiC,iBAAW;4BACXtB,wBAAe;4BACfuB,0BAAiB;4BACjBC,2BAAkB;4BAClBvB,sBAAa;4BACbwB,uBAAc;4BACdC,wBAAe;4BACfC,iCAAwB;4BACxBC,wBAAe;4BACf7B,sBAAa;4BACbW,yBAAgB;4BAChBmB,yBAAmB;4BACnBC,qBAAa;4BACb,uBAAuB;4BACvBhC,kBAAY;4BACZgC,qBAAa;4BACbC,mBAAa;4BACbC,kBAAa;4BACbzC,sBAAe,CAAC,QAAQ,EAAE;yBAC3B;wBACD,YAAY,EAAE;4BACZ,4BAA4B;4BAC5B,cAAc;4BACd,yBAAyB;4BACzB,kBAAkB;4BAClB,qBAAqB;4BACrB,sBAAsB;4BACtB,SAAS;4BACT,0BAA0B;yBAC3B;wBACD,OAAO,EAAE;4BACP,4BAA4B;4BAC5B,cAAc;4BACd,yBAAyB;4BACzB,kBAAkB;4BAClB,qBAAqB;4BACrB,sBAAsB;yBACvB;wBACD,SAAS,EAAE;4BACT,YAAY;4BACZ,gBAAgB;4BAChB,oBAAoB;yBACrB;qBACF;;;;oBApEyBP,uBAAgB;oBAkBjCQ,eAAU,uBAqDJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;oBArDvCF,eAAU,uBAsDJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;QAYhD,wBAAC;KA9DD,IA8DC;;;;;;QAda,6CAA0C;;;;;;;AC7ExD;QAGA;SAaC;;;;;QAVC,yCAAkB;;;;QAAlB,UAAmB,SAAoB;YACrC,KAAK,IAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE;gBACpC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAYY,eAAS,EAAE;oBAChD,IAAI,CAAC,kBAAkB,oBAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAc,CAAC;iBAC/D;qBAAM;oBACL,oBAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAiB,aAAa,EAAE,CAAC;oBACzD,oBAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAiB,sBAAsB,EAAE,CAAC;iBACnE;aACF;SACF;;oBAZFC,eAAU;;QAaX,mBAAC;KAbD;;;;;;ACHA;QAEI,cAAmB,GAAW;YAAX,QAAG,GAAH,GAAG,CAAQ;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAClB;QAED,sBAAI,sBAAI;;;;YAAR;gBACI,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;aACzG;;;WAAA;QAED,sBAAI,sBAAI;;;;YAAR;;oBACU,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;gBAC/E,QAAQ,GAAG;oBACP,KAAK,KAAK;wBACN,OAAO,UAAU,CAAC;oBACtB,KAAK,KAAK;wBACN,OAAO,UAAU,CAAC;oBACtB;wBACI,OAAO,WAAW,CAAC;iBAC1B;aACJ;;;WAAA;QACL,WAAC;KAAA,IAAA;;;QAnBe,mBAAkB;;;;;;;;;;ICFlC,sBAGC;;;QAFG,2BAAiB;;QACjB,yBAAgB;;;;;IAGpB,oBAIC;;;QAHG,sBAAc;;QACd,0BAAkB;;QAClB,gCAA0B;;;AAG9B,QAAa,aAAa,GAAG,CAAC,CAAC;;;;;;ACX/B;QAEA;SAyEC;QAtEG,sBAAI,4BAAM;;;;YAAV;gBACK,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;;;;gBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,GAAA,EAAC,GAAG,KAAK,CAAC;aAC/H;;;WAAA;QAED,sBAAI,wCAAkB;;;;YAAtB;gBACI,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;oBACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;;;;oBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,aAAa,GAAA,EAAC;wBAC5E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC;aAC/C;;;WAAA;;;;;QAEM,iCAAwB;;;;QAA/B,UAAgC,WAAmB;YAC/C,OAAO,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAC1F;QAED,sBAAI,0CAAoB;;;;YAAxB;gBACI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;;wBAC7D,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK;;wBACjF,aAAW,GAAG,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE;;wBACjE,gBAAc,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAExE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;;;;oBAAC,UAAA,KAAK;;4BAC1B,YAAY,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,QAAQ,CAAC,wBAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;4BAC/F,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;;4BACtD,gBAAgB,GAAG,KAAK,CAAC,eAAe,GAAG,cAAc,GAAG,EAAE;;4BAC9D,QAAQ,GAAG,KAAG,gBAAgB,GAAG,gBAAc,GAAG,YAAY,SAAI,aAAW,SAAI,YAAc;wBACrG,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;qBACjD,EAAC,CAAC;iBACN;qBAAM;oBACH,OAAO,CAAC,eAAe,CAAC,CAAC;iBAC5B;aACJ;;;WAAA;QAED,sBAAI,kCAAY;;;;YAAhB;gBACI,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,OAAO,CAAC,eAAe,CAAC,CAAC;iBAC5B;gBAED,IAAI,IAAI,CAAC,MAAM,EAAE;oBACb,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnB;gBAED,OAAO,IAAI,CAAC,oBAAoB,CAAC;aACpC;;;WAAA;QAED,sBAAI,6CAAuB;;;;YAA3B;gBACI,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACxC;;;WAAA;;;;;QAEM,0BAAiB;;;;QAAxB,UAAyB,QAAgB;;gBACjC,cAAc,GAAG,GAAG;YACxB,QAAQ,QAAQ;gBACZ,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,IAAI,CAAC;oBAAC,MAAM;gBACzC,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,SAAS,CAAC;oBAAC,MAAM;gBAC9C,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,IAAI,CAAC;oBAAC,MAAM;gBACzC,KAAK,KAAK;oBAAE,cAAc,GAAG,IAAI,CAAC;oBAAC,MAAM;gBACzC,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAC7C,KAAK,KAAK;oBAAE,cAAc,GAAG,GAAG,CAAC;oBAAC,MAAM;gBACxC;oBAAS,cAAc,GAAG,GAAG,CAAC;oBAAC,MAAM;aACxC;YACD,OAAO,cAAc,CAAC;SACzB;QAEL,eAAC;KAAA,IAAA;;;QAxEG,2BAAiB;;;;;;;;ACFrB;;;QAAA;SAyBC;;;;;QAxBQ,8BAAgB;;;;QAAvB,UAAwB,KAAa;YACnC,OAAO,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO;;;;YAAE,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,EAAE,GAAA,EAAC;iBACrF,OAAO,CAAC,MAAM;;;;YAAE,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,EAAE,GAAA,EAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;SACvE;;;;;QAEM,8BAAgB;;;;QAAvB,UAAwB,KAAa;;;gBAE7B,UAAU,GAAG,4EAA4E;YAE/F,OAAO,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,mCAAmC;;;;;;YAAE,UAAU,KAAK,EAAE,KAAK,EAAE,KAAK;gBAC7F,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;oBACpD,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;qBAC/D,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;oBAC/E,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAC9C,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;iBAC5B;gBAED,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC5C,OAAO,KAAK,CAAC;iBACd;gBAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACxD,EAAC,GAAG,KAAK,CAAC;SACZ;QAAA,CAAC;QACJ,oBAAC;KAAA;;;;;;;QCnBK,WAAW,GAAG;QAChB,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;QACtF,SAAS;KACZ;;QAEK,aAAa,GAAG,SAAS;AAE/B;QAA6BpB,2BAAQ;QAmCjC,iBAAY,IAAU;YAAtB,YACE,iBAAO,SA0BR;YA3CD,YAAM,GAAY,EAAE,CAAC;YAkBnB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACpC,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACpC,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1C,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC9C,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1C,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC9C,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClC,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;gBACxC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG;;;;gBAAC,UAAA,GAAG,IAAI,OAAA,IAAI,IAAI,CAAC,GAAG,CAAC,GAAA,EAAC,GAAG,IAAI,CAAC;aACvF;;SACF;;;;;QAtCM,eAAO;;;;QAAd,UAAe,IAAS;;gBAChB,UAAU,GAAG,EAAE;YACrB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,KAAK,IAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;;wBACtB,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC;oBAClD,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;iBAChC;aACF;YACD,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;SAChC;QA6BD,sBAAI,8BAAS;;;;YAAb;gBACI,OAAO,IAAI,CAAC,OAAO,GAAG,WAAQ,IAAI,CAAC,OAAO,qCAAiC,GAAG,IAAI,CAAC;aACtF;;;WAAA;QAED,sBAAI,8BAAS;;;;YAAb;;gBAEI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACZ,OAAO,aAAa,CAAC;iBACxB;;oBAEG,OAAO,GAAG,CAAC;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBACzC;;oBAEK,KAAK,GAAG,OAAO,GAAG,WAAW,CAAC,MAAM;gBAC1C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;aAC7B;;;WAAA;;;;QAED,qCAAmB;;;QAAnB;;gBACQ,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE;YAC9C,OAAO,aAAa,CAAC,GAAG;;;;YAAC,UAAA,WAAW,IAAI,OAAA,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAA,EAAC,CAAC;SACvH;QACL,cAAC;KAtFD,CAA6B,QAAQ,GAsFpC;;;QArFG,4BAAkB;;QAClB,4BAAkB;;QAClB,8BAAoB;;QACpB,uBAAa;;QACb,8BAAoB;;QACpB,0BAAgB;;QAChB,0BAAgB;;QAChB,2BAAiB;;QACjB,iCAAyB;;QACzB,gCAAwB;;QACxB,gCAAwB;;QACxB,mCAA2B;;QAC3B,uBAAY;;QACZ,iCAAuB;;QACvB,2BAAiB;;QACjB,mCAAyB;;QACzB,4BAAkB;;QAClB,6BAAoB;;QACpB,yBAAqB;;QACrB,wBAAc;;QACd,+BAA2B;;QAC3B,qCAAgD;;AAkEpD;QAAuCA,qCAAO;QAiB5C,2BAAY,IAAU;YAAtB,YACE,kBAAM,IAAI,CAAC,SAKZ;YAJC,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClC,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC;;SAC9D;;;;;QAjBM,yBAAO;;;;QAAd,UAAe,IAAS;;gBAChB,UAAU,GAAG,EAAE;YACrB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,KAAK,IAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;;wBACtB,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC;oBAClD,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;iBAChC;aACF;YACD,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;SAC1C;QAQH,wBAAC;KAxBD,CAAuC,OAAO,GAwB7C;;;QAvBC,qCAAiB;;QACjB,uCAAmB;;QACnB,0CAAsB;;QACtB,gDAA6B;;;;;IAsB/B,0CAGC;;;QAFC,mDAAsB;;QACtB,oDAAsB;;;;;;;AClIxB;QAMA;YAUW,wBAAmB,GAAG,KAAK,CAAC;YAC5B,WAAM,GAAG,IAAI,CAAC;YACd,gBAAW,GAAG,IAAI,CAAC;YACnB,oBAAe,GAAG,KAAK,CAAC;YACxB,kBAAa,GAAG,KAAK,CAAC;YACrB,yBAAoB,GAAG,IAAIQ,iBAAY,EAAE,CAAC;YAC1C,mBAAc,GAAG,IAAIA,iBAAY,EAAE,CAAC;SAwB/C;;;;QAtBC,sDAAsB;;;QAAtB;YACE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;SAClC;;;;QACD,gDAAgB;;;QAAhB;YACE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC5B;;;;;;QAED,0CAAU;;;;;QAAV,UAAW,OAAgB,EAAE,KAAY;YACvC,OAAO;gBACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE;oBACN;wBACE,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,SAAS,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,GAAG,SAAS;qBACvE;iBACF;aACF,CAAC;SACH;QAED,sBAAI,+CAAY;;;;YAAhB;gBACE,OAAO,IAAI,CAAC,QAAQ,GAAG,mBAAmB,GAAG,SAAS,CAAC;aACxD;;;WAAA;;oBAvCFZ,cAAS,SAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,4qHAA2C;;qBAE5C;;;8BAEEG,UAAK;4BACLA,UAAK;+BACLA,UAAK;oCACLA,UAAK;0CACLA,UAAK;6BACLA,UAAK;kCACLA,UAAK;sCACLA,UAAK;oCACLA,UAAK;2CACLW,WAAM;qCACNA,WAAM;;QAwBT,4BAAC;KAxCD,IAwCC;;;QAlCC,wCAA0B;;QAC1B,sCAAsB;;QACtB,yCAAwB;;QACxB,8CAAsC;;QACtC,oDAAqC;;QACrC,uCAAuB;;QACvB,4CAA4B;;QAC5B,gDAAiC;;QACjC,8CAA+B;;QAC/B,qDAAoD;;QACpD,+CAA8C;;;;;;;ACtBhD;QAGA;SAYC;;oBAZAd,cAAS,SAAC;wBACT,QAAQ,EAAE,UAAU;wBACpB,QAAQ,EAAE,mOAID;;qBAEV;;;4BAGEG,UAAK;;QACR,uBAAC;KAZD,IAYC;;;QADC,iCAAuB;;;;;;;ACdzB;QAKA;SASC;;oBATAE,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZY,sBAAa;yBACd;wBACD,YAAY,EAAE,CAAC,gBAAgB,CAAC;wBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;qBAC5B;;QAED,oBAAC;KATD;;;;;;ACLA;QAGA;YAeE,aAAQ,GAAa,EAAE,CAAC;SAiBzB;;;;;QAfC,mCAAS;;;;QAAT,UAAU,KAAa;YACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3B;SACF;;;;;QAED,mCAAS;;;;QAAT,UAAU,KAAa;YACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1C;;;;;QAED,iCAAO;;;;QAAP,UAAQ,KAAa;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;SAC5E;;oBA/BFlB,cAAS,SAAC;wBACT,QAAQ,EAAE,SAAS;wBACnB,QAAQ,EAAE,wWAOD;;qBAEV;;;2BAGEG,UAAK;;QAkBR,sBAAC;KAhCD,IAgCC;;;QAlBC,+BAAqB;;QACrB,mCAAwB;;;;;;;AClB1B;QAMA;SAK4B;;oBAL3BE,aAAQ,SAAC;wBACN,OAAO,EAAE,CAACC,mBAAY,EAAEY,sBAAa,EAAEgC,sBAAgB,CAAC;wBACxD,YAAY,EAAE,CAAC,eAAe,CAAC;wBAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;qBAC7B;;QAC0B,mBAAC;KAL5B;;;;;;ACNA;QAEA;SA0BC;QARC,sBAAI,qDAAiB;;;;YAArB;;oBACQ,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;gBAC9E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;;wBAC5E,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;oBAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC/E;gBACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;aACrB;;;WAAA;;oBAzBFlD,cAAS,SAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,QAAQ,EAAE,uZAQP;;qBAEJ;;;kCAGEG,UAAK;uCACLA,UAAK;;QAUR,6BAAC;KA1BD,IA0BC;;;QAXC,6CAA6B;;QAC7B,kDAAoC;;;;;;;AClBtC;QAMA;SAKmC;;oBALlCE,aAAQ,SAAC;wBACN,OAAO,EAAE,CAACC,mBAAY,EAAEY,sBAAa,EAAEgC,sBAAgB,CAAC;wBACxD,YAAY,EAAE,CAAC,sBAAsB,CAAC;wBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;qBACpC;;QACiC,0BAAC;KALnC;;;;;;ACNA;QAEA;SAeC;;oBAfAlD,cAAS,SAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,QAAQ,EAAE,oUAOP;;qBAEJ;;;mCAGEG,UAAK;;QACR,kCAAC;KAfD,IAeC;;;QADC,mDAAiC;;;;;;;AChBnC;QAKA;SAKkC;;oBALjCE,aAAQ,SAAC;wBACN,OAAO,EAAE,CAACC,mBAAY,EAAEqB,yBAAgB,CAAC;wBACzC,YAAY,EAAE,CAAC,2BAA2B,CAAC;wBAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;qBACzC;;QACgC,yBAAC;KALlC;;;;;;ACLA;QAcA;SAsBC;;oBAtBAtB,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZ6C,kBAAY;4BACZC,0BAAoB;4BACpBrC,kBAAY;4BACZ,eAAe;4BACf,aAAa;4BACb,YAAY;4BACZ,mBAAmB;4BACnB,uBAAuB;4BACvBmC,sBAAgB;4BAChBN,wCAAwB;4BACxBS,yBAAmB;4BACnB,kBAAkB;yBACnB;wBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;wBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;wBACrC,SAAS,EAAE,EAAE;wBACb,eAAe,EAAE,EAAE;qBACpB;;QAED,kBAAC;KAtBD;;;;;;ACdA;QAEA;SA2DC;;oBA3DArD,cAAS,SAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,QAAQ,EAAE,ktEAoDT;;qBAEF;;QAGD,8BAAC;KA3DD;;;;;;ACFA;QAEA;SAoBC;;oBApBAA,cAAS,SAAC;wBACT,QAAQ,EAAE,cAAc;wBACxB,QAAQ,EAAE,yfAaT;;qBAEF;;QAGD,2BAAC;KApBD;;;;;;ACFA;QAEA;YAuDW,aAAQ,GAAG,CAAC,CAAC;YACtB,UAAK,GAAa,EAAE,CAAC;SAOtB;;;;QALC,2CAAQ;;;QAAR;YACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpB;SACF;;oBA9DFA,cAAS,SAAC;wBACT,QAAQ,EAAE,mBAAmB;wBAC7B,QAAQ,EAAE,sKAMT;iCACQ,gqBAyCR;qBACF;;;+BAIEG,UAAK;;QAQR,+BAAC;KA/DD,IA+DC;;;QARC,4CAAsB;;QACtB,yCAAqB;;;;;;;AC1DvB;QAEA;SAkCC;;oBAlCAH,cAAS,SAAC;wBACT,QAAQ,EAAE,oBAAoB;wBAC9B,QAAQ,EAAE,wMAMT;iCACQ,keAqBR;qBACF;;QAGD,gCAAC;KAlCD;;;;;;ACFA;QAEA;YAqBW,eAAU,GAAG,IAAI,CAAC;YAClB,YAAO,GAAG,CAAC,CAAC;YACZ,cAAS,GAAG,MAAM,CAAC;;YACnB,gBAAW,GAAG,MAAM,CAAC;;YAE9B,SAAI,GAAa,EAAE,CAAC;SAkBrB;;;;QAfC,uCAAQ;;;QAAR;YACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnB;;;;YAMD,IAAI,CAAC,iBAAiB,GAAG;gBACvB,QAAQ,EAAE,KAAG,IAAI,CAAC,SAAW;gBAC7B,SAAS,EAAE,OAAK,IAAI,CAAC,WAAa;aACnC,CAAA;SAEF;;oBA3CFA,cAAS,SAAC;wBACT,QAAQ,EAAE,cAAc;wBACxB,QAAQ,EAAE,gZAST;iCACQ,yLAIR;qBACF;;;iCAIEG,UAAK;8BACLA,UAAK;gCACLA,UAAK;kCACLA,UAAK;;QAoBR,2BAAC;KA5CD,IA4CC;;;QAvBC,0CAA2B;;QAC3B,uCAAqB;;QACrB,yCAA4B;;QAC5B,2CAA8B;;QAE9B,oCAAoB;;QACpB,iDAAuB;;;;;;;AC7BzB;QAgBA;SAK8B;;oBAL7BE,aAAQ,SAAC;wBACR,OAAO,EAAE,CAACC,mBAAY,EAAEU,sBAAa,EAAEE,sBAAa,EAAEwB,uBAAc,EAAEG,wBAAe,EAAEJ,2BAAkB,EAAED,0BAAiB,CAAC;wBAC7H,YAAY,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,oBAAoB,CAAC;wBACxI,OAAO,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,oBAAoB,CAAC;qBACpI;;QAC4B,qBAAC;KAL9B;;;;;;AChBA;QAyCE,8BAAoB,cAA8B,EAAU,GAAsB;YAA9D,mBAAc,GAAd,cAAc,CAAgB;YAAU,QAAG,GAAH,GAAG,CAAmB;YAtBzE,gBAAW,GAAG,IAAI,CAAC;YAG5B,yBAAoB,GAAY,IAAI,CAAC;YAMrC,8BAAyB,GAAY,IAAI,CAAC;YAOhC,kBAAa,GAAG,IAAI5B,iBAAY,EAAU,CAAC;YAErD,sBAAiB,GAA+B,IAAI,GAAG,EAAE,CAAC;YAClD,wBAAmB,GAAyB,IAAI,GAAG,EAAE,CAAC;YACtD,kBAAa,GAAmB,EAAE,CAAC;SAE2C;QA3BtF,sBACI,wCAAM;;;;;YADV,UACW,MAAe;gBACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;;;WAAA;QAKD,sBACI,qDAAmB;;;;;YADvB,UACwB,KAAc;gBACpC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;;;WAAA;QAED,sBACI,0DAAwB;;;;;YAD5B,UAC6B,KAAc;gBACzC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;;;WAAA;;;;QAUD,uCAAQ;;;QAAR;YACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;;;;QAED,oDAAqB;;;QAArB;YAAA,iBAsBC;YArBC,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;;oBAC3B,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG;;;;gBAAC,UAAA,CAAC;oBACnC,KAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC5C,KAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC/C,OAAO,CAAC,CAAC,SAAS,CAAC;iBACpB,EAAC;gBACF,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,SAAS;;;;gBAAC,UAAA,OAAO;oBACtF,KAAI,CAAC,OAAO,CAAC,OAAO;;;;oBAAC,UAAA,KAAK;;4BAClB,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;wBAC7C,IAAI,CAAC,YAAY,EAAE;4BACjB,OAAO;yBACR;;4BACK,aAAa,GAAG0C,oDAA4C,CAAC,KAAK,EAAE,YAAY,CAAC;wBACvF,KAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;wBACzD,KAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;qBACnD,EAAC,CAAC;oBACH,KAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;iBAC1B,EAAC,CACH,CAAA;aACF;SACF;;;;;QAED,sCAAO;;;;QAAP,UAAQ,OAAe;YACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC;;;;;QAEM,gDAAiB;;;;QAAxB,UAAyB,MAAW;YAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC9B,OAAO,KAAK,CAAC;aACd;YACD,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;SACrE;;;;;QAED,gDAAiB;;;;QAAjB,UAAkB,KAAY;;gBACtB,KAAK,GAAQ,KAAK,CAAC,KAAK;YAC9B,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;gBAC1C,OAAO,KAAK,CAAC;aACd;YACD,OAAO;gBACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE;oBACN;wBACE,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,SAAS,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,GAAG,SAAS;qBACvE;iBACF;aACF,CAAC;SACH;;;;QAED,qCAAM;;;QAAN;YACE,OAAOC,sBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAIA,sBAAiB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;SAC1G;;;;QAED,qDAAsB;;;QAAtB;YACE,OAAO,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,oBAAoB,CAAC;SACpE;;;;;QAED,oDAAqB;;;;QAArB,UAAsB,KAAY;YAEhC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;;oBAC3B,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;gBACzD,OAAO,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;aAC9B;YACD,OAAO,IAAI,CAAC;SACb;;;;QAED,0CAAW;;;QAAX;YACE,IAAI,CAAC,aAAa,CAAC,OAAO;;;;YAAC,UAAA,YAAY,IAAI,OAAA,YAAY,CAAC,WAAW,EAAE,GAAA,EAAC,CAAC;SACxE;;oBAjHFvD,cAAS,SAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,s0CAA0C;;qBAE3C;;;;oBANQwD,sBAAc;oBAL6CC,sBAAiB;;;6BAclFtD,UAAK,SAAC,QAAQ;kCAKdA,UAAK;gCACLA,UAAK;0CAGLA,UAAK,SAAC,qBAAqB;+CAM3BA,UAAK,SAAC,0BAA0B;oCAMhCW,WAAM;;QAsFT,2BAAC;KAlHD,IAkHC;;;QA5GC,uCAAiB;;QAMjB,2CAA4B;;QAC5B,yCAA2B;;QAE3B,oDAAqC;;QAMrC,yDAA0C;;QAO1C,6CAAqD;;QAErD,iDAA0D;;;;;QAC1D,mDAA8D;;;;;QAC9D,6CAA2C;;;;;QAE/B,8CAAsC;;;;;QAAE,mCAA8B;;;;;;;ACzCpF;QAOA;SAaC;;oBAbAT,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPqD,qBAAa;4BACbpD,mBAAY;4BACZY,sBAAa;4BACb+B,sBAAa;4BACbU,yBAAgB;4BAChB,eAAe;yBAChB;wBACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;wBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;qBAChC;;QAED,wBAAC;KAbD;;;;;;ICPA;;;IAEA,4CAEC;;;;;;;;;;QADC,0GAAmH;;;AAGrH,QAAa,oBAAoB,GAAkD,IAAIC,mBAAc,CAEjG,iBAAiB,CAAC;AAEtB;QAEE,wBAAkD,UAAyC;YAAzC,eAAU,GAAV,UAAU,CAA+B;SAAI;;;;;;;;;QAE/F,8BAAK;;;;;;;;QAAL,UAAM,QAAgB,EAAE,MAAc,EAAE,KAAa,EAAE,KAAc,EAAE,UAAoC;YACzG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;SACnE;;oBANFpC,eAAU;;;;oDAEIb,WAAM,SAAC,oBAAoB;;QAK1C,qBAAC;KAPD,IAOC;;;;;;QALa,oCAA+E;;AAO7F;QAAA;SAGoC;;oBAHnCN,aAAQ,SAAC;wBACR,SAAS,EAAE,CAAC,cAAc,CAAC;qBAC5B;;QACkC,2BAAC;KAHpC;;;;;;;ACNA,QAAa,sBAAsB,GAAG,eAAe;;;;IAErD,iCAIC;;;QAHC,gCAAW;;QACX,kCAAa;;QACb,wCAAqB;;AAGvB;QA8BE,6BACwC,UAAyC,EACvE,aAA4B,EAC5B,gBAAkC;YAFJ,eAAU,GAAV,UAAU,CAA+B;YACvE,kBAAa,GAAb,aAAa,CAAe;YAC5B,qBAAgB,GAAhB,gBAAgB,CAAkB;YAnBnC,kBAAa,GAAG,KAAK,CAAC;YACrB,qBAAgB,GAAG,IAAIO,iBAAY,EAAsB,CAAC;YAC1D,sBAAiB,GAAG,IAAIA,iBAAY,EAAU,CAAC;YAC/C,uBAAkB,GAAG,IAAIA,iBAAY,EAAsB,CAAC;YAE9D,iBAAY,GAA0C,IAAIjB,oBAAe,CAAuB,EAAE,CAAC,CAAC;YACpG,kBAAa,GACnB,IAAIA,oBAAe,CAAwB,IAAI,GAAG,EAAuB,CAAC,CAAC;YACrE,iBAAY,GAA4B,IAAIA,oBAAe,CAAS,EAAE,CAAC,CAAC;YACxE,wBAAmB,GAA4B,IAAIA,oBAAe,CAAS,EAAE,CAAC,CAAC;YAYrF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACzD;QArCD,sBACI,2CAAU;;;;;YADd,UACe,KAA2B;gBACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;aACrC;;;WAAA;QACD,sBACI,6DAA4B;;;;;YADhC,UACiC,KAA4B;gBAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,EAAuB,CAAC,CAAC;aAClE;;;WAAA;;;;QAgCD,sCAAQ;;;QAAR;YAAA,iBAkFC;;gBAjFO,uBAAuB,GAAG,cAAc,CAAC,GAAG;;;;YAAC,UAAC,QAAQ;gBAC1D,OAAO,IAAIkE,yBAAmB,CAAC;oBAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,EAAE,EAAE,QAAQ,CAAC,UAAU;oBACvB,KAAK,EAAE,KAAK;oBACZ,SAAS;;;;oBAAE,UAAC,IAA+B;;4BACrC,aAAa,GAAa,EAAE;wBAChC,IAAI,IAAI,CAAC,aAAa,EAAE;4BACtB,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG;;;;4BAAC,UAAC,GAAG;gCACzC,OAAOC,8BAAU,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;6BACtC,EAAC,CAAC;yBACJ;wBACD,OAAO,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;qBACxD,CAAA;iBACJ,CAAC,CAAC;aACJ,EAAC;;gBAEI,wBAAwB,GAAG,IAAIC,mBAAa,CAAC;gBACjD,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,uBAAuB;aAChC,CAAC;YAEF,IAAI,CAAC,iBAAiB,GAAG,IAAIC,aAAO,CAAC,sBAAsB,EAAE;gBAC3D,wBAAwB;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CACpCnE,aAAG;;;;YAAC,UAAA,UAAU;;oBACN,iBAAiB,GAAG,IAAIoE,uBAAiB,CAAC;oBAC9C,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,IAAI;oBACX,EAAE,EAAE,aAAa;oBACjB,OAAO,EAAE,UAAU;iBACpB,CAAC;;oBAEI,OAAO,GAAG,IAAID,aAAO,CAAC,sBAAsB,EAAE;oBAClD,IAAID,mBAAa,CAAC;wBAChB,KAAK,EAAE,YAAY;wBACnB,IAAI,EAAE,IAAI;wBACV,MAAM,EAAE,CAAC,iBAAiB,CAAC;qBAC5B,CAAC;oBACF,wBAAwB;iBACzB,CAAC;gBAEF,OAAO,OAAO,CAAC;aAChB,EAAC,CACH,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEtD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,IAAI,CACjEG,sBAAY,CAAC,GAAG,CAAC,EACjBC,8BAAoB,EAAE,CAAC,CAAC,SAAS;;;;YACjC,UAAA,UAAU,IAAI,OAAA,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,EAAE,EAAC,YAAY,EAAE,UAAU,EAAC,CAAC,GAAA,EAChG,CAAC;;gBAEI,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAC/EC,mBAAS,CAAC,EAAE,CAAC,EACbvE,aAAG;;;YAAC;gBACF,OAAO,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM;;;;gBAAC,UAAC,IAAyB,IAAK,OAAA,IAAI,CAAC,KAAK,GAAA,EAAC,CAAC;aACxF,EAAC,CACH;YAED,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAC5CwE,gBAAM;;;;YAAC,UAAA,kBAAkB,IAAI,OAAA,CAAC,CAAC,kBAAkB,GAAA,EAAC,EAClDC,cAAI,CAAC,CAAC,CAAC,EACPzE,aAAG;;;;YAAC,UAAA,kBAAkB,IAAI,OAAA,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAA,EAAC,CACzD,CAAC;YAEF,IAAI,CAAC,cAAc,GAAGD,kBAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAC5HC,aAAG;;;;YAAC,UAAC,EAA8D;oBAA9D,kBAA8D,EAA7D,gBAAQ,EAAE,kBAAU,EAAE,0BAAkB,EAAE,0BAAkB;;oBAC5D,UAAU,GAAgB,EAAE;gBAChC,IAAI,QAAQ,CAAC,IAAI,EAAE;oBACjB,UAAU,IAAI,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrH;gBACD,UAAU,GAAG,UAAU,GAAG,KAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gBAE/E,OAAO,UAAU,GAAG,UAAU,CAAC,MAAM;;;;gBAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAA,EAAC,GAAG,UAAU,CAAC;aAC9H,EAAC,CACH,CAAC;SACH;;;;QAED,yCAAW;;;QAAX;YACE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;SAC3C;;;;;QAEM,iDAAmB;;;;QAA1B,UAA2B,IAAY;YACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B;;;;;QAEM,iDAAmB;;;;QAA1B,UAA2B,WAA6B;YACtD,IAAI,EAAE,WAAW,YAAYoE,uBAAiB,CAAC,EAAE;gBAC/C,OAAO;aACR;YAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,oBAAC,WAAW,CAAC,KAAK,GAAuB,CAAC;;gBAE9D,kCAAkC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAClG,IAAI,EAAE,kCAAkC,IAAI,kCAAkC,CAAC,MAAM,CAAC,EAAE;gBACtF,IAAI,CAAC,kBAAkB,CAAC,IAAI,oBAAC,WAAW,CAAC,KAAK,GAAuB,CAAC;aACvE;SACJ;;;;;QAEQ,8CAAgB;;;;QAAvB,UAAwB,IAAe;YACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtC;;oBAzJFjE,cAAS,SAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,keAA0C;;qBAE3C;;;;oDA2BIW,WAAM,SAAC,oBAAoB;oBAhDyC4D,mBAAa;oBAK7EtE,uBAAgB;;;iCAkBtBE,UAAK;mDAILA,UAAK;oCAILA,UAAK;uCACLW,WAAM;wCACNA,WAAM;yCACNA,WAAM;;QA0IT,0BAAC;KA3JD,IA2JC;;;QA7IC,4CAA+B;;QAC/B,+CAAoE;;QACpE,gDAAyD;;QACzD,iDAAsE;;;;;QAEtE,2CAA4G;;;;;QAC5G,4CAC6E;;;;;QAC7E,2CAAgF;;;;;QAChF,kDAAuF;;;;;QACvF,gDAAmC;;QACnC,uCAA8B;;QAC9B,6CAAwC;;QACxC,qDAAqC;;QACrC,6CAAoC;;;;;QAGlC,yCAA+E;;;;;QAC/E,4CAAoC;;;;;QACpC,+CAA0C;;;;;;;ACtD9C;QAqCE,qBAAoB,gBAAkC,EACN,YAAgC,EAChC,YAAgC;YAF5D,qBAAgB,GAAhB,gBAAgB,CAAkB;YAGpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAC/F,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;SAC3G;;oBAtBFT,aAAQ,SAAC;wBACR,OAAO,EAAE,CAACC,mBAAY,EAAEkE,iBAAW,EAAExD,sBAAa,EAAEE,sBAAa,EAAEwB,uBAAc,EAAEH,iBAAW,EAAEO,yBAAmB;4BACjHD,wBAAe,EAAEJ,2BAAkB,EAAED,0BAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc;4BACvH,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAEhC,sBAAe,CAAC,QAAQ,EAAE,CAAC;wBACvF,YAAY,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;wBACnD,SAAS,EAAE,CAAC,YAAY,EAAE+D,mBAAa,CAAC;wBACxC,OAAO,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,CAAC;qBACnG;;;;oBAZyBtE,uBAAgB;oBACjCQ,eAAU,uBAcJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;oBAdvCF,eAAU,uBAeJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;QAYhD,kBAAC;KAvBD,IAuBC;;;;;;QAda,uCAA0C;;;;;;;;;;ICrCxD,0BAGC;;;QAFG,2BAAa;;QACb,iCAAmB;;;AAGvB,QAAa,cAAc,GAAkB;QACzC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;QAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE;QACxC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;QAChD,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;QAClC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE;QAC1C,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE;QAClD,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,wBAAwB,EAAE;KACzE;;AAED,QAAa,gBAAgB,GAAG,cAAc,CAAC,MAAM;;;;;IAAC,UAAC,QAAQ,EAAE,OAAO;QACpE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QACvC,OAAO,QAAQ,CAAC;KACnB,GAAE,EAAE,CAAC;;AAEN,QAAa,sBAAsB,GAAG,cAAc,CAAC,MAAM;;;;;IAAC,UAAC,QAAQ,EAAE,OAAO;QAC1E,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACjC,OAAO,QAAQ,CAAC;KACnB,GAAE,EAAE,CAAC;;;;;;ACvBN;QAMA;YASa,iBAAY,GAAG,IAAI,CAAC;YACnB,aAAQ,GAAG,IAAIC,iBAAY,EAAE,CAAC;SA+B3C;;;;QA7BG,0DAAkB;;;QAAlB;YACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACtC;QAED,sBAAI,kDAAO;;;;YAAX;gBACI,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc;oBAC1D,IAAI,CAAC,WAAW,CAAC,cAAc;oBAC3B,mGAAmG,CAAC;aAC3G;;;WAAA;QAED,sBAAI,+CAAI;;;;YAAR;gBACI,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa;oBACzD,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,EAAE,CAAC;aACvC;;;WAAA;QAED,sBAAI,gDAAK;;;;YAAT;gBACI,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ;oBACpD,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC;aAClC;;;WAAA;QAED,sBAAI,gDAAK;;;;YAAT;gBACI,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK;oBACjD,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;aAC/B;;;WAAA;QAED,sBAAI,uDAAY;;;;YAAhB;gBACI,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK;oBAC1E,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;aAC9D;;;WAAA;;oBAxCJZ,cAAS,SAAC;wBACP,QAAQ,EAAE,wBAAwB;wBAClC,oiCAAmD;;qBAEtD;;;kCAEIG,UAAK;qCACLA,UAAK;gCACLA,UAAK;mCACLA,UAAK;+BACLW,WAAM;;QA+BX,oCAAC;KAzCD,IAyCC;;;QAnCG,oDAAkC;;QAClC,uDAAiC;;QACjC,kDAA2B;;QAC3B,qDAA6B;;QAC7B,iDAAwC;;;;;;;AChB5C;QASA;SAmBC;;oBAnBAT,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZW,wBAAe;4BACfC,sBAAa;4BACbH,kBAAY;4BACZ,eAAe;yBAChB;wBACD,YAAY,EAAE;4BACZ,6BAA6B;yBAC9B;wBACD,OAAO,EAAE;4BACP,6BAA6B;yBAC9B;wBACD,eAAe,EAAE;4BACf,6BAA6B;yBAC9B;qBACF;;QAED,iCAAC;KAnBD;;;;;;;QCN6BX,2BAAQ;QAArC;;SA8CC;;;;;;QA5BQ,eAAO;;;;;;QAAd,UAAe,IAAS;;gBAChB,UAAU,GAAG,IAAI,OAAO,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE;gBACvC,IAAI,CAAC,OAAO,GAAG;oBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,CAAC;4BACP,KAAK,EAAE,IAAI,CAAC,aAAa,GAAG,GAAG;4BAC/B,SAAS,EAAE,IAAI,CAAC,gBAAgB;4BAChC,eAAe,EAAE,KAAK;yBACvB,CAAC;iBACH,CAAC;aACH;YACD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;gBACpB,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC;aAC9B;YACD,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACjD;YACD,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACjD;YACD,OAAO,UAAU,CAAC;SACnB;QAED,sBAAI,kCAAa;;;;YAAjB;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;WAAA;QACH,cAAC;KA9CD,CAA6B,QAAQ,GA8CpC;;;QA7CC,8BAAoB;;QACpB,6BAAmB;;QACnB,4BAAkB;;QAClB,uBAAa;;QACb,uBAAa;;QACb,yBAAe;;QACf,0BAAgB;;QAChB,mCAAyB;;QACzB,0BAAgB;;QAChB,2BAAmB;;QACnB,6BAAuB;;QACvB,+CAAsC;;QACtC,uCAA8B;;QAC9B,8BAAkB;;QAClB,8BAAkB;;QAClB,+BAAuB;;;;;;;;;;;;IChBzB,SAAgB,sBAAsB,CAAC,QAA6B,EAAE,KAAe;QACnF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,OAAO,QAAQ,IAAI,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO,EAAE,CAAC;SACX;;YAEK,OAAO,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM;;;;;QAAC,UAAC,CAAC,EAAE,IAAI;YAC9C,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC;SACV,GAAE,IAAI,GAAG,EAA6B,CAAC;;YAElC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC;;YACtD,eAAe,GAAG,wCAAwC,CAAC,KAAK,EAAE,cAAc,CAAC;;YAEjF,WAAW,sBAAG,eAAe,CAAC,MAAM;;;;;QAAC,UAAC,KAAK,EAAE,EAAE;YACnD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,KAAK,CAAC;SACd,GAAE,EAAE,CAAC,EAAuB;QAE7B,OAAO,WAAW,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;KACnD;;;;;;;IAED,SAAS,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG;QAC5C,OAAO,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;KAC1C;;;;;;IAED,SAAgB,wCAAwC,CAAC,YAAsB,EAAE,OAAiB;QAChG,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3C,OAAO,EAAE,CAAA;SACV;QACD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,OAAO,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;SAC/C;QACD,OAAO,YAAY;aAChB,MAAM;;;;QAAC,UAAA,IAAI,IAAI,OAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAA,EAAC;aAC1C,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC,sBAAsB,CAAC,CAAC;KACnC;;;;;IAED,SAAgB,uBAAuB,CAAC,KAAU;QAChD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;KAC/C;;;;;;;QCkCC;YAlES,qBAAgB,GAAG,IAAI,CAAC;YACxB,gBAAW,GAAG,IAAI,CAAC;YACnB,gBAAW,GAAG,YAAY,CAAC;YAE1B,aAAQ,GAAG,IAAIQ,iBAAY,EAAE,CAAC;YAExC,yBAAoB,GAA+B,IAAIjB,oBAAe,CAAY,EAAE,CAAC,CAAC;YACtF,cAAS,GAA+B,IAAIA,oBAAe,CAAY,EAAE,CAAC,CAAC;YAC3E,YAAO,GAA6B,IAAIA,oBAAe,CAAU,EAAE,CAAC,CAAC;YACrE,SAAI,GAA2B,IAAI8E,kBAAa,CAAU,CAAC,CAAC,CAAC;YAC7D,uBAAkB,GAA0B,IAAIA,kBAAa,CAAS,CAAC,CAAC,CAAC;YAyDvE,IAAI,CAAC,kBAAkB,GAAG7E,kBAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO;;;;;YAAE,UAAC,QAAmB,EAAE,MAAe;gBACzG,0BAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,GAAwB;aAC9E,EAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,GAAGA,kBAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI;;;;;YAAE,UAAC,QAA6B,EAAE,GAAY;gBACrH,OAAO,sBAAsB,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;aAC3E,EAAC,CAAC;;gBAEG,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC5D8E,mBAAS;;;;YAAC,UAAA,KAAK,IAAI,OAAA,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,GAAA,EAAC,EAChDC,qBAAW,CAAC,CAAC,CAAC,CACf;;;gBAGK,oBAAoB,GAAG,yBAAyB,CAAC,IAAI,CACzD9E,aAAG;;;;YAAC,UAAC,CAAM,IAAK,OAAA,CAAC,GAAA,EAAC,EAClByE,cAAI,CAAC,CAAC,CAAC,CACR;;gBAEK,eAAe,GAAGM,UAAe,CAAC,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC;YAEtF,IAAI,CAAC,aAAa,GAAGhF,kBAAa,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC9EC,aAAG;;;;YAAC,UAAC,EAAc;oBAAd,kBAAc,EAAb,aAAK,EAAE,aAAK;gBAChB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;aACrB,EAAC,CACH,CAAC;YAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CACvC6E,mBAAS;;;;YAAC,UAAA,QAAQ,IAAI,OAAA,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAA,EAAC,EACzD7E,aAAG;;;;YAAC,UAAA,QAAQ;gBACV,OAAO,yBAAyB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aAC7D,EAAC,CACH,CAAC;YAEF,IAAI,CAAC,0BAA0B,GAAG,yBAAyB,CAAC,IAAI,CAC9DA,aAAG;;;;YAAC,UAAA,KAAK;gBACP,OAAO,yBAAyB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;aACtE,EAAC,CACH,CAAC;YAEF,IAAI,CAAC,eAAe,GAAGD,kBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAC3EC,aAAG;;;;YAAC,UAAC,EAAY;oBAAZ,kBAAY,EAAX,WAAG,EAAE,aAAK;gBACd,OAAO,yBAAyB,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAChE,EAAC,CACH,CAAC;SACH;QA7FD,sBACI,yDAAkB;;;;;YADtB,UACuB,kBAA6B;gBAClD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACpD;;;WAAA;QAED,sBACI,+CAAQ;;;;;YADZ,UACa,QAAmB;gBAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC/B;;;WAAA;QAED,sBACI,6CAAM;;;;;YADV,UACW,MAAe;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC3B;;;WAAA;QAED,sBACI,0CAAG;;;;;YADP,UACQ,GAAY;gBAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACrB;;;WAAA;;;;;QAEM,0CAAgB;;;;QAAvB,UAAwB,QAAmB;;gBACrC,aAAa,GAAa,EAAE;YAChC,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,OAAO;;;;gBAAC,UAAA,OAAO;oBACtB,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;iBACrE,EAAC,CAAC;aACJ;YACD,OAAO,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;SAC/B;;;;;;QAEM,2CAAiB;;;;;QAAxB,UAAyB,GAAY,EAAE,KAA0B;YAC/D,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;gBACtB,OAAO,GAAG,CAAC,OAAO,CAAC;aACpB;iBAAM,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAEtC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;aAC/B;YACD,OAAO,EAAE,CAAC;SACX;;;;;QAEM,sDAA4B;;;;QAAnC,UAAoC,KAA0B;YAC5D,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,YAAYgF,YAAK,EAAE;;oBACtD,KAAK,sBAAG,KAAK,CAAC,CAAC,CAAC,EAAS;gBAC/B,OAAO,KAAK,CAAC,WAAW,CAAC;aAC1B;SACF;;;;;QAkDD,8CAAU;;;;QAAV,UAAW,CAAS;YAClB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjC;;;;QAED,gDAAY;;;QAAZ;YACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;;oBA9HF7E,cAAS,SAAC;wBACT,QAAQ,EAAE,oBAAoB;wBAC9B,gxFAA6C;;qBAE9C;;;;;uCAEEG,UAAK;kCACLA,UAAK;kCACLA,UAAK;+BAELW,WAAM;yCAeNX,UAAK;+BAKLA,UAAK;6BAKLA,UAAK;0BAKLA,UAAK;;QAuFR,gCAAC;KA/HD,IA+HC;;;QAzHC,qDAAiC;;QACjC,gDAA4B;;QAC5B,gDAAoC;;QAEpC,6CAAwC;;QAExC,yDAAsF;;QACtF,8CAA2E;;QAC3E,4CAAqE;;QACrE,yCAA6D;;QAC7D,uDAAyE;;QAEzE,kDAA2C;;QAC3C,uDAAoD;;QACpD,sDAAmD;;QACnD,mDAAwC;;QACxC,+DAA+C;;QAC/C,oDAAoC;;;;;;;AC/BtC;QAIA;YASY,iBAAY,GAAG,IAAIS,iBAAY,EAAE,CAAC;YAE5C,kBAAa,GAAG,CAAC,CAAC;YAClB,eAAU,GAAG,CAAC,CAAC;SAsChB;;;;;QApCC,+CAAc;;;;QAAd,UAAe,KAAU;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;;;;;QAED,2CAAU;;;;QAAV,UAAW,MAAuB;;gBAC1B,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;;gBAC7E,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;YACjE,IAAI,SAAS,KAAK,CAAC,EAAE;gBACnB,OAAO;aACR;;gBACK,SAAS,GAAG,MAAM,CAAC,WAAW;;gBAChC,IAAI,GAAG,CAAC;YAEZ,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE;gBAC1B,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;gBAChC,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAI,IAAI,OAAI,CAAC;aAClC;iBAAM,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE;gBACvC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;aACrB;iBAAM;gBACL,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAI,IAAI,OAAI,CAAC;aAClC;SACF;;;;;QAED,yCAAQ;;;;QAAR,UAAS,MAAuB;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACzB;;;;;QAED,yCAAQ;;;;QAAR,UAAS,MAAuB;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACzB;;oBAjDFZ,cAAS,SAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,w3CAA4C;;qBAE7C;;;4BAGEG,UAAK;mCACLA,UAAK;mCACLW,WAAM;;QAyCT,6BAAC;KAlDD,IAkDC;;;QA3CC,uCAAqC;;QACrC,8CAA+B;;QAC/B,8CAA4C;;QAE5C,+CAAkB;;QAClB,4CAAe;;;;;;;AChBjB;QAGA;YASY,iBAAY,GAAG,IAAIF,iBAAY,EAAU,CAAC;YAEpD,gBAAW,GAAG,EAAE,CAAC;YACjB,eAAU,GAAG,CAAC,CAAC;SAsChB;;;;;QApCC,+CAAc;;;;QAAd,UAAe,EAAU;YACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5B;;;;;QAED,2CAAU;;;;QAAV,UAAW,MAAuB;;gBAC1B,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;;gBAC7E,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;YACjE,IAAI,SAAS,KAAK,CAAC,EAAE;gBACnB,OAAO;aACR;;gBACK,SAAS,GAAG,MAAM,CAAC,WAAW;;gBAChC,IAAI,GAAG,CAAC;YAEZ,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE;gBAC1B,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;gBAChC,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAI,IAAI,OAAI,CAAC;aAClC;iBAAM,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE;gBACvC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;aACrB;iBAAM;gBACL,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAI,IAAI,OAAI,CAAC;aAClC;SACF;;;;;QAED,yCAAQ;;;;QAAR,UAAS,MAAuB;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACzB;;;;;QAED,yCAAQ;;;;QAAR,UAAS,MAAuB;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACzB;;oBAjDFZ,cAAS,SAAC;wBACT,QAAQ,EAAE,oBAAoB;wBAC9B,mnDAA+C;;qBAEhD;;;4BAGEG,UAAK;mCACLA,UAAK;mCACLW,WAAM;;QAyCT,6BAAC;KAlDD,IAkDC;;;QA3CC,uCAAgC;;QAChC,8CAA+B;;QAC/B,8CAAoD;;QAEpD,6CAAiB;;QACjB,4CAAe;;;;;;;ACfjB;QAwBE,6BAAoB,gBAAkC,EACN,YAAgC,EAChC,YAAgC;YAF5D,qBAAgB,GAAhB,gBAAgB,CAAkB;YAGpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAC/F,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;SAC3G;;oBA1BFT,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZY,sBAAa;4BACbH,kBAAY;4BACZiC,mBAAa;4BACbxC,sBAAe,CAAC,QAAQ,EAAE;yBAC3B;wBACD,YAAY,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;wBAC9D,OAAO,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;qBAC1D;;;;oBAfyBP,uBAAgB;oBACjCQ,eAAU,uBAkBJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;oBAlBvCF,eAAU,uBAmBJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;QAYhD,0BAAC;KA3BD,IA2BC;;;;;;QAda,+CAA0C;;;;;;;ACxBxD;QAcA;SASsC;;oBATrCN,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACP+C,0BAAoB,EAAE9C,mBAAY,EAAEY,sBAAa,EAAEgC,sBAAgB,EAAEnC,kBAAY;4BACjF,eAAe,EAAEE,wBAAe,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB;4BAClF,uBAAuB,EAAE,iBAAiB,EAAE,mBAAmB;yBAAC;wBAChE,YAAY,EAAE,CAAC,yBAAyB,CAAC;wBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;wBACpC,eAAe,EAAE,CAAC,yBAAyB,CAAC;qBAC/C;;QACoC,6BAAC;KATtC;;;;;;ACdA;QAYA;SAwBC;QANC,sBAAI,yCAAa;;;;YAAjB;;oBACQ,YAAY;;;;gBAAG,UAAC,MAAe;oBACnC,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI;;;;oBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,GAAA,EAAC,GAAG,KAAK,CAAC;iBAClF,CAAA;gBACD,OAAO,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC1D;;;WAAA;QACH,qBAAC;KAAA,IAAA;;;QAvBC,qCAAoB;;QACpB,oCAAmB;;QACnB,mCAAkB;;QAClB,8BAAa;;QACb,8BAAa;;QACb,gCAAe;;QACf,iCAAgB;;QAChB,0CAAyB;;QACzB,iCAAgB;;QAChB,sDAAsC;;QACtC,8CAA8B;;QAC9B,qCAAkB;;QAClB,qCAAkB;;QAClB,iCAAiB;;QACjB,oCAA4B;;QAC5B,uCAA4B;;;;;;;IAU9B,SAAgB,uBAAuB,CAAC,IAAkB,EAAE,QAA4B;QACtF,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,SAAS,CAAC;SAClB;;YAEK,UAAU,GAAG,IAAI,cAAc,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG6D,2BAAY,CAAC,SAAS,CAAC;gBACpC,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;wBACR,SAAS,EAAE,SAAS;wBACpB,eAAe,EAAE,KAAK;qBACvB,CAAC;aACH,CAAC,CAAC;SACJ;QAED,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACpB,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC;SAC9B;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,UAAU,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,UAAU,CAAC,UAAU,GAAG,qCAAqC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SACzF;QACD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC7C,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAGC,4BAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACpE;QAED,OAAO,UAAU,CAAC;KACnB;;;;;;IAED,SAAgB,qCAAqC,CAAC,cAA8B,EAAE,QAA4B;QAChH,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/H,OAAO,EAAE,CAAC;SACX;QACD,OAAO,cAAc,CAAC,SAAS,CAAC,GAAG;;;;QAAC,UAAA,QAAQ;;gBACpC,OAAO,GAAG,QAAQ,CAAC,IAAI;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE,GAAA,EAAC;;gBAC3D,MAAM;YACV,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACvB,MAAM,GAAG,QAAQ,CAAC,IAAI;;;;gBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,GAAA,EAAC,CAAC;aAChE;YACD,OAAO,mCAAmC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SACvE,EAAC,CAAC;KACJ;;;;;;;IAED,SAAS,mCAAmC,CAC1C,aAA4B,EAC5B,OAAyB,EACzB,aAAgC;QAEhC,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;;YAEG,KAAK,GAAG,EAAE;QACd,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG;;;;YAAC,UAAA,GAAG,IAAI,OAAA,IAAI,IAAI,CAAC,GAAG,CAAC,GAAA,EAAC,CAAC;SACzD;;YAEK,QAAQ,sBAAG;YACf,IAAI,EAAE;gBACJ,EAAE,EAAE,aAAa,CAAC,EAAE;gBACpB,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,KAAK;gBACZ,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,aAAa,EAAE,EAAE;aAElB;YACD,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,MAAM,EAAE,EAAE;SACX,EAAiB;QAElB,IAAI,aAAa,CAAC,QAAQ,IAAI,aAAa,EAAE;YAC3C,QAAQ,CAAC,MAAM,GAAG;gBAChB,EAAE,EAAE,aAAa,CAAC,QAAQ;gBAC1B,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,aAAa,CAAC,OAAO;gBAC3B,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,WAAW,EAAE,EAAE;aAChB,CAAA;SACF;QACD,OAAO,QAAQ,CAAC;KACjB;;;;;;;QCvGC,qCAAoB,gBAAkC,EAAsC,YAAgC;YAA5H,iBA8CC;YA9CmB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAf7C,qBAAgB,GAAG,IAAI,CAAC;YACxB,gBAAW,GAAG,IAAI,CAAC;YACnB,gBAAW,GAAG,2BAA2B,CAAC;YAIzC,aAAQ,GAAG,IAAInE,iBAAY,EAAE,CAAC;YAExC,UAAK,GAAG,IAAI6D,kBAAa,CAAiB,CAAC,CAAC,CAAC;YAC7C,wBAAmB,GAAG,IAAI9E,oBAAe,CAAS,EAAE,CAAC,CAAC;YAOpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,KAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAEpG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CACtCE,aAAG;;;;YAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,UAAU,GAAA,EAAC,EAC1BwE,gBAAM;;;;YAAC,UAAA,KAAK,IAAI,OAAA,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,GAAA,EAAC,EAC9CM,qBAAW,CAAC,CAAC,CAAC,CACf,CAAC;YAEF,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAC3D9E,aAAG;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAA,EAAC,CAChD,CAAC;YAEF,IAAI,CAAC,aAAa,GAAGD,kBAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CACzFC,aAAG;;;;YAAC,UAAC,EAAe;oBAAf,kBAAe,EAAd,UAAE,EAAE,iBAAS;gBAAM,OAAA,SAAS,CAAC,IAAI;;;;gBAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAA,EAAC;aAAA,EAAC,CAC9E,CAAC;YAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAACA,aAAG;;;;YAAC,UAAC,GAAG;;oBAClD,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM;;;;;gBAAC,UAAC,IAAI,EAAE,EAAE;oBACzC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;wBACjB,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,OAAO;;;;wBAAC,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAA,EAAC,CAAA;qBACjE;oBACD,OAAO,IAAI,CAAC;iBACb,GAAE,IAAI,GAAG,EAAkB,CAAC;;oBAEvB,OAAO,GAAG,EAAE;gBAClB,MAAM,CAAC,OAAO;;;;;gBAAC,UAAC,CAAC,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACjB,EAAC,CAAC;gBACH,OAAO,OAAO,CAAC;aAChB,EAAC,CAAC,CAAC;;YAGJ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzBA,aAAG;;;;YAAC,UAAA,SAAS,IAAI,OAAA,SAAS,CAAC,CAAC,CAAC,GAAA,EAAC,EAC9BmF,aAAG;;;;YAAC,UAAA,QAAQ,IAAI,OAAA,KAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAA,EAAC,EACnFV,cAAI,CAAC,CAAC,CAAC,CACR,CAAC,SAAS,EAAE,CAAC;SACf;QA1DD,sBAAa,4CAAG;;;;;YAAhB,UAAiB,GAAmB;gBAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACtB;;;WAAA;;;;;QA0DD,gDAAU;;;;QAAV,UAAW,EAAU;YACnB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnC;;;;QAED,kDAAY;;;QAAZ;YACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;;;;;QAED,2DAAqB;;;;QAArB,UAAsB,KAAsB;YAC1C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;aAC7B;SACF;;oBAjFFtE,cAAS,SAAC;wBACT,QAAQ,EAAE,uBAAuB;wBACjC,8+EAAgD;;qBAEjD;;;;oBARQC,uBAAgB;oBAJjBQ,eAAU,uBA6ByCC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;;uCAfzFR,UAAK;kCACLA,UAAK;kCACLA,UAAK;0BACLA,UAAK;+BAGLW,WAAM;;QAsET,kCAAC;KAlFD,IAkFC;;;QA5EC,uDAAiC;;QACjC,kDAA4B;;QAC5B,kDAAmD;;QAInD,+CAAwC;;QAExC,4CAA6C;;QAC7C,0DAAsD;;QACtD,oDAAyC;;QACzC,wDAA+C;;QAC/C,iEAA+C;;QAC/C,qDAAqC;;;;;QAEzB,uDAA0C;;;;;;;AC9BxD;QAwCE,kCAAoB,gBAAkC,EACN,YAAgC,EAChC,YAAgC;YAF5D,qBAAgB,GAAhB,gBAAgB,CAAkB;YAGpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAC/F,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;SAC3G;;oBAnCFT,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACP+C,0BAAoB;4BACpB9C,mBAAY;4BACZY,sBAAa;4BACbgC,sBAAgB;4BAChBnC,kBAAY;4BACZ,eAAe;4BACfE,wBAAe;4BACf,aAAa;4BACb,YAAY;4BACZ,mBAAmB;4BACnB,uBAAuB;4BACvB,iBAAiB;4BACjB,mBAAmB;4BACnBT,sBAAe,CAAC,QAAQ,EAAE;yBAC3B;wBACD,YAAY,EAAE,CAAC,2BAA2B,CAAC;wBAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;wBACtC,eAAe,EAAE,CAAC,2BAA2B,CAAC;qBAC/C;;;;oBAzBwBP,uBAAgB;oBACjCQ,eAAU,uBA2BHC,aAAQ,YAAIC,WAAM,SAAC,cAAc;oBA3BxCF,eAAU,uBA4BHC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;QAYhD,+BAAC;KApCD,IAoCC;;;;;;QAda,oDAA0C;;;;;;;;;;ICrCxD,2BAUC;;;QATC,uCAAwB;;QACxB,iCAAkB;;QAClB,4BAAa;;QACb,4BAAa;;QACb,kCAAqB;;QACrB,gCAAyB;;QACzB,0CAAiC;;QACjC,mCAAoB;;QACpB,wCAA0C;;;;;IAG5C,2BAWC;;;QAVC,uCAAwB;;QACxB,iCAAkB;;QAClB,4BAAa;;QACb,4BAAa;;QACb,+BAAgB;;QAChB,wCAA0C;;QAC1C,iCAAmB;;QACnB,mCAAqB;;QACrB,8BAAqB;;QACrB,kCAA+B;;;;;IAGjC,gCAKC;;;QAJC,qCAAiB;;QACjB,uCAAmB;;QACnB,0CAAsB;;QACtB,gDAA6B;;;;;IAG/B,yBAUC;;;QATC,8BAAiB;;QACjB,6BAAgB;;QAChB,0BAAa;;QACb,0BAAa;;QACb,6BAAgB;;QAChB,gCAAmB;;QACnB,gCAAmB;;QACnB,yCAA6B;;QAC7B,sCAA0C;;;;;IAG5C,0CAGC;;;QAFC,oDAAsB;;QACtB,6CAAyB;;;;QAIzB,UAAW;QACX,UAAW;QACX,QAAS;;;;;;;;IAGX,qCAIC;;;QAHC,sCAAa;;QACb,sCAAa;;QACb,wCAAwB;;;;;;;;IAG1B,SAAgB,kBAAkB,CAAC,QAAmB,EAAE,QAAmB,EAAE,MAAe;QAC1F,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,OAAO,EAAE,CAAC;SACX;QACD,OAAO,QAAQ,CAAC,GAAG;;;;QAAC,UAAA,GAAG,IAAI,OAAA,4BAA4B,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAA,EAAC,CAAC;KACjF;;;;;;;IAED,SAAS,4BAA4B,CAAC,GAAY,EAAE,QAAmB,EAAE,MAAe;QACtF,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,IAAI,CAAC;SACb;;YAEK,aAAa,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC;;;YAEzD,kBAAkB,GAAiB,4BAA4B,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC;QAE5F,OAAO,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;KACnE;;;;;;;IAED,SAAgB,kBAAkB,CAAC,GAAY,EAAE,QAAmB,EAAE,MAAe;QACnF,IAAI,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzE,OAAO,EAAE,CAAC;SACX;;YACK,UAAU,GAAyB,IAAI,GAAG,EAAmB;QACnE,QAAQ,CAAC,OAAO;;;;QAAC,UAAA,OAAO,IAAI,OAAA,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,GAAA,EAAC,CAAC;QACxE,OAAO,GAAG,CAAC,QAAQ;aAChB,GAAG;;;;QAAC,UAAA,SAAS;;gBACN,YAAY,GAAY,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;;gBACjD,eAAe,GAAG,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;YACxE,OAAO,YAAY,GAAG,4BAA4B,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC;SAC1F,EAAC;aACD,MAAM;;;;QAAC,UAAA,WAAW,IAAI,OAAA,WAAW,GAAA,EAAC,CAAC;KACvC;;;;;;IAED,SAAgB,wBAAwB,CAAC,MAAe,EAAE,SAAqB;QAC7E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1E,OAAO,EAAE,CAAC;SACX;QAED,OAAO,MAAM,CAAC,MAAM;;;;;QAAC,UAAC,WAAW,EAAE,KAAK;;gBAChC,GAAG,GAAG,SAAS,CAAC,IAAI;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,GAAA,EAAC;YAC5D,IAAI,GAAG,EAAE;;oBACD,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;oBACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;iBACxB;aACF;YACD,OAAO,WAAW,CAAC;SACpB,GAAE,EAAE,CAAC,CAAC;KACR;;;;;;;IAED,SAAgB,4BAA4B,CAAC,GAAY,EAAE,QAAmB,EAAE,MAAe;QAC7F,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;YACnD,OAAO,EAAE,CAAC;SACX;;YACK,UAAU,GAAyB,IAAI,GAAG,EAAmB;QACnE,QAAQ,CAAC,OAAO;;;;QAAC,UAAA,OAAO,IAAI,OAAA,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,GAAA,EAAC,CAAC;;YAClE,SAAS,GAAuB,IAAI,GAAG,EAAiB;QAC9D,MAAM,CAAC,OAAO;;;;QAAC,UAAA,KAAK,IAAI,OAAA,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAA,EAAC,CAAC;;YAEvD,kBAAkB,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM;;;;;QAAe,UAAC,UAAwB,EAAE,QAAkB;YAC1G,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI;;;;YAAC,UAAA,SAAS,IAAI,OAAA,SAAS,KAAK,QAAQ,CAAC,KAAK,GAAA,EAAC,EAAE;gBAChF,OAAO,UAAU,IAAI,EAAE,CAAC;aACzB;;gBACK,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;;gBAC9C,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC,IAAI,GAAG,IAAI;;gBACtD,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI;;gBACzD,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC;;gBACjC,KAAK,GAAU,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACjC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;aAClE;YACD,OAAO,UAAU,CAAC;SACnB,GAAE,EAAE,CAAC;QACN,OAAO,kBAAkB,CAAC;KAC3B;;;;;;IAED,SAAgB,4BAA4B,CAAC,OAAoC,EAAE,MAAe;QAChG,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAC1C;;YAEK,aAAa,GAAG,MAAM,CAAC,MAAM;;;;QAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,SAAS,GAAA,EAAC;;YACzE,WAAW,GAAG,iBAAiB,CAAC,aAAa,CAAC;QACpD,OAAO,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KACjD;;;;;;;IAED,SAAS,kBAAkB,CAAC,GAAY,EAAE,aAA6B,EAAE,kBAAgC;;;YACnG,WAAW,GAAG,CAAC;;YACnB,KAAkB,IAAA,KAAAiB,SAAA,GAAG,CAAC,UAAU,IAAI,EAAE,CAAA,gBAAA,4BAAE;gBAAnC,IAAM,GAAG,WAAA;gBACZ,WAAW,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;aAClC;;;;;;;;;QAED,OAAO;YACL,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,SAAS,EAAE,GAAG,CAAC,WAAW;YAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,QAAQ;YACxB,QAAQ,EAAE,aAAa,IAAI,EAAE;YAC7B,kBAAkB,EAAE,kBAAkB,IAAI,EAAE;YAC5C,WAAW,EAAE,WAAW;SACzB,CAAA;KACF;;;;;;IAED,SAAS,kBAAkB,CAAC,OAAoC,EAAE,WAAyB;;YACrF,UAA6B;QACjC,IAAI,OAAO,YAAY,iBAAiB,EAAE;YACxC,UAAU,GAAG;gBACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,KAAK;aAC1D,CAAA;SACF;QACD,OAAO;YACL,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,MAAM,EAAE,WAAW,IAAI,EAAE;YACzB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,UAAU;SACvB,CAAA;KACF;;;;;IAED,SAAS,iBAAiB,CAAC,MAAe;QACxC,OAAO,MAAM,CAAC,GAAG;;;;QAAC,UAAA,KAAK,IAAI,OAAA,gBAAgB,CAAC,KAAK,CAAC,GAAA,EAAC,CAAC;KACrD;;;;;;;IAED,SAAS,gBAAgB,CAAC,KAAY,EAAE,UAAmB,EAAE,UAAmB;QAC9E,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,KAAK;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,UAAU,EAAE,UAAU,IAAI,EAAE;YAC5B,UAAU,EAAE,UAAU,IAAI,EAAE;SAC7B,CAAA;KACF;;;;;;;;IAED,SAAS,4BAA4B,CAAC,GAAiB,EAAE,QAAwB,EAAE,MAAoB,EACjE,gBAAwC;QAE5E,OAAO;YACL,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,QAAQ,IAAI,EAAE;YACxB,kBAAkB,EAAE,MAAM,IAAI,EAAE;YAChC,gBAAgB,EAAE,gBAAgB,IAAI,IAAI;YAC1C,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAA;KACF;;;;;;;IAED,SAAS,4BAA4B,CAAC,OAAqB,EAAE,MAAoB,EAAE,gBAAwC;QACzH,OAAO;YACL,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,gBAAgB,EAAE,gBAAgB,IAAI,IAAI;YAC1C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;SACvC,CAAC;KACH;;;;;;IAED,SAAS,0BAA0B,CAAC,KAAiB,EAAE,gBAAwC;QAC7F,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,gBAAgB,EAAE,gBAAgB,IAAI,IAAI;SAC3C,CAAA;KACF;;;;;;IAED,SAAgB,0BAA0B,CAAC,aAA6B,EAAE,QAAuC;QAC/G,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO,aAAa,CAAC;SACtB;QAED,OAAO,aAAa,CAAC,GAAG;;;;QAAC,UAAA,YAAY;;gBAC7B,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG;;;;YAAC,UAAA,OAAO,IAAI,OAAA,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAA,EAAC;;gBAEhG,qBAAqB,GAAG,YAAY,CAAC,kBAAkB,CAAC,GAAG;;;;YAAC,UAAA,KAAK;;oBAC/D,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;gBAClD,OAAO,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;aAC9C,EAAC;;gBAEI,eAAe,GAAG,WAAW;iBAChC,GAAG;;;;YAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAA,EAAC;;gBAC5C,aAAa,GAAG,WAAW;iBAC9B,GAAG;;;;YAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAA,EAAC,GAAG,EAAE,GAAA,EAAC;iBAChG,MAAM;;;;;YAAC,UAAC,UAAU,EAAE,WAAW,IAAK,OAAA,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAA,GAAE,EAAE,CAAC;;gBACpE,0BAA0B,GAAG,qBAAqB;iBACrD,GAAG;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,GAAA,EAAC;;gBACxE,WAAW,YAAO,eAAe,EAAK,aAAa,EAAK,0BAA0B,CAAC;;gBAEnF,aAAa,GAAG,+BAA+B,CAAC,IAAI,CAAC,GAAG,OAAR,IAAI,WAAQ,WAAW,GAAE;;gBACzE,kBAAkB,GAAG,sCAAsC,CAAC,aAAa,CAAC;YAEhF,OAAO,4BAA4B,CAAC,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;SAC3G,EAAC,CAAC;KACJ;;;;;;IAED,SAAgB,yBAAyB,CAAC,OAAqB,EAAE,QAAuC;QACtG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO,OAAO,CAAC;SAChB;;YACK,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC;;YACvD,kBAAkB,GAAG,0CAA0C,CAAC,aAAa,CAAC;QACpF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,4BAA4B,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAA;SACvE;;YAEK,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG;;;;QAAC,UAAA,KAAK;;gBACvC,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACvD,OAAO,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;SACnD,EAAC;QAEF,OAAO,4BAA4B,CAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;KAClF;;;;;;IAED,SAAS,uBAAuB,CAAC,KAAiB,EAAE,MAAwB;;YACpE,uBAAuB,GAAG,0CAA0C,CAAC,MAAM,CAAC;QAClF,OAAO,0BAA0B,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;KACnE;;;;;;IAED,SAAS,UAAU,CAAC,QAAuC,EAAE,EAAU;QACrE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACrC,OAAO,IAAI,CAAA;SACZ;;YACK,WAAW,GAAG,QAAQ,CAAC,SAAS;;;;QAAC,UAAA,CAAC;YACtC,OAAO,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC;SAC/B,EAAC;QACF,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;;YACK,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM;QAC3C,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;KACf;;;;;IAED,SAAS,0CAA0C,CAAC,MAAwB;QAC1E,QAAQ,MAAM;YACZ,KAAK,gBAAgB,CAAC,OAAO;gBAC3B,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAC,CAAC;YACnE,KAAK,gBAAgB,CAAC,OAAO;gBAC3B,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAC,CAAC;YACtE;gBACE,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAC,CAAC;SACrE;KACF;;;;;IAED,SAAS,sCAAsC,CAAC,MAAwB;QACtE,QAAQ,MAAM;YACZ,KAAK,gBAAgB,CAAC,OAAO;gBAC3B,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAC,CAAC;YACnE,KAAK,gBAAgB,CAAC,OAAO;gBAC3B,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAC,CAAC;YACxE;gBACE,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAC,CAAC;SAC7E;KACF;;;;;IAED,SAAS,+BAA+B,CAAC,MAAc;QACrD,QAAQ,MAAM;YACZ,KAAK,CAAC;gBACJ,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAClC,KAAK,CAAC;gBACJ,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAClC;gBACE,OAAO,gBAAgB,CAAC,KAAK,CAAC;SACjC;KACF;;;;;;ICnWD;;QAIE,aAAc,aAAa;QAC3B,YAAa,YAAY;QACzB,YAAa,YAAY;;;QAG3B;YAcW,mBAAc,GAAG,KAAK,CAAC;YACvB,WAAM,GAAG,UAAU,CAAC,WAAW,CAAC;YAG/B,gBAAW,GAAuB,IAAIhB,iBAAY,EAAQ,CAAC;SAmBtE;;;;QAjBC,iDAAQ;;;QAAR;SACC;;;;QAED,mDAAU;;;QAAV;YACE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;;;;;QAED,0DAAiB;;;;QAAjB,UAAkB,MAAwB;YACxC,OAAO,MAAM,KAAK,gBAAgB,CAAC,OAAO,CAAC;SAC5C;;;;;QACD,wDAAe;;;;QAAf,UAAgB,MAAwB;YACtC,OAAO,MAAM,KAAK,gBAAgB,CAAC,OAAO,CAAC;SAC5C;;;;;QACD,sDAAa;;;;QAAb,UAAc,MAAwB;YACpC,OAAO,MAAM,KAAK,gBAAgB,CAAC,KAAK,CAAA;SACzC;;oBAnCFZ,cAAS,SAAC;wBACT,QAAQ,EAAE,0BAA0B;wBACpC,8zEAAqD;;qBAEtD;;;4BAEEG,UAAK;iCACLA,UAAK;sCACLA,UAAK;8BACLA,UAAK;uCACLA,UAAK;wCACLA,UAAK;+BACLA,UAAK;iCACLA,UAAK;qCACLA,UAAK;6BACLA,UAAK;kCACLA,UAAK;kCACLA,UAAK;kCACLW,WAAM;;QAmBT,qCAAC;KArCD,IAqCC;;;QA/BC,+CAAuB;;QACvB,oDAA4B;;QAC5B,yDAAiC;;QACjC,iDAAyB;;QACzB,0DAAkC;;QAClC,2DAAmC;;QACnC,kDAA0B;;QAC1B,oDAA4C;;QAC5C,wDAAgC;;QAChC,gDAAyC;;QACzC,qDAA8B;;QAC9B,qDAA6B;;QAC7B,qDAAqE;;;;;;;;;;ICRvE,sCAGC;;;QAFC,2CAAiB;;QACjB,2CAAiB;;AAGnB;QAAA;;YA6CW,qBAAgB,GAAG,KAAK,CAAC;;YAGzB,gBAAW,GAAG,KAAK,CAAC;YAE7B,yBAAoB,GAAG,UAAU,CAAC,UAAU,CAAC;YAC7C,qCAAgC,GAAG,UAAU,CAAC,UAAU,CAAC;YACzD,kCAA6B,GAAG,UAAU,CAAC,UAAU,CAAC;YACtD,uBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC;YAE3C,eAAU,GAA6B,IAAI2D,kBAAa,CAAC,CAAC,CAAC,CAAC;YAC5D,eAAU,GAA6B,IAAIA,kBAAa,CAAC,CAAC,CAAC,CAAC;YAC5D,yBAAoB,GAAoD,IAAIA,kBAAa,CAAC,CAAC,CAAC,CAAC;YAC7F,eAAU,GAAmD,IAAI9E,oBAAe,CAAC,EAAE,CAAC,CAAC;YACrF,aAAQ,GAA2B,IAAI8E,kBAAa,CAAC,CAAC,CAAC,CAAC;YAExD,uBAAkB,GAAG,IAAI9E,oBAAe,oBACZ;gBACxB,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;aACZ,GACF,CAAC;YAKF,mBAAc,GAAc,EAAE,CAAC;YAC/B,mBAAc,GAAc,EAAE,CAAC;SAkHhC;QA3KC,sBACI,gDAAQ;;;;;;;;YADZ,UACa,QAAmB;gBAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;;;WAAA;QAGD,sBACI,gDAAQ;;;;;;;;YADZ,UACa,QAAmB;gBAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;;;WAAA;QAGD,sBACI,0DAAkB;;;;;;;;YADtB,UACuB,kBAA6B;gBAClD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACpD;;;WAAA;QAGD,sBACI,gDAAQ;;;;;;;;YADZ,UACa,QAAuC;gBAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;;;WAAA;QAGD,sBACI,8CAAM;;;;;;;;YADV,UACW,MAAe;gBACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5B;;;WAAA;;;;QAgCD,6CAAQ;;;QAAR;YAAA,iBAmCC;;gBAlCO,SAAS,GAA0B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC0E,gBAAM;;;;YAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,KAAK,IAAI,GAAA,EAAC,CAAC;;gBAC9F,SAAS,GAA0B,IAAI,CAAC,UAAU,CAAC,IAAI,CAACA,gBAAM;;;;YAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,KAAK,IAAI,GAAA,EAAC,CAAC;;gBAC9F,OAAO,GAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACA,gBAAM;;;;YAAC,UAAA,MAAM,IAAI,OAAA,MAAM,KAAK,IAAI,GAAA,EAAC,CAAC;;gBAEpF,aAAa,GAAGY,QAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAC3DD,aAAG;;;;YAAC,UAAC,EAAuB;oBAAvB,kBAAuB,EAAtB,gBAAQ,EAAE,gBAAQ,EAAE,SAAC;gBACzB,KAAI,CAAC,kBAAkB,CAAC,IAAI,oBACF;oBACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM;oBACzB,QAAQ,EAAE,QAAQ,CAAC,MAAM;iBAC1B,GAAC,CAAC;aACJ,EAAC,EACFnF,aAAG;;;;YAAC,UAAC,EAA4B;oBAA5B,kBAA4B,EAA3B,gBAAQ,EAAE,gBAAQ,EAAE,cAAM;gBAAM,OAAA,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;aAAA,EAAC,CACtF;YAED,IAAI,CAAC,cAAc,GAAGD,kBAAa,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACtEC,aAAG;;;;YAAC,UAAC,EAAyB;oBAAzB,kBAAyB,EAAxB,qBAAa,EAAE,gBAAQ;gBAAM,OAAA,0BAA0B,CAAC,aAAa,EAAE,QAAQ,CAAC;aAAA,EAAC,EACvFuE,mBAAS,CAAC,EAAE,CAAC,CACd,CAAC;YAEF,IAAI,CAAC,cAAc,GAAGxE,kBAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAClFyE,gBAAM;;;;YAAC,UAAC,EAAa;oBAAb,kBAAa,EAAZ,gBAAQ,EAAE,SAAC;gBAAM,OAAA,QAAQ,KAAK,IAAI;aAAA,EAAC,EAC5CxE,aAAG;;;;YAAC,UAAC,EAAsF;oBAAtF,kBAAsF,EAArF,gBAAQ,EAAE,gBAAQ;gBACtB,OAAO,QAAQ,CAAC,GAAG;;;;gBAAC,UAAA,CAAC;;wBACb,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI;;wBACzB,aAAa,GAAG,4BAA4B,CAAC,CAAC,EAAE,MAAM,CAAC;oBAC7D,OAAO,yBAAyB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;iBAC3D,EAAC,CAAC;aACJ,EAAC,EACFuE,mBAAS,CAAC,EAAE,CAAC,CACd,CAAC;YACF,IAAI,CAAC,aAAa,GAAGxE,kBAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAC/EC,aAAG;;;;YAAC,UAAC,EAAoB;oBAApB,kBAAoB,EAAnB,gBAAQ,EAAE,gBAAQ;gBAAM,QAAC,EAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAC;aAAC,EAAC,CAC1E,CAAA;SACF;;;;QAEM,qDAAgB;;;QAAvB;YACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aAC/B;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aAC/B;SACF;;;;;QAEM,kDAAa;;;;QAApB,UAAqB,aAAqB;YACxC,IAAI,IAAI,CAAC,gBAAgB,EAAE;;oBACnB,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,IAAI,GAAA,EAAC;gBAC1E,IAAI,WAAW,KAAK,aAAa,EAAE;oBACjC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;iBAC1C;;oBACK,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,IAAI,GAAA,EAAC;gBACjF,IAAI,kBAAkB,GAAG,CAAC,CAAC,EAAE;oBAC3B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC;iBACjD;aACF;YACD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;SAC1E;;;;;QAEM,kDAAa;;;;QAApB,UAAqB,aAAqB;YACxC,IAAI,IAAI,CAAC,gBAAgB,EAAE;;oBACnB,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,IAAI,GAAA,EAAC;gBAC1E,IAAI,WAAW,KAAK,aAAa,EAAE;oBACjC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;iBAC1C;;oBACK,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,IAAI,GAAA,EAAC;gBACjF,IAAI,kBAAkB,GAAG,CAAC,CAAC,EAAE;oBAC3B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC;iBACjD;aACF;YACD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;SAC1E;;;;;QAEM,iEAA4B;;;;QAAnC,UAAoC,OAAqB;YACvD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;;oBAC3C,WAAW,GAAG,cAAY,OAAO,CAAC,MAAM,CAAC,MAAQ;gBACrD,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,GAAM,WAAW,WAAQ,GAAM,WAAW,YAAS,CAAC;gBAC7F,OAAO,WAAW,CAAC;aACpB;YACD,OAAO,EAAE,CAAC;SACX;;;;;QAEM,2EAAsC;;;;QAA7C,UAA8C,OAAqB;YACjE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBACvB,OAAO,EAAE,CAAC;aACX;YAED,OAAO,eAAa,OAAO,CAAC,UAAU,CAAC,UAAU,MAAG,CAAA;SACrD;;;;;QAEM,uDAAkB;;;;QAAzB,UAA0B,GAAiB;;gBACnC,WAAW,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC3D,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE;gBACzC,OAAO,qBAAqB,CAAC;aAC9B;;gBAEG,WAAW,GAAG,EAAE;;gBACd,aAAa,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC/D,IAAI,WAAW,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE;gBACtC,WAAW,GAAG,WAAW,CAAC;aAC3B;YACD,IAAI,WAAW,EAAE;gBACf,WAAW,GAAM,WAAW,SAAI,GAAG,CAAC,QAAQ,CAAC,MAAQ,CAAC;gBACtD,WAAW,GAAG,aAAa,GAAM,WAAW,aAAU,GAAM,WAAW,cAAW,CAAC;aACpF;YACD,IAAI,WAAW,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE;gBACtC,WAAW,GAAM,WAAW,WAAM,GAAG,CAAC,WAAa,CAAC;gBACpD,WAAW,GAAG,GAAG,CAAC,WAAW,KAAK,CAAC,GAAM,WAAW,WAAQ,GAAM,WAAW,YAAS,CAAC;aACxF;YACD,OAAO,WAAW,CAAC;SACpB;;oBAzLFG,cAAS,SAAC;wBACT,QAAQ,EAAE,qBAAqB;wBAC/B,UAAU,EAAE;4BACVkF,kBAAO,CAAC,oBAAoB,EAAE;gCAC5BC,gBAAK,CAAC,MAAM,EAAEC,gBAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gCACvCD,gBAAK,CAAC,GAAG,EAAEC,gBAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gCAClCC,qBAAU,CAAC,WAAW,EAAE,CAACC,kBAAO,CAAC,YAAY,CAAC,CAAC,CAAC;gCAChDD,qBAAU,CAAC,WAAW,EAAE,CAACC,kBAAO,CAAC,YAAY,CAAC,CAAC,CAAC;6BACjD,CAAC;yBACH;wBACD,urIAA8C;;qBAE/C;;;+BAGEnF,UAAK;+BAMLA,UAAK;yCAMLA,UAAK;+BAMLA,UAAK;6BAMLA,UAAK;uCAMLA,UAAK;kCAGLA,UAAK;;QA0IR,iCAAC;KA1LD,IA0LC;;;QA7IC,sDAAkC;;QAGlC,iDAA6B;;QAE7B,0DAA6C;;QAC7C,sEAAyD;;QACzD,mEAAsD;;QACtD,wDAA2C;;QAE3C,gDAA4D;;QAC5D,gDAA4D;;QAC5D,0DAA6F;;QAC7F,gDAAqF;;QACrF,8CAAwD;;QAExD,wDAKE;;QAEF,mDAAkF;;QAClF,oDAA2C;;QAC3C,oDAA2C;;QAC3C,oDAA+B;;QAC/B,oDAA+B;;;;;;;AChGjC;QA6BE,iCAAoB,gBAAkC,EACN,YAAgC,EAChC,YAAgC;YAF5D,qBAAgB,GAAhB,gBAAgB,CAAkB;YAGpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;YAC/F,IAAI,YAAY,EAAE;gBAAE,YAAY,CAAC,SAAS;;;;gBAAC,UAAA,WAAW,IAAI,OAAA,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAA,EAAC,CAAC;aAAE;SAC3G;;oBA7BFE,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZW,wBAAe;4BACfD,sBAAa;4BACbiC,sBAAa;4BACb/B,sBAAa;4BACbH,kBAAY;4BACZiC,mBAAa;4BACbxC,sBAAe,CAAC,QAAQ,EAAE;yBAC3B;wBACD,YAAY,EAAE,CAAC,0BAA0B,EAAE,8BAA8B,CAAC;wBAC1E,OAAO,EAAE,CAAC,0BAA0B,CAAC;wBACrC,eAAe,EAAE,CAAC,0BAA0B,CAAC;qBAC9C;;;;oBApByBP,uBAAgB;oBACjCQ,eAAU,uBAsBJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;oBAtBvCF,eAAU,uBAuBJC,aAAQ,YAAIC,WAAM,SAAC,cAAc;;QAYhD,8BAAC;KA9BD,IA8BC;;;;;;QAda,mDAA0C;;;;;;;AC7BxD;QAMA;YASW,wBAAmB,GAAG,KAAK,CAAC;YAC5B,6BAAwB,GAAG,KAAK,CAAC;YACjC,qBAAgB,GAAG,KAAK,CAAC;YACzB,gBAAW,GAAG,KAAK,CAAC;YAGpB,sBAAiB,GAAG,KAAK,CAAC;YAC1B,WAAM,GAAG,IAAI,CAAC;YAGb,kBAAa,GAAG,IAAIC,iBAAY,EAAE,CAAC;YACnC,kBAAa,GAAG,IAAIA,iBAAY,EAAU,CAAC;YAC3C,iCAA4B,GAAG,IAAIA,iBAAY,EAAE,CAAC;YAClD,0BAAqB,GAAG,IAAIA,iBAAY,EAAE,CAAC;SAmCtD;;;;QAhCC,6CAAS;;;QAAT;YACI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;;;;gBAAC,UAAC,KAAK,IAAK,OAAAiE,YAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAA,EAAC,CAAA;aAC1E;YACD,OAAO,IAAI,CAAC,OAAO,CAAC;SACvB;;;;QAED,kDAAc;;;QAAd;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,OAAO,QAAQ,CAAC;aACjB;YACD,OAAO,SAAS,CAAC;SAClB;QAED,sBAAI,4CAAK;;;;YAAT;;;oBAEM,MAAM,GAAY,EAAE;gBACxB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;oBACxF,MAAM,GAAG,CAAC;4BACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;4BAClC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;yBACzC,CAAC,CAAA;iBACH;gBACD,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAC/B,MAAM,EAAE,MAAM;iBACf,CAAA;aACF;;;WAAA;;;;;QAED,mDAAe;;;;QAAf,UAAgB,OAAe;YAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC;;oBAxDF7E,cAAS,SAAC;wBACT,QAAQ,EAAE,oBAAoB;wBAC9B,qiGAA6C;;qBAE9C;;;8BAGEG,UAAK;oCACLA,UAAK;0CACLA,UAAK;+CACLA,UAAK;uCACLA,UAAK;kCACLA,UAAK;gDACLA,UAAK;yCACLA,UAAK;wCACLA,UAAK;6BACLA,UAAK;gCACLA,UAAK;oCAELW,WAAM;oCACNA,WAAM;mDACNA,WAAM;4CACNA,WAAM;;QAmCT,gCAAC;KAzDD,IAyDC;;;QAlDC,4CAA0B;;QAC1B,kDAAsC;;QACtC,wDAAqC;;QACrC,6DAA0C;;QAC1C,qDAAkC;;QAClC,gDAA6B;;QAC7B,8DAA2C;;QAC3C,uDAAoC;;QACpC,sDAAmC;;QACnC,2CAAuB;;QACvB,8CAA2B;;QAE3B,kDAA6C;;QAC7C,kDAAqD;;QACrD,iEAA4D;;QAC5D,0DAAqD;;;;;QACrD,4CAAyB;;;;;;;AC7B3B;QAYA;SAWsC;;oBAXrCT,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACP+C,0BAAoB;4BACpB9C,mBAAY;4BACZS,kBAAY;4BACZ,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB;4BACjE,uBAAuB,EAAEmC,sBAAgB,EAAE,iBAAiB,EAAE,kBAAkB;yBAAC;wBACjF,YAAY,EAAE,CAAC,yBAAyB,CAAC;wBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;wBACpC,eAAe,EAAE,CAAC,yBAAyB,CAAC;qBAC/C;;QACoC,6BAAC;KAXtC;;;;;;ACVA;QA6BE,sBAAY,IAAU;YAftB,aAAQ,GAAG,CAAC,CAAC;YAgBX,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC3B;QACH,mBAAC;KAAA,IAAA;;;QAhCC,6BAAe;;QACf,+BAAiB;;QACjB,4BAAc;;QACd,4BAAc;;QACd,+BAAiB;;QACjB,mCAAqB;;QACrB,gCAAkB;;QAClB,6BAAe;;QACf,wCAA0B;;QAC1B,qCAAyB;;QACzB,+BAAiB;;QACjB,gCAAkB;;QAClB,iCAAsB;;QACtB,gCAAa;;QACb,gDAAkC;;QAClC,6CAA+B;;QAC/B,sDAAwC;;QACxC,gCAAiB;;QACjB,oCAA4B;;QAC5B,kDAAqC;;QACrC,iCAAmB;;QACnB,oCAAsB;;QACtB,kCAAqB;;QACrB,4CAA6B;;QAC7B,iCAAmB;;QACnB,0CAAwC;;QACxC,mCAA0B;;;;;;;;QC3BO9C,iCAAkB;QAArD;YAAA,qEAEC;YADU,iBAAW,GAAgB,UAAU,CAAC;;SAChD;QAAD,oBAAC;KAFD,CAAmC,SAAS,GAE3C;;;QADC,oCAA+C;;;;;;;;;;ICCjD,qBAIC;;;QAHC,uBAAc;;QACd,uBAAc;;QACd,0BAAkB;;;;;IAGpB,mCAKC;;;QAJC,uCAA6C;;QAC7C,8CAAyB;;QACzB,+CAA0B;;QAC1B,0CAAoB;;AAGtB;QAAmCA,iCAA4B;QAO7D,uBAAY,OAA6B;YAAzC,YACE,kBAAM,OAAO,CAAC,SA6Bf;YApCQ,iBAAW,GAAgB,UAAU,CAAC;YAQ7C,KAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;;;gBAGnD,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;oBAC1C,IAAI,OAAO,CAAC,cAAc,EAAE;;wBAE1B,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;;;;wBAAC,UAAC,CAAS,IAAK,QAAC,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC,IAAC,EAAC,CAAC;qBAC1E;yBAAM;;wBAEL,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;;;;wBAAC,UAAC,CAAS,IAAK,QAAC,EAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC,IAAC,EAAC,CAAC;qBAC3E;iBACF;qBAAM;oBACL,IAAI,OAAO,CAAC,cAAc,EAAE;;wBAE1B,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;;;;wBAAC,UAAC,CAAS,IAAK,QAAC,EAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAC,IAAC,EAAC,CAAC;qBACtF;yBAAM;;wBAEL,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;qBAChC;iBACF;aACF;YAED,KAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;YAC/C,KAAI,CAAC,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;YACjD,KAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;YAE9D,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,gBAAgB,EAAE,CAAC;;SAC1C;;;;;QAES,wCAAgB;;;;QAA1B;;gBACQ,UAAU,GAAG,IAAI,CAAC,UAAU;YAClC;;;;YAAO,UAAC,OAAwB;gBAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE;oBACnF,OAAO,EAAC,cAAc,EAAE,IAAI,EAAC,CAAA;iBAC9B;aACF,EAAA;SACF;QACH,oBAAC;KA/CD,CAAmC,SAAS,GA+C3C;;;QA9CC,oCAA+C;;QAC/C,gCAAkC;;QAClC,uCAAwB;;QACxB,wCAAyB;;QACzB,mCAAmB;;;;;;;;QCpBf,iBAAiB,GAAG,CAAC;;;;IAI3B,0CAIC;;;QAHC,+CAAmB;;QACnB,gDAAkB;;QAClB,+CAAiB;;AAGnB;QAA0CA,wCAAmB;QAM3D,8BAAY,OAAoC;YAAhD,YACE,kBAAM,OAAO,CAAC,SAQf;YAdQ,iBAAW,GAAgB,MAAM,CAAC;YAOzC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;aAC3C;YACD,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;YAC5C,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;YACtD,KAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACnC,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;SACjB;QACH,2BAAC;KAhBD,CAA0C,SAAS,GAgBlD;;;QAfC,2CAA2C;;QAC3C,wCAAmB;;QACnB,yCAAkB;;QAClB,wCAAiB;;;;;;;;QCbgBA,iCAAiB;QAApD;YAAA,qEAA+F;YAAxC,iBAAW,GAAgB,UAAU,CAAC;;SAAE;QAAD,oBAAC;KAA/F,CAAmC,SAAS,GAAmD;;;QAAxC,oCAAsC;;;;;;;;;;ICC7F,kCAKC;;;QAJC,0CAAyB;;QACzB,qCAAgB;;QAChB,qCAAgB;;QAChB,0CAAsB;;AAGxB;QAAkCA,gCAAiB;QASjD,sBAAY,OAA4B;YAAxC,YACE,kBAAM,OAAO,CAAC,SAOf;YAhBQ,iBAAW,GAAgB,SAAS,CAAC;YAU5C,KAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;YACjD,KAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YACnC,KAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YACnC,KAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;YACnD,KAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;YACzD,KAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;;SACjD;QACH,mBAAC;KAlBD,CAAkC,SAAS,GAkB1C;;;QAjBC,mCAA8C;;QAC9C,mCAAyB;;QACzB,8BAAe;;QACf,8BAAe;;QACf,sCAAuB;;QACvB,yCAA0B;;QAC1B,mCAAqB;;;;;;;;;;ICfvB,mBAKC;;;QAJC,sBAAe;;QACf,qBAAc;;QACd,yBAAmB;;QACnB,wBAAkB;;;;;IAGpB,kCAAgF;;;QAAhB,oCAAc;;AAE9E;QAAkCA,gCAAa;QAG7C,sBAAY,OAA4B;YAAxC,YACE,kBAAM;gBACJ,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC3C,CAAC,SACH;YAZQ,iBAAW,GAAgB,SAAS,CAAC;;SAY7C;QACH,mBAAC;KAdD,CAAkC,aAAa,GAc9C;;;QAbC,mCAA8C;;;;;;IAehD,SAAS,UAAU,CAAC,QAAgB;QAClC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACnC,OAAO,QAAQ,CAAC,GAAG;;;;YAAC,UAAA,IAAI;;oBAChB,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;gBAEhF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAChE,OAAO;wBACL,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;qBAChH,CAAC;iBACH;gBACD,OAAO,EAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;aACxD,EAAC,CAAC;SACJ;QACD,OAAO,CAAC,EAAC,KAAK,EAAE,2CAA2C,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;KAC1F;;;;;;IAED,SAAS,mBAAmB,CAAC,CAAO,EAAE,CAAO;QAC3C,IAAI,CAAC,IAAI,IAAI,EAAE;YACb,OAAO,CAAC,CAAC,CAAC;SACX;QACD,IAAI,CAAC,IAAI,IAAI,EAAE;YACb,OAAO,CAAC,CAAC;SACV;QACD,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACvC;;;;;;;IAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAa;;YACvE,YAAY,GAAG,EAAE;QACrB,YAAY,IAAI,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC;QACjD,YAAY,IAAI,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;QAC/C,YAAY,IAAI,KAAK,GAAG,MAAI,KAAK,MAAG,GAAG,EAAE,CAAC;QAC1C,OAAO,YAAY,CAAC;KACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
\No newline at end of file