@cqa-lib/cqa-ui 1.1.172 → 1.1.173
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/esm2020/lib/compare-runs/compare-runs.component.mjs +30 -8
- package/esm2020/lib/dynamic-select/dynamic-select-field.component.mjs +3 -3
- package/esm2020/lib/simulator/simulator.component.mjs +3 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +33 -11
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +33 -11
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/dynamic-select/dynamic-select-field.component.d.ts +2 -0
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -88,6 +88,14 @@ export class CompareRunsComponent {
|
|
|
88
88
|
});
|
|
89
89
|
this.lastRuns = this.runs;
|
|
90
90
|
}
|
|
91
|
+
const hourRunFound = this.allOptionsCache.some(opt => opt?.durationFormatted?.includes('h'));
|
|
92
|
+
const minuteRunFound = this.allOptionsCache.some(opt => opt?.durationFormatted?.includes('m '));
|
|
93
|
+
if (hourRunFound || minuteRunFound) {
|
|
94
|
+
this.allOptionsCache.forEach(opt => {
|
|
95
|
+
opt.hasHourRun = hourRunFound;
|
|
96
|
+
opt.hasMinuteRun = minuteRunFound;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
91
99
|
const runAOptions = this.allOptionsCache.filter(opt => opt.id !== runBId);
|
|
92
100
|
const runBOptions = this.allOptionsCache.filter(opt => opt.id !== runAId);
|
|
93
101
|
this.runASelectConfig = {
|
|
@@ -329,14 +337,28 @@ export class CompareRunsComponent {
|
|
|
329
337
|
return `<span class="cqa-text-xs cqa-text-[#636363]"> — </span>`;
|
|
330
338
|
}
|
|
331
339
|
}
|
|
332
|
-
formatDuration(
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
340
|
+
formatDuration(ms) {
|
|
341
|
+
if (!ms || ms < 0) {
|
|
342
|
+
return '0ms';
|
|
343
|
+
}
|
|
344
|
+
if (ms < 1000) {
|
|
345
|
+
return `${ms}ms`;
|
|
346
|
+
}
|
|
347
|
+
const totalSeconds = Math.floor(ms / 1000);
|
|
348
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
349
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
350
|
+
const seconds = totalSeconds % 60;
|
|
351
|
+
const parts = [];
|
|
352
|
+
if (hours > 0) {
|
|
353
|
+
parts.push(`${hours}h`);
|
|
354
|
+
}
|
|
355
|
+
if (minutes > 0) {
|
|
356
|
+
parts.push(`${minutes}m`);
|
|
357
|
+
}
|
|
358
|
+
if (seconds > 0 || parts.length === 0) {
|
|
359
|
+
parts.push(`${seconds}s`);
|
|
336
360
|
}
|
|
337
|
-
|
|
338
|
-
const remainingSeconds = Math.floor(seconds % 60);
|
|
339
|
-
return `${minutes}m ${remainingSeconds}s`;
|
|
361
|
+
return parts.join(' ');
|
|
340
362
|
}
|
|
341
363
|
getResultStatusColor(result) {
|
|
342
364
|
if (!result) {
|
|
@@ -527,4 +549,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
527
549
|
}], compareRuns: [{
|
|
528
550
|
type: Output
|
|
529
551
|
}] } });
|
|
530
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS1ydW5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcGFyZS1ydW5zL2NvbXBhcmUtcnVucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBhcmUtcnVucy9jb21wYXJlLXJ1bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sRUFBRSxZQUFZLEVBQXFCLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3JKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7OztBQThGN0UsTUFBTSxPQUFPLG9CQUFvQjtJQWdDL0IsWUFDVSxFQUFlLEVBQ2YsR0FBc0I7UUFEdEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBakN2QixTQUFJLEdBQXlCLEVBQUUsQ0FBQztRQUVoQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVoQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFTM0Qsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQztRQUV4QyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIscUJBQWdCLEdBQXFCO1lBQ25DLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsV0FBVyxFQUFFLG9GQUFvRjtZQUNqRyxRQUFR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Q3RFLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQTJCO1lBQ3JDLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGNBQWMsRUFBRSxjQUFjO1lBQzlCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3RFLENBQUM7O2lIQXBpQlUsb0JBQW9CO3FHQUFwQixvQkFBb0IsOFdDbkdqQywwMmVBb09BOzJGRGpJYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07a0lBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB9IGZyb20gJy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljVGFibGVDb2x1bW4gfSBmcm9tICcuLi90YWJsZS9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb25maWcgfSBmcm9tICcuLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEVNUFRZX1NUQVRFX0lNQUdFUyB9IGZyb20gJy4uL2Fzc2V0cy9pbWFnZXMvaW1hZ2UtYXNzZXRzLmNvbnN0YW50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdERldmljZSB7XG4gIGlkOiBudW1iZXI7XG4gIHRlc3RQbGFuSWQ6IG51bWJlcjtcbiAgdGl0bGU6IHN0cmluZztcbiAgYnJvd3Nlcjogc3RyaW5nO1xuICBwbGF0Zm9ybTogc3RyaW5nO1xuICBicm93c2VyVmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3REZXZpY2VTZXR0aW5ncyB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG9zVmVyc2lvbjogc3RyaW5nO1xuICBicm93c2VyOiBzdHJpbmc7XG4gIGJyb3dzZXJWZXJzaW9uOiBzdHJpbmc7XG4gIHJlc29sdXRpb246IHN0cmluZztcbiAgcGxhdGZvcm06IHN0cmluZztcbiAgZGV2aWNlTmFtZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXN0RGV2aWNlUmVzdWx0IHtcbiAgdGVzdERldmljZTogVGVzdERldmljZTtcbiAgdGVzdERldmljZVNldHRpbmdzOiBUZXN0RGV2aWNlU2V0dGluZ3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdENhc2VSZXN1bHREYXRhIHtcbiAgaWQ6IG51bWJlcjtcbiAgYnJvd3Nlcjogc3RyaW5nO1xuICB0ZXN0Q2FzZUlkOiBudW1iZXI7XG4gIHRlc3RQbGFuUmVzdWx0SWQ6IG51bWJlcjtcbiAgcmVzdWx0OiAnU1VDQ0VTUycgfCAnRkFJTFVSRScgfCAnQUJPUlRFRCcgfCAnTk9UX0VYRUNVVEVEJyB8ICdRVUVVRUQnIHwgJ1NUT1BQRUQnO1xuICBzdGF0dXM6ICdTVEFUVVNfQ09NUExFVEVEJyB8ICdTVEFUVVNfSU5fUFJPR1JFU1MnIHwgJ1NUQVRVU19RVUVVRUQnO1xuICBzdGFydFRpbWU6IG51bWJlcjtcbiAgcGxhdGZvcm06IHN0cmluZztcbiAgZW5kVGltZTogbnVtYmVyO1xuICBkdXJhdGlvbjogbnVtYmVyO1xuICB0ZXN0RGF0YVNldE5hbWU6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgdGVzdERldmljZVJlc3VsdDogVGVzdERldmljZVJlc3VsdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdW5EYXRhIHtcbiAgaWQ6IG51bWJlcjtcbiAgbGFiZWw6IHN0cmluZztcbiAgcmVzdWx0OiAnU1VDQ0VTUycgfCAnRkFJTFVSRScgfCAnQUJPUlRFRCcgfCAnTk9UX0VYRUNVVEVEJyB8ICdRVUVVRUQnIHwgJ1NUT1BQRUQnO1xuICBzdGFydFRpbWU6IG51bWJlcjtcbiAgZHVyYXRpb246IG51bWJlcjtcbiAgdGVzdERhdGFTZXROYW1lOiBzdHJpbmc7XG4gIGRldmljZTogc3RyaW5nO1xuICBicm93c2VyOiBzdHJpbmc7XG4gIHBsYXRmb3JtOiBzdHJpbmc7XG4gIGVudmlyb25tZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhcmlzb25TdW1tYXJ5IHtcbiAgdW5jaGFuZ2VkOiBudW1iZXI7XG4gIHN0YXR1c0NoYW5nZWQ6IG51bWJlcjtcbiAgYWRkZWQ6IG51bWJlcjtcbiAgcmVtb3ZlZDogbnVtYmVyO1xuICB0aW1pbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGVwQ29tcGFyaXNvbiB7XG4gIHN0ZXBJZDogc3RyaW5nO1xuICBzdGVwVGl0bGU6IHN0cmluZztcbiAgcnVuQVN0YXR1cz86ICdTVUNDRVNTJyB8ICdGQUlMVVJFJyB8ICdBQk9SVEVEJyB8ICdOT1RfRVhFQ1VURUQnIHwgJ1FVRVVFRCcgfCAnU1RPUFBFRCc7XG4gIHJ1bkFEdXJhdGlvbj86IG51bWJlcjtcbiAgcnVuQlN0YXR1cz86ICdTVUNDRVNTJyB8ICdGQUlMVVJFJyB8ICdBQk9SVEVEJyB8ICdOT1RfRVhFQ1VURUQnIHwgJ1FVRVVFRCcgfCAnU1RPUFBFRCc7XG4gIHJ1bkJEdXJhdGlvbj86IG51bWJlcjtcbiAgY2hhbmdlOiAnVU5DSEFOR0VEJyB8ICdTVEFUVVNfQ0hBTkdFRCcgfCAnVElNSU5HX0NIQU5HRUQnIHwgJ0FEREVEJyB8ICdSRU1PVkVEJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wYXJpc29uUmVzcG9uc2Uge1xuICBzdW1tYXJ5OiBDb21wYXJpc29uU3VtbWFyeTtcbiAgc3RlcHNDb21wYXJpc29uOiBTdGVwQ29tcGFyaXNvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhcmVSZXF1ZXN0IHtcbiAgcnVuQUlkOiBudW1iZXI7XG4gIHJ1bkJJZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlcXVlc3Qge1xuICBrZXk6IHN0cmluZztcbiAgcXVlcnk6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWNvbXBhcmUtcnVucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wYXJlLXJ1bnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb21wYXJlUnVuc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcnVuczogVGVzdENhc2VSZXN1bHREYXRhW10gPSBbXTtcbiAgQElucHV0KCkgY29tcGFyaXNvbkRhdGE/OiBDb21wYXJpc29uUmVzcG9uc2U7XG4gIEBJbnB1dCgpIGlzTG9hZGluZ1J1bnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzTW9yZVJ1bnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNDb21wYXJpbmdSdW5zOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc0NvbXBhcmVkUnVuczogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgQE91dHB1dCgpIHNlYXJjaFJ1bnMgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFJlcXVlc3Q+KCk7XG4gIEBPdXRwdXQoKSBsb2FkTW9yZVJ1bnMgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNvbXBhcmVSdW5zID0gbmV3IEV2ZW50RW1pdHRlcjxDb21wYXJlUmVxdWVzdD4oKTtcblxuICBmb3JtITogRm9ybUdyb3VwO1xuICBydW5BU2VsZWN0Q29uZmlnITogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnO1xuICBydW5CU2VsZWN0Q29uZmlnITogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnO1xuXG4gIHNlbGVjdGVkUnVuQT86IFJ1bkRhdGE7XG4gIHNlbGVjdGVkUnVuQj86IFJ1bkRhdGE7XG4gIGNvbXBhcmlzb25TdW1tYXJ5PzogQ29tcGFyaXNvblN1bW1hcnk7XG4gIHN0ZXBDb21wYXJpc29uczogU3RlcENvbXBhcmlzb25bXSA9IFtdO1xuICB0YWJsZUNvbHVtbnM6IER5bmFtaWNUYWJsZUNvbHVtbltdID0gW107XG4gIFxuICBwYWdlSW5kZXg6IG51bWJlciA9IDA7XG4gIHBhZ2VTaXplOiBudW1iZXIgPSAxMDtcbiAgXG4gIGVtcHR5U3RhdGVDb25maWc6IEVtcHR5U3RhdGVDb25maWcgPSB7XG4gICAgdGl0bGU6ICdObyBDb21wYXJpc29uIERhdGEnLFxuICAgIGRlc2NyaXB0aW9uOiAnU2VsZWN0IHR3byBvdGhlciBydW5zIHRvIGNvbXBhcmUgYW5kIHNlZSBkZXRhaWxlZCBzdGVwLWJ5LXN0ZXAgY29tcGFyaXNvbiByZXN1bHRzLicsXG4gICAgaW1hZ2VVcmw6IEVNUFRZX1NUQVRFX0lNQUdFUy5DT01QQVJFX1JVTlMsXG4gICAgYWN0aW9uczogW11cbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XG4gICAgdGhpcy5zZXR1cFNlbGVjdENvbmZpZ3MoKTtcbiAgICB0aGlzLnNldHVwVGFibGVDb2x1bW5zKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3J1bnMnXSAmJiAhY2hhbmdlc1sncnVucyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnNldHVwU2VsZWN0Q29uZmlncygpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIFxuICAgIGlmIChjaGFuZ2VzWydjb21wYXJpc29uRGF0YSddICYmIHRoaXMuY29tcGFyaXNvbkRhdGEpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ29tcGFyaXNvbkRhdGEoKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKGNoYW5nZXNbJ2lzTG9hZGluZ1J1bnMnXSkge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RDb25maWdzTG9hZGluZygpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHJ1bkE6IFtudWxsXSxcbiAgICAgIHJ1bkI6IFtudWxsXVxuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFJ1bnMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWxsT3B0aW9uc0NhY2hlOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGxhc3RSdW5zOiBUZXN0Q2FzZVJlc3VsdERhdGFbXSA9IFtdO1xuXG4gIHByaXZhdGUgc2V0dXBTZWxlY3RDb25maWdzKCk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bkFJZCA9IHRoaXMuZm9ybT8uZ2V0KCdydW5BJyk/LnZhbHVlO1xuICAgIGNvbnN0IHJ1bkJJZCA9IHRoaXMuZm9ybT8uZ2V0KCdydW5CJyk/LnZhbHVlO1xuICAgIFxuICAgIGlmICh0aGlzLnJ1bnMgIT09IHRoaXMubGFzdFJ1bnMpIHtcbiAgICAgIHRoaXMuYWxsT3B0aW9uc0NhY2hlID0gdGhpcy5ydW5zLm1hcChydW4gPT4ge1xuICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZm9ybWF0UnVuTGFiZWwocnVuKTtcbiAgICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSB0aGlzLmdldFJlc3VsdFN0YXR1c0NvbG9yKHJ1bi5yZXN1bHQpO1xuICAgICAgICBjb25zdCBkdXJhdGlvbkZvcm1hdHRlZCA9IHRoaXMuZm9ybWF0RHVyYXRpb25TdHJpbmcocnVuLmR1cmF0aW9uKTtcblxuICAgICAgICBjb25zdCBbcnVuTnVtYmVyUGFydFJhdywgZGF0ZVBhcnRSYXddID0gbGFiZWwuc3BsaXQoJ+KAoicpO1xuICAgICAgICBjb25zdCBydW5OdW1iZXJQYXJ0ID0gcnVuTnVtYmVyUGFydFJhdyA/IHJ1bk51bWJlclBhcnRSYXcudHJpbSgpIDogbGFiZWw7XG4gICAgICAgIGNvbnN0IGRhdGVQYXJ0ID0gZGF0ZVBhcnRSYXcgPyBkYXRlUGFydFJhdy50cmltKCkgOiAnJztcblxuICAgICAgICBjb25zdCBydW5OdW1iZXJMYWJlbCA9IGRhdGVQYXJ0ID8gYCR7cnVuTnVtYmVyUGFydH0g4oCiYCA6IHJ1bk51bWJlclBhcnQ7XG4gICAgICAgIGNvbnN0IHJ1bkRhdGVMYWJlbCA9IGRhdGVQYXJ0O1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IHJ1bi5pZCxcbiAgICAgICAgICB2YWx1ZTogcnVuLmlkLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIG5hbWU6IGxhYmVsLFxuICAgICAgICAgIHJ1bk51bWJlckxhYmVsLFxuICAgICAgICAgIHJ1bkRhdGVMYWJlbCxcbiAgICAgICAgICBzdGF0dXM6IHJ1bi5yZXN1bHQsXG4gICAgICAgICAgc3RhdHVzQ29sb3IsXG4gICAgICAgICAgZHVyYXRpb246IHJ1bi5kdXJhdGlvbixcbiAgICAgICAgICBkdXJhdGlvbkZvcm1hdHRlZFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICB0aGlzLmxhc3RSdW5zID0gdGhpcy5ydW5zO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bkFPcHRpb25zID0gdGhpcy5hbGxPcHRpb25zQ2FjaGUuZmlsdGVyKG9wdCA9PiBvcHQuaWQgIT09IHJ1bkJJZCk7XG4gICAgY29uc3QgcnVuQk9wdGlvbnMgPSB0aGlzLmFsbE9wdGlvbnNDYWNoZS5maWx0ZXIob3B0ID0+IG9wdC5pZCAhPT0gcnVuQUlkKTtcblxuICAgIHRoaXMucnVuQVNlbGVjdENvbmZpZyA9IHtcbiAgICAgIGtleTogJ3J1bkEnLFxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTZWFyY2ggYW5kIHNlbGVjdCBydW4nLFxuICAgICAgb3B0aW9uczogcnVuQU9wdGlvbnMsXG4gICAgICBpc0NvbXBhcmVSdW5zOiB0cnVlLFxuICAgICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICAgIGhhc01vcmU6IHRoaXMuaGFzTW9yZVJ1bnMsXG4gICAgICBpc0xvYWRpbmc6IHRoaXMuaXNMb2FkaW5nUnVucyxcbiAgICAgIG9uU2VhcmNoOiAocXVlcnk6IHN0cmluZykgPT4gdGhpcy5oYW5kbGVTZWFyY2hSdW5zKHF1ZXJ5LCAncnVuQScpLFxuICAgICAgb25Mb2FkTW9yZTogKHF1ZXJ5Pzogc3RyaW5nKSA9PiB0aGlzLmhhbmRsZUxvYWRNb3JlUnVucyhxdWVyeSB8fCAnJylcbiAgICB9O1xuXG4gICAgdGhpcy5ydW5CU2VsZWN0Q29uZmlnID0ge1xuICAgICAga2V5OiAncnVuQicsXG4gICAgICBsYWJlbDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCBhbmQgc2VsZWN0IHJ1bicsXG4gICAgICBvcHRpb25zOiBydW5CT3B0aW9ucyxcbiAgICAgIGlzQ29tcGFyZVJ1bnM6IHRydWUsXG4gICAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgICAgaGFzTW9yZTogdGhpcy5oYXNNb3JlUnVucyxcbiAgICAgIGlzTG9hZGluZzogdGhpcy5pc0xvYWRpbmdSdW5zLFxuICAgICAgb25TZWFyY2g6IChxdWVyeTogc3RyaW5nKSA9PiB0aGlzLmhhbmRsZVNlYXJjaFJ1bnMocXVlcnksICdydW5CJyksXG4gICAgICBvbkxvYWRNb3JlOiAocXVlcnk/OiBzdHJpbmcpID0+IHRoaXMuaGFuZGxlTG9hZE1vcmVSdW5zKHF1ZXJ5IHx8ICcnKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJ1bkxhYmVsQ2FjaGUgPSBuZXcgTWFwPG51bWJlciwgc3RyaW5nPigpO1xuXG4gIHByaXZhdGUgZm9ybWF0UnVuTGFiZWwocnVuOiBUZXN0Q2FzZVJlc3VsdERhdGEpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnJ1bkxhYmVsQ2FjaGUuaGFzKHJ1bi5pZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnJ1bkxhYmVsQ2FjaGUuZ2V0KHJ1bi5pZCkhO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShydW4uc3RhcnRUaW1lKTtcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gZGF0ZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgICBzZWNvbmQ6ICcyLWRpZ2l0J1xuICAgIH0pO1xuICAgIGNvbnN0IGxhYmVsID0gYFJ1biAjJHtydW4uaWR9IOKAoiAke2Zvcm1hdHRlZERhdGV9YDtcbiAgICB0aGlzLnJ1bkxhYmVsQ2FjaGUuc2V0KHJ1bi5pZCwgbGFiZWwpO1xuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0Q29uZmlnc0xvYWRpbmcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucnVuQVNlbGVjdENvbmZpZykge1xuICAgICAgdGhpcy5ydW5BU2VsZWN0Q29uZmlnID0ge1xuICAgICAgICAuLi50aGlzLnJ1bkFTZWxlY3RDb25maWcsXG4gICAgICAgIGlzTG9hZGluZzogdGhpcy5pc0xvYWRpbmdSdW5zLFxuICAgICAgICBoYXNNb3JlOiB0aGlzLmhhc01vcmVSdW5zXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5ydW5CU2VsZWN0Q29uZmlnKSB7XG4gICAgICB0aGlzLnJ1bkJTZWxlY3RDb25maWcgPSB7XG4gICAgICAgIC4uLnRoaXMucnVuQlNlbGVjdENvbmZpZyxcbiAgICAgICAgaXNMb2FkaW5nOiB0aGlzLmlzTG9hZGluZ1J1bnMsXG4gICAgICAgIGhhc01vcmU6IHRoaXMuaGFzTW9yZVJ1bnNcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlU2VhcmNoUnVucyhxdWVyeTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoUnVucy5lbWl0KHsga2V5LCBxdWVyeSB9KTtcbiAgfVxuXG4gIGhhbmRsZUxvYWRNb3JlUnVucyhxdWVyeTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkTW9yZVJ1bnMuZW1pdChxdWVyeSk7XG4gIH1cblxuICBvblNlYXJjaENoYW5nZShldmVudDogU2VhcmNoUmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdvblNlYXJjaENoYW5nZScsIGV2ZW50KTtcbiAgICB0aGlzLnNlYXJjaFJ1bnMuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkxvYWRNb3JlKGV2ZW50OiB7IGtleTogc3RyaW5nOyBxdWVyeTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRNb3JlUnVucy5lbWl0KGV2ZW50LnF1ZXJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRSdW5zKCk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bkFJZCA9IHRoaXMuZm9ybS5nZXQoJ3J1bkEnKT8udmFsdWU7XG4gICAgY29uc3QgcnVuQklkID0gdGhpcy5mb3JtLmdldCgncnVuQicpPy52YWx1ZTtcblxuICAgIGNvbnN0IHJ1bkEgPSB0aGlzLnJ1bnMuZmluZChyID0+IHIuaWQgPT09IHJ1bkFJZCk7XG4gICAgY29uc3QgcnVuQiA9IHRoaXMucnVucy5maW5kKHIgPT4gci5pZCA9PT0gcnVuQklkKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSdW5BID0gcnVuQSA/IHRoaXMuY29udmVydFRvUnVuRGF0YShydW5BKSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNlbGVjdGVkUnVuQiA9IHJ1bkIgPyB0aGlzLmNvbnZlcnRUb1J1bkRhdGEocnVuQikgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnNldHVwU2VsZWN0Q29uZmlncygpO1xuICAgIHRoaXMuc2V0dXBUYWJsZUNvbHVtbnMoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvUnVuRGF0YShkYXRhOiBUZXN0Q2FzZVJlc3VsdERhdGEpOiBSdW5EYXRhIHtcbiAgICBjb25zdCBkZXZpY2UgPSBkYXRhPy5icm93c2VyXG4gICAgICA/IGRhdGE/LmJyb3dzZXI/LmNoYXJBdCgwKT8udG9VcHBlckNhc2UoKSArIGRhdGE/LmJyb3dzZXI/LnNsaWNlKDEpXG4gICAgICA6ICcnO1xuICAgIGNvbnN0IGJyb3dzZXIgPSBkYXRhPy5icm93c2VyIHx8ICcnO1xuICAgIGNvbnN0IHBsYXRmb3JtID0gZGF0YT8ucGxhdGZvcm0gfHwgJyc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGRhdGEuaWQsXG4gICAgICBsYWJlbDogdGhpcy5mb3JtYXRSdW5MYWJlbChkYXRhKSxcbiAgICAgIHJlc3VsdDogZGF0YS5yZXN1bHQsXG4gICAgICBzdGFydFRpbWU6IGRhdGEuc3RhcnRUaW1lLFxuICAgICAgZHVyYXRpb246IGRhdGEuZHVyYXRpb24sXG4gICAgICB0ZXN0RGF0YVNldE5hbWU6IGRhdGEudGVzdERhdGFTZXROYW1lLFxuICAgICAgZGV2aWNlLFxuICAgICAgYnJvd3NlcixcbiAgICAgIHBsYXRmb3JtLFxuICAgICAgZW52aXJvbm1lbnQ6IGRhdGEuZW52aXJvbm1lbnRcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRhYmxlQ29sdW1ucygpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFtcbiAgICAgIHtcbiAgICAgICAgZmllbGRJZDogJ3N0ZXAnLFxuICAgICAgICBmaWVsZE5hbWU6ICdTdGVwJyxcbiAgICAgICAgZmllbGRWYWx1ZTogJ3N0ZXBUaXRsZScsXG4gICAgICAgIGlzU2hvdzogdHJ1ZSxcbiAgICAgICAgd2VpZ2h0OiAzLFxuICAgICAgICByZW5kZXI6IChyb3c6IFN0ZXBDb21wYXJpc29uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEIwQjBCXVwiPiR7cm93LnN0ZXBUaXRsZX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWVsZElkOiAncnVuQScsXG4gICAgICAgIGZpZWxkTmFtZTogdGhpcy5nZXRSdW5Db2x1bW5IZWFkZXIoJ0EnKSxcbiAgICAgICAgaXNTaG93OiB0cnVlLFxuICAgICAgICB3ZWlnaHQ6IDEuNSxcbiAgICAgICAgcmVuZGVyOiAocm93OiBTdGVwQ29tcGFyaXNvbikgPT4ge1xuICAgICAgICAgIGlmICghcm93LnJ1bkFTdGF0dXMpIHtcbiAgICAgICAgICAgIHJldHVybiAnPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzlDQTNBRl1cIj7igJQ8L3NwYW4+JztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJTdGF0dXNJY29uKHJvdy5ydW5BU3RhdHVzKX1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLXRleHQtWyM2QjcyODBdXCI+JHt0aGlzLmZvcm1hdER1cmF0aW9uKHJvdy5ydW5BRHVyYXRpb24gfHwgMCl9PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmllbGRJZDogJ3J1bkInLFxuICAgICAgICBmaWVsZE5hbWU6IHRoaXMuZ2V0UnVuQ29sdW1uSGVhZGVyKCdCJyksXG4gICAgICAgIGlzU2hvdzogdHJ1ZSxcbiAgICAgICAgd2VpZ2h0OiAxLjUsXG4gICAgICAgIHJlbmRlcjogKHJvdzogU3RlcENvbXBhcmlzb24pID0+IHtcbiAgICAgICAgICBpZiAoIXJvdy5ydW5CU3RhdHVzKSB7XG4gICAgICAgICAgICByZXR1cm4gJzxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2MzYzNjNdXCI+IOKAlCA8L3NwYW4+JztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0wLjVcIj5cbiAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclN0YXR1c0ljb24ocm93LnJ1bkJTdGF0dXMpfVxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtdGV4dC1bIzYzNjM2M11cIj4ke3RoaXMuZm9ybWF0RHVyYXRpb24ocm93LnJ1bkJEdXJhdGlvbiB8fCAwKX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWVsZElkOiAnY2hhbmdlJyxcbiAgICAgICAgZmllbGROYW1lOiAnQ2hhbmdlJyxcbiAgICAgICAgZmllbGRWYWx1ZTogJ2NoYW5nZScsXG4gICAgICAgIGlzU2hvdzogdHJ1ZSxcbiAgICAgICAgd2VpZ2h0OiAxLjUsXG4gICAgICAgIHJlbmRlcjogKHJvdzogU3RlcENvbXBhcmlzb24pID0+IHtcbiAgICAgICAgICBjb25zdCBjaGFuZ2VMYWJlbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICAgICAnVU5DSEFOR0VEJzogJ1VuY2hhbmdlZCcsXG4gICAgICAgICAgICAnU1RBVFVTX0NIQU5HRUQnOiAnU3RhdHVzIENoYW5nZWQnLFxuICAgICAgICAgICAgJ1RJTUlOR19DSEFOR0VEJzogJ1RpbWluZyBDaGFuZ2VkJyxcbiAgICAgICAgICAgICdBRERFRCc6ICdBZGRlZCcsXG4gICAgICAgICAgICAnUkVNT1ZFRCc6ICdSZW1vdmVkJ1xuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgY2hhbmdlQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAgICAgJ1VOQ0hBTkdFRCc6ICcjNkI3MjgwJyxcbiAgICAgICAgICAgICdTVEFUVVNfQ0hBTkdFRCc6ICcjM0I4MkY2JyxcbiAgICAgICAgICAgICdUSU1JTkdfQ0hBTkdFRCc6ICcjM0I4MkY2JyxcbiAgICAgICAgICAgICdBRERFRCc6ICcjMTBCOTgxJyxcbiAgICAgICAgICAgICdSRU1PVkVEJzogJyNFRjQ0NDQnXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBjaGFuZ2VCZ0NvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgICdVTkNIQU5HRUQnOiAnI0YzRjRGNicsXG4gICAgICAgICAgICAnU1RBVFVTX0NIQU5HRUQnOiAnI0RCRUFGRScsXG4gICAgICAgICAgICAnVElNSU5HX0NIQU5HRUQnOiAnI0RCRUFGRScsXG4gICAgICAgICAgICAnQURERUQnOiAnI0QxRkFFNScsXG4gICAgICAgICAgICAnUkVNT1ZFRCc6ICcjRkVFMkUyJ1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBsYWJlbCA9IGNoYW5nZUxhYmVsc1tyb3cuY2hhbmdlXSB8fCByb3cuY2hhbmdlO1xuICAgICAgICAgIGNvbnN0IGNvbG9yID0gY2hhbmdlQ29sb3JzW3Jvdy5jaGFuZ2VdIHx8ICcjNkI3MjgwJztcbiAgICAgICAgICBjb25zdCBiZ0NvbG9yID0gY2hhbmdlQmdDb2xvcnNbcm93LmNoYW5nZV0gfHwgJyNGM0Y0RjYnO1xuXG4gICAgICAgICAgcmV0dXJuIGBcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1weC0yIGNxYS1weS0wLjUgY3FhLXJvdW5kZWQtZnVsbCBjcWEtdGV4dC1bMTBweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXctbWF4XCIgXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICR7YmdDb2xvcn07IGNvbG9yOiAke2NvbG9yfTtcIj5cbiAgICAgICAgICAgICAgJHtsYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICBgO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UnVuQ29sdW1uSGVhZGVyKHJ1bjogJ0EnIHwgJ0InKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3RlZFJ1biA9IHJ1biA9PT0gJ0EnID8gdGhpcy5zZWxlY3RlZFJ1bkEgOiB0aGlzLnNlbGVjdGVkUnVuQjtcbiAgICBpZiAoc2VsZWN0ZWRSdW4gJiYgc2VsZWN0ZWRSdW4uaWQgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGBSdW4gIyR7c2VsZWN0ZWRSdW4uaWR9YDtcbiAgICB9XG4gICAgcmV0dXJuIHJ1biA9PT0gJ0EnID8gJ1J1biBBJyA6ICdSdW4gQic7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclN0YXR1c0ljb24oc3RhdHVzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVwcGVyU3RhdHVzID0gc3RhdHVzLnRvVXBwZXJDYXNlKCk7XG4gICAgaWYgKHVwcGVyU3RhdHVzID09PSAnU1VDQ0VTUycpIHtcbiAgICAgIHJldHVybiBgXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgPHBhdGggZD1cIk03Ljk5OTk4IDE0LjY2NjNDMTEuNjgxOSAxNC42NjYzIDE0LjY2NjYgMTEuNjgxNiAxNC42NjY2IDcuOTk5NjdDMTQuNjY2NiA0LjMxNzc4IDExLjY4MTkgMS4zMzMwMSA3Ljk5OTk4IDEuMzMzMDFDNC4zMTgwOCAxLjMzMzAxIDEuMzMzMzEgNC4zMTc3OCAxLjMzMzMxIDcuOTk5NjdDMS4zMzMzMSAxMS42ODE2IDQuMzE4MDggMTQuNjY2MyA3Ljk5OTk4IDE0LjY2NjNaXCIgc3Ryb2tlPVwiIzAwQzk1MFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNNiA4LjAwMDMzTDcuMzMzMzMgOS4zMzM2NkwxMCA2LjY2Njk5XCIgc3Ryb2tlPVwiIzAwQzk1MFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICA8L3N2Zz5gO1xuICAgIH0gZWxzZSBpZiAodXBwZXJTdGF0dXMgPT09ICdGQUlMVVJFJykge1xuICAgICAgcmV0dXJuIGBcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICA8cGF0aCBkPVwiTTguMDAwMDQgMTQuNjY3M0MxMS42ODE5IDE0LjY2NzMgMTQuNjY2NyAxMS42ODI1IDE0LjY2NjcgOC4wMDA2NUMxNC42NjY3IDQuMzE4NzUgMTEuNjgxOSAxLjMzMzk4IDguMDAwMDQgMS4zMzM5OEM0LjMxODE0IDEuMzMzOTggMS4zMzMzNyA0LjMxODc1IDEuMzMzMzcgOC4wMDA2NUMxLjMzMzM3IDExLjY4MjUgNC4zMTgxNCAxNC42NjczIDguMDAwMDQgMTQuNjY3M1pcIiBzdHJva2U9XCIjRkIyQzM2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk0xMCA2TDYgMTBcIiBzdHJva2U9XCIjRkIyQzM2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk02IDZMMTAgMTBcIiBzdHJva2U9XCIjRkIyQzM2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgIDwvc3ZnPmA7XG4gICAgfSBlbHNlIGlmICh1cHBlclN0YXR1cyA9PT0gJ0FCT1JURUQnIHx8IHVwcGVyU3RhdHVzID09PSAnU1RPUFBFRCcgfHwgdXBwZXJTdGF0dXMgPT09ICdOT1RfRVhFQ1VURUQnKSB7XG4gICAgICByZXR1cm4gYFxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNOC4wMDAwNCAxNC42NjczQzExLjY4MTkgMTQuNjY3MyAxNC42NjY3IDExLjY4MjUgMTQuNjY2NyA4LjAwMDY1QzE0LjY2NjcgNC4zMTg3NSAxMS42ODE5IDEuMzMzOTggOC4wMDAwNCAxLjMzMzk4QzQuMzE4MTQgMS4zMzM5OCAxLjMzMzM3IDQuMzE4NzUgMS4zMzMzNyA4LjAwMDY1QzEuMzMzMzcgMTEuNjgyNSA0LjMxODE0IDE0LjY2NzMgOC4wMDAwNCAxNC42NjczWlwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTYgOEgxMFwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgPC9zdmc+YDtcbiAgICB9IGVsc2UgaWYgKHVwcGVyU3RhdHVzID09PSAnUVVFVUVEJykge1xuICAgICAgcmV0dXJuIGBcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIGNsYXNzPVwiY3FhLWFuaW1hdGUtc3BpblwiPlxuICAgICAgICA8cGF0aCBkPVwiTTggMS4zMzMzMVYzLjk5OTk4XCIgc3Ryb2tlPVwiIzNCODJGNlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNOCAxMlYxNC42NjY2XCIgc3Ryb2tlPVwiIzNCODJGNlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNMS4zMzMzNyA4SDQuMDAwMDRcIiBzdHJva2U9XCIjM0I4MkY2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk0xMiA4SDE0LjY2NjdcIiBzdHJva2U9XCIjM0I4MkY2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk0zLjI4NjYyIDMuMjg2NjJMNS4xNzMyOSA1LjE3MzI5XCIgc3Ryb2tlPVwiIzNCODJGNlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNMTAuODI2NyAxMC44MjY3TDEyLjcxMzMgMTIuNzEzM1wiIHN0cm9rZT1cIiMzQjgyRjZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTMuMjg2NjIgMTIuNzEzM0w1LjE3MzI5IDEwLjgyNjdcIiBzdHJva2U9XCIjM0I4MkY2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk0xMC44MjY3IDUuMTczMjlMMTIuNzEzMyAzLjI4NjYyXCIgc3Ryb2tlPVwiIzNCODJGNlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICA8L3N2Zz5gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2MzYzNjNdXCI+IOKAlCA8L3NwYW4+YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdER1cmF0aW9uKG1pbGxpc2Vjb25kczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWNvbmRzID0gbWlsbGlzZWNvbmRzIC8gMTAwMDtcbiAgICBpZiAoc2Vjb25kcyA8IDYwKSB7XG4gICAgICByZXR1cm4gYCR7c2Vjb25kcy50b0ZpeGVkKDEpfXNgO1xuICAgIH1cbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApO1xuICAgIGNvbnN0IHJlbWFpbmluZ1NlY29uZHMgPSBNYXRoLmZsb29yKHNlY29uZHMgJSA2MCk7XG4gICAgcmV0dXJuIGAke21pbnV0ZXN9bSAke3JlbWFpbmluZ1NlY29uZHN9c2A7XG4gIH1cblxuICBwcml2YXRlIGdldFJlc3VsdFN0YXR1c0NvbG9yKHJlc3VsdDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ1NVQ0NFU1MnOiAnIzBCOUQ2OCcsXG4gICAgICAnRkFJTFVSRSc6ICcjRkIyQzM2JyxcbiAgICAgICdBQk9SVEVEJzogJyNGNTlFMEInLFxuICAgICAgJ1FVRVVFRCc6ICcjM0I4MkY2JyxcbiAgICAgICdOT1RfRVhFQ1VURUQnOiAnIzZCNzI4MCcsXG4gICAgICAnU1RPUFBFRCc6ICcjNkI3MjgwJ1xuICAgIH07XG4gICAgcmV0dXJuIGNvbG9yc1tyZXN1bHRdIHx8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29tcGFyaXNvbkRhdGEoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbXBhcmlzb25EYXRhKSByZXR1cm47XG5cbiAgICB0aGlzLmNvbXBhcmlzb25TdW1tYXJ5ID0gdGhpcy5jb21wYXJpc29uRGF0YS5zdW1tYXJ5O1xuICAgIHRoaXMuc3RlcENvbXBhcmlzb25zID0gdGhpcy5jb21wYXJpc29uRGF0YS5zdGVwc0NvbXBhcmlzb247XG4gICAgdGhpcy5wYWdlSW5kZXggPSAwO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiB7IHBhZ2VJbmRleDogbnVtYmVyOyBwYWdlU2l6ZTogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2VJbmRleCA9IGV2ZW50LnBhZ2VJbmRleDtcbiAgICB0aGlzLnBhZ2VTaXplID0gZXZlbnQucGFnZVNpemU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgXG4gIGdldCBpc0VtcHR5U3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQ29tcGFyZWRSdW5zICYmICghdGhpcy5zaG93Q29tcGFyaXNvbiB8fCAhdGhpcy5zdGVwQ29tcGFyaXNvbnMgfHwgdGhpcy5zdGVwQ29tcGFyaXNvbnMubGVuZ3RoID09PSAwKTtcbiAgfVxuXG4gIG9uQ29tcGFyZUNsaWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bkFJZCA9IHRoaXMuZm9ybS5nZXQoJ3J1bkEnKT8udmFsdWU7XG4gICAgY29uc3QgcnVuQklkID0gdGhpcy5mb3JtLmdldCgncnVuQicpPy52YWx1ZTtcblxuICAgIGlmIChydW5BSWQgJiYgcnVuQklkICYmICF0aGlzLmlzQ29tcGFyaW5nUnVucykge1xuICAgICAgdGhpcy5jb21wYXJlUnVucy5lbWl0KHtcbiAgICAgICAgcnVuQUlkLFxuICAgICAgICBydW5CSWRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjYW5Db21wYXJlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJ1bkFJZCA9IHRoaXMuZm9ybS5nZXQoJ3J1bkEnKT8udmFsdWU7XG4gICAgY29uc3QgcnVuQklkID0gdGhpcy5mb3JtLmdldCgncnVuQicpPy52YWx1ZTtcbiAgICByZXR1cm4gISEocnVuQUlkICYmIHJ1bkJJZCAmJiAhdGhpcy5pc0NvbXBhcmluZ1J1bnMpO1xuICB9XG5cbiAgZ2V0IHJ1bkFTdGF0dXNDb2xvcigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFJ1bkEpIHJldHVybiAnIzZCNzI4MCc7XG4gICAgY29uc3QgY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ1NVQ0NFU1MnOiAnIzBCOUQ2OCcsXG4gICAgICAnRkFJTFVSRSc6ICcjRkIyQzM2JyxcbiAgICAgICdBQk9SVEVEJzogJyNGNTlFMEInLFxuICAgICAgJ1FVRVVFRCc6ICcjM0I4MkY2JyxcbiAgICAgICdOT1RfRVhFQ1VURUQnOiAnIzZCNzI4MCcsXG4gICAgICAnU1RPUFBFRCc6ICcjNkI3MjgwJ1xuICAgIH07XG4gICAgcmV0dXJuIGNvbG9yc1t0aGlzLnNlbGVjdGVkUnVuQS5yZXN1bHRdIHx8ICcjNkI3MjgwJztcbiAgfVxuXG4gIGdldCBydW5CU3RhdHVzQ29sb3IoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSdW5CKSByZXR1cm4gJyM2QjcyODAnO1xuICAgIGNvbnN0IGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdTVUNDRVNTJzogJyMwQjlENjgnLFxuICAgICAgJ0ZBSUxVUkUnOiAnI0ZCMkMzNicsXG4gICAgICAnQUJPUlRFRCc6ICcjRjU5RTBCJyxcbiAgICAgICdRVUVVRUQnOiAnIzNCODJGNicsXG4gICAgICAnTk9UX0VYRUNVVEVEJzogJyM2QjcyODAnLFxuICAgICAgJ1NUT1BQRUQnOiAnIzZCNzI4MCdcbiAgICB9O1xuICAgIHJldHVybiBjb2xvcnNbdGhpcy5zZWxlY3RlZFJ1bkIucmVzdWx0XSB8fCAnIzZCNzI4MCc7XG4gIH1cblxuICBnZXQgcnVuQVN0YXR1c0JvcmRlckNvbG9yKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUnVuQSkgcmV0dXJuICcjRjNGNEY2JztcbiAgICBjb25zdCBjb2xvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnU1VDQ0VTUyc6ICcjQ0ZGMkU1JyxcbiAgICAgICdGQUlMVVJFJzogJyNGQ0Q5RDknLFxuICAgICAgJ0FCT1JURUQnOiAnI0ZFRjNDNycsXG4gICAgICAnUVVFVUVEJzogJyNEQkVBRkUnLFxuICAgICAgJ05PVF9FWEVDVVRFRCc6ICcjRjNGNEY2JyxcbiAgICAgICdTVE9QUEVEJzogJyNGM0Y0RjYnXG4gICAgfTtcbiAgICByZXR1cm4gY29sb3JzW3RoaXMuc2VsZWN0ZWRSdW5BLnJlc3VsdF0gfHwgJyNGM0Y0RjYnO1xuICB9XG5cbiAgZ2V0IHJ1bkJTdGF0dXNCb3JkZXJDb2xvcigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFJ1bkIpIHJldHVybiAnI0YzRjRGNic7XG4gICAgY29uc3QgY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ1NVQ0NFU1MnOiAnI0NGRjJFNScsXG4gICAgICAnRkFJTFVSRSc6ICcjRkNEOUQ5JyxcbiAgICAgICdBQk9SVEVEJzogJyNGRUYzQzcnLFxuICAgICAgJ1FVRVVFRCc6ICcjREJFQUZFJyxcbiAgICAgICdOT1RfRVhFQ1VURUQnOiAnI0YzRjRGNicsXG4gICAgICAnU1RPUFBFRCc6ICcjRjNGNEY2J1xuICAgIH07XG4gICAgcmV0dXJuIGNvbG9yc1t0aGlzLnNlbGVjdGVkUnVuQi5yZXN1bHRdIHx8ICcjRjNGNEY2JztcbiAgfVxuXG4gIGdldCBydW5BU3RhdHVzQmdDb2xvcigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFJ1bkEpIHJldHVybiAnI0YzRjRGNic7XG4gICAgY29uc3QgY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ1NVQ0NFU1MnOiAnIzBEQkQ3RDFBJyxcbiAgICAgICdGQUlMVVJFJzogJyNFRTNGM0YxQScsXG4gICAgICAnQUJPUlRFRCc6ICcjRkVGM0M3JyxcbiAgICAgICdRVUVVRUQnOiAnI0RCRUFGRScsXG4gICAgICAnTk9UX0VYRUNVVEVEJzogJyNGM0Y0RjYnLFxuICAgICAgJ1NUT1BQRUQnOiAnI0YzRjRGNidcbiAgICB9O1xuICAgIHJldHVybiBjb2xvcnNbdGhpcy5zZWxlY3RlZFJ1bkEucmVzdWx0XSB8fCAnI0YzRjRGNic7XG4gIH1cblxuICBnZXQgcnVuQlN0YXR1c0JnQ29sb3IoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSdW5CKSByZXR1cm4gJyNGM0Y0RjYnO1xuICAgIGNvbnN0IGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdTVUNDRVNTJzogJyMwREJEN0QxQScsXG4gICAgICAnRkFJTFVSRSc6ICcjRUUzRjNGMUEnLFxuICAgICAgJ0FCT1JURUQnOiAnI0ZFRjNDNycsXG4gICAgICAnUVVFVUVEJzogJyNEQkVBRkUnLFxuICAgICAgJ05PVF9FWEVDVVRFRCc6ICcjRjNGNEY2JyxcbiAgICAgICdTVE9QUEVEJzogJyNGM0Y0RjYnXG4gICAgfTtcbiAgICByZXR1cm4gY29sb3JzW3RoaXMuc2VsZWN0ZWRSdW5CLnJlc3VsdF0gfHwgJyNGM0Y0RjYnO1xuICB9XG5cbiAgZm9ybWF0VGltZSh0aW1lc3RhbXA6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xuICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnXG4gICAgfSk7XG4gIH1cblxuICBmb3JtYXREdXJhdGlvblN0cmluZyhtaWxsaXNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0RHVyYXRpb24obWlsbGlzZWNvbmRzKTtcbiAgfVxuXG4gIGdldCBzaG93Q29tcGFyaXNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5jb21wYXJpc29uRGF0YSAmJiB0aGlzLmNvbXBhcmlzb25TdW1tYXJ5KTtcbiAgfVxuXG4gIGdldCBydW5BU3RhdHVzTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSdW5BKSByZXR1cm4gJyc7XG4gICAgY29uc3QgbGFiZWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ1NVQ0NFU1MnOiAnUGFzc2VkJyxcbiAgICAgICdGQUlMVVJFJzogJ0ZhaWxlZCcsXG4gICAgICAnQUJPUlRFRCc6ICdBYm9ydGVkJyxcbiAgICAgICdRVUVVRUQnOiAnUXVldWVkJyxcbiAgICAgICdOT1RfRVhFQ1VURUQnOiAnTm90IEV4ZWN1dGVkJyxcbiAgICAgICdTVE9QUEVEJzogJ1N0b3BwZWQnXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW3RoaXMuc2VsZWN0ZWRSdW5BLnJlc3VsdF0gfHwgdGhpcy5zZWxlY3RlZFJ1bkEucmVzdWx0O1xuICB9XG5cbiAgZ2V0IHJ1bkJTdGF0dXNMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFJ1bkIpIHJldHVybiAnJztcbiAgICBjb25zdCBsYWJlbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnU1VDQ0VTUyc6ICdQYXNzZWQnLFxuICAgICAgJ0ZBSUxVUkUnOiAnRmFpbGVkJyxcbiAgICAgICdBQk9SVEVEJzogJ0Fib3J0ZWQnLFxuICAgICAgJ1FVRVVFRCc6ICdRdWV1ZWQnLFxuICAgICAgJ05PVF9FWEVDVVRFRCc6ICdOb3QgRXhlY3V0ZWQnLFxuICAgICAgJ1NUT1BQRUQnOiAnU3RvcHBlZCdcbiAgICB9O1xuICAgIHJldHVybiBsYWJlbHNbdGhpcy5zZWxlY3RlZFJ1bkIucmVzdWx0XSB8fCB0aGlzLnNlbGVjdGVkUnVuQi5yZXN1bHQ7XG4gIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1wiPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTMgc206Y3FhLWdhcC00IGNxYS1weS0zIHNtOmNxYS1weS00IGNxYS1weC00IHNtOmNxYS1weC02XCIgc3R5bGU9XCJib3JkZXItYm90dG9tOiAxcHggc29saWQgI0U0RTRFNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTMgY3FhLW1iLTFcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMXB4XSBjcWEtdGV4dC1bIzZCNzI4MF1cIj5TdGF0dXMgbGVnZW5kOjwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTNcIj5cbiAgICAgICAgICAgIDwhLS0gUGFzc2VkIC0tPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk03Ljk5OTk4IDE0LjY2NjNDMTEuNjgxOSAxNC42NjYzIDE0LjY2NjYgMTEuNjgxNiAxNC42NjY2IDcuOTk5NjdDMTQuNjY2NiA0LjMxNzc4IDExLjY4MTkgMS4zMzMwMSA3Ljk5OTk4IDEuMzMzMDFDNC4zMTgwOCAxLjMzMzAxIDEuMzMzMzEgNC4zMTc3OCAxLjMzMzMxIDcuOTk5NjdDMS4zMzMzMSAxMS42ODE2IDQuMzE4MDggMTQuNjY2MyA3Ljk5OTk4IDE0LjY2NjNaXCIgc3Ryb2tlPVwiIzBCOUQ2OFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDguMDAwMzNMNy4zMzMzMyA5LjMzMzY2TDEwIDYuNjY2OTlcIiBzdHJva2U9XCIjMEI5RDY4XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS10ZXh0LVsjMEI5RDY4XSBjcWEtZm9udC1tZWRpdW1cIj5QYXNzZWQ8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8IS0tIEZhaWxlZCAtLT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4wMDAwNCAxNC42NjczQzExLjY4MTkgMTQuNjY3MyAxNC42NjY3IDExLjY4MjUgMTQuNjY2NyA4LjAwMDY1QzE0LjY2NjcgNC4zMTg3NSAxMS42ODE5IDEuMzMzOTggOC4wMDAwNCAxLjMzMzk4QzQuMzE4MTQgMS4zMzM5OCAxLjMzMzM3IDQuMzE4NzUgMS4zMzMzNyA4LjAwMDY1QzEuMzMzMzcgMTEuNjgyNSA0LjMxODE0IDE0LjY2NzMgOC4wMDAwNCAxNC42NjczWlwiIHN0cm9rZT1cIiNGQjJDMzZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgNkw2IDEwXCIgc3Ryb2tlPVwiI0ZCMkMzNlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDZMMTAgMTBcIiBzdHJva2U9XCIjRkIyQzM2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS10ZXh0LVsjRkIyQzM2XSBjcWEtZm9udC1tZWRpdW1cIj5GYWlsZWQ8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8IS0tIEFib3J0ZWQgLS0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiPlxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguMDAwMDQgMTQuNjY3M0MxMS42ODE5IDE0LjY2NzMgMTQuNjY2NyAxMS42ODI1IDE0LjY2NjcgOC4wMDA2NUMxNC42NjY3IDQuMzE4NzUgMTEuNjgxOSAxLjMzMzk4IDguMDAwMDQgMS4zMzM5OEM0LjMxODE0IDEuMzMzOTggMS4zMzMzNyA0LjMxODc1IDEuMzMzMzcgOC4wMDA2NUMxLjMzMzM3IDExLjY4MjUgNC4zMTgxNCAxNC42NjczIDguMDAwMDQgMTQuNjY3M1pcIiBzdHJva2U9XCIjRjU5RTBCXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgOEgxMFwiIHN0cm9rZT1cIiNGNTlFMEJcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTFweF0gY3FhLXRleHQtWyNGNTlFMEJdIGNxYS1mb250LW1lZGl1bVwiPkFib3J0ZWQ8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTEgbWQ6Y3FhLWdyaWQtY29scy0yIGNxYS1nYXAtNCBtZDpjcWEtZ2FwLTE2IGNxYS1yZWxhdGl2ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzYzNjM2M11cIj5SdW4gQSAoQmFzZSk8L3NwYW4+XG4gICAgICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiIFxuICAgICAgICAgICAgICAgIFtjb25maWddPVwicnVuQVNlbGVjdENvbmZpZ1wiXG4gICAgICAgICAgICAgICAgKHNlYXJjaENoYW5nZSk9XCJvblNlYXJjaENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobG9hZE1vcmUpPVwib25Mb2FkTW9yZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtaGlkZGVuIG1kOmNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB0b3A6IDMwcHg7XCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNC4xNjY2OSAxMEgxNS44MzM0XCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgNC4xNjY5OUwxNS44MzMzIDEwLjAwMDNMMTAgMTUuODMzN1wiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMS41XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjNjM2MzYzXVwiPlJ1biBCIChDb21wYXJlKTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGNxYS1keW5hbWljLXNlbGVjdCBcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtXCIgXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJydW5CU2VsZWN0Q29uZmlnXCJcbiAgICAgICAgICAgICAgICAoc2VhcmNoQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChsb2FkTW9yZSk9XCJvbkxvYWRNb3JlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFJ1bkEgfHwgc2VsZWN0ZWRSdW5CXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWdyaWQgY3FhLWdyaWQtY29scy0xIG1kOmNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1sZyBjcWEtcC0zXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInNlbGVjdGVkUnVuQSA/IHJ1bkFTdGF0dXNCZ0NvbG9yIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cInNlbGVjdGVkUnVuQSA/IHJ1bkFTdGF0dXNCb3JkZXJDb2xvciA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQnOiBzZWxlY3RlZFJ1bkF9XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUnVuQVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1tYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMwQjBCMEJdXCI+UnVuICN7eyBzZWxlY3RlZFJ1bkEuaWQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcHgtMiBjcWEtcHktMC41IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInJ1bkFTdGF0dXNDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCInI0ZGRkZGRidcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBydW5BU3RhdHVzTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWdyaWQgY3FhLWdyaWQtY29scy0yIGNxYS1nYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjNjM2MzYzXVwiPlRpbWU6IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEIwQjBCXSBjcWEtZm9udC1tZWRpdW1cIj57eyBmb3JtYXRUaW1lKHNlbGVjdGVkUnVuQS5zdGFydFRpbWUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzYzNjM2M11cIj5EdXJhdGlvbjogPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQjBCMEJdIGNxYS1mb250LW1lZGl1bVwiPnt7IGZvcm1hdER1cmF0aW9uU3RyaW5nKHNlbGVjdGVkUnVuQS5kdXJhdGlvbikgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjNjM2MzYzXVwiPkVudjogPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQjBCMEJdIGNxYS1mb250LW1lZGl1bVwiPnt7IHNlbGVjdGVkUnVuQS5lbnZpcm9ubWVudCB8fCAn4oCUJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiICpuZ0lmPVwic2VsZWN0ZWRSdW5BLmRldmljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2MzYzNjNdXCI+e3sgc2VsZWN0ZWRSdW5BPy5wbGF0Zm9ybSA9PT0gJ2Rlc2t0b3AnID8gJ0Jyb3dzZXInIDogJ0RldmljZScgfX06IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEIwQjBCXSBjcWEtZm9udC1tZWRpdW1cIj57eyBzZWxlY3RlZFJ1bkEuZGV2aWNlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctd2hpdGUgY3FhLXJvdW5kZWQtbGcgY3FhLXAtM1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJzZWxlY3RlZFJ1bkIgPyBydW5CU3RhdHVzQmdDb2xvciA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJzZWxlY3RlZFJ1bkIgPyBydW5CU3RhdHVzQm9yZGVyQ29sb3IgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkJzogc2VsZWN0ZWRSdW5CfVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFJ1bkJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RhcnQgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEIwQjBCXVwiPlJ1biAje3sgc2VsZWN0ZWRSdW5CLmlkIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXB4LTIgY3FhLXB5LTAuNSBjcWEtcm91bmRlZC1mdWxsIGNxYS10ZXh0LVsxMHB4XSBjcWEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJydW5CU3RhdHVzQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiJyNGRkZGRkYnXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgcnVuQlN0YXR1c0xhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzYzNjM2M11cIj5UaW1lOiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLWZvbnQtbWVkaXVtXCI+e3sgZm9ybWF0VGltZShzZWxlY3RlZFJ1bkIuc3RhcnRUaW1lKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2MzYzNjNdXCI+RHVyYXRpb246IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEIwQjBCXSBjcWEtZm9udC1tZWRpdW1cIj57eyBmb3JtYXREdXJhdGlvblN0cmluZyhzZWxlY3RlZFJ1bkIuZHVyYXRpb24pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzYzNjM2M11cIj5FbnY6IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEIwQjBCXSBjcWEtZm9udC1tZWRpdW1cIj57eyBzZWxlY3RlZFJ1bkIuZW52aXJvbm1lbnQgfHwgJ+KAlCcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIiAqbmdJZj1cInNlbGVjdGVkUnVuQi5kZXZpY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjNjM2MzYzXVwiPnt7IHNlbGVjdGVkUnVuQj8ucGxhdGZvcm0gPT09ICdkZXNrdG9wJyA/ICdCcm93c2VyJyA6ICdEZXZpY2UnIH19OiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLWZvbnQtbWVkaXVtXCI+e3sgc2VsZWN0ZWRSdW5CLmRldmljZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1mbGV4IGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPGNxYS1idXR0b24gXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJmaWxsZWRcIiBcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Db21wYXJlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ29tcGFyZUNsaWNrKClcIj5cbiAgICAgICAgICAgICAge3sgaXNDb21wYXJpbmdSdW5zID8gJ0NvbXBhcmluZy4uLicgOiAnQ29tcGFyZSBSdW5zJyB9fVxuICAgICAgICAgICAgPC9jcWEtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInNob3dDb21wYXJpc29uICYmIGNvbXBhcmlzb25TdW1tYXJ5ICYmIHN0ZXBDb21wYXJpc29ucyAmJiBzdGVwQ29tcGFyaXNvbnMubGVuZ3RoID4gMFwiIFxuICAgICAgICAgY2xhc3M9XCJjcWEtYmctd2hpdGUgY3FhLXB5LTMgc206Y3FhLXB5LTQgY3FhLXB4LTMgc206Y3FhLXB4LTYgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTMgc206Y3FhLWdhcC00XCJcbiAgICAgICAgIHN0eWxlPVwiZmxleC1zaHJpbms6IDA7XCI+XG4gICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtdGV4dC1bIzYzNjM2M11cIj5TdW1tYXJ5OjwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMS41XCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtdGV4dC1zbVwiPlxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMi45MTY2OSA1LjI1SDExLjA4MzRcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjkxNjY5IDguNzVIMTEuMDgzNFwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub3JtYWwgY3FhLXRleHQtWyMwQjBCMEJdXCI+e3sgY29tcGFyaXNvblN1bW1hcnkudW5jaGFuZ2VkIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjNkI3MjgwXVwiPlVuY2hhbmdlZDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjVcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMCBjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS10ZXh0LXNtXCI+XG4gICAgICAgICAgICA8c3ZnIGZpbGw9XCIjMDAwMDAwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGlkPVwidXBkYXRlLWFsdC0yXCIgZGF0YS1uYW1lPVwiRmxhdCBDb2xvclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImljb24gZmxhdC1jb2xvclwiPlxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9fYmdDYXJyaWVyXCIgc3Ryb2tlLXdpZHRoPVwiMFwiPjwvZz5cbiAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX3RyYWNlckNhcnJpZXJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L2c+XG4gICAgICAgICAgICAgIDxnIGlkPVwiU1ZHUmVwb19pY29uQ2FycmllclwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwicHJpbWFyeVwiIGQ9XCJNMjEuNzEsMTAuMjlhMSwxLDAsMCwwLTEuNDIsMEwxOSwxMS41OVY3YTMsMywwLDAsMC0zLTNINkExLDEsMCwwLDAsNiw2SDE2YTEsMSwwLDAsMSwxLDF2NC41OWwtMS4yOS0xLjNhMSwxLDAsMCwwLTEuNDIsMS40MmwzLDNhMSwxLDAsMCwwLDEuNDIsMGwzLTNBMSwxLDAsMCwwLDIxLjcxLDEwLjI5WlwiIGZpbGw9XCIjMTU1REZDXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwic2Vjb25kYXJ5XCIgZD1cIk0xOCwxOEg4YTEsMSwwLDAsMS0xLTFWMTIuNDFsMS4yOSwxLjNhMSwxLDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQybC0zLTNhMSwxLDAsMCwwLTEuNDIsMGwtMywzYTEsMSwwLDAsMCwxLjQyLDEuNDJMNSwxMi40MVYxN2EzLDMsMCwwLDAsMywzSDE4YTEsMSwwLDAsMCwwLTJaXCIgZmlsbD1cIiMxNTVERkNcIj48L3BhdGg+XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtZm9udC1zZW1pYm9sZCBsZWFkaW5nLW5vcm1hbCBjcWEtdGV4dC1bIzE1NURGQ11cIj57eyBjb21wYXJpc29uU3VtbWFyeS5zdGF0dXNDaGFuZ2VkIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjNkI3MjgwXVwiPlN0YXR1cyBDaGFuZ2VkPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS1mbGV4LXNocmluay0wIGNxYS13LVsxNHB4XSBjcWEtaC1bMTRweF0gY3FhLXRleHQtc21cIj5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuOTE2NjkgN0gxMS4wODM0XCIgc3Ryb2tlPVwiIzAwQzk1MFwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNyAyLjkxNjk5VjExLjA4MzdcIiBzdHJva2U9XCIjMDBDOTUwXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LXNlbWlib2xkIGxlYWRpbmctbm9ybWFsIGNxYS10ZXh0LVsjMDBBNjNFXVwiPnt7IGNvbXBhcmlzb25TdW1tYXJ5LmFkZGVkIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjNkI3MjgwXVwiPkFkZGVkPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS1mbGV4LXNocmluay0wIGNxYS13LVsxNHB4XSBjcWEtaC1bMTRweF0gY3FhLXRleHQtc21cIj5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuOTE2NjkgN0gxMS4wODM0XCIgc3Ryb2tlPVwiI0ZCMkMzNlwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtZm9udC1zZW1pYm9sZCBsZWFkaW5nLW5vcm1hbCBjcWEtdGV4dC1bI0ZCMkMzNl1cIj57eyBjb21wYXJpc29uU3VtbWFyeS5yZW1vdmVkIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjNkI3MjgwXVwiPlJlbW92ZWQ8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gVGltaW5nIENoYW5nZWQgc3VtbWFyeSByZW1vdmVkIC0tPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWJnLXdoaXRlIGNxYS1yb3VuZGVkLWxnXCIgc3R5bGU9XCJvdmVyZmxvdy15OiBhdXRvOyBtYXgtaGVpZ2h0OiBjYWxjKDkwZHZoIC0gNDY4cHgpOyBzY3JvbGxiYXItd2lkdGg6IHRoaW47XCI+XG4gICAgICA8Y3FhLXRhYmxlLXRlbXBsYXRlIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBibG9jaztcIlxuICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnNcIlxuICAgICAgICBbZGF0YV09XCJzdGVwQ29tcGFyaXNvbnNcIlxuICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2VJbmRleFwiXG4gICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgIFtpc0VtcHR5U3RhdGVdPVwiaXNFbXB0eVN0YXRlXCJcbiAgICAgICAgW2VtcHR5U3RhdGVDb25maWddPVwiZW1wdHlTdGF0ZUNvbmZpZ1wiXG4gICAgICAgIFtpc1RhYmxlRGF0YUxvYWRpbmddPVwiaXNDb21wYXJpbmdSdW5zXCJcbiAgICAgICAgW3Nob3dTZWFyY2hCYXJdPVwiZmFsc2VcIlxuICAgICAgICBbc2hvd0ZpbHRlckJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgIFtzaG93U2V0dGluZ3NCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICBbc2hvd0F1dG9SZWZyZXNoQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dPdGhlckJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgIFtzaG93RmlsdGVyUGFuZWxdPVwiZmFsc2VcIlxuICAgICAgICBbc2VydmVyU2lkZVBhZ2luYXRpb25dPVwiZmFsc2VcIlxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPC9jcWEtdGFibGUtdGVtcGxhdGU+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
|
|
552
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS1ydW5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcGFyZS1ydW5zL2NvbXBhcmUtcnVucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBhcmUtcnVucy9jb21wYXJlLXJ1bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sRUFBRSxZQUFZLEVBQXFCLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3JKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7OztBQThGN0UsTUFBTSxPQUFPLG9CQUFvQjtJQWdDL0IsWUFDVSxFQUFlLEVBQ2YsR0FBc0I7UUFEdEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBakN2QixTQUFJLEdBQXlCLEVBQUUsQ0FBQztRQUVoQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVoQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFTM0Qsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQztRQUV4QyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIscUJBQWdCLEdBQXFCO1lBQ25DLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsV0FBVyxFQUFFLG9GQUFvRjtZQUNqRyxRQUFR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ZTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE1BQU0sR0FBMkI7WUFDckMsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsY0FBYyxFQUFFLGNBQWM7WUFDOUIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDdEUsQ0FBQzs7aUhBaGtCVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw4V0NuR2pDLDAyZUFvT0E7MkZEaklhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTtrSUFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vZHluYW1pYy1zZWxlY3QvZHluYW1pYy1zZWxlY3QtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNUYWJsZUNvbHVtbiB9IGZyb20gJy4uL3RhYmxlL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbmZpZyB9IGZyb20gJy4uL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRU1QVFlfU1RBVEVfSU1BR0VTIH0gZnJvbSAnLi4vYXNzZXRzL2ltYWdlcy9pbWFnZS1hc3NldHMuY29uc3RhbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXN0RGV2aWNlIHtcbiAgaWQ6IG51bWJlcjtcbiAgdGVzdFBsYW5JZDogbnVtYmVyO1xuICB0aXRsZTogc3RyaW5nO1xuICBicm93c2VyOiBzdHJpbmc7XG4gIHBsYXRmb3JtOiBzdHJpbmc7XG4gIGJyb3dzZXJWZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdERldmljZVNldHRpbmdzIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgb3NWZXJzaW9uOiBzdHJpbmc7XG4gIGJyb3dzZXI6IHN0cmluZztcbiAgYnJvd3NlclZlcnNpb246IHN0cmluZztcbiAgcmVzb2x1dGlvbjogc3RyaW5nO1xuICBwbGF0Zm9ybTogc3RyaW5nO1xuICBkZXZpY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3REZXZpY2VSZXN1bHQge1xuICB0ZXN0RGV2aWNlOiBUZXN0RGV2aWNlO1xuICB0ZXN0RGV2aWNlU2V0dGluZ3M6IFRlc3REZXZpY2VTZXR0aW5ncztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXN0Q2FzZVJlc3VsdERhdGEge1xuICBpZDogbnVtYmVyO1xuICBicm93c2VyOiBzdHJpbmc7XG4gIHRlc3RDYXNlSWQ6IG51bWJlcjtcbiAgdGVzdFBsYW5SZXN1bHRJZDogbnVtYmVyO1xuICByZXN1bHQ6ICdTVUNDRVNTJyB8ICdGQUlMVVJFJyB8ICdBQk9SVEVEJyB8ICdOT1RfRVhFQ1VURUQnIHwgJ1FVRVVFRCcgfCAnU1RPUFBFRCc7XG4gIHN0YXR1czogJ1NUQVRVU19DT01QTEVURUQnIHwgJ1NUQVRVU19JTl9QUk9HUkVTUycgfCAnU1RBVFVTX1FVRVVFRCc7XG4gIHN0YXJ0VGltZTogbnVtYmVyO1xuICBwbGF0Zm9ybTogc3RyaW5nO1xuICBlbmRUaW1lOiBudW1iZXI7XG4gIGR1cmF0aW9uOiBudW1iZXI7XG4gIHRlc3REYXRhU2V0TmFtZTogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICB0ZXN0RGV2aWNlUmVzdWx0OiBUZXN0RGV2aWNlUmVzdWx0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bkRhdGEge1xuICBpZDogbnVtYmVyO1xuICBsYWJlbDogc3RyaW5nO1xuICByZXN1bHQ6ICdTVUNDRVNTJyB8ICdGQUlMVVJFJyB8ICdBQk9SVEVEJyB8ICdOT1RfRVhFQ1VURUQnIHwgJ1FVRVVFRCcgfCAnU1RPUFBFRCc7XG4gIHN0YXJ0VGltZTogbnVtYmVyO1xuICBkdXJhdGlvbjogbnVtYmVyO1xuICB0ZXN0RGF0YVNldE5hbWU6IHN0cmluZztcbiAgZGV2aWNlOiBzdHJpbmc7XG4gIGJyb3dzZXI6IHN0cmluZztcbiAgcGxhdGZvcm06IHN0cmluZztcbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFyaXNvblN1bW1hcnkge1xuICB1bmNoYW5nZWQ6IG51bWJlcjtcbiAgc3RhdHVzQ2hhbmdlZDogbnVtYmVyO1xuICBhZGRlZDogbnVtYmVyO1xuICByZW1vdmVkOiBudW1iZXI7XG4gIHRpbWluZzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBDb21wYXJpc29uIHtcbiAgc3RlcElkOiBzdHJpbmc7XG4gIHN0ZXBUaXRsZTogc3RyaW5nO1xuICBydW5BU3RhdHVzPzogJ1NVQ0NFU1MnIHwgJ0ZBSUxVUkUnIHwgJ0FCT1JURUQnIHwgJ05PVF9FWEVDVVRFRCcgfCAnUVVFVUVEJyB8ICdTVE9QUEVEJztcbiAgcnVuQUR1cmF0aW9uPzogbnVtYmVyO1xuICBydW5CU3RhdHVzPzogJ1NVQ0NFU1MnIHwgJ0ZBSUxVUkUnIHwgJ0FCT1JURUQnIHwgJ05PVF9FWEVDVVRFRCcgfCAnUVVFVUVEJyB8ICdTVE9QUEVEJztcbiAgcnVuQkR1cmF0aW9uPzogbnVtYmVyO1xuICBjaGFuZ2U6ICdVTkNIQU5HRUQnIHwgJ1NUQVRVU19DSEFOR0VEJyB8ICdUSU1JTkdfQ0hBTkdFRCcgfCAnQURERUQnIHwgJ1JFTU9WRUQnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhcmlzb25SZXNwb25zZSB7XG4gIHN1bW1hcnk6IENvbXBhcmlzb25TdW1tYXJ5O1xuICBzdGVwc0NvbXBhcmlzb246IFN0ZXBDb21wYXJpc29uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFyZVJlcXVlc3Qge1xuICBydW5BSWQ6IG51bWJlcjtcbiAgcnVuQklkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVxdWVzdCB7XG4gIGtleTogc3RyaW5nO1xuICBxdWVyeTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtY29tcGFyZS1ydW5zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhcmUtcnVucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbXBhcmVSdW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBydW5zOiBUZXN0Q2FzZVJlc3VsdERhdGFbXSA9IFtdO1xuICBASW5wdXQoKSBjb21wYXJpc29uRGF0YT86IENvbXBhcmlzb25SZXNwb25zZTtcbiAgQElucHV0KCkgaXNMb2FkaW5nUnVuczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNNb3JlUnVuczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0NvbXBhcmluZ1J1bnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzQ29tcGFyZWRSdW5zOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICBAT3V0cHV0KCkgc2VhcmNoUnVucyA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVxdWVzdD4oKTtcbiAgQE91dHB1dCgpIGxvYWRNb3JlUnVucyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgY29tcGFyZVJ1bnMgPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBhcmVSZXF1ZXN0PigpO1xuXG4gIGZvcm0hOiBGb3JtR3JvdXA7XG4gIHJ1bkFTZWxlY3RDb25maWchOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWc7XG4gIHJ1bkJTZWxlY3RDb25maWchOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWc7XG5cbiAgc2VsZWN0ZWRSdW5BPzogUnVuRGF0YTtcbiAgc2VsZWN0ZWRSdW5CPzogUnVuRGF0YTtcbiAgY29tcGFyaXNvblN1bW1hcnk/OiBDb21wYXJpc29uU3VtbWFyeTtcbiAgc3RlcENvbXBhcmlzb25zOiBTdGVwQ29tcGFyaXNvbltdID0gW107XG4gIHRhYmxlQ29sdW1uczogRHluYW1pY1RhYmxlQ29sdW1uW10gPSBbXTtcbiAgXG4gIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcbiAgcGFnZVNpemU6IG51bWJlciA9IDEwO1xuICBcbiAgZW1wdHlTdGF0ZUNvbmZpZzogRW1wdHlTdGF0ZUNvbmZpZyA9IHtcbiAgICB0aXRsZTogJ05vIENvbXBhcmlzb24gRGF0YScsXG4gICAgZGVzY3JpcHRpb246ICdTZWxlY3QgdHdvIG90aGVyIHJ1bnMgdG8gY29tcGFyZSBhbmQgc2VlIGRldGFpbGVkIHN0ZXAtYnktc3RlcCBjb21wYXJpc29uIHJlc3VsdHMuJyxcbiAgICBpbWFnZVVybDogRU1QVFlfU1RBVEVfSU1BR0VTLkNPTVBBUkVfUlVOUyxcbiAgICBhY3Rpb25zOiBbXVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcbiAgICB0aGlzLnNldHVwU2VsZWN0Q29uZmlncygpO1xuICAgIHRoaXMuc2V0dXBUYWJsZUNvbHVtbnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncnVucyddICYmICFjaGFuZ2VzWydydW5zJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2V0dXBTZWxlY3RDb25maWdzKCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKGNoYW5nZXNbJ2NvbXBhcmlzb25EYXRhJ10gJiYgdGhpcy5jb21wYXJpc29uRGF0YSkge1xuICAgICAgdGhpcy5oYW5kbGVDb21wYXJpc29uRGF0YSgpO1xuICAgIH1cbiAgICBcbiAgICBpZiAoY2hhbmdlc1snaXNMb2FkaW5nUnVucyddKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdENvbmZpZ3NMb2FkaW5nKCk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcnVuQTogW251bGxdLFxuICAgICAgcnVuQjogW251bGxdXG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkUnVucygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxPcHRpb25zQ2FjaGU6IGFueVtdID0gW107XG4gIHByaXZhdGUgbGFzdFJ1bnM6IFRlc3RDYXNlUmVzdWx0RGF0YVtdID0gW107XG5cbiAgcHJpdmF0ZSBzZXR1cFNlbGVjdENvbmZpZ3MoKTogdm9pZCB7XG4gICAgY29uc3QgcnVuQUlkID0gdGhpcy5mb3JtPy5nZXQoJ3J1bkEnKT8udmFsdWU7XG4gICAgY29uc3QgcnVuQklkID0gdGhpcy5mb3JtPy5nZXQoJ3J1bkInKT8udmFsdWU7XG4gICAgXG4gICAgaWYgKHRoaXMucnVucyAhPT0gdGhpcy5sYXN0UnVucykge1xuICAgICAgdGhpcy5hbGxPcHRpb25zQ2FjaGUgPSB0aGlzLnJ1bnMubWFwKHJ1biA9PiB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5mb3JtYXRSdW5MYWJlbChydW4pO1xuICAgICAgICBjb25zdCBzdGF0dXNDb2xvciA9IHRoaXMuZ2V0UmVzdWx0U3RhdHVzQ29sb3IocnVuLnJlc3VsdCk7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uRm9ybWF0dGVkID0gdGhpcy5mb3JtYXREdXJhdGlvblN0cmluZyhydW4uZHVyYXRpb24pO1xuXG4gICAgICAgIGNvbnN0IFtydW5OdW1iZXJQYXJ0UmF3LCBkYXRlUGFydFJhd10gPSBsYWJlbC5zcGxpdCgn4oCiJyk7XG4gICAgICAgIGNvbnN0IHJ1bk51bWJlclBhcnQgPSBydW5OdW1iZXJQYXJ0UmF3ID8gcnVuTnVtYmVyUGFydFJhdy50cmltKCkgOiBsYWJlbDtcbiAgICAgICAgY29uc3QgZGF0ZVBhcnQgPSBkYXRlUGFydFJhdyA/IGRhdGVQYXJ0UmF3LnRyaW0oKSA6ICcnO1xuXG4gICAgICAgIGNvbnN0IHJ1bk51bWJlckxhYmVsID0gZGF0ZVBhcnQgPyBgJHtydW5OdW1iZXJQYXJ0fSDigKJgIDogcnVuTnVtYmVyUGFydDtcbiAgICAgICAgY29uc3QgcnVuRGF0ZUxhYmVsID0gZGF0ZVBhcnQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZDogcnVuLmlkLFxuICAgICAgICAgIHZhbHVlOiBydW4uaWQsXG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgbmFtZTogbGFiZWwsXG4gICAgICAgICAgcnVuTnVtYmVyTGFiZWwsXG4gICAgICAgICAgcnVuRGF0ZUxhYmVsLFxuICAgICAgICAgIHN0YXR1czogcnVuLnJlc3VsdCxcbiAgICAgICAgICBzdGF0dXNDb2xvcixcbiAgICAgICAgICBkdXJhdGlvbjogcnVuLmR1cmF0aW9uLFxuICAgICAgICAgIGR1cmF0aW9uRm9ybWF0dGVkXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIHRoaXMubGFzdFJ1bnMgPSB0aGlzLnJ1bnM7XG4gICAgfVxuXG4gICAgY29uc3QgaG91clJ1bkZvdW5kID0gdGhpcy5hbGxPcHRpb25zQ2FjaGUuc29tZShvcHQgPT4gb3B0Py5kdXJhdGlvbkZvcm1hdHRlZD8uaW5jbHVkZXMoJ2gnKSk7XG4gICAgY29uc3QgbWludXRlUnVuRm91bmQgPSB0aGlzLmFsbE9wdGlvbnNDYWNoZS5zb21lKG9wdCA9PiBvcHQ/LmR1cmF0aW9uRm9ybWF0dGVkPy5pbmNsdWRlcygnbSAnKSk7XG4gICAgaWYgKGhvdXJSdW5Gb3VuZCB8fCBtaW51dGVSdW5Gb3VuZCkge1xuICAgICAgdGhpcy5hbGxPcHRpb25zQ2FjaGUuZm9yRWFjaChvcHQgPT4ge1xuICAgICAgICBvcHQuaGFzSG91clJ1biA9IGhvdXJSdW5Gb3VuZDtcbiAgICAgICAgb3B0Lmhhc01pbnV0ZVJ1biA9IG1pbnV0ZVJ1bkZvdW5kO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcnVuQU9wdGlvbnMgPSB0aGlzLmFsbE9wdGlvbnNDYWNoZS5maWx0ZXIob3B0ID0+IG9wdC5pZCAhPT0gcnVuQklkKTtcbiAgICBjb25zdCBydW5CT3B0aW9ucyA9IHRoaXMuYWxsT3B0aW9uc0NhY2hlLmZpbHRlcihvcHQgPT4gb3B0LmlkICE9PSBydW5BSWQpO1xuXG4gICAgdGhpcy5ydW5BU2VsZWN0Q29uZmlnID0ge1xuICAgICAga2V5OiAncnVuQScsXG4gICAgICBsYWJlbDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCBhbmQgc2VsZWN0IHJ1bicsXG4gICAgICBvcHRpb25zOiBydW5BT3B0aW9ucyxcbiAgICAgIGlzQ29tcGFyZVJ1bnM6IHRydWUsXG4gICAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgICAgaGFzTW9yZTogdGhpcy5oYXNNb3JlUnVucyxcbiAgICAgIGlzTG9hZGluZzogdGhpcy5pc0xvYWRpbmdSdW5zLFxuICAgICAgb25TZWFyY2g6IChxdWVyeTogc3RyaW5nKSA9PiB0aGlzLmhhbmRsZVNlYXJjaFJ1bnMocXVlcnksICdydW5BJyksXG4gICAgICBvbkxvYWRNb3JlOiAocXVlcnk/OiBzdHJpbmcpID0+IHRoaXMuaGFuZGxlTG9hZE1vcmVSdW5zKHF1ZXJ5IHx8ICcnKVxuICAgIH07XG5cbiAgICB0aGlzLnJ1bkJTZWxlY3RDb25maWcgPSB7XG4gICAgICBrZXk6ICdydW5CJyxcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoIGFuZCBzZWxlY3QgcnVuJyxcbiAgICAgIG9wdGlvbnM6IHJ1bkJPcHRpb25zLFxuICAgICAgaXNDb21wYXJlUnVuczogdHJ1ZSxcbiAgICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgICBoYXNNb3JlOiB0aGlzLmhhc01vcmVSdW5zLFxuICAgICAgaXNMb2FkaW5nOiB0aGlzLmlzTG9hZGluZ1J1bnMsXG4gICAgICBvblNlYXJjaDogKHF1ZXJ5OiBzdHJpbmcpID0+IHRoaXMuaGFuZGxlU2VhcmNoUnVucyhxdWVyeSwgJ3J1bkInKSxcbiAgICAgIG9uTG9hZE1vcmU6IChxdWVyeT86IHN0cmluZykgPT4gdGhpcy5oYW5kbGVMb2FkTW9yZVJ1bnMocXVlcnkgfHwgJycpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuTGFiZWxDYWNoZSA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBmb3JtYXRSdW5MYWJlbChydW46IFRlc3RDYXNlUmVzdWx0RGF0YSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucnVuTGFiZWxDYWNoZS5oYXMocnVuLmlkKSkge1xuICAgICAgcmV0dXJuIHRoaXMucnVuTGFiZWxDYWNoZS5nZXQocnVuLmlkKSE7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHJ1bi5zdGFydFRpbWUpO1xuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIHNlY29uZDogJzItZGlnaXQnXG4gICAgfSk7XG4gICAgY29uc3QgbGFiZWwgPSBgUnVuICMke3J1bi5pZH0g4oCiICR7Zm9ybWF0dGVkRGF0ZX1gO1xuICAgIHRoaXMucnVuTGFiZWxDYWNoZS5zZXQocnVuLmlkLCBsYWJlbCk7XG4gICAgcmV0dXJuIGxhYmVsO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RDb25maWdzTG9hZGluZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydW5BU2VsZWN0Q29uZmlnKSB7XG4gICAgICB0aGlzLnJ1bkFTZWxlY3RDb25maWcgPSB7XG4gICAgICAgIC4uLnRoaXMucnVuQVNlbGVjdENvbmZpZyxcbiAgICAgICAgaXNMb2FkaW5nOiB0aGlzLmlzTG9hZGluZ1J1bnMsXG4gICAgICAgIGhhc01vcmU6IHRoaXMuaGFzTW9yZVJ1bnNcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0aGlzLnJ1bkJTZWxlY3RDb25maWcpIHtcbiAgICAgIHRoaXMucnVuQlNlbGVjdENvbmZpZyA9IHtcbiAgICAgICAgLi4udGhpcy5ydW5CU2VsZWN0Q29uZmlnLFxuICAgICAgICBpc0xvYWRpbmc6IHRoaXMuaXNMb2FkaW5nUnVucyxcbiAgICAgICAgaGFzTW9yZTogdGhpcy5oYXNNb3JlUnVuc1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWFyY2hSdW5zKHF1ZXJ5OiBzdHJpbmcsIGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hSdW5zLmVtaXQoeyBrZXksIHF1ZXJ5IH0pO1xuICB9XG5cbiAgaGFuZGxlTG9hZE1vcmVSdW5zKHF1ZXJ5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRNb3JlUnVucy5lbWl0KHF1ZXJ5KTtcbiAgfVxuXG4gIG9uU2VhcmNoQ2hhbmdlKGV2ZW50OiBTZWFyY2hSZXF1ZXN0KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ29uU2VhcmNoQ2hhbmdlJywgZXZlbnQpO1xuICAgIHRoaXMuc2VhcmNoUnVucy5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uTG9hZE1vcmUoZXZlbnQ6IHsga2V5OiBzdHJpbmc7IHF1ZXJ5OiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmVSdW5zLmVtaXQoZXZlbnQucXVlcnkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFJ1bnMoKTogdm9pZCB7XG4gICAgY29uc3QgcnVuQUlkID0gdGhpcy5mb3JtLmdldCgncnVuQScpPy52YWx1ZTtcbiAgICBjb25zdCBydW5CSWQgPSB0aGlzLmZvcm0uZ2V0KCdydW5CJyk/LnZhbHVlO1xuXG4gICAgY29uc3QgcnVuQSA9IHRoaXMucnVucy5maW5kKHIgPT4gci5pZCA9PT0gcnVuQUlkKTtcbiAgICBjb25zdCBydW5CID0gdGhpcy5ydW5zLmZpbmQociA9PiByLmlkID09PSBydW5CSWQpO1xuXG4gICAgdGhpcy5zZWxlY3RlZFJ1bkEgPSBydW5BID8gdGhpcy5jb252ZXJ0VG9SdW5EYXRhKHJ1bkEpIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2VsZWN0ZWRSdW5CID0gcnVuQiA/IHRoaXMuY29udmVydFRvUnVuRGF0YShydW5CKSA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuc2V0dXBTZWxlY3RDb25maWdzKCk7XG4gICAgdGhpcy5zZXR1cFRhYmxlQ29sdW1ucygpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9SdW5EYXRhKGRhdGE6IFRlc3RDYXNlUmVzdWx0RGF0YSk6IFJ1bkRhdGEge1xuICAgIGNvbnN0IGRldmljZSA9IGRhdGE/LmJyb3dzZXJcbiAgICAgID8gZGF0YT8uYnJvd3Nlcj8uY2hhckF0KDApPy50b1VwcGVyQ2FzZSgpICsgZGF0YT8uYnJvd3Nlcj8uc2xpY2UoMSlcbiAgICAgIDogJyc7XG4gICAgY29uc3QgYnJvd3NlciA9IGRhdGE/LmJyb3dzZXIgfHwgJyc7XG4gICAgY29uc3QgcGxhdGZvcm0gPSBkYXRhPy5wbGF0Zm9ybSB8fCAnJztcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogZGF0YS5pZCxcbiAgICAgIGxhYmVsOiB0aGlzLmZvcm1hdFJ1bkxhYmVsKGRhdGEpLFxuICAgICAgcmVzdWx0OiBkYXRhLnJlc3VsdCxcbiAgICAgIHN0YXJ0VGltZTogZGF0YS5zdGFydFRpbWUsXG4gICAgICBkdXJhdGlvbjogZGF0YS5kdXJhdGlvbixcbiAgICAgIHRlc3REYXRhU2V0TmFtZTogZGF0YS50ZXN0RGF0YVNldE5hbWUsXG4gICAgICBkZXZpY2UsXG4gICAgICBicm93c2VyLFxuICAgICAgcGxhdGZvcm0sXG4gICAgICBlbnZpcm9ubWVudDogZGF0YS5lbnZpcm9ubWVudFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldHVwVGFibGVDb2x1bW5zKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGVDb2x1bW5zID0gW1xuICAgICAge1xuICAgICAgICBmaWVsZElkOiAnc3RlcCcsXG4gICAgICAgIGZpZWxkTmFtZTogJ1N0ZXAnLFxuICAgICAgICBmaWVsZFZhbHVlOiAnc3RlcFRpdGxlJyxcbiAgICAgICAgaXNTaG93OiB0cnVlLFxuICAgICAgICB3ZWlnaHQ6IDMsXG4gICAgICAgIHJlbmRlcjogKHJvdzogU3RlcENvbXBhcmlzb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQjBCMEJdXCI+JHtyb3cuc3RlcFRpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGA7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGZpZWxkSWQ6ICdydW5BJyxcbiAgICAgICAgZmllbGROYW1lOiB0aGlzLmdldFJ1bkNvbHVtbkhlYWRlcignQScpLFxuICAgICAgICBpc1Nob3c6IHRydWUsXG4gICAgICAgIHdlaWdodDogMS41LFxuICAgICAgICByZW5kZXI6IChyb3c6IFN0ZXBDb21wYXJpc29uKSA9PiB7XG4gICAgICAgICAgaWYgKCFyb3cucnVuQVN0YXR1cykge1xuICAgICAgICAgICAgcmV0dXJuICc8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjOUNBM0FGXVwiPuKAlDwvc3Bhbj4nO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclN0YXR1c0ljb24ocm93LnJ1bkFTdGF0dXMpfVxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtdGV4dC1bIzZCNzI4MF1cIj4ke3RoaXMuZm9ybWF0RHVyYXRpb24ocm93LnJ1bkFEdXJhdGlvbiB8fCAwKX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWVsZElkOiAncnVuQicsXG4gICAgICAgIGZpZWxkTmFtZTogdGhpcy5nZXRSdW5Db2x1bW5IZWFkZXIoJ0InKSxcbiAgICAgICAgaXNTaG93OiB0cnVlLFxuICAgICAgICB3ZWlnaHQ6IDEuNSxcbiAgICAgICAgcmVuZGVyOiAocm93OiBTdGVwQ29tcGFyaXNvbikgPT4ge1xuICAgICAgICAgIGlmICghcm93LnJ1bkJTdGF0dXMpIHtcbiAgICAgICAgICAgIHJldHVybiAnPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzYzNjM2M11cIj4g4oCUIDwvc3Bhbj4nO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTAuNVwiPlxuICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU3RhdHVzSWNvbihyb3cucnVuQlN0YXR1cyl9XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS10ZXh0LVsjNjM2MzYzXVwiPiR7dGhpcy5mb3JtYXREdXJhdGlvbihyb3cucnVuQkR1cmF0aW9uIHx8IDApfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGA7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGZpZWxkSWQ6ICdjaGFuZ2UnLFxuICAgICAgICBmaWVsZE5hbWU6ICdDaGFuZ2UnLFxuICAgICAgICBmaWVsZFZhbHVlOiAnY2hhbmdlJyxcbiAgICAgICAgaXNTaG93OiB0cnVlLFxuICAgICAgICB3ZWlnaHQ6IDEuNSxcbiAgICAgICAgcmVuZGVyOiAocm93OiBTdGVwQ29tcGFyaXNvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZUxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgICdVTkNIQU5HRUQnOiAnVW5jaGFuZ2VkJyxcbiAgICAgICAgICAgICdTVEFUVVNfQ0hBTkdFRCc6ICdTdGF0dXMgQ2hhbmdlZCcsXG4gICAgICAgICAgICAnVElNSU5HX0NIQU5HRUQnOiAnVGltaW5nIENoYW5nZWQnLFxuICAgICAgICAgICAgJ0FEREVEJzogJ0FkZGVkJyxcbiAgICAgICAgICAgICdSRU1PVkVEJzogJ1JlbW92ZWQnXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBjaGFuZ2VDb2xvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICAgICAnVU5DSEFOR0VEJzogJyM2QjcyODAnLFxuICAgICAgICAgICAgJ1NUQVRVU19DSEFOR0VEJzogJyMzQjgyRjYnLFxuICAgICAgICAgICAgJ1RJTUlOR19DSEFOR0VEJzogJyMzQjgyRjYnLFxuICAgICAgICAgICAgJ0FEREVEJzogJyMxMEI5ODEnLFxuICAgICAgICAgICAgJ1JFTU9WRUQnOiAnI0VGNDQ0NCdcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IGNoYW5nZUJnQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAgICAgJ1VOQ0hBTkdFRCc6ICcjRjNGNEY2JyxcbiAgICAgICAgICAgICdTVEFUVVNfQ0hBTkdFRCc6ICcjREJFQUZFJyxcbiAgICAgICAgICAgICdUSU1JTkdfQ0hBTkdFRCc6ICcjREJFQUZFJyxcbiAgICAgICAgICAgICdBRERFRCc6ICcjRDFGQUU1JyxcbiAgICAgICAgICAgICdSRU1PVkVEJzogJyNGRUUyRTInXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gY2hhbmdlTGFiZWxzW3Jvdy5jaGFuZ2VdIHx8IHJvdy5jaGFuZ2U7XG4gICAgICAgICAgY29uc3QgY29sb3IgPSBjaGFuZ2VDb2xvcnNbcm93LmNoYW5nZV0gfHwgJyM2QjcyODAnO1xuICAgICAgICAgIGNvbnN0IGJnQ29sb3IgPSBjaGFuZ2VCZ0NvbG9yc1tyb3cuY2hhbmdlXSB8fCAnI0YzRjRGNic7XG5cbiAgICAgICAgICByZXR1cm4gYFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXB4LTIgY3FhLXB5LTAuNSBjcWEtcm91bmRlZC1mdWxsIGNxYS10ZXh0LVsxMHB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdy1tYXhcIiBcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogJHtiZ0NvbG9yfTsgY29sb3I6ICR7Y29sb3J9O1wiPlxuICAgICAgICAgICAgICAke2xhYmVsfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIGA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSdW5Db2x1bW5IZWFkZXIocnVuOiAnQScgfCAnQicpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdGVkUnVuID0gcnVuID09PSAnQScgPyB0aGlzLnNlbGVjdGVkUnVuQSA6IHRoaXMuc2VsZWN0ZWRSdW5CO1xuICAgIGlmIChzZWxlY3RlZFJ1biAmJiBzZWxlY3RlZFJ1bi5pZCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gYFJ1biAjJHtzZWxlY3RlZFJ1bi5pZH1gO1xuICAgIH1cbiAgICByZXR1cm4gcnVuID09PSAnQScgPyAnUnVuIEEnIDogJ1J1biBCJztcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyU3RhdHVzSWNvbihzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdXBwZXJTdGF0dXMgPSBzdGF0dXMudG9VcHBlckNhc2UoKTtcbiAgICBpZiAodXBwZXJTdGF0dXMgPT09ICdTVUNDRVNTJykge1xuICAgICAgcmV0dXJuIGBcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICA8cGF0aCBkPVwiTTcuOTk5OTggMTQuNjY2M0MxMS42ODE5IDE0LjY2NjMgMTQuNjY2NiAxMS42ODE2IDE0LjY2NjYgNy45OTk2N0MxNC42NjY2IDQuMzE3NzggMTEuNjgxOSAxLjMzMzAxIDcuOTk5OTggMS4zMzMwMUM0LjMxODA4IDEuMzMzMDEgMS4zMzMzMSA0LjMxNzc4IDEuMzMzMzEgNy45OTk2N0MxLjMzMzMxIDExLjY4MTYgNC4zMTgwOCAxNC42NjYzIDcuOTk5OTggMTQuNjY2M1pcIiBzdHJva2U9XCIjMDBDOTUwXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk02IDguMDAwMzNMNy4zMzMzMyA5LjMzMzY2TDEwIDYuNjY2OTlcIiBzdHJva2U9XCIjMDBDOTUwXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgIDwvc3ZnPmA7XG4gICAgfSBlbHNlIGlmICh1cHBlclN0YXR1cyA9PT0gJ0ZBSUxVUkUnKSB7XG4gICAgICByZXR1cm4gYFxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNOC4wMDAwNCAxNC42NjczQzExLjY4MTkgMTQuNjY3MyAxNC42NjY3IDExLjY4MjUgMTQuNjY2NyA4LjAwMDY1QzE0LjY2NjcgNC4zMTg3NSAxMS42ODE5IDEuMzMzOTggOC4wMDAwNCAxLjMzMzk4QzQuMzE4MTQgMS4zMzM5OCAxLjMzMzM3IDQuMzE4NzUgMS4zMzMzNyA4LjAwMDY1QzEuMzMzMzcgMTEuNjgyNSA0LjMxODE0IDE0LjY2NzMgOC4wMDAwNCAxNC42NjczWlwiIHN0cm9rZT1cIiNGQjJDMzZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTEwIDZMNiAxMFwiIHN0cm9rZT1cIiNGQjJDMzZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTYgNkwxMCAxMFwiIHN0cm9rZT1cIiNGQjJDMzZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgPC9zdmc+YDtcbiAgICB9IGVsc2UgaWYgKHVwcGVyU3RhdHVzID09PSAnQUJPUlRFRCcgfHwgdXBwZXJTdGF0dXMgPT09ICdTVE9QUEVEJyB8fCB1cHBlclN0YXR1cyA9PT0gJ05PVF9FWEVDVVRFRCcpIHtcbiAgICAgIHJldHVybiBgXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgPHBhdGggZD1cIk04LjAwMDA0IDE0LjY2NzNDMTEuNjgxOSAxNC42NjczIDE0LjY2NjcgMTEuNjgyNSAxNC42NjY3IDguMDAwNjVDMTQuNjY2NyA0LjMxODc1IDExLjY4MTkgMS4zMzM5OCA4LjAwMDA0IDEuMzMzOThDNC4zMTgxNCAxLjMzMzk4IDEuMzMzMzcgNC4zMTg3NSAxLjMzMzM3IDguMDAwNjVDMS4zMzMzNyAxMS42ODI1IDQuMzE4MTQgMTQuNjY3MyA4LjAwMDA0IDE0LjY2NzNaXCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNNiA4SDEwXCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICA8L3N2Zz5gO1xuICAgIH0gZWxzZSBpZiAodXBwZXJTdGF0dXMgPT09ICdRVUVVRUQnKSB7XG4gICAgICByZXR1cm4gYFxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgY2xhc3M9XCJjcWEtYW5pbWF0ZS1zcGluXCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNOCAxLjMzMzMxVjMuOTk5OThcIiBzdHJva2U9XCIjM0I4MkY2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk04IDEyVjE0LjY2NjZcIiBzdHJva2U9XCIjM0I4MkY2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk0xLjMzMzM3IDhINC4wMDAwNFwiIHN0cm9rZT1cIiMzQjgyRjZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTEyIDhIMTQuNjY2N1wiIHN0cm9rZT1cIiMzQjgyRjZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTMuMjg2NjIgMy4yODY2Mkw1LjE3MzI5IDUuMTczMjlcIiBzdHJva2U9XCIjM0I4MkY2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk0xMC44MjY3IDEwLjgyNjdMMTIuNzEzMyAxMi43MTMzXCIgc3Ryb2tlPVwiIzNCODJGNlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNMy4yODY2MiAxMi43MTMzTDUuMTczMjkgMTAuODI2N1wiIHN0cm9rZT1cIiMzQjgyRjZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTEwLjgyNjcgNS4xNzMyOUwxMi43MTMzIDMuMjg2NjJcIiBzdHJva2U9XCIjM0I4MkY2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgIDwvc3ZnPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzYzNjM2M11cIj4g4oCUIDwvc3Bhbj5gO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RHVyYXRpb24obXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCFtcyB8fCBtcyA8IDApIHtcbiAgICAgIHJldHVybiAnMG1zJztcbiAgICB9XG5cbiAgICBpZiAobXMgPCAxMDAwKSB7XG4gICAgICByZXR1cm4gYCR7bXN9bXNgO1xuICAgIH1cblxuICAgIGNvbnN0IHRvdGFsU2Vjb25kcyA9IE1hdGguZmxvb3IobXMgLyAxMDAwKTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IodG90YWxTZWNvbmRzIC8gMzYwMCk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKHRvdGFsU2Vjb25kcyAlIDM2MDApIC8gNjApO1xuICAgIGNvbnN0IHNlY29uZHMgPSB0b3RhbFNlY29uZHMgJSA2MDtcblxuICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKGhvdXJzID4gMCkge1xuICAgICAgcGFydHMucHVzaChgJHtob3Vyc31oYCk7XG4gICAgfVxuICAgIGlmIChtaW51dGVzID4gMCkge1xuICAgICAgcGFydHMucHVzaChgJHttaW51dGVzfW1gKTtcbiAgICB9XG4gICAgaWYgKHNlY29uZHMgPiAwIHx8IHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcGFydHMucHVzaChgJHtzZWNvbmRzfXNgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFydHMuam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXN1bHRTdGF0dXNDb2xvcihyZXN1bHQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdTVUNDRVNTJzogJyMwQjlENjgnLFxuICAgICAgJ0ZBSUxVUkUnOiAnI0ZCMkMzNicsXG4gICAgICAnQUJPUlRFRCc6ICcjRjU5RTBCJyxcbiAgICAgICdRVUVVRUQnOiAnIzNCODJGNicsXG4gICAgICAnTk9UX0VYRUNVVEVEJzogJyM2QjcyODAnLFxuICAgICAgJ1NUT1BQRUQnOiAnIzZCNzI4MCdcbiAgICB9O1xuICAgIHJldHVybiBjb2xvcnNbcmVzdWx0XSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbXBhcmlzb25EYXRhKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb21wYXJpc29uRGF0YSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jb21wYXJpc29uU3VtbWFyeSA9IHRoaXMuY29tcGFyaXNvbkRhdGEuc3VtbWFyeTtcbiAgICB0aGlzLnN0ZXBDb21wYXJpc29ucyA9IHRoaXMuY29tcGFyaXNvbkRhdGEuc3RlcHNDb21wYXJpc29uO1xuICAgIHRoaXMucGFnZUluZGV4ID0gMDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShldmVudDogeyBwYWdlSW5kZXg6IG51bWJlcjsgcGFnZVNpemU6IG51bWJlciB9KTogdm9pZCB7XG4gICAgdGhpcy5wYWdlSW5kZXggPSBldmVudC5wYWdlSW5kZXg7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50LnBhZ2VTaXplO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIFxuICBnZXQgaXNFbXB0eVN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbXBhcmVkUnVucyAmJiAoIXRoaXMuc2hvd0NvbXBhcmlzb24gfHwgIXRoaXMuc3RlcENvbXBhcmlzb25zIHx8IHRoaXMuc3RlcENvbXBhcmlzb25zLmxlbmd0aCA9PT0gMCk7XG4gIH1cblxuICBvbkNvbXBhcmVDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBydW5BSWQgPSB0aGlzLmZvcm0uZ2V0KCdydW5BJyk/LnZhbHVlO1xuICAgIGNvbnN0IHJ1bkJJZCA9IHRoaXMuZm9ybS5nZXQoJ3J1bkInKT8udmFsdWU7XG5cbiAgICBpZiAocnVuQUlkICYmIHJ1bkJJZCAmJiAhdGhpcy5pc0NvbXBhcmluZ1J1bnMpIHtcbiAgICAgIHRoaXMuY29tcGFyZVJ1bnMuZW1pdCh7XG4gICAgICAgIHJ1bkFJZCxcbiAgICAgICAgcnVuQklkXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FuQ29tcGFyZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBydW5BSWQgPSB0aGlzLmZvcm0uZ2V0KCdydW5BJyk/LnZhbHVlO1xuICAgIGNvbnN0IHJ1bkJJZCA9IHRoaXMuZm9ybS5nZXQoJ3J1bkInKT8udmFsdWU7XG4gICAgcmV0dXJuICEhKHJ1bkFJZCAmJiBydW5CSWQgJiYgIXRoaXMuaXNDb21wYXJpbmdSdW5zKTtcbiAgfVxuXG4gIGdldCBydW5BU3RhdHVzQ29sb3IoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSdW5BKSByZXR1cm4gJyM2QjcyODAnO1xuICAgIGNvbnN0IGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdTVUNDRVNTJzogJyMwQjlENjgnLFxuICAgICAgJ0ZBSUxVUkUnOiAnI0ZCMkMzNicsXG4gICAgICAnQUJPUlRFRCc6ICcjRjU5RTBCJyxcbiAgICAgICdRVUVVRUQnOiAnIzNCODJGNicsXG4gICAgICAnTk9UX0VYRUNVVEVEJzogJyM2QjcyODAnLFxuICAgICAgJ1NUT1BQRUQnOiAnIzZCNzI4MCdcbiAgICB9O1xuICAgIHJldHVybiBjb2xvcnNbdGhpcy5zZWxlY3RlZFJ1bkEucmVzdWx0XSB8fCAnIzZCNzI4MCc7XG4gIH1cblxuICBnZXQgcnVuQlN0YXR1c0NvbG9yKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUnVuQikgcmV0dXJuICcjNkI3MjgwJztcbiAgICBjb25zdCBjb2xvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnU1VDQ0VTUyc6ICcjMEI5RDY4JyxcbiAgICAgICdGQUlMVVJFJzogJyNGQjJDMzYnLFxuICAgICAgJ0FCT1JURUQnOiAnI0Y1OUUwQicsXG4gICAgICAnUVVFVUVEJzogJyMzQjgyRjYnLFxuICAgICAgJ05PVF9FWEVDVVRFRCc6ICcjNkI3MjgwJyxcbiAgICAgICdTVE9QUEVEJzogJyM2QjcyODAnXG4gICAgfTtcbiAgICByZXR1cm4gY29sb3JzW3RoaXMuc2VsZWN0ZWRSdW5CLnJlc3VsdF0gfHwgJyM2QjcyODAnO1xuICB9XG5cbiAgZ2V0IHJ1bkFTdGF0dXNCb3JkZXJDb2xvcigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFJ1bkEpIHJldHVybiAnI0YzRjRGNic7XG4gICAgY29uc3QgY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ1NVQ0NFU1MnOiAnI0NGRjJFNScsXG4gICAgICAnRkFJTFVSRSc6ICcjRkNEOUQ5JyxcbiAgICAgICdBQk9SVEVEJzogJyNGRUYzQzcnLFxuICAgICAgJ1FVRVVFRCc6ICcjREJFQUZFJyxcbiAgICAgICdOT1RfRVhFQ1VURUQnOiAnI0YzRjRGNicsXG4gICAgICAnU1RPUFBFRCc6ICcjRjNGNEY2J1xuICAgIH07XG4gICAgcmV0dXJuIGNvbG9yc1t0aGlzLnNlbGVjdGVkUnVuQS5yZXN1bHRdIHx8ICcjRjNGNEY2JztcbiAgfVxuXG4gIGdldCBydW5CU3RhdHVzQm9yZGVyQ29sb3IoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSdW5CKSByZXR1cm4gJyNGM0Y0RjYnO1xuICAgIGNvbnN0IGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdTVUNDRVNTJzogJyNDRkYyRTUnLFxuICAgICAgJ0ZBSUxVUkUnOiAnI0ZDRDlEOScsXG4gICAgICAnQUJPUlRFRCc6ICcjRkVGM0M3JyxcbiAgICAgICdRVUVVRUQnOiAnI0RCRUFGRScsXG4gICAgICAnTk9UX0VYRUNVVEVEJzogJyNGM0Y0RjYnLFxuICAgICAgJ1NUT1BQRUQnOiAnI0YzRjRGNidcbiAgICB9O1xuICAgIHJldHVybiBjb2xvcnNbdGhpcy5zZWxlY3RlZFJ1bkIucmVzdWx0XSB8fCAnI0YzRjRGNic7XG4gIH1cblxuICBnZXQgcnVuQVN0YXR1c0JnQ29sb3IoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSdW5BKSByZXR1cm4gJyNGM0Y0RjYnO1xuICAgIGNvbnN0IGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdTVUNDRVNTJzogJyMwREJEN0QxQScsXG4gICAgICAnRkFJTFVSRSc6ICcjRUUzRjNGMUEnLFxuICAgICAgJ0FCT1JURUQnOiAnI0ZFRjNDNycsXG4gICAgICAnUVVFVUVEJzogJyNEQkVBRkUnLFxuICAgICAgJ05PVF9FWEVDVVRFRCc6ICcjRjNGNEY2JyxcbiAgICAgICdTVE9QUEVEJzogJyNGM0Y0RjYnXG4gICAgfTtcbiAgICByZXR1cm4gY29sb3JzW3RoaXMuc2VsZWN0ZWRSdW5BLnJlc3VsdF0gfHwgJyNGM0Y0RjYnO1xuICB9XG5cbiAgZ2V0IHJ1bkJTdGF0dXNCZ0NvbG9yKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUnVuQikgcmV0dXJuICcjRjNGNEY2JztcbiAgICBjb25zdCBjb2xvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnU1VDQ0VTUyc6ICcjMERCRDdEMUEnLFxuICAgICAgJ0ZBSUxVUkUnOiAnI0VFM0YzRjFBJyxcbiAgICAgICdBQk9SVEVEJzogJyNGRUYzQzcnLFxuICAgICAgJ1FVRVVFRCc6ICcjREJFQUZFJyxcbiAgICAgICdOT1RfRVhFQ1VURUQnOiAnI0YzRjRGNicsXG4gICAgICAnU1RPUFBFRCc6ICcjRjNGNEY2J1xuICAgIH07XG4gICAgcmV0dXJuIGNvbG9yc1t0aGlzLnNlbGVjdGVkUnVuQi5yZXN1bHRdIHx8ICcjRjNGNEY2JztcbiAgfVxuXG4gIGZvcm1hdFRpbWUodGltZXN0YW1wOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0J1xuICAgIH0pO1xuICB9XG5cbiAgZm9ybWF0RHVyYXRpb25TdHJpbmcobWlsbGlzZWNvbmRzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdER1cmF0aW9uKG1pbGxpc2Vjb25kcyk7XG4gIH1cblxuICBnZXQgc2hvd0NvbXBhcmlzb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuY29tcGFyaXNvbkRhdGEgJiYgdGhpcy5jb21wYXJpc29uU3VtbWFyeSk7XG4gIH1cblxuICBnZXQgcnVuQVN0YXR1c0xhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUnVuQSkgcmV0dXJuICcnO1xuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdTVUNDRVNTJzogJ1Bhc3NlZCcsXG4gICAgICAnRkFJTFVSRSc6ICdGYWlsZWQnLFxuICAgICAgJ0FCT1JURUQnOiAnQWJvcnRlZCcsXG4gICAgICAnUVVFVUVEJzogJ1F1ZXVlZCcsXG4gICAgICAnTk9UX0VYRUNVVEVEJzogJ05vdCBFeGVjdXRlZCcsXG4gICAgICAnU1RPUFBFRCc6ICdTdG9wcGVkJ1xuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1t0aGlzLnNlbGVjdGVkUnVuQS5yZXN1bHRdIHx8IHRoaXMuc2VsZWN0ZWRSdW5BLnJlc3VsdDtcbiAgfVxuXG4gIGdldCBydW5CU3RhdHVzTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSdW5CKSByZXR1cm4gJyc7XG4gICAgY29uc3QgbGFiZWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ1NVQ0NFU1MnOiAnUGFzc2VkJyxcbiAgICAgICdGQUlMVVJFJzogJ0ZhaWxlZCcsXG4gICAgICAnQUJPUlRFRCc6ICdBYm9ydGVkJyxcbiAgICAgICdRVUVVRUQnOiAnUXVldWVkJyxcbiAgICAgICdOT1RfRVhFQ1VURUQnOiAnTm90IEV4ZWN1dGVkJyxcbiAgICAgICdTVE9QUEVEJzogJ1N0b3BwZWQnXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW3RoaXMuc2VsZWN0ZWRSdW5CLnJlc3VsdF0gfHwgdGhpcy5zZWxlY3RlZFJ1bkIucmVzdWx0O1xuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0zIHNtOmNxYS1nYXAtNCBjcWEtcHktMyBzbTpjcWEtcHktNCBjcWEtcHgtNCBzbTpjcWEtcHgtNlwiIHN0eWxlPVwiYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFNEU0RTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zIGNxYS1tYi0xXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTFweF0gY3FhLXRleHQtWyM2QjcyODBdXCI+U3RhdHVzIGxlZ2VuZDo8L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICAgICAgICA8IS0tIFBhc3NlZCAtLT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNy45OTk5OCAxNC42NjYzQzExLjY4MTkgMTQuNjY2MyAxNC42NjY2IDExLjY4MTYgMTQuNjY2NiA3Ljk5OTY3QzE0LjY2NjYgNC4zMTc3OCAxMS42ODE5IDEuMzMzMDEgNy45OTk5OCAxLjMzMzAxQzQuMzE4MDggMS4zMzMwMSAxLjMzMzMxIDQuMzE3NzggMS4zMzMzMSA3Ljk5OTY3QzEuMzMzMzEgMTEuNjgxNiA0LjMxODA4IDE0LjY2NjMgNy45OTk5OCAxNC42NjYzWlwiIHN0cm9rZT1cIiMwQjlENjhcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiA4LjAwMDMzTDcuMzMzMzMgOS4zMzM2NkwxMCA2LjY2Njk5XCIgc3Ryb2tlPVwiIzBCOUQ2OFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMXB4XSBjcWEtdGV4dC1bIzBCOUQ2OF0gY3FhLWZvbnQtbWVkaXVtXCI+UGFzc2VkPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPCEtLSBGYWlsZWQgLS0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiPlxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguMDAwMDQgMTQuNjY3M0MxMS42ODE5IDE0LjY2NzMgMTQuNjY2NyAxMS42ODI1IDE0LjY2NjcgOC4wMDA2NUMxNC42NjY3IDQuMzE4NzUgMTEuNjgxOSAxLjMzMzk4IDguMDAwMDQgMS4zMzM5OEM0LjMxODE0IDEuMzMzOTggMS4zMzMzNyA0LjMxODc1IDEuMzMzMzcgOC4wMDA2NUMxLjMzMzM3IDExLjY4MjUgNC4zMTgxNCAxNC42NjczIDguMDAwMDQgMTQuNjY3M1pcIiBzdHJva2U9XCIjRkIyQzM2XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDZMNiAxMFwiIHN0cm9rZT1cIiNGQjJDMzZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiA2TDEwIDEwXCIgc3Ryb2tlPVwiI0ZCMkMzNlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMXB4XSBjcWEtdGV4dC1bI0ZCMkMzNl0gY3FhLWZvbnQtbWVkaXVtXCI+RmFpbGVkPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPCEtLSBBYm9ydGVkIC0tPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjAwMDA0IDE0LjY2NzNDMTEuNjgxOSAxNC42NjczIDE0LjY2NjcgMTEuNjgyNSAxNC42NjY3IDguMDAwNjVDMTQuNjY2NyA0LjMxODc1IDExLjY4MTkgMS4zMzM5OCA4LjAwMDA0IDEuMzMzOThDNC4zMTgxNCAxLjMzMzk4IDEuMzMzMzcgNC4zMTg3NSAxLjMzMzM3IDguMDAwNjVDMS4zMzMzNyAxMS42ODI1IDQuMzE4MTQgMTQuNjY3MyA4LjAwMDA0IDE0LjY2NzNaXCIgc3Ryb2tlPVwiI0Y1OUUwQlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDhIMTBcIiBzdHJva2U9XCIjRjU5RTBCXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS10ZXh0LVsjRjU5RTBCXSBjcWEtZm9udC1tZWRpdW1cIj5BYm9ydGVkPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWdyaWQgY3FhLWdyaWQtY29scy0xIG1kOmNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTQgbWQ6Y3FhLWdhcC0xNiBjcWEtcmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xLjVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyM2MzYzNjNdXCI+UnVuIEEgKEJhc2UpPC9zcGFuPlxuICAgICAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFxuICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIiBcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cInJ1bkFTZWxlY3RDb25maWdcIlxuICAgICAgICAgICAgICAgIChzZWFyY2hDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGxvYWRNb3JlKT1cIm9uTG9hZE1vcmUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWhpZGRlbiBtZDpjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgdG9wOiAzMHB4O1wiPlxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQuMTY2NjkgMTBIMTUuODMzNFwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDQuMTY2OTlMMTUuODMzMyAxMC4wMDAzTDEwIDE1LjgzMzdcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzYzNjM2M11cIj5SdW4gQiAoQ29tcGFyZSk8L3NwYW4+XG4gICAgICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiIFxuICAgICAgICAgICAgICAgIFtjb25maWddPVwicnVuQlNlbGVjdENvbmZpZ1wiXG4gICAgICAgICAgICAgICAgKHNlYXJjaENoYW5nZSk9XCJvblNlYXJjaENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobG9hZE1vcmUpPVwib25Mb2FkTW9yZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRSdW5BIHx8IHNlbGVjdGVkUnVuQlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMSBtZDpjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctd2hpdGUgY3FhLXJvdW5kZWQtbGcgY3FhLXAtM1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJzZWxlY3RlZFJ1bkEgPyBydW5BU3RhdHVzQmdDb2xvciA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJzZWxlY3RlZFJ1bkEgPyBydW5BU3RhdHVzQm9yZGVyQ29sb3IgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkJzogc2VsZWN0ZWRSdW5BfVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFJ1bkFcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RhcnQgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEIwQjBCXVwiPlJ1biAje3sgc2VsZWN0ZWRSdW5BLmlkIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXB4LTIgY3FhLXB5LTAuNSBjcWEtcm91bmRlZC1mdWxsIGNxYS10ZXh0LVsxMHB4XSBjcWEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJydW5BU3RhdHVzQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiJyNGRkZGRkYnXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgcnVuQVN0YXR1c0xhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzYzNjM2M11cIj5UaW1lOiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLWZvbnQtbWVkaXVtXCI+e3sgZm9ybWF0VGltZShzZWxlY3RlZFJ1bkEuc3RhcnRUaW1lKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2MzYzNjNdXCI+RHVyYXRpb246IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEIwQjBCXSBjcWEtZm9udC1tZWRpdW1cIj57eyBmb3JtYXREdXJhdGlvblN0cmluZyhzZWxlY3RlZFJ1bkEuZHVyYXRpb24pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzYzNjM2M11cIj5FbnY6IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEIwQjBCXSBjcWEtZm9udC1tZWRpdW1cIj57eyBzZWxlY3RlZFJ1bkEuZW52aXJvbm1lbnQgfHwgJ+KAlCcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIiAqbmdJZj1cInNlbGVjdGVkUnVuQS5kZXZpY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjNjM2MzYzXVwiPnt7IHNlbGVjdGVkUnVuQT8ucGxhdGZvcm0gPT09ICdkZXNrdG9wJyA/ICdCcm93c2VyJyA6ICdEZXZpY2UnIH19OiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLWZvbnQtbWVkaXVtXCI+e3sgc2VsZWN0ZWRSdW5BLmRldmljZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWJnLXdoaXRlIGNxYS1yb3VuZGVkLWxnIGNxYS1wLTNcIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwic2VsZWN0ZWRSdW5CID8gcnVuQlN0YXR1c0JnQ29sb3IgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5ib3JkZXItY29sb3JdPVwic2VsZWN0ZWRSdW5CID8gcnVuQlN0YXR1c0JvcmRlckNvbG9yIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2NxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCc6IHNlbGVjdGVkUnVuQn1cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRSdW5CXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0YXJ0IGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLW1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzBCMEIwQl1cIj5SdW4gI3t7IHNlbGVjdGVkUnVuQi5pZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1weC0yIGNxYS1weS0wLjUgY3FhLXJvdW5kZWQtZnVsbCBjcWEtdGV4dC1bMTBweF0gY3FhLWZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwicnVuQlN0YXR1c0NvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIicjRkZGRkZGJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJ1bkJTdGF0dXNMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2MzYzNjNdXCI+VGltZTogPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQjBCMEJdIGNxYS1mb250LW1lZGl1bVwiPnt7IGZvcm1hdFRpbWUoc2VsZWN0ZWRSdW5CLnN0YXJ0VGltZSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjNjM2MzYzXVwiPkR1cmF0aW9uOiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLWZvbnQtbWVkaXVtXCI+e3sgZm9ybWF0RHVyYXRpb25TdHJpbmcoc2VsZWN0ZWRSdW5CLmR1cmF0aW9uKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2MzYzNjNdXCI+RW52OiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLWZvbnQtbWVkaXVtXCI+e3sgc2VsZWN0ZWRSdW5CLmVudmlyb25tZW50IHx8ICfigJQnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCIgKm5nSWY9XCJzZWxlY3RlZFJ1bkIuZGV2aWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzYzNjM2M11cIj57eyBzZWxlY3RlZFJ1bkI/LnBsYXRmb3JtID09PSAnZGVza3RvcCcgPyAnQnJvd3NlcicgOiAnRGV2aWNlJyB9fTogPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQjBCMEJdIGNxYS1mb250LW1lZGl1bVwiPnt7IHNlbGVjdGVkUnVuQi5kZXZpY2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtZmxleCBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxjcWEtYnV0dG9uIFxuICAgICAgICAgICAgICB2YXJpYW50PVwiZmlsbGVkXCIgXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuQ29tcGFyZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNvbXBhcmVDbGljaygpXCI+XG4gICAgICAgICAgICAgIHt7IGlzQ29tcGFyaW5nUnVucyA/ICdDb21wYXJpbmcuLi4nIDogJ0NvbXBhcmUgUnVucycgfX1cbiAgICAgICAgICAgIDwvY3FhLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJzaG93Q29tcGFyaXNvbiAmJiBjb21wYXJpc29uU3VtbWFyeSAmJiBzdGVwQ29tcGFyaXNvbnMgJiYgc3RlcENvbXBhcmlzb25zLmxlbmd0aCA+IDBcIiBcbiAgICAgICAgIGNsYXNzPVwiY3FhLWJnLXdoaXRlIGNxYS1weS0zIHNtOmNxYS1weS00IGNxYS1weC0zIHNtOmNxYS1weC02IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zIHNtOmNxYS1nYXAtNFwiXG4gICAgICAgICBzdHlsZT1cImZsZXgtc2hyaW5rOiAwO1wiPlxuICAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLXRleHQtWyM2MzYzNjNdXCI+U3VtbWFyeTo8L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS13LVsxNHB4XSBjcWEtaC1bMTRweF0gY3FhLXRleHQtc21cIj5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuOTE2NjkgNS4yNUgxMS4wODM0XCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMi45MTY2OSA4Ljc1SDExLjA4MzRcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LXNlbWlib2xkIGxlYWRpbmctbm9ybWFsIGNxYS10ZXh0LVsjMEIwQjBCXVwiPnt7IGNvbXBhcmlzb25TdW1tYXJ5LnVuY2hhbmdlZCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzZCNzI4MF1cIj5VbmNoYW5nZWQ8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMS41XCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTAgY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtdGV4dC1zbVwiPlxuICAgICAgICAgICAgPHN2ZyBmaWxsPVwiIzAwMDAwMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBpZD1cInVwZGF0ZS1hbHQtMlwiIGRhdGEtbmFtZT1cIkZsYXQgQ29sb3JcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpY29uIGZsYXQtY29sb3JcIj5cbiAgICAgICAgICAgICAgPGcgaWQ9XCJTVkdSZXBvX2JnQ2FycmllclwiIHN0cm9rZS13aWR0aD1cIjBcIj48L2c+XG4gICAgICAgICAgICAgIDxnIGlkPVwiU1ZHUmVwb190cmFjZXJDYXJyaWVyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9nPlxuICAgICAgICAgICAgICA8ZyBpZD1cIlNWR1JlcG9faWNvbkNhcnJpZXJcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBpZD1cInByaW1hcnlcIiBkPVwiTTIxLjcxLDEwLjI5YTEsMSwwLDAsMC0xLjQyLDBMMTksMTEuNTlWN2EzLDMsMCwwLDAtMy0zSDZBMSwxLDAsMCwwLDYsNkgxNmExLDEsMCwwLDEsMSwxdjQuNTlsLTEuMjktMS4zYTEsMSwwLDAsMC0xLjQyLDEuNDJsMywzYTEsMSwwLDAsMCwxLjQyLDBsMy0zQTEsMSwwLDAsMCwyMS43MSwxMC4yOVpcIiBmaWxsPVwiIzE1NURGQ1wiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICA8cGF0aCBpZD1cInNlY29uZGFyeVwiIGQ9XCJNMTgsMThIOGExLDEsMCwwLDEtMS0xVjEyLjQxbDEuMjksMS4zYTEsMSwwLDAsMCwxLjQyLDAsMSwxLDAsMCwwLDAtMS40MmwtMy0zYTEsMSwwLDAsMC0xLjQyLDBsLTMsM2ExLDEsMCwwLDAsMS40MiwxLjQyTDUsMTIuNDFWMTdhMywzLDAsMCwwLDMsM0gxOGExLDEsMCwwLDAsMC0yWlwiIGZpbGw9XCIjMTU1REZDXCI+PC9wYXRoPlxuICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub3JtYWwgY3FhLXRleHQtWyMxNTVERkNdXCI+e3sgY29tcGFyaXNvblN1bW1hcnkuc3RhdHVzQ2hhbmdlZCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzZCNzI4MF1cIj5TdGF0dXMgQ2hhbmdlZDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjVcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMCBjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS10ZXh0LXNtXCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjkxNjY5IDdIMTEuMDgzNFwiIHN0cm9rZT1cIiMwMEM5NTBcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTcgMi45MTY5OVYxMS4wODM3XCIgc3Ryb2tlPVwiIzAwQzk1MFwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtZm9udC1zZW1pYm9sZCBsZWFkaW5nLW5vcm1hbCBjcWEtdGV4dC1bIzAwQTYzRV1cIj57eyBjb21wYXJpc29uU3VtbWFyeS5hZGRlZCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzZCNzI4MF1cIj5BZGRlZDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjVcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMCBjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS10ZXh0LXNtXCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjkxNjY5IDdIMTEuMDgzNFwiIHN0cm9rZT1cIiNGQjJDMzZcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub3JtYWwgY3FhLXRleHQtWyNGQjJDMzZdXCI+e3sgY29tcGFyaXNvblN1bW1hcnkucmVtb3ZlZCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzZCNzI4MF1cIj5SZW1vdmVkPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFRpbWluZyBDaGFuZ2VkIHN1bW1hcnkgcmVtb3ZlZCAtLT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1sZ1wiIHN0eWxlPVwib3ZlcmZsb3cteTogYXV0bzsgbWF4LWhlaWdodDogY2FsYyg5MGR2aCAtIDQ2OHB4KTsgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1wiPlxuICAgICAgPGNxYS10YWJsZS10ZW1wbGF0ZSBzdHlsZT1cImhlaWdodDogMTAwJTsgZGlzcGxheTogYmxvY2s7XCJcbiAgICAgICAgW2NvbHVtbnNdPVwidGFibGVDb2x1bW5zXCJcbiAgICAgICAgW2RhdGFdPVwic3RlcENvbXBhcmlzb25zXCJcbiAgICAgICAgW3BhZ2VJbmRleF09XCJwYWdlSW5kZXhcIlxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICBbaXNFbXB0eVN0YXRlXT1cImlzRW1wdHlTdGF0ZVwiXG4gICAgICAgIFtlbXB0eVN0YXRlQ29uZmlnXT1cImVtcHR5U3RhdGVDb25maWdcIlxuICAgICAgICBbaXNUYWJsZURhdGFMb2FkaW5nXT1cImlzQ29tcGFyaW5nUnVuc1wiXG4gICAgICAgIFtzaG93U2VhcmNoQmFyXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dGaWx0ZXJCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICBbc2hvd1NldHRpbmdzQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dBdXRvUmVmcmVzaEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgIFtzaG93T3RoZXJCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICBbc2hvd0ZpbHRlclBhbmVsXT1cImZhbHNlXCJcbiAgICAgICAgW3NlcnZlclNpZGVQYWdpbmF0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLXRhYmxlLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|