vcomply-workflow-engine 6.1.12 → 6.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +13 -9
- package/esm2022/lib/sharedComponents/floating-bar/floating-bar.component.mjs +5 -4
- package/esm2022/lib/sharedComponents/floating-bar/floating-bar.module.mjs +6 -5
- package/esm2022/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +9 -11
- package/esm2022/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.mjs +5 -4
- package/esm2022/lib/workflow/shared/workflow-pipes/get-user-details.pipe.mjs +2 -2
- package/esm2022/lib/workflow/shared/workflow-pipes/user-short-name.pipe.mjs +33 -0
- package/esm2022/lib/workflow/shared/workflow-pipes/workflow-pipes.module.mjs +13 -8
- package/fesm2022/vcomply-workflow-engine.mjs +101 -64
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/floating-bar/floating-bar.module.d.ts +4 -3
- package/lib/workflow/shared/workflow-pipes/user-short-name.pipe.d.ts +7 -0
- package/lib/workflow/shared/workflow-pipes/workflow-pipes.module.d.ts +6 -5
- package/package.json +1 -1
|
@@ -207,17 +207,15 @@ export class LinkResponsibilityListComponent {
|
|
|
207
207
|
reportName: item?.reportName,
|
|
208
208
|
};
|
|
209
209
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
result[responsibilityId]?.responsibilityCenters?.push(responsibilityCenter);
|
|
218
|
-
}
|
|
219
|
-
this.getBridgeIds(result);
|
|
210
|
+
// Add assigneeId if not already present
|
|
211
|
+
if (!result[responsibilityId]?.assigneeIds?.includes(assigneeId)) {
|
|
212
|
+
result[responsibilityId]?.assigneeIds?.push(assigneeId);
|
|
213
|
+
}
|
|
214
|
+
// Add responsibilityCenter if not already present
|
|
215
|
+
if (!result[responsibilityId]?.responsibilityCenters?.includes(responsibilityCenter)) {
|
|
216
|
+
result[responsibilityId]?.responsibilityCenters?.push(responsibilityCenter);
|
|
220
217
|
}
|
|
218
|
+
this.getBridgeIds(result);
|
|
221
219
|
}
|
|
222
220
|
getBridgeIds(result) {
|
|
223
221
|
for (const key in result) {
|
|
@@ -387,4 +385,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
387
385
|
}], selectedResponsibility: [{
|
|
388
386
|
type: Output
|
|
389
387
|
}] } });
|
|
390
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1yZXNwb25zaWJpbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2xpbmstcmVzcG9uc2liaWxpdHkvbGluay1yZXNwb25zaWJpbGl0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2xpbmstcmVzcG9uc2liaWxpdHkvbGluay1yZXNwb25zaWJpbGl0eS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFHOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVF4RSxNQUFNLE9BQU8sK0JBQStCO0lBcUYxQyxZQUNVLGdCQUFrQyxFQUNsQyx1QkFBZ0Q7UUFEaEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBcEZqRCxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLGlDQUE0QixHQUFRLEVBQUUsQ0FBQztRQUN2QyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RCxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUVwQyxjQUFTLEdBQVks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QixFQUFFLENBQUMsSUFBSSxDQUFDO29CQUM3QixlQUFlLEVBQUU7d0JBQ2Y7NEJBQ0UsUUFBUSxFQUFFLFVBQVU7NEJBQ3BCLG9CQUFvQixFQUFFLElBQUk7NEJBQzFCLFdBQVcsRUFBRSxJQUFJOzRCQUNqQixXQUFXLEVBQUUsSUFBSTs0QkFDakIsbUJBQW1CLEVBQUUsSUFBSTs0QkFDekIsbUJBQW1CLEVBQUUsSUFBSTt5QkFDMUI7cUJBQ0Y7aUJBQ0YsQ0FBQztnQkFDRixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDOytHQXRiVSwrQkFBK0I7bUdBQS9CLCtCQUErQixxWENiNUMsMDVjQXNXQTs7NEZEelZhLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSw4QkFBOEI7NklBSy9CLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBMSU5LX1JFU1BPTlNJQklMSVRZX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9saW5rLXJlc3BvbnNpYmlsaXR5LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5L2ZyZXF1ZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBsaWFuY2VDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvY29tbW9uLXdvcmtmbG93LXNlcnZpY2VzL2NvbXBsaWFuY2UtY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVZBVEFSX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uL3VpLWtpdC9hdmF0YXIvYXZhdGFyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eSB9IGZyb20gJy4vbGluay1yZXNwb25zaWJpbGl0eS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbGluay1yZXNwb25zaWJpbGl0eS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstcmVzcG9uc2liaWxpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rLXJlc3BvbnNpYmlsaXR5LmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExpbmtSZXNwb25zaWJpbGl0eUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OiBhbnk7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQElucHV0KCkgcmVzcElkS2V5OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlczogYW55ID0gW107XG4gIEBJbnB1dCgpIHJhZGlvU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNsb3NlQnV0dG9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBBVkFUQVJfQ09OU1RBTlRTID0gQVZBVEFSX0NPTlNUQU5UUztcblxuICBhbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcmVzcG9uc2liaWxpdHlMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNWYWxpZE9iajogYm9vbGVhbiA9IGZhbHNlO1xuICBpc09uQ29tcGxldGlvblJjOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVzcG9uc2liaWxpdGllc0RhdGE6IGFueSA9IHt9O1xuICByZXNwb25zaWJpbGl0eVRhYkNvdW50OiBhbnkgPSB7XG4gICAgcmVndWxhdGlvbkNvdW50OiAwLFxuICAgIHN0YW5kYXJkQ291bnQ6IDAsXG4gICAgaW50ZXJuYWxDb3VudDogMCxcbiAgICBvdGhlcnNDb3VudDogMCxcbiAgfTtcbiAgdHlwZVRvQ291bnRQcm9wZXJ0eTogYW55ID0ge1xuICAgIDA6ICdvdGhlcnNDb3VudCcsXG4gICAgMTogJ3JlZ3VsYXRpb25Db3VudCcsXG4gICAgMjogJ3N0YW5kYXJkQ291bnQnLFxuICAgIDM6ICdpbnRlcm5hbENvdW50JyxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdHlQYXlsb2FkID0ge1xuICAgIHR5cGU6ICdhbGwnLFxuICAgIHBhZ2luYXRpb25UeXBlOiAnbGFyZ2UnLFxuICAgIGE6ICcnLFxuICAgIHNlYXJjaFRleHQ6ICcnLFxuICAgIGZpbHRlckRhdGE6IHtcbiAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgcmlza0lkczogW10sXG4gICAgICByZXZpZXdlcklkOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBbXSxcbiAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgIGVudHJ1c3RlZFRvOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgY29tcGxpYW5jZVR5cGU6IFsxXSxcbiAgICB9LFxuICAgIHBhZ2VObzogMSxcbiAgICBzb3J0T2JqOiB7XG4gICAgICBzb3J0Qnk6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgfSxcbiAgICBwYWdlTmFtZTogJ292ZXJ2aWV3JyxcbiAgfTtcblxuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQ6IGFueVtdID0gW107XG4gIHJlc3BvbnNpYmlsaXR5VGFiczogYW55W10gPSBbXG4gICAgeyBuYW1lOiAnUkVHVUxBVElPTlMnLCB0eXBlOiAxIH0sXG4gICAgeyBuYW1lOiAnU1RBTkRBUkRTJywgdHlwZTogMiB9LFxuICAgIHsgbmFtZTogJ0lOVEVSTkFMIENPTlRST0xTJywgdHlwZTogMyB9LFxuICAgIHsgbmFtZTogJ09USEVSUycsIHR5cGU6IDAgfSxcbiAgXTtcblxuICBjdXJyZW50VGFiOiBudW1iZXIgPSAxO1xuICByZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICByZWd1bGF0aW9uQ291bnQ6IG51bWJlciA9IDA7XG4gIHN0YW5kYXJkc0NvdW50OiBudW1iZXIgPSAwO1xuICBpbnRlcm5hbHNDb3VudDogbnVtYmVyID0gMDtcbiAgb3RoZXJzQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgcmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcbiAgbm9EYXRhTWVzc2FnZTogc3RyaW5nID0gTElOS19SRVNQT05TSUJJTElUWV9DT05TVEFOVFMuTk9fREFUQV9NRVNTQUdFLk5PX0RBVEE7XG4gIG5vRGF0YUltYWdlUGF0aDogc3RyaW5nID0gTElOS19SRVNQT05TSUJJTElUWV9DT05TVEFOVFMuTk9fREFUQS5JTUFHRTtcbiAgZmxvYXRlckJhclRleHQ6IGFueSA9IExJTktfUkVTUE9OU0lCSUxJVFlfQ09OU1RBTlRTLkZMT0FUSU5HX0JBUjtcblxuICByZXNwb25zaWJpbGl0eUxpc3Q6IGFueTtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBjbG9zZTogYW55O1xuICB1c2VyTGlzdDogYW55W10gPSBbXTtcbiAgcmNMaXN0OiBhbnlbXSA9IFtdO1xuICBhbGxSY0xpc3Q6IGFueVtdID0gW107XG4gIHZpZXdSZXNwb25zaWJpbGl0eUlkOiBhbnk7XG4gIHZpZXdSZXNwb25zaWJpbGl0eURhdGE6IGFueSA9IHt9O1xuICByZXNwb25zaWJpbGl0eUZsb2F0ZXJCYXJEYXRhOiBhbnkgPSBbXTtcblxuICBpc1Jlc3BvbnNpYmlsaXR5U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21wbGlhbmNlQ29tbW9uU2VydmljZTogQ29tcGxpYW5jZUNvbW1vblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlWYWx1ZXMoKTtcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5TGlzdCgpO1xuICAgIHRoaXMuZ2V0UmNMaXN0KCk7XG4gIH1cblxuICBiYWNrKCkge1xuICAgIHRoaXMuY2xvc2VCdXR0b24uZW1pdCgpO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdHlWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5RmxvYXRlckJhckRhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMubWFwKFxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtPy5yZXNwb25zaWJpbGl0eUlkXG4gICAgICApO1xuICAgICAgdGhpcy5wb3B1bGF0ZVJlc3BvbnNpYmlsaXR5VmFsdWVzKCk7XG4gICAgfVxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIHBvcHVsYXRlUmVzcG9uc2liaWxpdHlWYWx1ZXMoKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcykpIHJldHVybjtcblxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9XG4gICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMuZmxhdE1hcChcbiAgICAgICAgKHtcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUlkLFxuICAgICAgICAgIHJlcG9ydE5hbWUsXG4gICAgICAgICAgYXNzaWduZWVJZHMgPSBbXSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcnMgPSBbXSxcbiAgICAgICAgICBhc3NpZ25lZUJyaWRnZUlkID0gW10sXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJCcmlkZ2VJZCA9IFtdLFxuICAgICAgICB9KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkoYXNzaWduZWVJZHMpIHx8XG4gICAgICAgICAgICAhQXJyYXkuaXNBcnJheShyZXNwb25zaWJpbGl0eUNlbnRlcnMpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgcmV0dXJuIGFzc2lnbmVlSWRzLmZsYXRNYXAoKGFzc2lnbmVlSWQpID0+XG4gICAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcnMubWFwKChyZXNwb25zaWJpbGl0eUNlbnRlcikgPT4gKHtcbiAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHlJZCxcbiAgICAgICAgICAgICAgYXNzaWduZWVJZCxcbiAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXIsXG4gICAgICAgICAgICAgIHJlcG9ydE5hbWUsXG4gICAgICAgICAgICAgIGFzc2lnbmVlQnJpZGdlSWQsXG4gICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyQnJpZGdlSWQsXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0UmNMaXN0KCkge1xuICAgIHRoaXMuY29tcGxpYW5jZUNvbW1vblNlcnZpY2UuZ2V0UmNMaXN0SW5mbygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWxsUmNMaXN0ID0gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdHlMaXN0KHBhZ2VObzogbnVtYmVyID0gMSkge1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuZnJlcXVlbmN5U2VydmljZVxuICAgICAgPy5nZXRBbGxSZXNwb25zaWJpbGl0aWVzKHBhZ2VObywgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlcz8uZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YSA9IHRoaXMubWFwUmVzcG9uc2liaWxpdGllc0RhdGEocmVzPy5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXM/LmRhdGE/LnVzZXJzO1xuICAgICAgICAgICAgdGhpcy5yY0xpc3QgPSByZXM/LmRhdGE/LnJlc3BvbnNpYmlsaXR5Q2VudGVycztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBSZXNwb25zaWJpbGl0aWVzRGF0YShyZXM6IGFueSkge1xuICAgIGNvbnN0IHBhZ2VTaXplID0gMTA7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSByZXM/LnBhZ2UgfHwgMTtcbiAgICBjb25zdCB0b3RhbEl0ZW1zID0gcmVzPy50b3RhbCB8fCAwO1xuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemUgKyAxO1xuICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplIC0gMSwgdG90YWxJdGVtcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogcmVzPy5yZXNwb25zaWJpbGl0aWVzLFxuICAgICAgdG90YWxfcmVzcG9uc2liaWxpdGllczogdG90YWxJdGVtcyxcbiAgICAgIHRvdGFsX3BhZ2VzOiBNYXRoLmNlaWwodG90YWxJdGVtcyAvIHBhZ2VTaXplKSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U6IGN1cnJlbnRQYWdlLFxuICAgICAgcmVzcG9uc2liaWxpdGllc19mcm9tOiBzdGFydEluZGV4LFxuICAgICAgcmVzcG9uc2liaWxpdGllc190bzogZW5kSW5kZXgsXG4gICAgfTtcbiAgfVxuXG4gIHJlc3BvbnNpYmlsaXR5UGFnZUNoYW5nZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICBpZiAocGFnZU51bWJlciAhPT0gdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YS5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlKSB7XG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2UgPSBwYWdlTnVtYmVyO1xuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gcGFnZU51bWJlcjtcbiAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KHBhZ2VOdW1iZXIpO1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZUl0ZW0oaXRlbTogYW55KSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlJZC5maW5kSW5kZXgoXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGl0ZW1bdGhpcy5yZXNwSWRLZXldXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlJZC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9XG4gICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMuZmlsdGVyKFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZVt0aGlzLnJlc3BJZEtleV0gIT09IGl0ZW1bdGhpcy5yZXNwSWRLZXldXG4gICAgICApO1xuICAgIHRoaXMuaXNWYWxpZE9iaiA9IGZhbHNlO1xuICB9XG5cbiAgc2F2ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5jbG9zZUJ1dHRvbi5lbWl0KCk7XG4gICAgdGhpcy5maWx0ZXJVbmlxdWVSZXNwb25zaWJpbGl0eVZhbHVlcygpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eS5lbWl0KHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyk7XG4gIH1cblxuICBmaWx0ZXJVbmlxdWVSZXNwb25zaWJpbGl0eVZhbHVlcygpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ubGVuZ3RoKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgcmVzdWx0OiBSZXNwb25zaWJpbGl0eSA9IHt9O1xuXG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuXG4gICAgICB0aGlzLmluc2VydFVuaXF1ZVJlc3BvbnNpYmlsaXR5KHJlc3VsdCwgaXRlbSk7XG4gICAgfSk7XG4gICAgLy8gQ29udmVydCB0aGUgcmVzdWx0IG9iamVjdCBpbnRvIGFuIGFycmF5XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzID0gT2JqZWN0LnZhbHVlcyhyZXN1bHQpO1xuICB9XG5cbiAgaW5zZXJ0VW5pcXVlUmVzcG9uc2liaWxpdHkocmVzdWx0OiBSZXNwb25zaWJpbGl0eSwgaXRlbTogYW55KSB7XG4gICAgY29uc3QgeyByZXNwb25zaWJpbGl0eUlkLCBhc3NpZ25lZUlkLCByZXNwb25zaWJpbGl0eUNlbnRlciB9ID0gaXRlbTtcbiAgICBpZiAoIXJlc3VsdFtyZXNwb25zaWJpbGl0eUlkXSkge1xuICAgICAgcmVzdWx0W3Jlc3BvbnNpYmlsaXR5SWRdID0ge1xuICAgICAgICByZXNwb25zaWJpbGl0eUlkLFxuICAgICAgICBhc3NpZ25lZUlkczogW10sXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyczogW10sXG4gICAgICAgIGFzc2lnbmVlQnJpZGdlSWQ6IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlckJyaWRnZUlkOiBbXSxcbiAgICAgICAgcmVwb3J0TmFtZTogaXRlbT8ucmVwb3J0TmFtZSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFkZCBhc3NpZ25lZUlkIGlmIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgIGlmICghcmVzdWx0W3Jlc3BvbnNpYmlsaXR5SWRdPy5hc3NpZ25lZUlkcz8uaW5jbHVkZXMoYXNzaWduZWVJZCkpIHtcbiAgICAgICAgcmVzdWx0W3Jlc3BvbnNpYmlsaXR5SWRdPy5hc3NpZ25lZUlkcz8ucHVzaChhc3NpZ25lZUlkKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHJlc3BvbnNpYmlsaXR5Q2VudGVyIGlmIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgIGlmIChcbiAgICAgICAgIXJlc3VsdFtyZXNwb25zaWJpbGl0eUlkXT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzPy5pbmNsdWRlcyhcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlclxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmVzdWx0W3Jlc3BvbnNpYmlsaXR5SWRdPy5yZXNwb25zaWJpbGl0eUNlbnRlcnM/LnB1c2goXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0QnJpZGdlSWRzKHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QnJpZGdlSWRzKHJlc3VsdDogYW55KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcmVzdWx0KSB7XG4gICAgICBjb25zdCBpdGVtID0gcmVzdWx0W2tleV07XG4gICAgICBpdGVtLmFzc2lnbmVlSWRzLmZvckVhY2goKGFzc2lnbmVlSWQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBhc3NpZ25lZSA9IHRoaXMudXNlckxpc3QuZmluZChcbiAgICAgICAgICAodXNlcjogYW55KSA9PiB1c2VyPy5pZCA9PT0gYXNzaWduZWVJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoIWl0ZW0uYXNzaWduZWVCcmlkZ2VJZC5maW5kKChpZDogYW55KSA9PiBpZCA9PT0gYXNzaWduZWU/LnVpZCkpIHtcbiAgICAgICAgICBpdGVtLmFzc2lnbmVlQnJpZGdlSWQ/LnB1c2goYXNzaWduZWU/LnVpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaXRlbS5yZXNwb25zaWJpbGl0eUNlbnRlcnMuZm9yRWFjaCgocmVzcG9uc2liaWxpdHlDZW50ZXI6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCByYyA9IHRoaXMucmNMaXN0LmZpbmQoXG4gICAgICAgICAgKHJjOiBhbnkpID0+IHJjPy5pZCA9PT0gcmVzcG9uc2liaWxpdHlDZW50ZXJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVyQnJpZGdlSWQuZmluZCgoaWQ6IGFueSkgPT4gaWQgPT09IHJjPy5yY2lkKVxuICAgICAgICApIHtcbiAgICAgICAgICBpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVyQnJpZGdlSWQ/LnB1c2gocmM/LnJjaWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrVGFiQ2hhbmdlKHRhYjogYW55KSB7XG4gICAgdGhpcy5jdXJyZW50VGFiID0gdGFiPy50eXBlO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkLmZpbHRlckRhdGEuY29tcGxpYW5jZVR5cGUgPSBbdGhpcy5jdXJyZW50VGFiXTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkLnBhZ2VObyA9IHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5zZWFyY2hUZXh0ID0gdGhpcy5yZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gIH1cblxuICBzZWFyY2goKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuc2VhcmNoVGV4dCA9IHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0O1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gIH1cblxuICBzZXRSZXNwb25zaWJpbGl0aWVzQ291bnQoKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQpKTtcbiAgICBwYXlsb2FkLmZpbHRlckRhdGEuY29tcGxpYW5jZVR5cGUgPSBbMCwgMSwgMiwgM107XG4gICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlXG4gICAgICA/LmdldFJlc3BvbnNpYmlsaXRpZXNDb3VudChwYXlsb2FkKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eVRhYkNvdW50LnJlZ3VsYXRpb25Db3VudCA9IHJlcz8ucmVndWxhdGlvbl9jb3VudDtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eVRhYkNvdW50LnN0YW5kYXJkQ291bnQgPSByZXM/LnN0YW5kYXJkX2NvdW50O1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5VGFiQ291bnQuaW50ZXJuYWxDb3VudCA9IHJlcz8uaW50ZXJuYWxfY291bnQ7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlUYWJDb3VudC5vdGhlcnNDb3VudCA9IHJlcz8ub3RoZXJzX2NvdW50O1xuICAgICAgfSk7XG4gIH1cblxuICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSBhbGwgdGhlIEZlYXR1cmUgZmxhZyBiYXNlZCB2YXJpYWJsZXNcbiAgZmVhdHVyZUZsYWdJbml0aWFsaXphdGlvbigpIHtcbiAgICB0aGlzLmZlYXR1cmVGbGFnX29uX2NvbXBsZXRpb25fb2YgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9mcmVxdWVuY3lfb25fY29tcGxldGlvbl9vZidcbiAgICApO1xuICAgIHRoaXMuaXNPbkNvbXBsZXRpb25SYyA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX29uX2NvbXBsZXRpb25fcmMnXG4gICAgKTtcbiAgfVxuXG4gIHNlbGVjdFJlc3AocmVzcDogYW55LCBtb2RlOiBib29sZWFuKSB7XG4gICAgY29uc3QgY2hlY2tlZFJlc3AgPSB0aGlzLmdlbmVyYXRlUmVzcG9uc2liaWxpdHlJZChyZXNwKTtcbiAgICBpZiAoIWNoZWNrZWRSZXNwPy5sZW5ndGgpIHJldHVybjtcblxuICAgIGNoZWNrZWRSZXNwLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RzSW5kZXggPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+XG4gICAgICAgICAgZWxlLnJlc3BvbnNpYmlsaXR5SWQgPT09IGl0ZW0ucmVzcG9uc2liaWxpdHlJZCAmJlxuICAgICAgICAgIGVsZS5hc3NpZ25lZUlkID09PSBpdGVtLmFzc2lnbmVlSWQgJiZcbiAgICAgICAgICBlbGUucmVzcG9uc2liaWxpdHlDZW50ZXIgPT09IGl0ZW0ucmVzcG9uc2liaWxpdHlDZW50ZXJcbiAgICAgICk7XG4gICAgICBpZiAobW9kZSAmJiBleGlzdHNJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgLy8gQWRkIGlmIG5vdCBwcmVzZW50XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcy5wdXNoKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlIGlmIHByZXNlbnRcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzLnNwbGljZShleGlzdHNJbmRleCwgMSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlJZCA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcy5tYXAoXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS5yZXNwb25zaWJpbGl0eUlkXG4gICAgKTtcbiAgICB0aGlzLmlzUmVzcG9uc2liaWxpdHlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcy5zb21lKFxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/LnJlc3BvbnNpYmlsaXR5SWQgPT09IHJlc3A/LmlkXG4gICAgKTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5RmxvYXRlckJhckRhdGEgPSBbXG4gICAgICAuLi5uZXcgU2V0KHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUlkKSxcbiAgICBdO1xuICB9XG5cbiAgZ2VuZXJhdGVSZXNwb25zaWJpbGl0eUlkKHJlc3A6IGFueSkge1xuICAgIGNvbnN0IGFzc2lnbmVlSWRzID0gcmVzcD8uYXNzaWduZWVzPy51c2VySWQgfHwgW107XG4gICAgY29uc3QgcmVzcG9uc2liaWxpdHlDZW50ZXJzID0gcmVzcD8ucmVzcG9uc2liaWxpdHlDZW50ZXJzIHx8IFtudWxsXTtcblxuICAgIGNvbnN0IHJlc3BPYmo6IGFueVtdID0gW107XG5cbiAgICBhc3NpZ25lZUlkcy5mb3JFYWNoKChhc3NpZ25lZUlkOiBhbnkpID0+IHtcbiAgICAgIGlmICghcmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgcmVzcE9iai5wdXNoKHRoaXMuZ2VuZXJhdGVSZXNwT2JqKHJlc3AsIGFzc2lnbmVlSWQsIG51bGwpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJzLmZvckVhY2goKHJjOiBhbnkpID0+IHtcbiAgICAgICAgcmVzcE9iai5wdXNoKHRoaXMuZ2VuZXJhdGVSZXNwT2JqKHJlc3AsIGFzc2lnbmVlSWQsIHJjKSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXNwT2JqO1xuICB9XG5cbiAgZ2VuZXJhdGVSZXNwT2JqKHJlc3A6IGFueSwgYXNzaWduZWVJZDogYW55LCByZXNwb25zaWJpbGl0eUNlbnRlcjogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3BvbnNpYmlsaXR5SWQ6IHJlc3A/LnJpZCxcbiAgICAgIGFzc2lnbmVlSWQ6IGFzc2lnbmVlSWQsXG4gICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogcmVzcG9uc2liaWxpdHlDZW50ZXIsXG4gICAgICByZXBvcnROYW1lOiByZXNwPy50aXRsZSxcbiAgICAgIGFzc2lnbmVlQnJpZGdlSWQ6IFtdLFxuICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJCcmlkZ2VJZDogW10sXG4gICAgfTtcbiAgfVxuXG4gIHZpZXdSZXNwb25zaWJpbGl0eShpZDogYW55KSB7XG4gICAgaWYgKHRoaXMudmlld1Jlc3BvbnNpYmlsaXR5SWQgPT09IGlkKSB7XG4gICAgICB0aGlzLnZpZXdSZXNwb25zaWJpbGl0eUlkID0gbnVsbDtcbiAgICAgIHRoaXMudmlld1Jlc3BvbnNpYmlsaXR5RGF0YSA9IHt9O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZpZXdSZXNwb25zaWJpbGl0eUlkID0gaWQ7XG4gICAgY29uc3QgcmVzcG9uc2liaWxpdHkgPSB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhPy5kYXRhPy5maW5kKFxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbT8uaWQgPT09IGlkXG4gICAgKTtcbiAgICB0aGlzLnZpZXdSZXNwb25zaWJpbGl0eURhdGFbaWRdID1cbiAgICAgIHRoaXMuY3JlYXRlU2VwYXJhdGVSZXNwb25zaWJpbGl0aWVzKHJlc3BvbnNpYmlsaXR5KTtcbiAgfVxuXG4gIGNyZWF0ZVNlcGFyYXRlUmVzcG9uc2liaWxpdGllcyhyZXNwb25zaWJpbGl0eTogYW55KTogYW55W10ge1xuICAgIGlmICghcmVzcG9uc2liaWxpdHkpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IGFzc2lnbmVlcyA9IHJlc3BvbnNpYmlsaXR5LmFzc2lnbmVlcz8udXNlcklkIHx8IFtdO1xuICAgIGNvbnN0IHJlc3BvbnNpYmlsaXR5Q2VudGVycyA9IHJlc3BvbnNpYmlsaXR5LnJlc3BvbnNpYmlsaXR5Q2VudGVycyB8fCBbXG4gICAgICBudWxsLFxuICAgIF07XG4gICAgLy8gSWYgbm8gYXNzaWduZWVzIG9yIFJDcywgcmV0dXJuIG9yaWdpbmFsIHJlc3BvbnNpYmlsaXR5XG4gICAgaWYgKGFzc2lnbmVlcy5sZW5ndGggPT09IDAgJiYgcmVzcG9uc2liaWxpdHlDZW50ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtyZXNwb25zaWJpbGl0eV07XG4gICAgfVxuICAgIGNvbnN0IG5ld1Jlc3BvbnNpYmlsaXRpZXM6IGFueVtdID0gW107XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgcmVzcG9uc2liaWxpdHkgZm9yIGVhY2ggYXNzaWduZWUtUkMgY29tYmluYXRpb25cbiAgICBhc3NpZ25lZXMuZm9yRWFjaCgoYXNzaWduZWVJZDogbnVtYmVyKSA9PiB7XG4gICAgICByZXNwb25zaWJpbGl0eUNlbnRlcnMuZm9yRWFjaCgocmNJZDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1Jlc3BvbnNpYmlsaXR5ID0ge1xuICAgICAgICAgIC4uLmNsb25lRGVlcChyZXNwb25zaWJpbGl0eSksXG4gICAgICAgICAgYXNzaWduZWVzOiB7XG4gICAgICAgICAgICAuLi5yZXNwb25zaWJpbGl0eS5hc3NpZ25lZXMsXG4gICAgICAgICAgICB1c2VySWQ6IFthc3NpZ25lZUlkXSxcbiAgICAgICAgICAgIGFjdGl2ZVVzZXJJZDogW2Fzc2lnbmVlSWRdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJzOiBbcmNJZF0sXG4gICAgICAgICAgYXNzaWduZWVEZXRhaWxzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGFzc2lnbmVlOiBhc3NpZ25lZUlkLFxuICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogcmNJZCxcbiAgICAgICAgICAgICAgcGVyZm9ybWFuY2U6IG51bGwsXG4gICAgICAgICAgICAgIG5leHREdWVEYXRlOiBudWxsLFxuICAgICAgICAgICAgICByZXZpZXdlclBlcmZvcm1hbmNlOiBudWxsLFxuICAgICAgICAgICAgICByZXZpZXdlck5leHREdWVEYXRlOiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgICAgICBuZXdSZXNwb25zaWJpbGl0aWVzLnB1c2gobmV3UmVzcG9uc2liaWxpdHkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3UmVzcG9uc2liaWxpdGllcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0XCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LWhlYWQgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtYm9keVwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LmFsbFJlc3BvbnNpYmlsaXR5Q291bnQgPiAwXCJcbiAgICAgIGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtbWItMlwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHJlc3BvbnNpYmlsaXR5VGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ2eC10YWJsZS1jYXJkIHZ4LWJnLXdoaXRlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyIHZ4LW1yLTEgdngtcHQtMiB2eC1wYi0yIHZ4LXBsLTMgdngtcHItMyB2eC13LTEwMFwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50VGFiID09PSBpICsgMSB8fCAoY3VycmVudFRhYiA9PT0gMCAmJiBpID09PSAzKVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tUYWJDaGFuZ2UodGFiKVwiXG4gICAgICAgICAgW2NsYXNzLnBvaW50ZXItbm9uZV09XCJyZXNwb25zaWJpbGl0eUxvYWRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCB2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgPnt7IHRhYi5uYW1lIH19PC9sYWJlbFxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LXR4dC13aGl0ZSB2eC1mdy01MDAgdngtZC1pbmxpbmUtYmxvY2sgdngtdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eVRhYkNvdW50W3R5cGVUb0NvdW50UHJvcGVydHlbdGFiLnR5cGVdXSB8fCAwXG4gICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3Qtc2VhcmNoIHZ4LW1iLTJcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTJcIj4mI3hlOTBiOzwvaT5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwicmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0XCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cInNlYXJjaCgpXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUmVzcG9uc2liaWxpdGllc1wiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cInJlc3BvbnNpYmlsaXR5TG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LW1pZCB2eC1tYi00XCJcbiAgICAgIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiXG4gICAgICAgICFyZXNwb25zaWJpbGl0eUxvYWRlciAmJiByZXNwb25zaWJpbGl0aWVzRGF0YT8udG90YWxfcGFnZXMgPiAxXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5kYXRhPy5sZW5ndGggPT09IDAgJiYgIXJlc3BvbnNpYmlsaXR5TG9hZGVyXG4gICAgICAgIFwiXG4gICAgICAgIFtub0RhdGFJbWFnZV09XCJub0RhdGFJbWFnZVBhdGhcIlxuICAgICAgICBbbm9EYXRhVGV4dF09XCJub0RhdGFNZXNzYWdlXCJcbiAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cInJlc3BvbnNpYmlsaXRpZXNEYXRhPy5kYXRhPy5sZW5ndGggPiAwICYmICFyZXNwb25zaWJpbGl0eUxvYWRlclwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAjXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgW2NsYXNzLndpdGgtcmNdPVwiaXNPbkNvbXBsZXRpb25SY1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIFJFU1BPTlNJQklMSVRJRVNcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHktY2VudGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc09uQ29tcGxldGlvblJjXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUkVTUE9OU0lCSUxJVFkgQ0VOVEVSXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiByZXNwb25zaWJpbGl0aWVzRGF0YT8uZGF0YTtcbiAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtcm93IGNsaWNrYWJsZVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LnJpZFxuICAgICAgICAgICAgICAgICAgfCBpc1Jlc3BTZWxlY3RlZCA6IHNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXNcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2NsYXNzLm9wZW5dPVwidGhpcy52aWV3UmVzcG9uc2liaWxpdHlJZCA9PT0gcmVzcG9uc2liaWxpdHk/LmlkXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIlxuICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Py5yaWRcbiAgICAgICAgICAgICAgICAgIHwgaXNSZXNwU2VsZWN0ZWQgOiBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzci1ub1wiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInMSdcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgcmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXNfZnJvbSArIGkgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVzcG9uc2liaWxpdHk/LnJpZFwiXG4gICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LnJpZFxuICAgICAgICAgICAgICAgICAgICAgIHwgaXNSZXNwU2VsZWN0ZWQgOiBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0UmVzcChyZXNwb25zaWJpbGl0eSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5LW5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhckZpbGVBcmVhIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxhcHAtYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIkFWQVRBUl9DT05TVEFOVFMuVFlQRS5BU1NJR05PUlwiXG4gICAgICAgICAgICAgICAgICAgIFt1c2VyRGV0YWlsc109XCJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVzcG9uc2liaWxpdHk/LmFzc2lnbm9yXSB8IGdldFVzZXJEZXRhaWxzIDogdXNlckxpc3RcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L2FwcC1hdmF0YXI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlcz8udXNlcklkXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGdldFVzZXJEZXRhaWxzIDogdXNlckxpc3QgYXMgYXNzaWduZWVEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgICAgW2F2YXRhckNsYXNzXT1cIkFWQVRBUl9DT05TVEFOVFMuQ09MT1IuR1JFRU5cIlxuICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduZWVEZXRhaWxzPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gQVZBVEFSX0NPTlNUQU5UUy5BTllPTkVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBBVkFUQVJfQ09OU1RBTlRTLkFMTFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3VzZXJEZXRhaWxzXT1cImFzc2lnbmVlRGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgICAgICAgYXBwU3RvcFByb3BhZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1hdmF0YXI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWUgdngtZnMtMTMgdngtbmV1dHJhbC0xMDAgdngtbGgtNVwiXG4gICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInJlc3BvbnNpYmlsaXR5Py50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyByZXNwb25zaWJpbGl0eT8udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LW5ldXRyYWwtMTAwIHZ4LWxoLTQgdngtdHQtdXBwZXJjYXNlIHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgUkVTUE9OU0lCSUxJVFkgQ0VOVEVSOlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ2V0UkNMaXN0IDogcmNMaXN0IDogYWxsUmNMaXN0IGFzIHJjTGlzdFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlc3AtbmFtZSB2eC1mcy0xMSB2eC1ncmF5LTYwIHZ4LWxoLTQgdngtbXItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJyY0xpc3Q/Lmxlbmd0aCA+IDAgPyByY0xpc3RbMF0gOiAnLS0nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJjTGlzdD8ubGVuZ3RoID4gMCA/IHJjTGlzdFswXSA6IFwiLS1cIiB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmVzcG9uc2liaWxpdHk/LnJlc3BvbnNpYmlsaXR5Q2VudGVycz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1iYWRnZU51bSB4cyBtaW5pbWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc3BQb3BvdmVyLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAre3sgcmVzcG9uc2liaWxpdHk/LnJlc3BvbnNpYmlsaXR5Q2VudGVycz8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNyZXNwUG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcmMgb2YgcmNMaXN0IHwgc2xpY2UgOiAxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IHJjIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYWN0aW9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZVR5cGUgPT09IEFWQVRBUl9DT05TVEFOVFMuQUxMLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LnJjVHlwZSA9PT0gQVZBVEFSX0NPTlNUQU5UUy5BTEwudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2aWV3UmVzcG9uc2liaWxpdHkocmVzcG9uc2liaWxpdHk/LmlkKVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWljb24tYnV0dG9uIG1pbmltYWwgc21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3UmVzcG9uc2liaWxpdHlJZCA9PT0gcmVzcG9uc2liaWxpdHk/LmlkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiJiN4ZTllNztcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcIiYjeGU5ZTg7XCJcbiAgICAgICAgICAgICAgICAgICAgfX08L2lcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICB2aWV3UmVzcG9uc2liaWxpdHlJZCA9PT0gcmVzcG9uc2liaWxpdHk/LmlkICYmXG4gICAgICAgICAgICAgICAgdmlld1Jlc3BvbnNpYmlsaXR5RGF0YVt2aWV3UmVzcG9uc2liaWxpdHlJZF0/Lmxlbmd0aFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm9wZW4tbW9yZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgZGF0YSBvZiB2aWV3UmVzcG9uc2liaWxpdHlEYXRhW3ZpZXdSZXNwb25zaWJpbGl0eUlkXVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRhdGE/LnJpZFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgaXNSZXNwU2VsZWN0ZWQgOiBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzIDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RSZXNwKGRhdGEsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHktbmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGE/LmFzc2lnbmVlcz8udXNlcklkXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGdldFVzZXJEZXRhaWxzIDogdXNlckxpc3QgYXMgYXNzaWduZWVEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItYXJlYVwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWF2YXRhclxuICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIkFWQVRBUl9DT05TVEFOVFMuVFlQRS5BU1NJR05PUlwiXG4gICAgICAgICAgICAgICAgICAgICAgW3VzZXJEZXRhaWxzXT1cImFzc2lnbmVlRGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1hdmF0YXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWUgdngtZnMtMTEgdngtbmV1dHJhbC0xMDAgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiYXNzaWduZWVEZXRhaWxzWzBdPy5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGFzc2lnbmVlRGV0YWlsc1swXT8ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1uZXV0cmFsLTEwMCB2eC1saC00IHZ4LXR0LXVwcGVyY2FzZSB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBSRVNQT05TSUJJTElUWSBDRU5URVI6XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBnZXRSQ0xpc3QgOiByY0xpc3QgOiBhbGxSY0xpc3QgYXMgY2hpbGRSY0xpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlc3AtbmFtZSB2eC1mcy0xMSB2eC1ncmF5LTYwIHZ4LWxoLTQgdngtbXItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkUmNMaXN0Py5sZW5ndGggPiAwID8gY2hpbGRSY0xpc3RbMF0gOiAnLS0nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjaGlsZFJjTGlzdD8ubGVuZ3RoID4gMCA/IGNoaWxkUmNMaXN0WzBdIDogXCItLVwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGFjdGlvblwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxhcHAtcGFnaW5hdGlvblxuICAgICAgKm5nSWY9XCIhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0RhdGE/LnRvdGFsX3BhZ2VzID4gMVwiXG4gICAgICBbc3RhcnRdPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXNfZnJvbVwiXG4gICAgICBbZW5kXT1cInJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzX3RvXCJcbiAgICAgIFt0b3RhbF09XCJyZXNwb25zaWJpbGl0aWVzRGF0YT8udG90YWxfcmVzcG9uc2liaWxpdGllc1wiXG4gICAgICBbcGFnZUNvdW50XT1cInJlc3BvbnNpYmlsaXRpZXNEYXRhPy50b3RhbF9wYWdlc1wiXG4gICAgICBbY3VycmVudFBhZ2VdPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2VcIlxuICAgICAgKHNlbGVjdGVkUGFnZSk9XCJyZXNwb25zaWJpbGl0eVBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYXBwLXBhZ2luYXRpb24+XG4gICAgPGFwcC1mbG9hdGluZy1iYXJcbiAgICAgICpuZ0lmPVwiIXJlc3BvbnNpYmlsaXR5TG9hZGVyXCJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwicmVzcG9uc2liaWxpdHlGbG9hdGVyQmFyRGF0YVwiXG4gICAgICBbZGlzcGxheUVsZW1lbnRLZXldPVwiJ1JlcG9ydE5hbWUnXCJcbiAgICAgIChjbG9zZUxpc3QpPVwiYmFjaygpXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoJGV2ZW50KVwiXG4gICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlSXRlbSgkZXZlbnQpXCJcbiAgICAgIFtpc0Rpc2FibGVkXT1cIiFyZXNwb25zaWJpbGl0eUZsb2F0ZXJCYXJEYXRhPy5sZW5ndGhcIlxuICAgICAgW2lzUmVzcG9uc2liaWxpdHldPVwidHJ1ZVwiXG4gICAgICBbc2luZ3VsYXJUZXh0XT1cImZsb2F0ZXJCYXJUZXh0LlNJTkdVTEFSX1RFWFRcIlxuICAgICAgW3BsdXJhbFRleHRdPVwiZmxvYXRlckJhclRleHQuUExVUkFMX1RFWFRcIlxuICAgID48L2FwcC1mbG9hdGluZy1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1yZXNwb25zaWJpbGl0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2xpbmstcmVzcG9uc2liaWxpdHkvbGluay1yZXNwb25zaWJpbGl0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2xpbmstcmVzcG9uc2liaWxpdHkvbGluay1yZXNwb25zaWJpbGl0eS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFHOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVF4RSxNQUFNLE9BQU8sK0JBQStCO0lBcUYxQyxZQUNVLGdCQUFrQyxFQUNsQyx1QkFBZ0Q7UUFEaEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBcEZqRCxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLGlDQUE0QixHQUFRLEVBQUUsQ0FBQztRQUN2QyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RCxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUVwQyxjQUFTLEdBQVks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SUFBSSxDQUFDO29CQUM3QixlQUFlLEVBQUU7d0JBQ2Y7NEJBQ0UsUUFBUSxFQUFFLFVBQVU7NEJBQ3BCLG9CQUFvQixFQUFFLElBQUk7NEJBQzFCLFdBQVcsRUFBRSxJQUFJOzRCQUNqQixXQUFXLEVBQUUsSUFBSTs0QkFDakIsbUJBQW1CLEVBQUUsSUFBSTs0QkFDekIsbUJBQW1CLEVBQUUsSUFBSTt5QkFDMUI7cUJBQ0Y7aUJBQ0YsQ0FBQztnQkFDRixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDOytHQXRiVSwrQkFBK0I7bUdBQS9CLCtCQUErQixxWENiNUMsMDVjQXNXQTs7NEZEelZhLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSw4QkFBOEI7NklBSy9CLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBMSU5LX1JFU1BPTlNJQklMSVRZX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9saW5rLXJlc3BvbnNpYmlsaXR5LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5L2ZyZXF1ZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBsaWFuY2VDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvY29tbW9uLXdvcmtmbG93LXNlcnZpY2VzL2NvbXBsaWFuY2UtY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVZBVEFSX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uL3VpLWtpdC9hdmF0YXIvYXZhdGFyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eSB9IGZyb20gJy4vbGluay1yZXNwb25zaWJpbGl0eS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbGluay1yZXNwb25zaWJpbGl0eS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstcmVzcG9uc2liaWxpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rLXJlc3BvbnNpYmlsaXR5LmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExpbmtSZXNwb25zaWJpbGl0eUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OiBhbnk7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQElucHV0KCkgcmVzcElkS2V5OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlczogYW55ID0gW107XG4gIEBJbnB1dCgpIHJhZGlvU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNsb3NlQnV0dG9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBBVkFUQVJfQ09OU1RBTlRTID0gQVZBVEFSX0NPTlNUQU5UUztcblxuICBhbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcmVzcG9uc2liaWxpdHlMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNWYWxpZE9iajogYm9vbGVhbiA9IGZhbHNlO1xuICBpc09uQ29tcGxldGlvblJjOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVzcG9uc2liaWxpdGllc0RhdGE6IGFueSA9IHt9O1xuICByZXNwb25zaWJpbGl0eVRhYkNvdW50OiBhbnkgPSB7XG4gICAgcmVndWxhdGlvbkNvdW50OiAwLFxuICAgIHN0YW5kYXJkQ291bnQ6IDAsXG4gICAgaW50ZXJuYWxDb3VudDogMCxcbiAgICBvdGhlcnNDb3VudDogMCxcbiAgfTtcbiAgdHlwZVRvQ291bnRQcm9wZXJ0eTogYW55ID0ge1xuICAgIDA6ICdvdGhlcnNDb3VudCcsXG4gICAgMTogJ3JlZ3VsYXRpb25Db3VudCcsXG4gICAgMjogJ3N0YW5kYXJkQ291bnQnLFxuICAgIDM6ICdpbnRlcm5hbENvdW50JyxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdHlQYXlsb2FkID0ge1xuICAgIHR5cGU6ICdhbGwnLFxuICAgIHBhZ2luYXRpb25UeXBlOiAnbGFyZ2UnLFxuICAgIGE6ICcnLFxuICAgIHNlYXJjaFRleHQ6ICcnLFxuICAgIGZpbHRlckRhdGE6IHtcbiAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgcmlza0lkczogW10sXG4gICAgICByZXZpZXdlcklkOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBbXSxcbiAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgIGVudHJ1c3RlZFRvOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgY29tcGxpYW5jZVR5cGU6IFsxXSxcbiAgICB9LFxuICAgIHBhZ2VObzogMSxcbiAgICBzb3J0T2JqOiB7XG4gICAgICBzb3J0Qnk6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgfSxcbiAgICBwYWdlTmFtZTogJ292ZXJ2aWV3JyxcbiAgfTtcblxuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQ6IGFueVtdID0gW107XG4gIHJlc3BvbnNpYmlsaXR5VGFiczogYW55W10gPSBbXG4gICAgeyBuYW1lOiAnUkVHVUxBVElPTlMnLCB0eXBlOiAxIH0sXG4gICAgeyBuYW1lOiAnU1RBTkRBUkRTJywgdHlwZTogMiB9LFxuICAgIHsgbmFtZTogJ0lOVEVSTkFMIENPTlRST0xTJywgdHlwZTogMyB9LFxuICAgIHsgbmFtZTogJ09USEVSUycsIHR5cGU6IDAgfSxcbiAgXTtcblxuICBjdXJyZW50VGFiOiBudW1iZXIgPSAxO1xuICByZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICByZWd1bGF0aW9uQ291bnQ6IG51bWJlciA9IDA7XG4gIHN0YW5kYXJkc0NvdW50OiBudW1iZXIgPSAwO1xuICBpbnRlcm5hbHNDb3VudDogbnVtYmVyID0gMDtcbiAgb3RoZXJzQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgcmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcbiAgbm9EYXRhTWVzc2FnZTogc3RyaW5nID0gTElOS19SRVNQT05TSUJJTElUWV9DT05TVEFOVFMuTk9fREFUQV9NRVNTQUdFLk5PX0RBVEE7XG4gIG5vRGF0YUltYWdlUGF0aDogc3RyaW5nID0gTElOS19SRVNQT05TSUJJTElUWV9DT05TVEFOVFMuTk9fREFUQS5JTUFHRTtcbiAgZmxvYXRlckJhclRleHQ6IGFueSA9IExJTktfUkVTUE9OU0lCSUxJVFlfQ09OU1RBTlRTLkZMT0FUSU5HX0JBUjtcblxuICByZXNwb25zaWJpbGl0eUxpc3Q6IGFueTtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBjbG9zZTogYW55O1xuICB1c2VyTGlzdDogYW55W10gPSBbXTtcbiAgcmNMaXN0OiBhbnlbXSA9IFtdO1xuICBhbGxSY0xpc3Q6IGFueVtdID0gW107XG4gIHZpZXdSZXNwb25zaWJpbGl0eUlkOiBhbnk7XG4gIHZpZXdSZXNwb25zaWJpbGl0eURhdGE6IGFueSA9IHt9O1xuICByZXNwb25zaWJpbGl0eUZsb2F0ZXJCYXJEYXRhOiBhbnkgPSBbXTtcblxuICBpc1Jlc3BvbnNpYmlsaXR5U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21wbGlhbmNlQ29tbW9uU2VydmljZTogQ29tcGxpYW5jZUNvbW1vblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlWYWx1ZXMoKTtcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5TGlzdCgpO1xuICAgIHRoaXMuZ2V0UmNMaXN0KCk7XG4gIH1cblxuICBiYWNrKCkge1xuICAgIHRoaXMuY2xvc2VCdXR0b24uZW1pdCgpO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdHlWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5RmxvYXRlckJhckRhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMubWFwKFxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtPy5yZXNwb25zaWJpbGl0eUlkXG4gICAgICApO1xuICAgICAgdGhpcy5wb3B1bGF0ZVJlc3BvbnNpYmlsaXR5VmFsdWVzKCk7XG4gICAgfVxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIHBvcHVsYXRlUmVzcG9uc2liaWxpdHlWYWx1ZXMoKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcykpIHJldHVybjtcblxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9XG4gICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMuZmxhdE1hcChcbiAgICAgICAgKHtcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUlkLFxuICAgICAgICAgIHJlcG9ydE5hbWUsXG4gICAgICAgICAgYXNzaWduZWVJZHMgPSBbXSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcnMgPSBbXSxcbiAgICAgICAgICBhc3NpZ25lZUJyaWRnZUlkID0gW10sXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJCcmlkZ2VJZCA9IFtdLFxuICAgICAgICB9KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkoYXNzaWduZWVJZHMpIHx8XG4gICAgICAgICAgICAhQXJyYXkuaXNBcnJheShyZXNwb25zaWJpbGl0eUNlbnRlcnMpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgcmV0dXJuIGFzc2lnbmVlSWRzLmZsYXRNYXAoKGFzc2lnbmVlSWQpID0+XG4gICAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcnMubWFwKChyZXNwb25zaWJpbGl0eUNlbnRlcikgPT4gKHtcbiAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHlJZCxcbiAgICAgICAgICAgICAgYXNzaWduZWVJZCxcbiAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXIsXG4gICAgICAgICAgICAgIHJlcG9ydE5hbWUsXG4gICAgICAgICAgICAgIGFzc2lnbmVlQnJpZGdlSWQsXG4gICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyQnJpZGdlSWQsXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0UmNMaXN0KCkge1xuICAgIHRoaXMuY29tcGxpYW5jZUNvbW1vblNlcnZpY2UuZ2V0UmNMaXN0SW5mbygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWxsUmNMaXN0ID0gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdHlMaXN0KHBhZ2VObzogbnVtYmVyID0gMSkge1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuZnJlcXVlbmN5U2VydmljZVxuICAgICAgPy5nZXRBbGxSZXNwb25zaWJpbGl0aWVzKHBhZ2VObywgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlcz8uZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YSA9IHRoaXMubWFwUmVzcG9uc2liaWxpdGllc0RhdGEocmVzPy5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXM/LmRhdGE/LnVzZXJzO1xuICAgICAgICAgICAgdGhpcy5yY0xpc3QgPSByZXM/LmRhdGE/LnJlc3BvbnNpYmlsaXR5Q2VudGVycztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBSZXNwb25zaWJpbGl0aWVzRGF0YShyZXM6IGFueSkge1xuICAgIGNvbnN0IHBhZ2VTaXplID0gMTA7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSByZXM/LnBhZ2UgfHwgMTtcbiAgICBjb25zdCB0b3RhbEl0ZW1zID0gcmVzPy50b3RhbCB8fCAwO1xuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemUgKyAxO1xuICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplIC0gMSwgdG90YWxJdGVtcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogcmVzPy5yZXNwb25zaWJpbGl0aWVzLFxuICAgICAgdG90YWxfcmVzcG9uc2liaWxpdGllczogdG90YWxJdGVtcyxcbiAgICAgIHRvdGFsX3BhZ2VzOiBNYXRoLmNlaWwodG90YWxJdGVtcyAvIHBhZ2VTaXplKSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U6IGN1cnJlbnRQYWdlLFxuICAgICAgcmVzcG9uc2liaWxpdGllc19mcm9tOiBzdGFydEluZGV4LFxuICAgICAgcmVzcG9uc2liaWxpdGllc190bzogZW5kSW5kZXgsXG4gICAgfTtcbiAgfVxuXG4gIHJlc3BvbnNpYmlsaXR5UGFnZUNoYW5nZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICBpZiAocGFnZU51bWJlciAhPT0gdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YS5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlKSB7XG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2UgPSBwYWdlTnVtYmVyO1xuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gcGFnZU51bWJlcjtcbiAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KHBhZ2VOdW1iZXIpO1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZUl0ZW0oaXRlbTogYW55KSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlJZC5maW5kSW5kZXgoXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGl0ZW1bdGhpcy5yZXNwSWRLZXldXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlJZC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9XG4gICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMuZmlsdGVyKFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZVt0aGlzLnJlc3BJZEtleV0gIT09IGl0ZW1bdGhpcy5yZXNwSWRLZXldXG4gICAgICApO1xuICAgIHRoaXMuaXNWYWxpZE9iaiA9IGZhbHNlO1xuICB9XG5cbiAgc2F2ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5jbG9zZUJ1dHRvbi5lbWl0KCk7XG4gICAgdGhpcy5maWx0ZXJVbmlxdWVSZXNwb25zaWJpbGl0eVZhbHVlcygpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eS5lbWl0KHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyk7XG4gIH1cblxuICBmaWx0ZXJVbmlxdWVSZXNwb25zaWJpbGl0eVZhbHVlcygpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ubGVuZ3RoKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgcmVzdWx0OiBSZXNwb25zaWJpbGl0eSA9IHt9O1xuXG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuXG4gICAgICB0aGlzLmluc2VydFVuaXF1ZVJlc3BvbnNpYmlsaXR5KHJlc3VsdCwgaXRlbSk7XG4gICAgfSk7XG4gICAgLy8gQ29udmVydCB0aGUgcmVzdWx0IG9iamVjdCBpbnRvIGFuIGFycmF5XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzID0gT2JqZWN0LnZhbHVlcyhyZXN1bHQpO1xuICB9XG5cbiAgaW5zZXJ0VW5pcXVlUmVzcG9uc2liaWxpdHkocmVzdWx0OiBSZXNwb25zaWJpbGl0eSwgaXRlbTogYW55KSB7XG4gICAgY29uc3QgeyByZXNwb25zaWJpbGl0eUlkLCBhc3NpZ25lZUlkLCByZXNwb25zaWJpbGl0eUNlbnRlciB9ID0gaXRlbTtcbiAgICBpZiAoIXJlc3VsdFtyZXNwb25zaWJpbGl0eUlkXSkge1xuICAgICAgcmVzdWx0W3Jlc3BvbnNpYmlsaXR5SWRdID0ge1xuICAgICAgICByZXNwb25zaWJpbGl0eUlkLFxuICAgICAgICBhc3NpZ25lZUlkczogW10sXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyczogW10sXG4gICAgICAgIGFzc2lnbmVlQnJpZGdlSWQ6IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlckJyaWRnZUlkOiBbXSxcbiAgICAgICAgcmVwb3J0TmFtZTogaXRlbT8ucmVwb3J0TmFtZSxcbiAgICAgIH07XG4gICAgfSBcbiAgICAgIC8vIEFkZCBhc3NpZ25lZUlkIGlmIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgIGlmICghcmVzdWx0W3Jlc3BvbnNpYmlsaXR5SWRdPy5hc3NpZ25lZUlkcz8uaW5jbHVkZXMoYXNzaWduZWVJZCkpIHtcbiAgICAgICAgcmVzdWx0W3Jlc3BvbnNpYmlsaXR5SWRdPy5hc3NpZ25lZUlkcz8ucHVzaChhc3NpZ25lZUlkKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHJlc3BvbnNpYmlsaXR5Q2VudGVyIGlmIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgIGlmIChcbiAgICAgICAgIXJlc3VsdFtyZXNwb25zaWJpbGl0eUlkXT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzPy5pbmNsdWRlcyhcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlclxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmVzdWx0W3Jlc3BvbnNpYmlsaXR5SWRdPy5yZXNwb25zaWJpbGl0eUNlbnRlcnM/LnB1c2goXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0QnJpZGdlSWRzKHJlc3VsdCk7XG4gICAgXG4gIH1cblxuICBnZXRCcmlkZ2VJZHMocmVzdWx0OiBhbnkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiByZXN1bHQpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSByZXN1bHRba2V5XTtcbiAgICAgIGl0ZW0uYXNzaWduZWVJZHMuZm9yRWFjaCgoYXNzaWduZWVJZDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlID0gdGhpcy51c2VyTGlzdC5maW5kKFxuICAgICAgICAgICh1c2VyOiBhbnkpID0+IHVzZXI/LmlkID09PSBhc3NpZ25lZUlkXG4gICAgICAgICk7XG4gICAgICAgIGlmICghaXRlbS5hc3NpZ25lZUJyaWRnZUlkLmZpbmQoKGlkOiBhbnkpID0+IGlkID09PSBhc3NpZ25lZT8udWlkKSkge1xuICAgICAgICAgIGl0ZW0uYXNzaWduZWVCcmlkZ2VJZD8ucHVzaChhc3NpZ25lZT8udWlkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVycy5mb3JFYWNoKChyZXNwb25zaWJpbGl0eUNlbnRlcjogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHJjID0gdGhpcy5yY0xpc3QuZmluZChcbiAgICAgICAgICAocmM6IGFueSkgPT4gcmM/LmlkID09PSByZXNwb25zaWJpbGl0eUNlbnRlclxuICAgICAgICApO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWl0ZW0ucmVzcG9uc2liaWxpdHlDZW50ZXJCcmlkZ2VJZC5maW5kKChpZDogYW55KSA9PiBpZCA9PT0gcmM/LnJjaWQpXG4gICAgICAgICkge1xuICAgICAgICAgIGl0ZW0ucmVzcG9uc2liaWxpdHlDZW50ZXJCcmlkZ2VJZD8ucHVzaChyYz8ucmNpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2tUYWJDaGFuZ2UodGFiOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRUYWIgPSB0YWI/LnR5cGU7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuZmlsdGVyRGF0YS5jb21wbGlhbmNlVHlwZSA9IFt0aGlzLmN1cnJlbnRUYWJdO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkLnNlYXJjaFRleHQgPSB0aGlzLnJlc3BvbnNpYmlsaXR5U2VhcmNoVGV4dDtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM7XG4gICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0eUxpc3QoKTtcbiAgfVxuXG4gIHNlYXJjaCgpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5zZWFyY2hUZXh0ID0gdGhpcy5yZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5wYWdlTm8gPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U7XG4gICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0eUxpc3QoKTtcbiAgfVxuXG4gIHNldFJlc3BvbnNpYmlsaXRpZXNDb3VudCgpIHtcbiAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZCkpO1xuICAgIHBheWxvYWQuZmlsdGVyRGF0YS5jb21wbGlhbmNlVHlwZSA9IFswLCAxLCAyLCAzXTtcbiAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2VcbiAgICAgID8uZ2V0UmVzcG9uc2liaWxpdGllc0NvdW50KHBheWxvYWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5VGFiQ291bnQucmVndWxhdGlvbkNvdW50ID0gcmVzPy5yZWd1bGF0aW9uX2NvdW50O1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5VGFiQ291bnQuc3RhbmRhcmRDb3VudCA9IHJlcz8uc3RhbmRhcmRfY291bnQ7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlUYWJDb3VudC5pbnRlcm5hbENvdW50ID0gcmVzPy5pbnRlcm5hbF9jb3VudDtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eVRhYkNvdW50Lm90aGVyc0NvdW50ID0gcmVzPy5vdGhlcnNfY291bnQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBpbml0aWFsaXplIGFsbCB0aGUgRmVhdHVyZSBmbGFnIGJhc2VkIHZhcmlhYmxlc1xuICBmZWF0dXJlRmxhZ0luaXRpYWxpemF0aW9uKCkge1xuICAgIHRoaXMuZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZiA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX2ZyZXF1ZW5jeV9vbl9jb21wbGV0aW9uX29mJ1xuICAgICk7XG4gICAgdGhpcy5pc09uQ29tcGxldGlvblJjID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfb25fY29tcGxldGlvbl9yYydcbiAgICApO1xuICB9XG5cbiAgc2VsZWN0UmVzcChyZXNwOiBhbnksIG1vZGU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjaGVja2VkUmVzcCA9IHRoaXMuZ2VuZXJhdGVSZXNwb25zaWJpbGl0eUlkKHJlc3ApO1xuICAgIGlmICghY2hlY2tlZFJlc3A/Lmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgY2hlY2tlZFJlc3AuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBjb25zdCBleGlzdHNJbmRleCA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGU6IGFueSkgPT5cbiAgICAgICAgICBlbGUucmVzcG9uc2liaWxpdHlJZCA9PT0gaXRlbS5yZXNwb25zaWJpbGl0eUlkICYmXG4gICAgICAgICAgZWxlLmFzc2lnbmVlSWQgPT09IGl0ZW0uYXNzaWduZWVJZCAmJlxuICAgICAgICAgIGVsZS5yZXNwb25zaWJpbGl0eUNlbnRlciA9PT0gaXRlbS5yZXNwb25zaWJpbGl0eUNlbnRlclxuICAgICAgKTtcbiAgICAgIGlmIChtb2RlICYmIGV4aXN0c0luZGV4ID09PSAtMSkge1xuICAgICAgICAvLyBBZGQgaWYgbm90IHByZXNlbnRcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzLnB1c2goaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZW1vdmUgaWYgcHJlc2VudFxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMuc3BsaWNlKGV4aXN0c0luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUlkID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzLm1hcChcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLnJlc3BvbnNpYmlsaXR5SWRcbiAgICApO1xuICAgIHRoaXMuaXNSZXNwb25zaWJpbGl0eVNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzLnNvbWUoXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZT8ucmVzcG9uc2liaWxpdHlJZCA9PT0gcmVzcD8uaWRcbiAgICApO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlGbG9hdGVyQmFyRGF0YSA9IFtcbiAgICAgIC4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQpLFxuICAgIF07XG4gIH1cblxuICBnZW5lcmF0ZVJlc3BvbnNpYmlsaXR5SWQocmVzcDogYW55KSB7XG4gICAgY29uc3QgYXNzaWduZWVJZHMgPSByZXNwPy5hc3NpZ25lZXM/LnVzZXJJZCB8fCBbXTtcbiAgICBjb25zdCByZXNwb25zaWJpbGl0eUNlbnRlcnMgPSByZXNwPy5yZXNwb25zaWJpbGl0eUNlbnRlcnMgfHwgW251bGxdO1xuXG4gICAgY29uc3QgcmVzcE9iajogYW55W10gPSBbXTtcblxuICAgIGFzc2lnbmVlSWRzLmZvckVhY2goKGFzc2lnbmVlSWQ6IGFueSkgPT4ge1xuICAgICAgaWYgKCFyZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aCkge1xuICAgICAgICByZXNwT2JqLnB1c2godGhpcy5nZW5lcmF0ZVJlc3BPYmoocmVzcCwgYXNzaWduZWVJZCwgbnVsbCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXNwb25zaWJpbGl0eUNlbnRlcnMuZm9yRWFjaCgocmM6IGFueSkgPT4ge1xuICAgICAgICByZXNwT2JqLnB1c2godGhpcy5nZW5lcmF0ZVJlc3BPYmoocmVzcCwgYXNzaWduZWVJZCwgcmMpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3BPYmo7XG4gIH1cblxuICBnZW5lcmF0ZVJlc3BPYmoocmVzcDogYW55LCBhc3NpZ25lZUlkOiBhbnksIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzcG9uc2liaWxpdHlJZDogcmVzcD8ucmlkLFxuICAgICAgYXNzaWduZWVJZDogYXNzaWduZWVJZCxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiByZXNwb25zaWJpbGl0eUNlbnRlcixcbiAgICAgIHJlcG9ydE5hbWU6IHJlc3A/LnRpdGxlLFxuICAgICAgYXNzaWduZWVCcmlkZ2VJZDogW10sXG4gICAgICByZXNwb25zaWJpbGl0eUNlbnRlckJyaWRnZUlkOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgdmlld1Jlc3BvbnNpYmlsaXR5KGlkOiBhbnkpIHtcbiAgICBpZiAodGhpcy52aWV3UmVzcG9uc2liaWxpdHlJZCA9PT0gaWQpIHtcbiAgICAgIHRoaXMudmlld1Jlc3BvbnNpYmlsaXR5SWQgPSBudWxsO1xuICAgICAgdGhpcy52aWV3UmVzcG9uc2liaWxpdHlEYXRhID0ge307XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmlld1Jlc3BvbnNpYmlsaXR5SWQgPSBpZDtcbiAgICBjb25zdCByZXNwb25zaWJpbGl0eSA9IHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGE/LmRhdGE/LmZpbmQoXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtPy5pZCA9PT0gaWRcbiAgICApO1xuICAgIHRoaXMudmlld1Jlc3BvbnNpYmlsaXR5RGF0YVtpZF0gPVxuICAgICAgdGhpcy5jcmVhdGVTZXBhcmF0ZVJlc3BvbnNpYmlsaXRpZXMocmVzcG9uc2liaWxpdHkpO1xuICB9XG5cbiAgY3JlYXRlU2VwYXJhdGVSZXNwb25zaWJpbGl0aWVzKHJlc3BvbnNpYmlsaXR5OiBhbnkpOiBhbnlbXSB7XG4gICAgaWYgKCFyZXNwb25zaWJpbGl0eSkgcmV0dXJuIFtdO1xuXG4gICAgY29uc3QgYXNzaWduZWVzID0gcmVzcG9uc2liaWxpdHkuYXNzaWduZWVzPy51c2VySWQgfHwgW107XG4gICAgY29uc3QgcmVzcG9uc2liaWxpdHlDZW50ZXJzID0gcmVzcG9uc2liaWxpdHkucmVzcG9uc2liaWxpdHlDZW50ZXJzIHx8IFtcbiAgICAgIG51bGwsXG4gICAgXTtcbiAgICAvLyBJZiBubyBhc3NpZ25lZXMgb3IgUkNzLCByZXR1cm4gb3JpZ2luYWwgcmVzcG9uc2liaWxpdHlcbiAgICBpZiAoYXNzaWduZWVzLmxlbmd0aCA9PT0gMCAmJiByZXNwb25zaWJpbGl0eUNlbnRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW3Jlc3BvbnNpYmlsaXR5XTtcbiAgICB9XG4gICAgY29uc3QgbmV3UmVzcG9uc2liaWxpdGllczogYW55W10gPSBbXTtcblxuICAgIC8vIENyZWF0ZSBhIG5ldyByZXNwb25zaWJpbGl0eSBmb3IgZWFjaCBhc3NpZ25lZS1SQyBjb21iaW5hdGlvblxuICAgIGFzc2lnbmVlcy5mb3JFYWNoKChhc3NpZ25lZUlkOiBudW1iZXIpID0+IHtcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVycy5mb3JFYWNoKChyY0lkOiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgbmV3UmVzcG9uc2liaWxpdHkgPSB7XG4gICAgICAgICAgLi4uY2xvbmVEZWVwKHJlc3BvbnNpYmlsaXR5KSxcbiAgICAgICAgICBhc3NpZ25lZXM6IHtcbiAgICAgICAgICAgIC4uLnJlc3BvbnNpYmlsaXR5LmFzc2lnbmVlcyxcbiAgICAgICAgICAgIHVzZXJJZDogW2Fzc2lnbmVlSWRdLFxuICAgICAgICAgICAgYWN0aXZlVXNlcklkOiBbYXNzaWduZWVJZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcnM6IFtyY0lkXSxcbiAgICAgICAgICBhc3NpZ25lZURldGFpbHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYXNzaWduZWU6IGFzc2lnbmVlSWQsXG4gICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiByY0lkLFxuICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogbnVsbCxcbiAgICAgICAgICAgICAgbmV4dER1ZURhdGU6IG51bGwsXG4gICAgICAgICAgICAgIHJldmlld2VyUGVyZm9ybWFuY2U6IG51bGwsXG4gICAgICAgICAgICAgIHJldmlld2VyTmV4dER1ZURhdGU6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgICAgIG5ld1Jlc3BvbnNpYmlsaXRpZXMucHVzaChuZXdSZXNwb25zaWJpbGl0eSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXdSZXNwb25zaWJpbGl0aWVzO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtaGVhZCB2eC1wLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IGEgUmVzcG9uc2liaWxpdHk8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1ib2R5XCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJyZXNwb25zaWJpbGl0aWVzRGF0YT8uYWxsUmVzcG9uc2liaWxpdHlDb3VudCA+IDBcIlxuICAgICAgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1tYi0yXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgcmVzcG9uc2liaWxpdHlUYWJzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInZ4LXRhYmxlLWNhcmQgdngtYmctd2hpdGUgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXIgdngtbXItMSB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zIHZ4LXctMTAwXCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09IGkgKyAxIHx8IChjdXJyZW50VGFiID09PSAwICYmIGkgPT09IDMpXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbGlja1RhYkNoYW5nZSh0YWIpXCJcbiAgICAgICAgICBbY2xhc3MucG9pbnRlci1ub25lXT1cInJlc3BvbnNpYmlsaXR5TG9hZGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGNsYXNzPVwidngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+e3sgdGFiLm5hbWUgfX08L2xhYmVsXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodCB2eC1kLWZsZXggdngtanVzdGlmeS1lbmQgdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtdHh0LXdoaXRlIHZ4LWZ3LTUwMCB2eC1kLWlubGluZS1ibG9jayB2eC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5VGFiQ291bnRbdHlwZVRvQ291bnRQcm9wZXJ0eVt0YWIudHlwZV1dIHx8IDBcbiAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJyZXNwb25zaWJpbGl0eVNlYXJjaFRleHRcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSZXNwb25zaWJpbGl0aWVzXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwicmVzcG9uc2liaWxpdHlMb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtbWlkIHZ4LW1iLTRcIlxuICAgICAgW2NsYXNzLndpdGgtcGFnaW5hdGlvbl09XCJcbiAgICAgICAgIXJlc3BvbnNpYmlsaXR5TG9hZGVyICYmIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy50b3RhbF9wYWdlcyA+IDFcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LmRhdGE/Lmxlbmd0aCA9PT0gMCAmJiAhcmVzcG9uc2liaWxpdHlMb2FkZXJcbiAgICAgICAgXCJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIm5vRGF0YUltYWdlUGF0aFwiXG4gICAgICAgIFtub0RhdGFUZXh0XT1cIm5vRGF0YU1lc3NhZ2VcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LmRhdGE/Lmxlbmd0aCA+IDAgJiYgIXJlc3BvbnNpYmlsaXR5TG9hZGVyXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICNcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgICAgICBbY2xhc3Mud2l0aC1yY109XCJpc09uQ29tcGxldGlvblJjXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUkVTUE9OU0lCSUxJVElFU1xuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eS1jZW50ZXJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImlzT25Db21wbGV0aW9uUmNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUWSBDRU5URVJcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5IG9mIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5kYXRhO1xuICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3cgY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8ucmlkXG4gICAgICAgICAgICAgICAgICB8IGlzUmVzcFNlbGVjdGVkIDogc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlc1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbY2xhc3Mub3Blbl09XCJ0aGlzLnZpZXdSZXNwb25zaWJpbGl0eUlkID09PSByZXNwb25zaWJpbGl0eT8uaWRcIlxuICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiXG4gICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LnJpZFxuICAgICAgICAgICAgICAgICAgfCBpc1Jlc3BTZWxlY3RlZCA6IHNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXNcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIicxJ1wiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllc19mcm9tICsgaSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyZXNwb25zaWJpbGl0eT8ucmlkXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIlxuICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8ucmlkXG4gICAgICAgICAgICAgICAgICAgICAgfCBpc1Jlc3BTZWxlY3RlZCA6IHNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXNcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RSZXNwKHJlc3BvbnNpYmlsaXR5LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHktbmFtZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyRmlsZUFyZWEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgPGFwcC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiQVZBVEFSX0NPTlNUQU5UUy5UWVBFLkFTU0lHTk9SXCJcbiAgICAgICAgICAgICAgICAgICAgW3VzZXJEZXRhaWxzXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZXNwb25zaWJpbGl0eT8uYXNzaWdub3JdIHwgZ2V0VXNlckRldGFpbHMgOiB1c2VyTGlzdFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPjwvYXBwLWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8uYXNzaWduZWVzPy51c2VySWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZ2V0VXNlckRldGFpbHMgOiB1c2VyTGlzdCBhcyBhc3NpZ25lZURldGFpbHNcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICBbYXZhdGFyQ2xhc3NdPVwiQVZBVEFSX0NPTlNUQU5UUy5DT0xPUi5HUkVFTlwiXG4gICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3NpZ25lZURldGFpbHM/Lmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBBVkFUQVJfQ09OU1RBTlRTLkFOWU9ORVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IEFWQVRBUl9DT05TVEFOVFMuQUxMXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdXNlckRldGFpbHNdPVwiYXNzaWduZWVEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcHBTdG9wUHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMyB2eC1uZXV0cmFsLTEwMCB2eC1saC01XCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicmVzcG9uc2liaWxpdHk/LnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHJlc3BvbnNpYmlsaXR5Py50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbmV1dHJhbC0xMDAgdngtbGgtNCB2eC10dC11cHBlcmNhc2UgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICBSRVNQT05TSUJJTElUWSBDRU5URVI6XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Py5yZXNwb25zaWJpbGl0eUNlbnRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBnZXRSQ0xpc3QgOiByY0xpc3QgOiBhbGxSY0xpc3QgYXMgcmNMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVzcC1uYW1lIHZ4LWZzLTExIHZ4LWdyYXktNjAgdngtbGgtNCB2eC1tci0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInJjTGlzdD8ubGVuZ3RoID4gMCA/IHJjTGlzdFswXSA6ICctLSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcmNMaXN0Py5sZW5ndGggPiAwID8gcmNMaXN0WzBdIDogXCItLVwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyZXNwb25zaWJpbGl0eT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWJhZGdlTnVtIHhzIG1pbmltYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVzcFBvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICt7eyByZXNwb25zaWJpbGl0eT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3Jlc3BQb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCByYyBvZiByY0xpc3QgfCBzbGljZSA6IDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgcmMgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhY3Rpb25cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlVHlwZSA9PT0gQVZBVEFSX0NPTlNUQU5UUy5BTEwudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8ucmNUeXBlID09PSBBVkFUQVJfQ09OU1RBTlRTLkFMTC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInZpZXdSZXNwb25zaWJpbGl0eShyZXNwb25zaWJpbGl0eT8uaWQpXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtaWNvbi1idXR0b24gbWluaW1hbCBzbWFsbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgIHZpZXdSZXNwb25zaWJpbGl0eUlkID09PSByZXNwb25zaWJpbGl0eT8uaWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCImI3hlOWU3O1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiJiN4ZTllODtcIlxuICAgICAgICAgICAgICAgICAgICB9fTwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIHZpZXdSZXNwb25zaWJpbGl0eUlkID09PSByZXNwb25zaWJpbGl0eT8uaWQgJiZcbiAgICAgICAgICAgICAgICB2aWV3UmVzcG9uc2liaWxpdHlEYXRhW3ZpZXdSZXNwb25zaWJpbGl0eUlkXT8ubGVuZ3RoXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwib3Blbi1tb3JlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtcm93XCJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgIGxldCBkYXRhIG9mIHZpZXdSZXNwb25zaWJpbGl0eURhdGFbdmlld1Jlc3BvbnNpYmlsaXR5SWRdXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF0YT8ucmlkXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBpc1Jlc3BTZWxlY3RlZCA6IHNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMgOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdFJlc3AoZGF0YSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eS1uYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YT8uYXNzaWduZWVzPy51c2VySWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZ2V0VXNlckRldGFpbHMgOiB1c2VyTGlzdCBhcyBhc3NpZ25lZURldGFpbHNcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1hcmVhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiQVZBVEFSX0NPTlNUQU5UUy5UWVBFLkFTU0lHTk9SXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdXNlckRldGFpbHNdPVwiYXNzaWduZWVEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUtZGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMSB2eC1uZXV0cmFsLTEwMCB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhc3NpZ25lZURldGFpbHNbMF0/Lm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgYXNzaWduZWVEZXRhaWxzWzBdPy5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LW5ldXRyYWwtMTAwIHZ4LWxoLTQgdngtdHQtdXBwZXJjYXNlIHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJFU1BPTlNJQklMSVRZIENFTlRFUjpcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5yZXNwb25zaWJpbGl0eUNlbnRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdldFJDTGlzdCA6IHJjTGlzdCA6IGFsbFJjTGlzdCBhcyBjaGlsZFJjTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVzcC1uYW1lIHZ4LWZzLTExIHZ4LWdyYXktNjAgdngtbGgtNCB2eC1tci0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRSY0xpc3Q/Lmxlbmd0aCA+IDAgPyBjaGlsZFJjTGlzdFswXSA6ICctLSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNoaWxkUmNMaXN0Py5sZW5ndGggPiAwID8gY2hpbGRSY0xpc3RbMF0gOiBcIi0tXCIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYWN0aW9uXCJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1wYWdpbmF0aW9uXG4gICAgICAqbmdJZj1cIiFyZXNwb25zaWJpbGl0eUxvYWRlciAmJiByZXNwb25zaWJpbGl0aWVzRGF0YT8udG90YWxfcGFnZXMgPiAxXCJcbiAgICAgIFtzdGFydF09XCJyZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllc19mcm9tXCJcbiAgICAgIFtlbmRdPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXNfdG9cIlxuICAgICAgW3RvdGFsXT1cInJlc3BvbnNpYmlsaXRpZXNEYXRhPy50b3RhbF9yZXNwb25zaWJpbGl0aWVzXCJcbiAgICAgIFtwYWdlQ291bnRdPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnRvdGFsX3BhZ2VzXCJcbiAgICAgIFtjdXJyZW50UGFnZV09XCJyZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZVwiXG4gICAgICAoc2VsZWN0ZWRQYWdlKT1cInJlc3BvbnNpYmlsaXR5UGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9hcHAtcGFnaW5hdGlvbj5cbiAgICA8YXBwLWZsb2F0aW5nLWJhclxuICAgICAgKm5nSWY9XCIhcmVzcG9uc2liaWxpdHlMb2FkZXJcIlxuICAgICAgW3NlbGVjdGVkRGF0YV09XCJyZXNwb25zaWJpbGl0eUZsb2F0ZXJCYXJEYXRhXCJcbiAgICAgIFtkaXNwbGF5RWxlbWVudEtleV09XCInUmVwb3J0TmFtZSdcIlxuICAgICAgKGNsb3NlTGlzdCk9XCJiYWNrKClcIlxuICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZSgkZXZlbnQpXCJcbiAgICAgIChkZWxldGVFdmVudCk9XCJkZWxldGVJdGVtKCRldmVudClcIlxuICAgICAgW2lzRGlzYWJsZWRdPVwiIXJlc3BvbnNpYmlsaXR5RmxvYXRlckJhckRhdGE/Lmxlbmd0aFwiXG4gICAgICBbaXNSZXNwb25zaWJpbGl0eV09XCJ0cnVlXCJcbiAgICAgIFtzaW5ndWxhclRleHRdPVwiZmxvYXRlckJhclRleHQuU0lOR1VMQVJfVEVYVFwiXG4gICAgICBbcGx1cmFsVGV4dF09XCJmbG9hdGVyQmFyVGV4dC5QTFVSQUxfVEVYVFwiXG4gICAgPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|