@eo-sdk/client 8.0.1 → 8.3.0-rc.1

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.
Files changed (37) hide show
  1. package/README.md +2 -2
  2. package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts +10 -2
  3. package/app/eo-framework/object-details/object-history/object-history.component.d.ts +3 -2
  4. package/app/eo-framework-core/api/plugins.service.d.ts +3 -2
  5. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +26 -14
  6. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  7. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  8. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  9. package/bundles/eo-sdk-client.umd.js +86 -27
  10. package/bundles/eo-sdk-client.umd.js.map +1 -1
  11. package/bundles/eo-sdk-client.umd.min.js +1 -1
  12. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  13. package/eo-sdk-client.metadata.json +1 -1
  14. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  15. package/esm2015/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.js +2 -2
  16. package/esm2015/app/eo-framework/form-elements/datetime/datetime.component.js +2 -2
  17. package/esm2015/app/eo-framework/form-elements/id-reference/id-reference.component.js +52 -7
  18. package/esm2015/app/eo-framework/inbox-details/inbox-details.component.js +5 -6
  19. package/esm2015/app/eo-framework/object-details/object-history/object-history.component.js +14 -7
  20. package/esm2015/app/eo-framework/object-form/object-form/object-form.component.js +2 -2
  21. package/esm2015/app/eo-framework/process/details/process-details.component.js +6 -9
  22. package/esm2015/app/eo-framework/process/history/process-history.component.js +2 -2
  23. package/esm2015/app/eo-framework-core/api/plugins.service.js +10 -3
  24. package/esm2015/projects/eo-sdk/core/lib/config/translate-json-loader.js +10 -1
  25. package/esm2015/projects/eo-sdk/core/lib/model/dms-object-history.model.js +1 -1
  26. package/esm2015/projects/eo-sdk/core/lib/model/eo-user.model.js +2 -2
  27. package/esm2015/projects/eo-sdk/core/lib/service/bpm/bpm.service.js +1 -1
  28. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +5 -3
  29. package/esm2015/projects/eo-sdk/core/lib/service/search/search.service.js +4 -4
  30. package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +7 -6
  31. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +23 -11
  32. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  33. package/fesm2015/eo-sdk-client.js +82 -28
  34. package/fesm2015/eo-sdk-client.js.map +1 -1
  35. package/package.json +2 -2
  36. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  37. package/projects/eo-sdk/core/package.json +1 -1
