ngx-techlify-core 18.68.0 → 18.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -122,7 +122,7 @@ let AuditLogListComponent = class AuditLogListComponent extends TechlifyListComp
122
122
  super.loadData(filters);
123
123
  }
124
124
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuditLogListComponent, deps: [{ token: i1.Router }, { token: i2.DomSanitizer }, { token: i3.FormBuilder }, { token: i4.AuditLogService }, { token: i5.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl", scrollContainer: "scrollContainer" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-2\">\n <mat-card>\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\" style=\"min-width: 200px\">\n <h5 class=\"mb-0\"> Audit Logs </h5>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\"\n class=\"mt-1\" name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\" [objectType]=\"objectType\"\n [objectId]=\"objectId\"></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"px-3\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"text-secondary\">\n <app-techlify-icon role=\"button\" name=\"view\" class=\"clickable\"\n (click)=\"logClicked(auditLog);$event.stopPropagation();\" matTooltip=\"View\"></app-techlify-icon>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: ["isCSV", "fileName", "data", "tableId"], outputs: ["isExportingToExcel"] }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i12.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i13.AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: ["filterForm", "objectId", "objectType"], outputs: ["valueChange"] }, { kind: "component", type: i14.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl", scrollContainer: "scrollContainer" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-2\">\n <mat-card>\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\" style=\"min-width: 200px\">\n <h5 class=\"mb-0\"> Audit Logs </h5>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\"\n class=\"mt-1\" name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\" [objectType]=\"objectType\"\n [objectId]=\"objectId\"></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"px-3\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"text-secondary\">\n <app-techlify-icon role=\"button\" name=\"view\" class=\"clickable\"\n (click)=\"logClicked(auditLog);$event.stopPropagation();\" matTooltip=\"View\"></app-techlify-icon>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: ["isCSV", "iconName", "fileName", "data", "tableId"], outputs: ["isExportingToExcel"] }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i12.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i13.AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: ["filterForm", "objectId", "objectType"], outputs: ["valueChange"] }, { kind: "component", type: i14.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
126
126
  };
127
127
  AuditLogListComponent = __decorate([
128
128
  UntilDestroy()
@@ -94,7 +94,7 @@ let TechlifyListComponent = class TechlifyListComponent {
94
94
  * No need to override the loadData method in child class to convert array values to string.
95
95
  * */
96
96
  filters = this.requestHelperService.convertToFormData(JSON.parse(JSON.stringify(this.filterForm.value)), this.filterFormConfiguration);
97
- filters.perPage = this.perPage;
97
+ filters.per_page = this.perPage;
98
98
  filters.page = this.page;
99
99
  }
100
100
  this.service.index(filters)
@@ -274,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
274
274
  }], ctorParameters: () => [{ type: i1.TechlifyService, decorators: [{
275
275
  type: Optional
276
276
  }] }] });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbGlzdC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2Jhc2UtbW9kZWwvdGVjaGxpZnktbGlzdC1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFJaEY7Ozs7Ozs7Ozs7R0FVRztBQUdJLElBQWUscUJBQXFCLEdBQXBDLE1BQWUscUJBQXFCO0lBcUJ6QyxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxzQkFBc0IsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQXFCRDs7O1FBR0k7SUFDSixJQUFjLFNBQVM7UUFDckIsT0FBTyxTQUFTLENBQUMsQ0FBQyxVQUFVO0lBQzlCLENBQUM7SUFTRCxZQUFrQyxPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQTVEM0QsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsU0FBSSxHQUFHLENB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VUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO2dCQUNuSCxvQkFBb0I7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNsQyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQW9CLENBQUEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQWpTbUIscUJBQXFCO21HQUFyQixxQkFBcUI7O0FBQXJCLHFCQUFxQjtJQUYxQyxZQUFZLEVBQUU7R0FFTyxxQkFBcUIsQ0FrUzFDOzs0RkFsU3FCLHFCQUFxQjtrQkFEMUMsU0FBUzs7MEJBK0RLLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9yZXF1ZXN0LWhlbHBlci9yZXF1ZXN0LWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRlY2hsaWZ5U2VydmljZSB9IGZyb20gJy4vdGVjaGxpZnktc2VydmljZSc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi9jb2x1bW4tc2VsZWN0b3InO1xuXG4vKipcbiAqIEludGVyZmFjZSB1c2VkIHRvIGVuc3VyZSB3ZSBoYXZlIGEgY29uc2lzdGVudCBzdHJ1Y3R1cmUgYWNyb3NzIG91ciBsaXN0aW5nIHBhZ2VzXG4gKlxuICogQHRvZG8gVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gbmd4LXRlY2hsaWZ5LWNvcmVcbiAqXG4gKiBBZHZhbnRhZ2VzIG9mIHRoaXMgYWJzdHJhY3QgY2xhc3NcbiAqIC0gTGVzcyBjb2RlLCBsZXNzIG1haW50ZW5hbmNlLCBsZXNzIGJ1Z3NcbiAqIC0gbW9yZSBjb25zaXN0ZW50IGNvZGVcbiAqIC0gY29tbWVudHMgb24gbW9yZSBjb2RlXG4gKiAtIHNhdmUgdGltZSwgc2F2ZSBlbmVyZ3lcbiAqL1xuQFVudGlsRGVzdHJveSgpXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZWNobGlmeUxpc3RDb21wb25lbnQge1xuXG4gIG1vZGVsczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RlbElkczogYW55W10gPSBbXTtcbiAgaXNBbGxTZWxlY3RlZCA9IGZhbHNlO1xuICBwYWdlID0gMTtcbiAgcGVyUGFnZSA9IDUwO1xuICBsYXN0UGFnZSA9IDA7XG4gIGlzV29ya2luZyA9IGZhbHNlO1xuICBmaWx0ZXJGb3JtOiBhbnk7XG4gIGlzVmlld0xvYWRlZCA9IGZhbHNlO1xuICBjb2x1bW5Db25maWdzOiBDb2x1bW5Db25maWdbXSA9IFtdO1xuXG4gIC8vRmlsdGVycyB0byBiZSBleHBvcnRlZCBmb3IgdmlldyBpbnRlZ3JhdGlvblxuICBmaWx0ZXJzOiBhbnk7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gdG8gdHVybiBvZmYsIGlmIHdlIGRvbid0IHdhbnQgdG8gcGF0Y2ggZmlsdGVycyBmcm9tIHJvdXRlLlxuICAgKiBUaGlzIGNhbiBiZSBvdmVycmlkZW4gaW4gY2hpbGQgY2xhc3NlcyBpZiBuZWVkIFxuICAgKi9cbiAgcHJvdGVjdGVkIF9pc0ZpbHRlclBhdGNoRnJvbVJvdXRlID0gdHJ1ZTtcbiAgZ2V0IGlzRmlsdGVyUGF0Y2hGcm9tUm91dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRmlsdGVyUGF0Y2hGcm9tUm91dGU7XG4gIH1cbiAgc2V0IGlzRmlsdGVyUGF0Y2hGcm9tUm91dGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0ZpbHRlclBhdGNoRnJvbVJvdXRlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGZvcm0gY29uZmlndXJhdGlvbiB1c2VkIHRvIGRlY29kZSB0aGUgcm91dGUgcGFyYW1zLlxuICAgKiBFZzogT3ZlcnJpZGUgaW4gY2hpbGQgY2xhc3NcbiAgICogIGBgYCBcbiAgICogZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb246IGFueSA9IHtcbiAgICBzdGF0dXNfaWQ6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBicmFuY2hfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgZGVwYXJ0bWVudF9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBlbXBsb3llZV9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBjb3Vyc2VfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgZGF0ZV9mcm9tOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkYXRlX3RvOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkdWVfZGF0ZV9mcm9tOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkdWVfZGF0ZV90bzogeyBkYXRlOiB0cnVlIH0sXG4gICB9IFxuICAgKmBgYFxuICAgKi9cbiAgZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb246IGFueTtcblxuICAvKipcbiAgICAqIENoaWxkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMuXG4gICAgKiBJZiBsZWZ0IHVuZGVmaW5lZC9lbXB0eSwgZmFsbHMgYmFjayB0byBlbnZpcm9ubWVudC5hcHBUaXRsZVxuICAgICovXG4gIHByb3RlY3RlZCBnZXQgcGFnZVRpdGxlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZGVmYXVsdFxuICB9XG5cblxuICBwcml2YXRlIHRpdGxlU2VydmljZSA9IGluamVjdChUaXRsZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3QoRW52aXJvbm1lbnRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8vUmVxdWVzdCBoZWxwZXIgc2VydmljZSB0byBpbmhlcml0ZWQgYW5kIG92ZXJyaWRlbiBpZiBuZWVkZWRcbiAgcHJvdGVjdGVkIHJlcXVlc3RIZWxwZXJTZXJ2aWNlID0gaW5qZWN0KFJlcXVlc3RIZWxwZXJTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgc2VydmljZT86IFRlY2hsaWZ5U2VydmljZSkge1xuICAgIGNvbnN0IHJlc29sdmVkVGl0bGUgPVxuICAgICAgdGhpcy5wYWdlVGl0bGUgJiYgdGhpcy5wYWdlVGl0bGUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgICAgPyB0aGlzLnBhZ2VUaXRsZVxuICAgICAgICA6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldCgpLmFwcFRpdGxlO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHJlc29sdmVkVGl0bGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgbGlzdGVucyBmb3IgYW55IGNoYW5nZXMgaW4gdGhlIGZpbHRlciBmb3JtIGdyb3VwXG4gICAqIEl0IHVwZGF0ZXMgdGhlIHJvdXRlIGF1dG9tYXRpY2FsbHlcbiAgICogQWxzbyByZWxvYWQgdGhlIHBhZ2Ugb24gY2hhbmdlXG4gICAqL1xuICBsaXN0ZW5GaWx0ZXJDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0ZpbHRlclBhdGNoRnJvbVJvdXRlKSB7XG4gICAgICAgICAgY29uc3QgdW5mb3JtYXRlZEZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyRm9ybS52YWx1ZSkpO1xuICAgICAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEodW5mb3JtYXRlZEZpbHRlcnMsIHRoaXMuZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb24pO1xuICAgICAgICAgIHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UudXBkYXRlUXVlcnlQYXJhbXModGhpcy5maWx0ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gZGVjb2RlcyB0aGUgcm91dGUgcGFyYW1zIGFuZCBwYXRjaGVzIHRoZSBmaWx0ZXJcbiAgICogU2V0dXAgdGhlIGZpbHRlckZvcm1Db25maWd1cnRpb24gdG8gb3ZlcnJpZGUgZm9yIG11bHRpcGxlIGFuZCBkYXRlIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBwYXRjaEZpbHRlcnNGcm9tUm91dGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS51cGRhdGVGb3JtV2l0aFF1ZXJ5UGFyYW1zKHRoaXMuZmlsdGVyRm9ybSwgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBsb2FkcyB0aGUgbWFpbiBtb2RlbHMgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAqL1xuICBsb2FkRGF0YShmaWx0ZXJzPzogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogU2VydmljZSBpcyByZXF1aXJlZCB0byBsb2FkIHRoZSBkYXRhYFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGlmICghZmlsdGVycykge1xuICAgICAgLyoqXG4gICAgICAgKiBDb252ZXJ0IHRvIGZvcm0gZGF0YSBnaXZlcyBmbGV4aWJpbGl0eSB0byBjb252ZXJ0IHRoZSBmb3JtIGFycmF5IHZhbHVlcyB0byBzdHJpbmdcbiAgICAgICAqIE5vIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIGxvYWREYXRhIG1ldGhvZCBpbiBjaGlsZCBjbGFzcyB0byBjb252ZXJ0IGFycmF5IHZhbHVlcyB0byBzdHJpbmcuXG4gICAgICAgKiAqL1xuICAgICAgZmlsdGVycyA9IHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlckZvcm0udmFsdWUpKSwgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbik7XG4gICAgICBmaWx0ZXJzLnBlclBhZ2UgPSB0aGlzLnBlclBhZ2U7XG4gICAgICBmaWx0ZXJzLnBhZ2UgPSB0aGlzLnBhZ2U7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZS5pbmRleChmaWx0ZXJzKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Py5sYXN0X3BhZ2UgfHwgdGhpcy5wYWdlO1xuICAgICAgICBpZiAocmVzdWx0Py5kYXRhPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzdWx0LmRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUmVsb2FkIGFsbCBkYXRhIGZyb20gcGFnZSAxXG4gICAqL1xuICByZWxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbHMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWxJZHMgPSBbXTtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FuIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGlzIHNjcm9sbGluZyxcbiAgICogdG8gdHJpZ2dlciBsb2FkaW5nIGEgbmV3IHBhZ2Ugb2YgZGF0YVxuICAgKi9cbiAgb25TY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZyAmJiB0aGlzLnBhZ2UgPCB0aGlzLmxhc3RQYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIEZpbHRlci5cbiAgICpcbiAgICogQHBhcmFtIGZpZWxkIEZpZWxkIG5hbWUuXG4gICAqL1xuICByZXNldEZpbHRlcihmaWVsZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldChmaWVsZCkucmVzZXQoJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgb25lIG9yIG1vcmUgbW9kZWxzIGluIHRoZSBsaXN0IGJ5IG1hdGNoaW5nIG9uIHRoZWlyIGBpZGAuXG4gICAqIEFjY2VwdHMgYSBzaW5nbGUgbW9kZWwgb3IgYW4gYXJyYXkgb2YgbW9kZWxzLlxuICAgKiBAcGFyYW0gbW9kZWxzIFRoZSB1cGRhdGVkIG1vZGVsIG9yIGFycmF5IG9mIG1vZGVscy5cbiAgICovXG4gIG1vZGVsc1VwZGF0ZWRCeUlkKG1vZGVsczogYW55IHwgYW55W10pOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZWxzKSkge1xuICAgICAgbW9kZWxzID0gW21vZGVsc107XG4gICAgfVxuICAgIG1vZGVscy5mb3JFYWNoKCh1cGRhdGVkTW9kZWw6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVscy5maW5kSW5kZXgoKG06IGFueSkgPT4gbS5pZCA9PT0gdXBkYXRlZE1vZGVsLmlkKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5tb2RlbHNbaW5kZXhdID0gdXBkYXRlZE1vZGVsO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubW9kZWxzID0gWy4uLnRoaXMubW9kZWxzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIG9uZSBvciBtb3JlIG1vZGVscyBpbiB0aGUgbGlzdCBieSBtYXRjaGluZyBvbiB0aGVpciBgaWRgLlxuICAgKiBBY2NlcHRzIGEgc2luZ2xlIG1vZGVsIG9yIGFuIGFycmF5IG9mIG1vZGVscy5cbiAgICogQHBhcmFtIG1vZGVscyBUaGUgdXBkYXRlZCBtb2RlbCBvciBhcnJheSBvZiBtb2RlbHMuXG4gICAqL1xuICBtb2RlbHNEZWxldGVkQnlJZChtb2RlbHM6IGFueSB8IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1vZGVscykpIHtcbiAgICAgIG1vZGVscyA9IFttb2RlbHNdO1xuICAgIH1cbiAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmZpbHRlcigobTogYW55KSA9PiAhKG1vZGVscy5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQgPT09IG0uaWQpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBsaXN0IG9mIHNlbGVjdGVkIG1vZGVscywgdGhpcyB3aWxsIGFsc29cbiAgICogY2xvc2UgdGhlIGJ1bGsgdXBkYXRlIGZvcm0gdGhhdCBjaGVja3MgXG4gICAqIGZvciBzZWxlY3RlZCBtb2RlbHMgbGVuZ3RoXG4gICAqL1xuICBjbGVhclNlbGVjdGVkTW9kZWxzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgbW9kZWwgYXQgdGhlIGZpcnN0IHBvc2l0aW9uIGluIHRoZSB0YWJsZS5cbiAgICogQHBhcmFtIG1vZGVsIFRoZSBuZXcgbW9kZWwgdG8gYmUgYWRkZWQuXG4gICAqL1xuICBtb2RlbENyZWF0ZWQobW9kZWw6IGFueSk6IHZvaWQge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkge1xuICAgICAgLy9XaGVuIGNyZWF0ZSBhbm90aGVyIGZlYXR1cmUgaXMgdXNlZCwgd2UgZ2V0IGFycmF5IG9mIG1vZGVsc1xuICAgICAgdGhpcy5tb2RlbHMudW5zaGlmdCguLi5tb2RlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxzLnVuc2hpZnQobW9kZWwpO1xuICAgIH1cbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBmb3IgbXVsdGkgc2VsZWN0XG4gICAqIFRyaWdlcnJlZCB3aGVuIHNlbGVjdCBhbGwgaXMgdG9nZ2xlZFxuICAgKi9cbiAgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IFtdO1xuICAgIHRoaXMubW9kZWxzLm1hcCgobW9kZWw6IGFueSkgPT4ge1xuICAgICAgbW9kZWwuaXNfc2VsZWN0ZWQgPSB0aGlzLmlzQWxsU2VsZWN0ZWQ7XG4gICAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5wdXNoKG1vZGVsLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBmb3IgbXVsdGkgc2VsZWN0XG4gICAqIFRyaWdlcnJlZCBpZiBhbnkgZW50cnkgc2VjdGlvbiBpcyBtb2RpZmllZFxuICAgKi9cbiAgaXNTZWxlY3Rpb25Nb2RpZmllZChldmVudDogYW55LCBtb2RlbDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5wdXNoKG1vZGVsPy5pZCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsSWRzID0gdGhpcy5zZWxlY3RlZE1vZGVsSWRzLmZpbHRlcigobW9kZWxJZDogYW55KSA9PiBtb2RlbElkICE9IG1vZGVsPy5pZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZnVhbHQgbWV0aG9kIHRvIGxpc3RlbiB0byBzb3J0IGNvbHVtbiB1cGRhdGVzXG4gICAqIEBwYXJhbSBldmVudCBcbiAgICovXG4gIHNvcnRDb2x1bW4oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmRpcmVjdGlvbi50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5tb2RlbHMgPSBbXTtcbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdzb3J0X2J5Jykuc2V0VmFsdWUoYCR7ZXZlbnQ/LmFjdGl2ZX18JHtkaXJlY3Rpb259YCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIG92ZXJyaWRlZCBpbiBjaGlsZCBjbGFzcyB0byByZXNldCBhIGZpbHRlciBmb3JtIGluc3RhbmNlLlxuICAgKiBVc2VkIGJ5IHNldFZpZXcgbWV0aG9kLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0RmlsdGVyRm9ybSgpOiB2b2lkIHtcbiAgICAvL0lmIGZpbHRlckZvcm0gZXhpc3RzLCB0aGVuIHJlc2V0XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybSkge1xuICAgICAgdGhpcy5maWx0ZXJGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBvdmVycmlkZWQgaW4gY2hpbGQgY2xhc3MgdG8gcmVzZXQgY29sdW1uIGNvbmZpZ3MuXG4gICAqIFVzZWQgYnkgc2V0VmlldyBtZXRob2QuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzZXRDb2x1bW5Db25maWdzKCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uQ29uZmlncyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvb2sgbWV0aG9kIHVzZWQgdG8gc2V0IHRoZSBzZWxlY3RlZCB2aWV3XG4gICAqIEBwYXJhbSB2aWV3IG9wdGlvbmFsIHVzZWQgYnkgbXktdmlldy1saXN0XG4gICAqL1xuICBzZXRWaWV3KHZpZXc/OiBhbnkpIHtcbiAgICAvL1Jlc2V0IHRoZSBxdWVyeSBwYXJhbXNcbiAgICB0aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLnVwZGF0ZVF1ZXJ5UGFyYW1zKHt9KTtcbiAgICB0aGlzLmlzVmlld0xvYWRlZCA9IGZhbHNlO1xuICAgIHRoaXMucmVzZXRDb2x1bW5Db25maWdzKCk7XG4gICAgdGhpcy5yZXNldEZpbHRlckZvcm0oKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgIC8vSWYgdGhlcmUgaXMgYSB2aWV3LCB0aGVuIHNldCBpdC5cbiAgICAgICAgLy9TZXR1cCB2aWV3IGZpbHRlcnNcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtLnNldFZhbHVlKHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEodmlldz8uZmlsdGVycywgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbikpO1xuICAgICAgICAvL1NldHVwIHZpZXcgY29sdW1uc1xuICAgICAgICB0aGlzLmNvbHVtbkNvbmZpZ3MuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgIGNvbHVtbi5pc1NlbGVjdGVkID0gKHZpZXc/LmNvbHVtbnMgYXMgc3RyaW5nW10pLnNvbWUoY29sID0+IGNvbCA9PT0gY29sdW1uLmRlZik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5pc1ZpZXdMb2FkZWQgPSB0cnVlO1xuICAgIH0sIDUwMCk7XG4gIH1cbn1cbiJdfQ==
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbGlzdC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2Jhc2UtbW9kZWwvdGVjaGxpZnktbGlzdC1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFJaEY7Ozs7Ozs7Ozs7R0FVRztBQUdJLElBQWUscUJBQXFCLEdBQXBDLE1BQWUscUJBQXFCO0lBcUJ6QyxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxzQkFBc0IsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQXFCRDs7O1FBR0k7SUFDSixJQUFjLFNBQVM7UUFDckIsT0FBTyxTQUFTLENBQUMsQ0FBQyxVQUFVO0lBQzlCLENBQUM7SUFTRCxZQUFrQyxPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQTVEM0QsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFLbkM7OztXQUdHO1FBQ08sNEJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBb0NqQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU1RSw2REFBNkQ7UUFDbkQseUJBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFHNUQsTUFBTSxhQUFhLEdBQ2pCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM1RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztnQkFDNUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNILHFCQUFxQjtRQUNuQixJQUFJLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsT0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksd0NBQXdDLENBQ2pFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2I7OztpQkFHSztZQUNMLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2SSxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDaEMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7YUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDO2FBQzVDLFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQy9DLElBQUksTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFBQSxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLE1BQW1CO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFpQixFQUFFLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLE1BQW1CO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsNkRBQTZEO1lBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxLQUFVLEVBQUUsS0FBVTtRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQVU7UUFDbkIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGVBQWU7UUFDdkIsa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxrQkFBa0I7UUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxJQUFVO1FBQ2hCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULGtDQUFrQztnQkFDbEMsb0JBQW9CO2dCQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO2dCQUNuSCxvQkFBb0I7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNsQyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQW9CLENBQUEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQWpTbUIscUJBQXFCO21HQUFyQixxQkFBcUI7O0FBQXJCLHFCQUFxQjtJQUYxQyxZQUFZLEVBQUU7R0FFTyxxQkFBcUIsQ0FrUzFDOzs0RkFsU3FCLHFCQUFxQjtrQkFEMUMsU0FBUzs7MEJBK0RLLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9yZXF1ZXN0LWhlbHBlci9yZXF1ZXN0LWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRlY2hsaWZ5U2VydmljZSB9IGZyb20gJy4vdGVjaGxpZnktc2VydmljZSc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi9jb2x1bW4tc2VsZWN0b3InO1xuXG4vKipcbiAqIEludGVyZmFjZSB1c2VkIHRvIGVuc3VyZSB3ZSBoYXZlIGEgY29uc2lzdGVudCBzdHJ1Y3R1cmUgYWNyb3NzIG91ciBsaXN0aW5nIHBhZ2VzXG4gKlxuICogQHRvZG8gVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gbmd4LXRlY2hsaWZ5LWNvcmVcbiAqXG4gKiBBZHZhbnRhZ2VzIG9mIHRoaXMgYWJzdHJhY3QgY2xhc3NcbiAqIC0gTGVzcyBjb2RlLCBsZXNzIG1haW50ZW5hbmNlLCBsZXNzIGJ1Z3NcbiAqIC0gbW9yZSBjb25zaXN0ZW50IGNvZGVcbiAqIC0gY29tbWVudHMgb24gbW9yZSBjb2RlXG4gKiAtIHNhdmUgdGltZSwgc2F2ZSBlbmVyZ3lcbiAqL1xuQFVudGlsRGVzdHJveSgpXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZWNobGlmeUxpc3RDb21wb25lbnQge1xuXG4gIG1vZGVsczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RlbElkczogYW55W10gPSBbXTtcbiAgaXNBbGxTZWxlY3RlZCA9IGZhbHNlO1xuICBwYWdlID0gMTtcbiAgcGVyUGFnZSA9IDUwO1xuICBsYXN0UGFnZSA9IDA7XG4gIGlzV29ya2luZyA9IGZhbHNlO1xuICBmaWx0ZXJGb3JtOiBhbnk7XG4gIGlzVmlld0xvYWRlZCA9IGZhbHNlO1xuICBjb2x1bW5Db25maWdzOiBDb2x1bW5Db25maWdbXSA9IFtdO1xuXG4gIC8vRmlsdGVycyB0byBiZSBleHBvcnRlZCBmb3IgdmlldyBpbnRlZ3JhdGlvblxuICBmaWx0ZXJzOiBhbnk7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gdG8gdHVybiBvZmYsIGlmIHdlIGRvbid0IHdhbnQgdG8gcGF0Y2ggZmlsdGVycyBmcm9tIHJvdXRlLlxuICAgKiBUaGlzIGNhbiBiZSBvdmVycmlkZW4gaW4gY2hpbGQgY2xhc3NlcyBpZiBuZWVkIFxuICAgKi9cbiAgcHJvdGVjdGVkIF9pc0ZpbHRlclBhdGNoRnJvbVJvdXRlID0gdHJ1ZTtcbiAgZ2V0IGlzRmlsdGVyUGF0Y2hGcm9tUm91dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRmlsdGVyUGF0Y2hGcm9tUm91dGU7XG4gIH1cbiAgc2V0IGlzRmlsdGVyUGF0Y2hGcm9tUm91dGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0ZpbHRlclBhdGNoRnJvbVJvdXRlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGZvcm0gY29uZmlndXJhdGlvbiB1c2VkIHRvIGRlY29kZSB0aGUgcm91dGUgcGFyYW1zLlxuICAgKiBFZzogT3ZlcnJpZGUgaW4gY2hpbGQgY2xhc3NcbiAgICogIGBgYCBcbiAgICogZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb246IGFueSA9IHtcbiAgICBzdGF0dXNfaWQ6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBicmFuY2hfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgZGVwYXJ0bWVudF9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBlbXBsb3llZV9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBjb3Vyc2VfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgZGF0ZV9mcm9tOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkYXRlX3RvOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkdWVfZGF0ZV9mcm9tOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkdWVfZGF0ZV90bzogeyBkYXRlOiB0cnVlIH0sXG4gICB9IFxuICAgKmBgYFxuICAgKi9cbiAgZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb246IGFueTtcblxuICAvKipcbiAgICAqIENoaWxkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMuXG4gICAgKiBJZiBsZWZ0IHVuZGVmaW5lZC9lbXB0eSwgZmFsbHMgYmFjayB0byBlbnZpcm9ubWVudC5hcHBUaXRsZVxuICAgICovXG4gIHByb3RlY3RlZCBnZXQgcGFnZVRpdGxlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZGVmYXVsdFxuICB9XG5cblxuICBwcml2YXRlIHRpdGxlU2VydmljZSA9IGluamVjdChUaXRsZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3QoRW52aXJvbm1lbnRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8vUmVxdWVzdCBoZWxwZXIgc2VydmljZSB0byBpbmhlcml0ZWQgYW5kIG92ZXJyaWRlbiBpZiBuZWVkZWRcbiAgcHJvdGVjdGVkIHJlcXVlc3RIZWxwZXJTZXJ2aWNlID0gaW5qZWN0KFJlcXVlc3RIZWxwZXJTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgc2VydmljZT86IFRlY2hsaWZ5U2VydmljZSkge1xuICAgIGNvbnN0IHJlc29sdmVkVGl0bGUgPVxuICAgICAgdGhpcy5wYWdlVGl0bGUgJiYgdGhpcy5wYWdlVGl0bGUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgICAgPyB0aGlzLnBhZ2VUaXRsZVxuICAgICAgICA6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldCgpLmFwcFRpdGxlO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHJlc29sdmVkVGl0bGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgbGlzdGVucyBmb3IgYW55IGNoYW5nZXMgaW4gdGhlIGZpbHRlciBmb3JtIGdyb3VwXG4gICAqIEl0IHVwZGF0ZXMgdGhlIHJvdXRlIGF1dG9tYXRpY2FsbHlcbiAgICogQWxzbyByZWxvYWQgdGhlIHBhZ2Ugb24gY2hhbmdlXG4gICAqL1xuICBsaXN0ZW5GaWx0ZXJDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0ZpbHRlclBhdGNoRnJvbVJvdXRlKSB7XG4gICAgICAgICAgY29uc3QgdW5mb3JtYXRlZEZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyRm9ybS52YWx1ZSkpO1xuICAgICAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEodW5mb3JtYXRlZEZpbHRlcnMsIHRoaXMuZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb24pO1xuICAgICAgICAgIHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UudXBkYXRlUXVlcnlQYXJhbXModGhpcy5maWx0ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gZGVjb2RlcyB0aGUgcm91dGUgcGFyYW1zIGFuZCBwYXRjaGVzIHRoZSBmaWx0ZXJcbiAgICogU2V0dXAgdGhlIGZpbHRlckZvcm1Db25maWd1cnRpb24gdG8gb3ZlcnJpZGUgZm9yIG11bHRpcGxlIGFuZCBkYXRlIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBwYXRjaEZpbHRlcnNGcm9tUm91dGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS51cGRhdGVGb3JtV2l0aFF1ZXJ5UGFyYW1zKHRoaXMuZmlsdGVyRm9ybSwgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBsb2FkcyB0aGUgbWFpbiBtb2RlbHMgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAqL1xuICBsb2FkRGF0YShmaWx0ZXJzPzogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogU2VydmljZSBpcyByZXF1aXJlZCB0byBsb2FkIHRoZSBkYXRhYFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGlmICghZmlsdGVycykge1xuICAgICAgLyoqXG4gICAgICAgKiBDb252ZXJ0IHRvIGZvcm0gZGF0YSBnaXZlcyBmbGV4aWJpbGl0eSB0byBjb252ZXJ0IHRoZSBmb3JtIGFycmF5IHZhbHVlcyB0byBzdHJpbmdcbiAgICAgICAqIE5vIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIGxvYWREYXRhIG1ldGhvZCBpbiBjaGlsZCBjbGFzcyB0byBjb252ZXJ0IGFycmF5IHZhbHVlcyB0byBzdHJpbmcuXG4gICAgICAgKiAqL1xuICAgICAgZmlsdGVycyA9IHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlckZvcm0udmFsdWUpKSwgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbik7XG4gICAgICBmaWx0ZXJzLnBlcl9wYWdlID0gdGhpcy5wZXJQYWdlO1xuICAgICAgZmlsdGVycy5wYWdlID0gdGhpcy5wYWdlO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2UuaW5kZXgoZmlsdGVycylcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3VsdD8ubGFzdF9wYWdlIHx8IHRoaXMucGFnZTtcbiAgICAgICAgaWYgKHJlc3VsdD8uZGF0YT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMubW9kZWxzID0gdGhpcy5tb2RlbHMuY29uY2F0KHJlc3VsdC5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbG9hZCBhbGwgZGF0YSBmcm9tIHBhZ2UgMVxuICAgKi9cbiAgcmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWxzID0gW107XG4gICAgdGhpcy5zZWxlY3RlZE1vZGVsSWRzID0gW107XG4gICAgdGhpcy5wYWdlID0gMTtcbiAgICBpZiAoIXRoaXMuaXNXb3JraW5nKSB7XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbiBiZSBjYWxsZWQgd2hlbiB0aGUgdXNlciBpcyBzY3JvbGxpbmcsXG4gICAqIHRvIHRyaWdnZXIgbG9hZGluZyBhIG5ldyBwYWdlIG9mIGRhdGFcbiAgICovXG4gIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcgJiYgdGhpcy5wYWdlIDwgdGhpcy5sYXN0UGFnZSkge1xuICAgICAgdGhpcy5wYWdlICs9IDE7XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBGaWx0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBmaWVsZCBGaWVsZCBuYW1lLlxuICAgKi9cbiAgcmVzZXRGaWx0ZXIoZmllbGQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoZmllbGQpLnJlc2V0KCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIG9uZSBvciBtb3JlIG1vZGVscyBpbiB0aGUgbGlzdCBieSBtYXRjaGluZyBvbiB0aGVpciBgaWRgLlxuICAgKiBBY2NlcHRzIGEgc2luZ2xlIG1vZGVsIG9yIGFuIGFycmF5IG9mIG1vZGVscy5cbiAgICogQHBhcmFtIG1vZGVscyBUaGUgdXBkYXRlZCBtb2RlbCBvciBhcnJheSBvZiBtb2RlbHMuXG4gICAqL1xuICBtb2RlbHNVcGRhdGVkQnlJZChtb2RlbHM6IGFueSB8IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1vZGVscykpIHtcbiAgICAgIG1vZGVscyA9IFttb2RlbHNdO1xuICAgIH1cbiAgICBtb2RlbHMuZm9yRWFjaCgodXBkYXRlZE1vZGVsOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tb2RlbHMuZmluZEluZGV4KChtOiBhbnkpID0+IG0uaWQgPT09IHVwZGF0ZWRNb2RlbC5pZCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMubW9kZWxzW2luZGV4XSA9IHVwZGF0ZWRNb2RlbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBvbmUgb3IgbW9yZSBtb2RlbHMgaW4gdGhlIGxpc3QgYnkgbWF0Y2hpbmcgb24gdGhlaXIgYGlkYC5cbiAgICogQWNjZXB0cyBhIHNpbmdsZSBtb2RlbCBvciBhbiBhcnJheSBvZiBtb2RlbHMuXG4gICAqIEBwYXJhbSBtb2RlbHMgVGhlIHVwZGF0ZWQgbW9kZWwgb3IgYXJyYXkgb2YgbW9kZWxzLlxuICAgKi9cbiAgbW9kZWxzRGVsZXRlZEJ5SWQobW9kZWxzOiBhbnkgfCBhbnlbXSk6IHZvaWQge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShtb2RlbHMpKSB7XG4gICAgICBtb2RlbHMgPSBbbW9kZWxzXTtcbiAgICB9XG4gICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5maWx0ZXIoKG06IGFueSkgPT4gIShtb2RlbHMuc29tZSgoaXRlbTogYW55KSA9PiBpdGVtLmlkID09PSBtLmlkKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgbGlzdCBvZiBzZWxlY3RlZCBtb2RlbHMsIHRoaXMgd2lsbCBhbHNvXG4gICAqIGNsb3NlIHRoZSBidWxrIHVwZGF0ZSBmb3JtIHRoYXQgY2hlY2tzIFxuICAgKiBmb3Igc2VsZWN0ZWQgbW9kZWxzIGxlbmd0aFxuICAgKi9cbiAgY2xlYXJTZWxlY3RlZE1vZGVscygpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWxJZHMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbmV3IG1vZGVsIGF0IHRoZSBmaXJzdCBwb3NpdGlvbiBpbiB0aGUgdGFibGUuXG4gICAqIEBwYXJhbSBtb2RlbCBUaGUgbmV3IG1vZGVsIHRvIGJlIGFkZGVkLlxuICAgKi9cbiAgbW9kZWxDcmVhdGVkKG1vZGVsOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShtb2RlbCkpIHtcbiAgICAgIC8vV2hlbiBjcmVhdGUgYW5vdGhlciBmZWF0dXJlIGlzIHVzZWQsIHdlIGdldCBhcnJheSBvZiBtb2RlbHNcbiAgICAgIHRoaXMubW9kZWxzLnVuc2hpZnQoLi4ubW9kZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGVscy51bnNoaWZ0KG1vZGVsKTtcbiAgICB9XG4gICAgdGhpcy5tb2RlbHMgPSBbLi4udGhpcy5tb2RlbHNdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgZm9yIG11bHRpIHNlbGVjdFxuICAgKiBUcmlnZXJyZWQgd2hlbiBzZWxlY3QgYWxsIGlzIHRvZ2dsZWRcbiAgICovXG4gIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWxJZHMgPSBbXTtcbiAgICB0aGlzLm1vZGVscy5tYXAoKG1vZGVsOiBhbnkpID0+IHtcbiAgICAgIG1vZGVsLmlzX3NlbGVjdGVkID0gdGhpcy5pc0FsbFNlbGVjdGVkO1xuICAgICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9kZWxJZHMucHVzaChtb2RlbC5pZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5tb2RlbHMgPSBbLi4udGhpcy5tb2RlbHNdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgZm9yIG11bHRpIHNlbGVjdFxuICAgKiBUcmlnZXJyZWQgaWYgYW55IGVudHJ5IHNlY3Rpb24gaXMgbW9kaWZpZWRcbiAgICovXG4gIGlzU2VsZWN0aW9uTW9kaWZpZWQoZXZlbnQ6IGFueSwgbW9kZWw6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaXNBbGxTZWxlY3RlZCA9IGZhbHNlO1xuICAgIGlmIChldmVudC5jaGVja2VkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTW9kZWxJZHMucHVzaChtb2RlbD8uaWQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5maWx0ZXIoKG1vZGVsSWQ6IGFueSkgPT4gbW9kZWxJZCAhPSBtb2RlbD8uaWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZ1YWx0IG1ldGhvZCB0byBsaXN0ZW4gdG8gc29ydCBjb2x1bW4gdXBkYXRlc1xuICAgKiBAcGFyYW0gZXZlbnQgXG4gICAqL1xuICBzb3J0Q29sdW1uKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSBldmVudC5kaXJlY3Rpb24udG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpO1xuICAgIHRoaXMubW9kZWxzID0gW107XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldCgnc29ydF9ieScpLnNldFZhbHVlKGAke2V2ZW50Py5hY3RpdmV9fCR7ZGlyZWN0aW9ufWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBvdmVycmlkZWQgaW4gY2hpbGQgY2xhc3MgdG8gcmVzZXQgYSBmaWx0ZXIgZm9ybSBpbnN0YW5jZS5cbiAgICogVXNlZCBieSBzZXRWaWV3IG1ldGhvZC5cbiAgICovXG4gIHByb3RlY3RlZCByZXNldEZpbHRlckZvcm0oKTogdm9pZCB7XG4gICAgLy9JZiBmaWx0ZXJGb3JtIGV4aXN0cywgdGhlbiByZXNldFxuICAgIGlmICh0aGlzLmZpbHRlckZvcm0pIHtcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgb3ZlcnJpZGVkIGluIGNoaWxkIGNsYXNzIHRvIHJlc2V0IGNvbHVtbiBjb25maWdzLlxuICAgKiBVc2VkIGJ5IHNldFZpZXcgbWV0aG9kLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0Q29sdW1uQ29uZmlncygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbkNvbmZpZ3MgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIb29rIG1ldGhvZCB1c2VkIHRvIHNldCB0aGUgc2VsZWN0ZWQgdmlld1xuICAgKiBAcGFyYW0gdmlldyBvcHRpb25hbCB1c2VkIGJ5IG15LXZpZXctbGlzdFxuICAgKi9cbiAgc2V0Vmlldyh2aWV3PzogYW55KSB7XG4gICAgLy9SZXNldCB0aGUgcXVlcnkgcGFyYW1zXG4gICAgdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS51cGRhdGVRdWVyeVBhcmFtcyh7fSk7XG4gICAgdGhpcy5pc1ZpZXdMb2FkZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJlc2V0Q29sdW1uQ29uZmlncygpO1xuICAgIHRoaXMucmVzZXRGaWx0ZXJGb3JtKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodmlldykge1xuICAgICAgICAvL0lmIHRoZXJlIGlzIGEgdmlldywgdGhlbiBzZXQgaXQuXG4gICAgICAgIC8vU2V0dXAgdmlldyBmaWx0ZXJzXG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybS5zZXRWYWx1ZSh0aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLmNvbnZlcnRUb0Zvcm1EYXRhKHZpZXc/LmZpbHRlcnMsIHRoaXMuZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb24pKTtcbiAgICAgICAgLy9TZXR1cCB2aWV3IGNvbHVtbnNcbiAgICAgICAgdGhpcy5jb2x1bW5Db25maWdzLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgICBjb2x1bW4uaXNTZWxlY3RlZCA9ICh2aWV3Py5jb2x1bW5zIGFzIHN0cmluZ1tdKS5zb21lKGNvbCA9PiBjb2wgPT09IGNvbHVtbi5kZWYpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNWaWV3TG9hZGVkID0gdHJ1ZTtcbiAgICB9LCA1MDApO1xuICB9XG59XG4iXX0=
@@ -26,6 +26,17 @@ export const CUSTOM_ICONS = {
26
26
  transform="translate(0,960)"
27
27
  />
28
28
  </g>
29
- </svg>`
29
+ </svg>`,
30
+ 'gra': `
31
+ <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
32
+ <rect width="30" height="30" fill="url(#pattern0_1076_92)"/>
33
+ <defs>
34
+ <pattern id="pattern0_1076_92" patternContentUnits="objectBoundingBox" width="1" height="1">
35
+ <use xlink:href="#image0_1076_92" transform="scale(0.00666667)"/>
36
+ </pattern>
37
+ <image id="image0_1076_92" width="150" height="150" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
38
+ </defs>
39
+ </svg>
40
+ `
30
41
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWljb25zLnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jdXN0b20taWNvbi9jdXN0b20taWNvbnMucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTJCO0lBQ2xELFdBQVcsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjWjtJQUNELFdBQVcsRUFBRTs7Ozs7Ozs7O09BU1I7Q0FDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZWdpc3RyeSBmaWxlIHRvIG1haW50YWluIHRoZSBjdXN0b20gaWNvbnMgU1ZHc1xuICovXG5cbmV4cG9ydCBjb25zdCBDVVNUT01fSUNPTlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdiYXRjaC1hZGQnOiBgXG48c3ZnIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF84NjQ1XzM1MTk0KVwiPlxuICAgIDxwYXRoIGQ9XCJNMjIuNDk4IDE1LjI0M0gxNy42NzY2VjIwLjA2NDVIMTYuMDY5NVYxNS4yNDNIMTEuMjQ4VjEzLjYzNTlIMTYuMDY5NVY4LjgxNDQ1SDE3LjY3NjZWMTMuNjM1OUgyMi40OThWMTUuMjQzWlwiXG4gICAgICAgICAgZmlsbD1cImJsYWNrXCIgc3Ryb2tlPVwiYmxhY2tcIiBzdHJva2Utd2lkdGg9XCIwLjc1XCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgPHBhdGggZD1cIk0xMy43NDggMTEuNDkzSDguOTI2NjJWMTYuMzE0NUg3LjMxOTQ4VjExLjQ5M0gyLjQ5ODA1VjkuODg1ODhINy4zMTk0OFY1LjA2NDQ1SDguOTI2NjJWOS44ODU4OEgxMy43NDhWMTEuNDkzWlwiXG4gICAgICAgICAgZmlsbD1cImJsYWNrXCIgc3Ryb2tlPVwiYmxhY2tcIiBzdHJva2Utd2lkdGg9XCIwLjc1XCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gIDwvZz5cbiAgPGRlZnM+XG4gICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfODY0NV8zNTE5NFwiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNDk4MDQ3IDAuMDY0NDUzMSlcIi8+XG4gICAgPC9jbGlwUGF0aD5cbiAgPC9kZWZzPlxuPC9zdmc+XG4gIGAsXG4gICd1bmFwcHJvdmUnOiBgXG48c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxnIHRyYW5zZm9ybT1cInNjYWxlKDAuMDI1KVwiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTg3My04OCA2MDktMzUyIDQ5NS0yMzggMjY5LTQ2NGw1Ni01OCAxNzAgMTcwIDU2LTU2LTQxNC00MTQgNTYtNTggNzM2IDczNi01NiA1NlpNMjY5LTIzOCA0My00NjRsNTYtNTYgMTcwIDE3MCA1NiA1Ni01NiA1NlptNDUyLTIyNi01Ni01NiAxOTYtMTk2IDU4IDU0LTE5OCAxOThaTTYwNy01NzhsLTU2LTU2IDg2LTg2IDU2IDU2LTg2IDg2WlwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLDk2MClcIlxuICAgIC8+XG4gIDwvZz5cbjwvc3ZnPmBcbn07XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWljb25zLnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jdXN0b20taWNvbi9jdXN0b20taWNvbnMucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTJCO0lBQ2xELFdBQVcsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjWjtJQUNELFdBQVcsRUFBRTs7Ozs7Ozs7O09BU1I7SUFDTCxLQUFLLEVBQUU7Ozs7Ozs7Ozs7Q0FVUjtDQUNBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlZ2lzdHJ5IGZpbGUgdG8gbWFpbnRhaW4gdGhlIGN1c3RvbSBpY29ucyBTVkdzXG4gKi9cblxuZXhwb3J0IGNvbnN0IENVU1RPTV9JQ09OUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ2JhdGNoLWFkZCc6IGBcbjxzdmcgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI1XCIgdmlld0JveD1cIjAgMCAyNSAyNVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzg2NDVfMzUxOTQpXCI+XG4gICAgPHBhdGggZD1cIk0yMi40OTggMTUuMjQzSDE3LjY3NjZWMjAuMDY0NUgxNi4wNjk1VjE1LjI0M0gxMS4yNDhWMTMuNjM1OUgxNi4wNjk1VjguODE0NDVIMTcuNjc2NlYxMy42MzU5SDIyLjQ5OFYxNS4yNDNaXCJcbiAgICAgICAgICBmaWxsPVwiYmxhY2tcIiBzdHJva2U9XCJibGFja1wiIHN0cm9rZS13aWR0aD1cIjAuNzVcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8cGF0aCBkPVwiTTEzLjc0OCAxMS40OTNIOC45MjY2MlYxNi4zMTQ1SDcuMzE5NDhWMTEuNDkzSDIuNDk4MDVWOS44ODU4OEg3LjMxOTQ4VjUuMDY0NDVIOC45MjY2MlY5Ljg4NTg4SDEzLjc0OFYxMS40OTNaXCJcbiAgICAgICAgICBmaWxsPVwiYmxhY2tcIiBzdHJva2U9XCJibGFja1wiIHN0cm9rZS13aWR0aD1cIjAuNzVcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgPC9nPlxuICA8ZGVmcz5cbiAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF84NjQ1XzM1MTk0XCI+XG4gICAgICA8cmVjdCB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC40OTgwNDcgMC4wNjQ0NTMxKVwiLz5cbiAgICA8L2NsaXBQYXRoPlxuICA8L2RlZnM+XG48L3N2Zz5cbiAgYCxcbiAgJ3VuYXBwcm92ZSc6IGBcbjxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGcgdHJhbnNmb3JtPVwic2NhbGUoMC4wMjUpXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNODczLTg4IDYwOS0zNTIgNDk1LTIzOCAyNjktNDY0bDU2LTU4IDE3MCAxNzAgNTYtNTYtNDE0LTQxNCA1Ni01OCA3MzYgNzM2LTU2IDU2Wk0yNjktMjM4IDQzLTQ2NGw1Ni01NiAxNzAgMTcwIDU2IDU2LTU2IDU2Wm00NTItMjI2LTU2LTU2IDE5Ni0xOTYgNTggNTQtMTk4IDE5OFpNNjA3LTU3OGwtNTYtNTYgODYtODYgNTYgNTYtODYgODZaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAsOTYwKVwiXG4gICAgLz5cbiAgPC9nPlxuPC9zdmc+YCxcbiAgJ2dyYSc6IGBcbjxzdmcgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgdmlld0JveD1cIjAgMCAzMCAzMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxuPHJlY3Qgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgZmlsbD1cInVybCgjcGF0dGVybjBfMTA3Nl85MilcIi8+XG48ZGVmcz5cbjxwYXR0ZXJuIGlkPVwicGF0dGVybjBfMTA3Nl85MlwiIHBhdHRlcm5Db250ZW50VW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiIHdpZHRoPVwiMVwiIGhlaWdodD1cIjFcIj5cbjx1c2UgeGxpbms6aHJlZj1cIiNpbWFnZTBfMTA3Nl85MlwiIHRyYW5zZm9ybT1cInNjYWxlKDAuMDA2NjY2NjcpXCIvPlxuPC9wYXR0ZXJuPlxuPGltYWdlIGlkPVwiaW1hZ2UwXzEwNzZfOTJcIiB3aWR0aD1cIjE1MFwiIGhlaWdodD1cIjE1MFwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCIgeGxpbms6aHJlZj1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFDV0NBWUFBQUE4QVhIaUFBQW1zVWxFUVZSNEFlMTlDWndkVlpYM3ViVyt0WmZYKzc2a3MwQ0FnRUZSRUJNbGdxQ09Bd2dvS0RvNE91SUNNZ3JqZkk2YXp4MStHb1JSK1NFR1JWeFFRVlNZUVNGb1FBZ0taaVlrQkpKT2Q3clQrNzY5dGVwVjFaMXphM212M3V0T1NEb0phdWYrNGVVdFZYV3I2dDV6ei9JLzUxWURjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0N3TzVDaTNjM0RrSVBtL1hIWVppTzdIWUVkSGh4cUx4VXJZbC9iMjlsTGZiZ3B3dkN4RU9MRmhuYlZ5NVdseXFQVHpTa0QraTVDb09iZTZyRUxPRW5xeHB1bDkxYldWMTlTVmhWYVlSQTRnMUdnMCtzRjRQUDRFT05yTDAyQ3NEeWx3RkVDQUV4UGVmU3RKWGY5NE1oTy9xYnlrNU0xalNTUDB2NzI5TmRYUnlGQ0ZJTFJOOWcwOXBZRnlWVmRYMTlheTh2Q1hTOHFDZGV5ZzVjdVdQVnhmWDM4NnZsWkI0ZVE4VWZ0ekhrNGtqY1UwaktkZGFQbmF4bE5MTGx6VkdubDZNcXFXUkFhakNueDlabmJ1RzdXVnNYZFdsb1diKytlU3Y2MnZyQlJLRk9FcElSaDhFelVOeGNoWUhVUVV0MVhWVnY4akpjYVVHb3ljTWpreDhYUnpjL01HMUdpSlpES1pBSTRUQ29MN2dvc2JHOWZWTkpXZndyNUhOcjM5NTlVM3JmdElYYlRzNHVWMWRTZXg3YVdscGVYdDVlV2x2dU1BVFdBbGU2OXVxbDdXZmtyN3RTMHRMWFdyVHU0WXJLcXFxbTF2YWJueXROV3JYa0xCZW1QUk9VOTBOMlBKd3g1Z1ZGTmt4N0syMjNyS1N1aTVyYlZwbEI1YmVBSzNuSGZucVYrOC9DSjNYOVYzSEZtb0hRLzE5Uldyemx4M3pwdFBYcjM2em82T1pUOURnV3hudjBjaWtTbzBrV2U3dTBuQXNlVEFCTVBXT0Z1YWEwL2V2NkoxNHBrWTBLMVZjdmE1Q3BXZTJsaTlMN2ZuUTJ2LzBQYkZpejdxZmpzY1liRDNXYjkrdmYxKzVvb1ZINHZWMXpleHorME45WSt1YUd2N1pFTkR3eHZoQk1aU1ZkZWVFMDI3VzF0dlZzWGtUNGFuUmtJcE5XSlJRUldqSkduVVFhRHkrY3B5WVc0bXZoVitPbnpQekx0Ym55Zy9wMzVuWmt2ZkhuQUV4enBFKy9hMjN0NWU5aTRPVFU3K09SMlB6N1V0YS91TUlpblRsbWsySjFMeDJiZTk3ZTB2dlBqaWk4eW5PK0VpeDZVb1dPeWVySTJvVFRZSEF0c0daM3V1bURKTlN4UWlWQUJURUlnQmNSSVN6alptckwwayt2b1h5c3UvQmJPekdZWElEeVhYbHp4WldsNzVJMjM3OENRY09TRXFxWXI2RjBrUTBxSkVNL0ZFNWtGcUdMK3NxYXFDMGJHeDUrRUVJMWlYbW1BeFRVVTN3a2JodmNMalhXT1QrMC9ScEtnaEVpSUNzUWkxTnhNUUNBR05HbEJ1V09LeklaWEVwK2UybUhzblI0VjFqWmRsV2t0dmdGZDFmeDIyd3BHQ1lsU29ZOVNJMFdLWVJBT2hXK2JpMHovQ1V5Y3FxNnBRcVUzcWNBSUoxMUxpWGJ4Qm8xY3YvK0hlb2JuKzF0bEFtUUhFbE5nbXh3NVJaemRxUWx5SWtOZFpDYnJTb084QnR4L0NYZG9tbU8ycmdObnpMNGNqTjExc2YyRnFhbXF1dTd1N1V4Zk1iY0dLMGgxN3U3cCtRd2o1RURMNVVUaUJ6T0ZTRWl4Mkw5YUxIYTMzRFUzdjc5Q2tzQ0dibWl0VXpuZ3l5YVAyZnc1eExnaEFtckptYlhsNWVTUGJuaG5Vbm9kWURLck42VDVZSEN6M09zYTFsUGF6cUJLZGFHMXRYWWVhYkhKbVppYUM5RVFFVGhBc0ZjRmlrbUwrc0gzRjY0WGt5QlZwcGNRa2hFcEFoSnhRRmUvTS9rMmkyTFVZSU9nQjJlYXc2TDdSUUZpdStNSFk3Yzl0ZzhYbkJHMkhmbmg0K01EMjdkdG5LMktsZDhXaTBRcWtJNjRjSHg5UGdDOWFYY3BZU29JRjY0VGtmVVBaRElxU0pRSVZjeUtWczVHUUZ5b0JzbUNoQ01nS2hZeVdLbU8vaHZUTWFGSk12ci91Mzk3MEJ2ektmS0xGK3FDbWV5cHpiSHhxL2ZNdnZ2aU5lSHpxMFpOV2RkeURXaXNNSjRCSlhBcUN4UWJRK24xZDNTVWo4WWtHUTRwWW9zWDBsSlhiNkI5Rm12dU9xZ28vQ0piSnhNRGVlVzc5eW5Mb21vWGhXT29KOFNldlpuNFdFeEFCRnVkMDI2ZnE3KzhmYWxuWjhxVVFDVy9VTGZwVUtCUjZIM0RCK3Z0QmVWRDVYQW8wcG1LRVlrMVZERS9ZTURnRWxFRXdzMEtTL1Y0TjlDVG0yRU1pWlptZDJaOEZiNy9nVm5CTW04ZEZIU25zUzBFYW9zOW9sVGVHQStFdEJ3NGMrRGI0VWt4TEZVdmg1dWlITUhjWGc3azFGTUswV0R0NUlGQlk2NExjQTFEOGtrQ0xWMTBWQ0xMZnhwcXo3ME5GaGh0RUFYVERTbytQZlFKKy9kcm5Xejl4T2pPVlRIdUpjT1RhUzVBdCtTZVJsQnBHb1lvdGEyM2F1Z0lCaHlaZy8rNXhQQVZybmdsWml5N055cFVybzZ4d0RzUHZFc3lwaFlxT0liQUlzM05oMExwZ2ZHSWFCU2xBbUFsY3FBSEhCRHBiTEthcFdFaUlvakkxck1BWGJ4MzdycjBoVWFzN2UxdG9KeVVCblRBVG5wbzdyYmVwYkVxNitidzNROTUzT2hMdFJYZnYzcDNvRzU3TmxsZUhYZytxOU1mT3pzNXVPTHo3UEJhODExK0ZPenNlSjdWSlN2WmF1M2F0akdtUE0wUmlYaDVRbExNdHd6cFprcVVnRzFwS21jNGdobUdhSTBRZ085SzYvaXRaRHZ4MlpHUmszTmZPWWMzcTdvYUsrN3VNK0tVQ0tockJGRzFOVkh4empsQ1orQytHZ2t5dkVRdUNrSUsvakRYUXB6NDhSbjYwS2Z1NEVvQU5jUE5yZDBFOGVRb1M2YWk3cUdUdlNMS1lyY2JycVYzMVNPdTlFNWYwYnQyYU9aTHI4L1p0YjJyc0Z5S0JUZW01OU03QndjSEhEK000SnNCbVIwTkRZNFlRV3dFVDk1MWlCM3FmYmFUeEpHR0JXaGJyVytxOU1rTkRReE5lTy9BSzRsZ0tsaGRHbThqZEJMUjArcE1CUmJ4Qnkrb1ZZRnIyWUFxb0pTeDdVQW5yR0VjOUNZNWlFUEZkbEJWVGxPVEhrMm50VTZPam83djhiUjdxeExzNmFycEc0cWxsQXJwS2xESWxtT2V0bkg4MWg3MmlBUlNtREZTaFl6V2NsR0U4cFVJRnlzWVhTc0xHNXE0UnFUUURWOGFhNGFkd3o3bjkwRG1OM0phS2tvaVN5cHd4cGdxcEprQkhiVHd3UUM3SmZQYnhMWWQ3ZlF3MU5SQ1c1Y1o2WGRkRCtHcERKLzVSSFBRVUhMby9hVTFEdzl0VUFnOVIwekNJTGNmRW5TUzBJREFoakZwaGZjdjZGYThJSTE2aUtnckd2a0pWWDEvZkRMekNBY094RWl6UHBGcE5UVTN2a3FpMU9aMUpodkJtbWZJZ2pxUDhzcWZDZmtHeHN5d0JCUXhLWk9XUmtFbmZ1ZDNwZkJsZjJZVU8ra2NvSzd1bFNoenNrK0loaXNwRnNBSmVjMkRnT2ZGYXdCQUlsTkVreEZKaGVIQldoY2ZWQUZTZW5vRDZVd3hvYjhyQytDNFpwTFVwNjhZYlFaalpCL1ZWbDYyZWhFL1ZURVBuUUFpa3NJV3pRWEI2Q2s5ZzZBUmlRU0pGSzUrbzJEYjAxdEY3ZHliQnA2VVBjbSsyRExTYzFQR1IrUFJVV2dGbE4ycm1aK0hRV3M5dXM2bXVadFRNNmxXWWh5cnVMTHRaNGsxUzRpaGlSN0NjZlZFV0lSeUsvbkwvd09DbDhBcHJyV01oV1BZRmI5eTRVZmpCNXMyUFpEUEo4MDBVRUVFUTdSUkg0YTVPWnpnZFVYeHFQOHNFVnRZeUJWVUphRUZSUHJlenYvODVjQ29Pak9LVDM5WmV0ZnlDNUV4bnY2Q2lCR2ZSRE1yNDd2aFpsS29va2JQUWdsbWRYMDJVd3VZSWhaUGVyOEYxSDQvRHE5b2RhZlZnWmNCS3pJQlFXZ2NEa2dSTmdYZWQzcHE1UU8yQlBVa0tzb3dYYlRsaHBIT3BxTWtNRVZwaWVtU1VYcG40ano4KzRPOExPQWhPV3JQNnMzRXQrVWNyWlowNk56WDFlQ0tSZVBFZ3U5b0N0Nnk1K2VQcGRQeDJ4eHdUdXkvemZVZkJWZjZ3RUZObi8wcFkxbDBVTFVGZWlhYTNFMTVCSEszejdwa0I0ZDRmM0wxUHp5VE9SOHR2b01sajgyZUJ0bDNCd2MyRWRaQkY1MjFqd0M1RDExbXdqS3l1cEUzdDJaVnRiZjhBamxETnE1VWFwbktiTFZBb1JJS2xnNGc2a21MTzJiSmthSVpweUU0RjREMlRWZkRneFNiODRxVUorUEd0Y1hoMVBWNDBHZ2VEdmVMT08zUFhnMEV3c2tsb25KdUZlekwzN2VpdDZnbGNEcUVRTm1paUlJbWVTbUNueFMrU0JUMFRVaUtRdkovY2Z2NjJqcXZPS29GRFI0N2twZVR1V3dKVXJVelMyZjlHb1hvSkR0SC9IYllkdHI1RXdZNUdoSng1ZDRVN0wxUkYvWnUvUnZaUnpPb2FkaHE5MjkzaEZTczZPQnJCeWtYdTdhME5QYW40WERzNlVlN2crNE83blBEWWQyeXhNV0luUnArSzJVblROSnhOMUc5SkhPK0wvV3RrRFN1Wml2LzY1UGJtODJBQjRacVkwNnBGSW9GSUp0SGtoWEZrMGNTWkthaFB6OEwvSDYyQmp5d0x3Y2NmSFlRdFA1K0MxbEpzWUFyUGtuRWF3VXRndXNCK0YvQmRSTXRwSnNFTWh1RHFzU0Y0eS9nWG52Z0ZuQ3ZkaTF0RVIwdTU5K1VXU1lBUUVHRGFOT25veU91NnpnMU5CYi95bGtzZ0h6a1c5eTFkSGw1NVpWeVl1YUJaYXZ0YS9acDZGbVV1WkFadGJaVnRyUDFpSnBVb0lZNS9WOWlYT2EzbHZXaitSUW9EYTZhd1RFTTdwNzY2K2h6ZnRSMTNISTFnMlIyd3NtMzVJK2w0cWxsZ1FrWHRrS3RvTi9zK0RIVFFDZE5rNFpMU3A3TW0zYWhualgrbGt2alYwdExZRGh3aDlPL3RlemFvajRsQ3dVUHB3djlOaThZVHFTMHRsWlZzbFl3QnZzNjVTcEphSi9IVUZlaGpMek1Tb01ZcjRiYXhHRndXcW9QeVc2WmgrL01UY0RFbWFES1RlQkNTQ1lTSnZlQzhxTTl5ZUtjVlZSQzFjYURsVmZEUXorK0VVbmpUdHZkQlkyd1lIWGNXYnVhTEpPd0RiUE1vNHVoWjBEZEIwblR3QWZqaHBiK0J5eTRqenNiQ1NXQVFXcWRyK3ErbE51WEpNbEpXQlF1RHNycDdiUGFUYnRRbkZBdUxvNWdLdFQwOXFHdE9oS3hoUWpBU3ZEdC85UEhIWWs5aVQ1UDI5c1pMMDNOb0NnaGhha2ljMzV4OXQ4Z29tRkk0R040M1phYmVQRE04YzZDNHNSYTJrRUVVdG1ET3JsNGtqdFp6YWhCeTdWbUdZUWl4OHJLdVBkMEhsb1BQNmYzVFNlMmJ4d2FIcnRtTFN1VjVFb0RSRlRxOC91bzRYSHNWc3ZFc1FNdzY3THA5ZGRoeUZ0UEFvdVJlbXVCajRmMVhqZTQ2am9VUXJJSWQyT3dabFI5Y3MyTGlGR2t2ak9tV3pXOGRiQlFwOW9PVUVhRytlUXJHNkpudzJVZDd3T2Nib3NDMG9jczNFemd0SUp1enBqaHhZR0s0cUFYYlIydXNyZGxzR3ZvMU9CT2RhZ25iN3VXNlBaODI4RjM1d3I1WDdoZ0x3eUpCVkpTM0R3Nk9QZ3hIUnBVc0Nvc1ZMRHRpYVd0dW1FaW5rakZtMXZ3M2FEZE03Qm9vcHFta1NMVGs4ZTZldmczK1l5SGZLOTdzaHVWMTFUdG1kSDJOekdZa3kvY0pYaGh0MmVxTENZaXNLQjhaSEJtN3c3dVEwMXNxcnhyT2h0YUJZUHg1dzl1bWhFOThJQk9Pb0E1QlV5Wm9wbUN4c2NFK3BaWnVxWFcxMEhyU1dtZzJOT2lRd3JEY21MT2JZQldBeEE2dzNEYnRpOVBSc2taQXloTDRmNUVJZkJYdTNIQUxEQTNlQ0diQVd0Qi96STJ4YUlLWkVLRTVCdUpBNEYvTUwvL2h1KzRlUWFSaEtQSjZHZDlSZm1mZmxvQzJ0cm9XUFdQMFVzT3dHQmRURVBFQjVJVEhQU2YrVEZHbEN5YTEyOHI1VmptblBxL1pLRlhVNFBpQmdhRjZ0NEcvT2NHeTd5d1dpLzFUU0NSM215Z0NoSGh6dndDTU9pQ0JVR0IvVDkvd01pZ1NvaUxZd3JZZU82ZS9vLzE1SzUwcGtXUXhqcXBPdHJCNVdaUjFOSld5WVJxQmFHbTA5OFdYdXM5MWoyT3JhalQyb1hYOTZXVzljVEVKMFNpRmVMendZcXBuQlVnM0VnZ08wUFZuTlpwYk4yNDFQdlZlQ0gvdW0vRDVZQVJ1ekV5QmhaUlBUbGc4R1VHdFpTbmxJTHp3RjJnNzQzWFFCM2RkT0FsOXZXVkFaV3A3Wk1WbTN4NVJPNTdSUWRVVWFPcDRFdDcvWCt1OHplMXJsbjh0bFk0UGpIU09mQXZtUjVEMjkvYVdwc2RTaWZnRzVoczVBbHlzVTEyYWdVMElOTUdLSWsrbDQ0bHFJb211eXZMMm5hZk5rRHZGK0ZBTmZhUi9jUEFPT001YWE5R0N0YXlsWVMrYXdSVlVFbndoci8rbWtMWVcwYTBXMVJYN0J3YllpcGlYdXhHL0p2UHY2NXVpdWUvTXZCVHdXdTBQdlhQai9sRDY4OUNadFVETzZwanZJNndjMlVrSzRqRW1LM2szV1UweSt5MEZQY0Y3NGJZdDEvN1BuK0NhVTgrQXpWYkNOOVB6RnNmSzZDQ0VLcUFQQmE4RnZuYnFHMEF2ZVFLMHBHdjZGNEJGa1R5U0pMR2k4Z2ZtaDMvM1Q1QmZTR0cxdExSY0dRNEd2cGlTdEoyOUwvUmVYTnludGJXMXEyVml2b0RwQ05zRUhveVNZWUxDdERnUnBXZlZZT1FDTFRVNzdkeW9QMlNFNHVadGc2Z0VRbW5VV2l6MzZVWk54d2VMY2Q2WnRtckVhMStCWTBmQnA2WUxLQVBHMDRuaWs0Y3BWRkMwM2YrNStPYlo5Mkt5Vk5qLzl2czN4dTZLTjBNVXplU2NrWVdoTVJXNlJ4WFlQeU5EejVRTWZiTWlEQ1VFRENNSlRNNkVJVGp4WWJqeHpCdkcveGNldGlXSWV0Nkk4ektkS3hCa0VjVXhEYzNKQkh3RlByM3JTV1M0dGdJcjlpS1dOZStxV0dtRW9rc1FLWHV5U0tob1kyTmpVRGN5N1hPSjVFMnpZN09mTDdwK3UrTWlxdnhqUFd2ZldvNno4cC9BK2Vwb0g5dEZzTWpYMGJUT0VGVjZtcEVTMUl1c0MveXJYUERPM0FxcWFabFFXMVBUUnNoUDRPT0NSVFVjRGdUV3BsSXA1MXBkOWhmbUVjK3NnTTc4ejl5WCtWaElXeTUyQnRremZPcStKd2ZnUFRzKzF2R2Q0YXA2VXZsQk9LWHNBRVFZYThFc0RncUNUWEt5ZkllQ3VUOGN3Q2x5OHU1T2lMUGhGNlBZUUNsWVlobnFOR1JPcVdHTGlTVXh6YVRoRVNyOGUvOWVhSUF2SDNnSExJOVlrS1drNkc2b1RacVcxazdCOUxsdmhMelp0enNtVUNaZkdZaEU5d1FDQXc5UGowM3ZoRHluWk8rM3ZLN3VEZWxNWm8yRS9oTHJUMUxnOGJrN2tsejBSeFJKd2F6cStQM3NTMGdydlpFNnkzSnA3bUo4RklXajRXeUZ4cnhoZEYrek4zVjAyRS9TK1p2U1dIaDk5R1RuM1crbDhyT0QzWU1vSU9lZFNEenJibHpvQnNTaUF4Zno4c01iUk5MVjFaVWQrdHp2dndkWFBkMGFlNEcrRHBycTlrQkl3U2x1T1Bzd3E0RnN2TmhxYnZ2WFd3SHozL0NxWng2Q0ZkZThGVW8rK3RINjJFd0szcXBVd3F5QjZVMExVNWxJNW9PTy9GZE5HendOWFYxenNJMThGVUtzUmtMd2FTMzBuK1ZLZ0tyTWV0aTQwUUlmd2RTeXF2M1NORkhONU5oa0p5azU3V2IyaUNRb2ROb2hLZEROU05xeEkwU3Z5OGc4YzJZYk84WUZvcmdMbTl6MmhhNnhybWVDd2NoZU4vMmF5OFBtL0RIaWkweHc4TFNNSm1Vem9XKzVPeHdYMG5SUlVXRkZlZWwzZ29wOHJUV3Yrc205ZVdCWkVDVWxxS0g2L2Z2M3p4NnNuWTYyNXZjZ2ozQWJoalhUcUV6c3hteGhkYnFIcVhhM1pOMmUxSlRaMW9BaUtDa2pjMlpQejlnb0hONjkyUzBvWDFoM2t4Nk4zd3lqYU9SUUxhQ0JRMjZuNUFGcFJQcWY1RXVHYm9Xc0dEUlprcHFZdkZPN3A2dDc0MFlRUHZOcCtDVnFyWGRvQ1pzaTFjVUFLTWtrWEJ1cmdUdmgyK3ZpTURRWHR1V0RNRWM3aXducTBzM3cvcWYvR2ZJVWcrMEMxTmZYVjVaV2xXNmFISnQ1Y0d4NCtFRjN1eWRZR0YwM1g2N3I2Wjhod1c4ejk5UVZ5VUxmMWZuTTlDMVNIZ1pxdnlxY1FIR3ZqY2JHMktWWmpkd3ZPY0d6TU45NUJ6OU5ZUVZrV2REUzJhYkJxYWtCT0E1WWxHREZTa3Z2REFYa0Qxa0w4amxzOVI0QldWWG1xS2pXRklYWEJXaHRhcmdobFl4dndueVdjekZ1WEUyTFB2dmJWbVFab3dMYTBOOC9NUVNIQjNhUGRxaW1mbWJkZFZwdzdqWklzMUlMOU5OTUUvUEJYdkRsQmxTeE1sREw2SC9CRTlZbnRidWYzanZVQld1cld1QXhJd1BsMlZtZ3dScXdIdnhQaUY3Ky9Cc3ZndVdUOTBOR1FIckJJTkJTbllSZnExWHd5Q002K0RSMDQ4bXRaeVdtWjBZWWYxZS92T2JkaWRIMGMzTnpjMTN1WnFlY3BybCtOSjFPVnpNejdXa2F4M0w1ZlZiYnQ3SWpiVWtOZnFkL2NPaWprUGRkN2ZlMlJtd25rNnAyK3JPWVFNM1RRSGI3R1BKSzRjaVcvdjVCbGdFNDVnbnFSWmxDTlNDTldZZW8xV1RLQnhNZGdmVEVSTW1oMmtHV1JtTStHa3N0aXFMZ3FHejBBaGd2VnZ6WnJyVmk2MDRKT2RJUW1WMmNuYy9VdnZ6RTdkQlVQbUNUWWtqck9Kd0M5cW1GTDBPd3JSbU1UMW5haTFOdjFVNG5lK0RXYzU2b3YzRDVOTXB5VEUvQkYxQ29pRFlONGtYWHdHL2duajg4QUtHU1lmVHlCWWdFQkRHaC93c0tsUWI1eVdxejdsb3FlU0FXamQxYTN0VDBMbEllN1hXRnlpdE50aG9iYTY1SGY3VWF1U2lMK09pOXdvalFNVzFJRjRBWVVDR1p6bnpWM1dENTdwRlZjOXppSHVjT0R5bmd2NXhOYnZ1U1pHYXoyb2EyNnVvMWNCeFNQWXNTckVBZzBtdllXdHZ2WHdIazhuM01oVEd5Q21hald3N1ZEblhkZnlkVlNCME50WUFXOUxTWGw4cGdmQXdjT1p5Rzlja2RPZlBLRXNzZXIyai94bVJCRnBDRkJSaExXREErOHdiNFZMUWJQcjN1c2RKL09Pc2JELzhJeXRVeTZGVERzT0d4SDBNNzdESXVoaEFLYVVtMDAvelVVeitGUWcxaTFEVFdmMEJJQzVYN08vZGYwbGhhY3Qxcy84aU1leTIyUUxCSVVSWGxyNGpNNmg5MExGeVR4dm9BQ1FoRk43Wk1PZVpMS040SkovTWRzcXFtc0pPOEFmRUprMytzN004aXdRaFVDS3MvZERjYzB3aHhVWTBsNSthZVUxVzF5Q1duK2JRRHE5ZkEzRjhrR243WG9jNkRRYk9LcXQyZVhzeTlNRm5nNWdqUUFtclo2U3ZVWUZUSlNsbFlMQVFyV2pnM0xjanpQdDdFc0Yrb0lwRUk3V2RxWW1JRHZGdWN2ZmlGMTMwSlpXNWxjZ1p1V244NTdJRHYvK25QME5oOEFFYkllL09kNEx5M3JXaFlNem93ZEU5MVhkWHZWNjFhZGY3MHpPeDVpZUZjUllQOWZJbEFRUDk4SXA0TU1ZTGR1MGQvTkpmL3pXRjFtR3VveWVUR29oMXlIY1FLQjBVaTNvSDk2Q1krbk9NTDIvVWRJRXBXT3BrOHJiR3U3aTF3akxYV29ocXlvNXBzYWl5VlNKZFl4Rk96aGFxYktaOXdNSlEwQktrSy9Td05Gb2dNMjlyYUxnTXorMDA4bEpVak0vNU94eHlabE0xbVgrWDVYZjZVQmp1SExJa215ZExHM3ZIeEViY1p6ejk0T1QrQmRGellvWFJkMkRvRTQrT3hmRkJBNFBDaWJpWmdMRm9QV2VJZTg1TE4zL2x6VjhuUGdWenl2YlY3WWZ2MkxPVExaWXlHaG9hS1NDUndtbWxZMzhYaytUbFpKWHZHVlAvVVkxNURiRC9VVnVYRXpJNGJobTZ6QVBOcjFLZ3ZSY2hDUVF2VVVPZ1B2WDJEYnpyVVZiS3h5YWFUVTdxZUNUa2xYSGtuM3QrZnRyQXhHaEw1NUdBNDNOL2RQOWdNeDVDTlh6VHozbGhUZVplVk5mNFpXQ3JCTG9DWjF4UXJCeFVVSmJEcHdPRHdKMkYrb2Q2Q2hYdkxtcHUvbVV6RnIzZnlqdzc4blNHSkJHa1lhT3FmY0p6M1lERFlXRjlmZFY1M2Q5ODlCMnZUZzN6ZGE5K1hYVzM5QUpQSlRuL3J1cmZGU2RFUUNvY29FMkFjbUlVMkhxTks1Q3JVeWtScGZLcDU5bXU3cHNFbm5jdVd0VjFkRWd5L1l6QTEvR05JaUYzUnF2QlozYnQ3N29MOG9Oa1RvTFcxNlo1MEluNjFLSWkrM0dOaEgvcnZtL2xYVkZaK1ZES1grTzlTV2E1RnJXU3lSK0kwWXJQN2NHdllibDhnNkNiMlpNUFNWOEF3VnVlZCtHSk96QTBSaUwxV3prNVFxMEhsL2IxOUkvZkFNUkt1UmFzK0RLR2JGTUhxMHpTZDZkMmlETHdERnNKZ3h3bWgwdkJGblowSEhvSDVDV2p2M2ZaTlY3WTBmbUEyay9rZXkyb1J0Mkt5R0xJaW1ZSk9HM3JHY25SREdJVThvU2pTYS9iM2o3QkswNE5wTGhKdGFJakYzM2xxZXdXWlhEMHQwRE90azJOcklaNDVHU3l0QkNhUThGWHdNQXVGaktXRHFFdUw1WWxLdE5uSUgwWHhoOHJvZnRnZnVSNGVuZnlkcTYyZ3VycTZoa1Z0cFZIMVc1MWRmWmV2WHJIaSs5TlRpYThOVFF6dDlWMlRmYytzNzBTYTdVUHo3ejlCQWZ6VkNzN1ZFeDJuRlBMNm9qUHFLQlVZSHlOM1N5Q0N1MlV0TCtLeldCRWJPSlVSUkNqV1dBWHRPKzNpYlZrMEVsVm0xWEJsemU3ZHV3MzRLd3FXRTk0Mk45eW5wVkpYVUlFNHVhMGl6b1dCWlQ1bFNSQWtKWEIxVDkvZ3ZiNk5mdUhDbWQ1Nms1YWN1OWt3VWMwVm1BYmZidmkvTE10b0NpMi9LVlFiS21LalNqZ1lUZXRtcmJ2S1p5SGhXbmdtdnJjbUxOUDZqdXpaMm50UVBLNkFSS29KNXBMTW82R3V2OGdjRkFQRXRBU1ZOUW54UVBLOTVqZTIvOHAvSHlnb0swa0pvVUlhM281S3I2K2tNcmcra3pUNlNpTVZtN1p2Mys3UHlia2x4L1cvVFNaVEZ5QXRSOTNWTmpsQldyaHNHMkQrWElSRDdBTXZzOSs4WXl6VE1JVklhZWwvZFBjYytESWNBNjExTk00YTh4TUN4RFRHcld3bWpKNGdpMFZ5MFlpdmFjdUorQUQ1VW5XSGJwai9aaGp3L05qWVdDSVNpWVNqSWZVY05hQitKWlBLckdLVGh4Qi9WZHY4cUJPeitaYXBtVGxUaUFqVVZwYjM0emtxZzZGUUNwVk9TNmV6NU9tUVpoRVdFRzZHaHN2V256NTRqdlpaVU1TTFlXeUdRRVkwUWRWRWFHaDlkdjFRNWh4V0dRSHU0ZzZXTTYxcHExbGo2RVlWVFdmck1BZDB4blE2OVRrcGJjblhYbi85N2p2dXVDTTRPanFhQnRldll1ZnA2S2hkblUzU0YzUXp5ekxrZ3QrL0srU3VpZ1ZqSVVFcDZwOURvcGd3TFZRQ09QOXBLQmpVazdwWmdkZWNnc056UEErS295cE5IaGdZU0VzQjZXeFpVc0ZlWWVPRVUrQy9BWEN5OUl6NU16T3A5T21DYWY1T0ZlaEFTMDNWVUVVNE9JZzI5SmVaVkdxVjRBaVZXOWhWeUlzVm5SWU5WU0dYeFdJSENXZC9PcGtLNlFJWmJHbHBhUU5IcUE2VnJxQkY3L2ExRHY1aTZ3NzR4RE9YVmo4d1U2Y0dhNzRMeXhRUldsdDN3b2QrZTFiOG9WdzVqdFR5bXJhUHNiQS9PWlc2WXQrdWZUODB3SHlOSlluYlZTQ2gwZW5wRis2KzYzdDlRVVg1RHVTRnl1NXJkSUorbk5HWUFTTSt2OHA1RldxcXZJQjVGRXd1eWV6UC96RmhwTTdEbVNpMUNyZERmdjk1TEh6QnVXMkJwc2xVVWxVRTRSdnVBVWVWNmprYWpjVmdhNFdPdHFienRYVG1kMGd4MkxjSnVUb2lnQVZubGV1UE1WRVV5T0hJdHRzeGxLV0tKTXZTclFLTlZWOVpQb2dOeFJqRnhaYVBTY0VnNitRTmc0T2piRkZvYm1rYUhENXl2bURwSldlMkJ4TDY2T2lqTzVQTlp5eS9iblpTZTNpMnIyOS9WWHZOdnd0SnVFK25lalJTVm5wZWNtTHUva0FnTUpsTUp0WEtpcExPeEZTOE1oSU9UM1FQRHJMQ090c2N0clkycnRmVDJoOVFzeDNFLy9IbVpWN2JvNDh1aERDNlp1YkFZdGtjejVHMW4zcGlpdzRyOUxPUGNzeXE0NHc3a1FpSVdpWVZZUDRXTGZKWjgweTgyNXdqdEphcUJnVDBtcXZjaGE2THh0R1NZbllaY1ZkUC82TktPSFNPSk1ub0NOcEM1Zk52ZkpiTi94TTd1YmZJY3I3V3BlRE9RRy85WEc0RGt4NjFpQ0IxVm5LeVdXZXZkakl6bWlXWTFoYk1SYkxxVFF2eTBkamhUaVJ2Nmd1enYvekxmaVpVN0VkOWVHWTRKbUJVaWI4YmMvck9XRjMxcnlyYUtucXJveFhmUXUzVlR3WGpnckpvY0NvNUc2OFVNTExKV25xc3JLeXNBVHhHMHJLK2I1bk0xM2VESFNEemF0ZnpWcDhDSzhjT2hjS1BYZjJCRDVVa05MMDJwUm0xQ1MzTFhqVXB3NnhONkVaZFVqZHE0NXBlaHkvMlhwdk1tclg0VzAyV0NGVzRUeVVLeWdRVHRGeTNnaWRReEZjdDRaaEdwa1ZaMVVwQWtlNTJMMmpSOG5HMEdzdURyYm5ZQS9WamtlRFcyZG5abGNSTzBRZ3Y0MEhPMjJ6cmNCUFRKSUdBb3FFL3hucFl6Uzk1b29ESlU1TVdPdStCT3FheENJbjVrN1kyUVk5eFFDQVlHTWJZNFozZEI0YTJGZDN6a2ZvUXBQMms5ay9NVHM4K0ZZcUU2bFBUMDUyWUZScGtqNFpzYXFxc0YwRjVJSlBPdkZhd3kyZnMvTG1BMmhXUWNEa05YWVpkZFhYVmw0S2gzMCtJRjYwdDFBZjV6N2JtWVNWdHNyQm1ZR0JzSnl3U3k1b3Jyb3NuNlcyTXBnRmZjbnArY0pRRDg0a0ZVUlZYREF5TTc0TWlIL1J3Y2F4b2ZGdHpqZU5nNyszcFd5VXI0V3ZRa1I3RGtjMFhFTTA3cFBCM0oxVmpzbVhoVmppcS9wUW9vVEwwN2RPTzAwVnRzRUZEamxLVWtGc29iaTF2UFZ5L0EwY1E5N1hRUk5kcG1lelR6VTAxenphVWxhMkJRcWZqU0NhV09LMU4zejA1TXZsY2YxZi9yeWNuRXk5SmtoUnNxcS8rdmtDbFFmUVRYNHM1VDlOVkErejV1ZFJFbWorVFlldURrRzlUcEcrN3NZM2phemszN2QyOGovaDNmQ0RUb0VJd0pPMXloV3F4Q29Cb1Z2Q3VVRkJKc3I3MXh5cUMyMkdreUJTenRDd2JDMVZRZitxMUFZdkFzZEpZL3ZaY01vVkZqYlVYR29aNXJRemtiR1NHWWdaVDcyd2VtcXlzbHRpbWtPMk16bmpXRkVpUFJNbTlhVXJ1ZENrRGdrNzRLdmE4UnN3NVl2cURXT2p6b2cweTVLNitQcmFxMTR2NEF2WFY1UU1vUnhYRjNLWXZkRWYzeEJKa1VRSVNrUGRZVk5pVXllaS9HUnQ3MmRLYmVXRFBwVWdtWjk4WWpaYmVZS2FTYjhJc0FaTjFUR0RadElFckg1VGxwMFFsR0hybXdNRFEyVTBOTlp0d3RHNGdrSCsrUW02US9ZNDA5Zm1qN1BFQUliaW91M3ZrRVZpazF2Q09XOTdTOGlWTlQzL0dxZEttcmhkTVhJRW1lZjZSZ3Z2TU1HZCtHSUo0MmVEZ3lQMndDQnhyd2ZLMzZ3a1lwaGxBeldRYW0vV1ptVk9qSVhtWkVRd3BobTVaYVUwYndWbS9GN21wdllPRGc1TkZ4d0ljMnVIMk9oc0ZLNGFDUlNvOGY2Rndzek5lanVaRHZnYk5JMnRVa1RBSUVJUmQ2QmMraXVadEc1cllmV2gvUjBPaGtLNnFzNVpoeEVnNm5jYWQwaFh4ZUtxdHJLVHMxU2dVRzdDMXN3eGRDNW1zckl2bCtGejd5eW82bkdsQ0RVMnpwR2hKYUNoYVhybGk1ODZkS1V6eG5DYUtKbk9aN0RXUlRvV0d4Z29zMENuTTJ2ZUliSjlnZjlac2psWlExU2owOVBRd2N2Vm9PU1ZiUXlJMWRBcWxtUXpTckhoYU8rdU41eWFXODFRYWhmaWVZb1BLakpIZWdRQkdEam82OFh0Z0VUaGVnclhRZVE1bnhpMW1adG8rRm5aTURPYlhMeFhzbUYrcjZBUlJyR2ljQ1lpaUt2YStyQ3lZalM0clNXYTFveXpQZzRLSXhKbUYyWitzVThKajA4RGVrNWlKejdoUTUxR0NwZ0RSYXZqQ25qMFRHOTBUSGZTQkpvZUp4V3FyWTNYOG9nVDdsZm9qUW9kN1k0dnJBQUswMkFWZDBERjE1Y245WWxOSm9zU0tTUzFiSnJOV2xpMFBjYXNPM1g5YzRSUWxwNnRvTG5YbE5VTnpGczB1VnBFbFUxRkdib0g4dlhoQzVVOW5IUW1PUmlpT3hmR0wwcGF2bE1ZNm5yQk5JYjVYT0Y4WENCTjh5VnlBZkhWbVFhaGZJSFQrZGdvaU5SL1A1RE81L2p3cFU0UVpzazlRR1BNa1pKQlRlMGJMR3JjTkR3LzdId0p5WEJlTC9pMWdxUWlXYlFvcG5mOW9uNE9Xb3hBbmpjRnlqeGlLMjhXalpBRW13alp2QW1GNUJXSmtEY21pOWhPRjNLZjlMWEFlNnF6aEpvNFhEQWJhVlZrTlFFUUovSHh2Yjk4VnNIak45WGVGSlNSWVFzeTNuQndXRnF5OFIyVC9Md2htUUZSV283ODhxU2paQmQwQzV0d2lIMlVrRXN4RHQxNHZLZkx0UmliWkNMbUhvT1MxWDE2ZTNYUG5mRG9uSTFBU0xYbDhiODhCOXFpQlkxYjM5TGVLSlNOWWVDc3h2M255cHl6OGRkOEZYSTZrR0xQeFpGMDhIaitpOUVWN2E5T2p5Ym01TjR1UzZENjB3enV0MzlRNjF3SDVOSTJKZ1FEajRMd0hjeXhwSE5NNjU3OFNtSjBpQlJ5UTk4bHpmd2p4K1ZTKzdhaU5WRlU5a2o5dFlyTVcrM3Y3THd4RklsUHN3WVhVODdsOFF1dFBsWGlSSTdBVlpJVGxsWVFyNEFUQVVoQXNTb1Q1L0Q3Sk1jdjJMcjdmZk80Tk9XSmZ4NnRVUUJwYnVKUFY2UHZUVGY1NmRlSmJKT0lVb051MEtUZ00rTkxIVWhBc3lGTTFkUDd2L2xSUGJsL0lGZmdzQXJadmxEV3ovV3pKV3U1TTg4N2pDeURkSGV4bGJBV3JwNWN1bG9RcGRPSTVQMkcvZ0lEbDRNdnVINFdQU1F6N1dVYUZ2K1dseVBmZDcyZUJ2YUFiVGdBc0NWTm94L1UrWGlxZjIvVkZnVkE0NkFzUVYwY0dBZWFWb25qblhyZ1V5QzNNRXdqWFdIOC9jTksvM3NKV1QzRVVWa3A2OEx5eEhGZStPQTBpZTJMcE9lcDVMVFd2WnIwZ2ZXa3RYcGovanJBMFRLRzM4amVYWHZFeDQ3VG8zVDNrYUNGb3ViUE84NjhLK1RTSHovSytzc2VWZTAzQUVzYVN1RGxSRk1Pc3ZvZ2xpVmtwanYwc0NQWW5WTmhuKzVrUFlQOW12N3ZiMldlUmxac3VicmsrV3k1VXh0ck9zaXBYMC9Sc1lFNkkyRHBBKzJVYTlqdDdraHNyRnhKRnVMU3lzdEw3KzlCTDF0OTZwWkxReHhQWnRKYTkzcUEwZ015NGwvQjFCNHpSVEV4d1dFR0w1VDdleDh2dVVWSFNMVVZXbEdsWUJLYmo4WWRVc0lLVmVQeGNLS0pJWUFSRUltTVNtNHBFeEg0VkJFV2dnbVN5NjZKVXNvakZudHRORE10cXI2Nk9mbnBpWXVJendQRTNDeVpBUjZ0MUY5UEdzWmlRaS8yYjB4d2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQnlIZ2Y4RGZqL1VBMnNyU0pzQUFBQUFTVVZPUks1Q1lJST1cIi8+XG48L2RlZnM+XG48L3N2Zz5cbmBcbn07XG4iXX0=
@@ -7,6 +7,7 @@ import * as i3 from "../../techlify-icon/techlify-icon.component";
7
7
  export class ExportExcelButtonComponent {
8
8
  constructor() {
9
9
  this.isCSV = false;
10
+ this.iconName = 'export';
10
11
  this.fileName = 'Export_Data';
11
12
  this.data = [];
12
13
  this.isExportingToExcel = new EventEmitter();
@@ -57,13 +58,15 @@ export class ExportExcelButtonComponent {
57
58
  }
58
59
  }
59
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExportExcelButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: { isCSV: "isCSV", fileName: "fileName", data: "data", tableId: "tableId" }, outputs: { isExportingToExcel: "isExportingToExcel" }, ngImport: i0, template: "<app-techlify-icon name=\"export\" class=\"clickable d-print-none\" *ngIf=\"!isWorking\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}:host{display:flex;align-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: { isCSV: "isCSV", iconName: "iconName", fileName: "fileName", data: "data", tableId: "tableId" }, outputs: { isExportingToExcel: "isExportingToExcel" }, ngImport: i0, template: "<app-techlify-icon class=\"clickable d-print-none\" *ngIf=\"!isWorking\" [name]=\"iconName\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}:host{display:flex;align-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
61
62
  }
62
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExportExcelButtonComponent, decorators: [{
63
64
  type: Component,
64
- args: [{ selector: 'app-export-excel-button', template: "<app-techlify-icon name=\"export\" class=\"clickable d-print-none\" *ngIf=\"!isWorking\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}:host{display:flex;align-content:center}\n"] }]
65
+ args: [{ selector: 'app-export-excel-button', template: "<app-techlify-icon class=\"clickable d-print-none\" *ngIf=\"!isWorking\" [name]=\"iconName\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}:host{display:flex;align-content:center}\n"] }]
65
66
  }], ctorParameters: () => [], propDecorators: { isCSV: [{
66
67
  type: Input
68
+ }], iconName: [{
69
+ type: Input
67
70
  }], fileName: [{
68
71
  type: Input
69
72
  }], data: [{
@@ -73,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
73
76
  }], isExportingToExcel: [{
74
77
  type: Output
75
78
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWV4Y2VsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2V4cG9ydC1leGNlbC9leHBvcnQtZXhjZWwtYnV0dG9uL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9leHBvcnQtZXhjZWwvZXhwb3J0LWV4Y2VsLWJ1dHRvbi9leHBvcnQtZXhjZWwtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTywwQkFBMEI7SUFVckM7UUFUUyxVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQVEsR0FBVyxhQUFhLENBQUM7UUFDakMsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUdoQix1QkFBa0IsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVsRixjQUFTLEdBQVksS0FBSyxDQUFDO0lBRVgsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxpREFBaUQ7WUFDakQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsNERBQTREO2dCQUM1RCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFHWCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLGtCQUFrQjtRQUNoQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsNkNBQTZDO1FBQzdDLE1BQU0sRUFBRSxHQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELG1CQUFtQjtRQUNqQixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxNQUFNLEVBQUUsR0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxFQUFFLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7K0dBekRVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDBNQ1J2Qyw4S0FFb0I7OzRGRE1QLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUI7d0RBSzFCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWV4cG9ydC1leGNlbC1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZXhwb3J0LWV4Y2VsLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFeHBvcnRFeGNlbEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlzQ1NWOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpbGVOYW1lOiBzdHJpbmcgPSAnRXhwb3J0X0RhdGEnO1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSB0YWJsZUlkOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGlzRXhwb3J0aW5nVG9FeGNlbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGlzV29ya2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBleHBvcnRUb0V4Y2VsKCkge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLmlzRXhwb3J0aW5nVG9FeGNlbC5lbWl0KHRydWUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy9JZiB0aGVyZSBpcyBKU09OIGRhdGEsIHRoZW4gZXhwb3J0IGl0IGZyb20gZGF0YVxuICAgICAgaWYgKHRoaXMuZGF0YT8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNvbnZlcnRKU09OVG9FeGNlbCgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRhYmxlSWQpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgdmFsaWQgdGFibGUgaWQsIHRyeSBleHBvcnRpbmcgZnJvbSBIVE1MIHRhYmxlXG4gICAgICAgIHRoaXMuY29udmVydFRhYmxlVG9FeGNlbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0V4cG9ydGluZ1RvRXhjZWwuZW1pdChmYWxzZSk7XG4gICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgIH0sIDEwMDApO1xuXG5cbiAgfVxuXG4gIC8vR2VuZXJhdGUgRXhjZWwgd2l0aCBKU09OIGRhdGEuXG4gIGNvbnZlcnRKU09OVG9FeGNlbCgpIHtcbiAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldCh0aGlzLmRhdGEpO1xuICAgIC8qIGdlbmVyYXRlIHdvcmtib29rIGFuZCBhZGQgdGhlIHdvcmtzaGVldCAqL1xuICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC51dGlscy5ib29rX25ldygpO1xuICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod2IsIHdzLCAnU2hlZXQxJyk7XG4gICAgaWYgKHRoaXMuaXNDU1YpIHtcbiAgICAgIFhMU1gud3JpdGVGaWxlKHdiLCBgJHt0aGlzLmZpbGVOYW1lfS5jc3ZgLCB7IGJvb2tUeXBlOiAnY3N2JyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RoaXMuZmlsZU5hbWV9Lnhsc3hgKTtcbiAgICB9XG4gIH1cblxuICAvL0ZldGNoZXMgdGhlIGRhdGEgZnJvbSB0YWJsZSBJRCBhbmQgZ2VyZXJhdGUgRVhDRUwuXG4gIGNvbnZlcnRUYWJsZVRvRXhjZWwoKSB7XG4gICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnRhYmxlSWQpO1xuICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMudGFibGVfdG9fc2hlZXQoZWxlbWVudCwgeyByYXc6IHRydWUgfSk7XG4gICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3Yiwgd3MsICdTaGVldDEnKTtcbiAgICBpZiAodGhpcy5pc0NTVikge1xuICAgICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RoaXMuZmlsZU5hbWV9LmNzdmAsIHsgYm9va1R5cGU6ICdjc3YnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBYTFNYLndyaXRlRmlsZSh3YiwgYCR7dGhpcy5maWxlTmFtZX0ueGxzeGApO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8YXBwLXRlY2hsaWZ5LWljb24gbmFtZT1cImV4cG9ydFwiIGNsYXNzPVwiY2xpY2thYmxlIGQtcHJpbnQtbm9uZVwiICpuZ0lmPVwiIWlzV29ya2luZ1wiIChjbGljayk9XCJleHBvcnRUb0V4Y2VsKClcIlxuICAgIG1hdFRvb2x0aXA9XCJFeGNlbCBFeHBvcnRcIj5cbjwvYXBwLXRlY2hsaWZ5LWljb24+Il19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWV4Y2VsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2V4cG9ydC1leGNlbC9leHBvcnQtZXhjZWwtYnV0dG9uL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9leHBvcnQtZXhjZWwvZXhwb3J0LWV4Y2VsLWJ1dHRvbi9leHBvcnQtZXhjZWwtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTywwQkFBMEI7SUFXckM7UUFWUyxVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQVEsR0FBVyxRQUFRLENBQUM7UUFDNUIsYUFBUSxHQUFXLGFBQWEsQ0FBQztRQUNqQyxTQUFJLEdBQVUsRUFBRSxDQUFDO1FBR2hCLHVCQUFrQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWxGLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFFWCxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLGlEQUFpRDtZQUNqRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN4Qiw0REFBNEQ7Z0JBQzVELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUdYLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsa0JBQWtCO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyw2Q0FBNkM7UUFDN0MsTUFBTSxFQUFFLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsbUJBQW1CO1FBQ2pCLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELE1BQU0sRUFBRSxHQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RSxNQUFNLEVBQUUsR0FBa0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQzsrR0ExRFUsMEJBQTBCO21HQUExQiwwQkFBMEIsZ09DUnZDLGtMQUVvQjs7NEZETVAsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5Qjt3REFLMUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1leHBvcnQtZXhjZWwtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9leHBvcnQtZXhjZWwtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0RXhjZWxCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpc0NTVjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpY29uTmFtZTogc3RyaW5nID0gJ2V4cG9ydCc7XG4gIEBJbnB1dCgpIGZpbGVOYW1lOiBzdHJpbmcgPSAnRXhwb3J0X0RhdGEnO1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSB0YWJsZUlkOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGlzRXhwb3J0aW5nVG9FeGNlbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGlzV29ya2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBleHBvcnRUb0V4Y2VsKCkge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLmlzRXhwb3J0aW5nVG9FeGNlbC5lbWl0KHRydWUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy9JZiB0aGVyZSBpcyBKU09OIGRhdGEsIHRoZW4gZXhwb3J0IGl0IGZyb20gZGF0YVxuICAgICAgaWYgKHRoaXMuZGF0YT8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNvbnZlcnRKU09OVG9FeGNlbCgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRhYmxlSWQpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgdmFsaWQgdGFibGUgaWQsIHRyeSBleHBvcnRpbmcgZnJvbSBIVE1MIHRhYmxlXG4gICAgICAgIHRoaXMuY29udmVydFRhYmxlVG9FeGNlbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0V4cG9ydGluZ1RvRXhjZWwuZW1pdChmYWxzZSk7XG4gICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgIH0sIDEwMDApO1xuXG5cbiAgfVxuXG4gIC8vR2VuZXJhdGUgRXhjZWwgd2l0aCBKU09OIGRhdGEuXG4gIGNvbnZlcnRKU09OVG9FeGNlbCgpIHtcbiAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldCh0aGlzLmRhdGEpO1xuICAgIC8qIGdlbmVyYXRlIHdvcmtib29rIGFuZCBhZGQgdGhlIHdvcmtzaGVldCAqL1xuICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC51dGlscy5ib29rX25ldygpO1xuICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod2IsIHdzLCAnU2hlZXQxJyk7XG4gICAgaWYgKHRoaXMuaXNDU1YpIHtcbiAgICAgIFhMU1gud3JpdGVGaWxlKHdiLCBgJHt0aGlzLmZpbGVOYW1lfS5jc3ZgLCB7IGJvb2tUeXBlOiAnY3N2JyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RoaXMuZmlsZU5hbWV9Lnhsc3hgKTtcbiAgICB9XG4gIH1cblxuICAvL0ZldGNoZXMgdGhlIGRhdGEgZnJvbSB0YWJsZSBJRCBhbmQgZ2VyZXJhdGUgRVhDRUwuXG4gIGNvbnZlcnRUYWJsZVRvRXhjZWwoKSB7XG4gICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnRhYmxlSWQpO1xuICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMudGFibGVfdG9fc2hlZXQoZWxlbWVudCwgeyByYXc6IHRydWUgfSk7XG4gICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3Yiwgd3MsICdTaGVldDEnKTtcbiAgICBpZiAodGhpcy5pc0NTVikge1xuICAgICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RoaXMuZmlsZU5hbWV9LmNzdmAsIHsgYm9va1R5cGU6ICdjc3YnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBYTFNYLndyaXRlRmlsZSh3YiwgYCR7dGhpcy5maWxlTmFtZX0ueGxzeGApO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8YXBwLXRlY2hsaWZ5LWljb24gY2xhc3M9XCJjbGlja2FibGUgZC1wcmludC1ub25lXCIgKm5nSWY9XCIhaXNXb3JraW5nXCIgW25hbWVdPVwiaWNvbk5hbWVcIiAoY2xpY2spPVwiZXhwb3J0VG9FeGNlbCgpXCJcbiAgICBtYXRUb29sdGlwPVwiRXhjZWwgRXhwb3J0XCI+XG48L2FwcC10ZWNobGlmeS1pY29uPiJdfQ==
@@ -42,6 +42,8 @@ export class TechlifyAutoCompleteSelectComponent {
42
42
  this.isAllowDynamicOptionsAdd = false;
43
43
  //Output to watch for selected items change
44
44
  this.selectedItemsChange = new EventEmitter();
45
+ //Default false
46
+ this.readonly = false;
45
47
  this.filteredOptions = [];
46
48
  this.onChange = (_) => { };
47
49
  this.onTouched = () => { };
@@ -144,11 +146,11 @@ export class TechlifyAutoCompleteSelectComponent {
144
146
  this.onTouched = fn;
145
147
  }
146
148
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAutoCompleteSelectComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyAutoCompleteSelectComponent, isStandalone: true, selector: "app-techlify-auto-complete-select", inputs: { service: "service", titleField: "titleField", valueField: "valueField", placeholder: "placeholder", perPage: "perPage", sortBy: "sortBy", displaySelectedDir: "displaySelectedDir", options: "options", selectedItems: "selectedItems", isAllowDynamicOptionsAdd: "isAllowDynamicOptionsAdd" }, outputs: { selectedItemsChange: "selectedItemsChange" }, providers: [{
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyAutoCompleteSelectComponent, isStandalone: true, selector: "app-techlify-auto-complete-select", inputs: { service: "service", titleField: "titleField", valueField: "valueField", placeholder: "placeholder", perPage: "perPage", sortBy: "sortBy", displaySelectedDir: "displaySelectedDir", options: "options", selectedItems: "selectedItems", isAllowDynamicOptionsAdd: "isAllowDynamicOptionsAdd", readonly: "readonly" }, outputs: { selectedItemsChange: "selectedItemsChange" }, providers: [{
148
150
  provide: NG_VALUE_ACCESSOR,
149
151
  useExisting: forwardRef(() => TechlifyAutoCompleteSelectComponent),
150
152
  multi: true
151
- }], queries: [{ propertyName: "itemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }, { propertyName: "selectedTemplate", first: true, predicate: ["selectedTemplate"], descendants: true }], ngImport: i0, template: "<!-- Selected Items -->\n<div class=\"my-2\"\n [ngClass]=\"{'selected-container-column':displaySelectedDir=='column','selected-container-row':displaySelectedDir=='row' }\">\n <ng-container *ngFor=\"let item of selectedItems\">\n\n <!-- Custom Selected Template -->\n <ng-container *ngIf=\"selectedTemplate; else defaultSelectedTemplate\" [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item,remove: removeItem.bind(this)}\">\n </ng-container>\n\n <!-- Default Template -->\n <ng-template #defaultSelectedTemplate>\n <div class=\"selected-card\" [class.custom]=\"item.__isCustom\">\n <span>{{ getTitle(item) }}</span>\n <app-techlify-icon name=\"reject\" class=\"ms-2 clickable\" (click)=\"removeItem(item)\">\n </app-techlify-icon>\n </div>\n </ng-template>\n\n </ng-container>\n</div>\n\n<!-- Selected Items -->\n<form [formGroup]=\"form\">\n <mat-form-field class=\"w-100\">\n <input matInput [placeholder]=\"placeholder\" formControlName=\"search\" [matAutocomplete]=\"auto\"\n (keydown.enter)=\"handleEnter($event)\" />\n <mat-icon class=\"material-symbols-outlined\" matSuffix>\n search\n </mat-icon>\n\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selectItem($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\n\n <!-- Custom Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultTemplate\" [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n\n <!-- Default Template -->\n <ng-template #defaultTemplate>\n {{ option[titleField] }}\n </ng-template>\n\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n</form>", styles: [".selected-container-column{display:flex;flex-direction:column;gap:8px;align-items:start}.selected-container-row{display:flex;flex-wrap:wrap;gap:8px}.selected-card{padding:6px 10px;border-radius:5px;background:#f2f2f2}.custom{border-style:dashed;opacity:.8}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: TechlifyIconModule }, { kind: "component", type: i7.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
153
+ }], queries: [{ propertyName: "itemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }, { propertyName: "selectedTemplate", first: true, predicate: ["selectedTemplate"], descendants: true }], ngImport: i0, template: "<!-- Selected Items -->\n<div class=\"my-2\"\n [ngClass]=\"{'selected-container-column':displaySelectedDir=='column','selected-container-row':displaySelectedDir=='row' }\">\n <ng-container *ngFor=\"let item of selectedItems\">\n\n <!-- Custom Selected Template -->\n <ng-container *ngIf=\"selectedTemplate; else defaultSelectedTemplate\" [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item,remove: removeItem.bind(this)}\">\n </ng-container>\n\n <!-- Default Template -->\n <ng-template #defaultSelectedTemplate>\n <div class=\"selected-card\" [class.custom]=\"item.__isCustom\">\n <span>{{ getTitle(item) }}</span>\n <app-techlify-icon *ngIf=\"!readonly\" name=\"reject\" class=\"ms-2 clickable\" (click)=\"removeItem(item)\">\n </app-techlify-icon>\n </div>\n </ng-template>\n\n </ng-container>\n</div>\n\n<!-- Selected Items -->\n<form [formGroup]=\"form\">\n <mat-form-field class=\"w-100\" *ngIf=\"!readonly\">\n <input matInput [placeholder]=\"placeholder\" formControlName=\"search\" [matAutocomplete]=\"auto\"\n (keydown.enter)=\"handleEnter($event)\" />\n <mat-icon class=\"material-symbols-outlined\" matSuffix>\n search\n </mat-icon>\n\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selectItem($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\n\n <!-- Custom Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultTemplate\" [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n\n <!-- Default Template -->\n <ng-template #defaultTemplate>\n {{ option[titleField] }}\n </ng-template>\n\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n</form>", styles: [".selected-container-column{display:flex;flex-direction:column;gap:8px;align-items:start}.selected-container-row{display:flex;flex-wrap:wrap;gap:8px}.selected-card{padding:6px 10px;border-radius:5px;background:#f2f2f2}.custom{border-style:dashed;opacity:.8}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: TechlifyIconModule }, { kind: "component", type: i7.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
152
154
  }
153
155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAutoCompleteSelectComponent, decorators: [{
154
156
  type: Component,
@@ -164,7 +166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
164
166
  provide: NG_VALUE_ACCESSOR,
165
167
  useExisting: forwardRef(() => TechlifyAutoCompleteSelectComponent),
166
168
  multi: true
167
- }], template: "<!-- Selected Items -->\n<div class=\"my-2\"\n [ngClass]=\"{'selected-container-column':displaySelectedDir=='column','selected-container-row':displaySelectedDir=='row' }\">\n <ng-container *ngFor=\"let item of selectedItems\">\n\n <!-- Custom Selected Template -->\n <ng-container *ngIf=\"selectedTemplate; else defaultSelectedTemplate\" [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item,remove: removeItem.bind(this)}\">\n </ng-container>\n\n <!-- Default Template -->\n <ng-template #defaultSelectedTemplate>\n <div class=\"selected-card\" [class.custom]=\"item.__isCustom\">\n <span>{{ getTitle(item) }}</span>\n <app-techlify-icon name=\"reject\" class=\"ms-2 clickable\" (click)=\"removeItem(item)\">\n </app-techlify-icon>\n </div>\n </ng-template>\n\n </ng-container>\n</div>\n\n<!-- Selected Items -->\n<form [formGroup]=\"form\">\n <mat-form-field class=\"w-100\">\n <input matInput [placeholder]=\"placeholder\" formControlName=\"search\" [matAutocomplete]=\"auto\"\n (keydown.enter)=\"handleEnter($event)\" />\n <mat-icon class=\"material-symbols-outlined\" matSuffix>\n search\n </mat-icon>\n\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selectItem($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\n\n <!-- Custom Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultTemplate\" [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n\n <!-- Default Template -->\n <ng-template #defaultTemplate>\n {{ option[titleField] }}\n </ng-template>\n\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n</form>", styles: [".selected-container-column{display:flex;flex-direction:column;gap:8px;align-items:start}.selected-container-row{display:flex;flex-wrap:wrap;gap:8px}.selected-card{padding:6px 10px;border-radius:5px;background:#f2f2f2}.custom{border-style:dashed;opacity:.8}\n"] }]
169
+ }], template: "<!-- Selected Items -->\n<div class=\"my-2\"\n [ngClass]=\"{'selected-container-column':displaySelectedDir=='column','selected-container-row':displaySelectedDir=='row' }\">\n <ng-container *ngFor=\"let item of selectedItems\">\n\n <!-- Custom Selected Template -->\n <ng-container *ngIf=\"selectedTemplate; else defaultSelectedTemplate\" [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item,remove: removeItem.bind(this)}\">\n </ng-container>\n\n <!-- Default Template -->\n <ng-template #defaultSelectedTemplate>\n <div class=\"selected-card\" [class.custom]=\"item.__isCustom\">\n <span>{{ getTitle(item) }}</span>\n <app-techlify-icon *ngIf=\"!readonly\" name=\"reject\" class=\"ms-2 clickable\" (click)=\"removeItem(item)\">\n </app-techlify-icon>\n </div>\n </ng-template>\n\n </ng-container>\n</div>\n\n<!-- Selected Items -->\n<form [formGroup]=\"form\">\n <mat-form-field class=\"w-100\" *ngIf=\"!readonly\">\n <input matInput [placeholder]=\"placeholder\" formControlName=\"search\" [matAutocomplete]=\"auto\"\n (keydown.enter)=\"handleEnter($event)\" />\n <mat-icon class=\"material-symbols-outlined\" matSuffix>\n search\n </mat-icon>\n\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selectItem($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\n\n <!-- Custom Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultTemplate\" [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n\n <!-- Default Template -->\n <ng-template #defaultTemplate>\n {{ option[titleField] }}\n </ng-template>\n\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n</form>", styles: [".selected-container-column{display:flex;flex-direction:column;gap:8px;align-items:start}.selected-container-row{display:flex;flex-wrap:wrap;gap:8px}.selected-card{padding:6px 10px;border-radius:5px;background:#f2f2f2}.custom{border-style:dashed;opacity:.8}\n"] }]
168
170
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { service: [{
169
171
  type: Input
170
172
  }], titleField: [{
@@ -193,5 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
193
195
  }], selectedTemplate: [{
194
196
  type: ContentChild,
195
197
  args: ['selectedTemplate']
198
+ }], readonly: [{
199
+ type: Input
196
200
  }] } });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktYXV0by1jb21wbGV0ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS1hdXRvLWNvbXBsZXRlLXNlbGVjdC90ZWNobGlmeS1hdXRvLWNvbXBsZXRlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0L3RlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBMEIsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7O0FBNEIzRSxNQUFNLE9BQU8sbUNBQW1DO0lB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QUFsQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUdJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFHdUIsWUFBWTtzQkFBekMsWUFBWTt1QkFBQyxjQUFjO2dCQUdNLGdCQUFnQjtzQkFBakQsWUFBWTt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlY2hsaWZ5SWNvbk1vZHVsZSB9IGZyb20gJy4uL3RlY2hsaWZ5LWljb24vdGVjaGxpZnktaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgVGVjaGxpZnlTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1tb2RlbC90ZWNobGlmeS1zZXJ2aWNlJztcblxudHlwZSBTZWxlY3RJdGVtID0ge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIF9faXNDdXN0b20/OiBib29sZWFuO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgVGVjaGxpZnlJY29uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRlY2hsaWZ5QXV0b0NvbXBsZXRlU2VsZWN0Q29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeUF1dG9Db21wbGV0ZVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvL0RlZmF1bHQgc2VydmljZSBmb3IgZmV0Y2hpbmcgc2VsZWN0IGl0ZW1zXG4gIEBJbnB1dCgpIHNlcnZpY2UhOiBUZWNobGlmeVNlcnZpY2U7XG5cbiAgLy9EZWZhdWx0IHRpdGxlIGZpZWxkXG4gIEBJbnB1dCgpIHRpdGxlRmllbGQ6IHN0cmluZyA9ICd0aXRsZSc7XG4gIC8vRGVmYXVsdCB2YWx1ZSBmaWVsZFxuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBzdHJpbmcgPSAnaWQnO1xuICAvL0RlZmF1bHQgcGxhY2Vob2xkZXJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWFyY2guLi4nO1xuICAvL0RlZmF1bHQgaXRlbXMgcGVyIHJlcXVlc3RcbiAgQElucHV0KCkgcGVyUGFnZTogbnVtYmVyID0gNTA7XG4gIC8vRGVmYXVsdCBzb3J0IGJ5XG4gIEBJbnB1dCgpIHNvcnRCeTogc3RyaW5nID0gJ3RpdGxlfGFzYyc7XG4gIC8vRGVmYXVsdCBzZWxlY3RlZCBjb250YWluZXIgZGlzcGxheVxuICBASW5wdXQoKSBkaXNwbGF5U2VsZWN0ZWREaXI6ICdjb2x1bW4nIHwgJ3JvdycgPSAnY29sdW1uJztcbiAgLy9EZWZhdWx0IG9wdGlvbnNcbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcbiAgLy9EZWZhdWx0IHNlbGVjdGVkIGl0ZW1zXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuICAvKipcbiAgICogQm9vbGVhbiB0byBkZW5vdGUgd2hldGhlciBkeW5hbWljIHR5cGVkIG9wdGlvbnMgYXJlIGNvbnNpZGVyZWRcbiAgICogQnkgZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgaXNBbGxvd0R5bmFtaWNPcHRpb25zQWRkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy9PdXRwdXQgdG8gd2F0Y2ggZm9yIHNlbGVjdGVkIGl0ZW1zIGNoYW5nZVxuICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0SXRlbVtdPigpO1xuXG4gIC8vT3ZlcnJpZGlibGUgaXRlbSB0ZW1wbGF0ZSBmb3IgYXV0byBjb21wbGV0ZVxuICBAQ29udGVudENoaWxkKCdpdGVtVGVtcGxhdGUnKSBpdGVtVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vT3ZlcnJpZGlibGUgc2VjdGVkIHRlbXBsYXRlIHRvIGRpc3BsYXkgc2VsZWN0ZWQgaXRlbXNcbiAgQENvbnRlbnRDaGlsZCgnc2VsZWN0ZWRUZW1wbGF0ZScpIHNlbGVjdGVkVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgZmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgc3ViITogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWFyY2g6IFsnJ11cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBzZWFyY2hDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdzZWFyY2gnKSE7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmluZGV4KHtcbiAgICAgICAgICBzZWFyY2g6IHZhbHVlLFxuICAgICAgICAgIHBlclBhZ2U6IHRoaXMucGVyUGFnZSxcbiAgICAgICAgICBzb3J0X2J5OiB0aGlzLnNvcnRCeVxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzPy5kYXRhIHx8IFtdKVxuICAgICkuc3Vic2NyaWJlKG9wdGlvbnMgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XG4gICAgfSk7XG5cbiAgICAvLyBJbml0aWFsIGZpbHRlclxuICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8vVXBkYXRlIHRoZSBmaWx0ZXJlZCBvcHRpb25zIHRvIGVsaW1pbmF0ZSBwcmV2aW91c2x5IHNlbGVjdGVkIGl0ZW1zIGFuZCBkdXBsaWNhdGVzXG4gIHVwZGF0ZUZpbHRlcmVkT3B0aW9ucygpIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIob3B0aW9uID0+XG4gICAgICAhdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoXG4gICAgICAgIHNlbGVjdGVkID0+XG4gICAgICAgICAgdGhpcy5nZXRWYWx1ZShzZWxlY3RlZCkgPT09IG9wdGlvblt0aGlzLnZhbHVlRmllbGRdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8vU2VsZWN0IGFuIGl0ZW0gZnJvbSBhdXRvIGNvbXBsZXRlXG4gIHNlbGVjdEl0ZW0oaXRlbTogYW55KSB7XG4gICAgY29uc3QgZXhpc3RzID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoaSA9PiB0aGlzLmdldFZhbHVlKGkpID09PSBpdGVtW3RoaXMudmFsdWVGaWVsZF0pO1xuICAgIGlmICghZXhpc3RzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvL1JlbW92ZSBhbiBpdGVtIGZyb20gc2VsZWN0ZWQgbGlzdFxuICByZW1vdmVJdGVtKGl0ZW06IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShpdGVtKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKGkgPT4gdGhpcy5nZXRWYWx1ZShpKSAhPT0gdmFsdWUpO1xuICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gIH1cblxuICAvL01ldGhvZCB0byBhZGQgZHluYW1pYyB0ZXh0cyBmcm9tIGF1dG8gY29tcGxldGVcbiAgaGFuZGxlRW50ZXIoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdmFsdWUgPSAodGhpcy5zZWFyY2hDb250cm9sLnZhbHVlID8/ICcnKS50b1N0cmluZygpLnRyaW0oKTtcbiAgICBpZiAoKCF0aGlzLmlzQWxsb3dEeW5hbWljT3B0aW9uc0FkZCkgfHwgKCF2YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXhpc3RzID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoaXRlbSA9PlxuICAgICAgdGhpcy5nZXRWYWx1ZShpdGVtKT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZS50b0xvd2VyQ2FzZSgpXG4gICAgKTtcbiAgICBpZiAoIWV4aXN0cykge1xuICAgICAgY29uc3QgY3VzdG9tSXRlbTogU2VsZWN0SXRlbSA9IHtcbiAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IHZhbHVlLFxuICAgICAgICBbdGhpcy50aXRsZUZpZWxkXTogdmFsdWUsXG4gICAgICAgIF9faXNDdXN0b206IHRydWVcbiAgICAgIH07XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChjdXN0b21JdGVtKTtcbiAgICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvL1Byb3BvZ2F0ZSB0aGUgY2hhbmdlcyB0byBjaGlsZCBjb21wb25lbnRcbiAgcHJvcGFnYXRlKCkge1xuICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG5cbiAgZ2V0VmFsdWUoaXRlbTogYW55KTogYW55IHtcbiAgICBpZiAoIWl0ZW0pIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHJldHVybiBpdGVtO1xuICAgIHJldHVybiBpdGVtW3RoaXMudmFsdWVGaWVsZF07XG4gIH1cblxuICBnZXRUaXRsZShpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghaXRlbSkgcmV0dXJuICcnO1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHJldHVybiBpdGVtO1xuICAgIHJldHVybiBpdGVtW3RoaXMudGl0bGVGaWVsZF07XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBTZWxlY3RJdGVtW10pOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZE9wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxufSIsIjwhLS0gU2VsZWN0ZWQgSXRlbXMgLS0+XG48ZGl2IGNsYXNzPVwibXktMlwiXG4gICAgW25nQ2xhc3NdPVwieydzZWxlY3RlZC1jb250YWluZXItY29sdW1uJzpkaXNwbGF5U2VsZWN0ZWREaXI9PSdjb2x1bW4nLCdzZWxlY3RlZC1jb250YWluZXItcm93JzpkaXNwbGF5U2VsZWN0ZWREaXI9PSdyb3cnIH1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cblxuICAgICAgICA8IS0tIEN1c3RvbSBTZWxlY3RlZCBUZW1wbGF0ZSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGVtcGxhdGU7IGVsc2UgZGVmYXVsdFNlbGVjdGVkVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RlZFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSxyZW1vdmU6IHJlbW92ZUl0ZW0uYmluZCh0aGlzKX1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBEZWZhdWx0IFRlbXBsYXRlIC0tPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTZWxlY3RlZFRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWNhcmRcIiBbY2xhc3MuY3VzdG9tXT1cIml0ZW0uX19pc0N1c3RvbVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldFRpdGxlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktaWNvbiBuYW1lPVwicmVqZWN0XCIgY2xhc3M9XCJtcy0yIGNsaWNrYWJsZVwiIChjbGljayk9XCJyZW1vdmVJdGVtKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgPC9hcHAtdGVjaGxpZnktaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPCEtLSBTZWxlY3RlZCBJdGVtcyAtLT5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlRW50ZXIoJGV2ZW50KVwiIC8+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIiBtYXRTdWZmaXg+XG4gICAgICAgICAgICBzZWFyY2hcbiAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJzZWxlY3RJdGVtKCRldmVudC5vcHRpb24udmFsdWUpXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb25cIj5cblxuICAgICAgICAgICAgICAgIDwhLS0gQ3VzdG9tIFRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtVGVtcGxhdGU7IGVsc2UgZGVmYXVsdFRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBvcHRpb24gfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBEZWZhdWx0IFRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb25bdGl0bGVGaWVsZF0gfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuPC9mb3JtPiJdfQ==
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktYXV0by1jb21wbGV0ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS1hdXRvLWNvbXBsZXRlLXNlbGVjdC90ZWNobGlmeS1hdXRvLWNvbXBsZXRlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0L3RlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBMEIsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7O0FBNEIzRSxNQUFNLE9BQU8sbUNBQW1DO0lB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Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUdJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFHdUIsWUFBWTtzQkFBekMsWUFBWTt1QkFBQyxjQUFjO2dCQUdNLGdCQUFnQjtzQkFBakQsWUFBWTt1QkFBQyxrQkFBa0I7Z0JBR3ZCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlY2hsaWZ5SWNvbk1vZHVsZSB9IGZyb20gJy4uL3RlY2hsaWZ5LWljb24vdGVjaGxpZnktaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgVGVjaGxpZnlTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1tb2RlbC90ZWNobGlmeS1zZXJ2aWNlJztcblxudHlwZSBTZWxlY3RJdGVtID0ge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIF9faXNDdXN0b20/OiBib29sZWFuO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgVGVjaGxpZnlJY29uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlY2hsaWZ5LWF1dG8tY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRlY2hsaWZ5QXV0b0NvbXBsZXRlU2VsZWN0Q29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeUF1dG9Db21wbGV0ZVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvL0RlZmF1bHQgc2VydmljZSBmb3IgZmV0Y2hpbmcgc2VsZWN0IGl0ZW1zXG4gIEBJbnB1dCgpIHNlcnZpY2UhOiBUZWNobGlmeVNlcnZpY2U7XG5cbiAgLy9EZWZhdWx0IHRpdGxlIGZpZWxkXG4gIEBJbnB1dCgpIHRpdGxlRmllbGQ6IHN0cmluZyA9ICd0aXRsZSc7XG4gIC8vRGVmYXVsdCB2YWx1ZSBmaWVsZFxuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBzdHJpbmcgPSAnaWQnO1xuICAvL0RlZmF1bHQgcGxhY2Vob2xkZXJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWFyY2guLi4nO1xuICAvL0RlZmF1bHQgaXRlbXMgcGVyIHJlcXVlc3RcbiAgQElucHV0KCkgcGVyUGFnZTogbnVtYmVyID0gNTA7XG4gIC8vRGVmYXVsdCBzb3J0IGJ5XG4gIEBJbnB1dCgpIHNvcnRCeTogc3RyaW5nID0gJ3RpdGxlfGFzYyc7XG4gIC8vRGVmYXVsdCBzZWxlY3RlZCBjb250YWluZXIgZGlzcGxheVxuICBASW5wdXQoKSBkaXNwbGF5U2VsZWN0ZWREaXI6ICdjb2x1bW4nIHwgJ3JvdycgPSAnY29sdW1uJztcbiAgLy9EZWZhdWx0IG9wdGlvbnNcbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcbiAgLy9EZWZhdWx0IHNlbGVjdGVkIGl0ZW1zXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuICAvKipcbiAgICogQm9vbGVhbiB0byBkZW5vdGUgd2hldGhlciBkeW5hbWljIHR5cGVkIG9wdGlvbnMgYXJlIGNvbnNpZGVyZWRcbiAgICogQnkgZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgaXNBbGxvd0R5bmFtaWNPcHRpb25zQWRkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy9PdXRwdXQgdG8gd2F0Y2ggZm9yIHNlbGVjdGVkIGl0ZW1zIGNoYW5nZVxuICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0SXRlbVtdPigpO1xuXG4gIC8vT3ZlcnJpZGlibGUgaXRlbSB0ZW1wbGF0ZSBmb3IgYXV0byBjb21wbGV0ZVxuICBAQ29udGVudENoaWxkKCdpdGVtVGVtcGxhdGUnKSBpdGVtVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vT3ZlcnJpZGlibGUgc2VjdGVkIHRlbXBsYXRlIHRvIGRpc3BsYXkgc2VsZWN0ZWQgaXRlbXNcbiAgQENvbnRlbnRDaGlsZCgnc2VsZWN0ZWRUZW1wbGF0ZScpIHNlbGVjdGVkVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vRGVmYXVsdCBmYWxzZVxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgZmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgc3ViITogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWFyY2g6IFsnJ11cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBzZWFyY2hDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdzZWFyY2gnKSE7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmluZGV4KHtcbiAgICAgICAgICBzZWFyY2g6IHZhbHVlLFxuICAgICAgICAgIHBlclBhZ2U6IHRoaXMucGVyUGFnZSxcbiAgICAgICAgICBzb3J0X2J5OiB0aGlzLnNvcnRCeVxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzPy5kYXRhIHx8IFtdKVxuICAgICkuc3Vic2NyaWJlKG9wdGlvbnMgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XG4gICAgfSk7XG5cbiAgICAvLyBJbml0aWFsIGZpbHRlclxuICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8vVXBkYXRlIHRoZSBmaWx0ZXJlZCBvcHRpb25zIHRvIGVsaW1pbmF0ZSBwcmV2aW91c2x5IHNlbGVjdGVkIGl0ZW1zIGFuZCBkdXBsaWNhdGVzXG4gIHVwZGF0ZUZpbHRlcmVkT3B0aW9ucygpIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIob3B0aW9uID0+XG4gICAgICAhdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoXG4gICAgICAgIHNlbGVjdGVkID0+XG4gICAgICAgICAgdGhpcy5nZXRWYWx1ZShzZWxlY3RlZCkgPT09IG9wdGlvblt0aGlzLnZhbHVlRmllbGRdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8vU2VsZWN0IGFuIGl0ZW0gZnJvbSBhdXRvIGNvbXBsZXRlXG4gIHNlbGVjdEl0ZW0oaXRlbTogYW55KSB7XG4gICAgY29uc3QgZXhpc3RzID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoaSA9PiB0aGlzLmdldFZhbHVlKGkpID09PSBpdGVtW3RoaXMudmFsdWVGaWVsZF0pO1xuICAgIGlmICghZXhpc3RzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvL1JlbW92ZSBhbiBpdGVtIGZyb20gc2VsZWN0ZWQgbGlzdFxuICByZW1vdmVJdGVtKGl0ZW06IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShpdGVtKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKGkgPT4gdGhpcy5nZXRWYWx1ZShpKSAhPT0gdmFsdWUpO1xuICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gIH1cblxuICAvL01ldGhvZCB0byBhZGQgZHluYW1pYyB0ZXh0cyBmcm9tIGF1dG8gY29tcGxldGVcbiAgaGFuZGxlRW50ZXIoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdmFsdWUgPSAodGhpcy5zZWFyY2hDb250cm9sLnZhbHVlID8/ICcnKS50b1N0cmluZygpLnRyaW0oKTtcbiAgICBpZiAoKCF0aGlzLmlzQWxsb3dEeW5hbWljT3B0aW9uc0FkZCkgfHwgKCF2YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXhpc3RzID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoaXRlbSA9PlxuICAgICAgdGhpcy5nZXRWYWx1ZShpdGVtKT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZS50b0xvd2VyQ2FzZSgpXG4gICAgKTtcbiAgICBpZiAoIWV4aXN0cykge1xuICAgICAgY29uc3QgY3VzdG9tSXRlbTogU2VsZWN0SXRlbSA9IHtcbiAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IHZhbHVlLFxuICAgICAgICBbdGhpcy50aXRsZUZpZWxkXTogdmFsdWUsXG4gICAgICAgIF9faXNDdXN0b206IHRydWVcbiAgICAgIH07XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChjdXN0b21JdGVtKTtcbiAgICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvL1Byb3BvZ2F0ZSB0aGUgY2hhbmdlcyB0byBjaGlsZCBjb21wb25lbnRcbiAgcHJvcGFnYXRlKCkge1xuICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG5cbiAgZ2V0VmFsdWUoaXRlbTogYW55KTogYW55IHtcbiAgICBpZiAoIWl0ZW0pIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHJldHVybiBpdGVtO1xuICAgIHJldHVybiBpdGVtW3RoaXMudmFsdWVGaWVsZF07XG4gIH1cblxuICBnZXRUaXRsZShpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghaXRlbSkgcmV0dXJuICcnO1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHJldHVybiBpdGVtO1xuICAgIHJldHVybiBpdGVtW3RoaXMudGl0bGVGaWVsZF07XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBTZWxlY3RJdGVtW10pOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZE9wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxufSIsIjwhLS0gU2VsZWN0ZWQgSXRlbXMgLS0+XG48ZGl2IGNsYXNzPVwibXktMlwiXG4gICAgW25nQ2xhc3NdPVwieydzZWxlY3RlZC1jb250YWluZXItY29sdW1uJzpkaXNwbGF5U2VsZWN0ZWREaXI9PSdjb2x1bW4nLCdzZWxlY3RlZC1jb250YWluZXItcm93JzpkaXNwbGF5U2VsZWN0ZWREaXI9PSdyb3cnIH1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cblxuICAgICAgICA8IS0tIEN1c3RvbSBTZWxlY3RlZCBUZW1wbGF0ZSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGVtcGxhdGU7IGVsc2UgZGVmYXVsdFNlbGVjdGVkVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RlZFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSxyZW1vdmU6IHJlbW92ZUl0ZW0uYmluZCh0aGlzKX1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBEZWZhdWx0IFRlbXBsYXRlIC0tPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTZWxlY3RlZFRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWNhcmRcIiBbY2xhc3MuY3VzdG9tXT1cIml0ZW0uX19pc0N1c3RvbVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldFRpdGxlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktaWNvbiAqbmdJZj1cIiFyZWFkb25seVwiIG5hbWU9XCJyZWplY3RcIiBjbGFzcz1cIm1zLTIgY2xpY2thYmxlXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSlcIj5cbiAgICAgICAgICAgICAgICA8L2FwcC10ZWNobGlmeS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48IS0tIFNlbGVjdGVkIEl0ZW1zIC0tPlxuPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cIiFyZWFkb25seVwiPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImhhbmRsZUVudGVyKCRldmVudClcIiAvPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCIgbWF0U3VmZml4PlxuICAgICAgICAgICAgc2VhcmNoXG4gICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQub3B0aW9uLnZhbHVlKVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEN1c3RvbSBUZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogb3B0aW9uIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDwhLS0gRGVmYXVsdCBUZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uW3RpdGxlRmllbGRdIH19XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZm9ybT4iXX0=
@@ -7,7 +7,11 @@ export class TechlifyIconComponent {
7
7
  this.name = '';
8
8
  this.size = 'md';
9
9
  //Custom icon list
10
- this.customIconList = ['batch-add', 'unapprove'];
10
+ this.customIconList = [
11
+ 'batch-add',
12
+ 'unapprove',
13
+ 'gra'
14
+ ];
11
15
  // Map logical names to CSS classes
12
16
  this.iconMap = {
13
17
  add: 'fas fa-plus',
@@ -65,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
65
69
  }], size: [{
66
70
  type: Input
67
71
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWljb24vdGVjaGxpZnktaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWljb24vdGVjaGxpZnktaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9qRCxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVcsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQXFDLElBQUksQ0FBQztRQVF2RCxrQkFBa0I7UUFDbEIsbUJBQWMsR0FBYSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQU90RCxtQ0FBbUM7UUFDM0IsWUFBTyxHQUEyQjtZQUN4QyxHQUFHLEVBQUUsYUFBYTtZQUNsQixJQUFJLEVBQUUsWUFBWTtZQUNsQixJQUFJLEVBQUUsWUFBWTtZQUNsQixNQUFNLEVBQUUsY0FBYztZQUN0QixNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLE1BQU0sRUFBRSxtQkFBbUI7WUFDM0IsS0FBSyxFQUFFLGNBQWM7WUFDckIsR0FBRyxFQUFFLGlCQUFpQjtZQUN0QixPQUFPLEVBQUUsY0FBYztZQUN2QixJQUFJLEVBQUUsYUFBYTtZQUNuQixRQUFRLEVBQUUscUJBQXFCO1lBQy9CLFVBQVUsRUFBRSxvQkFBb0I7WUFDaEMsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixPQUFPLEVBQUUsY0FBYztZQUN2QixNQUFNLEVBQUUsY0FBYztZQUN0QixRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLEtBQUssRUFBRSxjQUFjO1lBQ3JCLGNBQWMsRUFBRSxxQkFBcUI7WUFDckMsSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsS0FBSyxFQUFFLGNBQWM7WUFDckIsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxNQUFNLEVBQUUsZUFBZTtZQUN2QixZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLElBQUksRUFBRSxnQkFBZ0I7U0FDdkIsQ0FBQztRQUVGLGdDQUFnQztRQUN4QixZQUFPLEdBQTJCO1lBQ3hDLEVBQUUsRUFBRSxPQUFPO1lBQ1gsRUFBRSxFQUFFLE9BQU87WUFDWCxFQUFFLEVBQUUsT0FBTztZQUNYLEVBQUUsRUFBRSxPQUFPO1lBQ1gsRUFBRSxFQUFFLE9BQU87U0FDWixDQUFDO0tBQ0g7SUFuREMsSUFBSSxTQUFTO1FBQ1gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksdUJBQXVCLENBQUM7UUFDckUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUtELDhCQUE4QjtJQUM5QixZQUFZLENBQUMsSUFBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7K0dBaEJVLHFCQUFxQjttR0FBckIscUJBQXFCLGlHQ1BsQyxnUUFRYzs7NEZEREQscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjs4QkFLcEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlY2hsaWZ5LWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVjaGxpZnktaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RlY2hsaWZ5LWljb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeUljb25Db21wb25lbnQge1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgPSAnbWQnO1xuXG4gIGdldCBpY29uQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGJhc2VDbGFzcyA9IHRoaXMuaWNvbk1hcFt0aGlzLm5hbWVdIHx8ICdmYSBmYS1xdWVzdGlvbi1jaXJjbGUnO1xuICAgIGNvbnN0IHNpemVDbGFzcyA9IHRoaXMuc2l6ZU1hcFt0aGlzLnNpemVdIHx8ICcnO1xuICAgIHJldHVybiBbYmFzZUNsYXNzLCBzaXplQ2xhc3NdO1xuICB9XG5cbiAgLy9DdXN0b20gaWNvbiBsaXN0XG4gIGN1c3RvbUljb25MaXN0OiBzdHJpbmdbXSA9IFsnYmF0Y2gtYWRkJywgJ3VuYXBwcm92ZSddO1xuXG4gIC8vTWV0aG9kIHRvIGNoZWNrIGN1c3RvbSBpY29uc1xuICBpc0N1c3RvbUljb24obmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tSWNvbkxpc3QuaW5jbHVkZXMobmFtZSk7XG4gIH1cblxuICAvLyBNYXAgbG9naWNhbCBuYW1lcyB0byBDU1MgY2xhc3Nlc1xuICBwcml2YXRlIGljb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgYWRkOiAnZmFzIGZhLXBsdXMnLFxuICAgIHZpZXc6ICdmYXMgZmEtZXllJyxcbiAgICBlZGl0OiAnZmFzIGZhLXBlbicsXG4gICAgZGVsZXRlOiAnZmFzIGZhLXRyYXNoJyxcbiAgICBpbXBvcnQ6ICdmYXMgZmEtZmlsZS1pbXBvcnQnLFxuICAgIGV4cG9ydDogJ2ZhcyBmYS1maWxlLWV4Y2VsJyxcbiAgICBwcmludDogJ2ZhcyBmYS1wcmludCcsXG4gICAgcGRmOiAnZmFzIGZhLWZpbGUtcGRmJyxcbiAgICBoaXN0b3J5OiAnZmFzIGZhLWNsb2NrJyxcbiAgICBjb3B5OiAnZmFzIGZhLWNvcHknLFxuICAgIGFjdGl2YXRlOiAnZmFzIGZhLWNoZWNrLWNpcmNsZScsXG4gICAgZGVhY3RpdmF0ZTogJ2ZhcyBmYS1zdG9wLWNpcmNsZScsXG4gICAgZW1haWw6ICdmYXIgZmEtZW52ZWxvcGUnLFxuICAgIGFwcHJvdmU6ICdmYXMgZmEtY2hlY2snLFxuICAgIHJlamVjdDogJ2ZhcyBmYS10aW1lcycsXG4gICAgY2FsZW5kYXI6ICdmYXMgZmEtY2FsZW5kYXInLFxuICAgIHRhYmxlOiAnZmFzIGZhLXRhYmxlJyxcbiAgICBtdWx0aV9jYWxlbmRhcjogJ2ZhcyBmYS1jYWxlbmRhci1hbHQnLFxuICAgIGxpbms6ICdmYXMgZmEtbGluaycsXG4gICAgcmVzZXQ6ICdmYXMgZmEtcmVkbycsXG4gICAgcGhvbmU6ICdmYXMgZmEtcGhvbmUnLFxuICAgIGxvY2F0aW9uOiAnZmFzIGZhLW1hcC1tYXJrZXItYWx0JyxcbiAgICB1bmxpbms6ICdmYXMgZmEtdW5saW5rJyxcbiAgICBkaXNhYmxlX3VzZXI6ICdmYXMgZmEtdXNlci1zbGFzaCcsXG4gICAgc3dhcDogJ2ZhcyBmYS1yZXR3ZWV0J1xuICB9O1xuXG4gIC8vIE1hcCBzaXplIGlucHV0IHRvIENTUyBjbGFzc2VzXG4gIHByaXZhdGUgc2l6ZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICB4czogJ2ZhLXhzJyxcbiAgICBzbTogJ2ZhLXNtJyxcbiAgICBtZDogJ2ZhLW1kJyxcbiAgICBsZzogJ2ZhLWxnJyxcbiAgICB4bDogJ2ZhLTJ4J1xuICB9O1xufSIsIjwhLS0gIEN1c3RvbSBpY29uIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ3VzdG9tSWNvbihuYW1lKTsgZWxzZSBmYUljb25cIj5cbiAgICA8YXBwLWN1c3RvbS1pY29uIFtuYW1lXT1cIm5hbWVcIj48L2FwcC1jdXN0b20taWNvbj5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIEZvbnQgQXdlc29tZSAtLT5cbjxuZy10ZW1wbGF0ZSAjZmFJY29uPlxuICAgIDxpIFtuZ0NsYXNzXT1cImljb25DbGFzc1wiPjwvaT5cbjwvbmctdGVtcGxhdGU+Il19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWljb24vdGVjaGxpZnktaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWljb24vdGVjaGxpZnktaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9qRCxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVcsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQXFDLElBQUksQ0FBQztRQVF2RCxrQkFBa0I7UUFDbEIsbUJBQWMsR0FBYTtZQUN6QixXQUFXO1lBQ1gsV0FBVztZQUNYLEtBQUs7U0FDTixDQUFDO1FBT0YsbUNBQW1DO1FBQzNCLFlBQU8sR0FBMkI7WUFDeEMsR0FBRyxFQUFFLGFBQWE7WUFDbEIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsTUFBTSxFQUFFLGNBQWM7WUFDdEIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixNQUFNLEVBQUUsbUJBQW1CO1lBQzNCLEtBQUssRUFBRSxjQUFjO1lBQ3JCLEdBQUcsRUFBRSxpQkFBaUI7WUFDdEIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsSUFBSSxFQUFFLGFBQWE7WUFDbkIsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsTUFBTSxFQUFFLGNBQWM7WUFDdEIsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixLQUFLLEVBQUUsY0FBYztZQUNyQixjQUFjLEVBQUUscUJBQXFCO1lBQ3JDLElBQUksRUFBRSxhQUFhO1lBQ25CLEtBQUssRUFBRSxhQUFhO1lBQ3BCLEtBQUssRUFBRSxjQUFjO1lBQ3JCLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsTUFBTSxFQUFFLGVBQWU7WUFDdkIsWUFBWSxFQUFFLG1CQUFtQjtZQUNqQyxJQUFJLEVBQUUsZ0JBQWdCO1NBQ3ZCLENBQUM7UUFFRixnQ0FBZ0M7UUFDeEIsWUFBTyxHQUEyQjtZQUN4QyxFQUFFLEVBQUUsT0FBTztZQUNYLEVBQUUsRUFBRSxPQUFPO1lBQ1gsRUFBRSxFQUFFLE9BQU87WUFDWCxFQUFFLEVBQUUsT0FBTztZQUNYLEVBQUUsRUFBRSxPQUFPO1NBQ1osQ0FBQztLQUNIO0lBdkRDLElBQUksU0FBUztRQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixDQUFDO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFTRCw4QkFBOEI7SUFDOUIsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDOytHQXBCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixpR0NQbEMsZ1FBUWM7OzRGRERELHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7OEJBS3BCLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlY2hsaWZ5LWljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZWNobGlmeS1pY29uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlJY29uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ21kJztcblxuICBnZXQgaWNvbkNsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBiYXNlQ2xhc3MgPSB0aGlzLmljb25NYXBbdGhpcy5uYW1lXSB8fCAnZmEgZmEtcXVlc3Rpb24tY2lyY2xlJztcbiAgICBjb25zdCBzaXplQ2xhc3MgPSB0aGlzLnNpemVNYXBbdGhpcy5zaXplXSB8fCAnJztcbiAgICByZXR1cm4gW2Jhc2VDbGFzcywgc2l6ZUNsYXNzXTtcbiAgfVxuXG4gIC8vQ3VzdG9tIGljb24gbGlzdFxuICBjdXN0b21JY29uTGlzdDogc3RyaW5nW10gPSBbXG4gICAgJ2JhdGNoLWFkZCcsXG4gICAgJ3VuYXBwcm92ZScsXG4gICAgJ2dyYSdcbiAgXTtcblxuICAvL01ldGhvZCB0byBjaGVjayBjdXN0b20gaWNvbnNcbiAgaXNDdXN0b21JY29uKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUljb25MaXN0LmluY2x1ZGVzKG5hbWUpO1xuICB9XG5cbiAgLy8gTWFwIGxvZ2ljYWwgbmFtZXMgdG8gQ1NTIGNsYXNzZXNcbiAgcHJpdmF0ZSBpY29uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGFkZDogJ2ZhcyBmYS1wbHVzJyxcbiAgICB2aWV3OiAnZmFzIGZhLWV5ZScsXG4gICAgZWRpdDogJ2ZhcyBmYS1wZW4nLFxuICAgIGRlbGV0ZTogJ2ZhcyBmYS10cmFzaCcsXG4gICAgaW1wb3J0OiAnZmFzIGZhLWZpbGUtaW1wb3J0JyxcbiAgICBleHBvcnQ6ICdmYXMgZmEtZmlsZS1leGNlbCcsXG4gICAgcHJpbnQ6ICdmYXMgZmEtcHJpbnQnLFxuICAgIHBkZjogJ2ZhcyBmYS1maWxlLXBkZicsXG4gICAgaGlzdG9yeTogJ2ZhcyBmYS1jbG9jaycsXG4gICAgY29weTogJ2ZhcyBmYS1jb3B5JyxcbiAgICBhY3RpdmF0ZTogJ2ZhcyBmYS1jaGVjay1jaXJjbGUnLFxuICAgIGRlYWN0aXZhdGU6ICdmYXMgZmEtc3RvcC1jaXJjbGUnLFxuICAgIGVtYWlsOiAnZmFyIGZhLWVudmVsb3BlJyxcbiAgICBhcHByb3ZlOiAnZmFzIGZhLWNoZWNrJyxcbiAgICByZWplY3Q6ICdmYXMgZmEtdGltZXMnLFxuICAgIGNhbGVuZGFyOiAnZmFzIGZhLWNhbGVuZGFyJyxcbiAgICB0YWJsZTogJ2ZhcyBmYS10YWJsZScsXG4gICAgbXVsdGlfY2FsZW5kYXI6ICdmYXMgZmEtY2FsZW5kYXItYWx0JyxcbiAgICBsaW5rOiAnZmFzIGZhLWxpbmsnLFxuICAgIHJlc2V0OiAnZmFzIGZhLXJlZG8nLFxuICAgIHBob25lOiAnZmFzIGZhLXBob25lJyxcbiAgICBsb2NhdGlvbjogJ2ZhcyBmYS1tYXAtbWFya2VyLWFsdCcsXG4gICAgdW5saW5rOiAnZmFzIGZhLXVubGluaycsXG4gICAgZGlzYWJsZV91c2VyOiAnZmFzIGZhLXVzZXItc2xhc2gnLFxuICAgIHN3YXA6ICdmYXMgZmEtcmV0d2VldCdcbiAgfTtcblxuICAvLyBNYXAgc2l6ZSBpbnB1dCB0byBDU1MgY2xhc3Nlc1xuICBwcml2YXRlIHNpemVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgeHM6ICdmYS14cycsXG4gICAgc206ICdmYS1zbScsXG4gICAgbWQ6ICdmYS1tZCcsXG4gICAgbGc6ICdmYS1sZycsXG4gICAgeGw6ICdmYS0yeCdcbiAgfTtcbn0iLCI8IS0tICBDdXN0b20gaWNvbiAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0N1c3RvbUljb24obmFtZSk7IGVsc2UgZmFJY29uXCI+XG4gICAgPGFwcC1jdXN0b20taWNvbiBbbmFtZV09XCJuYW1lXCI+PC9hcHAtY3VzdG9tLWljb24+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBGb250IEF3ZXNvbWUgLS0+XG48bmctdGVtcGxhdGUgI2ZhSWNvbj5cbiAgICA8aSBbbmdDbGFzc109XCJpY29uQ2xhc3NcIj48L2k+XG48L25nLXRlbXBsYXRlPiJdfQ==