tango-app-ui-analyse-trax 3.3.1-alpha.83 → 3.3.1-alpha.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/esm2022/lib/components/activity-log/activity-log.component.mjs +3 -3
  2. package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +3 -2
  3. package/esm2022/lib/components/add-task/add-task.component.mjs +7 -6
  4. package/esm2022/lib/components/add-task/create-task.data.mjs +2 -2
  5. package/esm2022/lib/components/chip-dropdown/chip-dropdown.component.mjs +3 -2
  6. package/esm2022/lib/components/create-task/ascending-validator.mjs +11 -0
  7. package/esm2022/lib/components/create-task/create-task.component.mjs +60 -38
  8. package/esm2022/lib/components/create-task/create-task.data.mjs +3 -3
  9. package/esm2022/lib/components/create-task/whitespace-validator.mjs +10 -0
  10. package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +89 -5
  11. package/esm2022/lib/components/gallery/gallery.component.mjs +4 -3
  12. package/esm2022/lib/components/task/task.component.mjs +2 -1
  13. package/esm2022/lib/components/task-configure/task-configure.component.mjs +54 -13
  14. package/esm2022/lib/components/task-info/task-info.component.mjs +15 -3
  15. package/esm2022/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.mjs +3 -3
  16. package/esm2022/lib/components/task-logs/task-logs.component.mjs +3 -3
  17. package/esm2022/lib/services/trax.service.mjs +4 -1
  18. package/fesm2022/tango-app-ui-analyse-trax.mjs +285 -101
  19. package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
  20. package/lib/components/create-task/ascending-validator.d.ts +2 -0
  21. package/lib/components/create-task/create-task.component.d.ts +6 -4
  22. package/lib/components/create-task/whitespace-validator.d.ts +2 -0
  23. package/lib/components/dashboard-info/dashboard-info.component.d.ts +10 -2
  24. package/lib/components/task/task.component.d.ts +2 -2
  25. package/lib/components/task-info/task-info.component.d.ts +1 -0
  26. package/lib/services/trax.service.d.ts +1 -0
  27. package/package.json +1 -1
@@ -139,10 +139,10 @@ export class ActivityLogComponent {
139
139
  this.router.navigate(['/manage/trax/gallery'], { queryParams });
140
140
  }
