tango-app-ui-analyse-trax 3.3.1-alpha-task.63 → 3.3.1-alpha-task.65
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/chip-dropdown/chip-dropdown.component.mjs +2 -2
- package/esm2022/lib/components/create-task/create-task.component.mjs +2 -2
- package/esm2022/lib/components/flags-info/flags-info.component.mjs +5 -10
- package/esm2022/lib/components/task/task.component.mjs +6 -3
- package/esm2022/lib/components/task-configure/task-configure.component.mjs +24 -5
- package/esm2022/lib/components/trax-store/trax-store.component.mjs +10 -5
- package/esm2022/lib/services/trax.service.mjs +4 -1
- package/fesm2022/tango-app-ui-analyse-trax.mjs +44 -21
- package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
- package/lib/components/task/task.component.d.ts +2 -0
- package/lib/services/trax.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -69,7 +69,8 @@ export class TraxStoreComponent {
|
|
|
69
69
|
let stores = [];
|
|
70
70
|
res.data.result.forEach((item) => {
|
|
71
71
|
stores.push({
|
|
72
|
-
name: item.storeName
|
|
72
|
+
name: item.storeName,
|
|
73
|
+
city: item.city
|
|
73
74
|
});
|
|
74
75
|
});
|
|
75
76
|
this.storeList = this.store = stores;
|
|
@@ -126,22 +127,26 @@ export class TraxStoreComponent {
|
|
|
126
127
|
this.toast.getErrorToast('Invalid Email Format');
|
|
127
128
|
return false;
|
|
128
129
|
}
|
|
130
|
+
if (!this.selectedStore?.city.trim()) {
|
|
131
|
+
this.toast.getErrorToast('City is Required');
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
129
134
|
let userData = [{
|
|
130
135
|
storeName: this.selectedStore?.name,
|
|
131
136
|
userName: this?.userName?.trim(),
|
|
132
137
|
userEmail: this?.userEmail?.toLowerCase()?.trim(),
|
|
133
138
|
userPhone: '',
|
|
134
139
|
checkFlag: true,
|
|
135
|
-
city: this.city
|
|
140
|
+
city: this.selectedStore?.city || ''
|
|
136
141
|
}];
|
|
137
142
|
this.dialogRef.close(userData);
|
|
138
143
|
}
|
|
139
144
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxStoreComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TraxService }, { token: i2.NgbActiveModal }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
140
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxStoreComponent, selector: "lib-trax-store", inputs: { data: "data", client: "client" }, host: { listeners: { "document:click": "clickOutside($event)" } }, ngImport: i0, template: "<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path d=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I\u2019m looking for isn\u2019t available,<a class=\"text-primary\"\r\n href=\"/manage/stores/addition-method\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">City</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"City\"\r\n [(ngModel)]=\"city\">\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>", styles: [".storePopupcontent{font-family:Inter;align-items:left}.storePopupcontent .popuptitle{color:var(--gray-900, #101828);font-size:18px;font-weight:600;line-height:20px}.storePopupcontent .popupsubtitle{color:var(--gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.storePopupcontent .btn-outline{border:1px solid lightgrey}.storePopupcontent button{width:45%}.storePopupcontent .inputname{width:100%;border:none;color:#000000de;height:45px;font-size:14px!important;padding:10px 16px;border-radius:4px;outline:1px solid #D0D5DD}.label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}::ng-deep .storePopupcontent input{display:flex!important;align-items:center!important;gap:8px!important;align-self:stretch!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.btn-primary{line-height:18px!important}.position-relative{position:relative}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;width:100%;box-sizing:border-box}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:3px!important}.formSeach{width:95%}.storetext{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
145
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TraxStoreComponent, selector: "lib-trax-store", inputs: { data: "data", client: "client" }, host: { listeners: { "document:click": "clickOutside($event)" } }, ngImport: i0, template: "<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path d=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I\u2019m looking for isn\u2019t available,<a class=\"text-primary\"\r\n href=\"/manage/stores/addition-method\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">City</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"City\"\r\n [(ngModel)]=\"this.selectedStore.city\">\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>", styles: [".storePopupcontent{font-family:Inter;align-items:left}.storePopupcontent .popuptitle{color:var(--gray-900, #101828);font-size:18px;font-weight:600;line-height:20px}.storePopupcontent .popupsubtitle{color:var(--gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.storePopupcontent .btn-outline{border:1px solid lightgrey}.storePopupcontent button{width:45%}.storePopupcontent .inputname{width:100%;border:none;color:#000000de;height:45px;font-size:14px!important;padding:10px 16px;border-radius:4px;outline:1px solid #D0D5DD}.label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}::ng-deep .storePopupcontent input{display:flex!important;align-items:center!important;gap:8px!important;align-self:stretch!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.btn-primary{line-height:18px!important}.position-relative{position:relative}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;width:100%;box-sizing:border-box}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:3px!important}.formSeach{width:95%}.storetext{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
141
146
|
}
|
|
142
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraxStoreComponent, decorators: [{
|
|
143
148
|
type: Component,
|
|
144
|
-
args: [{ selector: 'lib-trax-store', template: "<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path d=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I\u2019m looking for isn\u2019t available,<a class=\"text-primary\"\r\n href=\"/manage/stores/addition-method\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">City</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"City\"\r\n [(ngModel)]=\"city\">\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>", styles: [".storePopupcontent{font-family:Inter;align-items:left}.storePopupcontent .popuptitle{color:var(--gray-900, #101828);font-size:18px;font-weight:600;line-height:20px}.storePopupcontent .popupsubtitle{color:var(--gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.storePopupcontent .btn-outline{border:1px solid lightgrey}.storePopupcontent button{width:45%}.storePopupcontent .inputname{width:100%;border:none;color:#000000de;height:45px;font-size:14px!important;padding:10px 16px;border-radius:4px;outline:1px solid #D0D5DD}.label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}::ng-deep .storePopupcontent input{display:flex!important;align-items:center!important;gap:8px!important;align-self:stretch!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.btn-primary{line-height:18px!important}.position-relative{position:relative}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;width:100%;box-sizing:border-box}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:3px!important}.formSeach{width:95%}.storetext{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}\n"] }]
|
|
149
|
+
args: [{ selector: 'lib-trax-store', template: "<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\" />\r\n <path d=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I\u2019m looking for isn\u2019t available,<a class=\"text-primary\"\r\n href=\"/manage/stores/addition-method\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">City</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"City\"\r\n [(ngModel)]=\"this.selectedStore.city\">\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>", styles: [".storePopupcontent{font-family:Inter;align-items:left}.storePopupcontent .popuptitle{color:var(--gray-900, #101828);font-size:18px;font-weight:600;line-height:20px}.storePopupcontent .popupsubtitle{color:var(--gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.storePopupcontent .btn-outline{border:1px solid lightgrey}.storePopupcontent button{width:45%}.storePopupcontent .inputname{width:100%;border:none;color:#000000de;height:45px;font-size:14px!important;padding:10px 16px;border-radius:4px;outline:1px solid #D0D5DD}.label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}::ng-deep .storePopupcontent input{display:flex!important;align-items:center!important;gap:8px!important;align-self:stretch!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}.btn-primary{line-height:18px!important}.position-relative{position:relative}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;width:100%;box-sizing:border-box}.dropdown-menu{position:absolute;top:100%;left:0;right:0;border:1px solid #ccc;background-color:#fff;z-index:1000;display:block;box-sizing:border-box}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:#f1f1f1}.dropdown-item input[type=checkbox]{margin-right:10px}.custom-dropdown-menu{border-radius:4px;box-shadow:0 1px 2px #1018280d}.custom-dropdown-item{display:flex;align-items:center}.custom-dropdown-item input{margin-left:10px}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:3px!important}.formSeach{width:95%}.storetext{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}\n"] }]
|
|
145
150
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TraxService }, { type: i2.NgbActiveModal }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { data: [{
|
|
146
151
|
type: Input
|
|
147
152
|
}], client: [{
|
|
@@ -150,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
150
155
|
type: HostListener,
|
|
151
156
|
args: ["document:click", ["$event"]]
|
|
152
157
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC1zdG9yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSXpHLE9BQU8sRUFBQyxPQUFPLEVBQVksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUXhDLE1BQU0sT0FBTyxrQkFBa0I7SUFnQ1Q7SUFBeUM7SUFBK0I7SUFBaUM7SUFBMkI7SUEvQi9JLElBQUksQ0FBSztJQUNULE1BQU0sQ0FBSztJQUNwQixTQUFTLEdBQU8sRUFBRSxDQUFDO0lBQ25CLEtBQUssQ0FBSTtJQUNULGFBQWEsR0FBTyxFQUFFLENBQUM7SUFDdkIsWUFBWSxHQUFVLEtBQUssQ0FBQztJQUM1QixXQUFXLENBQUs7SUFDaEIsbUJBQW1CLEdBQUc7UUFDbEIsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsTUFBTTtRQUNqQixjQUFjLEVBQUUsQ0FBQztRQUNqQixpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCLGVBQWUsRUFBRSxJQUFJO0tBQ3hCLENBQUM7SUFDRixRQUFRLEdBQVUsRUFBRSxDQUFBO0lBQ3BCLFNBQVMsR0FBVSxFQUFFLENBQUE7SUFDckIsSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUNOLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2QsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFJMUMsWUFBWSxD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QUssQ0FBQztTQUNmO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQztnQkFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJO2dCQUNuQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hDLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRTtnQkFDakQsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJO2FBQ2YsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzt3R0F4SVUsa0JBQWtCOzRGQUFsQixrQkFBa0IscUtDWi9CLHl5TEEwRU07OzRGRDlETyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCO3lNQUtqQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQXFCTixZQUFZO3NCQURYLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHtTdWJqZWN0LCB0YWtlVW50aWx9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10cmF4LXN0b3JlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJheC1zdG9yZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RyYXgtc3RvcmUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmF4U3RvcmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTphbnk7XHJcbiAgQElucHV0KCkgY2xpZW50OmFueTtcclxuICBzdG9yZUxpc3Q6YW55ID0gW107XHJcbiAgc3RvcmU6W107XHJcbiAgc2VsZWN0ZWRTdG9yZTphbnkgPSB7fTtcclxuICBzaG93RHJvcERvd246Ym9vbGVhbj0gZmFsc2U7XHJcbiAgc2VhcmNoU3RvcmU6YW55O1xyXG4gIG11bHRpU2VsZWN0U2V0dGluZ3MgPSB7XHJcbiAgICAgIGlkRmllbGQ6ICdpZCcsXHJcbiAgICAgIHRleHRGaWVsZDogJ25hbWUnLFxyXG4gICAgICBpdGVtc1Nob3dMaW1pdDogMSxcclxuICAgICAgYWxsb3dTZWFyY2hGaWx0ZXI6IHRydWUsXHJcbiAgICAgIHNpbmdsZVNlbGVjdGlvblx0OnRydWVcclxuICB9O1xyXG4gIHVzZXJOYW1lOnN0cmluZyA9ICcnXHJcbiAgdXNlckVtYWlsOnN0cmluZyA9ICcnXHJcbiAgY2l0eTpzdHJpbmc9JydcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoXHJcbiAgICAgIFwiLmRyb3Bkb3duLWNsb3NlXCJcclxuICAgICk7XHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZWRldGVjdG9yOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgU29wU2VydmljZTpUcmF4U2VydmljZSxwcml2YXRlIGRpYWxvZ1JlZjpOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSkgeyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgXCJjbGllbnRJZFwiOiBbdGhpcy5jbGllbnRdLFxyXG4gICAgXCJvZmZzZXRcIjogMSxcclxuICAgIFwibGltaXRcIjogMTAwMDAsXHJcbiAgICBcInNvcnRDb2x1bU5hbWVcIjogXCJzdG9yZUlkXCIsXHJcbiAgICBcInNvcnRCeVwiOiAtMSxcclxuICAgIFwic2VhcmNoVmFsdWVcIjogXCJcIixcclxuICAgIFwiZXhwb3J0XCI6IGZhbHNlLFxyXG4gICAgXCJzdGF0dXNcIjogW1xyXG4gICAgICAgIFwiTGl2ZVwiLFxyXG4gICAgICAgIFwib25ib2FyZGVkXCIsXHJcbiAgICAgICAgXCJkZXBsb3llZFwiLFxyXG4gICAgICAgIFwicGFpcmVkXCIsXHJcbiAgICAgICAgXCJpbnN0YWxsYXRpb25mYWlsZWRcIixcclxuICAgICAgICBcIkluZnJhIElzc3VlXCJcclxuICAgIF1cclxuICAgfVxyXG4gICB0aGlzLlNvcFNlcnZpY2UuZ2V0U3RvcmVMaXN0KGRhdGEpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKHJlcy5kYXRhLnJlc3VsdCk7XHJcbiAgICBcclxuICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEucmVzdWx0Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgc3RvcmVzOmFueSA9IFtdO1xyXG4gICAgICByZXMuZGF0YS5yZXN1bHQuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgICBzdG9yZXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOml0ZW0uc3RvcmVOYW1lXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSB0aGlzLnN0b3JlID0gIHN0b3JlcztcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgIH1cclxuICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJykgfHwgJ3t9Jyk7XHJcbiAgICBpZighc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NsaWVudC1kZXRhaWxzJykgfHwgJ3t9Jyk7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzLmNsaWVudCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudElkO1xyXG4gICAgfVxyXG4gICAgaWYoc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICB0aGlzLmNsaWVudD0gc3RvcmFnZURldGFpbHMuY2xpZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRHJvcERvd24oKSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RTdG9yZShldmVudDphbnkpIHtcclxuXHJcbiAgfVxyXG5cclxuICBmaWx0ZXJTZWFyY2goKSB7XHJcbiAgICBpZih0aGlzLnNlYXJjaFN0b3JlLnRyaW0oKS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSB0aGlzLnN0b3JlLmZpbHRlcigoaXRlbTphbnkpID0+IGl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoU3RvcmUudG9Mb3dlckNhc2UoKSkpXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbLi4udGhpcy5zdG9yZV1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVNlbGVjdGVkU3RvcmUoaW5kZXg6bnVtYmVyKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSA9IHRoaXMuc3RvcmVMaXN0W2luZGV4XTtcclxuICAgIHRoaXMuY2xvc2VEcm9wRG93bigpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wRG93bigpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVkU3RvcmUoKSB7XHJcbiAgICAgIGlmKCF0aGlzLnNlbGVjdGVkU3RvcmUubmFtZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBTZWxlY3QgYSBTdG9yZScpO1xyXG4gICAgICByZXR1cm4gIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMudXNlck5hbWUudHJpbSgpKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnVXNlciBOYW1lIGlzIFJlcXVpcmVkJyk7XHJcbiAgICAgIHJldHVybiAgZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy51c2VyRW1haWwudHJpbSgpKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnVXNlciBFbWFpbCBpcyBSZXF1aXJlZCcpO1xyXG4gICAgICByZXR1cm4gIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMudXNlckVtYWlsLm1hdGNoKC9eW2EtekEtWjAtOS5fLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Miw2fSQvKSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ludmFsaWQgRW1haWwgRm9ybWF0Jyk7XHJcbiAgICAgIHJldHVybiAgZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHVzZXJEYXRhID0gW3tcclxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnNlbGVjdGVkU3RvcmU/Lm5hbWUsXHJcbiAgICAgIHVzZXJOYW1lOiB0aGlzPy51c2VyTmFtZT8udHJpbSgpLFxyXG4gICAgICB1c2VyRW1haWw6IHRoaXM/LnVzZXJFbWFpbD8udG9Mb3dlckNhc2UoKT8udHJpbSgpLFxyXG4gICAgICB1c2VyUGhvbmU6ICcnLFxyXG4gICAgICBjaGVja0ZsYWc6IHRydWUsXHJcbiAgICAgIGNpdHk6dGhpcy5jaXR5XHJcbiAgICB9XVxyXG5cclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHVzZXJEYXRhKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdG9yZVBvcHVwY29udGVudCBwLTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI4XCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyMVYzNU0yMSAyOEgzNVwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzcGFuIGNsYXNzPVwicG9wdXB0aXRsZVwiPkFkZCBTdG9yZXM8L3NwYW4+XHJcbiAgICA8cCBjbGFzcz1cInBvcHVwc3VidGl0bGUgbXQtM1wiPkZpbmlzaCBjb25maWd1cmluZyB5b3VyIHN0b3JlIGJ5IHByb3ZpZGluZyB0aGUgZGV0YWlscyBiZWxvdy48L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHQtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImlucHV0bW9kZWxcIiBjbGFzcz1cImxhYmVsIHBiLTJcIj5TZWxlY3QgU3RvcmU8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jbG9zZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi42ODAxNSA1LjgwMzhMMi42MjY5IDUuODg2OTdDMi4wNjg4NiA2Ljg3NDAyIDIuNjY0NjkgOC4xMjE0NCAzLjczNjMgOC4yNjQ1NEMzLjgzMzM5IDguMjc2NDEgMy45MjM3MyA4LjI4MjY5IDQuMDEyIDguMjgyNjlDNC41OTAxNSA4LjI4MjY5IDUuMTAxMzIgOC4wMzQ2NyA1LjQ1NzU5IDcuNjQ3OTRMNi4wMTA5MyA3LjA0NzMyTDYuNTYyMzggNy42NDk2N0M2LjkxNDMyIDguMDM0MDkgNy40MjQzMyA4LjI4MjY5IDguMDA2MzkgOC4yODI2OUM4LjU4NTgzIDguMjgyNjkgOS4wOTg3NyA4LjAzMzc0IDkuNDUwMzkgNy42NDk2N0wxMC4wMDM2IDcuMDQ1NDNMMTAuNTU2OCA3LjY0OTY3QzEwLjkwODQgOC4wMzM3NCAxMS40MjEzIDguMjgyNjkgMTIuMDAwOCA4LjI4MjY5QzEyLjU4MDIgOC4yODI2OSAxMy4wOTMyIDguMDMzNzQgMTMuNDQ0OCA3LjY0OTY3TDEzLjk5OCA3LjA0NTQzTDE0LjU1MTEgNy42NDk2N0MxNC45MDI4IDguMDMzNzQgMTUuNDE1NyA4LjI4MjY5IDE1Ljk5NTIgOC4yODI2OUMxNi4wODA1IDguMjgyNjkgMTYuMTczNiA4LjI3NjQgMTYuMjcgOC4yNjQ2NEMxNy4zNjUyIDguMTE1MzIgMTcuOTYzIDYuODAxMDUgMTcuMzI0MyA1LjgwNDNDMTcuMzI0MiA1LjgwNDI1IDE3LjMyNDIgNS44MDQxOSAxNy4zMjQyIDUuODA0MTNMMTUuNTY2IDMuMDYyNzJMMTUuNTY2IDMuMDYyNzJMMTUuNTY1MSAzLjA2MTI1QzE1LjU0OTkgMy4wMzc0MiAxNS41MTI0IDMuMDExODYgMTUuNDY1MiAzLjAxMTg2SDQuNTM1ODFDNC40ODg2NiAzLjAxMTg2IDQuNDUxMTcgMy4wMzc0MiA0LjQzNTk3IDMuMDYxMjVMNC40MzUzNSAzLjA2MjIyTDIuNjgwMTUgNS44MDM4Wk0xNS42NTE2IDEwLjczNzFWMTMuODY5VjE0LjYxOUgxNC45MDE2SDUuMDk5NDNINC4zNDk0M1YxMy44NjlWMTAuNzM3NUM0LjIzOTIgMTAuNzQ1NyA0LjEyNzY4IDEwLjc1IDQuMDE1MDcgMTAuNzVDMy45NzI3NiAxMC43NSAzLjkzMDc0IDEwLjc0OTMgMy44ODkgMTAuNzQ4MVYxMy44NjlWMTUuODAzNUMzLjg4OSAxNi40NDY5IDQuNDIyOSAxNi45ODgxIDUuMDk5NDMgMTYuOTg4MUgxNC45MDE2QzE1LjU3ODEgMTYuOTg4MSAxNi4xMTIgMTYuNDQ2OSAxNi4xMTIgMTUuODAzNVYxMy44NjlWMTAuNzQ4M0MxNi4wNzIyIDEwLjc0OTQgMTYuMDMyMiAxMC43NSAxNS45OTIxIDEwLjc1QzE1Ljg3NzcgMTAuNzUgMTUuNzY0MSAxMC43NDU2IDE1LjY1MTYgMTAuNzM3MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZHJvcGRvd24taW5wdXQgcHMtMTRcIiBbbmdNb2RlbF09XCJzZWxlY3RlZFN0b3JlPy5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3BEb3duKClcIiByZWFkb25seSBwbGFjZWhvbGRlcj1cIlNlbGVjdCBTdG9yZS4uLlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGN1c3RvbS1kcm9wZG93bi1tZW51IHctMTAwXCIgKm5nSWY9XCJzaG93RHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG1iLTIgZHJvcGRvd24tc2VhcmNoIG14LTMgZm9ybVNlYWNoXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBTdG9yZS4uLlwiIFsobmdNb2RlbCldPVwic2VhcmNoU3RvcmVcIiAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJTZWFyY2goKVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJzdG9yZUxpc3Q/Lmxlbmd0aCA+IDUgPyAnaC0yMDBweCBvdmVyZmxvdy1hdXRvJyA6ICdoLWF1dG8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gZm9ybS1jaGVjayBjdXN0b20tZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdG9yZSBvZiBzdG9yZUxpc3Q7bGV0IGk9IGluZGV4XCIgKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkU3RvcmUoaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFtmb3JdPVwic3RvcmUubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcmUubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvcmV0ZXh0IG10LTJcIj5TdG9yZSB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzbuKAmXQgYXZhaWxhYmxlLDxhIGNsYXNzPVwidGV4dC1wcmltYXJ5XCJcclxuICAgICAgICAgICAgaHJlZj1cIi9tYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZFwiPjx1Pk9uYm9hcmQgU3RvcmVzPC91PjwvYT48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicHQtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dG1vZGVsXCIgY2xhc3M9XCJsYWJlbCBwYi0yXCI+QXNzaWduIFRvPC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy00MzBweCBmdy1ib2xkIGlucHV0bmFtZVwiIHBsYWNlaG9sZGVyPVwiVXNlciBOYW1lXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ1c2VyTmFtZVwiPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInB0LTVcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiaW5wdXRtb2RlbFwiIGNsYXNzPVwibGFiZWwgcGItMlwiPkFzc2lnbmVlIE1haWwgSUQ8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlcyB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC4zMzM0IDQuOTk5OTlDMTguMzMzNCA0LjA4MzMzIDE3LjU4MzQgMy4zMzMzMyAxNi42NjY3IDMuMzMzMzNIMy4zMzM0MUMyLjQxNjc1IDMuMzMzMzMgMS42NjY3NSA0LjA4MzMzIDEuNjY2NzUgNC45OTk5OU0xOC4zMzM0IDQuOTk5OTlWMTVDMTguMzMzNCAxNS45MTY3IDE3LjU4MzQgMTYuNjY2NyAxNi42NjY3IDE2LjY2NjdIMy4zMzM0MUMyLjQxNjc1IDE2LjY2NjcgMS42NjY3NSAxNS45MTY3IDEuNjY2NzUgMTVWNC45OTk5OU0xOC4zMzM0IDQuOTk5OTlMMTAuMDAwMSAxMC44MzMzTDEuNjY2NzUgNC45OTk5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTQzMHB4IHBzLTE0IGZ3LWJvbGQgaW5wdXRuYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVXNlciBFbWFpbFwiIFsobmdNb2RlbCldPVwidXNlckVtYWlsXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwdC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImlucHV0bW9kZWxcIiBjbGFzcz1cImxhYmVsIHBiLTJcIj5DaXR5PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy00MzBweCBmdy1ib2xkIGlucHV0bmFtZVwiIHBsYWNlaG9sZGVyPVwiQ2l0eVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2l0eVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXQtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDBcIiAoY2xpY2spPVwidXBkYXRlZFN0b3JlKClcIj5cclxuICAgICAgICAgICAgQWRkIFN0b3JlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC1zdG9yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSXpHLE9BQU8sRUFBQyxPQUFPLEVBQVksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUXhDLE1BQU0sT0FBTyxrQkFBa0I7SUFnQ1Q7SUFBeUM7SUFBK0I7SUFBaUM7SUFBMkI7SUEvQi9JLElBQUksQ0FBSztJQUNULE1BQU0sQ0FBSztJQUNwQixTQUFTLEdBQU8sRUFBRSxDQUFDO0lBQ25CLEtBQUssQ0FBSTtJQUNULGFBQWEsR0FBTyxFQUFFLENBQUM7SUFDdkIsWUFBWSxHQUFVLEtBQUssQ0FBQztJQUM1QixXQUFXLENBQUs7SUFDaEIsbUJBQW1CLEdBQUc7UUFDbEIsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsTUFBTTtRQUNqQixjQUFjLEVBQUUsQ0FBQztRQUNqQixpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCLGVBQWUsRUFBRSxJQUFJO0tBQ3hCLENBQUM7SUFDRixRQUFRLEdBQVUsRUFBRSxDQUFBO0lBQ3BCLFNBQVMsR0FBVSxFQUFFLENBQUE7SUFDckIsSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUNOLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2QsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFJMUMsWUFBWSxD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LHNCQUFzQixDQUFDLENBQUM7WUFDakQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzdDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLFFBQVEsR0FBRyxDQUFDO2dCQUNkLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUk7Z0JBQ25DLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEMsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFO2dCQUNqRCxTQUFTLEVBQUUsRUFBRTtnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixJQUFJLEVBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksRUFBRTthQUNwQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQTdJVSxrQkFBa0I7NEZBQWxCLGtCQUFrQixxS0NaL0IsNHpMQTBFTTs7NEZEOURPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7eU1BS2pCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBcUJOLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQge1N1YmplY3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJheC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRyYXgtc3RvcmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmF4LXN0b3JlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdHJheC1zdG9yZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYXhTdG9yZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBkYXRhOmFueTtcclxuICBASW5wdXQoKSBjbGllbnQ6YW55O1xyXG4gIHN0b3JlTGlzdDphbnkgPSBbXTtcclxuICBzdG9yZTpbXTtcclxuICBzZWxlY3RlZFN0b3JlOmFueSA9IHt9O1xyXG4gIHNob3dEcm9wRG93bjpib29sZWFuPSBmYWxzZTtcclxuICBzZWFyY2hTdG9yZTphbnk7XHJcbiAgbXVsdGlTZWxlY3RTZXR0aW5ncyA9IHtcclxuICAgICAgaWRGaWVsZDogJ2lkJyxcclxuICAgICAgdGV4dEZpZWxkOiAnbmFtZScsXHJcbiAgICAgIGl0ZW1zU2hvd0xpbWl0OiAxLFxyXG4gICAgICBhbGxvd1NlYXJjaEZpbHRlcjogdHJ1ZSxcclxuICAgICAgc2luZ2xlU2VsZWN0aW9uXHQ6dHJ1ZVxyXG4gIH07XHJcbiAgdXNlck5hbWU6c3RyaW5nID0gJydcclxuICB1c2VyRW1haWw6c3RyaW5nID0gJydcclxuICBjaXR5OnN0cmluZz0nJ1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXHJcbiAgY2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcclxuICAgICAgXCIuZHJvcGRvd24tY2xvc2VcIlxyXG4gICAgKTtcclxuICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xyXG4gICAgICB0aGlzLmNsb3NlRHJvcERvd24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlZGV0ZWN0b3I6Q2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBTb3BTZXJ2aWNlOlRyYXhTZXJ2aWNlLHByaXZhdGUgZGlhbG9nUmVmOk5nYkFjdGl2ZU1vZGFsLHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlLHByaXZhdGUgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICBcImNsaWVudElkXCI6IFt0aGlzLmNsaWVudF0sXHJcbiAgICBcIm9mZnNldFwiOiAxLFxyXG4gICAgXCJsaW1pdFwiOiAxMDAwMCxcclxuICAgIFwic29ydENvbHVtTmFtZVwiOiBcInN0b3JlSWRcIixcclxuICAgIFwic29ydEJ5XCI6IC0xLFxyXG4gICAgXCJzZWFyY2hWYWx1ZVwiOiBcIlwiLFxyXG4gICAgXCJleHBvcnRcIjogZmFsc2UsXHJcbiAgICBcInN0YXR1c1wiOiBbXHJcbiAgICAgICAgXCJMaXZlXCIsXHJcbiAgICAgICAgXCJvbmJvYXJkZWRcIixcclxuICAgICAgICBcImRlcGxveWVkXCIsXHJcbiAgICAgICAgXCJwYWlyZWRcIixcclxuICAgICAgICBcImluc3RhbGxhdGlvbmZhaWxlZFwiLFxyXG4gICAgICAgIFwiSW5mcmEgSXNzdWVcIlxyXG4gICAgXVxyXG4gICB9XHJcbiAgIHRoaXMuU29wU2VydmljZS5nZXRTdG9yZUxpc3QoZGF0YSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgY29uc29sZS5sb2cocmVzLmRhdGEucmVzdWx0KTtcclxuICAgIFxyXG4gICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5yZXN1bHQubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBzdG9yZXM6YW55ID0gW107XHJcbiAgICAgIHJlcy5kYXRhLnJlc3VsdC5mb3JFYWNoKChpdGVtOmFueSkgPT4ge1xyXG4gICAgICAgIHN0b3Jlcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6aXRlbS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICBjaXR5Oml0ZW0uY2l0eVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuc3RvcmVMaXN0ID0gdGhpcy5zdG9yZSA9ICBzdG9yZXM7XHJcbiAgICAgIFxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW107XHJcbiAgICB9XHJcbiAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBsZXQgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fScpO1xyXG4gICAgaWYoIXN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbGllbnQtZGV0YWlscycpIHx8ICd7fScpO1xyXG4gICAgICBzdG9yYWdlRGV0YWlscy5jbGllbnQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnRJZDtcclxuICAgIH1cclxuICAgIGlmKHN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgdGhpcy5jbGllbnQ9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3RvcmUoZXZlbnQ6YW55KSB7XHJcblxyXG4gIH1cclxuXHJcbiAgZmlsdGVyU2VhcmNoKCkge1xyXG4gICAgaWYodGhpcy5zZWFyY2hTdG9yZS50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVMaXN0ID0gdGhpcy5zdG9yZS5maWx0ZXIoKGl0ZW06YW55KSA9PiBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFN0b3JlLnRvTG93ZXJDYXNlKCkpKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmVMaXN0ID0gWy4uLnRoaXMuc3RvcmVdXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTZWxlY3RlZFN0b3JlKGluZGV4Om51bWJlcil7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSB0aGlzLnN0b3JlTGlzdFtpbmRleF07XHJcbiAgICB0aGlzLmNsb3NlRHJvcERvd24oKTtcclxuICB9XHJcblxyXG4gIGNsb3NlRHJvcERvd24oKSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlZFN0b3JlKCkge1xyXG4gICAgICBpZighdGhpcy5zZWxlY3RlZFN0b3JlLm5hbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgU2VsZWN0IGEgU3RvcmUnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMudXNlck5hbWUudHJpbSgpKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnVXNlciBOYW1lIGlzIFJlcXVpcmVkJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLnVzZXJFbWFpbC50cmltKCkpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdVc2VyIEVtYWlsIGlzIFJlcXVpcmVkJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLnVzZXJFbWFpbC5tYXRjaCgvXlthLXpBLVowLTkuXy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsNn0kLykpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIEVtYWlsIEZvcm1hdCcpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5zZWxlY3RlZFN0b3JlPy5jaXR5LnRyaW0oKSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0NpdHkgaXMgUmVxdWlyZWQnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB1c2VyRGF0YSA9IFt7XHJcbiAgICAgIHN0b3JlTmFtZTogdGhpcy5zZWxlY3RlZFN0b3JlPy5uYW1lLFxyXG4gICAgICB1c2VyTmFtZTogdGhpcz8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgdXNlckVtYWlsOiB0aGlzPy51c2VyRW1haWw/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSxcclxuICAgICAgdXNlclBob25lOiAnJyxcclxuICAgICAgY2hlY2tGbGFnOiB0cnVlLFxyXG4gICAgICBjaXR5OnRoaXMuc2VsZWN0ZWRTdG9yZT8uY2l0eSB8fCAnJ1xyXG4gICAgfV1cclxuXHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh1c2VyRGF0YSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic3RvcmVQb3B1cGNvbnRlbnQgcC01XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjggMjFWMzVNMjEgMjhIMzVcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8c3BhbiBjbGFzcz1cInBvcHVwdGl0bGVcIj5BZGQgU3RvcmVzPC9zcGFuPlxyXG4gICAgPHAgY2xhc3M9XCJwb3B1cHN1YnRpdGxlIG10LTNcIj5GaW5pc2ggY29uZmlndXJpbmcgeW91ciBzdG9yZSBieSBwcm92aWRpbmcgdGhlIGRldGFpbHMgYmVsb3cuPC9wPlxyXG4gICAgPGRpdiBjbGFzcz1cInB0LTMgcG9zaXRpb24tcmVsYXRpdmVcIiAoY2xpY2tPdXRzaWRlKT1cImNsb3NlRHJvcERvd24oKVwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dG1vZGVsXCIgY2xhc3M9XCJsYWJlbCBwYi0yXCI+U2VsZWN0IFN0b3JlPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY2xvc2VcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNjgwMTUgNS44MDM4TDIuNjI2OSA1Ljg4Njk3QzIuMDY4ODYgNi44NzQwMiAyLjY2NDY5IDguMTIxNDQgMy43MzYzIDguMjY0NTRDMy44MzMzOSA4LjI3NjQxIDMuOTIzNzMgOC4yODI2OSA0LjAxMiA4LjI4MjY5QzQuNTkwMTUgOC4yODI2OSA1LjEwMTMyIDguMDM0NjcgNS40NTc1OSA3LjY0Nzk0TDYuMDEwOTMgNy4wNDczMkw2LjU2MjM4IDcuNjQ5NjdDNi45MTQzMiA4LjAzNDA5IDcuNDI0MzMgOC4yODI2OSA4LjAwNjM5IDguMjgyNjlDOC41ODU4MyA4LjI4MjY5IDkuMDk4NzcgOC4wMzM3NCA5LjQ1MDM5IDcuNjQ5NjdMMTAuMDAzNiA3LjA0NTQzTDEwLjU1NjggNy42NDk2N0MxMC45MDg0IDguMDMzNzQgMTEuNDIxMyA4LjI4MjY5IDEyLjAwMDggOC4yODI2OUMxMi41ODAyIDguMjgyNjkgMTMuMDkzMiA4LjAzMzc0IDEzLjQ0NDggNy42NDk2N0wxMy45OTggNy4wNDU0M0wxNC41NTExIDcuNjQ5NjdDMTQuOTAyOCA4LjAzMzc0IDE1LjQxNTcgOC4yODI2OSAxNS45OTUyIDguMjgyNjlDMTYuMDgwNSA4LjI4MjY5IDE2LjE3MzYgOC4yNzY0IDE2LjI3IDguMjY0NjRDMTcuMzY1MiA4LjExNTMyIDE3Ljk2MyA2LjgwMTA1IDE3LjMyNDMgNS44MDQzQzE3LjMyNDIgNS44MDQyNSAxNy4zMjQyIDUuODA0MTkgMTcuMzI0MiA1LjgwNDEzTDE1LjU2NiAzLjA2MjcyTDE1LjU2NiAzLjA2MjcyTDE1LjU2NTEgMy4wNjEyNUMxNS41NDk5IDMuMDM3NDIgMTUuNTEyNCAzLjAxMTg2IDE1LjQ2NTIgMy4wMTE4Nkg0LjUzNTgxQzQuNDg4NjYgMy4wMTE4NiA0LjQ1MTE3IDMuMDM3NDIgNC40MzU5NyAzLjA2MTI1TDQuNDM1MzUgMy4wNjIyMkwyLjY4MDE1IDUuODAzOFpNMTUuNjUxNiAxMC43MzcxVjEzLjg2OVYxNC42MTlIMTQuOTAxNkg1LjA5OTQzSDQuMzQ5NDNWMTMuODY5VjEwLjczNzVDNC4yMzkyIDEwLjc0NTcgNC4xMjc2OCAxMC43NSA0LjAxNTA3IDEwLjc1QzMuOTcyNzYgMTAuNzUgMy45MzA3NCAxMC43NDkzIDMuODg5IDEwLjc0ODFWMTMuODY5VjE1LjgwMzVDMy44ODkgMTYuNDQ2OSA0LjQyMjkgMTYuOTg4MSA1LjA5OTQzIDE2Ljk4ODFIMTQuOTAxNkMxNS41NzgxIDE2Ljk4ODEgMTYuMTEyIDE2LjQ0NjkgMTYuMTEyIDE1LjgwMzVWMTMuODY5VjEwLjc0ODNDMTYuMDcyMiAxMC43NDk0IDE2LjAzMjIgMTAuNzUgMTUuOTkyMSAxMC43NUMxNS44Nzc3IDEwLjc1IDE1Ljc2NDEgMTAuNzQ1NiAxNS42NTE2IDEwLjczNzFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGRyb3Bkb3duLWlucHV0IHBzLTE0XCIgW25nTW9kZWxdPVwic2VsZWN0ZWRTdG9yZT8ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wRG93bigpXCIgcmVhZG9ubHkgcGxhY2Vob2xkZXI9XCJTZWxlY3QgU3RvcmUuLi5cIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBjdXN0b20tZHJvcGRvd24tbWVudSB3LTEwMFwiICpuZ0lmPVwic2hvd0Ryb3BEb3duXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBtYi0yIGRyb3Bkb3duLXNlYXJjaCBteC0zIGZvcm1TZWFjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggU3RvcmUuLi5cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFN0b3JlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiZmlsdGVyU2VhcmNoKClcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwic3RvcmVMaXN0Py5sZW5ndGggPiA1ID8gJ2gtMjAwcHggb3ZlcmZsb3ctYXV0bycgOiAnaC1hdXRvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGZvcm0tY2hlY2sgY3VzdG9tLWRyb3Bkb3duLWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RvcmUgb2Ygc3RvcmVMaXN0O2xldCBpPSBpbmRleFwiIChjbGljayk9XCJ1cGRhdGVTZWxlY3RlZFN0b3JlKGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBbZm9yXT1cInN0b3JlLm5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3JlLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInN0b3JldGV4dCBtdC0yXCI+U3RvcmUgdGhhdCBJ4oCZbSBsb29raW5nIGZvciBpc27igJl0IGF2YWlsYWJsZSw8YSBjbGFzcz1cInRleHQtcHJpbWFyeVwiXHJcbiAgICAgICAgICAgIGhyZWY9XCIvbWFuYWdlL3N0b3Jlcy9hZGRpdGlvbi1tZXRob2RcIj48dT5PbmJvYXJkIFN0b3JlczwvdT48L2E+PC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInB0LTVcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiaW5wdXRtb2RlbFwiIGNsYXNzPVwibGFiZWwgcGItMlwiPkFzc2lnbiBUbzwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctNDMwcHggZnctYm9sZCBpbnB1dG5hbWVcIiBwbGFjZWhvbGRlcj1cIlVzZXIgTmFtZVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidXNlck5hbWVcIj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwdC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImlucHV0bW9kZWxcIiBjbGFzcz1cImxhYmVsIHBiLTJcIj5Bc3NpZ25lZSBNYWlsIElEPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZXMgdy0xMDBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTguMzMzNCA0Ljk5OTk5QzE4LjMzMzQgNC4wODMzMyAxNy41ODM0IDMuMzMzMzMgMTYuNjY2NyAzLjMzMzMzSDMuMzMzNDFDMi40MTY3NSAzLjMzMzMzIDEuNjY2NzUgNC4wODMzMyAxLjY2Njc1IDQuOTk5OTlNMTguMzMzNCA0Ljk5OTk5VjE1QzE4LjMzMzQgMTUuOTE2NyAxNy41ODM0IDE2LjY2NjcgMTYuNjY2NyAxNi42NjY3SDMuMzMzNDFDMi40MTY3NSAxNi42NjY3IDEuNjY2NzUgMTUuOTE2NyAxLjY2Njc1IDE1VjQuOTk5OTlNMTguMzMzNCA0Ljk5OTk5TDEwLjAwMDEgMTAuODMzM0wxLjY2Njc1IDQuOTk5OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy00MzBweCBwcy0xNCBmdy1ib2xkIGlucHV0bmFtZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlVzZXIgRW1haWxcIiBbKG5nTW9kZWwpXT1cInVzZXJFbWFpbFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHQtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dG1vZGVsXCIgY2xhc3M9XCJsYWJlbCBwYi0yXCI+Q2l0eTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctNDMwcHggZnctYm9sZCBpbnB1dG5hbWVcIiBwbGFjZWhvbGRlcj1cIkNpdHlcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRoaXMuc2VsZWN0ZWRTdG9yZS5jaXR5XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtdC02XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiIChjbGljayk9XCJ1cGRhdGVkU3RvcmUoKVwiPlxyXG4gICAgICAgICAgICBBZGQgU3RvcmVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -88,6 +88,9 @@ export class TraxService {
|
|
|
88
88
|
imageupload(users) {
|
|
89
89
|
return this.http.post(`${this.traxUrl}/upload`, users);
|
|
90
90
|
}
|
|
91
|
+
taskImageupload(users) {
|
|
92
|
+
return this.http.post(`${this.traxTaskUrl}/uploadImage`, users);
|
|
93
|
+
}
|
|
91
94
|
validateUser(users) {
|
|
92
95
|
return this.http.post(`${this.traxUrl}/validateUser`, users);
|
|
93
96
|
}
|
|
@@ -331,4 +334,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
331
334
|
providedIn: 'root'
|
|
332
335
|
}]
|
|
333
336
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvc2VydmljZXMvdHJheC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsR0FBYyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQWtDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7O0FBRTdCLE1BQU0sVUFBVSxHQUFHLGlGQUFpRixDQUFDO0FBQ3JHLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUNoQyxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztBQUMxQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFLN0IsTUFBTSxPQUFPLFdBQVc7SUFlRjtJQUEwQjtJQWQ5QyxPQUFPLENBQUs7SUFDWixRQUFRLENBQUs7SUFDYixhQUFhLENBQUs7SUFDbEIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFBO0lBRXhDLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFcEQsZ0NBQWdDO0lBQ2hDLG9CQUFvQixHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQ3RELFlBQVksQ0FBTTtJQUNsQixhQUFhLENBQU07SUFDbkIsV0FBVyxDQUFPO0lBRWxCLFlBQW9CLElBQWdCLEVBQVUsRUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUks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LEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDakYsQ0FBQztJQUNELGFBQWEsQ0FBRSxJQUFRO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBQ0QsYUFBYSxDQUFFLElBQVE7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMvRCxDQUFDO3dHQXRYVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCwgY2F0Y2hFcnJvciwgbWFwLHRocm93RXJyb3IsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuXHJcbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9ICcueGxzeCc7XHJcbmNvbnN0IENTVl9UWVBFID0gJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTgnO1xyXG5jb25zdCBDU1ZfRVhURU5TSU9OID0gJy5jc3YnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJheFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHRyYXhVcmw6YW55O1xyXG4gIHN0b3JlVXJsOmFueTtcclxuICBnYWxsZXJ5QXBpVXJsOmFueTtcclxuICBkcm9wRG93blRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbClcclxuXHJcbiAgcHJpdmF0ZSByZWxvYWREYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHJlbG9hZERhdGEkID0gdGhpcy5yZWxvYWREYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8gb3BlbmVkRHJvcGRvd25zOnN0cmluZ1tdID0gW11cclxuICBkcm9wZG93bkNsb3NlVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcclxuICBjbGllbnRBUGlVcmw6IGFueTtcclxuICB0cmFmZmljQXBpVXJsOiBhbnk7XHJcbiAgdHJheFRhc2tVcmw6c3RyaW5nXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy50cmF4VXJsID0gZW52LnRyYXhVcmw7XHJcbiAgICAgICAgdGhpcy5zdG9yZVVybCA9IGVudi5zdG9yZUFwaVVybFxyXG4gICAgICAgIHRoaXMuZ2FsbGVyeUFwaVVybCA9IGVudi5nYWxsZXJ5QXBpVXJsXHJcbiAgICAgICAgdGhpcy5jbGllbnRBUGlVcmwgPSAgZW52LmNsaWVudEFwaVVybFxyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9ICBlbnYudHJhZmZpY0FwaVVybFxyXG4gICAgICAgIHRoaXMudHJheFRhc2tVcmwgPSBlbnYudHJheFRhc2tVcmxcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclJlbG9hZCgpIHtcclxuICAgIHRoaXMucmVsb2FkRGF0YVN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSB7IFNoZWV0czogeyAnZGF0YSc6IHdvcmtzaGVldCB9LCBTaGVldE5hbWVzOiBbJ2RhdGEnXSB9O1xyXG4gICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcclxuICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcclxuICB9XHJcbiBcclxuICBwdWJsaWMgc2F2ZUFzRXhjZWxGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgJ2xpc3QnKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuIFxyXG4gIHB1YmxpYyBzYXZlQXNUZW1wbGF0ZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldFN1bW1hcnlUYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS96b25lU3VtbWFyeVRhYmxlX3YyYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0Y2hlY2tsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0Y2hlY2tsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0TW9iVXNhZ2VsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0TW9iaWxlVXNlYWdlbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldGN1c3RvbWVydW5hdHRlbmRlZGxpc3QoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9nZXRjdXN0b21lcnVuYXR0ZW5kZWRsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgXHJcbiAgc3RvcmVPcGVuY2xvc2VsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vc3RvcmVPcGVuY2xvc2VsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgXHJcbiAgZ2V0U3VtbWFyeVRhYmxlRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vem9uZVN1bW1hcnlUYWJsZV92MmAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuXHJcbiAgY2hlY2tsaXN0KG9iajphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0P2xpbWl0PSR7b2JqLmxpbWl0fSZvZmZzZXQ9JHtvYmoub2Zmc2V0fSZzb3J0Q29sdW1uTmFtZT0ke29iai5zb3J0Q29sdW1ufSZzZWFyY2g9JHtvYmouc2VhcmNofSZzb3J0Qnk9JHtvYmouc29ydEJ5fSZjbGllbnRJZD0ke29iai5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgaW1hZ2V1cGxvYWQodXNlcnM6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS91cGxvYWRgLHVzZXJzKVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVVc2VyKHVzZXJzOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vdmFsaWRhdGVVc2VyYCx1c2VycylcclxuICB9XHJcblxyXG4gIGdldHVwZGF0ZWNoZWNrbGlzdChpZDphbnksZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0L3VwZGF0ZS8ke2lkfWAsZGF0YSlcclxuICB9XHJcblxyXG4gIGNyZWF0ZWNoZWNrbGlzdChkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0L2NyZWF0ZWAsIGRhdGEgKVxyXG4gIH1cclxuXHJcbiAgY29uZmlnVXBkYXRlKG9iajphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2NoZWNrbGlzdENvbmZpZ3VyZWAsb2JqKVxyXG4gIH1cclxuXHJcbiAgZ2V0Y29uZmlnKG9iajphbnkpIHtcclxuICAgIGxldCBrZXkgPSBPYmplY3Qua2V5cyhvYmopWzBdO1xyXG4gICAgbGV0IHZhbHVlID0gb2JqW09iamVjdC5rZXlzKG9iailbMF1dO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS9nZXRDb25maWdEZXRhaWxzPyR7a2V5fT0ke3ZhbHVlfSZjbGllbnRJZD0ke29ialtPYmplY3Qua2V5cyhvYmopWzFdXX1gKVxyXG4gIH1cclxuXHJcbiAgcnVuQUlJbnNlcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9ydW5BSUluc2VydGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBkdXBsaWNhdGVjaGVja2xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2R1cGxpY2F0ZUNoZWNrbGlzdC8ke2RhdGEuY2hlY2tsaXN0SWR9P2NsaWVudElkPSR7ZGF0YS5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckRldGFpbHMob2JqOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS91c2VyRGV0YWlscy8ke29iai5pZH0/b2Zmc2V0PSR7b2JqLm9mZnNldH0mbGltaXQ9JHtvYmoubGltaXR9JnNlYXJjaD0ke29iai5zZWFyY2h9JmNsaWVudElkPSR7b2JqLmNsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUxpc3QoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlVXJsfS9zdG9yZUluZnJhTGlzdGAsZGF0YSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZUNoZWNrbGlzdChkYXRhOiBhbnksKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnRyYXhVcmx9L2RlbGV0ZUNoZWNrbGlzdC8ke2RhdGEuaWR9P2NsaWVudElkPSR7ZGF0YS5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgcHVibGlzaChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMudHJheFVybH0vcHVibGlzaGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFN0b3JlcyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0LXN0b3Jlc2AsICBkYXRhIClcclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2NoZWNrbGlzdERyb3Bkb3duYCwgZGF0YSlcclxuICB9XHJcbiAgdmlld0NoZWNrbGlzdHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L3ZpZXdjaGVja2xpc3RgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgb3ZlcmFsbEZsYWdNZXRyaWNzKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDYXJkc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIG92ZXJhbGxGbGFnTWV0cmljc0NvbXBhcmlzb24oYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NvbXBhcmlzb25DYXJkc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGZsYWdzVGFibGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ1RhYmxlc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGV4cG9ydEZsYWdzVGFibGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ1RhYmxlc1YxYCwgYm9keSwge3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG5cclxuICBnZXRPdmVyYWxsQ2FyZHNEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL292ZXJhbGxDYXJkc1YxYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdFBlcmZvcm1hbmNlRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9jaGVja2xpc3RQZXJmb3JtYW5jZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2xpc3RQZXJmb3JtYW5jZURhdGFFeHBvcnQoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0UGVyZm9ybWFuY2VgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIGdldFN0b3JlUGVyZm9ybWFuY2VEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3N0b3JlUGVyZm9ybWFuY2VgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVQZXJmb3JtYW5jZURhdGFFeHBvcnQoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvc3RvcmVQZXJmb3JtYW5jZWAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlclBlcmZvcm1hbmNlRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC91c2VyUGVyZm9ybWFuY2VgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlclBlcmZvcm1hbmNlRGF0YUV4cG9ydCggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC91c2VyUGVyZm9ybWFuY2VgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdERyb3Bkb3duRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NoZWNrbGlzdERyb3BEb3duVjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRDaGVja2xpc3REcm9wZG93bkRhc2hib2FyZERhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0RHJvcGRvd25gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0SW5mb0NhcmRzRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9pbmZvQ2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBjaGVja2xpc3RGbGFnVGFibGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NoZWNrbGlzdFRhYmxlVjFgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0Q2hlY2tsaXN0RmxhZ1RhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ2hlY2tsaXN0VGFibGVWMWAsIGJvZHksIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuXHJcbiAgcmVwb3J0VGFibGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9yZXBvcnRDaGVja2xpc3REYXRhdjFgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgZmxhZ0NhcmRWYWx1ZXMoYm9keTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NoZWNrbGlzdENhcmRzVjFgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgZmxhZ0NhcmRUZXJlbmQoYm9keTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NoZWNrbGlzdENvbXBhcmlzb25DYXJkc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG5cclxuICBnZXRDaGVja2xpc3RJbmZvRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9jaGVja2xpc3RJbmZvYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldFVzZXJsaXN0RHJvcGRvd25EYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3VzZXJsaXN0RHJvcGRvd25gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0TW9udGhseVBlZm9ybWFuY2VEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL21vbnRobHlHcmFwaFYxYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldENsaWVudFVzZXIoIGNsaWVudElkOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS91c2VyTGlzdD9jbGllbnRJZD0ke2NsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICBnZXRab25lTGlzdCggY2xpZW50SWQ6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3pvbmVMaXN0P2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcbiAgZ2V0SW5mb0NvbXBhcmlzb25DYXJkc0RhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvaW5mb0NvbXBhcmlzb25DYXJkc1YxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0T3ZlcmFsbENvbXBhcmlzb25DYXJkc0RhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvb3ZlcmFsbENvbXBhcmlzb25DYXJkc1YxYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldGFpY2hlY2tsaXN0KGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2FpY2hlY2tsaXN0P2NsaWVudElkPSR7ZGF0YX1gKVxyXG4gIH1cclxuXHJcbiAgcmVwb3J0VGFibGVFeHBvcnQoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rvd25sb2Fkcy9kb3dubG9hZEluc2VydGAsIGJvZHkpXHJcbiAgfVxyXG4gIGdldHByZWRlZmluZWRjaGVja2xpc3QoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vcHJlZGVmaW5lZENoZWNrbGlzdD9jbGllbnRJZD0ke2RhdGF9YClcclxuICB9XHJcbiAgZ2V0Y2xpZW50KGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFQaVVybH0vZGV0YWlsZWQtY2xpZW50LWNvdW50P2NsaWVudElkPSR7ZGF0YS5jbGllbnRJZH1gKVxyXG4gIH1cclxuICBnZXRHcm91cHMoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlckdyb3Vwc192MWAsZGF0YSlcclxuICB9XHJcbiAgZ2V0Y2x1c3RlcnMoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlcmNsdXN0ZXJfdjJgLGRhdGEpXHJcbiAgfVxyXG4gIGdldFN0b3Jlc2xpc3QoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlclN0b3Jlc192MmAsZGF0YSlcclxuICB9XHJcbiAgZ2V0T3JkZXJzQnlEYXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vbG9jdXNvcmRlci9nZXRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgb3JkZXJVcGRhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9sb2N1c29yZGVyL3VwZGF0ZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBvcmRlckRlbGV0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2xvY3Vzb3JkZXIvZGVsZXRlYCwgZGF0YSlcclxuICAgICBcclxuICB9XHJcblxyXG4gIGlzTG9jdXNBdXRob3JpemVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS9sb2N1c29yZGVyL3VzZXItYWxsb3dlZGApXHJcbiAgfVxyXG4gIHJlaW5pdGlhdGVDaGVja2xpc3QoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9yZWluaXRpYXRlY2hlY2tsaXN0YCxkYXRhKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cG9ydEFzQ1NWRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nLGlkZW50aWZpZXI/OiBhbnlbXSk6IHZvaWQge1xyXG4gICAgY29uc3Qgd29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uKTtcclxuXHJcbiAgICBjb25zdCBjc3ZPdXRwdXQ6IHN0cmluZyA9IFhMU1gudXRpbHMuc2hlZXRfdG9fY3N2KHdvcmtzaGVldCk7XHJcbiAgICB0aGlzLnNhdmVBc0NTVkZpbGUoY3N2T3V0cHV0LCBleGNlbEZpbGVOYW1lKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzYXZlQXNDU1ZGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogQ1NWX1RZUEVcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIENTVl9FWFRFTlNJT04pO1xyXG4gIH1cclxuXHJcbiAgcmVJbml0aWF0ZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3JlaW5pdGlhdGVjaGVja2xpc3RgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlVGFzayhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2NyZWF0ZWAsIGRhdGEgKVxyXG4gIH1cclxuXHJcbiAgZ2V0VGFza2NvbmZpZyhpZDpzdHJpbmcsIGNsaWVudElkOnN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VGFza1VybH0vZGV0YWlscz90YXNrSWQ9JHtpZH0mY2xpZW50SWQ9JHtjbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgY29uZmlnVGFzayhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2NvbmZpZ2AsIGRhdGEgKVxyXG4gIH1cclxuXHJcbiAgZ2V0VGFza1VzZXJEZXRhaWxzKGRhdGE6YW55KSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IGRhdGEgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhUYXNrVXJsfS91c2VyRGV0YWlsc2AsIHtwYXJhbXN9KVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkVGFza0Fzc2lnbmVlcyhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L3VwbG9hZGAsIGRhdGEgKVxyXG5cclxuICB9XHJcblxyXG4gIFxyXG4gIGdldE92ZXJhbGxUYXNrc0RhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL292ZXJhbGxjYXJkc1YxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza1RhYmxlRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza1RhYmxlVjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRUYXNrVGFibGVEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC90YXNrVGFibGVWMWAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBnZXRUYXNrSW5mb1RhYmxlRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza0luZm9UYWJsZVYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza0luZm9UYWJsZURhdGFFeHBvcnQoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tJbmZvVGFibGVWMWAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBnZXRPdmVyYWxsQWN0aW9uQ2VudGVyRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9hY3Rpb25DZW50ZXIvb3ZlcmFsbGNhcmRzYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0QXBwcm92YWxEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2FjdGlvbkNlbnRlci9hcHByb3ZhbFRhYmxlYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0QWN0aXZpdHlMb2coIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vYWN0aW9uQ2VudGVyL2FjdGl2aXR5TG9nYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza0Ryb3Bkb3duTGlzdCggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza0Ryb3Bkb3duTGlzdFYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza0RlbGV0ZSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza0RlbGV0ZVYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza1VwZGF0ZSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9yZWluaXRpYXRlYCwgZGF0YSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvc2VydmljZXMvdHJheC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsR0FBYyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQWtDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7O0FBRTdCLE1BQU0sVUFBVSxHQUFHLGlGQUFpRixDQUFDO0FBQ3JHLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUNoQyxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztBQUMxQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFLN0IsTUFBTSxPQUFPLFdBQVc7SUFlRjtJQUEwQjtJQWQ5QyxPQUFPLENBQUs7SUFDWixRQUFRLENBQUs7SUFDYixhQUFhLENBQUs7SUFDbEIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFBO0lBRXhDLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFcEQsZ0NBQWdDO0lBQ2hDLG9CQUFvQixHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQ3RELFlBQVksQ0FBTTtJQUNsQixhQUFhLENBQU07SUFDbkIsV0FBVyxDQUFPO0lBRWxCLFlBQW9CLElBQWdCLEVBQVUsRUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUks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RSxJQUFJLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBQ0QsbUJBQW1CLENBQUUsSUFBUTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsK0JBQStCLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDakYsQ0FBQztJQUNELGFBQWEsQ0FBRSxJQUFRO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBQ0QsYUFBYSxDQUFFLElBQVE7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMvRCxDQUFDO3dHQTFYVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCwgY2F0Y2hFcnJvciwgbWFwLHRocm93RXJyb3IsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuXHJcbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9ICcueGxzeCc7XHJcbmNvbnN0IENTVl9UWVBFID0gJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTgnO1xyXG5jb25zdCBDU1ZfRVhURU5TSU9OID0gJy5jc3YnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJheFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHRyYXhVcmw6YW55O1xyXG4gIHN0b3JlVXJsOmFueTtcclxuICBnYWxsZXJ5QXBpVXJsOmFueTtcclxuICBkcm9wRG93blRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbClcclxuXHJcbiAgcHJpdmF0ZSByZWxvYWREYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHJlbG9hZERhdGEkID0gdGhpcy5yZWxvYWREYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8gb3BlbmVkRHJvcGRvd25zOnN0cmluZ1tdID0gW11cclxuICBkcm9wZG93bkNsb3NlVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcclxuICBjbGllbnRBUGlVcmw6IGFueTtcclxuICB0cmFmZmljQXBpVXJsOiBhbnk7XHJcbiAgdHJheFRhc2tVcmw6c3RyaW5nXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy50cmF4VXJsID0gZW52LnRyYXhVcmw7XHJcbiAgICAgICAgdGhpcy5zdG9yZVVybCA9IGVudi5zdG9yZUFwaVVybFxyXG4gICAgICAgIHRoaXMuZ2FsbGVyeUFwaVVybCA9IGVudi5nYWxsZXJ5QXBpVXJsXHJcbiAgICAgICAgdGhpcy5jbGllbnRBUGlVcmwgPSAgZW52LmNsaWVudEFwaVVybFxyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9ICBlbnYudHJhZmZpY0FwaVVybFxyXG4gICAgICAgIHRoaXMudHJheFRhc2tVcmwgPSBlbnYudHJheFRhc2tVcmxcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclJlbG9hZCgpIHtcclxuICAgIHRoaXMucmVsb2FkRGF0YVN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSB7IFNoZWV0czogeyAnZGF0YSc6IHdvcmtzaGVldCB9LCBTaGVldE5hbWVzOiBbJ2RhdGEnXSB9O1xyXG4gICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcclxuICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcclxuICB9XHJcbiBcclxuICBwdWJsaWMgc2F2ZUFzRXhjZWxGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgJ2xpc3QnKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuIFxyXG4gIHB1YmxpYyBzYXZlQXNUZW1wbGF0ZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldFN1bW1hcnlUYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS96b25lU3VtbWFyeVRhYmxlX3YyYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0Y2hlY2tsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0Y2hlY2tsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0TW9iVXNhZ2VsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0TW9iaWxlVXNlYWdlbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldGN1c3RvbWVydW5hdHRlbmRlZGxpc3QoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9nZXRjdXN0b21lcnVuYXR0ZW5kZWRsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgXHJcbiAgc3RvcmVPcGVuY2xvc2VsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vc3RvcmVPcGVuY2xvc2VsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgXHJcbiAgZ2V0U3VtbWFyeVRhYmxlRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vem9uZVN1bW1hcnlUYWJsZV92MmAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuXHJcbiAgY2hlY2tsaXN0KG9iajphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0P2xpbWl0PSR7b2JqLmxpbWl0fSZvZmZzZXQ9JHtvYmoub2Zmc2V0fSZzb3J0Q29sdW1uTmFtZT0ke29iai5zb3J0Q29sdW1ufSZzZWFyY2g9JHtvYmouc2VhcmNofSZzb3J0Qnk9JHtvYmouc29ydEJ5fSZjbGllbnRJZD0ke29iai5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgaW1hZ2V1cGxvYWQodXNlcnM6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS91cGxvYWRgLHVzZXJzKVxyXG4gIH1cclxuXHJcbiAgdGFza0ltYWdldXBsb2FkKHVzZXJzOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L3VwbG9hZEltYWdlYCx1c2VycylcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlVXNlcih1c2VyczphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L3ZhbGlkYXRlVXNlcmAsdXNlcnMpXHJcbiAgfVxyXG5cclxuICBnZXR1cGRhdGVjaGVja2xpc3QoaWQ6YW55LGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLnRyYXhVcmx9L2NoZWNrbGlzdC91cGRhdGUvJHtpZH1gLGRhdGEpXHJcbiAgfVxyXG5cclxuICBjcmVhdGVjaGVja2xpc3QoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2NoZWNrbGlzdC9jcmVhdGVgLCBkYXRhIClcclxuICB9XHJcblxyXG4gIGNvbmZpZ1VwZGF0ZShvYmo6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9jaGVja2xpc3RDb25maWd1cmVgLG9iailcclxuICB9XHJcblxyXG4gIGdldGNvbmZpZyhvYmo6YW55KSB7XHJcbiAgICBsZXQga2V5ID0gT2JqZWN0LmtleXMob2JqKVswXTtcclxuICAgIGxldCB2YWx1ZSA9IG9ialtPYmplY3Qua2V5cyhvYmopWzBdXTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vZ2V0Q29uZmlnRGV0YWlscz8ke2tleX09JHt2YWx1ZX0mY2xpZW50SWQ9JHtvYmpbT2JqZWN0LmtleXMob2JqKVsxXV19YClcclxuICB9XHJcblxyXG4gIHJ1bkFJSW5zZXJ0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vcnVuQUlJbnNlcnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlY2hlY2tsaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS9kdXBsaWNhdGVDaGVja2xpc3QvJHtkYXRhLmNoZWNrbGlzdElkfT9jbGllbnRJZD0ke2RhdGEuY2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIGdldFVzZXJEZXRhaWxzKG9iajphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vdXNlckRldGFpbHMvJHtvYmouaWR9P29mZnNldD0ke29iai5vZmZzZXR9JmxpbWl0PSR7b2JqLmxpbWl0fSZzZWFyY2g9JHtvYmouc2VhcmNofSZjbGllbnRJZD0ke29iai5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVMaXN0KGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZVVybH0vc3RvcmVJbmZyYUxpc3RgLGRhdGEpXHJcbiAgfVxyXG5cclxuICBkZWxldGVDaGVja2xpc3QoZGF0YTogYW55LCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy50cmF4VXJsfS9kZWxldGVDaGVja2xpc3QvJHtkYXRhLmlkfT9jbGllbnRJZD0ke2RhdGEuY2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIHB1Ymxpc2goZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLnRyYXhVcmx9L3B1Ymxpc2hgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRTdG9yZXMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2dldC1zdG9yZXNgLCAgZGF0YSApXHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2xpc3RzKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9jaGVja2xpc3REcm9wZG93bmAsIGRhdGEpXHJcbiAgfVxyXG4gIHZpZXdDaGVja2xpc3RzKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS92aWV3Y2hlY2tsaXN0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIG92ZXJhbGxGbGFnTWV0cmljcyhib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ2FyZHNWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBvdmVyYWxsRmxhZ01ldHJpY3NDb21wYXJpc29uKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDb21wYXJpc29uQ2FyZHNWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBmbGFnc1RhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdUYWJsZXNWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBleHBvcnRGbGFnc1RhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdUYWJsZXNWMWAsIGJvZHksIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuXHJcbiAgZ2V0T3ZlcmFsbENhcmRzRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9vdmVyYWxsQ2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2xpc3RQZXJmb3JtYW5jZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0UGVyZm9ybWFuY2VgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tsaXN0UGVyZm9ybWFuY2VEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2NoZWNrbGlzdFBlcmZvcm1hbmNlYCwgZGF0YSwge3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZVBlcmZvcm1hbmNlRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9zdG9yZVBlcmZvcm1hbmNlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldFN0b3JlUGVyZm9ybWFuY2VEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3N0b3JlUGVyZm9ybWFuY2VgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIGdldFVzZXJQZXJmb3JtYW5jZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvdXNlclBlcmZvcm1hbmNlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldFVzZXJQZXJmb3JtYW5jZURhdGFFeHBvcnQoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvdXNlclBlcmZvcm1hbmNlYCwgZGF0YSwge3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2xpc3REcm9wZG93bkRhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3REcm9wRG93blYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0Q2hlY2tsaXN0RHJvcGRvd25EYXNoYm9hcmREYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2NoZWNrbGlzdERyb3Bkb3duYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEluZm9DYXJkc0RhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvaW5mb0NhcmRzVjFgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tsaXN0RmxhZ1RhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3RUYWJsZVYxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGV4cG9ydENoZWNrbGlzdEZsYWdUYWJsZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NoZWNrbGlzdFRhYmxlVjFgLCBib2R5LCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIHJlcG9ydFRhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvcmVwb3J0Q2hlY2tsaXN0RGF0YXYxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGZsYWdDYXJkVmFsdWVzKGJvZHk6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3RDYXJkc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGZsYWdDYXJkVGVyZW5kKGJvZHk6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3RDb21wYXJpc29uQ2FyZHNWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0Q2hlY2tsaXN0SW5mb0RhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0SW5mb2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRVc2VybGlzdERyb3Bkb3duRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC91c2VybGlzdERyb3Bkb3duYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldE1vbnRobHlQZWZvcm1hbmNlRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9tb250aGx5R3JhcGhWMWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRDbGllbnRVc2VyKCBjbGllbnRJZDphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vdXNlckxpc3Q/Y2xpZW50SWQ9JHtjbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0Wm9uZUxpc3QoIGNsaWVudElkOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS96b25lTGlzdD9jbGllbnRJZD0ke2NsaWVudElkfWApXHJcbiAgfVxyXG4gIGdldEluZm9Db21wYXJpc29uQ2FyZHNEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2luZm9Db21wYXJpc29uQ2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldE92ZXJhbGxDb21wYXJpc29uQ2FyZHNEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL292ZXJhbGxDb21wYXJpc29uQ2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRhaWNoZWNrbGlzdChkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS9haWNoZWNrbGlzdD9jbGllbnRJZD0ke2RhdGF9YClcclxuICB9XHJcblxyXG4gIHJlcG9ydFRhYmxlRXhwb3J0KGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9kb3dubG9hZHMvZG93bmxvYWRJbnNlcnRgLCBib2R5KVxyXG4gIH1cclxuICBnZXRwcmVkZWZpbmVkY2hlY2tsaXN0KGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3ByZWRlZmluZWRDaGVja2xpc3Q/Y2xpZW50SWQ9JHtkYXRhfWApXHJcbiAgfVxyXG4gIGdldGNsaWVudChkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBUGlVcmx9L2RldGFpbGVkLWNsaWVudC1jb3VudD9jbGllbnRJZD0ke2RhdGEuY2xpZW50SWR9YClcclxuICB9XHJcbiAgZ2V0R3JvdXBzKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJHcm91cHNfdjFgLGRhdGEpXHJcbiAgfVxyXG4gIGdldGNsdXN0ZXJzKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJjbHVzdGVyX3YyYCxkYXRhKVxyXG4gIH1cclxuICBnZXRTdG9yZXNsaXN0KGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJTdG9yZXNfdjJgLGRhdGEpXHJcbiAgfVxyXG4gIGdldE9yZGVyc0J5RGF0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2xvY3Vzb3JkZXIvZ2V0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIG9yZGVyVXBkYXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vbG9jdXNvcmRlci91cGRhdGVgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgb3JkZXJEZWxldGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9sb2N1c29yZGVyL2RlbGV0ZWAsIGRhdGEpXHJcbiAgICAgXHJcbiAgfVxyXG5cclxuICBpc0xvY3VzQXV0aG9yaXplZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vbG9jdXNvcmRlci91c2VyLWFsbG93ZWRgKVxyXG4gIH1cclxuICByZWluaXRpYXRlQ2hlY2tsaXN0KGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvcmVpbml0aWF0ZWNoZWNrbGlzdGAsZGF0YSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRBc0NTVkZpbGUoanNvbjogYW55W10sIGV4Y2VsRmlsZU5hbWU6IHN0cmluZyxpZGVudGlmaWVyPzogYW55W10pOiB2b2lkIHtcclxuICAgIGNvbnN0IHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbik7XHJcblxyXG4gICAgY29uc3QgY3N2T3V0cHV0OiBzdHJpbmcgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2Nzdih3b3Jrc2hlZXQpO1xyXG4gICAgdGhpcy5zYXZlQXNDU1ZGaWxlKGNzdk91dHB1dCwgZXhjZWxGaWxlTmFtZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgc2F2ZUFzQ1NWRmlsZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IENTVl9UWVBFXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBDU1ZfRVhURU5TSU9OKTtcclxuICB9XHJcblxyXG4gIHJlSW5pdGlhdGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9yZWluaXRpYXRlY2hlY2tsaXN0YCwgYm9keSlcclxuICB9XHJcblxyXG4gIGNyZWF0ZVRhc2soZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9jcmVhdGVgLCBkYXRhIClcclxuICB9XHJcblxyXG4gIGdldFRhc2tjb25maWcoaWQ6c3RyaW5nLCBjbGllbnRJZDpzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFRhc2tVcmx9L2RldGFpbHM/dGFza0lkPSR7aWR9JmNsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIGNvbmZpZ1Rhc2soZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9jb25maWdgLCBkYXRhIClcclxuICB9XHJcblxyXG4gIGdldFRhc2tVc2VyRGV0YWlscyhkYXRhOmFueSkge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiBkYXRhIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VGFza1VybH0vdXNlckRldGFpbHNgLCB7cGFyYW1zfSlcclxuICB9XHJcblxyXG4gIHVwbG9hZFRhc2tBc3NpZ25lZXMoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS91cGxvYWRgLCBkYXRhIClcclxuXHJcbiAgfVxyXG5cclxuICBcclxuICBnZXRPdmVyYWxsVGFza3NEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC9vdmVyYWxsY2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tUYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tUYWJsZVYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza1RhYmxlRGF0YUV4cG9ydCggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza1RhYmxlVjFgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZ2V0VGFza0luZm9UYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tJbmZvVGFibGVWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tJbmZvVGFibGVEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC90YXNrSW5mb1RhYmxlVjFgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZ2V0T3ZlcmFsbEFjdGlvbkNlbnRlckRhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vYWN0aW9uQ2VudGVyL292ZXJhbGxjYXJkc2AsIGRhdGEpXHJcbiAgfVxyXG4gIGdldEFwcHJvdmFsRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9hY3Rpb25DZW50ZXIvYXBwcm92YWxUYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldEFjdGl2aXR5TG9nKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2FjdGlvbkNlbnRlci9hY3Rpdml0eUxvZ2AsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tEcm9wZG93bkxpc3QoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tEcm9wZG93bkxpc3RWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tEZWxldGUoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tEZWxldGVWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tVcGRhdGUoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vcmVpbml0aWF0ZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|