tango-app-ui-analyse-trax 3.6.0 → 3.6.2-bulktask-2
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.
- package/esm2022/lib/components/action-centre/action-centre.component.mjs +3 -3
- package/esm2022/lib/components/activity-log-v2/activity-log-v2.component.mjs +3 -2
- package/esm2022/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.mjs +3 -3
- package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +5 -3
- package/esm2022/lib/components/add-multitask/add-multitask.component.mjs +538 -0
- package/esm2022/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.mjs +269 -0
- package/esm2022/lib/components/add-multitask/create-task.data.mjs +306 -0
- package/esm2022/lib/components/add-multitask/create-task.interface.mjs +2 -0
- package/esm2022/lib/components/add-multitask/unique-string-validator.mjs +10 -0
- package/esm2022/lib/components/add-multitask/whitespace-validator.mjs +10 -0
- package/esm2022/lib/components/add-task/add-task.component.mjs +3 -1
- package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +4 -4
- package/esm2022/lib/components/dashboard/dashboard.component.mjs +3 -3
- package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +1 -1
- package/esm2022/lib/components/disabled-select/disabled-select.component.mjs +158 -0
- package/esm2022/lib/components/export-gallery/export-gallery.component.mjs +7 -2
- package/esm2022/lib/components/eye-test-audit/eye-test/eye-test.component.mjs +11 -17
- package/esm2022/lib/components/eye-test-audit/group-select/group-select.component.mjs +3 -3
- package/esm2022/lib/components/eye-test-audit/reactive-select/reactive-select.component.mjs +3 -3
- package/esm2022/lib/components/flags/flags.component.mjs +1 -1
- package/esm2022/lib/components/flags-info/flags-info.component.mjs +1 -1
- package/esm2022/lib/components/gallery/gallery.component.mjs +324 -50
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +6 -3
- package/esm2022/lib/components/task-configure/task-configure.component.mjs +6 -6
- package/esm2022/lib/components/task-info/task-info.component.mjs +1 -1
- package/esm2022/lib/services/trax.service.mjs +20 -2
- package/esm2022/lib/tango-analyse-trax.module.mjs +12 -5
- package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-mp5zGDN4.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-B6bePYMW.mjs} +20 -26
- package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-B6bePYMW.mjs.map +1 -0
- package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DKvlR9IQ.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-IHj5-6FY.mjs} +1820 -253
- package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-IHj5-6FY.mjs.map +1 -0
- package/fesm2022/tango-app-ui-analyse-trax.mjs +1 -1
- package/lib/components/activity-log-v2/activity-log-v2.component.d.ts +1 -0
- package/lib/components/add-multitask/add-multitask.component.d.ts +95 -0
- package/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.d.ts +42 -0
- package/lib/components/add-multitask/create-task.data.d.ts +244 -0
- package/lib/components/add-multitask/create-task.interface.d.ts +147 -0
- package/lib/components/add-multitask/unique-string-validator.d.ts +2 -0
- package/lib/components/add-multitask/whitespace-validator.d.ts +2 -0
- package/lib/components/disabled-select/disabled-select.component.d.ts +34 -0
- package/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.d.ts +2 -2
- package/lib/components/flags/flags.component.d.ts +2 -2
- package/lib/components/flags-info/flags-info.component.d.ts +3 -3
- package/lib/components/flags-new/flags-new.component.d.ts +2 -2
- package/lib/components/gallery/gallery.component.d.ts +40 -2
- package/lib/components/manage-task/manage-task.component.d.ts +1 -1
- package/lib/components/orders/orders.component.d.ts +1 -1
- package/lib/components/reactive-select/reactive-select.component.d.ts +2 -2
- package/lib/components/reports/reports.component.d.ts +2 -2
- package/lib/components/task-configure/task-configure.component.d.ts +3 -3
- package/lib/services/trax.service.d.ts +6 -1
- package/lib/tango-analyse-trax.module.d.ts +11 -8
- package/package.json +1 -1
- package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-mp5zGDN4.mjs.map +0 -1
- package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DKvlR9IQ.mjs.map +0 -1
|
@@ -79,6 +79,7 @@ export class ActivityLogV2Component {
|
|
|
79
79
|
activityLogFilter = [];
|
|
80
80
|
// reloadDate: string;
|
|
81
81
|
sourceCheckList_id;
|
|
82
|
+
checklistId;
|
|
82
83
|
// coverageType: any = [];
|
|
83
84
|
userEmailes = [];
|
|
84
85
|
checklistName;
|
|
@@ -141,7 +142,6 @@ export class ActivityLogV2Component {
|
|
|
141
142
|
}
|
|
142
143
|
setPageData() {
|
|
143
144
|
this.pageInfo.setTitle("Dashboard");
|
|
144
|
-
// this.pageInfo.setDescription("Dashboard");
|
|
145
145
|
this.pageInfo.setBreadcrumbs([
|
|
146
146
|
{ title: "Tango Trax", path: "/manage/trax/dashboard", isActive: false, isSeparator: false },
|
|
147
147
|
{ title: "Tango Trax", path: "/manage/trax/dashboard", isActive: false, isSeparator: true },
|
|
@@ -205,6 +205,7 @@ export class ActivityLogV2Component {
|
|
|
205
205
|
this.changeDetector.detectChanges();
|
|
206
206
|
});
|
|
207
207
|
this.sourceCheckList_id = "";
|
|
208
|
+
this.checklistId = "";
|
|
208
209
|
}
|
|
209
210
|
// removeQueryParams() {
|
|
210
211
|
// const urlWithoutParams = this.location.path().split('?')[0];
|
|
@@ -478,4 +479,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
478
479
|
type: Component,
|
|
479
480
|
args: [{ selector: 'lib-activity-log-v2', template: "<div class=\"col-lg-12 mt-4\">\r\n <div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Activity Log </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon footfallsearch svg-icon-1 position-absolute ms-8\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\">\r\n </rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input *ngIf=\"receivedData === 'checklist'\" [(ngModel)]=\"searchInput\" type=\"text\" class=\"form-control ps-14 mx-2 logsearch\"\r\n placeholder=\"Search with Store, Email, Checklist\" autocomplete=\"off\" (keyup.enter)=\"searchField()\" />\r\n <input *ngIf=\"receivedData === 'task'\" [(ngModel)]=\"searchInput\" type=\"text\" class=\"form-control ps-14 mx-2 logsearch\"\r\n placeholder=\"Search with Store, Email, Task\" autocomplete=\"off\" (keyup.enter)=\"searchField()\" />\r\n <!-- datepicker start -->\r\n <lib-date-range-picker (dateChange)=\"datechange($event)\" [value]=\"count\"></lib-date-range-picker>\r\n <!-- datepicker end -->\r\n <lib-filters [dataObject]=\"dataObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex overflow-auto mb-2 mx-4\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs-2x justify-content-center align-items-center border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\" (click)=\"Selecttabs('checklist')\" [routerLink]=\"['/manage/trax/actioncenter']\" [queryParams]=\"{ type: 'checklist' }\">\r\n <a [ngClass]=\"receivedData === 'checklist'?'btn activebtn':''\" class=\"fw-semibold nav-link me-6\">\r\n Checklist\r\n </a>\r\n </li>\r\n <li class=\"nav-item cursor-pointer\" (click)=\"Selecttabs('task')\" [routerLink]=\"['/manage/trax/actioncenter']\" [queryParams]=\"{ type: 'task' }\">\r\n <a [ngClass]=\"receivedData === 'task' || receivedData === 'Group Details Value'? 'btn activebtn':''\"\r\n class=\"nav-link me-6\">Task\r\n </a>\r\n </li>\r\n </ul>\r\n <!-- <lib-view-action [receivedData]=\"receivedData\"></lib-view-action> -->\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive\">\r\n <table *ngIf=\"!taskLoading && !taskNoData\" class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('datetime')\">Date & Time<svg\r\n [ngClass]=\"sortColumName === 'datetime' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'datetime' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n \r\n <th *ngIf=\"receivedData === 'checklist'\">Checklist Name</th>\r\n <th *ngIf=\"receivedData === 'task'\">Task Name</th>\r\n <th>Action Performed</th>\r\n <th>Performed by</th>\r\n <th>Store Name</th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n \r\n <tr *ngFor=\"let log of activityLogTableData\">\r\n <td>\r\n <span class=\"table-title\" [innerHTML]=\"formatDateTime(log._source.createAt)\"></span>\r\n\r\n </td>\r\n <td>\r\n <div *ngIf=\"!(log._source.type === 'task' && log._source.fromCheckListName)\">\r\n <span class=\"table-title me-2\">\r\n {{ log._source.checkListName || '--' }}\r\n </span>\r\n </div>\r\n <div *ngIf=\"log._source.type === 'task' && log._source.fromCheckListName\">\r\n <span class=\"table-title me-2\">\r\n {{ log._source.checkListName || '--' }} <br>\r\n <span class=\"mx-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M11.6654 7.50016L7.4987 3.3335M7.4987 3.3335L3.33203 7.50016M7.4987 3.3335V13.3335C7.4987 14.2176 7.84989 15.0654 8.47501 15.6905C9.10013 16.3156 9.94798 16.6668 10.832 16.6668H16.6654\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span><span class=\"mx-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"23\" height=\"23\" viewBox=\"0 0 23 23\" fill=\"none\">\r\n <path d=\"M8.41448 4.52303C8.69518 4.80371 8.69518 5.2588 8.41448 5.53948L5.53948 8.41448C5.2588 8.69518 4.80371 8.69518 4.52303 8.41448L3.08553 6.97698C2.80482 6.6963 2.80482 6.24121 3.08553 5.96053C3.36621 5.67982 3.8213 5.67982 4.10198 5.96053L5.03125 6.88978L7.39803 4.52303C7.67871 4.24232 8.1338 4.24232 8.41448 4.52303Z\" fill=\"#667085\"/>\r\n <path d=\"M8.41448 11.7105C8.69518 11.9912 8.69518 12.4463 8.41448 12.727L5.53948 15.602C5.2588 15.8826 4.80371 15.8826 4.52303 15.602L3.08553 14.1645C2.80482 13.8838 2.80482 13.4287 3.08553 13.1479C3.36621 12.8673 3.8213 12.8673 4.10198 13.1479L5.03125 14.0773L7.39803 11.7105C7.67871 11.4299 8.1338 11.4299 8.41448 11.7105Z\" fill=\"#667085\"/>\r\n <path d=\"M10.0625 6.46875C10.0625 6.0718 10.3844 5.75 10.7812 5.75H15.0938C15.4906 5.75 15.8125 6.0718 15.8125 6.46875C15.8125 6.8657 15.4906 7.1875 15.0938 7.1875H10.7812C10.3844 7.1875 10.0625 6.8657 10.0625 6.46875Z\" fill=\"#667085\"/>\r\n <path d=\"M3.59375 0C1.60898 0 0 1.60898 0 3.59375V16.5312C0 18.516 1.60898 20.125 3.59375 20.125H9.48708C9.25429 19.6696 9.06436 19.1886 8.92261 18.6875H3.59375C2.40288 18.6875 1.4375 17.7221 1.4375 16.5312V3.59375C1.4375 2.40288 2.40288 1.4375 3.59375 1.4375H16.5312C17.7221 1.4375 18.6875 2.40288 18.6875 3.59375V8.92261C19.1886 9.06436 19.6696 9.25429 20.125 9.48708V3.59375C20.125 1.60898 18.516 0 16.5312 0H3.59375Z\" fill=\"#667085\"/>\r\n <path d=\"M16.5313 23C20.1039 23 23 20.1039 23 16.5313C23 12.9586 20.1039 10.0625 16.5313 10.0625C12.9586 10.0625 10.0625 12.9586 10.0625 16.5313C10.0625 20.1039 12.9586 23 16.5313 23ZM16.5313 12.9375C16.9281 12.9375 17.25 13.2594 17.25 13.6563V15.8125H19.4063C19.8031 15.8125 20.125 16.1344 20.125 16.5313C20.125 16.9281 19.8031 17.25 19.4063 17.25H17.25V19.4063C17.25 19.8031 16.9281 20.125 16.5313 20.125C16.1344 20.125 15.8125 19.8031 15.8125 19.4063V17.25H13.6563C13.2594 17.25 12.9375 16.9281 12.9375 16.5313C12.9375 16.1344 13.2594 15.8125 13.6563 15.8125H15.8125V13.6563C15.8125 13.2594 16.1344 12.9375 16.5313 12.9375Z\" fill=\"#667085\"/>\r\n </svg></span><span class=\"table-title\"> {{ log._source.fromCheckListName || '--' }} </span>\r\n </span>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">\r\n <span class=\"table-title badge-light\" [ngClass]=\"getActionBadgeClass(log._source.action)\">\r\n {{ getActionLabel(log._source.action) }}\r\n </span>\r\n </div>\r\n \r\n </td> \r\n <td>\r\n <div \r\n class=\"table-title d-flex\"><span class=\"me-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M16.6654 17.5V15.8333C16.6654 14.9493 16.3142 14.1014 15.6891 13.4763C15.0639 12.8512 14.2161 12.5 13.332 12.5H6.66536C5.78131 12.5 4.93346 12.8512 4.30834 13.4763C3.68322 14.1014 3.33203 14.9493 3.33203 15.8333V17.5M13.332 5.83333C13.332 7.67428 11.8396 9.16667 9.9987 9.16667C8.15775 9.16667 6.66536 7.67428 6.66536 5.83333C6.66536 3.99238 8.15775 2.5 9.9987 2.5C11.8396 2.5 13.332 3.99238 13.332 5.83333Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span><span>{{ log._source.createdByEmail }}</span></div>\r\n </td>\r\n <td>\r\n <div \r\n class=\"table-title d-flex\"><span *ngIf=\"log._source?.storeName\" class=\"me-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M2.67893 5.80366L2.62568 5.88683C2.06764 6.87388 2.66347 8.1213 3.73508 8.2644C3.83217 8.27627 3.92251 8.28255 4.01078 8.28255C4.58893 8.28255 5.1001 8.03453 5.45637 7.6478L6.0097 7.04718L6.56116 7.64953C6.9131 8.03395 7.42311 8.28255 8.00517 8.28255C8.58461 8.28255 9.09755 8.0336 9.44917 7.64953L10.0024 7.04529L10.5555 7.64953C10.9072 8.0336 11.4201 8.28255 11.9996 8.28255C12.579 8.28255 13.0919 8.0336 13.4436 7.64953L13.9967 7.04529L14.5499 7.64953C14.9016 8.0336 15.4145 8.28255 15.9939 8.28255C16.0793 8.28255 16.1724 8.27625 16.2688 8.2645C17.3639 8.11518 17.9618 6.80091 17.323 5.80416C17.323 5.8041 17.323 5.80405 17.3229 5.80399L15.5648 3.06258L15.5648 3.06258L15.5638 3.06111C15.5486 3.03728 15.5112 3.01172 15.464 3.01172H4.53458C4.48744 3.01172 4.44995 3.03728 4.43474 3.06111L4.43413 3.06208L2.67893 5.80366ZM15.6504 10.7369V13.8689V14.6189H14.9004H5.09821H4.34821V13.8689V10.7374C4.23798 10.7456 4.12646 10.7498 4.01384 10.7498C3.97154 10.7498 3.92952 10.7492 3.88778 10.748V13.8689V15.8034C3.88778 16.4468 4.42168 16.9879 5.09821 16.9879H14.9004C15.5769 16.9879 16.1108 16.4468 16.1108 15.8034V13.8689V10.7482C16.071 10.7493 16.031 10.7498 15.9909 10.7498C15.8765 10.7498 15.7629 10.7455 15.6504 10.7369Z\" stroke=\"#667085\" stroke-width=\"1.5\"/>\r\n </svg></span><span>{{ log._source.storeName || '-' }}</span></div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">\r\n <!-- \"['updated', 'edited', 'draft'].includes(log._source.action)\" -->\r\n <span *ngIf=\"['updated', 'edited'].includes(log._source.action) || (log._source.action === 'draft' && log._source.logDetails && !isLogDetailsEmpty(log._source.logDetails))\"\r\n (click)=\"viewAction(log._source)\" \r\n class=\"text-primary cursor-pointer\">\r\n <u>View</u>\r\n </span>\r\n <span *ngIf=\"log._source.action === 'submit'\"\r\n (click)=\"navigateToGallery(log._source)\" \r\n class=\"text-primary cursor-pointer\">\r\n <u>View</u>\r\n </span>\r\n <!-- *ngIf=\"!['updated', 'edited', 'submit', 'draft'].includes(log._source.action)\" -->\r\n <span *ngIf=\"!['updated', 'edited', 'submit'].includes(log._source.action) && !(log._source.action === 'draft' && log._source.logDetails && !isLogDetailsEmpty(log._source.logDetails))\">-</span>\r\n </div>\r\n </td>\r\n \r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <ng-container *ngIf=\"taskLoading\">\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=\"taskNoData && !taskLoading\">\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 Activity Log</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <div *ngIf=\"!taskLoading && !taskNoData\">\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 </div>\r\n</div>\r\n</div>", styles: [".table-title{color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.table-title-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-style:normal;font-weight:500;line-height:20px;text-decoration-line:underline}.card .card-header{padding:0px 1.5rem}.nav-item .nav-link{color:var(--Gray-500, #667085);font-size:16px;font-weight:500}.activebtn{color:var(--Primary-700, #009BF3)!important;border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;font-size:16px!important;font-weight:500!important}.daterange{color:var(--Gray-500, #667085);font-size:16px;font-style:normal;font-weight:600;line-height:24px}.nodatamaintext{font-family:Inter;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#101828}.nodatasubtext{font-family:Inter;font-size:14px;font-weight:400;line-height:20px;text-align:center;color:#667085}.rotate{transform:rotate(180deg)}.logsearch{width:370px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.badge-light{display:flex;padding:8px 16px;justify-content:center;align-items:center;flex:1 0 0;border-radius:16px;opacity:.8;font-weight:500;width:70%}.badge-light-default{background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054)}.badge-light-primary1{background:var(--Blue-50, #EFF8FF);color:var(--Blue-700, #175CD3)}.badge-light-success{background:var(--Success-50, #ECFDF3);color:var(--Success-700, #027A48)}.badge-light-warning{background:var(--Warning-50, #FFFAEB);color:var(--Warning-700, #B54708)}.badge-light-delete{background:var(--Error-50, #FEF3F2);color:var(----Error-700, #B42318)}\n"] }]
|
|
480
481
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.ToastService }, { type: i4.TraxService }, { type: i2.PageInfoService }, { type: i1.ActivatedRoute }, { type: i5.NgbModal }] });
|
|
481
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWN0aXZpdHktbG9nLXYyL2FjdGl2aXR5LWxvZy12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZy12Mi9hY3Rpdml0eS1sb2ctdjIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBS2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFnQyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBSW5DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sWUFBWSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7O0FBSnJELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFNbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMzQixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBVWxCLE1BQU0sT0FBTyxzQkFBc0I7SUFxRmI7SUFBK0I7SUFBc0I7SUFBK0I7SUFBMEM7SUFDeEk7SUFBa0M7SUFBa0M7SUFBdUM7SUFyRnJILEtBQUssR0FBRyxLQUFLLENBQUE7SUFDTCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNqQyxRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFlBQVksR0FBRyxFQUFFLENBQUE7SUFD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QUFDLHVCQUF1QixFQUFFLENBQUM7U0FDaEM7YUFBTTtTQUNOO0lBQ0gsQ0FBQztJQUlDLGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBYyxFQUFFLEVBQUU7WUFDckMsOENBQThDO1lBQzlDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2pFLENBQUMsQ0FBQztJQUNKLENBQUM7d0dBL2NNLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDJEQ3pCbkMsK3BmQXNMTTs7NEZEN0pPLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVmlld0FjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbG9nLXZpZXctcG9wdXAvdmlldy1hY3Rpb24vdmlldy1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHJlbGF0aXZlVGltZSBmcm9tICdkYXlqcy9wbHVnaW4vcmVsYXRpdmVUaW1lJztcclxuXHJcbmRheWpzLmV4dGVuZChyZWxhdGl2ZVRpbWUpO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWN0aXZpdHktbG9nLXYyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktbG9nLXYyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWN0aXZpdHktbG9nLXYyLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9nVjJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcbiAgZGF5anMgPSBkYXlqc1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGlzRXhwb3J0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXRlbXNQZXJQYWdlID0gMTBcclxuICBjdXJyZW50UGFnZSA9IDFcclxuICB0b3RhbEl0ZW1zID0gMFxyXG4gIHBhZ2luYXRpb25TaXplczphbnlbXSA9IFtdO1xyXG4gIHBhZ2VTaXplID0gMTBcclxuICBzb3J0Q29sdW1OYW1lOiBzdHJpbmcgPSAnJztcclxuICBzb3J0Qnk6IGFueSA9ICcnO1xyXG4gIHNvcnREaXJlY3Rpb246IGFueSA9ICcnO1xyXG4gIHNlYXJjaElucHV0OiBhbnkgPVwiXCI7XHJcbiAgaGVhZGVyRGF0YTogYW55O1xyXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmc7XHJcbiAgbGltaXQ6IG51bWJlcjtcclxuICBvZmZzZXQ6IG51bWJlcjtcclxuICBzZWFyY2hEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRhc2tMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICB0YXNrTm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVjZWl2ZWREYXRhOiBzdHJpbmcgPSBcImNoZWNrbGlzdFwiO1xyXG4gIGRhdGFPYmplY3Q6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgRGVzY3JpcHRpb246ICdBY3Rpb25zJyxcclxuICAgICAgSXNzdWVzOiBbXHJcbiAgICAgICAgeyB0ZXh0OiAnQ3JlYXRlZCBieScsIGlkOiAnY3JlYXRlZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdVcGRhdGVkIGJ5JywgaWQ6ICd1cGRhdGVkJyB9LFxyXG4gICAgICAgIHsgdGV4dDogJ1NhdmVkIGFzIERyYWZ0JywgaWQ6ICdkcmFmdCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdQdWJsaXNoZWQgYnknLCBpZDogJ3B1Ymxpc2hlZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdTdWJtaXR0ZWQgYnknLCBpZDogJ3N1Ym1pdCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdTdGFydGVkIGJ5JywgaWQ6ICdzdGFydCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdBcHByb3ZlZCBieScsIGlkOiAnYXBwcm92ZWQnIH0sXHJcbiAgICAgICAgeyB0ZXh0OiAnUmVkbyBDcmVhdGVkIGJ5JywgaWQ6ICdyZWRvJyB9LFxyXG4gICAgICAgIHsgdGV4dDogJ1N1YnNlcXVlbnQgUmVkbyBDcmVhdGVkIGJ5JywgaWQ6ICdtdWx0aXJlZG8nIH0sXHJcbiAgICAgICAgeyB0ZXh0OiAnVGFzayBDcmVhdGVkIGJ5JywgaWQ6ICd0YXNrX2NyZWF0ZWQnIH0sXHJcbiAgICAgICAgLy8geyB0ZXh0OiAnUmUtT3BlbmVkIGJ5JywgaWQ6ICdyZW9wZW5lZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdFZGl0ZWQgYnknLCBpZDogJ2VkaXRlZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdVbnB1Ymxpc2hlZCBieScsIGlkOiAndW5wdWJsaXNoZWQnIH0sXHJcbiAgICAgICAgeyB0ZXh0OiAnRGVsZXRlZCBieScsIGlkOiAnZGVsZXRlZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdEdXBsaWNhdGVkIGJ5JywgaWQ6ICdkdXBsaWNhdGVkJyB9LFxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICAgIC8vIHtcclxuICAgIC8vICAgRGVzY3JpcHRpb246ICdDb3ZlcmFnZScsXHJcbiAgICAvLyAgIElzc3VlczogW1xyXG4gICAgLy8gICAgIHsgdGV4dDogJ0NoZWNrbGlzdCcsIGlkOiAnY2hlY2tsaXN0JyB9LFxyXG4gICAgICAgXHJcbiAgICAvLyAgIF0sXHJcbiAgICAvLyB9LFxyXG4gIF07XHJcbiAgYWN0aXZpdHlMb2dUYWJsZURhdGE6IGFueVtdID0gW107XHJcbiAgdHlwZTogc3RyaW5nID0gJ2NoZWNrbGlzdCc7IFxyXG4gIGFjdGl2aXR5TG9nRmlsdGVyOiBhbnkgPSBbXTtcclxuICAvLyByZWxvYWREYXRlOiBzdHJpbmc7XHJcbiAgc291cmNlQ2hlY2tMaXN0X2lkOiBhbnk7XHJcbiAgLy8gY292ZXJhZ2VUeXBlOiBhbnkgPSBbXTtcclxuICB1c2VyRW1haWxlczogYW55ID0gW107XHJcbiAgY2hlY2tsaXN0TmFtZTogYW55O1xyXG4gIGVkaXRSZXF1ZXN0RGF0YTogYW55O1xyXG4gIGlzQWN0aXZpdHlMb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7XHJcbiAgICBzdGFydERhdGU6IGRheWpzKCkuc3VidHJhY3QoNywgJ2RheXMnKSxcclxuICAgIGVuZERhdGU6IGRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpLFxyXG4gIH07XHJcbiAgICBpc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9IG0gPiB0aGlzLmRheWpzKCk7XHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gXCJpbnZhbGlkLWRhdGVcIiA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gIHNlbGVjdGVkRmlsdGVyczogYW55ID0ge1xyXG4gICAgY2xpZW50OiBudWxsLFxyXG4gICAgY2xpZW50TmFtZTogbnVsbCxcclxuICAgIGNsaWVudHM6IFtdLFxyXG4gICAgc3RvcmU6IG51bGwsXHJcbiAgICBzdG9yZXM6IFtdLFxyXG4gICAgLy8gZGF0ZTogbnVsbCxcclxuICAgIGRhdGU6IHtcclxuICAgICAgc3RhcnREYXRlOiBkYXlqcygpLnN1YnRyYWN0KDcsIFwiZGF5c1wiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICBlbmREYXRlOiBkYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgfSxcclxuICAgIGdyb3VwOiBbXSxcclxuICAgIGxvY2F0aW9uOiBbXSxcclxuICB9O1xyXG5jb3VudDpudW1iZXIgPSAwO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgVHJheFNlcnZpY2U6IFRyYXhTZXJ2aWNlLCBwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2UscHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHB1YmxpYyBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICkge1xyXG4gICAgdGhpcy51c2VyRW1haWxlcyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2Vyc0VtYWlsLWluZm9cIikgfHwgXCJbXVwiIClcclxuICAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IDEwO1xyXG4gICAgICAgIHRoaXMucGFnZVNpemUgPTEwO1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY291bnQrKztcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyB0aGlzLmFwcGx5RmlsdGVycyhbeyBEZXNjcmlwdGlvbjogJ0NvdmVyYWdlJywgSXNzdWVzOiBbeyB0ZXh0OiB0aGlzLmNvdmVyYWdlVHlwZVswXSwgaWQ6IHRoaXMuY292ZXJhZ2VUeXBlWzBdLCBjaGVja2VkOiB0cnVlfV0gfV0pO1xyXG4gICAgXHJcbiAgICAgIFxyXG59KVxyXG59XHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiRGFzaGJvYXJkXCIpO1xyXG4gICAgLy8gdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIkRhc2hib2FyZFwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZSB9LFxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpdml0eUxvZ1RhYmxlRGF0YSgpOiB2b2lkIHtcclxuICAgIFxyXG4gICAgdGhpcy5pc0FjdGl2aXR5TG9nID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpOyAvLyBGb3JjZSBVSSB1cGRhdGVcclxuICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy50YXNrTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRhc2tOb0RhdGEgPSB0cnVlO1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLnNlbGVjdGVkRmlsdGVycz8uZGF0ZT8uc3RhcnREYXRlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzPy5kYXRlPy5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlcy5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIGNsaWVudElkOnRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIGxpbWl0OiB0aGlzLml0ZW1zUGVyUGFnZSwgICAgICAgICAgICAgICAgIFxyXG4gICAgICBvZmZzZXQ6IHRoaXMuY3VycmVudFBhZ2UgLTEsXHJcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0RGlyZWN0aW9uLFxyXG4gICAgICBzb3J0Q29sdW1uTmFtZTogdGhpcy5zb3J0Q29sdW1OYW1lLFxyXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5zZWFyY2hJbnB1dCxcclxuICAgICAgYWN0aW9uOiB0aGlzLmFjdGl2aXR5TG9nRmlsdGVyLFxyXG4gICAgICB0eXBlOiB0aGlzLnJlY2VpdmVkRGF0YSxcclxuICAgICAgdXNlckVtYWlsZXM6dGhpcy51c2VyRW1haWxlc1xyXG4gICAgICAvLyBjaGVja0xpc3ROYW1lOnRoaXMuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgLy8gXCJjaGVja0xpc3ROYW1lXCI6IFwiZGFpbHkgc3RvcmUgY2hlY2tsaXN0MTExXCIsXHJcbiAgICAgIC8vIFwidHlwZVwiOiBcImNoZWNrbGlzdFwiLFxyXG4gICAgICAvLyBcImFjdGlvblwiOiBbXCJjcmVhdGVkXCJdLFxyXG4gICAgICAvLyBcImxpbWl0XCI6IDUsXHJcbiAgICAgIC8vIFwib2Zmc2V0XCI6IDAsXHJcbiAgICAgIC8vIFwic29ydEJ5XCI6IFwiXCIsXHJcbiAgICAgIC8vIFwic29ydENvbHVtbk5hbWVcIjogXCJcIixcclxuICAgICAgLy8gXCJzZWFyY2hWYWx1ZVwiOiBcIkRhaWx5IHN0b3JlIGNoZWNrbGlzdCBOZXdcIlxyXG4gIH07XHJcblxyXG4gICAgdGhpcy5UcmF4U2VydmljZS5hY3Rpdml0eUxvZ0xpc3QocmVxdWVzdERhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudGFza0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmNvZGUgPT09IDIwMCAmJiByZXNwb25zZT8uc3RhdHVzID09PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvZ1RhYmxlRGF0YSA9IHJlc3BvbnNlLmRhdGEucmVzdWx0IHx8IFtdO1xyXG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzcG9uc2UuZGF0YS5jb3VudFxyXG4gICAgICAgICAgdGhpcy5zZXRQYWdpbmF0aW9uU2l6ZXMoKVxyXG4gICAgICAgICAgdGhpcy50YXNrTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YXNrTm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dUYWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudGFza0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGFza05vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIGlmICh0aGlzLnNlYXJjaElucHV0Py5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hEaXNhYmxlZCA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dUYWJsZURhdGEgPSBbXVxyXG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gMFxyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5TG9nVGFibGVEYXRhID0gW11cclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zb3VyY2VDaGVja0xpc3RfaWQgPSBcIlwiO1xyXG4gIH1cclxuICAvLyByZW1vdmVRdWVyeVBhcmFtcygpIHtcclxuICAvLyAgIGNvbnN0IHVybFdpdGhvdXRQYXJhbXMgPSB0aGlzLmxvY2F0aW9uLnBhdGgoKS5zcGxpdCgnPycpWzBdO1xyXG4gIC8vICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodXJsV2l0aG91dFBhcmFtcyk7XHJcbiAgLy8gfVxyXG4gIHNldFBhZ2luYXRpb25TaXplcygpIHtcclxuICAgIGlmICh0aGlzLnRvdGFsSXRlbXMgPiAxMCkge1xyXG4gICAgICBpZih0aGlzLnBhZ2VTaXplID4gMTApe1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgICB9IGVsc2V7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbMTAsIDIwLCAzMF07XHJcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IDEwXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gW3RoaXMudG90YWxJdGVtc107XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLnRvdGFsSXRlbXM7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuICBcclxuICBvbkV4cG9ydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5oZWFkZXJEYXRhLnN0b3Jlcy5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIHVzZXJFbWFpbGVzOiB0aGlzLnVzZXJFbWFpbGVzLFxyXG4gICAgICBjbGllbnRJZDp0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBsaW1pdDogMTAwMDAsICAgICAgICAgICAgICAgICBcclxuICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICBzb3J0Qnk6IHRoaXMuc29ydERpcmVjdGlvbixcclxuICAgICAgc29ydENvbHVtbk5hbWU6IHRoaXMuc29ydENvbHVtTmFtZSxcclxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuc2VhcmNoSW5wdXQsXHJcbiAgICAgIGV4cG9ydDogdHJ1ZSxcclxuICAgICAgZmlsdGVyOiB0aGlzLmFjdGl2aXR5TG9nRmlsdGVyLFxyXG4gICAgICAvLyBjb3ZlcmFnZTogdGhpcy5jb3ZlcmFnZVR5cGUgfHwgW11cclxuICAgIH07XHJcbiAgICAgICAgdGhpcy5UcmF4U2VydmljZS5nZXRUYXNrVGFibGVEYXRhRXhwb3J0KHJlcXVlc3REYXRhKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5UcmF4U2VydmljZS5zYXZlQXNFeGNlbEZpbGUocmVzLCAnVGFza1RhYmxlJyk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnU29tZXRoaW5nIHdlbnQgV3JvbmcuLicpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICBcclxuICAgIH0gIFxyXG4gIHNlYXJjaEZpZWxkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5oZWFkZXJEYXRhLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hJbnB1dDtcclxuICAgIHRoaXMuaGVhZGVyRGF0YS5leHBvcnQgPSBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5wYWdlU2l6ZT0xMDtcclxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxuICAgIH1cclxuICBzb3J0RGF0YShjb2x1bW46IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc29ydENvbHVtTmFtZSA9PT0gY29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydERpcmVjdGlvbiA9PT0gMSA/IC0xIDogMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydENvbHVtTmFtZSA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gMTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxuICAgIH1cclxuICBcclxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBwYXJzZUludChwYWdlU2l6ZSk7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gcGFyc2VJbnQocGFnZVNpemUpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9nVGFibGVEYXRhKCk7XHJcbiAgICB9XHJcbiAgb25QYWdlQ2hhbmdlKHBhZ2VPZmZzZXQ6IGFueSkge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2VPZmZzZXRcclxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxuICB9XHJcbiAgYXBwbHlGaWx0ZXJzKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudD8ubGVuZ3RoKSB7XHJcbiAgICAgIGV2ZW50LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChlbGVtZW50LkRlc2NyaXB0aW9uID09PSAnQWN0aW9ucycpIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dGaWx0ZXIgPSBlbGVtZW50Lklzc3Vlcy5tYXAoKHZhbDogYW55KSA9PiB2YWwuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyB0aGlzLmRhdGFPYmplY3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICAvLyAgIGNhdGVnb3J5Lklzc3Vlcy5mb3JFYWNoKChpc3N1ZTogYW55KSA9PiB7XHJcbiAgICAgIC8vICAgICBpc3N1ZS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgLy8gICB9KTtcclxuICAgICAgLy8gfSk7XHJcbiAgXHJcbiAgICAgIC8vIGNvbnN0IGFjdGlvbnNGaWx0ZXIgPSB0aGlzLmRhdGFPYmplY3QuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtLkRlc2NyaXB0aW9uID09PSAnQWN0aW9ucycpO1xyXG4gICAgICAvLyB0aGlzLmFjdGl2aXR5TG9nRmlsdGVyID0gYWN0aW9uc0ZpbHRlciA/IGFjdGlvbnNGaWx0ZXIuSXNzdWVzLm1hcCgodmFsOiBhbnkpID0+IHZhbC5pZCkgOiBbXTtcclxuICAgICAgdGhpcy5hY3Rpdml0eUxvZ0ZpbHRlciA9IFtdO1xyXG4gICAgICBcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxuICB9XHJcbiAgc2VsZWN0UGxhbihzZWxlY3RlZFR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50eXBlID0gc2VsZWN0ZWRUeXBlOyAgXHJcbn1cclxuXHJcbi8vIG5hdmlnYXRlVG9UYXNrQ29uZmlnKHRhc2s6IGFueSk6IHZvaWQge1xyXG4vLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydtYW5hZ2UvdHJheC90YXNrLWNvbmZpZ3VyZSddLCB7IHF1ZXJ5UGFyYW1zOiB7dGFza0lkOnRhc2suX2lkfSB9KVxyXG4vLyB9XHJcblxyXG4vLyBuYXZpZ2F0ZVRvVGFza0VkaXQodGFzazogYW55KTogdm9pZCB7XHJcbi8vICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ21hbmFnZS90cmF4L2NyZWF0ZS10YXNrJ10sIHsgcXVlcnlQYXJhbXM6IHtpZDp0YXNrLl9pZH0gfSlcclxuLy8gfVxyXG5cclxuZGF0ZUZvcm1hdChkYXRlOmFueSkge1xyXG4gIHJldHVybiB0aGlzLmRheWpzLnV0YyhkYXRlKS5mb3JtYXQoJ0REIE1NTSBZWVlZJylcclxufVxyXG5TZWxlY3R0YWJzKHRhYjogc3RyaW5nKSB7XHJcbiAgdGhpcy5yZWNlaXZlZERhdGEgPSB0YWI7XHJcblxyXG4gIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IFxyXG4gIC8vICAgcXVlcnlQYXJhbXM6IHsgdHlwZTogdGFiIH0sXHJcbiAgLy8gICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXHJcbiAgLy8gfSk7XHJcblxyXG4gIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxufVxyXG52aWV3QWN0aW9uKGxvZzogYW55KSB7XHJcbiAgbGV0IG1vZGFsU2l6ZSA9IGxvZy5hY3Rpb24gPT09ICd1cGRhdGVkJyB8fCBsb2cuYWN0aW9uID09PSAnZHJhZnQnID8gJ3hsJyAgOiBsb2cuYWN0aW9uID09PSAnZWRpdGVkJyA/ICdsZycgOiAnbWQnO1xyXG4gIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihWaWV3QWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgIHNpemU6IG1vZGFsU2l6ZSxcclxuICAgIHNjcm9sbGFibGU6IHRydWVcclxuICB9KTtcclxuICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5sb2dEZXRhaWxzID0gbG9nLmxvZ0RldGFpbHM7XHJcbiAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuY2hlY2tMaXN0TmFtZSA9IGxvZy5jaGVja0xpc3ROYW1lO1xyXG4gIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlTmFtZSA9IGxvZy5zdG9yZU5hbWU7XHJcbiAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuYWN0aW9uVHlwZSA9IGxvZy5hY3Rpb247XHJcbiAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucmVjZWl2ZWREYXRhID0gdGhpcy5yZWNlaXZlZERhdGE7XHJcbiAgbW9kYWxSZWYucmVzdWx0XHJcbiAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxuICAgIH0pXHJcbn1cclxuXHJcbmlzTG9nRGV0YWlsc0VtcHR5KGxvZ0RldGFpbHM6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAhbG9nRGV0YWlscyB8fCBPYmplY3Qua2V5cyhsb2dEZXRhaWxzKS5ldmVyeShrZXkgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBsb2dEZXRhaWxzW2tleV07XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZS5sZW5ndGggPT09IDA7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JykgcmV0dXJuIHRoaXMuaXNMb2dEZXRhaWxzRW1wdHkodmFsdWUpO1xyXG4gICAgcmV0dXJuICF2YWx1ZTtcclxuICB9KTtcclxufVxyXG5cclxuXHJcbiAgZm9ybWF0RGF0ZVRpbWUoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghZGF0ZVN0cmluZykgcmV0dXJuICctLSc7XHJcbiAgXHJcbiAgICBjb25zdCBkYXRlID0gZGF5anMudXRjKGRhdGVTdHJpbmcpLmxvY2FsKCk7XHJcbiAgICBjb25zdCBub3cgPSBkYXlqcygpO1xyXG4gICAgXHJcbiAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9ICcnO1xyXG4gICAgXHJcbiAgICBpZiAoZGF0ZS5pc1NhbWUobm93LCAnZGF5JykpIHtcclxuICAgICAgZm9ybWF0dGVkRGF0ZSA9ICdUb2RheSc7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGUuaXNTYW1lKG5vdy5zdWJ0cmFjdCgxLCAnZGF5JyksICdkYXknKSkge1xyXG4gICAgICBmb3JtYXR0ZWREYXRlID0gJ1llc3RlcmRheSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3JtYXR0ZWREYXRlID0gZGF0ZS5mb3JtYXQoJ01NTSBELCBZWVlZJyk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICByZXR1cm4gYCR7Zm9ybWF0dGVkRGF0ZX0gPGJyPiAke2RhdGUuZm9ybWF0KCdoaCA6IG1tIEEnKX1gO1xyXG4gIH1cclxuICBnZXRBY3Rpb25CYWRnZUNsYXNzKGFjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjdGlvbkNsYXNzZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgIGNyZWF0ZWQ6ICdiYWRnZS1saWdodC1kZWZhdWx0JyxcclxuICAgICAgdXBkYXRlZDogJ2JhZGdlLWxpZ2h0LXByaW1hcnkxJyxcclxuICAgICAgZHJhZnQ6ICdiYWRnZS1saWdodC1kZWZhdWx0JyxcclxuICAgICAgcHVibGlzaGVkOiAnYmFkZ2UtbGlnaHQtcHJpbWFyeTEnLFxyXG4gICAgICBzdWJtaXQ6ICdiYWRnZS1saWdodC1wcmltYXJ5MScsXHJcbiAgICAgIHN0YXJ0OiAnYmFkZ2UtbGlnaHQtcHJpbWFyeTEnLFxyXG4gICAgICBhcHByb3ZlZDogJ2JhZGdlLWxpZ2h0LXN1Y2Nlc3MnLFxyXG4gICAgICByZWRvOiAnYmFkZ2UtbGlnaHQtd2FybmluZycsXHJcbiAgICAgIG11bHRpcmVkbzogJ2JhZGdlLWxpZ2h0LXdhcm5pbmcnLFxyXG4gICAgICB0YXNrX2NyZWF0ZWQ6ICdiYWRnZS1saWdodC1kZWZhdWx0JyxcclxuICAgICAgLy8gcmVvcGVuZWQ6ICdiYWRnZS1saWdodC1kZWZhdWx0JyxcclxuICAgICAgZWRpdGVkOiAnYmFkZ2UtbGlnaHQtd2FybmluZycsXHJcbiAgICAgIHVucHVibGlzaGVkOiAnYmFkZ2UtbGlnaHQtcHJpbWFyeTEnLFxyXG4gICAgICBkZWxldGVkOiAnYmFkZ2UtbGlnaHQtZGVsZXRlJyxcclxuICAgICAgZHVwbGljYXRlZDogJ2JhZGdlLWxpZ2h0LWRlZmF1bHQnLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWN0aW9uQ2xhc3Nlc1thY3Rpb25dIHx8ICdiYWRnZS1saWdodC1kZWZhdWx0JztcclxuICB9XHJcblxyXG4gIGdldEFjdGlvbkxhYmVsKGFjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjdGlvbkxhYmVsczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgY3JlYXRlZDogJ0NyZWF0ZWQgYnknLFxyXG4gICAgICB1cGRhdGVkOiAnVXBkYXRlZCBieScsXHJcbiAgICAgIGRyYWZ0OiAnU2F2ZWQgYXMgRHJhZnQnLFxyXG4gICAgICBwdWJsaXNoZWQ6ICdQdWJsaXNoZWQgYnknLFxyXG4gICAgICBzdWJtaXQ6ICdTdWJtaXR0ZWQgYnknLFxyXG4gICAgICBzdGFydDogJ1N0YXJ0ZWQgYnknLFxyXG4gICAgICBhcHByb3ZlZDogJ0FwcHJvdmVkIGJ5JyxcclxuICAgICAgcmVkbzogJ1JlZG8gQ3JlYXRlZCBieScsXHJcbiAgICAgIG11bHRpcmVkbzogJ1N1YnNlcXVlbnQgUmVkbyBDcmVhdGVkIGJ5JyxcclxuICAgICAgdGFza19jcmVhdGVkOiAnVGFzayBDcmVhdGVkIGJ5JyxcclxuICAgICAgLy8gcmVvcGVuZWQ6ICdSZS1vcGVuZWQgYnknLFxyXG4gICAgICBlZGl0ZWQ6ICdFZGl0ZWQgYnknLFxyXG4gICAgICB1bnB1Ymxpc2hlZDogJ1VucHVibGlzaGVkIGJ5JyxcclxuICAgICAgZGVsZXRlZDogJ0RlbGV0ZWQgYnknLFxyXG4gICAgICBkdXBsaWNhdGVkOiAnRHVwbGljYXRlZCBieScsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhY3Rpb25MYWJlbHNbYWN0aW9uXSB8fCBhY3Rpb247XHJcbiAgfVxyXG5cclxuICAgbmF2aWdhdGVUb0dhbGxlcnkobG9nOiBhbnkpOiB2b2lkIHtcclxuICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPSBkYXlqcyhsb2cuY3JlYXRlQXQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICBsZXQgY2hlY2tsaXN0VHlwZTogc3RyaW5nO1xyXG4gICAgICBpZiAobG9nLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgY2hlY2tsaXN0VHlwZSA9ICdjdXN0b20nO1xyXG4gICAgICB9IGVsc2UgaWYgKFsndGFzaycsICdjaGVja2xpc3RUYXNrJywgJ2NjdHYnXS5pbmNsdWRlcyhsb2cudHlwZSkpIHtcclxuICAgICAgICBjaGVja2xpc3RUeXBlID0gJ3Rhc2snO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNoZWNrbGlzdFR5cGUgPSBsb2cudHlwZSB8fCAnLS0nO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBsZXQgcXVlcnlQYXJhbXM6YW55PSB7fVxyXG4gICAgICBpZihsb2cuc3RvcmVfaWQmJmxvZy5zdG9yZV9pZCE9Jycpe1xyXG4gICAgICAgICBxdWVyeVBhcmFtcyA9IHtcclxuICAgICAgICAgIENoZWNrbGlzdERhdGU6IGZvcm1hdHRlZERhdGUsXHJcbiAgICAgICAgICBzdG9yZUlkOiBsb2cuc3RvcmVfaWQsXHJcbiAgICAgICAgICBjaGVja2xpc3RUeXBlOiBjaGVja2xpc3RUeXBlLFxyXG4gICAgICAgICAgc291cmNlQ2hlY2tMaXN0X2lkOiBsb2cuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgICBxdWVyeVBhcmFtcyA9IHtcclxuICAgICAgICAgIENoZWNrbGlzdERhdGU6IGZvcm1hdHRlZERhdGUsXHJcbiAgICAgICAgICB1c2VyRW1haWw6IGxvZy51c2VyRW1haWwsXHJcbiAgICAgICAgICBjaGVja2xpc3RUeXBlOiBjaGVja2xpc3RUeXBlLFxyXG4gICAgICAgICAgc291cmNlQ2hlY2tMaXN0X2lkOiBsb2cuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGxvZy5yZWRvU3RhdHVzKSB7XHJcbiAgICAgICAgcXVlcnlQYXJhbXMucmVkb1N0YXR1cyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLCB7IHF1ZXJ5UGFyYW1zIH0pO1xyXG4gICAgfSBcclxuXHJcbiAgICBkYXRlY2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgaWYgKGV2ZW50ICYmIGV2ZW50LnN0YXJ0RGF0ZSAmJiBldmVudC5lbmREYXRlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHsgXHJcbiAgICAgICAgICBzdGFydERhdGU6IGV2ZW50LnN0YXJ0RGF0ZSwgXHJcbiAgICAgICAgICBlbmREYXRlOiBldmVudC5lbmREYXRlIFxyXG4gICAgICAgIH07XHJcbiAgICBcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0geyBcclxuICAgICAgICAgIHN0YXJ0RGF0ZTogZXZlbnQuc3RhcnREYXRlLFxyXG4gICAgICAgICAgZW5kRGF0ZTogZXZlbnQuZW5kRGF0ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG4gICAgICAgIC8vIHRoaXMucmVzZXRWYWxpZGF0aW9uKCk7XHJcbiAgICAgICAgLy8gdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgIFxyXG4gICAgICAgIC8vIFJlc2V0IHRoZSBwaWNrZXIgdG8gZm9yY2UgcmUtcmVuZGVyXHJcbiAgICAgICAgdGhpcy5pc0FjdGl2aXR5TG9nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLmlzQWN0aXZpdHlMb2cgPSB0cnVlO1xyXG4gICAgICAgIC8vICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgLy8gfSwgMTApO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIENhbGwgQVBJXHJcbiAgICAgICAgdGhpcy5nZXRBY3Rpdml0eUxvZ1RhYmxlRGF0YSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG5cclxuICAgICAgcmVzZXRWYWxpZGF0aW9uKCkge1xyXG4gICAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBiZWZvcmUgeWVzdGVyZGF5XHJcbiAgICAgICAgICByZXR1cm4gbS5pc0FmdGVyKHRoaXMuZGF5anMoKSwgJ2RheScpID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtdC00XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTNcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBtYi0yXCI+QWN0aXZpdHkgTG9nIDwvc3Bhbj5cclxuICAgICAgICA8L2gzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIGZvb3RmYWxsc2VhcmNoIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgIG1zLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuNVwiIHg9XCIxNy4wMzY1XCIgeT1cIjE1LjEyMjNcIiB3aWR0aD1cIjguMTU1NDZcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUoNDUgMTcuMDM2NSAxNS4xMjIzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxOUM2LjU1NTU2IDE5IDMgMTUuNDQ0NCAzIDExQzMgNi41NTU1NiA2LjU1NTU2IDMgMTEgM0MxNS40NDQ0IDMgMTkgNi41NTU1NiAxOSAxMUMxOSAxNS40NDQ0IDE1LjQ0NDQgMTkgMTEgMTlaTTExIDVDNy41MzMzMyA1IDUgNy41MzMzMyA1IDExQzUgMTQuNDY2NyA3LjUzMzMzIDE3IDExIDE3QzE0LjQ2NjcgMTcgMTcgMTQuNDY2NyAxNyAxMUMxNyA3LjUzMzMzIDE0LjQ2NjcgNSAxMSA1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cInJlY2VpdmVkRGF0YSA9PT0gJ2NoZWNrbGlzdCdcIiBbKG5nTW9kZWwpXT1cInNlYXJjaElucHV0XCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBwcy0xNCBteC0yIGxvZ3NlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHdpdGggU3RvcmUsIEVtYWlsLCBDaGVja2xpc3RcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAoa2V5dXAuZW50ZXIpPVwic2VhcmNoRmllbGQoKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwicmVjZWl2ZWREYXRhID09PSAndGFzaydcIiBbKG5nTW9kZWwpXT1cInNlYXJjaElucHV0XCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBwcy0xNCBteC0yIGxvZ3NlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHdpdGggU3RvcmUsIEVtYWlsLCBUYXNrXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGtleXVwLmVudGVyKT1cInNlYXJjaEZpZWxkKClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gZGF0ZXBpY2tlciBzdGFydCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1kYXRlLXJhbmdlLXBpY2tlciAoZGF0ZUNoYW5nZSk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBbdmFsdWVdPVwiY291bnRcIj48L2xpYi1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGRhdGVwaWNrZXIgZW5kIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLWZpbHRlcnMgIFtkYXRhT2JqZWN0XT1cImRhdGFPYmplY3RcIiAoYXBwbGllZEZpbHRlcnMpPVwiYXBwbHlGaWx0ZXJzKCRldmVudClcIj48L2xpYi1maWx0ZXJzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG92ZXJmbG93LWF1dG8gbWItMiBteC00XCI+XHJcbiAgICAgICAgPHVsXHJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMtMnggIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJTZWxlY3R0YWJzKCdjaGVja2xpc3QnKVwiIFtyb3V0ZXJMaW5rXT1cIlsnL21hbmFnZS90cmF4L2FjdGlvbmNlbnRlciddXCIgW3F1ZXJ5UGFyYW1zXT1cInsgdHlwZTogJ2NoZWNrbGlzdCcgfVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwicmVjZWl2ZWREYXRhID09PSAnY2hlY2tsaXN0Jz8nYnRuIGFjdGl2ZWJ0bic6JydcIiBjbGFzcz1cImZ3LXNlbWlib2xkIG5hdi1saW5rIG1lLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICBDaGVja2xpc3RcclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiU2VsZWN0dGFicygndGFzaycpXCIgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3RyYXgvYWN0aW9uY2VudGVyJ11cIiBbcXVlcnlQYXJhbXNdPVwieyB0eXBlOiAndGFzaycgfVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwicmVjZWl2ZWREYXRhID09PSAndGFzaycgfHwgcmVjZWl2ZWREYXRhID09PSAnR3JvdXAgRGV0YWlscyBWYWx1ZSc/ICdidG4gYWN0aXZlYnRuJzonJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBtZS02XCI+VGFza1xyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgICAgPCEtLSA8bGliLXZpZXctYWN0aW9uIFtyZWNlaXZlZERhdGFdPVwicmVjZWl2ZWREYXRhXCI+PC9saWItdmlldy1hY3Rpb24+IC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICAgIDx0YWJsZSAqbmdJZj1cIiF0YXNrTG9hZGluZyAmJiAhdGFza05vRGF0YVwiIGNsYXNzPVwidGFibGUgdGV4dC1ub3dyYXAgYm90dG9tLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ2RhdGV0aW1lJylcIj5EYXRlICYgVGltZTxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRDb2x1bU5hbWUgPT09ICdkYXRldGltZScgJiYgc29ydERpcmVjdGlvbiA9PT0gMSA/ICdyb3RhdGUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInNvcnRDb2x1bU5hbWUgPT09ICdkYXRldGltZScgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJyZWNlaXZlZERhdGEgPT09ICdjaGVja2xpc3QnXCI+Q2hlY2tsaXN0IE5hbWU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJyZWNlaXZlZERhdGEgPT09ICd0YXNrJ1wiPlRhc2sgTmFtZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5BY3Rpb24gUGVyZm9ybWVkPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlBlcmZvcm1lZCBieTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TdG9yZSBOYW1lPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkFjdGlvbnM8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgbG9nIG9mIGFjdGl2aXR5TG9nVGFibGVEYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFibGUtdGl0bGVcIiBbaW5uZXJIVE1MXT1cImZvcm1hdERhdGVUaW1lKGxvZy5fc291cmNlLmNyZWF0ZUF0KVwiPjwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhKGxvZy5fc291cmNlLnR5cGUgPT09ICd0YXNrJyAmJiBsb2cuX3NvdXJjZS5mcm9tQ2hlY2tMaXN0TmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYmxlLXRpdGxlIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9nLl9zb3VyY2UuY2hlY2tMaXN0TmFtZSB8fCAnLS0nIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9nLl9zb3VyY2UudHlwZSA9PT0gJ3Rhc2snICYmIGxvZy5fc291cmNlLmZyb21DaGVja0xpc3ROYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWJsZS10aXRsZSBtZS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxvZy5fc291cmNlLmNoZWNrTGlzdE5hbWUgfHwgJy0tJyB9fSA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMS42NjU0IDcuNTAwMTZMNy40OTg3IDMuMzMzNU03LjQ5ODcgMy4zMzM1TDMuMzMyMDMgNy41MDAxNk03LjQ5ODcgMy4zMzM1VjEzLjMzMzVDNy40OTg3IDE0LjIxNzYgNy44NDk4OSAxNS4wNjU0IDguNDc1MDEgMTUuNjkwNUM5LjEwMDEzIDE2LjMxNTYgOS45NDc5OCAxNi42NjY4IDEwLjgzMiAxNi42NjY4SDE2LjY2NTRcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjNcIiB2aWV3Qm94PVwiMCAwIDIzIDIzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNDE0NDggNC41MjMwM0M4LjY5NTE4IDQuODAzNzEgOC42OTUxOCA1LjI1ODggOC40MTQ0OCA1LjUzOTQ4TDUuNTM5NDggOC40MTQ0OEM1LjI1ODggOC42OTUxOCA0LjgwMzcxIDguNjk1MTggNC41MjMwMyA4LjQxNDQ4TDMuMDg1NTMgNi45NzY5OEMyLjgwNDgyIDYuNjk2MyAyLjgwNDgyIDYuMjQxMjEgMy4wODU1MyA1Ljk2MDUzQzMuMzY2MjEgNS42Nzk4MiAzLjgyMTMgNS42Nzk4MiA0LjEwMTk4IDUuOTYwNTNMNS4wMzEyNSA2Ljg4OTc4TDcuMzk4MDMgNC41MjMwM0M3LjY3ODcxIDQuMjQyMzIgOC4xMzM4IDQuMjQyMzIgOC40MTQ0OCA0LjUyMzAzWlwiIGZpbGw9XCIjNjY3MDg1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC40MTQ0OCAxMS43MTA1QzguNjk1MTggMTEuOTkxMiA4LjY5NTE4IDEyLjQ0NjMgOC40MTQ0OCAxMi43MjdMNS41Mzk0OCAxNS42MDJDNS4yNTg4IDE1Ljg4MjYgNC44MDM3MSAxNS44ODI2IDQuNTIzMDMgMTUuNjAyTDMuMDg1NTMgMTQuMTY0NUMyLjgwNDgyIDEzLjg4MzggMi44MDQ4MiAxMy40Mjg3IDMuMDg1NTMgMTMuMTQ3OUMzLjM2NjIxIDEyLjg2NzMgMy44MjEzIDEyLjg2NzMgNC4xMDE5OCAxMy4xNDc5TDUuMDMxMjUgMTQuMDc3M0w3LjM5ODAzIDExLjcxMDVDNy42Nzg3MSAxMS40Mjk5IDguMTMzOCAxMS40Mjk5IDguNDE0NDggMTEuNzEwNVpcIiBmaWxsPVwiIzY2NzA4NVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjA2MjUgNi40Njg3NUMxMC4wNjI1IDYuMDcxOCAxMC4zODQ0IDUuNzUgMTAuNzgxMiA1Ljc1SDE1LjA5MzhDMTUuNDkwNiA1Ljc1IDE1LjgxMjUgNi4wNzE4IDE1LjgxMjUgNi40Njg3NUMxNS44MTI1IDYuODY1NyAxNS40OTA2IDcuMTg3NSAxNS4wOTM4IDcuMTg3NUgxMC43ODEyQzEwLjM4NDQgNy4xODc1IDEwLjA2MjUgNi44NjU3IDEwLjA2MjUgNi40Njg3NVpcIiBmaWxsPVwiIzY2NzA4NVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuNTkzNzUgMEMxLjYwODk4IDAgMCAxLjYwODk4IDAgMy41OTM3NVYxNi41MzEyQzAgMTguNTE2IDEuNjA4OTggMjAuMTI1IDMuNTkzNzUgMjAuMTI1SDkuNDg3MDhDOS4yNTQyOSAxOS42Njk2IDkuMDY0MzYgMTkuMTg4NiA4LjkyMjYxIDE4LjY4NzVIMy41OTM3NUMyLjQwMjg4IDE4LjY4NzUgMS40Mzc1IDE3LjcyMjEgMS40Mzc1IDE2LjUzMTJWMy41OTM3NUMxLjQzNzUgMi40MDI4OCAyLjQwMjg4IDEuNDM3NSAzLjU5Mzc1IDEuNDM3NUgxNi41MzEyQzE3LjcyMjEgMS40Mzc1IDE4LjY4NzUgMi40MDI4OCAxOC42ODc1IDMuNTkzNzVWOC45MjI2MUMxOS4xODg2IDkuMDY0MzYgMTkuNjY5NiA5LjI1NDI5IDIwLjEyNSA5LjQ4NzA4VjMuNTkzNzVDMjAuMTI1IDEuNjA4OTggMTguNTE2IDAgMTYuNTMxMiAwSDMuNTkzNzVaXCIgZmlsbD1cIiM2NjcwODVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNi41MzEzIDIzQzIwLjEwMzkgMjMgMjMgMjAuMTAzOSAyMyAxNi41MzEzQzIzIDEyLjk1ODYgMjAuMTAzOSAxMC4wNjI1IDE2LjUzMTMgMTAuMDYyNUMxMi45NTg2IDEwLjA2MjUgMTAuMDYyNSAxMi45NTg2IDEwLjA2MjUgMTYuNTMxM0MxMC4wNjI1IDIwLjEwMzkgMTIuOTU4NiAyMyAxNi41MzEzIDIzWk0xNi41MzEzIDEyLjkzNzVDMTYuOTI4MSAxMi45Mzc1IDE3LjI1IDEzLjI1OTQgMTcuMjUgMTMuNjU2M1YxNS44MTI1SDE5LjQwNjNDMTkuODAzMSAxNS44MTI1IDIwLjEyNSAxNi4xMzQ0IDIwLjEyNSAxNi41MzEzQzIwLjEyNSAxNi45MjgxIDE5LjgwMzEgMTcuMjUgMTkuNDA2MyAxNy4yNUgxNy4yNVYxOS40MDYzQzE3LjI1IDE5LjgwMzEgMTYuOTI4MSAyMC4xMjUgMTYuNTMxMyAyMC4xMjVDMTYuMTM0NCAyMC4xMjUgMTUuODEyNSAxOS44MDMxIDE1LjgxMjUgMTkuNDA2M1YxNy4yNUgxMy42NTYzQzEzLjI1OTQgMTcuMjUgMTIuOTM3NSAxNi45MjgxIDEyLjkzNzUgMTYuNTMxM0MxMi45Mzc1IDE2LjEzNDQgMTMuMjU5NCAxNS44MTI1IDEzLjY1NjMgMTUuODEyNUgxNS44MTI1VjEzLjY1NjNDMTUuODEyNSAxMy4yNTk0IDE2LjEzNDQgMTIuOTM3NSAxNi41MzEzIDEyLjkzNzVaXCIgZmlsbD1cIiM2NjcwODVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwidGFibGUtdGl0bGVcIj4ge3sgbG9nLl9zb3VyY2UuZnJvbUNoZWNrTGlzdE5hbWUgfHwgJy0tJyB9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFibGUtdGl0bGUgYmFkZ2UtbGlnaHRcIiBbbmdDbGFzc109XCJnZXRBY3Rpb25CYWRnZUNsYXNzKGxvZy5fc291cmNlLmFjdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0QWN0aW9uTGFiZWwobG9nLl9zb3VyY2UuYWN0aW9uKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLXRpdGxlIGQtZmxleFwiPjxzcGFuIGNsYXNzPVwibWUtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE2LjY2NTQgMTcuNVYxNS44MzMzQzE2LjY2NTQgMTQuOTQ5MyAxNi4zMTQyIDE0LjEwMTQgMTUuNjg5MSAxMy40NzYzQzE1LjA2MzkgMTIuODUxMiAxNC4yMTYxIDEyLjUgMTMuMzMyIDEyLjVINi42NjUzNkM1Ljc4MTMxIDEyLjUgNC45MzM0NiAxMi44NTEyIDQuMzA4MzQgMTMuNDc2M0MzLjY4MzIyIDE0LjEwMTQgMy4zMzIwMyAxNC45NDkzIDMuMzMyMDMgMTUuODMzM1YxNy41TTEzLjMzMiA1LjgzMzMzQzEzLjMzMiA3LjY3NDI4IDExLjgzOTYgOS4xNjY2NyA5Ljk5ODcgOS4xNjY2N0M4LjE1Nzc1IDkuMTY2NjcgNi42NjUzNiA3LjY3NDI4IDYuNjY1MzYgNS44MzMzM0M2LjY2NTM2IDMuOTkyMzggOC4xNTc3NSAyLjUgOS45OTg3IDIuNUMxMS44Mzk2IDIuNSAxMy4zMzIgMy45OTIzOCAxMy4zMzIgNS44MzMzM1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuPnt7IGxvZy5fc291cmNlLmNyZWF0ZWRCeUVtYWlsIH19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLXRpdGxlIGQtZmxleFwiPjxzcGFuICpuZ0lmPVwibG9nLl9zb3VyY2U/LnN0b3JlTmFtZVwiIGNsYXNzPVwibWUtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuNjc4OTMgNS44MDM2NkwyLjYyNTY4IDUuODg2ODNDMi4wNjc2NCA2Ljg3Mzg4IDIuNjYzNDcgOC4xMjEzIDMuNzM1MDggOC4yNjQ0QzMuODMyMTcgOC4yNzYyNyAzLjkyMjUxIDguMjgyNTUgNC4wMTA3OCA4LjI4MjU1QzQuNTg4OTMgOC4yODI1NSA1LjEwMDEgOC4wMzQ1MyA1LjQ1NjM3IDcuNjQ3OEw2LjAwOTcgNy4wNDcxOEw2LjU2MTE2IDcuNjQ5NTNDNi45MTMxIDguMDMzOTUgNy40MjMxMSA4LjI4MjU1IDguMDA1MTcgOC4yODI1NUM4LjU4NDYxIDguMjgyNTUgOS4wOTc1NSA4LjAzMzYgOS40NDkxNyA3LjY0OTUzTDEwLjAwMjQgNy4wNDUyOUwxMC41NTU1IDcuNjQ5NTNDMTAuOTA3MiA4LjAzMzYgMTEuNDIwMSA4LjI4MjU1IDExLjk5OTYgOC4yODI1NUMxMi41NzkgOC4yODI1NSAxMy4wOTE5IDguMDMzNiAxMy40NDM2IDcuNjQ5NTNMMTMuOTk2NyA3LjA0NTI5TDE0LjU0OTkgNy42NDk1M0MxNC45MDE2IDguMDMzNiAxNS40MTQ1IDguMjgyNTUgMTUuOTkzOSA4LjI4MjU1QzE2LjA3OTMgOC4yODI1NSAxNi4xNzI0IDguMjc2MjUgMTYuMjY4OCA4LjI2NDVDMTcuMzYzOSA4LjExNTE4IDE3Ljk2MTggNi44MDA5MSAxNy4zMjMgNS44MDQxNkMxNy4zMjMgNS44MDQxIDE3LjMyMyA1LjgwNDA1IDE3LjMyMjkgNS44MDM5OUwxNS41NjQ4IDMuMDYyNThMMTUuNTY0OCAzLjA2MjU4TDE1LjU2MzggMy4wNjExMUMxNS41NDg2IDMuMDM3MjggMTUuNTExMiAzLjAxMTcyIDE1LjQ2NCAzLjAxMTcySDQuNTM0NThDNC40ODc0NCAzLjAxMTcyIDQuNDQ5OTUgMy4wMzcyOCA0LjQzNDc0IDMuMDYxMTFMNC40MzQxMyAzLjA2MjA4TDIuNjc4OTMgNS44MDM2NlpNMTUuNjUwNCAxMC43MzY5VjEzLjg2ODlWMTQuNjE4OUgxNC45MDA0SDUuMDk4MjFINC4zNDgyMVYxMy44Njg5VjEwLjczNzRDNC4yMzc5OCAxMC43NDU2IDQuMTI2NDYgMTAuNzQ5OCA0LjAxMzg0IDEwLjc0OThDMy45NzE1NCAxMC43NDk4IDMuOTI5NTIgMTAuNzQ5MiAzLjg4Nzc4IDEwLjc0OFYxMy44Njg5VjE1LjgwMzRDMy44ODc3OCAxNi40NDY4IDQuNDIxNjggMTYuOTg3OSA1LjA5ODIxIDE2Ljk4NzlIMTQuOTAwNEMxNS41NzY5IDE2Ljk4NzkgMTYuMTEwOCAxNi40NDY4IDE2LjExMDggMTUuODAzNFYxMy44Njg5VjEwLjc0ODJDMTYuMDcxIDEwLjc0OTMgMTYuMDMxIDEwLjc0OTggMTUuOTkwOSAxMC43NDk4QzE1Ljg3NjUgMTAuNzQ5OCAxNS43NjI5IDEwLjc0NTUgMTUuNjUwNCAxMC43MzY5WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3Bhbj57eyBsb2cuX3NvdXJjZS5zdG9yZU5hbWUgfHwgJy0nIH19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFwiWyd1cGRhdGVkJywgJ2VkaXRlZCcsICdkcmFmdCddLmluY2x1ZGVzKGxvZy5fc291cmNlLmFjdGlvbilcIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAgKm5nSWY9XCJbJ3VwZGF0ZWQnLCAnZWRpdGVkJ10uaW5jbHVkZXMobG9nLl9zb3VyY2UuYWN0aW9uKSB8fCAobG9nLl9zb3VyY2UuYWN0aW9uID09PSAnZHJhZnQnICYmIGxvZy5fc291cmNlLmxvZ0RldGFpbHMgJiYgIWlzTG9nRGV0YWlsc0VtcHR5KGxvZy5fc291cmNlLmxvZ0RldGFpbHMpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInZpZXdBY3Rpb24obG9nLl9zb3VyY2UpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHU+VmlldzwvdT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsb2cuX3NvdXJjZS5hY3Rpb24gPT09ICdzdWJtaXQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0dhbGxlcnkobG9nLl9zb3VyY2UpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHU+VmlldzwvdT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAqbmdJZj1cIiFbJ3VwZGF0ZWQnLCAnZWRpdGVkJywgJ3N1Ym1pdCcsICdkcmFmdCddLmluY2x1ZGVzKGxvZy5fc291cmNlLmFjdGlvbilcIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFbJ3VwZGF0ZWQnLCAnZWRpdGVkJywgJ3N1Ym1pdCddLmluY2x1ZGVzKGxvZy5fc291cmNlLmFjdGlvbikgJiYgIShsb2cuX3NvdXJjZS5hY3Rpb24gPT09ICdkcmFmdCcgJiYgbG9nLl9zb3VyY2UubG9nRGV0YWlscyAmJiAhaXNMb2dEZXRhaWxzRW1wdHkobG9nLl9zb3VyY2UubG9nRGV0YWlscykpXCI+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YXNrTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhc2tOb0RhdGEgJiYgIXRhc2tMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBteS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhbWFpbnRleHQgbXQtM1wiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGFzdWJ0ZXh0XCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciBBY3Rpdml0eSBMb2c8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhdGFza0xvYWRpbmcgJiYgIXRhc2tOb0RhdGFcIj5cclxuICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIGNsYXNzPVwidGV4dC1zdGFydFwiIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcclxuICAgICAgICAgICAgICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIiBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPC9kaXY+Il19
|
|
482
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWN0aXZpdHktbG9nLXYyL2FjdGl2aXR5LWxvZy12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZy12Mi9hY3Rpdml0eS1sb2ctdjIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBS2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFnQyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBSW5DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sWUFBWSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7O0FBSnJELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFNbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMzQixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBVWxCLE1BQU0sT0FBTyxzQkFBc0I7SUFzRmI7SUFBK0I7SUFBc0I7SUFBK0I7SUFBMEM7SUFDeEk7SUFBa0M7SUFBa0M7SUFBdUM7SUF0RnJILEtBQUssR0FBRyxLQUFLLENBQUE7SUFDTCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNqQyxRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFlBQVksR0FBRyxFQUFFLENBQUE7SUFD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eUNBQXlDO1lBQ3pDLFVBQVU7WUFFVixXQUFXO1lBQ1gsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDaEM7YUFBTTtTQUNOO0lBQ0gsQ0FBQztJQUlDLGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBYyxFQUFFLEVBQUU7WUFDckMsOENBQThDO1lBQzlDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2pFLENBQUMsQ0FBQztJQUNKLENBQUM7d0dBaGRNLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDJEQ3pCbkMsK3BmQXNMTTs7NEZEN0pPLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVmlld0FjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbG9nLXZpZXctcG9wdXAvdmlldy1hY3Rpb24vdmlldy1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHJlbGF0aXZlVGltZSBmcm9tICdkYXlqcy9wbHVnaW4vcmVsYXRpdmVUaW1lJztcclxuXHJcbmRheWpzLmV4dGVuZChyZWxhdGl2ZVRpbWUpO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWN0aXZpdHktbG9nLXYyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktbG9nLXYyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWN0aXZpdHktbG9nLXYyLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9nVjJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcbiAgZGF5anMgPSBkYXlqc1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGlzRXhwb3J0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXRlbXNQZXJQYWdlID0gMTBcclxuICBjdXJyZW50UGFnZSA9IDFcclxuICB0b3RhbEl0ZW1zID0gMFxyXG4gIHBhZ2luYXRpb25TaXplczphbnlbXSA9IFtdO1xyXG4gIHBhZ2VTaXplID0gMTBcclxuICBzb3J0Q29sdW1OYW1lOiBzdHJpbmcgPSAnJztcclxuICBzb3J0Qnk6IGFueSA9ICcnO1xyXG4gIHNvcnREaXJlY3Rpb246IGFueSA9ICcnO1xyXG4gIHNlYXJjaElucHV0OiBhbnkgPVwiXCI7XHJcbiAgaGVhZGVyRGF0YTogYW55O1xyXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmc7XHJcbiAgbGltaXQ6IG51bWJlcjtcclxuICBvZmZzZXQ6IG51bWJlcjtcclxuICBzZWFyY2hEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRhc2tMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICB0YXNrTm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVjZWl2ZWREYXRhOiBzdHJpbmcgPSBcImNoZWNrbGlzdFwiO1xyXG4gIGRhdGFPYmplY3Q6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgRGVzY3JpcHRpb246ICdBY3Rpb25zJyxcclxuICAgICAgSXNzdWVzOiBbXHJcbiAgICAgICAgeyB0ZXh0OiAnQ3JlYXRlZCBieScsIGlkOiAnY3JlYXRlZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdVcGRhdGVkIGJ5JywgaWQ6ICd1cGRhdGVkJyB9LFxyXG4gICAgICAgIHsgdGV4dDogJ1NhdmVkIGFzIERyYWZ0JywgaWQ6ICdkcmFmdCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdQdWJsaXNoZWQgYnknLCBpZDogJ3B1Ymxpc2hlZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdTdWJtaXR0ZWQgYnknLCBpZDogJ3N1Ym1pdCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdTdGFydGVkIGJ5JywgaWQ6ICdzdGFydCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdBcHByb3ZlZCBieScsIGlkOiAnYXBwcm92ZWQnIH0sXHJcbiAgICAgICAgeyB0ZXh0OiAnUmVkbyBDcmVhdGVkIGJ5JywgaWQ6ICdyZWRvJyB9LFxyXG4gICAgICAgIHsgdGV4dDogJ1N1YnNlcXVlbnQgUmVkbyBDcmVhdGVkIGJ5JywgaWQ6ICdtdWx0aXJlZG8nIH0sXHJcbiAgICAgICAgeyB0ZXh0OiAnVGFzayBDcmVhdGVkIGJ5JywgaWQ6ICd0YXNrX2NyZWF0ZWQnIH0sXHJcbiAgICAgICAgLy8geyB0ZXh0OiAnUmUtT3BlbmVkIGJ5JywgaWQ6ICdyZW9wZW5lZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdFZGl0ZWQgYnknLCBpZDogJ2VkaXRlZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdVbnB1Ymxpc2hlZCBieScsIGlkOiAndW5wdWJsaXNoZWQnIH0sXHJcbiAgICAgICAgeyB0ZXh0OiAnRGVsZXRlZCBieScsIGlkOiAnZGVsZXRlZCcgfSxcclxuICAgICAgICB7IHRleHQ6ICdEdXBsaWNhdGVkIGJ5JywgaWQ6ICdkdXBsaWNhdGVkJyB9LFxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICAgIC8vIHtcclxuICAgIC8vICAgRGVzY3JpcHRpb246ICdDb3ZlcmFnZScsXHJcbiAgICAvLyAgIElzc3VlczogW1xyXG4gICAgLy8gICAgIHsgdGV4dDogJ0NoZWNrbGlzdCcsIGlkOiAnY2hlY2tsaXN0JyB9LFxyXG4gICAgICAgXHJcbiAgICAvLyAgIF0sXHJcbiAgICAvLyB9LFxyXG4gIF07XHJcbiAgYWN0aXZpdHlMb2dUYWJsZURhdGE6IGFueVtdID0gW107XHJcbiAgdHlwZTogc3RyaW5nID0gJ2NoZWNrbGlzdCc7IFxyXG4gIGFjdGl2aXR5TG9nRmlsdGVyOiBhbnkgPSBbXTtcclxuICAvLyByZWxvYWREYXRlOiBzdHJpbmc7XHJcbiAgc291cmNlQ2hlY2tMaXN0X2lkOiBhbnk7XHJcbiAgY2hlY2tsaXN0SWQ6IGFueTtcclxuICAvLyBjb3ZlcmFnZVR5cGU6IGFueSA9IFtdO1xyXG4gIHVzZXJFbWFpbGVzOiBhbnkgPSBbXTtcclxuICBjaGVja2xpc3ROYW1lOiBhbnk7XHJcbiAgZWRpdFJlcXVlc3REYXRhOiBhbnk7XHJcbiAgaXNBY3Rpdml0eUxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gc2VsZWN0ZWREYXRlUmFuZ2U6IGFueSA9IHtcclxuICAgIHN0YXJ0RGF0ZTogZGF5anMoKS5zdWJ0cmFjdCg3LCAnZGF5cycpLFxyXG4gICAgZW5kRGF0ZTogZGF5anMoKS5zdWJ0cmFjdCgxLCBcImRheXNcIiksXHJcbiAgfTtcclxuICAgIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGlzVmFsaWREYXRlID0gbSA+IHRoaXMuZGF5anMoKTtcclxuICAgICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyBcImludmFsaWQtZGF0ZVwiIDogZmFsc2U7XHJcbiAgICAgIH07XHJcbiAgc2VsZWN0ZWRGaWx0ZXJzOiBhbnkgPSB7XHJcbiAgICBjbGllbnQ6IG51bGwsXHJcbiAgICBjbGllbnROYW1lOiBudWxsLFxyXG4gICAgY2xpZW50czogW10sXHJcbiAgICBzdG9yZTogbnVsbCxcclxuICAgIHN0b3JlczogW10sXHJcbiAgICAvLyBkYXRlOiBudWxsLFxyXG4gICAgZGF0ZToge1xyXG4gICAgICBzdGFydERhdGU6IGRheWpzKCkuc3VidHJhY3QoNywgXCJkYXlzXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgIGVuZERhdGU6IGRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICB9LFxyXG4gICAgZ3JvdXA6IFtdLFxyXG4gICAgbG9jYXRpb246IFtdLFxyXG4gIH07XHJcbmNvdW50Om51bWJlciA9IDA7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIscHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBUcmF4U2VydmljZTogVHJheFNlcnZpY2UsIHByaXZhdGUgcGFnZUluZm86IFBhZ2VJbmZvU2VydmljZSxwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgKSB7XHJcbiAgICB0aGlzLnVzZXJFbWFpbGVzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXJzRW1haWwtaW5mb1wiKSB8fCBcIltdXCIgKVxyXG4gICAgXHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IDEwO1xyXG4gICAgICAgIHRoaXMucGFnZVNpemUgPTEwO1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY291bnQrKztcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyB0aGlzLmFwcGx5RmlsdGVycyhbeyBEZXNjcmlwdGlvbjogJ0NvdmVyYWdlJywgSXNzdWVzOiBbeyB0ZXh0OiB0aGlzLmNvdmVyYWdlVHlwZVswXSwgaWQ6IHRoaXMuY292ZXJhZ2VUeXBlWzBdLCBjaGVja2VkOiB0cnVlfV0gfV0pO1xyXG4gICAgXHJcbiAgICAgIFxyXG59KVxyXG59XHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiRGFzaGJvYXJkXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH0sXHJcbiAgICBdKVxyXG4gIH1cclxuICBnZXRBY3Rpdml0eUxvZ1RhYmxlRGF0YSgpOiB2b2lkIHtcclxuICAgIFxyXG4gICAgdGhpcy5pc0FjdGl2aXR5TG9nID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpOyAvLyBGb3JjZSBVSSB1cGRhdGVcclxuICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy50YXNrTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRhc2tOb0RhdGEgPSB0cnVlO1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLnNlbGVjdGVkRmlsdGVycz8uZGF0ZT8uc3RhcnREYXRlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzPy5kYXRlPy5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlcy5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIGNsaWVudElkOnRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIGxpbWl0OiB0aGlzLml0ZW1zUGVyUGFnZSwgICAgICAgICAgICAgICAgIFxyXG4gICAgICBvZmZzZXQ6IHRoaXMuY3VycmVudFBhZ2UgLTEsXHJcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0RGlyZWN0aW9uLFxyXG4gICAgICBzb3J0Q29sdW1uTmFtZTogdGhpcy5zb3J0Q29sdW1OYW1lLFxyXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5zZWFyY2hJbnB1dCxcclxuICAgICAgYWN0aW9uOiB0aGlzLmFjdGl2aXR5TG9nRmlsdGVyLFxyXG4gICAgICB0eXBlOiB0aGlzLnJlY2VpdmVkRGF0YSxcclxuICAgICAgdXNlckVtYWlsZXM6dGhpcy51c2VyRW1haWxlc1xyXG4gICAgICAvLyBjaGVja0xpc3ROYW1lOnRoaXMuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgLy8gXCJjaGVja0xpc3ROYW1lXCI6IFwiZGFpbHkgc3RvcmUgY2hlY2tsaXN0MTExXCIsXHJcbiAgICAgIC8vIFwidHlwZVwiOiBcImNoZWNrbGlzdFwiLFxyXG4gICAgICAvLyBcImFjdGlvblwiOiBbXCJjcmVhdGVkXCJdLFxyXG4gICAgICAvLyBcImxpbWl0XCI6IDUsXHJcbiAgICAgIC8vIFwib2Zmc2V0XCI6IDAsXHJcbiAgICAgIC8vIFwic29ydEJ5XCI6IFwiXCIsXHJcbiAgICAgIC8vIFwic29ydENvbHVtbk5hbWVcIjogXCJcIixcclxuICAgICAgLy8gXCJzZWFyY2hWYWx1ZVwiOiBcIkRhaWx5IHN0b3JlIGNoZWNrbGlzdCBOZXdcIlxyXG4gIH07XHJcblxyXG4gICAgdGhpcy5UcmF4U2VydmljZS5hY3Rpdml0eUxvZ0xpc3QocmVxdWVzdERhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudGFza0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmNvZGUgPT09IDIwMCAmJiByZXNwb25zZT8uc3RhdHVzID09PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvZ1RhYmxlRGF0YSA9IHJlc3BvbnNlLmRhdGEucmVzdWx0IHx8IFtdO1xyXG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzcG9uc2UuZGF0YS5jb3VudFxyXG4gICAgICAgICAgdGhpcy5zZXRQYWdpbmF0aW9uU2l6ZXMoKVxyXG4gICAgICAgICAgdGhpcy50YXNrTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YXNrTm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dUYWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudGFza0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGFza05vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIGlmICh0aGlzLnNlYXJjaElucHV0Py5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hEaXNhYmxlZCA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2dUYWJsZURhdGEgPSBbXVxyXG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gMFxyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5TG9nVGFibGVEYXRhID0gW11cclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zb3VyY2VDaGVja0xpc3RfaWQgPSBcIlwiO1xyXG4gICAgICB0aGlzLmNoZWNrbGlzdElkID0gXCJcIjtcclxuICB9XHJcbiAgLy8gcmVtb3ZlUXVlcnlQYXJhbXMoKSB7XHJcbiAgLy8gICBjb25zdCB1cmxXaXRob3V0UGFyYW1zID0gdGhpcy5sb2NhdGlvbi5wYXRoKCkuc3BsaXQoJz8nKVswXTtcclxuICAvLyAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHVybFdpdGhvdXRQYXJhbXMpO1xyXG4gIC8vIH1cclxuICBzZXRQYWdpbmF0aW9uU2l6ZXMoKSB7XHJcbiAgICBpZiAodGhpcy50b3RhbEl0ZW1zID4gMTApIHtcclxuICAgICAgaWYodGhpcy5wYWdlU2l6ZSA+IDEwKXtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICAgICAgfSBlbHNle1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgICAgIHRoaXMucGFnZVNpemUgPSAxMFxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFt0aGlzLnRvdGFsSXRlbXNdO1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy50b3RhbEl0ZW1zO1xyXG4gICAgfSAgICBcclxuICB9XHJcbiAgXHJcbiAgb25FeHBvcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIGNvbnN0IHJlcXVlc3REYXRhID0ge1xyXG4gICAgICBmcm9tRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuc3RhcnREYXRlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLmVuZERhdGUsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuaGVhZGVyRGF0YS5zdG9yZXMuZmlsdGVyKChzdG9yZTogYW55KSA9PiBzdG9yZS5jaGVja2VkKS5tYXAoKHN0b3JlOiBhbnkpID0+IHN0b3JlLnN0b3JlSWQpLFxyXG4gICAgICB1c2VyRW1haWxlczogdGhpcy51c2VyRW1haWxlcyxcclxuICAgICAgY2xpZW50SWQ6dGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgbGltaXQ6IDEwMDAwLCAgICAgICAgICAgICAgICAgXHJcbiAgICAgIG9mZnNldDogMCxcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnREaXJlY3Rpb24sXHJcbiAgICAgIHNvcnRDb2x1bW5OYW1lOiB0aGlzLnNvcnRDb2x1bU5hbWUsXHJcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLnNlYXJjaElucHV0LFxyXG4gICAgICBleHBvcnQ6IHRydWUsXHJcbiAgICAgIGZpbHRlcjogdGhpcy5hY3Rpdml0eUxvZ0ZpbHRlcixcclxuICAgICAgLy8gY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2VUeXBlIHx8IFtdXHJcbiAgICB9O1xyXG4gICAgICAgIHRoaXMuVHJheFNlcnZpY2UuZ2V0VGFza1RhYmxlRGF0YUV4cG9ydChyZXF1ZXN0RGF0YSlcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuVHJheFNlcnZpY2Uuc2F2ZUFzRXhjZWxGaWxlKHJlcywgJ1Rhc2tUYWJsZScpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1NvbWV0aGluZyB3ZW50IFdyb25nLi4nKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgXHJcbiAgICB9ICBcclxuICBzZWFyY2hGaWVsZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGVhZGVyRGF0YS5zZWFyY2hWYWx1ZSA9IHRoaXMuc2VhcmNoSW5wdXQ7XHJcbiAgICB0aGlzLmhlYWRlckRhdGEuZXhwb3J0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMucGFnZVNpemU9MTA7XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9nVGFibGVEYXRhKCk7XHJcbiAgICB9XHJcbiAgc29ydERhdGEoY29sdW1uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNvcnRDb2x1bU5hbWUgPT09IGNvbHVtbikge1xyXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSB0aGlzLnNvcnREaXJlY3Rpb24gPT09IDEgPyAtMSA6IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNvcnRDb2x1bU5hbWUgPSBjb2x1bW47XHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9nVGFibGVEYXRhKCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogYW55KSB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQocGFnZVNpemUpO1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IHBhcnNlSW50KHBhZ2VTaXplKTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZ1RhYmxlRGF0YSgpO1xyXG4gICAgfVxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlT2Zmc2V0XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9nVGFibGVEYXRhKCk7XHJcbiAgfVxyXG4gIGFwcGx5RmlsdGVycyhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQ/Lmxlbmd0aCkge1xyXG4gICAgICBldmVudC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC5EZXNjcmlwdGlvbiA9PT0gJ0FjdGlvbnMnKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9nRmlsdGVyID0gZWxlbWVudC5Jc3N1ZXMubWFwKCh2YWw6IGFueSkgPT4gdmFsLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgLy8gICBjYXRlZ29yeS5Jc3N1ZXMuZm9yRWFjaCgoaXNzdWU6IGFueSkgPT4ge1xyXG4gICAgICAvLyAgICAgaXNzdWUuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgIC8vICAgfSk7XHJcbiAgICAgIC8vIH0pO1xyXG4gIFxyXG4gICAgICAvLyBjb25zdCBhY3Rpb25zRmlsdGVyID0gdGhpcy5kYXRhT2JqZWN0LmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS5EZXNjcmlwdGlvbiA9PT0gJ0FjdGlvbnMnKTtcclxuICAgICAgLy8gdGhpcy5hY3Rpdml0eUxvZ0ZpbHRlciA9IGFjdGlvbnNGaWx0ZXIgPyBhY3Rpb25zRmlsdGVyLklzc3Vlcy5tYXAoKHZhbDogYW55KSA9PiB2YWwuaWQpIDogW107XHJcbiAgICAgIHRoaXMuYWN0aXZpdHlMb2dGaWx0ZXIgPSBbXTtcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEFjdGl2aXR5TG9nVGFibGVEYXRhKCk7XHJcbiAgfVxyXG4gIHNlbGVjdFBsYW4oc2VsZWN0ZWRUeXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudHlwZSA9IHNlbGVjdGVkVHlwZTsgIFxyXG59XHJcblxyXG4vLyBuYXZpZ2F0ZVRvVGFza0NvbmZpZyh0YXNrOiBhbnkpOiB2b2lkIHtcclxuLy8gICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbWFuYWdlL3RyYXgvdGFzay1jb25maWd1cmUnXSwgeyBxdWVyeVBhcmFtczoge3Rhc2tJZDp0YXNrLl9pZH0gfSlcclxuLy8gfVxyXG5cclxuLy8gbmF2aWdhdGVUb1Rhc2tFZGl0KHRhc2s6IGFueSk6IHZvaWQge1xyXG4vLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydtYW5hZ2UvdHJheC9jcmVhdGUtdGFzayddLCB7IHF1ZXJ5UGFyYW1zOiB7aWQ6dGFzay5faWR9IH0pXHJcbi8vIH1cclxuXHJcbmRhdGVGb3JtYXQoZGF0ZTphbnkpIHtcclxuICByZXR1cm4gdGhpcy5kYXlqcy51dGMoZGF0ZSkuZm9ybWF0KCdERCBNTU0gWVlZWScpXHJcbn1cclxuU2VsZWN0dGFicyh0YWI6IHN0cmluZykge1xyXG4gIHRoaXMucmVjZWl2ZWREYXRhID0gdGFiO1xyXG5cclxuICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgeyBcclxuICAvLyAgIHF1ZXJ5UGFyYW1zOiB7IHR5cGU6IHRhYiB9LFxyXG4gIC8vICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xyXG4gIC8vIH0pO1xyXG5cclxuICB0aGlzLmdldEFjdGl2aXR5TG9nVGFibGVEYXRhKCk7XHJcbn1cclxudmlld0FjdGlvbihsb2c6IGFueSkge1xyXG4gIGxldCBtb2RhbFNpemUgPSBsb2cuYWN0aW9uID09PSAndXBkYXRlZCcgfHwgbG9nLmFjdGlvbiA9PT0gJ2RyYWZ0JyA/ICd4bCcgIDogbG9nLmFjdGlvbiA9PT0gJ2VkaXRlZCcgPyAnbGcnIDogJ21kJztcclxuICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oVmlld0FjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICBzaXplOiBtb2RhbFNpemUsXHJcbiAgICBzY3JvbGxhYmxlOiB0cnVlXHJcbiAgfSk7XHJcbiAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UubG9nRGV0YWlscyA9IGxvZy5sb2dEZXRhaWxzO1xyXG4gIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNoZWNrTGlzdE5hbWUgPSBsb2cuY2hlY2tMaXN0TmFtZTtcclxuICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zdG9yZU5hbWUgPSBsb2cuc3RvcmVOYW1lO1xyXG4gIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmFjdGlvblR5cGUgPSBsb2cuYWN0aW9uO1xyXG4gIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnJlY2VpdmVkRGF0YSA9IHRoaXMucmVjZWl2ZWREYXRhO1xyXG4gIG1vZGFsUmVmLnJlc3VsdFxyXG4gICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmdldEFjdGl2aXR5TG9nVGFibGVEYXRhKCk7XHJcbiAgICB9KVxyXG59XHJcblxyXG5pc0xvZ0RldGFpbHNFbXB0eShsb2dEZXRhaWxzOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gIWxvZ0RldGFpbHMgfHwgT2JqZWN0LmtleXMobG9nRGV0YWlscykuZXZlcnkoa2V5ID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gbG9nRGV0YWlsc1trZXldO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWUubGVuZ3RoID09PSAwO1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHJldHVybiB0aGlzLmlzTG9nRGV0YWlsc0VtcHR5KHZhbHVlKTtcclxuICAgIHJldHVybiAhdmFsdWU7XHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG4gIGZvcm1hdERhdGVUaW1lKGRhdGVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWRhdGVTdHJpbmcpIHJldHVybiAnLS0nO1xyXG4gIFxyXG4gICAgY29uc3QgZGF0ZSA9IGRheWpzLnV0YyhkYXRlU3RyaW5nKS5sb2NhbCgpO1xyXG4gICAgY29uc3Qgbm93ID0gZGF5anMoKTtcclxuICAgIFxyXG4gICAgbGV0IGZvcm1hdHRlZERhdGUgPSAnJztcclxuICAgIFxyXG4gICAgaWYgKGRhdGUuaXNTYW1lKG5vdywgJ2RheScpKSB7XHJcbiAgICAgIGZvcm1hdHRlZERhdGUgPSAnVG9kYXknO1xyXG4gICAgfSBlbHNlIGlmIChkYXRlLmlzU2FtZShub3cuc3VidHJhY3QoMSwgJ2RheScpLCAnZGF5JykpIHtcclxuICAgICAgZm9ybWF0dGVkRGF0ZSA9ICdZZXN0ZXJkYXknO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0dGVkRGF0ZSA9IGRhdGUuZm9ybWF0KCdNTU0gRCwgWVlZWScpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcmV0dXJuIGAke2Zvcm1hdHRlZERhdGV9IDxicj4gJHtkYXRlLmZvcm1hdCgnaGggOiBtbSBBJyl9YDtcclxuICB9XHJcbiAgZ2V0QWN0aW9uQmFkZ2VDbGFzcyhhY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY3Rpb25DbGFzc2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gICAgICBjcmVhdGVkOiAnYmFkZ2UtbGlnaHQtZGVmYXVsdCcsXHJcbiAgICAgIHVwZGF0ZWQ6ICdiYWRnZS1saWdodC1wcmltYXJ5MScsXHJcbiAgICAgIGRyYWZ0OiAnYmFkZ2UtbGlnaHQtZGVmYXVsdCcsXHJcbiAgICAgIHB1Ymxpc2hlZDogJ2JhZGdlLWxpZ2h0LXByaW1hcnkxJyxcclxuICAgICAgc3VibWl0OiAnYmFkZ2UtbGlnaHQtcHJpbWFyeTEnLFxyXG4gICAgICBzdGFydDogJ2JhZGdlLWxpZ2h0LXByaW1hcnkxJyxcclxuICAgICAgYXBwcm92ZWQ6ICdiYWRnZS1saWdodC1zdWNjZXNzJyxcclxuICAgICAgcmVkbzogJ2JhZGdlLWxpZ2h0LXdhcm5pbmcnLFxyXG4gICAgICBtdWx0aXJlZG86ICdiYWRnZS1saWdodC13YXJuaW5nJyxcclxuICAgICAgdGFza19jcmVhdGVkOiAnYmFkZ2UtbGlnaHQtZGVmYXVsdCcsXHJcbiAgICAgIC8vIHJlb3BlbmVkOiAnYmFkZ2UtbGlnaHQtZGVmYXVsdCcsXHJcbiAgICAgIGVkaXRlZDogJ2JhZGdlLWxpZ2h0LXdhcm5pbmcnLFxyXG4gICAgICB1bnB1Ymxpc2hlZDogJ2JhZGdlLWxpZ2h0LXByaW1hcnkxJyxcclxuICAgICAgZGVsZXRlZDogJ2JhZGdlLWxpZ2h0LWRlbGV0ZScsXHJcbiAgICAgIGR1cGxpY2F0ZWQ6ICdiYWRnZS1saWdodC1kZWZhdWx0JyxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFjdGlvbkNsYXNzZXNbYWN0aW9uXSB8fCAnYmFkZ2UtbGlnaHQtZGVmYXVsdCc7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpb25MYWJlbChhY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY3Rpb25MYWJlbHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgIGNyZWF0ZWQ6ICdDcmVhdGVkIGJ5JyxcclxuICAgICAgdXBkYXRlZDogJ1VwZGF0ZWQgYnknLFxyXG4gICAgICBkcmFmdDogJ1NhdmVkIGFzIERyYWZ0JyxcclxuICAgICAgcHVibGlzaGVkOiAnUHVibGlzaGVkIGJ5JyxcclxuICAgICAgc3VibWl0OiAnU3VibWl0dGVkIGJ5JyxcclxuICAgICAgc3RhcnQ6ICdTdGFydGVkIGJ5JyxcclxuICAgICAgYXBwcm92ZWQ6ICdBcHByb3ZlZCBieScsXHJcbiAgICAgIHJlZG86ICdSZWRvIENyZWF0ZWQgYnknLFxyXG4gICAgICBtdWx0aXJlZG86ICdTdWJzZXF1ZW50IFJlZG8gQ3JlYXRlZCBieScsXHJcbiAgICAgIHRhc2tfY3JlYXRlZDogJ1Rhc2sgQ3JlYXRlZCBieScsXHJcbiAgICAgIC8vIHJlb3BlbmVkOiAnUmUtb3BlbmVkIGJ5JyxcclxuICAgICAgZWRpdGVkOiAnRWRpdGVkIGJ5JyxcclxuICAgICAgdW5wdWJsaXNoZWQ6ICdVbnB1Ymxpc2hlZCBieScsXHJcbiAgICAgIGRlbGV0ZWQ6ICdEZWxldGVkIGJ5JyxcclxuICAgICAgZHVwbGljYXRlZDogJ0R1cGxpY2F0ZWQgYnknLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWN0aW9uTGFiZWxzW2FjdGlvbl0gfHwgYWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgIG5hdmlnYXRlVG9HYWxsZXJ5KGxvZzogYW55KTogdm9pZCB7XHJcbiAgICAgIGxldCBmb3JtYXR0ZWREYXRlID0gZGF5anMobG9nLmNyZWF0ZUF0KS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgbGV0IGNoZWNrbGlzdFR5cGU6IHN0cmluZztcclxuICAgICAgaWYgKGxvZy5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJykge1xyXG4gICAgICAgIGNoZWNrbGlzdFR5cGUgPSAnY3VzdG9tJztcclxuICAgICAgfSBlbHNlIGlmIChbJ3Rhc2snLCAnY2hlY2tsaXN0VGFzaycsICdjY3R2J10uaW5jbHVkZXMobG9nLnR5cGUpKSB7XHJcbiAgICAgICAgY2hlY2tsaXN0VHlwZSA9ICd0YXNrJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjaGVja2xpc3RUeXBlID0gbG9nLnR5cGUgfHwgJy0tJztcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgbGV0IHF1ZXJ5UGFyYW1zOmFueT0ge31cclxuICAgICAgaWYobG9nLnN0b3JlX2lkJiZsb2cuc3RvcmVfaWQhPScnKXtcclxuICAgICAgICAgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICBDaGVja2xpc3REYXRlOiBmb3JtYXR0ZWREYXRlLFxyXG4gICAgICAgICAgc3RvcmVJZDogbG9nLnN0b3JlX2lkLFxyXG4gICAgICAgICAgY2hlY2tsaXN0VHlwZTogY2hlY2tsaXN0VHlwZSxcclxuICAgICAgICAgIHNvdXJjZUNoZWNrTGlzdF9pZDogbG9nLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICB9O1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICBDaGVja2xpc3REYXRlOiBmb3JtYXR0ZWREYXRlLFxyXG4gICAgICAgICAgdXNlckVtYWlsOiBsb2cudXNlckVtYWlsLFxyXG4gICAgICAgICAgY2hlY2tsaXN0VHlwZTogY2hlY2tsaXN0VHlwZSxcclxuICAgICAgICAgIHNvdXJjZUNoZWNrTGlzdF9pZDogbG9nLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChsb2cucmVkb1N0YXR1cykge1xyXG4gICAgICAgIHF1ZXJ5UGFyYW1zLnJlZG9TdGF0dXMgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90cmF4L2dhbGxlcnknXSwgeyBxdWVyeVBhcmFtcyB9KTtcclxuICAgIH0gXHJcblxyXG4gICAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICAgIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7IFxyXG4gICAgICAgICAgc3RhcnREYXRlOiBldmVudC5zdGFydERhdGUsIFxyXG4gICAgICAgICAgZW5kRGF0ZTogZXZlbnQuZW5kRGF0ZSBcclxuICAgICAgICB9O1xyXG4gICAgXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IHsgXHJcbiAgICAgICAgICBzdGFydERhdGU6IGV2ZW50LnN0YXJ0RGF0ZSxcclxuICAgICAgICAgIGVuZERhdGU6IGV2ZW50LmVuZERhdGVcclxuICAgICAgICB9O1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEZpbHRlcnMpKTtcclxuICAgICAgICAvLyB0aGlzLnJlc2V0VmFsaWRhdGlvbigpO1xyXG4gICAgICAgIC8vIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICBcclxuICAgICAgICAvLyBSZXNldCB0aGUgcGlja2VyIHRvIGZvcmNlIHJlLXJlbmRlclxyXG4gICAgICAgIHRoaXMuaXNBY3Rpdml0eUxvZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgdGhpcy5pc0FjdGl2aXR5TG9nID0gdHJ1ZTtcclxuICAgICAgICAvLyAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIC8vIH0sIDEwKTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBDYWxsIEFQSVxyXG4gICAgICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dUYWJsZURhdGEoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuXHJcbiAgICAgIHJlc2V0VmFsaWRhdGlvbigpIHtcclxuICAgICAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGdpdmVuIGRhdGUgaXMgYmVmb3JlIHllc3RlcmRheVxyXG4gICAgICAgICAgcmV0dXJuIG0uaXNBZnRlcih0aGlzLmRheWpzKCksICdkYXknKSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtNFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC0zXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtbGFiZWwgbWItMlwiPkFjdGl2aXR5IExvZyA8L3NwYW4+XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyICBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBmb290ZmFsbHNlYXJjaCBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlICBtcy04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjVcIiB4PVwiMTcuMDM2NVwiIHk9XCIxNS4xMjIzXCIgd2lkdGg9XCI4LjE1NTQ2XCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKDQ1IDE3LjAzNjUgMTUuMTIyMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMTlDNi41NTU1NiAxOSAzIDE1LjQ0NDQgMyAxMUMzIDYuNTU1NTYgNi41NTU1NiAzIDExIDNDMTUuNDQ0NCAzIDE5IDYuNTU1NTYgMTkgMTFDMTkgMTUuNDQ0NCAxNS40NDQ0IDE5IDExIDE5Wk0xMSA1QzcuNTMzMzMgNSA1IDcuNTMzMzMgNSAxMUM1IDE0LjQ2NjcgNy41MzMzMyAxNyAxMSAxN0MxNC40NjY3IDE3IDE3IDE0LjQ2NjcgMTcgMTFDMTcgNy41MzMzMyAxNC40NjY3IDUgMTEgNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJyZWNlaXZlZERhdGEgPT09ICdjaGVja2xpc3QnXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hJbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcHMtMTQgbXgtMiBsb2dzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCB3aXRoIFN0b3JlLCBFbWFpbCwgQ2hlY2tsaXN0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGtleXVwLmVudGVyKT1cInNlYXJjaEZpZWxkKClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cInJlY2VpdmVkRGF0YSA9PT0gJ3Rhc2snXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hJbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcHMtMTQgbXgtMiBsb2dzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCB3aXRoIFN0b3JlLCBFbWFpbCwgVGFza1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChrZXl1cC5lbnRlcik9XCJzZWFyY2hGaWVsZCgpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGRhdGVwaWNrZXIgc3RhcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZGF0ZS1yYW5nZS1waWNrZXIgKGRhdGVDaGFuZ2UpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgW3ZhbHVlXT1cImNvdW50XCI+PC9saWItZGF0ZS1yYW5nZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBkYXRlcGlja2VyIGVuZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1maWx0ZXJzICBbZGF0YU9iamVjdF09XCJkYXRhT2JqZWN0XCIgKGFwcGxpZWRGaWx0ZXJzKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCI+PC9saWItZmlsdGVycz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBvdmVyZmxvdy1hdXRvIG1iLTIgbXgtNFwiPlxyXG4gICAgICAgIDx1bFxyXG4gICAgICAgICAgICBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzLTJ4ICBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiU2VsZWN0dGFicygnY2hlY2tsaXN0JylcIiBbcm91dGVyTGlua109XCJbJy9tYW5hZ2UvdHJheC9hY3Rpb25jZW50ZXInXVwiIFtxdWVyeVBhcmFtc109XCJ7IHR5cGU6ICdjaGVja2xpc3QnIH1cIj5cclxuICAgICAgICAgICAgICAgIDxhIFtuZ0NsYXNzXT1cInJlY2VpdmVkRGF0YSA9PT0gJ2NoZWNrbGlzdCc/J2J0biBhY3RpdmVidG4nOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBuYXYtbGluayBtZS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIlNlbGVjdHRhYnMoJ3Rhc2snKVwiIFtyb3V0ZXJMaW5rXT1cIlsnL21hbmFnZS90cmF4L2FjdGlvbmNlbnRlciddXCIgW3F1ZXJ5UGFyYW1zXT1cInsgdHlwZTogJ3Rhc2snIH1cIj5cclxuICAgICAgICAgICAgICAgIDxhIFtuZ0NsYXNzXT1cInJlY2VpdmVkRGF0YSA9PT0gJ3Rhc2snIHx8IHJlY2VpdmVkRGF0YSA9PT0gJ0dyb3VwIERldGFpbHMgVmFsdWUnPyAnYnRuIGFjdGl2ZWJ0bic6JydcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgbWUtNlwiPlRhc2tcclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwhLS0gPGxpYi12aWV3LWFjdGlvbiBbcmVjZWl2ZWREYXRhXT1cInJlY2VpdmVkRGF0YVwiPjwvbGliLXZpZXctYWN0aW9uPiAtLT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICA8dGFibGUgKm5nSWY9XCIhdGFza0xvYWRpbmcgJiYgIXRhc2tOb0RhdGFcIiBjbGFzcz1cInRhYmxlIHRleHQtbm93cmFwIGJvdHRvbS1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCdkYXRldGltZScpXCI+RGF0ZSAmIFRpbWU8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0Q29sdW1OYW1lID09PSAnZGF0ZXRpbWUnICYmIHNvcnREaXJlY3Rpb24gPT09IDEgPyAncm90YXRlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJzb3J0Q29sdW1OYW1lID09PSAnZGF0ZXRpbWUnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwicmVjZWl2ZWREYXRhID09PSAnY2hlY2tsaXN0J1wiPkNoZWNrbGlzdCBOYW1lPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwicmVjZWl2ZWREYXRhID09PSAndGFzaydcIj5UYXNrIE5hbWU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+QWN0aW9uIFBlcmZvcm1lZDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QZXJmb3JtZWQgYnk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+U3RvcmUgTmFtZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5BY3Rpb25zPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGxvZyBvZiBhY3Rpdml0eUxvZ1RhYmxlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYmxlLXRpdGxlXCIgW2lubmVySFRNTF09XCJmb3JtYXREYXRlVGltZShsb2cuX3NvdXJjZS5jcmVhdGVBdClcIj48L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIShsb2cuX3NvdXJjZS50eXBlID09PSAndGFzaycgJiYgbG9nLl9zb3VyY2UuZnJvbUNoZWNrTGlzdE5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWJsZS10aXRsZSBtZS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxvZy5fc291cmNlLmNoZWNrTGlzdE5hbWUgfHwgJy0tJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxvZy5fc291cmNlLnR5cGUgPT09ICd0YXNrJyAmJiBsb2cuX3NvdXJjZS5mcm9tQ2hlY2tMaXN0TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFibGUtdGl0bGUgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsb2cuX3NvdXJjZS5jaGVja0xpc3ROYW1lIHx8ICctLScgfX0gPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEuNjY1NCA3LjUwMDE2TDcuNDk4NyAzLjMzMzVNNy40OTg3IDMuMzMzNUwzLjMzMjAzIDcuNTAwMTZNNy40OTg3IDMuMzMzNVYxMy4zMzM1QzcuNDk4NyAxNC4yMTc2IDcuODQ5ODkgMTUuMDY1NCA4LjQ3NTAxIDE1LjY5MDVDOS4xMDAxMyAxNi4zMTU2IDkuOTQ3OTggMTYuNjY2OCAxMC44MzIgMTYuNjY2OEgxNi42NjU0XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJteC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIzXCIgdmlld0JveD1cIjAgMCAyMyAyM1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjQxNDQ4IDQuNTIzMDNDOC42OTUxOCA0LjgwMzcxIDguNjk1MTggNS4yNTg4IDguNDE0NDggNS41Mzk0OEw1LjUzOTQ4IDguNDE0NDhDNS4yNTg4IDguNjk1MTggNC44MDM3MSA4LjY5NTE4IDQuNTIzMDMgOC40MTQ0OEwzLjA4NTUzIDYuOTc2OThDMi44MDQ4MiA2LjY5NjMgMi44MDQ4MiA2LjI0MTIxIDMuMDg1NTMgNS45NjA1M0MzLjM2NjIxIDUuNjc5ODIgMy44MjEzIDUuNjc5ODIgNC4xMDE5OCA1Ljk2MDUzTDUuMDMxMjUgNi44ODk3OEw3LjM5ODAzIDQuNTIzMDNDNy42Nzg3MSA0LjI0MjMyIDguMTMzOCA0LjI0MjMyIDguNDE0NDggNC41MjMwM1pcIiBmaWxsPVwiIzY2NzA4NVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNDE0NDggMTEuNzEwNUM4LjY5NTE4IDExLjk5MTIgOC42OTUxOCAxMi40NDYzIDguNDE0NDggMTIuNzI3TDUuNTM5NDggMTUuNjAyQzUuMjU4OCAxNS44ODI2IDQuODAzNzEgMTUuODgyNiA0LjUyMzAzIDE1LjYwMkwzLjA4NTUzIDE0LjE2NDVDMi44MDQ4MiAxMy44ODM4IDIuODA0ODIgMTMuNDI4NyAzLjA4NTUzIDEzLjE0NzlDMy4zNjYyMSAxMi44NjczIDMuODIxMyAxMi44NjczIDQuMTAxOTggMTMuMTQ3OUw1LjAzMTI1IDE0LjA3NzNMNy4zOTgwMyAxMS43MTA1QzcuNjc4NzEgMTEuNDI5OSA4LjEzMzggMTEuNDI5OSA4LjQxNDQ4IDExLjcxMDVaXCIgZmlsbD1cIiM2NjcwODVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wNjI1IDYuNDY4NzVDMTAuMDYyNSA2LjA3MTggMTAuMzg0NCA1Ljc1IDEwLjc4MTIgNS43NUgxNS4wOTM4QzE1LjQ5MDYgNS43NSAxNS44MTI1IDYuMDcxOCAxNS44MTI1IDYuNDY4NzVDMTUuODEyNSA2Ljg2NTcgMTUuNDkwNiA3LjE4NzUgMTUuMDkzOCA3LjE4NzVIMTAuNzgxMkMxMC4zODQ0IDcuMTg3NSAxMC4wNjI1IDYuODY1NyAxMC4wNjI1IDYuNDY4NzVaXCIgZmlsbD1cIiM2NjcwODVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zLjU5Mzc1IDBDMS42MDg5OCAwIDAgMS42MDg5OCAwIDMuNTkzNzVWMTYuNTMxMkMwIDE4LjUxNiAxLjYwODk4IDIwLjEyNSAzLjU5Mzc1IDIwLjEyNUg5LjQ4NzA4QzkuMjU0MjkgMTkuNjY5NiA5LjA2NDM2IDE5LjE4ODYgOC45MjI2MSAxOC42ODc1SDMuNTkzNzVDMi40MDI4OCAxOC42ODc1IDEuNDM3NSAxNy43MjIxIDEuNDM3NSAxNi41MzEyVjMuNTkzNzVDMS40Mzc1IDIuNDAyODggMi40MDI4OCAxLjQzNzUgMy41OTM3NSAxLjQzNzVIMTYuNTMxMkMxNy43MjIxIDEuNDM3NSAxOC42ODc1IDIuNDAyODggMTguNjg3NSAzLjU5Mzc1VjguOTIyNjFDMTkuMTg4NiA5LjA2NDM2IDE5LjY2OTYgOS4yNTQyOSAyMC4xMjUgOS40ODcwOFYzLjU5Mzc1QzIwLjEyNSAxLjYwODk4IDE4LjUxNiAwIDE2LjUzMTIgMEgzLjU5Mzc1WlwiIGZpbGw9XCIjNjY3MDg1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYuNTMxMyAyM0MyMC4xMDM5IDIzIDIzIDIwLjEwMzkgMjMgMTYuNTMxM0MyMyAxMi45NTg2IDIwLjEwMzkgMTAuMDYyNSAxNi41MzEzIDEwLjA2MjVDMTIuOTU4NiAxMC4wNjI1IDEwLjA2MjUgMTIuOTU4NiAxMC4wNjI1IDE2LjUzMTNDMTAuMDYyNSAyMC4xMDM5IDEyLjk1ODYgMjMgMTYuNTMxMyAyM1pNMTYuNTMxMyAxMi45Mzc1QzE2LjkyODEgMTIuOTM3NSAxNy4yNSAxMy4yNTk0IDE3LjI1IDEzLjY1NjNWMTUuODEyNUgxOS40MDYzQzE5LjgwMzEgMTUuODEyNSAyMC4xMjUgMTYuMTM0NCAyMC4xMjUgMTYuNTMxM0MyMC4xMjUgMTYuOTI4MSAxOS44MDMxIDE3LjI1IDE5LjQwNjMgMTcuMjVIMTcuMjVWMTkuNDA2M0MxNy4yNSAxOS44MDMxIDE2LjkyODEgMjAuMTI1IDE2LjUzMTMgMjAuMTI1QzE2LjEzNDQgMjAuMTI1IDE1LjgxMjUgMTkuODAzMSAxNS44MTI1IDE5LjQwNjNWMTcuMjVIMTMuNjU2M0MxMy4yNTk0IDE3LjI1IDEyLjkzNzUgMTYuOTI4MSAxMi45Mzc1IDE2LjUzMTNDMTIuOTM3NSAxNi4xMzQ0IDEzLjI1OTQgMTUuODEyNSAxMy42NTYzIDE1LjgxMjVIMTUuODEyNVYxMy42NTYzQzE1LjgxMjUgMTMuMjU5NCAxNi4xMzQ0IDEyLjkzNzUgMTYuNTMxMyAxMi45Mzc1WlwiIGZpbGw9XCIjNjY3MDg1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cInRhYmxlLXRpdGxlXCI+IHt7IGxvZy5fc291cmNlLmZyb21DaGVja0xpc3ROYW1lIHx8ICctLScgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYmxlLXRpdGxlIGJhZGdlLWxpZ2h0XCIgW25nQ2xhc3NdPVwiZ2V0QWN0aW9uQmFkZ2VDbGFzcyhsb2cuX3NvdXJjZS5hY3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldEFjdGlvbkxhYmVsKGxvZy5fc291cmNlLmFjdGlvbikgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS10aXRsZSBkLWZsZXhcIj48c3BhbiBjbGFzcz1cIm1lLTNcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNi42NjU0IDE3LjVWMTUuODMzM0MxNi42NjU0IDE0Ljk0OTMgMTYuMzE0MiAxNC4xMDE0IDE1LjY4OTEgMTMuNDc2M0MxNS4wNjM5IDEyLjg1MTIgMTQuMjE2MSAxMi41IDEzLjMzMiAxMi41SDYuNjY1MzZDNS43ODEzMSAxMi41IDQuOTMzNDYgMTIuODUxMiA0LjMwODM0IDEzLjQ3NjNDMy42ODMyMiAxNC4xMDE0IDMuMzMyMDMgMTQuOTQ5MyAzLjMzMjAzIDE1LjgzMzNWMTcuNU0xMy4zMzIgNS44MzMzM0MxMy4zMzIgNy42NzQyOCAxMS44Mzk2IDkuMTY2NjcgOS45OTg3IDkuMTY2NjdDOC4xNTc3NSA5LjE2NjY3IDYuNjY1MzYgNy42NzQyOCA2LjY2NTM2IDUuODMzMzNDNi42NjUzNiAzLjk5MjM4IDguMTU3NzUgMi41IDkuOTk4NyAyLjVDMTEuODM5NiAyLjUgMTMuMzMyIDMuOTkyMzggMTMuMzMyIDUuODMzMzNaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3Bhbj57eyBsb2cuX3NvdXJjZS5jcmVhdGVkQnlFbWFpbCB9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS10aXRsZSBkLWZsZXhcIj48c3BhbiAqbmdJZj1cImxvZy5fc291cmNlPy5zdG9yZU5hbWVcIiBjbGFzcz1cIm1lLTNcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjY3ODkzIDUuODAzNjZMMi42MjU2OCA1Ljg4NjgzQzIuMDY3NjQgNi44NzM4OCAyLjY2MzQ3IDguMTIxMyAzLjczNTA4IDguMjY0NEMzLjgzMjE3IDguMjc2MjcgMy45MjI1MSA4LjI4MjU1IDQuMDEwNzggOC4yODI1NUM0LjU4ODkzIDguMjgyNTUgNS4xMDAxIDguMDM0NTMgNS40NTYzNyA3LjY0NzhMNi4wMDk3IDcuMDQ3MThMNi41NjExNiA3LjY0OTUzQzYuOTEzMSA4LjAzMzk1IDcuNDIzMTEgOC4yODI1NSA4LjAwNTE3IDguMjgyNTVDOC41ODQ2MSA4LjI4MjU1IDkuMDk3NTUgOC4wMzM2IDkuNDQ5MTcgNy42NDk1M0wxMC4wMDI0IDcuMDQ1MjlMMTAuNTU1NSA3LjY0OTUzQzEwLjkwNzIgOC4wMzM2IDExLjQyMDEgOC4yODI1NSAxMS45OTk2IDguMjgyNTVDMTIuNTc5IDguMjgyNTUgMTMuMDkxOSA4LjAzMzYgMTMuNDQzNiA3LjY0OTUzTDEzLjk5NjcgNy4wNDUyOUwxNC41NDk5IDcuNjQ5NTNDMTQuOTAxNiA4LjAzMzYgMTUuNDE0NSA4LjI4MjU1IDE1Ljk5MzkgOC4yODI1NUMxNi4wNzkzIDguMjgyNTUgMTYuMTcyNCA4LjI3NjI1IDE2LjI2ODggOC4yNjQ1QzE3LjM2MzkgOC4xMTUxOCAxNy45NjE4IDYuODAwOTEgMTcuMzIzIDUuODA0MTZDMTcuMzIzIDUuODA0MSAxNy4zMjMgNS44MDQwNSAxNy4zMjI5IDUuODAzOTlMMTUuNTY0OCAzLjA2MjU4TDE1LjU2NDggMy4wNjI1OEwxNS41NjM4IDMuMDYxMTFDMTUuNTQ4NiAzLjAzNzI4IDE1LjUxMTIgMy4wMTE3MiAxNS40NjQgMy4wMTE3Mkg0LjUzNDU4QzQuNDg3NDQgMy4wMTE3MiA0LjQ0OTk1IDMuMDM3MjggNC40MzQ3NCAzLjA2MTExTDQuNDM0MTMgMy4wNjIwOEwyLjY3ODkzIDUuODAzNjZaTTE1LjY1MDQgMTAuNzM2OVYxMy44Njg5VjE0LjYxODlIMTQuOTAwNEg1LjA5ODIxSDQuMzQ4MjFWMTMuODY4OVYxMC43Mzc0QzQuMjM3OTggMTAuNzQ1NiA0LjEyNjQ2IDEwLjc0OTggNC4wMTM4NCAxMC43NDk4QzMuOTcxNTQgMTAuNzQ5OCAzLjkyOTUyIDEwLjc0OTIgMy44ODc3OCAxMC43NDhWMTMuODY4OVYxNS44MDM0QzMuODg3NzggMTYuNDQ2OCA0LjQyMTY4IDE2Ljk4NzkgNS4wOTgyMSAxNi45ODc5SDE0LjkwMDRDMTUuNTc2OSAxNi45ODc5IDE2LjExMDggMTYuNDQ2OCAxNi4xMTA4IDE1LjgwMzRWMTMuODY4OVYxMC43NDgyQzE2LjA3MSAxMC43NDkzIDE2LjAzMSAxMC43NDk4IDE1Ljk5MDkgMTAuNzQ5OEMxNS44NzY1IDEwLjc0OTggMTUuNzYyOSAxMC43NDU1IDE1LjY1MDQgMTAuNzM2OVpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4+e3sgbG9nLl9zb3VyY2Uuc3RvcmVOYW1lIHx8ICctJyB9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBcIlsndXBkYXRlZCcsICdlZGl0ZWQnLCAnZHJhZnQnXS5pbmNsdWRlcyhsb2cuX3NvdXJjZS5hY3Rpb24pXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gICpuZ0lmPVwiWyd1cGRhdGVkJywgJ2VkaXRlZCddLmluY2x1ZGVzKGxvZy5fc291cmNlLmFjdGlvbikgfHwgKGxvZy5fc291cmNlLmFjdGlvbiA9PT0gJ2RyYWZ0JyAmJiBsb2cuX3NvdXJjZS5sb2dEZXRhaWxzICYmICFpc0xvZ0RldGFpbHNFbXB0eShsb2cuX3NvdXJjZS5sb2dEZXRhaWxzKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2aWV3QWN0aW9uKGxvZy5fc291cmNlKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1PlZpZXc8L3U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibG9nLl9zb3VyY2UuYWN0aW9uID09PSAnc3VibWl0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9HYWxsZXJ5KGxvZy5fc291cmNlKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1PlZpZXc8L3U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gKm5nSWY9XCIhWyd1cGRhdGVkJywgJ2VkaXRlZCcsICdzdWJtaXQnLCAnZHJhZnQnXS5pbmNsdWRlcyhsb2cuX3NvdXJjZS5hY3Rpb24pXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhWyd1cGRhdGVkJywgJ2VkaXRlZCcsICdzdWJtaXQnXS5pbmNsdWRlcyhsb2cuX3NvdXJjZS5hY3Rpb24pICYmICEobG9nLl9zb3VyY2UuYWN0aW9uID09PSAnZHJhZnQnICYmIGxvZy5fc291cmNlLmxvZ0RldGFpbHMgJiYgIWlzTG9nRGV0YWlsc0VtcHR5KGxvZy5fc291cmNlLmxvZ0RldGFpbHMpKVwiPi08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFza0xvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YXNrTm9EYXRhICYmICF0YXNrTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXktNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YW1haW50ZXh0IG10LTNcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhc3VidGV4dFwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgQWN0aXZpdHkgTG9nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXRhc2tMb2FkaW5nICYmICF0YXNrTm9EYXRhXCI+XHJcbiAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBjbGFzcz1cInRleHQtc3RhcnRcIiBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiXHJcbiAgICAgICAgICAgICAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCIgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -11,14 +11,14 @@ export class StoreUserDropdownComponent {
|
|
|
11
11
|
this.isOpen = !this.isOpen;
|
|
12
12
|
}
|
|
13
13
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StoreUserDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: StoreUserDropdownComponent, selector: "lib-store-user-dropdown", inputs: { title: "title", items: "items" }, ngImport: i0, template: "<div class=\"relative inline-block text-left\">\r\n <!-- Display first 5 stores inline -->\r\n <div class=\"flex flex-wrap gap-2 mb-2\">\r\n <span *ngFor=\"let item of items.slice(0, 5); let last = last\" class=\"py-1\">\r\n {{ item }}<span *ngIf=\"!last\">,</span>\r\n </span>\r\n </div>\r\n\r\n <!-- Show dropdown only if more than 5 stores exist -->\r\n <span *ngIf=\"items.length > 5\" \r\n (click)=\"toggleDropdown()\" \r\n [ngClass]=\"isOpen ? 'showlessbutton' : 'showmorebutton'\"\r\n class=\"px-4 py-2 cursor-pointer flex items-center gap-2\">\r\n {{ isOpen ? 'Show Less' : 'Show More' }}\r\n <svg *ngIf=\"!isOpen\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isOpen\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 12.5L10 7.5L5 12.5\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n <!-- Dropdown -->\r\n <div *ngIf=\"isOpen\" class=\"absolute left-0 mt-2 w-40 z-10 dropdownbar\">\r\n <!-- Header with Close Button -->\r\n <div class=\"storeend px-4 py-2 flex justify-between items-center\">\r\n <span class=\"storestext font-semibold\">{{ title }}</span>\r\n <span (click)=\"toggleDropdown()\" class=\"cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M18 6L6 18M6 6L18 18\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Extra stores in dropdown -->\r\n <div class=\"max-h-60 overflow-y-auto\">\r\n <div *ngFor=\"let item of items.slice(5)\" class=\"px-4 py-2 hover:bg-gray-200 cursor-pointer\">\r\n {{ item }}\r\n </div>\r\n </div>\r\n </div>\r\n</div
|
|
14
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: StoreUserDropdownComponent, selector: "lib-store-user-dropdown", inputs: { title: "title", items: "items" }, ngImport: i0, template: "<div class=\"relative inline-block text-left\">\r\n <!-- Display first 5 stores inline -->\r\n <div class=\"flex flex-wrap gap-2 mb-2\">\r\n <span *ngFor=\"let item of items.slice(0, 5); let last = last\" class=\"py-1\">\r\n {{ item }}<span *ngIf=\"!last\">,</span>\r\n </span>\r\n </div>\r\n\r\n <!-- Show dropdown only if more than 5 stores exist -->\r\n <span *ngIf=\"items.length > 5\" \r\n (click)=\"toggleDropdown()\" \r\n [ngClass]=\"isOpen ? 'showlessbutton' : 'showmorebutton'\"\r\n class=\"px-4 py-2 cursor-pointer flex items-center gap-2\">\r\n {{ isOpen ? 'Show Less' : 'Show More' }}\r\n <svg *ngIf=\"!isOpen\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isOpen\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 12.5L10 7.5L5 12.5\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n <!-- Dropdown -->\r\n <div *ngIf=\"isOpen\" class=\"absolute left-0 mt-2 w-40 z-10 dropdownbar\">\r\n <!-- Header with Close Button -->\r\n <div class=\"storeend px-4 py-2 flex justify-between items-center\">\r\n <span class=\"storestext font-semibold\">{{ title }}</span>\r\n <span (click)=\"toggleDropdown()\" class=\"cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M18 6L6 18M6 6L18 18\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Extra stores in dropdown -->\r\n <div class=\"max-h-60 overflow-y-auto\">\r\n <div *ngFor=\"let item of items.slice(5)\" class=\"px-4 py-2 hover:bg-gray-200 cursor-pointer\">\r\n {{ item }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".max-h-60{max-height:15rem}.showlessbutton{justify-content:center;align-items:center;gap:4px;border-radius:8px;border:1px solid var(--Primary-700, #009BF3);color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px;text-transform:capitalize}.storestext{color:var(--Primary-700, #009BF3);font-size:18px;font-style:normal;font-weight:500;line-height:28px}.storeend{display:flex;justify-content:space-between!important;border-bottom:1px solid var(--Primary-700, #009BF3)}.dropdownbar{margin-right:32%;border-radius:8px;border:1px solid var(--Gray-400, #98A2B3);background:#fff}.showmorebutton{justify-content:center;align-items:center;gap:4px;border-radius:8px;border:1px solid var(--Gray-500, #667085);color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px;text-transform:capitalize}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
15
15
|
}
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StoreUserDropdownComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
|
-
args: [{ selector: 'lib-store-user-dropdown', template: "<div class=\"relative inline-block text-left\">\r\n <!-- Display first 5 stores inline -->\r\n <div class=\"flex flex-wrap gap-2 mb-2\">\r\n <span *ngFor=\"let item of items.slice(0, 5); let last = last\" class=\"py-1\">\r\n {{ item }}<span *ngIf=\"!last\">,</span>\r\n </span>\r\n </div>\r\n\r\n <!-- Show dropdown only if more than 5 stores exist -->\r\n <span *ngIf=\"items.length > 5\" \r\n (click)=\"toggleDropdown()\" \r\n [ngClass]=\"isOpen ? 'showlessbutton' : 'showmorebutton'\"\r\n class=\"px-4 py-2 cursor-pointer flex items-center gap-2\">\r\n {{ isOpen ? 'Show Less' : 'Show More' }}\r\n <svg *ngIf=\"!isOpen\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isOpen\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 12.5L10 7.5L5 12.5\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n <!-- Dropdown -->\r\n <div *ngIf=\"isOpen\" class=\"absolute left-0 mt-2 w-40 z-10 dropdownbar\">\r\n <!-- Header with Close Button -->\r\n <div class=\"storeend px-4 py-2 flex justify-between items-center\">\r\n <span class=\"storestext font-semibold\">{{ title }}</span>\r\n <span (click)=\"toggleDropdown()\" class=\"cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M18 6L6 18M6 6L18 18\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Extra stores in dropdown -->\r\n <div class=\"max-h-60 overflow-y-auto\">\r\n <div *ngFor=\"let item of items.slice(5)\" class=\"px-4 py-2 hover:bg-gray-200 cursor-pointer\">\r\n {{ item }}\r\n </div>\r\n </div>\r\n </div>\r\n</div
|
|
18
|
+
args: [{ selector: 'lib-store-user-dropdown', template: "<div class=\"relative inline-block text-left\">\r\n <!-- Display first 5 stores inline -->\r\n <div class=\"flex flex-wrap gap-2 mb-2\">\r\n <span *ngFor=\"let item of items.slice(0, 5); let last = last\" class=\"py-1\">\r\n {{ item }}<span *ngIf=\"!last\">,</span>\r\n </span>\r\n </div>\r\n\r\n <!-- Show dropdown only if more than 5 stores exist -->\r\n <span *ngIf=\"items.length > 5\" \r\n (click)=\"toggleDropdown()\" \r\n [ngClass]=\"isOpen ? 'showlessbutton' : 'showmorebutton'\"\r\n class=\"px-4 py-2 cursor-pointer flex items-center gap-2\">\r\n {{ isOpen ? 'Show Less' : 'Show More' }}\r\n <svg *ngIf=\"!isOpen\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isOpen\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 12.5L10 7.5L5 12.5\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n <!-- Dropdown -->\r\n <div *ngIf=\"isOpen\" class=\"absolute left-0 mt-2 w-40 z-10 dropdownbar\">\r\n <!-- Header with Close Button -->\r\n <div class=\"storeend px-4 py-2 flex justify-between items-center\">\r\n <span class=\"storestext font-semibold\">{{ title }}</span>\r\n <span (click)=\"toggleDropdown()\" class=\"cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M18 6L6 18M6 6L18 18\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Extra stores in dropdown -->\r\n <div class=\"max-h-60 overflow-y-auto\">\r\n <div *ngFor=\"let item of items.slice(5)\" class=\"px-4 py-2 hover:bg-gray-200 cursor-pointer\">\r\n {{ item }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".max-h-60{max-height:15rem}.showlessbutton{justify-content:center;align-items:center;gap:4px;border-radius:8px;border:1px solid var(--Primary-700, #009BF3);color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px;text-transform:capitalize}.storestext{color:var(--Primary-700, #009BF3);font-size:18px;font-style:normal;font-weight:500;line-height:28px}.storeend{display:flex;justify-content:space-between!important;border-bottom:1px solid var(--Primary-700, #009BF3)}.dropdownbar{margin-right:32%;border-radius:8px;border:1px solid var(--Gray-400, #98A2B3);background:#fff}.showmorebutton{justify-content:center;align-items:center;gap:4px;border-radius:8px;border:1px solid var(--Gray-500, #667085);color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px;text-transform:capitalize}\n"] }]
|
|
19
19
|
}], propDecorators: { title: [{
|
|
20
20
|
type: Input
|
|
21
21
|
}], items: [{
|
|
22
22
|
type: Input
|
|
23
23
|
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdXNlci1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZy12Mi9sb2ctdmlldy1wb3B1cC9zdG9yZS11c2VyLWRyb3Bkb3duL3N0b3JlLXVzZXItZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9hY3Rpdml0eS1sb2ctdjIvbG9nLXZpZXctcG9wdXAvc3RvcmUtdXNlci1kcm9wZG93bi9zdG9yZS11c2VyLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPakQsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxnRkFBZ0Y7SUFDdkUsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixLQUFLLEdBQWEsRUFBRSxDQUFDO0lBQzlCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixtQkFBbUI7SUFFbkIsY0FBYztRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7d0dBVFUsMEJBQTBCOzRGQUExQiwwQkFBMEIsMkdDUHZDLCttRUEwQ0E7OzRGRG5DYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UseUJBQXlCOzhCQU0xQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3RvcmUtdXNlci1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0b3JlLXVzZXItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdG9yZS11c2VyLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmVVc2VyRHJvcGRvd25Db21wb25lbnQge1xyXG4gIC8vIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnSXRlbXMnOyAgLy8gRGVmYXVsdCB0aXRsZSAoU3RvcmVzLCBBcHByb3ZlcnMsIGV0Yy4pXHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGlzT3BlbiA9IGZhbHNlO1xyXG4gIC8vIHNob3dBbGwgPSBmYWxzZTtcclxuXHJcbiAgdG9nZ2xlRHJvcGRvd24oKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcclxuICB9XHJcblxyXG4gIC8vIHRvZ2dsZVNob3dNb3JlKCkge1xyXG4gIC8vICAgdGhpcy5zaG93QWxsID0gIXRoaXMuc2hvd0FsbDtcclxuICAvLyB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlIGlubGluZS1ibG9jayB0ZXh0LWxlZnRcIj5cclxuICA8IS0tIERpc3BsYXkgZmlyc3QgNSBzdG9yZXMgaW5saW5lIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMiBtYi0yXCI+XHJcbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcy5zbGljZSgwLCA1KTsgbGV0IGxhc3QgPSBsYXN0XCIgY2xhc3M9XCJweS0xXCI+XHJcbiAgICAgIHt7IGl0ZW0gfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBTaG93IGRyb3Bkb3duIG9ubHkgaWYgbW9yZSB0aGFuIDUgc3RvcmVzIGV4aXN0IC0tPlxyXG4gIDxzcGFuICpuZ0lmPVwiaXRlbXMubGVuZ3RoID4gNVwiIFxyXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigpXCIgXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNPcGVuID8gJ3Nob3dsZXNzYnV0dG9uJyA6ICdzaG93bW9yZWJ1dHRvbidcIlxyXG4gICAgICAgIGNsYXNzPVwicHgtNCBweS0yIGN1cnNvci1wb2ludGVyIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICB7eyBpc09wZW4gPyAnU2hvdyBMZXNzJyA6ICdTaG93IE1vcmUnIH19XHJcbiAgICA8c3ZnICpuZ0lmPVwiIWlzT3BlblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3ZnICpuZ0lmPVwiaXNPcGVuXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICA8cGF0aCBkPVwiTTE1IDEyLjVMMTAgNy41TDUgMTIuNVwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgPC9zdmc+XHJcbiAgPC9zcGFuPlxyXG5cclxuICA8IS0tIERyb3Bkb3duIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJpc09wZW5cIiBjbGFzcz1cImFic29sdXRlIGxlZnQtMCBtdC0yIHctNDAgei0xMCBkcm9wZG93bmJhclwiPlxyXG4gICAgPCEtLSBIZWFkZXIgd2l0aCBDbG9zZSBCdXR0b24gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvcmVlbmQgcHgtNCBweS0yIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN0b3Jlc3RleHQgZm9udC1zZW1pYm9sZFwiPnt7IHRpdGxlIH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTggNkw2IDE4TTYgNkwxOCAxOFwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIEV4dHJhIHN0b3JlcyBpbiBkcm9wZG93biAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJtYXgtaC02MCBvdmVyZmxvdy15LWF1dG9cIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcy5zbGljZSg1KVwiIGNsYXNzPVwicHgtNCBweS0yIGhvdmVyOmJnLWdyYXktMjAwIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAge3sgaXRlbSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|