@@ -6,10 +6,10 @@ export class AboutStateComponent {
6
6
  this.http = http;
7
7
  this.userService = userService;
8
8
  this.config = config;
9
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/common", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/core", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/forms", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/router", "version": "11.2.0", "license": "MIT" }, { "name": "@eo-sdk/core", "version": "8.0.1", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "6.0.0-beta.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
9
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/common", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/core", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/forms", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/router", "version": "11.2.0", "license": "MIT" }, { "name": "@eo-sdk/core", "version": "8.3.0-rc.1", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "6.0.0-beta.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
10
10
  this.ctrl = {
11
11
  productName: 'yuuvis® RAD client',
12
- clientVersion: '8.0.1'
12
+ clientVersion: '8.3.0-rc.1'
13
13
  };
14
14
  this.licenses = {
15
15
  'MIT': {
@@ -78,4 +78,4 @@ AboutStateComponent.ctorParameters = () => [
78
78
  { type: UserService },
79
79
  { type: Config }
80
80
  ];
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBT2pELE1BQU0sT0FBTyxtQkFBbUI7SUFvRDlCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0IsRUFBVSxNQUFjO1FBQTFFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoRDlGLGtCQUFhLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywwQ0FBMEMsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx5QkFBeUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywrQkFBK0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsZUFBZSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLDJCQUEyQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLG1DQUFtQyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxlQUFlLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7UUFJcjlELFNBQUksR0FBRztZQUNMLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsYUFBYSxFQUFFLE9BQU87U0FDdkIsQ0FBQztRQUVGLGFBQVEsR0FBRztZQUNULEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsb0NBQW9DO2FBQzVDO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixLQUFLLEVBQUUsNENBQTRDO2FBQ3BEO1lBQ0Qsb0JBQW9CLEVBQUU7Z0JBQ3BCLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixLQUFLLEVBQUUsNkNBQTZDO2FBQ3JEO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE9BQU8sRUFBRSxTQUFTO2dCQUNsQixLQUFLLEVBQUUsb0RBQW9EO2FBQzVEO1lBQ0QsbUJBQW1CLEVBQUU7Z0JBQ25CLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxvQ0FBb0M7YUFDNUM7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsS0FBSyxFQUFFLGdDQUFnQzthQUN4QztZQUNELFlBQVksRUFBRTtnQkFDWixPQUFPLEVBQUUsWUFBWTthQUN0QjtZQUNELFNBQVMsRUFBRTtnQkFDVCxPQUFPLEVBQUUsMkRBQTJEO2dCQUNwRSxLQUFLLEVBQUUsc0VBQXNFO2FBQzlFO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxxQ0FBcUM7YUFDN0M7U0FDRixDQUFDO1FBSUEsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsQ0FBQztJQUM3RSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLElBQUksbUNBQU8sSUFBSSxLQUFFLElBQUksR0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVc7YUFDYixLQUFLO2FBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7WUE3RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLDRvU0FBMkM7O2FBRTVDOzs7WUFQTyxVQUFVO1lBQ1YsV0FBVztZQUFFLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1VzZXJTZXJ2aWNlLCBDb25maWd9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLWFib3V0LXN0YXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWJvdXQtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Fib3V0LXN0YXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFib3V0U3RhdGVDb21wb25lbnQge1xyXG5cclxuICBiYWNrZ3JvdW5kSW1hZ2U6IHN0cmluZztcclxuICBsaWNlbnNlU2hvdzogYm9vbGVhbjtcclxuICBfX2xpYnJhcmllc19fID0gW3tcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyXCIsXCJ2ZXJzaW9uXCI6XCIyMi4xLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY2xpZW50LXNpZGUtcm93LW1vZGVsXCIsXCJ2ZXJzaW9uXCI6XCIyMi4xLjFcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY29yZVwiLFwidmVyc2lvblwiOlwiMjIuMS4xXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFnLWdyaWQtY29tbXVuaXR5L2Nzdi1leHBvcnRcIixcInZlcnNpb25cIjpcIjIyLjEuMVwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIixcInZlcnNpb25cIjpcIjExLjIuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2Nka1wiLFwidmVyc2lvblwiOlwiMTEuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY29tbW9uXCIsXCJ2ZXJzaW9uXCI6XCIxMS4yLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9jb21waWxlclwiLFwidmVyc2lvblwiOlwiMTEuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY29yZVwiLFwidmVyc2lvblwiOlwiMTEuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvZm9ybXNcIixcInZlcnNpb25cIjpcIjExLjIuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIixcInZlcnNpb25cIjpcIjExLjIuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pY1wiLFwidmVyc2lvblwiOlwiMTEuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvcm91dGVyXCIsXCJ2ZXJzaW9uXCI6XCIxMS4yLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAZW8tc2RrL2NvcmVcIixcInZlcnNpb25cIjpcIjguMC4xXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQG5neC1wd2EvbG9jYWwtc3RvcmFnZVwiLFwidmVyc2lvblwiOlwiMTEuMS4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQG5neC10cmFuc2xhdGUvY29yZVwiLFwidmVyc2lvblwiOlwiMTMuMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQHR5cGVzL2xvZGFzaFwiLFwidmVyc2lvblwiOlwiNC4xNC44OFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcImNvcmUtanNcIixcInZlcnNpb25cIjpcIjIuNS43XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiZmlsZS1zYXZlclwiLFwidmVyc2lvblwiOlwiMi4wLjVcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJmb250LWF3ZXNvbWVcIixcInZlcnNpb25cIjpcIjQuNy4wXCIsXCJsaWNlbnNlXCI6XCIoT0ZMLTEuMSBBTkQgTUlUKVwifSx7XCJuYW1lXCI6XCJrZXlib2FyZGV2ZW50LWtleS1wb2x5ZmlsbFwiLFwidmVyc2lvblwiOlwiMS4xLjBcIixcImxpY2Vuc2VcIjpcIkNDMC0xLjBcIn0se1wibmFtZVwiOlwia2V5Y29kZS1qc1wiLFwidmVyc2lvblwiOlwiMC4wLjRcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJtb2JpbGUtZHJhZy1kcm9wXCIsXCJ2ZXJzaW9uXCI6XCIyLjIuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIm1vbWVudFwiLFwidmVyc2lvblwiOlwiMi4yMi4yXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwibmd4LXRvYXN0clwiLFwidmVyc2lvblwiOlwiMTMuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwicHJpbWVpY29uc1wiLFwidmVyc2lvblwiOlwiMS4wLjAtYmV0YS42XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwicHJpbWVuZ1wiLFwidmVyc2lvblwiOlwiNi4wLjAtYmV0YS4xXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwicmVmbGVjdC1tZXRhZGF0YVwiLFwidmVyc2lvblwiOlwiMC4xLjEwXCIsXCJsaWNlbnNlXCI6XCJBcGFjaGUtMi4wXCJ9LHtcIm5hbWVcIjpcInJ4anNcIixcInZlcnNpb25cIjpcIjYuNi4zXCIsXCJsaWNlbnNlXCI6XCJBcGFjaGUtMi4wXCJ9LHtcIm5hbWVcIjpcInRzbGliXCIsXCJ2ZXJzaW9uXCI6XCIyLjEuMFwiLFwibGljZW5zZVwiOlwiMEJTRFwifSx7XCJuYW1lXCI6XCJ6b25lLmpzXCIsXCJ2ZXJzaW9uXCI6XCIwLjEwLjNcIixcImxpY2Vuc2VcIjpcIk1JVFwifV07XHJcbiAgdXNlckxhbmc6IHN0cmluZztcclxuICBkb2N1OiB7IGxpbms6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9O1xyXG5cclxuICBjdHJsID0ge1xyXG4gICAgcHJvZHVjdE5hbWU6ICd5dXV2aXPCriBSQUQgY2xpZW50JyxcclxuICAgIGNsaWVudFZlcnNpb246ICc4LjAuMSdcclxuICB9O1xyXG5cclxuICBsaWNlbnNlcyA9IHtcclxuICAgICdNSVQnOiB7XHJcbiAgICAgICdsYWJlbCc6ICdNSVQnLFxyXG4gICAgICAndXJsJzogJ2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQnXHJcbiAgICB9LFxyXG4gICAgJ0FwYWNoZS0yLjAnOiB7XHJcbiAgICAgICdsYWJlbCc6ICdBcGFjaGUgMi4wJyxcclxuICAgICAgJ3VybCc6ICdodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAnXHJcbiAgICB9LFxyXG4gICAgJ0JTRC0zLUNsYXVzZS1DbGVhcic6IHtcclxuICAgICAgJ2xhYmVsJzogJ0JTRCAzLUNsYXVzZScsXHJcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZSdcclxuICAgIH0sXHJcbiAgICAnQ0MwLTEuMCc6IHtcclxuICAgICAgJ2xhYmVsJzogJ0NDMCAxLjAnLFxyXG4gICAgICAndXJsJzogJ2h0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvJ1xyXG4gICAgfSxcclxuICAgICcoT0ZMLTEuMSBBTkQgTUlUKSc6IHtcclxuICAgICAgJ2xhYmVsJzogJ01JVCcsXHJcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCdcclxuICAgIH0sXHJcbiAgICAnU0lMT0ZMLTEuMSc6IHtcclxuICAgICAgJ2xhYmVsJzogJ1NJTCBPcGVuIEZvbnQgTGljZW5zZSAxLjEnLFxyXG4gICAgICAndXJsJzogJ2h0dHA6Ly9zY3JpcHRzLnNpbC5vcmcvT0ZMX3dlYidcclxuICAgIH0sXHJcbiAgICAnQ29tbWVyY2lhbCc6IHtcclxuICAgICAgJ2xhYmVsJzogJ0NvbW1lcmNpYWwnXHJcbiAgICB9LFxyXG4gICAgJ2FnLWdyaWQnOiB7XHJcbiAgICAgICdsYWJlbCc6ICdhZy1HcmlkLUVudGVycHJpc2UgU29mdHdhcmUgTGljZW5jZSBBZ3JlZW1lbnQgVmVyc2lvbiAxLjcnLFxyXG4gICAgICAndXJsJzogJ2h0dHBzOi8vZ2l0aHViLmNvbS9jZW9sdGVyL2FnLWdyaWQtZW50ZXJwcmlzZS9ibG9iL21hc3Rlci9MSUNFTlNFLm1kJ1xyXG4gICAgfSxcclxuICAgICcwQlNEJzoge1xyXG4gICAgICAnbGFiZWwnOiAnWmVyby1DbGF1c2UgQlNEJyxcclxuICAgICAgJ3VybCc6ICdodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvMEJTRCdcclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSwgcHJpdmF0ZSBjb25maWc6IENvbmZpZykge1xyXG4gICAgdGhpcy5nZXRVc2VyTGFuZygpO1xyXG4gICAgdGhpcy5nZXREb2N1bWVudGF0aW9uKCk7XHJcbiAgICB0aGlzLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHt0aGlzLmNvbmZpZy5nZXREYXNoYm9hcmRCYWNrZ3JvdW5kSW1hZ2UoKX0pYDtcclxuICB9XHJcblxyXG4gIGdldERvY3VtZW50YXRpb24oKSB7XHJcbiAgICBjb25zdCBkb2N1ID0gdGhpcy5jb25maWcuZ2V0UmF3KCdhYm91dC5kb2N1Jyk7XHJcbiAgICBjb25zdCBsaW5rID0gZG9jdS5saW5rLnJlcGxhY2UoJyMjI3VzZXJMYW5nIyMjJywgdGhpcy51c2VyTGFuZy5zdWJzdHJpbmcoMCwgMikpO1xyXG4gICAgdGhpcy5kb2N1ID0gey4uLmRvY3UsIGxpbmt9O1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckxhbmcoKSB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXHJcbiAgICAgIC51c2VyJFxyXG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy51c2VyTGFuZyA9IGRhdGEudXNlclNldHRpbmdzLmNsaWVudGxvY2FsZSk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW0pOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxufVxyXG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBT2pELE1BQU0sT0FBTyxtQkFBbUI7SUFvRDlCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0IsRUFBVSxNQUFjO1FBQTFFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoRDlGLGtCQUFhLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywwQ0FBMEMsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx5QkFBeUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywrQkFBK0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsZUFBZSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLDJCQUEyQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLG1DQUFtQyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxlQUFlLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7UUFJMTlELFNBQUksR0FBRztZQUNMLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsYUFBYSxFQUFFLFlBQVk7U0FDNUIsQ0FBQztRQUVGLGFBQVEsR0FBRztZQUNULEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsb0NBQW9DO2FBQzVDO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixLQUFLLEVBQUUsNENBQTRDO2FBQ3BEO1lBQ0Qsb0JBQW9CLEVBQUU7Z0JBQ3BCLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixLQUFLLEVBQUUsNkNBQTZDO2FBQ3JEO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE9BQU8sRUFBRSxTQUFTO2dCQUNsQixLQUFLLEVBQUUsb0RBQW9EO2FBQzVEO1lBQ0QsbUJBQW1CLEVBQUU7Z0JBQ25CLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxvQ0FBb0M7YUFDNUM7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsS0FBSyxFQUFFLGdDQUFnQzthQUN4QztZQUNELFlBQVksRUFBRTtnQkFDWixPQUFPLEVBQUUsWUFBWTthQUN0QjtZQUNELFNBQVMsRUFBRTtnQkFDVCxPQUFPLEVBQUUsMkRBQTJEO2dCQUNwRSxLQUFLLEVBQUUsc0VBQXNFO2FBQzlFO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxxQ0FBcUM7YUFDN0M7U0FDRixDQUFDO1FBSUEsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsQ0FBQztJQUM3RSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLElBQUksbUNBQU8sSUFBSSxLQUFFLElBQUksR0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVc7YUFDYixLQUFLO2FBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7WUE3RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLDRvU0FBMkM7O2FBRTVDOzs7WUFQTyxVQUFVO1lBQ1YsV0FBVztZQUFFLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1VzZXJTZXJ2aWNlLCBDb25maWd9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLWFib3V0LXN0YXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWJvdXQtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Fib3V0LXN0YXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFib3V0U3RhdGVDb21wb25lbnQge1xyXG5cclxuICBiYWNrZ3JvdW5kSW1hZ2U6IHN0cmluZztcclxuICBsaWNlbnNlU2hvdzogYm9vbGVhbjtcclxuICBfX2xpYnJhcmllc19fID0gW3tcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyXCIsXCJ2ZXJzaW9uXCI6XCIyMi4xLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY2xpZW50LXNpZGUtcm93LW1vZGVsXCIsXCJ2ZXJzaW9uXCI6XCIyMi4xLjFcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY29yZVwiLFwidmVyc2lvblwiOlwiMjIuMS4xXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFnLWdyaWQtY29tbXVuaXR5L2Nzdi1leHBvcnRcIixcInZlcnNpb25cIjpcIjIyLjEuMVwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIixcInZlcnNpb25cIjpcIjExLjIuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2Nka1wiLFwidmVyc2lvblwiOlwiMTEuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY29tbW9uXCIsXCJ2ZXJzaW9uXCI6XCIxMS4yLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9jb21waWxlclwiLFwidmVyc2lvblwiOlwiMTEuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY29yZVwiLFwidmVyc2lvblwiOlwiMTEuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvZm9ybXNcIixcInZlcnNpb25cIjpcIjExLjIuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIixcInZlcnNpb25cIjpcIjExLjIuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pY1wiLFwidmVyc2lvblwiOlwiMTEuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvcm91dGVyXCIsXCJ2ZXJzaW9uXCI6XCIxMS4yLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAZW8tc2RrL2NvcmVcIixcInZlcnNpb25cIjpcIjguMy4wLXJjLjFcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAbmd4LXB3YS9sb2NhbC1zdG9yYWdlXCIsXCJ2ZXJzaW9uXCI6XCIxMS4xLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIxMy4wLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAdHlwZXMvbG9kYXNoXCIsXCJ2ZXJzaW9uXCI6XCI0LjE0Ljg4XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiY29yZS1qc1wiLFwidmVyc2lvblwiOlwiMi41LjdcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJmaWxlLXNhdmVyXCIsXCJ2ZXJzaW9uXCI6XCIyLjAuNVwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcImZvbnQtYXdlc29tZVwiLFwidmVyc2lvblwiOlwiNC43LjBcIixcImxpY2Vuc2VcIjpcIihPRkwtMS4xIEFORCBNSVQpXCJ9LHtcIm5hbWVcIjpcImtleWJvYXJkZXZlbnQta2V5LXBvbHlmaWxsXCIsXCJ2ZXJzaW9uXCI6XCIxLjEuMFwiLFwibGljZW5zZVwiOlwiQ0MwLTEuMFwifSx7XCJuYW1lXCI6XCJrZXljb2RlLWpzXCIsXCJ2ZXJzaW9uXCI6XCIwLjAuNFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIm1vYmlsZS1kcmFnLWRyb3BcIixcInZlcnNpb25cIjpcIjIuMi4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwibW9tZW50XCIsXCJ2ZXJzaW9uXCI6XCIyLjIyLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJuZ3gtdG9hc3RyXCIsXCJ2ZXJzaW9uXCI6XCIxMy4yLjBcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJwcmltZWljb25zXCIsXCJ2ZXJzaW9uXCI6XCIxLjAuMC1iZXRhLjZcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJwcmltZW5nXCIsXCJ2ZXJzaW9uXCI6XCI2LjAuMC1iZXRhLjFcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJyZWZsZWN0LW1ldGFkYXRhXCIsXCJ2ZXJzaW9uXCI6XCIwLjEuMTBcIixcImxpY2Vuc2VcIjpcIkFwYWNoZS0yLjBcIn0se1wibmFtZVwiOlwicnhqc1wiLFwidmVyc2lvblwiOlwiNi42LjNcIixcImxpY2Vuc2VcIjpcIkFwYWNoZS0yLjBcIn0se1wibmFtZVwiOlwidHNsaWJcIixcInZlcnNpb25cIjpcIjIuMS4wXCIsXCJsaWNlbnNlXCI6XCIwQlNEXCJ9LHtcIm5hbWVcIjpcInpvbmUuanNcIixcInZlcnNpb25cIjpcIjAuMTAuM1wiLFwibGljZW5zZVwiOlwiTUlUXCJ9XTtcclxuICB1c2VyTGFuZzogc3RyaW5nO1xyXG4gIGRvY3U6IHsgbGluazogc3RyaW5nLCBsYWJlbDogc3RyaW5nIH07XHJcblxyXG4gIGN0cmwgPSB7XHJcbiAgICBwcm9kdWN0TmFtZTogJ3l1dXZpc8KuIFJBRCBjbGllbnQnLFxyXG4gICAgY2xpZW50VmVyc2lvbjogJzguMy4wLXJjLjEnXHJcbiAgfTtcclxuXHJcbiAgbGljZW5zZXMgPSB7XHJcbiAgICAnTUlUJzoge1xyXG4gICAgICAnbGFiZWwnOiAnTUlUJyxcclxuICAgICAgJ3VybCc6ICdodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUJ1xyXG4gICAgfSxcclxuICAgICdBcGFjaGUtMi4wJzoge1xyXG4gICAgICAnbGFiZWwnOiAnQXBhY2hlIDIuMCcsXHJcbiAgICAgICd1cmwnOiAnaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wJ1xyXG4gICAgfSxcclxuICAgICdCU0QtMy1DbGF1c2UtQ2xlYXInOiB7XHJcbiAgICAgICdsYWJlbCc6ICdCU0QgMy1DbGF1c2UnLFxyXG4gICAgICAndXJsJzogJ2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UnXHJcbiAgICB9LFxyXG4gICAgJ0NDMC0xLjAnOiB7XHJcbiAgICAgICdsYWJlbCc6ICdDQzAgMS4wJyxcclxuICAgICAgJ3VybCc6ICdodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLydcclxuICAgIH0sXHJcbiAgICAnKE9GTC0xLjEgQU5EIE1JVCknOiB7XHJcbiAgICAgICdsYWJlbCc6ICdNSVQnLFxyXG4gICAgICAndXJsJzogJ2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQnXHJcbiAgICB9LFxyXG4gICAgJ1NJTE9GTC0xLjEnOiB7XHJcbiAgICAgICdsYWJlbCc6ICdTSUwgT3BlbiBGb250IExpY2Vuc2UgMS4xJyxcclxuICAgICAgJ3VybCc6ICdodHRwOi8vc2NyaXB0cy5zaWwub3JnL09GTF93ZWInXHJcbiAgICB9LFxyXG4gICAgJ0NvbW1lcmNpYWwnOiB7XHJcbiAgICAgICdsYWJlbCc6ICdDb21tZXJjaWFsJ1xyXG4gICAgfSxcclxuICAgICdhZy1ncmlkJzoge1xyXG4gICAgICAnbGFiZWwnOiAnYWctR3JpZC1FbnRlcnByaXNlIFNvZnR3YXJlIExpY2VuY2UgQWdyZWVtZW50IFZlcnNpb24gMS43JyxcclxuICAgICAgJ3VybCc6ICdodHRwczovL2dpdGh1Yi5jb20vY2VvbHRlci9hZy1ncmlkLWVudGVycHJpc2UvYmxvYi9tYXN0ZXIvTElDRU5TRS5tZCdcclxuICAgIH0sXHJcbiAgICAnMEJTRCc6IHtcclxuICAgICAgJ2xhYmVsJzogJ1plcm8tQ2xhdXNlIEJTRCcsXHJcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzLzBCU0QnXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcclxuICAgIHRoaXMuZ2V0VXNlckxhbmcoKTtcclxuICAgIHRoaXMuZ2V0RG9jdW1lbnRhdGlvbigpO1xyXG4gICAgdGhpcy5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKCR7dGhpcy5jb25maWcuZ2V0RGFzaGJvYXJkQmFja2dyb3VuZEltYWdlKCl9KWA7XHJcbiAgfVxyXG5cclxuICBnZXREb2N1bWVudGF0aW9uKCkge1xyXG4gICAgY29uc3QgZG9jdSA9IHRoaXMuY29uZmlnLmdldFJhdygnYWJvdXQuZG9jdScpO1xyXG4gICAgY29uc3QgbGluayA9IGRvY3UubGluay5yZXBsYWNlKCcjIyN1c2VyTGFuZyMjIycsIHRoaXMudXNlckxhbmcuc3Vic3RyaW5nKDAsIDIpKTtcclxuICAgIHRoaXMuZG9jdSA9IHsuLi5kb2N1LCBsaW5rfTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJMYW5nKCkge1xyXG4gICAgdGhpcy51c2VyU2VydmljZVxyXG4gICAgICAudXNlciRcclxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHRoaXMudXNlckxhbmcgPSBkYXRhLnVzZXJTZXR0aW5ncy5jbGllbnRsb2NhbGUpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUZuKGluZGV4LCBpdGVtKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcbn1cclxuIl19
@@ -23,7 +23,7 @@ export class DatepickerComponent {
23
23
  // emitted when a new value is set by the picker
24
24
  this.onDateChanged = new EventEmitter();
25
25
  this.onCanceled = new EventEmitter();
26
- const locale = translate.currentLang.replace('zh', 'zh-cn'); // BUG: moment does not support 'zh'
26
+ const locale = (translate.currentLang || translate.defaultLang).replace('zh', 'zh-cn'); // BUG: moment does not support 'zh'
27
27
  moment.locale(locale);
28
28
  let startDay = moment().startOf('week').day();
29
29
  this.monthsShort = moment.monthsShort();
@@ -223,4 +223,4 @@ DatepickerComponent.propDecorators = {
223
223
  date: [{ type: Input, args: ['date',] }],
224
224
  onKeydownHandler: [{ type: HostListener, args: ['document:keydown', ['$event'],] }]
225
225
  };
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2RhdGV0aW1lL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHL0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBU3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUErRzlCLFlBQVksU0FBMkIsRUFBVSxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTNHckYsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBK0JaLDZCQUE2QjtRQUU3Qiw4QkFBOEI7UUFDOUIsU0FBSSxHQUFHO1lBQ0wsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztTQUNMLENBQUM7UUFFRiw2QkFBNkI7UUFFN0IsY0FBUyxHQUFHO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7UUFLRixnREFBZ0Q7UUFDdEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBd0R4QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLE9B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LElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0Y7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQS9PRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLG00SEFBMEM7Z0JBRTFDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzthQUMvQjs7O1lBYk8sZ0JBQWdCO1lBRWhCLGlCQUFpQjs7OzRCQW1FdEIsTUFBTTt5QkFDTixNQUFNO3VCQUVOLEtBQUs7dUJBQ0wsS0FBSzs4QkFFTCxLQUFLO21CQVNMLEtBQUssU0FBQyxNQUFNOytCQVdaLFlBQVksU0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgJ21vbWVudC9taW4vbG9jYWxlcyc7XHJcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7RGF0ZXBpY2tlclNlcnZpY2V9IGZyb20gJy4vc2VydmljZS9kYXRlcGlja2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RpbWUsIFdlZWtzfSBmcm9tICcuL2RhdGVwaWNrZXIuaW50ZXJmYWNlJztcclxuXHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0RhdGVwaWNrZXJTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIG1vbnRoc1Nob3J0OiBzdHJpbmdbXTtcclxuICB3ZWVrZGF5c1Nob3J0OiBzdHJpbmdbXTtcclxuICBtYXhZZWFyID0gOTk5OTk7XHJcbiAgbWluWWVhciA9IDA7XHJcblxyXG4gIC8vIGN1cnJlbnQgbW9udGggc2hvd24gaW4gdGhlIHBpY2tlclxyXG4gIHNldCBtb250aChtb250aDogTW9tZW50KSB7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLm1vbnRoID0gbW9udGg7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IG1vbnRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UubW9udGg7XHJcbiAgfVxyXG5cclxuICBzZXQgd2Vla3Mod2Vla3M6IFdlZWtzW10pIHtcclxuICAgIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2Uud2Vla3MgPSB3ZWVrcztcclxuICB9O1xyXG5cclxuICBnZXQgd2Vla3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyU2VydmljZS53ZWVrcztcclxuICB9XHJcblxyXG4vLyBuZ01vZGVsIGZvciB0aGUgeWVhciBpbnB1dFxyXG4gIHNldCB5ZWFyKHllYXI6IG51bWJlcikge1xyXG4gICAgdGhpcy5kYXRlcGlja2VyU2VydmljZS55ZWFyID0geWVhcjtcclxuICB9O1xyXG5cclxuICBnZXQgeWVhcigpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLnllYXI7XHJcbiAgfVxyXG5cclxuICAvLyBzZWxlY3RlZCBkYXRlXHJcbiAgc2VsZWN0ZWQ6IE1vbWVudDtcclxuXHJcbiAgLy8gbmdNb2RlbCBmb3IgdGhlIHllYXIgaW5wdXRcclxuXHJcbiAgLy8gbmdNb2RlbCBmb3IgdGhlIHRpbWUgaW5wdXRzXHJcbiAgdGltZSA9IHtcclxuICAgIGg6IDAsXHJcbiAgICBtOiAwXHJcbiAgfTtcclxuXHJcbiAgLy8gd2Vla3Mgb2YgdGhlIGN1cnJlbnQgbW9udGhcclxuXHJcbiAgbW9udGhJbmZvID0ge1xyXG4gICAgbW9udGg6IG51bGwsXHJcbiAgICB5ZWFyOiBudWxsXHJcbiAgfTtcclxuXHJcbiAgLy8gSVNPIHN0cmluZyBvZiB0aGUgZGF0ZSBzZXQgYnkgdGhlIGNvbXBvbmVudHMgZGF0ZSBwcm9wZXJ0eSAodXNlZCBmb3IgY29tcGFyaW5nIGVxdWFsaXR5KVxyXG4gIHByaXZhdGUgX2RhdGU6IHN0cmluZztcclxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuO1xyXG4gIC8vIGVtaXR0ZWQgd2hlbiBhIG5ldyB2YWx1ZSBpcyBzZXQgYnkgdGhlIHBpY2tlclxyXG4gIEBPdXRwdXQoKSBvbkRhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkNhbmNlbGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSB3aXRoVGltZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSB3aXRoQW1QbTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgb255bEZ1dHVyZURhdGVzKGVuYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuZnV0dXJlT25seSA9IGVuYWJsZWQgPyBlbmFibGVkIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXQgZnV0dXJlT25seSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmZ1dHVyZU9ubHk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2RhdGUnKVxyXG4gIHNldCBkYXRlKGRhdGU6IGFueSkge1xyXG4gICAgbGV0IG1Jc28gPSBtb21lbnQoZGF0ZSkudG9JU09TdHJpbmcoKTtcclxuICAgIGlmICh0aGlzLl9kYXRlICE9PSBtSXNvKSB7XHJcbiAgICAgIHRoaXMuX2RhdGUgPSBtSXNvO1xyXG4gICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kZXJEYXRlKGRhdGUsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgbGV0IG5ld0RhdGU7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcclxuICAgICAgdGhpcy5zZWxlY3RWYWx1ZSgpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudC5rZXlDb2RlID09PSAyNykge1xyXG4gICAgICB0aGlzLmNhbmNlbCgpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudC5rZXlDb2RlID09PSAzNykge1xyXG4gICAgICBuZXdEYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWQpLmFkZCgtMSwgJ2QnKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzgpIHtcclxuICAgICAgbmV3RGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkKS5hZGQoLTcsICdkJyk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM5KSB7XHJcbiAgICAgIG5ld0RhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZCkuYWRkKDEsICdkJyk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IDQwKSB7XHJcbiAgICAgIG5ld0RhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZCkuYWRkKDcsICdkJyk7XHJcbiAgICB9XHJcbiAgICBpZiAobmV3RGF0ZSAmJiAhdGhpcy5kYXRlcGlja2VyU2VydmljZS5pc0Rpc2FibGVkRGF0ZShuZXdEYXRlKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdChuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXlDb2RlID09PSAyNykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSAhPT0gMjcgJiYgZXZlbnQua2V5Q29kZSAhPT0gMTMpIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgZGF0ZXBpY2tlclNlcnZpY2U6IERhdGVwaWNrZXJTZXJ2aWNlKSB7XHJcbiAgICBjb25zdCBsb2NhbGUgPSB0cmFuc2xhdGUuY3VycmVudExhbmcucmVwbGFjZSgnemgnLCAnemgtY24nKTsgLy8gQlVHOiBtb21lbnQgZG9lcyBub3Qgc3VwcG9ydCAnemgnXHJcbiAgICBtb21lbnQubG9jYWxlKGxvY2FsZSk7XHJcbiAgICBsZXQgc3RhcnREYXkgPSBtb21lbnQoKS5zdGFydE9mKCd3ZWVrJykuZGF5KCk7XHJcbiAgICB0aGlzLm1vbnRoc1Nob3J0ID0gbW9tZW50Lm1vbnRoc1Nob3J0KCk7XHJcbiAgICB0aGlzLndlZWtkYXlzU2hvcnQgPSBtb21lbnQud2Vla2RheXNTaG9ydCgpLnNsaWNlKHN0YXJ0RGF5KS5jb25jYXQobW9tZW50LndlZWtkYXlzU2hvcnQoKS5zbGljZSgwLCBzdGFydERheSkpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VmFsdWUoKSB7XHJcbiAgICB0aGlzLm9uRGF0ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgIGRhdGU6IHRoaXMuc2VsZWN0ZWQudG9EYXRlKClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5vbkNhbmNlbGVkLmVtaXQoe30pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0KGRhdGUpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBkYXRlO1xyXG4gICAgaWYgKHRoaXMud2l0aFRpbWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5ob3VyKHRoaXMudGltZS5oKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5taW51dGUodGhpcy50aW1lLm0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQubW9udGgoKSAhPT0gdGhpcy5tb250aC5tb250aCgpKSB7XHJcbiAgICAgIHRoaXMuc2V0TW9udGgodGhpcy5zZWxlY3RlZC5tb250aCgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkLnllYXIoKSAhPT0gdGhpcy55ZWFyKSB7XHJcbiAgICAgIHRoaXMuc2V0WWVhcih0aGlzLnNlbGVjdGVkLnllYXIoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb2N1c1NlbGVjdGlvbigpIHtcclxuICAgIHRoaXMubW9udGgubW9udGgodGhpcy5zZWxlY3RlZC5tb250aCgpKTtcclxuICAgIHRoaXMubW9udGgueWVhcih0aGlzLnNlbGVjdGVkLnllYXIoKSk7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcclxuICAgIHRoaXMuY3JlYXRlSW5mbygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBwaWNrZXJzIHNlbGVjdGVkIGRhdGVcclxuICAgKlxyXG4gICAqIEBwYXJhbSBEYXRlIHwgc3RyaW5nIGRhdGVcclxuICAgKiBAcGFyYW0gYm9vbGVhbiBzZWxlY3QgLSBpZiBzZXQgdG8gdHJ1ZSB0aGUgZ2l2ZW4gZGF5IHdpbGwgYmUgc2V0IHNlbGVjdGVkXHJcbiAgICovXHJcbiAgc2V0Q2FsZW5kZXJEYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcsIHNlbGVjdD86IGJvb2xlYW4pIHtcclxuXHJcbiAgICBsZXQgbSA9IG1vbWVudChkYXRlKTtcclxuXHJcbiAgICBpZiAobS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5tb250aCA9IG07XHJcbiAgICAgIC8vIGxldCBzdGFydCA9IG1vbWVudDtcclxuICAgICAgLy8gc3RhcnQuZGF0ZSgxKTtcclxuICAgICAgLy8gdGhpcy5yZW1vdmVUaW1lKHN0YXJ0LmRheSgwKSk7XHJcbiAgICAgIGlmIChzZWxlY3QpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbW9tZW50KGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLndpdGhUaW1lKSB7XHJcbiAgICAgICAgdGhpcy50aW1lID0ge1xyXG4gICAgICAgICAgaDogbS5ob3VyKCksXHJcbiAgICAgICAgICBtOiBtLm1pbnV0ZSgpXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcclxuICAgICAgdGhpcy5jcmVhdGVJbmZvKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5jcmVtZW50KHllYXI6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZXRZZWFyKHllYXIgKyAxKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWNyZW1lbnQoeWVhcjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNldFllYXIoeWVhciAtIDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFllYXIoeWVhcjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnllYXIgPSB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLnNldFllYXIoeWVhciwgdGhpcy5taW5ZZWFyLCB0aGlzLm1heFllYXIpO1xyXG4gICAgdGhpcy5tb250aC55ZWFyKHRoaXMueWVhcik7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcclxuICAgIHRoaXMuY3JlYXRlSW5mbygpO1xyXG4gICAgdGhpcy5zZWxlY3RlZC55ZWFyKHRoaXMueWVhcik7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHRpbWVUb1N0cmluZyh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICgnMCcgKyBNYXRoLmFicyh0aW1lKSkuc2xpY2UoLTIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRpbWUodGltZTogVGltZSkge1xyXG4gICAgdGhpcy50aW1lID0gdGhpcy5kYXRlcGlja2VyU2VydmljZS5zZXRUaW1lKHRpbWUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZC5ob3VyKHRoaXMudGltZS5oKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQubWludXRlKHRoaXMudGltZS5tKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0TW9udGgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5tb250aC5tb250aChpbmRleCk7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcclxuICAgIHRoaXMuY3JlYXRlSW5mbygpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBpc1NlbGVjdGVkRGF5KGRheTogTW9tZW50KSB7XHJcbiAgICByZXR1cm4gZGF5LmlzU2FtZSh0aGlzLnNlbGVjdGVkLCAnZGF5Jyk7XHJcbiAgfVxyXG5cclxuICBpblJhbmdlKHgsIG1pbiA9IDAsIG1heCA9IDExKSB7XHJcbiAgICByZXR1cm4gKCh4IC0gbWluKSAqICh4IC0gbWF4KSA8PSAwKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUluZm8oKSB7XHJcbiAgICB0aGlzLm1vbnRoSW5mbyA9IHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuY3JlYXRlSW5mbygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuX2RhdGUpIHtcclxuICAgICAgdGhpcy5fZGF0ZSA9IHRoaXMud2l0aFRpbWUgPyBtb21lbnQoKS50b0lTT1N0cmluZygpIDogbW9tZW50KCkuc3RhcnRPZignZGF5JykudG9JU09TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2FsZW5kZXJEYXRlKHRoaXMuX2RhdGUsIHRydWUpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XHJcbiAgICByZXR1cm4gaW5kZXg7XHJcbiAgfVxyXG59XHJcbiJdfQ==
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2RhdGV0aW1lL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHL0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBU3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUErRzlCLFlBQVksU0FBMkIsRUFBVSxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTNHckYsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBK0JaLDZCQUE2QjtRQUU3Qiw4QkFBOEI7UUFDOUIsU0FBSSxHQUFHO1lBQ0wsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztTQUNMLENBQUM7UUFFRiw2QkFBNkI7UUFFN0IsY0FBUyxHQUFHO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7UUFLRixnREFBZ0Q7UUFDdEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBd0R4QyxNQUFNLE1BQU0sR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLElB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LENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0Y7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQS9PRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLG00SEFBMEM7Z0JBRTFDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzthQUMvQjs7O1lBYk8sZ0JBQWdCO1lBRWhCLGlCQUFpQjs7OzRCQW1FdEIsTUFBTTt5QkFDTixNQUFNO3VCQUVOLEtBQUs7dUJBQ0wsS0FBSzs4QkFFTCxLQUFLO21CQVNMLEtBQUssU0FBQyxNQUFNOytCQVdaLFlBQVksU0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgJ21vbWVudC9taW4vbG9jYWxlcyc7XHJcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7RGF0ZXBpY2tlclNlcnZpY2V9IGZyb20gJy4vc2VydmljZS9kYXRlcGlja2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RpbWUsIFdlZWtzfSBmcm9tICcuL2RhdGVwaWNrZXIuaW50ZXJmYWNlJztcclxuXHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0RhdGVwaWNrZXJTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIG1vbnRoc1Nob3J0OiBzdHJpbmdbXTtcclxuICB3ZWVrZGF5c1Nob3J0OiBzdHJpbmdbXTtcclxuICBtYXhZZWFyID0gOTk5OTk7XHJcbiAgbWluWWVhciA9IDA7XHJcblxyXG4gIC8vIGN1cnJlbnQgbW9udGggc2hvd24gaW4gdGhlIHBpY2tlclxyXG4gIHNldCBtb250aChtb250aDogTW9tZW50KSB7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLm1vbnRoID0gbW9udGg7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IG1vbnRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UubW9udGg7XHJcbiAgfVxyXG5cclxuICBzZXQgd2Vla3Mod2Vla3M6IFdlZWtzW10pIHtcclxuICAgIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2Uud2Vla3MgPSB3ZWVrcztcclxuICB9O1xyXG5cclxuICBnZXQgd2Vla3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyU2VydmljZS53ZWVrcztcclxuICB9XHJcblxyXG4vLyBuZ01vZGVsIGZvciB0aGUgeWVhciBpbnB1dFxyXG4gIHNldCB5ZWFyKHllYXI6IG51bWJlcikge1xyXG4gICAgdGhpcy5kYXRlcGlja2VyU2VydmljZS55ZWFyID0geWVhcjtcclxuICB9O1xyXG5cclxuICBnZXQgeWVhcigpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLnllYXI7XHJcbiAgfVxyXG5cclxuICAvLyBzZWxlY3RlZCBkYXRlXHJcbiAgc2VsZWN0ZWQ6IE1vbWVudDtcclxuXHJcbiAgLy8gbmdNb2RlbCBmb3IgdGhlIHllYXIgaW5wdXRcclxuXHJcbiAgLy8gbmdNb2RlbCBmb3IgdGhlIHRpbWUgaW5wdXRzXHJcbiAgdGltZSA9IHtcclxuICAgIGg6IDAsXHJcbiAgICBtOiAwXHJcbiAgfTtcclxuXHJcbiAgLy8gd2Vla3Mgb2YgdGhlIGN1cnJlbnQgbW9udGhcclxuXHJcbiAgbW9udGhJbmZvID0ge1xyXG4gICAgbW9udGg6IG51bGwsXHJcbiAgICB5ZWFyOiBudWxsXHJcbiAgfTtcclxuXHJcbiAgLy8gSVNPIHN0cmluZyBvZiB0aGUgZGF0ZSBzZXQgYnkgdGhlIGNvbXBvbmVudHMgZGF0ZSBwcm9wZXJ0eSAodXNlZCBmb3IgY29tcGFyaW5nIGVxdWFsaXR5KVxyXG4gIHByaXZhdGUgX2RhdGU6IHN0cmluZztcclxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuO1xyXG4gIC8vIGVtaXR0ZWQgd2hlbiBhIG5ldyB2YWx1ZSBpcyBzZXQgYnkgdGhlIHBpY2tlclxyXG4gIEBPdXRwdXQoKSBvbkRhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkNhbmNlbGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSB3aXRoVGltZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSB3aXRoQW1QbTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgb255bEZ1dHVyZURhdGVzKGVuYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuZnV0dXJlT25seSA9IGVuYWJsZWQgPyBlbmFibGVkIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXQgZnV0dXJlT25seSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmZ1dHVyZU9ubHk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2RhdGUnKVxyXG4gIHNldCBkYXRlKGRhdGU6IGFueSkge1xyXG4gICAgbGV0IG1Jc28gPSBtb21lbnQoZGF0ZSkudG9JU09TdHJpbmcoKTtcclxuICAgIGlmICh0aGlzLl9kYXRlICE9PSBtSXNvKSB7XHJcbiAgICAgIHRoaXMuX2RhdGUgPSBtSXNvO1xyXG4gICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kZXJEYXRlKGRhdGUsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgbGV0IG5ld0RhdGU7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcclxuICAgICAgdGhpcy5zZWxlY3RWYWx1ZSgpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudC5rZXlDb2RlID09PSAyNykge1xyXG4gICAgICB0aGlzLmNhbmNlbCgpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudC5rZXlDb2RlID09PSAzNykge1xyXG4gICAgICBuZXdEYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWQpLmFkZCgtMSwgJ2QnKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzgpIHtcclxuICAgICAgbmV3RGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkKS5hZGQoLTcsICdkJyk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM5KSB7XHJcbiAgICAgIG5ld0RhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZCkuYWRkKDEsICdkJyk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IDQwKSB7XHJcbiAgICAgIG5ld0RhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZCkuYWRkKDcsICdkJyk7XHJcbiAgICB9XHJcbiAgICBpZiAobmV3RGF0ZSAmJiAhdGhpcy5kYXRlcGlja2VyU2VydmljZS5pc0Rpc2FibGVkRGF0ZShuZXdEYXRlKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdChuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC5rZXlDb2RlID09PSAyNykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSAhPT0gMjcgJiYgZXZlbnQua2V5Q29kZSAhPT0gMTMpIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgZGF0ZXBpY2tlclNlcnZpY2U6IERhdGVwaWNrZXJTZXJ2aWNlKSB7XHJcbiAgICBjb25zdCBsb2NhbGUgPSAodHJhbnNsYXRlLmN1cnJlbnRMYW5nIHx8IHRyYW5zbGF0ZS5kZWZhdWx0TGFuZykucmVwbGFjZSgnemgnLCAnemgtY24nKTsgLy8gQlVHOiBtb21lbnQgZG9lcyBub3Qgc3VwcG9ydCAnemgnXHJcbiAgICBtb21lbnQubG9jYWxlKGxvY2FsZSk7XHJcbiAgICBsZXQgc3RhcnREYXkgPSBtb21lbnQoKS5zdGFydE9mKCd3ZWVrJykuZGF5KCk7XHJcbiAgICB0aGlzLm1vbnRoc1Nob3J0ID0gbW9tZW50Lm1vbnRoc1Nob3J0KCk7XHJcbiAgICB0aGlzLndlZWtkYXlzU2hvcnQgPSBtb21lbnQud2Vla2RheXNTaG9ydCgpLnNsaWNlKHN0YXJ0RGF5KS5jb25jYXQobW9tZW50LndlZWtkYXlzU2hvcnQoKS5zbGljZSgwLCBzdGFydERheSkpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VmFsdWUoKSB7XHJcbiAgICB0aGlzLm9uRGF0ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgIGRhdGU6IHRoaXMuc2VsZWN0ZWQudG9EYXRlKClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5vbkNhbmNlbGVkLmVtaXQoe30pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0KGRhdGUpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBkYXRlO1xyXG4gICAgaWYgKHRoaXMud2l0aFRpbWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5ob3VyKHRoaXMudGltZS5oKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5taW51dGUodGhpcy50aW1lLm0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQubW9udGgoKSAhPT0gdGhpcy5tb250aC5tb250aCgpKSB7XHJcbiAgICAgIHRoaXMuc2V0TW9udGgodGhpcy5zZWxlY3RlZC5tb250aCgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkLnllYXIoKSAhPT0gdGhpcy55ZWFyKSB7XHJcbiAgICAgIHRoaXMuc2V0WWVhcih0aGlzLnNlbGVjdGVkLnllYXIoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb2N1c1NlbGVjdGlvbigpIHtcclxuICAgIHRoaXMubW9udGgubW9udGgodGhpcy5zZWxlY3RlZC5tb250aCgpKTtcclxuICAgIHRoaXMubW9udGgueWVhcih0aGlzLnNlbGVjdGVkLnllYXIoKSk7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcclxuICAgIHRoaXMuY3JlYXRlSW5mbygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBwaWNrZXJzIHNlbGVjdGVkIGRhdGVcclxuICAgKlxyXG4gICAqIEBwYXJhbSBEYXRlIHwgc3RyaW5nIGRhdGVcclxuICAgKiBAcGFyYW0gYm9vbGVhbiBzZWxlY3QgLSBpZiBzZXQgdG8gdHJ1ZSB0aGUgZ2l2ZW4gZGF5IHdpbGwgYmUgc2V0IHNlbGVjdGVkXHJcbiAgICovXHJcbiAgc2V0Q2FsZW5kZXJEYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcsIHNlbGVjdD86IGJvb2xlYW4pIHtcclxuXHJcbiAgICBsZXQgbSA9IG1vbWVudChkYXRlKTtcclxuXHJcbiAgICBpZiAobS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5tb250aCA9IG07XHJcbiAgICAgIC8vIGxldCBzdGFydCA9IG1vbWVudDtcclxuICAgICAgLy8gc3RhcnQuZGF0ZSgxKTtcclxuICAgICAgLy8gdGhpcy5yZW1vdmVUaW1lKHN0YXJ0LmRheSgwKSk7XHJcbiAgICAgIGlmIChzZWxlY3QpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbW9tZW50KGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLndpdGhUaW1lKSB7XHJcbiAgICAgICAgdGhpcy50aW1lID0ge1xyXG4gICAgICAgICAgaDogbS5ob3VyKCksXHJcbiAgICAgICAgICBtOiBtLm1pbnV0ZSgpXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcclxuICAgICAgdGhpcy5jcmVhdGVJbmZvKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5jcmVtZW50KHllYXI6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZXRZZWFyKHllYXIgKyAxKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWNyZW1lbnQoeWVhcjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNldFllYXIoeWVhciAtIDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFllYXIoeWVhcjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnllYXIgPSB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLnNldFllYXIoeWVhciwgdGhpcy5taW5ZZWFyLCB0aGlzLm1heFllYXIpO1xyXG4gICAgdGhpcy5tb250aC55ZWFyKHRoaXMueWVhcik7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcclxuICAgIHRoaXMuY3JlYXRlSW5mbygpO1xyXG4gICAgdGhpcy5zZWxlY3RlZC55ZWFyKHRoaXMueWVhcik7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHRpbWVUb1N0cmluZyh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICgnMCcgKyBNYXRoLmFicyh0aW1lKSkuc2xpY2UoLTIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRpbWUodGltZTogVGltZSkge1xyXG4gICAgdGhpcy50aW1lID0gdGhpcy5kYXRlcGlja2VyU2VydmljZS5zZXRUaW1lKHRpbWUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZC5ob3VyKHRoaXMudGltZS5oKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQubWludXRlKHRoaXMudGltZS5tKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0TW9udGgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5tb250aC5tb250aChpbmRleCk7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcclxuICAgIHRoaXMuY3JlYXRlSW5mbygpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBpc1NlbGVjdGVkRGF5KGRheTogTW9tZW50KSB7XHJcbiAgICByZXR1cm4gZGF5LmlzU2FtZSh0aGlzLnNlbGVjdGVkLCAnZGF5Jyk7XHJcbiAgfVxyXG5cclxuICBpblJhbmdlKHgsIG1pbiA9IDAsIG1heCA9IDExKSB7XHJcbiAgICByZXR1cm4gKCh4IC0gbWluKSAqICh4IC0gbWF4KSA8PSAwKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUluZm8oKSB7XHJcbiAgICB0aGlzLm1vbnRoSW5mbyA9IHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuY3JlYXRlSW5mbygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuX2RhdGUpIHtcclxuICAgICAgdGhpcy5fZGF0ZSA9IHRoaXMud2l0aFRpbWUgPyBtb21lbnQoKS50b0lTT1N0cmluZygpIDogbW9tZW50KCkuc3RhcnRPZignZGF5JykudG9JU09TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2FsZW5kZXJEYXRlKHRoaXMuX2RhdGUsIHRydWUpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XHJcbiAgICByZXR1cm4gaW5kZXg7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -14,7 +14,7 @@ export class DatetimeComponent {
14
14
  this.propagateChange = (_) => {
15
15
  };
16
16
  this.datePipe = new LocaleDatePipe(translate);
17
- this.locale = this.translate.currentLang.replace('zh', 'zh-cn'); // BUG: moment does not support 'zh'
17
+ this.locale = (this.translate.currentLang || this.translate.defaultLang).replace('zh', 'zh-cn'); // BUG: moment does not support 'zh'
18
18
  moment.locale(this.locale);
19
19
  }
20
20
  set withTime(value) {
@@ -117,4 +117,4 @@ DatetimeComponent.propDecorators = {
117
117
  onylFutureDates: [{ type: Input }],
118
118
  withTime: [{ type: Input }]
119
119
  };
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9kYXRldGltZS9kYXRldGltZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFJTCxpQkFBaUIsRUFDakIsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBQ3ZCLE9BQU8sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQW1CakYsTUFBTSxPQUFPLGlCQUFpQjtJQW9DNUIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUE3Qi9DLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDWCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBS3ZCLGFBQVEsR0FBWSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBa0N4RCxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDN0IsQ0FBQyxDQUFBO1FBWEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7UUFDckcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJ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LFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDOzs7WUFoSUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2Qix5OUNBQXdDO2dCQUV4QyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDaEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7d0JBQ2hELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGOzthQUNGOzs7WUFuQk8sZ0JBQWdCOzs7dUJBcUNyQixLQUFLOzBCQUNMLEtBQUs7OEJBQ0wsS0FBSzt1QkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1Db250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIFZhbGlkYXRvcixcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICBOR19WQUxJREFUT1JTLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcclxuaW1wb3J0ICdtb21lbnQvbWluL2xvY2FsZXMnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIEVudmlyb25tZW50RW5haW99IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcbmltcG9ydCB7TG9jYWxlRGF0ZVBpcGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BpcGVzL2xvY2FsZS1kYXRlLnBpcGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1kYXRldGltZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXRpbWVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXRpbWVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRldGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XHJcblxyXG4gIHBhcmFtcztcclxuICB2YWx1ZTsgICAgICAgICAgICAvLyBtb2RlbCB2YWx1ZVxyXG4gIGlubmVyVmFsdWU7ICAgICAgIC8vIGlubmVyIG5nLW1vZGVsIHZhbHVlXHJcbiAgbG9jYWxlO1xyXG4gIGRhdGVQaXBlOiBMb2NhbGVEYXRlUGlwZTtcclxuICBzaG93UGlja2VyID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc1ZhbGlkID0gdHJ1ZTtcclxuICBtYXNrUGF0dGVybjogc3RyaW5nO1xyXG4gIGRhdGVQYXR0ZXJuOiBzdHJpbmc7XHJcbiAgbW9tZW50RGF0ZVBhdHRlcm46IHN0cmluZztcclxuICBzbG90Q2hhclBhdHRlcm46IHN0cmluZztcclxuICBpc1dlYkVudjogYm9vbGVhbiA9IEVudmlyb25tZW50RW5haW8uaXNXZWJFbnZpcm9ubWVudCgpO1xyXG4gIF93aXRoVGltZTogYm9vbGVhbjtcclxuICB3aXRoQW1QbTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcGlja2VyVGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBvbnlsRnV0dXJlRGF0ZXM6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHdpdGhUaW1lKHZhbHVlKSB7XHJcbiAgICB0aGlzLl93aXRoVGltZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5kYXRlUGF0dGVybiA9IHRoaXMuZGF0ZVBpcGUuZm9ybWF0KHRoaXMud2l0aFRpbWUgPyAnZW9TaG9ydCcgOiAnZW9TaG9ydERhdGUnKTtcclxuICAgIHRoaXMud2l0aEFtUG0gPSAhIX50aGlzLmRhdGVQYXR0ZXJuLmluZGV4T2YoJ2EnKTtcclxuICAgIC8vIEJVRzogbW9tZW50IGRvZXMgbm90IHN1cHBvcnQgJ2QnICYgJ3knIChJU084NjAxX0RBVEVfUkVHRVgpXHJcbiAgICB0aGlzLm1vbWVudERhdGVQYXR0ZXJuID0gdGhpcy5kYXRlUGF0dGVybi5yZXBsYWNlKC95L2csICdZJykucmVwbGFjZSgvZC9nLCAnRCcpLnJlcGxhY2UoL2FhL2csICdBJyk7XHJcbiAgICB0aGlzLm1hc2tQYXR0ZXJuID0gdGhpcy5kYXRlUGF0dGVybi5yZXBsYWNlKC9bbU1kRHlZaEhdL2csICc5Jyk7XHJcbiAgICB0aGlzLnNsb3RDaGFyUGF0dGVybiA9IHRoaXMuZGF0ZVBhdHRlcm4ucmVwbGFjZSgvW21NZER5WWhIXS9nLCAnXycpLnJlcGxhY2UoL2FhL2csICdfXycpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdpdGhUaW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dpdGhUaW1lO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZGF0ZVBpcGUgPSBuZXcgTG9jYWxlRGF0ZVBpcGUodHJhbnNsYXRlKTtcclxuICAgIHRoaXMubG9jYWxlID0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcucmVwbGFjZSgnemgnLCAnemgtY24nKTsgLy8gQlVHOiBtb21lbnQgZG9lcyBub3Qgc3VwcG9ydCAnemgnXHJcbiAgICBtb21lbnQubG9jYWxlKHRoaXMubG9jYWxlKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUodmFsdWU6IERhdGUpIHtcclxuICAgIHJldHVybiAhdmFsdWUgPyBudWxsIDpcclxuICAgIHRoaXMud2l0aFRpbWUgPyB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoJzowMC4wMDAnLCAnJykgOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ3l5eXktTU0tZGQnKTtcclxuICB9XHJcblxyXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gbW9tZW50KHZhbHVlLCB0aGlzLm1vbWVudERhdGVQYXR0ZXJuKS5zZWNvbmRzKDApLm1pbGxpc2Vjb25kKDApLnRvRGF0ZSgpIDogbnVsbDtcclxuICAgIHRoaXMuc2V0SW5uZXJWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWVGcm9tTWFzaygpIHtcclxuICAgIGxldCBtID0gbW9tZW50KHRoaXMuaW5uZXJWYWx1ZSwgdGhpcy5tb21lbnREYXRlUGF0dGVybik7XHJcbiAgICB0aGlzLmlzVmFsaWQgPSBtLmlzVmFsaWQoKTtcclxuICAgIGlmICh0aGlzLmlzVmFsaWQpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG0udG9EYXRlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlRnJvbVBpY2tlcihldmVudCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50LmRhdGUgPyBtb21lbnQoZXZlbnQuZGF0ZSwgdGhpcy5tb21lbnREYXRlUGF0dGVybikuc2Vjb25kcygwKS5taWxsaXNlY29uZCgwKS50b0RhdGUoKSA6IG51bGw7XHJcbiAgICB0aGlzLnNldElubmVyVmFsdWUoKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5zaG93UGlja2VyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvbk1hc2tWYWx1ZUNoYW5nZShldmVudCkgeyBcclxuICAgIGlmIChldmVudCA9PT0gdGhpcy5zbG90Q2hhclBhdHRlcm4gfHwgZXZlbnQubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SW5uZXJWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIGxldCBtID0gbW9tZW50KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLmlzVmFsaWQgPSBtLmlzVmFsaWQoKTtcclxuICAgICAgaWYgKHRoaXMuaXNWYWxpZCkge1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IG0uZm9ybWF0KHRoaXMubW9tZW50RGF0ZVBhdHRlcm4pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcmV0dXJucyBudWxsIHdoZW4gdmFsaWQgZWxzZSB0aGUgdmFsaWRhdGlvbiBvYmplY3RcclxuICBwdWJsaWMgdmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpIHtcclxuICAgIHJldHVybiAodGhpcy5pc1ZhbGlkKSA/IG51bGwgOiB7XHJcbiAgICAgIGRhdGVjb250cm9sOiB7XHJcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMud2l0aFRpbWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLndpdGhUaW1lID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9kYXRldGltZS9kYXRldGltZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFJTCxpQkFBaUIsRUFDakIsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBQ3ZCLE9BQU8sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQW1CakYsTUFBTSxPQUFPLGlCQUFpQjtJQW9DNUIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUE3Qi9DLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDWCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBS3ZCLGFBQVEsR0FBWSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBa0N4RCxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDN0IsQ0FBQyxDQUFBO1FBWEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsb0NBQW9DO1FBQ3JJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFuQkQsSUFDSSxRQUFRLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFRRCxVQUFVLENBQUMsS0FBVztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFLRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBSztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQUs7UUFDckIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDcEQ7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQscURBQXFEO0lBQzlDLFFBQVEsQ0FBQyxDQUFjO1FBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0IsV0FBVyxFQUFFO2dCQUNYLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzs7O1lBaElGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIseTlDQUF3QztnQkFFeEMsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7d0JBQ2hELEtBQUssRUFBRSxJQUFJO3FCQUNaO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO3dCQUNoRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7YUFDRjs7O1lBbkJPLGdCQUFnQjs7O3VCQXFDckIsS0FBSzswQkFDTCxLQUFLOzhCQUNMLEtBQUs7dUJBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQ29udHJvbCxcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBWYWxpZGF0b3IsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XHJcbmltcG9ydCAnbW9tZW50L21pbi9sb2NhbGVzJztcclxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlLCBFbnZpcm9ubWVudEVuYWlvfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZW8tZGF0ZXRpbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGV0aW1lQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGV0aW1lQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xyXG5cclxuICBwYXJhbXM7XHJcbiAgdmFsdWU7ICAgICAgICAgICAgLy8gbW9kZWwgdmFsdWVcclxuICBpbm5lclZhbHVlOyAgICAgICAvLyBpbm5lciBuZy1tb2RlbCB2YWx1ZVxyXG4gIGxvY2FsZTtcclxuICBkYXRlUGlwZTogTG9jYWxlRGF0ZVBpcGU7XHJcbiAgc2hvd1BpY2tlciA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaXNWYWxpZCA9IHRydWU7XHJcbiAgbWFza1BhdHRlcm46IHN0cmluZztcclxuICBkYXRlUGF0dGVybjogc3RyaW5nO1xyXG4gIG1vbWVudERhdGVQYXR0ZXJuOiBzdHJpbmc7XHJcbiAgc2xvdENoYXJQYXR0ZXJuOiBzdHJpbmc7XHJcbiAgaXNXZWJFbnY6IGJvb2xlYW4gPSBFbnZpcm9ubWVudEVuYWlvLmlzV2ViRW52aXJvbm1lbnQoKTtcclxuICBfd2l0aFRpbWU6IGJvb2xlYW47XHJcbiAgd2l0aEFtUG06IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHBpY2tlclRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgb255bEZ1dHVyZURhdGVzOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB3aXRoVGltZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5fd2l0aFRpbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZGF0ZVBhdHRlcm4gPSB0aGlzLmRhdGVQaXBlLmZvcm1hdCh0aGlzLndpdGhUaW1lID8gJ2VvU2hvcnQnIDogJ2VvU2hvcnREYXRlJyk7XHJcbiAgICB0aGlzLndpdGhBbVBtID0gISF+dGhpcy5kYXRlUGF0dGVybi5pbmRleE9mKCdhJyk7XHJcbiAgICAvLyBCVUc6IG1vbWVudCBkb2VzIG5vdCBzdXBwb3J0ICdkJyAmICd5JyAoSVNPODYwMV9EQVRFX1JFR0VYKVxyXG4gICAgdGhpcy5tb21lbnREYXRlUGF0dGVybiA9IHRoaXMuZGF0ZVBhdHRlcm4ucmVwbGFjZSgveS9nLCAnWScpLnJlcGxhY2UoL2QvZywgJ0QnKS5yZXBsYWNlKC9hYS9nLCAnQScpO1xyXG4gICAgdGhpcy5tYXNrUGF0dGVybiA9IHRoaXMuZGF0ZVBhdHRlcm4ucmVwbGFjZSgvW21NZER5WWhIXS9nLCAnOScpO1xyXG4gICAgdGhpcy5zbG90Q2hhclBhdHRlcm4gPSB0aGlzLmRhdGVQYXR0ZXJuLnJlcGxhY2UoL1ttTWREeVloSF0vZywgJ18nKS5yZXBsYWNlKC9hYS9nLCAnX18nKTtcclxuICB9XHJcblxyXG4gIGdldCB3aXRoVGltZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl93aXRoVGltZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmRhdGVQaXBlID0gbmV3IExvY2FsZURhdGVQaXBlKHRyYW5zbGF0ZSk7XHJcbiAgICB0aGlzLmxvY2FsZSA9ICh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCB0aGlzLnRyYW5zbGF0ZS5kZWZhdWx0TGFuZykucmVwbGFjZSgnemgnLCAnemgtY24nKTsgLy8gQlVHOiBtb21lbnQgZG9lcyBub3Qgc3VwcG9ydCAnemgnXHJcbiAgICBtb21lbnQubG9jYWxlKHRoaXMubG9jYWxlKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUodmFsdWU6IERhdGUpIHtcclxuICAgIHJldHVybiAhdmFsdWUgPyBudWxsIDpcclxuICAgIHRoaXMud2l0aFRpbWUgPyB2YWx1ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoJzowMC4wMDAnLCAnJykgOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ3l5eXktTU0tZGQnKTtcclxuICB9XHJcblxyXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gbW9tZW50KHZhbHVlLCB0aGlzLm1vbWVudERhdGVQYXR0ZXJuKS5zZWNvbmRzKDApLm1pbGxpc2Vjb25kKDApLnRvRGF0ZSgpIDogbnVsbDtcclxuICAgIHRoaXMuc2V0SW5uZXJWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWVGcm9tTWFzaygpIHtcclxuICAgIGxldCBtID0gbW9tZW50KHRoaXMuaW5uZXJWYWx1ZSwgdGhpcy5tb21lbnREYXRlUGF0dGVybik7XHJcbiAgICB0aGlzLmlzVmFsaWQgPSBtLmlzVmFsaWQoKTtcclxuICAgIGlmICh0aGlzLmlzVmFsaWQpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG0udG9EYXRlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlRnJvbVBpY2tlcihldmVudCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50LmRhdGUgPyBtb21lbnQoZXZlbnQuZGF0ZSwgdGhpcy5tb21lbnREYXRlUGF0dGVybikuc2Vjb25kcygwKS5taWxsaXNlY29uZCgwKS50b0RhdGUoKSA6IG51bGw7XHJcbiAgICB0aGlzLnNldElubmVyVmFsdWUoKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5zaG93UGlja2VyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvbk1hc2tWYWx1ZUNoYW5nZShldmVudCkgeyBcclxuICAgIGlmIChldmVudCA9PT0gdGhpcy5zbG90Q2hhclBhdHRlcm4gfHwgZXZlbnQubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SW5uZXJWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIGxldCBtID0gbW9tZW50KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLmlzVmFsaWQgPSBtLmlzVmFsaWQoKTtcclxuICAgICAgaWYgKHRoaXMuaXNWYWxpZCkge1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IG0uZm9ybWF0KHRoaXMubW9tZW50RGF0ZVBhdHRlcm4pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcmV0dXJucyBudWxsIHdoZW4gdmFsaWQgZWxzZSB0aGUgdmFsaWRhdGlvbiBvYmplY3RcclxuICBwdWJsaWMgdmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpIHtcclxuICAgIHJldHVybiAodGhpcy5pc1ZhbGlkKSA/IG51bGwgOiB7XHJcbiAgICAgIGRhdGVjb250cm9sOiB7XHJcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMud2l0aFRpbWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLndpdGhUaW1lID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,13 +1,15 @@
1
1
  import { ReferenceService } from './../../../eo-framework-core/references/reference.service';
2
- import { Component, forwardRef, Input } from '@angular/core';
2
+ import { Component, forwardRef, Input, ViewChild } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
4
- import { ClipboardService, SystemService } from '@eo-sdk/core';
4
+ import { ClipboardService, SearchService, SystemService } from '@eo-sdk/core';
5
5
  import * as _ from 'lodash';
6
+ import { debounceTime, map } from 'rxjs/operators';
6
7
  export class IdReferenceComponent {
7
- constructor(clipboardService, system, referenceService) {
8
+ constructor(clipboardService, system, referenceService, searchService) {
8
9
  this.clipboardService = clipboardService;
9
10
  this.system = system;
10
11
  this.referenceService = referenceService;
12
+ this.searchService = searchService;
11
13
  this.innerValues = []; // inner ng-model value
12
14
  this.visibleDialog = false;
13
15
  this.propagateChange = (value) => { };
@@ -121,6 +123,47 @@ export class IdReferenceComponent {
121
123
  validate(c) {
122
124
  return null;
123
125
  }
126
+ // handler invoked when an entry was selected using the autocomplete input
127
+ onAutoCompleteSelect(evt) {
128
+ this.linkDmsObject([evt.value]);
129
+ this.clearInnerInput();
130
+ this.propagateChange(this.value);
131
+ console.log(this.value);
132
+ }
133
+ autocompleteFn(evt) {
134
+ let q = {
135
+ fields: ['title', 'description', 'type'],
136
+ types: [this.referenceType.name],
137
+ term: evt.query,
138
+ highlighting: true,
139
+ filters: this.queryFilters,
140
+ options: { withContext: true }
141
+ };
142
+ if (this.contextId) {
143
+ if (q.filters) {
144
+ q.filters.contextfolderid = { v1: this.contextId, o: 'eq' };
145
+ }
146
+ else {
147
+ q.filters = { contextfolderid: { v1: this.contextId, o: 'eq' } };
148
+ }
149
+ }
150
+ this.searchService
151
+ .executeQuery(q)
152
+ .pipe(debounceTime(500), map(item => item ? this.searchService.createResultFromResponse(item) : [])).subscribe((result) => {
153
+ this.autocompleteRes = result.hits.map(h => ({ label: h.title, value: h }));
154
+ });
155
+ }
156
+ onAutoCompleteBlur() {
157
+ this.clearInnerInput();
158
+ }
159
+ clearInnerInput() {
160
+ if (this.autoCompleteInput.multiInputEL) {
161
+ this.autoCompleteInput.multiInputEL.nativeElement.value = '';
162
+ }
163
+ else {
164
+ this.autoCompleteInput.inputEL.nativeElement.value = '';
165
+ }
166
+ }
124
167
  ngOnInit() {
125
168
  if (this.situation === 'SEARCH') {
126
169
  this.multiselect = true;
@@ -130,7 +173,7 @@ export class IdReferenceComponent {
130
173
  IdReferenceComponent.decorators = [
131
174
  { type: Component, args: [{
132
175
  selector: 'eo-id-reference',
133
- template: "<div class=\"eo-id-reference\">\r\n\r\n <div class=\"eo-id-reference__element\" *ngIf=\"referenceType; else notFound\">\r\n <div *ngFor=\"let item of innerValues\" class=\"chip\">\r\n <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\" [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\r\n <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\">\r\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\r\n 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"></path>\r\n </svg>\r\n </a>\r\n <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\r\n <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\">{{item.title || referenceType.label}}</span>\r\n <ng-template #deleted>\r\n <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\r\n </ng-template>\r\n <eo-icon *ngIf=\"!readonly\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"removeItem(item)\" class=\"remove-icon\"></eo-icon>\r\n </div>\r\n </div>\r\n\r\n <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' | translate) : ''}}</span></ng-template>\r\n\r\n <button #button class=\"ui-button\" *ngIf=\"!readonly\"\r\n title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\"\r\n [disabled]=\"selectionDisabled\"\r\n (click)=\"showDialog()\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\r\n </button>\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.references.add' | translate)\"\r\n [subtitle]=\"referenceType.label\"\r\n [(visible)]=\"visibleDialog\"\r\n [minWidth]=\"577\"\r\n [minHeight]=\"590\"\r\n [styleClass]=\"'reference-field-dialog'\"\r\n #dialog>\r\n\r\n <eo-reference-finder *ngIf=\"dialog.visible\"\r\n [isDisabled]=\"isDisabled\"\r\n [types]=\"referenceType.qname\"\r\n [multiselect]=\"multiselect\"\r\n [currentSelection]=\"innerValues\"\r\n [clipboard]=\"clipboard\"\r\n [contextId]=\"contextId\"\r\n [exceptionIDs]=\"exceptionIDs\"\r\n [queryFilters]=\"queryFilters\"\r\n (addDmsObjects)=\"paste($event)\">\r\n </eo-reference-finder>\r\n</eo-dialog>\r\n",
176
+ template: "<div class=\"eo-id-reference\">\r\n\r\n <div class=\"eo-id-reference__element\" *ngIf=\"referenceType; else notFound\">\r\n <div *ngFor=\"let item of innerValues\" class=\"chip\">\r\n <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\" [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\r\n <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\">\r\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\r\n 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"></path>\r\n </svg>\r\n </a>\r\n <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\r\n <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\">{{item.title || referenceType.label}}</span>\r\n <ng-template #deleted>\r\n <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\r\n </ng-template>\r\n <eo-icon *ngIf=\"!readonly\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"removeItem(item)\" class=\"remove-icon\"></eo-icon>\r\n </div>\r\n </div>\r\n\r\n <p-autoComplete [minLength]=\"1\" [delay]=\"500\" #autocomplete\r\n (onSelect)=\"onAutoCompleteSelect($event)\"\r\n (onBlur)=\"onAutoCompleteBlur()\"\r\n [suggestions]=\"autocompleteRes\" field=\"label\"\r\n [readonly]=\"readonly\"\r\n [forceSelection]=\"true\"\r\n (completeMethod)=\"autocompleteFn($event)\" [multiple]=\"multiselect\">\r\n </p-autoComplete>\r\n\r\n <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' | translate) : ''}}</span></ng-template>\r\n\r\n <button #button class=\"ui-button\" *ngIf=\"!readonly\"\r\n title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\"\r\n [disabled]=\"selectionDisabled\"\r\n (click)=\"showDialog()\">\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\r\n </button>\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.references.add' | translate)\"\r\n [subtitle]=\"referenceType.label\"\r\n [(visible)]=\"visibleDialog\"\r\n [minWidth]=\"577\"\r\n [minHeight]=\"590\"\r\n [styleClass]=\"'reference-field-dialog'\"\r\n #dialog>\r\n\r\n <eo-reference-finder *ngIf=\"dialog.visible\"\r\n [isDisabled]=\"isDisabled\"\r\n [types]=\"referenceType.qname\"\r\n [multiselect]=\"multiselect\"\r\n [currentSelection]=\"innerValues\"\r\n [clipboard]=\"clipboard\"\r\n [contextId]=\"contextId\"\r\n [exceptionIDs]=\"exceptionIDs\"\r\n [queryFilters]=\"queryFilters\"\r\n (addDmsObjects)=\"paste($event)\">\r\n </eo-reference-finder>\r\n</eo-dialog>\r\n",
134
177
  providers: [
135
178
  {
136
179
  provide: NG_VALUE_ACCESSOR,
@@ -143,13 +186,14 @@ IdReferenceComponent.decorators = [
143
186
  multi: true
144
187
  }
145
188
  ],
146
- styles: [".eo-id-reference{align-items:center;display:flex;justify-content:space-between}.eo-id-reference__element{align-self:center;display:flex;flex-wrap:wrap}.eo-id-reference .chip{align-items:center;display:flex}.eo-id-reference .chip .ref-type-icon{height:16px;margin-right:4px;width:16px}.eo-id-reference .chip .label{display:flex;flex-flow:column;margin-right:4px}.eo-id-reference .chip .label>span{font-size:var(--font-hint)}.eo-id-reference .chip .remove-icon{color:var(--text-color-hint);flex:0 0 auto;height:14px;width:14px}.eo-id-reference .chip .remove-icon:hover{color:var(--text-color-caption);cursor:pointer}.eo-id-reference .chip .deleted-reference-label{color:var(--color-error)}.eo-id-reference .ui-button:disabled{cursor:default}::ng-deep .reference-field-dialog{width:577px}"]
189
+ styles: [".eo-id-reference{align-items:center;display:flex}.eo-id-reference__element{align-self:center;display:flex;flex-wrap:wrap}.eo-id-reference .chip{align-items:center;display:flex}.eo-id-reference .chip .ref-type-icon{height:16px;margin-right:4px;width:16px}.eo-id-reference .chip .label{display:flex;flex-flow:column;margin-right:4px}.eo-id-reference .chip .label>span{font-size:var(--font-hint)}.eo-id-reference .chip .remove-icon{color:var(--text-color-hint);flex:0 0 auto;height:14px;width:14px}.eo-id-reference .chip .remove-icon:hover{color:var(--text-color-caption);cursor:pointer}.eo-id-reference .chip .deleted-reference-label{color:var(--color-error)}.eo-id-reference .ui-button:disabled{cursor:default}::ng-deep .reference-field-dialog{width:577px}p-autoComplete{width:100%}"]
147
190
  },] }
148
191
  ];
149
192
  IdReferenceComponent.ctorParameters = () => [
150
193
  { type: ClipboardService },
151
194
  { type: SystemService },
152
- { type: ReferenceService }
195
+ { type: ReferenceService },
196
+ { type: SearchService }
153
197
  ];
154
198
  IdReferenceComponent.propDecorators = {
155
199
  readonly: [{ type: Input }],
@@ -157,8 +201,9 @@ IdReferenceComponent.propDecorators = {
157
201
  situation: [{ type: Input }],
158
202
  contextId: [{ type: Input }],
159
203
  exceptionIDs: [{ type: Input }],
204
+ autoCompleteInput: [{ type: ViewChild, args: ['autocomplete',] }],
160
205
  dataToRender: [{ type: Input }],
161
206
  reference: [{ type: Input }],
162
207
  queryFilters: [{ type: Input }]
163
208
  };
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvaWQtcmVmZXJlbmNlL2lkLXJlZmVyZW5jZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDM0YsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBdUIsaUJBQWlCLEVBQTBCLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlHLE9BQU8sRUFFTCxnQkFBZ0IsRUFJaEIsYUFBYSxFQUNkLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBMkI1QixNQUFNLE9BQU8sb0JBQW9CO0lBK0MvQixZQUFvQixnQkFBa0MsRUFBVSxNQUFxQixFQUFVLGdCQUFrQztRQUE3RyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUE3Q2pJLGdCQUFXLEdBQXVCLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtRQUs3RCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQXNJdEIsb0JBQWUsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBN0ZuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxD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d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDbkQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7d0JBQ25ELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGOzthQUNGOzs7WUFoQ0MsZ0JBQWdCO1lBSWhCLGFBQWE7WUFUUCxnQkFBZ0I7Ozt1QkErQ3JCLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFFTCxLQUFLO3dCQVNMLEtBQUs7MkJBT0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9yZWZlcmVuY2VzL3JlZmVyZW5jZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yLCBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SU30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIENsaXBib2FyZCxcclxuICBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gIERtc09iamVjdCxcclxuICBPYmplY3RUeXBlLFxyXG4gIFNlYXJjaEZpbHRlcixcclxuICBTeXN0ZW1TZXJ2aWNlXHJcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhVG9SZW5kZXJJdGVtIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHR5cGVOYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgc3RhdGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZW8taWQtcmVmZXJlbmNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaWQtcmVmZXJlbmNlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pZC1yZWZlcmVuY2UuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElkUmVmZXJlbmNlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElkUmVmZXJlbmNlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZFJlZmVyZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIFZhbGlkYXRvciB7XHJcbiAgcHJpdmF0ZSB2YWx1ZTsgLy8gbW9kZWwgdmFsdWVcclxuICBpbm5lclZhbHVlczogRGF0YVRvUmVuZGVySXRlbVtdID0gW107IC8vIGlubmVyIG5nLW1vZGVsIHZhbHVlXHJcbiAgY2xpcGJvYXJkOiBDbGlwYm9hcmQ7XHJcbiAgcmVmZXJlbmNlVHlwZTogT2JqZWN0VHlwZTtcclxuICBzdWJUeXBlczogT2JqZWN0VHlwZVtdO1xyXG4gIHRvb2x0aXBUeXBlSGludDogc3RyaW5nO1xyXG4gIHZpc2libGVEaWFsb2cgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgbXVsdGlzZWxlY3Q6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2l0dWF0aW9uOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29udGV4dElkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXhjZXB0aW9uSURzOiBzdHJpbmdbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGF0YVRvUmVuZGVyKGRhdGE6IERhdGFUb1JlbmRlckl0ZW1bXSkge1xyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IGRhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWVzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByZWZlcmVuY2UocmVmOiBhbnkpIHtcclxuICAgIHRoaXMucmVmZXJlbmNlVHlwZSA9IHJlZiA/IHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUocmVmLnR5cGUpIDogbnVsbDtcclxuICAgIHRoaXMuc3ViVHlwZXMgPSB0aGlzLmdldFN1YlR5cGVzKHRoaXMucmVmZXJlbmNlVHlwZS5uYW1lLCB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlcygpKTtcclxuICAgIHRoaXMudG9vbHRpcFR5cGVIaW50ID0gdGhpcy5jcmVhdGVUb29sdGlwVHlwZUhpbnQodGhpcy5yZWZlcmVuY2VUeXBlLCB0aGlzLnN1YlR5cGVzKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHF1ZXJ5RmlsdGVyczoge1tmaWVsZFFuYW1lOiBzdHJpbmddOiB7bzogc3RyaW5nLCB2MTogYW55LCB2MjogYW55fX07XHJcblxyXG4gIHByaXZhdGUgZ2V0U3ViVHlwZXModHlwZU5hbWUsIHR5cGVzKSB7XHJcbiAgICBsZXQgc3ViVHlwZXMgPSBbXTtcclxuICAgIHR5cGVzLmZvckVhY2gob2JqZWN0VHlwZSA9PiB7XHJcbiAgICAgIGlmICghIW9iamVjdFR5cGUuc3VwZXJ0eXBlcy5maW5kKHNUID0+IHNUID09PSB0eXBlTmFtZSkpIHtcclxuICAgICAgICBzdWJUeXBlcy5wdXNoKG9iamVjdFR5cGUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzdWJUeXBlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcFR5cGVIaW50KHJlZmVyZW5jZVR5cGUsIHN1YlR5cGVzID0gW10pIHtcclxuICAgIHJldHVybiBgKCR7W3JlZmVyZW5jZVR5cGUubGFiZWwsIC4uLnN1YlR5cGVzLm1hcCh0eXBlcyA9PiB0eXBlcy5sYWJlbCldLmpvaW4oJywgJyl9KWA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLCBwcml2YXRlIHJlZmVyZW5jZVNlcnZpY2U6IFJlZmVyZW5jZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuY2xpcGJvYXJkU2VydmljZS5jbGlwYm9hcmQkLnN1YnNjcmliZShjbGlwYm9hcmQgPT4gKHRoaXMuY2xpcGJvYXJkID0gY2xpcGJvYXJkKSk7XHJcbiAgICB0aGlzLmNsaXBib2FyZCA9IHRoaXMuY2xpcGJvYXJkU2VydmljZS5nZXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dEaWFsb2coKSB7XHJcbiAgICB0aGlzLnZpc2libGVEaWFsb2cgPSAhdGhpcy52aXNpYmxlRGlhbG9nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGlvbkRpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXVsdGlzZWxlY3QgPyBmYWxzZSA6IHRoaXMuaW5uZXJWYWx1ZXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAhdGhpcy5yZWZlcmVuY2VUeXBlIHx8XHJcbiAgICAgIHRoaXMucmVhZG9ubHkgfHxcclxuICAgICAgdGhpcy5jbGlwYm9hcmQuYWN0aW9uID09PSAxIHx8XHJcbiAgICAgICF0aGlzLmNsaXBib2FyZC5lbGVtZW50cy5sZW5ndGggfHxcclxuICAgICAgdGhpcy5jb250YWluc0luY29ycmVjdFR5cGVzKFxyXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkLmVsZW1lbnRzLFxyXG4gICAgICAgIHRoaXMucmVmZXJlbmNlVHlwZSxcclxuICAgICAgICB0aGlzLnN1YlR5cGVzXHJcbiAgICAgICkgfHxcclxuICAgICAgdGhpcy5jb250YWluc0luY29ycmVjdENvbnRleHQodGhpcy5jbGlwYm9hcmQuZWxlbWVudHMsIHRoaXMuY29udGV4dElkKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udGFpbnNJbmNvcnJlY3RUeXBlcyhjbGlwYm9hcmRFbGVtZW50cywgcmVmVHlwZSwgc3ViVHlwZXMpIHtcclxuICAgIHJldHVybiAhIWNsaXBib2FyZEVsZW1lbnRzLmZpbmQoY2JFbCA9PiAhKGNiRWwudHlwZU5hbWUgPT09IHJlZlR5cGUubmFtZSB8fCBzdWJUeXBlcy5maW5kKHNUID0+IHNULm5hbWUgPT09IGNiRWwudHlwZU5hbWUpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnRhaW5zSW5jb3JyZWN0Q29udGV4dChjbGlwYm9hcmRFbGVtZW50cywgY29udGV4dElkKXtcclxuICAgIHJldHVybiAhIWNsaXBib2FyZEVsZW1lbnRzLmZpbmQoY2JFbCA9PiB7XHJcbiAgICAgIGlmKCFjb250ZXh0SWQpe1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gIWNiRWwuY29udGV4dEZvbGRlciB8fCBjYkVsLmNvbnRleHRGb2xkZXIuaWQgIT09IGNvbnRleHRJZDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcGFzdGUoY29udGVudD86IERtc09iamVjdFtdKSB7XHJcbiAgICB0aGlzLmxpbmtEbXNPYmplY3QoY29udGVudCk7XHJcbiAgICB0aGlzLnNob3dEaWFsb2coKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaW5rRG1zT2JqZWN0KGNvbnRlbnQ/OiBEbXNPYmplY3RbXSkge1xyXG4gICAgKGNvbnRlbnQgfHwgdGhpcy5jbGlwYm9hcmQuZWxlbWVudHMpLmZvckVhY2goKGRtc09iamVjdDogRG1zT2JqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IHtpZCwgdGl0bGUsIGRlc2NyaXB0aW9uLCB0eXBlTmFtZX0gPSBkbXNPYmplY3Q7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZXMucHVzaCh7aWQsIHRpdGxlLCBkZXNjcmlwdGlvbiwgdHlwZU5hbWV9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbm5lclZhbHVlcyA9IF8udW5pcUJ5KHRoaXMuaW5uZXJWYWx1ZXMsICdpZCcpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZXMubWFwKGl2ID0+IGl2LmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmlubmVyVmFsdWVzWzBdLmlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbShpdGVtKSB7XHJcbiAgICB0aGlzLmlubmVyVmFsdWVzID0gdGhpcy5pbm5lclZhbHVlcy5maWx0ZXIoaXYgPT4gaXYuaWQgIT09IGl0ZW0uaWQpO1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMubXVsdGlzZWxlY3RcclxuICAgICAgPyBfLnVuaXFCeSh0aGlzLmlubmVyVmFsdWVzLCAnaWQnKS5tYXAoaXYgPT4gaXYuaWQpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUlubmVyVmFsdWVzKHRoaXMudmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlSW5uZXJWYWx1ZXModmFsdWUpIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgdGhpcy5pbm5lclZhbHVlcyA9IHRoaXMuaW5uZXJWYWx1ZXMuZmlsdGVyKGlWID0+IHtcclxuICAgICAgLy8gcmVtb3ZlIGlubmVyVmFsdWVzLCB3aGVyZSB0aGUgaWQgd2FzIHJlbW92ZWQgZnJvbSB2YWx1ZVxyXG4gICAgICByZXR1cm4gdmFsdWVzLmZpbmQodiA9PiB2ID09PSBpVi5pZCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHZhbHVlcy5maWx0ZXIodiA9PiB7XHJcbiAgICAgIHJldHVybiAhdGhpcy5pbm5lclZhbHVlcy5maW5kKGlWID0+IGlWLmlkID09PSB2KTtcclxuICAgIH0pO1xyXG4gICAgaWYgKG5ld1ZhbHVlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlLmZldGNoSURSZWZlcmVuY2VNZXRhRGF0YShuZXdWYWx1ZXMpLnN1YnNjcmliZShuZXdJbm5lclZhbHVlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IHRoaXMuaW5uZXJWYWx1ZXMuY29uY2F0KG5ld0lubmVyVmFsdWVzKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm9wYWdhdGVDaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcclxuICAgICAgdGhpcy5tdWx0aXNlbGVjdCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvaWQtcmVmZXJlbmNlL2lkLXJlZmVyZW5jZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDM0YsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQXVCLGlCQUFpQixFQUEwQixhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RyxPQUFPLEVBRUwsZ0JBQWdCLEVBR0YsYUFBYSxFQUMzQixhQUFhLEVBQ2QsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQTRCakQsTUFBTSxPQUFPLG9CQUFvQjtJQWtEL0IsWUFBb0IsZ0JBQWtDLEVBQVUsTUFBcUIsRUFDakUsZ0JBQWtDLEVBQ2xDLGFBQTRCO1FBRjVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ2pFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFsRGhELGdCQUFXLEdBQXVCLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtRQUs3RCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQTJJdEIsb0JBQWUsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBN0ZuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMs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QUNuRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7YUFDRjs7O1lBbENDLGdCQUFnQjtZQUloQixhQUFhO1lBVFAsZ0JBQWdCO1lBUVIsYUFBYTs7O3VCQTJDMUIsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLO2dDQUNMLFNBQVMsU0FBQyxjQUFjOzJCQUV4QixLQUFLO3dCQVNMLEtBQUs7MkJBT0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9yZWZlcmVuY2VzL3JlZmVyZW5jZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3IsIEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgQ2xpcGJvYXJkLFxyXG4gIENsaXBib2FyZFNlcnZpY2UsXHJcbiAgRG1zT2JqZWN0LFxyXG4gIE9iamVjdFR5cGUsXHJcbiAgU2VhcmNoUmVzdWx0LCBTZWFyY2hTZXJ2aWNlLFxyXG4gIFN5c3RlbVNlcnZpY2VcclxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtBdXRvQ29tcGxldGV9IGZyb20gJ3ByaW1lbmcvcHJpbWVuZyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUb1JlbmRlckl0ZW0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdHlwZU5hbWU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBzdGF0ZT86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1pZC1yZWZlcmVuY2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pZC1yZWZlcmVuY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lkLXJlZmVyZW5jZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSWRSZWZlcmVuY2VDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSWRSZWZlcmVuY2VDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElkUmVmZXJlbmNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgVmFsaWRhdG9yIHtcclxuICBwcml2YXRlIHZhbHVlOyAvLyBtb2RlbCB2YWx1ZVxyXG4gIGlubmVyVmFsdWVzOiBEYXRhVG9SZW5kZXJJdGVtW10gPSBbXTsgLy8gaW5uZXIgbmctbW9kZWwgdmFsdWVcclxuICBjbGlwYm9hcmQ6IENsaXBib2FyZDtcclxuICByZWZlcmVuY2VUeXBlOiBPYmplY3RUeXBlO1xyXG4gIHN1YlR5cGVzOiBPYmplY3RUeXBlW107XHJcbiAgdG9vbHRpcFR5cGVIaW50OiBzdHJpbmc7XHJcbiAgdmlzaWJsZURpYWxvZyA9IGZhbHNlO1xyXG5cclxuICBhdXRvY29tcGxldGVSZXM7XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG11bHRpc2VsZWN0OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNpdHVhdGlvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRleHRJZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGV4Y2VwdGlvbklEczogc3RyaW5nW107XHJcbiAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlJykgYXV0b0NvbXBsZXRlSW5wdXQ6IEF1dG9Db21wbGV0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGF0YVRvUmVuZGVyKGRhdGE6IERhdGFUb1JlbmRlckl0ZW1bXSkge1xyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IGRhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWVzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByZWZlcmVuY2UocmVmOiBhbnkpIHtcclxuICAgIHRoaXMucmVmZXJlbmNlVHlwZSA9IHJlZiA/IHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUocmVmLnR5cGUpIDogbnVsbDtcclxuICAgIHRoaXMuc3ViVHlwZXMgPSB0aGlzLmdldFN1YlR5cGVzKHRoaXMucmVmZXJlbmNlVHlwZS5uYW1lLCB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlcygpKTtcclxuICAgIHRoaXMudG9vbHRpcFR5cGVIaW50ID0gdGhpcy5jcmVhdGVUb29sdGlwVHlwZUhpbnQodGhpcy5yZWZlcmVuY2VUeXBlLCB0aGlzLnN1YlR5cGVzKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHF1ZXJ5RmlsdGVyczoge1tmaWVsZFFuYW1lOiBzdHJpbmddOiB7bzogc3RyaW5nLCB2MTogYW55LCB2MjogYW55fX07XHJcblxyXG4gIHByaXZhdGUgZ2V0U3ViVHlwZXModHlwZU5hbWUsIHR5cGVzKSB7XHJcbiAgICBsZXQgc3ViVHlwZXMgPSBbXTtcclxuICAgIHR5cGVzLmZvckVhY2gob2JqZWN0VHlwZSA9PiB7XHJcbiAgICAgIGlmICghIW9iamVjdFR5cGUuc3VwZXJ0eXBlcy5maW5kKHNUID0+IHNUID09PSB0eXBlTmFtZSkpIHtcclxuICAgICAgICBzdWJUeXBlcy5wdXNoKG9iamVjdFR5cGUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzdWJUeXBlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcFR5cGVIaW50KHJlZmVyZW5jZVR5cGUsIHN1YlR5cGVzID0gW10pIHtcclxuICAgIHJldHVybiBgKCR7W3JlZmVyZW5jZVR5cGUubGFiZWwsIC4uLnN1YlR5cGVzLm1hcCh0eXBlcyA9PiB0eXBlcy5sYWJlbCldLmpvaW4oJywgJyl9KWA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVmZXJlbmNlU2VydmljZTogUmVmZXJlbmNlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UpIHtcclxuICAgIHRoaXMuY2xpcGJvYXJkU2VydmljZS5jbGlwYm9hcmQkLnN1YnNjcmliZShjbGlwYm9hcmQgPT4gKHRoaXMuY2xpcGJvYXJkID0gY2xpcGJvYXJkKSk7XHJcbiAgICB0aGlzLmNsaXBib2FyZCA9IHRoaXMuY2xpcGJvYXJkU2VydmljZS5nZXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dEaWFsb2coKSB7XHJcbiAgICB0aGlzLnZpc2libGVEaWFsb2cgPSAhdGhpcy52aXNpYmxlRGlhbG9nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGlvbkRpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXVsdGlzZWxlY3QgPyBmYWxzZSA6IHRoaXMuaW5uZXJWYWx1ZXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAhdGhpcy5yZWZlcmVuY2VUeXBlIHx8XHJcbiAgICAgIHRoaXMucmVhZG9ubHkgfHxcclxuICAgICAgdGhpcy5jbGlwYm9hcmQuYWN0aW9uID09PSAxIHx8XHJcbiAgICAgICF0aGlzLmNsaXBib2FyZC5lbGVtZW50cy5sZW5ndGggfHxcclxuICAgICAgdGhpcy5jb250YWluc0luY29ycmVjdFR5cGVzKFxyXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkLmVsZW1lbnRzLFxyXG4gICAgICAgIHRoaXMucmVmZXJlbmNlVHlwZSxcclxuICAgICAgICB0aGlzLnN1YlR5cGVzXHJcbiAgICAgICkgfHxcclxuICAgICAgdGhpcy5jb250YWluc0luY29ycmVjdENvbnRleHQodGhpcy5jbGlwYm9hcmQuZWxlbWVudHMsIHRoaXMuY29udGV4dElkKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udGFpbnNJbmNvcnJlY3RUeXBlcyhjbGlwYm9hcmRFbGVtZW50cywgcmVmVHlwZSwgc3ViVHlwZXMpIHtcclxuICAgIHJldHVybiAhIWNsaXBib2FyZEVsZW1lbnRzLmZpbmQoY2JFbCA9PiAhKGNiRWwudHlwZU5hbWUgPT09IHJlZlR5cGUubmFtZSB8fCBzdWJUeXBlcy5maW5kKHNUID0+IHNULm5hbWUgPT09IGNiRWwudHlwZU5hbWUpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnRhaW5zSW5jb3JyZWN0Q29udGV4dChjbGlwYm9hcmRFbGVtZW50cywgY29udGV4dElkKXtcclxuICAgIHJldHVybiAhIWNsaXBib2FyZEVsZW1lbnRzLmZpbmQoY2JFbCA9PiB7XHJcbiAgICAgIGlmKCFjb250ZXh0SWQpe1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gIWNiRWwuY29udGV4dEZvbGRlciB8fCBjYkVsLmNvbnRleHRGb2xkZXIuaWQgIT09IGNvbnRleHRJZDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcGFzdGUoY29udGVudD86IERtc09iamVjdFtdKSB7XHJcbiAgICB0aGlzLmxpbmtEbXNPYmplY3QoY29udGVudCk7XHJcbiAgICB0aGlzLnNob3dEaWFsb2coKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaW5rRG1zT2JqZWN0KGNvbnRlbnQ/OiBEbXNPYmplY3RbXSkge1xyXG4gICAgKGNvbnRlbnQgfHwgdGhpcy5jbGlwYm9hcmQuZWxlbWVudHMpLmZvckVhY2goKGRtc09iamVjdDogRG1zT2JqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IHtpZCwgdGl0bGUsIGRlc2NyaXB0aW9uLCB0eXBlTmFtZX0gPSBkbXNPYmplY3Q7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZXMucHVzaCh7aWQsIHRpdGxlLCBkZXNjcmlwdGlvbiwgdHlwZU5hbWV9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbm5lclZhbHVlcyA9IF8udW5pcUJ5KHRoaXMuaW5uZXJWYWx1ZXMsICdpZCcpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZXMubWFwKGl2ID0+IGl2LmlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmlubmVyVmFsdWVzWzBdLmlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbShpdGVtKSB7XHJcbiAgICB0aGlzLmlubmVyVmFsdWVzID0gdGhpcy5pbm5lclZhbHVlcy5maWx0ZXIoaXYgPT4gaXYuaWQgIT09IGl0ZW0uaWQpO1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMubXVsdGlzZWxlY3RcclxuICAgICAgPyBfLnVuaXFCeSh0aGlzLmlubmVyVmFsdWVzLCAnaWQnKS5tYXAoaXYgPT4gaXYuaWQpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUlubmVyVmFsdWVzKHRoaXMudmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlSW5uZXJWYWx1ZXModmFsdWUpIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgdGhpcy5pbm5lclZhbHVlcyA9IHRoaXMuaW5uZXJWYWx1ZXMuZmlsdGVyKGlWID0+IHtcclxuICAgICAgLy8gcmVtb3ZlIGlubmVyVmFsdWVzLCB3aGVyZSB0aGUgaWQgd2FzIHJlbW92ZWQgZnJvbSB2YWx1ZVxyXG4gICAgICByZXR1cm4gdmFsdWVzLmZpbmQodiA9PiB2ID09PSBpVi5pZCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHZhbHVlcy5maWx0ZXIodiA9PiB7XHJcbiAgICAgIHJldHVybiAhdGhpcy5pbm5lclZhbHVlcy5maW5kKGlWID0+IGlWLmlkID09PSB2KTtcclxuICAgIH0pO1xyXG4gICAgaWYgKG5ld1ZhbHVlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlLmZldGNoSURSZWZlcmVuY2VNZXRhRGF0YShuZXdWYWx1ZXMpLnN1YnNjcmliZShuZXdJbm5lclZhbHVlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IHRoaXMuaW5uZXJWYWx1ZXMuY29uY2F0KG5ld0lubmVyVmFsdWVzKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm9wYWdhdGVDaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBoYW5kbGVyIGludm9rZWQgd2hlbiBhbiBlbnRyeSB3YXMgc2VsZWN0ZWQgdXNpbmcgdGhlIGF1dG9jb21wbGV0ZSBpbnB1dFxyXG4gIG9uQXV0b0NvbXBsZXRlU2VsZWN0KGV2dD8pIHtcclxuICAgIHRoaXMubGlua0Rtc09iamVjdChbZXZ0LnZhbHVlXSk7XHJcbiAgICB0aGlzLmNsZWFySW5uZXJJbnB1dCgpO1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnZhbHVlKVxyXG4gIH1cclxuXHJcbiAgYXV0b2NvbXBsZXRlRm4oZXZ0KSB7XHJcbiAgICBsZXQgcTogYW55ID0ge1xyXG4gICAgICBmaWVsZHM6IFsndGl0bGUnLCAnZGVzY3JpcHRpb24nLCAndHlwZSddLFxyXG4gICAgICB0eXBlczogW3RoaXMucmVmZXJlbmNlVHlwZS5uYW1lXSxcclxuICAgICAgdGVybTogZXZ0LnF1ZXJ5LFxyXG4gICAgICBoaWdobGlnaHRpbmc6IHRydWUsXHJcbiAgICAgIGZpbHRlcnM6IHRoaXMucXVlcnlGaWx0ZXJzLFxyXG4gICAgICBvcHRpb25zOiB7d2l0aENvbnRleHQ6IHRydWV9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmNvbnRleHRJZCkge1xyXG4gICAgICBpZiAocS5maWx0ZXJzKSB7XHJcbiAgICAgICAgcS5maWx0ZXJzLmNvbnRleHRmb2xkZXJpZCA9IHt2MTogdGhpcy5jb250ZXh0SWQsIG86ICdlcSd9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHEuZmlsdGVycyA9IHtjb250ZXh0Zm9sZGVyaWQ6IHt2MTogdGhpcy5jb250ZXh0SWQsIG86ICdlcSd9fTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VhcmNoU2VydmljZVxyXG4gICAgICAuZXhlY3V0ZVF1ZXJ5KHEpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxyXG4gICAgICAgIG1hcChpdGVtID0+IGl0ZW0gPyB0aGlzLnNlYXJjaFNlcnZpY2UuY3JlYXRlUmVzdWx0RnJvbVJlc3BvbnNlKGl0ZW0pIDogW10pXHJcbiAgICAgICkuc3Vic2NyaWJlKChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVzID0gcmVzdWx0LmhpdHMubWFwKGggPT4gKHtsYWJlbDogaC50aXRsZSwgdmFsdWU6IGh9KSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQXV0b0NvbXBsZXRlQmx1cigpIHtcclxuICAgIHRoaXMuY2xlYXJJbm5lcklucHV0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFySW5uZXJJbnB1dCgpIHtcclxuICAgIGlmICh0aGlzLmF1dG9Db21wbGV0ZUlucHV0Lm11bHRpSW5wdXRFTCkge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0Lm11bHRpSW5wdXRFTC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0LmlucHV0RUwubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XHJcbiAgICAgIHRoaXMubXVsdGlzZWxlY3QgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=