@rangertechnologies/ngnxt 2.1.240 → 2.1.241
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/environments/version.mjs +2 -2
- package/esm2022/lib/components/search-box/search-box.component.mjs +14 -14
- package/fesm2022/rangertechnologies-ngnxt.mjs +14 -14
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/package.json +1 -1
- package/rangertechnologies-ngnxt-2.1.241.tgz +0 -0
- package/rangertechnologies-ngnxt-2.1.240.tgz +0 -0
|
@@ -9,7 +9,7 @@ export const VERSION = {
|
|
|
9
9
|
"semver": null,
|
|
10
10
|
"suffix": "78a817f6-dirty",
|
|
11
11
|
"semverString": null,
|
|
12
|
-
"version": "2.1.
|
|
12
|
+
"version": "2.1.241"
|
|
13
13
|
};
|
|
14
14
|
/* tslint:enable */
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2Vudmlyb25tZW50cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLGdCQUFnQjtJQUN2QixNQUFNLEVBQUUsVUFBVTtJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixjQUFjLEVBQUUsSUFBSTtJQUNwQixTQUFTLEVBQUUsU0FBUztDQUN2QixDQUFDO0FBQ0YsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSU1QT1JUQU5UOiBUSElTIEZJTEUgSVMgQVVUTyBHRU5FUkFURUQhIERPIE5PVCBNQU5VQUxMWSBFRElUIE9SIENIRUNLSU4hXG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSB7XG4gICAgXCJkaXJ0eVwiOiB0cnVlLFxuICAgIFwicmF3XCI6IFwiNzhhODE3ZjYtZGlydHlcIixcbiAgICBcImhhc2hcIjogXCI3OGE4MTdmNlwiLFxuICAgIFwiZGlzdGFuY2VcIjogbnVsbCxcbiAgICBcInRhZ1wiOiBudWxsLFxuICAgIFwic2VtdmVyXCI6IG51bGwsXG4gICAgXCJzdWZmaXhcIjogXCI3OGE4MTdmNi1kaXJ0eVwiLFxuICAgIFwic2VtdmVyU3RyaW5nXCI6IG51bGwsXG4gICAgXCJ2ZXJzaW9uXCI6IFwiMi4xLjI0MVwiXG59O1xuLyogdHNsaW50OmVuYWJsZSAqL1xuIl19
|
|
@@ -180,19 +180,19 @@ export class NxtSearchBox {
|
|
|
180
180
|
this.isLoading = true;
|
|
181
181
|
this.finalResults.set([]);
|
|
182
182
|
let finalGetCall = this.apiMeta.endpoint;
|
|
183
|
-
|
|
184
|
-
const
|
|
185
|
-
//
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
//
|
|
190
|
-
if
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
|
|
195
|
-
}
|
|
183
|
+
// SKS18JUL25 query params creation
|
|
184
|
+
// const isFieldArray = Array.isArray(this.apiMeta?.field);
|
|
185
|
+
// const fields = isFieldArray ? this.apiMeta.field : [this.apiMeta.field]; // always an array now
|
|
186
|
+
// // Build query params string
|
|
187
|
+
// const queryParams = fields
|
|
188
|
+
// .map(field => `${field}=${this.searchKeyWord}`)
|
|
189
|
+
// .join('&');
|
|
190
|
+
// // Check if endpoint already has query params
|
|
191
|
+
// if (this.apiMeta.endpoint.includes('?')) {
|
|
192
|
+
// finalGetCall += `&${queryParams}`;
|
|
193
|
+
// } else {
|
|
194
|
+
// finalGetCall += `?${queryParams}`;
|
|
195
|
+
// }
|
|
196
196
|
this.dataService.apiResponse(finalGetCall)
|
|
197
197
|
.pipe(takeUntil(this.destroy$))
|
|
198
198
|
.subscribe({
|
|
@@ -412,4 +412,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
412
412
|
type: HostListener,
|
|
413
413
|
args: ['document:keydown.escape', ['$event']]
|
|
414
414
|
}] } });
|
|
415
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFtQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFak0sT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBYTlFLE1BQU0sT0FBTyxZQUFZO0lBa0NIO0lBQWlDO0lBQWtDO0lBQXdDO0lBakN0SCxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLFFBQVEsQ0FBTTtJQUNkLE9BQU8sQ0FBTTtJQUNiLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixJQUFJLEdBQThCLE1BQU0sQ0FBQztJQUV4QyxpQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQixhQUFhLENBQWM7SUFFekUsVUFBVSxDQUFNO0lBQ1QsWUFBWSxHQUEw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OytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsUUFBUTtxQkFDVDtnS0FLUSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ3VDLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkE0RTVDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTMUMsV0FBVztzQkFEVixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgU2ltcGxlQ2hhbmdlcywgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCwgVHJhY2tCeUZ1bmN0aW9uLCBIb3N0TGlzdGVuZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSBcIi4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXJcIjtcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2kxOG4uc2VydmljZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE54dElucHV0IH0gZnJvbSBcIi4uL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jb3VudHJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ254dC1zZWFyY2gtYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOeHRJbnB1dFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1ib3guY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE54dFNlYXJjaEJveCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwbGFjZUhvbGRlclRleHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55O1xuICBASW5wdXQoKSBhcGlNZXRhOiBhbnk7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JztcbiAgXG4gIEBPdXRwdXQoKSBzZWFyY2hWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoV3JhcHBlcicsIHsgc3RhdGljOiB0cnVlIH0pIHNlYXJjaFdyYXBwZXIhOiBFbGVtZW50UmVmO1xuXG4gIFNlYXJjaEl0ZW06IGFueTtcbiAgcHVibGljIGZpbmFsUmVzdWx0czogV3JpdGFibGVTaWduYWw8YW55W10+ID0gc2lnbmFsKFtdKTtcbiAgcHVibGljIHNlYXJjaEtleVdvcmQ6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgbmV3UmVzdWx0OiBhbnk7XG4gIHB1YmxpYyBzaG93UmVzdWx0ID0gZmFsc2U7XG4gIHB1YmxpYyBub1Jlc3VsdCA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd1N1Z2dlc3Rpb24gPSBmYWxzZTtcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuICBwdWJsaWMgdmlld0ZpbHRlck5hbWU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaXNTaW5nbGVGaWVsZENoYW5nZSA9IGZhbHNlO1xuICBwdWJsaWMgdmFsdWVPYmo6IGFueTtcbiAgcHVibGljIGlucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICBwdWJsaWMgbGFzdFNlYXJjaExlbmd0aCA9IDA7XG4gIHB1YmxpYyBmaWx0ZXJOYW1lID0nJ1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHNlYXJjaFN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgLy8gVHJhY2tCeSBmdW5jdGlvbiBmb3IgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPGFueT4gPSAoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSA9PiB7XG4gICAgcmV0dXJuIGl0ZW0uaWQgfHwgaXRlbS5uYW1lIHx8IGluZGV4O1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLCBwcml2YXRlIGNvdW50cnlTZXJ2aWNlOiBDb3VudHJ5U2VydmljZSwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgaWYodGhpcy5xdWVzdGlvbj8uaW5wdXQgJiYgdHlwZW9mIHRoaXMucXVlc3Rpb24/LmlucHV0ID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLnF1ZXN0aW9uPy5pbnB1dCkpe1xuICAgICAgdGhpcy5jbGlja0l0ZW0odGhpcy5xdWVzdGlvbj8uaW5wdXQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IHRoaXMucXVlc3Rpb24/LmlucHV0XG4gICAgfSAgICBcbiAgICAvLyBTZXR1cCBkZWJvdW5jZWQgc2VhcmNoXG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0XG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShrZXl3b3JkID0+IHtcbiAgICAgICAgaWYodGhpcy5sYXN0U2VhcmNoTGVuZ3RoID4gMikgdGhpcy5wZXJmb3JtU2VhcmNoKGtleXdvcmQpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZih0aGlzLnF1ZXN0aW9uPy5pbnB1dCAmJiB0eXBlb2YgdGhpcy5xdWVzdGlvbj8uaW5wdXQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHRoaXMucXVlc3Rpb24/LmlucHV0KSl7XG4gICAgICB0aGlzLmNsaWNrSXRlbSh0aGlzLnF1ZXN0aW9uPy5pbnB1dClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJOYW1lID0gdGhpcy5xdWVzdGlvbj8uaW5wdXRcbiAgICB9XG4gICAgdGhpcy5wYXJzZUFwaU1ldGEoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgICB0aGlzLm1vZGUgPSBjaGFuZ2VzWydtb2RlJ10uY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlICE9PSAnZWRpdCcgJiYgdGhpcy5pc1NpbmdsZUZpZWxkQ2hhbmdlICYmIGNoYW5nZXNbJ2ZpbHRlck5hbWUnXSkge1xuICAgICAgY29uc3QgcHJldmlvdXMgPSBjaGFuZ2VzWydmaWx0ZXJOYW1lJ10ucHJldmlvdXNWYWx1ZTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBjaGFuZ2VzWydmaWx0ZXJOYW1lJ10uY3VycmVudFZhbHVlO1xuICAgICAgaWYgKHByZXZpb3VzICE9PSBjdXJyZW50KSB7XG4gICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IHByZXZpb3VzO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snYXBpTWV0YSddICYmIHRoaXMuYXBpTWV0YSkge1xuICAgICAgdGhpcy5wYXJzZUFwaU1ldGEoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5yZXNldENvbXBvbmVudFN0YXRlKCk7XG4gIH1cblxuICAvLyBIYW5kbGUgY2xpY2tzIG91dHNpZGUgdGhlIHNlYXJjaCBjb21wb25lbnRcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gSGFuZGxlIGVzY2FwZSBrZXkgdG8gY2xvc2Ugc3VnZ2VzdGlvbnNcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBvbkVzY2FwZUtleShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25zKCk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQXBpTWV0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hcGlNZXRhKSB7XG4gICAgICB0aGlzLmFwaU1ldGEgPSB0eXBlb2YgdGhpcy5hcGlNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuYXBpTWV0YSA6IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhIHx8ICd7fScpO1xuICAgICAgdGhpcy5TZWFyY2hJdGVtID0gdGhpcy5hcGlNZXRhLmZpZWxkIHx8IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRDb21wb25lbnRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFsUmVzdWx0cy5zZXQoW10pO1xuICAgIHRoaXMuc2VhcmNoS2V5V29yZCA9ICcnO1xuICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSBmYWxzZTtcbiAgICB0aGlzLm5vUmVzdWx0ID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMubGFzdFNlYXJjaExlbmd0aCA9IDA7XG4gIH1cblxuICBwcml2YXRlIGhpZGVTdWdnZXN0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5pbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Rm9jdXNlZCA9IHRydWU7XG4gICAgLy8gVHJpZ2dlciBhIHNlYXJjaCB3aXRoIGFuIGVtcHR5IGtleXdvcmQgdG8gc2hvdyBhbGwgZGF0YVxuICAgIGlmICghdGhpcy5zZWFyY2hLZXlXb3JkKSB7XG4gICAgICB0aGlzLnBlcmZvcm1TZWFyY2goJycpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maW5hbFJlc3VsdHMoKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICAvLyBEb24ndCBpbW1lZGlhdGVseSBoaWRlIHN1Z2dlc3Rpb25zIHRvIGFsbG93IGZvciBjbGlja2luZ1xuICAgIC8vIFRoZSBkb2N1bWVudCBjbGljayBoYW5kbGVyIHdpbGwgaGFuZGxlIGhpZGluZ1xuICB9XG5cbiAgY2xlYXJMaXN0KCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSB0aGUgc2V0VGltZW91dCBkZWxheSB0aGF0IHdhcyBjYXVzaW5nIGlzc3Vlc1xuICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25zKCk7XG4gIH1cblxuICBnZXRTb3VyY2VEYXRhTG9jYWwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghZXZlbnQ/LnZhbHVlKSB7XG4gICAgICB0aGlzLnJlc2V0Q29tcG9uZW50U3RhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWFyY2hWYWx1ZSA9ICBldmVudC52YWx1ZS5pbmNsdWRlcygnfCcpID8gZXZlbnQudmFsdWUuc3BsaXQoJ3wnKVswXS50cmltKCkgOiBldmVudC52YWx1ZS50cmltKCk7XG4gICAgY29uc3QgY3VycmVudExlbmd0aCA9IHNlYXJjaFZhbHVlLmxlbmd0aDtcbiAgICBcbiAgICAvLyBBbHdheXMgdXBkYXRlIHRoZSBzZWFyY2gga2V5d29yZFxuICAgIHRoaXMuc2VhcmNoS2V5V29yZCA9IHNlYXJjaFZhbHVlO1xuICAgIFxuICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB1c2VyIHR5cGVzIDMrIGNoYXJhY3RlcnNcbiAgICBpZiAoY3VycmVudExlbmd0aCA+IDIgJiYgIXRoaXMuaXNTaW5nbGVGaWVsZENoYW5nZSkge1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9ICFldmVudC5xdWVzdGlvbj8uc2luZ2xlRmllbGRDaGFuZ2U7XG4gICAgICB0aGlzLnNob3dSZXN1bHQgPSBmYWxzZTtcbiAgICAgIHRoaXMubm9SZXN1bHQgPSBmYWxzZTtcbiAgICAgIC8vIEFsd2F5cyBwZXJmb3JtIHNlYXJjaCB3aGVuIHdlIGhhdmUgMysgY2hhcmFjdGVyc1xuICAgICAgdGhpcy5sYXN0U2VhcmNoTGVuZ3RoID0gY3VycmVudExlbmd0aDtcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdC5uZXh0KHNlYXJjaFZhbHVlKTtcbiAgICAgIFxuICAgIH0gZWxzZSBpZiAoY3VycmVudExlbmd0aCA8PSAyKSB7XG4gICAgICAvLyBXaGVuIGxlbmd0aCBpcyAyIG9yIGxlc3MsIGhpZGUgc3VnZ2VzdGlvbnMgYnV0IGtlZXAgdGhlIHNlYXJjaCBrZXl3b3JkXG4gICAgICB0aGlzLmlzU2luZ2xlRmllbGRDaGFuZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMubm9SZXN1bHQgPSBmYWxzZTtcbiAgICAgIHRoaXMubGFzdFNlYXJjaExlbmd0aCA9IGN1cnJlbnRMZW5ndGg7XG4gICAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dChzZWFyY2hWYWx1ZSk7XG4gICAgICB0aGlzLmZpbmFsUmVzdWx0cy5zZXQoW10pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGVyZm9ybVNlYXJjaChrZXl3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXBpTWV0YSkgcmV0dXJuO1xuXG4gICAgdGhpcy5wYXJzZUFwaU1ldGEoKTtcbiAgICBcbiAgICBpZiAoIXRoaXMuYXBpTWV0YS5pc1N0YXRpY0RhdGEpIHtcbiAgICAgIHRoaXMuc2VhcmNoRnJvbUFwaShrZXl3b3JkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWFyY2hGcm9tU3RhdGljRGF0YShrZXl3b3JkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlYXJjaEZyb21BcGkoa2V5d29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgbGV0IGZpbmFsR2V0Q2FsbCA9IHRoaXMuYXBpTWV0YS5lbmRwb2ludDtcbiAgICBjb25zdCBpc0ZpZWxkQXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuYXBpTWV0YT8uZmllbGQpO1xuICAgIGNvbnN0IGZpZWxkcyA9IGlzRmllbGRBcnJheSA/IHRoaXMuYXBpTWV0YS5maWVsZCA6IFt0aGlzLmFwaU1ldGEuZmllbGRdOyAvLyBhbHdheXMgYW4gYXJyYXkgbm93XG4gICAgLy8gQnVpbGQgcXVlcnkgcGFyYW1zIHN0cmluZ1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gZmllbGRzXG4gICAgICAubWFwKGZpZWxkID0+IGAke2ZpZWxkfT0ke3RoaXMuc2VhcmNoS2V5V29yZH1gKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgICAvLyBDaGVjayBpZiBlbmRwb2ludCBhbHJlYWR5IGhhcyBxdWVyeSBwYXJhbXNcbiAgICBpZiAodGhpcy5hcGlNZXRhLmVuZHBvaW50LmluY2x1ZGVzKCc/JykpIHtcbiAgICAgIGZpbmFsR2V0Q2FsbCArPSBgJiR7cXVlcnlQYXJhbXN9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgZmluYWxHZXRDYWxsICs9IGA/JHtxdWVyeVBhcmFtc31gO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoZmluYWxHZXRDYWxsKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzU2VhcmNoUmVzdWx0cyhhcGlSZXNwb25zZSwga2V5d29yZCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm9SZXN1bHQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hGcm9tU3RhdGljRGF0YShrZXl3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuY291bnRyeVNlcnZpY2UuZ2V0Q291bnRyeURhdGEodGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICB0aGlzLnByb2Nlc3NTZWFyY2hSZXN1bHRzKHJlc3BvbnNlLCBrZXl3b3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1NlYXJjaFJlc3VsdHMoYXBpUmVzcG9uc2U6IGFueSwga2V5d29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICBcbiAgICBpZiAodGhpcy5hcGlNZXRhLnZhcmlhYmxlKSB7XG4gICAgICByZXNwb25zZSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIHRoaXMuYXBpTWV0YS52YXJpYWJsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3BvbnNlID0gYXBpUmVzcG9uc2U7XG4gICAgfVxuICBcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICBcbiAgICBpZiAoIWtleXdvcmQpIHtcbiAgICAgIC8vIElmIG5vIGtleXdvcmQsIHNob3cgYWxsIHJlc3VsdHNcbiAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChyZXNwb25zZSk7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gcmVzcG9uc2UubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7IC8vIEVuc3VyZSBzdWdnZXN0aW9ucyBhcmUgdmlzaWJsZVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgcmVzdWx0cyBiYXNlZCBvbiB0aGUga2V5d29yZFxuICAgICAgY29uc3Qgc2VhcmNoVGVybXMgPSBrZXl3b3JkLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIgXCIpLmZpbHRlcih0ZXJtID0+IHRlcm0ubGVuZ3RoID4gMCk7XG4gICAgICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2UuZmlsdGVyKG9iaiA9PiB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkVmFsdWVzID0gdGhpcy5nZXRDb21iaW5lZFZhbHVlc0Zyb21Db2x1bW5zKG9iaiwgdGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICAgICAgcmV0dXJuIHNlYXJjaFRlcm1zLmV2ZXJ5KHRlcm0gPT4gY29tYmluZWRWYWx1ZXMuaW5jbHVkZXModGVybSkpO1xuICAgICAgfSk7XG4gIFxuICAgICAgdGhpcy5ub1Jlc3VsdCA9IHJlc3VsdHMubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KHJlc3VsdHMpO1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHJlc3VsdHMubGVuZ3RoID4gMDsgLy8gU2hvdyBzdWdnZXN0aW9ucyBvbmx5IGlmIHRoZXJlIGFyZSByZXN1bHRzXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXN0ZWRWYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIW9iaiB8fCAhcGF0aCkgcmV0dXJuICcnO1xuICAgIFxuICAgIGNvbnN0IHByb2Nlc3NlZFBhdGggPSBwYXRoLnJlcGxhY2UoL1xcWyhcXGQrKVxcXS9nLCAnLiQxJyk7XG4gICAgY29uc3QgcGFydHMgPSBwcm9jZXNzZWRQYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IGN1cnJlbnQgPSBvYmo7XG5cbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIGlmICghY3VycmVudCB8fCB0eXBlb2YgY3VycmVudCAhPT0gJ29iamVjdCcpIHJldHVybiAnJztcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnRdO1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQgIT09IHVuZGVmaW5lZCBcbiAgICAgID8gU3RyaW5nKGN1cnJlbnQpLnRvTG93ZXJDYXNlKCkudHJpbSgpIFxuICAgICAgOiAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tYmluZWRWYWx1ZXNGcm9tQ29sdW1ucyhvYmo6IGFueSwgY29sdW1uczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmICghb2JqIHx8ICFjb2x1bW5zKSByZXR1cm4gJyc7XG4gICAgXG4gICAgY29uc3QgY29sdW1uQXJyYXkgPSBBcnJheS5pc0FycmF5KGNvbHVtbnMpID8gY29sdW1ucyA6IFtjb2x1bW5zXTtcbiAgICBjb25zdCB2YWx1ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5BcnJheSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldE5lc3RlZFZhbHVlKG9iaiwgY29sdW1uKTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlcy5qb2luKCcgJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVzKGVsZW1lbnQ6IGFueSwgY29sdW1uczogYW55KTogYW55IHtcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIGlmICghZWxlbWVudCB8fCAhY29sdW1ucykgcmV0dXJuIHJlc3VsdDtcblxuICAgIGNvbnN0IGNvbHVtbkFycmF5ID0gQXJyYXkuaXNBcnJheShjb2x1bW5zKSA/IGNvbHVtbnMgOiBbY29sdW1uc107XG4gICAgXG4gICAgY29sdW1uQXJyYXkuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBpZiAoIWNvbHVtbikgcmV0dXJuO1xuICAgICAgXG4gICAgICBsZXQgdGVtcEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgY29uc3QgZmllbGRzID0gY29sdW1uLnNwbGl0KCcuJyk7XG4gICAgICBcbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgIGlmICghdGVtcEVsZW1lbnQpIGJyZWFrO1xuICAgICAgICBcbiAgICAgICAgY29uc3Qgc3BsaXRGaWVsZHMgPSBmaWVsZC5zcGxpdCgnWycpO1xuICAgICAgICBpZiAoc3BsaXRGaWVsZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGVtcEVsZW1lbnQgPSB0ZW1wRWxlbWVudFtmaWVsZF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaW5kZXhNYXRjaCA9IHNwbGl0RmllbGRzWzFdPy5tYXRjaCgvKFxcZCspXFxdLyk7XG4gICAgICAgICAgaWYgKGluZGV4TWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKGluZGV4TWF0Y2hbMV0pO1xuICAgICAgICAgICAgdGVtcEVsZW1lbnQgPSB0ZW1wRWxlbWVudFtzcGxpdEZpZWxkc1swXV0/LltpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIHJlc3VsdFtjb2x1bW5dID0gdGVtcEVsZW1lbnQgfHwgJyc7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0S2V5cyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gb2JqID8gT2JqZWN0LmtleXMob2JqKSA6IFtdO1xuICB9XG5cbiAgcHVibGljIGNsaWNrSXRlbShldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFwaU1ldGEpIHJldHVybjtcbiAgXG4gICAgdGhpcy5wYXJzZUFwaU1ldGEoKTtcbiAgICBcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFZhbHVlcyhldmVudCwgdGhpcy5TZWFyY2hJdGVtKTtcbiAgICBjb25zdCBkaXNwbGF5VmFsdWUgPSBPYmplY3QudmFsdWVzKHZhbHVlcylcbiAgICAgIC5maWx0ZXIodmFsID0+IHZhbClcbiAgICAgIC5qb2luKCcgfCAnKTtcbiAgICBcbiAgICBpZiAodGhpcy5tb2RlICE9PSAnZWRpdCcpIHtcbiAgICAgIHRoaXMudmlld0ZpbHRlck5hbWUgPSBkaXNwbGF5VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IGRpc3BsYXlWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5uZ09uQ2hhbmdlcyh7fSlcbiAgXG4gICAgY29uc3QgZGVmYXVsdEZpZWxkID0gdGhpcy5hcGlNZXRhLmRlZmF1bHRGaWVsZCB8fCBcbiAgICAgIChBcnJheS5pc0FycmF5KHRoaXMuYXBpTWV0YT8uZmllbGQpID8gdGhpcy5hcGlNZXRhPy5maWVsZD8uWzBdIDogdGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICBcbiAgICBjb25zdCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xuICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMuaWQ7XG4gICAgY2hhbmdlLnZhbHVlT2JqID0gZXZlbnQ7XG4gICAgY2hhbmdlLmZpZWxkID0gZGVmYXVsdEZpZWxkO1xuICAgIFxuICAgIHRoaXMudmFsdWVPYmogPSBldmVudDtcbiAgICBcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICAgIFxuICAgIHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICBxdWVzdGlvbjogdGhpcy5xdWVzdGlvbixcbiAgICAgIHZhbHVlOiBjaGFuZ2VcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUNoYXJhY3RlcnMocXVlc3Rpb25UZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghcXVlc3Rpb25UZXh0KSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHF1ZXN0aW9uVGV4dC5yZXBsYWNlKC88W14+XSo+L2csICcnKTtcbiAgfVxuXG4gIGlucHV0VmFsdWUoZXZlbnQ6IGFueSwgcXVlczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnQudHJpbSgpXG4gICAgaWYgKCFxdWVzPy5zaW5nbGVGaWVsZENoYW5nZSB8fCAhdGhpcy5hcGlNZXRhKSByZXR1cm47XG5cbiAgICB0aGlzLmlzU2luZ2xlRmllbGRDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0RmllbGQgPSB0aGlzLmFwaU1ldGEuZGVmYXVsdEZpZWxkIHx8IFxuICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy5hcGlNZXRhPy5maWVsZCkgPyB0aGlzLmFwaU1ldGE/LmZpZWxkPy5bMF0gOiB0aGlzLmFwaU1ldGEuZmllbGQpO1xuXG4gICAgY29uc3QgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcbiAgICBjaGFuZ2UuZnJvbVF1ZXN0aW9uSWQgPSB0aGlzLmlkO1xuICAgIGNoYW5nZS52YWx1ZU9iaiA9IHRoaXMudmFsdWVPYmo7XG4gICAgY2hhbmdlLmZpZWxkID0gZGVmYXVsdEZpZWxkO1xuICAgIGNoYW5nZS5yZWZlcmVuY2VGaWVsZCA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgXG4gICAgdGhpcy5maWx0ZXJOYW1lID0gdGhpcy52aWV3RmlsdGVyTmFtZTtcbiAgICBcbiAgICB0aGlzLnNlYXJjaFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgcXVlc3Rpb246IHF1ZXMsXG4gICAgICB2YWx1ZTogY2hhbmdlXG4gICAgfSk7XG4gIH1cblxuICBoaWdobGlnaHRUZXh0KHRleHQ6IHN0cmluZywgc2VhcmNoVGVybTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXRleHQgfHwgIXNlYXJjaFRlcm0pIHJldHVybiB0ZXh0IHx8ICcnO1xuXG4gICAgLy8gU2FuaXRpemUgdGhlIGlucHV0IHRleHRcbiAgICBjb25zdCBzYW5pdGl6ZWRUZXh0ID0gdGhpcy5zYW5pdGl6ZUh0bWwodGV4dCk7XG4gICAgY29uc3QgdGVybXMgPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKS5maWx0ZXIodGVybSA9PiB0ZXJtLmxlbmd0aCA+IDApO1xuICAgIFxuICAgIGlmICh0ZXJtcy5sZW5ndGggPT09IDApIHJldHVybiBzYW5pdGl6ZWRUZXh0O1xuXG4gICAgLy8gRXNjYXBlIHNwZWNpYWwgcmVnZXggY2hhcmFjdGVyc1xuICAgIGNvbnN0IGVzY2FwZWRUZXJtcyA9IHRlcm1zLm1hcCh0ZXJtID0+IFxuICAgICAgdGVybS5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgKTtcblxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgKCR7ZXNjYXBlZFRlcm1zLmpvaW4oJ3wnKX0pYCwgJ2dpJyk7XG4gICAgcmV0dXJuIHNhbml0aXplZFRleHQucmVwbGFjZShyZWdleCwgJzxzcGFuIGNsYXNzPVwiaGlnaGxpZ2h0XCI+JDE8L3NwYW4+Jyk7XG4gIH1cblxuICBwcml2YXRlIHNhbml0aXplSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0XG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxuICAgICAgLnJlcGxhY2UoLycvZywgJyYjMzk7Jyk7XG4gIH1cbiAgcmVtb3ZlVmFsdWVFbWl0KCl7XG4gICAgdGhpcy5jbGlja0l0ZW0obnVsbClcbiAgfVxufSIsIjwhLS0gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZSAtLT5cbjxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiICNzZWFyY2hXcmFwcGVyPlxuICA8bnh0LWlucHV0IFxuICAgIFt0eXBlXT1cIidsaXN0J1wiIFxuICAgIFttb2RlXT1cIm1vZGVcIiBcbiAgICBbdmFsdWVdPVwibW9kZSA9PT0gJ2VkaXQnID8gZmlsdGVyTmFtZSA6IHZpZXdGaWx0ZXJOYW1lXCJcbiAgICBbbGFiZWxGb250XT1cInF1ZXN0aW9uLmZvbnRcIiBcbiAgICBbbGFiZWxdPVwicmVtb3ZlQ2hhcmFjdGVycyhxdWVzdGlvbj8ucXVlc3Rpb25UZXh0KVwiIFxuICAgIFtsYWJlbENvbG9yXT1cInF1ZXN0aW9uLmZvbnRDb2xvclwiXG4gICAgW2xhYmVsU2l6ZV09XCJxdWVzdGlvbi5mb250U2l6ZVwiIFxuICAgIFtpbnB1dFZhbHVlU2l6ZV09XCJxdWVzdGlvbi5mb250U2l6ZVwiIFxuICAgIFtsYWJlbFdlaWdodF09XCJxdWVzdGlvbi5mb250V2VpZ2h0XCJcbiAgICBbaW5wdXRXZWlnaHRdPVwicXVlc3Rpb24uZm9udFdlaWdodFwiIFxuICAgIFtzaG93TGFiZWxdPVwicXVlc3Rpb24uc3R5bGU/LnNob3dMYWJlbFwiIFxuICAgIGlucHV0Qm9yZGVyPVwibm9uZVwiIFxuICAgIHN2Z0hlaWdodD1cIjIwcHhcIlxuICAgIHN2Z1dpZHRoPVwiMjBweFwiIFxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclRleHRcIiBcbiAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNPcHRpb25hbFwiIFxuICAgIGlucHV0QmdDb2xvcj1cIiNGQUZBRkFcIlxuICAgIFtpbnB1dElkXT1cInF1ZXN0aW9uLnRyYWNraW5nSWRcIiBcbiAgICBbZXJyb3JNZXNzYWdlc109XCJ7IHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcgfVwiXG4gICAgW2lucHV0SWNvbkxlZnRTcmNdPVwicXVlc3Rpb24uaWNvbkxlZnRTcmNcIiBcbiAgICAoaW5wdXRWYWx1ZSk9XCJnZXRTb3VyY2VEYXRhTG9jYWwoJGV2ZW50KTsgaW5wdXRWYWx1ZSgkZXZlbnQudmFsdWUsICRldmVudC5xdWVzdGlvbilcIiBcbiAgICAob25Gb2N1cyk9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgKG9uQmx1cik9XCJvbklucHV0Qmx1cigpXCJcbiAgICBbc2hvd1N1Z2dlc3Rpb25dPVwic2hvd1N1Z2dlc3Rpb25cIiBcbiAgICBhcmlhT3ducz1cInNlbGVjdExpc3RcIiBcbiAgICBhcmlhSGFzUG9wdXA9XCJsaXN0Ym94XCIgXG4gICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIiBcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAgIChyZW1vdmVWYWx1ZUVtaXQpPVwicmVtb3ZlVmFsdWVFbWl0KClcIj5cbiAgPC9ueHQtaW5wdXQ+XG5cbiAgPGRpdiBpZD1cInNlbGVjdExpc3RcIiBjbGFzcz1cInN1Z2dlc3Rpb24td3JhcHBlclwiIHJvbGU9XCJsaXN0Ym94XCIgKm5nSWY9XCJzaG93U3VnZ2VzdGlvblwiPlxuICAgIDxkaXYgKm5nSWY9XCJmaW5hbFJlc3VsdHMoKS5sZW5ndGggPiAwXCIgY2xhc3M9XCJzdWdnZXN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmluYWxSZXN1bHRzKCk7IHRyYWNrQnk6IHRyYWNrQnlGblwiIFxuICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tJdGVtKGl0ZW0pXCIgXG4gICAgICAgICAgIGNsYXNzPVwic3VnZ2VzdGlvbi1pdGVtXCIgXG4gICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjbGlja0l0ZW0oaXRlbSlcIlxuICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJjbGlja0l0ZW0oaXRlbSlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWRldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnRodW1ibmFpbFwiIGNsYXNzPVwidGh1bWJuYWlsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0udGh1bWJuYWlsXCIgW2FsdF09XCJpdGVtLm5hbWUgKyAnIGF2YXRhcidcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS10ZXh0XCI+XG4gICAgICAgICAgICAgIDwhLS0gUHJpbWFyeSB0ZXh0IChmaXJzdCBrZXkpIC0tPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1uYW1lIHByaW1hcnlcIiBcbiAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaGlnaGxpZ2h0VGV4dChnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSlbZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpWzBdXSwgc2VhcmNoS2V5V29yZClcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8IS0tIFNlY29uZGFyeSB0ZXh0IChyZW1haW5pbmcga2V5cykgLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXNlY29uZGFyeVwiICpuZ0lmPVwiZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBrZXkgb2YgZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaSA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWNvbmRhcnktdGV4dFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImhpZ2hsaWdodFRleHQoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pW2tleV0sIHNlYXJjaEtleVdvcmQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIiAqbmdJZj1cImkgPCBnZXRLZXlzKGdldFZhbHVlcyhpdGVtLCBTZWFyY2hJdGVtKSkubGVuZ3RoIC0gMVwiPiB8IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgKm5nSWY9XCJub1Jlc3VsdCAmJiBzZWFyY2hLZXlXb3JkXCIgY2xhc3M9XCJuby1yZXN1bHRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0cy1jb250ZW50XCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMVwiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDxwYXRoIGQ9XCJtMjEgMjEtNC4zNS00LjM1XCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHA+Tm8gcmVzdWx0cyBmb3VuZCBmb3IgXCJ7e3NlYXJjaEtleVdvcmR9fVwiPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFtQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFak0sT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBYTlFLE1BQU0sT0FBTyxZQUFZO0lBa0NIO0lBQWlDO0lBQWtDO0lBQXdDO0lBakN0SCxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLFFBQVEsQ0FBTTtJQUNkLE9BQU8sQ0FBTTtJQUNiLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixJQUFJLEdBQThCLE1BQU0sQ0FBQztJQUV4QyxpQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQixhQUFhLENBQWM7SUFFekUsVUFBVSxDQUFNO0lBQ1QsWUFBWSxHQUEw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Qyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFNpbXBsZUNoYW5nZXMsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwsIFRyYWNrQnlGdW5jdGlvbiwgSG9zdExpc3RlbmVyfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gXCIuLi8uLi9tb2RlbC9jaGFuZ2VXcmFwcGVyXCI7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi9pMThuLnNlcnZpY2VcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBOeHRJbnB1dCB9IGZyb20gXCIuLi9ueHQtaW5wdXQvbnh0LWlucHV0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ291bnRyeVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvY291bnRyeS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdueHQtc2VhcmNoLWJveCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTnh0SW5wdXRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtYm94LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOeHRTZWFyY2hCb3ggaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcGxhY2VIb2xkZXJUZXh0OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueTtcbiAgQElucHV0KCkgYXBpTWV0YTogYW55O1xuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGU6ICd2aWV3JyB8ICdlZGl0JyB8ICdwcmludCcgPSAnZWRpdCc7XG4gIFxuICBAT3V0cHV0KCkgc2VhcmNoVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaFdyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWFyY2hXcmFwcGVyITogRWxlbWVudFJlZjtcblxuICBTZWFyY2hJdGVtOiBhbnk7XG4gIHB1YmxpYyBmaW5hbFJlc3VsdHM6IFdyaXRhYmxlU2lnbmFsPGFueVtdPiA9IHNpZ25hbChbXSk7XG4gIHB1YmxpYyBzZWFyY2hLZXlXb3JkOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIG5ld1Jlc3VsdDogYW55O1xuICBwdWJsaWMgc2hvd1Jlc3VsdCA9IGZhbHNlO1xuICBwdWJsaWMgbm9SZXN1bHQgPSBmYWxzZTtcbiAgcHVibGljIHNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIHZpZXdGaWx0ZXJOYW1lOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIGlzU2luZ2xlRmllbGRDaGFuZ2UgPSBmYWxzZTtcbiAgcHVibGljIHZhbHVlT2JqOiBhbnk7XG4gIHB1YmxpYyBpbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgcHVibGljIGxhc3RTZWFyY2hMZW5ndGggPSAwO1xuICBwdWJsaWMgZmlsdGVyTmFtZSA9JydcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIC8vIFRyYWNrQnkgZnVuY3Rpb24gZm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvblxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxhbnk+ID0gKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkgPT4ge1xuICAgIHJldHVybiBpdGVtLmlkIHx8IGl0ZW0ubmFtZSB8fCBpbmRleDtcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSwgcHJpdmF0ZSBjb3VudHJ5U2VydmljZTogQ291bnRyeVNlcnZpY2UsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIGlmKHRoaXMucXVlc3Rpb24/LmlucHV0ICYmIHR5cGVvZiB0aGlzLnF1ZXN0aW9uPy5pbnB1dCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodGhpcy5xdWVzdGlvbj8uaW5wdXQpKXtcbiAgICAgIHRoaXMuY2xpY2tJdGVtKHRoaXMucXVlc3Rpb24/LmlucHV0KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlck5hbWUgPSB0aGlzLnF1ZXN0aW9uPy5pbnB1dFxuICAgIH0gICAgXG4gICAgLy8gU2V0dXAgZGVib3VuY2VkIHNlYXJjaFxuICAgIHRoaXMuc2VhcmNoU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoa2V5d29yZCA9PiB7XG4gICAgICAgIGlmKHRoaXMubGFzdFNlYXJjaExlbmd0aCA+IDIpIHRoaXMucGVyZm9ybVNlYXJjaChrZXl3b3JkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYodGhpcy5xdWVzdGlvbj8uaW5wdXQgJiYgdHlwZW9mIHRoaXMucXVlc3Rpb24/LmlucHV0ID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLnF1ZXN0aW9uPy5pbnB1dCkpe1xuICAgICAgdGhpcy5jbGlja0l0ZW0odGhpcy5xdWVzdGlvbj8uaW5wdXQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IHRoaXMucXVlc3Rpb24/LmlucHV0XG4gICAgfVxuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ21vZGUnXSkge1xuICAgICAgdGhpcy5tb2RlID0gY2hhbmdlc1snbW9kZSddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSAhPT0gJ2VkaXQnICYmIHRoaXMuaXNTaW5nbGVGaWVsZENoYW5nZSAmJiBjaGFuZ2VzWydmaWx0ZXJOYW1lJ10pIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzID0gY2hhbmdlc1snZmlsdGVyTmFtZSddLnByZXZpb3VzVmFsdWU7XG4gICAgICBjb25zdCBjdXJyZW50ID0gY2hhbmdlc1snZmlsdGVyTmFtZSddLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmIChwcmV2aW91cyAhPT0gY3VycmVudCkge1xuICAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBwcmV2aW91cztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2FwaU1ldGEnXSAmJiB0aGlzLmFwaU1ldGEpIHtcbiAgICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMucmVzZXRDb21wb25lbnRTdGF0ZSgpO1xuICB9XG5cbiAgLy8gSGFuZGxlIGNsaWNrcyBvdXRzaWRlIHRoZSBzZWFyY2ggY29tcG9uZW50XG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBlc2NhcGUga2V5IHRvIGNsb3NlIHN1Z2dlc3Rpb25zXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSlcbiAgb25Fc2NhcGVLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUFwaU1ldGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXBpTWV0YSkge1xuICAgICAgdGhpcy5hcGlNZXRhID0gdHlwZW9mIHRoaXMuYXBpTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmFwaU1ldGEgOiBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSB8fCAne30nKTtcbiAgICAgIHRoaXMuU2VhcmNoSXRlbSA9IHRoaXMuYXBpTWV0YS5maWVsZCB8fCBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Q29tcG9uZW50U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KFtdKTtcbiAgICB0aGlzLnNlYXJjaEtleVdvcmQgPSAnJztcbiAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5ub1Jlc3VsdCA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxhc3RTZWFyY2hMZW5ndGggPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlU3VnZ2VzdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuaW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gIH1cblxuICBvbklucHV0Rm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEZvY3VzZWQgPSB0cnVlO1xuICAgIC8vIFRyaWdnZXIgYSBzZWFyY2ggd2l0aCBhbiBlbXB0eSBrZXl3b3JkIHRvIHNob3cgYWxsIGRhdGFcbiAgICBpZiAoIXRoaXMuc2VhcmNoS2V5V29yZCkge1xuICAgICAgdGhpcy5wZXJmb3JtU2VhcmNoKCcnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmluYWxSZXN1bHRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgLy8gRG9uJ3QgaW1tZWRpYXRlbHkgaGlkZSBzdWdnZXN0aW9ucyB0byBhbGxvdyBmb3IgY2xpY2tpbmdcbiAgICAvLyBUaGUgZG9jdW1lbnQgY2xpY2sgaGFuZGxlciB3aWxsIGhhbmRsZSBoaWRpbmdcbiAgfVxuXG4gIGNsZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgdGhlIHNldFRpbWVvdXQgZGVsYXkgdGhhdCB3YXMgY2F1c2luZyBpc3N1ZXNcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICB9XG5cbiAgZ2V0U291cmNlRGF0YUxvY2FsKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWV2ZW50Py52YWx1ZSkge1xuICAgICAgdGhpcy5yZXNldENvbXBvbmVudFN0YXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VhcmNoVmFsdWUgPSAgZXZlbnQudmFsdWUuaW5jbHVkZXMoJ3wnKSA/IGV2ZW50LnZhbHVlLnNwbGl0KCd8JylbMF0udHJpbSgpIDogZXZlbnQudmFsdWUudHJpbSgpO1xuICAgIGNvbnN0IGN1cnJlbnRMZW5ndGggPSBzZWFyY2hWYWx1ZS5sZW5ndGg7XG4gICAgXG4gICAgLy8gQWx3YXlzIHVwZGF0ZSB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICB0aGlzLnNlYXJjaEtleVdvcmQgPSBzZWFyY2hWYWx1ZTtcbiAgICBcbiAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdXNlciB0eXBlcyAzKyBjaGFyYWN0ZXJzXG4gICAgaWYgKGN1cnJlbnRMZW5ndGggPiAyICYmICF0aGlzLmlzU2luZ2xlRmllbGRDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSAhZXZlbnQucXVlc3Rpb24/LnNpbmdsZUZpZWxkQ2hhbmdlO1xuICAgICAgdGhpcy5zaG93UmVzdWx0ID0gZmFsc2U7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gZmFsc2U7XG4gICAgICAvLyBBbHdheXMgcGVyZm9ybSBzZWFyY2ggd2hlbiB3ZSBoYXZlIDMrIGNoYXJhY3RlcnNcbiAgICAgIHRoaXMubGFzdFNlYXJjaExlbmd0aCA9IGN1cnJlbnRMZW5ndGg7XG4gICAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dChzZWFyY2hWYWx1ZSk7XG4gICAgICBcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRMZW5ndGggPD0gMikge1xuICAgICAgLy8gV2hlbiBsZW5ndGggaXMgMiBvciBsZXNzLCBoaWRlIHN1Z2dlc3Rpb25zIGJ1dCBrZWVwIHRoZSBzZWFyY2gga2V5d29yZFxuICAgICAgdGhpcy5pc1NpbmdsZUZpZWxkQ2hhbmdlID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gZmFsc2U7XG4gICAgICB0aGlzLmxhc3RTZWFyY2hMZW5ndGggPSBjdXJyZW50TGVuZ3RoO1xuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQoc2VhcmNoVmFsdWUpO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KFtdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBlcmZvcm1TZWFyY2goa2V5d29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFwaU1ldGEpIHJldHVybjtcblxuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG4gICAgXG4gICAgaWYgKCF0aGlzLmFwaU1ldGEuaXNTdGF0aWNEYXRhKSB7XG4gICAgICB0aGlzLnNlYXJjaEZyb21BcGkoa2V5d29yZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoRnJvbVN0YXRpY0RhdGEoa2V5d29yZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hGcm9tQXBpKGtleXdvcmQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmFsUmVzdWx0cy5zZXQoW10pO1xuICAgIGxldCBmaW5hbEdldENhbGwgPSB0aGlzLmFwaU1ldGEuZW5kcG9pbnQ7XG4gICAgLy8gU0tTMThKVUwyNSBxdWVyeSBwYXJhbXMgY3JlYXRpb25cbiAgICAvLyBjb25zdCBpc0ZpZWxkQXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuYXBpTWV0YT8uZmllbGQpO1xuICAgIC8vIGNvbnN0IGZpZWxkcyA9IGlzRmllbGRBcnJheSA/IHRoaXMuYXBpTWV0YS5maWVsZCA6IFt0aGlzLmFwaU1ldGEuZmllbGRdOyAvLyBhbHdheXMgYW4gYXJyYXkgbm93XG4gICAgLy8gLy8gQnVpbGQgcXVlcnkgcGFyYW1zIHN0cmluZ1xuICAgIC8vIGNvbnN0IHF1ZXJ5UGFyYW1zID0gZmllbGRzXG4gICAgLy8gICAubWFwKGZpZWxkID0+IGAke2ZpZWxkfT0ke3RoaXMuc2VhcmNoS2V5V29yZH1gKVxuICAgIC8vICAgLmpvaW4oJyYnKTtcbiAgICAvLyAvLyBDaGVjayBpZiBlbmRwb2ludCBhbHJlYWR5IGhhcyBxdWVyeSBwYXJhbXNcbiAgICAvLyBpZiAodGhpcy5hcGlNZXRhLmVuZHBvaW50LmluY2x1ZGVzKCc/JykpIHtcbiAgICAvLyAgIGZpbmFsR2V0Q2FsbCArPSBgJiR7cXVlcnlQYXJhbXN9YDtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgZmluYWxHZXRDYWxsICs9IGA/JHtxdWVyeVBhcmFtc31gO1xuICAgIC8vIH1cblxuICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoZmluYWxHZXRDYWxsKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzU2VhcmNoUmVzdWx0cyhhcGlSZXNwb25zZSwga2V5d29yZCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm9SZXN1bHQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hGcm9tU3RhdGljRGF0YShrZXl3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuY291bnRyeVNlcnZpY2UuZ2V0Q291bnRyeURhdGEodGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICB0aGlzLnByb2Nlc3NTZWFyY2hSZXN1bHRzKHJlc3BvbnNlLCBrZXl3b3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1NlYXJjaFJlc3VsdHMoYXBpUmVzcG9uc2U6IGFueSwga2V5d29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICBcbiAgICBpZiAodGhpcy5hcGlNZXRhLnZhcmlhYmxlKSB7XG4gICAgICByZXNwb25zZSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIHRoaXMuYXBpTWV0YS52YXJpYWJsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3BvbnNlID0gYXBpUmVzcG9uc2U7XG4gICAgfVxuICBcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICBcbiAgICBpZiAoIWtleXdvcmQpIHtcbiAgICAgIC8vIElmIG5vIGtleXdvcmQsIHNob3cgYWxsIHJlc3VsdHNcbiAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChyZXNwb25zZSk7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gcmVzcG9uc2UubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7IC8vIEVuc3VyZSBzdWdnZXN0aW9ucyBhcmUgdmlzaWJsZVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgcmVzdWx0cyBiYXNlZCBvbiB0aGUga2V5d29yZFxuICAgICAgY29uc3Qgc2VhcmNoVGVybXMgPSBrZXl3b3JkLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIgXCIpLmZpbHRlcih0ZXJtID0+IHRlcm0ubGVuZ3RoID4gMCk7XG4gICAgICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2UuZmlsdGVyKG9iaiA9PiB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkVmFsdWVzID0gdGhpcy5nZXRDb21iaW5lZFZhbHVlc0Zyb21Db2x1bW5zKG9iaiwgdGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICAgICAgcmV0dXJuIHNlYXJjaFRlcm1zLmV2ZXJ5KHRlcm0gPT4gY29tYmluZWRWYWx1ZXMuaW5jbHVkZXModGVybSkpO1xuICAgICAgfSk7XG4gIFxuICAgICAgdGhpcy5ub1Jlc3VsdCA9IHJlc3VsdHMubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KHJlc3VsdHMpO1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHJlc3VsdHMubGVuZ3RoID4gMDsgLy8gU2hvdyBzdWdnZXN0aW9ucyBvbmx5IGlmIHRoZXJlIGFyZSByZXN1bHRzXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXN0ZWRWYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIW9iaiB8fCAhcGF0aCkgcmV0dXJuICcnO1xuICAgIFxuICAgIGNvbnN0IHByb2Nlc3NlZFBhdGggPSBwYXRoLnJlcGxhY2UoL1xcWyhcXGQrKVxcXS9nLCAnLiQxJyk7XG4gICAgY29uc3QgcGFydHMgPSBwcm9jZXNzZWRQYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IGN1cnJlbnQgPSBvYmo7XG5cbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIGlmICghY3VycmVudCB8fCB0eXBlb2YgY3VycmVudCAhPT0gJ29iamVjdCcpIHJldHVybiAnJztcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnRdO1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQgIT09IHVuZGVmaW5lZCBcbiAgICAgID8gU3RyaW5nKGN1cnJlbnQpLnRvTG93ZXJDYXNlKCkudHJpbSgpIFxuICAgICAgOiAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tYmluZWRWYWx1ZXNGcm9tQ29sdW1ucyhvYmo6IGFueSwgY29sdW1uczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmICghb2JqIHx8ICFjb2x1bW5zKSByZXR1cm4gJyc7XG4gICAgXG4gICAgY29uc3QgY29sdW1uQXJyYXkgPSBBcnJheS5pc0FycmF5KGNvbHVtbnMpID8gY29sdW1ucyA6IFtjb2x1bW5zXTtcbiAgICBjb25zdCB2YWx1ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5BcnJheSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldE5lc3RlZFZhbHVlKG9iaiwgY29sdW1uKTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlcy5qb2luKCcgJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVzKGVsZW1lbnQ6IGFueSwgY29sdW1uczogYW55KTogYW55IHtcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIGlmICghZWxlbWVudCB8fCAhY29sdW1ucykgcmV0dXJuIHJlc3VsdDtcblxuICAgIGNvbnN0IGNvbHVtbkFycmF5ID0gQXJyYXkuaXNBcnJheShjb2x1bW5zKSA/IGNvbHVtbnMgOiBbY29sdW1uc107XG4gICAgXG4gICAgY29sdW1uQXJyYXkuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBpZiAoIWNvbHVtbikgcmV0dXJuO1xuICAgICAgXG4gICAgICBsZXQgdGVtcEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgY29uc3QgZmllbGRzID0gY29sdW1uLnNwbGl0KCcuJyk7XG4gICAgICBcbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgIGlmICghdGVtcEVsZW1lbnQpIGJyZWFrO1xuICAgICAgICBcbiAgICAgICAgY29uc3Qgc3BsaXRGaWVsZHMgPSBmaWVsZC5zcGxpdCgnWycpO1xuICAgICAgICBpZiAoc3BsaXRGaWVsZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGVtcEVsZW1lbnQgPSB0ZW1wRWxlbWVudFtmaWVsZF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaW5kZXhNYXRjaCA9IHNwbGl0RmllbGRzWzFdPy5tYXRjaCgvKFxcZCspXFxdLyk7XG4gICAgICAgICAgaWYgKGluZGV4TWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKGluZGV4TWF0Y2hbMV0pO1xuICAgICAgICAgICAgdGVtcEVsZW1lbnQgPSB0ZW1wRWxlbWVudFtzcGxpdEZpZWxkc1swXV0/LltpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIHJlc3VsdFtjb2x1bW5dID0gdGVtcEVsZW1lbnQgfHwgJyc7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0S2V5cyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gb2JqID8gT2JqZWN0LmtleXMob2JqKSA6IFtdO1xuICB9XG5cbiAgcHVibGljIGNsaWNrSXRlbShldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFwaU1ldGEpIHJldHVybjtcbiAgXG4gICAgdGhpcy5wYXJzZUFwaU1ldGEoKTtcbiAgICBcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFZhbHVlcyhldmVudCwgdGhpcy5TZWFyY2hJdGVtKTtcbiAgICBjb25zdCBkaXNwbGF5VmFsdWUgPSBPYmplY3QudmFsdWVzKHZhbHVlcylcbiAgICAgIC5maWx0ZXIodmFsID0+IHZhbClcbiAgICAgIC5qb2luKCcgfCAnKTtcbiAgICBcbiAgICBpZiAodGhpcy5tb2RlICE9PSAnZWRpdCcpIHtcbiAgICAgIHRoaXMudmlld0ZpbHRlck5hbWUgPSBkaXNwbGF5VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IGRpc3BsYXlWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5uZ09uQ2hhbmdlcyh7fSlcbiAgXG4gICAgY29uc3QgZGVmYXVsdEZpZWxkID0gdGhpcy5hcGlNZXRhLmRlZmF1bHRGaWVsZCB8fCBcbiAgICAgIChBcnJheS5pc0FycmF5KHRoaXMuYXBpTWV0YT8uZmllbGQpID8gdGhpcy5hcGlNZXRhPy5maWVsZD8uWzBdIDogdGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICBcbiAgICBjb25zdCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xuICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMuaWQ7XG4gICAgY2hhbmdlLnZhbHVlT2JqID0gZXZlbnQ7XG4gICAgY2hhbmdlLmZpZWxkID0gZGVmYXVsdEZpZWxkO1xuICAgIFxuICAgIHRoaXMudmFsdWVPYmogPSBldmVudDtcbiAgICBcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICAgIFxuICAgIHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICBxdWVzdGlvbjogdGhpcy5xdWVzdGlvbixcbiAgICAgIHZhbHVlOiBjaGFuZ2VcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUNoYXJhY3RlcnMocXVlc3Rpb25UZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghcXVlc3Rpb25UZXh0KSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHF1ZXN0aW9uVGV4dC5yZXBsYWNlKC88W14+XSo+L2csICcnKTtcbiAgfVxuXG4gIGlucHV0VmFsdWUoZXZlbnQ6IGFueSwgcXVlczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnQudHJpbSgpXG4gICAgaWYgKCFxdWVzPy5zaW5nbGVGaWVsZENoYW5nZSB8fCAhdGhpcy5hcGlNZXRhKSByZXR1cm47XG5cbiAgICB0aGlzLmlzU2luZ2xlRmllbGRDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0RmllbGQgPSB0aGlzLmFwaU1ldGEuZGVmYXVsdEZpZWxkIHx8IFxuICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy5hcGlNZXRhPy5maWVsZCkgPyB0aGlzLmFwaU1ldGE/LmZpZWxkPy5bMF0gOiB0aGlzLmFwaU1ldGEuZmllbGQpO1xuXG4gICAgY29uc3QgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcbiAgICBjaGFuZ2UuZnJvbVF1ZXN0aW9uSWQgPSB0aGlzLmlkO1xuICAgIGNoYW5nZS52YWx1ZU9iaiA9IHRoaXMudmFsdWVPYmo7XG4gICAgY2hhbmdlLmZpZWxkID0gZGVmYXVsdEZpZWxkO1xuICAgIGNoYW5nZS5yZWZlcmVuY2VGaWVsZCA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgXG4gICAgdGhpcy5maWx0ZXJOYW1lID0gdGhpcy52aWV3RmlsdGVyTmFtZTtcbiAgICBcbiAgICB0aGlzLnNlYXJjaFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgcXVlc3Rpb246IHF1ZXMsXG4gICAgICB2YWx1ZTogY2hhbmdlXG4gICAgfSk7XG4gIH1cblxuICBoaWdobGlnaHRUZXh0KHRleHQ6IHN0cmluZywgc2VhcmNoVGVybTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXRleHQgfHwgIXNlYXJjaFRlcm0pIHJldHVybiB0ZXh0IHx8ICcnO1xuXG4gICAgLy8gU2FuaXRpemUgdGhlIGlucHV0IHRleHRcbiAgICBjb25zdCBzYW5pdGl6ZWRUZXh0ID0gdGhpcy5zYW5pdGl6ZUh0bWwodGV4dCk7XG4gICAgY29uc3QgdGVybXMgPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKS5maWx0ZXIodGVybSA9PiB0ZXJtLmxlbmd0aCA+IDApO1xuICAgIFxuICAgIGlmICh0ZXJtcy5sZW5ndGggPT09IDApIHJldHVybiBzYW5pdGl6ZWRUZXh0O1xuXG4gICAgLy8gRXNjYXBlIHNwZWNpYWwgcmVnZXggY2hhcmFjdGVyc1xuICAgIGNvbnN0IGVzY2FwZWRUZXJtcyA9IHRlcm1zLm1hcCh0ZXJtID0+IFxuICAgICAgdGVybS5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgKTtcblxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgKCR7ZXNjYXBlZFRlcm1zLmpvaW4oJ3wnKX0pYCwgJ2dpJyk7XG4gICAgcmV0dXJuIHNhbml0aXplZFRleHQucmVwbGFjZShyZWdleCwgJzxzcGFuIGNsYXNzPVwiaGlnaGxpZ2h0XCI+JDE8L3NwYW4+Jyk7XG4gIH1cblxuICBwcml2YXRlIHNhbml0aXplSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0XG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxuICAgICAgLnJlcGxhY2UoLycvZywgJyYjMzk7Jyk7XG4gIH1cbiAgcmVtb3ZlVmFsdWVFbWl0KCl7XG4gICAgdGhpcy5jbGlja0l0ZW0obnVsbClcbiAgfVxufSIsIjwhLS0gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZSAtLT5cbjxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiICNzZWFyY2hXcmFwcGVyPlxuICA8bnh0LWlucHV0IFxuICAgIFt0eXBlXT1cIidsaXN0J1wiIFxuICAgIFttb2RlXT1cIm1vZGVcIiBcbiAgICBbdmFsdWVdPVwibW9kZSA9PT0gJ2VkaXQnID8gZmlsdGVyTmFtZSA6IHZpZXdGaWx0ZXJOYW1lXCJcbiAgICBbbGFiZWxGb250XT1cInF1ZXN0aW9uLmZvbnRcIiBcbiAgICBbbGFiZWxdPVwicmVtb3ZlQ2hhcmFjdGVycyhxdWVzdGlvbj8ucXVlc3Rpb25UZXh0KVwiIFxuICAgIFtsYWJlbENvbG9yXT1cInF1ZXN0aW9uLmZvbnRDb2xvclwiXG4gICAgW2xhYmVsU2l6ZV09XCJxdWVzdGlvbi5mb250U2l6ZVwiIFxuICAgIFtpbnB1dFZhbHVlU2l6ZV09XCJxdWVzdGlvbi5mb250U2l6ZVwiIFxuICAgIFtsYWJlbFdlaWdodF09XCJxdWVzdGlvbi5mb250V2VpZ2h0XCJcbiAgICBbaW5wdXRXZWlnaHRdPVwicXVlc3Rpb24uZm9udFdlaWdodFwiIFxuICAgIFtzaG93TGFiZWxdPVwicXVlc3Rpb24uc3R5bGU/LnNob3dMYWJlbFwiIFxuICAgIGlucHV0Qm9yZGVyPVwibm9uZVwiIFxuICAgIHN2Z0hlaWdodD1cIjIwcHhcIlxuICAgIHN2Z1dpZHRoPVwiMjBweFwiIFxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclRleHRcIiBcbiAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNPcHRpb25hbFwiIFxuICAgIGlucHV0QmdDb2xvcj1cIiNGQUZBRkFcIlxuICAgIFtpbnB1dElkXT1cInF1ZXN0aW9uLnRyYWNraW5nSWRcIiBcbiAgICBbZXJyb3JNZXNzYWdlc109XCJ7IHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcgfVwiXG4gICAgW2lucHV0SWNvbkxlZnRTcmNdPVwicXVlc3Rpb24uaWNvbkxlZnRTcmNcIiBcbiAgICAoaW5wdXRWYWx1ZSk9XCJnZXRTb3VyY2VEYXRhTG9jYWwoJGV2ZW50KTsgaW5wdXRWYWx1ZSgkZXZlbnQudmFsdWUsICRldmVudC5xdWVzdGlvbilcIiBcbiAgICAob25Gb2N1cyk9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgKG9uQmx1cik9XCJvbklucHV0Qmx1cigpXCJcbiAgICBbc2hvd1N1Z2dlc3Rpb25dPVwic2hvd1N1Z2dlc3Rpb25cIiBcbiAgICBhcmlhT3ducz1cInNlbGVjdExpc3RcIiBcbiAgICBhcmlhSGFzUG9wdXA9XCJsaXN0Ym94XCIgXG4gICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIiBcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAgIChyZW1vdmVWYWx1ZUVtaXQpPVwicmVtb3ZlVmFsdWVFbWl0KClcIj5cbiAgPC9ueHQtaW5wdXQ+XG5cbiAgPGRpdiBpZD1cInNlbGVjdExpc3RcIiBjbGFzcz1cInN1Z2dlc3Rpb24td3JhcHBlclwiIHJvbGU9XCJsaXN0Ym94XCIgKm5nSWY9XCJzaG93U3VnZ2VzdGlvblwiPlxuICAgIDxkaXYgKm5nSWY9XCJmaW5hbFJlc3VsdHMoKS5sZW5ndGggPiAwXCIgY2xhc3M9XCJzdWdnZXN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmluYWxSZXN1bHRzKCk7IHRyYWNrQnk6IHRyYWNrQnlGblwiIFxuICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tJdGVtKGl0ZW0pXCIgXG4gICAgICAgICAgIGNsYXNzPVwic3VnZ2VzdGlvbi1pdGVtXCIgXG4gICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjbGlja0l0ZW0oaXRlbSlcIlxuICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJjbGlja0l0ZW0oaXRlbSlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWRldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnRodW1ibmFpbFwiIGNsYXNzPVwidGh1bWJuYWlsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0udGh1bWJuYWlsXCIgW2FsdF09XCJpdGVtLm5hbWUgKyAnIGF2YXRhcidcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS10ZXh0XCI+XG4gICAgICAgICAgICAgIDwhLS0gUHJpbWFyeSB0ZXh0IChmaXJzdCBrZXkpIC0tPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1uYW1lIHByaW1hcnlcIiBcbiAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaGlnaGxpZ2h0VGV4dChnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSlbZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpWzBdXSwgc2VhcmNoS2V5V29yZClcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8IS0tIFNlY29uZGFyeSB0ZXh0IChyZW1haW5pbmcga2V5cykgLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXNlY29uZGFyeVwiICpuZ0lmPVwiZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBrZXkgb2YgZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaSA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWNvbmRhcnktdGV4dFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImhpZ2hsaWdodFRleHQoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pW2tleV0sIHNlYXJjaEtleVdvcmQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIiAqbmdJZj1cImkgPCBnZXRLZXlzKGdldFZhbHVlcyhpdGVtLCBTZWFyY2hJdGVtKSkubGVuZ3RoIC0gMVwiPiB8IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgKm5nSWY9XCJub1Jlc3VsdCAmJiBzZWFyY2hLZXlXb3JkXCIgY2xhc3M9XCJuby1yZXN1bHRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0cy1jb250ZW50XCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMVwiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDxwYXRoIGQ9XCJtMjEgMjEtNC4zNS00LjM1XCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHA+Tm8gcmVzdWx0cyBmb3VuZCBmb3IgXCJ7e3NlYXJjaEtleVdvcmR9fVwiPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -58222,19 +58222,19 @@ class NxtSearchBox {
|
|
|
58222
58222
|
this.isLoading = true;
|
|
58223
58223
|
this.finalResults.set([]);
|
|
58224
58224
|
let finalGetCall = this.apiMeta.endpoint;
|
|
58225
|
-
|
|
58226
|
-
const
|
|
58227
|
-
//
|
|
58228
|
-
|
|
58229
|
-
|
|
58230
|
-
|
|
58231
|
-
//
|
|
58232
|
-
if
|
|
58233
|
-
|
|
58234
|
-
}
|
|
58235
|
-
else {
|
|
58236
|
-
|
|
58237
|
-
}
|
|
58225
|
+
// SKS18JUL25 query params creation
|
|
58226
|
+
// const isFieldArray = Array.isArray(this.apiMeta?.field);
|
|
58227
|
+
// const fields = isFieldArray ? this.apiMeta.field : [this.apiMeta.field]; // always an array now
|
|
58228
|
+
// // Build query params string
|
|
58229
|
+
// const queryParams = fields
|
|
58230
|
+
// .map(field => `${field}=${this.searchKeyWord}`)
|
|
58231
|
+
// .join('&');
|
|
58232
|
+
// // Check if endpoint already has query params
|
|
58233
|
+
// if (this.apiMeta.endpoint.includes('?')) {
|
|
58234
|
+
// finalGetCall += `&${queryParams}`;
|
|
58235
|
+
// } else {
|
|
58236
|
+
// finalGetCall += `?${queryParams}`;
|
|
58237
|
+
// }
|
|
58238
58238
|
this.dataService.apiResponse(finalGetCall)
|
|
58239
58239
|
.pipe(takeUntil$1(this.destroy$))
|
|
58240
58240
|
.subscribe({
|
|
@@ -61433,7 +61433,7 @@ const VERSION = {
|
|
|
61433
61433
|
"semver": null,
|
|
61434
61434
|
"suffix": "78a817f6-dirty",
|
|
61435
61435
|
"semverString": null,
|
|
61436
|
-
"version": "2.1.
|
|
61436
|
+
"version": "2.1.241"
|
|
61437
61437
|
};
|
|
61438
61438
|
/* tslint:enable */
|
|
61439
61439
|
|