@eo-sdk/client 11.13.0-rc.1 → 11.13.0-rc.2
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/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts +1 -0
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +0 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
- package/app/eo-framework/list-container/list-container.component.d.ts +2 -2
- package/app/eo-framework/list-container/list-container.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form-edit/object-form-edit.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
- package/app/eo-framework/settings/permissions/permissions.component.d.ts +3 -1
- package/app/eo-framework/settings/permissions/permissions.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +1 -1
- package/assets/_default/i18n/en.json +1 -1
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +6 -5
- package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +17 -9
- package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +3 -8
- package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +2 -2
- package/esm2022/app/eo-framework/list-container/list-container.component.mjs +5 -5
- package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +2 -2
- package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +2 -5
- package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +7 -2
- package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +10 -2
- package/fesm2022/eo-sdk-client.mjs +44 -31
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/misc/scripts/prebuild-about-state.js +7 -5
- package/package.json +2 -2
|
@@ -140,7 +140,7 @@ let InboxDetailsComponent = class InboxDetailsComponent {
|
|
|
140
140
|
return this.getDMSObject(this.workItem.file[0]).pipe(map(dmsObject => {
|
|
141
141
|
this.dmsObject = dmsObject;
|
|
142
142
|
return res;
|
|
143
|
-
}));
|
|
143
|
+
}), catchError(() => of(res)));
|
|
144
144
|
}
|
|
145
145
|
else {
|
|
146
146
|
return of(res);
|
|
@@ -501,4 +501,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
501
501
|
type: HostBinding,
|
|
502
502
|
args: ['attr.data-type']
|
|
503
503
|
}] } });
|
|
504
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3gtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9pbmJveC1kZXRhaWxzL2luYm94LWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvaW5ib3gtZGV0YWlscy9pbmJveC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFHTCxlQUFlLEVBSWYsVUFBVSxFQUdWLFNBQVMsRUFNVCxLQUFLLEVBSU4sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFhLEVBQUUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQU8xRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRNUQsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUEwQ2hDLElBQ0ksSUFBSSxDQUFDLENBQVk7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sZUFBZTtZQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FB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Q0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZFLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7OEdBMWpCVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixxVUMvQ2xDLHk0U0FzTUE7O0FEdkphLHFCQUFxQjtJQU5qQyxZQUFZLEVBQUU7R0FNRixxQkFBcUIsQ0EyakJqQzs7MkZBM2pCWSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCO21aQUtOLFNBQVM7c0JBQTlCLFNBQVM7dUJBQUMsU0FBUztnQkFvQ1gsT0FBTztzQkFBZixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7dUJBQUMsTUFBTTtnQkFrQnNCLFFBQVE7c0JBQTFDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCcG1TZXJ2aWNlLFxuICBDbGlwYm9hcmQsXG4gIENsaXBib2FyZEFjdGlvbixcbiAgQ2xpcGJvYXJkU2VydmljZSxcbiAgRG1zT2JqZWN0LFxuICBEbXNTZXJ2aWNlLFxuICBFbmFpb0V2ZW50LFxuICBFdmVudFNlcnZpY2UsXG4gIEZpbGVFbnRyeSxcbiAgSW5ib3hJdGVtLFxuICBJbmJveFNlcnZpY2UsXG4gIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHMsXG4gIFdvcmtJdGVtLFxuICBXb3JrSXRlbUFjdGlvbixcbiAgV29ya0l0ZW1IaXN0b3J5RW50cnlcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VtcHR5U3RhdGV9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uQ29uZmlnLCBTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi9vYmplY3QtZm9ybS9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdEZvcm1Db21wb25lbnR9IGZyb20gJy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge0NlbGxSZW5kZXJlcn0gZnJvbSAnLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7SW5kZXhEYXRhfSBmcm9tICcuLi91aS9pbmRleGRhdGEtc3VtbWFyeS9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQnO1xuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1pbmJveC1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luYm94LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmJveC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5ib3hEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgnYnBtRm9ybScpIGJwbUZvcm1FbDogT2JqZWN0Rm9ybUNvbXBvbmVudDtcblxuICBwcml2YXRlIGRlZmF1bHRXb3JrSXRlbUFjdGlvbjogV29ya0l0ZW1BY3Rpb247XG5cbiAgLy8gSUQgc2V0IGJ5IHBlbmRpbmdDaGFuZ2VzIHNlcnZpY2Ugd2hlbiBlZGl0aW5nIGluZGV4ZGF0YVxuICAvLyBVc2VkIHRvIGZpbmlzaCB0aGUgcGVuZGluZyB0YXNrIHdoZW4gZWRpdGluZyBpcyBkb25lXG4gIHByaXZhdGUgcGVuZGluZ1Rhc2tJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2l0ZW06IEluYm94SXRlbTtcbiAgd29ya0l0ZW06IFdvcmtJdGVtO1xuICBoaXN0b3J5OiBXb3JrSXRlbUhpc3RvcnlFbnRyeVtdO1xuICAvLyBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIHdvcmsgaXRlbSBpcyBsb2NrZWQgYnkgdGhlIHVzZXJcbiAgbG9ja2VkOiBib29sZWFuO1xuICAvLyBDT09MLTExNTA2XG4gIHByZXZlbnRDbGlja1Rocm91Z2g6IGJvb2xlYW47XG4gIC8vIGN1cnJlbnQgY2xpcGJvYXJkIGNvbnRlbnRzXG4gIGNsaXBib2FyZDogQ2xpcGJvYXJkO1xuXG4gIC8vIHVzZWQgZm9yIGhhbmRsaW5nIFNVQlNDUklQVElPTlMgYW5kIFJFU1VCTUlTU0lPTlNcbiAgc2V0dGluZ3M6IHtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGFjdGlvblRpdGxlOiBzdHJpbmc7XG4gIH07XG4gIGZvcm1TdGF0ZTogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcbiAgZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICBzZWxlY3RlZENvbnRlbnRGaWxlSWQ6IHN0cmluZztcbiAgd29ya0l0ZW1JbmRleGRhdGE6IEluZGV4RGF0YTtcbiAgcGVyZm9ybWVyU2hvdzogYm9vbGVhbjtcbiAgc3Vic3RpdHV0ZVNob3c6IGJvb2xlYW47XG4gIGFjdGlvblByb2Nlc3Npbmc6IFN1YnNjcmlwdGlvbiB8IGFueSA9IHtjbG9zZWQ6IHRydWV9O1xuICBpbml0aWFsaXppbmc6IFN1YnNjcmlwdGlvbiB8IGFueSA9IHtjbG9zZWQ6IHRydWV9O1xuICBmaWxlc0FkZGluZzogU3Vic2NyaXB0aW9uIHwgYW55ID0ge2Nsb3NlZDogdHJ1ZX07XG4gIGxvYWRFcnJvcjogYm9vbGVhbjtcbiAgc3RvcmFnZUtleUxhc3RJdGVtSUQgPSAnZW8uaW5ib3gubGFzdEl0ZW1JRCc7XG4gIGRtc09iamVjdDogYW55O1xuXG4gIEBJbnB1dCgpIHBsdWdpbnM6IGFueVtdO1xuXG4gIEBJbnB1dCgpIGVtcHR5U3RhdGU6IEVtcHR5U3RhdGU7XG4gIEBJbnB1dCgpIGFwcGx5U2VsZWN0aW9uOiBTZWxlY3Rpb25Db25maWc7XG5cbiAgQElucHV0KCdpdGVtJylcbiAgc2V0IGl0ZW0oaTogSW5ib3hJdGVtKSB7XG4gICAgdGhpcy5faXRlbSA9IGk7XG4gICAgaWYgKGkpIHtcbiAgICAgIC8vIHJlc2V0IHZhbHVlc1xuICAgICAgdGhpcy53b3JrSXRlbSA9IG51bGw7XG4gICAgICB0aGlzLmhpc3RvcnkgPSBbXTtcbiAgICAgIHRoaXMubG9ja2VkID0gZmFsc2U7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucHJvY2VzcygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLm91dCkuZm9jdXMobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW07XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10eXBlJykgZ2V0IGRhdGFUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW0gPyB0aGlzLml0ZW0udHlwZSA6ICdub25lJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYnBtU2VydmljZTogQnBtU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGluYm94U2VydmljZTogSW5ib3hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZ5OiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZVxuICApIHtcbiAgICB0aGlzLmRlZmF1bHRXb3JrSXRlbUFjdGlvbiA9IHtcbiAgICAgIGNvZGU6IDAsXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy50YXNrLmFjdGlvbnMuZGVmYXVsdC50aXRsZScpLFxuICAgICAgdHlwZTogJ0ZPUldBUkQnXG4gICAgfTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgaWYgKHRoaXMuaXRlbS50eXBlID09PSBJbmJveEl0ZW0uVFlQRV9CUE0pIHtcbiAgICAgIHRoaXMuY3JlYXRlQlBNV29ya0l0ZW0oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtID0gdGhpcy5faXRlbTtcbiAgICB9XG4gIH1cblxuICBvbkZvcm1TdGF0dXNDaGFuZ2VkKGV2dDogRm9ybVN0YXR1c0NoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuZm9ybVN0YXRlID0gZXZ0O1xuICAgIGlmICh0aGlzLmZvcm1TdGF0ZS5kaXJ0eSkge1xuICAgICAgdGhpcy5zdGFydFBlbmRpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFBlbmRpbmcoKSB7XG4gICAgLy8gYmVjYXVzZSB0aGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBmb3JtIHN0YXR1cyBjaGFuZ2VzLFxuICAgIC8vIHBlbmRpbmcgdGFzayB3aWxsIG9ubHkgYmUgc3RhcnRlZCBvbmNlIHVudGlsIGl0IHdhcyBmaW5pc2hlZFxuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQgfHwgJyAnKSkge1xuICAgICAgdGhpcy5wZW5kaW5nVGFza0lkID0gdGhpcy5wZW5kaW5nQ2hhbmdlcy5zdGFydFRhc2soKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmlzaFBlbmRpbmcoKSB7XG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy5maW5pc2hUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyB0aGUgY3VycmVudCBpbmJveCBpdGVtXG4gICAqL1xuICBwcml2YXRlIHByb2Nlc3MoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRpYWxpemluZy5jbG9zZWQgPSBmYWxzZTtcblxuICAgIHN3aXRjaCAodGhpcy5pdGVtLnR5cGUpIHtcbiAgICAgIGNhc2UgSW5ib3hJdGVtLlRZUEVfQlBNOiB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nID0gdGhpcy5jcmVhdGVCUE1Xb3JrSXRlbSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgSW5ib3hJdGVtLlRZUEVfU1VCU0NSSVBUSU9OOiB7XG4gICAgICAgIHRoaXMuY3JlYXRlRE1TSXRlbSgnc3Vic2NyaXB0aW9uJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJbmJveEl0ZW0uVFlQRV9SRVNVQk1JU1NJT046IHtcbiAgICAgICAgdGhpcy5jcmVhdGVETVNJdGVtKCdyZXN1Ym1pc3Npb24nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlRE1TSXRlbShkbXNUeXBlKSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHtcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICBgZW8ucHJvY2Vzcy5kZXRhaWxzLnRhc2suJHtkbXNUeXBlfS5kZXNjcmlwdGlvbmBcbiAgICAgICksXG4gICAgICBhY3Rpb25UaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgYGVvLnByb2Nlc3MuZGV0YWlscy5idXR0b24uJHtkbXNUeXBlfS5yZW1vdmVgXG4gICAgICApXG4gICAgfTtcbiAgICB0aGlzLm9wZW5Xb3JrSXRlbUNvbnRlbnQodGhpcy5pdGVtLnRhcmdldCk7XG4gICAgdGhpcy5pbml0aWFsaXppbmcuY2xvc2VkID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRGVmYXVsdEFjdGlvbklmRW1wdHkgPSAocmVzOiBXb3JrSXRlbSk6IFdvcmtJdGVtID0+IHtcbiAgICBpZiAoIXJlcy5hY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgIHJlcy5hY3Rpb25zID0gW3RoaXMuZGVmYXVsdFdvcmtJdGVtQWN0aW9uXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQlBNIHdvcmsgaXRlbSBieSByZXRyaWV2aW5nIGl0IGZyb20gdGhlIEJQTSBzZXJ2aWNlIGFuZCBzZXR0aW5nIHVwIHRoZSB3b3JrIGl0ZW0gZGV0YWlscy5cbiAgICpcbiAgICogQHJldHVybnMge1N1YnNjcmlwdGlvbn0gLSBBIHN1YnNjcmlwdGlvbiB0byB0aGUgb2JzZXJ2YWJsZSB0aGF0IHJldHJpZXZlcyBhbmQgc2V0cyB1cCB0aGUgd29yayBpdGVtLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCUE1Xb3JrSXRlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5icG1TZXJ2aWNlXG4gICAgICAuZ2V0V29ya0l0ZW0odGhpcy5pdGVtLnNvdXJjZUlkLCB0aGlzLml0ZW0uaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHRoaXMuYWRkRGVmYXVsdEFjdGlvbklmRW1wdHkpLFxuICAgICAgICBzd2l0Y2hNYXAocmVzID0+IHtcbiAgICAgICAgICB0aGlzLndvcmtJdGVtID0gcmVzO1xuICAgICAgICAgIGlmICh0aGlzLndvcmtJdGVtLmZpbGUgJiYgdGhpcy53b3JrSXRlbS5maWxlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERNU09iamVjdCh0aGlzLndvcmtJdGVtLmZpbGVbMF0pLnBpcGUoXG4gICAgICAgICAgICAgIG1hcChkbXNPYmplY3QgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZG1zT2JqZWN0ID0gZG1zT2JqZWN0O1xuICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YocmVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dXBXb3JrSXRlbSgpO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybU9wdGlvbnMoXG4gICAgICAgICAgICB0aGlzLndvcmtJdGVtLmZvcm0sXG4gICAgICAgICAgICB0aGlzLndvcmtJdGVtLmRhdGEsXG4gICAgICAgICAgICB0aGlzLndvcmtJdGVtLmFjdGlvbnNcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMub3BlbldvcmtJdGVtQ29udGVudChcbiAgICAgICAgICAgIHRoaXMud29ya0l0ZW0uZmlsZS5sZW5ndGggPyB0aGlzLndvcmtJdGVtLmZpbGVbMF0gOiBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm5vdGlmeS5lcnJvcihcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZGV0YWlscy53b3JraXRlbS5sb2FkLmZhaWwnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICdlby5wcm9jZXNzLmRldGFpbHMud29ya2l0ZW0ubG9hZC5mYWlsLmRlc2NyaXB0aW9uJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1PcHRpb25zKGZvcm0sIGRhdGEsIGFjdGlvbnM6IFdvcmtJdGVtQWN0aW9uW10pIHtcbiAgICBpZiAoZm9ybSkge1xuICAgICAgZm9ybS5zaXR1YXRpb24gPSAnRURJVCc7XG4gICAgICB0aGlzLmZvcm1PcHRpb25zID0ge1xuICAgICAgICAuLi57XG4gICAgICAgICAgZm9ybU1vZGVsOiBmb3JtLFxuICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgYWN0aW9uczogYWN0aW9ucyA/IHRoaXMudHJhbnNmb3JtQWN0aW9ucyhhY3Rpb25zKSA6IHt9LFxuICAgICAgICAgIC8vIGZvcm0gc2NyaXB0IHdpbGwgYmUgcHJvdmlkZWQgd2l0aCB0aGUgbGlzdCBvZiBmaWxlIGVudHJpZXNcbiAgICAgICAgICAvLyBhdHRhY2hlZCB0byB0aGUgY3VycmVudCB3b3JrIGl0ZW1cbiAgICAgICAgICBvYmplY3RzOiB0aGlzLndvcmtJdGVtLmZpbGUsXG4gICAgICAgICAgb2JqZWN0OiB0aGlzLmRtc09iamVjdFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybUFjdGlvbnMoYWN0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJbmJveFNhdGUoKSB7XG4gICAgdGhpcy5pbmJveFNlcnZpY2UucmVmcmVzaEluYm94U3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtQWN0aW9ucyhhY3Rpb25zKSB7XG4gICAgbGV0IHRyYW5zZm9ybWVkQWN0aW9ucyA9IHt9O1xuICAgIGFjdGlvbnMuZm9yRWFjaChhID0+IHtcbiAgICAgIGlmIChhLmZlYXNpYmxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYS5mZWFzaWJsZSA9IHRydWU7XG4gICAgICB9XG4gICAgICBhLmZlYXNpYmlsaXR5ID0gdmFsdWUgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGEuZmVhc2libGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYS5mZWFzaWJsZTtcbiAgICAgIH07XG4gICAgICB0cmFuc2Zvcm1lZEFjdGlvbnNbYS5jb2RlLnRvU3RyaW5nKCldID0gYTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHJhbnNmb3JtZWRBY3Rpb25zO1xuICB9XG5cbiAgLyogTG9ja3MgYSB3b3JrIGl0ZW0gKHBlcnNvbmFsaXplKSAqL1xuICBsb2NrV29ya0l0ZW0oKSB7XG4gICAgdGhpcy5hY3Rpb25Qcm9jZXNzaW5nID0gdGhpcy5icG1TZXJ2aWNlXG4gICAgICAubG9ja1dvcmtJdGVtKHRoaXMud29ya0l0ZW0pXG4gICAgICAucGlwZShtYXAodGhpcy5hZGREZWZhdWx0QWN0aW9uSWZFbXB0eSkpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IHthY3Rpb25zLCBkYXRhLCBmb3JtfSA9IHJlcztcbiAgICAgICAgdGhpcy53b3JrSXRlbSA9IHJlcztcbiAgICAgICAgdGhpcy5zZXR1cFdvcmtJdGVtKCk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybU9wdGlvbnMoZm9ybSwgZGF0YSwgYWN0aW9ucyk7XG4gICAgICAgIHRoaXMudXBkYXRlSW5ib3hTYXRlKCk7XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5JTkJPWF9JVEVNX0xPQ0tFRCk7XG4gICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwOSkge1xuXG4gICAgICAgICAgaWYgKGVycm9yLmVycm9yLmtleSA9PT0gJ0JQTV9DQU5OT1RfUEVSU09OQUxJWkVfV09SS0lURU0nKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeS53YXJuaW5nKHRoaXMud29ya0l0ZW0udGl0bGUsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuYWN0aXZpdHkubG9jay5kZW5pZWQnKSk7XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGVycm9yLmVycm9yLmtleSA9PT0gJ0JQTV9FVkVOVF9TQ1JJUFRfRVhFQ1VUSU9OX0VSUk9SJykge1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkuZXJyb3IodGhpcy53b3JrSXRlbS50aXRsZSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYnBtLmV2ZW50LnNjcmlwdC5leGVjdXRpb24uZXJyb3InKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubm90aWZ5LmVycm9yKHRoaXMud29ya0l0ZW0udGl0bGUsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZ2VuZXJhbC5lcnJvcicpKTtcbiAgICAgICAgfVxuXG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbi1Mb2NrcyBhIHdvcmsgaXRlbSAoZGUtcGVyc29uYWxpemUpXG4gICAqL1xuICB1bmxvY2tXb3JrSXRlbSgpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5hY3Rpb25Qcm9jZXNzaW5nID0gdGhpcy5icG1TZXJ2aWNlXG4gICAgICAgIC51bmxvY2tXb3JrSXRlbSh0aGlzLndvcmtJdGVtKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy53b3JrSXRlbSA9IHJlcztcbiAgICAgICAgICB0aGlzLnNldHVwV29ya0l0ZW0oKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUluYm94U2F0ZSgpO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5JTkJPWF9JVEVNX1VOTE9DS0VEKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5hY3Rpdml0eS51bmxvY2suZGVuaWVkJyksIHRoaXMud29ya0l0ZW0udGl0bGUpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYSB3b3JrIGl0ZW1zIGFjdGlvbi5cbiAgICogQHBhcmFtIGFjdGlvbiBUaGUgYWN0aW9uIHRvIGJlIGV4ZWN1dGVzXG4gICAqL1xuICBleGVjdXRlV29ya0l0ZW1BY3Rpb24oYWN0aW9uOiBXb3JrSXRlbUFjdGlvbikge1xuICAgIHRoaXMucHJldmVudENsaWNrVGhyb3VnaCA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnByZXZlbnRDbGlja1Rocm91Z2ggPSBmYWxzZTtcbiAgICB9LCAxMDAwKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUgfHwgIXRoaXMuZm9ybVN0YXRlLmludmFsaWQpIHtcbiAgICAgICAgaWYgKGFjdGlvbi51cmwpIHtcbiAgICAgICAgICAvLyBwcm9jZXNzIGV4dGVybmFsIGFjdGlvbiBieSBzYXZpbmcgd29yayBpdGVtIGFuZCByZWRpcmVjdCB0byBhY3Rpb25zIHVybFxuICAgICAgICAgIGlmICh0aGlzLmJwbUZvcm1FbCkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25Qcm9jZXNzaW5nID0gdGhpcy5zYXZlV29ya0l0ZW0oKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm9wZW5BY3Rpb25VcmwoYWN0aW9uLnVybCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcGVuQWN0aW9uVXJsKGFjdGlvbi51cmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5icG1Gb3JtRWwpIHtcbiAgICAgICAgICAgIHRoaXMud29ya0l0ZW0uZGF0YSA9IHRoaXMuYnBtRm9ybUVsLmdldEZvcm1EYXRhKCk7XG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHJlbW92ZSBwZW5kaW5nIHRhc2sgYmVjYXVzZSB0aGUgZm9ybSB3aWxsIGJlIGRlc3Ryb3llZCB3aXRob3V0IHNhdmluZ1xuICAgICAgICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuYnBtU2VydmljZVxuICAgICAgICAgICAgLmZvcndhcmRXb3JrSXRlbSh0aGlzLndvcmtJdGVtLCBhY3Rpb24pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZnkuc3VjY2VzcyhcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5icG0uYWN0aXZpdHkuZm9yd2FyZC5zdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtLnRpdGxlXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRoaXMuaXRlbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJwbS5hY3Rpdml0eS5mb3J3YXJkLmVycm9yJyksIHRoaXMud29ya0l0ZW0udGl0bGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIDUwMCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5BY3Rpb25VcmwodXJsOiBzdHJpbmcpIHtcbiAgICBpZiAodXJsLnN1YnN0cigwLCA0KSA9PT0gJ2h0dHAnKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgd29yayBpdGVtIGNvbnRlbnQgZm9yIHRoZSBnaXZlbiBmaWxlIGVudHJ5LlxuICAgKiBJZiBubyBmaWxlIGlzIHByb3ZpZGVkLCBpdCBjbGVhcnMgdGhlIHNlbGVjdGVkIGNvbnRlbnQgZmlsZSBJRCBhbmQgZm9jdXNlcyB0aGUgc2VsZWN0aW9uLlxuICAgKiBJZiBhIGZpbGUgaXMgcHJvdmlkZWQsIGl0IHNldHMgdGhlIHNlbGVjdGVkIGNvbnRlbnQgZmlsZSBJRCwgZm9jdXNlcyB0aGUgc2VsZWN0aW9uIHdpdGggdGhlIGZpbGUgcGFyYW1ldGVycywgYW5kIHVwZGF0ZXMgdGhlIERNUyBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7RmlsZUVudHJ5fSBbZmlsZV0gLSBUaGUgZmlsZSBlbnRyeSBmb3Igd2hpY2ggdGhlIHdvcmsgaXRlbSBjb250ZW50IG5lZWRzIHRvIGJlIG9wZW5lZC4gSWYgbm90IHByb3ZpZGVkLCB0aGUgc2VsZWN0aW9uIHdpbGwgYmUgY2xlYXJlZC5cbiAgICovXG4gIG9wZW5Xb3JrSXRlbUNvbnRlbnQoZmlsZT86IEZpbGVFbnRyeSkge1xuICAgIGlmICghZmlsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENvbnRlbnRGaWxlSWQgPSBudWxsO1xuICAgICAgaWYgKHRoaXMuYXBwbHlTZWxlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLm91dCkuZm9jdXMobnVsbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb250ZW50RmlsZUlkID0gZmlsZS5pZDtcbiAgICAgIGxldCBwYXJhbXMgPSB7XG4gICAgICAgIGlkOiBmaWxlLmlkLFxuICAgICAgICB0eXBlOiBmaWxlLnR5cGVcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhwYXJhbXMpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVETVNPYmplY3QoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIERNUyBvYmplY3QgZm9yIHRoZSBnaXZlbiBmaWxlIGVudHJ5LlxuICAgKlxuICAgKiBAcGFyYW0ge0ZpbGVFbnRyeX0gZmlsZSAtIFRoZSBmaWxlIGVudHJ5IGZvciB3aGljaCB0aGUgRE1TIG9iamVjdCBuZWVkcyB0byBiZSB1cGRhdGVkLlxuICAgKi9cbiAgdXBkYXRlRE1TT2JqZWN0KGZpbGU6IEZpbGVFbnRyeSkge1xuICAgIHRoaXMuZ2V0RE1TT2JqZWN0KGZpbGUpLnN1YnNjcmliZShkbXNPYmplY3QgPT4ge1xuICAgICAgdGhpcy5kbXNPYmplY3QgPSBkbXNPYmplY3Q7XG4gICAgICB0aGlzLnNldEZvcm1PcHRpb25zKFxuICAgICAgICB0aGlzLndvcmtJdGVtLmZvcm0sXG4gICAgICAgIHRoaXMud29ya0l0ZW0uZGF0YSxcbiAgICAgICAgdGhpcy53b3JrSXRlbS5hY3Rpb25zXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIERNUyBvYmplY3QgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZpbGUgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtGaWxlRW50cnl9IGZpbGUgLSBUaGUgZmlsZSBlbnRyeSBvYmplY3QgY29udGFpbmluZyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIERNUyBvYmplY3QuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPERtc09iamVjdD59IC0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXRyaWV2ZWQgRE1TIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgZ2V0RE1TT2JqZWN0KGZpbGU6IEZpbGVFbnRyeSk6IE9ic2VydmFibGU8RG1zT2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RCeVBhcmFtcyhmaWxlKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBmaWxlIChhdHRhY2hlZCBETVNPYmplY3QpIGluIG9iamVjdCBzdGF0ZVxuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgb3BlbldvcmtJdGVtQ29udGVudEluQ29udGV4dChldnQpIHtcbiAgICBjb25zdCBmaWxlOiBGaWxlRW50cnkgPSBldnQuZGF0YSB8fCB7fTtcbiAgICBjb25zdCBmaWxlVHlwZTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczoge3R5cGU6IGZpbGUudHlwZX19O1xuICAgIGlmIChldnQuY3RybEtleSkge1xuICAgICAgd2luZG93Lm9wZW4oQ2VsbFJlbmRlcmVyLndpbmRvd1VSSSh0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnb2JqZWN0JywgZmlsZS5pZF0sIGZpbGVUeXBlKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9vYmplY3QnLCBmaWxlLmlkXSwgZmlsZVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGNsaXBib2FyZCBjb250ZW50IHRvIHRoZSB3b3JrIGl0ZW1cbiAgICovXG4gIGFkZEZyb21DbGlwYm9hcmQoKSB7XG4gICAgdGhpcy5icG1TZXJ2aWNlXG4gICAgICAuYWRkRmlsZUVsZW1lbnRzRnJvbUNsaXBib2FyZCh0aGlzLndvcmtJdGVtLCB0aGlzLmNsaXBib2FyZClcbiAgICAgIC5zdWJzY3JpYmUod29ya0l0ZW0gPT4ge1xuICAgICAgICB0aGlzLndvcmtJdGVtID0gd29ya0l0ZW07XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkU2VydmljZS5jbGVhcigpO1xuXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZENvbnRlbnRGaWxlSWQpIHtcbiAgICAgICAgICAvLyBvcGVuIGZpcnN0IGl0ZW0gd2hlbiBub3RoaW5nIGlzIHNlbGVjdGVkXG4gICAgICAgICAgdGhpcy5vcGVuV29ya0l0ZW1Db250ZW50KHRoaXMud29ya0l0ZW0uZmlsZVswXSk7XG4gICAgICAgIH1cbiAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZmlsZS5ub3RpZmljYXRpb24uZXJyb3InKSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5hZGQubWVzc2FnZScpKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgZmlsZSBlbnRyeSBmcm9tIHRoZSB3b3JrIGl0ZW1zIGZpbGVcbiAgICogQHBhcmFtIGZpbGUgVGhlIGZpbGUgZW50cnkgdG8gYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gZXZ0IFRoZSBjbGljayBldmVudFxuICAgKi9cbiAgcmVtb3ZlV29ya0l0ZW1Db250ZW50KGV2dCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoZXZ0LmRhdGEpIHtcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGVFbnRyeSA9IGV2dC5kYXRhO1xuICAgICAgdGhpcy5icG1TZXJ2aWNlXG4gICAgICAgIC5yZW1vdmVGaWxlRWxlbWVudCh0aGlzLndvcmtJdGVtLnByb2Nlc3NJZCwgdGhpcy53b3JrSXRlbS5pZCwgZmlsZS5pZClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy53b3JrSXRlbS5maWxlID0gdGhpcy53b3JrSXRlbS5maWxlLmZpbHRlcihmID0+IGYuaWQgIT09IGZpbGUuaWQpO1xuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9PT0gZmlsZS5pZCkge1xuICAgICAgICAgICAgdGhpcy5vcGVuV29ya0l0ZW1Db250ZW50KFxuICAgICAgICAgICAgICB0aGlzLndvcmtJdGVtLmZpbGUubGVuZ3RoID8gdGhpcy53b3JrSXRlbS5maWxlWzBdIDogbnVsbFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZmlsZS5ub3RpZmljYXRpb24ucmVtb3ZlJyksIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZmlsZS5ub3RpZmljYXRpb24ucmVtb3ZlLm1lc3NhZ2UnKSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIHRoZSB3b3JrIGl0ZW1zIGZvcm0gZGF0YVxuICAgKi9cbiAgc2F2ZVdvcmtJdGVtRGF0YSgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm1TdGF0ZSAmJiAhdGhpcy5mb3JtU3RhdGUuaW52YWxpZCAmJiB0aGlzLmZvcm1TdGF0ZS5kaXJ0eSkge1xuICAgICAgICB0aGlzLmFjdGlvblByb2Nlc3NpbmcgPSB0aGlzLnNhdmVXb3JrSXRlbSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVJbmJveFNhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHByZXBhcmVOZXdXb3JrSXRlbSh3b3JrSXRlbTogV29ya0l0ZW0pOiBib29sZWFuIHtcbiAgICB0aGlzLndvcmtJdGVtID0gd29ya0l0ZW07XG4gICAgY29uc3Qge2FjdGlvbnMsIGZvcm0sIGRhdGF9ID0gdGhpcy53b3JrSXRlbTtcbiAgICB0aGlzLnNldHVwV29ya0l0ZW0oKTtcbiAgICB0aGlzLnNldEZvcm1PcHRpb25zKGZvcm0sIGRhdGEsIGFjdGlvbnMpO1xuICAgIHRoaXMubm90aWZ5LnN1Y2Nlc3MoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5icG0uYWN0aXZpdHkuaW5kZXhkYXRhLnNhdmUuc3VjY2VzcycpXG4gICAgKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgY3VycmVudCB3b3JrIGl0ZW1cbiAgICovXG4gIHByaXZhdGUgc2F2ZVdvcmtJdGVtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy53b3JrSXRlbS5kYXRhID0gdGhpcy5icG1Gb3JtRWwuZ2V0Rm9ybURhdGEoKTtcbiAgICByZXR1cm4gdGhpcy5icG1TZXJ2aWNlLnNhdmVXb3JrSXRlbSh0aGlzLndvcmtJdGVtKS5waXBlKFxuICAgICAgbWFwKHRoaXMuYWRkRGVmYXVsdEFjdGlvbklmRW1wdHkpLFxuICAgICAgbWFwKHdvcmtJdGVtID0+IHRoaXMucHJlcGFyZU5ld1dvcmtJdGVtKHdvcmtJdGVtKSksXG4gICAgICBjYXRjaEVycm9yKFxuICAgICAgICBVdGlscy5jYXRjaChcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJwbS5hY3Rpdml0eS5pbmRleGRhdGEuc2F2ZS5lcnJvcicpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIGN1cnJlbnQgaXRlbSBmcm9tIHRoZSBpbmJveC5cbiAgICovXG4gIGNvbmZpcm1JbmJveEl0ZW0oKSB7XG4gICAgdGhpcy5wcmV2ZW50Q2xpY2tUaHJvdWdoID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucHJldmVudENsaWNrVGhyb3VnaCA9IGZhbHNlO1xuICAgIH0sIDEwMDApO1xuICAgIHRoaXMuYWN0aW9uUHJvY2Vzc2luZyA9IHRoaXMuaW5ib3hTZXJ2aWNlXG4gICAgICAucmVtb3ZlSXRlbSh0aGlzLml0ZW0pXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZnkuc3VjY2VzcyhcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5hY3Rpdml0eS5jb25maXJtLnN1Y2Nlc3MnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuSU5CT1hfSVRFTV9DT05GSVJNRUQsIHRoaXMuaXRlbSk7XG4gICAgICAgIHRoaXMuaXRlbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5pbmJveFNlcnZpY2UucmVmcmVzaEluYm94U3RhdGUoKTtcbiAgICAgIH0sIFV0aWxzLmNhdGNoKG51bGwsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuaXRlbS5yZW1vdmUuZmFpbCcpKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCBzdGF0ZSBhbmQgZGF0YSBmb3IgdGhlIGN1cnJlbnQgd29yayBpdGVtLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cFdvcmtJdGVtKCkge1xuICAgIHRoaXMubG9ja2VkID0gdGhpcy53b3JrSXRlbS5zdGF0ZSA9PT0gJ1BFUlNPTic7XG4gICAgdGhpcy5wcmV2ZW50Q2xpY2tUaHJvdWdoID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucHJldmVudENsaWNrVGhyb3VnaCA9IGZhbHNlLCAxMDAwKTtcbiAgICBjb25zdCB7Zm9ybSwgZGF0YX0gPSB0aGlzLndvcmtJdGVtO1xuICAgIGNvbnN0IHdvcmtJdGVtID0ge2Zvcm0sIGRhdGF9O1xuICAgIHRoaXMud29ya0l0ZW1JbmRleGRhdGEgPSBmb3JtICYmIGRhdGEgPyB3b3JrSXRlbSA6IG51bGw7XG5cbiAgICAvLyBmZXRjaCBoaXN0b3J5XG4gICAgdGhpcy5icG1TZXJ2aWNlXG4gICAgICAuZ2V0UHJvY2Vzc0hpc3RvcnkodGhpcy53b3JrSXRlbS5wcm9jZXNzSWQpXG4gICAgICAucGlwZShtYXAocmVzID0+IHtcbiAgICAgICAgcmVzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0uZWRpdG9yKSB7XG4gICAgICAgICAgICBpdGVtLmRhdGEuaW1hZ2UgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldFVzZXJJbWFnZVVyaShpdGVtLmVkaXRvci5pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gc29ydCBieSBudW1iZXIgYmVjYXVzZSB0aGlzIGlzIHRoZSBhdXRvLWluY3JlbWVudGluZ1xuICAgICAgICAvLyBpbmRleCBvZiBhZGRlZCBoaXN0b3J5IGVudHJpZXNcbiAgICAgICAgdGhpcy5oaXN0b3J5ID0gcmVzLnNvcnQoKGEsIGIpID0+IGIubnVtYmVyIC0gYS5udW1iZXIpO1xuICAgICAgfSkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB0cmFja0J5Q29kZShpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpdGVtLmNvZGU7XG4gIH1cblxuICB0cmFja0J5SWQoaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIHN1YnNjcmliZSBmb3IgY2hhbmdlcyB0byB0aGUgY2xpcGJvYXJkIHRvIGVuYWJsZSBhZGRpbmcgY29udGVudHMgdG8gdGhlIHdvcmsgaXRlbVxuICAgIHRoaXMuY2xpcGJvYXJkU2VydmljZS5jbGlwYm9hcmQkXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChjbGlwYm9hcmQ6IENsaXBib2FyZCkgPT5cbiAgICAgICAgKHRoaXMuY2xpcGJvYXJkID1cbiAgICAgICAgICBjbGlwYm9hcmQuYWN0aW9uID09PSBDbGlwYm9hcmRBY3Rpb24uQ09QWSA/IGNsaXBib2FyZCA6IG51bGwpXG4gICAgICApO1xuICAgIC8vIGNvbXBvbmVudCBpcyBvbmx5IGludGVyZXN0ZWQgaW4gY29waWVkIGl0ZW1zXG5cbiAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb25cbiAgICAgICAgLmZpbmQodGhpcy5hcHBseVNlbGVjdGlvbi5pbilcbiAgICAgICAgLmZvY3VzJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5pdGVtID0gaXRlbTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXlMYXN0SXRlbUlELCB0aGlzLml0ZW0uaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5ib3gtZGV0YWlsc1wiICpuZ0lmPVwiaXRlbTsgZWxzZSBub0l0ZW1cIiBbbmdDbGFzc109XCJ7YnBtOiBpdGVtLnR5cGUgPT09ICdCUE0nfVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJlby1oZWFkXCIgW25nQ2xhc3NdPVwieydlby1oZWFkLXRhYnMnOiBpdGVtLnR5cGUgPT09ICdCUE0nfVwiPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJlby1oZWFkZXJcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiAqbmdJZj1cIiFpdGVtLmljb25JZFwiIHRpdGxlPVwie3tpdGVtPy50eXBlfX1cIlxuICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19sb29wLnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImVvLWhlYWRlci1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25JZFwiIHRpdGxlPVwie3tpdGVtPy50eXBlfX1cIiBbaWNvbklkXT1cIml0ZW0uaWNvbklkXCI+PC9lby1pY29uPlxuICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1pbmZvXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImVvLWhlYWRlci10aXRsZVwiPnt7aXRlbS50aXRsZX19PC9oMj5cbiAgICAgICAgPGgzICpuZ0lmPVwiaXRlbS5kZXNjcmlwdGlvblwiIGNsYXNzPVwiZW8taGVhZGVyLXN1YnRpdGxlXCI+e3tpdGVtLmRlc2NyaXB0aW9ufX08L2gzPlxuICAgICAgICA8aDMgKm5nSWY9XCJ3b3JrSXRlbSAmJiAhaXRlbS5kZXNjcmlwdGlvblwiIGNsYXNzPVwiZW8taGVhZGVyLXN1YnRpdGxlXCI+e3t3b3JrSXRlbS5wcm9jZXNzVGl0bGUgPyB3b3JrSXRlbS5wcm9jZXNzVGl0bGUgOiB3b3JrSXRlbS5xbW9kZWxuYW1lfX08L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcmVmcmVzaC1idXR0b25cIiAqbmdJZj1cImluaXRpYWxpemluZy5jbG9zZWRcIiAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIiBbaWNvblRpdGxlXT1cIignZW8ubGlzdC5yZWZyZXNoJyB8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2hlYWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImVvLWJvZHlcIiAqbmdJZj1cImluaXRpYWxpemluZy5jbG9zZWRcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJsb2FkLWVycm9yXCIgKm5nSWY9XCJsb2FkRXJyb3JcIj5cbiAgICAgIDxlby1lcnJvci1tZXNzYWdlPjwvZW8tZXJyb3ItbWVzc2FnZT5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gZGV0YWlscyBmb3IgQlBNIGl0ZW1zIC0tPlxuICAgIDx5dmMtdGFicyAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ0JQTSc7IGVsc2UgZG1zVGFza1wiIGxheW91dFNldHRpbmdzSUQ9XCJlby5pbmJveC5kZXRhaWxzLnRhYnNcIj5cbiAgICAgIDwhLS0gdGFzayAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbeXZjVGFiXT1cIntpZDogJ3Rhc2snLCBsYWJlbDogJ2VvLnByb2Nlc3MuZGV0YWlscy50YWIudGFzaycgfCB0cmFuc2xhdGV9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZWxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgdGFza1wiPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzcy1kZXNjcmlwdGlvblwiICpuZ0lmPVwid29ya0l0ZW0/LmRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxoMyB0cmFuc2xhdGU+ZW8ucHJvY2Vzcy5kZXRhaWxzLnRhYi50YXNrLmRlc2NyaXB0aW9uPC9oMz5cbiAgICAgICAgICAgICAgPGRpdj57e3dvcmtJdGVtLmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZW8tZHVldGltZUluZm8gKm5nSWY9XCJpdGVtPy5kdWV0aW1lXCIgW2l0ZW1dPVwiaXRlbVwiPjwvZW8tZHVldGltZUluZm8+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLXBlcmZvcm1lclwiICpuZ0lmPVwid29ya0l0ZW0/LmluU3Vic3RpdHV0ZU9mPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRcIiBbbmdDbGFzc109XCJ7cGVyZm9ybWVyU2hvdzogc3Vic3RpdHV0ZVNob3d9XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgdHJhbnNsYXRlPmVvLnByb2Nlc3Muc3Vic3RpdHV0ZTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25cIiAoY2xpY2spPVwic3Vic3RpdHV0ZVNob3cgPSAhc3Vic3RpdHV0ZVNob3dcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudFwiPnt7d29ya0l0ZW0uaW5TdWJzdGl0dXRlT2YubGVuZ3RofX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Fycm93X2Rvd24uc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCIgKm5nSWY9XCJzdWJzdGl0dXRlU2hvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJmb3JtZXJcIiAqbmdGb3I9XCJsZXQgdSBvZiB3b3JrSXRlbS5pblN1YnN0aXR1dGVPZlwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19vcmdhX3VzZXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e3UuZmlyc3RuYW1lfX0ge3t1Lmxhc3RuYW1lfX0gPHNwYW4gY2xhc3M9XCJxbmFtZVwiPnt7dS5uYW1lfX08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2NrZWQ7IGVsc2UgdW5sb2NrZWRcIj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzcy1mb3JtXCI+XG4gICAgICAgICAgICAgICAgPGVvLW9iamVjdC1mb3JtIFtmb3JtT3B0aW9uc109XCJmb3JtT3B0aW9uc1wiICpuZ0lmPVwid29ya0l0ZW0/LmZvcm1cIlxuICAgICAgICAgICAgICAgICAgKHN0YXR1c0NoYW5nZWQpPVwib25Gb3JtU3RhdHVzQ2hhbmdlZCgkZXZlbnQpXCIgI2JwbUZvcm0+PC9lby1vYmplY3QtZm9ybT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN1bmxvY2tlZD5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm90aWNlXCIgdHJhbnNsYXRlPmVvLnByb2Nlc3MudGFzay5jb250aW51ZTwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLXBlcmZvcm1lclwiICpuZ0lmPVwid29ya0l0ZW1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZFwiIFtuZ0NsYXNzXT1cIntwZXJmb3JtZXJTaG93OiBwZXJmb3JtZXJTaG93fVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgdHJhbnNsYXRlPmVvLnByb2Nlc3MucmVjaXBpZW50czwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvblwiIChjbGljayk9XCJwZXJmb3JtZXJTaG93ID0gIXBlcmZvcm1lclNob3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50XCI+e3t3b3JrSXRlbS5wZXJmb3JtZXIudXNlcnMubGVuZ3RoICsgd29ya0l0ZW0ucGVyZm9ybWVyLnJvbGVzLmxlbmd0aCArXG4gICAgICAgICAgICAgICAgICAgICAgd29ya0l0ZW0ucGVyZm9ybWVyLmdyb3Vwcy5sZW5ndGh9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICpuZ0lmPVwicGVyZm9ybWVyU2hvd1wiPlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVyZm9ybWVyXCIgKm5nRm9yPVwibGV0IGcgb2Ygd29ya0l0ZW0ucGVyZm9ybWVyLmdyb3Vwc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfb3JnYV9ncm91cC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e2cubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcmZvcm1lclwiICpuZ0Zvcj1cImxldCByIG9mIHdvcmtJdGVtLnBlcmZvcm1lci5yb2xlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfb3JnYV9yb2xlLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7ci5uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVyZm9ybWVyXCIgKm5nRm9yPVwibGV0IHUgb2Ygd29ya0l0ZW0ucGVyZm9ybWVyLnVzZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19vcmdhX3VzZXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3t1LmZpcnN0bmFtZX19IHt7dS5sYXN0bmFtZX19IDxzcGFuIGNsYXNzPVwicW5hbWVcIj57e3UubmFtZX19PC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmRleGRhdGFcIiAqbmdJZj1cIndvcmtJdGVtSW5kZXhkYXRhPy5kYXRhXCI+XG4gICAgICAgICAgICAgICAgPGgzIHRyYW5zbGF0ZT5lby5wcm9jZXNzLmRldGFpbHMudGFiLnRhc2suaW5kZXhkYXRhPC9oMz5cbiAgICAgICAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnkgW2luZGV4ZGF0YV09XCJ3b3JrSXRlbUluZGV4ZGF0YVwiPjwvZW8taW5kZXhkYXRhLXN1bW1hcnk+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvY2tlZDsgZWxzZSB1bmxvY2tlZEFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWFjdGlvbnNcIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6ICFhY3Rpb25Qcm9jZXNzaW5nLmNsb3NlZH1cIj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi11bmxvY2tcIiAoY2xpY2spPVwidW5sb2NrV29ya0l0ZW0oKVwiIHRyYW5zbGF0ZT5lby5wcm9jZXNzLmRlcGVyc29uYWxpemU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXNhdmVcIiAoY2xpY2spPVwic2F2ZVdvcmtJdGVtRGF0YSgpXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwid29ya0l0ZW0/LmZvcm0gJiYgIWZvcm1TdGF0ZT8uaW52YWxpZCAmJiBmb3JtU3RhdGU/LmRpcnR5XCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5vYmplY3QuaW5kZXhkYXRhLnNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaW1hcnlcIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6IHByZXZlbnRDbGlja1Rocm91Z2h9XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnkgYnRuLWV4ZWN1dGVcIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHdvcmtJdGVtLmFjdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlDb2RlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleGVjdXRlV29ya0l0ZW1BY3Rpb24oYWN0aW9uKVwiIFtuZ0NsYXNzXT1cIntleHQ6IGFjdGlvbi51cmx9XCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoISFmb3JtU3RhdGUgJiYgZm9ybVN0YXRlPy5pbnZhbGlkKSB8fCAhYWN0aW9uLmZlYXNpYmxlXCI+e3thY3Rpb24udGl0bGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN1bmxvY2tlZEFjdGlvbnM+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzcy1hY3Rpb25zXCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiAhYWN0aW9uUHJvY2Vzc2luZy5jbG9zZWQgfHwgIXdvcmtJdGVtfVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5IGJ0bi1sb2NrXCIgKGNsaWNrKT1cImxvY2tXb3JrSXRlbSgpXCIgdHJhbnNsYXRlPmVvLnByb2Nlc3MucGVyc29uYWxpemU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPCEtLSBoaXN0b3J5IC0tPlxuICAgICAgPG5nLXRlbXBsYXRlIFt5dmNUYWJdPVwie2lkOiAnaGlzdG9yeScsIGxhYmVsOiAnZW8ucHJvY2Vzcy5kZXRhaWxzLnRhYi5wcm9ncmVzcycgfCB0cmFuc2xhdGV9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZWxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgcHJvY2Vzcy1oaXN0b3J5XCI+XG4gICAgICAgICAgICA8ZW8tcHJvY2Vzcy1oaXN0b3J5IFtoaXN0b3J5XT1cImhpc3RvcnlcIj48L2VvLXByb2Nlc3MtaGlzdG9yeT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8IS0tIGF0dGFjaG1lbnRzIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlIFt5dmNUYWJdPVwie2lkOiAnZmlsZScsIGxhYmVsOiAnZW8ucHJvY2Vzcy5kZXRhaWxzLnRhYi5hdHRhY2htZW50cycgfCB0cmFuc2xhdGV9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZWxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgcHJvY2Vzcy1maWxlc1wiPlxuICAgICAgICAgICAgPGVvLXByb2Nlc3MtZmlsZSBbcHJvY2Vzc0ZpbGVdPVwid29ya0l0ZW0/LmZpbGVcIiBbcGVybWlzc2lvbnNdPVwid29ya0l0ZW0/LmZpbGVFbnRyeVBlcm1pc3Npb25zXCJcbiAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiIWZpbGVzQWRkaW5nLmNsb3NlZFwiIFtjbGlwYm9hcmRdPVwiY2xpcGJvYXJkXCIgW2VkaXRhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICBbc2VsZWN0ZWRDb250ZW50RmlsZUlkXT1cInNlbGVjdGVkQ29udGVudEZpbGVJZFwiXG4gICAgICAgICAgICAgIChvbk9wZW5Xb3JrSXRlbUNvbnRlbnRJbkNvbnRleHQpPVwib3BlbldvcmtJdGVtQ29udGVudEluQ29udGV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uT3BlbldvcmtJdGVtQ29udGVudCk9XCJvcGVuV29ya0l0ZW1Db250ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAob25SZW1vdmVXb3JrSXRlbUNvbnRlbnQpPVwicmVtb3ZlV29ya0l0ZW1Db250ZW50KCRldmVudClcIiAob25QYXN0ZVByb2Nlc3NGaWxlKT1cImFkZEZyb21DbGlwYm9hcmQoKVwiPlxuICAgICAgICAgICAgPC9lby1wcm9jZXNzLWZpbGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPCEtLSBwbHVnaW4gdGFicyAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdGb3I9XCJsZXQgcCBvZiBwbHVnaW5zXCIgW3l2Y1RhYl09XCJ7aWQ6IHAuaWQsIGxhYmVsOiBwLmlkIHwgdHJhbnNsYXRlfVwiPlxuICAgICAgICA8ZW8tcGx1Z2luIFtpZF09XCJwLmlkXCIgW3BhcmVudF09XCJ0aGlzXCI+PC9lby1wbHVnaW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwveXZjLXRhYnM+XG5cbiAgICA8IS0tIGJvZHkgd2hlbiB3ZSBoYXZlIGEgc3Vic2NyaXB0aW9uIG9yIGEgcmVzdWJtaXNzaW9uIC0tPlxuICAgIDxuZy10ZW1wbGF0ZSAjZG1zVGFzaz5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxoMyB0cmFuc2xhdGU+ZW8ucHJvY2Vzcy5kZXRhaWxzLnRhYi50YXNrLmRlc2NyaXB0aW9uPC9oMz5cbiAgICAgICAgICAgIDxkaXY+e3tzZXR0aW5ncz8uZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIGFjdGlvbnMgZm9yIHRoZSBjdXJyZW50IHByb2Nlc3MgaXRlbSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtYWN0aW9uc1wiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWFjdGlvblByb2Nlc3NpbmcuY2xvc2VkfVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeSBidG4tY29uZmlybVwiIFtkaXNhYmxlZF09XCJwcmV2ZW50Q2xpY2tUaHJvdWdoXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1JbmJveEl0ZW0oKVwiPnt7c2V0dGluZ3M/LmFjdGlvblRpdGxlfX08L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbm9JdGVtPlxuICA8ZW8tZXJyb3ItbWVzc2FnZSBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogZW1wdHlTdGF0ZS5pY29uLCB0ZXh0OiBlbXB0eVN0YXRlLnRleHQsIGNsYXNzTmFtZTogZW1wdHlTdGF0ZS5jbGFzc05hbWV9XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L2VvLWVycm9yLW1lc3NhZ2U+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
504
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3gtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9pbmJveC1kZXRhaWxzL2luYm94LWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvaW5ib3gtZGV0YWlscy9pbmJveC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFHTCxlQUFlLEVBSWYsVUFBVSxFQUdWLFNBQVMsRUFNVCxLQUFLLEVBSU4sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFhLEVBQUUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQU8xRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRNUQsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUEwQ2hDLElBQ0ksSUFBSSxDQUFDLENBQVk7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sZUFBZTtZQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FB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QUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkUsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQzs4R0EzakJVLHFCQUFxQjtrR0FBckIscUJBQXFCLHFVQy9DbEMseTRTQXNNQTs7QUR2SmEscUJBQXFCO0lBTmpDLFlBQVksRUFBRTtHQU1GLHFCQUFxQixDQTRqQmpDOzsyRkE1akJZLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7bVpBS04sU0FBUztzQkFBOUIsU0FBUzt1QkFBQyxTQUFTO2dCQW9DWCxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdGLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxNQUFNO2dCQWtCc0IsUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJwbVNlcnZpY2UsXG4gIENsaXBib2FyZCxcbiAgQ2xpcGJvYXJkQWN0aW9uLFxuICBDbGlwYm9hcmRTZXJ2aWNlLFxuICBEbXNPYmplY3QsXG4gIERtc1NlcnZpY2UsXG4gIEVuYWlvRXZlbnQsXG4gIEV2ZW50U2VydmljZSxcbiAgRmlsZUVudHJ5LFxuICBJbmJveEl0ZW0sXG4gIEluYm94U2VydmljZSxcbiAgTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlLFxuICBVdGlscyxcbiAgV29ya0l0ZW0sXG4gIFdvcmtJdGVtQWN0aW9uLFxuICBXb3JrSXRlbUhpc3RvcnlFbnRyeVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RW1wdHlTdGF0ZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3Rpb25Db25maWcsIFNlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0Zvcm1TdGF0dXNDaGFuZ2VkRXZlbnR9IGZyb20gJy4uL29iamVjdC1mb3JtL2Zvcm0tc3RhdHVzLWNoYW5nZWQtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7Q2VsbFJlbmRlcmVyfSBmcm9tICcuLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtJbmRleERhdGF9IGZyb20gJy4uL3VpL2luZGV4ZGF0YS1zdW1tYXJ5L2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudCc7XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWluYm94LWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5ib3gtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luYm94LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbmJveERldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdicG1Gb3JtJykgYnBtRm9ybUVsOiBPYmplY3RGb3JtQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgZGVmYXVsdFdvcmtJdGVtQWN0aW9uOiBXb3JrSXRlbUFjdGlvbjtcblxuICAvLyBJRCBzZXQgYnkgcGVuZGluZ0NoYW5nZXMgc2VydmljZSB3aGVuIGVkaXRpbmcgaW5kZXhkYXRhXG4gIC8vIFVzZWQgdG8gZmluaXNoIHRoZSBwZW5kaW5nIHRhc2sgd2hlbiBlZGl0aW5nIGlzIGRvbmVcbiAgcHJpdmF0ZSBwZW5kaW5nVGFza0lkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfaXRlbTogSW5ib3hJdGVtO1xuICB3b3JrSXRlbTogV29ya0l0ZW07XG4gIGhpc3Rvcnk6IFdvcmtJdGVtSGlzdG9yeUVudHJ5W107XG4gIC8vIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgd29yayBpdGVtIGlzIGxvY2tlZCBieSB0aGUgdXNlclxuICBsb2NrZWQ6IGJvb2xlYW47XG4gIC8vIENPT0wtMTE1MDZcbiAgcHJldmVudENsaWNrVGhyb3VnaDogYm9vbGVhbjtcbiAgLy8gY3VycmVudCBjbGlwYm9hcmQgY29udGVudHNcbiAgY2xpcGJvYXJkOiBDbGlwYm9hcmQ7XG5cbiAgLy8gdXNlZCBmb3IgaGFuZGxpbmcgU1VCU0NSSVBUSU9OUyBhbmQgUkVTVUJNSVNTSU9OU1xuICBzZXR0aW5nczoge1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgYWN0aW9uVGl0bGU6IHN0cmluZztcbiAgfTtcbiAgZm9ybVN0YXRlOiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50O1xuICBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIHNlbGVjdGVkQ29udGVudEZpbGVJZDogc3RyaW5nO1xuICB3b3JrSXRlbUluZGV4ZGF0YTogSW5kZXhEYXRhO1xuICBwZXJmb3JtZXJTaG93OiBib29sZWFuO1xuICBzdWJzdGl0dXRlU2hvdzogYm9vbGVhbjtcbiAgYWN0aW9uUHJvY2Vzc2luZzogU3Vic2NyaXB0aW9uIHwgYW55ID0ge2Nsb3NlZDogdHJ1ZX07XG4gIGluaXRpYWxpemluZzogU3Vic2NyaXB0aW9uIHwgYW55ID0ge2Nsb3NlZDogdHJ1ZX07XG4gIGZpbGVzQWRkaW5nOiBTdWJzY3JpcHRpb24gfCBhbnkgPSB7Y2xvc2VkOiB0cnVlfTtcbiAgbG9hZEVycm9yOiBib29sZWFuO1xuICBzdG9yYWdlS2V5TGFzdEl0ZW1JRCA9ICdlby5pbmJveC5sYXN0SXRlbUlEJztcbiAgZG1zT2JqZWN0OiBhbnk7XG5cbiAgQElucHV0KCkgcGx1Z2luczogYW55W107XG5cbiAgQElucHV0KCkgZW1wdHlTdGF0ZTogRW1wdHlTdGF0ZTtcbiAgQElucHV0KCkgYXBwbHlTZWxlY3Rpb246IFNlbGVjdGlvbkNvbmZpZztcblxuICBASW5wdXQoJ2l0ZW0nKVxuICBzZXQgaXRlbShpOiBJbmJveEl0ZW0pIHtcbiAgICB0aGlzLl9pdGVtID0gaTtcbiAgICBpZiAoaSkge1xuICAgICAgLy8gcmVzZXQgdmFsdWVzXG4gICAgICB0aGlzLndvcmtJdGVtID0gbnVsbDtcbiAgICAgIHRoaXMuaGlzdG9yeSA9IFtdO1xuICAgICAgdGhpcy5sb2NrZWQgPSBmYWxzZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcm9jZXNzKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhudWxsKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXRlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR5cGUnKSBnZXQgZGF0YVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbSA/IHRoaXMuaXRlbS50eXBlIDogJ25vbmUnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBicG1TZXJ2aWNlOiBCcG1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2xpcGJvYXJkU2VydmljZTogQ2xpcGJvYXJkU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZnk6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZGVmYXVsdFdvcmtJdGVtQWN0aW9uID0ge1xuICAgICAgY29kZTogMCxcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5wcm9jZXNzLnRhc2suYWN0aW9ucy5kZWZhdWx0LnRpdGxlJyksXG4gICAgICB0eXBlOiAnRk9SV0FSRCdcbiAgICB9O1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICBpZiAodGhpcy5pdGVtLnR5cGUgPT09IEluYm94SXRlbS5UWVBFX0JQTSkge1xuICAgICAgdGhpcy5jcmVhdGVCUE1Xb3JrSXRlbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLml0ZW0gPSB0aGlzLl9pdGVtO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9ybVN0YXR1c0NoYW5nZWQoZXZ0OiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5mb3JtU3RhdGUgPSBldnQ7XG4gICAgaWYgKHRoaXMuZm9ybVN0YXRlLmRpcnR5KSB7XG4gICAgICB0aGlzLnN0YXJ0UGVuZGluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIHRoZSBjdXJyZW50IGluYm94IGl0ZW1cbiAgICovXG4gIHByaXZhdGUgcHJvY2VzcygpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRFcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuaW5pdGlhbGl6aW5nLmNsb3NlZCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoICh0aGlzLml0ZW0udHlwZSkge1xuICAgICAgY2FzZSBJbmJveEl0ZW0uVFlQRV9CUE06IHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXppbmcgPSB0aGlzLmNyZWF0ZUJQTVdvcmtJdGVtKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJbmJveEl0ZW0uVFlQRV9TVUJTQ1JJUFRJT046IHtcbiAgICAgICAgdGhpcy5jcmVhdGVETVNJdGVtKCdzdWJzY3JpcHRpb24nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEluYm94SXRlbS5UWVBFX1JFU1VCTUlTU0lPTjoge1xuICAgICAgICB0aGlzLmNyZWF0ZURNU0l0ZW0oJ3Jlc3VibWlzc2lvbicpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjcmVhdGVETVNJdGVtKGRtc1R5cGUpIHtcbiAgICB0aGlzLnNldHRpbmdzID0ge1xuICAgICAgZGVzY3JpcHRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgIGBlby5wcm9jZXNzLmRldGFpbHMudGFzay4ke2Rtc1R5cGV9LmRlc2NyaXB0aW9uYFxuICAgICAgKSxcbiAgICAgIGFjdGlvblRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICBgZW8ucHJvY2Vzcy5kZXRhaWxzLmJ1dHRvbi4ke2Rtc1R5cGV9LnJlbW92ZWBcbiAgICAgIClcbiAgICB9O1xuICAgIHRoaXMub3BlbldvcmtJdGVtQ29udGVudCh0aGlzLml0ZW0udGFyZ2V0KTtcbiAgICB0aGlzLmluaXRpYWxpemluZy5jbG9zZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGREZWZhdWx0QWN0aW9uSWZFbXB0eSA9IChyZXM6IFdvcmtJdGVtKTogV29ya0l0ZW0gPT4ge1xuICAgIGlmICghcmVzLmFjdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmVzLmFjdGlvbnMgPSBbdGhpcy5kZWZhdWx0V29ya0l0ZW1BY3Rpb25dO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBCUE0gd29yayBpdGVtIGJ5IHJldHJpZXZpbmcgaXQgZnJvbSB0aGUgQlBNIHNlcnZpY2UgYW5kIHNldHRpbmcgdXAgdGhlIHdvcmsgaXRlbSBkZXRhaWxzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7U3Vic2NyaXB0aW9ufSAtIEEgc3Vic2NyaXB0aW9uIHRvIHRoZSBvYnNlcnZhYmxlIHRoYXQgcmV0cmlldmVzIGFuZCBzZXRzIHVwIHRoZSB3b3JrIGl0ZW0uXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUJQTVdvcmtJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmJwbVNlcnZpY2VcbiAgICAgIC5nZXRXb3JrSXRlbSh0aGlzLml0ZW0uc291cmNlSWQsIHRoaXMuaXRlbS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAodGhpcy5hZGREZWZhdWx0QWN0aW9uSWZFbXB0eSksXG4gICAgICAgIHN3aXRjaE1hcChyZXMgPT4ge1xuICAgICAgICAgIHRoaXMud29ya0l0ZW0gPSByZXM7XG4gICAgICAgICAgaWYgKHRoaXMud29ya0l0ZW0uZmlsZSAmJiB0aGlzLndvcmtJdGVtLmZpbGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RE1TT2JqZWN0KHRoaXMud29ya0l0ZW0uZmlsZVswXSkucGlwZShcbiAgICAgICAgICAgICAgbWFwKGRtc09iamVjdCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kbXNPYmplY3QgPSBkbXNPYmplY3Q7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVzKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZihyZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR1cFdvcmtJdGVtKCk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtT3B0aW9ucyhcbiAgICAgICAgICAgIHRoaXMud29ya0l0ZW0uZm9ybSxcbiAgICAgICAgICAgIHRoaXMud29ya0l0ZW0uZGF0YSxcbiAgICAgICAgICAgIHRoaXMud29ya0l0ZW0uYWN0aW9uc1xuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5vcGVuV29ya0l0ZW1Db250ZW50KFxuICAgICAgICAgICAgdGhpcy53b3JrSXRlbS5maWxlLmxlbmd0aCA/IHRoaXMud29ya0l0ZW0uZmlsZVswXSA6IG51bGxcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIHRoaXMubm90aWZ5LmVycm9yKFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5kZXRhaWxzLndvcmtpdGVtLmxvYWQuZmFpbCcpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2VvLnByb2Nlc3MuZGV0YWlscy53b3JraXRlbS5sb2FkLmZhaWwuZGVzY3JpcHRpb24nXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rm9ybU9wdGlvbnMoZm9ybSwgZGF0YSwgYWN0aW9uczogV29ya0l0ZW1BY3Rpb25bXSkge1xuICAgIGlmIChmb3JtKSB7XG4gICAgICBmb3JtLnNpdHVhdGlvbiA9ICdFRElUJztcbiAgICAgIHRoaXMuZm9ybU9wdGlvbnMgPSB7XG4gICAgICAgIC4uLntcbiAgICAgICAgICBmb3JtTW9kZWw6IGZvcm0sXG4gICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICBhY3Rpb25zOiBhY3Rpb25zID8gdGhpcy50cmFuc2Zvcm1BY3Rpb25zKGFjdGlvbnMpIDoge30sXG4gICAgICAgICAgLy8gZm9ybSBzY3JpcHQgd2lsbCBiZSBwcm92aWRlZCB3aXRoIHRoZSBsaXN0IG9mIGZpbGUgZW50cmllc1xuICAgICAgICAgIC8vIGF0dGFjaGVkIHRvIHRoZSBjdXJyZW50IHdvcmsgaXRlbVxuICAgICAgICAgIG9iamVjdHM6IHRoaXMud29ya0l0ZW0uZmlsZSxcbiAgICAgICAgICBvYmplY3Q6IHRoaXMuZG1zT2JqZWN0XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtQWN0aW9ucyhhY3Rpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUluYm94U2F0ZSgpIHtcbiAgICB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1BY3Rpb25zKGFjdGlvbnMpIHtcbiAgICBsZXQgdHJhbnNmb3JtZWRBY3Rpb25zID0ge307XG4gICAgYWN0aW9ucy5mb3JFYWNoKGEgPT4ge1xuICAgICAgaWYgKGEuZmVhc2libGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhLmZlYXNpYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGEuZmVhc2liaWxpdHkgPSB2YWx1ZSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYS5mZWFzaWJsZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhLmZlYXNpYmxlO1xuICAgICAgfTtcbiAgICAgIHRyYW5zZm9ybWVkQWN0aW9uc1thLmNvZGUudG9TdHJpbmcoKV0gPSBhO1xuICAgIH0pO1xuICAgIHJldHVybiB0cmFuc2Zvcm1lZEFjdGlvbnM7XG4gIH1cblxuICAvKiBMb2NrcyBhIHdvcmsgaXRlbSAocGVyc29uYWxpemUpICovXG4gIGxvY2tXb3JrSXRlbSgpIHtcbiAgICB0aGlzLmFjdGlvblByb2Nlc3NpbmcgPSB0aGlzLmJwbVNlcnZpY2VcbiAgICAgIC5sb2NrV29ya0l0ZW0odGhpcy53b3JrSXRlbSlcbiAgICAgIC5waXBlKG1hcCh0aGlzLmFkZERlZmF1bHRBY3Rpb25JZkVtcHR5KSlcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgY29uc3Qge2FjdGlvbnMsIGRhdGEsIGZvcm19ID0gcmVzO1xuICAgICAgICB0aGlzLndvcmtJdGVtID0gcmVzO1xuICAgICAgICB0aGlzLnNldHVwV29ya0l0ZW0oKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtT3B0aW9ucyhmb3JtLCBkYXRhLCBhY3Rpb25zKTtcbiAgICAgICAgdGhpcy51cGRhdGVJbmJveFNhdGUoKTtcbiAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LklOQk9YX0lURU1fTE9DS0VEKTtcbiAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5KSB7XG5cbiAgICAgICAgICBpZiAoZXJyb3IuZXJyb3Iua2V5ID09PSAnQlBNX0NBTk5PVF9QRVJTT05BTElaRV9XT1JLSVRFTScpIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5Lndhcm5pbmcodGhpcy53b3JrSXRlbS50aXRsZSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5hY3Rpdml0eS5sb2NrLmRlbmllZCcpKTtcblxuICAgICAgICAgIH0gZWxzZSBpZiAoZXJyb3IuZXJyb3Iua2V5ID09PSAnQlBNX0VWRU5UX1NDUklQVF9FWEVDVVRJT05fRVJST1InKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeS5lcnJvcih0aGlzLndvcmtJdGVtLnRpdGxlLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5icG0uZXZlbnQuc2NyaXB0LmV4ZWN1dGlvbi5lcnJvcicpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5ub3RpZnkuZXJyb3IodGhpcy53b3JrSXRlbS50aXRsZSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5nZW5lcmFsLmVycm9yJykpO1xuICAgICAgICB9XG5cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuLUxvY2tzIGEgd29yayBpdGVtIChkZS1wZXJzb25hbGl6ZSlcbiAgICovXG4gIHVubG9ja1dvcmtJdGVtKCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLmFjdGlvblByb2Nlc3NpbmcgPSB0aGlzLmJwbVNlcnZpY2VcbiAgICAgICAgLnVubG9ja1dvcmtJdGVtKHRoaXMud29ya0l0ZW0pXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLndvcmtJdGVtID0gcmVzO1xuICAgICAgICAgIHRoaXMuc2V0dXBXb3JrSXRlbSgpO1xuICAgICAgICAgIHRoaXMudXBkYXRlSW5ib3hTYXRlKCk7XG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LklOQk9YX0lURU1fVU5MT0NLRUQpO1xuICAgICAgICB9LCBVdGlscy50aHJvdyhudWxsLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5wcm9jZXNzLmFjdGl2aXR5LnVubG9jay5kZW5pZWQnKSwgdGhpcy53b3JrSXRlbS50aXRsZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHdvcmsgaXRlbXMgYWN0aW9uLlxuICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24gdG8gYmUgZXhlY3V0ZXNcbiAgICovXG4gIGV4ZWN1dGVXb3JrSXRlbUFjdGlvbihhY3Rpb246IFdvcmtJdGVtQWN0aW9uKSB7XG4gICAgdGhpcy5wcmV2ZW50Q2xpY2tUaHJvdWdoID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucHJldmVudENsaWNrVGhyb3VnaCA9IGZhbHNlO1xuICAgIH0sIDEwMDApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmZvcm1TdGF0ZSB8fCAhdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICBpZiAoYWN0aW9uLnVybCkge1xuICAgICAgICAgIC8vIHByb2Nlc3MgZXh0ZXJuYWwgYWN0aW9uIGJ5IHNhdmluZyB3b3JrIGl0ZW0gYW5kIHJlZGlyZWN0IHRvIGFjdGlvbnMgdXJsXG4gICAgICAgICAgaWYgKHRoaXMuYnBtRm9ybUVsKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvblByb2Nlc3NpbmcgPSB0aGlzLnNhdmVXb3JrSXRlbSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMub3BlbkFjdGlvblVybChhY3Rpb24udXJsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5BY3Rpb25VcmwoYWN0aW9uLnVybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLmJwbUZvcm1FbCkge1xuICAgICAgICAgICAgdGhpcy53b3JrSXRlbS5kYXRhID0gdGhpcy5icG1Gb3JtRWwuZ2V0Rm9ybURhdGEoKTtcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gcmVtb3ZlIHBlbmRpbmcgdGFzayBiZWNhdXNlIHRoZSBmb3JtIHdpbGwgYmUgZGVzdHJveWVkIHdpdGhvdXQgc2F2aW5nXG4gICAgICAgICAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5icG1TZXJ2aWNlXG4gICAgICAgICAgICAuZm9yd2FyZFdvcmtJdGVtKHRoaXMud29ya0l0ZW0sIGFjdGlvbilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmeS5zdWNjZXNzKFxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJwbS5hY3Rpdml0eS5mb3J3YXJkLnN1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW0udGl0bGVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdGhpcy5pdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYnBtLmFjdGl2aXR5LmZvcndhcmQuZXJyb3InKSwgdGhpcy53b3JrSXRlbS50aXRsZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkFjdGlvblVybCh1cmw6IHN0cmluZykge1xuICAgIGlmICh1cmwuc3Vic3RyKDAsIDQpID09PSAnaHR0cCcpIHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSB3b3JrIGl0ZW0gY29udGVudCBmb3IgdGhlIGdpdmVuIGZpbGUgZW50cnkuXG4gICAqIElmIG5vIGZpbGUgaXMgcHJvdmlkZWQsIGl0IGNsZWFycyB0aGUgc2VsZWN0ZWQgY29udGVudCBmaWxlIElEIGFuZCBmb2N1c2VzIHRoZSBzZWxlY3Rpb24uXG4gICAqIElmIGEgZmlsZSBpcyBwcm92aWRlZCwgaXQgc2V0cyB0aGUgc2VsZWN0ZWQgY29udGVudCBmaWxlIElELCBmb2N1c2VzIHRoZSBzZWxlY3Rpb24gd2l0aCB0aGUgZmlsZSBwYXJhbWV0ZXJzLCBhbmQgdXBkYXRlcyB0aGUgRE1TIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtGaWxlRW50cnl9IFtmaWxlXSAtIFRoZSBmaWxlIGVudHJ5IGZvciB3aGljaCB0aGUgd29yayBpdGVtIGNvbnRlbnQgbmVlZHMgdG8gYmUgb3BlbmVkLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBzZWxlY3Rpb24gd2lsbCBiZSBjbGVhcmVkLlxuICAgKi9cbiAgb3BlbldvcmtJdGVtQ29udGVudChmaWxlPzogRmlsZUVudHJ5KSB7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IG51bGw7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhudWxsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZENvbnRlbnRGaWxlSWQgPSBmaWxlLmlkO1xuICAgICAgbGV0IHBhcmFtcyA9IHtcbiAgICAgICAgaWQ6IGZpbGUuaWQsXG4gICAgICAgIHR5cGU6IGZpbGUudHlwZVxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLmFwcGx5U2VsZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmZpbmQodGhpcy5hcHBseVNlbGVjdGlvbi5vdXQpLmZvY3VzKHBhcmFtcyk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZURNU09iamVjdChmaWxlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgRE1TIG9iamVjdCBmb3IgdGhlIGdpdmVuIGZpbGUgZW50cnkuXG4gICAqXG4gICAqIEBwYXJhbSB7RmlsZUVudHJ5fSBmaWxlIC0gVGhlIGZpbGUgZW50cnkgZm9yIHdoaWNoIHRoZSBETVMgb2JqZWN0IG5lZWRzIHRvIGJlIHVwZGF0ZWQuXG4gICAqL1xuICB1cGRhdGVETVNPYmplY3QoZmlsZTogRmlsZUVudHJ5KSB7XG4gICAgdGhpcy5nZXRETVNPYmplY3QoZmlsZSkuc3Vic2NyaWJlKGRtc09iamVjdCA9PiB7XG4gICAgICB0aGlzLmRtc09iamVjdCA9IGRtc09iamVjdDtcbiAgICAgIHRoaXMuc2V0Rm9ybU9wdGlvbnMoXG4gICAgICAgIHRoaXMud29ya0l0ZW0uZm9ybSxcbiAgICAgICAgdGhpcy53b3JrSXRlbS5kYXRhLFxuICAgICAgICB0aGlzLndvcmtJdGVtLmFjdGlvbnNcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgRE1TIG9iamVjdCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZmlsZSBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge0ZpbGVFbnRyeX0gZmlsZSAtIFRoZSBmaWxlIGVudHJ5IG9iamVjdCBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgRE1TIG9iamVjdC5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8RG1zT2JqZWN0Pn0gLSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCBETVMgb2JqZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRETVNPYmplY3QoZmlsZTogRmlsZUVudHJ5KTogT2JzZXJ2YWJsZTxEbXNPYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5kbXNTZXJ2aWNlLmdldERtc09iamVjdEJ5UGFyYW1zKGZpbGUpO1xuICB9XG5cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGZpbGUgKGF0dGFjaGVkIERNU09iamVjdCkgaW4gb2JqZWN0IHN0YXRlXG4gICAqIEBwYXJhbSBmaWxlXG4gICAqL1xuICBvcGVuV29ya0l0ZW1Db250ZW50SW5Db250ZXh0KGV2dCkge1xuICAgIGNvbnN0IGZpbGU6IEZpbGVFbnRyeSA9IGV2dC5kYXRhIHx8IHt9O1xuICAgIGNvbnN0IGZpbGVUeXBlOiBOYXZpZ2F0aW9uRXh0cmFzID0ge3F1ZXJ5UGFyYW1zOiB7dHlwZTogZmlsZS50eXBlfX07XG4gICAgaWYgKGV2dC5jdHJsS2V5KSB7XG4gICAgICB3aW5kb3cub3BlbihDZWxsUmVuZGVyZXIud2luZG93VVJJKHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWydvYmplY3QnLCBmaWxlLmlkXSwgZmlsZVR5cGUpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL29iamVjdCcsIGZpbGUuaWRdLCBmaWxlVHlwZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgY2xpcGJvYXJkIGNvbnRlbnQgdG8gdGhlIHdvcmsgaXRlbVxuICAgKi9cbiAgYWRkRnJvbUNsaXBib2FyZCgpIHtcbiAgICB0aGlzLmJwbVNlcnZpY2VcbiAgICAgIC5hZGRGaWxlRWxlbWVudHNGcm9tQ2xpcGJvYXJkKHRoaXMud29ya0l0ZW0sIHRoaXMuY2xpcGJvYXJkKVxuICAgICAgLnN1YnNjcmliZSh3b3JrSXRlbSA9PiB7XG4gICAgICAgIHRoaXMud29ya0l0ZW0gPSB3b3JrSXRlbTtcbiAgICAgICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNsZWFyKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCkge1xuICAgICAgICAgIC8vIG9wZW4gZmlyc3QgaXRlbSB3aGVuIG5vdGhpbmcgaXMgc2VsZWN0ZWRcbiAgICAgICAgICB0aGlzLm9wZW5Xb3JrSXRlbUNvbnRlbnQodGhpcy53b3JrSXRlbS5maWxlWzBdKTtcbiAgICAgICAgfVxuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5lcnJvcicpLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5wcm9jZXNzLmZpbGUubm90aWZpY2F0aW9uLmFkZC5tZXNzYWdlJykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBmaWxlIGVudHJ5IGZyb20gdGhlIHdvcmsgaXRlbXMgZmlsZVxuICAgKiBAcGFyYW0gZmlsZSBUaGUgZmlsZSBlbnRyeSB0byBiZSByZW1vdmVkXG4gICAqIEBwYXJhbSBldnQgVGhlIGNsaWNrIGV2ZW50XG4gICAqL1xuICByZW1vdmVXb3JrSXRlbUNvbnRlbnQoZXZ0KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmIChldnQuZGF0YSkge1xuICAgICAgY29uc3QgZmlsZTogRmlsZUVudHJ5ID0gZXZ0LmRhdGE7XG4gICAgICB0aGlzLmJwbVNlcnZpY2VcbiAgICAgICAgLnJlbW92ZUZpbGVFbGVtZW50KHRoaXMud29ya0l0ZW0ucHJvY2Vzc0lkLCB0aGlzLndvcmtJdGVtLmlkLCBmaWxlLmlkKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLndvcmtJdGVtLmZpbGUgPSB0aGlzLndvcmtJdGVtLmZpbGUuZmlsdGVyKGYgPT4gZi5pZCAhPT0gZmlsZS5pZCk7XG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb250ZW50RmlsZUlkID09PSBmaWxlLmlkKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5Xb3JrSXRlbUNvbnRlbnQoXG4gICAgICAgICAgICAgIHRoaXMud29ya0l0ZW0uZmlsZS5sZW5ndGggPyB0aGlzLndvcmtJdGVtLmZpbGVbMF0gOiBudWxsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5yZW1vdmUnKSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5yZW1vdmUubWVzc2FnZScpKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgdGhlIHdvcmsgaXRlbXMgZm9ybSBkYXRhXG4gICAqL1xuICBzYXZlV29ya0l0ZW1EYXRhKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9ybVN0YXRlICYmICF0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkICYmIHRoaXMuZm9ybVN0YXRlLmRpcnR5KSB7XG4gICAgICAgIHRoaXMuYWN0aW9uUHJvY2Vzc2luZyA9IHRoaXMuc2F2ZVdvcmtJdGVtKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUluYm94U2F0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG5cbiAgcHJlcGFyZU5ld1dvcmtJdGVtKHdvcmtJdGVtOiBXb3JrSXRlbSk6IGJvb2xlYW4ge1xuICAgIHRoaXMud29ya0l0ZW0gPSB3b3JrSXRlbTtcbiAgICBjb25zdCB7YWN0aW9ucywgZm9ybSwgZGF0YX0gPSB0aGlzLndvcmtJdGVtO1xuICAgIHRoaXMuc2V0dXBXb3JrSXRlbSgpO1xuICAgIHRoaXMuc2V0Rm9ybU9wdGlvbnMoZm9ybSwgZGF0YSwgYWN0aW9ucyk7XG4gICAgdGhpcy5ub3RpZnkuc3VjY2VzcyhcbiAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJwbS5hY3Rpdml0eS5pbmRleGRhdGEuc2F2ZS5zdWNjZXNzJylcbiAgICApO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSBjdXJyZW50IHdvcmsgaXRlbVxuICAgKi9cbiAgcHJpdmF0ZSBzYXZlV29ya0l0ZW0oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICB0aGlzLndvcmtJdGVtLmRhdGEgPSB0aGlzLmJwbUZvcm1FbC5nZXRGb3JtRGF0YSgpO1xuICAgIHJldHVybiB0aGlzLmJwbVNlcnZpY2Uuc2F2ZVdvcmtJdGVtKHRoaXMud29ya0l0ZW0pLnBpcGUoXG4gICAgICBtYXAodGhpcy5hZGREZWZhdWx0QWN0aW9uSWZFbXB0eSksXG4gICAgICBtYXAod29ya0l0ZW0gPT4gdGhpcy5wcmVwYXJlTmV3V29ya0l0ZW0od29ya0l0ZW0pKSxcbiAgICAgIGNhdGNoRXJyb3IoXG4gICAgICAgIFV0aWxzLmNhdGNoKFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYnBtLmFjdGl2aXR5LmluZGV4ZGF0YS5zYXZlLmVycm9yJylcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgY3VycmVudCBpdGVtIGZyb20gdGhlIGluYm94LlxuICAgKi9cbiAgY29uZmlybUluYm94SXRlbSgpIHtcbiAgICB0aGlzLnByZXZlbnRDbGlja1Rocm91Z2ggPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5wcmV2ZW50Q2xpY2tUaHJvdWdoID0gZmFsc2U7XG4gICAgfSwgMTAwMCk7XG4gICAgdGhpcy5hY3Rpb25Qcm9jZXNzaW5nID0gdGhpcy5pbmJveFNlcnZpY2VcbiAgICAgIC5yZW1vdmVJdGVtKHRoaXMuaXRlbSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmeS5zdWNjZXNzKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LmFjdGl2aXR5LmNvbmZpcm0uc3VjY2VzcycpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5JTkJPWF9JVEVNX0NPTkZJUk1FRCwgdGhpcy5pdGVtKTtcbiAgICAgICAgdGhpcy5pdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpO1xuICAgICAgfSwgVXRpbHMuY2F0Y2gobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5pdGVtLnJlbW92ZS5mYWlsJykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHN0YXRlIGFuZCBkYXRhIGZvciB0aGUgY3VycmVudCB3b3JrIGl0ZW0uXG4gICAqL1xuICBwcml2YXRlIHNldHVwV29ya0l0ZW0oKSB7XG4gICAgdGhpcy5sb2NrZWQgPSB0aGlzLndvcmtJdGVtLnN0YXRlID09PSAnUEVSU09OJztcbiAgICB0aGlzLnByZXZlbnRDbGlja1Rocm91Z2ggPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcmV2ZW50Q2xpY2tUaHJvdWdoID0gZmFsc2UsIDEwMDApO1xuICAgIGNvbnN0IHtmb3JtLCBkYXRhfSA9IHRoaXMud29ya0l0ZW07XG4gICAgY29uc3Qgd29ya0l0ZW0gPSB7Zm9ybSwgZGF0YX07XG4gICAgdGhpcy53b3JrSXRlbUluZGV4ZGF0YSA9IGZvcm0gJiYgZGF0YSA/IHdvcmtJdGVtIDogbnVsbDtcblxuICAgIC8vIGZldGNoIGhpc3RvcnlcbiAgICB0aGlzLmJwbVNlcnZpY2VcbiAgICAgIC5nZXRQcm9jZXNzSGlzdG9yeSh0aGlzLndvcmtJdGVtLnByb2Nlc3NJZClcbiAgICAgIC5waXBlKG1hcChyZXMgPT4ge1xuICAgICAgICByZXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS5lZGl0b3IpIHtcbiAgICAgICAgICAgIGl0ZW0uZGF0YS5pbWFnZSA9IHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlckltYWdlVXJpKGl0ZW0uZWRpdG9yLmlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBzb3J0IGJ5IG51bWJlciBiZWNhdXNlIHRoaXMgaXMgdGhlIGF1dG8taW5jcmVtZW50aW5nXG4gICAgICAgIC8vIGluZGV4IG9mIGFkZGVkIGhpc3RvcnkgZW50cmllc1xuICAgICAgICB0aGlzLmhpc3RvcnkgPSByZXMuc29ydCgoYSwgYikgPT4gYi5udW1iZXIgLSBhLm51bWJlcik7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHRyYWNrQnlDb2RlKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0uY29kZTtcbiAgfVxuXG4gIHRyYWNrQnlJZChpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgdHJhY2tCeUluZGV4KGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gc3Vic2NyaWJlIGZvciBjaGFuZ2VzIHRvIHRoZSBjbGlwYm9hcmQgdG8gZW5hYmxlIGFkZGluZyBjb250ZW50cyB0byB0aGUgd29yayBpdGVtXG4gICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNsaXBib2FyZCRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGNsaXBib2FyZDogQ2xpcGJvYXJkKSA9PlxuICAgICAgICAodGhpcy5jbGlwYm9hcmQgPVxuICAgICAgICAgIGNsaXBib2FyZC5hY3Rpb24gPT09IENsaXBib2FyZEFjdGlvbi5DT1BZID8gY2xpcGJvYXJkIDogbnVsbClcbiAgICAgICk7XG4gICAgLy8gY29tcG9uZW50IGlzIG9ubHkgaW50ZXJlc3RlZCBpbiBjb3BpZWQgaXRlbXNcblxuICAgIGlmICh0aGlzLmFwcGx5U2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAuZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLmluKVxuICAgICAgICAuZm9jdXMkLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleUxhc3RJdGVtSUQsIHRoaXMuaXRlbS5pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbmJveC1kZXRhaWxzXCIgKm5nSWY9XCJpdGVtOyBlbHNlIG5vSXRlbVwiIFtuZ0NsYXNzXT1cInticG06IGl0ZW0udHlwZSA9PT0gJ0JQTSd9XCI+XG5cbiAgPGRpdiBjbGFzcz1cImVvLWhlYWRcIiBbbmdDbGFzc109XCJ7J2VvLWhlYWQtdGFicyc6IGl0ZW0udHlwZSA9PT0gJ0JQTSd9XCI+XG4gICAgPGhlYWRlciBjbGFzcz1cImVvLWhlYWRlclwiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiICpuZ0lmPVwiIWl0ZW0uaWNvbklkXCIgdGl0bGU9XCJ7e2l0ZW0/LnR5cGV9fVwiXG4gICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2xvb3Auc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvbklkXCIgdGl0bGU9XCJ7e2l0ZW0/LnR5cGV9fVwiIFtpY29uSWRdPVwiaXRlbS5pY29uSWRcIj48L2VvLWljb24+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCI+e3tpdGVtLnRpdGxlfX08L2gyPlxuICAgICAgICA8aDMgKm5nSWY9XCJpdGVtLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJlby1oZWFkZXItc3VidGl0bGVcIj57e2l0ZW0uZGVzY3JpcHRpb259fTwvaDM+XG4gICAgICAgIDxoMyAqbmdJZj1cIndvcmtJdGVtICYmICFpdGVtLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJlby1oZWFkZXItc3VidGl0bGVcIj57e3dvcmtJdGVtLnByb2Nlc3NUaXRsZSA/IHdvcmtJdGVtLnByb2Nlc3NUaXRsZSA6IHdvcmtJdGVtLnFtb2RlbG5hbWV9fTwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiByZWZyZXNoLWJ1dHRvblwiICpuZ0lmPVwiaW5pdGlhbGl6aW5nLmNsb3NlZFwiIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3JlZnJlc2guc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5saXN0LnJlZnJlc2gnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiICpuZ0lmPVwiaW5pdGlhbGl6aW5nLmNsb3NlZFwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImxvYWQtZXJyb3JcIiAqbmdJZj1cImxvYWRFcnJvclwiPlxuICAgICAgPGVvLWVycm9yLW1lc3NhZ2U+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBkZXRhaWxzIGZvciBCUE0gaXRlbXMgLS0+XG4gICAgPHl2Yy10YWJzICpuZ0lmPVwiaXRlbS50eXBlID09PSAnQlBNJzsgZWxzZSBkbXNUYXNrXCIgbGF5b3V0U2V0dGluZ3NJRD1cImVvLmluYm94LmRldGFpbHMudGFic1wiPlxuICAgICAgPCEtLSB0YXNrIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlIFt5dmNUYWJdPVwie2lkOiAndGFzaycsIGxhYmVsOiAnZW8ucHJvY2Vzcy5kZXRhaWxzLnRhYi50YXNrJyB8IHRyYW5zbGF0ZX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbCB0YXNrXCI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJ3b3JrSXRlbT8uZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPGgzIHRyYW5zbGF0ZT5lby5wcm9jZXNzLmRldGFpbHMudGFiLnRhc2suZGVzY3JpcHRpb248L2gzPlxuICAgICAgICAgICAgICA8ZGl2Pnt7d29ya0l0ZW0uZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxlby1kdWV0aW1lSW5mbyAqbmdJZj1cIml0ZW0/LmR1ZXRpbWVcIiBbaXRlbV09XCJpdGVtXCI+PC9lby1kdWV0aW1lSW5mbz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtcGVyZm9ybWVyXCIgKm5nSWY9XCJ3b3JrSXRlbT8uaW5TdWJzdGl0dXRlT2Y/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZFwiIFtuZ0NsYXNzXT1cIntwZXJmb3JtZXJTaG93OiBzdWJzdGl0dXRlU2hvd31cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8ucHJvY2Vzcy5zdWJzdGl0dXRlPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvblwiIChjbGljayk9XCJzdWJzdGl0dXRlU2hvdyA9ICFzdWJzdGl0dXRlU2hvd1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50XCI+e3t3b3JrSXRlbS5pblN1YnN0aXR1dGVPZi5sZW5ndGh9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXJyb3dfZG93bi5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIiAqbmdJZj1cInN1YnN0aXR1dGVTaG93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcmZvcm1lclwiICpuZ0Zvcj1cImxldCB1IG9mIHdvcmtJdGVtLmluU3Vic3RpdHV0ZU9mXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX29yZ2FfdXNlci5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7dS5maXJzdG5hbWV9fSB7e3UubGFzdG5hbWV9fSA8c3BhbiBjbGFzcz1cInFuYW1lXCI+e3t1Lm5hbWV9fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvY2tlZDsgZWxzZSB1bmxvY2tlZFwiPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWZvcm1cIj5cbiAgICAgICAgICAgICAgICA8ZW8tb2JqZWN0LWZvcm0gW2Zvcm1PcHRpb25zXT1cImZvcm1PcHRpb25zXCIgKm5nSWY9XCJ3b3JrSXRlbT8uZm9ybVwiXG4gICAgICAgICAgICAgICAgICAoc3RhdHVzQ2hhbmdlZCk9XCJvbkZvcm1TdGF0dXNDaGFuZ2VkKCRldmVudClcIiAjYnBtRm9ybT48L2VvLW9iamVjdC1mb3JtPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3VubG9ja2VkPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpY2VcIiB0cmFuc2xhdGU+ZW8ucHJvY2Vzcy50YXNrLmNvbnRpbnVlPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtcGVyZm9ybWVyXCIgKm5nSWY9XCJ3b3JrSXRlbVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkXCIgW25nQ2xhc3NdPVwie3BlcmZvcm1lclNob3c6IHBlcmZvcm1lclNob3d9XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8ucHJvY2Vzcy5yZWNpcGllbnRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uXCIgKGNsaWNrKT1cInBlcmZvcm1lclNob3cgPSAhcGVyZm9ybWVyU2hvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRcIj57e3dvcmtJdGVtLnBlcmZvcm1lci51c2Vycy5sZW5ndGggKyB3b3JrSXRlbS5wZXJmb3JtZXIucm9sZXMubGVuZ3RoICtcbiAgICAgICAgICAgICAgICAgICAgICB3b3JrSXRlbS5wZXJmb3JtZXIuZ3JvdXBzLmxlbmd0aH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Fycm93X2Rvd24uc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCIgKm5nSWY9XCJwZXJmb3JtZXJTaG93XCI+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJmb3JtZXJcIiAqbmdGb3I9XCJsZXQgZyBvZiB3b3JrSXRlbS5wZXJmb3JtZXIuZ3JvdXBzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19vcmdhX2dyb3VwLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7Zy5uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVyZm9ybWVyXCIgKm5nRm9yPVwibGV0IHIgb2Ygd29ya0l0ZW0ucGVyZm9ybWVyLnJvbGVzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19vcmdhX3JvbGUuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3tyLm5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJmb3JtZXJcIiAqbmdGb3I9XCJsZXQgdSBvZiB3b3JrSXRlbS5wZXJmb3JtZXIudXNlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX29yZ2FfdXNlci5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e3UuZmlyc3RuYW1lfX0ge3t1Lmxhc3RuYW1lfX0gPHNwYW4gY2xhc3M9XCJxbmFtZVwiPnt7dS5uYW1lfX08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZGV4ZGF0YVwiICpuZ0lmPVwid29ya0l0ZW1JbmRleGRhdGE/LmRhdGFcIj5cbiAgICAgICAgICAgICAgICA8aDMgdHJhbnNsYXRlPmVvLnByb2Nlc3MuZGV0YWlscy50YWIudGFzay5pbmRleGRhdGE8L2gzPlxuICAgICAgICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeSBbaW5kZXhkYXRhXT1cIndvcmtJdGVtSW5kZXhkYXRhXCI+PC9lby1pbmRleGRhdGEtc3VtbWFyeT5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9ja2VkOyBlbHNlIHVubG9ja2VkQWN0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtYWN0aW9uc1wiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWFjdGlvblByb2Nlc3NpbmcuY2xvc2VkfVwiPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXVubG9ja1wiIChjbGljayk9XCJ1bmxvY2tXb3JrSXRlbSgpXCIgdHJhbnNsYXRlPmVvLnByb2Nlc3MuZGVwZXJzb25hbGl6ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tc2F2ZVwiIChjbGljayk9XCJzYXZlV29ya0l0ZW1EYXRhKClcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ3b3JrSXRlbT8uZm9ybSAmJiAhZm9ybVN0YXRlPy5pbnZhbGlkICYmIGZvcm1TdGF0ZT8uZGlydHlcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEuc2F2ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpbWFyeVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogcHJldmVudENsaWNrVGhyb3VnaH1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeSBidG4tZXhlY3V0ZVwiICpuZ0Zvcj1cImxldCBhY3Rpb24gb2Ygd29ya0l0ZW0uYWN0aW9uczsgdHJhY2tCeTogdHJhY2tCeUNvZGVcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVXb3JrSXRlbUFjdGlvbihhY3Rpb24pXCIgW25nQ2xhc3NdPVwie2V4dDogYWN0aW9uLnVybH1cIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIighIWZvcm1TdGF0ZSAmJiBmb3JtU3RhdGU/LmludmFsaWQpIHx8ICFhY3Rpb24uZmVhc2libGVcIj57e2FjdGlvbi50aXRsZX19PC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3VubG9ja2VkQWN0aW9ucz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWFjdGlvbnNcIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6ICFhY3Rpb25Qcm9jZXNzaW5nLmNsb3NlZCB8fCAhd29ya0l0ZW19XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnkgYnRuLWxvY2tcIiAoY2xpY2spPVwibG9ja1dvcmtJdGVtKClcIiB0cmFuc2xhdGU+ZW8ucHJvY2Vzcy5wZXJzb25hbGl6ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8IS0tIGhpc3RvcnkgLS0+XG4gICAgICA8bmctdGVtcGxhdGUgW3l2Y1RhYl09XCJ7aWQ6ICdoaXN0b3J5JywgbGFiZWw6ICdlby5wcm9jZXNzLmRldGFpbHMudGFiLnByb2dyZXNzJyB8IHRyYW5zbGF0ZX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbCBwcm9jZXNzLWhpc3RvcnlcIj5cbiAgICAgICAgICAgIDxlby1wcm9jZXNzLWhpc3RvcnkgW2hpc3RvcnldPVwiaGlzdG9yeVwiPjwvZW8tcHJvY2Vzcy1oaXN0b3J5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDwhLS0gYXR0YWNobWVudHMgLS0+XG4gICAgICA8bmctdGVtcGxhdGUgW3l2Y1RhYl09XCJ7aWQ6ICdmaWxlJywgbGFiZWw6ICdlby5wcm9jZXNzLmRldGFpbHMudGFiLmF0dGFjaG1lbnRzJyB8IHRyYW5zbGF0ZX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbCBwcm9jZXNzLWZpbGVzXCI+XG4gICAgICAgICAgICA8ZW8tcHJvY2Vzcy1maWxlIFtwcm9jZXNzRmlsZV09XCJ3b3JrSXRlbT8uZmlsZVwiIFtwZXJtaXNzaW9uc109XCJ3b3JrSXRlbT8uZmlsZUVudHJ5UGVybWlzc2lvbnNcIlxuICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCIhZmlsZXNBZGRpbmcuY2xvc2VkXCIgW2NsaXBib2FyZF09XCJjbGlwYm9hcmRcIiBbZWRpdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtzZWxlY3RlZENvbnRlbnRGaWxlSWRdPVwic2VsZWN0ZWRDb250ZW50RmlsZUlkXCJcbiAgICAgICAgICAgICAgKG9uT3BlbldvcmtJdGVtQ29udGVudEluQ29udGV4dCk9XCJvcGVuV29ya0l0ZW1Db250ZW50SW5Db250ZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAob25PcGVuV29ya0l0ZW1Db250ZW50KT1cIm9wZW5Xb3JrSXRlbUNvbnRlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvblJlbW92ZVdvcmtJdGVtQ29udGVudCk9XCJyZW1vdmVXb3JrSXRlbUNvbnRlbnQoJGV2ZW50KVwiIChvblBhc3RlUHJvY2Vzc0ZpbGUpPVwiYWRkRnJvbUNsaXBib2FyZCgpXCI+XG4gICAgICAgICAgICA8L2VvLXByb2Nlc3MtZmlsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8IS0tIHBsdWdpbiB0YWJzIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0Zvcj1cImxldCBwIG9mIHBsdWdpbnNcIiBbeXZjVGFiXT1cIntpZDogcC5pZCwgbGFiZWw6IHAuaWQgfCB0cmFuc2xhdGV9XCI+XG4gICAgICAgIDxlby1wbHVnaW4gW2lkXT1cInAuaWRcIiBbcGFyZW50XT1cInRoaXNcIj48L2VvLXBsdWdpbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC95dmMtdGFicz5cblxuICAgIDwhLS0gYm9keSB3aGVuIHdlIGhhdmUgYSBzdWJzY3JpcHRpb24gb3IgYSByZXN1Ym1pc3Npb24gLS0+XG4gICAgPG5nLXRlbXBsYXRlICNkbXNUYXNrPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzcy1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgPGgzIHRyYW5zbGF0ZT5lby5wcm9jZXNzLmRldGFpbHMudGFiLnRhc2suZGVzY3JpcHRpb248L2gzPlxuICAgICAgICAgICAgPGRpdj57e3NldHRpbmdzPy5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gYWN0aW9ucyBmb3IgdGhlIGN1cnJlbnQgcHJvY2VzcyBpdGVtIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzcy1hY3Rpb25zXCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiAhYWN0aW9uUHJvY2Vzc2luZy5jbG9zZWR9XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByaW1hcnlcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5IGJ0bi1jb25maXJtXCIgW2Rpc2FibGVkXT1cInByZXZlbnRDbGlja1Rocm91Z2hcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybUluYm94SXRlbSgpXCI+e3tzZXR0aW5ncz8uYWN0aW9uVGl0bGV9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNub0l0ZW0+XG4gIDxlby1lcnJvci1tZXNzYWdlIFtlbXB0eVN0YXRlXT1cIntpY29uOiBlbXB0eVN0YXRlLmljb24sIHRleHQ6IGVtcHR5U3RhdGUudGV4dCwgY2xhc3NOYW1lOiBlbXB0eVN0YXRlLmNsYXNzTmFtZX1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gIDwvZW8tZXJyb3ItbWVzc2FnZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -40,10 +40,10 @@ export class ListContainerComponent {
|
|
|
40
40
|
.find(this.applySelection.out)
|
|
41
41
|
.focus(data);
|
|
42
42
|
}
|
|
43
|
-
onDoubleClick(event) {
|
|
43
|
+
onDoubleClick(event, forceOpenObject = false) {
|
|
44
44
|
const { id, type, version, intent } = this.parseDmsParams(event.data);
|
|
45
45
|
if (id) {
|
|
46
|
-
return this.openObject(id, type, version, intent, event.event.ctrlKey);
|
|
46
|
+
return this.openObject(id, type, version, intent, event.event.ctrlKey, forceOpenObject);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
onSelectionChanged(selectedData) {
|
|
@@ -52,8 +52,8 @@ export class ListContainerComponent {
|
|
|
52
52
|
onContextMenu(selectedData, target) {
|
|
53
53
|
this.showActions(selectedData, target);
|
|
54
54
|
}
|
|
55
|
-
openObject(id, _type, version, intent, newTab = false) {
|
|
56
|
-
if (this.router.url.startsWith('/object')) {
|
|
55
|
+
openObject(id, _type, version, intent, newTab = false, forceOpenObject = false) {
|
|
56
|
+
if (this.router.url.startsWith('/object') && !forceOpenObject) {
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
59
|
version = this.applyVersion ? version : undefined;
|
|
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
98
98
|
}], parseDmsParams: [{
|
|
99
99
|
type: Input
|
|
100
100
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbGlzdC1jb250YWluZXIvbGlzdC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbGlzdC1jb250YWluZXIvbGlzdC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBRSxZQUFZLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUc1RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBU3JELE1BQU0sT0FBTyxzQkFBc0I7SUFNakMsSUFDSSxXQUFXLENBQUMsTUFBcUI7UUFDbkMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBUUQsWUFBb0IsU0FBMkIsRUFDM0IsTUFBYyxFQUFVLFVBQXNCLEVBQVUsYUFBNEI7UUFEcEYsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FB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dCB7Q2VsbFJlbmRlcmVyfSBmcm9tICcuLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHtmb3JrSm9pbiBhcyBvYnNlcnZhYmxlRm9ya0pvaW4sIG9mIGFzIG9ic2VydmFibGVPZiwgQXN5bmNTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIEFmdGVyVmlld0luaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTZWxlY3Rpb25Db25maWcsIFNlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1JvdXRlciwgTmF2aWdhdGlvbkV4dHJhc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0FjdGlvblNlcnZpY2V9IGZyb20gJy4uL2FjdGlvbnMvYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtEbXNPYmplY3QsIERtc1NlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1saXN0LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3QtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIHB1YmxpYyBncmlkQ291bnQ6IGFueTtcbiAgZW9HcmlkOiBHcmlkQ29tcG9uZW50O1xuICBlb0dyaWRTdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdDxHcmlkQ29tcG9uZW50PigpO1xuXG4gIEBDb250ZW50Q2hpbGQoR3JpZENvbXBvbmVudClcbiAgc2V0IGNvbnRlbnRHcmlkKGVvR3JpZDogR3JpZENvbXBvbmVudCkge1xuICAgIGlmIChlb0dyaWQpIHtcbiAgICAgIHRoaXMuZW9HcmlkID0gZW9HcmlkO1xuICAgICAgdGhpcy5lb0dyaWRTdWJqZWN0Lm5leHQodGhpcy5lb0dyaWQpO1xuICAgICAgdGhpcy5lb0dyaWRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgYXBwbHlTZWxlY3Rpb246IFNlbGVjdGlvbkNvbmZpZyA9IHt9O1xuICBASW5wdXQoKSBhcHBseVZlcnNpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgbG9hZGluZyA9IHRydWU7XG4gIEBJbnB1dCgpIHRhYnMgPSB0cnVlO1xuICBASW5wdXQoKSBwYXJzZURtc1BhcmFtczogKGRhdGEpID0+IGFueSA9IChkYXRhOiBhbnkpID0+IGRhdGE7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSwgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIH1cblxuICBvbkNvdW50Q2hhbmdlZChkYXRhOiBhbnkpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmdyaWRDb3VudCA9IGRhdGE7XG4gIH1cblxuICBvbkZvY3VzQ2hhbmdlZChkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgLmZpbmQodGhpcy5hcHBseVNlbGVjdGlvbi5vdXQpXG4gICAgICAuZm9jdXMoZGF0YSk7XG4gIH1cblxuICBvbkRvdWJsZUNsaWNrKGV2ZW50OiBhbnkpIHtcblxuICAgIGNvbnN0IHtpZCwgdHlwZSwgdmVyc2lvbiwgaW50ZW50fSA9IHRoaXMucGFyc2VEbXNQYXJhbXMoZXZlbnQuZGF0YSk7XG4gICAgaWYgKGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcGVuT2JqZWN0KGlkLCB0eXBlLCB2ZXJzaW9uLCBpbnRlbnQsIGV2ZW50LmV2ZW50LmN0cmxLZXkpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZChzZWxlY3RlZERhdGE6IGFueVtdKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLm91dCkuc2V0KHNlbGVjdGVkRGF0YSk7XG4gIH1cblxuICBvbkNvbnRleHRNZW51KHNlbGVjdGVkRGF0YT86IGFueVtdLCB0YXJnZXQ/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3dBY3Rpb25zKHNlbGVjdGVkRGF0YSwgdGFyZ2V0KTtcbiAgfVxuXG4gIG9wZW5PYmplY3QoaWQsIF90eXBlPywgdmVyc2lvbj8sIGludGVudD8sIG5ld1RhYiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMucm91dGVyLnVybC5zdGFydHNXaXRoKCcvb2JqZWN0JykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmVyc2lvbiA9IHRoaXMuYXBwbHlWZXJzaW9uID8gdmVyc2lvbiA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBxdWVyeVBhcmFtczogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeyd0eXBlJzogX3R5cGUsIHZlcnNpb24sIGludGVudH19O1xuICAgIGlmIChuZXdUYWIpIHtcbiAgICAgIHdpbmRvdy5vcGVuKENlbGxSZW5kZXJlci53aW5kb3dVUkkodGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJ29iamVjdCcsIGlkXSwgcXVlcnlQYXJhbXMpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL29iamVjdCcsIGlkXSwgcXVlcnlQYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRPYmplY3QoaWQsIF90eXBlPywgdmVyc2lvbj8sIGludGVudD8pOiBTdWJzY3JpcHRpb24ge1xuICAgIHZlcnNpb24gPSB0aGlzLmFwcGx5VmVyc2lvbiA/IHZlcnNpb24gOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuZG1zU2VydmljZVxuICAgICAgLmdldERtc09iamVjdChpZCwgX3R5cGUsIHZlcnNpb24sIGludGVudClcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmZpbmQodGhpcy5hcHBseVNlbGVjdGlvbi5vdXQpLmZvY3VzKHJlcyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNob3dBY3Rpb25zKHNlbGVjdGVkRGF0YT86IGFueVtdLCB0YXJnZXQgPSAnRE1TX09CSkVDVCcpIHtcbiAgICBsZXQgc2VsZWN0aW9uID0gc2VsZWN0ZWREYXRhIHx8IHRoaXMuc2VsZWN0aW9uLmZpbmQodGhpcy5hcHBseVNlbGVjdGlvbi5vdXQpLmdldCgpO1xuICAgIGxldCBvYnNlcnZhYmxlcyA9IHNlbGVjdGlvbi5tYXAoZGF0YSA9PiB0YXJnZXQgPT09ICdETVNfT0JKRUNUJyA/IHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RCeVBhcmFtcyh0aGlzLnBhcnNlRG1zUGFyYW1zKGRhdGEpKSA6IG9ic2VydmFibGVPZihkYXRhKSk7XG4gICAgb2JzZXJ2YWJsZUZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoKHJlczogYW55W10pID0+IHRoaXMuYWN0aW9uU2VydmljZS5zaG93QWN0aW9ucyhyZXMsIHRhcmdldCkpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby1oZWFkXCIgW25nQ2xhc3NdPVwieydlby1oZWFkLXRhYnMnOiB0YWJzfVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuZW8taGVhZGVyXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48bmctY29udGVudCBzZWxlY3Q9XCIuZW8tYm9keVwiPlxuPC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+PGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbWVkaXVtJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPjwvZGl2PlxuIl19
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbGlzdC1jb250YWluZXIvbGlzdC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbGlzdC1jb250YWluZXIvbGlzdC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBRSxZQUFZLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUc1RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBU3JELE1BQU0sT0FBTyxzQkFBc0I7SUFNakMsSUFDSSxXQUFXLENBQUMsTUFBcUI7UUFDbkMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBUUQsWUFBb0IsU0FBMkIsRUFDM0IsTUFBYyxFQUFVLFVBQXNCLEVBQVUsYUFBNEI7UUFEcEYsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FB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LElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDZWxsUmVuZGVyZXJ9IGZyb20gJy4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge2ZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiwgb2YgYXMgb2JzZXJ2YWJsZU9mLCBBc3luY1N1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NlbGVjdGlvbkNvbmZpZywgU2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uRXh0cmFzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtHcmlkQ29tcG9uZW50fSBmcm9tICcuLi9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7QWN0aW9uU2VydmljZX0gZnJvbSAnLi4vYWN0aW9ucy9hY3Rpb24tc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0Rtc09iamVjdCwgRG1zU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWxpc3QtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHVibGljIGdyaWRDb3VudDogYW55O1xuICBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG4gIGVvR3JpZFN1YmplY3QgPSBuZXcgQXN5bmNTdWJqZWN0PEdyaWRDb21wb25lbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChHcmlkQ29tcG9uZW50KVxuICBzZXQgY29udGVudEdyaWQoZW9HcmlkOiBHcmlkQ29tcG9uZW50KSB7XG4gICAgaWYgKGVvR3JpZCkge1xuICAgICAgdGhpcy5lb0dyaWQgPSBlb0dyaWQ7XG4gICAgICB0aGlzLmVvR3JpZFN1YmplY3QubmV4dCh0aGlzLmVvR3JpZCk7XG4gICAgICB0aGlzLmVvR3JpZFN1YmplY3QuY29tcGxldGUoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBhcHBseVNlbGVjdGlvbjogU2VsZWN0aW9uQ29uZmlnID0ge307XG4gIEBJbnB1dCgpIGFwcGx5VmVyc2lvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkaW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgdGFicyA9IHRydWU7XG4gIEBJbnB1dCgpIHBhcnNlRG1zUGFyYW1zOiAoZGF0YSkgPT4gYW55ID0gKGRhdGE6IGFueSkgPT4gZGF0YTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLCBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIG9uQ291bnRDaGFuZ2VkKGRhdGE6IGFueSkge1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZ3JpZENvdW50ID0gZGF0YTtcbiAgfVxuXG4gIG9uRm9jdXNDaGFuZ2VkKGRhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAuZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLm91dClcbiAgICAgIC5mb2N1cyhkYXRhKTtcbiAgfVxuXG4gIG9uRG91YmxlQ2xpY2soZXZlbnQ6IGFueSwgZm9yY2VPcGVuT2JqZWN0ID0gZmFsc2UpIHtcblxuICAgIGNvbnN0IHtpZCwgdHlwZSwgdmVyc2lvbiwgaW50ZW50fSA9IHRoaXMucGFyc2VEbXNQYXJhbXMoZXZlbnQuZGF0YSk7XG4gICAgaWYgKGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcGVuT2JqZWN0KGlkLCB0eXBlLCB2ZXJzaW9uLCBpbnRlbnQsIGV2ZW50LmV2ZW50LmN0cmxLZXksIGZvcmNlT3Blbk9iamVjdCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2VkKHNlbGVjdGVkRGF0YTogYW55W10pIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5zZXQoc2VsZWN0ZWREYXRhKTtcbiAgfVxuXG4gIG9uQ29udGV4dE1lbnUoc2VsZWN0ZWREYXRhPzogYW55W10sIHRhcmdldD86IHN0cmluZykge1xuICAgIHRoaXMuc2hvd0FjdGlvbnMoc2VsZWN0ZWREYXRhLCB0YXJnZXQpO1xuICB9XG5cbiAgb3Blbk9iamVjdChpZCwgX3R5cGU/LCB2ZXJzaW9uPywgaW50ZW50PywgbmV3VGFiID0gZmFsc2UsIGZvcmNlT3Blbk9iamVjdCA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMucm91dGVyLnVybC5zdGFydHNXaXRoKCcvb2JqZWN0JykgJiYgIWZvcmNlT3Blbk9iamVjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2ZXJzaW9uID0gdGhpcy5hcHBseVZlcnNpb24gPyB2ZXJzaW9uIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBOYXZpZ2F0aW9uRXh0cmFzID0ge3F1ZXJ5UGFyYW1zOiB7J3R5cGUnOiBfdHlwZSwgdmVyc2lvbiwgaW50ZW50fX07XG4gICAgaWYgKG5ld1RhYikge1xuICAgICAgd2luZG93Lm9wZW4oQ2VsbFJlbmRlcmVyLndpbmRvd1VSSSh0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnb2JqZWN0JywgaWRdLCBxdWVyeVBhcmFtcykpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvb2JqZWN0JywgaWRdLCBxdWVyeVBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgbG9hZE9iamVjdChpZCwgX3R5cGU/LCB2ZXJzaW9uPywgaW50ZW50Pyk6IFN1YnNjcmlwdGlvbiB7XG4gICAgdmVyc2lvbiA9IHRoaXMuYXBwbHlWZXJzaW9uID8gdmVyc2lvbiA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5kbXNTZXJ2aWNlXG4gICAgICAuZ2V0RG1zT2JqZWN0KGlkLCBfdHlwZSwgdmVyc2lvbiwgaW50ZW50KVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBEbXNPYmplY3QpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLm91dCkuZm9jdXMocmVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2hvd0FjdGlvbnMoc2VsZWN0ZWREYXRhPzogYW55W10sIHRhcmdldCA9ICdETVNfT0JKRUNUJykge1xuICAgIGxldCBzZWxlY3Rpb24gPSBzZWxlY3RlZERhdGEgfHwgdGhpcy5zZWxlY3Rpb24uZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLm91dCkuZ2V0KCk7XG4gICAgbGV0IG9ic2VydmFibGVzID0gc2VsZWN0aW9uLm1hcChkYXRhID0+IHRhcmdldCA9PT0gJ0RNU19PQkpFQ1QnID8gdGhpcy5kbXNTZXJ2aWNlLmdldERtc09iamVjdEJ5UGFyYW1zKHRoaXMucGFyc2VEbXNQYXJhbXMoZGF0YSkpIDogb2JzZXJ2YWJsZU9mKGRhdGEpKTtcbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSgocmVzOiBhbnlbXSkgPT4gdGhpcy5hY3Rpb25TZXJ2aWNlLnNob3dBY3Rpb25zKHJlcywgdGFyZ2V0KSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWhlYWRcIiBbbmdDbGFzc109XCJ7J2VvLWhlYWQtdGFicyc6IHRhYnN9XCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5lby1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZy1jb250ZW50IHNlbGVjdD1cIi5lby1ib2R5XCI+XG48L25nLWNvbnRlbnQ+XG48ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIiAqbmdJZj1cImxvYWRpbmdcIj48ZW8tbG9hZGluZy1zcGlubmVyIFtzaXplXT1cIidtZWRpdW0nXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+PC9kaXY+XG4iXX0=
|
|
@@ -164,7 +164,7 @@ let RowEditComponent = class RowEditComponent {
|
|
|
164
164
|
this.onSave.emit({
|
|
165
165
|
index: this._row.index,
|
|
166
166
|
rowData: this._getFormData(),
|
|
167
|
-
createNewRow: this.createNewRow
|
|
167
|
+
createNewRow: this.isNewRow && this.createNewRow
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
170
|
this.saving = false;
|
|
@@ -226,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
226
226
|
}], onDelete: [{
|
|
227
227
|
type: Output
|
|
228
228
|
}] } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUgsT0FBTyxFQUFzQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk1Rjs7R0FFRztBQVNJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBNEIzQixJQUFJLGdCQUFnQixDQUFDLEdBQVk7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMs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cHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TG9jYWxTdG9yYWdlU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7Rm9ybVN0YXR1c0NoYW5nZWRFdmVudH0gZnJvbSAnLi4vLi4vLi4vZm9ybS1zdGF0dXMtY2hhbmdlZC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtGb3JtR2VuUmVzdWx0LCBPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlcic7XG5pbXBvcnQge09iamVjdEZvcm1Hcm91cH0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0U2VydmljZX0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcbmltcG9ydCB7RWRpdFJvdywgRWRpdFJvd1Jlc3VsdH0gZnJvbSAnLi4vZm9ybS1lbGVtZW50LmludGVyZmFjZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBlZGl0aW5nIGEgcm93IGZyb20gYW4gb2JqZWN0IGZvcm1zIHRhYmxlLlxuICovXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXJvdy1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jvdy1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm93LWVkaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBSb3dFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29uZmlybURlbGV0ZScpIGNvbmZpcm1EZWxldGVCdXR0b246IEVsZW1lbnRSZWY7XG5cbiAgLy8gSUQgc2V0IGJ5IHBlbmRpbmdDaGFuZ2VzIHNlcnZpY2Ugd2hlbiBlZGl0aW5nIHJvdyBkYXRhXG4gIC8vIFVzZWQgdG8gZmluaXNoIHRoZSBwZW5kaW5nIHRhc2sgd2hlbiBlZGl0aW5nIGlzIGRvbmVcbiAgcGVuZGluZ1Rhc2tJZDogc3RyaW5nO1xuXG4gIGVkaXRGb3JtOiBPYmplY3RGb3JtR3JvdXA7XG4gIGVkaXRGb3JtQ29udHJvbHM6IE9iamVjdEZvcm1Db250cm9sV3JhcHBlcltdID0gW107XG4gIHByaXZhdGUgc2NyaXB0aW5nU2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAvLyBwcm9wZXJ0eSBmb3IgaG9sZGluZyB0aGUgZm9ybXMgZGF0YSB1c2VkIGZvciBjb21wYXJpc29uIHdoZW4gYSBmb3JtLWNoYW5nZWQtZXZlbnRcbiAgLy8gaXMgZmV0Y2hlZCB0byBpbmRpY2F0ZSB3aGVyIG9yIG5vdCB0aGUgaW5kZXhkYXRhIHdlcmUgY2hhbmdlZCBvciBqdXN0IHRoZSBwcm9wZXJ0aWVzXG4gIC8vIG9mIHRoZSBmb3JtIGVsZW1lbnRzIChlZy4gZm9ybSBzY3JpcHQgc2V0dGluZyBmaWVsZHMgdG8gcmVhZG9ubHkpXG4gIHByaXZhdGUgZm9ybURhdGE6IGFueTtcblxuICBfcm93OiBFZGl0Um93O1xuICBpc05ld1JvdzogYm9vbGVhbjtcbiAgZm9ybVN0YXRlPzogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcbiAgcXVlcnlFbmFibGVkID0gdHJ1ZTtcbiAgY29weUVuYWJsZWQgPSB0cnVlO1xuICBkZWxldGVFbmFibGVkID0gdHJ1ZTtcbiAgc2F2ZUVuYWJsZWQgPSB0cnVlO1xuICBjcmVhdGVOZXdDaGVja2JveDogVW50eXBlZEZvcm1Db250cm9sO1xuICBjcmVhdGVOZXdSb3cgPSBmYWxzZTtcbiAgX3Nob3dEZWxldGVEaWFsb2cgPSBmYWxzZTtcbiAgc2F2aW5nID0gZmFsc2U7XG5cbiAgc2V0IHNob3dEZWxldGVEaWFsb2codmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0RlbGV0ZURpYWxvZyA9IHZhbDtcblxuICAgIGlmICh0aGlzLl9zaG93RGVsZXRlRGlhbG9nKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29uZmlybURlbGV0ZUJ1dHRvbi5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93RGVsZXRlRGlhbG9nKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93RGVsZXRlRGlhbG9nO1xuICB9XG5cbiAgQElucHV0KCkgbGltaXRSZWFjaGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNldCByb3cocjogRWRpdFJvdykge1xuICAgIHRoaXMuX3JvdyA9IHI7XG4gICAgdGhpcy5mb3JtRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnF1ZXJ5RW5hYmxlZCA9IHI/LnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCc7XG4gICAgdGhpcy5jb3B5RW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLnNhdmVFbmFibGVkID0gIXRoaXMucXVlcnlFbmFibGVkO1xuICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLmlzTmV3Um93ID0gdGhpcy5fcm93Py5pbmRleCA9PT0gLTE7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xuXG4gICAgdGhpcy5fYnVpbGRSb3dFZGl0Rm9ybSgpO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0Um93UmVzdWx0PigpO1xuICBAT3V0cHV0KCkgb25TYXZlQ29weSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdFJvd1Jlc3VsdD4oKTtcbiAgQE91dHB1dCgpIG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybVNjcmlwdFNlcnZpY2U6IE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMuY3JlYXRlTmV3Um93ID0gISF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2NyZWF0ZU5ld1JvdycpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3ggPSB0aGlzLmZiLmNvbnRyb2wodGhpcy5jcmVhdGVOZXdSb3cpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3gudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVOZXdSb3cgPSB2O1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCdjcmVhdGVOZXdSb3cnLCB0aGlzLmNyZWF0ZU5ld1Jvdyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgY3VycmVudCBmb3JtIHNjcmlwdCBydW5uaW5nLiBJZiB0aGVyZSBpc1xuICogbm8gZm9ybSBzY3JpcHQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIE5VTEwuXG4gKiBAcmV0dXJuc1xuICovXG4gIHByaXZhdGUgX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NyaXB0aW5nU2NvcGUgPyB0aGlzLnNjcmlwdGluZ1Njb3BlLmdldE1vZGVsKCkgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Rm9ybURhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuZXh0cmFjdEZvcm1EYXRhKFxuICAgICAgdGhpcy5lZGl0Rm9ybSxcbiAgICAgIHRoaXMuX3Jvdy5zaXR1YXRpb24sXG4gICAgICB0aGlzLl9yb3cuZm9ybS5kYXRhLCB0cnVlXG4gICAgKTtcblxuICB9XG5cbiAgb25Gb3JtUmVhZHkoKSB7XG4gICAgLy8gZXhlY3V0ZSBhZnRlciBmb3JtIGhhcyBiZWVuIHNldCB1cCwgYmVjYXVzZSBvdGhlcndpc2Ugbm90IGFsbCBvZiB0aGUgY29tcG9uZW50cyBhcmUgcmVhZHkgdG8gYmUgdXNlZFxuICAgIC8vIGlmIGZvciBleGFtcGxlIGEgZm9ybSBzY3JpcHQgZXhlY3V0ZWQgYG9ucm93ZWRpdGAgdHJpZXMgdG8gYXBwbHkgYSBmaWx0ZXIgb3Igc29tZXRoaW5nIGxpa2UgdGhhdFxuICAgIGlmICh0aGlzLl9yb3cudGFibGVFbGVtZW50Lm9ucm93ZWRpdCAmJiAhdGhpcy5fcm93LnRhYmxlRWxlbWVudC5yZWFkb25seSkge1xuXG4gICAgICAvLyBHZW5lcmF0ZSByb3cgQVBJIG9iamVjdCAod3JhcHBlcikgZm9yIHRoZSBzY3JpcHRcbiAgICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgICAgbW9kZWw6IHRoaXMuX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSxcbiAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgY29weUVuYWJsZWQ6IHRoaXMuY29weUVuYWJsZWQsXG4gICAgICAgIGRlbGV0ZUVuYWJsZWQ6IHRoaXMuZGVsZXRlRW5hYmxlZCxcbiAgICAgICAgc2F2ZUVuYWJsZWQ6IHRoaXMuc2F2ZUVuYWJsZWQsXG4gICAgICAgIHBlcnNpc3RlZDogIXRoaXMuaXNOZXdSb3cgLy8gTm90IHBlcnNpc3RlZCBpZiBpdCBpcyBhIG5ldyByb3dcbiAgICAgIH07XG4gICAgICB0aGlzLl9yb3cudGFibGVFbGVtZW50Lm9ucm93ZWRpdCh0aGlzLl9yb3cudGFibGVFbGVtZW50LCByb3cpO1xuICAgICAgLy8gLi4uIGFuZCByZXNwZWN0IHRoZSByZXN1bHRcbiAgICAgIHRoaXMuY29weUVuYWJsZWQgPSByb3cuY29weUVuYWJsZWQ7XG4gICAgICB0aGlzLmRlbGV0ZUVuYWJsZWQgPSByb3cuZGVsZXRlRW5hYmxlZDtcbiAgICAgIHRoaXMuc2F2ZUVuYWJsZWQgPSByb3cuc2F2ZUVuYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZCgpIHtcblxuICAgIC8vIGNoZWNrIGlmIGluZGV4ZGF0YSBoYXMgYmVlbiBjaGFuZ2VkXG4gICAgbGV0IGN1cnJlbnRGb3JtRGF0YSA9IHRoaXMuX2dldEZvcm1EYXRhKCk7XG4gICAgbGV0IGlkeENoYW5nZSA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybURhdGEpICE9PSBKU09OLnN0cmluZ2lmeShjdXJyZW50Rm9ybURhdGEpO1xuICAgIHRoaXMuZm9ybURhdGEgPSBVdGlscy5mb3JtRGF0YVBhcnNlKFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkpO1xuXG4gICAgdGhpcy5mb3JtU3RhdGUgPSB7XG4gICAgICBpbnZhbGlkOiB0aGlzLmVkaXRGb3JtLmludmFsaWQsXG4gICAgICBkaXJ0eTogdGhpcy5lZGl0Rm9ybS5kaXJ0eSxcbiAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXG4gICAgICBpbmRleGRhdGFDaGFuZ2VkOiBpZHhDaGFuZ2VcbiAgICB9O1xuICAgIGlmICh0aGlzLmZvcm1TdGF0ZS5pbmRleGRhdGFDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnN0YXJ0UGVuZGluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9idWlsZFJvd0VkaXRGb3JtKCkge1xuICAgIGlmICh0aGlzLl9yb3cpIHtcbiAgICAgIGNvbnN0IGZvcm1HZW5SZXM6IEZvcm1HZW5SZXN1bHQgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmJ1aWxkUmVhY3RpdmVGb3JtKFxuICAgICAgICB7XG4gICAgICAgICAgZm9ybU1vZGVsOiB7XG4gICAgICAgICAgICBzaXR1YXRpb246IHRoaXMuX3Jvdy5zaXR1YXRpb24sXG4gICAgICAgICAgICBlbGVtZW50czogW3tcbiAgICAgICAgICAgICAgdHlwZTogJ28ybUdyb3VwJyxcbiAgICAgICAgICAgICAgZWxlbWVudHM6IHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9yb3cuZm9ybS5lbGVtZW50cylcbiAgICAgICAgICAgIH1dXG4gICAgICAgICAgfSwgZGlzYWJsZWQ6IHRoaXMuX3Jvdy5mb3JtLmRpc2FibGVkLCBkYXRhOiB0aGlzLl9yb3cuZm9ybS5kYXRhXG4gICAgICAgIH0sIHRoaXMuZm9ybVNjcmlwdFNlcnZpY2UsIHRydWVcbiAgICAgICk7XG4gICAgICB0aGlzLmVkaXRGb3JtID0gZm9ybUdlblJlcy5mb3JtO1xuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZSA9IGZvcm1HZW5SZXMuc2NyaXB0aW5nU2NvcGU7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBmb3JtR2VuUmVzLmNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbnM7XG5cbiAgICAgIGNvbnN0IGN0cmxzID0gKHRoaXMuZWRpdEZvcm0uY29udHJvbHMuY29yZSBhcyBPYmplY3RGb3JtR3JvdXApLmNvbnRyb2xzO1xuICAgICAgdGhpcy5lZGl0Rm9ybUNvbnRyb2xzID0gT2JqZWN0LmtleXMoY3RybHMpLm1hcChrID0+IGN0cmxzW2tdIGFzIE9iamVjdEZvcm1Db250cm9sV3JhcHBlcilcbiAgICAgIHRoaXMuZm9ybVN0YXRlID0ge1xuICAgICAgICBpbnZhbGlkOiB0aGlzLmVkaXRGb3JtLmludmFsaWQsXG4gICAgICAgIGRpcnR5OiB0aGlzLmVkaXRGb3JtLmRpcnR5LFxuICAgICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhLFxuICAgICAgICBpbmRleGRhdGFDaGFuZ2VkOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZWRpdEZvcm0pIHJldHVybjtcbiAgICAgICAgbGV0IGZvcm1TdGF0ZVdhdGNoID0gdGhpcy5lZGl0Rm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHRoaXMub25Gb3JtU3RhdHVzQ2hhbmdlZCgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZm9ybVN0YXRlV2F0Y2gpO1xuICAgICAgICB0aGlzLm9uRm9ybVJlYWR5KCk7XG4gICAgICB9LCAzMDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQZW5kaW5nKCkge1xuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcbiAgICAvLyBwZW5kaW5nIHRhc2sgd2lsbCBvbmx5IGJlIHN0YXJ0ZWQgb25jZSB1bnRpbCBpdCB3YXMgZmluaXNoZWRcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2sodGhpcy5wZW5kaW5nVGFza0lkIHx8ICcgJykpIHtcbiAgICAgIHRoaXMucGVuZGluZ1Rhc2tJZCA9IHRoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCk7XG4gICAgfVxuICB9XG5cbiAgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkKSB7XG4gICAgICAgIHRoaXMub25TYXZlLmVtaXQoe1xuICAgICAgICAgIGluZGV4OiB0aGlzLl9yb3cuaW5kZXgsXG4gICAgICAgICAgcm93RGF0YTogdGhpcy5fZ2V0Rm9ybURhdGEoKSxcbiAgICAgICAgICBjcmVhdGVOZXdSb3c6IHRoaXMuY3JlYXRlTmV3Um93XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcbiAgICB9LCA1MDApO1xuICB9XG5cbiAgc2F2ZUNvcHkoKSB7XG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkKSB7XG4gICAgICAgIHRoaXMub25TYXZlQ29weS5lbWl0KHtcbiAgICAgICAgICBpbmRleDogdGhpcy5fcm93LmluZGV4LFxuICAgICAgICAgIHJvd0RhdGE6IHRoaXMuX2dldEZvcm1EYXRhKCksXG4gICAgICAgICAgY3JlYXRlTmV3Um93OiB0aGlzLmNyZWF0ZU5ld1Jvd1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIGRlbGV0ZSgpIHtcbiAgICB0aGlzLm9uRGVsZXRlLmVtaXQodGhpcy5fcm93LmluZGV4KTtcbiAgICB0aGlzLnNob3dEZWxldGVEaWFsb2cgPSBmYWxzZTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvdy1lZGl0XCI+XG4gIDxkaXYgY2xhc3M9XCJlZGl0LWhlYWRlclwiICpuZ0lmPVwiIXF1ZXJ5RW5hYmxlZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJuZXctaW5kaWNhdG9yXCIgKm5nSWY9XCJpc05ld1Jvd1wiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuaW5kaWNhdG9yLm5ldzwvZGl2PlxuICAgIDxkaXY+PC9kaXY+XG4gICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiIChjbGljayk9XCJjYW5jZWwoKVwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbC1pY29uXCJcbiAgICAgIFtpY29uVGl0bGVdPVwiKCdlby5jdGEuYnV0dG9uLmNhbmNlbCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm1cIiAqbmdJZj1cImVkaXRGb3JtXCI+XG4gICAgPGVvLWZvcm0tZWxlbWVudCAqbmdGb3I9XCJsZXQgYyBvZiBlZGl0Rm9ybUNvbnRyb2xzXCIgW2VsZW1lbnRdPVwiY1wiIFtzaXR1YXRpb25dPVwiX3Jvdz8uc2l0dWF0aW9uXCIgW3NraXBUb2dnbGVdPVwiZmFsc2VcIj5cbiAgICA8L2VvLWZvcm0tZWxlbWVudD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICA8ZW8tY2hlY2tib3ggKm5nSWY9XCJpc05ld1Jvd1wiIHRpdGxlPVwie3snZW8uZm9ybS50YWJsZS5vcHRpb25zLmNoZWNrYm94Lm5ldy50aXRsZScgfCB0cmFuc2xhdGV9fVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY3JlYXRlTmV3Q2hlY2tib3hcIj48L2VvLWNoZWNrYm94PlxuICAgIDxzcGFuICpuZ0lmPVwiaXNOZXdSb3dcIiBjbGFzcz1cImFkZC1sYWJlbFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuY2hlY2tib3gubmV3PC9zcGFuPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiZGVsZXRlRW5hYmxlZCAmJiAhaXNOZXdSb3cgJiYgIV9yb3c/LmZvcm0uZGlzYWJsZWQgJiYgIXF1ZXJ5RW5hYmxlZFwiXG4gICAgICAoY2xpY2spPVwic2hvd0RlbGV0ZURpYWxvZyA9IHRydWU7XCIgdGl0bGU9XCJ7eydlby5jdGEuYnV0dG9uLmRlbGV0ZScgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdHJhc2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZUNvcHkoKVwiIGNsYXNzPVwic2Vjb1wiICpuZ0lmPVwiY29weUVuYWJsZWQgJiYgIWlzTmV3Um93ICYmICFfcm93Py5mb3JtLmRpc2FibGVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJsaW1pdFJlYWNoZWQgfHwgc2F2aW5nIHx8IGZvcm1TdGF0ZT8uaW52YWxpZFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLmNvcHk8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgY2xhc3M9XCJwcmltYXJ5XCIgKm5nSWY9XCJzYXZlRW5hYmxlZCAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiKGxpbWl0UmVhY2hlZCAmJiBpc05ld1JvdykgfHwgc2F2aW5nIHx8IGZvcm1TdGF0ZT8uaW52YWxpZCB8fCAoIWZvcm1TdGF0ZT8uZGlydHkgJiYgIWlzTmV3Um93KVwiPnt7XG4gICAgICAnZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5zYXZlJyArIChpc05ld1JvdyA/ICcubmV3JyA6ICcnKSB8IHRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgPCEtLSBxdWVyeSBidXR0b24gZm9yIFNFQVJDSCBzaXR1YXRpb24gLS0+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIGNsYXNzPVwicHJpbWFyeVwiICpuZ0lmPVwicXVlcnlFbmFibGVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtU3RhdGU/LmludmFsaWQgfHwgIWZvcm1TdGF0ZT8uaW5kZXhkYXRhQ2hhbmdlZFwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLnNhdmU8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCIoJ2VvLmZvcm0udGFibGUub3B0aW9ucy5jb25maXJtLmRlbGV0ZScgfCB0cmFuc2xhdGUpXCIgWyh2aXNpYmxlKV09XCJzaG93RGVsZXRlRGlhbG9nXCJcbiAgW21pbldpZHRoXT1cIjQwMFwiPlxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMgZmxleC1yb3dcIiBzdHlsZT1cInBhZGRpbmc6IDhweDtcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWxcIiAoY2xpY2spPVwic2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlXCJcbiAgICAgIHRyYW5zbGF0ZT5lby5jdGEuYnV0dG9uLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNjb25maXJtRGVsZXRlIChjbGljayk9XCJkZWxldGUoKVwiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgdHJhbnNsYXRlPmVvLmZvcm0udGFibGUub3B0aW9ucy5idG4ub2s8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz4iXX0=
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUgsT0FBTyxFQUFzQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk1Rjs7R0FFRztBQVNJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBNEIzQixJQUFJLGdCQUFnQixDQUFDLEdBQVk7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMs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ZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi8uLi8uLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1HZW5SZXN1bHQsIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1ncm91cC5tb2RlbCc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGV9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUnO1xuaW1wb3J0IHtFZGl0Um93LCBFZGl0Um93UmVzdWx0fSBmcm9tICcuLi9mb3JtLWVsZW1lbnQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGVkaXRpbmcgYSByb3cgZnJvbSBhbiBvYmplY3QgZm9ybXMgdGFibGUuXG4gKi9cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcm93LWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcm93LWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yb3ctZWRpdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtPYmplY3RGb3JtU2NyaXB0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJvd0VkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjb25maXJtRGVsZXRlJykgY29uZmlybURlbGV0ZUJ1dHRvbjogRWxlbWVudFJlZjtcblxuICAvLyBJRCBzZXQgYnkgcGVuZGluZ0NoYW5nZXMgc2VydmljZSB3aGVuIGVkaXRpbmcgcm93IGRhdGFcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxuICBwZW5kaW5nVGFza0lkOiBzdHJpbmc7XG5cbiAgZWRpdEZvcm06IE9iamVjdEZvcm1Hcm91cDtcbiAgZWRpdEZvcm1Db250cm9sczogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyW10gPSBbXTtcbiAgcHJpdmF0ZSBzY3JpcHRpbmdTY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIC8vIHByb3BlcnR5IGZvciBob2xkaW5nIHRoZSBmb3JtcyBkYXRhIHVzZWQgZm9yIGNvbXBhcmlzb24gd2hlbiBhIGZvcm0tY2hhbmdlZC1ldmVudFxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcbiAgcHJpdmF0ZSBmb3JtRGF0YTogYW55O1xuXG4gIF9yb3c6IEVkaXRSb3c7XG4gIGlzTmV3Um93OiBib29sZWFuO1xuICBmb3JtU3RhdGU/OiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50O1xuICBxdWVyeUVuYWJsZWQgPSB0cnVlO1xuICBjb3B5RW5hYmxlZCA9IHRydWU7XG4gIGRlbGV0ZUVuYWJsZWQgPSB0cnVlO1xuICBzYXZlRW5hYmxlZCA9IHRydWU7XG4gIGNyZWF0ZU5ld0NoZWNrYm94OiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIGNyZWF0ZU5ld1JvdyA9IGZhbHNlO1xuICBfc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xuICBzYXZpbmcgPSBmYWxzZTtcblxuICBzZXQgc2hvd0RlbGV0ZURpYWxvZyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93RGVsZXRlRGlhbG9nID0gdmFsO1xuXG4gICAgaWYgKHRoaXMuX3Nob3dEZWxldGVEaWFsb2cpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jb25maXJtRGVsZXRlQnV0dG9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dEZWxldGVEaWFsb2coKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dEZWxldGVEaWFsb2c7XG4gIH1cblxuICBASW5wdXQoKSBsaW1pdFJlYWNoZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgc2V0IHJvdyhyOiBFZGl0Um93KSB7XG4gICAgdGhpcy5fcm93ID0gcjtcbiAgICB0aGlzLmZvcm1EYXRhID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucXVlcnlFbmFibGVkID0gcj8uc2l0dWF0aW9uID09PSAnU0VBUkNIJztcbiAgICB0aGlzLmNvcHlFbmFibGVkID0gIXRoaXMucXVlcnlFbmFibGVkO1xuICAgIHRoaXMuc2F2ZUVuYWJsZWQgPSAhdGhpcy5xdWVyeUVuYWJsZWQ7XG4gICAgdGhpcy5kZWxldGVFbmFibGVkID0gIXRoaXMucXVlcnlFbmFibGVkO1xuICAgIHRoaXMuaXNOZXdSb3cgPSB0aGlzLl9yb3c/LmluZGV4ID09PSAtMTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG5cbiAgICB0aGlzLl9idWlsZFJvd0VkaXRGb3JtKCk7XG4gIH1cblxuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRSb3dSZXN1bHQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmVDb3B5ID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0Um93UmVzdWx0PigpO1xuICBAT3V0cHV0KCkgb25EZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtU2NyaXB0U2VydmljZTogT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtSGVscGVyU2VydmljZTogT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLCBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy5jcmVhdGVOZXdSb3cgPSAhIXRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnY3JlYXRlTmV3Um93Jyk7XG4gICAgdGhpcy5jcmVhdGVOZXdDaGVja2JveCA9IHRoaXMuZmIuY29udHJvbCh0aGlzLmNyZWF0ZU5ld1Jvdyk7XG4gICAgdGhpcy5jcmVhdGVOZXdDaGVja2JveC52YWx1ZUNoYW5nZXMucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKCh2KSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZU5ld1JvdyA9IHY7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2NyZWF0ZU5ld1JvdycsIHRoaXMuY3JlYXRlTmV3Um93KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICogUmV0dXJucyB0aGUgb2JzZXJ2ZWQgbW9kZWwgdGhhdCB3YXMgcGFzc2VkIHRvIHRoZSBjdXJyZW50IGZvcm0gc2NyaXB0IHJ1bm5pbmcuIElmIHRoZXJlIGlzXG4gKiBubyBmb3JtIHNjcmlwdCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gTlVMTC5cbiAqIEByZXR1cm5zXG4gKi9cbiAgcHJpdmF0ZSBfZ2V0T2JzZXJ2ZWRTY3JpcHRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zY3JpcHRpbmdTY29wZSA/IHRoaXMuc2NyaXB0aW5nU2NvcGUuZ2V0TW9kZWwoKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9nZXRGb3JtRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5leHRyYWN0Rm9ybURhdGEoXG4gICAgICB0aGlzLmVkaXRGb3JtLFxuICAgICAgdGhpcy5fcm93LnNpdHVhdGlvbixcbiAgICAgIHRoaXMuX3Jvdy5mb3JtLmRhdGEsIHRydWVcbiAgICApO1xuXG4gIH1cblxuICBvbkZvcm1SZWFkeSgpIHtcbiAgICAvLyBleGVjdXRlIGFmdGVyIGZvcm0gaGFzIGJlZW4gc2V0IHVwLCBiZWNhdXNlIG90aGVyd2lzZSBub3QgYWxsIG9mIHRoZSBjb21wb25lbnRzIGFyZSByZWFkeSB0byBiZSB1c2VkXG4gICAgLy8gaWYgZm9yIGV4YW1wbGUgYSBmb3JtIHNjcmlwdCBleGVjdXRlZCBgb25yb3dlZGl0YCB0cmllcyB0byBhcHBseSBhIGZpbHRlciBvciBzb21ldGhpbmcgbGlrZSB0aGF0XG4gICAgaWYgKHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQub25yb3dlZGl0ICYmICF0aGlzLl9yb3cudGFibGVFbGVtZW50LnJlYWRvbmx5KSB7XG5cbiAgICAgIC8vIEdlbmVyYXRlIHJvdyBBUEkgb2JqZWN0ICh3cmFwcGVyKSBmb3IgdGhlIHNjcmlwdFxuICAgICAgY29uc3Qgcm93ID0ge1xuICAgICAgICBtb2RlbDogdGhpcy5fZ2V0T2JzZXJ2ZWRTY3JpcHRNb2RlbCgpLFxuICAgICAgICBpbmRleDogdGhpcy5fcm93LmluZGV4LFxuICAgICAgICBjb3B5RW5hYmxlZDogdGhpcy5jb3B5RW5hYmxlZCxcbiAgICAgICAgZGVsZXRlRW5hYmxlZDogdGhpcy5kZWxldGVFbmFibGVkLFxuICAgICAgICBzYXZlRW5hYmxlZDogdGhpcy5zYXZlRW5hYmxlZCxcbiAgICAgICAgcGVyc2lzdGVkOiAhdGhpcy5pc05ld1JvdyAvLyBOb3QgcGVyc2lzdGVkIGlmIGl0IGlzIGEgbmV3IHJvd1xuICAgICAgfTtcbiAgICAgIHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQub25yb3dlZGl0KHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQsIHJvdyk7XG4gICAgICAvLyAuLi4gYW5kIHJlc3BlY3QgdGhlIHJlc3VsdFxuICAgICAgdGhpcy5jb3B5RW5hYmxlZCA9IHJvdy5jb3B5RW5hYmxlZDtcbiAgICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9IHJvdy5kZWxldGVFbmFibGVkO1xuICAgICAgdGhpcy5zYXZlRW5hYmxlZCA9IHJvdy5zYXZlRW5hYmxlZDtcbiAgICB9XG4gIH1cblxuICBvbkZvcm1TdGF0dXNDaGFuZ2VkKCkge1xuXG4gICAgLy8gY2hlY2sgaWYgaW5kZXhkYXRhIGhhcyBiZWVuIGNoYW5nZWRcbiAgICBsZXQgY3VycmVudEZvcm1EYXRhID0gdGhpcy5fZ2V0Rm9ybURhdGEoKTtcbiAgICBsZXQgaWR4Q2hhbmdlID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSk7XG4gICAgdGhpcy5mb3JtRGF0YSA9IFV0aWxzLmZvcm1EYXRhUGFyc2UoVXRpbHMuZm9ybURhdGFTdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKSk7XG5cbiAgICB0aGlzLmZvcm1TdGF0ZSA9IHtcbiAgICAgIGludmFsaWQ6IHRoaXMuZWRpdEZvcm0uaW52YWxpZCxcbiAgICAgIGRpcnR5OiB0aGlzLmVkaXRGb3JtLmRpcnR5LFxuICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YSxcbiAgICAgIGluZGV4ZGF0YUNoYW5nZWQ6IGlkeENoYW5nZVxuICAgIH07XG4gICAgaWYgKHRoaXMuZm9ybVN0YXRlLmluZGV4ZGF0YUNoYW5nZWQpIHtcbiAgICAgIHRoaXMuc3RhcnRQZW5kaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkUm93RWRpdEZvcm0oKSB7XG4gICAgaWYgKHRoaXMuX3Jvdykge1xuICAgICAgY29uc3QgZm9ybUdlblJlczogRm9ybUdlblJlc3VsdCA9IHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuYnVpbGRSZWFjdGl2ZUZvcm0oXG4gICAgICAgIHtcbiAgICAgICAgICBmb3JtTW9kZWw6IHtcbiAgICAgICAgICAgIHNpdHVhdGlvbjogdGhpcy5fcm93LnNpdHVhdGlvbixcbiAgICAgICAgICAgIGVsZW1lbnRzOiBbe1xuICAgICAgICAgICAgICB0eXBlOiAnbzJtR3JvdXAnLFxuICAgICAgICAgICAgICBlbGVtZW50czogc3RydWN0dXJlZENsb25lKHRoaXMuX3Jvdy5mb3JtLmVsZW1lbnRzKVxuICAgICAgICAgICAgfV1cbiAgICAgICAgICB9LCBkaXNhYmxlZDogdGhpcy5fcm93LmZvcm0uZGlzYWJsZWQsIGRhdGE6IHRoaXMuX3Jvdy5mb3JtLmRhdGFcbiAgICAgICAgfSwgdGhpcy5mb3JtU2NyaXB0U2VydmljZSwgdHJ1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMuZWRpdEZvcm0gPSBmb3JtR2VuUmVzLmZvcm07XG4gICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlID0gZm9ybUdlblJlcy5zY3JpcHRpbmdTY29wZTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IGZvcm1HZW5SZXMuY29udHJvbFZhbHVlU3Vic2NyaXB0aW9ucztcblxuICAgICAgY29uc3QgY3RybHMgPSAodGhpcy5lZGl0Rm9ybS5jb250cm9scy5jb3JlIGFzIE9iamVjdEZvcm1Hcm91cCkuY29udHJvbHM7XG4gICAgICB0aGlzLmVkaXRGb3JtQ29udHJvbHMgPSBPYmplY3Qua2V5cyhjdHJscykubWFwKGsgPT4gY3RybHNba10gYXMgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKVxuICAgICAgdGhpcy5mb3JtU3RhdGUgPSB7XG4gICAgICAgIGludmFsaWQ6IHRoaXMuZWRpdEZvcm0uaW52YWxpZCxcbiAgICAgICAgZGlydHk6IHRoaXMuZWRpdEZvcm0uZGlydHksXG4gICAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXG4gICAgICAgIGluZGV4ZGF0YUNoYW5nZWQ6IGZhbHNlXG4gICAgICB9O1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5lZGl0Rm9ybSkgcmV0dXJuO1xuICAgICAgICBsZXQgZm9ybVN0YXRlV2F0Y2ggPSB0aGlzLmVkaXRGb3JtLnN0YXR1c0NoYW5nZXMucGlwZSgpXG4gICAgICAgICAgLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5vbkZvcm1TdGF0dXNDaGFuZ2VkKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChmb3JtU3RhdGVXYXRjaCk7XG4gICAgICAgIHRoaXMub25Gb3JtUmVhZHkoKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFBlbmRpbmcoKSB7XG4gICAgLy8gYmVjYXVzZSB0aGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBmb3JtIHN0YXR1cyBjaGFuZ2VzLFxuICAgIC8vIHBlbmRpbmcgdGFzayB3aWxsIG9ubHkgYmUgc3RhcnRlZCBvbmNlIHVudGlsIGl0IHdhcyBmaW5pc2hlZFxuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQgfHwgJyAnKSkge1xuICAgICAgdGhpcy5wZW5kaW5nVGFza0lkID0gdGhpcy5wZW5kaW5nQ2hhbmdlcy5zdGFydFRhc2soKTtcbiAgICB9XG4gIH1cblxuICBmaW5pc2hQZW5kaW5nKCkge1xuICAgIHRoaXMucGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQpO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybVN0YXRlLmludmFsaWQpIHtcbiAgICAgICAgdGhpcy5vblNhdmUuZW1pdCh7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgICByb3dEYXRhOiB0aGlzLl9nZXRGb3JtRGF0YSgpLFxuICAgICAgICAgIGNyZWF0ZU5ld1JvdzogdGhpcy5pc05ld1JvdyAmJiB0aGlzLmNyZWF0ZU5ld1Jvd1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHNhdmVDb3B5KCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZUNvcHkuZW1pdCh7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgICByb3dEYXRhOiB0aGlzLl9nZXRGb3JtRGF0YSgpLFxuICAgICAgICAgIGNyZWF0ZU5ld1JvdzogdGhpcy5jcmVhdGVOZXdSb3dcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICBkZWxldGUoKSB7XG4gICAgdGhpcy5vbkRlbGV0ZS5lbWl0KHRoaXMuX3Jvdy5pbmRleCk7XG4gICAgdGhpcy5zaG93RGVsZXRlRGlhbG9nID0gZmFsc2U7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3ctZWRpdFwiPlxuICA8ZGl2IGNsYXNzPVwiZWRpdC1oZWFkZXJcIiAqbmdJZj1cIiFxdWVyeUVuYWJsZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibmV3LWluZGljYXRvclwiICpuZ0lmPVwiaXNOZXdSb3dcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmluZGljYXRvci5uZXc8L2Rpdj5cbiAgICA8ZGl2PjwvZGl2PlxuICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWwtaWNvblwiXG4gICAgICBbaWNvblRpdGxlXT1cIignZW8uY3RhLmJ1dHRvbi5jYW5jZWwnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGb3JtXCIgKm5nSWY9XCJlZGl0Rm9ybVwiPlxuICAgIDxlby1mb3JtLWVsZW1lbnQgKm5nRm9yPVwibGV0IGMgb2YgZWRpdEZvcm1Db250cm9sc1wiIFtlbGVtZW50XT1cImNcIiBbc2l0dWF0aW9uXT1cIl9yb3c/LnNpdHVhdGlvblwiIFtza2lwVG9nZ2xlXT1cImZhbHNlXCI+XG4gICAgPC9lby1mb3JtLWVsZW1lbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgPGVvLWNoZWNrYm94ICpuZ0lmPVwiaXNOZXdSb3dcIiB0aXRsZT1cInt7J2VvLmZvcm0udGFibGUub3B0aW9ucy5jaGVja2JveC5uZXcudGl0bGUnIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNyZWF0ZU5ld0NoZWNrYm94XCI+PC9lby1jaGVja2JveD5cbiAgICA8c3BhbiAqbmdJZj1cImlzTmV3Um93XCIgY2xhc3M9XCJhZGQtbGFiZWxcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmNoZWNrYm94Lm5ldzwvc3Bhbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImRlbGV0ZUVuYWJsZWQgJiYgIWlzTmV3Um93ICYmICFfcm93Py5mb3JtLmRpc2FibGVkICYmICFxdWVyeUVuYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSB0cnVlO1wiIHRpdGxlPVwie3snZW8uY3RhLmJ1dHRvbi5kZWxldGUnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3RyYXNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVDb3B5KClcIiBjbGFzcz1cInNlY29cIiAqbmdJZj1cImNvcHlFbmFibGVkICYmICFpc05ld1JvdyAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwibGltaXRSZWFjaGVkIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jb3B5PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIGNsYXNzPVwicHJpbWFyeVwiICpuZ0lmPVwic2F2ZUVuYWJsZWQgJiYgIV9yb3c/LmZvcm0uZGlzYWJsZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIihsaW1pdFJlYWNoZWQgJiYgaXNOZXdSb3cpIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWQgfHwgKCFmb3JtU3RhdGU/LmRpcnR5ICYmICFpc05ld1JvdylcIj57e1xuICAgICAgJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uc2F2ZScgKyAoaXNOZXdSb3cgPyAnLm5ldycgOiAnJykgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIDwhLS0gcXVlcnkgYnV0dG9uIGZvciBTRUFSQ0ggc2l0dWF0aW9uIC0tPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBjbGFzcz1cInByaW1hcnlcIiAqbmdJZj1cInF1ZXJ5RW5hYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlPy5pbnZhbGlkIHx8ICFmb3JtU3RhdGU/LmluZGV4ZGF0YUNoYW5nZWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5zYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiKCdlby5mb3JtLnRhYmxlLm9wdGlvbnMuY29uZmlybS5kZWxldGUnIHwgdHJhbnNsYXRlKVwiIFsodmlzaWJsZSldPVwic2hvd0RlbGV0ZURpYWxvZ1wiXG4gIFttaW5XaWR0aF09XCI0MDBcIj5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGZsZXgtcm93XCIgc3R5bGU9XCJwYWRkaW5nOiA4cHg7XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSBmYWxzZVwiXG4gICAgICB0cmFuc2xhdGU+ZW8uY3RhLmJ1dHRvbi5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjY29uZmlybURlbGV0ZSAoY2xpY2spPVwiZGVsZXRlKClcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcbiAgICAgIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLm9rPC9idXR0b24+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+Il19
|