@sunbird-cb/cbp-ai 0.1.2 → 0.1.4
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/ai-cbp-routing.module.mjs +5 -1
- package/esm2022/lib/ai-cbp.module.mjs +10 -5
- package/esm2022/lib/components/approval-request-form/approval-request-form.component.mjs +2 -2
- package/esm2022/lib/components/dashboard/dashboard.component.mjs +3 -3
- package/esm2022/lib/components/designation-approval-request-form/designation-approval-request-form.component.mjs +392 -0
- package/esm2022/lib/components/review-request/review-request.component.mjs +7 -1
- package/esm2022/lib/components/role-mapping-generation/role-mapping-generation.component.mjs +3 -4
- package/esm2022/lib/components/role-mapping-list/role-mapping-list.component.mjs +45 -20
- package/esm2022/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.mjs +2 -1
- package/esm2022/lib/modules/shared/services/init.service.mjs +2 -2
- package/esm2022/lib/modules/shared/services/shared.service.mjs +12 -2
- package/esm2022/lib/modules/upload-document-page/upload-document-page.component.mjs +3 -1
- package/esm2022/lib/resolver/init-resolver.sevice.mjs +20 -0
- package/esm2022/public-api.mjs +19 -1
- package/fesm2022/sunbird-cb-cbp-ai.mjs +476 -33
- package/fesm2022/sunbird-cb-cbp-ai.mjs.map +1 -1
- package/lib/ai-cbp-routing.module.d.ts.map +1 -1
- package/lib/ai-cbp.module.d.ts +37 -36
- package/lib/ai-cbp.module.d.ts.map +1 -1
- package/lib/components/designation-approval-request-form/designation-approval-request-form.component.d.ts +47 -0
- package/lib/components/designation-approval-request-form/designation-approval-request-form.component.d.ts.map +1 -0
- package/lib/components/review-request/review-request.component.d.ts +2 -0
- package/lib/components/review-request/review-request.component.d.ts.map +1 -1
- package/lib/components/role-mapping-generation/role-mapping-generation.component.d.ts.map +1 -1
- package/lib/components/role-mapping-list/role-mapping-list.component.d.ts +5 -2
- package/lib/components/role-mapping-list/role-mapping-list.component.d.ts.map +1 -1
- package/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.d.ts +1 -0
- package/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.d.ts.map +1 -1
- package/lib/modules/shared/services/init.service.d.ts +1 -1
- package/lib/modules/shared/services/init.service.d.ts.map +1 -1
- package/lib/modules/shared/services/shared.service.d.ts +1 -0
- package/lib/modules/shared/services/shared.service.d.ts.map +1 -1
- package/lib/modules/upload-document-page/upload-document-page.component.d.ts +1 -0
- package/lib/modules/upload-document-page/upload-document-page.component.d.ts.map +1 -1
- package/lib/resolver/init-resolver.sevice.d.ts +11 -0
- package/lib/resolver/init-resolver.sevice.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +18 -0
- package/public-api.d.ts.map +1 -1
- package/sunbird-cb-cbp-ai-0.1.4.tgz +0 -0
- package/sunbird-cb-cbp-ai-0.1.2.tgz +0 -0
|
@@ -125,6 +125,12 @@ export class ReviewRequestComponent {
|
|
|
125
125
|
this.dataSource.paginator.firstPage();
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
+
viewCBPPlan(element) {
|
|
129
|
+
console.log('view cbp plan', element);
|
|
130
|
+
}
|
|
131
|
+
openFullList(type, element) {
|
|
132
|
+
console.log('view cbp plan', type, element);
|
|
133
|
+
}
|
|
128
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReviewRequestComponent, deps: [{ token: i1.SharedService }, { token: i2.MatSnackBar }, { token: i3.ActivatedRoute }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
135
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ReviewRequestComponent, selector: "app-review-request", viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<div class=\"review-container\">\n\n <!-- HEADER -->\n <div class=\"page-header\">\n\n <div class=\"left-section\">\n <mat-icon class=\"back-icon\" (click)=\"backToApprovalRequest()\">arrow_back</mat-icon>\n\n <div>\n <p class=\"section-title\">Review Request</p>\n <p class=\"request-id\">{{request?.id}}</p>\n </div>\n </div>\n\n <div class=\"status-badge\">\n {{request?.status | titlecase}}\n </div>\n\n </div>\n\n\n <!-- REQUEST DETAILS -->\n <div class=\"inner-container\">\n <mat-card class=\"details-card\">\n\n <p class=\"section-title\">Request Details</p>\n\n <div class=\"details-grid\">\n\n <div class=\"detail-box\">\n <mat-icon>tag</mat-icon>\n <div>\n <p class=\"label\">Request ID</p>\n <p class=\"value\">{{request?.id}}</p>\n </div>\n </div>\n\n <div class=\"detail-box\">\n <mat-icon>assignment</mat-icon>\n <div>\n <p class=\"label\">Request Name</p>\n <p class=\"value\">{{request?.request_name}}</p>\n </div>\n </div>\n\n <div class=\"detail-box\">\n <mat-icon>mail</mat-icon>\n <div>\n <p class=\"label\">Requested By</p>\n <p class=\"value\">{{request?.user?.username | titlecase}}</p>\n </div>\n </div>\n\n <div class=\"detail-box\">\n <mat-icon>event</mat-icon>\n <div>\n <p class=\"label\">Submitted On</p>\n <p class=\"value\">{{request?.created_at | date: 'MMM d, y'}}</p>\n </div>\n </div>\n\n <div class=\"detail-box\">\n <mat-icon>person</mat-icon>\n <div>\n <p class=\"label\">No. of Designations</p>\n <p class=\"value\">{{request?.designation_count}}</p>\n </div>\n </div>\n\n </div>\n\n <mat-divider class=\"divider\"></mat-divider>\n\n <div class=\"organization\">\n <p class=\"label\">Organization</p>\n <p class=\"org-value\">{{request?.state_center_name}}</p>\n </div>\n\n </mat-card>\n\n\n <!-- ROLE MAPPING SECTION -->\n <div class=\"role-header\">\n\n <div>\n <p class=\"section-title\">Role Mappings for Review</p>\n </div>\n\n\n <div class=\"search flex margin-right-m\">\n <div class=\"mt-2\">\n <div class=\"search-container\">\n <div class=\"rsearch\">\n <mat-icon\n class=\"color-60 search-icon mat-icon notranslate material-icons mat-icon-no-color\">search</mat-icon>\n <input class=\"sinput color-60 w-full\" [(ngModel)]=\"searchText\" label=\"\"\n (input)=\"applyFilter()\" placeholder=\"Search by designation name\" type=\"Standard\">\n <mat-icon *ngIf=\"searchText.trim().length > 0\"\n class=\"color-60 clear-icon mat-icon notranslate material-icons mat-icon-no-color cursor-pointer\"\n (click)=\"clearSearch()\">clear</mat-icon>\n </div>\n <div class=\"pl-2 mt-2\">\n <input [disabled]=\"searchText.trim()?.length === 0\"\n [ngClass]=\"searchText.trim()?.length === 0 ? 'btn-disable':'btn-active'\" type=\"button\"\n value=\"Search\" (click)=\"applyFilter()\" />\n </div>\n </div>\n\n\n </div>\n\n\n </div>\n\n </div>\n <div class=\"table-class\">\n <ng-container *ngIf=\"dataSource?.data?.length > 0\">\n <div class=\"table-container mt-4\" style=\"overflow: auto;\">\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z1 table-body\">\n\n <ng-container matColumnDef=\"designation_name\">\n <th class=\"table-header\" mat-header-cell *matHeaderCellDef> Designation\n </th>\n <td class=\"cursor-pointer\" mat-cell *matCellDef=\"let element\"\n (click)=\"viewCBPPlan(element)\">\n <div\n [ngClass]=\"activeTab === 'matched'? 'designation-text': 'designation-text-unmatched'\">\n <p class=\"designation\">{{ element?.designation_name }} </p>\n <p class=\"wing-text mt-2\">Wing/Division - {{\n element?.wing_division_section }} </p>\n </div>\n\n </td>\n </ng-container>\n <ng-container matColumnDef=\"role_responsibilities\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Role &\n Responsibilities </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul>\n <li class=\"role-item\"\n *ngFor=\"let role of (isResponisbilityExpanded(element.id) ? element.role_responsibilities : element.role_responsibilities.slice(0, 2)); let i = index\">\n {{i+1}}. {{ role }}</li>\n <li *ngIf=\"element.role_responsibilities.length > 2\"\n class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'role_responsibilities')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"activities\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Activities </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul>\n <li class=\"role-item\"\n *ngFor=\"let activity of (isActivityExpanded(element.id) ? element.activities : element.activities.slice(0, 2)); let i = index\">\n {{i+1}}. {{ activity }}</li>\n <li *ngIf=\"element.activities.length > 2\" class=\"view-more-less cursor-pointer\"\n (click)=\"openFullList(element, 'activity')\">\n <span style=\"color: #1B4CA1;font-size: 16px;\">\n View More\n </span>\n </li>\n </ul>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"behavioral\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Behavioral\n Competencies </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"behavioural-pill\"\n *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Behavioral')\">\n <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n comp.sub_theme }} </span>\n </li>\n </ul>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"functional\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Functional\n Competencies </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"functional-pill\"\n *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Functional')\">\n <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </li>\n </ul>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"domain\">\n <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n mat-header-cell *matHeaderCellDef> Domain\n Competencies </th>\n <td mat-cell *matCellDef=\"let element\">\n <ul class=\"competency-list\">\n <li class=\"domain-pill\"\n *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Domain')\">\n <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n comp.sub_theme }}</span>\n </li>\n </ul>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell no-data-cell\" [attr.colspan]=\"displayedColumns.length\">\n No Data Found\n </td>\n </tr>\n </table>\n <ng-container *ngIf=\"dataSource?.filteredData?.length || dataSource?.filteredData?.length\">\n <mat-paginator [length]=\"dataSource?.data?.length\" [pageSize]=\"5\"\n [pageSizeOptions]=\"[5, 10, 20]\" showFirstLastButtons>\n </mat-paginator>\n </ng-container>\n\n </div>\n\n </ng-container>\n\n \n </div>\n </div>\n\n</div>\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n</div>", styles: [".review-container{background:#f5f6fa;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background:#fff;padding:10px 30px 10px 60px;border-radius:8px;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.left-section{display:flex;align-items:center;gap:12px}.back-icon{cursor:pointer;font-size:22px}.request-id{color:#6b7280;font-size:14px}.status-badge{background:#fff4e5;color:#c17c00;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.details-card{padding:25px 30px;border-radius:12px;background:#fff}.section-title{margin:10px 0;font-weight:600;font-size:20px;color:#000}.details-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:30px;margin-bottom:20px}.detail-box{display:flex;gap:12px;align-items:center}.detail-box mat-icon{background:#eef2ff;padding:18px;border-radius:8px;color:#1b4ca1;height:60px;width:60px;vertical-align:middle;text-align:center}.label{font-size:13px;color:#6b7280}.value{font-weight:600}.organization{margin-top:50px}.org-value{color:#1b4ca1;font-weight:600}.role-header{margin-top:30px;display:flex;justify-content:space-between;align-items:center}.search-box{display:flex;align-items:center;gap:10px;border:1px solid #d1d5db;padding:6px 10px;border-radius:10px;background:#fff}.search-box input{border:none;outline:none;width:250px}.divider{margin:10px 30px;width:88%!important}.inner-container{margin:0 30px 0 60px;width:95%}.container{margin:10px auto}.sub-heading p{color:#000;font-family:Montserrat;font-size:16px;font-style:normal;font-weight:600;line-height:normal}.radio-label{color:#000;font-family:Lato;font-size:18px;font-style:normal;font-weight:400;line-height:normal}.radio-btn-group{display:flex;width:32px;height:32px;padding:2px;gap:10px}.label{color:var(--Body-Text-Body-Color, #212529);font-family:Lato;font-size:18px;font-style:normal;font-weight:700;line-height:150%}::ng-deep mat-form-field{background-color:#fff!important;border-radius:25px!important;padding-left:12px;padding-right:12px;height:42px;width:100%}::ng-deep mat-select{border-radius:25px!important;background-color:#fff!important}::ng-deep .mat-select-panel{background-color:#fff!important}::ng-deep .mat-select-panel .mat-option{border-radius:0!important}::ng-deep mat-form-field .mat-form-field-underline{display:none!important}::ng-deep mat-select .mat-select-placeholder{color:#0006;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}::ng-deep mat-select .mat-select-value-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;line-height:normal!important;padding-top:0!important;padding-bottom:0!important}::ng-deep mat-select .mat-select-value{display:flex!important;align-items:center!important;height:100%!important}.additional-details textarea{display:flex;padding:16px 16px 0;flex-direction:column;align-items:flex-start;gap:10px;flex:1 0 0;align-self:stretch;width:100%;color:#0006;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;resize:none}.section-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.btn-disable{border-radius:var(--Radius-Full-Round, 9999999px);opacity:.4;background:var(--Primary-KB-Primary-Light, #1B4CA1);color:var(--white-kb-white-100, #FFF);text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none}.btn-group{display:flex;flex-direction:row;justify-content:space-between}.pl-2{padding-left:10px}.search-filter-section{display:flex;flex-direction:row;justify-content:space-between}.search .rsearch{position:relative}.search .search-icon{position:absolute;top:15px;font-size:20px;left:10px}.search .clear-icon{position:absolute;top:15px;font-size:20px;right:10px;color:#666}.search .clear-icon:hover{color:#333}.search .sinput{border-radius:32px;border:1px solid #d5d0d0;padding:15px 36px;font:400 14px Lato;width:600px}.select-map-route-container{display:flex;flex-direction:row}.selected-mapping-route p{color:#1b4ca1;font-family:Lato;font-size:20px;font-style:normal;font-weight:400;line-height:normal;text-decoration-line:underline;text-decoration-style:solid;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.edit-plan{display:flex;padding:4px 10px;justify-content:center;align-items:center;gap:8px;border-radius:4px;background:#1b4ca129;color:#1b4ca1;font-family:Lato;font-size:17px;font-style:normal;font-weight:400;line-height:normal;margin-left:10px}.search-container{display:flex;flex-direction:row}.course-container{display:flex;width:100%;padding:16px;flex-direction:column;align-items:flex-start;gap:24px;grid-row:2/span 1;grid-column:1/span 1;border-radius:12px;border:1px solid var(--borders-black-border-16-black, rgba(0, 0, 0, .16));background:#fff}.course-header{display:flex;flex-direction:row;justify-content:space-between;width:100%}.course-pill{display:flex;height:24px;padding:8px;align-items:center;gap:4px;border-radius:16px;border:1px solid var(--borders-border-fill-focussed-4-light-100, #EF951E);background:#fefaf4}.ai-recommened-pill{display:flex;padding:4px 8px;align-items:center;gap:8px;border-radius:var(--Radius-4, 4px);border:1px solid #1B4CA1;background:#1b4ca129}.igot-platform-pill{display:flex;padding:4px 8px;align-items:center;gap:8px;border-radius:var(--Radius-4, 4px);border:1px solid #EF951E;background:#ef951e29}.course-title{color:var(--Primary-KB-Primary-Light, #1B4CA1);font-family:Montserrat;font-size:20px;font-style:normal;font-weight:600;line-height:30px}.course-desc{color:#0009;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.relevancy,.competencies-matched{color:var(--accessbility-shades-with-opacity-kb-greys-black-60, rgba(0, 0, 0, .6));font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;align-items:center}.percentage{color:#1d8923;font-family:Lato;font-size:14px;font-style:normal;font-weight:800;line-height:normal}.relevancy-container,.competencies-matched-container{display:flex;flex-direction:row;align-items:center}.dash{padding:0 5px}::ng-deep .mat-radio-checked .mat-radio-inner-circle{background:#1b4ca1!important}.course-list-container{display:flex;flex-wrap:wrap;gap:16px}.course-list-item{flex:0 0 48%;box-sizing:border-box;border:1px solid #ccc;padding:16px;background-color:#fff;border-radius:8px}.checked-course-container{display:flex}.ml-2{margin-left:8px}::ng-deep .mat-checkbox-checked .mat-checkbox-background{background:#1b4ca1!important}.ai-recommened-pill-text,.igot-platform-pill-text{color:#1b4ca1;font-family:Lato;font-size:12px;font-style:normal;font-weight:700;line-height:normal}.course-pill-text{color:var(--accessbility-shades-without-opacity-kb-greys-black-87, #212121);text-align:center;font-family:Poppins;font-size:12px;font-style:normal;font-weight:400;line-height:normal}.ai-loader-icon img,.igot-platform-icon img{width:15.714px;height:15.714px;flex-shrink:0}.competency-container{display:flex}.outside-layer{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px 4px 4px 12px;border-left:2px solid #F8B861;background:#fde8cc;width:132px}.suggest-courses-header{display:flex;flex-direction:row;justify-content:space-between}.suggest-course-control{display:flex;flex-direction:row}.course-card-container{width:172px;border-radius:3.307px;border:.827px solid var(--borders-border-8-black, rgba(0, 0, 0, .08));background-color:#fff}.highlight-ai{font-family:Montserrat;font-size:24px;font-style:normal;font-weight:600;line-height:normal;background:linear-gradient(90deg,#3b27ff,#2de3d6);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;display:inline-block}.ai-loader-icon-medium img{width:40px;height:40px;flex-shrink:0}.heading{color:#000;font-family:Montserrat;font-size:20px;font-style:normal;font-weight:600;line-height:normal;margin:10px 0}.progress-popup{display:flex;flex-direction:column;justify-content:center;align-items:center}.progress-popup .desc{color:#000000de;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.behavioural-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #F8B861;background:linear-gradient(0deg,#f8b86152 0% 100%),#fff;margin:5px 0}.functional-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #E24577;background:linear-gradient(0deg,#e245773d 0% 100%),#fff;margin:5px 0}.domain-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #7B47A4;background:linear-gradient(0deg,#7b47a43d 0% 100%),#fff;margin:5px 0}.competency-list{display:flex;flex-direction:row;gap:0px;flex-wrap:wrap}.competency-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.competency-text-behavioral{color:#654321;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.competency-text-functional{color:#b01669;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.competency-text-domain{color:#301934;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.designation{color:#1b4ca1;font-family:Lato;font-size:17px;font-style:normal;font-weight:700;line-height:normal;text-decoration-line:underline;text-decoration-style:solid;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.wing-text{color:#000000e0;font-family:Lato;font-size:15px;font-style:normal;font-weight:400;line-height:normal}.role-item{color:#000000e0;font-family:Lato;font-size:16px;font-style:normal;font-weight:400;line-height:1.75}.view-final-cbp-plan{display:flex;justify-content:end;align-items:center;gap:8px}.view-final-cbp-plan-text{padding:4px 16px;border-radius:24px;border:2px solid #F3962F;background:var(--white-kb-white-100, #FFF);box-shadow:0 1px 10px #276de599;color:var(--Primary-KB-Primary-Light, #1B4CA1);font-family:Lato;font-size:16px;font-style:normal;font-weight:700;line-height:normal}.btn-active{border-radius:var(--Radius-Full-Round, 9999999px);opacity:1;background:var(--Primary-KB-Primary-Light, #1B4CA1);color:var(--white-kb-white-100, #FFF);text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none}.cursor-pointer{cursor:pointer}.ml-10{margin-left:10px}.table-container{border-top-left-radius:16px;border-top-right-radius:16px;overflow:auto;background:#fff;max-height:70vh}:host ::ng-deep .mat-mdc-header-row{position:sticky;top:0;background:#fff;box-shadow:0 2px 4px #0000001a}:host ::ng-deep .mat-mdc-header-cell{background:#fff;font-weight:600;border-bottom:2px solid #e0e0e0}:host ::ng-deep th.mat-mdc-header-cell:not(:last-child){position:relative;border-right:none}:host ::ng-deep th.mat-mdc-header-cell:not(:last-child):after{content:\"\";position:absolute;top:12px;bottom:12px;right:0;width:1px;background-color:#e0e0e0}.table-header{font-size:16px;font-weight:600;background:#fff!important;color:#333}.table-header-unmatched{font-size:16px;font-weight:600;background:#f4dcde!important;color:#b42318}.table-body{background-color:#fff!important}.table-body-unmatched{background-color:#faf6f7!important}.designation-text-unmatched p{color:#b42318!important}.select-map-flex-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.select-map-flex{display:flex}.search-container-flex{display:flex;flex-direction:row;width:100%;justify-content:space-between;align-items:flex-start}.mt-6{margin-top:1.7rem}.mat-elevation-z1 .mat-mdc-cell{vertical-align:top!important;padding-top:8px;padding-bottom:8px}::ng-deep .radio-style-checkbox .mat-checkbox-frame{border-radius:50%}::ng-deep .radio-style-checkbox .mat-checkbox-background{border-radius:50%}.search-flex{display:flex;flex-direction:row;width:100%}.margin-top-15{margin-top:15px}.btn-active-outline{border-radius:10px;opacity:1;color:#1b4ca1;border:1px solid #1B4CA1!important;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;width:240px;border:none;background-color:transparent;cursor:pointer}.btn-active-outline-disable{border-radius:10px;opacity:.5;color:#1b4ca1;border:1px solid #1B4CA1!important;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;width:auto;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none;width:240px;background-color:transparent;cursor:not-allowed}.role-mapping-tabs{display:flex;gap:16px;align-items:center;font-family:Inter,sans-serif}.role-tab{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:24px;border:1px solid #d0d5dd;background-color:#f9fafb;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease-in-out}.role-tab.active{border-color:#1b4ca1;background-color:#eff6ff;color:#1b4ca1}.dot{width:10px;height:10px;border-radius:50%;background-color:#1b4ca1}.dot.red{background-color:#b42318}.badge{font-size:12px;font-weight:600;padding:2px 8px;border-radius:12px}.badge.blue{background-color:#dbeafe;color:#1b4ca1}.badge.red{background-color:#fee2e2;color:#b42318}.no-data-cell{text-align:center;padding:40px;font-size:16px;color:#888}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { 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: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i10.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i11.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i4.DatePipe, name: "date" }] }); }
|
|
130
136
|
}
|
|
@@ -135,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
135
141
|
type: ViewChild,
|
|
136
142
|
args: [MatPaginator]
|
|
137
143
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3LXJlcXVlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvcmV2aWV3LXJlcXVlc3QvcmV2aWV3LXJlcXVlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvcmV2aWV3LXJlcXVlc3QvcmV2aWV3LXJlcXVlc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTyxzQkFBc0I7SUFtQmpDLFlBQW1CLGFBQTRCLEVBQVUsUUFBcUIsRUFBVSxLQUFxQixFQUFVLE1BQWM7UUFBbEgsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBbEJySSxZQUFPLEdBQVEsRUFDZCxDQUFDO1FBQ0YsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLCtCQUEwQixHQUE4QixFQUFFLENBQUM7UUFDM0QseUJBQW9CLEdBQThCLEVBQUUsQ0FBQztRQUVyRCxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ2YsY0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUNyQixxQkFBZ0IsR0FBYTtZQUMzQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLFlBQVk7WUFDWixZQUFZO1lBQ1osWUFBWTtZQUNaLFFBQVE7U0FD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LENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN2QztJQUNILENBQUM7K0dBNUlVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHFHQU10QixZQUFZLGdEQ2xCekIsa3ZYQThPTTs7NEZEbE9PLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7Z0xBVUwsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3NoYXJlZC9zZXJ2aWNlcy9zaGFyZWQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZXZpZXctcmVxdWVzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXZpZXctcmVxdWVzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jldmlldy1yZXF1ZXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmV2aWV3UmVxdWVzdENvbXBvbmVudCB7XG4gIHJlcXVlc3Q6IGFueSA9IHtcbiAgfTtcbiAgc2VhcmNoVGV4dCA9ICcnXG4gIGV4cGFuZGVkUmVzcG9uc2liaWxpdHlSb3dzOiB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIGV4cGFuZGVkQWN0aXZpdHlSb3dzOiB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwYWdpbmF0b3IhOiBNYXRQYWdpbmF0b3I7XG4gIGxvYWRpbmcgPSBmYWxzZVxuICBhY3RpdmVUYWIgPSAnbWF0Y2hlZCdcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXG4gICAgJ2Rlc2lnbmF0aW9uX25hbWUnLFxuICAgICdyb2xlX3Jlc3BvbnNpYmlsaXRpZXMnLFxuICAgICdhY3Rpdml0aWVzJyxcbiAgICAnYmVoYXZpb3JhbCcsXG4gICAgJ2Z1bmN0aW9uYWwnLFxuICAgICdkb21haW4nXG4gIF07XG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPGFueT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLCBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgcmVxdWVzdElkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3JlcXVlc3RfaWQnKTtcblxuICAgIGlmIChyZXF1ZXN0SWQpIHtcbiAgICAgIHRoaXMuZ2V0UmVxdWVzdERldGFpbHMocmVxdWVzdElkKTtcbiAgICB9XG5cblxuICB9XG5cbiAgZ2V0UmVxdWVzdERldGFpbHMocmVxdWVzdElkKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgIHRoaXMuc2hhcmVkU2VydmljZS52aWV3QXBwcm92YWxSZXF1ZXN0cyhyZXF1ZXN0SWQpLnN1YnNjcmliZSh7XG5cbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygncmVzJywgcmVzKVxuICAgICAgICB0aGlzLnJlcXVlc3QgPSByZXNcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShyZXM/Lml0ZW1zKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICAgICAgICB9LCAxMDApO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignRmFpbGVkIHRvIGxvYWQgdGhlIGFwcHJvdmFsIHJlcXVlc3QgaW5mb3JtYXRpb24uJywgJ1gnLCB7XG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydzbmFja2Jhci1lcnJvciddXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICB0b2dnbGVSZXNwb25zaWJpbGl0eUV4cGFuZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZFJlc3BvbnNpYmlsaXR5Um93c1tpZF0gPSAhdGhpcy5leHBhbmRlZFJlc3BvbnNpYmlsaXR5Um93c1tpZF07XG4gIH1cblxuICBpc1Jlc3BvbmlzYmlsaXR5RXhwYW5kZWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuXG5cbiAgICAvLyBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKExpc3RQb3B1cENvbXBvbmVudCwge1xuICAgIC8vICAgd2lkdGg6ICcxMDAwcHgnLFxuICAgIC8vICAgZGF0YTogdGhpcy5hY3RpdmVSb3dFbGVtZW50LFxuICAgIC8vICAgIHBhbmVsQ2xhc3M6ICd2aWV3LWNicC1wbGFuLXBvcHVwJyxcbiAgICAvLyAgIG1pbkhlaWdodDogJzQwMHB4JywgICAgICAgICAgLy8gU2V0IG1pbmltdW0gaGVpZ2h0XG4gICAgLy8gICBtYXhIZWlnaHQ6ICc5MHZoJywgICAgICAgICAgIC8vIFByZXZlbnQgaXQgZnJvbSBnb2luZyBiZXlvbmQgdmlld3BvcnRcbiAgICAvLyAgIGRpc2FibGVDbG9zZTogdHJ1ZSAvLyBPcHRpb25hbDogcHJldmVudCBjbG9zaW5nIHdpdGggb3V0c2lkZSBjbGlja1xuICAgIC8vIH0pO1xuXG4gICAgLy8gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgLy8gICByZXR1cm4gZmFsc2VcbiAgICAvLyB9KTtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRlZFJlc3BvbnNpYmlsaXR5Um93c1tpZF07XG4gIH1cblxuICB0b2dnbGVBY3Rpdml0eUV4cGFuZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZEFjdGl2aXR5Um93c1tpZF0gPSAhdGhpcy5leHBhbmRlZEFjdGl2aXR5Um93c1tpZF07XG4gIH1cblxuICBpc0FjdGl2aXR5RXhwYW5kZWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZGVkQWN0aXZpdHlSb3dzW2lkXTtcbiAgfVxuXG4gIGdldENvbXBldGVuY2llc0J5VHlwZShjb21wZXRlbmNpZXM6IGFueVtdLCB0eXBlOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgcmV0dXJuIGNvbXBldGVuY2llcz8uZmlsdGVyKGMgPT4gYy50eXBlID09PSB0eXBlKSB8fCBbXTtcbiAgfVxuXG4gIGJhY2tUb0FwcHJvdmFsUmVxdWVzdCgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9haS9hcHByb3ZlLXJlcXVlc3RzJ10pO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXIoKSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLnNlYXJjaFRleHQudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKGRhdGE6IGFueSwgZmlsdGVyOiBzdHJpbmcpID0+IHtcblxuICAgICAgY29uc3QgZGVzaWduYXRpb24gPSBkYXRhLmRlc2lnbmF0aW9uX25hbWU/LnRvTG93ZXJDYXNlKCkgfHwgJyc7XG4gICAgICBjb25zdCB3aW5nID0gZGF0YS53aW5nX2RpdmlzaW9uX3NlY3Rpb24/LnRvTG93ZXJDYXNlKCkgfHwgJyc7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNpYmlsaXRpZXMgPSAoZGF0YS5yb2xlX3Jlc3BvbnNpYmlsaXRpZXMgfHwgW10pXG4gICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvbnN0IGFjdGl2aXRpZXMgPSAoZGF0YS5hY3Rpdml0aWVzIHx8IFtdKVxuICAgICAgICAuam9pbignICcpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjb25zdCBjb21wZXRlbmNpZXMgPSAoZGF0YS5jb21wZXRlbmNpZXMgfHwgW10pXG4gICAgICAgIC5tYXAoYyA9PiBgJHtjLnRoZW1lfSAke2Muc3ViX3RoZW1lfWApXG4gICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvbnN0IGNvbWJpbmVkID1cbiAgICAgICAgZGVzaWduYXRpb24gK1xuICAgICAgICB3aW5nICtcbiAgICAgICAgcmVzcG9uc2liaWxpdGllcyArXG4gICAgICAgIGFjdGl2aXRpZXMgK1xuICAgICAgICBjb21wZXRlbmNpZXM7XG5cbiAgICAgIHJldHVybiBjb21iaW5lZC5pbmNsdWRlcyhmaWx0ZXIpO1xuICAgIH07XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gZmlsdGVyVmFsdWU7XG5cbiAgICBpZiAodGhpcy5kYXRhU291cmNlLnBhZ2luYXRvcikge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhclNlYXJjaCgpIHtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gJyc7XG5cbiAgICBpZiAodGhpcy5kYXRhU291cmNlLnBhZ2luYXRvcikge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcbiAgICB9XG4gIH1cblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicmV2aWV3LWNvbnRhaW5lclwiPlxuXG4gICAgPCEtLSBIRUFERVIgLS0+XG4gICAgPGRpdiBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2VjdGlvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYmFjay1pY29uXCIgKGNsaWNrKT1cImJhY2tUb0FwcHJvdmFsUmVxdWVzdCgpXCI+YXJyb3dfYmFjazwvbWF0LWljb24+XG5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+UmV2aWV3IFJlcXVlc3Q8L3A+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJyZXF1ZXN0LWlkXCI+e3tyZXF1ZXN0Py5pZH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtYmFkZ2VcIj5cbiAgICAgICAgICAgIHt7cmVxdWVzdD8uc3RhdHVzIHwgdGl0bGVjYXNlfX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cblxuXG4gICAgPCEtLSBSRVFVRVNUIERFVEFJTFMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImlubmVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJkZXRhaWxzLWNhcmRcIj5cblxuICAgICAgICAgICAgPHAgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+UmVxdWVzdCBEZXRhaWxzPC9wPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1ncmlkXCI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+dGFnPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5SZXF1ZXN0IElEPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2YWx1ZVwiPnt7cmVxdWVzdD8uaWR9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YXNzaWdubWVudDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImxhYmVsXCI+UmVxdWVzdCBOYW1lPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2YWx1ZVwiPnt7cmVxdWVzdD8ucmVxdWVzdF9uYW1lfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1ib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPm1haWw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPlJlcXVlc3RlZCBCeTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmFsdWVcIj57e3JlcXVlc3Q/LnVzZXI/LnVzZXJuYW1lIHwgdGl0bGVjYXNlfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1ib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmV2ZW50PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5TdWJtaXR0ZWQgT248L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZhbHVlXCI+e3tyZXF1ZXN0Py5jcmVhdGVkX2F0IHwgZGF0ZTogJ01NTSBkLCB5J319PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5wZXJzb248L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPk5vLiBvZiBEZXNpZ25hdGlvbnM8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZhbHVlXCI+e3tyZXF1ZXN0Py5kZXNpZ25hdGlvbl9jb3VudH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cImRpdmlkZXJcIj48L21hdC1kaXZpZGVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnYW5pemF0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPk9yZ2FuaXphdGlvbjwvcD5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm9yZy12YWx1ZVwiPnt7cmVxdWVzdD8uc3RhdGVfY2VudGVyX25hbWV9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvbWF0LWNhcmQ+XG5cblxuICAgICAgICA8IS0tIFJPTEUgTUFQUElORyBTRUNUSU9OIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm9sZS1oZWFkZXJcIj5cblxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Sb2xlIE1hcHBpbmdzIGZvciBSZXZpZXc8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoIGZsZXggbWFyZ2luLXJpZ2h0LW1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJzZWFyY2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvci02MCBzZWFyY2gtaWNvbiBtYXQtaWNvbiBub3RyYW5zbGF0ZSBtYXRlcmlhbC1pY29ucyBtYXQtaWNvbi1uby1jb2xvclwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwic2lucHV0IGNvbG9yLTYwIHctZnVsbFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIGxhYmVsPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImFwcGx5RmlsdGVyKClcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBieSBkZXNpZ25hdGlvbiBuYW1lXCIgdHlwZT1cIlN0YW5kYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwic2VhcmNoVGV4dC50cmltKCkubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sb3ItNjAgY2xlYXItaWNvbiBtYXQtaWNvbiBub3RyYW5zbGF0ZSBtYXRlcmlhbC1pY29ucyBtYXQtaWNvbi1uby1jb2xvciBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCI+Y2xlYXI8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGwtMiBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJzZWFyY2hUZXh0LnRyaW0oKT8ubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VhcmNoVGV4dC50cmltKCk/Lmxlbmd0aCA9PT0gMCA/ICdidG4tZGlzYWJsZSc6J2J0bi1hY3RpdmUnXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiU2VhcmNoXCIgKGNsaWNrKT1cImFwcGx5RmlsdGVyKClcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNsYXNzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXIgbXQtNFwiIHN0eWxlPVwib3ZlcmZsb3c6IGF1dG87XCI+XG4gICAgICAgICAgICAgICAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MSB0YWJsZS1ib2R5XCI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGVzaWduYXRpb25fbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRhYmxlLWhlYWRlclwiIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRGVzaWduYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2aWV3Q0JQUGxhbihlbGVtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhY3RpdmVUYWIgPT09ICdtYXRjaGVkJz8gJ2Rlc2lnbmF0aW9uLXRleHQnOiAnZGVzaWduYXRpb24tdGV4dC11bm1hdGNoZWQnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImRlc2lnbmF0aW9uXCI+e3sgZWxlbWVudD8uZGVzaWduYXRpb25fbmFtZSB9fSA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIndpbmctdGV4dCBtdC0yXCI+V2luZy9EaXZpc2lvbiAtIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudD8ud2luZ19kaXZpc2lvbl9zZWN0aW9uIH19IDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInJvbGVfcmVzcG9uc2liaWxpdGllc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbbmdDbGFzc109XCJhY3RpdmVUYWIgPT09ICdtYXRjaGVkJz8gJ3RhYmxlLWhlYWRlcic6ICd0YWJsZS1oZWFkZXItdW5tYXRjaGVkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gUm9sZSAmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3BvbnNpYmlsaXRpZXMgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJyb2xlLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByb2xlIG9mIChpc1Jlc3BvbmlzYmlsaXR5RXhwYW5kZWQoZWxlbWVudC5pZCkgPyBlbGVtZW50LnJvbGVfcmVzcG9uc2liaWxpdGllcyA6IGVsZW1lbnQucm9sZV9yZXNwb25zaWJpbGl0aWVzLnNsaWNlKDAsIDIpKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aSsxfX0uIHt7IHJvbGUgfX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiZWxlbWVudC5yb2xlX3Jlc3BvbnNpYmlsaXRpZXMubGVuZ3RoID4gMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2aWV3LW1vcmUtbGVzcyBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsTGlzdChlbGVtZW50LCAncm9sZV9yZXNwb25zaWJpbGl0aWVzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMUI0Q0ExO2ZvbnQtc2l6ZTogMTZweDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBNb3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGl2aXRpZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggW25nQ2xhc3NdPVwiYWN0aXZlVGFiID09PSAnbWF0Y2hlZCc/ICd0YWJsZS1oZWFkZXInOiAndGFibGUtaGVhZGVyLXVubWF0Y2hlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFjdGl2aXRpZXMgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJyb2xlLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpdml0eSBvZiAoaXNBY3Rpdml0eUV4cGFuZGVkKGVsZW1lbnQuaWQpID8gZWxlbWVudC5hY3Rpdml0aWVzIDogZWxlbWVudC5hY3Rpdml0aWVzLnNsaWNlKDAsIDIpKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aSsxfX0uIHt7IGFjdGl2aXR5IH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImVsZW1lbnQuYWN0aXZpdGllcy5sZW5ndGggPiAyXCIgY2xhc3M9XCJ2aWV3LW1vcmUtbGVzcyBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsTGlzdChlbGVtZW50LCAnYWN0aXZpdHknKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6ICMxQjRDQTE7Zm9udC1zaXplOiAxNnB4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IE1vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYmVoYXZpb3JhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbbmdDbGFzc109XCJhY3RpdmVUYWIgPT09ICdtYXRjaGVkJz8gJ3RhYmxlLWhlYWRlcic6ICd0YWJsZS1oZWFkZXItdW5tYXRjaGVkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQmVoYXZpb3JhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wZXRlbmNpZXMgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjb21wZXRlbmN5LWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImJlaGF2aW91cmFsLXBpbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb21wIG9mIGdldENvbXBldGVuY2llc0J5VHlwZShlbGVtZW50LmNvbXBldGVuY2llcywgJ0JlaGF2aW9yYWwnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tcGV0ZW5jeS10ZXh0LWJlaGF2aW9yYWxcIj4ge3sgY29tcC50aGVtZSB9fSAtIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc3ViX3RoZW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmdW5jdGlvbmFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIFtuZ0NsYXNzXT1cImFjdGl2ZVRhYiA9PT0gJ21hdGNoZWQnPyAndGFibGUtaGVhZGVyJzogJ3RhYmxlLWhlYWRlci11bm1hdGNoZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBGdW5jdGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBldGVuY2llcyA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNvbXBldGVuY3ktbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZnVuY3Rpb25hbC1waWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tcCBvZiBnZXRDb21wZXRlbmNpZXNCeVR5cGUoZWxlbWVudC5jb21wZXRlbmNpZXMsICdGdW5jdGlvbmFsJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbXBldGVuY3ktdGV4dC1mdW5jdGlvbmFsXCI+IHt7IGNvbXAudGhlbWUgfX0gLSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnN1Yl90aGVtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkb21haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggW25nQ2xhc3NdPVwiYWN0aXZlVGFiID09PSAnbWF0Y2hlZCc/ICd0YWJsZS1oZWFkZXInOiAndGFibGUtaGVhZGVyLXVubWF0Y2hlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IERvbWFpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wZXRlbmNpZXMgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjb21wZXRlbmN5LWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRvbWFpbi1waWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tcCBvZiBnZXRDb21wZXRlbmNpZXNCeVR5cGUoZWxlbWVudC5jb21wZXRlbmNpZXMsICdEb21haW4nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tcGV0ZW5jeS10ZXh0LWRvbWFpblwiPiB7eyBjb21wLnRoZW1lIH19IC0ge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5zdWJfdGhlbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICptYXROb0RhdGFSb3c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGwgbm8tZGF0YS1jZWxsXCIgW2F0dHIuY29sc3Bhbl09XCJkaXNwbGF5ZWRDb2x1bW5zLmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyBEYXRhIEZvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhU291cmNlPy5maWx0ZXJlZERhdGE/Lmxlbmd0aCB8fCBkYXRhU291cmNlPy5maWx0ZXJlZERhdGE/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1wYWdpbmF0b3IgW2xlbmd0aF09XCJkYXRhU291cmNlPy5kYXRhPy5sZW5ndGhcIiBbcGFnZVNpemVdPVwiNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDIwXVwiIHNob3dGaXJzdExhc3RCdXR0b25zPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcGFnaW5hdG9yPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm92ZXJsYXktbG9hZGVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiNTBcIj48L21hdC1zcGlubmVyPlxuPC9kaXY+Il19
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3LXJlcXVlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvcmV2aWV3LXJlcXVlc3QvcmV2aWV3LXJlcXVlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvcmV2aWV3LXJlcXVlc3QvcmV2aWV3LXJlcXVlc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTyxzQkFBc0I7SUFtQmpDLFlBQW1CLGFBQTRCLEVBQVUsUUFBcUIsRUFBVSxLQUFxQixFQUFVLE1BQWM7UUFBbEgsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBbEJySSxZQUFPLEdBQVEsRUFDZCxDQUFDO1FBQ0YsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLCtCQUEwQixHQUE4QixFQUFFLENBQUM7UUFDM0QseUJBQW9CLEdBQThCLEVBQUUsQ0FBQztRQUVyRCxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ2YsY0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUNyQixxQkFBZ0IsR0FBYTtZQUMzQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLFlBQVk7WUFDWixZQUFZO1lBQ1osWUFBWTtZQUNaLFFBQVE7U0FD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LENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBTztRQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVksRUFBRSxPQUFZO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUM1QyxDQUFDOytHQXBKVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixxR0FNdEIsWUFBWSxnRENsQnpCLGt2WEE4T007OzRGRGxPTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CO2dMQVVMLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9zaGFyZWQvc2VydmljZXMvc2hhcmVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmV2aWV3LXJlcXVlc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmV2aWV3LXJlcXVlc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXZpZXctcmVxdWVzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJldmlld1JlcXVlc3RDb21wb25lbnQge1xuICByZXF1ZXN0OiBhbnkgPSB7XG4gIH07XG4gIHNlYXJjaFRleHQgPSAnJ1xuICBleHBhbmRlZFJlc3BvbnNpYmlsaXR5Um93czogeyBbaWQ6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBleHBhbmRlZEFjdGl2aXR5Um93czogeyBbaWQ6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xuICBsb2FkaW5nID0gZmFsc2VcbiAgYWN0aXZlVGFiID0gJ21hdGNoZWQnXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICdkZXNpZ25hdGlvbl9uYW1lJyxcbiAgICAncm9sZV9yZXNwb25zaWJpbGl0aWVzJyxcbiAgICAnYWN0aXZpdGllcycsXG4gICAgJ2JlaGF2aW9yYWwnLFxuICAgICdmdW5jdGlvbmFsJyxcbiAgICAnZG9tYWluJ1xuICBdO1xuICBkYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+KFtdKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSwgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHJlcXVlc3RJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdyZXF1ZXN0X2lkJyk7XG5cbiAgICBpZiAocmVxdWVzdElkKSB7XG4gICAgICB0aGlzLmdldFJlcXVlc3REZXRhaWxzKHJlcXVlc3RJZCk7XG4gICAgfVxuXG5cbiAgfVxuXG4gIGdldFJlcXVlc3REZXRhaWxzKHJlcXVlc3RJZCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICB0aGlzLnNoYXJlZFNlcnZpY2Uudmlld0FwcHJvdmFsUmVxdWVzdHMocmVxdWVzdElkKS5zdWJzY3JpYmUoe1xuXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ3JlcycsIHJlcylcbiAgICAgICAgdGhpcy5yZXF1ZXN0ID0gcmVzXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UocmVzPy5pdGVtcyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgICAgICAgfSwgMTAwKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0ZhaWxlZCB0byBsb2FkIHRoZSBhcHByb3ZhbCByZXF1ZXN0IGluZm9ybWF0aW9uLicsICdYJywge1xuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItZXJyb3InXVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG5cbiAgdG9nZ2xlUmVzcG9uc2liaWxpdHlFeHBhbmQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRSZXNwb25zaWJpbGl0eVJvd3NbaWRdID0gIXRoaXMuZXhwYW5kZWRSZXNwb25zaWJpbGl0eVJvd3NbaWRdO1xuICB9XG5cbiAgaXNSZXNwb25pc2JpbGl0eUV4cGFuZGVkKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcblxuXG4gICAgLy8gY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihMaXN0UG9wdXBDb21wb25lbnQsIHtcbiAgICAvLyAgIHdpZHRoOiAnMTAwMHB4JyxcbiAgICAvLyAgIGRhdGE6IHRoaXMuYWN0aXZlUm93RWxlbWVudCxcbiAgICAvLyAgICBwYW5lbENsYXNzOiAndmlldy1jYnAtcGxhbi1wb3B1cCcsXG4gICAgLy8gICBtaW5IZWlnaHQ6ICc0MDBweCcsICAgICAgICAgIC8vIFNldCBtaW5pbXVtIGhlaWdodFxuICAgIC8vICAgbWF4SGVpZ2h0OiAnOTB2aCcsICAgICAgICAgICAvLyBQcmV2ZW50IGl0IGZyb20gZ29pbmcgYmV5b25kIHZpZXdwb3J0XG4gICAgLy8gICBkaXNhYmxlQ2xvc2U6IHRydWUgLy8gT3B0aW9uYWw6IHByZXZlbnQgY2xvc2luZyB3aXRoIG91dHNpZGUgY2xpY2tcbiAgICAvLyB9KTtcblxuICAgIC8vIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgIC8vICAgcmV0dXJuIGZhbHNlXG4gICAgLy8gfSk7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRSZXNwb25zaWJpbGl0eVJvd3NbaWRdO1xuICB9XG5cbiAgdG9nZ2xlQWN0aXZpdHlFeHBhbmQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRBY3Rpdml0eVJvd3NbaWRdID0gIXRoaXMuZXhwYW5kZWRBY3Rpdml0eVJvd3NbaWRdO1xuICB9XG5cbiAgaXNBY3Rpdml0eUV4cGFuZGVkKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRlZEFjdGl2aXR5Um93c1tpZF07XG4gIH1cblxuICBnZXRDb21wZXRlbmNpZXNCeVR5cGUoY29tcGV0ZW5jaWVzOiBhbnlbXSwgdHlwZTogc3RyaW5nKTogYW55W10ge1xuICAgIHJldHVybiBjb21wZXRlbmNpZXM/LmZpbHRlcihjID0+IGMudHlwZSA9PT0gdHlwZSkgfHwgW107XG4gIH1cblxuICBiYWNrVG9BcHByb3ZhbFJlcXVlc3QoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYWkvYXBwcm92ZS1yZXF1ZXN0cyddKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVyKCkge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5zZWFyY2hUZXh0LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlclByZWRpY2F0ZSA9IChkYXRhOiBhbnksIGZpbHRlcjogc3RyaW5nKSA9PiB7XG5cbiAgICAgIGNvbnN0IGRlc2lnbmF0aW9uID0gZGF0YS5kZXNpZ25hdGlvbl9uYW1lPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuICAgICAgY29uc3Qgd2luZyA9IGRhdGEud2luZ19kaXZpc2lvbl9zZWN0aW9uPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuXG4gICAgICBjb25zdCByZXNwb25zaWJpbGl0aWVzID0gKGRhdGEucm9sZV9yZXNwb25zaWJpbGl0aWVzIHx8IFtdKVxuICAgICAgICAuam9pbignICcpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjb25zdCBhY3Rpdml0aWVzID0gKGRhdGEuYWN0aXZpdGllcyB8fCBbXSlcbiAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKTtcblxuICAgICAgY29uc3QgY29tcGV0ZW5jaWVzID0gKGRhdGEuY29tcGV0ZW5jaWVzIHx8IFtdKVxuICAgICAgICAubWFwKGMgPT4gYCR7Yy50aGVtZX0gJHtjLnN1Yl90aGVtZX1gKVxuICAgICAgICAuam9pbignICcpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjb25zdCBjb21iaW5lZCA9XG4gICAgICAgIGRlc2lnbmF0aW9uICtcbiAgICAgICAgd2luZyArXG4gICAgICAgIHJlc3BvbnNpYmlsaXRpZXMgK1xuICAgICAgICBhY3Rpdml0aWVzICtcbiAgICAgICAgY29tcGV0ZW5jaWVzO1xuXG4gICAgICByZXR1cm4gY29tYmluZWQuaW5jbHVkZXMoZmlsdGVyKTtcbiAgICB9O1xuXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9IGZpbHRlclZhbHVlO1xuXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IuZmlyc3RQYWdlKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJTZWFyY2goKSB7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9ICcnO1xuXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IuZmlyc3RQYWdlKCk7XG4gICAgfVxuICB9XG5cbiAgdmlld0NCUFBsYW4oZWxlbWVudCkge1xuICAgIGNvbnNvbGUubG9nKCd2aWV3IGNicCBwbGFuJywgZWxlbWVudClcbiAgfVxuXG4gIG9wZW5GdWxsTGlzdCh0eXBlOiBzdHJpbmcsIGVsZW1lbnQ6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCd2aWV3IGNicCBwbGFuJywgdHlwZSxlbGVtZW50KVxuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cInJldmlldy1jb250YWluZXJcIj5cblxuICAgIDwhLS0gSEVBREVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImJhY2staWNvblwiIChjbGljayk9XCJiYWNrVG9BcHByb3ZhbFJlcXVlc3QoKVwiPmFycm93X2JhY2s8L21hdC1pY29uPlxuXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlJldmlldyBSZXF1ZXN0PC9wPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicmVxdWVzdC1pZFwiPnt7cmVxdWVzdD8uaWR9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWJhZGdlXCI+XG4gICAgICAgICAgICB7e3JlcXVlc3Q/LnN0YXR1cyB8IHRpdGxlY2FzZX19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG5cblxuICAgIDwhLS0gUkVRVUVTVCBERVRBSUxTIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJpbm5lci1jb250YWluZXJcIj5cbiAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwiZGV0YWlscy1jYXJkXCI+XG5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlJlcXVlc3QgRGV0YWlsczwvcD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtZ3JpZFwiPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1ib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnRhZzwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImxhYmVsXCI+UmVxdWVzdCBJRDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmFsdWVcIj57e3JlcXVlc3Q/LmlkfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1ib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmFzc2lnbm1lbnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPlJlcXVlc3QgTmFtZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmFsdWVcIj57e3JlcXVlc3Q/LnJlcXVlc3RfbmFtZX19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tYWlsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5SZXF1ZXN0ZWQgQnk8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZhbHVlXCI+e3tyZXF1ZXN0Py51c2VyPy51c2VybmFtZSB8IHRpdGxlY2FzZX19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5ldmVudDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImxhYmVsXCI+U3VibWl0dGVkIE9uPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2YWx1ZVwiPnt7cmVxdWVzdD8uY3JlYXRlZF9hdCB8IGRhdGU6ICdNTU0gZCwgeSd9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLWJveFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cGVyc29uPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5Oby4gb2YgRGVzaWduYXRpb25zPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2YWx1ZVwiPnt7cmVxdWVzdD8uZGVzaWduYXRpb25fY291bnR9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bWF0LWRpdmlkZXIgY2xhc3M9XCJkaXZpZGVyXCI+PC9tYXQtZGl2aWRlcj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZ2FuaXphdGlvblwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5Pcmdhbml6YXRpb248L3A+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJvcmctdmFsdWVcIj57e3JlcXVlc3Q/LnN0YXRlX2NlbnRlcl9uYW1lfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L21hdC1jYXJkPlxuXG5cbiAgICAgICAgPCEtLSBST0xFIE1BUFBJTkcgU0VDVElPTiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtaGVhZGVyXCI+XG5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+Um9sZSBNYXBwaW5ncyBmb3IgUmV2aWV3PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaCBmbGV4IG1hcmdpbi1yaWdodC1tXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyc2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sb3ItNjAgc2VhcmNoLWljb24gbWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgbWF0LWljb24tbm8tY29sb3JcIj5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInNpbnB1dCBjb2xvci02MCB3LWZ1bGxcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIiBsYWJlbD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJhcHBseUZpbHRlcigpXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZGVzaWduYXRpb24gbmFtZVwiIHR5cGU9XCJTdGFuZGFyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbG9yLTYwIGNsZWFyLWljb24gbWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgbWF0LWljb24tbm8tY29sb3IgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPmNsZWFyPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsLTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwic2VhcmNoVGV4dC50cmltKCk/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlYXJjaFRleHQudHJpbSgpPy5sZW5ndGggPT09IDAgPyAnYnRuLWRpc2FibGUnOididG4tYWN0aXZlJ1wiIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIlNlYXJjaFwiIChjbGljayk9XCJhcHBseUZpbHRlcigpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jbGFzc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyIG10LTRcIiBzdHlsZT1cIm92ZXJmbG93OiBhdXRvO1wiPlxuICAgICAgICAgICAgICAgICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejEgdGFibGUtYm9keVwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRlc2lnbmF0aW9uX25hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IERlc2lnbmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlld0NCUFBsYW4oZWxlbWVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYWN0aXZlVGFiID09PSAnbWF0Y2hlZCc/ICdkZXNpZ25hdGlvbi10ZXh0JzogJ2Rlc2lnbmF0aW9uLXRleHQtdW5tYXRjaGVkJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJkZXNpZ25hdGlvblwiPnt7IGVsZW1lbnQ/LmRlc2lnbmF0aW9uX25hbWUgfX0gPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3aW5nLXRleHQgbXQtMlwiPldpbmcvRGl2aXNpb24gLSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ/LndpbmdfZGl2aXNpb25fc2VjdGlvbiB9fSA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJyb2xlX3Jlc3BvbnNpYmlsaXRpZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggW25nQ2xhc3NdPVwiYWN0aXZlVGFiID09PSAnbWF0Y2hlZCc/ICd0YWJsZS1oZWFkZXInOiAndGFibGUtaGVhZGVyLXVubWF0Y2hlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFJvbGUgJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNwb25zaWJpbGl0aWVzIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicm9sZS1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcm9sZSBvZiAoaXNSZXNwb25pc2JpbGl0eUV4cGFuZGVkKGVsZW1lbnQuaWQpID8gZWxlbWVudC5yb2xlX3Jlc3BvbnNpYmlsaXRpZXMgOiBlbGVtZW50LnJvbGVfcmVzcG9uc2liaWxpdGllcy5zbGljZSgwLCAyKSk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2krMX19LiB7eyByb2xlIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImVsZW1lbnQucm9sZV9yZXNwb25zaWJpbGl0aWVzLmxlbmd0aCA+IDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1tb3JlLWxlc3MgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRnVsbExpc3QoZWxlbWVudCwgJ3JvbGVfcmVzcG9uc2liaWxpdGllcycpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogIzFCNENBMTtmb250LXNpemU6IDE2cHg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgTW9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpdml0aWVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIFtuZ0NsYXNzXT1cImFjdGl2ZVRhYiA9PT0gJ21hdGNoZWQnPyAndGFibGUtaGVhZGVyJzogJ3RhYmxlLWhlYWRlci11bm1hdGNoZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpdml0aWVzIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicm9sZS1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aXZpdHkgb2YgKGlzQWN0aXZpdHlFeHBhbmRlZChlbGVtZW50LmlkKSA/IGVsZW1lbnQuYWN0aXZpdGllcyA6IGVsZW1lbnQuYWN0aXZpdGllcy5zbGljZSgwLCAyKSk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2krMX19LiB7eyBhY3Rpdml0eSB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJlbGVtZW50LmFjdGl2aXRpZXMubGVuZ3RoID4gMlwiIGNsYXNzPVwidmlldy1tb3JlLWxlc3MgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRnVsbExpc3QoZWxlbWVudCwgJ2FjdGl2aXR5JylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMUI0Q0ExO2ZvbnQtc2l6ZTogMTZweDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBNb3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImJlaGF2aW9yYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggW25nQ2xhc3NdPVwiYWN0aXZlVGFiID09PSAnbWF0Y2hlZCc/ICd0YWJsZS1oZWFkZXInOiAndGFibGUtaGVhZGVyLXVubWF0Y2hlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEJlaGF2aW9yYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGV0ZW5jaWVzIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiY29tcGV0ZW5jeS1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJiZWhhdmlvdXJhbC1waWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tcCBvZiBnZXRDb21wZXRlbmNpZXNCeVR5cGUoZWxlbWVudC5jb21wZXRlbmNpZXMsICdCZWhhdmlvcmFsJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbXBldGVuY3ktdGV4dC1iZWhhdmlvcmFsXCI+IHt7IGNvbXAudGhlbWUgfX0gLSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnN1Yl90aGVtZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZnVuY3Rpb25hbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbbmdDbGFzc109XCJhY3RpdmVUYWIgPT09ICdtYXRjaGVkJz8gJ3RhYmxlLWhlYWRlcic6ICd0YWJsZS1oZWFkZXItdW5tYXRjaGVkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRnVuY3Rpb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wZXRlbmNpZXMgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjb21wZXRlbmN5LWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImZ1bmN0aW9uYWwtcGlsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbXAgb2YgZ2V0Q29tcGV0ZW5jaWVzQnlUeXBlKGVsZW1lbnQuY29tcGV0ZW5jaWVzLCAnRnVuY3Rpb25hbCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21wZXRlbmN5LXRleHQtZnVuY3Rpb25hbFwiPiB7eyBjb21wLnRoZW1lIH19IC0ge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5zdWJfdGhlbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZG9tYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIFtuZ0NsYXNzXT1cImFjdGl2ZVRhYiA9PT0gJ21hdGNoZWQnPyAndGFibGUtaGVhZGVyJzogJ3RhYmxlLWhlYWRlci11bm1hdGNoZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBEb21haW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGV0ZW5jaWVzIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiY29tcGV0ZW5jeS1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkb21haW4tcGlsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbXAgb2YgZ2V0Q29tcGV0ZW5jaWVzQnlUeXBlKGVsZW1lbnQuY29tcGV0ZW5jaWVzLCAnRG9tYWluJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbXBldGVuY3ktdGV4dC1kb21haW5cIj4ge3sgY29tcC50aGVtZSB9fSAtIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc3ViX3RoZW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbWF0Tm9EYXRhUm93PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsIG5vLWRhdGEtY2VsbFwiIFthdHRyLmNvbHNwYW5dPVwiZGlzcGxheWVkQ29sdW1ucy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gRGF0YSBGb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVNvdXJjZT8uZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgZGF0YVNvdXJjZT8uZmlsdGVyZWREYXRhPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcGFnaW5hdG9yIFtsZW5ndGhdPVwiZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoXCIgW3BhZ2VTaXplXT1cIjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyMF1cIiBzaG93Rmlyc3RMYXN0QnV0dG9ucz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXBhZ2luYXRvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJvdmVybGF5LWxvYWRlclwiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjUwXCI+PC9tYXQtc3Bpbm5lcj5cbjwvZGl2PiJdfQ==
|