UNPKG

60.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-uploader.umd.js","sources":["../../projects/ngx-uploader/src/lib/interfaces.ts","../../../node_modules/tslib/tslib.es6.js","../../projects/ngx-uploader/src/lib/ngx-uploader.class.ts","../../projects/ngx-uploader/src/lib/ng-file-drop.directive.ts","../../projects/ngx-uploader/src/lib/ng-file-select.directive.ts","../../projects/ngx-uploader/src/lib/ngx-uploader.module.ts","../../../projects/ngx-uploader/src/public_api.ts","../../../projects/ngx-uploader/src/ngx-uploader.ts"],"sourcesContent":["import { Subscription } from 'rxjs';\n\nexport interface UploaderOptions {\n concurrency: number;\n allowedContentTypes?: string[];\n maxUploads?: number;\n maxFileSize?: number;\n}\n\nexport interface BlobFile extends Blob {\n name: string;\n}\n\nexport enum UploadStatus {\n Queue,\n Uploading,\n Done,\n Cancelled\n}\n\nexport interface UploadProgress {\n status: UploadStatus;\n data?: {\n percentage: number;\n speed: number;\n speedHuman: string;\n startTime: number | null;\n endTime: number | null;\n eta: number | null;\n etaHuman: string | null;\n };\n}\n\nexport interface UploadFile {\n id: string;\n fileIndex: number;\n lastModifiedDate: Date;\n name: string;\n size: number;\n type: string;\n form: FormData;\n progress: UploadProgress;\n response?: any;\n responseStatus?: number;\n sub?: Subscription | any;\n nativeFile?: File;\n responseHeaders?: { [key: string]: string };\n}\n\nexport interface UploadOutput {\n type: 'addedToQueue' | 'allAddedToQueue' | 'uploading' | 'done' | 'start' | 'cancelled' | 'dragOver'\n | 'dragOut' | 'drop' | 'removed' | 'removedAll' | 'rejected';\n file?: UploadFile;\n nativeFile?: File;\n}\n\nexport interface UploadInput {\n type: 'uploadAll' | 'uploadFile' | 'cancel' | 'cancelAll' | 'remove' | 'removeAll';\n url?: string;\n method?: string;\n id?: string;\n fieldName?: string;\n fileIndex?: number;\n file?: UploadFile;\n data?: { [key: string]: string | Blob };\n headers?: { [key: string]: string };\n includeWebKitFormBoundary?: boolean; // If false, only the file is send trough xhr.send (WebKitFormBoundary is omit)\n withCredentials?: boolean;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, 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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { EventEmitter } from '@angular/core';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { mergeMap, finalize } from 'rxjs/operators';\nimport { UploadFile, UploadOutput, UploadInput, UploadStatus, BlobFile } from './interfaces';\n\nexport function humanizeBytes(bytes: number): string {\n if (bytes === 0) {\n return '0 Byte';\n }\n\n const k = 1024;\n const sizes: string[] = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const i: number = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n}\n\nexport class NgUploaderService {\n queue: UploadFile[];\n serviceEvents: EventEmitter<UploadOutput>;\n uploadScheduler: Subject<{ file: UploadFile; event: UploadInput }>;\n subs: { id: string; sub: Subscription }[];\n contentTypes: string[];\n maxUploads: number;\n maxFileSize: number;\n\n constructor(\n concurrency: number = Number.POSITIVE_INFINITY,\n contentTypes: string[] = ['*'],\n maxUploads: number = Number.POSITIVE_INFINITY,\n maxFileSize: number = Number.POSITIVE_INFINITY\n ) {\n this.queue = [];\n this.serviceEvents = new EventEmitter<UploadOutput>();\n this.uploadScheduler = new Subject();\n this.subs = [];\n this.contentTypes = contentTypes;\n this.maxUploads = maxUploads;\n this.maxFileSize = maxFileSize;\n\n this.uploadScheduler\n .pipe(mergeMap(upload => this.startUpload(upload), concurrency))\n .subscribe(uploadOutput => this.serviceEvents.emit(uploadOutput));\n }\n\n handleFiles(incomingFiles: FileList): void {\n const allowedIncomingFiles: File[] = [].reduce.call(\n incomingFiles,\n (acc: File[], checkFile: File, i: number) => {\n const futureQueueLength = acc.length + this.queue.length + 1;\n if (\n this.isContentTypeAllowed(checkFile.type) &&\n futureQueueLength <= this.maxUploads &&\n this.isFileSizeAllowed(checkFile.size)\n ) {\n acc = acc.concat(checkFile);\n } else {\n const rejectedFile: UploadFile = this.makeUploadFile(checkFile, i);\n this.serviceEvents.emit({ type: 'rejected', file: rejectedFile });\n }\n\n return acc;\n },\n []\n );\n\n this.queue.push(\n ...[].map.call(allowedIncomingFiles, (file: File, i: number) => {\n const uploadFile: UploadFile = this.makeUploadFile(file, i);\n this.serviceEvents.emit({ type: 'addedToQueue', file: uploadFile });\n return uploadFile;\n })\n );\n\n this.serviceEvents.emit({ type: 'allAddedToQueue' });\n }\n\n initInputEvents(input: EventEmitter<UploadInput>): Subscription {\n return input.subscribe((event: UploadInput) => {\n switch (event.type) {\n case 'uploadFile':\n const uploadFileIndex = this.queue.findIndex(file => file === event.file);\n if (uploadFileIndex !== -1 && event.file) {\n this.uploadScheduler.next({ file: this.queue[uploadFileIndex], event: event });\n }\n break;\n case 'uploadAll':\n const files = this.queue.filter(file => file.progress.status === UploadStatus.Queue);\n files.forEach(file => this.uploadScheduler.next({ file: file, event: event }));\n break;\n case 'cancel':\n const id = event.id || null;\n if (!id) {\n return;\n }\n const subs = this.subs.filter(sub => sub.id === id);\n subs.forEach(sub => {\n if (sub.sub) {\n sub.sub.unsubscribe();\n const fileIndex = this.queue.findIndex(file => file.id === id);\n if (fileIndex !== -1) {\n this.queue[fileIndex].progress.status = UploadStatus.Cancelled;\n this.serviceEvents.emit({ type: 'cancelled', file: this.queue[fileIndex] });\n }\n }\n });\n break;\n case 'cancelAll':\n this.subs.forEach(sub => {\n if (sub.sub) {\n sub.sub.unsubscribe();\n }\n\n const file = this.queue.find(uploadFile => uploadFile.id === sub.id);\n if (file) {\n file.progress.status = UploadStatus.Cancelled;\n this.serviceEvents.emit({ type: 'cancelled', file: file });\n }\n });\n break;\n case 'remove':\n if (!event.id) {\n return;\n }\n\n const i = this.queue.findIndex(file => file.id === event.id);\n if (i !== -1) {\n const file = this.queue[i];\n this.queue.splice(i, 1);\n this.serviceEvents.emit({ type: 'removed', file: file });\n }\n break;\n case 'removeAll':\n if (this.queue.length) {\n this.queue = [];\n this.serviceEvents.emit({ type: 'removedAll' });\n }\n break;\n }\n });\n }\n\n startUpload(upload: { file: UploadFile; event: UploadInput }): Observable<UploadOutput> {\n return new Observable(observer => {\n const sub = this.uploadFile(upload.file, upload.event)\n .pipe(\n finalize(() => {\n if (!observer.closed) {\n observer.complete();\n }\n })\n )\n .subscribe(\n output => {\n observer.next(output);\n },\n err => {\n observer.error(err);\n observer.complete();\n },\n () => {\n observer.complete();\n }\n );\n\n this.subs.push({ id: upload.file.id, sub: sub });\n });\n }\n\n uploadFile(file: UploadFile, event: UploadInput): Observable<UploadOutput> {\n return new Observable(observer => {\n const url = event.url || '';\n const method = event.method || 'POST';\n const data = event.data || {};\n const headers = event.headers || {};\n\n const xhr = new XMLHttpRequest();\n const time: number = new Date().getTime();\n let progressStartTime: number = (file.progress.data && file.progress.data.startTime) || time;\n let speed = 0;\n let eta: number | null = null;\n\n xhr.upload.addEventListener(\n 'progress',\n (e: ProgressEvent) => {\n if (e.lengthComputable) {\n const percentage = Math.round((e.loaded * 100) / e.total);\n const diff = new Date().getTime() - time;\n speed = Math.round((e.loaded / diff) * 1000);\n progressStartTime = (file.progress.data && file.progress.data.startTime) || new Date().getTime();\n eta = Math.ceil((e.total - e.loaded) / speed);\n\n file.progress = {\n status: UploadStatus.Uploading,\n data: {\n percentage: percentage,\n speed: speed,\n speedHuman: `${humanizeBytes(speed)}/s`,\n startTime: progressStartTime,\n endTime: null,\n eta: eta,\n etaHuman: this.secondsToHuman(eta)\n }\n };\n\n observer.next({ type: 'uploading', file: file });\n }\n },\n false\n );\n\n xhr.upload.addEventListener('error', (e: Event) => {\n observer.error(e);\n observer.complete();\n });\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n const speedAverage = Math.round((file.size / (new Date().getTime() - progressStartTime)) * 1000);\n file.progress = {\n status: UploadStatus.Done,\n data: {\n percentage: 100,\n speed: speedAverage,\n speedHuman: `${humanizeBytes(speedAverage)}/s`,\n startTime: progressStartTime,\n endTime: new Date().getTime(),\n eta: eta,\n etaHuman: this.secondsToHuman(eta || 0)\n }\n };\n\n file.responseStatus = xhr.status;\n\n try {\n file.response = JSON.parse(xhr.response);\n } catch (e) {\n file.response = xhr.response;\n }\n\n file.responseHeaders = this.parseResponseHeaders(xhr.getAllResponseHeaders());\n\n observer.next({ type: 'done', file: file });\n\n observer.complete();\n }\n };\n\n xhr.open(method, url, true);\n xhr.withCredentials = event.withCredentials ? true : false;\n\n try {\n const uploadFile = <BlobFile>file.nativeFile;\n const uploadIndex = this.queue.findIndex(outFile => outFile.nativeFile === uploadFile);\n\n if (this.queue[uploadIndex].progress.status === UploadStatus.Cancelled) {\n observer.complete();\n }\n\n Object.keys(headers).forEach(key => xhr.setRequestHeader(key, headers[key]));\n\n let bodyToSend: FormData | BlobFile;\n\n if (event.includeWebKitFormBoundary !== false) {\n Object.keys(data).forEach(key => file.form.append(key, data[key]));\n file.form.append(event.fieldName || 'file', uploadFile, uploadFile.name);\n bodyToSend = file.form;\n } else {\n bodyToSend = uploadFile;\n }\n\n this.serviceEvents.emit({ type: 'start', file: file });\n xhr.send(bodyToSend);\n } catch (e) {\n observer.complete();\n }\n\n return () => {\n xhr.abort();\n };\n });\n }\n\n secondsToHuman(sec: number): string {\n return new Date(sec * 1000).toISOString().substr(11, 8);\n }\n\n generateId(): string {\n return Math.random().toString(36).substring(7);\n }\n\n setContentTypes(contentTypes: string[]): void {\n if (typeof contentTypes !== 'undefined' && contentTypes instanceof Array) {\n if (contentTypes.find((type: string) => type === '*') !== undefined) {\n this.contentTypes = ['*'];\n } else {\n this.contentTypes = contentTypes;\n }\n return;\n }\n this.contentTypes = ['*'];\n }\n\n allContentTypesAllowed(): boolean {\n return this.contentTypes.find((type: string) => type === '*') !== undefined;\n }\n\n isContentTypeAllowed(mimetype: string): boolean {\n if (this.allContentTypesAllowed()) {\n return true;\n }\n return this.contentTypes.find((type: string) => type === mimetype) !== undefined;\n }\n\n isFileSizeAllowed(fileSize: number): boolean {\n if (!this.maxFileSize) {\n return true;\n }\n return fileSize <= this.maxFileSize;\n }\n\n makeUploadFile(file: File, index: number): UploadFile {\n return {\n fileIndex: index,\n id: this.generateId(),\n name: file.name,\n size: file.size,\n type: file.type,\n form: new FormData(),\n progress: {\n status: UploadStatus.Queue,\n data: {\n percentage: 0,\n speed: 0,\n speedHuman: `${humanizeBytes(0)}/s`,\n startTime: null,\n endTime: null,\n eta: null,\n etaHuman: null\n }\n },\n lastModifiedDate: new Date(file.lastModified),\n sub: undefined,\n nativeFile: file\n };\n }\n\n private parseResponseHeaders(httpHeaders: string): { [key: string]: string } {\n if (!httpHeaders) {\n return;\n }\n\n return httpHeaders\n .split('\\n')\n .map((x: string) => x.split(/: */, 2))\n .filter((x: string[]) => x[0])\n .reduce((acc: { [key: string]: string }, x: string[]) => {\n acc[x[0]] = x[1];\n return acc;\n }, {});\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output, OnInit, OnDestroy, HostListener } from '@angular/core';\nimport { UploadOutput, UploadInput, UploaderOptions } from './interfaces';\nimport { NgUploaderService } from './ngx-uploader.class';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[ngFileDrop]'\n})\nexport class NgFileDropDirective implements OnInit, OnDestroy {\n @Input() options: UploaderOptions;\n @Input() uploadInput: EventEmitter<UploadInput>;\n @Output() uploadOutput: EventEmitter<UploadOutput>;\n\n upload: NgUploaderService;\n el: HTMLInputElement;\n\n _sub: Subscription[];\n\n constructor(public elementRef: ElementRef) {\n this.uploadOutput = new EventEmitter<UploadOutput>();\n }\n\n ngOnInit() {\n this._sub = [];\n const concurrency = this.options && this.options.concurrency || Number.POSITIVE_INFINITY;\n const allowedContentTypes = this.options && this.options.allowedContentTypes || ['*'];\n const maxUploads = this.options && this.options.maxUploads || Number.POSITIVE_INFINITY;\n const maxFileSize = this.options && this.options.maxFileSize || Number.POSITIVE_INFINITY;\n this.upload = new NgUploaderService(concurrency, allowedContentTypes, maxUploads, maxFileSize);\n\n this.el = this.elementRef.nativeElement;\n\n this._sub.push(\n this.upload.serviceEvents.subscribe((event: UploadOutput) => {\n this.uploadOutput.emit(event);\n })\n );\n\n if (this.uploadInput instanceof EventEmitter) {\n this._sub.push(this.upload.initInputEvents(this.uploadInput));\n }\n\n this.el.addEventListener('drop', this.stopEvent, false);\n this.el.addEventListener('dragenter', this.stopEvent, false);\n this.el.addEventListener('dragover', this.stopEvent, false);\n }\n\n ngOnDestroy() {\n this._sub.forEach(sub => sub.unsubscribe());\n }\n\n stopEvent = (e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(e: any) {\n e.stopPropagation();\n e.preventDefault();\n\n const event: UploadOutput = { type: 'drop' };\n this.uploadOutput.emit(event);\n this.upload.handleFiles(e.dataTransfer.files);\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(e: Event) {\n if (!e) {\n return;\n }\n\n const event: UploadOutput = { type: 'dragOver' };\n this.uploadOutput.emit(event);\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(e: Event) {\n if (!e) {\n return;\n }\n\n const event: UploadOutput = { type: 'dragOut' };\n this.uploadOutput.emit(event);\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output, OnInit, OnDestroy } from '@angular/core';\nimport { UploadOutput, UploaderOptions } from './interfaces';\nimport { NgUploaderService } from './ngx-uploader.class';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[ngFileSelect]'\n})\nexport class NgFileSelectDirective implements OnInit, OnDestroy {\n @Input() options: UploaderOptions;\n @Input() uploadInput: EventEmitter<any>;\n @Output() uploadOutput: EventEmitter<UploadOutput>;\n\n upload: NgUploaderService;\n el: HTMLInputElement;\n\n _sub: Subscription[];\n\n constructor(public elementRef: ElementRef) {\n this.uploadOutput = new EventEmitter<UploadOutput>();\n }\n\n ngOnInit() {\n this._sub = [];\n const concurrency = this.options && this.options.concurrency || Number.POSITIVE_INFINITY;\n const allowedContentTypes = this.options && this.options.allowedContentTypes || ['*'];\n const maxUploads = this.options && this.options.maxUploads || Number.POSITIVE_INFINITY;\n const maxFileSize = this.options && this.options.maxFileSize || Number.POSITIVE_INFINITY;\n this.upload = new NgUploaderService(concurrency, allowedContentTypes, maxUploads, maxFileSize);\n\n this.el = this.elementRef.nativeElement;\n this.el.addEventListener('change', this.fileListener, false);\n\n this._sub.push(\n this.upload.serviceEvents.subscribe((event: UploadOutput) => {\n this.uploadOutput.emit(event);\n })\n );\n\n if (this.uploadInput instanceof EventEmitter) {\n this._sub.push(this.upload.initInputEvents(this.uploadInput));\n }\n }\n\n ngOnDestroy() {\n if (this.el){\n this.el.removeEventListener('change', this.fileListener, false);\n this._sub.forEach(sub => sub.unsubscribe());\n }\n }\n\n fileListener = () => {\n if (this.el.files) {\n this.upload.handleFiles(this.el.files);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgFileDropDirective } from './ng-file-drop.directive';\nimport { NgFileSelectDirective } from './ng-file-select.directive';\n\n@NgModule({\n declarations: [NgFileDropDirective, NgFileSelectDirective],\n exports: [NgFileDropDirective, NgFileSelectDirective]\n})\nexport class NgxUploaderModule { }\n","/*\n * Public API Surface of ngx-uploader\n */\n\nexport * from './lib/interfaces';\nexport * from './lib/ng-file-drop.directive';\nexport * from './lib/ng-file-select.directive';\nexport * from './lib/ngx-uploader.class';\nexport * from './lib/ngx-uploader.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["UploadStatus","EventEmitter","Subject","mergeMap","Observable","finalize","Directive","ElementRef","Input","Output","HostListener","NgModule"],"mappings":";;;;;;IAaA,WAAY,YAAY;QACtB,iDAAK,CAAA;QACL,yDAAS,CAAA;QACT,+CAAI,CAAA;QACJ,yDAAS,CAAA;IACX,CAAC,EALWA,oBAAY,KAAZA,oBAAY;;ICbxB;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,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;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,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;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,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;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,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;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,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;QACjH,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,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,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;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,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;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,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;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;aAEe,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;aAEe,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,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;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;IAAA,CAAC;aAEc,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,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,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,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;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,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;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,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;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,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,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,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;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,UAAU;QACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;SACzE;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK;QAC9D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;SACzE;QACD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB;;aC7NgB,aAAa,CAAC,KAAa;QACzC,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,QAAQ,CAAC;SACjB;QAED,IAAM,CAAC,GAAG,IAAI,CAAC;QACf,IAAM,KAAK,GAAa,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChE,IAAM,CAAC,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;;QAWC,2BACE,WAA8C,EAC9C,YAA8B,EAC9B,UAA6C,EAC7C,WAA8C;YAJhD,iBAiBC;YAhBC,4BAAA,EAAA,cAAsB,MAAM,CAAC,iBAAiB;YAC9C,6BAAA,EAAA,gBAA0B,GAAG,CAAC;YAC9B,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;YAC7C,4BAAA,EAAA,cAAsB,MAAM,CAAC,iBAAiB;YAE9C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,GAAG,IAAIC,iBAAY,EAAgB,CAAC;YACtD,IAAI,CAAC,eAAe,GAAG,IAAIC,YAAO,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAE/B,IAAI,CAAC,eAAe;iBACjB,IAAI,CAACC,kBAAQ,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAA,EAAE,WAAW,CAAC,CAAC;iBAC/D,SAAS,CAAC,UAAA,YAAY,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,GAAA,CAAC,CAAC;SACrE;QAED,uCAAW,GAAX,UAAY,aAAuB;;YAAnC,iBA8BC;YA7BC,IAAM,oBAAoB,GAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CACjD,aAAa,EACb,UAAC,GAAW,EAAE,SAAe,EAAE,CAAS;gBACtC,IAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,GAAG,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC7D,IACE,KAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC;oBACzC,iBAAiB,IAAI,KAAI,CAAC,UAAU;oBACpC,KAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,EACtC;oBACA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;iBAC7B;qBAAM;oBACL,IAAM,YAAY,GAAe,KAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBACnE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;iBACnE;gBAED,OAAO,GAAG,CAAC;aACZ,EACD,EAAE,CACH,CAAC;YAEF,CAAA,KAAA,IAAI,CAAC,KAAK,EAAC,IAAI,oBACV,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAC,IAAU,EAAE,CAAS;gBACzD,IAAM,UAAU,GAAe,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5D,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACpE,OAAO,UAAU,CAAC;aACnB,CAAC,GACF;YAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;SACtD;QAED,2CAAe,GAAf,UAAgB,KAAgC;YAAhD,iBA+DC;YA9DC,OAAO,KAAK,CAAC,SAAS,CAAC,UAAC,KAAkB;gBACxC,QAAQ,KAAK,CAAC,IAAI;oBAChB,KAAK,YAAY;wBACf,IAAM,eAAe,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,KAAK,CAAC,IAAI,GAAA,CAAC,CAAC;wBAC1E,IAAI,eAAe,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;4BACxC,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;yBAChF;wBACD,MAAM;oBACR,KAAK,WAAW;wBACd,IAAM,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAKH,oBAAY,CAAC,KAAK,GAAA,CAAC,CAAC;wBACrF,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAA,CAAC,CAAC;wBAC/E,MAAM;oBACR,KAAK,QAAQ;wBACX,IAAM,IAAE,GAAG,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC;wBAC5B,IAAI,CAAC,IAAE,EAAE;4BACP,OAAO;yBACR;wBACD,IAAM,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,EAAE,KAAK,IAAE,GAAA,CAAC,CAAC;wBACpD,IAAI,CAAC,OAAO,CAAC,UAAA,GAAG;4BACd,IAAI,GAAG,CAAC,GAAG,EAAE;gCACX,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gCACtB,IAAM,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,KAAK,IAAE,GAAA,CAAC,CAAC;gCAC/D,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oCACpB,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAGA,oBAAY,CAAC,SAAS,CAAC;oCAC/D,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iCAC7E;6BACF;yBACF,CAAC,CAAC;wBACH,MAAM;oBACR,KAAK,WAAW;wBACd,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,GAAG;4BACnB,IAAI,GAAG,CAAC,GAAG,EAAE;gCACX,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;6BACvB;4BAED,IAAM,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAA,CAAC,CAAC;4BACrE,IAAI,IAAI,EAAE;gCACR,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAGA,oBAAY,CAAC,SAAS,CAAC;gCAC9C,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;6BAC5D;yBACF,CAAC,CAAC;wBACH,MAAM;oBACR,KAAK,QAAQ;wBACX,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;4BACb,OAAO;yBACR;wBAED,IAAM,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,GAAA,CAAC,CAAC;wBAC7D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;4BACZ,IAAM,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC3B,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxB,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC1D;wBACD,MAAM;oBACR,KAAK,WAAW;wBACd,IAAI,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE;4BACrB,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;4BAChB,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;yBACjD;wBACD,MAAM;iBACT;aACF,CAAC,CAAC;SACJ;QAED,uCAAW,GAAX,UAAY,MAAgD;YAA5D,iBAyBC;YAxBC,OAAO,IAAII,eAAU,CAAC,UAAA,QAAQ;gBAC5B,IAAM,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;qBACnD,IAAI,CACHC,kBAAQ,CAAC;oBACP,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;wBACpB,QAAQ,CAAC,QAAQ,EAAE,CAAC;qBACrB;iBACF,CAAC,CACH;qBACA,SAAS,CACR,UAAA,MAAM;oBACJ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACvB,EACD,UAAA,GAAG;oBACD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACpB,QAAQ,CAAC,QAAQ,EAAE,CAAC;iBACrB,EACD;oBACE,QAAQ,CAAC,QAAQ,EAAE,CAAC;iBACrB,CACF,CAAC;gBAEJ,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;aAClD,CAAC,CAAC;SACJ;QAED,sCAAU,GAAV,UAAW,IAAgB,EAAE,KAAkB;YAA/C,iBAgHC;YA/GC,OAAO,IAAID,eAAU,CAAC,UAAA,QAAQ;gBAC5B,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;gBAC5B,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC;gBACtC,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC9B,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;gBAEpC,IAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;gBACjC,IAAM,IAAI,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC1C,IAAI,iBAAiB,GAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;gBAC7F,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,GAAG,GAAkB,IAAI,CAAC;gBAE9B,GAAG,CAAC,MAAM,CAAC,gBAAgB,CACzB,UAAU,EACV,UAAC,CAAgB;oBACf,IAAI,CAAC,CAAC,gBAAgB,EAAE;wBACtB,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC1D,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;wBACzC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC;wBAC7C,iBAAiB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;wBACjG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;wBAE9C,IAAI,CAAC,QAAQ,GAAG;4BACd,MAAM,EAAEJ,oBAAY,CAAC,SAAS;4BAC9B,IAAI,EAAE;gCACJ,UAAU,EAAE,UAAU;gCACtB,KAAK,EAAE,KAAK;gCACZ,UAAU,EAAK,aAAa,CAAC,KAAK,CAAC,OAAI;gCACvC,SAAS,EAAE,iBAAiB;gCAC5B,OAAO,EAAE,IAAI;gCACb,GAAG,EAAE,GAAG;gCACR,QAAQ,EAAE,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC;6BACnC;yBACF,CAAC;wBAEF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;qBAClD;iBACF,EACD,KAAK,CACN,CAAC;gBAEF,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,CAAQ;oBAC5C,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;iBACrB,CAAC,CAAC;gBAEH,GAAG,CAAC,kBAAkB,GAAG;oBACvB,IAAI,GAAG,CAAC,UAAU,KAAK,cAAc,CAAC,IAAI,EAAE;wBAC1C,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,IAAI,CAAC,CAAC;wBACjG,IAAI,CAAC,QAAQ,GAAG;4BACd,MAAM,EAAEA,oBAAY,CAAC,IAAI;4BACzB,IAAI,EAAE;gCACJ,UAAU,EAAE,GAAG;gCACf,KAAK,EAAE,YAAY;gCACnB,UAAU,EAAK,aAAa,CAAC,YAAY,CAAC,OAAI;gCAC9C,SAAS,EAAE,iBAAiB;gCAC5B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;gCAC7B,GAAG,EAAE,GAAG;gCACR,QAAQ,EAAE,KAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;6BACxC;yBACF,CAAC;wBAEF,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;wBAEjC,IAAI;4BACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;yBAC1C;wBAAC,OAAO,CAAC,EAAE;4BACV,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;yBAC9B;wBAED,IAAI,CAAC,eAAe,GAAG,KAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC;wBAE9E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAE5C,QAAQ,CAAC,QAAQ,EAAE,CAAC;qBACrB;iBACF,CAAC;gBAEF,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC5B,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,GAAG,IAAI,GAAG,KAAK,CAAC;gBAE3D,IAAI;oBACF,IAAM,YAAU,GAAa,IAAI,CAAC,UAAU,CAAC;oBAC7C,IAAM,WAAW,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,UAAU,KAAK,YAAU,GAAA,CAAC,CAAC;oBAEvF,IAAI,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAKA,oBAAY,CAAC,SAAS,EAAE;wBACtE,QAAQ,CAAC,QAAQ,EAAE,CAAC;qBACrB;oBAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAA,CAAC,CAAC;oBAE7E,IAAI,UAA+B,SAAA,CAAC;oBAEpC,IAAI,KAAK,CAAC,yBAAyB,KAAK,KAAK,EAAE;wBAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAA,CAAC,CAAC;wBACnE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,EAAE,YAAU,EAAE,YAAU,CAAC,IAAI,CAAC,CAAC;wBACzE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;qBACxB;yBAAM;wBACL,UAAU,GAAG,YAAU,CAAC;qBACzB;oBAED,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACtB;gBAAC,OAAO,CAAC,EAAE;oBACV,QAAQ,CAAC,QAAQ,EAAE,CAAC;iBACrB;gBAED,OAAO;oBACL,GAAG,CAAC,KAAK,EAAE,CAAC;iBACb,CAAC;aACH,CAAC,CAAC;SACJ;QAED,0CAAc,GAAd,UAAe,GAAW;YACxB,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACzD;QAED,sCAAU,GAAV;YACE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAChD;QAED,2CAAe,GAAf,UAAgB,YAAsB;YACpC,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,YAAY,YAAY,KAAK,EAAE;gBACxE,IAAI,YAAY,CAAC,IAAI,CAAC,UAAC,IAAY,IAAK,OAAA,IAAI,KAAK,GAAG,GAAA,CAAC,KAAK,SAAS,EAAE;oBACnE,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC3B;qBAAM;oBACL,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;iBAClC;gBACD,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;SAC3B;QAED,kDAAsB,GAAtB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,IAAY,IAAK,OAAA,IAAI,KAAK,GAAG,GAAA,CAAC,KAAK,SAAS,CAAC;SAC7E;QAED,gDAAoB,GAApB,UAAqB,QAAgB;YACnC,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;gBACjC,OAAO,IAAI,CAAC;aACb;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,IAAY,IAAK,OAAA,IAAI,KAAK,QAAQ,GAAA,CAAC,KAAK,SAAS,CAAC;SAClF;QAED,6CAAiB,GAAjB,UAAkB,QAAgB;YAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,OAAO,IAAI,CAAC;aACb;YACD,OAAO,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC;SACrC;QAED,0CAAc,GAAd,UAAe,IAAU,EAAE,KAAa;YACtC,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,QAAQ,EAAE;gBACpB,QAAQ,EAAE;oBACR,MAAM,EAAEA,oBAAY,CAAC,KAAK;oBAC1B,IAAI,EAAE;wBACJ,UAAU,EAAE,CAAC;wBACb,KAAK,EAAE,CAAC;wBACR,UAAU,EAAK,aAAa,CAAC,CAAC,CAAC,OAAI;wBACnC,SAAS,EAAE,IAAI;wBACf,OAAO,EAAE,IAAI;wBACb,GAAG,EAAE,IAAI;wBACT,QAAQ,EAAE,IAAI;qBACf;iBACF;gBACD,gBAAgB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC7C,GAAG,EAAE,SAAS;gBACd,UAAU,EAAE,IAAI;aACjB,CAAC;SACH;QAEO,gDAAoB,GAApB,UAAqB,WAAmB;YAC9C,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO;aACR;YAED,OAAO,WAAW;iBACf,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,UAAC,CAAS,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAA,CAAC;iBACrC,MAAM,CAAC,UAAC,CAAW,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,GAAA,CAAC;iBAC7B,MAAM,CAAC,UAAC,GAA8B,EAAE,CAAW;gBAClD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO,GAAG,CAAC;aACZ,EAAE,EAAE,CAAC,CAAC;SACV;gCACF;KAAA;;;QCvVC,6BAAmB,UAAsB;YAAtB,eAAU,GAAV,UAAU,CAAY;YAiCzC,cAAS,GAAG,UAAC,CAAQ;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,CAAC,CAAC,cAAc,EAAE,CAAC;aACpB,CAAA;YAnCC,IAAI,CAAC,YAAY,GAAG,IAAIC,iBAAY,EAAgB,CAAC;SACtD;QAED,sCAAQ,GAAR;YAAA,iBAuBC;YAtBC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACzF,IAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,GAAG,CAAC,CAAC;YACtF,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACvF,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACzF,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAE/F,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAExC,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,UAAC,KAAmB;gBACtD,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC/B,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,YAAYA,iBAAY,EAAE;gBAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aAC/D;YAED,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SAC7D;QAED,yCAAW,GAAX;YACE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,WAAW,EAAE,GAAA,CAAC,CAAC;SAC7C;QAQM,oCAAM,GAAN,UAAO,CAAM;YAClB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,IAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC/C;QAGM,wCAAU,GAAV,UAAW,CAAQ;YACxB,IAAI,CAAC,CAAC,EAAE;gBACN,OAAO;aACR;YAED,IAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;QAGM,yCAAW,GAAX,UAAY,CAAQ;YACzB,IAAI,CAAC,CAAC,EAAE;gBACN,OAAO;aACR;YAED,IAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;;;;gBA/EFK,cAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;iBACzB;;;gBAPmBC,eAAU;;;0BAS3BC,UAAK;8BACLA,UAAK;+BACLC,WAAM;yBA6CNC,iBAAY,SAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;6BAU/BA,iBAAY,SAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;8BAUnCA,iBAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;;;;QC1DrC,+BAAmB,UAAsB;YAAzC,iBAEC;YAFkB,eAAU,GAAV,UAAU,CAAY;YAiCzC,iBAAY,GAAG;gBACb,IAAI,KAAI,CAAC,EAAE,CAAC,KAAK,EAAE;oBACjB,KAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;iBACxC;aACF,CAAA;YApCC,IAAI,CAAC,YAAY,GAAG,IAAIT,iBAAY,EAAgB,CAAC;SACtD;QAED,wCAAQ,GAAR;YAAA,iBAoBC;YAnBC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACzF,IAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,GAAG,CAAC,CAAC;YACtF,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACvF,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACzF,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAE/F,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAE7D,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,UAAC,KAAmB;gBACtD,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC/B,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,YAAYA,iBAAY,EAAE;gBAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aAC/D;SACF;QAED,2CAAW,GAAX;YACE,IAAI,IAAI,CAAC,EAAE,EAAC;gBACV,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAChE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,WAAW,EAAE,GAAA,CAAC,CAAC;aAC7C;SACF;;;;gBA5CFK,cAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;iBAC3B;;;gBAPmBC,eAAU;;;0BAS3BC,UAAK;8BACLA,UAAK;+BACLC,WAAM;;;;QCHT;;;;;gBAJCE,aAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;oBAC1D,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;iBACtD;;;ICPD;;;;ICAA;;;;;;;;;;;;;;;;"}
\No newline at end of file