@eo-sdk/client 10.7.0-rc.2 → 10.7.0-rc.4
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/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +3 -2
- package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +59 -1
- package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts +1 -0
- package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts +6 -1
- package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts +4 -0
- package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
- package/app/eo-client/login/login.component.d.ts +1 -0
- package/app/eo-client/login/login.component.d.ts.map +1 -1
- package/app/eo-client/process-state/process-state.component.d.ts +1 -0
- package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +1 -2
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.d.ts +18 -0
- package/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.d.ts.map +1 -0
- package/app/eo-framework/app-shell/app-shell.module.d.ts +17 -16
- package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
- package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +2 -1
- package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
- package/app/eo-framework/media/media.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-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/process/details/process-details.component.d.ts.map +1 -1
- package/app/eo-framework/quick-search/quick-search/quick-search.component.d.ts.map +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts +1 -0
- package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
- package/app/eo-framework/ui/overlay/overlay.component.d.ts +11 -7
- package/app/eo-framework/ui/overlay/overlay.component.d.ts.map +1 -1
- package/app/eo-framework/upload-overlay/upload-overlay.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +12 -3
- package/assets/_default/i18n/en.json +12 -3
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +4 -4
- package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +71 -45
- package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +43 -10
- package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +17 -4
- package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +38 -6
- package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
- package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
- package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +36 -25
- package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
- package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +2 -2
- package/esm2020/app/eo-client/login/login.component.mjs +13 -6
- package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
- package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +1 -1
- package/esm2020/app/eo-client/process-state/process-state.component.mjs +22 -15
- package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +1 -1
- package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +1 -1
- package/esm2020/app/eo-client/version-state/version-state.component.mjs +1 -1
- package/esm2020/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +4 -4
- package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +10 -19
- package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +4 -4
- package/esm2020/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +42 -0
- package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +5 -2
- package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +23 -8
- package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +7 -3
- package/esm2020/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +2 -2
- package/esm2020/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +2 -2
- package/esm2020/app/eo-framework/media/media.component.mjs +8 -2
- package/esm2020/app/eo-framework/object-details/object-details.component.mjs +10 -4
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +2 -2
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +5 -4
- package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +11 -2
- package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +1 -1
- package/esm2020/app/eo-framework/process/details/process-details.component.mjs +1 -2
- package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -1
- package/esm2020/app/eo-framework/result-list/result-list.component.mjs +31 -2
- package/esm2020/app/eo-framework/ui/overlay/overlay.component.mjs +38 -18
- package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
- package/esm2020/app/eo-framework/upload-overlay/upload-overlay.component.mjs +4 -2
- package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +3 -4
- package/esm2020/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.mjs +1 -1
- package/esm2020/projects/eo-sdk/core/lib/service/bpm/bpm.service.mjs +6 -6
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +6 -8
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +565 -328
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +6 -8
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +561 -322
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/package.json +3 -3
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts +0 -4
- package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts.map +1 -1
|
@@ -79,7 +79,6 @@ let ProcessDetailsComponent = class ProcessDetailsComponent {
|
|
|
79
79
|
item.data.image = this.userService.getUserImageUri(item.editor.id);
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
|
-
console.log({ history });
|
|
83
82
|
this.history = history.sort((a, b) => b.number - a.number);
|
|
84
83
|
}
|
|
85
84
|
});
|
|
@@ -224,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
224
223
|
}], onDmsItemSelected: [{
|
|
225
224
|
type: Output
|
|
226
225
|
}] } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3Byb2Nlc3MvZGV0YWlscy9wcm9jZXNzLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcHJvY2Vzcy9kZXRhaWxzL3Byb2Nlc3MtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3ZHLE9BQU8sRUFBZSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUM3RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFNM0UsT0FBTyxFQUdMLGVBQWUsRUFPZixLQUFLLEVBR04sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRNUQsSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7SUEwQmxDLElBQ0ksSUFBSSxDQUFDLENBQVU7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsRUFBRTtZQUNMLGVBQWU7WUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUss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dUJBQXVCO0lBTm5DLFlBQVksRUFBRTtHQU1GLHVCQUF1QixDQTRPbkM7U0E1T1ksdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usb0JBQW9CO3lRQU1SLFNBQVM7c0JBQTlCLFNBQVM7dUJBQUMsU0FBUztnQkFtQlgsT0FBTztzQkFBZixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7dUJBQUMsTUFBTTtnQkFtQkgsaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbiwgZm9ya0pvaW4sIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtFbXB0eVN0YXRlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtFbXB0eVN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge0NlbGxSZW5kZXJlcn0gZnJvbSAnLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uQ29uZmlnLCBTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdEZvcm1Db21wb25lbnR9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIEJwbVNlcnZpY2UsXG4gIENsaXBib2FyZCxcbiAgQ2xpcGJvYXJkQWN0aW9uLFxuICBDbGlwYm9hcmRTZXJ2aWNlLFxuICBEbXNQYXJhbXMsXG4gIEZpbGVFbnRyeSxcbiAgUHJvY2VzcyxcbiAgU3lzdGVtU2VydmljZSxcbiAgVXNlclNlcnZpY2UsXG4gIFV0aWxzLFxuICBXb3JrSXRlbSxcbiAgV29ya0l0ZW1IaXN0b3J5RW50cnlcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1wcm9jZXNzLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzcy1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0RldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2JwbUZvcm0nKSBicG1Gb3JtRWw6IE9iamVjdEZvcm1Db21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfaXRlbTogUHJvY2VzcztcbiAgd29ya0l0ZW06IFdvcmtJdGVtO1xuICBoaXN0b3J5OiBXb3JrSXRlbUhpc3RvcnlFbnRyeVtdO1xuICBvcmdhbmlzYXRpb246IGFueTtcbiAgLy8gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSB3b3JrIGl0ZW0gaXMgbG9ja2VkIGJ5IHRoZSB1c2VyXG4gIGxvY2tlZDogYm9vbGVhbjtcblxuICBmb3JtU3RhdGU6IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQ7XG4gIGZvcm1PcHRpb25zOiBPYmplY3RGb3JtT3B0aW9ucztcbiAgc2VsZWN0ZWRDb250ZW50RmlsZUlkOiBzdHJpbmc7XG4gIGFjdGlvblByb2Nlc3Npbmc6IFN1YnNjcmlwdGlvbiB8IGFueSA9IHtjbG9zZWQ6IHRydWV9O1xuICBpbml0aWFsaXppbmc6IFN1YnNjcmlwdGlvbiB8IGFueSA9IHtjbG9zZWQ6IHRydWV9O1xuICBsb2FkRXJyb3I6IGJvb2xlYW47XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGNsaXBib2FyZDogQ2xpcGJvYXJkO1xuXG4gIFxuICBASW5wdXQoKSBwbHVnaW5zOiBhbnlbXTtcblxuICBASW5wdXQoKSBlbXB0eVN0YXRlOiBFbXB0eVN0YXRlID0gRW1wdHlTdGF0ZVNlcnZpY2UuZGVmYXVsdEVtcHR5U3RhdGUoKTtcbiAgQElucHV0KCkgYXBwbHlTZWxlY3Rpb246IFNlbGVjdGlvbkNvbmZpZztcblxuICBASW5wdXQoJ2l0ZW0nKVxuICBzZXQgaXRlbShpOiBQcm9jZXNzKSB7XG4gICAgdGhpcy5faXRlbSA9IGk7XG5cbiAgICBpZiAoaSkge1xuICAgICAgLy8gcmVzZXQgdmFsdWVzXG4gICAgICB0aGlzLndvcmtJdGVtID0gbnVsbDtcbiAgICAgIHRoaXMuaGlzdG9yeSA9IFtdO1xuICAgICAgdGhpcy5sb2NrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcm9jZXNzKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpdGVtKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uRG1zSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEbXNQYXJhbXM+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBicG1TZXJ2aWNlOiBCcG1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICB9XG5cbiAgdHJhY2tCeUNvZGUoaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS5jb2RlO1xuICB9XG5cbiAgdHJhY2tCeUluZGV4KGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChldnQpIHtcbiAgICB0aGlzLmZvcm1TdGF0ZSA9IGV2dDtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2VzcygpOiB2b2lkIHtcblxuICAgIHRoaXMubG9hZEVycm9yID0gZmFsc2U7XG4gICAgdGhpcy5pbml0aWFsaXppbmcuY2xvc2VkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0YXNrcyA9IFtcbiAgICAgIHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3RCeUlkKHRoaXMuaXRlbS5jcmVhdG9yaWQpLnBpcGUoXG4gICAgICAgIC8vIHJldHVybiBkZWZhdWx0IGJlY2F1c2Ugb3RoZXJ3aXNlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2Yoe1xuICAgICAgICAgIG5hbWU6ICd1bmtub3duJ1xuICAgICAgICB9KSlcbiAgICAgICksXG4gICAgICB0aGlzLmJwbVNlcnZpY2UuZ2V0UHJvY2Vzc0hpc3RvcnkodGhpcy5pdGVtLnByb2Nlc3NpZClcbiAgICBdO1xuXG4gICAgZm9ya0pvaW4odGFza3MpXG4gICAgICAuc3Vic2NyaWJlKHRhc2tzUmVzdWx0ID0+IHtcblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgW29yZ2FuaXNhdGlvbiwgaGlzdG9yeV0gPSB0YXNrc1Jlc3VsdDtcbiAgICAgICAgdGhpcy5vcmdhbmlzYXRpb24gPSBvcmdhbmlzYXRpb247XG4gICAgICAgIHRoaXMuZ2V0UHJvY2Vzc0ZpbGUodGhpcy5pdGVtLnByb2Nlc3NpZCk7XG4gICAgICAgIGlmIChoaXN0b3J5KSB7XG4gICAgICAgICAgaGlzdG9yeS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5lZGl0b3IpIHtcbiAgICAgICAgICAgICAgaXRlbS5kYXRhLmltYWdlID0gdGhpcy51c2VyU2VydmljZS5nZXRVc2VySW1hZ2VVcmkoaXRlbS5lZGl0b3IuaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coe2hpc3Rvcnl9KTtcblxuICAgICAgICAgIHRoaXMuaGlzdG9yeSA9IGhpc3Rvcnkuc29ydCgoYSwgYikgPT4gYi5udW1iZXIgLSBhLm51bWJlcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cblxuICBnZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQpIHtcbiAgICB0aGlzLmJwbVNlcnZpY2VcbiAgICAgIC5nZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IEZpbGVFbnRyeVtdKSA9PiB7XG4gICAgICAgIHRoaXMub3BlblByb2Nlc3NJdGVtQ29udGVudChyZXNbMF0pO1xuICAgICAgICB0aGlzLl9pdGVtLnNldEZpbGUocmVzKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkRXJyb3IgPSB0cnVlO1xuICAgICAgfSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5kZXRhaWxzLndvcmtpdGVtLmxvYWQuZmFpbCcpKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgd29yayBpdGVtcyBmaWxlIGVudHJ5IGFuIGVtaXRzIG9uRG1zSXRlbVNlbGVjdGVkIGV2ZW50LlxuICAgKiBAcGFyYW0gZmlsZSBGaWxlRW50cnkgZWxlbWVudCB0byBiZSBzZWxlY3RlZFxuICAgKi9cbiAgb3BlblByb2Nlc3NJdGVtQ29udGVudChmaWxlPzogRmlsZUVudHJ5KSB7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IG51bGw7XG4gICAgICB0aGlzLm9uRG1zSXRlbVNlbGVjdGVkLmVtaXQobnVsbCk7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhudWxsKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpbGUuaWQgIT09IHRoaXMuc2VsZWN0ZWRDb250ZW50RmlsZUlkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IGZpbGUuaWQ7XG4gICAgICBsZXQgcGFyYW1zID0ge1xuICAgICAgICBpZDogZmlsZS5pZCxcbiAgICAgICAgdHlwZTogZmlsZS50eXBlXG4gICAgICB9O1xuICAgICAgdGhpcy5vbkRtc0l0ZW1TZWxlY3RlZC5lbWl0KHBhcmFtcyk7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhwYXJhbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVdvcmtJdGVtQ29udGVudChldmVudDogW0ZpbGVFbnRyeSwgTW91c2VFdmVudF0pIHtcbiAgICBjb25zdCBbZmlsZSwgZXZ0XSA9IGV2ZW50O1xuICAgIGNvbnN0IHtwcm9jZXNzaWQsIGVsZW1lbnRpZH0gPSB0aGlzLndvcmtJdGVtWydjb250ZW50J11bMF07XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5hY3Rpb25Qcm9jZXNzaW5nID0gdGhpcy5icG1TZXJ2aWNlXG4gICAgICAucmVtb3ZlRmlsZUVsZW1lbnQocHJvY2Vzc2lkLCBlbGVtZW50aWQsIGZpbGUuaWQpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMud29ya0l0ZW0uZmlsZSA9IHRoaXMud29ya0l0ZW0uZmlsZS5maWx0ZXIoZiA9PiBmLmlkICE9PSBmaWxlLmlkKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb250ZW50RmlsZUlkID09PSBmaWxlLmlkKSB7XG4gICAgICAgICAgdGhpcy5vcGVuUHJvY2Vzc0l0ZW1Db250ZW50KHRoaXMud29ya0l0ZW0uZmlsZS5sZW5ndGggPyB0aGlzLndvcmtJdGVtLmZpbGVbMF0gOiBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCxcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5yZW1vdmUnKSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5yZW1vdmUubWVzc2FnZScpKVxuICAgICAgKTtcbiAgfVxuXG4gIGFkZFBhc3RlZFByb2Nlc3NGaWxlKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLmJwbVNlcnZpY2UuYWRkRmlsZUVsZW1lbnRzRnJvbUNsaXBib2FyZCh0aGlzLndvcmtJdGVtLCB0aGlzLmNsaXBib2FyZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaChudWxsLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5hZGQubWVzc2FnZScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5lcnJvcicpKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHdvcmtJdGVtID0+IHtcbiAgICAgICAgICB0aGlzLndvcmtJdGVtID0gd29ya0l0ZW07XG4gICAgICAgICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNsZWFyKCk7XG4gICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCkge1xuICAgICAgICAgICAgLy8gb3BlbiBmaXJzdCBpdGVtIHdoZW4gbm90aGluZyBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgdGhpcy5vcGVuV29ya0l0ZW1Db250ZW50KHRoaXMud29ya0l0ZW0uZmlsZS5sZW5ndGggPyB0aGlzLndvcmtJdGVtLmZpbGVbMF0gOiBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5lcnJvcicpLFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZmlsZS5ub3RpZmljYXRpb24uYWRkLm1lc3NhZ2UnKSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgZmlsZSAoYXR0YWNoZWQgRE1TT2JqZWN0KSBpbiBvYmplY3Qgc3RhdGVcbiAgICogQHBhcmFtIGZpbGVcbiAgICovXG4gIG9wZW5Xb3JrSXRlbUNvbnRlbnRJbkNvbnRleHQoZXZ0KSB7XG4gICAgY29uc3QgZmlsZTogRmlsZUVudHJ5ID0gZXZ0LmRhdGEgfHwge307XG4gICAgY29uc3QgZmlsZVR5cGU6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsndHlwZSc6IGZpbGUudHlwZX19O1xuICAgIGlmIChldnQuY3RybEtleSkge1xuICAgICAgd2luZG93Lm9wZW4oQ2VsbFJlbmRlcmVyLndpbmRvd1VSSSh0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnb2JqZWN0JywgZmlsZS5pZF0sIGZpbGVUeXBlKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9vYmplY3QnLCBmaWxlLmlkXSwgZmlsZVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgd29yayBpdGVtcyBmaWxlIGVudHJ5IGFuIGVtaXRzIG9uRG1zSXRlbVNlbGVjdGVkIGV2ZW50LlxuICAgKiBAcGFyYW0gZmlsZSBGaWxlRW50cnkgZWxlbWVudCB0byBiZSBzZWxlY3RlZFxuICAgKi9cbiAgb3BlbldvcmtJdGVtQ29udGVudChmaWxlPzogRmlsZUVudHJ5KSB7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IG51bGw7XG4gICAgICB0aGlzLm9uRG1zSXRlbVNlbGVjdGVkLmVtaXQobnVsbCk7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhudWxsKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpbGUuaWQgIT09IHRoaXMuc2VsZWN0ZWRDb250ZW50RmlsZUlkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IGZpbGUuaWQ7XG4gICAgICBsZXQgcGFyYW1zID0ge1xuICAgICAgICBpZDogZmlsZS5pZCxcbiAgICAgICAgdHlwZTogZmlsZS50eXBlXG4gICAgICB9O1xuICAgICAgdGhpcy5vbkRtc0l0ZW1TZWxlY3RlZC5lbWl0KHBhcmFtcyk7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAgIC5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KVxuICAgICAgICAgIC5mb2N1cyhwYXJhbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmFwcGx5U2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAuZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLmluKVxuICAgICAgICAuZm9jdXMkLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4gdGhpcy5pdGVtID0gaXRlbSk7XG4gICAgfVxuXG4gICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlXG4gICAgICAuY2xpcGJvYXJkJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoY2xpcGJvYXJkOiBDbGlwYm9hcmQpID0+IHRoaXMuY2xpcGJvYXJkID0gY2xpcGJvYXJkLmFjdGlvbiA9PT0gQ2xpcGJvYXJkQWN0aW9uLkNPUFkgPyBjbGlwYm9hcmQgOiBudWxsKTtcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHJvY2Vzcy1kZXRhaWxzXCIgKm5nSWY9XCJpdGVtOyBlbHNlIG5vSXRlbVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJlby1oZWFkXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cImVvLWhlYWRlclwiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiIFtuZ0NsYXNzXT1cIntlcnJvcjogaXRlbS5zdGF0ZSA9PT0gJ0VSUk9SU1VTUEVOREVEJ31cIiAqbmdJZj1cIiFpdGVtLmljb25pZFwiIFtpY29uVGl0bGVdPVwiaXRlbS5tb2RlbG5hbWVcIlxuICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiaXRlbS5pY29udXJsXCI+PC9lby1pY29uPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uaWRcIiBbaWNvbklkXT1cIml0ZW0uaWNvbmlkXCIgW2ljb25UaXRsZV09XCJpdGVtLm1vZGVsbmFtZVwiPjwvZW8taWNvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mbyBlby1oZWFkZXJfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlcl9fdGl0bGVcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIj57e2l0ZW0ubG9jYWxpemVkc3ViamVjdH19PC9oMj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJlby1oZWFkZXItc3VidGl0bGVcIj57e2l0ZW0ubW9kZWxuYW1lfX08c3BhbiBjbGFzcz1cInN0YXJ0ZXJcIiAqbmdJZj1cIm9yZ2FuaXNhdGlvbiAmJiBvcmdhbmlzYXRpb24ubmFtZSAhPT0gJ3N5c3Jvb3QnICYmIG9yZ2FuaXNhdGlvbi5uYW1lICE9PSAnc3lzdGVtJ1wiPnt7b3JnYW5pc2F0aW9uLnRpdGxlfX0gKHt7b3JnYW5pc2F0aW9uLm5hbWV9fSk8L3NwYW4+PC9oMz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICA8ZW8tbG9hZGluZy1zcGlubmVyICpuZ0lmPVwibG9hZGluZ1wiIFtzaXplXT1cIidzbWFsbCdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImxvYWQtZXJyb3JcIiAqbmdJZj1cImxvYWRFcnJvclwiPlxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZXJyb3Iuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gZGV0YWlscyBmb3IgQlBNIGl0ZW1zIC0tPlxuICAgIDx5dmMtdGFicz5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbeXZjVGFiXT1cIntpZDogJ2hpc3RvcnknLCBsYWJlbDogJ2VvLnByb2Nlc3MuZGV0YWlscy50YWIucHJvZ3Jlc3MnIHwgdHJhbnNsYXRlfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmVsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIHByb2Nlc3MtaGlzdG9yeVwiPlxuICAgICAgICAgICAgPGVvLXByb2Nlc3MtaGlzdG9yeSBbaGlzdG9yeV09XCJoaXN0b3J5XCI+PC9lby1wcm9jZXNzLWhpc3Rvcnk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbeXZjVGFiXT1cIntpZDogJ2ZpbGUnLCBsYWJlbDogJ2VvLnByb2Nlc3MuZGV0YWlscy50YWIuYXR0YWNobWVudHMnIHwgdHJhbnNsYXRlfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmVsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIHByb2Nlc3MtZmlsZXNcIj5cbiAgICAgICAgICAgIDxlby1wcm9jZXNzLWZpbGUgW3Byb2Nlc3NGaWxlXT1cIml0ZW0/LmZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGlwYm9hcmRdPVwiY2xpcGJvYXJkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRDb250ZW50RmlsZUlkXT1cInNlbGVjdGVkQ29udGVudEZpbGVJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblJlbW92ZVdvcmtJdGVtQ29udGVudCk9XCJyZW1vdmVXb3JrSXRlbUNvbnRlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbk9wZW5Xb3JrSXRlbUNvbnRlbnRJbkNvbnRleHQpPVwib3BlbldvcmtJdGVtQ29udGVudEluQ29udGV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uT3BlbldvcmtJdGVtQ29udGVudCk9XCJvcGVuV29ya0l0ZW1Db250ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25SZW1vdmVXb3JrSXRlbUNvbnRlbnQpPVwicmVtb3ZlV29ya0l0ZW1Db250ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25QYXN0ZVByb2Nlc3NGaWxlKT1cImFkZFBhc3RlZFByb2Nlc3NGaWxlKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvZW8tcHJvY2Vzcy1maWxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICBcbiAgICAgIDwhLS0gcGx1Z2luIHRhYnMgLS0+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nRm9yPVwibGV0IHAgb2YgcGx1Z2luc1wiIFt5dmNUYWJdPVwie2lkOiBwLmlkLCBsYWJlbDogcC5pZCB8IHRyYW5zbGF0ZX1cIj5cbiAgICAgICAgPGVvLXBsdWdpbiBbaWRdPVwicC5pZFwiIFtwYXJlbnRdPVwidGhpc1wiPjwvZW8tcGx1Z2luPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3l2Yy10YWJzPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI25vSXRlbT5cbiAgPGVvLWVycm9yLW1lc3NhZ2UgY2xhc3M9XCJwcm9jZXNzLWRldGFpbHNfX2VtcHR5XCIgW2VtcHR5U3RhdGVdPVwie2ljb246IGVtcHR5U3RhdGUuaWNvbiwgdGV4dDogZW1wdHlTdGF0ZS50ZXh0LCBjbGFzc05hbWU6IGVtcHR5U3RhdGUuY2xhc3NOYW1lfVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi5lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9lby1lcnJvci1tZXNzYWdlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3Byb2Nlc3MvZGV0YWlscy9wcm9jZXNzLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcHJvY2Vzcy9kZXRhaWxzL3Byb2Nlc3MtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3ZHLE9BQU8sRUFBZSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUM3RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFNM0UsT0FBTyxFQUdMLGVBQWUsRUFPZixLQUFLLEVBR04sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRNUQsSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7SUEwQmxDLElBQ0ksSUFBSSxDQUFDLENBQVU7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsRUFBRTtZQUNMLGVBQWU7WUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUss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dUI7MkZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxvQkFBb0I7eVFBTVIsU0FBUztzQkFBOUIsU0FBUzt1QkFBQyxTQUFTO2dCQW1CWCxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdGLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxNQUFNO2dCQW1CSCxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9uLCBmb3JrSm9pbiwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VtcHR5U3RhdGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge0VtcHR5U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7Q2VsbFJlbmRlcmVyfSBmcm9tICcuLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3Rpb25Db25maWcsIFNlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0Zvcm1TdGF0dXNDaGFuZ2VkRXZlbnR9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL2Zvcm0tc3RhdHVzLWNoYW5nZWQtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgQnBtU2VydmljZSxcbiAgQ2xpcGJvYXJkLFxuICBDbGlwYm9hcmRBY3Rpb24sXG4gIENsaXBib2FyZFNlcnZpY2UsXG4gIERtc1BhcmFtcyxcbiAgRmlsZUVudHJ5LFxuICBQcm9jZXNzLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHMsXG4gIFdvcmtJdGVtLFxuICBXb3JrSXRlbUhpc3RvcnlFbnRyeVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXByb2Nlc3MtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnYnBtRm9ybScpIGJwbUZvcm1FbDogT2JqZWN0Rm9ybUNvbXBvbmVudDtcblxuICBwcml2YXRlIF9pdGVtOiBQcm9jZXNzO1xuICB3b3JrSXRlbTogV29ya0l0ZW07XG4gIGhpc3Rvcnk6IFdvcmtJdGVtSGlzdG9yeUVudHJ5W107XG4gIG9yZ2FuaXNhdGlvbjogYW55O1xuICAvLyBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIHdvcmsgaXRlbSBpcyBsb2NrZWQgYnkgdGhlIHVzZXJcbiAgbG9ja2VkOiBib29sZWFuO1xuXG4gIGZvcm1TdGF0ZTogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcbiAgZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICBzZWxlY3RlZENvbnRlbnRGaWxlSWQ6IHN0cmluZztcbiAgYWN0aW9uUHJvY2Vzc2luZzogU3Vic2NyaXB0aW9uIHwgYW55ID0ge2Nsb3NlZDogdHJ1ZX07XG4gIGluaXRpYWxpemluZzogU3Vic2NyaXB0aW9uIHwgYW55ID0ge2Nsb3NlZDogdHJ1ZX07XG4gIGxvYWRFcnJvcjogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgY2xpcGJvYXJkOiBDbGlwYm9hcmQ7XG5cblxuICBASW5wdXQoKSBwbHVnaW5zOiBhbnlbXTtcblxuICBASW5wdXQoKSBlbXB0eVN0YXRlOiBFbXB0eVN0YXRlID0gRW1wdHlTdGF0ZVNlcnZpY2UuZGVmYXVsdEVtcHR5U3RhdGUoKTtcbiAgQElucHV0KCkgYXBwbHlTZWxlY3Rpb246IFNlbGVjdGlvbkNvbmZpZztcblxuICBASW5wdXQoJ2l0ZW0nKVxuICBzZXQgaXRlbShpOiBQcm9jZXNzKSB7XG4gICAgdGhpcy5faXRlbSA9IGk7XG5cbiAgICBpZiAoaSkge1xuICAgICAgLy8gcmVzZXQgdmFsdWVzXG4gICAgICB0aGlzLndvcmtJdGVtID0gbnVsbDtcbiAgICAgIHRoaXMuaGlzdG9yeSA9IFtdO1xuICAgICAgdGhpcy5sb2NrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcm9jZXNzKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpdGVtKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uRG1zSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEbXNQYXJhbXM+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBicG1TZXJ2aWNlOiBCcG1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICB9XG5cbiAgdHJhY2tCeUNvZGUoaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS5jb2RlO1xuICB9XG5cbiAgdHJhY2tCeUluZGV4KGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChldnQpIHtcbiAgICB0aGlzLmZvcm1TdGF0ZSA9IGV2dDtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2VzcygpOiB2b2lkIHtcblxuICAgIHRoaXMubG9hZEVycm9yID0gZmFsc2U7XG4gICAgdGhpcy5pbml0aWFsaXppbmcuY2xvc2VkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0YXNrcyA9IFtcbiAgICAgIHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3RCeUlkKHRoaXMuaXRlbS5jcmVhdG9yaWQpLnBpcGUoXG4gICAgICAgIC8vIHJldHVybiBkZWZhdWx0IGJlY2F1c2Ugb3RoZXJ3aXNlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2Yoe1xuICAgICAgICAgIG5hbWU6ICd1bmtub3duJ1xuICAgICAgICB9KSlcbiAgICAgICksXG4gICAgICB0aGlzLmJwbVNlcnZpY2UuZ2V0UHJvY2Vzc0hpc3RvcnkodGhpcy5pdGVtLnByb2Nlc3NpZClcbiAgICBdO1xuXG4gICAgZm9ya0pvaW4odGFza3MpXG4gICAgICAuc3Vic2NyaWJlKHRhc2tzUmVzdWx0ID0+IHtcblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgW29yZ2FuaXNhdGlvbiwgaGlzdG9yeV0gPSB0YXNrc1Jlc3VsdDtcbiAgICAgICAgdGhpcy5vcmdhbmlzYXRpb24gPSBvcmdhbmlzYXRpb247XG4gICAgICAgIHRoaXMuZ2V0UHJvY2Vzc0ZpbGUodGhpcy5pdGVtLnByb2Nlc3NpZCk7XG4gICAgICAgIGlmIChoaXN0b3J5KSB7XG4gICAgICAgICAgaGlzdG9yeS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5lZGl0b3IpIHtcbiAgICAgICAgICAgICAgaXRlbS5kYXRhLmltYWdlID0gdGhpcy51c2VyU2VydmljZS5nZXRVc2VySW1hZ2VVcmkoaXRlbS5lZGl0b3IuaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuaGlzdG9yeSA9IGhpc3Rvcnkuc29ydCgoYSwgYikgPT4gYi5udW1iZXIgLSBhLm51bWJlcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cblxuICBnZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQpIHtcbiAgICB0aGlzLmJwbVNlcnZpY2VcbiAgICAgIC5nZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IEZpbGVFbnRyeVtdKSA9PiB7XG4gICAgICAgIHRoaXMub3BlblByb2Nlc3NJdGVtQ29udGVudChyZXNbMF0pO1xuICAgICAgICB0aGlzLl9pdGVtLnNldEZpbGUocmVzKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkRXJyb3IgPSB0cnVlO1xuICAgICAgfSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5kZXRhaWxzLndvcmtpdGVtLmxvYWQuZmFpbCcpKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgd29yayBpdGVtcyBmaWxlIGVudHJ5IGFuIGVtaXRzIG9uRG1zSXRlbVNlbGVjdGVkIGV2ZW50LlxuICAgKiBAcGFyYW0gZmlsZSBGaWxlRW50cnkgZWxlbWVudCB0byBiZSBzZWxlY3RlZFxuICAgKi9cbiAgb3BlblByb2Nlc3NJdGVtQ29udGVudChmaWxlPzogRmlsZUVudHJ5KSB7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IG51bGw7XG4gICAgICB0aGlzLm9uRG1zSXRlbVNlbGVjdGVkLmVtaXQobnVsbCk7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhudWxsKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpbGUuaWQgIT09IHRoaXMuc2VsZWN0ZWRDb250ZW50RmlsZUlkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IGZpbGUuaWQ7XG4gICAgICBsZXQgcGFyYW1zID0ge1xuICAgICAgICBpZDogZmlsZS5pZCxcbiAgICAgICAgdHlwZTogZmlsZS50eXBlXG4gICAgICB9O1xuICAgICAgdGhpcy5vbkRtc0l0ZW1TZWxlY3RlZC5lbWl0KHBhcmFtcyk7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhwYXJhbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVdvcmtJdGVtQ29udGVudChldmVudDogW0ZpbGVFbnRyeSwgTW91c2VFdmVudF0pIHtcbiAgICBjb25zdCBbZmlsZSwgZXZ0XSA9IGV2ZW50O1xuICAgIGNvbnN0IHtwcm9jZXNzaWQsIGVsZW1lbnRpZH0gPSB0aGlzLndvcmtJdGVtWydjb250ZW50J11bMF07XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5hY3Rpb25Qcm9jZXNzaW5nID0gdGhpcy5icG1TZXJ2aWNlXG4gICAgICAucmVtb3ZlRmlsZUVsZW1lbnQocHJvY2Vzc2lkLCBlbGVtZW50aWQsIGZpbGUuaWQpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMud29ya0l0ZW0uZmlsZSA9IHRoaXMud29ya0l0ZW0uZmlsZS5maWx0ZXIoZiA9PiBmLmlkICE9PSBmaWxlLmlkKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb250ZW50RmlsZUlkID09PSBmaWxlLmlkKSB7XG4gICAgICAgICAgdGhpcy5vcGVuUHJvY2Vzc0l0ZW1Db250ZW50KHRoaXMud29ya0l0ZW0uZmlsZS5sZW5ndGggPyB0aGlzLndvcmtJdGVtLmZpbGVbMF0gOiBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCxcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5yZW1vdmUnKSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5yZW1vdmUubWVzc2FnZScpKVxuICAgICAgKTtcbiAgfVxuXG4gIGFkZFBhc3RlZFByb2Nlc3NGaWxlKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLmJwbVNlcnZpY2UuYWRkRmlsZUVsZW1lbnRzRnJvbUNsaXBib2FyZCh0aGlzLndvcmtJdGVtLCB0aGlzLmNsaXBib2FyZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaChudWxsLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5hZGQubWVzc2FnZScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5lcnJvcicpKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHdvcmtJdGVtID0+IHtcbiAgICAgICAgICB0aGlzLndvcmtJdGVtID0gd29ya0l0ZW07XG4gICAgICAgICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNsZWFyKCk7XG4gICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCkge1xuICAgICAgICAgICAgLy8gb3BlbiBmaXJzdCBpdGVtIHdoZW4gbm90aGluZyBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgdGhpcy5vcGVuV29ya0l0ZW1Db250ZW50KHRoaXMud29ya0l0ZW0uZmlsZS5sZW5ndGggPyB0aGlzLndvcmtJdGVtLmZpbGVbMF0gOiBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5maWxlLm5vdGlmaWNhdGlvbi5lcnJvcicpLFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZmlsZS5ub3RpZmljYXRpb24uYWRkLm1lc3NhZ2UnKSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgZmlsZSAoYXR0YWNoZWQgRE1TT2JqZWN0KSBpbiBvYmplY3Qgc3RhdGVcbiAgICogQHBhcmFtIGZpbGVcbiAgICovXG4gIG9wZW5Xb3JrSXRlbUNvbnRlbnRJbkNvbnRleHQoZXZ0KSB7XG4gICAgY29uc3QgZmlsZTogRmlsZUVudHJ5ID0gZXZ0LmRhdGEgfHwge307XG4gICAgY29uc3QgZmlsZVR5cGU6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsndHlwZSc6IGZpbGUudHlwZX19O1xuICAgIGlmIChldnQuY3RybEtleSkge1xuICAgICAgd2luZG93Lm9wZW4oQ2VsbFJlbmRlcmVyLndpbmRvd1VSSSh0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnb2JqZWN0JywgZmlsZS5pZF0sIGZpbGVUeXBlKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9vYmplY3QnLCBmaWxlLmlkXSwgZmlsZVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgd29yayBpdGVtcyBmaWxlIGVudHJ5IGFuIGVtaXRzIG9uRG1zSXRlbVNlbGVjdGVkIGV2ZW50LlxuICAgKiBAcGFyYW0gZmlsZSBGaWxlRW50cnkgZWxlbWVudCB0byBiZSBzZWxlY3RlZFxuICAgKi9cbiAgb3BlbldvcmtJdGVtQ29udGVudChmaWxlPzogRmlsZUVudHJ5KSB7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IG51bGw7XG4gICAgICB0aGlzLm9uRG1zSXRlbVNlbGVjdGVkLmVtaXQobnVsbCk7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KS5mb2N1cyhudWxsKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpbGUuaWQgIT09IHRoaXMuc2VsZWN0ZWRDb250ZW50RmlsZUlkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29udGVudEZpbGVJZCA9IGZpbGUuaWQ7XG4gICAgICBsZXQgcGFyYW1zID0ge1xuICAgICAgICBpZDogZmlsZS5pZCxcbiAgICAgICAgdHlwZTogZmlsZS50eXBlXG4gICAgICB9O1xuICAgICAgdGhpcy5vbkRtc0l0ZW1TZWxlY3RlZC5lbWl0KHBhcmFtcyk7XG4gICAgICBpZiAodGhpcy5hcHBseVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAgIC5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24ub3V0KVxuICAgICAgICAgIC5mb2N1cyhwYXJhbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmFwcGx5U2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAuZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLmluKVxuICAgICAgICAuZm9jdXMkLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4gdGhpcy5pdGVtID0gaXRlbSk7XG4gICAgfVxuXG4gICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlXG4gICAgICAuY2xpcGJvYXJkJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoY2xpcGJvYXJkOiBDbGlwYm9hcmQpID0+IHRoaXMuY2xpcGJvYXJkID0gY2xpcGJvYXJkLmFjdGlvbiA9PT0gQ2xpcGJvYXJkQWN0aW9uLkNPUFkgPyBjbGlwYm9hcmQgOiBudWxsKTtcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHJvY2Vzcy1kZXRhaWxzXCIgKm5nSWY9XCJpdGVtOyBlbHNlIG5vSXRlbVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJlby1oZWFkXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cImVvLWhlYWRlclwiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiIFtuZ0NsYXNzXT1cIntlcnJvcjogaXRlbS5zdGF0ZSA9PT0gJ0VSUk9SU1VTUEVOREVEJ31cIiAqbmdJZj1cIiFpdGVtLmljb25pZFwiIFtpY29uVGl0bGVdPVwiaXRlbS5tb2RlbG5hbWVcIlxuICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiaXRlbS5pY29udXJsXCI+PC9lby1pY29uPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uaWRcIiBbaWNvbklkXT1cIml0ZW0uaWNvbmlkXCIgW2ljb25UaXRsZV09XCJpdGVtLm1vZGVsbmFtZVwiPjwvZW8taWNvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mbyBlby1oZWFkZXJfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlcl9fdGl0bGVcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIj57e2l0ZW0ubG9jYWxpemVkc3ViamVjdH19PC9oMj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJlby1oZWFkZXItc3VidGl0bGVcIj57e2l0ZW0ubW9kZWxuYW1lfX08c3BhbiBjbGFzcz1cInN0YXJ0ZXJcIiAqbmdJZj1cIm9yZ2FuaXNhdGlvbiAmJiBvcmdhbmlzYXRpb24ubmFtZSAhPT0gJ3N5c3Jvb3QnICYmIG9yZ2FuaXNhdGlvbi5uYW1lICE9PSAnc3lzdGVtJ1wiPnt7b3JnYW5pc2F0aW9uLnRpdGxlfX0gKHt7b3JnYW5pc2F0aW9uLm5hbWV9fSk8L3NwYW4+PC9oMz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICA8ZW8tbG9hZGluZy1zcGlubmVyICpuZ0lmPVwibG9hZGluZ1wiIFtzaXplXT1cIidzbWFsbCdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImxvYWQtZXJyb3JcIiAqbmdJZj1cImxvYWRFcnJvclwiPlxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZXJyb3Iuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gZGV0YWlscyBmb3IgQlBNIGl0ZW1zIC0tPlxuICAgIDx5dmMtdGFicz5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbeXZjVGFiXT1cIntpZDogJ2hpc3RvcnknLCBsYWJlbDogJ2VvLnByb2Nlc3MuZGV0YWlscy50YWIucHJvZ3Jlc3MnIHwgdHJhbnNsYXRlfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmVsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIHByb2Nlc3MtaGlzdG9yeVwiPlxuICAgICAgICAgICAgPGVvLXByb2Nlc3MtaGlzdG9yeSBbaGlzdG9yeV09XCJoaXN0b3J5XCI+PC9lby1wcm9jZXNzLWhpc3Rvcnk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbeXZjVGFiXT1cIntpZDogJ2ZpbGUnLCBsYWJlbDogJ2VvLnByb2Nlc3MuZGV0YWlscy50YWIuYXR0YWNobWVudHMnIHwgdHJhbnNsYXRlfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmVsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIHByb2Nlc3MtZmlsZXNcIj5cbiAgICAgICAgICAgIDxlby1wcm9jZXNzLWZpbGUgW3Byb2Nlc3NGaWxlXT1cIml0ZW0/LmZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGlwYm9hcmRdPVwiY2xpcGJvYXJkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRDb250ZW50RmlsZUlkXT1cInNlbGVjdGVkQ29udGVudEZpbGVJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblJlbW92ZVdvcmtJdGVtQ29udGVudCk9XCJyZW1vdmVXb3JrSXRlbUNvbnRlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbk9wZW5Xb3JrSXRlbUNvbnRlbnRJbkNvbnRleHQpPVwib3BlbldvcmtJdGVtQ29udGVudEluQ29udGV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uT3BlbldvcmtJdGVtQ29udGVudCk9XCJvcGVuV29ya0l0ZW1Db250ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25SZW1vdmVXb3JrSXRlbUNvbnRlbnQpPVwicmVtb3ZlV29ya0l0ZW1Db250ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25QYXN0ZVByb2Nlc3NGaWxlKT1cImFkZFBhc3RlZFByb2Nlc3NGaWxlKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvZW8tcHJvY2Vzcy1maWxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICBcbiAgICAgIDwhLS0gcGx1Z2luIHRhYnMgLS0+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nRm9yPVwibGV0IHAgb2YgcGx1Z2luc1wiIFt5dmNUYWJdPVwie2lkOiBwLmlkLCBsYWJlbDogcC5pZCB8IHRyYW5zbGF0ZX1cIj5cbiAgICAgICAgPGVvLXBsdWdpbiBbaWRdPVwicC5pZFwiIFtwYXJlbnRdPVwidGhpc1wiPjwvZW8tcGx1Z2luPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3l2Yy10YWJzPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI25vSXRlbT5cbiAgPGVvLWVycm9yLW1lc3NhZ2UgY2xhc3M9XCJwcm9jZXNzLWRldGFpbHNfX2VtcHR5XCIgW2VtcHR5U3RhdGVdPVwie2ljb246IGVtcHR5U3RhdGUuaWNvbiwgdGV4dDogZW1wdHlTdGF0ZS50ZXh0LCBjbGFzc05hbWU6IGVtcHR5U3RhdGUuY2xhc3NOYW1lfVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi5lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9lby1lcnJvci1tZXNzYWdlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -152,6 +152,7 @@ export class QuickSearchComponent {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
onKeyDown(event) {
|
|
155
|
+
this.ctrlClicked = false;
|
|
155
156
|
if (event.which === 17) {
|
|
156
157
|
this.ctrlClicked = true;
|
|
157
158
|
}
|
|
@@ -169,6 +170,7 @@ export class QuickSearchComponent {
|
|
|
169
170
|
}
|
|
170
171
|
const uriParam = encodeURIComponent(JSON.stringify(this.query.getQueryJson()));
|
|
171
172
|
const uriParamQuery = { queryParams: { 'query': uriParam } };
|
|
173
|
+
console.log(this.ctrlClicked);
|
|
172
174
|
if (this.ctrlClicked) {
|
|
173
175
|
const queryParams = new URLSearchParams(uriParamQuery.queryParams).toString();
|
|
174
176
|
const url = window.location.href.split('/dashboard')[0] + '/result?' + queryParams;
|
|
@@ -215,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
215
217
|
type: HostListener,
|
|
216
218
|
args: ['keydown', ['$event']]
|
|
217
219
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQTZCLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHdEksT0FBTyxFQUFDLFVBQVUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBa0UsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRzdIOzs7Ozs7OztHQVFHO0FBT0gsTUFBTSxPQUFPLG9CQUFvQjtJQThCL0IscUNBQXFDO0lBRXJDLFlBQW9CLGFBQTRCLEVBQ3RDLE1BQWMsRUFDZCxVQUFzQixFQUN0QixPQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsRUFBc0I7UUFOWixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN0QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIs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QUFFLENBQUM7SUFDdkMsQ0FBQzs7aUhBNU1VLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtTQ3pCakMsODdEQXNDQTsyRkRiYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO2lSQXVCRyxnQkFBZ0I7c0JBQTdDLFdBQVc7dUJBQUMsZUFBZTtnQkFLbkIsV0FBVztzQkFBbkIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBdUdQLEtBQUs7c0JBREosWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEJqQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzd2l0Y2hNYXAsIHRhcCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXIsIE5hdmlnYXRpb25FeHRyYXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtRdWlja1NlYXJjaFJlc3VsdH0gZnJvbSAnLi9xdWljay1zZWFyY2gtcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQge1NlYXJjaFF1ZXJ5LCBTZWFyY2hTdGF0ZSwgU2VhcmNoU2VydmljZSwgU3lzdGVtU2VydmljZSwgT2JqZWN0VHlwZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWFyY2gvYXBwLXNlYXJjaC5zZXJ2aWNlJztcblxuLyoqXG4gKiBRdWlja1NlYXJjaENvbXBvbmVudCBkaXNwbGF5cyBhIHNlYXJjaCBib3ggdGhhdCB0aGUgdXNlciBjYW4gdHlwZSBoaXMgcXVlcnkgdG8uXG4gKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBtYXRjaGluZyBvYmplY3QgdHlwZXMgZ3JvdXBlZCBieSB0aGVpciBvYmplY3QgdHlwZSBncm91cCBhbmQgdGhlXG4gKiBudW1iZXIgb2YgaGl0cyBmb3IgZWFjaCB0eXBlLiBGdXJ0aGVybW9yZSBpdCdsbCBwcm92aWRlIHlvdSB3aXRoIHRoZSB0b3RhbCBudW1iZXIgb2ZcbiAqIGhpdHMgbWF0Y2hpbmcgdGhlIHVzZXJzIHF1ZXJ5LlxuICpcbiAqIFNldHRpbmcgdGhlIGNvbXBvbmVudHMgYHNob3dSZXN1bHRzYCBmbGFnIHRvIHRydWUsIHdpbGwgbWFrZSB0aGUgY29tcG9uZW50IHJlbmRlciB0aGVcbiAqIHJlc3VsdHMgb24gaXRzIG93bi4gSWYgeW91IGRvIHdhbnQgdG8gcHJvY2VzcyByZXN1bHRzIGJ5IHlvdXJzZWxmIHVzZSB0aGUgYG9uUmVzdWx0YCBjYWxsYmFjay5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1xdWljay1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVpY2stc2VhcmNoLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVpY2tTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcXVlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcXVlcnlTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICBhdXRvY29tcGxldGVSZXN1bHRzOiBzdHJpbmdbXTtcbiAgcXVlcnkgPSBuZXcgU2VhcmNoUXVlcnkoKTtcbiAgbGFzdFRlcm0gPSAnJztcbiAgcmVzdWx0R3JvdXBzO1xuICByZXN1bHRUeXBlcyA9IFtdO1xuICBjdHJsQ2xpY2tlZDogYm9vbGVhbjtcbiAgc2VsZWN0ZWQgPSB7XG4gICAgaW5kZXg6IC0xLFxuICAgIG5hbWU6IG51bGxcbiAgfTtcblxuICBzZWFyY2hGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBpbnZhbGlkVGVybTogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlc3VsdHMnKSByZXN1bHRzQXZhaWxhYmxlO1xuXG4gIC8vIGZsYWcgd2hldGhlciBvciBub3QgdG8gcmVuZGVyIHJlc3VsdHMgYnkgdGhlIGNvbXBvbmVudCBpdHNlbGZcbiAgLy8gYnkgZGVmYXVsdCB0aGlzIGZsYXMgaXMgZmFsc2UgYW5kIHRoZSByZXN1bHQgd2lsbCBvbmx5IGJlIGVtaXR0ZWQgYnlcbiAgLy8gdGhlIGNvbXBvbmVudHMgb25SZXN1bHQgY2FsbGJhY2tcbiAgQElucHV0KCkgc2hvd1Jlc3VsdHM6IGJvb2xlYW47XG4gIC8vIHRyaWdnZXJlZCBlYWNoIHRpbWUgYSByZXN1bHQgaXMgZmV0Y2hlZFxuICBAT3V0cHV0KCkgb25SZXN1bHQ6IEV2ZW50RW1pdHRlcjxRdWlja1NlYXJjaFJlc3VsdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIHRyaWdnZXJlZCB3aGVuIHRoZSBzZWFyY2ggdGVybSBoYXMgYmVlbiBjaGFuZ2VkXG4gIEBPdXRwdXQoKSBvbklucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBwcml2YXRlIG9iamVjdFR5cGVzOiBPYmplY3RUeXBlW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdG9hc3RlcjogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHtcblxuXG4gICAgdGhpcy5zZWFyY2hGb3JtID0gdGhpcy5mYi5ncm91cCh7c2VhcmNoSW5wdXQ6IFsnJ119KTtcblxuICAgIHRoaXMuc2VhcmNoRm9ybVxuICAgICAgLmdldCgnc2VhcmNoSW5wdXQnKS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHRlcm0pID0+IHtcbiAgICAgICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UuZW1pdCh0ZXJtKTtcbiAgICAgICAgICB0aGlzLnF1ZXJ5LnRlcm0gPSB0ZXJtO1xuICAgICAgICAgIHRoaXMucmVzdWx0R3JvdXBzID0gW107XG4gICAgICAgICAgdGhpcy5yZXN1bHRUeXBlcyA9IFtdO1xuICAgICAgICAgIHRoaXMucmVzdWx0c0F2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucXVlcnlTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MDApLFxuICAgICAgICBzd2l0Y2hNYXAodGVybSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYWdncmVnYXRlKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeVN0YXRlOiBTZWFyY2hTdGF0ZSkgPT4ge1xuXG4gICAgICAgIGlmICh0aGlzLnF1ZXJ5LnRlcm0pIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5U3RhdGUgPSBxdWVyeVN0YXRlO1xuICAgICAgICAgIHRoaXMucmVzdWx0c0F2YWlsYWJsZSA9ICFxdWVyeVN0YXRlLmlzRW1wdHk7XG5cbiAgICAgICAgICAvLyBtYXAgYWdncmVnYXRpb25zIHRvIHJlYWwgdHlwZXNcbiAgICAgICAgICBsZXQgYWdnVHlwZXMgPSBbXTtcbiAgICAgICAgICBxdWVyeVN0YXRlLmFnZ3JlZ2F0aW9ucy50eXBlLmZvckVhY2goKHYsIGspID0+IHtcblxuICAgICAgICAgICAgbGV0IHR5cGU6IE9iamVjdFR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShrKTtcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICAgIGFnZ1R5cGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0eXBlLmxhYmVsIHx8IGssXG4gICAgICAgICAgICAgICAgY291bnQ6IHYsXG4gICAgICAgICAgICAgICAgZ3JvdXA6IHR5cGUuZ3JvdXAgfHwgJzAnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHR5cGVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gZ3JvdXAgYnkgb2JqZWN0IHR5cGUgZ3JvdXBcbiAgICAgICAgICB0aGlzLnJlc3VsdEdyb3VwcyA9IF8uZ3JvdXBCeShhZ2dUeXBlcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpLCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgcmV0dXJuIHQuZ3JvdXA7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5yZXN1bHRUeXBlcyA9IFtdO1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMucmVzdWx0R3JvdXBzKS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdFR5cGVzID0gdGhpcy5yZXN1bHRUeXBlcy5jb25jYXQodGhpcy5yZXN1bHRHcm91cHNba10pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25SZXN1bHQuZW1pdCh7XG4gICAgICAgICAgICB0b3RhbDogdGhpcy5xdWVyeVN0YXRlLnRvdGFsQ291bnQsXG4gICAgICAgICAgICBncm91cHM6IHRoaXMucmVzdWx0R3JvdXBzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vblJlc3VsdC5lbWl0KHtcbiAgICAgICAgICAgIHRvdGFsOiAtMSxcbiAgICAgICAgICAgIGdyb3VwczogW11cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnF1ZXJ5U3Vic2NyaXB0aW9uID0gYXBwU2VhcmNoU2VydmljZS5xdWVyeSQuc3Vic2NyaWJlKChxdWVyeTogU2VhcmNoUXVlcnkpID0+IHtcbiAgICAgIGlmIChxdWVyeSAmJiBxdWVyeS50ZXJtKSB7XG4gICAgICAgIHRoaXMubGFzdFRlcm0gPSBxdWVyeS50ZXJtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0VGVybSh0ZXJtPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2hGb3JtLmdldCgnc2VhcmNoSW5wdXQnKS5wYXRjaFZhbHVlKHRlcm0gfHwgJycpO1xuICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZ2dyZWdhdGUoKTogT2JzZXJ2YWJsZTxTZWFyY2hTdGF0ZT4ge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG8gPT4ge1xuICAgICAgdGhpcy5pbnZhbGlkVGVybSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgIC5nZXRTZWFyY2hTdGF0ZSh7YWdnczoge3R5cGU6IHt9fSwgLi4udGhpcy5xdWVyeS5nZXRRdWVyeUpzb24oKX0pXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBvLm5leHQocmVzKTtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH0sIFV0aWxzLnRocm93KF8gPT4ge1xuICAgICAgICAgIHRoaXMuaW52YWxpZFRlcm0gPSB0cnVlO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIG8ubmV4dChuZXcgU2VhcmNoU3RhdGUoKSk7XG4gICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2hvd1Jlc3VsdHMpIHtcbiAgICAgIGlmIChldmVudC53aGljaCA9PT0gMzgpIHtcbiAgICAgICAgLy8gdXBcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pbmRleC0tO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZC5pbmRleCA8IDApIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4ID0gdGhpcy5yZXN1bHRUeXBlcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQubmFtZSA9IHRoaXMucmVzdWx0VHlwZXNbdGhpcy5zZWxlY3RlZC5pbmRleF0uZGF0YS5uYW1lO1xuICAgICAgfSBlbHNlIGlmIChldmVudC53aGljaCA9PT0gNDApIHtcbiAgICAgICAgLy8gZG93blxuICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4Kys7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4ID49IHRoaXMucmVzdWx0VHlwZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5pbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZC5uYW1lID0gdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhLm5hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyByZXNldCBzZWxlY3Rpb24gb24gYW55IG90aGVyIGtleVxuICAgICAgICB0aGlzLnNlbGVjdGVkID0ge1xuICAgICAgICAgIGluZGV4OiAtMSxcbiAgICAgICAgICBuYW1lOiBudWxsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudCkge1xuICAgIGlmIChldmVudC53aGljaCA9PT0gMTcpIHtcbiAgICAgIHRoaXMuY3RybENsaWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlU2VhcmNoKG9iamVjdFR5cGU/OiBPYmplY3RUeXBlKSB7XG5cbiAgICBpZiAoIXRoaXMuaW52YWxpZFRlcm0pIHtcbiAgICAgIGlmIChvYmplY3RUeXBlKSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbb2JqZWN0VHlwZV07XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWQuaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodGhpcy5xdWVyeS5nZXRRdWVyeUpzb24oKSkpO1xuICAgICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG5cbiAgICAgIGlmICh0aGlzLmN0cmxDbGlja2VkKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmlQYXJhbVF1ZXJ5LnF1ZXJ5UGFyYW1zKS50b1N0cmluZygpXG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcvZGFzaGJvYXJkJylbMF0gKyAnL3Jlc3VsdD8nKyBxdWVyeVBhcmFtcztcbiAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG4gICAgICAgIHRoaXMuY3RybENsaWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9yZXN1bHQnXSwgdXJpUGFyYW1RdWVyeSk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzSW5wdXQoKSB7XG4gICAgLy8gZm9jdXMgc2VhcmNoIGlucHV0XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucXVlcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInF1aWNrLXNlYXJjaFwiIGVvUnRsQXdhcmU+XG5cbiAgPGZvcm0gY2xhc3M9XCJzZWFyY2gtYm94XCIgKG5nU3VibWl0KT1cImV4ZWN1dGVTZWFyY2goKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntpbnZhbGlkOiBpbnZhbGlkVGVybX1cIlxuICAgICAgICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIj5cblxuICAgIDxlby1pY29uIChjbGljayk9XCJleGVjdXRlU2VhcmNoKClcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zZWFyY2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cbiAgICAgIDxsYWJlbD57eydlby5xdWlja3NlYXJjaC5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICA8aW5wdXQgYXV0b2ZvY3VzPVwiYXV0b2ZvY3VzXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoSW5wdXRcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZW8tbG9hZGluZy1zcGlubmVyICpuZ0lmPVwibG9hZGluZ1wiIFtzaXplXT1cIidzbWFsbCdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICA8ZW8taWNvbiBjbGFzcz1cInNtYWxsXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5zZWFyY2guY2xlYXIuc2VhcmNoJyB8IHRyYW5zbGF0ZSlcIlxuICAgICpuZ0lmPVwicXVlcnkudGVybVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHF1ZXJ5LnRlcm19XCIgKGNsaWNrKT1cInNldFRlcm0oKVwiPjwvZW8taWNvbj5cbiAgICA8ZW8taWNvbiBjbGFzcz1cInNtYWxsXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCIgW2ljb25UaXRsZV09XCIoJ2VvLnNlYXJjaC5yZXN1bHQudGVybScgfCB0cmFuc2xhdGUpICsgJyA6ICZxdW90OycgKyBsYXN0VGVybSArICcmcXVvdDsnXCJcbiAgICAqbmdJZj1cImxhc3RUZXJtICYmICFxdWVyeS50ZXJtXCIgKGNsaWNrKT1cInNldFRlcm0obGFzdFRlcm0pXCI+PC9lby1pY29uPlxuXG4gICAgPGRpdiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJzaG93UmVzdWx0cyAmJiAhcXVlcnlTdGF0ZS5pc0VtcHR5XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNvdW50LXRvdGFsXCI+e3txdWVyeVN0YXRlLnRvdGFsQ291bnQgfCBsb2NhbGVEZWNpbWFsfX08L3NwYW4+PHNwYW4gdHJhbnNsYXRlPmVvLnF1aWNrc2VhcmNoLmhpdHM8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cblxuICA8ZGl2IGNsYXNzPVwicmVzdWx0XCIgKm5nSWY9XCJzaG93UmVzdWx0cyAmJiAhcXVlcnlTdGF0ZS5pc0VtcHR5XCI+XG4gICAgPGRpdiBjbGFzcz1cInJcIj48ZGl2IGNsYXNzPVwicmlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm91cFwiICpuZ0Zvcj1cImxldCBrZXkgb2YgcmVzdWx0R3JvdXBzIHwga2V5czsgaW5kZXggYXMgaVwiPlxuICAgICAgICA8aDIgKm5nSWY9XCJrZXkgIT09ICcwJzsgZWxzZSBtYWluZ3JvdXBcIj57e2tleX19PC9oMj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNtYWluZ3JvdXA+XG4gICAgICAgICAgPGgyIHRyYW5zbGF0ZT5lby5xdWlja3NlYXJjaC5yZXN1bHQuZ3JvdXAuZ2xvYmFsPC9oMj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidHlwZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIHJlc3VsdEdyb3Vwc1trZXldXCIgKGNsaWNrKT1cImV4ZWN1dGVTZWFyY2godHlwZS5kYXRhKVwiIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWQubmFtZSA9PT0gdHlwZS5kYXRhLm5hbWV9XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudFwiPnt7dHlwZS5jb3VudH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57e3R5cGUubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQTZCLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHdEksT0FBTyxFQUFDLFVBQVUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBa0UsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRzdIOzs7Ozs7OztHQVFHO0FBT0gsTUFBTSxPQUFPLG9CQUFvQjtJQThCL0IscUNBQXFDO0lBRXJDLFlBQW9CLGFBQTRCLEVBQ3RDLE1BQWMsRUFDZCxVQUFzQixFQUN0QixPQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsRUFBc0I7UUFOWixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN0QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIs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QWU7UUFDYixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7aUhBN01VLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtTQ3pCakMsODdEQXNDQTsyRkRiYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO2lSQXVCRyxnQkFBZ0I7c0JBQTdDLFdBQVc7dUJBQUMsZUFBZTtnQkFLbkIsV0FBVztzQkFBbkIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBdUdQLEtBQUs7c0JBREosWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEJqQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzd2l0Y2hNYXAsIHRhcCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXIsIE5hdmlnYXRpb25FeHRyYXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtRdWlja1NlYXJjaFJlc3VsdH0gZnJvbSAnLi9xdWljay1zZWFyY2gtcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQge1NlYXJjaFF1ZXJ5LCBTZWFyY2hTdGF0ZSwgU2VhcmNoU2VydmljZSwgU3lzdGVtU2VydmljZSwgT2JqZWN0VHlwZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWFyY2gvYXBwLXNlYXJjaC5zZXJ2aWNlJztcblxuLyoqXG4gKiBRdWlja1NlYXJjaENvbXBvbmVudCBkaXNwbGF5cyBhIHNlYXJjaCBib3ggdGhhdCB0aGUgdXNlciBjYW4gdHlwZSBoaXMgcXVlcnkgdG8uXG4gKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBtYXRjaGluZyBvYmplY3QgdHlwZXMgZ3JvdXBlZCBieSB0aGVpciBvYmplY3QgdHlwZSBncm91cCBhbmQgdGhlXG4gKiBudW1iZXIgb2YgaGl0cyBmb3IgZWFjaCB0eXBlLiBGdXJ0aGVybW9yZSBpdCdsbCBwcm92aWRlIHlvdSB3aXRoIHRoZSB0b3RhbCBudW1iZXIgb2ZcbiAqIGhpdHMgbWF0Y2hpbmcgdGhlIHVzZXJzIHF1ZXJ5LlxuICpcbiAqIFNldHRpbmcgdGhlIGNvbXBvbmVudHMgYHNob3dSZXN1bHRzYCBmbGFnIHRvIHRydWUsIHdpbGwgbWFrZSB0aGUgY29tcG9uZW50IHJlbmRlciB0aGVcbiAqIHJlc3VsdHMgb24gaXRzIG93bi4gSWYgeW91IGRvIHdhbnQgdG8gcHJvY2VzcyByZXN1bHRzIGJ5IHlvdXJzZWxmIHVzZSB0aGUgYG9uUmVzdWx0YCBjYWxsYmFjay5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1xdWljay1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVpY2stc2VhcmNoLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVpY2tTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcXVlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcXVlcnlTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICBhdXRvY29tcGxldGVSZXN1bHRzOiBzdHJpbmdbXTtcbiAgcXVlcnkgPSBuZXcgU2VhcmNoUXVlcnkoKTtcbiAgbGFzdFRlcm0gPSAnJztcbiAgcmVzdWx0R3JvdXBzO1xuICByZXN1bHRUeXBlcyA9IFtdO1xuICBjdHJsQ2xpY2tlZDogYm9vbGVhbjtcbiAgc2VsZWN0ZWQgPSB7XG4gICAgaW5kZXg6IC0xLFxuICAgIG5hbWU6IG51bGxcbiAgfTtcblxuICBzZWFyY2hGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBpbnZhbGlkVGVybTogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlc3VsdHMnKSByZXN1bHRzQXZhaWxhYmxlO1xuXG4gIC8vIGZsYWcgd2hldGhlciBvciBub3QgdG8gcmVuZGVyIHJlc3VsdHMgYnkgdGhlIGNvbXBvbmVudCBpdHNlbGZcbiAgLy8gYnkgZGVmYXVsdCB0aGlzIGZsYXMgaXMgZmFsc2UgYW5kIHRoZSByZXN1bHQgd2lsbCBvbmx5IGJlIGVtaXR0ZWQgYnlcbiAgLy8gdGhlIGNvbXBvbmVudHMgb25SZXN1bHQgY2FsbGJhY2tcbiAgQElucHV0KCkgc2hvd1Jlc3VsdHM6IGJvb2xlYW47XG4gIC8vIHRyaWdnZXJlZCBlYWNoIHRpbWUgYSByZXN1bHQgaXMgZmV0Y2hlZFxuICBAT3V0cHV0KCkgb25SZXN1bHQ6IEV2ZW50RW1pdHRlcjxRdWlja1NlYXJjaFJlc3VsdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIHRyaWdnZXJlZCB3aGVuIHRoZSBzZWFyY2ggdGVybSBoYXMgYmVlbiBjaGFuZ2VkXG4gIEBPdXRwdXQoKSBvbklucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBwcml2YXRlIG9iamVjdFR5cGVzOiBPYmplY3RUeXBlW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdG9hc3RlcjogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHtcblxuXG4gICAgdGhpcy5zZWFyY2hGb3JtID0gdGhpcy5mYi5ncm91cCh7c2VhcmNoSW5wdXQ6IFsnJ119KTtcblxuICAgIHRoaXMuc2VhcmNoRm9ybVxuICAgICAgLmdldCgnc2VhcmNoSW5wdXQnKS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHRlcm0pID0+IHtcbiAgICAgICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UuZW1pdCh0ZXJtKTtcbiAgICAgICAgICB0aGlzLnF1ZXJ5LnRlcm0gPSB0ZXJtO1xuICAgICAgICAgIHRoaXMucmVzdWx0R3JvdXBzID0gW107XG4gICAgICAgICAgdGhpcy5yZXN1bHRUeXBlcyA9IFtdO1xuICAgICAgICAgIHRoaXMucmVzdWx0c0F2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucXVlcnlTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MDApLFxuICAgICAgICBzd2l0Y2hNYXAodGVybSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYWdncmVnYXRlKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeVN0YXRlOiBTZWFyY2hTdGF0ZSkgPT4ge1xuXG4gICAgICAgIGlmICh0aGlzLnF1ZXJ5LnRlcm0pIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5U3RhdGUgPSBxdWVyeVN0YXRlO1xuICAgICAgICAgIHRoaXMucmVzdWx0c0F2YWlsYWJsZSA9ICFxdWVyeVN0YXRlLmlzRW1wdHk7XG5cbiAgICAgICAgICAvLyBtYXAgYWdncmVnYXRpb25zIHRvIHJlYWwgdHlwZXNcbiAgICAgICAgICBsZXQgYWdnVHlwZXMgPSBbXTtcbiAgICAgICAgICBxdWVyeVN0YXRlLmFnZ3JlZ2F0aW9ucy50eXBlLmZvckVhY2goKHYsIGspID0+IHtcblxuICAgICAgICAgICAgbGV0IHR5cGU6IE9iamVjdFR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShrKTtcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICAgIGFnZ1R5cGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0eXBlLmxhYmVsIHx8IGssXG4gICAgICAgICAgICAgICAgY291bnQ6IHYsXG4gICAgICAgICAgICAgICAgZ3JvdXA6IHR5cGUuZ3JvdXAgfHwgJzAnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHR5cGVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gZ3JvdXAgYnkgb2JqZWN0IHR5cGUgZ3JvdXBcbiAgICAgICAgICB0aGlzLnJlc3VsdEdyb3VwcyA9IF8uZ3JvdXBCeShhZ2dUeXBlcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpLCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgcmV0dXJuIHQuZ3JvdXA7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5yZXN1bHRUeXBlcyA9IFtdO1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMucmVzdWx0R3JvdXBzKS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdFR5cGVzID0gdGhpcy5yZXN1bHRUeXBlcy5jb25jYXQodGhpcy5yZXN1bHRHcm91cHNba10pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25SZXN1bHQuZW1pdCh7XG4gICAgICAgICAgICB0b3RhbDogdGhpcy5xdWVyeVN0YXRlLnRvdGFsQ291bnQsXG4gICAgICAgICAgICBncm91cHM6IHRoaXMucmVzdWx0R3JvdXBzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vblJlc3VsdC5lbWl0KHtcbiAgICAgICAgICAgIHRvdGFsOiAtMSxcbiAgICAgICAgICAgIGdyb3VwczogW11cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnF1ZXJ5U3Vic2NyaXB0aW9uID0gYXBwU2VhcmNoU2VydmljZS5xdWVyeSQuc3Vic2NyaWJlKChxdWVyeTogU2VhcmNoUXVlcnkpID0+IHtcbiAgICAgIGlmIChxdWVyeSAmJiBxdWVyeS50ZXJtKSB7XG4gICAgICAgIHRoaXMubGFzdFRlcm0gPSBxdWVyeS50ZXJtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0VGVybSh0ZXJtPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2hGb3JtLmdldCgnc2VhcmNoSW5wdXQnKS5wYXRjaFZhbHVlKHRlcm0gfHwgJycpO1xuICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZ2dyZWdhdGUoKTogT2JzZXJ2YWJsZTxTZWFyY2hTdGF0ZT4ge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG8gPT4ge1xuICAgICAgdGhpcy5pbnZhbGlkVGVybSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgIC5nZXRTZWFyY2hTdGF0ZSh7YWdnczoge3R5cGU6IHt9fSwgLi4udGhpcy5xdWVyeS5nZXRRdWVyeUpzb24oKX0pXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBvLm5leHQocmVzKTtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH0sIFV0aWxzLnRocm93KF8gPT4ge1xuICAgICAgICAgIHRoaXMuaW52YWxpZFRlcm0gPSB0cnVlO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIG8ubmV4dChuZXcgU2VhcmNoU3RhdGUoKSk7XG4gICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2hvd1Jlc3VsdHMpIHtcbiAgICAgIGlmIChldmVudC53aGljaCA9PT0gMzgpIHtcbiAgICAgICAgLy8gdXBcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pbmRleC0tO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZC5pbmRleCA8IDApIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4ID0gdGhpcy5yZXN1bHRUeXBlcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQubmFtZSA9IHRoaXMucmVzdWx0VHlwZXNbdGhpcy5zZWxlY3RlZC5pbmRleF0uZGF0YS5uYW1lO1xuICAgICAgfSBlbHNlIGlmIChldmVudC53aGljaCA9PT0gNDApIHtcbiAgICAgICAgLy8gZG93blxuICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4Kys7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4ID49IHRoaXMucmVzdWx0VHlwZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5pbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZC5uYW1lID0gdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhLm5hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyByZXNldCBzZWxlY3Rpb24gb24gYW55IG90aGVyIGtleVxuICAgICAgICB0aGlzLnNlbGVjdGVkID0ge1xuICAgICAgICAgIGluZGV4OiAtMSxcbiAgICAgICAgICBuYW1lOiBudWxsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudCkge1xuICAgIHRoaXMuY3RybENsaWNrZWQgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDE3KSB7XG4gICAgICB0aGlzLmN0cmxDbGlja2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZXhlY3V0ZVNlYXJjaChvYmplY3RUeXBlPzogT2JqZWN0VHlwZSkge1xuXG4gICAgaWYgKCF0aGlzLmludmFsaWRUZXJtKSB7XG4gICAgICBpZiAob2JqZWN0VHlwZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW29iamVjdFR5cGVdO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW3RoaXMucmVzdWx0VHlwZXNbdGhpcy5zZWxlY3RlZC5pbmRleF0uZGF0YV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVyaVBhcmFtID0gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKCkpKTtcbiAgICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgICAgY29uc29sZS5sb2codGhpcy5jdHJsQ2xpY2tlZCk7XG4gICAgICBpZiAodGhpcy5jdHJsQ2xpY2tlZCkge1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJpUGFyYW1RdWVyeS5xdWVyeVBhcmFtcykudG9TdHJpbmcoKVxuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnL2Rhc2hib2FyZCcpWzBdICsgJy9yZXN1bHQ/JysgcXVlcnlQYXJhbXM7XG4gICAgICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICAgICAgICB0aGlzLmN0cmxDbGlja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0lucHV0KCkge1xuICAgIC8vIGZvY3VzIHNlYXJjaCBpbnB1dFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnF1ZXJ5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWljay1zZWFyY2hcIiBlb1J0bEF3YXJlPlxuXG4gIDxmb3JtIGNsYXNzPVwic2VhcmNoLWJveFwiIChuZ1N1Ym1pdCk9XCJleGVjdXRlU2VhcmNoKClcIlxuICAgICAgICBbbmdDbGFzc109XCJ7aW52YWxpZDogaW52YWxpZFRlcm19XCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCI+XG5cbiAgICA8ZW8taWNvbiAoY2xpY2spPVwiZXhlY3V0ZVNlYXJjaCgpXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2VhcmNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XG4gICAgICA8bGFiZWw+e3snZW8ucXVpY2tzZWFyY2gubGFiZWwnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgPGlucHV0IGF1dG9mb2N1cz1cImF1dG9mb2N1c1wiIGZvcm1Db250cm9sTmFtZT1cInNlYXJjaElucHV0XCI+XG4gICAgPC9kaXY+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciAqbmdJZj1cImxvYWRpbmdcIiBbc2l6ZV09XCInc21hbGwnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgPGVvLWljb24gY2xhc3M9XCJzbWFsbFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiBbaWNvblRpdGxlXT1cIignZW8uc2VhcmNoLmNsZWFyLnNlYXJjaCcgfCB0cmFuc2xhdGUpXCJcbiAgICAqbmdJZj1cInF1ZXJ5LnRlcm1cIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBxdWVyeS50ZXJtfVwiIChjbGljayk9XCJzZXRUZXJtKClcIj48L2VvLWljb24+XG4gICAgPGVvLWljb24gY2xhc3M9XCJzbWFsbFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3JlZnJlc2guc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5zZWFyY2gucmVzdWx0LnRlcm0nIHwgdHJhbnNsYXRlKSArICcgOiAmcXVvdDsnICsgbGFzdFRlcm0gKyAnJnF1b3Q7J1wiXG4gICAgKm5nSWY9XCJsYXN0VGVybSAmJiAhcXVlcnkudGVybVwiIChjbGljayk9XCJzZXRUZXJtKGxhc3RUZXJtKVwiPjwvZW8taWNvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwic2hvd1Jlc3VsdHMgJiYgIXF1ZXJ5U3RhdGUuaXNFbXB0eVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC10b3RhbFwiPnt7cXVlcnlTdGF0ZS50b3RhbENvdW50IHwgbG9jYWxlRGVjaW1hbH19PC9zcGFuPjxzcGFuIHRyYW5zbGF0ZT5lby5xdWlja3NlYXJjaC5oaXRzPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG5cbiAgPGRpdiBjbGFzcz1cInJlc3VsdFwiICpuZ0lmPVwic2hvd1Jlc3VsdHMgJiYgIXF1ZXJ5U3RhdGUuaXNFbXB0eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyXCI+PGRpdiBjbGFzcz1cInJpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIiAqbmdGb3I9XCJsZXQga2V5IG9mIHJlc3VsdEdyb3VwcyB8IGtleXM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgPGgyICpuZ0lmPVwia2V5ICE9PSAnMCc7IGVsc2UgbWFpbmdyb3VwXCI+e3trZXl9fTwvaDI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbWFpbmdyb3VwPlxuICAgICAgICAgIDxoMiB0cmFuc2xhdGU+ZW8ucXVpY2tzZWFyY2gucmVzdWx0Lmdyb3VwLmdsb2JhbDwvaDI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR5cGVcIiAqbmdGb3I9XCJsZXQgdHlwZSBvZiByZXN1bHRHcm91cHNba2V5XVwiIChjbGljayk9XCJleGVjdXRlU2VhcmNoKHR5cGUuZGF0YSlcIiBbbmdDbGFzc109XCJ7c2VsZWN0ZWQ6IHNlbGVjdGVkLm5hbWUgPT09IHR5cGUuZGF0YS5uYW1lfVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRcIj57e3R5cGUuY291bnR9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3t0eXBlLmxhYmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -149,10 +149,39 @@ let ResultListComponent = ResultListComponent_1 = class ResultListComponent {
|
|
|
149
149
|
.pipe(untilDestroyed(this))
|
|
150
150
|
.subscribe(res => {
|
|
151
151
|
if (this.grid) {
|
|
152
|
-
this.
|
|
152
|
+
this.updateRow(res.data.id, res.data.data);
|
|
153
153
|
}
|
|
154
154
|
});
|
|
155
155
|
}
|
|
156
|
+
updateRow(id, data) {
|
|
157
|
+
const matchRow = this.resultGridOptions.rowData.find((r) => r.id === id);
|
|
158
|
+
if (matchRow) {
|
|
159
|
+
Object.keys(matchRow).forEach((k) => {
|
|
160
|
+
if (data.hasOwnProperty(k)) {
|
|
161
|
+
if (data.hasOwnProperty(k + '_meta')) {
|
|
162
|
+
// if it is an org field, it will have a title to show, otherwise it is a codesystem and we show the label
|
|
163
|
+
matchRow[k] = data[k + '_meta'].title ? data[k + '_meta'].title : data[k + '_meta'].label;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
matchRow[k] = data[k];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else if (data.hasOwnProperty(k.split('.')[1])) {
|
|
170
|
+
// some technical names have the object type as a prefix, we have to get rid of it
|
|
171
|
+
const kSplit = k.split('.')[1];
|
|
172
|
+
if (data.hasOwnProperty(kSplit + '_meta')) {
|
|
173
|
+
matchRow[k] = data[kSplit + '_meta'].title ? data[kSplit + '_meta'].title : data[kSplit + '_meta'].label;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
matchRow[k] = data[kSplit];
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
matchRow.id = id;
|
|
181
|
+
const rowNode = this.grid.gridOptions.api.getRowNode(id);
|
|
182
|
+
rowNode && rowNode.setData(matchRow);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
156
185
|
refreshGrid() {
|
|
157
186
|
if (this.query) {
|
|
158
187
|
this.query = this.defaultQuery;
|
|
@@ -336,4 +365,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
336
365
|
}], searchResult: [{
|
|
337
366
|
type: Input
|
|
338
367
|
}] } });
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBR0wsVUFBVSxFQUVWLGVBQWUsRUFHZixXQUFXLEVBRVgsVUFBVSxFQUVRLEtBQUssRUFDeEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsRUFBRSxJQUFJLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFckUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVOUMsSUFBTSxtQkFBbUIsMkJBQXpCLE1BQU0sbUJBQW1CO0lBaUQ5QixJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7YUFBTTtZQUNMLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUU7cUJBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFB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QUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0gsS0FBSztzQkFEUixLQUFLO2dCQW9ERixZQUFZO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJhY2tlbmRTZXJ2aWNlLFxuICBDb25maWcsXG4gIEVuYWlvRXZlbnQsXG4gIEV2ZW50U2VydmljZSxcbiAgRmllbGREZWZpbml0aW9uLFxuICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICBPYmplY3RUeXBlLFxuICBTZWFyY2hRdWVyeSwgU2VhcmNoUmVzdWx0LFxuICBTZWFyY2hTZXJ2aWNlLFxuICBTb3J0T3B0aW9uLFxuICBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnksXG4gIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge29mIGFzIG9ic2VydmFibGVPZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge0dyaWRGaWx0ZXJ9IGZyb20gJy4uL2dyaWQvZ3JpZC1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtHcmlkQ29tcG9uZW50fSBmcm9tICcuLi9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7TGlzdENvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi4vbGlzdC1jb250YWluZXInO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXJlc3VsdC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdWx0LWxpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBncmlkOiBHcmlkQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdlb0xpc3QnKSBsaXN0OiBMaXN0Q29udGFpbmVyQ29tcG9uZW50O1xuXG4gIC8vIGZvciBsaXN0cyB0aGF0IGV4Y2VlZCB0aGUgY29uZmlndXJlZCBtYXggcmVzdWx0IHNpemUsIGRhdGEgd2lsbCBiZSBmZXRjaGVkIGluIGNodW5rc1xuICBwcml2YXRlIFZJUlRVQUxfTElTVF9DSFVOS19TSVpFOiBudW1iZXI7XG4gIHJlc29sdmVSZWZlcmVuY2VzQ3N2OiBib29sZWFuO1xuICByZXNvbHZlUmVmZXJlbmNlc0NzdlRocmVzaG9sZDogbnVtYmVyO1xuICBzdGF0aWMgQ09MVU1OU19ERUZJTklUSU9OID0gJ2VvLmZyYW1ld29yay5jYWNoZS5jb2x1bW5zLmRlZmluaXRpb24nO1xuXG4gIHByaXZhdGUgX3Jlc3VsdDogU2VhcmNoUmVzdWx0O1xuICBwcml2YXRlIF9xdWVyeTogU2VhcmNoUXVlcnk7XG4gIHByaXZhdGUgX2NhY2hlZENvbHVtbnM6IGFueVtdO1xuICBwcml2YXRlIGRlZmF1bHRRdWVyeTogU2VhcmNoUXVlcnk7XG4gIGNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IGZhbHNlO1xuXG4gIHZpc2libGVDb25maWcgPSBmYWxzZTtcbiAgc2hvd0xvYWRlciA9IGZhbHNlO1xuICBwdWJsaWMgdG90YWxIaXRzOiBhbnk7XG4gIHB1YmxpYyBsaW1pdGVkTGlzdCA9IGZhbHNlO1xuICBwdWJsaWMgcmVzdWx0R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge307XG4gIHNldHRpbmdzID0ge307XG4gIHF1ZXJ5U3VidGl0bGUgPSAnJztcbiAgc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gIHN0b3JlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcbiAgc2hvd1dhcm5FeHBvcnRDU1ZUaHJlc2hvbGREaWFsb2cgPSBmYWxzZTtcblxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBjb25maWdUeXBlOiBPYmplY3RUeXBlIHwgbnVsbDtcbiAgQElucHV0KCkgY29uZmlnQ29udGV4dDogT2JqZWN0VHlwZSB8IG51bGw7XG5cbiAgLy8gSWYgc2V0IHRvIHRydWUgcXVlcnkgd2lsbCBiZSB0cmVhdGVkIGxpa2UgYSB0ZW1wb3Jhcnkgc2VhcmNoLlxuICAvLyBUaGF0IG1lYW5zLCBnbG9iYWwgc2VhcmNoIHdpbGwgbm90IGJlIGFmZmVjdGVkIChnbG9iYWwgcXVlcnkgd2lsbCBiZSByZXNldCBhZnRlciBleGVjdXRpb24pXG4gIEBJbnB1dCgpIGNsZWFyQWZ0ZXJFeGVjdXRlOiBib29sZWFuO1xuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgc2VsZWN0Rmlyc3QgPSB0cnVlO1xuICBASW5wdXQoKSBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIEBJbnB1dCgpIGhhc0ljb24gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVmZXJlbmNlID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkZvY3VzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNvbnRleHRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Db3VudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblJlc3VsdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUXVlcnlJbnZhbGlkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBxdWVyeShxdWVyeTogYW55KSB7XG4gICAgdGhpcy5zdG9yZWRRdWVyeSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocXVlcnkubmFtZSkge1xuICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlLmdldFN0b3JlZFF1ZXJpZXMkKClcbiAgICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHF1ZXJpZXNTdWJzY3JpcHRpb24gPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHF1ZXJpZXNTdWJzY3JpcHRpb24ucXVlcmllcy5maWx0ZXIocSA9PiBxLm5hbWUgPT09IHF1ZXJ5Lm5hbWUpWzBdO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeShxdWVyeSk7XG4gICAgICBpZiAodGhpcy5fcXVlcnkpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0UXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeSh0aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKSk7XG4gICAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5zZXRRdWVyeSh0aGlzLmRlZmF1bHRRdWVyeSk7XG4gICAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5hZ2dyZWdhdGUoKTtcblxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0UmVzdWx0RmllbGREZWZpbml0aW9uQ29uZmlnKHRoaXMucXVlcnkpO1xuICAgICAgICB0aGlzLmNvbmZpZ1R5cGUgPSBjb25maWcudHlwZTtcbiAgICAgICAgdGhpcy5jb25maWdDb250ZXh0ID0gY29uZmlnLmNvbnRleHRUeXBlO1xuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgICAuZ2V0Q2h1bmtlZFJlc3VsdCh0aGlzLl9xdWVyeSwgMCwgdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJRdWVyeSh0aGlzLmNsZWFyQWZ0ZXJFeGVjdXRlKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5pbnZhbGlkUXVlcnkoKTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSA9ICcnO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucXVlcnkudHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5U3VidGl0bGUgKz0gdGhpcy5xdWVyeS50eXBlc1tpXS5sYWJlbDtcbiAgICAgICAgICBpZiAoaSAhPT0gdGhpcy5xdWVyeS50eXBlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5U3VidGl0bGUgKz0gJywgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHF1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLl9xdWVyeTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBzZWFyY2hSZXN1bHQocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcbiAgICAvLyB0b2RvOiBiYWNrZW5kIHNob3VsZCByZXNvbHZlIHF1ZXJ5LmZpZWxkcyBhbmQgcmV0dXJuIGNvbmZpZyBpbiBzcGVjaWZpYyBvcmRlclxuICAgIGNvbnN0IF9maWVsZHMgPSByZXN1bHQuZmllbGRzID8gb2JzZXJ2YWJsZU9mKHJlc3VsdC5maWVsZHMpIDpcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5mZXRjaFJlc3VsdEZpZWxkRGVmaW5pdGlvbih0aGlzLmNvbmZpZ1R5cGUsIHRoaXMuY29uZmlnQ29udGV4dCwgJ0FMTCcpO1xuICAgIF9maWVsZHMuc3Vic2NyaWJlKGZpZWxkcyA9PiB7XG4gICAgICBpZiAoZmllbGRzICYmIHRoaXMucXVlcnkgJiYgdGhpcy5xdWVyeS5maWVsZHMgJiYgdGhpcy5xdWVyeS5maWVsZHMubGVuZ3RoKSB7XG4gICAgICAgIGZpZWxkcy5lbGVtZW50cyA9IHRoaXMucXVlcnkuZmllbGRzLm1hcChmID0+IGZpZWxkcy5lbGVtZW50cy5maW5kKGUgPT4gZiA9PT0gZS5oaXRuYW1lKSk7XG4gICAgICB9XG4gICAgICByZXN1bHQuZmllbGRzID0gZmllbGRzIHx8IG5ldyBGaWVsZERlZmluaXRpb24oKTtcbiAgICAgIHRoaXMuX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgIHRoaXMucHJvY2Vzc1Jlc3VsdHModGhpcy5fcmVzdWx0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBzZWFyY2hSZXN1bHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3VsdDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBDb25maWcsIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHB1YmxpYyBncmlkQXBpOiBHcmlkU2VydmljZSwgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLCBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSA9IHRoaXMuY29uZmlnLmdldFJhdygnc2VhcmNoLmxpbWl0JykgYXMgbnVtYmVyO1xuICAgIHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3YgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5yZXNvbHZlUmVmZXJlbmNlc0NTVicpIGFzIGJvb2xlYW4gfHwgZmFsc2U7XG4gICAgdGhpcy5yZXNvbHZlUmVmZXJlbmNlc0NzdlRocmVzaG9sZCA9IHRoaXMuY29uZmlnLmdldFJhdygnc2VhcmNoLnJlc29sdmVSZWZlcmVuY2VzQ1NWVGhyZXNob2xkJykgYXMgbnVtYmVyIHx8IDEwMDAwO1xuICAgIHRoaXMuX2NhY2hlZENvbHVtbnMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oUmVzdWx0TGlzdENvbXBvbmVudC5DT0xVTU5TX0RFRklOSVRJT04pIHx8IFtdO1xuICB9XG5cbiAgY2xlYXJRdWVyeShjbGVhckFmdGVyRXhlY3V0ZSkge1xuICAgIGlmIChjbGVhckFmdGVyRXhlY3V0ZSkge1xuICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLmNsZWFyUXVlcnkoKTtcbiAgICB9XG4gIH1cblxuICBpbnZhbGlkUXVlcnkoKSB7XG4gICAgdGhpcy5vblF1ZXJ5SW52YWxpZC5lbWl0KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9ERUxFVEVEKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGlmICh0aGlzLmdyaWQpIHtcbiAgICAgICAgICB0aGlzLmdyaWQudXBkYXRlUm93cyh0aGlzLmJhY2tlbmQudXBkYXRlKFtyZXMuZGF0YV0sIFt7aWQ6IHJlcy5kYXRhLmlkfV0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGlmICh0aGlzLmdyaWQpIHtcbiAgICAgICAgICB0aGlzLmdyaWQudXBkYXRlUm93cyh0aGlzLmJhY2tlbmQudXBkYXRlKFtyZXMuZGF0YV0sIFt7aWQ6IHJlcy5kYXRhLmlkLCBpdGVtOiByZXMuZGF0YS5kYXRhfV0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuXG4gIHJlZnJlc2hHcmlkKCkge1xuICAgIGlmICh0aGlzLnF1ZXJ5KSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5kZWZhdWx0UXVlcnk7XG4gICAgfVxuICAgIHRoaXMub25SZWZyZXNoLmVtaXQodGhpcy5xdWVyeSk7XG4gIH1cblxuICBvbkNvbHVtblJlc2l6ZWQoY29sdW1uOiBhbnkpIHtcbiAgICBsZXQgY29sID0gdGhpcy5fY2FjaGVkQ29sdW1ucy5maW5kKGMgPT4gYy5xbmFtZSA9PT0gY29sdW1uLmNvbERlZi5yZWZEYXRhLnFuYW1lKTtcbiAgICBpZiAoY29sKSB7XG4gICAgICBjb2wud2lkdGggPSBjb2x1bW4uYWN0dWFsV2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NhY2hlZENvbHVtbnMucHVzaCh7cW5hbWU6IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSwgd2lkdGg6IGNvbHVtbi5hY3R1YWxXaWR0aH0pO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oUmVzdWx0TGlzdENvbXBvbmVudC5DT0xVTU5TX0RFRklOSVRJT04sIHRoaXMuX2NhY2hlZENvbHVtbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGdyaWQgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gJGV2ZW50XG4gICAqL1xuICBvbkNvbmZpZ0NoYW5nZWQocmVmcmVzaCkge1xuICAgIGlmIChyZWZyZXNoKSB7XG4gICAgICB0aGlzLnJlZnJlc2hHcmlkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3MgU2VhcmNoIHJlc3VsdCAmIGdlbmVyYXRlIGNvbHVtbiBkZWZpbml0aW9uc1xuICAgKiBAcGFyYW0gcmVzdWx0XG4gICAqL1xuICBwcml2YXRlIHByb2Nlc3NSZXN1bHRzKHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy52aXNpYmxlQ29uZmlnID0gZmFsc2U7XG4gICAgdGhpcy5vblJlc3VsdC5lbWl0KHJlc3VsdCk7XG4gICAgdGhpcy50b3RhbEhpdHMgPSByZXN1bHQuY291bnQudmFsdWU7XG4gICAgdGhpcy5saW1pdGVkTGlzdCA9IHRoaXMudG90YWxIaXRzID4gcmVzdWx0LmhpdHMubGVuZ3RoO1xuICAgIGxldCBncmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7Y29udGV4dDoge30sIG9uU29ydENoYW5nZWQ6ICgpID0+IHRoaXMub25QYWdlQ2hhbmdlZCgpLCBvbkZpbHRlckNoYW5nZWQ6ICgpID0+IHRoaXMub25QYWdlQ2hhbmdlZCgpfTtcbiAgICBjb25zdCBzZWFyY2hNb2RlID0gcmVzdWx0LmZpZWxkcy5tb2RlID8gcmVzdWx0LmZpZWxkcy5tb2RlIDogbnVsbDtcblxuICAgIHRoaXMuc2V0dGluZ3MgPSB0aGlzLmxpbWl0ZWRMaXN0ICYmIHRoaXMucXVlcnkgPyB7dG90YWw6IHRoaXMudG90YWxIaXRzLCBzaXplOiB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFLCByZWxhdGlvbjogcmVzdWx0LmNvdW50LnJlbGF0aW9ufSA6IG51bGw7XG4gICAgZ3JpZE9wdGlvbnMucm93RGF0YSA9IHJlc3VsdC5oaXRzO1xuXG4gICAgY29uc3Qge2VsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZCwgYWxpZ25tZW50eH0gPSByZXN1bHQuZmllbGRzO1xuXG4gICAgZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICBncmlkT3B0aW9ucy5jb2x1bW5EZWZzID0gdGhpcy5ncmlkQXBpLmdldENvbHVtbkRlZnMoZWxlbWVudHMsIHNvcnRvcmRlciwgZ3JvdXBvcmRlciwgcGlubmVkLCBhbGlnbm1lbnR4LCBmYWxzZSwgdGhpcy5fY2FjaGVkQ29sdW1ucywgc2VhcmNoTW9kZSk7XG5cbiAgICBjb25zdCByZWZyZXNoR3JpZCA9IHRoaXMuaGFzR3JpZE9wdGlvbnM7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyk7XG5cbiAgICBpZiAocmVmcmVzaEdyaWQpIHtcbiAgICAgIC8vIHJlbG9hZCBncmlkIGNvbXBvbmVudFxuICAgICAgdGhpcy5yZXN1bHRHcmlkT3B0aW9ucyA9IHt9O1xuICAgICAgc2V0VGltZW91dCgoKSA9PiBPYmplY3QuYXNzaWduKHRoaXMucmVzdWx0R3JpZE9wdGlvbnMsIGdyaWRPcHRpb25zLCB0aGlzLmdyaWRPcHRpb25zKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwb3N0Zml4U29ydChpZCkge1xuICAgIC8vIHRvZG86IHJlbW92ZSB3aGVuIGl0J3MgZml4ZWQgb24gYmFja2VuZFxuICAgIHJldHVybiBpZC5tYXRjaCgvKF5zeXNvYmplY3RcXC58XnN5c2RvY3VtZW50XFwuKShjcmVhdG9yJHxtb2RpZmllciQpLykgPyAndGl0bGUnIDogJyc7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2VkKHBhZ2U6IG51bWJlciA9IDEpIHtcbiAgICBpZiAodGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5KSB7XG4gICAgICB0aGlzLmZldGNoUm93RGF0YSh7XG4gICAgICAgIHN0YXJ0Um93OiB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFICogKHBhZ2UgLSAxKSxcbiAgICAgICAgc29ydE1vZGVsOiB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpLFxuICAgICAgICBmaWx0ZXJNb2RlbDogdGhpcy5ncmlkLmFwaS5nZXRGaWx0ZXJNb2RlbCgpLFxuICAgICAgICBzdWNjZXNzQ2FsbGJhY2s6IChyb3dzLCB0b3RhbCwgcmVsYXRpb24pID0+IHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzID0ge3RvdGFsLCByZWxhdGlvbiwgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcGFnZX07XG4gICAgICAgICAgdGhpcy5ncmlkLmFwaS5zZXRSb3dEYXRhKHJvd3MpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gZm9yIGZldGNoaW5nIHRoZSBpdGVtcyB0byBiZSBkaXNwbGF5ZWQgd2l0aCBhIHZpcnR1YWwgcm93IG1vZGVsLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gcm93IG1vZGVsIHBhcmFtcyAoaW5jbC4gc3RhcnRSb3csIGVuZFJvdywgc29ydE1vZGVsIGFuZCBmaWx0ZXJNb2RlbClcbiAgICovXG4gIHByaXZhdGUgZmV0Y2hSb3dEYXRhKHBhcmFtczogYW55KSB7XG5cbiAgICBpZiAodGhpcy5xdWVyeSkge1xuXG4gICAgICB0aGlzLnVwZGF0ZVF1ZXJ5KHBhcmFtcyk7XG5cbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAuZ2V0Q2h1bmtlZFJlc3VsdCh0aGlzLnF1ZXJ5LCBwYXJhbXMuc3RhcnRSb3csIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUpXG4gICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLnRvdGFsSGl0cyA9IHRoaXMuZ3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0NvdW50ID0gcmVzdWx0LmNvdW50LnZhbHVlO1xuICAgICAgICAgIHRoaXMuZ3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID0gcmVzdWx0LmNvdW50O1xuICAgICAgICAgIHBhcmFtcy5zdWNjZXNzQ2FsbGJhY2socmVzdWx0LmhpdHMsIHRoaXMudG90YWxIaXRzLCByZXN1bHQuY291bnQucmVsYXRpb24pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVF1ZXJ5KHBhcmFtczogYW55KSB7XG4gICAgdGhpcy5xdWVyeS5zb3J0T3B0aW9ucyA9IChwYXJhbXMuc29ydE1vZGVsIHx8IHRoaXMuZ3JpZC5hcGkuZ2V0U29ydE1vZGVsKCkgfHwgW10pXG4gICAgICAgIC5tYXAobW9kZWwgPT4gbmV3IFNvcnRPcHRpb24oR3JpZFNlcnZpY2UucW5hbWVGb3JtYXR0ZXIobW9kZWwuY29sSWQgKyB0aGlzLnBvc3RmaXhTb3J0KG1vZGVsLmNvbElkKSksIG1vZGVsLnNvcnQpKTtcblxuICAgIHRoaXMucXVlcnkuZmlsdGVycyA9IHRoaXMuZGVmYXVsdFF1ZXJ5LmZpbHRlcnNcbiAgICAgIC5jb25jYXQoKE9iamVjdC5rZXlzKHBhcmFtcy5maWx0ZXJNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCkpIHx8IFtdKVxuICAgICAgICAubWFwKGtleSA9PiBHcmlkRmlsdGVyLm9wZXJhdG9yKEdyaWRTZXJ2aWNlLnFuYW1lRm9ybWF0dGVyKGtleSksIChwYXJhbXMuZmlsdGVyTW9kZWwgfHwgdGhpcy5ncmlkLmFwaS5nZXRGaWx0ZXJNb2RlbCgpKVtrZXldKSkpO1xuXG4gICAgdGhpcy5xdWVyeS5zZWFyY2hNb2RlID0gU2VhcmNoUXVlcnkuREVGQVVMVF9TRUFSQ0hfTU9ERTtcbiAgfVxuXG4gIGV4ZWN1dGVTdWdnZXN0U2VhcmNoKCkge1xuICAgIC8vIHRvZG86IGltcGxlbWVudFxuICB9XG5cbiAgcHJpdmF0ZSByZXN1bHRIYXNSZWZlcmVuY2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHQuZmllbGRzLmVsZW1lbnRzLnNvbWUoZWxlbWVudCA9PiBlbGVtZW50LnR5cGUgPT09ICdPUkdBTklaQVRJT04nIHx8IGVsZW1lbnQudHlwZSA9PT0gJ1JFRkVSRU5DRScpO1xuICB9XG5cbiAgZXhwb3J0Q1NWKGlnbm9yZVRocmVzaG9sZCA9IGZhbHNlKSB7XG4gICAgaWYgKCFpZ25vcmVUaHJlc2hvbGQgJiYgdGhpcy5yZXNvbHZlUmVmZXJlbmNlc0NzdlxuICAgICAgJiYgKHRoaXMubGlzdC5ncmlkQ291bnQudG90YWxDb3VudCA+IHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3ZUaHJlc2hvbGQgfHwgdGhpcy5saXN0LmdyaWRDb3VudC5yZWxhdGlvbiA9PT0gJ2d0ZScpXG4gICAgICAmJiB0aGlzLnJlc3VsdEhhc1JlZmVyZW5jZXMoKSkge1xuICAgICAgdGhpcy5zaG93V2FybkV4cG9ydENTVlRocmVzaG9sZERpYWxvZyA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5KHt9KTtcbiAgICB0aGlzLnNob3dXYXJuRXhwb3J0Q1NWVGhyZXNob2xkRGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmRvd25sb2FkQ3N2RnJvbVF1ZXJ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3YpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jc3ZMb2FkaW5nU3Bpbm5lclZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhcnNlRG1zUGFyYW1zKGRhdGEpIHtcbiAgICByZXR1cm4ge2lkOiBkYXRhICYmIGRhdGEuaWQgPyBkYXRhLmlkIDogbnVsbCwgdHlwZTogZGF0YSAmJiBkYXRhLnR5cGUgPyBkYXRhLnR5cGUgOiBudWxsfTtcbiAgfVxuXG4gIGdldCBoYXNHcmlkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gISEodGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5kYXRhc291cmNlIHx8IHRoaXMucmVzdWx0R3JpZE9wdGlvbnMucm93RGF0YSk7XG4gIH1cblxuICBvblN0b3JlZFF1ZXJ5TG9hZGVkKCkge1xuICAgIHRoaXMuc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdzZWFyY2gnfX1dKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlFeGVjdXRlKGV2dCkge1xuICAgIHRoaXMuc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZXZ0LnF1ZXJ5SnNvbikpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Jlc3VsdCddLCB1cmlQYXJhbVF1ZXJ5KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxvYWRlci1vdmVybGF5X19tYXNrXCIgKm5nSWY9XCJzaG93TG9hZGVyXCI+XG4gIDxlby1sb2FkaW5nLXNwaW5uZXIgY2xhc3M9XCJyZXN1bHQtbGlzdF9fbG9hZGVyXCIgW3NpemVdPVwiJ21lZGl1bSdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbjwvZGl2PlxuPGVvLWNvbHVtbi1jb25maWd1cmF0b3IgKm5nSWY9XCJ2aXNpYmxlQ29uZmlnXCIgW3Zpc2libGVdPVwidmlzaWJsZUNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnVHlwZV09XCJjb25maWdUeXBlXCIgW2NvbmZpZ0NvbnRleHRdPVwiY29uZmlnQ29udGV4dFwiIFtlb0dyaWRdPVwiZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25Db25maWdDaGFuZ2VkKT1cInZpc2libGVDb25maWcgPSBmYWxzZTsgb25Db25maWdDaGFuZ2VkKCRldmVudClcIiA+PC9lby1jb2x1bW4tY29uZmlndXJhdG9yPlxuXG48ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbYXBwbHlTZWxlY3Rpb25dPVwie31cIiBbbG9hZGluZ109XCJmYWxzZVwiIFtwYXJzZURtc1BhcmFtc109XCJwYXJzZURtc1BhcmFtc1wiPlxuICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyXCI+XG4gICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiICpuZ0lmPVwiaGFzSWNvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NlYXJjaC5zdmcnXCI+PC9lby1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci10aXRsZVwiPnt7dGl0bGUgfHwgKCdlby5zZWFyY2gudGl0bGUnIHwgdHJhbnNsYXRlKX19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLXN1YnRpdGxlXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIXN0b3JlZFF1ZXJ5OyBlbHNlIHN0b3JlZFF1ZXJ5VGV4dFwiIGNsYXNzPVwiZW8taGVhZGVyLXN1YnRpdGxlX19sYWJlbFwiIFt0aXRsZV09XCJxdWVyeVN1YnRpdGxlXCI+e3txdWVyeVN1YnRpdGxlfX08L3NwYW4+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RvcmVkUXVlcnlUZXh0PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9yZWRRdWVyeS5wYXJhbWV0ZXIubGVuZ3RoID09PSAwOyBlbHNlIHN0b3JlZFF1ZXJ5RGlhbG9nXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVvLWhlYWRlci1zdWJ0aXRsZV9fbGFiZWxcIiBbdGl0bGVdPVwiKCdlby5zZWFyY2guYXNpZGUuc3VtbWFyeS5zdG9yZWRxdWVyeScgfCB0cmFuc2xhdGUpICsgJzogJyArIHN0b3JlZFF1ZXJ5Lm5hbWVcIj5cbiAgICAgICAgICAgICAge3snZW8uc2VhcmNoLmFzaWRlLnN1bW1hcnkuc3RvcmVkcXVlcnknIHwgdHJhbnNsYXRlfX06IHt7c3RvcmVkUXVlcnkubmFtZX19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RvcmVkUXVlcnlEaWFsb2c+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlZC1xdWVyeVwiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIHt7J2VvLnNlYXJjaC5hc2lkZS5zdW1tYXJ5LnN0b3JlZHF1ZXJ5JyB8IHRyYW5zbGF0ZX19OlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNxXCIgKGNsaWNrKT1cInNhdmVkU2VhcmNoQ2xpY2tlZCA9IHRydWVcIiAoa2V5dXAuZW50ZXIpPVwic2F2ZWRTZWFyY2hDbGlja2VkID0gdHJ1ZVwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zdG9yZWRfcXVlcnkuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3tzdG9yZWRRdWVyeS5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJxdWVyeT8uY29udGV4dEZvbGRlclR5cGVzLmxlbmd0aCA9PT0gMVwiIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cInt0eXBlOiBxdWVyeS5jb250ZXh0Rm9sZGVyVHlwZXNbMF0ubGFiZWx9XCI+ZW8uc2VhcmNoLm9iamVjdHR5cGUuZm9ybS5jb250ZXh0PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRlcm1cIiAqbmdJZj1cIiFzdG9yZWRRdWVyeSAmJiBxdWVyeT8udGVybSAmJiAhY2xlYXJBZnRlckV4ZWN1dGVcIiBbdGl0bGVdPVwiKCdlby5zZWFyY2gucmVzdWx0LnRlcm0nIHwgdHJhbnNsYXRlKSArICc6ICcgKyBxdWVyeS50ZXJtXCI+e3snZW8uc2VhcmNoLnJlc3VsdC50ZXJtJyB8IHRyYW5zbGF0ZX19IDogXCJ7e3F1ZXJ5LnRlcm19fVwiPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VnZ2VzdFwiICpuZ0lmPVwic2VhcmNoUmVzdWx0Py5zdWdnZXN0c1wiPnt7J2VvLnNlYXJjaC5zdWdnZXN0JyB8IHRyYW5zbGF0ZX19PGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJleGVjdXRlU3VnZ2VzdFNlYXJjaCgpXCI+e3tzZWFyY2hSZXN1bHQuc3VnZ2VzdHNbMF19fTwvYT4gP1xuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcmVmcmVzaC1idXR0b25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIiAoY2xpY2spPVwicmVmcmVzaEdyaWQoKVwiXG4gICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ubGlzdC5yZWZyZXNoJyB8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBleHBvcnQtYnV0dG9uXCIgW2hpZGRlbl09XCIhcXVlcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jb250ZW50LWRvd25sb2FkLnN2ZydcIiBbaWNvblRpdGxlXT1cIignZW8ucmVzdWx0bGlzdC5leHBvcnQuY3N2JyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cG9ydENTVigpXCIgKm5nSWY9XCIhY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5XCI+PC9lby1pY29uPlxuICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInc21hbGwnXCIgKm5nSWY9XCJjc3ZMb2FkaW5nU3Bpbm5lclZpc2liaWxpdHlcIiBjbGFzcz1cInNwaW5uZXJcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIGNvbmZpZy1idXR0b25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zZXR0aW5ncy5zdmcnXCIgW2ljb25UaXRsZV09XCIoJ2VvLmNvbHVtbi5jb25maWcudGl0bGUnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwidmlzaWJsZUNvbmZpZyA9ICF2aXNpYmxlQ29uZmlnXCI+PC9lby1pY29uPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gYWN0aW9ucy1idXR0b25cIiAoY2xpY2spPVwiZW9MaXN0LnNob3dBY3Rpb25zKClcIiBbaWNvblRpdGxlXT1cIignZW8ub2JqZWN0LmFjdGlvbnMudGl0bGUnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19tb3JlLnN2ZydcIiAqbmdJZj1cIiFyZWZlcmVuY2VcIj48L2VvLWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuICAgIDxlby1ncmlkICNlb0dyaWQgW2dyaWRPcHRpb25zXT1cInJlc3VsdEdyaWRPcHRpb25zXCIgKm5nSWY9XCJoYXNHcmlkT3B0aW9uczsgZWxzZSBlcnJvclwiXG4gICAgICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiIChlb0dyaWRDb2x1bW5SZXNpemVkKT1cIm9uQ29sdW1uUmVzaXplZCgkZXZlbnQpXCIgW3NlbGVjdEZpcnN0XT1cInNlbGVjdEZpcnN0XCJcbiAgICAgICAgICAgICAoZW9HcmlkQ291bnRDaGFuZ2VkKT1cImVvTGlzdC5vbkNvdW50Q2hhbmdlZCgkZXZlbnQpO29uQ291bnRDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcIlxuICAgICAgICAgICAgIChlb0dyaWRDb250ZXh0TWVudUNsaWNrKT1cImVvTGlzdC5vbkNvbnRleHRNZW51KCRldmVudCk7b25Db250ZXh0TWVudS5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KTtvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAoZW9HcmlkRG91YmxlQ2xpY2spPVwiZW9MaXN0Lm9uRG91YmxlQ2xpY2soJGV2ZW50KTtvbkRvdWJsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KTtvbkZvY3VzQ2hhbmdlZC5lbWl0KCRldmVudClcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICA8ZW8tdG90YWwtY291bnQgW2dyaWRDb3VudF09XCJlb0xpc3QuZ3JpZENvdW50XCIgW291dHNpZGVHcmlkXT1cImZhbHNlXCIgY2xhc3M9XCJmbGV4LXJvd1wiPjwvZW8tdG90YWwtY291bnQ+XG4gICAgICAgIDwhLS08ZW8tcXVpY2stZmlsdGVyIFtlb0dyaWRdPVwiZW9HcmlkXCI+PC9lby1xdWljay1maWx0ZXI+LS0+XG4gICAgICAgIDxlby1wYWdpbmF0aW9uIFtzZXR0aW5nc109XCJzZXR0aW5nc1wiIChwYWdlQ2hhbmdlZCk9XCJvblBhZ2VDaGFuZ2VkKCRldmVudClcIj48L2VvLXBhZ2luYXRpb24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgIDxlby1lcnJvci1tZXNzYWdlIFtlbXB0eVN0YXRlXT1cInt0ZXh0OiBlbXB0eU1lc3NhZ2UgfHwgJ2VvLnNlYXJjaC5yZXN1bHQuZXhwaXJlZCd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1ncmlkPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNlcnJvcj5cblxuICAgIDxlby1lcnJvci1tZXNzYWdlICpuZ0lmPVwiaGFzR3JpZE9wdGlvbnNcIiBbZW1wdHlTdGF0ZV09XCJ7dGV4dDonZW8uc2VhcmNoLm1vZGUuZXhwZXJ0LnJlc3VsdC5lbXB0eSd9XCI+XG4gICAgPC9lby1lcnJvci1tZXNzYWdlPlxuXG4gIDwvbmctdGVtcGxhdGU+XG48L2VvLWxpc3QtY29udGFpbmVyPlxuXG48ZW8tZGlhbG9nIFt2aXNpYmxlXT1cInNhdmVkU2VhcmNoQ2xpY2tlZFwiIChoaWRlKT1cInNhdmVkU2VhcmNoQ2xpY2tlZCA9IGZhbHNlXCIgW3RpdGxlXT1cIidlby5zZWFyY2guYXNpZGUuc3VtbWFyeS5zdG9yZWRxdWVyeScgfCB0cmFuc2xhdGVcIj5cbiAgPGVvLXN0b3JlZC1xdWVyeSBbcXVlcnldPVwic3RvcmVkUXVlcnlcIlxuICAgICAgICAgICAgICAgICAgIChvblF1ZXJ5TG9hZGVkKT1cIm9uU3RvcmVkUXVlcnlMb2FkZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgKG9uUXVlcnlFeGVjdXRlKT1cIm9uU3RvcmVkUXVlcnlFeGVjdXRlKCRldmVudClcIj48L2VvLXN0b3JlZC1xdWVyeT5cbjwvZW8tZGlhbG9nPlxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCInZW8ucmVzdWx0bGlzdC5leHBvcnQuY3N2LnRocmVzaG9sZC5kaWFsb2cudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgWyh2aXNpYmxlKV09XCJzaG93V2FybkV4cG9ydENTVlRocmVzaG9sZERpYWxvZ1wiIFtmb2N1c09uU2hvd109XCJmYWxzZVwiIFttaW5XaWR0aF09XCI0MDBcIiBbc3R5bGVDbGFzc109XCIndGhyZXNob2xkX19kaWFsb2cnXCI+XG5cbiAgPGRpdj57eydlby5yZXN1bHRsaXN0LmV4cG9ydC5jc3YudGhyZXNob2xkLmRpYWxvZy5tZXNzYWdlJyB8IHRyYW5zbGF0ZX19PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGZsZXgtcm93XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dXYXJuRXhwb3J0Q1NWVGhyZXNob2xkRGlhbG9nID0gZmFsc2VcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnJlc3VsdGxpc3QuZXhwb3J0LmNzdi50aHJlc2hvbGQuZGlhbG9nLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNka0ZvY3VzSW5pdGlhbCAoY2xpY2spPVwiZXhwb3J0Q1NWKHRydWUpXCIgY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiXG4gICAgICAgICAgICB0cmFuc2xhdGU+ZW8ucmVzdWx0bGlzdC5leHBvcnQuY3N2LnRocmVzaG9sZC5kaWFsb2cuZXhwb3J0PC9idXR0b24+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+XG5cbiJdfQ==
|
|
368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBR0wsVUFBVSxFQUVWLGVBQWUsRUFHZixXQUFXLEVBRVgsVUFBVSxFQUVRLEtBQUssRUFDeEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsRUFBRSxJQUFJLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFckUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVOUMsSUFBTSxtQkFBbUIsMkJBQXpCLE1BQU0sbUJBQW1CO0lBaUQ5QixJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7YUFBTTtZQUNMLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUU7cUJBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFB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LEdBQUcsdUNBQXVDLENBQUM7Z0hBVHpELG1CQUFtQjtvR0FBbkIsbUJBQW1CLGd5QkMvQmhDLGl1TUFrR0E7QURuRWEsbUJBQW1CO0lBTi9CLFlBQVksRUFBRTtHQU1GLG1CQUFtQixDQStVL0I7U0EvVVksbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCO21XQU1MLElBQUk7c0JBQXhCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRSxJQUFJO3NCQUF4QixTQUFTO3VCQUFDLFFBQVE7Z0JBeUJWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUdILEtBQUs7c0JBRFIsS0FBSztnQkFvREYsWUFBWTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtHcmlkT3B0aW9uc30gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCYWNrZW5kU2VydmljZSxcbiAgQ29uZmlnLFxuICBFbmFpb0V2ZW50LFxuICBFdmVudFNlcnZpY2UsXG4gIEZpZWxkRGVmaW5pdGlvbixcbiAgTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgT2JqZWN0VHlwZSxcbiAgU2VhcmNoUXVlcnksIFNlYXJjaFJlc3VsdCxcbiAgU2VhcmNoU2VydmljZSxcbiAgU29ydE9wdGlvbixcbiAgU3RvcmVkUXVlcmllc1NlcnZpY2UsIFN0b3JlZFF1ZXJ5LFxuICBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc1xufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge0FwcFNlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlYXJjaC9hcHAtc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtHcmlkRmlsdGVyfSBmcm9tICcuLi9ncmlkL2dyaWQtZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0xpc3RDb250YWluZXJDb21wb25lbnR9IGZyb20gJy4uL2xpc3QtY29udGFpbmVyJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZXN1bHQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnZW9HcmlkJykgZ3JpZDogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZW9MaXN0JykgbGlzdDogTGlzdENvbnRhaW5lckNvbXBvbmVudDtcblxuICAvLyBmb3IgbGlzdHMgdGhhdCBleGNlZWQgdGhlIGNvbmZpZ3VyZWQgbWF4IHJlc3VsdCBzaXplLCBkYXRhIHdpbGwgYmUgZmV0Y2hlZCBpbiBjaHVua3NcbiAgcHJpdmF0ZSBWSVJUVUFMX0xJU1RfQ0hVTktfU0laRTogbnVtYmVyO1xuICByZXNvbHZlUmVmZXJlbmNlc0NzdjogYm9vbGVhbjtcbiAgcmVzb2x2ZVJlZmVyZW5jZXNDc3ZUaHJlc2hvbGQ6IG51bWJlcjtcbiAgc3RhdGljIENPTFVNTlNfREVGSU5JVElPTiA9ICdlby5mcmFtZXdvcmsuY2FjaGUuY29sdW1ucy5kZWZpbml0aW9uJztcblxuICBwcml2YXRlIF9yZXN1bHQ6IFNlYXJjaFJlc3VsdDtcbiAgcHJpdmF0ZSBfcXVlcnk6IFNlYXJjaFF1ZXJ5O1xuICBwcml2YXRlIF9jYWNoZWRDb2x1bW5zOiBhbnlbXTtcbiAgcHJpdmF0ZSBkZWZhdWx0UXVlcnk6IFNlYXJjaFF1ZXJ5O1xuICBjc3ZMb2FkaW5nU3Bpbm5lclZpc2liaWxpdHkgPSBmYWxzZTtcblxuICB2aXNpYmxlQ29uZmlnID0gZmFsc2U7XG4gIHNob3dMb2FkZXIgPSBmYWxzZTtcbiAgcHVibGljIHRvdGFsSGl0czogYW55O1xuICBwdWJsaWMgbGltaXRlZExpc3QgPSBmYWxzZTtcbiAgcHVibGljIHJlc3VsdEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyA9IHt9O1xuICBzZXR0aW5ncyA9IHt9O1xuICBxdWVyeVN1YnRpdGxlID0gJyc7XG4gIHNhdmVkU2VhcmNoQ2xpY2tlZCA9IGZhbHNlO1xuICBzdG9yZWRRdWVyeTogU3RvcmVkUXVlcnk7XG4gIHNob3dXYXJuRXhwb3J0Q1NWVGhyZXNob2xkRGlhbG9nID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgY29uZmlnVHlwZTogT2JqZWN0VHlwZSB8IG51bGw7XG4gIEBJbnB1dCgpIGNvbmZpZ0NvbnRleHQ6IE9iamVjdFR5cGUgfCBudWxsO1xuXG4gIC8vIElmIHNldCB0byB0cnVlIHF1ZXJ5IHdpbGwgYmUgdHJlYXRlZCBsaWtlIGEgdGVtcG9yYXJ5IHNlYXJjaC5cbiAgLy8gVGhhdCBtZWFucywgZ2xvYmFsIHNlYXJjaCB3aWxsIG5vdCBiZSBhZmZlY3RlZCAoZ2xvYmFsIHF1ZXJ5IHdpbGwgYmUgcmVzZXQgYWZ0ZXIgZXhlY3V0aW9uKVxuICBASW5wdXQoKSBjbGVhckFmdGVyRXhlY3V0ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIHNlbGVjdEZpcnN0ID0gdHJ1ZTtcbiAgQElucHV0KCkgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBASW5wdXQoKSBoYXNJY29uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlZmVyZW5jZSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Gb2N1c0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkRvdWJsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Db250ZXh0TWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQ291bnRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25SZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25SZXN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblF1ZXJ5SW52YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKVxuICBzZXQgcXVlcnkocXVlcnk6IGFueSkge1xuICAgIHRoaXMuc3RvcmVkUXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgdGhpcy5pbnZhbGlkUXVlcnkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHF1ZXJ5Lm5hbWUpIHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRTdG9yZWRRdWVyaWVzJCgpXG4gICAgICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgICAgLnN1YnNjcmliZShxdWVyaWVzU3Vic2NyaXB0aW9uID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcnkgPSBxdWVyaWVzU3Vic2NyaXB0aW9uLnF1ZXJpZXMuZmlsdGVyKHEgPT4gcS5uYW1lID09PSBxdWVyeS5uYW1lKVswXTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkocXVlcnkpO1xuICAgICAgaWYgKHRoaXMuX3F1ZXJ5KSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFF1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKCkpO1xuICAgICAgICB0aGlzLmFwcFNlYXJjaFNlcnZpY2Uuc2V0UXVlcnkodGhpcy5kZWZhdWx0UXVlcnkpO1xuICAgICAgICB0aGlzLmFwcFNlYXJjaFNlcnZpY2UuYWdncmVnYXRlKCk7XG5cbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldFJlc3VsdEZpZWxkRGVmaW5pdGlvbkNvbmZpZyh0aGlzLnF1ZXJ5KTtcbiAgICAgICAgdGhpcy5jb25maWdUeXBlID0gY29uZmlnLnR5cGU7XG4gICAgICAgIHRoaXMuY29uZmlnQ29udGV4dCA9IGNvbmZpZy5jb250ZXh0VHlwZTtcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgICAgLmdldENodW5rZWRSZXN1bHQodGhpcy5fcXVlcnksIDAsIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUpXG4gICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNsZWFyUXVlcnkodGhpcy5jbGVhckFmdGVyRXhlY3V0ZSk7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJRdWVyeSh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XG4gICAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLnF1ZXJ5U3VidGl0bGUgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnF1ZXJ5LnR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5xdWVyeVN1YnRpdGxlICs9IHRoaXMucXVlcnkudHlwZXNbaV0ubGFiZWw7XG4gICAgICAgICAgaWYgKGkgIT09IHRoaXMucXVlcnkudHlwZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeVN1YnRpdGxlICs9ICcsICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBxdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcXVlcnk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2VhcmNoUmVzdWx0KHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XG4gICAgLy8gdG9kbzogYmFja2VuZCBzaG91bGQgcmVzb2x2ZSBxdWVyeS5maWVsZHMgYW5kIHJldHVybiBjb25maWcgaW4gc3BlY2lmaWMgb3JkZXJcbiAgICBjb25zdCBfZmllbGRzID0gcmVzdWx0LmZpZWxkcyA/IG9ic2VydmFibGVPZihyZXN1bHQuZmllbGRzKSA6XG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZmV0Y2hSZXN1bHRGaWVsZERlZmluaXRpb24odGhpcy5jb25maWdUeXBlLCB0aGlzLmNvbmZpZ0NvbnRleHQsICdBTEwnKTtcbiAgICBfZmllbGRzLnN1YnNjcmliZShmaWVsZHMgPT4ge1xuICAgICAgaWYgKGZpZWxkcyAmJiB0aGlzLnF1ZXJ5ICYmIHRoaXMucXVlcnkuZmllbGRzICYmIHRoaXMucXVlcnkuZmllbGRzLmxlbmd0aCkge1xuICAgICAgICBmaWVsZHMuZWxlbWVudHMgPSB0aGlzLnF1ZXJ5LmZpZWxkcy5tYXAoZiA9PiBmaWVsZHMuZWxlbWVudHMuZmluZChlID0+IGYgPT09IGUuaGl0bmFtZSkpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmZpZWxkcyA9IGZpZWxkcyB8fCBuZXcgRmllbGREZWZpbml0aW9uKCk7XG4gICAgICB0aGlzLl9yZXN1bHQgPSByZXN1bHQ7XG4gICAgICB0aGlzLnByb2Nlc3NSZXN1bHRzKHRoaXMuX3Jlc3VsdCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgc2VhcmNoUmVzdWx0KCkge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQ29uZmlnLCBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwdWJsaWMgZ3JpZEFwaTogR3JpZFNlcnZpY2UsIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXBwU2VhcmNoU2VydmljZTogQXBwU2VhcmNoU2VydmljZSwgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5saW1pdCcpIGFzIG51bWJlcjtcbiAgICB0aGlzLnJlc29sdmVSZWZlcmVuY2VzQ3N2ID0gdGhpcy5jb25maWcuZ2V0UmF3KCdzZWFyY2gucmVzb2x2ZVJlZmVyZW5jZXNDU1YnKSBhcyBib29sZWFuIHx8IGZhbHNlO1xuICAgIHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3ZUaHJlc2hvbGQgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5yZXNvbHZlUmVmZXJlbmNlc0NTVlRocmVzaG9sZCcpIGFzIG51bWJlciB8fCAxMDAwMDtcbiAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OKSB8fCBbXTtcbiAgfVxuXG4gIGNsZWFyUXVlcnkoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICBpZiAoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5jbGVhclF1ZXJ5KCk7XG4gICAgfVxuICB9XG5cbiAgaW52YWxpZFF1ZXJ5KCkge1xuICAgIHRoaXMub25RdWVyeUludmFsaWQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZH1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVSb3cocmVzLmRhdGEuaWQsIHJlcy5kYXRhLmRhdGEpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUm93KGlkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIGNvbnN0IG1hdGNoUm93ID0gdGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5yb3dEYXRhLmZpbmQoKHIpID0+IHIuaWQgPT09IGlkKTtcbiAgICBpZiAobWF0Y2hSb3cpIHtcbiAgICAgIE9iamVjdC5rZXlzKG1hdGNoUm93KS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoayArICdfbWV0YScpKSB7XG4gICAgICAgICAgICAvLyBpZiBpdCBpcyBhbiBvcmcgZmllbGQsIGl0IHdpbGwgaGF2ZSBhIHRpdGxlIHRvIHNob3csIG90aGVyd2lzZSBpdCBpcyBhIGNvZGVzeXN0ZW0gYW5kIHdlIHNob3cgdGhlIGxhYmVsXG4gICAgICAgICAgICBtYXRjaFJvd1trXSA9IGRhdGFbayArICdfbWV0YSddLnRpdGxlID8gZGF0YVtrICsgJ19tZXRhJ10udGl0bGUgOiBkYXRhW2sgKyAnX21ldGEnXS5sYWJlbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWF0Y2hSb3dba10gPSBkYXRhW2tdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkYXRhLmhhc093blByb3BlcnR5KGsuc3BsaXQoJy4nKVsxXSkpIHtcbiAgICAgICAgICAvLyBzb21lIHRlY2huaWNhbCBuYW1lcyBoYXZlIHRoZSBvYmplY3QgdHlwZSBhcyBhIHByZWZpeCwgd2UgaGF2ZSB0byBnZXQgcmlkIG9mIGl0XG4gICAgICAgICAgY29uc3Qga1NwbGl0ID0gay5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtTcGxpdCArICdfbWV0YScpKSB7XG4gICAgICAgICAgICBtYXRjaFJvd1trXSA9IGRhdGFba1NwbGl0ICsgJ19tZXRhJ10udGl0bGUgPyBkYXRhW2tTcGxpdCArICdfbWV0YSddLnRpdGxlIDogZGF0YVtrU3BsaXQgKyAnX21ldGEnXS5sYWJlbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWF0Y2hSb3dba10gPSBkYXRhW2tTcGxpdF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG1hdGNoUm93LmlkID0gaWQ7XG4gICAgICBjb25zdCByb3dOb2RlID0gdGhpcy5ncmlkLmdyaWRPcHRpb25zLmFwaS5nZXRSb3dOb2RlKGlkKTtcbiAgICAgIHJvd05vZGUgJiYgcm93Tm9kZS5zZXREYXRhKG1hdGNoUm93KTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICBpZiAodGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZGVmYXVsdFF1ZXJ5O1xuICAgIH1cbiAgICB0aGlzLm9uUmVmcmVzaC5lbWl0KHRoaXMucXVlcnkpO1xuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55KSB7XG4gICAgbGV0IGNvbCA9IHRoaXMuX2NhY2hlZENvbHVtbnMuZmluZChjID0+IGMucW5hbWUgPT09IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29sLndpZHRoID0gY29sdW1uLmFjdHVhbFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jYWNoZWRDb2x1bW5zLnB1c2goe3FuYW1lOiBjb2x1bW4uY29sRGVmLnJlZkRhdGEucW5hbWUsIHdpZHRoOiBjb2x1bW4uYWN0dWFsV2lkdGh9KTtcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OLCB0aGlzLl9jYWNoZWRDb2x1bW5zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBncmlkIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtICRldmVudFxuICAgKi9cbiAgb25Db25maWdDaGFuZ2VkKHJlZnJlc2gpIHtcbiAgICBpZiAocmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIFNlYXJjaCByZXN1bHQgJiBnZW5lcmF0ZSBjb2x1bW4gZGVmaW5pdGlvbnNcbiAgICogQHBhcmFtIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzUmVzdWx0cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMudmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICAgIHRoaXMub25SZXN1bHQuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMudG90YWxIaXRzID0gcmVzdWx0LmNvdW50LnZhbHVlO1xuICAgIHRoaXMubGltaXRlZExpc3QgPSB0aGlzLnRvdGFsSGl0cyA+IHJlc3VsdC5oaXRzLmxlbmd0aDtcbiAgICBsZXQgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge2NvbnRleHQ6IHt9LCBvblNvcnRDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKSwgb25GaWx0ZXJDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKX07XG4gICAgY29uc3Qgc2VhcmNoTW9kZSA9IHJlc3VsdC5maWVsZHMubW9kZSA/IHJlc3VsdC5maWVsZHMubW9kZSA6IG51bGw7XG5cbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5ID8ge3RvdGFsOiB0aGlzLnRvdGFsSGl0cywgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcmVsYXRpb246IHJlc3VsdC5jb3VudC5yZWxhdGlvbn0gOiBudWxsO1xuICAgIGdyaWRPcHRpb25zLnJvd0RhdGEgPSByZXN1bHQuaGl0cztcblxuICAgIGNvbnN0IHtlbGVtZW50cywgc29ydG9yZGVyLCBncm91cG9yZGVyLCBwaW5uZWQsIGFsaWdubWVudHh9ID0gcmVzdWx0LmZpZWxkcztcblxuICAgIGdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWZzKGVsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZCwgYWxpZ25tZW50eCwgZmFsc2UsIHRoaXMuX2NhY2hlZENvbHVtbnMsIHNlYXJjaE1vZGUpO1xuXG4gICAgY29uc3QgcmVmcmVzaEdyaWQgPSB0aGlzLmhhc0dyaWRPcHRpb25zO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXN1bHRHcmlkT3B0aW9ucywgZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZE9wdGlvbnMpO1xuXG4gICAgaWYgKHJlZnJlc2hHcmlkKSB7XG4gICAgICAvLyByZWxvYWQgZ3JpZCBjb21wb25lbnRcbiAgICAgIHRoaXMucmVzdWx0R3JpZE9wdGlvbnMgPSB7fTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyksIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zdGZpeFNvcnQoaWQpIHtcbiAgICAvLyB0b2RvOiByZW1vdmUgd2hlbiBpdCdzIGZpeGVkIG9uIGJhY2tlbmRcbiAgICByZXR1cm4gaWQubWF0Y2goLyhec3lzb2JqZWN0XFwufF5zeXNkb2N1bWVudFxcLikoY3JlYXRvciR8bW9kaWZpZXIkKS8pID8gJ3RpdGxlJyA6ICcnO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBudW1iZXIgPSAxKSB7XG4gICAgaWYgKHRoaXMubGltaXRlZExpc3QgJiYgdGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5mZXRjaFJvd0RhdGEoe1xuICAgICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXG4gICAgICAgIHNvcnRNb2RlbDogdGhpcy5ncmlkLmFwaS5nZXRTb3J0TW9kZWwoKSxcbiAgICAgICAgZmlsdGVyTW9kZWw6IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSxcbiAgICAgICAgc3VjY2Vzc0NhbGxiYWNrOiAocm93cywgdG90YWwsIHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHt0b3RhbCwgcmVsYXRpb24sIHNpemU6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUsIHBhZ2V9O1xuICAgICAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0Um93RGF0YShyb3dzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGZvciBmZXRjaGluZyB0aGUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIHdpdGggYSB2aXJ0dWFsIHJvdyBtb2RlbC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIHJvdyBtb2RlbCBwYXJhbXMgKGluY2wuIHN0YXJ0Um93LCBlbmRSb3csIHNvcnRNb2RlbCBhbmQgZmlsdGVyTW9kZWwpXG4gICAqL1xuICBwcml2YXRlIGZldGNoUm93RGF0YShwYXJhbXM6IGFueSkge1xuXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcblxuICAgICAgdGhpcy51cGRhdGVRdWVyeShwYXJhbXMpO1xuXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgLmdldENodW5rZWRSZXN1bHQodGhpcy5xdWVyeSwgcGFyYW1zLnN0YXJ0Um93LCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbEhpdHMgPSB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCA9IHJlc3VsdC5jb3VudC52YWx1ZTtcbiAgICAgICAgICB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJlc3VsdC5oaXRzLCB0aGlzLnRvdGFsSGl0cywgcmVzdWx0LmNvdW50LnJlbGF0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVRdWVyeShwYXJhbXM6IGFueSkge1xuICAgIHRoaXMucXVlcnkuc29ydE9wdGlvbnMgPSAocGFyYW1zLnNvcnRNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpIHx8IFtdKVxuICAgICAgICAubWFwKG1vZGVsID0+IG5ldyBTb3J0T3B0aW9uKEdyaWRTZXJ2aWNlLnFuYW1lRm9ybWF0dGVyKG1vZGVsLmNvbElkICsgdGhpcy5wb3N0Zml4U29ydChtb2RlbC5jb2xJZCkpLCBtb2RlbC5zb3J0KSk7XG5cbiAgICB0aGlzLnF1ZXJ5LmZpbHRlcnMgPSB0aGlzLmRlZmF1bHRRdWVyeS5maWx0ZXJzXG4gICAgICAuY29uY2F0KChPYmplY3Qua2V5cyhwYXJhbXMuZmlsdGVyTW9kZWwgfHwgdGhpcy5ncmlkLmFwaS5nZXRGaWx0ZXJNb2RlbCgpKSB8fCBbXSlcbiAgICAgICAgLm1hcChrZXkgPT4gR3JpZEZpbHRlci5vcGVyYXRvcihHcmlkU2VydmljZS5xbmFtZUZvcm1hdHRlcihrZXkpLCAocGFyYW1zLmZpbHRlck1vZGVsIHx8IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSlba2V5XSkpKTtcblxuICAgIHRoaXMucXVlcnkuc2VhcmNoTW9kZSA9IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XG4gIH1cblxuICBleGVjdXRlU3VnZ2VzdFNlYXJjaCgpIHtcbiAgICAvLyB0b2RvOiBpbXBsZW1lbnRcbiAgfVxuXG4gIHByaXZhdGUgcmVzdWx0SGFzUmVmZXJlbmNlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0LmZpZWxkcy5lbGVtZW50cy5zb21lKGVsZW1lbnQgPT4gZWxlbWVudC50eXBlID09PSAnT1JHQU5JWkFUSU9OJyB8fCBlbGVtZW50LnR5cGUgPT09ICdSRUZFUkVOQ0UnKTtcbiAgfVxuXG4gIGV4cG9ydENTVihpZ25vcmVUaHJlc2hvbGQgPSBmYWxzZSkge1xuICAgIGlmICghaWdub3JlVGhyZXNob2xkICYmIHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3ZcbiAgICAgICYmICh0aGlzLmxpc3QuZ3JpZENvdW50LnRvdGFsQ291bnQgPiB0aGlzLnJlc29sdmVSZWZlcmVuY2VzQ3N2VGhyZXNob2xkIHx8IHRoaXMubGlzdC5ncmlkQ291bnQucmVsYXRpb24gPT09ICdndGUnKVxuICAgICAgJiYgdGhpcy5yZXN1bHRIYXNSZWZlcmVuY2VzKCkpIHtcbiAgICAgIHRoaXMuc2hvd1dhcm5FeHBvcnRDU1ZUaHJlc2hvbGREaWFsb2cgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVRdWVyeSh7fSk7XG4gICAgdGhpcy5zaG93V2FybkV4cG9ydENTVlRocmVzaG9sZERpYWxvZyA9IGZhbHNlO1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5kb3dubG9hZENzdkZyb21RdWVyeSh0aGlzLnF1ZXJ5LmdldFF1ZXJ5SnNvbih0aGlzLnJlc29sdmVSZWZlcmVuY2VzQ3N2KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwYXJzZURtc1BhcmFtcyhkYXRhKSB7XG4gICAgcmV0dXJuIHtpZDogZGF0YSAmJiBkYXRhLmlkID8gZGF0YS5pZCA6IG51bGwsIHR5cGU6IGRhdGEgJiYgZGF0YS50eXBlID8gZGF0YS50eXBlIDogbnVsbH07XG4gIH1cblxuICBnZXQgaGFzR3JpZE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMucmVzdWx0R3JpZE9wdGlvbnMuZGF0YXNvdXJjZSB8fCB0aGlzLnJlc3VsdEdyaWRPcHRpb25zLnJvd0RhdGEpO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUxvYWRlZCgpIHtcbiAgICB0aGlzLnNhdmVkU2VhcmNoQ2xpY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7b3V0bGV0czoge21vZGFsOiAnc2VhcmNoJ319XSk7XG4gIH1cblxuICBvblN0b3JlZFF1ZXJ5RXhlY3V0ZShldnQpIHtcbiAgICB0aGlzLnNhdmVkU2VhcmNoQ2xpY2tlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHVyaVBhcmFtID0gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGV2dC5xdWVyeUpzb24pKTtcbiAgICBjb25zdCB1cmlQYXJhbVF1ZXJ5OiBOYXZpZ2F0aW9uRXh0cmFzID0ge3F1ZXJ5UGFyYW1zOiB7J3F1ZXJ5JzogdXJpUGFyYW19fTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9yZXN1bHQnXSwgdXJpUGFyYW1RdWVyeSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiICpuZ0lmPVwic2hvd0xvYWRlclwiPlxuICA8ZW8tbG9hZGluZy1zcGlubmVyIGNsYXNzPVwicmVzdWx0LWxpc3RfX2xvYWRlclwiIFtzaXplXT1cIidtZWRpdW0nXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG48L2Rpdj5cbjxlby1jb2x1bW4tY29uZmlndXJhdG9yICpuZ0lmPVwidmlzaWJsZUNvbmZpZ1wiIFt2aXNpYmxlXT1cInZpc2libGVDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ1R5cGVdPVwiY29uZmlnVHlwZVwiIFtjb25maWdDb250ZXh0XT1cImNvbmZpZ0NvbnRleHRcIiBbZW9HcmlkXT1cImdyaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ29uZmlnQ2hhbmdlZCk9XCJ2aXNpYmxlQ29uZmlnID0gZmFsc2U7IG9uQ29uZmlnQ2hhbmdlZCgkZXZlbnQpXCIgPjwvZW8tY29sdW1uLWNvbmZpZ3VyYXRvcj5cblxuPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2FwcGx5U2VsZWN0aW9uXT1cInt9XCIgW2xvYWRpbmddPVwiZmFsc2VcIiBbcGFyc2VEbXNQYXJhbXNdPVwicGFyc2VEbXNQYXJhbXNcIj5cbiAgPGRpdiBjbGFzcz1cImVvLWhlYWRlclwiPlxuICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiAqbmdJZj1cImhhc0ljb25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zZWFyY2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIj57e3RpdGxlIHx8ICgnZW8uc2VhcmNoLnRpdGxlJyB8IHRyYW5zbGF0ZSl9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1zdWJ0aXRsZVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFzdG9yZWRRdWVyeTsgZWxzZSBzdG9yZWRRdWVyeVRleHRcIiBjbGFzcz1cImVvLWhlYWRlci1zdWJ0aXRsZV9fbGFiZWxcIiBbdGl0bGVdPVwicXVlcnlTdWJ0aXRsZVwiPnt7cXVlcnlTdWJ0aXRsZX19PC9zcGFuPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3N0b3JlZFF1ZXJ5VGV4dD5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RvcmVkUXVlcnkucGFyYW1ldGVyLmxlbmd0aCA9PT0gMDsgZWxzZSBzdG9yZWRRdWVyeURpYWxvZ1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlby1oZWFkZXItc3VidGl0bGVfX2xhYmVsXCIgW3RpdGxlXT1cIignZW8uc2VhcmNoLmFzaWRlLnN1bW1hcnkuc3RvcmVkcXVlcnknIHwgdHJhbnNsYXRlKSArICc6ICcgKyBzdG9yZWRRdWVyeS5uYW1lXCI+XG4gICAgICAgICAgICAgIHt7J2VvLnNlYXJjaC5hc2lkZS5zdW1tYXJ5LnN0b3JlZHF1ZXJ5JyB8IHRyYW5zbGF0ZX19OiB7e3N0b3JlZFF1ZXJ5Lm5hbWV9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3N0b3JlZFF1ZXJ5RGlhbG9nPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZWQtcXVlcnlcIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICB7eydlby5zZWFyY2guYXNpZGUuc3VtbWFyeS5zdG9yZWRxdWVyeScgfCB0cmFuc2xhdGV9fTpcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzcVwiIChjbGljayk9XCJzYXZlZFNlYXJjaENsaWNrZWQgPSB0cnVlXCIgKGtleXVwLmVudGVyKT1cInNhdmVkU2VhcmNoQ2xpY2tlZCA9IHRydWVcIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc3RvcmVkX3F1ZXJ5LnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7c3RvcmVkUXVlcnkubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicXVlcnk/LmNvbnRleHRGb2xkZXJUeXBlcy5sZW5ndGggPT09IDFcIiB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJ7dHlwZTogcXVlcnkuY29udGV4dEZvbGRlclR5cGVzWzBdLmxhYmVsfVwiPmVvLnNlYXJjaC5vYmplY3R0eXBlLmZvcm0uY29udGV4dDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXJtXCIgKm5nSWY9XCIhc3RvcmVkUXVlcnkgJiYgcXVlcnk/LnRlcm0gJiYgIWNsZWFyQWZ0ZXJFeGVjdXRlXCIgW3RpdGxlXT1cIignZW8uc2VhcmNoLnJlc3VsdC50ZXJtJyB8IHRyYW5zbGF0ZSkgKyAnOiAnICsgcXVlcnkudGVybVwiPnt7J2VvLnNlYXJjaC5yZXN1bHQudGVybScgfCB0cmFuc2xhdGV9fSA6IFwie3txdWVyeS50ZXJtfX1cIjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN1Z2dlc3RcIiAqbmdJZj1cInNlYXJjaFJlc3VsdD8uc3VnZ2VzdHNcIj57eydlby5zZWFyY2guc3VnZ2VzdCcgfCB0cmFuc2xhdGV9fTxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiZXhlY3V0ZVN1Z2dlc3RTZWFyY2goKVwiPnt7c2VhcmNoUmVzdWx0LnN1Z2dlc3RzWzBdfX08L2E+ID9cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHJlZnJlc2gtYnV0dG9uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCIgKGNsaWNrKT1cInJlZnJlc2hHcmlkKClcIlxuICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gZXhwb3J0LWJ1dHRvblwiIFtoaWRkZW5dPVwiIXF1ZXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY29udGVudC1kb3dubG9hZC5zdmcnXCIgW2ljb25UaXRsZV09XCIoJ2VvLnJlc3VsdGxpc3QuZXhwb3J0LmNzdicgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJleHBvcnRDU1YoKVwiICpuZ0lmPVwiIWNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eVwiPjwvZW8taWNvbj5cbiAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ3NtYWxsJ1wiICpuZ0lmPVwiY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5XCIgY2xhc3M9XCJzcGlubmVyXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBjb25maWctYnV0dG9uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2V0dGluZ3Muc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5jb2x1bW4uY29uZmlnLnRpdGxlJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInZpc2libGVDb25maWcgPSAhdmlzaWJsZUNvbmZpZ1wiPjwvZW8taWNvbj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIGFjdGlvbnMtYnV0dG9uXCIgKGNsaWNrKT1cImVvTGlzdC5zaG93QWN0aW9ucygpXCIgW2ljb25UaXRsZV09XCIoJ2VvLm9iamVjdC5hY3Rpb25zLnRpdGxlJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfbW9yZS5zdmcnXCIgKm5nSWY9XCIhcmVmZXJlbmNlXCI+PC9lby1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImVvLWJvZHlcIj5cbiAgICA8ZW8tZ3JpZCAjZW9HcmlkIFtncmlkT3B0aW9uc109XCJyZXN1bHRHcmlkT3B0aW9uc1wiICpuZ0lmPVwiaGFzR3JpZE9wdGlvbnM7IGVsc2UgZXJyb3JcIlxuICAgICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIiAoZW9HcmlkQ29sdW1uUmVzaXplZCk9XCJvbkNvbHVtblJlc2l6ZWQoJGV2ZW50KVwiIFtzZWxlY3RGaXJzdF09XCJzZWxlY3RGaXJzdFwiXG4gICAgICAgICAgICAgKGVvR3JpZENvdW50Q2hhbmdlZCk9XCJlb0xpc3Qub25Db3VudENoYW5nZWQoJGV2ZW50KTtvbkNvdW50Q2hhbmdlZC5lbWl0KCRldmVudCk7XCJcbiAgICAgICAgICAgICAoZW9HcmlkQ29udGV4dE1lbnVDbGljayk9XCJlb0xpc3Qub25Db250ZXh0TWVudSgkZXZlbnQpO29uQ29udGV4dE1lbnUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAoZW9HcmlkU2VsZWN0aW9uQ2hhbmdlZCk9XCJlb0xpc3Qub25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudCk7b25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKGVvR3JpZERvdWJsZUNsaWNrKT1cImVvTGlzdC5vbkRvdWJsZUNsaWNrKCRldmVudCk7b25Eb3VibGVDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgIChlb0dyaWRGb2N1c0NoYW5nZWQpPVwiZW9MaXN0Lm9uRm9jdXNDaGFuZ2VkKCRldmVudCk7b25Gb2N1c0NoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICAgICAgPGVvLXRvdGFsLWNvdW50IFtncmlkQ291bnRdPVwiZW9MaXN0LmdyaWRDb3VudFwiIFtvdXRzaWRlR3JpZF09XCJmYWxzZVwiIGNsYXNzPVwiZmxleC1yb3dcIj48L2VvLXRvdGFsLWNvdW50PlxuICAgICAgICA8IS0tPGVvLXF1aWNrLWZpbHRlciBbZW9HcmlkXT1cImVvR3JpZFwiPjwvZW8tcXVpY2stZmlsdGVyPi0tPlxuICAgICAgICA8ZW8tcGFnaW5hdGlvbiBbc2V0dGluZ3NdPVwic2V0dGluZ3NcIiAocGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlZCgkZXZlbnQpXCI+PC9lby1wYWdpbmF0aW9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZSBbZW1wdHlTdGF0ZV09XCJ7dGV4dDogZW1wdHlNZXNzYWdlIHx8ICdlby5zZWFyY2gucmVzdWx0LmV4cGlyZWQnfVwiPjwvZW8tZXJyb3ItbWVzc2FnZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tZ3JpZD5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjZXJyb3I+XG5cbiAgICA8ZW8tZXJyb3ItbWVzc2FnZSAqbmdJZj1cImhhc0dyaWRPcHRpb25zXCIgW2VtcHR5U3RhdGVdPVwie3RleHQ6J2VvLnNlYXJjaC5tb2RlLmV4cGVydC5yZXN1bHQuZW1wdHknfVwiPlxuICAgIDwvZW8tZXJyb3ItbWVzc2FnZT5cblxuICA8L25nLXRlbXBsYXRlPlxuPC9lby1saXN0LWNvbnRhaW5lcj5cblxuPGVvLWRpYWxvZyBbdmlzaWJsZV09XCJzYXZlZFNlYXJjaENsaWNrZWRcIiAoaGlkZSk9XCJzYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZVwiIFt0aXRsZV09XCInZW8uc2VhcmNoLmFzaWRlLnN1bW1hcnkuc3RvcmVkcXVlcnknIHwgdHJhbnNsYXRlXCI+XG4gIDxlby1zdG9yZWQtcXVlcnkgW3F1ZXJ5XT1cInN0b3JlZFF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAob25RdWVyeUxvYWRlZCk9XCJvblN0b3JlZFF1ZXJ5TG9hZGVkKClcIlxuICAgICAgICAgICAgICAgICAgIChvblF1ZXJ5RXhlY3V0ZSk9XCJvblN0b3JlZFF1ZXJ5RXhlY3V0ZSgkZXZlbnQpXCI+PC9lby1zdG9yZWQtcXVlcnk+XG48L2VvLWRpYWxvZz5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiJ2VvLnJlc3VsdGxpc3QuZXhwb3J0LmNzdi50aHJlc2hvbGQuZGlhbG9nLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgIFsodmlzaWJsZSldPVwic2hvd1dhcm5FeHBvcnRDU1ZUaHJlc2hvbGREaWFsb2dcIiBbZm9jdXNPblNob3ddPVwiZmFsc2VcIiBbbWluV2lkdGhdPVwiNDAwXCIgW3N0eWxlQ2xhc3NdPVwiJ3RocmVzaG9sZF9fZGlhbG9nJ1wiPlxuXG4gIDxkaXY+e3snZW8ucmVzdWx0bGlzdC5leHBvcnQuY3N2LnRocmVzaG9sZC5kaWFsb2cubWVzc2FnZScgfCB0cmFuc2xhdGV9fTwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJzaG93V2FybkV4cG9ydENTVlRocmVzaG9sZERpYWxvZyA9IGZhbHNlXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5yZXN1bHRsaXN0LmV4cG9ydC5jc3YudGhyZXNob2xkLmRpYWxvZy5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjZGtGb2N1c0luaXRpYWwgKGNsaWNrKT1cImV4cG9ydENTVih0cnVlKVwiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnJlc3VsdGxpc3QuZXhwb3J0LmNzdi50aHJlc2hvbGQuZGlhbG9nLmV4cG9ydDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZW8tZGlhbG9nPlxuXG4iXX0=
|