tango-app-ui-analyse-trax 3.3.1-alpha.75 → 3.3.1-alpha.76
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/checklist/checklist.component.mjs +3 -3
- package/esm2022/lib/components/checklistlayout/checklistlayout.component.mjs +37 -5
- package/esm2022/lib/components/create-task/create-task.component.mjs +4 -4
- package/esm2022/lib/components/gallery/gallery.component.mjs +4 -3
- package/esm2022/lib/components/manage-task/manage-task.component.mjs +254 -5
- package/esm2022/lib/components/task/task.component.mjs +12 -10
- package/esm2022/lib/components/task-configure/task-configure.component.mjs +2 -2
- package/esm2022/lib/components/task-info/task-info.component.mjs +15 -8
- package/esm2022/lib/services/trax.service.mjs +18 -3
- package/esm2022/lib/tango-analyse-trax-routing.module.mjs +6 -1
- package/fesm2022/tango-app-ui-analyse-trax.mjs +366 -70
- package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
- package/lib/components/checklistlayout/checklistlayout.component.d.ts +11 -1
- package/lib/components/manage-task/manage-task.component.d.ts +43 -1
- package/lib/services/trax.service.d.ts +3 -0
- package/package.json +1 -1
|
@@ -248,10 +248,10 @@ export class ChecklistComponent {
|
|
|
248
248
|
sub.unsubscribe();
|
|
249
249
|
}
|
|
250
250
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChecklistComponent, deps: [{ token: i1.PageInfoService }, { token: i2.TraxService }, { token: i1.GlobalStateService }, { token: i3.ToastService }, { token: i4.Router }, { token: i5.NgbModal }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
251
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChecklistComponent, selector: "lib-checklist", ngImport: i0, template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div>\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</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 svg-icon-1 position-absolute ms-3\">\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\"></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 type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" 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 <div class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <!-- <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeId' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'storeId' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th> -->\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && data.checkListType === 'custom') || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.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}}.rotate{rotate:180deg;transition:1s}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }] });
|
|
251
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChecklistComponent, selector: "lib-checklist", ngImport: i0, template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</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 svg-icon-1 position-absolute ms-3\">\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\"></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 type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" 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 <div class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <!-- <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeId' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'storeId' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th> -->\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && data.checkListType === 'custom') || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.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}}.rotate{rotate:180deg;transition:1s}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }] });
|
|
252
252
|
}
|
|
253
253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChecklistComponent, decorators: [{
|
|
254
254
|
type: Component,
|
|
255
|
-
args: [{ selector: 'lib-checklist', template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div>\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</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 svg-icon-1 position-absolute ms-3\">\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\"></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 type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" 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 <div class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <!-- <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeId' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'storeId' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th> -->\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && data.checkListType === 'custom') || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.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}}.rotate{rotate:180deg;transition:1s}\n"] }]
|
|
255
|
+
args: [{ selector: 'lib-checklist', template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</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 svg-icon-1 position-absolute ms-3\">\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\"></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 type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" 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 <div class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <!-- <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeId' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'storeId' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th> -->\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" 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]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && data.checkListType === 'custom') || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.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}}.rotate{rotate:180deg;transition:1s}\n"] }]
|
|
256
256
|
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.TraxService }, { type: i1.GlobalStateService }, { type: i3.ToastService }, { type: i4.Router }, { type: i5.NgbModal }, { type: i0.ChangeDetectorRef }] });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBU3RFLE1BQU0sT0FBTyxrQkFBa0I7SUFtQlQ7SUFBaUM7SUFBK0I7SUFBOEI7SUFBMkI7SUFBcUI7SUFBd0I7SUFsQjFMLE9BQU8sR0FBVyxJQUFJLENBQUM7SUFDdkIsTUFBTSxHQUFXLEtBQUssQ0FBQztJQUN2QixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ25CLFVBQVUsQ0FBUTtJQUNsQixlQUFlLEdBQU8sRUFBRSxDQUFDO0lBQ3pCLGFBQWEsR0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMvQixXQUFXLEdBQU87UUFDaEIsUUFBUSxFQUFDLEVBQUU7UUFDWCxTQUFTLEVBQUMsRUFBRTtRQUNaLE9BQU8sRUFBQyxFQUFFO1FBQ1YsS0FBSyxFQUFDLEVBQUU7UUFDUixNQUFNLEVBQUMsQ0FBQztRQUNSLFVBQVUsRUFBQyxFQUFFO1FBQ2IsTUFBTSxFQUFDLEVBQUU7UUFDVCxNQUFNLEVBQUMsRUFBRTtLQUNWLENBQUM7SUFFRixZQUFvQixR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LElBQUksR0FBRyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFBO3FCQUN6QjtvQkFDRCxJQUFHLENBQUMsV0FBVyxFQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDekMsSUFBSSxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUE7cUJBQ3pCO2lCQUNGO2FBQ0Y7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRWYsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ25CLENBQUM7d0dBOU9VLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHFEQ2QvQixvby9CQXVVTTs7NEZEelRPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHttYXAsIFN1YmplY3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jaGVja2xpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBsb2FkaW5nOmJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vRGF0YTpib29sZWFuID0gZmFsc2U7XHJcbiAgcGFnZVNpemU6bnVtYmVyPTEwO1xyXG4gIHRvdGFsSXRlbXM6bnVtYmVyO1xyXG4gIHBhZ2luYXRpb25TaXplczphbnkgPSBbXTtcclxuICBjaGVja2xpc3REYXRhOmFueSA9IFtdO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBkeW5hbWljRGF0YTphbnkgPSB7XHJcbiAgICBjbGllbnRJZDonJyxcclxuICAgIHN0YXJ0RGF0ZTonJyxcclxuICAgIGVuZERhdGU6JycsXHJcbiAgICBsaW1pdDoxMCxcclxuICAgIG9mZnNldDoxLFxyXG4gICAgc29ydENvbHVtbjonJyxcclxuICAgIHNvcnRCeTonJyxcclxuICAgIHNlYXJjaDonJ1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgdHJheFNlcnZpY2U6VHJheFNlcnZpY2UscHVibGljIGdzOkdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIHJvdXRlOlJvdXRlcixwcml2YXRlIGRpYWxvZzpOZ2JNb2RhbCxwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICBsZXQgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fScpO1xyXG4gICAgaWYoIXN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbGllbnQtZGV0YWlscycpIHx8ICd7fScpO1xyXG4gICAgICBzdG9yYWdlRGV0YWlscy5jbGllbnQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnRJZDtcclxuICAgIH1cclxuICAgIGlmKHN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudDtcclxuICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRldGFjaC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXRhY2guY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIk1hbmFnZSBDaGVja2xpc3RcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKFwiQXV0b21hdGUgb3IgY3JlYXRlIGNoZWNrbGlzdHMgdG8gaW1wcm92ZSBvcGVyYXRpb25hbCBlZmZpY2llbmN5XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH1cclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tMaXN0KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuY2hlY2tsaXN0KHRoaXMuZHluYW1pY0RhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpID0+IHtcclxuICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhLnJlc3VsdC5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgaWYodGhpcy50b3RhbEl0ZW1zIDwgMTApIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbEl0ZW1zXTtcclxuICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuY2hlY2tsaXN0RGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbMTAsMjAsMzBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycm9yOmFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IuZXJyb3IuZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNvcnQoY29sdW1uOmFueSkge1xyXG4gICAgaWYgKHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSB0aGlzLmR5bmFtaWNEYXRhLnNvcnRCeSA9PSAxID8gLTEgOiAxO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEubGltaXQgPSBldmVudDtcclxuICAgIHRoaXMucGFnZVNpemUgPSBldmVudDtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdChkYXRhOmFueSxkZXRhaWxzOmFueSkge1xyXG4gICAgaWYoZGF0YSA9PSAnZWRpdCcpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0P2NoZWNrbGlzdElkPSR7ZGV0YWlsc31gKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZihkYXRhID09ICdzZXR0aW5nJykge1xyXG4gICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jb25maWd1cmU/Y2hlY2tMaXN0SWQ9JHtkZXRhaWxzfSZkaXNhYmxlZFF1ZXN0aW9uPXRydWVgKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZihkYXRhID09ICdkdXBsaWNhdGUnKSB7XHJcbiAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjREFGMUZGXCIvPjxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNTU0NV82NzQzKVwiPjxwYXRoIGQ9XCJNMTMuMzMzIDIwLjAwMDdIMTIuNjY2M0MxMi4zMTI3IDIwLjAwMDcgMTEuOTczNiAxOS44NjAyIDExLjcyMzUgMTkuNjEwMUMxMS40NzM1IDE5LjM2MDEgMTEuMzMzIDE5LjAyMDkgMTEuMzMzIDE4LjY2NzNWMTIuNjY3M0MxMS4zMzMgMTIuMzEzNyAxMS40NzM1IDExLjk3NDYgMTEuNzIzNSAxMS43MjQ1QzExLjk3MzYgMTEuNDc0NSAxMi4zMTI3IDExLjMzNCAxMi42NjYzIDExLjMzNEgxOC42NjYzQzE5LjAyIDExLjMzNCAxOS4zNTkxIDExLjQ3NDUgMTkuNjA5MiAxMS43MjQ1QzE5Ljg1OTIgMTEuOTc0NiAxOS45OTk3IDEyLjMxMzcgMTkuOTk5NyAxMi42NjczVjEzLjMzNE0xNy4zMzMgMTYuMDAwN0gyMy4zMzNDMjQuMDY5NCAxNi4wMDA3IDI0LjY2NjMgMTYuNTk3NiAyNC42NjYzIDE3LjMzNFYyMy4zMzRDMjQuNjY2MyAyNC4wNzA0IDI0LjA2OTQgMjQuNjY3MyAyMy4zMzMgMjQuNjY3M0gxNy4zMzNDMTYuNTk2NiAyNC42NjczIDE1Ljk5OTcgMjQuMDcwNCAxNS45OTk3IDIzLjMzNFYxNy4zMzRDMTUuOTk5NyAxNi41OTc2IDE2LjU5NjYgMTYuMDAwNyAxNy4zMzMgMTYuMDAwN1pcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz48ZGVmcz48Y2xpcFBhdGggaWQ9XCJjbGlwMF81NTQ1XzY3NDNcIj48cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTApXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBEdXBsaWNhdGUgJyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSBTZWN0aW9uJz9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZHVwbGljYXRlIDxiPicke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0nPzwvYj4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdkdXBsaWNhdGUnXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtjZW50ZXJlZDp0cnVlLHNpemU6J21kJ30pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHsgXHJcbiAgICAgICAgaWYgKHJlcyA9PSAnZHVwbGljYXRlJykge1xyXG4gICAgICAgICAgdGhpcy50cmF4U2VydmljZS5kdXBsaWNhdGVjaGVja2xpc3Qoe2NoZWNrbGlzdElkOmRldGFpbHMuX2lkLGNsaWVudElkOnRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWR9KS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OihyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KGAke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gZHVwbGljYXRlZC5gKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgZmlsbD1cIiNGRUU0RTJcIi8+PHBhdGggZD1cIk0xMiAxNC4wMDA3SDEzLjMzMzNNMTMuMzMzMyAxNC4wMDA3SDI0TTEzLjMzMzMgMTQuMDAwN1YyMy4zMzRDMTMuMzMzMyAyMy42ODc2IDEzLjQ3MzggMjQuMDI2NyAxMy43MjM5IDI0LjI3NjhDMTMuOTczOSAyNC41MjY4IDE0LjMxMyAyNC42NjczIDE0LjY2NjcgMjQuNjY3M0gyMS4zMzMzQzIxLjY4NyAyNC42NjczIDIyLjAyNjEgMjQuNTI2OCAyMi4yNzYxIDI0LjI3NjhDMjIuNTI2MiAyNC4wMjY3IDIyLjY2NjcgMjMuNjg3NiAyMi42NjY3IDIzLjMzNFYxNC4wMDA3SDEzLjMzMzNaTTE1LjMzMzMgMTQuMDAwN1YxMi42NjczQzE1LjMzMzMgMTIuMzEzNyAxNS40NzM4IDExLjk3NDYgMTUuNzIzOSAxMS43MjQ1QzE1Ljk3MzkgMTEuNDc0NSAxNi4zMTMgMTEuMzM0IDE2LjY2NjcgMTEuMzM0SDE5LjMzMzNDMTkuNjg3IDExLjMzNCAyMC4wMjYxIDExLjQ3NDUgMjAuMjc2MSAxMS43MjQ1QzIwLjUyNjIgMTEuOTc0NiAyMC42NjY3IDEyLjMxMzcgMjAuNjY2NyAxMi42NjczVjE0LjAwMDdNMTYuNjY2NyAxNy4zMzRWMjEuMzM0TTE5LjMzMzMgMTcuMzM0VjIxLjMzNFwiIHN0cm9rZT1cIiNEOTJEMjBcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjRcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYERlbGV0ZSAnJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IFNlY3Rpb24nP2AsXHJcbiAgICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgPGI+JyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSc/PC9iPiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2RlbGV0ZSdcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge2NlbnRlcmVkOnRydWUsc2l6ZTonbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4geyBcclxuICAgICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmRlbGV0ZUNoZWNrbGlzdCh7aWQ6ZGV0YWlscy5faWQsY2xpZW50SWQ6dGhpcy5keW5hbWljRGF0YS5jbGllbnRJZH0pLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6KHJlczphbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoYCR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSBoYXMgYmVlbiBEZWxldGVkLmApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1Ymxpc2goZXZlbnQ6YW55LGRhdGE6YW55LGk6bnVtYmVyKSB7XHJcbiAgICBsZXQgcG9wdXBjb250ZW50O1xyXG4gICAgbGV0IGh0bWxDb250ZW50OmFueTtcclxuICAgIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMzggMjcuMDgxOFYyOC4wMDE4QzM3Ljk5ODggMzAuMTU4MiAzNy4zMDA1IDMyLjI1NjUgMzYuMDA5MyAzMy45ODM2QzM0LjcxODIgMzUuNzEwOCAzMi45MDMzIDM2Ljk3NDMgMzAuODM1NCAzNy41ODU3QzI4Ljc2NzQgMzguMTk3MSAyNi41NTczIDM4LjEyMzcgMjQuNTM0NSAzNy4zNzY0QzIyLjUxMTcgMzYuNjI5MSAyMC43ODQ3IDM1LjI0NzkgMTkuNjExIDMzLjQzODlDMTguNDM3MyAzMS42Mjk5IDE3Ljg3OTggMjkuNDg5OSAxOC4wMjE3IDI3LjMzODFDMTguMTYzNiAyNS4xODY0IDE4Ljk5NzIgMjMuMTM4MSAyMC4zOTgzIDIxLjQ5ODlDMjEuNzk5NCAxOS44NTk2IDIzLjY5MjggMTguNzE3MiAyNS43OTYyIDE4LjI0MkMyNy44OTk2IDE3Ljc2NjcgMzAuMTAwMyAxNy45ODQyIDMyLjA3IDE4Ljg2MThNMzggMjAuMDAxOEwyOCAzMC4wMTE4TDI1IDI3LjAxMThcIiBzdHJva2U9XCIjMDM5ODU1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHVibGlzaCAnJHtkYXRhLmNoZWNrTGlzdE5hbWV9JyBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgUHVibGlzaGluZyB3aWxsIG1ha2UgdGhpcyBjaGVja2xpc3QgbGl2ZSwgYW5kIGNoYW5nZXMgd2lsbCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdjb25maXJtJ1xyXG4gICAgICB9XHJcbiAgICAgIGh0bWxDb250ZW50PSBgJHtkYXRhLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIHB1Ymxpc2hlZDwvZGl2PmA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5wdWJsaXNoIOKAmCR7ZGF0YS5jaGVja0xpc3ROYW1lfeKAmSBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgVW5wdWJsaXNoaW5nIHdpbGwgcmVtb3ZlIHRoaXMgY2hlY2tsaXN0IGltbWVkaWF0ZWx5LCBhbmQgaXQgd2lsbCBubyBsb25nZXIgYmUgdmlzaWJsZSB0byBhc3NpZ25lZCBsb2NhdGlvbnMuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnY29uZmlybSdcclxuICAgICAgfVxyXG4gICAgICBodG1sQ29udGVudD0gYCR7ZGF0YS5jaGVja0xpc3ROYW1lfSBoYXMgYmVlbiB1bnB1Ymxpc2hlZGA7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyBcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgIHRoaXMudHJheFNlcnZpY2UucHVibGlzaCh7cHVibGlzaDogZXZlbnQudGFyZ2V0LmNoZWNrZWQsY2xpZW50SWQ6dGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCxjaGVja2xpc3RJZDpkYXRhLl9pZH0pLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXN1bHQ6YW55KSA9PntcclxuICAgICAgICAgIGlmKHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IGRhdGEucHVibGlzaFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sKGVycm9yOmFueSkgPT4ge1xyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgPSBkYXRhLnB1Ymxpc2g7XHJcbiAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnUGxlYXNlIHRyeSBhZnRlciBzb21ldGltZXMnO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycik7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KVxyXG4gICAgICB9IFxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IGRhdGEucHVibGlzaDtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSBcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgc2VhcmNoKCkge1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5vZmZzZXQgPSAxO1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5saW1pdCA9IDEwO1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IDEwO1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5zb3J0Q29sdW1uID0gJyc7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLnNvcnRCeSA9ICcnO1xyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VXJsKHR5cGU6YW55KSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jaGVja2xpc3QvbWFuYWdlY2hlY2tsaXN0P3R5cGU9JHt0eXBlfWApXHJcbiAgfVxyXG5cclxuICBjaGVja1Blcm1pc3Npb24odHlwZTphbnksZGF0YTphbnkpIHtcclxuICAgY29uc3Qgc3ViID0gIHRoaXMuZ3MudXNlckFjY2Vzcy5waXBlKG1hcCgodmFsKT0+e1xyXG4gICAgICBpZih2YWw/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KXtcclxuICAgICAgICAgIGlmKGRhdGEuY2hlY2tMaXN0VHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgICBpZihbJ2VkaXQnLCdkZWxldGUnXS5pbmNsdWRlcyh0eXBlKSAmJiAhZGF0YS5wdWJsaXNoKSB7XHJcbiAgICAgICAgICAgICAgZGF0YSA9IHR5cGUgPT0gJ2VkaXQnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3QodHlwZSxkYXRhKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKFsnZHVwbGljYXRlJywnc2V0dGluZyddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgZGF0YSA9IHR5cGUgPT0gJ3NldHRpbmcnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3QodHlwZSxkYXRhKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSkpLnN1YnNjcmliZSgpXHJcblxyXG4gICAgc3ViLnVuc3Vic2NyaWJlKClcclxuICB9XHJcbiAgXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHAtNSBtYi0xMFwiICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNBZGRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIG10LTNcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCIgbXktMCBjaGVja2xpc3RUaXRsZVwiPlxyXG4gICAgICAgICAgICBNYW5hZ2UgWW91ciBDaGVja2xpc3RcclxuICAgICAgICA8L2gxPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xIGNoZWNrbGlzdEhlYWRcIj5Zb3UgY2FuIGNyZWF0ZSBhbmQgbWFuYWdlIHlvdXIgY2hlY2tsaXN0IGhlcmU8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtdC0xMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjaGVja2xpc3RIZWFkXCI+XHJcbiAgICAgICAgICAgICAgICBDcmVhdGUgeW91ciBvd24gXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NjMgNy41MDAzM0M3Ljc3MjIyIDYuOTQzMzggOC4xNTg5MyA2LjQ3Mzc1IDguNjY3OTMgNi4xNzQ2QzkuMTc2OTMgNS44NzU0NiA5Ljc3NTM4IDUuNzY2MTEgMTAuMzU3MyA1Ljg2NTkyQzEwLjkzOTIgNS45NjU3MyAxMS40NjcgNi4yNjgyNiAxMS44NDcyIDYuNzE5OTNDMTIuMjI3NCA3LjE3MTYgMTIuNDM1NSA3Ljc0MzI2IDEyLjQzNDYgOC4zMzM2NkMxMi40MzQ2IDEwLjAwMDMgOS45MzQ2NCAxMC44MzM3IDkuOTM0NjQgMTAuODMzN00xMC4wMDEzIDE0LjE2N0gxMC4wMDk2TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImQtYmxvY2tcIiBkYXRhLWZzbGlnaHRib3g9XCJsaWdodGJveC1ob3Qtc2FsZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCInL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL25ld0NoZWNrbGlzdC5zdmdcIiAgY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzc1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtOCBtYi04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG14LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tsaXN0VGV4dFwiPkNyZWF0ZSBOZXcgQ2hlY2tsaXN0czwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIENvbmZpZ3VyZSBQcmVkZWZpbmVkIENoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy41NzYzIDcuNTAwMzNDNy43NzIyMiA2Ljk0MzM4IDguMTU4OTMgNi40NzM3NSA4LjY2NzkzIDYuMTc0NkM5LjE3NjkzIDUuODc1NDYgOS43NzUzOCA1Ljc2NjExIDEwLjM1NzMgNS44NjU5MkMxMC45MzkyIDUuOTY1NzMgMTEuNDY3IDYuMjY4MjYgMTEuODQ3MiA2LjcxOTkzQzEyLjIyNzQgNy4xNzE2IDEyLjQzNTUgNy43NDMyNiAxMi40MzQ2IDguMzMzNjZDMTIuNDM0NiAxMC4wMDAzIDkuOTM0NjQgMTAuODMzNyA5LjkzNDY0IDEwLjgzMzdNMTAuMDAxMyAxNC4xNjdIMTAuMDA5Nk0xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHJvdW5kZWQgcm91bmRlZC00IGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBocmVmPVwiL3NvcC9Db25maWd1cmU/dHlwZT1tb2JpbGV1c2FnZWRldGVjdGlvblwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJyZWRpcmVjdFVybCgncHJlZGVmaW5lZCcpXCIgY2xhc3M9XCJkLWJsb2NrIHctMTAwXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9wcmVkZWZpbmVkLnN2Z1wiIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3NcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LXN0YWNrIG10LTggbWItOCBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXgtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2xpc3RUZXh0XCI+Q2hvb3NlIGZyb20gYSBsaWJyYXJ5IG9mIHRlbXBsYXRlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWQgXCI+XHJcbiAgICAgICAgICAgICAgICBDb25maWd1cmUgeW91ciBQcmVkZWZpbmVkIEFJIGNoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy41NzYzIDcuNTAwMzNDNy43NzIyMiA2Ljk0MzM4IDguMTU4OTMgNi40NzM3NSA4LjY2NzkzIDYuMTc0NkM5LjE3NjkzIDUuODc1NDYgOS43NzUzOCA1Ljc2NjExIDEwLjM1NzMgNS44NjU5MkMxMC45MzkyIDUuOTY1NzMgMTEuNDY3IDYuMjY4MjYgMTEuODQ3MiA2LjcxOTkzQzEyLjIyNzQgNy4xNzE2IDEyLjQzNTUgNy43NDMyNiAxMi40MzQ2IDguMzMzNjZDMTIuNDM0NiAxMC4wMDAzIDkuOTM0NjQgMTAuODMzNyA5LjkzNDY0IDEwLjgzMzdNMTAuMDAxMyAxNC4xNjdIMTAuMDA5Nk0xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHJvdW5kZWQgcm91bmRlZC00IGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBocmVmPVwiL3NvcC9Db25maWd1cmU/dHlwZT1tb2JpbGV1c2FnZWRldGVjdGlvblwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJyZWRpcmVjdFVybCgnYWknKVwiIGNsYXNzPVwiZC1ibG9jayB3LTEwMFwiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2FpY2hlY2tsaXN0LnN2Z1wiIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3NcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1zdGFjayBtdC04IG1iLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXgtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2xpc3RUZXh0XCI+Q2hvb3NlIGZyb20gYSBsaWJyYXJ5IG9mIEFJIENoZWNrbGlzdHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTMgbWItNVwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlLXRleHQgbWItMlwiPkNoZWNrbGlzdCBJbmZvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInRleHQtc3ViIG1iLTJcIj5CYXNlZCBvbiAwNiBKYW4sIDIwMjLigJMgMTMgSmFuLCAyMDIyPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuNVwiIHg9XCIxNy4wMzY1XCIgeT1cIjE1LjEyMjNcIiB3aWR0aD1cIjguMTU1NDZcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKDQ1IDE3LjAzNjUgMTUuMTIyMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMTlDNi41NTU1NiAxOSAzIDE1LjQ0NDQgMyAxMUMzIDYuNTU1NTYgNi41NTU1NiAzIDExIDNDMTUuNDQ0NCAzIDE5IDYuNTU1NTYgMTkgMTFDMTkgMTUuNDQ0NCAxNS40NDQ0IDE5IDExIDE5Wk0xMSA1QzcuNTMzMzMgNSA1IDcuNTMzMzMgNSAxMUM1IDE0LjQ2NjcgNy41MzMzMyAxNyAxMSAxN0MxNC40NjY3IDE3IDE3IDE0LjQ2NjcgMTcgMTFDMTcgNy41MzMzMyAxNC40NjY3IDUgMTEgNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHBzLTE0IG1lLTJcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIFsobmdNb2RlbCldPVwiZHluYW1pY0RhdGEuc2VhcmNoXCIgKGNoYW5nZSk9XCJzZWFyY2goKVwiLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIicvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0J1wiIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIiFub0RhdGEgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNBZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDEzIDQuMTY2OTlWMTUuODMzN000LjE2Nzk3IDEwLjAwMDNIMTUuODM0NlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5DcmVhdGUgQ2hlY2tsaXN0PC9zcGFuPiA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBwYi01XCIgKm5nSWY9XCIhbG9hZGluZyAmJiBub0RhdGFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwic3RhcnRjaGVja2xpc3RcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3RfdGV4dCBmdy1zZW1pYm9sZCBtdC02IGNoZWNrU3RhcnRcIj5TdGFydCBieSBjcmVhdGluZyBhIGNoZWNrbGlzdDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdF9zcGFuIG10LTEgY2hlY2tsaXN0SGVhZFwiPkFueSBjaGVja2xpc3QgY3JlYXRlZCB3aWxsIGxpdmUgaGVyZS48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZGF0YS1rdC1zdWJzY3JpcHRpb24tdGFibGUtdG9vbGJhcj1cImJhc2VcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90YW5nb2V5ZS5haS9cIiBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lIGJ0biBidG4tbGlnaHQgdXBsb2FkIG14LTMgcHgtMTYgY2hlY2tTdGFydFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXBsb2FkdGV4dFwiPkhvdyBUb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGU/PC9zcGFuPjwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCInL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdCdcIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC0xNiBteC0yIG5nLXN0YXItaW5zZXJ0ZWQgY2hlY2tTdGFydFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzQWRkXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDAxIDQuMTY2MDJWMTUuODMyN000LjE2Njc1IDkuOTk5MzVIMTUuODMzNFwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwiY3JlYXRlXCI+Q3JlYXRlIE5ldzwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhbm9EYXRhICYmICFsb2FkaW5nXCIgY2Fsc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2NoZWNrTGlzdE5hbWUnKVwiPkNoZWNrbGlzdCA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY2hlY2tMaXN0TmFtZScgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjaGVja0xpc3ROYW1lJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdjcmVhdGVkQnlOYW1lJylcIj5DaGVja2xpc3QgT3duZXIgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NyZWF0ZWRCeU5hbWUnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY3JlYXRlZEJ5TmFtZScgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdjb3ZlcmFnZScpXCI+Q292ZXJhZ2UgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3N0b3JlSWQnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RvcmVJZCcgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3N0b3JlQ291bnQnKVwiPkFzc2lnbmVkIFRvIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdG9yZUNvdW50JyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3N0b3JlQ291bnQnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3F1ZXN0aW9uQ291bnQnKVwiPk5vLiBvZiBxdWVzdGlvbnMgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3F1ZXN0aW9uQ291bnQnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncXVlc3Rpb25Db3VudCcgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnc3RhdHVzJylcIj5TdGF0dXMgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3N0YXR1cycgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdGF0dXMnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPkFjdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgncHVibGlzaCcpXCI+UHVibGlzaCA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncHVibGlzaCcgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdwdWJsaXNoJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBjaGVja2xpc3REYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJzdG9yZVZpZXcob2JqKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGV4dC1jYXBpdGFsaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtMzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsIGJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IG1lLTJcIj57e2RhdGEuY2hlY2tMaXN0Q2hhci50b1VwcGVyQ2FzZSgpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIHRleHQtcHJpbWFyeVwiICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbSdcIj48YSBbcm91dGVyTGlua109XCJbJy9tYW5hZ2UvdHJheC9kYXNoYm9hcmQvaW5mbyddXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eXBlOiAnQ2hlY2tsaXN0JywgY2hlY2tsaXN0OiBkYXRhLl9pZCB9XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPiB7e2RhdGEuY2hlY2tMaXN0TmFtZX19PC9hPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeVwiICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbSdcIj57e2RhdGEuY2hlY2tMaXN0TmFtZX19IDxzcGFuICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbSdcIiBjbGFzcz1cIm14LTJcIj7inKg8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEuY3JlYXRlZEJ5TmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA+e3tkYXRhLnN0b3JlQ291bnR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgPnt7ZGF0YS5xdWVzdGlvbkNvdW50fX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJkYXRhLnB1Ymxpc2ggPyAnYmFkZ2UtbGlnaHQtc3VjY2VzcycgOiAnYmFkZ2UtbGlnaHQtcHJpbWFyeSdcIj57eyhkYXRhLnB1Ymxpc2ggPyAnUHVibGlzaGVkJyA6J2RyYWZ0JykgfCB0aXRsZWNhc2V9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtNlwiIFtuZ0NsYXNzXT1cIighZGF0YT8ucHVibGlzaCAmJiBkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAoY2xpY2spPVwiY2hlY2tQZXJtaXNzaW9uKCdlZGl0JyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjgzMjAzMSA5Ljk5OTY3QzAuODMyMDMxIDkuOTk5NjcgNC4xNjUzNiAzLjMzMzAxIDkuOTk4NyAzLjMzMzAxQzE1LjgzMiAzLjMzMzAxIDE5LjE2NTQgOS45OTk2NyAxOS4xNjU0IDkuOTk5NjdDMTkuMTY1NCA5Ljk5OTY3IDE1LjgzMiAxNi42NjYzIDkuOTk4NyAxNi42NjYzQzQuMTY1MzYgMTYuNjY2MyAwLjgzMjAzMSA5Ljk5OTY3IDAuODMyMDMxIDkuOTk5NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKCFkYXRhLnB1Ymxpc2ggJiYgZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS45OTg3IDEyLjQ5OTdDMTEuMzc5NCAxMi40OTk3IDEyLjQ5ODcgMTEuMzgwNCAxMi40OTg3IDkuOTk5NjdDMTIuNDk4NyA4LjYxODk2IDExLjM3OTQgNy40OTk2NyA5Ljk5ODcgNy40OTk2N0M4LjYxNzk5IDcuNDk5NjcgNy40OTg3IDguNjE4OTYgNy40OTg3IDkuOTk5NjdDNy40OTg3IDExLjM4MDQgOC42MTc5OSAxMi40OTk3IDkuOTk4NyAxMi40OTk3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIighZGF0YS5wdWJsaXNoICYmIGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS02XCIgW25nQ2xhc3NdPVwiKGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICdjdXJzb3ItcG9pbnRlcicgOiAnJ1wiICAoY2xpY2spPVwiY2hlY2tQZXJtaXNzaW9uKCdzZXR0aW5nJyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjI1NF8yMDI2MSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuOTk4NyAxMi40OTk3QzExLjM3OTQgMTIuNDk5NyAxMi40OTg3IDExLjM4MDQgMTIuNDk4NyA5Ljk5OTY3QzEyLjQ5ODcgOC42MTg5NiAxMS4zNzk0IDcuNDk5NjcgOS45OTg3IDcuNDk5NjdDOC42MTc5OSA3LjQ5OTY3IDcuNDk4NyA4LjYxODk2IDcuNDk4NyA5Ljk5OTY3QzcuNDk4NyAxMS4zODA0IDguNjE3OTkgMTIuNDk5NyA5Ljk5ODcgMTIuNDk5N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYuMTY1NCAxMi40OTk3QzE2LjA1NDQgMTIuNzUxIDE2LjAyMTMgMTMuMDI5OCAxNi4wNzA0IDEzLjMwMDJDMTYuMTE5NCAxMy41NzA1IDE2LjI0ODIgMTMuODE5OSAxNi40NDA0IDE0LjAxNjNMMTYuNDkwNCAxNC4wNjYzQzE2LjY0NTMgMTQuMjIxMSAxNi43NjgzIDE0LjQwNDkgMTYuODUyMSAxNC42MDczQzE2LjkzNiAxNC44MDk2IDE2Ljk3OTIgMTUuMDI2NSAxNi45NzkyIDE1LjI0NTVDMTYuOTc5MiAxNS40NjQ1IDE2LjkzNiAxNS42ODE0IDE2Ljg1MjEgMTUuODgzN0MxNi43NjgzIDE2LjA4NjEgMTYuNjQ1MyAxNi4yNjk5IDE2LjQ5MDQgMTYuNDI0N0MxNi4zMzU2IDE2LjU3OTYgMTYuMTUxOCAxNi43MDI2IDE1Ljk0OTQgMTYuNzg2NEMxNS43NDcxIDE2Ljg3MDMgMTUuNTMwMiAxNi45MTM1IDE1LjMxMTIgMTYuOTEzNUMxNS4wOTIyIDE2LjkxMzUgMTQuODc1MyAxNi44NzAzIDE0LjY3MyAxNi43ODY0QzE0LjQ3MDYgMTYuNzAyNiAxNC4yODY4IDE2LjU3OTYgMTQuMTMyIDE2LjQyNDdMMTQuMDgyIDE2LjM3NDdDMTMuODg1NiAxNi4xODI2IDEzLjYzNjIgMTYuMDUzNyAxMy4zNjU5IDE2LjAwNDdDMTMuMDk1NSAxNS45NTU3IDEyLjgxNjcgMTUuOTg4NyAxMi41NjU0IDE2LjA5OTdDMTIuMzE4OSAxNi4yMDUzIDEyLjEwODcgMTYuMzgwNyAxMS45NjA2IDE2LjYwNDNDMTEuODEyNiAxNi44Mjc5IDExLjczMzEgMTcuMDg5OSAxMS43MzIgMTcuMzU4VjE3LjQ5OTdDMTEuNzMyIDE3Ljk0MTcgMTEuNTU2NCAxOC4zNjU2IDExLjI0MzkgMTguNjc4MkMxMC45MzEzIDE4Ljk5MDcgMTAuNTA3NCAxOS4xNjYzIDEwLjA2NTQgMTkuMTY2M0M5LjYyMzM0IDE5LjE2NjMgOS4xOTk0MSAxOC45OTA3IDguODg2ODUgMTguNjc4MkM4LjU3NDI5IDE4LjM2NTYgOC4zOTg3IDE3Ljk0MTcgOC4zOTg3IDE3LjQ5OTdWMTcuNDI0N0M4LjM5MjI1IDE3LjE0ODggOC4zMDI5NiAxNi44ODEzIDguMTQyNDYgMTYuNjU2OUM3Ljk4MTk1IDE2LjQzMjUgNy43NTc2NCAxNi4yNjE2IDcuNDk4NyAxNi4xNjYzQzcuMjQ3MzUgMTYuMDU1NCA2Ljk2ODU0IDE2LjAyMjMgNi42OTgyMSAxNi4wNzEzQzYuNDI3ODggMTYuMTIwNCA2LjE3ODQzIDE2LjI0OTIgNS45ODIwMyAxNi40NDEzTDUuOTMyMDMgMTYuNDkxM0M1Ljc3NzI0IDE2LjY0NjMgNS41OTM0MyAxNi43NjkyIDUuMzkxMSAxNi44NTMxQzUuMTg4NzcgMTYuOTM3IDQuOTcxODkgMTYuOTgwMiA0Ljc1Mjg2IDE2Ljk4MDJDNC41MzM4NCAxNi45ODAyIDQuMzE2OTYgMTYuOTM3IDQuMTE0NjMgMTYuODUzMUMzLjkxMjMgMTYuNzY5MiAzLjcyODQ5IDE2LjY0NjMgMy41NzM3IDE2LjQ5MTNDMy40MTg3NCAxNi4zMzY2IDMuMjk1ODEgMTYuMTUyNyAzLjIxMTkzIDE1Ljk1MDRDMy4xMjgwNiAxNS43NDgxIDMuMDg0ODkgMTUuNTMxMiAzLjA4NDg5IDE1LjMxMjJDMy4wODQ4OSAxNS4wOTMxIDMuMTI4MDYgMTQuODc2MyAzLjIxMTkzIDE0LjY3MzlDMy4yOTU4MSAxNC40NzE2IDMuNDE4NzQgMTQuMjg3OCAzLjU3MzcgMTQuMTMzTDMuNjIzNyAxNC4wODNDMy44MTU4MSAxMy44ODY2IDMuOTQ0NjkgMTMuNjM3MiAzLjk5MzcgMTMuMzY2OEM0LjA0MjcyIDEzLjA5NjUgNC4wMDk2MyAxMi44MTc3IDMuODk4NyAxMi41NjYzQzMuNzkzMDYgMTIuMzE5OSAzLjYxNzY2IDEyLjEwOTcgMy4zOTQwOSAxMS45NjE2QzMuMTcwNTEgMTEuODEzNSAyLjkwODUyIDExLjczNDEgMi42NDAzNiAxMS43MzNIMi40OTg3QzIuMDU2NjcgMTEuNzMzIDEuNjMyNzUgMTEuNTU3NCAxLjMyMDE5IDExLjI0NDlDMS4wMDc2MyAxMC45MzIzIDAuODMyMDMxIDEwLjUwODQgMC44MzIwMzEgMTAuMDY2M0MwLjgzMjAzMSA5LjYyNDMxIDEuMDA3NjMgOS4yMDAzOSAxLjMyMDE5IDguODg3ODNDMS42MzI3NSA4LjU3NTI3IDIuMDU2NjcgOC4zOTk2NyAyLjQ5ODcgOC4zOTk2N0gyLjU3MzdDMi44NDk1MyA4LjM5MzIyIDMuMTE3MDMgOC4zMDM5NCAzLjM0MTQ1IDguMTQzNDNDMy41NjU4NiA3Ljk4MjkzIDMuNzM2NzkgNy43NTg2MiAzLjgzMjAzIDcuNDk5NjdDMy45NDI5NiA3LjI0ODMzIDMuOTc2MDUgNi45Njk1MSAzLjkyNzAzIDYuNjk5MThDMy44NzgwMiA2LjQyODg1IDMuNzQ5MTQgNi4xNzk0MSAzLjU1NzAzIDUuOTgzMDFMMy41MDcwMyA1LjkzMzAxQzMuMzUyMDcgNS43NzgyMiAzLjIyOTE0IDUuNTk0NCAzLjE0NTI2IDUuMzkyMDdDMy4wNjEzOSA1LjE4OTc0IDMuMDE4MjIgNC45NzI4NyAzLjAxODIyIDQuNzUzODRDMy4wMTgyMiA0LjUzNDgxIDMuMDYxMzkgNC4zMTc5NCAzLjE0NTI2IDQuMTE1NjFDMy4yMjkxNCAzLjkxMzI4IDMuMzUyMDcgMy43Mjk0NiAzLjUwNzAzIDMuNTc0NjdDMy42NjE4MiAzLjQxOTcxIDMuODQ1NjMgMy4yOTY3OCA0LjA0Nzk2IDMuMjEyOTFDNC4yNTAyOSAzLjEyOTAzIDQuNDY3MTcgMy4wODU4NiA0LjY4NjIgMy4wODU4NkM0LjkwNTIyIDMuMDg1ODYgNS4xMjIxIDMuMTI5MDMgNS4zMjQ0MyAzLjIxMjkxQzUuNTI2NzYgMy4yOTY3OCA1LjcxMDU4IDMuNDE5NzEgNS44NjUzNiAzLjU3NDY3TDUuOTE1MzYgMy42MjQ2N0M2LjExMTc2IDMuODE2NzkgNi4zNjEyMSAzLjk0NTY2IDYuNjMxNTQgMy45OTQ2OEM2LjkwMTg3IDQuMDQzNjkgNy4xODA2OCA0LjAxMDYgNy40MzIwMyAzLjg5OTY3SDcuNDk4N0M3Ljc0NTE3IDMuNzk0MDQgNy45NTUzOCAzLjYxODY0IDguMTAzNDQgMy4zOTUwNkM4LjI1MTUgMy4xNzE0OSA4LjMzMDk2IDIuOTA5NSA4LjMzMjAzIDIuNjQxMzRWMi40OTk2N0M4LjMzMjAzIDIuMDU3NjUgOC41MDc2MyAxLjYzMzcyIDguODIwMTkgMS4zMjExNkM5LjEzMjc1IDEuMDA4NiA5LjU1NjY3IDAuODMzMDA4IDkuOTk4NyAwLjgzMzAwOEMxMC40NDA3IDAuODMzMDA4IDEwLjg2NDYgMS4wMDg2IDExLjE3NzIgMS4zMjExNkMxMS40ODk4IDEuNjMzNzIgMTEuNjY1NCAyLjA1NzY1IDExLjY2NTQgMi40OTk2N1YyLjU3NDY3QzExLjY2NjQgMi44NDI4MyAxMS43NDU5IDMuMTA0ODIgMTEuODk0IDMuMzI4NEMxMi4wNDIgMy41NTE5NyAxMi4yNTIyIDMuNzI3MzcgMTIuNDk4NyAzLjgzMzAxQzEyLjc1IDMuOTQzOTQgMTMuMDI4OSAzLjk3NzAzIDEzLjI5OTIgMy45MjgwMUMxMy41Njk1IDMuODc5IDEzLjgxOSAzLjc1MDEyIDE0LjAxNTQgMy41NTgwMUwxNC4wNjU0IDMuNTA4MDFDMTQuMjIwMiAzLjM1MzA1IDE0LjQwNCAzLjIzMDEyIDE0LjYwNjMgMy4xNDYyNEMxNC44MDg2IDMuMDYyMzcgMTUuMDI1NSAzLjAxOTIgMTUuMjQ0NSAzLjAxOTJDMTUuNDYzNiAzLjAxOTIgMTUuNjgwNCAzLjA2MjM3IDE1Ljg4MjggMy4xNDYyNEMxNi4wODUxIDMuMjMwMTIgMTYuMjY4OSAzLjM1MzA1IDE2LjQyMzcgMy41MDgwMUMxNi41Nzg3IDMuNjYyOCAxNi43MDE2IDMuODQ2NjEgMTYuNzg1NSA0LjA0ODk0QzE2Ljg2OTMgNC4yNTEyNyAxNi45MTI1IDQuNDY4MTUgMTYuOTEyNSA0LjY4NzE3QzE2LjkxMjUgNC45MDYyIDE2Ljg2OTMgNS4xMjMwOCAxNi43ODU1IDUuMzI1NDFDMTYuNzAxNiA1LjUyNzc0IDE2LjU3ODcgNS43MTE1NSAxNi40MjM3IDUuODY2MzRMMTYuMzczNyA1LjkxNjM0QzE2LjE4MTYgNi4xMTI3NCAxNi4wNTI3IDYuMzYyMTkgMTYuMDAzNyA2LjYzMjUyQzE1Ljk1NDcgNi45MDI4NSAxNS45ODc4IDcuMTgxNjYgMTYuMDk4NyA3LjQzMzAxVjcuNDk5NjdDMTYuMjA0MyA3Ljc0NjE1IDE2LjM3OTcgNy45NTYzNSAxNi42MDMzIDguMTA0NDJDMTYuODI2OSA4LjI1MjQ4IDE3LjA4ODkgOC4zMzE5NCAxNy4zNTcgOC4zMzMwMUgxNy40OTg3QzE3Ljk0MDcgOC4zMzMwMSAxOC4zNjQ2IDguNTA4NiAxOC42NzcyIDguODIxMTZDMTguOTg5OCA5LjEzMzcyIDE5LjE2NTQgOS41NTc2NSAxOS4xNjU0IDkuOTk5NjdDMTkuMTY1NCAxMC40NDE3IDE4Ljk4OTggMTAuODY1NiAxOC42NzcyIDExLjE3ODJDMTguMzY0NiAxMS40OTA3IDE3Ljk0MDcgMTEuNjY2MyAxNy40OTg3IDExLjY2NjNIMTcuNDIzN0MxNy4xNTU1IDExLjY2NzQgMTYuODkzNiAxMS43NDY5IDE2LjY3IDExLjg5NDlDMTYuNDQ2NCAxMi4wNDMgMTYuMjcxIDEyLjI1MzIgMTYuMTY1NCAxMi40OTk3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjI1NF8yMDI2MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIFtuZ0NsYXNzXT1cIihkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAgKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignZHVwbGljYXRlJyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjI1NF8yMDI2NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuMTY3OTcgMTIuNTAwM0gzLjMzNDY0QzIuODkyNjEgMTIuNTAwMyAyLjQ2ODY4IDEyLjMyNDcgMi4xNTYxMiAxMi4wMTIyQzEuODQzNTYgMTEuNjk5NiAxLjY2Nzk3IDExLjI3NTcgMS42Njc5NyAxMC44MzM3VjMuMzMzNjZDMS42Njc5NyAyLjg5MTYzIDEuODQzNTYgMi40Njc3MSAyLjE1NjEyIDIuMTU1MTVDMi40Njg2OCAxLjg0MjU5IDIuODkyNjEgMS42NjY5OSAzLjMzNDY0IDEuNjY2OTlIMTAuODM0NkMxMS4yNzY3IDEuNjY2OTkgMTEuNzAwNiAxLjg0MjU5IDEyLjAxMzEgMi4xNTUxNUMxMi4zMjU3IDIuNDY3NzEgMTIuNTAxMyAyLjg5MTYzIDEyLjUwMTMgMy4zMzM2NlY0LjE2Njk5TTkuMTY3OTcgNy41MDAzM0gxNi42NjhDMTcuNTg4NCA3LjUwMDMzIDE4LjMzNDYgOC4yNDY1MiAxOC4zMzQ2IDkuMTY2OTlWMTYuNjY3QzE4LjMzNDYgMTcuNTg3NSAxNy41ODg0IDE4LjMzMzcgMTYuNjY4IDE4LjMzMzdIOS4xNjc5N0M4LjI0NzQ5IDE4LjMzMzcgNy41MDEzIDE3LjU4NzUgNy41MDEzIDE2LjY2N1Y5LjE2Njk5QzcuNTAxMyA4LjI0NjUyIDguMjQ3NDkgNy41MDAzMyA5LjE2Nzk3IDcuNTAwMzNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0ID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMjU0XzIwMjY1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJjaGVja1Blcm1pc3Npb24oJ2RlbGV0ZScsZGF0YSlcIiBbbmdDbGFzc109XCIhZGF0YT8ucHVibGlzaCAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQgID8gJ2N1cnNvci1wb2ludGVyJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQxXCIgdmlld0JveD1cIjAgMCA0MCA0MVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zMTYyXzEwNDE0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNSAxNS4wMjI4SDE0LjE2NjdNMTQuMTY2NyAxNS4wMjI4SDI3LjVNMTQuMTY2NyAxNS4wMjI4VjI2LjY4OTVDMTQuMTY2NyAyNy4xMzE1IDE0LjM0MjMgMjcuNTU1NCAxNC42NTQ4IDI3Ljg2OEMxNC45Njc0IDI4LjE4MDUgMTUuMzkxMyAyOC4zNTYxIDE1LjgzMzMgMjguMzU2MUgyNC4xNjY3QzI0LjYwODcgMjguMzU2MSAyNS4wMzI2IDI4LjE4MDUgMjUuMzQ1MiAyNy44NjhDMjUuNjU3NyAyNy41NTU0IDI1LjgzMzMgMjcuMTMxNSAyNS44MzMzIDI2LjY4OTVWMTUuMDIyOEgxNC4xNjY3Wk0xNi42NjY3IDE1LjAyMjhWMTMuMzU2MUMxNi42NjY3IDEyLjkxNDEgMTYuODQyMyAxMi40OTAyIDE3LjE1NDggMTIuMTc3NkMxNy40Njc0IDExLjg2NSAxNy44OTEzIDExLjY4OTUgMTguMzMzMyAxMS42ODk1SDIxLjY2NjdDMjIuMTA4NyAxMS42ODk1IDIyLjUzMjYgMTEuODY1IDIyLjg0NTIgMTIuMTc3NkMyMy4xNTc3IDEyLjQ5MDIgMjMuMzMzMyAxMi45MTQxIDIzLjMzMzMgMTMuMzU2MVYxNS4wMjI4TTE4LjMzMzMgMTkuMTg5NVYyNC4xODk1TTIxLjY2NjcgMTkuMTg5NVYyNC4xODk1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIighKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0IHx8IGRhdGEucHVibGlzaCB8fCBkYXRhLmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nKSA/ICcjRDBENUREJyA6JyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8zMTYyXzEwNDE0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMCAxMC4wMjM0KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiIChjaGFuZ2UpPVwicHVibGlzaCgkZXZlbnQsIGRhdGEsaSlcIiBbY2hlY2tlZF09XCJkYXRhPy5wdWJsaXNoXCIgW2Rpc2FibGVkXT1cIighZGF0YT8uc3RvcmVDb3VudCAmJiBkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nKSB8fCAhKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cImR5bmFtaWNEYXRhLmxpbWl0XCIgW2N1cnJlbnRQYWdlXT1cImR5bmFtaWNEYXRhLm9mZnNldFwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBU3RFLE1BQU0sT0FBTyxrQkFBa0I7SUFtQlQ7SUFBaUM7SUFBK0I7SUFBOEI7SUFBMkI7SUFBcUI7SUFBd0I7SUFsQjFMLE9BQU8sR0FBVyxJQUFJLENBQUM7SUFDdkIsTUFBTSxHQUFXLEtBQUssQ0FBQztJQUN2QixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ25CLFVBQVUsQ0FBUTtJQUNsQixlQUFlLEdBQU8sRUFBRSxDQUFDO0lBQ3pCLGFBQWEsR0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMvQixXQUFXLEdBQU87UUFDaEIsUUFBUSxFQUFDLEVBQUU7UUFDWCxTQUFTLEVBQUMsRUFBRTtRQUNaLE9BQU8sRUFBQyxFQUFFO1FBQ1YsS0FBSyxFQUFDLEVBQUU7UUFDUixNQUFNLEVBQUMsQ0FBQztRQUNSLFVBQVUsRUFBQyxFQUFFO1FBQ2IsTUFBTSxFQUFDLEVBQUU7UUFDVCxNQUFNLEVBQUMsRUFBRTtLQUNWLENBQUM7SUFFRixZQUFvQixR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LElBQUksR0FBRyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFBO3FCQUN6QjtvQkFDRCxJQUFHLENBQUMsV0FBVyxFQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDekMsSUFBSSxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUE7cUJBQ3pCO2lCQUNGO2FBQ0Y7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRWYsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ25CLENBQUM7d0dBOU9VLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHFEQ2QvQixpcC9CQXdVTTs7NEZEMVRPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHttYXAsIFN1YmplY3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jaGVja2xpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBsb2FkaW5nOmJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vRGF0YTpib29sZWFuID0gZmFsc2U7XHJcbiAgcGFnZVNpemU6bnVtYmVyPTEwO1xyXG4gIHRvdGFsSXRlbXM6bnVtYmVyO1xyXG4gIHBhZ2luYXRpb25TaXplczphbnkgPSBbXTtcclxuICBjaGVja2xpc3REYXRhOmFueSA9IFtdO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBkeW5hbWljRGF0YTphbnkgPSB7XHJcbiAgICBjbGllbnRJZDonJyxcclxuICAgIHN0YXJ0RGF0ZTonJyxcclxuICAgIGVuZERhdGU6JycsXHJcbiAgICBsaW1pdDoxMCxcclxuICAgIG9mZnNldDoxLFxyXG4gICAgc29ydENvbHVtbjonJyxcclxuICAgIHNvcnRCeTonJyxcclxuICAgIHNlYXJjaDonJ1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgdHJheFNlcnZpY2U6VHJheFNlcnZpY2UscHVibGljIGdzOkdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIHJvdXRlOlJvdXRlcixwcml2YXRlIGRpYWxvZzpOZ2JNb2RhbCxwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICBsZXQgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fScpO1xyXG4gICAgaWYoIXN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbGllbnQtZGV0YWlscycpIHx8ICd7fScpO1xyXG4gICAgICBzdG9yYWdlRGV0YWlscy5jbGllbnQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnRJZDtcclxuICAgIH1cclxuICAgIGlmKHN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudDtcclxuICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRldGFjaC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXRhY2guY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIk1hbmFnZSBDaGVja2xpc3RcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKFwiQXV0b21hdGUgb3IgY3JlYXRlIGNoZWNrbGlzdHMgdG8gaW1wcm92ZSBvcGVyYXRpb25hbCBlZmZpY2llbmN5XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH1cclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tMaXN0KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuY2hlY2tsaXN0KHRoaXMuZHluYW1pY0RhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpID0+IHtcclxuICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhLnJlc3VsdC5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgaWYodGhpcy50b3RhbEl0ZW1zIDwgMTApIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbEl0ZW1zXTtcclxuICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuY2hlY2tsaXN0RGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbMTAsMjAsMzBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycm9yOmFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IuZXJyb3IuZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNvcnQoY29sdW1uOmFueSkge1xyXG4gICAgaWYgKHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSB0aGlzLmR5bmFtaWNEYXRhLnNvcnRCeSA9PSAxID8gLTEgOiAxO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEubGltaXQgPSBldmVudDtcclxuICAgIHRoaXMucGFnZVNpemUgPSBldmVudDtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdChkYXRhOmFueSxkZXRhaWxzOmFueSkge1xyXG4gICAgaWYoZGF0YSA9PSAnZWRpdCcpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0P2NoZWNrbGlzdElkPSR7ZGV0YWlsc31gKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZihkYXRhID09ICdzZXR0aW5nJykge1xyXG4gICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jb25maWd1cmU/Y2hlY2tMaXN0SWQ9JHtkZXRhaWxzfSZkaXNhYmxlZFF1ZXN0aW9uPXRydWVgKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZihkYXRhID09ICdkdXBsaWNhdGUnKSB7XHJcbiAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjREFGMUZGXCIvPjxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNTU0NV82NzQzKVwiPjxwYXRoIGQ9XCJNMTMuMzMzIDIwLjAwMDdIMTIuNjY2M0MxMi4zMTI3IDIwLjAwMDcgMTEuOTczNiAxOS44NjAyIDExLjcyMzUgMTkuNjEwMUMxMS40NzM1IDE5LjM2MDEgMTEuMzMzIDE5LjAyMDkgMTEuMzMzIDE4LjY2NzNWMTIuNjY3M0MxMS4zMzMgMTIuMzEzNyAxMS40NzM1IDExLjk3NDYgMTEuNzIzNSAxMS43MjQ1QzExLjk3MzYgMTEuNDc0NSAxMi4zMTI3IDExLjMzNCAxMi42NjYzIDExLjMzNEgxOC42NjYzQzE5LjAyIDExLjMzNCAxOS4zNTkxIDExLjQ3NDUgMTkuNjA5MiAxMS43MjQ1QzE5Ljg1OTIgMTEuOTc0NiAxOS45OTk3IDEyLjMxMzcgMTkuOTk5NyAxMi42NjczVjEzLjMzNE0xNy4zMzMgMTYuMDAwN0gyMy4zMzNDMjQuMDY5NCAxNi4wMDA3IDI0LjY2NjMgMTYuNTk3NiAyNC42NjYzIDE3LjMzNFYyMy4zMzRDMjQuNjY2MyAyNC4wNzA0IDI0LjA2OTQgMjQuNjY3MyAyMy4zMzMgMjQuNjY3M0gxNy4zMzNDMTYuNTk2NiAyNC42NjczIDE1Ljk5OTcgMjQuMDcwNCAxNS45OTk3IDIzLjMzNFYxNy4zMzRDMTUuOTk5NyAxNi41OTc2IDE2LjU5NjYgMTYuMDAwNyAxNy4zMzMgMTYuMDAwN1pcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz48ZGVmcz48Y2xpcFBhdGggaWQ9XCJjbGlwMF81NTQ1XzY3NDNcIj48cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTApXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBEdXBsaWNhdGUgJyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSBTZWN0aW9uJz9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZHVwbGljYXRlIDxiPicke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0nPzwvYj4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdkdXBsaWNhdGUnXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtjZW50ZXJlZDp0cnVlLHNpemU6J21kJ30pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHsgXHJcbiAgICAgICAgaWYgKHJlcyA9PSAnZHVwbGljYXRlJykge1xyXG4gICAgICAgICAgdGhpcy50cmF4U2VydmljZS5kdXBsaWNhdGVjaGVja2xpc3Qoe2NoZWNrbGlzdElkOmRldGFpbHMuX2lkLGNsaWVudElkOnRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWR9KS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OihyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KGAke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gZHVwbGljYXRlZC5gKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgZmlsbD1cIiNGRUU0RTJcIi8+PHBhdGggZD1cIk0xMiAxNC4wMDA3SDEzLjMzMzNNMTMuMzMzMyAxNC4wMDA3SDI0TTEzLjMzMzMgMTQuMDAwN1YyMy4zMzRDMTMuMzMzMyAyMy42ODc2IDEzLjQ3MzggMjQuMDI2NyAxMy43MjM5IDI0LjI3NjhDMTMuOTczOSAyNC41MjY4IDE0LjMxMyAyNC42NjczIDE0LjY2NjcgMjQuNjY3M0gyMS4zMzMzQzIxLjY4NyAyNC42NjczIDIyLjAyNjEgMjQuNTI2OCAyMi4yNzYxIDI0LjI3NjhDMjIuNTI2MiAyNC4wMjY3IDIyLjY2NjcgMjMuNjg3NiAyMi42NjY3IDIzLjMzNFYxNC4wMDA3SDEzLjMzMzNaTTE1LjMzMzMgMTQuMDAwN1YxMi42NjczQzE1LjMzMzMgMTIuMzEzNyAxNS40NzM4IDExLjk3NDYgMTUuNzIzOSAxMS43MjQ1QzE1Ljk3MzkgMTEuNDc0NSAxNi4zMTMgMTEuMzM0IDE2LjY2NjcgMTEuMzM0SDE5LjMzMzNDMTkuNjg3IDExLjMzNCAyMC4wMjYxIDExLjQ3NDUgMjAuMjc2MSAxMS43MjQ1QzIwLjUyNjIgMTEuOTc0NiAyMC42NjY3IDEyLjMxMzcgMjAuNjY2NyAxMi42NjczVjE0LjAwMDdNMTYuNjY2NyAxNy4zMzRWMjEuMzM0TTE5LjMzMzMgMTcuMzM0VjIxLjMzNFwiIHN0cm9rZT1cIiNEOTJEMjBcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjRcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYERlbGV0ZSAnJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IFNlY3Rpb24nP2AsXHJcbiAgICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgPGI+JyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSc/PC9iPiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2RlbGV0ZSdcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge2NlbnRlcmVkOnRydWUsc2l6ZTonbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4geyBcclxuICAgICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmRlbGV0ZUNoZWNrbGlzdCh7aWQ6ZGV0YWlscy5faWQsY2xpZW50SWQ6dGhpcy5keW5hbWljRGF0YS5jbGllbnRJZH0pLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6KHJlczphbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoYCR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSBoYXMgYmVlbiBEZWxldGVkLmApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1Ymxpc2goZXZlbnQ6YW55LGRhdGE6YW55LGk6bnVtYmVyKSB7XHJcbiAgICBsZXQgcG9wdXBjb250ZW50O1xyXG4gICAgbGV0IGh0bWxDb250ZW50OmFueTtcclxuICAgIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMzggMjcuMDgxOFYyOC4wMDE4QzM3Ljk5ODggMzAuMTU4MiAzNy4zMDA1IDMyLjI1NjUgMzYuMDA5MyAzMy45ODM2QzM0LjcxODIgMzUuNzEwOCAzMi45MDMzIDM2Ljk3NDMgMzAuODM1NCAzNy41ODU3QzI4Ljc2NzQgMzguMTk3MSAyNi41NTczIDM4LjEyMzcgMjQuNTM0NSAzNy4zNzY0QzIyLjUxMTcgMzYuNjI5MSAyMC43ODQ3IDM1LjI0NzkgMTkuNjExIDMzLjQzODlDMTguNDM3MyAzMS42Mjk5IDE3Ljg3OTggMjkuNDg5OSAxOC4wMjE3IDI3LjMzODFDMTguMTYzNiAyNS4xODY0IDE4Ljk5NzIgMjMuMTM4MSAyMC4zOTgzIDIxLjQ5ODlDMjEuNzk5NCAxOS44NTk2IDIzLjY5MjggMTguNzE3MiAyNS43OTYyIDE4LjI0MkMyNy44OTk2IDE3Ljc2NjcgMzAuMTAwMyAxNy45ODQyIDMyLjA3IDE4Ljg2MThNMzggMjAuMDAxOEwyOCAzMC4wMTE4TDI1IDI3LjAxMThcIiBzdHJva2U9XCIjMDM5ODU1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHVibGlzaCAnJHtkYXRhLmNoZWNrTGlzdE5hbWV9JyBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgUHVibGlzaGluZyB3aWxsIG1ha2UgdGhpcyBjaGVja2xpc3QgbGl2ZSwgYW5kIGNoYW5nZXMgd2lsbCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdjb25maXJtJ1xyXG4gICAgICB9XHJcbiAgICAgIGh0bWxDb250ZW50PSBgJHtkYXRhLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIHB1Ymxpc2hlZDwvZGl2PmA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5wdWJsaXNoIOKAmCR7ZGF0YS5jaGVja0xpc3ROYW1lfeKAmSBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgVW5wdWJsaXNoaW5nIHdpbGwgcmVtb3ZlIHRoaXMgY2hlY2tsaXN0IGltbWVkaWF0ZWx5LCBhbmQgaXQgd2lsbCBubyBsb25nZXIgYmUgdmlzaWJsZSB0byBhc3NpZ25lZCBsb2NhdGlvbnMuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnY29uZmlybSdcclxuICAgICAgfVxyXG4gICAgICBodG1sQ29udGVudD0gYCR7ZGF0YS5jaGVja0xpc3ROYW1lfSBoYXMgYmVlbiB1bnB1Ymxpc2hlZGA7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyBcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgIHRoaXMudHJheFNlcnZpY2UucHVibGlzaCh7cHVibGlzaDogZXZlbnQudGFyZ2V0LmNoZWNrZWQsY2xpZW50SWQ6dGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCxjaGVja2xpc3RJZDpkYXRhLl9pZH0pLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXN1bHQ6YW55KSA9PntcclxuICAgICAgICAgIGlmKHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IGRhdGEucHVibGlzaFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sKGVycm9yOmFueSkgPT4ge1xyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgPSBkYXRhLnB1Ymxpc2g7XHJcbiAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnUGxlYXNlIHRyeSBhZnRlciBzb21ldGltZXMnO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycik7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KVxyXG4gICAgICB9IFxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IGRhdGEucHVibGlzaDtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSBcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgc2VhcmNoKCkge1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5vZmZzZXQgPSAxO1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5saW1pdCA9IDEwO1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IDEwO1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5zb3J0Q29sdW1uID0gJyc7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLnNvcnRCeSA9ICcnO1xyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VXJsKHR5cGU6YW55KSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jaGVja2xpc3QvbWFuYWdlY2hlY2tsaXN0P3R5cGU9JHt0eXBlfWApXHJcbiAgfVxyXG5cclxuICBjaGVja1Blcm1pc3Npb24odHlwZTphbnksZGF0YTphbnkpIHtcclxuICAgY29uc3Qgc3ViID0gIHRoaXMuZ3MudXNlckFjY2Vzcy5waXBlKG1hcCgodmFsKT0+e1xyXG4gICAgICBpZih2YWw/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KXtcclxuICAgICAgICAgIGlmKGRhdGEuY2hlY2tMaXN0VHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgICBpZihbJ2VkaXQnLCdkZWxldGUnXS5pbmNsdWRlcyh0eXBlKSAmJiAhZGF0YS5wdWJsaXNoKSB7XHJcbiAgICAgICAgICAgICAgZGF0YSA9IHR5cGUgPT0gJ2VkaXQnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3QodHlwZSxkYXRhKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKFsnZHVwbGljYXRlJywnc2V0dGluZyddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgZGF0YSA9IHR5cGUgPT0gJ3NldHRpbmcnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3QodHlwZSxkYXRhKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSkpLnN1YnNjcmliZSgpXHJcblxyXG4gICAgc3ViLnVuc3Vic2NyaWJlKClcclxuICB9XHJcbiAgXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHAtNSBtYi0xMFwiICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNBZGRcIj5cclxuXHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIG10LTNcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCIgbXktMCBjaGVja2xpc3RUaXRsZVwiPlxyXG4gICAgICAgICAgICBNYW5hZ2UgWW91ciBDaGVja2xpc3RcclxuICAgICAgICA8L2gxPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xIGNoZWNrbGlzdEhlYWRcIj5Zb3UgY2FuIGNyZWF0ZSBhbmQgbWFuYWdlIHlvdXIgY2hlY2tsaXN0IGhlcmU8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgQ3JlYXRlIHlvdXIgb3duIFxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy41NzYzIDcuNTAwMzNDNy43NzIyMiA2Ljk0MzM4IDguMTU4OTMgNi40NzM3NSA4LjY2NzkzIDYuMTc0NkM5LjE3NjkzIDUuODc1NDYgOS43NzUzOCA1Ljc2NjExIDEwLjM1NzMgNS44NjU5MkMxMC45MzkyIDUuOTY1NzMgMTEuNDY3IDYuMjY4MjYgMTEuODQ3MiA2LjcxOTkzQzEyLjIyNzQgNy4xNzE2IDEyLjQzNTUgNy43NDMyNiAxMi40MzQ2IDguMzMzNjZDMTIuNDM0NiAxMC4wMDAzIDkuOTM0NjQgMTAuODMzNyA5LjkzNDY0IDEwLjgzMzdNMTAuMDAxMyAxNC4xNjdIMTAuMDA5Nk0xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHJvdW5kZWQgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkLWJsb2NrXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3QnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9uZXdDaGVja2xpc3Quc3ZnXCIgIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3NcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LXN0YWNrIG10LTggbWItOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHRcIj5DcmVhdGUgTmV3IENoZWNrbGlzdHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjaGVja2xpc3RIZWFkXCI+XHJcbiAgICAgICAgICAgICAgICBDb25maWd1cmUgUHJlZGVmaW5lZCBDaGVja2xpc3RcclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCByb3VuZGVkIHJvdW5kZWQtNCBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gaHJlZj1cIi9zb3AvQ29uZmlndXJlP3R5cGU9bW9iaWxldXNhZ2VkZXRlY3Rpb25cIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwicmVkaXJlY3RVcmwoJ3ByZWRlZmluZWQnKVwiIGNsYXNzPVwiZC1ibG9jayB3LTEwMFwiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvcHJlZGVmaW5lZC5zdmdcIiBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1zdGFjayBtdC04IG1iLTggXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG14LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tsaXN0VGV4dFwiPkNob29zZSBmcm9tIGEgbGlicmFyeSBvZiB0ZW1wbGF0ZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjaGVja2xpc3RIZWFkIFwiPlxyXG4gICAgICAgICAgICAgICAgQ29uZmlndXJlIHlvdXIgUHJlZGVmaW5lZCBBSSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCByb3VuZGVkIHJvdW5kZWQtNCBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gaHJlZj1cIi9zb3AvQ29uZmlndXJlP3R5cGU9bW9iaWxldXNhZ2VkZXRlY3Rpb25cIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwicmVkaXJlY3RVcmwoJ2FpJylcIiBjbGFzcz1cImQtYmxvY2sgdy0xMDBcIiBkYXRhLWZzbGlnaHRib3g9XCJsaWdodGJveC1ob3Qtc2FsZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9haWNoZWNrbGlzdC5zdmdcIiBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtOCBtYi04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG14LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tsaXN0VGV4dFwiPkNob29zZSBmcm9tIGEgbGlicmFyeSBvZiBBSSBDaGVja2xpc3RzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC0zIG1iLTVcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS10ZXh0IG1iLTJcIj5DaGVja2xpc3QgSW5mbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YiBtYi0yXCI+QmFzZWQgb24gMDYgSmFuLCAyMDIy4oCTIDEzIEphbiwgMjAyMjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjVcIiB4PVwiMTcuMDM2NVwiIHk9XCIxNS4xMjIzXCIgd2lkdGg9XCI4LjE1NTQ2XCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSg0NSAxNy4wMzY1IDE1LjEyMjMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExIDE5QzYuNTU1NTYgMTkgMyAxNS40NDQ0IDMgMTFDMyA2LjU1NTU2IDYuNTU1NTYgMyAxMSAzQzE1LjQ0NDQgMyAxOSA2LjU1NTU2IDE5IDExQzE5IDE1LjQ0NDQgMTUuNDQ0NCAxOSAxMSAxOVpNMTEgNUM3LjUzMzMzIDUgNSA3LjUzMzMzIDUgMTFDNSAxNC40NjY3IDcuNTMzMzMgMTcgMTEgMTdDMTQuNDY2NyAxNyAxNyAxNC40NjY3IDE3IDExQzE3IDcuNTMzMzMgMTQuNDY2NyA1IDExIDVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBwcy0xNCBtZS0yXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBbKG5nTW9kZWwpXT1cImR5bmFtaWNEYXRhLnNlYXJjaFwiIChjaGFuZ2UpPVwic2VhcmNoKClcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCInL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdCdcIiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhbm9EYXRhICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzQWRkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2Njk5VjE1LjgzMzdNNC4xNjc5NyAxMC4wMDAzSDE1LjgzNDZcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+Q3JlYXRlIENoZWNrbGlzdDwvc3Bhbj4gPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgcGItNVwiICpuZ0lmPVwiIWxvYWRpbmcgJiYgbm9EYXRhXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cInN0YXJ0Y2hlY2tsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0X3RleHQgZnctc2VtaWJvbGQgbXQtNiBjaGVja1N0YXJ0XCI+U3RhcnQgYnkgY3JlYXRpbmcgYSBjaGVja2xpc3Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3Rfc3BhbiBtdC0xIGNoZWNrbGlzdEhlYWRcIj5BbnkgY2hlY2tsaXN0IGNyZWF0ZWQgd2lsbCBsaXZlIGhlcmUuPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGRhdGEta3Qtc3Vic2NyaXB0aW9uLXRhYmxlLXRvb2xiYXI9XCJiYXNlXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vdGFuZ29leWUuYWkvXCIgY2xhc3M9XCJidG4tb3V0bGluZSBidG4tb3V0bGluZSBidG4gYnRuLWxpZ2h0IHVwbG9hZCBteC0zIHB4LTE2IGNoZWNrU3RhcnRcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVwbG9hZHRleHRcIj5Ib3cgVG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlPzwvc3Bhbj48L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3QnXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtMTYgbXgtMiBuZy1zdGFyLWluc2VydGVkIGNoZWNrU3RhcnRcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0FkZFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAwMSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY3NSA5Ljk5OTM1SDE1LjgzMzRcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZVwiPkNyZWF0ZSBOZXc8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiIGNhbHNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdjaGVja0xpc3ROYW1lJylcIj5DaGVja2xpc3QgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NoZWNrTGlzdE5hbWUnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY2hlY2tMaXN0TmFtZScgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnY3JlYXRlZEJ5TmFtZScpXCI+Q2hlY2tsaXN0IE93bmVyIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjcmVhdGVkQnlOYW1lJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NyZWF0ZWRCeU5hbWUnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnY292ZXJhZ2UnKVwiPkNvdmVyYWdlIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdG9yZUlkJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3N0b3JlSWQnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdzdG9yZUNvdW50JylcIj5Bc3NpZ25lZCBUbyA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RvcmVDb3VudCcgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdG9yZUNvdW50JyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdxdWVzdGlvbkNvdW50JylcIj5Oby4gb2YgcXVlc3Rpb25zIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdxdWVzdGlvbkNvdW50JyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3F1ZXN0aW9uQ291bnQnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3N0YXR1cycpXCI+U3RhdHVzIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdGF0dXMnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RhdHVzJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5BY3Rpb25zPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3B1Ymxpc2gnKVwiPlB1Ymxpc2ggPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3B1Ymxpc2gnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncHVibGlzaCcgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgY2hlY2tsaXN0RGF0YTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAoY2xpY2spPVwic3RvcmVWaWV3KG9iailcIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtY2FwaXRhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTM1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSBtZS0yXCI+e3tkYXRhLmNoZWNrTGlzdENoYXIudG9VcHBlckNhc2UoKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSB0ZXh0LXByaW1hcnlcIiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nXCI+PGEgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3RyYXgvZGFzaGJvYXJkL2luZm8nXVwiIFtxdWVyeVBhcmFtc109XCJ7dHlwZTogJ0NoZWNrbGlzdCcsIGNoZWNrbGlzdDogZGF0YS5faWQgfVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj4ge3tkYXRhLmNoZWNrTGlzdE5hbWV9fTwvYT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nXCI+e3tkYXRhLmNoZWNrTGlzdE5hbWV9fSA8c3BhbiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nXCIgY2xhc3M9XCJteC0yXCI+4pyoPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLmNyZWF0ZWRCeU5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgPnt7ZGF0YS5zdG9yZUNvdW50fX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkID57e2RhdGEucXVlc3Rpb25Db3VudH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwiZGF0YS5wdWJsaXNoID8gJ2JhZGdlLWxpZ2h0LXN1Y2Nlc3MnIDogJ2JhZGdlLWxpZ2h0LXByaW1hcnknXCI+e3soZGF0YS5wdWJsaXNoID8gJ1B1Ymxpc2hlZCcgOidkcmFmdCcpIHwgdGl0bGVjYXNlfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTZcIiBbbmdDbGFzc109XCIoIWRhdGE/LnB1Ymxpc2ggJiYgZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJ2N1cnNvci1wb2ludGVyJyA6ICcnXCIgKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignZWRpdCcsZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMC44MzIwMzEgOS45OTk2N0MwLjgzMjAzMSA5Ljk5OTY3IDQuMTY1MzYgMy4zMzMwMSA5Ljk5ODcgMy4zMzMwMUMxNS44MzIgMy4zMzMwMSAxOS4xNjU0IDkuOTk5NjcgMTkuMTY1NCA5Ljk5OTY3QzE5LjE2NTQgOS45OTk2NyAxNS44MzIgMTYuNjY2MyA5Ljk5ODcgMTYuNjY2M0M0LjE2NTM2IDE2LjY2NjMgMC44MzIwMzEgOS45OTk2NyAwLjgzMjAzMSA5Ljk5OTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIighZGF0YS5wdWJsaXNoICYmIGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuOTk4NyAxMi40OTk3QzExLjM3OTQgMTIuNDk5NyAxMi40OTg3IDExLjM4MDQgMTIuNDk4NyA5Ljk5OTY3QzEyLjQ5ODcgOC42MTg5NiAxMS4zNzk0IDcuNDk5NjcgOS45OTg3IDcuNDk5NjdDOC42MTc5OSA3LjQ5OTY3IDcuNDk4NyA4LjYxODk2IDcuNDk4NyA5Ljk5OTY3QzcuNDk4NyAxMS4zODA0IDguNjE3OTkgMTIuNDk5NyA5Ljk5ODcgMTIuNDk5N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCIoIWRhdGEucHVibGlzaCAmJiBkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtNlwiIFtuZ0NsYXNzXT1cIihkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAgKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignc2V0dGluZycsZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIyNTRfMjAyNjEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljk5ODcgMTIuNDk5N0MxMS4zNzk0IDEyLjQ5OTcgMTIuNDk4NyAxMS4zODA0IDEyLjQ5ODcgOS45OTk2N0MxMi40OTg3IDguNjE4OTYgMTEuMzc5NCA3LjQ5OTY3IDkuOTk4NyA3LjQ5OTY3QzguNjE3OTkgNy40OTk2NyA3LjQ5ODcgOC42MTg5NiA3LjQ5ODcgOS45OTk2N0M3LjQ5ODcgMTEuMzgwNCA4LjYxNzk5IDEyLjQ5OTcgOS45OTg3IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIihkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE2LjE2NTQgMTIuNDk5N0MxNi4wNTQ0IDEyLjc1MSAxNi4wMjEzIDEzLjAyOTggMTYuMDcwNCAxMy4zMDAyQzE2LjExOTQgMTMuNTcwNSAxNi4yNDgyIDEzLjgxOTkgMTYuNDQwNCAxNC4wMTYzTDE2LjQ5MDQgMTQuMDY2M0MxNi42NDUzIDE0LjIyMTEgMTYuNzY4MyAxNC40MDQ5IDE2Ljg1MjEgMTQuNjA3M0MxNi45MzYgMTQuODA5NiAxNi45NzkyIDE1LjAyNjUgMTYuOTc5MiAxNS4yNDU1QzE2Ljk3OTIgMTUuNDY0NSAxNi45MzYgMTUuNjgxNCAxNi44NTIxIDE1Ljg4MzdDMTYuNzY4MyAxNi4wODYxIDE2LjY0NTMgMTYuMjY5OSAxNi40OTA0IDE2LjQyNDdDMTYuMzM1NiAxNi41Nzk2IDE2LjE1MTggMTYuNzAyNiAxNS45NDk0IDE2Ljc4NjRDMTUuNzQ3MSAxNi44NzAzIDE1LjUzMDIgMTYuOTEzNSAxNS4zMTEyIDE2LjkxMzVDMTUuMDkyMiAxNi45MTM1IDE0Ljg3NTMgMTYuODcwMyAxNC42NzMgMTYuNzg2NEMxNC40NzA2IDE2LjcwMjYgMTQuMjg2OCAxNi41Nzk2IDE0LjEzMiAxNi40MjQ3TDE0LjA4MiAxNi4zNzQ3QzEzLjg4NTYgMTYuMTgyNiAxMy42MzYyIDE2LjA1MzcgMTMuMzY1OSAxNi4wMDQ3QzEzLjA5NTUgMTUuOTU1NyAxMi44MTY3IDE1Ljk4ODcgMTIuNTY1NCAxNi4wOTk3QzEyLjMxODkgMTYuMjA1MyAxMi4xMDg3IDE2LjM4MDcgMTEuOTYwNiAxNi42MDQzQzExLjgxMjYgMTYuODI3OSAxMS43MzMxIDE3LjA4OTkgMTEuNzMyIDE3LjM1OFYxNy40OTk3QzExLjczMiAxNy45NDE3IDExLjU1NjQgMTguMzY1NiAxMS4yNDM5IDE4LjY3ODJDMTAuOTMxMyAxOC45OTA3IDEwLjUwNzQgMTkuMTY2MyAxMC4wNjU0IDE5LjE2NjNDOS42MjMzNCAxOS4xNjYzIDkuMTk5NDEgMTguOTkwNyA4Ljg4Njg1IDE4LjY3ODJDOC41NzQyOSAxOC4zNjU2IDguMzk4NyAxNy45NDE3IDguMzk4NyAxNy40OTk3VjE3LjQyNDdDOC4zOTIyNSAxNy4xNDg4IDguMzAyOTYgMTYuODgxMyA4LjE0MjQ2IDE2LjY1NjlDNy45ODE5NSAxNi40MzI1IDcuNzU3NjQgMTYuMjYxNiA3LjQ5ODcgMTYuMTY2M0M3LjI0NzM1IDE2LjA1NTQgNi45Njg1NCAxNi4wMjIzIDYuNjk4MjEgMTYuMDcxM0M2LjQyNzg4IDE2LjEyMDQgNi4xNzg0MyAxNi4yNDkyIDUuOTgyMDMgMTYuNDQxM0w1LjkzMjAzIDE2LjQ5MTNDNS43NzcyNCAxNi42NDYzIDUuNTkzNDMgMTYuNzY5MiA1LjM5MTEgMTYuODUzMUM1LjE4ODc3IDE2LjkzNyA0Ljk3MTg5IDE2Ljk4MDIgNC43NTI4NiAxNi45ODAyQzQuNTMzODQgMTYuOTgwMiA0LjMxNjk2IDE2LjkzNyA0LjExNDYzIDE2Ljg1MzFDMy45MTIzIDE2Ljc2OTIgMy43Mjg0OSAxNi42NDYzIDMuNTczNyAxNi40OTEzQzMuNDE4NzQgMTYuMzM2NiAzLjI5NTgxIDE2LjE1MjcgMy4yMTE5MyAxNS45NTA0QzMuMTI4MDYgMTUuNzQ4MSAzLjA4NDg5IDE1LjUzMTIgMy4wODQ4OSAxNS4zMTIyQzMuMDg0ODkgMTUuMDkzMSAzLjEyODA2IDE0Ljg3NjMgMy4yMTE5MyAxNC42NzM5QzMuMjk1ODEgMTQuNDcxNiAzLjQxODc0IDE0LjI4NzggMy41NzM3IDE0LjEzM0wzLjYyMzcgMTQuMDgzQzMuODE1ODEgMTMuODg2NiAzLjk0NDY5IDEzLjYzNzIgMy45OTM3IDEzLjM2NjhDNC4wNDI3MiAxMy4wOTY1IDQuMDA5NjMgMTIuODE3NyAzLjg5ODcgMTIuNTY2M0MzLjc5MzA2IDEyLjMxOTkgMy42MTc2NiAxMi4xMDk3IDMuMzk0MDkgMTEuOTYxNkMzLjE3MDUxIDExLjgxMzUgMi45MDg1MiAxMS43MzQxIDIuNjQwMzYgMTEuNzMzSDIuNDk4N0MyLjA1NjY3IDExLjczMyAxLjYzMjc1IDExLjU1NzQgMS4zMjAxOSAxMS4yNDQ5QzEuMDA3NjMgMTAuOTMyMyAwLjgzMjAzMSAxMC41MDg0IDAuODMyMDMxIDEwLjA2NjNDMC44MzIwMzEgOS42MjQzMSAxLjAwNzYzIDkuMjAwMzkgMS4zMjAxOSA4Ljg4NzgzQzEuNjMyNzUgOC41NzUyNyAyLjA1NjY3IDguMzk5NjcgMi40OTg3IDguMzk5NjdIMi41NzM3QzIuODQ5NTMgOC4zOTMyMiAzLjExNzAzIDguMzAzOTQgMy4zNDE0NSA4LjE0MzQzQzMuNTY1ODYgNy45ODI5MyAzLjczNjc5IDcuNzU4NjIgMy44MzIwMyA3LjQ5OTY3QzMuOTQyOTYgNy4yNDgzMyAzLjk3NjA1IDYuOTY5NTEgMy45MjcwMyA2LjY5OTE4QzMuODc4MDIgNi40Mjg4NSAzLjc0OTE0IDYuMTc5NDEgMy41NTcwMyA1Ljk4MzAxTDMuNTA3MDMgNS45MzMwMUMzLjM1MjA3IDUuNzc4MjIgMy4yMjkxNCA1LjU5NDQgMy4xNDUyNiA1LjM5MjA3QzMuMDYxMzkgNS4xODk3NCAzLjAxODIyIDQuOTcyODcgMy4wMTgyMiA0Ljc1Mzg0QzMuMDE4MjIgNC41MzQ4MSAzLjA2MTM5IDQuMzE3OTQgMy4xNDUyNiA0LjExNTYxQzMuMjI5MTQgMy45MTMyOCAzLjM1MjA3IDMuNzI5NDYgMy41MDcwMyAzLjU3NDY3QzMuNjYxODIgMy40MTk3MSAzLjg0NTYzIDMuMjk2NzggNC4wNDc5NiAzLjIxMjkxQzQuMjUwMjkgMy4xMjkwMyA0LjQ2NzE3IDMuMDg1ODYgNC42ODYyIDMuMDg1ODZDNC45MDUyMiAzLjA4NTg2IDUuMTIyMSAzLjEyOTAzIDUuMzI0NDMgMy4yMTI5MUM1LjUyNjc2IDMuMjk2NzggNS43MTA1OCAzLjQxOTcxIDUuODY1MzYgMy41NzQ2N0w1LjkxNTM2IDMuNjI0NjdDNi4xMTE3NiAzLjgxNjc5IDYuMzYxMjEgMy45NDU2NiA2LjYzMTU0IDMuOTk0NjhDNi45MDE4NyA0LjA0MzY5IDcuMTgwNjggNC4wMTA2IDcuNDMyMDMgMy44OTk2N0g3LjQ5ODdDNy43NDUxNyAzLjc5NDA0IDcuOTU1MzggMy42MTg2NCA4LjEwMzQ0IDMuMzk1MDZDOC4yNTE1IDMuMTcxNDkgOC4zMzA5NiAyLjkwOTUgOC4zMzIwMyAyLjY0MTM0VjIuNDk5NjdDOC4zMzIwMyAyLjA1NzY1IDguNTA3NjMgMS42MzM3MiA4LjgyMDE5IDEuMzIxMTZDOS4xMzI3NSAxLjAwODYgOS41NTY2NyAwLjgzMzAwOCA5Ljk5ODcgMC44MzMwMDhDMTAuNDQwNyAwLjgzMzAwOCAxMC44NjQ2IDEuMDA4NiAxMS4xNzcyIDEuMzIxMTZDMTEuNDg5OCAxLjYzMzcyIDExLjY2NTQgMi4wNTc2NSAxMS42NjU0IDIuNDk5NjdWMi41NzQ2N0MxMS42NjY0IDIuODQyODMgMTEuNzQ1OSAzLjEwNDgyIDExLjg5NCAzLjMyODRDMTIuMDQyIDMuNTUxOTcgMTIuMjUyMiAzLjcyNzM3IDEyLjQ5ODcgMy44MzMwMUMxMi43NSAzLjk0Mzk0IDEzLjAyODkgMy45NzcwMyAxMy4yOTkyIDMuOTI4MDFDMTMuNTY5NSAzLjg3OSAxMy44MTkgMy43NTAxMiAxNC4wMTU0IDMuNTU4MDFMMTQuMDY1NCAzLjUwODAxQzE0LjIyMDIgMy4zNTMwNSAxNC40MDQgMy4yMzAxMiAxNC42MDYzIDMuMTQ2MjRDMTQuODA4NiAzLjA2MjM3IDE1LjAyNTUgMy4wMTkyIDE1LjI0NDUgMy4wMTkyQzE1LjQ2MzYgMy4wMTkyIDE1LjY4MDQgMy4wNjIzNyAxNS44ODI4IDMuMTQ2MjRDMTYuMDg1MSAzLjIzMDEyIDE2LjI2ODkgMy4zNTMwNSAxNi40MjM3IDMuNTA4MDFDMTYuNTc4NyAzLjY2MjggMTYuNzAxNiAzLjg0NjYxIDE2Ljc4NTUgNC4wNDg5NEMxNi44NjkzIDQuMjUxMjcgMTYuOTEyNSA0LjQ2ODE1IDE2LjkxMjUgNC42ODcxN0MxNi45MTI1IDQuOTA2MiAxNi44NjkzIDUuMTIzMDggMTYuNzg1NSA1LjMyNTQxQzE2LjcwMTYgNS41Mjc3NCAxNi41Nzg3IDUuNzExNTUgMTYuNDIzNyA1Ljg2NjM0TDE2LjM3MzcgNS45MTYzNEMxNi4xODE2IDYuMTEyNzQgMTYuMDUyNyA2LjM2MjE5IDE2LjAwMzcgNi42MzI1MkMxNS45NTQ3IDYuOTAyODUgMTUuOTg3OCA3LjE4MTY2IDE2LjA5ODcgNy40MzMwMVY3LjQ5OTY3QzE2LjIwNDMgNy43NDYxNSAxNi4zNzk3IDcuOTU2MzUgMTYuNjAzMyA4LjEwNDQyQzE2LjgyNjkgOC4yNTI0OCAxNy4wODg5IDguMzMxOTQgMTcuMzU3IDguMzMzMDFIMTcuNDk4N0MxNy45NDA3IDguMzMzMDEgMTguMzY0NiA4LjUwODYgMTguNjc3MiA4LjgyMTE2QzE4Ljk4OTggOS4xMzM3MiAxOS4xNjU0IDkuNTU3NjUgMTkuMTY1NCA5Ljk5OTY3QzE5LjE2NTQgMTAuNDQxNyAxOC45ODk4IDEwLjg2NTYgMTguNjc3MiAxMS4xNzgyQzE4LjM2NDYgMTEuNDkwNyAxNy45NDA3IDExLjY2NjMgMTcuNDk4NyAxMS42NjYzSDE3LjQyMzdDMTcuMTU1NSAxMS42Njc0IDE2Ljg5MzYgMTEuNzQ2OSAxNi42NyAxMS44OTQ5QzE2LjQ0NjQgMTIuMDQzIDE2LjI3MSAxMi4yNTMyIDE2LjE2NTQgMTIuNDk5N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQgPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIyNTRfMjAyNjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJcIiBbbmdDbGFzc109XCIoZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJ2N1cnNvci1wb2ludGVyJyA6ICcnXCIgIChjbGljayk9XCJjaGVja1Blcm1pc3Npb24oJ2R1cGxpY2F0ZScsZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIyNTRfMjAyNjUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00LjE2Nzk3IDEyLjUwMDNIMy4zMzQ2NEMyLjg5MjYxIDEyLjUwMDMgMi40Njg2OCAxMi4zMjQ3IDIuMTU2MTIgMTIuMDEyMkMxLjg0MzU2IDExLjY5OTYgMS42Njc5NyAxMS4yNzU3IDEuNjY3OTcgMTAuODMzN1YzLjMzMzY2QzEuNjY3OTcgMi44OTE2MyAxLjg0MzU2IDIuNDY3NzEgMi4xNTYxMiAyLjE1NTE1QzIuNDY4NjggMS44NDI1OSAyLjg5MjYxIDEuNjY2OTkgMy4zMzQ2NCAxLjY2Njk5SDEwLjgzNDZDMTEuMjc2NyAxLjY2Njk5IDExLjcwMDYgMS44NDI1OSAxMi4wMTMxIDIuMTU1MTVDMTIuMzI1NyAyLjQ2NzcxIDEyLjUwMTMgMi44OTE2MyAxMi41MDEzIDMuMzMzNjZWNC4xNjY5OU05LjE2Nzk3IDcuNTAwMzNIMTYuNjY4QzE3LjU4ODQgNy41MDAzMyAxOC4zMzQ2IDguMjQ2NTIgMTguMzM0NiA5LjE2Njk5VjE2LjY2N0MxOC4zMzQ2IDE3LjU4NzUgMTcuNTg4NCAxOC4zMzM3IDE2LjY2OCAxOC4zMzM3SDkuMTY3OTdDOC4yNDc0OSAxOC4zMzM3IDcuNTAxMyAxNy41ODc1IDcuNTAxMyAxNi42NjdWOS4xNjY5OUM3LjUwMTMgOC4yNDY1MiA4LjI0NzQ5IDcuNTAwMzMgOS4xNjc5NyA3LjUwMDMzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjI1NF8yMDI2NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiY2hlY2tQZXJtaXNzaW9uKCdkZWxldGUnLGRhdGEpXCIgW25nQ2xhc3NdPVwiIWRhdGE/LnB1Ymxpc2ggJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0ICA/ICdjdXJzb3ItcG9pbnRlcicgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MVwiIHZpZXdCb3g9XCIwIDAgNDAgNDFcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzE2Ml8xMDQxNClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjUgMTUuMDIyOEgxNC4xNjY3TTE0LjE2NjcgMTUuMDIyOEgyNy41TTE0LjE2NjcgMTUuMDIyOFYyNi42ODk1QzE0LjE2NjcgMjcuMTMxNSAxNC4zNDIzIDI3LjU1NTQgMTQuNjU0OCAyNy44NjhDMTQuOTY3NCAyOC4xODA1IDE1LjM5MTMgMjguMzU2MSAxNS44MzMzIDI4LjM1NjFIMjQuMTY2N0MyNC42MDg3IDI4LjM1NjEgMjUuMDMyNiAyOC4xODA1IDI1LjM0NTIgMjcuODY4QzI1LjY1NzcgMjcuNTU1NCAyNS44MzMzIDI3LjEzMTUgMjUuODMzMyAyNi42ODk1VjE1LjAyMjhIMTQuMTY2N1pNMTYuNjY2NyAxNS4wMjI4VjEzLjM1NjFDMTYuNjY2NyAxMi45MTQxIDE2Ljg0MjMgMTIuNDkwMiAxNy4xNTQ4IDEyLjE3NzZDMTcuNDY3NCAxMS44NjUgMTcuODkxMyAxMS42ODk1IDE4LjMzMzMgMTEuNjg5NUgyMS42NjY3QzIyLjEwODcgMTEuNjg5NSAyMi41MzI2IDExLjg2NSAyMi44NDUyIDEyLjE3NzZDMjMuMTU3NyAxMi40OTAyIDIzLjMzMzMgMTIuOTE0MSAyMy4zMzMzIDEzLjM1NjFWMTUuMDIyOE0xOC4zMzMzIDE5LjE4OTVWMjQuMTg5NU0yMS42NjY3IDE5LjE4OTVWMjQuMTg5NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCIoIShncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCB8fCBkYXRhLnB1Ymxpc2ggfHwgZGF0YS5jaGVja0xpc3RUeXBlICE9PSAnY3VzdG9tJykgPyAnI0QwRDVERCcgOicjNjY3MDg1J1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMzE2Ml8xMDQxNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTAuMDIzNClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIiAoY2hhbmdlKT1cInB1Ymxpc2goJGV2ZW50LCBkYXRhLGkpXCIgW2NoZWNrZWRdPVwiZGF0YT8ucHVibGlzaFwiIFtkaXNhYmxlZF09XCIoIWRhdGE/LnN0b3JlQ291bnQgJiYgZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJykgfHwgIShncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJkeW5hbWljRGF0YS5saW1pdFwiIFtjdXJyZW50UGFnZV09XCJkeW5hbWljRGF0YS5vZmZzZXRcIiBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICAgICAgICAgIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|