141
141
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityLogComponent, deps: [{ token: i1.GlobalStateService }, { token: i1.PageInfoService }, { token: i2.TraxService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
142
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActivityLogComponent, selector: "lib-activity-log", ngImport: i0, template: "<div class=\"col-md-12\">\r\n <div *ngIf=\"!activityLogLoading && !activityLogNoData\" class=\"row cardscroll\">\r\n <div class=\"col-6\">\r\n <div class=\"timeline-label\">\r\n <div *ngFor=\"let log of activityLog; let i = index\" class=\"timeline-item mb-6\"\r\n [ngClass]=\"{'d-none': i % 2 !== 0}\">\r\n <div class=\"timeline-badge mx-1\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\"\r\n fill=\"none\">\r\n <circle cx=\"6.5\" cy=\"7\" r=\"5\"\r\n [attr.stroke]=\"log.action === 'lapsed' ? '#F04438' : '#12B76A'\"\r\n stroke-width=\"3\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"logtextmain\">\r\n {{ log.storeName || \"--\" }}\r\n <span class=\"logtextsub mx-1\">{{ log.action | titlecase }}</span>\r\n <span class=\"logtextmain mx-1\">{{ log.checkListName || \"--\" }}</span>\r\n <span class=\"logtextsub mx-1\">at {{ log.createdAt | date: 'MMM dd, y' }}</span>\r\n </div>\r\n <div (click)=\"navigateToGallery(log)\" *ngIf=\"log.action === 'submitted'\" class=\"mx-8 logview mx-16 cursor-pointer\">View</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"timeline-label\">\r\n <div *ngFor=\"let log of activityLog; let i = index\" class=\"timeline-item mb-6\"\r\n [ngClass]=\"{'d-none': i % 2 === 0}\">\r\n <div class=\"timeline-badge mx-1\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\"\r\n fill=\"none\">\r\n <circle cx=\"6.5\" cy=\"7\" r=\"5\"\r\n [attr.stroke]=\"log.action === 'submitted' ? '#12B76A' : '#F04438'\"\r\n stroke-width=\"3\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"logtextmain\">\r\n {{ log.storeName || \"--\" }}\r\n <span class=\"logtextsub mx-1\">{{ log.action | titlecase }}</span>\r\n <span class=\"logtextmain mx-1\">{{ log.checkListName || \"--\" }}</span>\r\n <span class=\"logtextsub mx-1\">at {{ log.createdAt | date: 'MMM dd, y' }}</span>\r\n </div>\r\n <div (click)=\"navigateToGallery(log)\" *ngIf=\"log.action === 'submitted'\" class=\"mx-8 logview mx-16 cursor-pointer\">View</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n \r\n \r\n </div>\r\n <div *ngIf=\"!activityLogLoading && !activityLogNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n <ng-container *ngIf=\"activityLogLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"activityLogNoData && !activityLogLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Performance Table\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [".timeline-label{position:unset}.logtextmain{color:var(--Black, #101828);font-size:14px;font-style:normal;font-weight:600;line-height:20px}.logtextsub{color:var(--Gray-400, #98A2B3);font-size:14px;font-style:normal;font-weight:400;line-height:20px}.logview{color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.cardscroll{overflow-y:scroll;max-height:275px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i4.DatePipe, name: "date" }] });
142
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActivityLogComponent, selector: "lib-activity-log", ngImport: i0, template: "<div class=\"col-md-12\">\r\n <div *ngIf=\"!activityLogLoading && !activityLogNoData\" class=\"row cardscroll\">\r\n <div class=\"col-6\">\r\n <div class=\"timeline-label\">\r\n <div *ngFor=\"let log of activityLog; let i = index\" class=\"timeline-item mb-6\"\r\n [ngClass]=\"{'d-none': i % 2 !== 0}\">\r\n <div class=\"timeline-badge mx-1\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\"\r\n fill=\"none\">\r\n <circle cx=\"6.5\" cy=\"7\" r=\"5\" [attr.stroke]=\"log.action === 'started' ? '#12B76A' : (log.action === 'submitted' || log.action === 'lapsed' ? '#F04438' : '#000000')\" stroke-width=\"3\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"logtextmain\">\r\n {{ log.storeName || \"--\" }}\r\n <span class=\"logtextsub mx-1\">{{ log.action | titlecase }}</span>\r\n <span class=\"logtextmain mx-1\">{{ log.checkListName || \"--\" }}</span>\r\n <span class=\"logtextsub mx-1\">at {{ log.createdAt | date: 'MMM dd, y' }}</span>\r\n </div>\r\n <div (click)=\"navigateToGallery(log)\" *ngIf=\"log.action === 'submitted'\" class=\"logview mx-2 cursor-pointer\">View</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"timeline-label\">\r\n <div *ngFor=\"let log of activityLog; let i = index\" class=\"timeline-item mb-6\"\r\n [ngClass]=\"{'d-none': i % 2 === 0}\">\r\n <div class=\"timeline-badge mx-1\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\"\r\n fill=\"none\">\r\n <circle cx=\"6.5\" cy=\"7\" r=\"5\" [attr.stroke]=\"log.action === 'started' ? '#12B76A' : (log.action === 'submitted' || log.action === 'lapsed' ? '#F04438' : '#000000')\" stroke-width=\"3\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"logtextmain\">\r\n {{ log.storeName || \"--\" }}\r\n <span class=\"logtextsub mx-1\">{{ log.action | titlecase }}</span>\r\n <span class=\"logtextmain mx-1\">{{ log.checkListName || \"--\" }}</span>\r\n <span class=\"logtextsub mx-1\">at {{ log.createdAt | date: 'MMM dd, y' }}</span>\r\n </div>\r\n <div (click)=\"navigateToGallery(log)\" *ngIf=\"log.action === 'submitted'\" class=\"logview mx-2 cursor-pointer\">View</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n \r\n \r\n </div>\r\n <div *ngIf=\"!activityLogLoading && !activityLogNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n <ng-container *ngIf=\"activityLogLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"activityLogNoData && !activityLogLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Performance Table\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [".timeline-label{position:unset}.logtextmain{color:var(--Black, #101828);font-size:14px;font-style:normal;font-weight:600;line-height:20px}.logtextsub{color:var(--Gray-400, #98A2B3);font-size:14px;font-style:normal;font-weight:400;line-height:20px}.logview{color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.cardscroll{overflow-y:scroll;max-height:275px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i4.DatePipe, name: "date" }] });
143
143
  }
144
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityLogComponent, decorators: [{
145
145
  type: Component,
146
- args: [{ selector: 'lib-activity-log', template: "<div class=\"col-md-12\">\r\n <div *ngIf=\"!activityLogLoading && !activityLogNoData\" class=\"row cardscroll\">\r\n <div class=\"col-6\">\r\n <div class=\"timeline-label\">\r\n <div *ngFor=\"let log of activityLog; let i = index\" class=\"timeline-item mb-6\"\r\n [ngClass]=\"{'d-none': i % 2 !== 0}\">\r\n <div class=\"timeline-badge mx-1\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\"\r\n fill=\"none\">\r\n <circle cx=\"6.5\" cy=\"7\" r=\"5\"\r\n [attr.stroke]=\"log.action === 'lapsed' ? '#F04438' : '#12B76A'\"\r\n stroke-width=\"3\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"logtextmain\">\r\n {{ log.storeName || \"--\" }}\r\n <span class=\"logtextsub mx-1\">{{ log.action | titlecase }}</span>\r\n <span class=\"logtextmain mx-1\">{{ log.checkListName || \"--\" }}</span>\r\n <span class=\"logtextsub mx-1\">at {{ log.createdAt | date: 'MMM dd, y' }}</span>\r\n </div>\r\n <div (click)=\"navigateToGallery(log)\" *ngIf=\"log.action === 'submitted'\" class=\"mx-8 logview mx-16 cursor-pointer\">View</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"timeline-label\">\r\n <div *ngFor=\"let log of activityLog; let i = index\" class=\"timeline-item mb-6\"\r\n [ngClass]=\"{'d-none': i % 2 === 0}\">\r\n <div class=\"timeline-badge mx-1\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\"\r\n fill=\"none\">\r\n <circle cx=\"6.5\" cy=\"7\" r=\"5\"\r\n [attr.stroke]=\"log.action === 'submitted' ? '#12B76A' : '#F04438'\"\r\n stroke-width=\"3\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"logtextmain\">\r\n {{ log.storeName || \"--\" }}\r\n <span class=\"logtextsub mx-1\">{{ log.action | titlecase }}</span>\r\n <span class=\"logtextmain mx-1\">{{ log.checkListName || \"--\" }}</span>\r\n <span class=\"logtextsub mx-1\">at {{ log.createdAt | date: 'MMM dd, y' }}</span>\r\n </div>\r\n <div (click)=\"navigateToGallery(log)\" *ngIf=\"log.action === 'submitted'\" class=\"mx-8 logview mx-16 cursor-pointer\">View</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n \r\n \r\n </div>\r\n <div *ngIf=\"!activityLogLoading && !activityLogNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n <ng-container *ngIf=\"activityLogLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"activityLogNoData && !activityLogLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Performance Table\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [".timeline-label{position:unset}.logtextmain{color:var(--Black, #101828);font-size:14px;font-style:normal;font-weight:600;line-height:20px}.logtextsub{color:var(--Gray-400, #98A2B3);font-size:14px;font-style:normal;font-weight:400;line-height:20px}.logview{color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.cardscroll{overflow-y:scroll;max-height:275px}\n"] }]
146
+ args: [{ selector: 'lib-activity-log', template: "<div class=\"col-md-12\">\r\n <div *ngIf=\"!activityLogLoading && !activityLogNoData\" class=\"row cardscroll\">\r\n <div class=\"col-6\">\r\n <div class=\"timeline-label\">\r\n <div *ngFor=\"let log of activityLog; let i = index\" class=\"timeline-item mb-6\"\r\n [ngClass]=\"{'d-none': i % 2 !== 0}\">\r\n <div class=\"timeline-badge mx-1\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\"\r\n fill=\"none\">\r\n <circle cx=\"6.5\" cy=\"7\" r=\"5\" [attr.stroke]=\"log.action === 'started' ? '#12B76A' : (log.action === 'submitted' || log.action === 'lapsed' ? '#F04438' : '#000000')\" stroke-width=\"3\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"logtextmain\">\r\n {{ log.storeName || \"--\" }}\r\n <span class=\"logtextsub mx-1\">{{ log.action | titlecase }}</span>\r\n <span class=\"logtextmain mx-1\">{{ log.checkListName || \"--\" }}</span>\r\n <span class=\"logtextsub mx-1\">at {{ log.createdAt | date: 'MMM dd, y' }}</span>\r\n </div>\r\n <div (click)=\"navigateToGallery(log)\" *ngIf=\"log.action === 'submitted'\" class=\"logview mx-2 cursor-pointer\">View</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"timeline-label\">\r\n <div *ngFor=\"let log of activityLog; let i = index\" class=\"timeline-item mb-6\"\r\n [ngClass]=\"{'d-none': i % 2 === 0}\">\r\n <div class=\"timeline-badge mx-1\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\"\r\n fill=\"none\">\r\n <circle cx=\"6.5\" cy=\"7\" r=\"5\" [attr.stroke]=\"log.action === 'started' ? '#12B76A' : (log.action === 'submitted' || log.action === 'lapsed' ? '#F04438' : '#000000')\" stroke-width=\"3\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"logtextmain\">\r\n {{ log.storeName || \"--\" }}\r\n <span class=\"logtextsub mx-1\">{{ log.action | titlecase }}</span>\r\n <span class=\"logtextmain mx-1\">{{ log.checkListName || \"--\" }}</span>\r\n <span class=\"logtextsub mx-1\">at {{ log.createdAt | date: 'MMM dd, y' }}</span>\r\n </div>\r\n <div (click)=\"navigateToGallery(log)\" *ngIf=\"log.action === 'submitted'\" class=\"logview mx-2 cursor-pointer\">View</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n \r\n \r\n </div>\r\n <div *ngIf=\"!activityLogLoading && !activityLogNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n <ng-container *ngIf=\"activityLogLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"activityLogNoData && !activityLogLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Performance Table\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [".timeline-label{position:unset}.logtextmain{color:var(--Black, #101828);font-size:14px;font-style:normal;font-weight:600;line-height:20px}.logtextsub{color:var(--Gray-400, #98A2B3);font-size:14px;font-style:normal;font-weight:400;line-height:20px}.logview{color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.cardscroll{overflow-y:scroll;max-height:275px}\n"] }]
147
147
  }], ctorParameters: () => [{ type: i1.GlobalStateService }, { type: i1.PageInfoService }, { type: i2.TraxService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }] });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWN0aXZpdHktbG9nL2FjdGl2aXR5LWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZy9hY3Rpdml0eS1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQWdDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7Ozs7QUFNMUIsTUFBTSxPQUFPLG9CQUFvQjtJQWlCWjtJQUErQjtJQUFrQztJQUMxRTtJQUEyQztJQWpCN0MsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDakMsVUFBVSxDQUFNO0lBQ2hCLGtCQUFrQixHQUFZLElBQUksQ0FBQztJQUNuQyxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDbkMsWUFBWSxHQUFHLEVBQUUsQ0FBQTtJQUNqQixXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsVUFBVSxHQUFHLENBQUMsQ0FBQTtJQUNkLGFBQWEsR0FBVyxFQUFFLENBQUM7SUFDM0IsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLGVBQWUsR0FBUyxFQUFFLENBQUM7SUFDM0IsUUFBUSxHQUFHLEVBQUUsQ0FBQTtJQUNiLFdBQVcsR0FBVSxFQUFFLENBQUM7SUFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNkLElBQUksQ0FBTTtJQUVWLFlBQW1CLEVB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O0lBRUQsaUJBQWlCLENBQUMsR0FBUTtRQUN4QixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU5RCxJQUFJLGFBQXFCLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUN6QixhQUFhLEdBQUcsUUFBUSxDQUFDO1NBQzFCO2FBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvRCxhQUFhLEdBQUcsTUFBTSxDQUFDO1NBQ3hCO2FBQU07WUFDTCxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7U0FDbEM7UUFFRCxJQUFJLFdBQVcsR0FBUTtZQUNyQixhQUFhLEVBQUUsYUFBYTtZQUM1QixhQUFhLEVBQUUsYUFBYTtZQUM1QixPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDckIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1NBQzdCLENBQUM7UUFFRixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDbEIsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDL0I7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7d0dBaElVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHdEQ1hqQyxpZ0tBMkZNOzs0RkRoRk8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGl2aXR5LWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9nQ29tcG9uZW50IHtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcbiAgYWN0aXZpdHlMb2dMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBhY3Rpdml0eUxvZ05vRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGl0ZW1zUGVyUGFnZSA9IDEwXHJcbiAgY3VycmVudFBhZ2UgPSAxXHJcbiAgdG90YWxJdGVtcyA9IDBcclxuICBzb3J0Q29sdW1OYW1lOiBzdHJpbmcgPSAnJztcclxuICBzb3J0Qnk6IGFueSA9ICcnO1xyXG4gIHNvcnREaXJlY3Rpb246IGFueSA9ICcnO1xyXG4gIHBhZ2luYXRpb25TaXplczphbnlbXSA9IFtdO1xyXG4gIHBhZ2VTaXplID0gMTBcclxuICBhY3Rpdml0eUxvZzogYW55W10gPSBbXTtcclxuICBkYXlqcyA9IGRheWpzO1xyXG4gIGRhdGU6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgVHJheFNlcnZpY2U6IFRyYXhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0ZSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgIC8vIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuICAgICAgICB0aGlzLmdldEFjdGl2aXR5TG9nKClcclxufSlcclxufVxyXG4gIC8vIHNldFBhZ2VEYXRhKCkge1xyXG4gIC8vICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIkRhc2hib2FyZFwiKTtcclxuICAvLyAgIC8vIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJEYXNoYm9hcmRcIik7XHJcbiAgLy8gICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAvLyAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxyXG4gIC8vICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfSxcclxuICAvLyAgIF0pO1xyXG4gIC8vIH1cclxuICBnZXRBY3Rpdml0eUxvZygpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3Rpdml0eUxvZ0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3Rpdml0eUxvZ05vRGF0YSA9IHRydWU7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgLy8gZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgLy8gdG9EYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGEuc3RvcmVzLmZpbHRlcigoc3RvcmU6YW55KSA9PiBzdG9yZS5jaGVja2VkKS5tYXAoKHN0b3JlOmFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIGNsaWVudElkOnRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIGxpbWl0OiB0aGlzLml0ZW1zUGVyUGFnZSxcclxuICAgICAgb2Zmc2V0OiB0aGlzLmN1cnJlbnRQYWdlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLlRyYXhTZXJ2aWNlLmdldEFjdGl2aXR5TG9nKHJlcXVlc3REYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5TG9nTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChyZXNwb25zZT8uY29kZSA9PT0gMjAwICYmIHJlc3BvbnNlPy5zdGF0dXMgPT09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9nID0gcmVzcG9uc2UuZGF0YVswXT8uYWN0aXZpdHlMb2dEYXRhIHx8IFtdXHJcbiAgICAgICAgICAvLyB0aGlzLnRvdGFsSXRlbXMgPSByZXNwb25zZS5kYXRhLnRvdGFsQ291bnRcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHJlc3BvbnNlLmRhdGFbMF0/LmNvdW50WzBdPy50b3RhbCB8fCAwO1xyXG5cclxuICAgICAgICAgIHRoaXMuc2V0UGFnaW5hdGlvblNpemVzKClcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9nTm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZWxzZVwiKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvZyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvZ0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dOb0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvZyA9IFtdXHJcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwXHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlMb2cgPSBbXVxyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBwYWdlU2l6ZTtcclxuICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZygpXHJcbiAgfVxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlT2Zmc2V0XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9nKClcclxuICB9XHJcbiAgc2V0UGFnaW5hdGlvblNpemVzKCkge1xyXG4gICAgaWYgKHRoaXMudG90YWxJdGVtcyA+IDEwKSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbEl0ZW1zXTtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMudG90YWxJdGVtcztcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIFxyXG4gIG5hdmlnYXRlVG9HYWxsZXJ5KGxvZzogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9IGRheWpzKGxvZy5jcmVhdGVkQXQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gIFxyXG4gICAgbGV0IGNoZWNrbGlzdFR5cGU6IHN0cmluZztcclxuICAgIGlmIChsb2cudHlwZSA9PT0gJ2N1c3RvbScpIHtcclxuICAgICAgY2hlY2tsaXN0VHlwZSA9ICdjdXN0b20nO1xyXG4gICAgfSBlbHNlIGlmIChbJ3Rhc2snLCAnY2hlY2tsaXN0VGFzaycsICdjY3R2J10uaW5jbHVkZXMobG9nLnR5cGUpKSB7XHJcbiAgICAgIGNoZWNrbGlzdFR5cGUgPSAndGFzayc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja2xpc3RUeXBlID0gbG9nLnR5cGUgfHwgJy0tJztcclxuICAgIH1cclxuICBcclxuICAgIGxldCBxdWVyeVBhcmFtczogYW55ID0ge1xyXG4gICAgICBDaGVja2xpc3REYXRlOiBmb3JtYXR0ZWREYXRlLFxyXG4gICAgICBjaGVja2xpc3RUeXBlOiBjaGVja2xpc3RUeXBlLFxyXG4gICAgICBzdG9yZUlkOiBsb2cuc3RvcmVfaWQsXHJcbiAgICAgIGNoZWNrbGlzdElkOiBsb2cuY2hlY2tsaXN0SWQsXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgaWYgKGxvZy5yZWRvU3RhdHVzKSB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLnJlZG9TdGF0dXMgPSB0cnVlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLCB7IHF1ZXJ5UGFyYW1zIH0pO1xyXG4gIH1cclxuICBcclxuICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWFjdGl2aXR5TG9nTG9hZGluZyAmJiAhYWN0aXZpdHlMb2dOb0RhdGFcIiBjbGFzcz1cInJvdyBjYXJkc2Nyb2xsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbG9nIG9mIGFjdGl2aXR5TG9nOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ0aW1lbGluZS1pdGVtIG1iLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZC1ub25lJzogaSAlIDIgIT09IDB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lLWJhZGdlIG14LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDEzIDE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI2LjVcIiBjeT1cIjdcIiByPVwiNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJsb2cuYWN0aW9uID09PSAnbGFwc2VkJyA/ICcjRjA0NDM4JyA6ICcjMTJCNzZBJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9ndGV4dG1haW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9nLnN0b3JlTmFtZSB8fCBcIi0tXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2d0ZXh0c3ViIG14LTFcIj57eyBsb2cuYWN0aW9uIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvZ3RleHRtYWluIG14LTFcIj57eyBsb2cuY2hlY2tMaXN0TmFtZSB8fCBcIi0tXCIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9ndGV4dHN1YiBteC0xXCI+YXQge3sgbG9nLmNyZWF0ZWRBdCB8IGRhdGU6ICdNTU0gZGQsIHknIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm5hdmlnYXRlVG9HYWxsZXJ5KGxvZylcIiAqbmdJZj1cImxvZy5hY3Rpb24gPT09ICdzdWJtaXR0ZWQnXCIgY2xhc3M9XCJteC04IGxvZ3ZpZXcgbXgtMTYgY3Vyc29yLXBvaW50ZXJcIj5WaWV3PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbG9nIG9mIGFjdGl2aXR5TG9nOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ0aW1lbGluZS1pdGVtIG1iLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZC1ub25lJzogaSAlIDIgPT09IDB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lLWJhZGdlIG14LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDEzIDE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI2LjVcIiBjeT1cIjdcIiByPVwiNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJsb2cuYWN0aW9uID09PSAnc3VibWl0dGVkJyA/ICcjMTJCNzZBJyA6ICcjRjA0NDM4J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9ndGV4dG1haW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9nLnN0b3JlTmFtZSB8fCBcIi0tXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2d0ZXh0c3ViIG14LTFcIj57eyBsb2cuYWN0aW9uIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvZ3RleHRtYWluIG14LTFcIj57eyBsb2cuY2hlY2tMaXN0TmFtZSB8fCBcIi0tXCIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9ndGV4dHN1YiBteC0xXCI+YXQge3sgbG9nLmNyZWF0ZWRBdCB8IGRhdGU6ICdNTU0gZGQsIHknIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm5hdmlnYXRlVG9HYWxsZXJ5KGxvZylcIiAqbmdJZj1cImxvZy5hY3Rpb24gPT09ICdzdWJtaXR0ZWQnXCIgY2xhc3M9XCJteC04IGxvZ3ZpZXcgbXgtMTYgY3Vyc29yLXBvaW50ZXJcIj5WaWV3PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFhY3Rpdml0eUxvZ0xvYWRpbmcgJiYgIWFjdGl2aXR5TG9nTm9EYXRhXCI+XHJcbiAgICAgICAgPGxpYi1wYWdpbmF0aW9uIGNsYXNzPVwidGV4dC1zdGFydFwiIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcclxuICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2aXR5TG9nTG9hZGluZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2aXR5TG9nTm9EYXRhICYmICFhY3Rpdml0eUxvZ0xvYWRpbmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXktNlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YW1haW50ZXh0IG10LTNcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YXN1YnRleHRcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIFBlcmZvcm1hbmNlIFRhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWN0aXZpdHktbG9nL2FjdGl2aXR5LWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZy9hY3Rpdml0eS1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQWdDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7Ozs7QUFNMUIsTUFBTSxPQUFPLG9CQUFvQjtJQWlCWjtJQUErQjtJQUFrQztJQUMxRTtJQUEyQztJQWpCN0MsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDakMsVUFBVSxDQUFNO0lBQ2hCLGtCQUFrQixHQUFZLElBQUksQ0FBQztJQUNuQyxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDbkMsWUFBWSxHQUFHLEVBQUUsQ0FBQTtJQUNqQixXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsVUFBVSxHQUFHLENBQUMsQ0FBQTtJQUNkLGFBQWEsR0FBVyxFQUFFLENBQUM7SUFDM0IsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLGVBQWUsR0FBUyxFQUFFLENBQUM7SUFDM0IsUUFBUSxHQUFHLEVBQUUsQ0FBQTtJQUNiLFdBQVcsR0FBVSxFQUFFLENBQUM7SUFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNkLElBQUksQ0FBTTtJQUVWLFlBQW1CLEVB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O0lBRUQsaUJBQWlCLENBQUMsR0FBUTtRQUN4QixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU5RCxJQUFJLGFBQXFCLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUN6QixhQUFhLEdBQUcsUUFBUSxDQUFDO1NBQzFCO2FBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvRCxhQUFhLEdBQUcsTUFBTSxDQUFDO1NBQ3hCO2FBQU07WUFDTCxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7U0FDbEM7UUFFRCxJQUFJLFdBQVcsR0FBUTtZQUNyQixhQUFhLEVBQUUsYUFBYTtZQUM1QixhQUFhLEVBQUUsYUFBYTtZQUM1QixPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDckIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1NBQzdCLENBQUM7UUFFRixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDbEIsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDL0I7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7d0dBaElVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHdEQ1hqQyxvK0pBdUZNOzs0RkQ1RU8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGl2aXR5LWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9nQ29tcG9uZW50IHtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcbiAgYWN0aXZpdHlMb2dMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBhY3Rpdml0eUxvZ05vRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGl0ZW1zUGVyUGFnZSA9IDEwXHJcbiAgY3VycmVudFBhZ2UgPSAxXHJcbiAgdG90YWxJdGVtcyA9IDBcclxuICBzb3J0Q29sdW1OYW1lOiBzdHJpbmcgPSAnJztcclxuICBzb3J0Qnk6IGFueSA9ICcnO1xyXG4gIHNvcnREaXJlY3Rpb246IGFueSA9ICcnO1xyXG4gIHBhZ2luYXRpb25TaXplczphbnlbXSA9IFtdO1xyXG4gIHBhZ2VTaXplID0gMTBcclxuICBhY3Rpdml0eUxvZzogYW55W10gPSBbXTtcclxuICBkYXlqcyA9IGRheWpzO1xyXG4gIGRhdGU6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgVHJheFNlcnZpY2U6IFRyYXhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0ZSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgIC8vIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuICAgICAgICB0aGlzLmdldEFjdGl2aXR5TG9nKClcclxufSlcclxufVxyXG4gIC8vIHNldFBhZ2VEYXRhKCkge1xyXG4gIC8vICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIkRhc2hib2FyZFwiKTtcclxuICAvLyAgIC8vIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJEYXNoYm9hcmRcIik7XHJcbiAgLy8gICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAvLyAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxyXG4gIC8vICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfSxcclxuICAvLyAgIF0pO1xyXG4gIC8vIH1cclxuICBnZXRBY3Rpdml0eUxvZygpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3Rpdml0eUxvZ0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3Rpdml0eUxvZ05vRGF0YSA9IHRydWU7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgLy8gZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgLy8gdG9EYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGEuc3RvcmVzLmZpbHRlcigoc3RvcmU6YW55KSA9PiBzdG9yZS5jaGVja2VkKS5tYXAoKHN0b3JlOmFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIGNsaWVudElkOnRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIGxpbWl0OiB0aGlzLml0ZW1zUGVyUGFnZSxcclxuICAgICAgb2Zmc2V0OiB0aGlzLmN1cnJlbnRQYWdlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLlRyYXhTZXJ2aWNlLmdldEFjdGl2aXR5TG9nKHJlcXVlc3REYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5TG9nTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChyZXNwb25zZT8uY29kZSA9PT0gMjAwICYmIHJlc3BvbnNlPy5zdGF0dXMgPT09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9nID0gcmVzcG9uc2UuZGF0YVswXT8uYWN0aXZpdHlMb2dEYXRhIHx8IFtdXHJcbiAgICAgICAgICAvLyB0aGlzLnRvdGFsSXRlbXMgPSByZXNwb25zZS5kYXRhLnRvdGFsQ291bnRcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHJlc3BvbnNlLmRhdGFbMF0/LmNvdW50WzBdPy50b3RhbCB8fCAwO1xyXG5cclxuICAgICAgICAgIHRoaXMuc2V0UGFnaW5hdGlvblNpemVzKClcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9nTm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZWxzZVwiKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvZyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvZ0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dOb0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvZyA9IFtdXHJcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwXHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlMb2cgPSBbXVxyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBwYWdlU2l6ZTtcclxuICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZygpXHJcbiAgfVxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlT2Zmc2V0XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9nKClcclxuICB9XHJcbiAgc2V0UGFnaW5hdGlvblNpemVzKCkge1xyXG4gICAgaWYgKHRoaXMudG90YWxJdGVtcyA+IDEwKSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbEl0ZW1zXTtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMudG90YWxJdGVtcztcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIFxyXG4gIG5hdmlnYXRlVG9HYWxsZXJ5KGxvZzogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9IGRheWpzKGxvZy5jcmVhdGVkQXQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gIFxyXG4gICAgbGV0IGNoZWNrbGlzdFR5cGU6IHN0cmluZztcclxuICAgIGlmIChsb2cudHlwZSA9PT0gJ2N1c3RvbScpIHtcclxuICAgICAgY2hlY2tsaXN0VHlwZSA9ICdjdXN0b20nO1xyXG4gICAgfSBlbHNlIGlmIChbJ3Rhc2snLCAnY2hlY2tsaXN0VGFzaycsICdjY3R2J10uaW5jbHVkZXMobG9nLnR5cGUpKSB7XHJcbiAgICAgIGNoZWNrbGlzdFR5cGUgPSAndGFzayc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja2xpc3RUeXBlID0gbG9nLnR5cGUgfHwgJy0tJztcclxuICAgIH1cclxuICBcclxuICAgIGxldCBxdWVyeVBhcmFtczogYW55ID0ge1xyXG4gICAgICBDaGVja2xpc3REYXRlOiBmb3JtYXR0ZWREYXRlLFxyXG4gICAgICBjaGVja2xpc3RUeXBlOiBjaGVja2xpc3RUeXBlLFxyXG4gICAgICBzdG9yZUlkOiBsb2cuc3RvcmVfaWQsXHJcbiAgICAgIGNoZWNrbGlzdElkOiBsb2cuY2hlY2tsaXN0SWQsXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgaWYgKGxvZy5yZWRvU3RhdHVzKSB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLnJlZG9TdGF0dXMgPSB0cnVlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLCB7IHF1ZXJ5UGFyYW1zIH0pO1xyXG4gIH1cclxuICBcclxuICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWFjdGl2aXR5TG9nTG9hZGluZyAmJiAhYWN0aXZpdHlMb2dOb0RhdGFcIiBjbGFzcz1cInJvdyBjYXJkc2Nyb2xsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbG9nIG9mIGFjdGl2aXR5TG9nOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ0aW1lbGluZS1pdGVtIG1iLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZC1ub25lJzogaSAlIDIgIT09IDB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lLWJhZGdlIG14LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDEzIDE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI2LjVcIiBjeT1cIjdcIiByPVwiNVwiIFthdHRyLnN0cm9rZV09XCJsb2cuYWN0aW9uID09PSAnc3RhcnRlZCcgPyAnIzEyQjc2QScgOiAobG9nLmFjdGlvbiA9PT0gJ3N1Ym1pdHRlZCcgfHwgbG9nLmFjdGlvbiA9PT0gJ2xhcHNlZCcgPyAnI0YwNDQzOCcgOiAnIzAwMDAwMCcpXCIgc3Ryb2tlLXdpZHRoPVwiM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2d0ZXh0bWFpblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsb2cuc3RvcmVOYW1lIHx8IFwiLS1cIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvZ3RleHRzdWIgbXgtMVwiPnt7IGxvZy5hY3Rpb24gfCB0aXRsZWNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9ndGV4dG1haW4gbXgtMVwiPnt7IGxvZy5jaGVja0xpc3ROYW1lIHx8IFwiLS1cIiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2d0ZXh0c3ViIG14LTFcIj5hdCB7eyBsb2cuY3JlYXRlZEF0IHwgZGF0ZTogJ01NTSBkZCwgeScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwibmF2aWdhdGVUb0dhbGxlcnkobG9nKVwiICpuZ0lmPVwibG9nLmFjdGlvbiA9PT0gJ3N1Ym1pdHRlZCdcIiBjbGFzcz1cImxvZ3ZpZXcgbXgtMiBjdXJzb3ItcG9pbnRlclwiPlZpZXc8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBsb2cgb2YgYWN0aXZpdHlMb2c7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInRpbWVsaW5lLWl0ZW0gbWItNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkLW5vbmUnOiBpICUgMiA9PT0gMH1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZWxpbmUtYmFkZ2UgbXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjYuNVwiIGN5PVwiN1wiIHI9XCI1XCIgW2F0dHIuc3Ryb2tlXT1cImxvZy5hY3Rpb24gPT09ICdzdGFydGVkJyA/ICcjMTJCNzZBJyA6IChsb2cuYWN0aW9uID09PSAnc3VibWl0dGVkJyB8fCBsb2cuYWN0aW9uID09PSAnbGFwc2VkJyA/ICcjRjA0NDM4JyA6ICcjMDAwMDAwJylcIiBzdHJva2Utd2lkdGg9XCIzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ3RleHRtYWluXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxvZy5zdG9yZU5hbWUgfHwgXCItLVwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9ndGV4dHN1YiBteC0xXCI+e3sgbG9nLmFjdGlvbiB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2d0ZXh0bWFpbiBteC0xXCI+e3sgbG9nLmNoZWNrTGlzdE5hbWUgfHwgXCItLVwiIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvZ3RleHRzdWIgbXgtMVwiPmF0IHt7IGxvZy5jcmVhdGVkQXQgfCBkYXRlOiAnTU1NIGRkLCB5JyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJuYXZpZ2F0ZVRvR2FsbGVyeShsb2cpXCIgKm5nSWY9XCJsb2cuYWN0aW9uID09PSAnc3VibWl0dGVkJ1wiIGNsYXNzPVwibG9ndmlldyBteC0yIGN1cnNvci1wb2ludGVyXCI+VmlldzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhYWN0aXZpdHlMb2dMb2FkaW5nICYmICFhY3Rpdml0eUxvZ05vRGF0YVwiPlxyXG4gICAgICAgIDxsaWItcGFnaW5hdGlvbiBjbGFzcz1cInRleHQtc3RhcnRcIiBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiXHJcbiAgICAgICAgICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIiBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpdml0eUxvZ0xvYWRpbmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpdml0eUxvZ05vRGF0YSAmJiAhYWN0aXZpdHlMb2dMb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG15LTZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFtYWludGV4dCBtdC0zXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFzdWJ0ZXh0XCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciBQZXJmb3JtYW5jZSBUYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==