@openziti/ziti-console-lib 0.7.1 → 0.8.0

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 (70) hide show
  1. package/assets/fonts/icomoon.eot +0 -0
  2. package/assets/fonts/icomoon.svg +118 -0
  3. package/assets/fonts/icomoon.ttf +0 -0
  4. package/assets/fonts/icomoon.woff +0 -0
  5. package/assets/fonts/icomoon.woff2 +0 -0
  6. package/assets/styles/global.scss +147 -3
  7. package/assets/styles/icons.css +13 -0
  8. package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +1 -1
  9. package/esm2022/lib/features/preview-selections/preview-selections.component.mjs +1 -1
  10. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +3 -3
  11. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.mjs +403 -0
  12. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.mjs +108 -0
  13. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.mjs +222 -0
  14. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.mjs +55 -0
  15. package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +1 -1
  16. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +1 -1
  17. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +1 -1
  18. package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +24 -3
  19. package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +15 -3
  20. package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +1 -1
  21. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +1 -1
  22. package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +1 -1
  23. package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +1 -1
  24. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +1 -1
  25. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +1 -1
  26. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +1 -1
  27. package/esm2022/lib/features/sidebars/side-banner/side-banner.component.mjs +2 -2
  28. package/esm2022/lib/features/sidebars/side-toolbar/side-toolbar.component.mjs +2 -2
  29. package/esm2022/lib/models/certificate-authority.mjs +16 -0
  30. package/esm2022/lib/pages/auth-policies/auth-policies-page.component.mjs +3 -3
  31. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.component.mjs +120 -0
  32. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +237 -0
  33. package/esm2022/lib/services/validation.service.mjs +3 -12
  34. package/esm2022/lib/services/ziti-controller-data.service.mjs +23 -5
  35. package/esm2022/lib/services/ziti-data.service.mjs +20 -1
  36. package/esm2022/lib/shared/list-page-service.class.mjs +6 -1
  37. package/esm2022/lib/ziti-console-lib.module.mjs +12 -3
  38. package/esm2022/public-api.mjs +6 -1
  39. package/fesm2022/openziti-ziti-console-lib.mjs +1350 -216
  40. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  41. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts +81 -0
  42. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts.map +1 -0
  43. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts +37 -0
  44. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts.map +1 -0
  45. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts +63 -0
  46. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts.map +1 -0
  47. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.d.ts +28 -0
  48. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.d.ts.map +1 -0
  49. package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts +5 -1
  50. package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts.map +1 -1
  51. package/lib/features/projectable-forms/form-header/form-header.component.d.ts +5 -1
  52. package/lib/features/projectable-forms/form-header/form-header.component.d.ts.map +1 -1
  53. package/lib/models/certificate-authority.d.ts +14 -0
  54. package/lib/models/certificate-authority.d.ts.map +1 -0
  55. package/lib/pages/certificate-authorities/certificate-authorities-page.component.d.ts +30 -0
  56. package/lib/pages/certificate-authorities/certificate-authorities-page.component.d.ts.map +1 -0
  57. package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts +35 -0
  58. package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts.map +1 -0
  59. package/lib/services/validation.service.d.ts.map +1 -1
  60. package/lib/services/ziti-controller-data.service.d.ts +2 -2
  61. package/lib/services/ziti-controller-data.service.d.ts.map +1 -1
  62. package/lib/services/ziti-data.service.d.ts +3 -2
  63. package/lib/services/ziti-data.service.d.ts.map +1 -1
  64. package/lib/shared/list-page-service.class.d.ts +1 -0
  65. package/lib/shared/list-page-service.class.d.ts.map +1 -1
  66. package/lib/ziti-console-lib.module.d.ts +21 -18
  67. package/lib/ziti-console-lib.module.d.ts.map +1 -1
  68. package/package.json +1 -1
  69. package/public-api.d.ts +5 -0
  70. package/public-api.d.ts.map +1 -1
@@ -35,12 +35,19 @@ class ZitiControllerDataService extends ZitiDataService {
35
35
  this.httpClient = httpClient;
36
36
  this.router = router;
37
37
  }
38
- post(type, model, chained = false) {
38
+ post(type, model, chained = false, contentType) {
39
39
  const apiVersions = this.settingsService.apiVersions || {};
40
40
  const prefix = apiVersions["edge-management"]?.v1?.path;
41
41
  const url = this.settingsService.settings.selectedEdgeController;
42
42
  const serviceUrl = url + prefix + "/" + type;
43
- return firstValueFrom(this.httpClient.post(serviceUrl, model, {}).pipe(catchError((err) => {
43
+ let options = {};
44
+ if (contentType) {
45
+ const headers = {
46
+ 'Content-Type': contentType
47
+ };
48
+ options = { headers };
49
+ }
50
+ return firstValueFrom(this.httpClient.post(serviceUrl, model, options).pipe(catchError((err) => {
44
51
  const error = "Server Not Accessible";
45
52
  if (err.code !== "ECONNREFUSED")
46
53
  throw (err);
@@ -94,7 +101,7 @@ class ZitiControllerDataService extends ZitiDataService {
94
101
  return results;
95
102
  })));
96
103
  }
97
- getSubdata(entityType, id, dataType, paging) {
104
+ getSubdata(entityType, id, dataType, paging, contentType) {
98
105
  const apiVersions = this.settingsService.apiVersions || {};
99
106
  const prefix = apiVersions["edge-management"]?.v1?.path || '/edge/management/v1';
100
107
  let urlFilter = '';
@@ -102,7 +109,18 @@ class ZitiControllerDataService extends ZitiDataService {
102
109
  urlFilter = this.getUrlFilter(paging, []);
103
110
  }
104
111
  const url = this.settingsService.settings.selectedEdgeController + `${prefix}/${entityType}/${id}/${dataType}/${urlFilter}`;
105
- return firstValueFrom(this.httpClient.get(url, {}).pipe(catchError((err) => {
112
+ let options = {};
113
+ if (contentType) {
114
+ const headers = {
115
+ 'Accept': contentType,
116
+ 'Content-Type': contentType
117
+ };
118
+ options = { headers };
119
+ if (contentType.indexOf('application/jwt') >= 0) {
120
+ options.responseType = 'text';
121
+ }
122
+ }
123
+ return firstValueFrom(this.httpClient.get(url, options).pipe(catchError((err) => {
106
124
  const error = "Server Not Accessible";
107
125
  if (err.code != "ECONNREFUSED")
108
126
  throw ({ error: err.code });
@@ -280,4 +298,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
280
298
  type: Inject,
281
299
  args: [SETTINGS_SERVICE]
282
300
  }] }, { type: i3.HttpClient }, { type: i4.Router }]; } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1jb250cm9sbGVyLWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9zZXJ2aWNlcy96aXRpLWNvbnRyb2xsZXItZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFrQixNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLEVBQUUsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUM3RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0FBRTVCLE1BR2EseUJBQTBCLFNBQVEsZUFBZTtJQUUxRCxZQUFxQixNQUFxQixFQUNyQixPQUF1QixFQUNOLGVBQWdDLEVBQ2pELFVBQXNCLEVBQ3RCLE1BQWM7UUFFL0IsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQU4zQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBRXZCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUduQyxDQUFDO0lBRUQsSUFBSSxDQUFDLElB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SyxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDWCxNQUFNLElBQUksTUFBTSxDQUFDO2lCQUNwQjtnQkFDRCxNQUFNLElBQUksU0FBUyxRQUFRLFFBQVEsSUFBSSxHQUFHLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsTUFBTSxHQUFHLFNBQVMsUUFBUSxRQUFRLEdBQUcsR0FBRyxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzsrR0EvUlEseUJBQXlCLDZFQUlkLGdCQUFnQjttSEFKM0IseUJBQXlCLGNBRnRCLE1BQU07O1NBRVQseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFLZ0IsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9sb2dnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tLCBtYXAsIE9ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7RmlsdGVyT2JqfSBmcm9tIFwiLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1ppdGlEYXRhU2VydmljZX0gZnJvbSBcIi4veml0aS1kYXRhLnNlcnZpY2VcIjtcbmltcG9ydCB7aXNFbXB0eSwgaXNBcnJheSwgaXNOdW1iZXIsIGlzQm9vbGVhbn0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtSZXNvbHZlcn0gZnJvbSBcIkBzdG9wbGlnaHQvanNvbi1yZWYtcmVzb2x2ZXJcIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFppdGlDb250cm9sbGVyRGF0YVNlcnZpY2UgZXh0ZW5kcyBaaXRpRGF0YVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3Iob3ZlcnJpZGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIG92ZXJyaWRlIGdyb3dsZXI6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoU0VUVElOR1NfU0VSVklDRSkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICAgICAgICAgICAgICBvdmVycmlkZSByb3V0ZXI6IFJvdXRlclxuICAgICkge1xuICAgICAgICBzdXBlcihsb2dnZXIsIGdyb3dsZXIsIHNldHRpbmdzU2VydmljZSwgaHR0cENsaWVudCwgcm91dGVyKTtcbiAgICB9XG5cbiAgICBwb3N0KHR5cGUsIG1vZGVsLCBjaGFpbmVkID0gZmFsc2UpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGg7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXI7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB1cmwgKyBwcmVmaXggKyBcIi9cIiArIHR5cGU7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIG1vZGVsLCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1dCh0eXBlLCBtb2RlbCwgaWQsIGNoYWluZWQgPSBmYWxzZSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aCB8fCAnL2VkZ2UvbWFuYWdlbWVudC92MSc7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXI7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB1cmwgKyBwcmVmaXggKyBcIi9cIiArIHR5cGUgKyAnLycgKyBpZDtcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBhdGNoKHNlcnZpY2VVcmwsIG1vZGVsLCB7fSk7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wdXQoc2VydmljZVVybCwgbW9kZWwsIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9PSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcGF0Y2godHlwZSwgbW9kZWwsIGlkLCBjaGFpbmVkID0gZmFsc2UpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJy9lZGdlL21hbmFnZW1lbnQvdjEnO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdXJsICsgcHJlZml4ICsgXCIvXCIgKyB0eXBlICsgJy8nICsgaWQ7XG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wYXRjaChzZXJ2aWNlVXJsLCBtb2RlbCwge30pO1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucGF0Y2goc2VydmljZVVybCwgbW9kZWwsIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9PSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0KHR5cGU6IHN0cmluZywgcGFnaW5nOiBhbnksIGZpbHRlcnM6IEZpbHRlck9ialtdID0gW10pOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJy9lZGdlL21hbmFnZW1lbnQvdjEnO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyO1xuICAgICAgICBjb25zdCB1cmxGaWx0ZXIgPSB0aGlzLmdldFVybEZpbHRlcihwYWdpbmcsIGZpbHRlcnMpO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdXJsICsgcHJlZml4ICsgXCIvXCIgKyB0eXBlICsgdXJsRmlsdGVyO1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQuZ2V0KHNlcnZpY2VVcmwse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRTdWJkYXRhKGVudGl0eVR5cGU6IHN0cmluZywgaWQ6IGFueSwgZGF0YVR5cGU6IHN0cmluZywgcGFnaW5nPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcblxuICAgICAgICBsZXQgdXJsRmlsdGVyID0gJyc7XG4gICAgICAgIGlmICghaXNFbXB0eShwYWdpbmcpKSB7XG4gICAgICAgICAgICB1cmxGaWx0ZXIgPSB0aGlzLmdldFVybEZpbHRlcihwYWdpbmcsIFtdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyICsgYCR7cHJlZml4fS8ke2VudGl0eVR5cGV9LyR7aWR9LyR7ZGF0YVR5cGV9LyR7dXJsRmlsdGVyfWA7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5nZXQodXJsLCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNhdmVTdWJkYXRhKGVudGl0eVR5cGU6IHN0cmluZywgaWQ6IGFueSwgZGF0YVR5cGU6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJy9lZGdlL21hbmFnZW1lbnQvdjEnO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyICsgYCR7cHJlZml4fS8ke2VudGl0eVR5cGV9LyR7aWR9LyR7ZGF0YVR5cGV9YDtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBwYXJhbXMsIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZGVsZXRlU3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vJHtlbnRpdHlUeXBlfS8ke2lkfS8ke2RhdGFUeXBlfWA7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5kZWxldGUodXJsLCB7Ym9keTogcGFyYW1zfSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHJlc2V0RW5yb2xsbWVudChpZDogc3RyaW5nLCBkYXRlOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJy9lZGdlL21hbmFnZW1lbnQvdjEnO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyICsgYCR7cHJlZml4fS9hdXRoZW50aWNhdG9ycy8ke2lkLnRyaW0oKX0vcmUtZW5yb2xsYDtcbiAgICAgICAgY29uc3QgZXhwaXJlc0F0ID0gbW9tZW50KGRhdGUpLnV0YygpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7IGV4cGlyZXNBdDogZXhwaXJlc0F0IH07XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIGJvZHkpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSByZWlzc3VlRW5yb2xsbWVudChpZDogc3RyaW5nLCBkYXRlKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vZW5yb2xsbWVudHMvJHtpZH0vcmVmcmVzaGA7XG4gICAgICAgIGNvbnN0IGV4cGlyZXNBdCA9IG1vbWVudChkYXRlKS51dGMoKS50b0lTT1N0cmluZygpO1xuICAgICAgICBjb25zdCBib2R5ID0geyBleHBpcmVzQXQ6IGV4cGlyZXNBdCB9O1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBib2R5KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZGVsZXRlKHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aDtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlcjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IHVybCArIHByZWZpeCArIFwiL1wiICsgdHlwZSArICcvJyArIGlkO1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQuZGVsZXRlKHNlcnZpY2VVcmwsIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FsbChjYWxsVXJsKSB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aDtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlcjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IHVybCArIHByZWZpeCArIFwiL1wiICsgY2FsbFVybDtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LmdldChzZXJ2aWNlVXJsLCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsRmlsdGVyKHBhZ2luZywgZmlsdGVyczogYW55W10pIHtcbiAgICAgICAgbGV0IHVybEZpbHRlciA9ICcnO1xuICAgICAgICBsZXQgdG9TZWFyY2hPbiA9IFwibmFtZVwiO1xuICAgICAgICBsZXQgbm9TZWFyY2ggPSBmaWx0ZXJzPy5sZW5ndGggPD0gMDtcbiAgICAgICAgaWYgKGlzRW1wdHkocGFnaW5nKSkge1xuICAgICAgICAgICAgcGFnaW5nID0gdGhpcy5ERUZBVUxUX1BBR0lORztcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFnaW5nICYmIHBhZ2luZy5zb3J0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChwYWdpbmcuc2VhcmNoT24pIHRvU2VhcmNoT24gPSBwYWdpbmcuc2VhcmNoT247XG4gICAgICAgICAgICBpZiAocGFnaW5nLm5vU2VhcmNoKSBub1NlYXJjaCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoIXBhZ2luZy5maWx0ZXIpIHBhZ2luZy5maWx0ZXIgPSBcIlwiO1xuICAgICAgICAgICAgaWYgKCFpc0FycmF5KHBhZ2luZy5maWx0ZXIpICYmIGlzTmFOKHBhZ2luZy5maWx0ZXIpKSB7XG4gICAgICAgICAgICAgICAgcGFnaW5nLmZpbHRlciA9IHBhZ2luZy5maWx0ZXIuc3BsaXQoJyMnKS5qb2luKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJzLmZvckVhY2goKGZpbHRlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJWYWwgPSAnJztcbiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdURVhUSU5QVVQnOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZXJiID0gZmlsdGVyLnZlcmIgPyBmaWx0ZXIudmVyYiA6ICdjb250YWlucyc7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclZhbCA9IGAke2ZpbHRlci5jb2x1bW5JZH0gJHt2ZXJifSBcIiR7ZmlsdGVyLnZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnU0VMRUNUJzpcbiAgICAgICAgICAgICAgICBjYXNlICdDT01CTyc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IChpc051bWJlcihmaWx0ZXIudmFsdWUpIHx8IGlzQm9vbGVhbihmaWx0ZXIudmFsdWUpKSA/IGAke2ZpbHRlci52YWx1ZX1gIDogYFwiJHtmaWx0ZXIudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9ID0gJHt2YWx9YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnREFURVRJTUUnOlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9ID49IGRhdGV0aW1lKCR7ZmlsdGVyLnZhbHVlWzBdfSkgYW5kICR7ZmlsdGVyLmNvbHVtbklkfSA8PSBkYXRldGltZSgke2ZpbHRlci52YWx1ZVsxXX0pYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQVRUUklCVVRFJzpcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVmFsID0gdGhpcy5nZXRBdHRyaWJ1dGVGaWx0ZXIoZmlsdGVyLnZhbHVlLCBmaWx0ZXIuY29sdW1uSWQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdCT09MRUFOJzpcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVmFsID0gYCR7ZmlsdGVyLmNvbHVtbklkfT0ke2ZpbHRlci52YWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9IGNvbnRhaW5zIFwiJHtmaWx0ZXIudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbmRleCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdXJsRmlsdGVyID0gYD9maWx0ZXI9ICR7ZmlsdGVyVmFsfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVybEZpbHRlciArPSBgIGFuZCAke2ZpbHRlclZhbH1gXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobm9TZWFyY2gpIHtcbiAgICAgICAgICAgIGlmIChwYWdpbmcucGFnZSAhPT0gLTEpIHVybEZpbHRlciA9IFwiP2xpbWl0PVwiICsgcGFnaW5nLnRvdGFsICsgXCImb2Zmc2V0PVwiICsgKChwYWdpbmcucGFnZSAtIDEpICogcGFnaW5nLnRvdGFsKSAgKyBcIiZzb3J0PVwiICsgcGFnaW5nLnNvcnQgKyBcIiBcIiArIHBhZ2luZy5vcmRlcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybEZpbHRlciArPSBgJmxpbWl0PSR7cGFnaW5nLnRvdGFsfSZvZmZzZXQ9JHsoKHBhZ2luZy5wYWdlIC0gMSkgKiBwYWdpbmcudG90YWwpfSZzb3J0PSR7cGFnaW5nLnNvcnR9ICAke3BhZ2luZy5vcmRlcn1gXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVybEZpbHRlcjtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBzY2hlbWEoZGF0YSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5kZXJlZmVyZW5jZUpTT05TY2hlbWEoZGF0YSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGRlcmVmZXJlbmNlSlNPTlNjaGVtYShkYXRhOiBhbnkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTtcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gYXdhaXQgcmVzb2x2ZXIucmVzb2x2ZShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHNjaGVtYS5yZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0QXR0cmlidXRlRmlsdGVyKHZhbCwgY29sdW1uSWQpIHtcbiAgICAgICAgbGV0IGZpbHRlciA9ICcnO1xuICAgICAgICBpZiAoaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICB2YWwuZm9yRWFjaCgoYXR0ciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlciArPSAnIG9yICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbHRlciArPSBgYW55T2YoJHtjb2x1bW5JZH0pID0gXCIke2F0dHJ9XCJgO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXIgPSBgYW55T2YoJHtjb2x1bW5JZH0pID0gXCIke3ZhbH1cImA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9XG59XG4iXX0=
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1jb250cm9sbGVyLWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9zZXJ2aWNlcy96aXRpLWNvbnRyb2xsZXItZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFrQixNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLEVBQUUsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUM3RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0FBRTVCLE1BR2EseUJBQTBCLFNBQVEsZUFBZTtJQUUxRCxZQUFxQixNQUFxQixFQUNyQixPQUF1QixFQUNOLGVBQWdDLEVBQ2pELFVBQXNCLEVBQ3RCLE1BQWM7UUFFL0IsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQU4zQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBRXZCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUduQyxDQUFDO0lBRUQsSUFBSSxDQUFDLElB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Q3JCLENBQUM7SUFFUSxNQUFNLENBQUMsSUFBSTtRQUNoQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxJQUFTO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBRyxFQUFFLFFBQVE7UUFDNUIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDeEIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO29CQUNYLE1BQU0sSUFBSSxNQUFNLENBQUM7aUJBQ3BCO2dCQUNELE1BQU0sSUFBSSxTQUFTLFFBQVEsUUFBUSxJQUFJLEdBQUcsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxNQUFNLEdBQUcsU0FBUyxRQUFRLFFBQVEsR0FBRyxHQUFHLENBQUM7U0FDNUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOytHQWpUUSx5QkFBeUIsNkVBSWQsZ0JBQWdCO21IQUozQix5QkFBeUIsY0FGdEIsTUFBTTs7U0FFVCx5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtnQixNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2xvZ2dlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuL3NldHRpbmdzLnNlcnZpY2VcIjtcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtGaWx0ZXJPYmp9IGZyb20gXCIuLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7Wml0aURhdGFTZXJ2aWNlfSBmcm9tIFwiLi96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtpc0VtcHR5LCBpc0FycmF5LCBpc051bWJlciwgaXNCb29sZWFufSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge1Jlc29sdmVyfSBmcm9tIFwiQHN0b3BsaWdodC9qc29uLXJlZi1yZXNvbHZlclwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgWml0aUNvbnRyb2xsZXJEYXRhU2VydmljZSBleHRlbmRzIFppdGlEYXRhU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihvdmVycmlkZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGUgZ3Jvd2xlcjogR3Jvd2xlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICAgICAgICAgICAgICBvdmVycmlkZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICAgIG92ZXJyaWRlIHJvdXRlcjogUm91dGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGxvZ2dlciwgZ3Jvd2xlciwgc2V0dGluZ3NTZXJ2aWNlLCBodHRwQ2xpZW50LCByb3V0ZXIpO1xuICAgIH1cblxuICAgIHBvc3QodHlwZSwgbW9kZWwsIGNoYWluZWQgPSBmYWxzZSwgY29udGVudFR5cGU/KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdXJsICsgcHJlZml4ICsgXCIvXCIgKyB0eXBlO1xuICAgICAgICBsZXQgb3B0aW9ucyA9IHt9O1xuICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IGNvbnRlbnRUeXBlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zID0geyBoZWFkZXJzIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIG1vZGVsLCBvcHRpb25zKS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9PSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHV0KHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZCA9IGZhbHNlKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlcjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IHVybCArIHByZWZpeCArIFwiL1wiICsgdHlwZSArICcvJyArIGlkO1xuICAgICAgICB0aGlzLmh0dHBDbGllbnQucGF0Y2goc2VydmljZVVybCwgbW9kZWwsIHt9KTtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnB1dChzZXJ2aWNlVXJsLCBtb2RlbCwge30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwYXRjaCh0eXBlLCBtb2RlbCwgaWQsIGNoYWluZWQgPSBmYWxzZSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aCB8fCAnL2VkZ2UvbWFuYWdlbWVudC92MSc7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXI7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB1cmwgKyBwcmVmaXggKyBcIi9cIiArIHR5cGUgKyAnLycgKyBpZDtcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBhdGNoKHNlcnZpY2VVcmwsIG1vZGVsLCB7fSk7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wYXRjaChzZXJ2aWNlVXJsLCBtb2RlbCwge30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQodHlwZTogc3RyaW5nLCBwYWdpbmc6IGFueSwgZmlsdGVyczogRmlsdGVyT2JqW10gPSBbXSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aCB8fCAnL2VkZ2UvbWFuYWdlbWVudC92MSc7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXI7XG4gICAgICAgIGNvbnN0IHVybEZpbHRlciA9IHRoaXMuZ2V0VXJsRmlsdGVyKHBhZ2luZywgZmlsdGVycyk7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB1cmwgKyBwcmVmaXggKyBcIi9cIiArIHR5cGUgKyB1cmxGaWx0ZXI7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5nZXQoc2VydmljZVVybCx7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBwYWdpbmc/OiBhbnksIGNvbnRlbnRUeXBlPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcblxuICAgICAgICBsZXQgdXJsRmlsdGVyID0gJyc7XG4gICAgICAgIGlmICghaXNFbXB0eShwYWdpbmcpKSB7XG4gICAgICAgICAgICB1cmxGaWx0ZXIgPSB0aGlzLmdldFVybEZpbHRlcihwYWdpbmcsIFtdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyICsgYCR7cHJlZml4fS8ke2VudGl0eVR5cGV9LyR7aWR9LyR7ZGF0YVR5cGV9LyR7dXJsRmlsdGVyfWA7XG5cbiAgICAgICAgbGV0IG9wdGlvbnM6IGFueSA9IHt9O1xuICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdCc6IGNvbnRlbnRUeXBlLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucyA9IHsgaGVhZGVycyB9O1xuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL2p3dCcpID49IDApIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnJlc3BvbnNlVHlwZSA9ICd0ZXh0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCwgb3B0aW9ucykucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNhdmVTdWJkYXRhKGVudGl0eVR5cGU6IHN0cmluZywgaWQ6IGFueSwgZGF0YVR5cGU6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJy9lZGdlL21hbmFnZW1lbnQvdjEnO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyICsgYCR7cHJlZml4fS8ke2VudGl0eVR5cGV9LyR7aWR9LyR7ZGF0YVR5cGV9YDtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBwYXJhbXMsIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZGVsZXRlU3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vJHtlbnRpdHlUeXBlfS8ke2lkfS8ke2RhdGFUeXBlfWA7XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5kZWxldGUodXJsLCB7Ym9keTogcGFyYW1zfSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHJlc2V0RW5yb2xsbWVudChpZDogc3RyaW5nLCBkYXRlOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlWZXJzaW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmFwaVZlcnNpb25zIHx8IHt9O1xuICAgICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJy9lZGdlL21hbmFnZW1lbnQvdjEnO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyICsgYCR7cHJlZml4fS9hdXRoZW50aWNhdG9ycy8ke2lkLnRyaW0oKX0vcmUtZW5yb2xsYDtcbiAgICAgICAgY29uc3QgZXhwaXJlc0F0ID0gbW9tZW50KGRhdGUpLnV0YygpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7IGV4cGlyZXNBdDogZXhwaXJlc0F0IH07XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIGJvZHkpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSByZWlzc3VlRW5yb2xsbWVudChpZDogc3RyaW5nLCBkYXRlKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVmVyc2lvbnMgPSB0aGlzLnNldHRpbmdzU2VydmljZS5hcGlWZXJzaW9ucyB8fCB7fTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYXBpVmVyc2lvbnNbXCJlZGdlLW1hbmFnZW1lbnRcIl0/LnYxPy5wYXRoIHx8ICcvZWRnZS9tYW5hZ2VtZW50L3YxJztcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlciArIGAke3ByZWZpeH0vZW5yb2xsbWVudHMvJHtpZH0vcmVmcmVzaGA7XG4gICAgICAgIGNvbnN0IGV4cGlyZXNBdCA9IG1vbWVudChkYXRlKS51dGMoKS50b0lTT1N0cmluZygpO1xuICAgICAgICBjb25zdCBib2R5ID0geyBleHBpcmVzQXQ6IGV4cGlyZXNBdCB9O1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBib2R5KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZGVsZXRlKHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aDtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlcjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IHVybCArIHByZWZpeCArIFwiL1wiICsgdHlwZSArICcvJyArIGlkO1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQuZGVsZXRlKHNlcnZpY2VVcmwsIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FsbChjYWxsVXJsKSB7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnMgfHwge307XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGFwaVZlcnNpb25zW1wiZWRnZS1tYW5hZ2VtZW50XCJdPy52MT8ucGF0aDtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2VsZWN0ZWRFZGdlQ29udHJvbGxlcjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IHVybCArIHByZWZpeCArIFwiL1wiICsgY2FsbFVybDtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50LmdldChzZXJ2aWNlVXJsLCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsRmlsdGVyKHBhZ2luZywgZmlsdGVyczogYW55W10pIHtcbiAgICAgICAgbGV0IHVybEZpbHRlciA9ICcnO1xuICAgICAgICBsZXQgdG9TZWFyY2hPbiA9IFwibmFtZVwiO1xuICAgICAgICBsZXQgbm9TZWFyY2ggPSBmaWx0ZXJzPy5sZW5ndGggPD0gMDtcbiAgICAgICAgaWYgKGlzRW1wdHkocGFnaW5nKSkge1xuICAgICAgICAgICAgcGFnaW5nID0gdGhpcy5ERUZBVUxUX1BBR0lORztcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFnaW5nICYmIHBhZ2luZy5zb3J0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChwYWdpbmcuc2VhcmNoT24pIHRvU2VhcmNoT24gPSBwYWdpbmcuc2VhcmNoT247XG4gICAgICAgICAgICBpZiAocGFnaW5nLm5vU2VhcmNoKSBub1NlYXJjaCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoIXBhZ2luZy5maWx0ZXIpIHBhZ2luZy5maWx0ZXIgPSBcIlwiO1xuICAgICAgICAgICAgaWYgKCFpc0FycmF5KHBhZ2luZy5maWx0ZXIpICYmIGlzTmFOKHBhZ2luZy5maWx0ZXIpKSB7XG4gICAgICAgICAgICAgICAgcGFnaW5nLmZpbHRlciA9IHBhZ2luZy5maWx0ZXIuc3BsaXQoJyMnKS5qb2luKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJzLmZvckVhY2goKGZpbHRlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJWYWwgPSAnJztcbiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdURVhUSU5QVVQnOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZXJiID0gZmlsdGVyLnZlcmIgPyBmaWx0ZXIudmVyYiA6ICdjb250YWlucyc7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclZhbCA9IGAke2ZpbHRlci5jb2x1bW5JZH0gJHt2ZXJifSBcIiR7ZmlsdGVyLnZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnU0VMRUNUJzpcbiAgICAgICAgICAgICAgICBjYXNlICdDT01CTyc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IChpc051bWJlcihmaWx0ZXIudmFsdWUpIHx8IGlzQm9vbGVhbihmaWx0ZXIudmFsdWUpKSA/IGAke2ZpbHRlci52YWx1ZX1gIDogYFwiJHtmaWx0ZXIudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9ID0gJHt2YWx9YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnREFURVRJTUUnOlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9ID49IGRhdGV0aW1lKCR7ZmlsdGVyLnZhbHVlWzBdfSkgYW5kICR7ZmlsdGVyLmNvbHVtbklkfSA8PSBkYXRldGltZSgke2ZpbHRlci52YWx1ZVsxXX0pYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQVRUUklCVVRFJzpcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVmFsID0gdGhpcy5nZXRBdHRyaWJ1dGVGaWx0ZXIoZmlsdGVyLnZhbHVlLCBmaWx0ZXIuY29sdW1uSWQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdCT09MRUFOJzpcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVmFsID0gYCR7ZmlsdGVyLmNvbHVtbklkfT0ke2ZpbHRlci52YWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9IGNvbnRhaW5zIFwiJHtmaWx0ZXIudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbmRleCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdXJsRmlsdGVyID0gYD9maWx0ZXI9ICR7ZmlsdGVyVmFsfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVybEZpbHRlciArPSBgIGFuZCAke2ZpbHRlclZhbH1gXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobm9TZWFyY2gpIHtcbiAgICAgICAgICAgIGlmIChwYWdpbmcucGFnZSAhPT0gLTEpIHVybEZpbHRlciA9IFwiP2xpbWl0PVwiICsgcGFnaW5nLnRvdGFsICsgXCImb2Zmc2V0PVwiICsgKChwYWdpbmcucGFnZSAtIDEpICogcGFnaW5nLnRvdGFsKSAgKyBcIiZzb3J0PVwiICsgcGFnaW5nLnNvcnQgKyBcIiBcIiArIHBhZ2luZy5vcmRlcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybEZpbHRlciArPSBgJmxpbWl0PSR7cGFnaW5nLnRvdGFsfSZvZmZzZXQ9JHsoKHBhZ2luZy5wYWdlIC0gMSkgKiBwYWdpbmcudG90YWwpfSZzb3J0PSR7cGFnaW5nLnNvcnR9ICAke3BhZ2luZy5vcmRlcn1gXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVybEZpbHRlcjtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBzY2hlbWEoZGF0YSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5kZXJlZmVyZW5jZUpTT05TY2hlbWEoZGF0YSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGRlcmVmZXJlbmNlSlNPTlNjaGVtYShkYXRhOiBhbnkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoKTtcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gYXdhaXQgcmVzb2x2ZXIucmVzb2x2ZShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHNjaGVtYS5yZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0QXR0cmlidXRlRmlsdGVyKHZhbCwgY29sdW1uSWQpIHtcbiAgICAgICAgbGV0IGZpbHRlciA9ICcnO1xuICAgICAgICBpZiAoaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICB2YWwuZm9yRWFjaCgoYXR0ciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlciArPSAnIG9yICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbHRlciArPSBgYW55T2YoJHtjb2x1bW5JZH0pID0gXCIke2F0dHJ9XCJgO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXIgPSBgYW55T2YoJHtjb2x1bW5JZH0pID0gXCIke3ZhbH1cImA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9XG59XG4iXX0=
@@ -62,6 +62,25 @@ class ZitiDataService {
62
62
  }
63
63
  return filters;
64
64
  }
65
+ getErrorMessage(resp) {
66
+ let errorMessage;
67
+ if (resp?.error?.error?.message) {
68
+ errorMessage = resp?.error?.error?.message;
69
+ }
70
+ else if (resp?.error?.error?.cause?.message) {
71
+ errorMessage = resp?.error?.error?.cause?.message;
72
+ }
73
+ else if (resp?.error?.error?.cause?.reason) {
74
+ errorMessage = resp?.error?.error?.cause?.reason;
75
+ }
76
+ else if (resp?.error?.message) {
77
+ errorMessage = resp?.error?.message;
78
+ }
79
+ else {
80
+ errorMessage = 'An unknown error occurred';
81
+ }
82
+ return errorMessage;
83
+ }
65
84
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiDataService, deps: [{ token: i1.LoggerService }, { token: i2.GrowlerService }, { token: i3.SettingsServiceClass }, { token: i4.HttpClient }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
66
85
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiDataService, providedIn: 'root' }); }
67
86
  }
@@ -72,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
72
91
  providedIn: 'root'
73
92
  }]
74
93
  }], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.GrowlerService }, { type: i3.SettingsServiceClass }, { type: i4.HttpClient }, { type: i5.Router }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUUsVUFBVSxFQUFVLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVNuRSxPQUFPLEVBQUMsU0FBUyxFQUFzQixNQUFNLFFBQVEsQ0FBQzs7Ozs7OztBQUd0RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQUUxRixNQUdzQixlQUFlO0lBRW5DLElBQVcsY0FBYztRQUN2QixPQUFPLFNBQVMsQ0FBQztZQUNmLE1BQU0sRUFBRSxFQUFFO1lBQ1YsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxDQUFDO1lBQ1AsUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsR0FBRztTQUNYLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxZQUFzQixNQUFxQixFQUNyQixPQUF1QixFQUN2QixlQUFxQyxFQUNyQyxVQUFzQixFQUN0QixNQUFjO1FBSmQsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixvQkFBZSxHQUFmLGVBQWUsQ0FBc0I7UUFDckMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2pDLENBQUM7SUFlSixhQUFhLENBQUMsY0FBYztRQUMxQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlCLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDbEIsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNmO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sR0FBRztnQkFDUjtvQkFDRSxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsWUFBWTtvQkFDeEIsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLEtBQUssRUFBRSxjQUFjO2lCQUN0QjthQUNGLENBQUM7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7K0dBdERtQixlQUFlO21IQUFmLGVBQWUsY0FGdkIsTUFBTTs7U0FFRSxlQUFlOzRGQUFmLGVBQWU7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2xvZ2dlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuL3NldHRpbmdzLnNlcnZpY2VcIjtcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge0ZpbHRlck9ian0gZnJvbSBcIi4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlQ2xhc3MgfSBmcm9tICcuL2xvZ2luLXNlcnZpY2UuY2xhc3MnO1xuXG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eSwgc29ydGVkVW5pcX0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2VDbGFzc30gZnJvbSBcIi4vc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuXG5leHBvcnQgY29uc3QgWklUSV9EQVRBX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48Wml0aURhdGFTZXJ2aWNlPignWklUSV9EQVRBX1NFUlZJQ0UnKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgWml0aURhdGFTZXJ2aWNlIHtcblxuICBwdWJsaWMgZ2V0IERFRkFVTFRfUEFHSU5HKCkge1xuICAgIHJldHVybiBjbG9uZURlZXAoe1xuICAgICAgZmlsdGVyOiBcIlwiLFxuICAgICAgbm9TZWFyY2g6IHRydWUsXG4gICAgICBvcmRlcjogXCJhc2NcIixcbiAgICAgIHBhZ2U6IDEsXG4gICAgICBzZWFyY2hPbjogXCJuYW1lXCIsXG4gICAgICBzb3J0OiBcIm5hbWVcIixcbiAgICAgIHRvdGFsOiAxMDBcbiAgICB9KVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGdyb3dsZXI6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgYWJzdHJhY3QgcG9zdCh0eXBlLCBtb2RlbCwgY2hhaW5lZD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHB1dCh0eXBlLCBtb2RlbCwgaWQsIGNoYWluZWQ/KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBwYXRjaCh0eXBlLCBtb2RlbCwgaWQsIGNoYWluZWQ/KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBnZXQodHlwZTogc3RyaW5nLCBwYWdpbmc6IGFueSwgZmlsdGVyczogRmlsdGVyT2JqW10sIHVybD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGdldFN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBwYWdpbmc/OiBhbnkpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHNhdmVTdWJkYXRhKGVudGl0eVR5cGU6IHN0cmluZywgaWQ6IGFueSwgZGF0YVR5cGU6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGRlbGV0ZVN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZGVsZXRlKHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgY2FsbCh1cmw6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcmVzZXRFbnJvbGxtZW50KGlkOiBzdHJpbmcsIGRhdGU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcmVpc3N1ZUVucm9sbG1lbnQoaWQ6IHN0cmluZywgZGF0ZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBzY2hlbWEoZGF0YTogYW55KTogUHJvbWlzZTxhbnk+O1xuXG4gIGdldFJvbGVGaWx0ZXIocm9sZUF0dHJpYnV0ZXMpIHtcbiAgICBsZXQgaGFzQWxsID0gZmFsc2U7XG4gICAgcm9sZUF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgaWYgKGF0dHIgPT09ICdhbGwnKSB7XG4gICAgICAgIGhhc0FsbCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IGZpbHRlcnMgPSBbXTtcbiAgICBpZiAoIWhhc0FsbCkge1xuICAgICAgZmlsdGVycyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbHVtbklkOiBcInJvbGVBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgZmlsdGVyTmFtZTogXCJBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgbGFiZWw6IFwiXCIsXG4gICAgICAgICAgdHlwZTogXCJBVFRSSUJVVEVcIixcbiAgICAgICAgICB2YWx1ZTogcm9sZUF0dHJpYnV0ZXNcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cbn1cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUUsVUFBVSxFQUFVLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVNuRSxPQUFPLEVBQUMsU0FBUyxFQUFzQixNQUFNLFFBQVEsQ0FBQzs7Ozs7OztBQUd0RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQUUxRixNQUdzQixlQUFlO0lBRW5DLElBQVcsY0FBYztRQUN2QixPQUFPLFNBQVMsQ0FBQztZQUNmLE1BQU0sRUFBRSxFQUFFO1lBQ1YsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxDQUFDO1lBQ1AsUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsR0FBRztTQUNYLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxZQUFzQixNQUFxQixFQUNyQixPQUF1QixFQUN2QixlQUFxQyxFQUNyQyxVQUFzQixFQUN0QixNQUFjO1FBSmQsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixvQkFBZSxHQUFmLGVBQWUsQ0FBc0I7UUFDckMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2pDLENBQUM7SUFlSixhQUFhLENBQUMsY0FBYztRQUMxQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlCLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDbEIsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNmO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sR0FBRztnQkFDUjtvQkFDRSxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsWUFBWTtvQkFDeEIsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLEtBQUssRUFBRSxjQUFjO2lCQUN0QjthQUNGLENBQUM7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBSTtRQUNsQixJQUFJLFlBQVksQ0FBQztRQUNqQixJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUMvQixZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1NBQzVDO2FBQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQzdDLFlBQVksR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1NBQ25EO2FBQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQzVDLFlBQVksR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1NBQ2xEO2FBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUM5QixZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7U0FDckM7YUFBTTtZQUNMLFlBQVksR0FBRywyQkFBMkIsQ0FBQztTQUM1QztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7K0dBdEVtQixlQUFlO21IQUFmLGVBQWUsY0FGdkIsTUFBTTs7U0FFRSxlQUFlOzRGQUFmLGVBQWU7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2xvZ2dlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuL3NldHRpbmdzLnNlcnZpY2VcIjtcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge0ZpbHRlck9ian0gZnJvbSBcIi4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlQ2xhc3MgfSBmcm9tICcuL2xvZ2luLXNlcnZpY2UuY2xhc3MnO1xuXG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eSwgc29ydGVkVW5pcX0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2VDbGFzc30gZnJvbSBcIi4vc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuXG5leHBvcnQgY29uc3QgWklUSV9EQVRBX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48Wml0aURhdGFTZXJ2aWNlPignWklUSV9EQVRBX1NFUlZJQ0UnKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgWml0aURhdGFTZXJ2aWNlIHtcblxuICBwdWJsaWMgZ2V0IERFRkFVTFRfUEFHSU5HKCkge1xuICAgIHJldHVybiBjbG9uZURlZXAoe1xuICAgICAgZmlsdGVyOiBcIlwiLFxuICAgICAgbm9TZWFyY2g6IHRydWUsXG4gICAgICBvcmRlcjogXCJhc2NcIixcbiAgICAgIHBhZ2U6IDEsXG4gICAgICBzZWFyY2hPbjogXCJuYW1lXCIsXG4gICAgICBzb3J0OiBcIm5hbWVcIixcbiAgICAgIHRvdGFsOiAxMDBcbiAgICB9KVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGdyb3dsZXI6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgYWJzdHJhY3QgcG9zdCh0eXBlLCBtb2RlbCwgY2hhaW5lZD8sIGNvbnRlbnRUeXBlPyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcHV0KHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHBhdGNoKHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGdldCh0eXBlOiBzdHJpbmcsIHBhZ2luZzogYW55LCBmaWx0ZXJzOiBGaWx0ZXJPYmpbXSwgdXJsPyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZ2V0U3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhZ2luZz86IGFueSwgY29udGVudFR5cGU/KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBzYXZlU3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBkZWxldGVTdWJkYXRhKGVudGl0eVR5cGU6IHN0cmluZywgaWQ6IGFueSwgZGF0YVR5cGU6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGRlbGV0ZSh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGNhbGwodXJsOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHJlc2V0RW5yb2xsbWVudChpZDogc3RyaW5nLCBkYXRlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHJlaXNzdWVFbnJvbGxtZW50KGlkOiBzdHJpbmcsIGRhdGU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3Qgc2NoZW1hKGRhdGE6IGFueSk6IFByb21pc2U8YW55PjtcblxuICBnZXRSb2xlRmlsdGVyKHJvbGVBdHRyaWJ1dGVzKSB7XG4gICAgbGV0IGhhc0FsbCA9IGZhbHNlO1xuICAgIHJvbGVBdHRyaWJ1dGVzLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgIGlmIChhdHRyID09PSAnYWxsJykge1xuICAgICAgICBoYXNBbGwgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCBmaWx0ZXJzID0gW107XG4gICAgaWYgKCFoYXNBbGwpIHtcbiAgICAgIGZpbHRlcnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb2x1bW5JZDogXCJyb2xlQXR0cmlidXRlc1wiLFxuICAgICAgICAgIGZpbHRlck5hbWU6IFwiQXR0cmlidXRlc1wiLFxuICAgICAgICAgIGxhYmVsOiBcIlwiLFxuICAgICAgICAgIHR5cGU6IFwiQVRUUklCVVRFXCIsXG4gICAgICAgICAgdmFsdWU6IHJvbGVBdHRyaWJ1dGVzXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKHJlc3ApIHtcbiAgICBsZXQgZXJyb3JNZXNzYWdlO1xuICAgIGlmIChyZXNwPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yPy5lcnJvcj8ubWVzc2FnZTtcbiAgICB9IGVsc2UgaWYgKHJlc3A/LmVycm9yPy5lcnJvcj8uY2F1c2U/Lm1lc3NhZ2UpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yPy5lcnJvcj8uY2F1c2U/Lm1lc3NhZ2U7XG4gICAgfSBlbHNlIGlmIChyZXNwPy5lcnJvcj8uZXJyb3I/LmNhdXNlPy5yZWFzb24pIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yPy5lcnJvcj8uY2F1c2U/LnJlYXNvbjtcbiAgICB9ZWxzZSBpZiAocmVzcD8uZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yPy5tZXNzYWdlO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCc7XG4gICAgfVxuICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XG4gIH1cbn1cbiJdfQ==
@@ -208,10 +208,15 @@ let ListPageServiceClass = class ListPageServiceClass {
208
208
  basePath = basePath ? basePath : this.basePath;
209
209
  this.router?.navigateByUrl(`${basePath}/${itemId}`);
210
210
  }
211
+ remToPx(remValue) {
212
+ const rootFontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize);
213
+ return remValue * rootFontSize;
214
+ }
215
+ ;
211
216
  };
212
217
  ListPageServiceClass = __decorate([
213
218
  __param(0, Inject(SETTINGS_SERVICE)),
214
219
  __param(3, Inject(SHAREDZ_EXTENSION))
215
220
  ], ListPageServiceClass);
216
221
  export { ListPageServiceClass };
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFOztBQUVGLE9BQU8sRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQU1qRixPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFtQixpQkFBaUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25HLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsSUFBc0Isb0JBQW9CLEdBQTFDLE1BQXNCLG9CQUFvQjtJQThFdEMsWUFDOEIsUUFBd0MsRUFDeEQsYUFBcUMsRUFDckMsa0JBQXNDLEVBQ3JCLGdCQUE0QyxFQUM3RCxNQUFlO1FBSlcsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDeEQsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDWCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQzdELFdBQU0sR0FBTixNQUFNLENBQVM7UUEzRTdCLGdCQUFXLEdBQUc7WUFDVixFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQztZQUM3QixFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQztZQUN6QixFQUFD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SUFHeEIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtHQWxGWixvQkFBb0IsQ0FnT3pDO1NBaE9xQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBpbmplY3QsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLCBGaWx0ZXJPYmp9IGZyb20gXCIuLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7VmFsaWRhdG9yQ2FsbGJhY2t9IGZyb20gXCIuLi9mZWF0dXJlcy9saXN0LXBhZ2UtZmVhdHVyZXMvbGlzdC1wYWdlLWZvcm0vbGlzdC1wYWdlLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge0RpYWxvZ1JlZn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kaWFsb2dcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge0NvbmZpcm1Db21wb25lbnR9IGZyb20gXCIuLi9mZWF0dXJlcy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge1NFVFRJTkdTX1NFUlZJQ0UsIFNldHRpbmdzU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3NldHRpbmdzLnNlcnZpY2VcIjtcblxuaW1wb3J0IHtpc0VtcHR5LCBjbG9uZURlZXB9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7Q3N2RG93bmxvYWRTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvY3N2LWRvd25sb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi9zZXJ2aWNlcy9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge0V4dGVuc2lvblNlcnZpY2UsIFNIQVJFRFpfRVhURU5TSU9OfSBmcm9tIFwiLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50L21vbWVudFwiO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpc3RQYWdlU2VydmljZUNsYXNzIHtcblxuICAgIGFic3RyYWN0IGluaXRUYWJsZUNvbHVtbnMoKTogYW55W107XG4gICAgYWJzdHJhY3QgZ2V0RGF0YShmaWx0ZXJzPzogRmlsdGVyT2JqW10sIHNvcnQ/OiBhbnksIHBhZ2U/OiBhbnkpOiBQcm9taXNlPGFueVtdPjtcbiAgICBhYnN0cmFjdCB2YWxpZGF0ZTogVmFsaWRhdG9yQ2FsbGJhY2s7XG4gICAgYWJzdHJhY3Qgb3BlblVwZGF0ZShlbnRpdHk/OiBhbnkpO1xuICAgIGFic3RyYWN0IHJlc291cmNlVHlwZTogc3RyaW5nO1xuXG4gICAgQ1NWX0NPTFVNTlMgPSBbXG4gICAgICAgIHtsYWJlbDogJ05hbWUnLCBwYXRoOiAnbmFtZSd9LFxuICAgICAgICB7bGFiZWw6ICdJRCcsIHBhdGg6ICdpZCd9LFxuICAgICAgICB7bGFiZWw6ICdDcmVhdGVkIEF0JywgcGF0aDogJ2NyZWF0ZWRBdCd9XG4gICAgXTtcblxuICAgIGJhc2VQYXRoOiBzdHJpbmcgPSAnJztcblxuICAgIGhlYWRlckNvbXBvbmVudFBhcmFtcyA9IHtcbiAgICAgICAgZmlsdGVyVHlwZTogJ1RFWFRJTlBVVCcsXG4gICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWVcbiAgICB9O1xuXG4gICAgREVGQVVMVF9QQUdJTkc6IGFueSA9IHtcbiAgICAgICAgZmlsdGVyOiBcIlwiLFxuICAgICAgICBub1NlYXJjaDogZmFsc2UsXG4gICAgICAgIG9yZGVyOiBcImFzY1wiLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBzZWFyY2hPbjogXCJuYW1lXCIsXG4gICAgICAgIHNvcnQ6IFwibmFtZVwiLFxuICAgICAgICB0b3RhbDogNTBcbiAgICB9XG4gICAgdG90YWxDb3VudCA9IDA7XG4gICAgZGF0YVNlcnZpY2U6IFppdGlEYXRhU2VydmljZTtcbiAgICByZWZyZXNoRGF0YTogKHNvcnQ/OiB7c29ydEJ5OiBzdHJpbmcsIG9yZGVyaW5nOiBzdHJpbmd9KSA9PiB2b2lkIHwgdW5kZWZpbmVkO1xuXG4gICAgc2VsZWN0ZWRFbnRpdHlJZDogU3RyaW5nO1xuICAgIG1lbnVJdGVtczogYW55ID0gW107XG4gICAgdGFibGVIZWFkZXJBY3Rpb25zOiBhbnkgPSBbXTtcbiAgICBjdXJyZW50U2V0dGluZ3M6IGFueSA9IHt9O1xuICAgIGRpYWxvZ1JlZjogYW55O1xuICAgIHNpZGVNb2RhbE9wZW4gPSBmYWxzZTtcbiAgICBjdXJyZW50U29ydCA9IHtcbiAgICAgICAgc29ydEJ5OiAnbmFtZScsXG4gICAgICAgIG9yZGVyaW5nOiAnYXNjJ1xuICAgIH07XG5cbiAgICBuYW1lQ29sdW1uUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImNvbCBjZWxsLW5hbWUtcmVuZGVyZXJcIiBkYXRhLWlkPVwiJHtyb3c/LmRhdGE/LmlkfVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPiR7cm93Py5kYXRhPy5uYW1lfTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICB9XG5cbiAgICByb2xlc1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICBjb25zdCBjb2xJZCA9IHJvdy5jb2x1bW4uY29sSWQ7XG4gICAgICAgIGxldCByb2xlcyA9ICcnO1xuICAgICAgICBpZiAocm93Py5kYXRhPy5bY29sSWQgKyAnRGlzcGxheSddKSB7XG4gICAgICAgICAgICByb3c/LmRhdGE/Lltjb2xJZCArICdEaXNwbGF5J10uZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGF0dHI/Lm5hbWU/LmluZGV4T2YoJ0AnKSA9PT0gMCA/ICdhdHRhZycgOiAnaGFzaHRhZyc7XG4gICAgICAgICAgICAgICAgcm9sZXMgKz0gYDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NOYW1lfVwiPiR7YXR0ci5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctbmFtZVwiPiR7YXR0ci5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3c/LmRhdGE/Lltjb2xJZF0/LmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBhdHRyLmluZGV4T2YoJ0AnKSA9PT0gMCA/ICdhdHRhZycgOiAnaGFzaHRhZyc7XG4gICAgICAgICAgICAgICAgcm9sZXMgKz0gYDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NOYW1lfVwiPiR7YXR0cn08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnLW5hbWVcIj4ke2F0dHJ9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm9sZXM7XG4gICAgfVxuXG4gICAgY3JlYXRlZEF0Rm9ybWF0dGVyID0gKHJvdykgPT4ge1xuICAgICAgICByZXR1cm4gbW9tZW50KHJvdz8uZGF0YT8uY3JlYXRlZEF0KS5sb2NhbCgpLmZvcm1hdCgnTS9EL1lZWVkgSEg6bW0gQScpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHByb3RlY3RlZCBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIHByb3RlY3RlZCBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoU0hBUkVEWl9FWFRFTlNJT04pIHByb3RlY3RlZCBleHRlbnNpb25TZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyPzogUm91dGVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UgPSBpbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpO1xuICAgICAgICB0aGlzLnNldHRpbmdzLnNldHRpbmdzQ2hhbmdlLnN1YnNjcmliZSgoc2V0dGluZ3MpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNFbXB0eSh0aGlzLnNldHRpbmdzPy5zZXR0aW5ncz8uc2Vzc2lvbj8uaWQpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNldHRpbmdzPy5zZXNzaW9uPy5pZCAhPT0gc2V0dGluZ3M/LnNlc3Npb24/LmlkICYmIHRoaXMucmVmcmVzaERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIH0pO1xuICAgICAgICByb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIGlmICghZXZlbnQ/LnNuYXBzaG90Py5yb3V0ZUNvbmZpZz8ucGF0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IGV2ZW50LnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGguc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gcGF0aFNlZ21lbnRzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbml0TWVudUFjdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmV4dGVuc2lvblNlcnZpY2UubGlzdEFjdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUl0ZW1zID0gdGhpcy5tZW51SXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHRlbnNpb25TZXJ2aWNlLmxpc3RBY3Rpb25zLmZvckVhY2goKGV4dEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uYWN0aW9uID09PSBleHRJdGVtLmFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGV4dEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGV0IGZpbHRlcmVkQWN0aW9ucyA9IHRoaXMuZXh0ZW5zaW9uU2VydmljZS5saXN0QWN0aW9ucy5maWx0ZXIoKGV4dEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXRoaXMubWVudUl0ZW1zLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uYWN0aW9uID09PSBleHRJdGVtLmFjdGlvbjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMgPSBbLi4udGhpcy5tZW51SXRlbXMsIC4uLmZpbHRlcmVkQWN0aW9uc107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRMaXN0SXRlbUV4dGVuc2lvbkFjdGlvbnMocm93KSB7XG4gICAgICAgIGlmICh0aGlzLmV4dGVuc2lvblNlcnZpY2UubGlzdEFjdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLmV4dGVuc2lvblNlcnZpY2UubGlzdEFjdGlvbnMubWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWN0aW9uLmFjdGlvbjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbLi4ucm93LmFjdGlvbkxpc3QsIC4uLmtleXNdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZG93bmxvYWRJdGVtcyhzZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgIHRoaXMuY3N2RG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkKFxuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZVR5cGUsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgdGhpcy5DU1ZfQ09MVU1OUyxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRvd25sb2FkQWxsSXRlbXMoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcGFnaW5nID0gY2xvbmVEZWVwKHRoaXMuREVGQVVMVF9QQUdJTkcpO1xuICAgICAgICBwYWdpbmcudG90YWwgPSAtMTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFibGVEYXRhKHRoaXMucmVzb3VyY2VUeXBlLCBwYWdpbmcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvd25sb2FkSXRlbXMocmVzdWx0cz8uZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRUYWJsZURhdGEocmVzb3VyY2VUeXBlOiBzdHJpbmcsIHBhZ2luZzogYW55LCBmaWx0ZXJzPzogRmlsdGVyT2JqW10sIHNvcnQ/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBpZiAoIXBhZ2luZykge1xuICAgICAgICAgICAgcGFnaW5nID0gey4uLnRoaXMuREVGQVVMVF9QQUdJTkd9O1xuICAgICAgICB9XG4gICAgICAgIGlmKHNvcnQpIHtcbiAgICAgICAgICAgIHBhZ2luZy5zb3J0ID0gc29ydC5zb3J0Qnk7XG4gICAgICAgICAgICBwYWdpbmcub3JkZXIgPSBzb3J0Lm9yZGVyaW5nO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGZpbHRlcnM/Lmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIHBhZ2luZy5ub1NlYXJjaCA9IGZhbHNlO1xuICAgICAgICAgICAgcGFnaW5nLnNlYXJjaE9uID0gZmlsdGVyc1tpZHhdLmNvbHVtbklkO1xuICAgICAgICAgICAgcGFnaW5nLmZpbHRlciA9IGZpbHRlcnNbaWR4XS52YWx1ZTtcbiAgICAgICAgICAgIHBhZ2luZy5yYXdGaWx0ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJpbmcubmV4dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0KHJlc291cmNlVHlwZSwgcGFnaW5nLCBmaWx0ZXJzKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJpbmcubmV4dChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNoZWNrRm9yQXNzb2NpYXRlZFNlcnZpY2VzKGNvbmZpZ3MpIHtcbiAgICAgICAgY29uc3QgY29uZmlnc1dpdGhBc3NvY2lhdGlvbnMgPSBbXTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcbiAgICAgICAgY29uZmlncy5mb3JFYWNoKChjb25maWcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb20gPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFN1YmRhdGEoJ2NvbmZpZ3MnLCBjb25maWcuaWQsICdzZXJ2aWNlcycpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VydmljZXMgPSByZXN1bHQuZGF0YSB8fCBbXTtcbiAgICAgICAgICAgICAgICBpZiAoc2VydmljZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25maWdzV2l0aEFzc29jaWF0aW9ucy5wdXNoKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb20pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjb25maWdzV2l0aEFzc29jaWF0aW9ucztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbXMoaWRzOiBzdHJpbmdbXSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb20gPSB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZSh0aGlzLnJlc291cmNlVHlwZSwgaWQpO1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9tKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxuXG4gICAgc29ydChzb3J0QnksIG9yZGVyaW5nPSAnYXNjJykge1xuICAgICAgICB0aGlzLmN1cnJlbnRTb3J0ID0ge3NvcnRCeSwgb3JkZXJpbmd9O1xuICAgICAgICBpZih0aGlzLnJlZnJlc2hEYXRhKSB0aGlzLnJlZnJlc2hEYXRhKHtzb3J0QnksIG9yZGVyaW5nfSk7XG4gICAgfVxuXG4gICAgaGFzU2VsZWN0ZWRUZXh0KCkge1xuICAgICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGV4dCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0Py5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldE5ldHdvcmtKd3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmdldCgnbmV0d29yay1qd3RzJywge30sIFtdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkVkaXRGb3JtKGl0ZW1JZCA9ICcnLCBiYXNlUGF0aD8pIHtcbiAgICAgICAgaWYgKGlzRW1wdHkoaXRlbUlkKSkge1xuICAgICAgICAgICAgaXRlbUlkID0gJ2NyZWF0ZSc7XG4gICAgICAgIH1cbiAgICAgICAgYmFzZVBhdGggPSBiYXNlUGF0aCA/IGJhc2VQYXRoIDogdGhpcy5iYXNlUGF0aDtcbiAgICAgICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlQnlVcmwoYCR7YmFzZVBhdGh9LyR7aXRlbUlkfWApO1xuICAgIH1cbn1cbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFOztBQUVGLE9BQU8sRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQU1qRixPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFtQixpQkFBaUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25HLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsSUFBc0Isb0JBQW9CLEdBQTFDLE1BQXNCLG9CQUFvQjtJQThFdEMsWUFDOEIsUUFBd0MsRUFDeEQsYUFBcUMsRUFDckMsa0JBQXNDLEVBQ3JCLGdCQUE0QyxFQUM3RCxNQUFlO1FBSlcsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDeEQsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDWCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQzdELFdBQU0sR0FBTixNQUFNLENBQVM7UUEzRTdCLGdCQUFXLEdBQUc7WUFDVixFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQztZQUM3QixFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQztZQUN6QixFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBQztTQUMzQyxDQUFDO1FBRUYsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUV0QiwwQkFBcUIsR0FBRztZQUNwQixVQUFVLEVBQUUsV0FBVztZQUN2QixhQUFhLEVBQUUsSUFBSTtTQUN0QixDQUFDO1FBRUYsbUJBQWMsR0FBUTtZQUNsQixNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsQ0FBQztZQUNQLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7U0FDWixDQUFBO1FBQ0QsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUtmLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBQzdCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBRTFCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGdCQUFXLEdBQUc7WUFDVixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxLQUFLO1NBQ2xCLENBQUM7UUFFRix1QkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pCLE9BQU8sZ0RBQWdELEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTs4QkFDOUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJO3VCQUN0QixDQUFBO1FBQ25CLENBQUMsQ0FBQTtRQUVELGtCQUFhLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEVBQUU7Z0JBQ2hDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQzVDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ3ZFLEtBQUssSUFBSTswQ0FDaUIsU0FBUyxLQUFLLElBQUksQ0FBQyxJQUFJO29EQUNiLElBQUksQ0FBQyxJQUFJO2lDQUM1QixDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNILEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUNoRSxLQUFLLElBQUk7MENBQ2lCLFNBQVMsS0FBSyxJQUFJO29EQUNSLElBQUk7aUNBQ3ZCLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUE7UUFFRCx1QkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pCLE9BQU8sTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFBO1FBU0csSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDaEQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDakYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUN0QjthQUNKO1lBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ25DLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO29CQUNyQyxPQUFPO2lCQUNWO2dCQUNELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25DO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ2xELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFO3dCQUNoQyxJQUFJLEdBQUcsT0FBTyxDQUFDO3FCQUNsQjtnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3ZFLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxlQUFlLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxHQUFHO1FBQzNCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtZQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMxRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7WUFDSCxHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDakQ7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQWE7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FDNUIsSUFBSSxDQUFDLFlBQVksRUFDakIsYUFBYSxFQUNiLElBQUksQ0FBQyxXQUFXLEVBQ2hCLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUNULEtBQUssQ0FDUixDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQzthQUNwRSxJQUFJLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFvQixFQUFFLE1BQVcsRUFBRSxPQUFxQixFQUFFLElBQVU7UUFDN0UsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE1BQU0sR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFBRyxJQUFJLEVBQUU7WUFDTCxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2hDO1FBQ0QsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDNUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDeEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNuQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsT0FBTztRQUM5QixNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUM1RixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDckIsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN4QztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ25DLE9BQU8sdUJBQXVCLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQWE7UUFDckIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNmLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUUsS0FBSztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBQyxDQUFDO1FBQ3RDLElBQUcsSUFBSSxDQUFDLFdBQVc7WUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUMzQztRQUNELE9BQU8sSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLFFBQVM7UUFDdEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakIsTUFBTSxHQUFHLFFBQVEsQ0FBQztTQUNyQjtRQUNELFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxHQUFHLFFBQVEsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxPQUFPLENBQUMsUUFBUTtRQUNaLE1BQU0sWUFBWSxHQUFRLFVBQVUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sUUFBUSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBQUEsQ0FBQztDQUNMLENBQUE7QUFyT3FCLG9CQUFvQjtJQStFakMsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUd4QixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0dBbEZaLG9CQUFvQixDQXFPekM7U0FyT3FCLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIGluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7WklUSV9EQVRBX1NFUlZJQ0UsIFppdGlEYXRhU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3ppdGktZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtWYWxpZGF0b3JDYWxsYmFja30gZnJvbSBcIi4uL2ZlYXR1cmVzL2xpc3QtcGFnZS1mZWF0dXJlcy9saXN0LXBhZ2UtZm9ybS9saXN0LXBhZ2UtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7RGlhbG9nUmVmfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RpYWxvZ1wiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7Q29uZmlybUNvbXBvbmVudH0gZnJvbSBcIi4uL2ZlYXR1cmVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnRcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZVwiO1xuXG5pbXBvcnQge2lzRW1wdHksIGNsb25lRGVlcH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2VDbGFzc30gZnJvbSBcIi4uL3NlcnZpY2VzL3NldHRpbmdzLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7RXh0ZW5zaW9uU2VydmljZSwgU0hBUkVEWl9FWFRFTlNJT059IGZyb20gXCIuLi9mZWF0dXJlcy9leHRlbmRhYmxlL2V4dGVuc2lvbnMtbm9vcC5zZXJ2aWNlXCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnQvbW9tZW50XCI7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgYWJzdHJhY3QgaW5pdFRhYmxlQ29sdW1ucygpOiBhbnlbXTtcbiAgICBhYnN0cmFjdCBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSwgcGFnZT86IGFueSk6IFByb21pc2U8YW55W10+O1xuICAgIGFic3RyYWN0IHZhbGlkYXRlOiBWYWxpZGF0b3JDYWxsYmFjaztcbiAgICBhYnN0cmFjdCBvcGVuVXBkYXRlKGVudGl0eT86IGFueSk7XG4gICAgYWJzdHJhY3QgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG5cbiAgICBDU1ZfQ09MVU1OUyA9IFtcbiAgICAgICAge2xhYmVsOiAnTmFtZScsIHBhdGg6ICduYW1lJ30sXG4gICAgICAgIHtsYWJlbDogJ0lEJywgcGF0aDogJ2lkJ30sXG4gICAgICAgIHtsYWJlbDogJ0NyZWF0ZWQgQXQnLCBwYXRoOiAnY3JlYXRlZEF0J31cbiAgICBdO1xuXG4gICAgYmFzZVBhdGg6IHN0cmluZyA9ICcnO1xuXG4gICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICBmaWx0ZXJUeXBlOiAnVEVYVElOUFVUJyxcbiAgICAgICAgZW5hYmxlU29ydGluZzogdHJ1ZVxuICAgIH07XG5cbiAgICBERUZBVUxUX1BBR0lORzogYW55ID0ge1xuICAgICAgICBmaWx0ZXI6IFwiXCIsXG4gICAgICAgIG5vU2VhcmNoOiBmYWxzZSxcbiAgICAgICAgb3JkZXI6IFwiYXNjXCIsXG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHNlYXJjaE9uOiBcIm5hbWVcIixcbiAgICAgICAgc29ydDogXCJuYW1lXCIsXG4gICAgICAgIHRvdGFsOiA1MFxuICAgIH1cbiAgICB0b3RhbENvdW50ID0gMDtcbiAgICBkYXRhU2VydmljZTogWml0aURhdGFTZXJ2aWNlO1xuICAgIHJlZnJlc2hEYXRhOiAoc29ydD86IHtzb3J0Qnk6IHN0cmluZywgb3JkZXJpbmc6IHN0cmluZ30pID0+IHZvaWQgfCB1bmRlZmluZWQ7XG5cbiAgICBzZWxlY3RlZEVudGl0eUlkOiBTdHJpbmc7XG4gICAgbWVudUl0ZW1zOiBhbnkgPSBbXTtcbiAgICB0YWJsZUhlYWRlckFjdGlvbnM6IGFueSA9IFtdO1xuICAgIGN1cnJlbnRTZXR0aW5nczogYW55ID0ge307XG4gICAgZGlhbG9nUmVmOiBhbnk7XG4gICAgc2lkZU1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIGN1cnJlbnRTb3J0ID0ge1xuICAgICAgICBzb3J0Qnk6ICduYW1lJyxcbiAgICAgICAgb3JkZXJpbmc6ICdhc2MnXG4gICAgfTtcblxuICAgIG5hbWVDb2x1bW5SZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiY29sIGNlbGwtbmFtZS1yZW5kZXJlclwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+JHtyb3c/LmRhdGE/Lm5hbWV9PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+YFxuICAgIH1cblxuICAgIHJvbGVzUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbElkID0gcm93LmNvbHVtbi5jb2xJZDtcbiAgICAgICAgbGV0IHJvbGVzID0gJyc7XG4gICAgICAgIGlmIChyb3c/LmRhdGE/Lltjb2xJZCArICdEaXNwbGF5J10pIHtcbiAgICAgICAgICAgIHJvdz8uZGF0YT8uW2NvbElkICsgJ0Rpc3BsYXknXS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gYXR0cj8ubmFtZT8uaW5kZXhPZignQCcpID09PSAwID8gJ2F0dGFnJyA6ICdoYXNodGFnJztcbiAgICAgICAgICAgICAgICByb2xlcyArPSBgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+JHthdHRyLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZy1uYW1lXCI+JHthdHRyLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvdz8uZGF0YT8uW2NvbElkXT8uZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGF0dHIuaW5kZXhPZignQCcpID09PSAwID8gJ2F0dGFnJyA6ICdoYXNodGFnJztcbiAgICAgICAgICAgICAgICByb2xlcyArPSBgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+JHthdHRyfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctbmFtZVwiPiR7YXR0cn08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb2xlcztcbiAgICB9XG5cbiAgICBjcmVhdGVkQXRGb3JtYXR0ZXIgPSAocm93KSA9PiB7XG4gICAgICAgIHJldHVybiBtb21lbnQocm93Py5kYXRhPy5jcmVhdGVkQXQpLmxvY2FsKCkuZm9ybWF0KCdNL0QvWVlZWSBISDptbSBBJyk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoU0VUVElOR1NfU0VSVklDRSkgcHJvdGVjdGVkIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgcHJvdGVjdGVkIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBjc3ZEb3dubG9hZFNlcnZpY2U6IENzdkRvd25sb2FkU2VydmljZSxcbiAgICAgICAgQEluamVjdChTSEFSRURaX0VYVEVOU0lPTikgcHJvdGVjdGVkIGV4dGVuc2lvblNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCByb3V0ZXI/OiBSb3V0ZXJcbiAgICApIHtcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZSA9IGluamVjdChaSVRJX0RBVEFfU0VSVklDRSk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3Muc2V0dGluZ3NDaGFuZ2Uuc3Vic2NyaWJlKChzZXR0aW5ncykgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0VtcHR5KHRoaXMuc2V0dGluZ3M/LnNldHRpbmdzPy5zZXNzaW9uPy5pZCkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U2V0dGluZ3M/LnNlc3Npb24/LmlkICE9PSBzZXR0aW5ncz8uc2Vzc2lvbj8uaWQgJiYgdGhpcy5yZWZyZXNoRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFldmVudD8uc25hcHNob3Q/LnJvdXRlQ29uZmlnPy5wYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aFNlZ21lbnRzID0gZXZlbnQuc25hcHNob3Qucm91dGVDb25maWcucGF0aC5zcGxpdCgnLycpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmFzZVBhdGggPSBwYXRoU2VnbWVudHNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGluaXRNZW51QWN0aW9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMuZXh0ZW5zaW9uU2VydmljZS5saXN0QWN0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMgPSB0aGlzLm1lbnVJdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4dGVuc2lvblNlcnZpY2UubGlzdEFjdGlvbnMuZm9yRWFjaCgoZXh0SXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5hY3Rpb24gPT09IGV4dEl0ZW0uYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtID0gZXh0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgZmlsdGVyZWRBY3Rpb25zID0gdGhpcy5leHRlbnNpb25TZXJ2aWNlLmxpc3RBY3Rpb25zLmZpbHRlcigoZXh0SXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5tZW51SXRlbXMuc29tZSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5hY3Rpb24gPT09IGV4dEl0ZW0uYWN0aW9uO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm1lbnVJdGVtcyA9IFsuLi50aGlzLm1lbnVJdGVtcywgLi4uZmlsdGVyZWRBY3Rpb25zXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZExpc3RJdGVtRXh0ZW5zaW9uQWN0aW9ucyhyb3cpIHtcbiAgICAgICAgaWYgKHRoaXMuZXh0ZW5zaW9uU2VydmljZS5saXN0QWN0aW9ucykge1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IHRoaXMuZXh0ZW5zaW9uU2VydmljZS5saXN0QWN0aW9ucy5tYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb24uYWN0aW9uO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByb3cuYWN0aW9uTGlzdCA9IFsuLi5yb3cuYWN0aW9uTGlzdCwgLi4ua2V5c107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkb3dubG9hZEl0ZW1zKHNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgdGhpcy5jc3ZEb3dubG9hZFNlcnZpY2UuZG93bmxvYWQoXG4gICAgICAgICAgICB0aGlzLnJlc291cmNlVHlwZSxcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgICB0aGlzLkNTVl9DT0xVTU5TLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRBbGxJdGVtcygpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBwYWdpbmcgPSBjbG9uZURlZXAodGhpcy5ERUZBVUxUX1BBR0lORyk7XG4gICAgICAgIHBhZ2luZy50b3RhbCA9IC0xO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYWJsZURhdGEodGhpcy5yZXNvdXJjZVR5cGUsIHBhZ2luZywgdW5kZWZpbmVkLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG93bmxvYWRJdGVtcyhyZXN1bHRzPy5kYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFRhYmxlRGF0YShyZXNvdXJjZVR5cGU6IHN0cmluZywgcGFnaW5nOiBhbnksIGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICghcGFnaW5nKSB7XG4gICAgICAgICAgICBwYWdpbmcgPSB7Li4udGhpcy5ERUZBVUxUX1BBR0lOR307XG4gICAgICAgIH1cbiAgICAgICAgaWYoc29ydCkge1xuICAgICAgICAgICAgcGFnaW5nLnNvcnQgPSBzb3J0LnNvcnRCeTtcbiAgICAgICAgICAgIHBhZ2luZy5vcmRlciA9IHNvcnQub3JkZXJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZmlsdGVycz8ubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgcGFnaW5nLm5vU2VhcmNoID0gZmFsc2U7XG4gICAgICAgICAgICBwYWdpbmcuc2VhcmNoT24gPSBmaWx0ZXJzW2lkeF0uY29sdW1uSWQ7XG4gICAgICAgICAgICBwYWdpbmcuZmlsdGVyID0gZmlsdGVyc1tpZHhdLnZhbHVlO1xuICAgICAgICAgICAgcGFnaW5nLnJhd0ZpbHRlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcmluZy5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5nZXQocmVzb3VyY2VUeXBlLCBwYWdpbmcsIGZpbHRlcnMpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcmluZy5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tGb3JBc3NvY2lhdGVkU2VydmljZXMoY29uZmlncykge1xuICAgICAgICBjb25zdCBjb25maWdzV2l0aEFzc29jaWF0aW9ucyA9IFtdO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBjb25maWdzLmZvckVhY2goKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvbSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0U3ViZGF0YSgnY29uZmlncycsIGNvbmZpZy5pZCwgJ3NlcnZpY2VzJykudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXJ2aWNlcyA9IHJlc3VsdC5kYXRhIHx8IFtdO1xuICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3NXaXRoQXNzb2NpYXRpb25zLnB1c2goY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ3NXaXRoQXNzb2NpYXRpb25zO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVJdGVtcyhpZHM6IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgICAgIGlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvbSA9IHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlKHRoaXMucmVzb3VyY2VUeXBlLCBpZCk7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb20pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICB9XG5cbiAgICBzb3J0KHNvcnRCeSwgb3JkZXJpbmc9ICdhc2MnKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNvcnQgPSB7c29ydEJ5LCBvcmRlcmluZ307XG4gICAgICAgIGlmKHRoaXMucmVmcmVzaERhdGEpIHRoaXMucmVmcmVzaERhdGEoe3NvcnRCeSwgb3JkZXJpbmd9KTtcbiAgICB9XG5cbiAgICBoYXNTZWxlY3RlZFRleHQoKSB7XG4gICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgIGlmICh3aW5kb3cuZ2V0U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0ZXh0ID0gd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQ/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0TmV0d29ya0p3dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0KCduZXR3b3JrLWp3dHMnLCB7fSwgW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuRWRpdEZvcm0oaXRlbUlkID0gJycsIGJhc2VQYXRoPykge1xuICAgICAgICBpZiAoaXNFbXB0eShpdGVtSWQpKSB7XG4gICAgICAgICAgICBpdGVtSWQgPSAnY3JlYXRlJztcbiAgICAgICAgfVxuICAgICAgICBiYXNlUGF0aCA9IGJhc2VQYXRoID8gYmFzZVBhdGggOiB0aGlzLmJhc2VQYXRoO1xuICAgICAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybChgJHtiYXNlUGF0aH0vJHtpdGVtSWR9YCk7XG4gICAgfVxuXG4gICAgcmVtVG9QeChyZW1WYWx1ZSkge1xuICAgICAgICBjb25zdCByb290Rm9udFNpemU6IGFueSA9IHBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5mb250U2l6ZSk7XG4gICAgICAgIHJldHVybiByZW1WYWx1ZSAqIHJvb3RGb250U2l6ZTtcbiAgICB9O1xufVxuIl19
@@ -108,7 +108,10 @@ import { JwtSignersPageComponent } from "./pages/jwt-signers/jwt-signers-page.co
108
108
  import { JwtSignerFormComponent } from "./features/projectable-forms/jwt-signer/jwt-signer-form.component";
109
109
  import { AuthPoliciesPageComponent } from "./pages/auth-policies/auth-policies-page.component";
110
110
  import { AuthPolicyFormComponent } from "./features/projectable-forms/auth-policy/auth-policy-form.component";
111
+ import { CertificateAuthoritiesPageComponent } from "./pages/certificate-authorities/certificate-authorities-page.component";
111
112
  import { PreviewSelectionsComponent } from "./features/preview-selections/preview-selections.component";
113
+ import { CertificateAuthorityFormComponent } from "./features/projectable-forms/certificate-authority/certificate-authority-form.component";
114
+ import { VerifyCertificateComponent } from "./features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component";
112
115
  import * as i0 from "@angular/core";
113
116
  import * as i1 from "ngx-lottie";
114
117
  export function playerFactory() {
@@ -193,7 +196,10 @@ class OpenZitiConsoleLibModule {
193
196
  JwtSignerFormComponent,
194
197
  AuthPoliciesPageComponent,
195
198
  AuthPolicyFormComponent,
196
- PreviewSelectionsComponent], imports: [CommonModule,
199
+ PreviewSelectionsComponent,
200
+ CertificateAuthoritiesPageComponent,
201
+ CertificateAuthorityFormComponent,
202
+ VerifyCertificateComponent], imports: [CommonModule,
197
203
  FormsModule,
198
204
  MatDialogModule,
199
205
  MatRadioModule,
@@ -354,7 +360,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
354
360
  JwtSignerFormComponent,
355
361
  AuthPoliciesPageComponent,
356
362
  AuthPolicyFormComponent,
357
- PreviewSelectionsComponent
363
+ PreviewSelectionsComponent,
364
+ CertificateAuthoritiesPageComponent,
365
+ CertificateAuthorityFormComponent,
366
+ VerifyCertificateComponent
358
367
  ],
359
368
  imports: [
360
369
  CommonModule,
@@ -427,4 +436,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
427
436
  ],
428
437
  }]
429
438
  }] });
430
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1jb25zb2xlLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIveml0aS1jb25zb2xlLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsZUFBZSxFQUFrQixRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLGdCQUFnQixFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM5RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM5RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDbkYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDcEcsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDbEgsT0FB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Q2Q7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0FQUF9JTklUSUFMSVpFUiwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1phY1dyYXBwZXJDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL3dyYXBwZXJzL3phYy13cmFwcGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTYWZlUGlwZX0gZnJvbSBcIi4vc2FmZS5waXBlXCI7XG5pbXBvcnQge0h0dHBDbGllbnRNb2R1bGUsIEh0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtaYWNSb3V0aW5nTW9kdWxlfSBmcm9tIFwiLi96YWMtcm91dGluZy5tb2R1bGVcIjtcbmltcG9ydCB7RXh0ZW5kYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbmRhYmxlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtFeHRlbnNpb25zTm9vcFNlcnZpY2UsIFNIQVJFRFpfRVhURU5TSU9OfSBmcm9tIFwiLi9mZWF0dXJlcy9leHRlbmRhYmxlL2V4dGVuc2lvbnMtbm9vcC5zZXJ2aWNlXCI7XG5pbXBvcnQge1N0cmluZ0lucHV0Q29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9zdHJpbmcvc3RyaW5nLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge051bWJlcklucHV0Q29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9udW1iZXIvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge0Jvb2xlYW5Ub2dnbGVJbnB1dENvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvYm9vbGVhbi9ib29sZWFuLXRvZ2dsZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtPYmplY3RDb21wb25lbnR9IGZyb20gJy4vZmVhdHVyZXMvZHluYW1pYy13aWRnZXRzL29iamVjdC9vYmplY3QuY29tcG9uZW50JztcbmltcG9ydCB7U2VsZWN0b3JJbnB1dENvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvc2VsZWN0b3Ivc2VsZWN0b3ItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7Q2hlY2tib3hMaXN0SW5wdXRDb21wb25lbnR9IGZyb20gJy4vZmVhdHVyZXMvZHluYW1pYy13aWRnZXRzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtUZXh0TGlzdElucHV0Q29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvdGV4dC1saXN0L3RleHQtbGlzdC1pbnB1dC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2hpcHNNb2R1bGV9IGZyb20gXCJwcmltZW5nL2NoaXBzXCI7XG5pbXBvcnQge0Ryb3Bkb3duTW9kdWxlfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7Q2FsZW5kYXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHtRUkNvZGVNb2R1bGV9IGZyb20gJ2FuZ3VsYXJ4LXFyY29kZSc7XG5pbXBvcnQge1xuICAgIFByb3RvY29sQWRkcmVzc1BvcnRJbnB1dENvbXBvbmVudFxufSBmcm9tICcuL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9wcm90b2NvbC1hZGRyZXNzLXBvcnQvcHJvdG9jb2wtYWRkcmVzcy1wb3J0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge1NpZGVUb29sYmFyQ29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL3NpZGViYXJzL3NpZGUtdG9vbGJhci9zaWRlLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7U2lkZU5hdmJhckNvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9zaWRlYmFycy9zaWRlLW5hdmJhci9zaWRlLW5hdmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtTaWRlQmFubmVyQ29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL3NpZGViYXJzL3NpZGUtYmFubmVyL3NpZGUtYmFubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1Bhc3N3b3JkSW5wdXRDb21wb25lbnR9IGZyb20gJy4vZmVhdHVyZXMvZHluYW1pYy13aWRnZXRzL3Bhc3N3b3JkL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25zUGFnZUNvbXBvbmVudH0gZnJvbSAnLi9wYWdlcy9jb25maWd1cmF0aW9ucy9jb25maWd1cmF0aW9ucy1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge0xpc3RQYWdlSGVhZGVyQ29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL2xpc3QtcGFnZS1mZWF0dXJlcy9saXN0LXBhZ2UtaGVhZGVyL2xpc3QtcGFnZS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge01hdFJhZGlvTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQge1Rlcm1pbmF0b3JGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy90ZXJtaW5hdG9yL3Rlcm1pbmF0b3ItZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7TGlzdFBhZ2VGb3JtQ29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL2xpc3QtcGFnZS1mZWF0dXJlcy9saXN0LXBhZ2UtZm9ybS9saXN0LXBhZ2UtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtEYXRhVGFibGVDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnRcIjtcbmltcG9ydCB7VGFibGVDZWxsU2VsZWN0Q29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NlbGxzL3RhYmxlLWNlbGwtc2VsZWN0L3RhYmxlLWNlbGwtc2VsZWN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNvbHVtblNlbGVjdENvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tc2VsZWN0L3RhYmxlLWNvbHVtbi1zZWxlY3QuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlQ2VsbE1lbnVDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL2RhdGEtdGFibGUvY2VsbHMvdGFibGUtY2VsbC1tZW51L3RhYmxlLWNlbGwtbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7VGFibGVDb2x1bW5NZW51Q29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NvbHVtbi1oZWFkZXJzL3RhYmxlLWNvbHVtbi1tZW51L3RhYmxlLWNvbHVtbi1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NvbHVtbi1oZWFkZXJzL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnRcIjtcbmltcG9ydCB7SGlkZGVuQ29sdW1uc0JhckNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvZGF0YS10YWJsZS90YWJsZS1oaWRkZW4tY29sdW1ucy1iYXIvaGlkZGVuLWNvbHVtbnMtYmFyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtGaWx0ZXJCYXJDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL2RhdGEtdGFibGUvdGFibGUtZmlsdGVyLWJhci9maWx0ZXItYmFyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtBZ0dyaWRNb2R1bGV9IGZyb20gXCJhZy1ncmlkLWFuZ3VsYXJcIjtcbmltcG9ydCB7SWRlbnRpdGllc1BhZ2VDb21wb25lbnR9IGZyb20gXCIuL3BhZ2VzL2lkZW50aXRpZXMvaWRlbnRpdGllcy1wYWdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtFZGdlUm91dGVyc1BhZ2VDb21wb25lbnR9IGZyb20gXCIuL3BhZ2VzL2VkZ2Utcm91dGVycy9lZGdlLXJvdXRlcnMtcGFnZS5jb21wb25lbnRcIjtcbmltcG9ydCB7U2VydmljZXNQYWdlQ29tcG9uZW50fSBmcm9tIFwiLi9wYWdlcy9zZXJ2aWNlcy9zZXJ2aWNlcy1wYWdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtaSVRJX05BVklHQVRPUn0gZnJvbSBcIi4veml0aS1jb25zb2xlLmNvbnN0YW50c1wiO1xuaW1wb3J0IHsgR3Jvd2xlckNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHtvbkFwcEluaXR9IGZyb20gXCIuL2FwcC5pbml0aWFsaXplclwiO1xuaW1wb3J0IHtDbGlja091dHNpZGVNb2R1bGV9IGZyb20gXCJuZy1jbGljay1vdXRzaWRlXCI7XG5pbXBvcnQge05nSnNvbkVkaXRvck1vZHVsZX0gZnJvbSBcImFuZy1qc29uZWRpdG9yXCI7XG5pbXBvcnQge0xvdHRpZU1vZHVsZX0gZnJvbSBcIm5neC1sb3R0aWVcIjtcbmltcG9ydCB7IE5vSXRlbXNDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL25vLWl0ZW1zL25vLWl0ZW1zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3NpZGUtbW9kYWwvc2lkZS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWRlbnRpdHlGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvaWRlbnRpdHkvaWRlbnRpdHktZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZvcm1IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2Zvcm0taGVhZGVyL2Zvcm0taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2Zvcm0tZmllbGQtY29udGFpbmVyL2Zvcm0tZmllbGQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBQcmV2aWV3TGlzdENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcHJldmlldy1saXN0L3ByZXZpZXctbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9sb2FkaW5nLWluZGljYXRvci9sb2FkaW5nLWluZGljYXRvci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZvcm1GaWVsZFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvZm9ybS1maWVsZC10b2dnbGUvZm9ybS1maWVsZC10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IEpzb25WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9qc29uLXZpZXcvanNvbi12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvdGFnLXNlbGVjdG9yL3RhZy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXJDb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ2VsbFRva2VuQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NlbGxzL3RhYmxlLWNlbGwtdG9rZW4vdGFibGUtY2VsbC10b2tlbi5jb21wb25lbnQnO1xuaW1wb3J0IHtHcm93bGVyTW9kdWxlfSBmcm9tIFwiLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5tb2R1bGVcIjtcbmltcG9ydCB7T1NUb29sdGlwQ29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL2RhdGEtdGFibGUvdG9vbHRpcHMvb3MtdG9vbHRpcC5jb21wb25lbnQnXG5pbXBvcnQge1NES1Rvb2x0aXBDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL2RhdGEtdGFibGUvdG9vbHRpcHMvc2RrLXRvb2x0aXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBPdmVycmlkZXNDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL292ZXJyaWRlcy9vdmVycmlkZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc2V0RW5yb2xsbWVudENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcmVzZXQtZW5yb2xsbWVudC9yZXNldC1lbnJvbGxtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge0lkZW50aXR5U2VydmljZVBhdGhDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL3Zpc3VhbGl6ZXIvaWRlbnRpdHktc2VydmljZS1wYXRoL2lkZW50aXR5LXNlcnZpY2UtcGF0aC5jb21wb25lbnRcIjtcbmltcG9ydCB7TmV0d29ya1Zpc3VhbGl6ZXJDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL3Zpc3VhbGl6ZXIvbmV0d29yay12aXN1YWxpemVyL25ldHdvcmstdmlzdWFsaXplci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEN1c3RvbVRhZ3NDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL2N1c3RvbS10YWdzL2N1c3RvbS10YWdzLmNvbXBvbmVudCc7XG5pbXBvcnQge0VkZ2VSb3V0ZXJGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9lZGdlLXJvdXRlci9lZGdlLXJvdXRlci1mb3JtLmNvbXBvbmVudFwiO1xuXG5pbXBvcnQge1NlcnZpY2VGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9zZXJ2aWNlL3NlcnZpY2UtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFBvcnRSYW5nZXNDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9wb3J0LXJhbmdlcy9wb3J0LXJhbmdlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9yd2FyZGluZ0NvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvZHluYW1pYy13aWRnZXRzL2ZvcndhcmRpbmctY29uZmlnL2ZvcndhcmRpbmctY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvY2FyZC1saXN0L2NhcmQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlU2VydmljZUNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvc2VydmljZS9zaW1wbGUtc2VydmljZS9zaW1wbGUtc2VydmljZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGlvblN1bW1hcnlEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL2NyZWF0aW9uLXN1bW1hcnktZGlhbG9nL2NyZWF0aW9uLXN1bW1hcnktZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgQ29uZmlnRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9jb25maWctZWRpdG9yL2NvbmZpZy1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEVkZ2VSb3V0ZXJQb2xpY2llc1BhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2VkZ2Utcm91dGVyLXBvbGljaWVzL2VkZ2Utcm91dGVyLXBvbGljaWVzLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcnZpY2VQb2xpY2llc1BhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL3NlcnZpY2UtcG9saWNpZXMvc2VydmljZS1wb2xpY2llcy1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlUG9saWN5Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvc2VydmljZS1wb2xpY3kvc2VydmljZS1wb2xpY3ktZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRnZVJvdXRlclBvbGljeUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2VkZ2Utcm91dGVyLXBvbGljeS9lZGdlLXJvdXRlci1wb2xpY3ktZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlBY3Rpb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL211bHRpLWFjdGlvbi1idXR0b24vbXVsdGktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDZWxsTmFtZUNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvZGF0YS10YWJsZS9jZWxscy90YWJsZS1jZWxsLW5hbWUvdGFibGUtY2VsbC1uYW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlRWRnZVJvdXRlclBvbGljaWVzUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvc2VydmljZS1lZGdlLXJvdXRlci1wb2xpY2llcy9zZXJ2aWNlLWVkZ2Utcm91dGVyLXBvbGljaWVzLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcnZpY2VFZGdlUm91dGVyUG9saWN5Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvc2VydmljZS1lZGdlLXJvdXRlci1wb2xpY3kvc2VydmljZS1lZGdlLXJvdXRlci1wb2xpY3ktZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtUZXJtaW5hdG9yc1BhZ2VDb21wb25lbnR9IGZyb20gXCIuL3BhZ2VzL3Rlcm1pbmF0b3JzL3Rlcm1pbmF0b3JzLXBhZ2UuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25Gb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24tZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7Snd0U2lnbmVyc1BhZ2VDb21wb25lbnR9IGZyb20gXCIuL3BhZ2VzL2p3dC1zaWduZXJzL2p3dC1zaWduZXJzLXBhZ2UuY29tcG9uZW50XCI7XG5pbXBvcnQge0p3dFNpZ25lckZvcm1Db21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2p3dC1zaWduZXIvand0LXNpZ25lci1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtBdXRoUG9saWNpZXNQYWdlQ29tcG9uZW50fSBmcm9tIFwiLi9wYWdlcy9hdXRoLXBvbGljaWVzL2F1dGgtcG9saWNpZXMtcGFnZS5jb21wb25lbnRcIjtcbmltcG9ydCB7QXV0aFBvbGljeUZvcm1Db21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2F1dGgtcG9saWN5L2F1dGgtcG9saWN5LWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge1ByZXZpZXdTZWxlY3Rpb25zQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9wcmV2aWV3LXNlbGVjdGlvbnMvcHJldmlldy1zZWxlY3Rpb25zLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcGxheWVyRmFjdG9yeSgpIHtcbiAgICByZXR1cm4gaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6ICdsb3R0aWUtd2ViJyAqLyAnbG90dGllLXdlYicpO1xufVxuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBaYWNXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBTYWZlUGlwZSxcbiAgICAgICAgRXh0ZW5kYWJsZUNvbXBvbmVudCxcbiAgICAgICAgU3RyaW5nSW5wdXRDb21wb25lbnQsXG4gICAgICAgIE51bWJlcklucHV0Q29tcG9uZW50LFxuICAgICAgICBCb29sZWFuVG9nZ2xlSW5wdXRDb21wb25lbnQsXG4gICAgICAgIE9iamVjdENvbXBvbmVudCxcbiAgICAgICAgU2VsZWN0b3JJbnB1dENvbXBvbmVudCxcbiAgICAgICAgVGV4dExpc3RJbnB1dENvbXBvbmVudCxcbiAgICAgICAgQ2hlY2tib3hMaXN0SW5wdXRDb21wb25lbnQsXG4gICAgICAgIFByb3RvY29sQWRkcmVzc1BvcnRJbnB1dENvbXBvbmVudCxcbiAgICAgICAgU2lkZVRvb2xiYXJDb21wb25lbnQsXG4gICAgICAgIFNpZGVOYXZiYXJDb21wb25lbnQsXG4gICAgICAgIFNpZGVCYW5uZXJDb21wb25lbnQsXG4gICAgICAgIFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gICAgICAgIFRlcm1pbmF0b3JGb3JtQ29tcG9uZW50LFxuICAgICAgICBDb25maWd1cmF0aW9uc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIExpc3RQYWdlSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBGaWx0ZXJCYXJDb21wb25lbnQsXG4gICAgICAgIExpc3RQYWdlRm9ybUNvbXBvbmVudCxcbiAgICAgICAgSWRlbnRpdGllc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIEVkZ2VSb3V0ZXJzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgICAgICBUYWJsZUNlbGxTZWxlY3RDb21wb25lbnQsXG4gICAgICAgIFRhYmxlQ29sdW1uU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBUYWJsZUNlbGxNZW51Q29tcG9uZW50LFxuICAgICAgICBUYWJsZUNvbHVtbk1lbnVDb21wb25lbnQsXG4gICAgICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIElkZW50aXR5Rm9ybUNvbXBvbmVudCxcbiAgICAgICAgRWRnZVJvdXRlckZvcm1Db21wb25lbnQsXG4gICAgICAgIEhpZGRlbkNvbHVtbnNCYXJDb21wb25lbnQsXG4gICAgICAgIEZpbHRlckJhckNvbXBvbmVudCxcbiAgICAgICAgRXh0ZW5kYWJsZUNvbXBvbmVudCxcbiAgICAgICAgQ29uZmlybUNvbXBvbmVudCxcbiAgICAgICAgTm9JdGVtc0NvbXBvbmVudCxcbiAgICAgICAgU2lkZU1vZGFsQ29tcG9uZW50LFxuICAgICAgICBGb3JtSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBGb3JtRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgICAgIFByZXZpZXdMaXN0Q29tcG9uZW50LFxuICAgICAgICBMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgICAgICBGb3JtRmllbGRUb2dnbGVDb21wb25lbnQsXG4gICAgICAgIEpzb25WaWV3Q29tcG9uZW50LFxuICAgICAgICBUYWdTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgUXJDb2RlQ29tcG9uZW50LFxuICAgICAgICBUYWJsZUNlbGxUb2tlbkNvbXBvbmVudCxcbiAgICAgICAgT1NUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICBTREtUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICBPdmVycmlkZXNDb21wb25lbnQsXG4gICAgICAgIFJlc2V0RW5yb2xsbWVudENvbXBvbmVudCxcbiAgICAgICAgSWRlbnRpdHlTZXJ2aWNlUGF0aENvbXBvbmVudCxcbiAgICAgICAgTmV0d29ya1Zpc3VhbGl6ZXJDb21wb25lbnQsXG4gICAgICAgIEN1c3RvbVRhZ3NDb21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgU2VydmljZUZvcm1Db21wb25lbnQsXG4gICAgICAgIFBvcnRSYW5nZXNDb21wb25lbnQsXG4gICAgICAgIEZvcndhcmRpbmdDb25maWdDb21wb25lbnQsXG4gICAgICAgIENhcmRMaXN0Q29tcG9uZW50LFxuICAgICAgICBTaW1wbGVTZXJ2aWNlQ29tcG9uZW50LFxuICAgICAgICBDYXJkQ29tcG9uZW50LFxuICAgICAgICBDcmVhdGlvblN1bW1hcnlEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIENvbmZpZ0VkaXRvckNvbXBvbmVudCxcbiAgICAgICAgU2VydmljZVBvbGljaWVzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgU2VydmljZVBvbGljeUZvcm1Db21wb25lbnQsXG4gICAgICAgIEVkZ2VSb3V0ZXJQb2xpY2llc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIEVkZ2VSb3V0ZXJQb2xpY3lGb3JtQ29tcG9uZW50LFxuICAgICAgICBNdWx0aUFjdGlvbkJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgVGFibGVDZWxsTmFtZUNvbXBvbmVudCxcbiAgICAgICAgU2VydmljZUVkZ2VSb3V0ZXJQb2xpY2llc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VFZGdlUm91dGVyUG9saWN5Rm9ybUNvbXBvbmVudCxcbiAgICAgICAgVGVybWluYXRvcnNQYWdlQ29tcG9uZW50LFxuICAgICAgICBUZXJtaW5hdG9yRm9ybUNvbXBvbmVudCxcbiAgICAgICAgQ29uZmlndXJhdGlvbkZvcm1Db21wb25lbnQsXG4gICAgICAgIEp3dFNpZ25lcnNQYWdlQ29tcG9uZW50LFxuICAgICAgICBKd3RTaWduZXJGb3JtQ29tcG9uZW50LFxuICAgICAgICBBdXRoUG9saWNpZXNQYWdlQ29tcG9uZW50LFxuICAgICAgICBBdXRoUG9saWN5Rm9ybUNvbXBvbmVudCxcbiAgICAgICAgUHJldmlld1NlbGVjdGlvbnNDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgWmFjUm91dGluZ01vZHVsZSxcbiAgICAgICAgQ2hpcHNNb2R1bGUsXG4gICAgICAgIENhbGVuZGFyTW9kdWxlLFxuICAgICAgICBBZ0dyaWRNb2R1bGUsXG4gICAgICAgIFFSQ29kZU1vZHVsZSxcbiAgICAgICAgQ2xpY2tPdXRzaWRlTW9kdWxlLFxuICAgICAgICBOZ0pzb25FZGl0b3JNb2R1bGUsXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICAgICAgTG90dGllTW9kdWxlLmZvclJvb3Qoe3BsYXllcjogcGxheWVyRmFjdG9yeX0pLFxuICAgICAgICBEcm9wZG93bk1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBaYWNXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBFeHRlbmRhYmxlQ29tcG9uZW50LFxuICAgICAgICBTaWRlVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgU2lkZU5hdmJhckNvbXBvbmVudCxcbiAgICAgICAgU2lkZUJhbm5lckNvbXBvbmVudCxcbiAgICAgICAgU3RyaW5nSW5wdXRDb21wb25lbnQsXG4gICAgICAgIFNlbGVjdG9ySW5wdXRDb21wb25lbnQsXG4gICAgICAgIFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gICAgICAgIE51bWJlcklucHV0Q29tcG9uZW50LFxuICAgICAgICBCb29sZWFuVG9nZ2xlSW5wdXRDb21wb25lbnQsXG4gICAgICAgIE9iamVjdENvbXBvbmVudCxcbiAgICAgICAgVGV4dExpc3RJbnB1dENvbXBvbmVudCxcbiAgICAgICAgSWRlbnRpdHlTZXJ2aWNlUGF0aENvbXBvbmVudCxcbiAgICAgICAgTmV0d29ya1Zpc3VhbGl6ZXJDb21wb25lbnQsXG4gICAgICAgIENoZWNrYm94TGlzdElucHV0Q29tcG9uZW50LFxuICAgICAgICBQcm90b2NvbEFkZHJlc3NQb3J0SW5wdXRDb21wb25lbnQsXG4gICAgICAgIENvbmZpZ3VyYXRpb25zUGFnZUNvbXBvbmVudCxcbiAgICAgICAgQ29uZmlndXJhdGlvbkZvcm1Db21wb25lbnQsXG4gICAgICAgIEVkZ2VSb3V0ZXJGb3JtQ29tcG9uZW50LFxuICAgICAgICBJZGVudGl0aWVzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgRWRnZVJvdXRlcnNQYWdlQ29tcG9uZW50LFxuICAgICAgICBTZXJ2aWNlc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIFphY1JvdXRpbmdNb2R1bGUsXG4gICAgICAgIFNpZGVNb2RhbENvbXBvbmVudCxcbiAgICAgICAgSWRlbnRpdHlGb3JtQ29tcG9uZW50LFxuICAgICAgICBMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgICAgICBHcm93bGVyTW9kdWxlLFxuICAgICAgICBGb3JtRmllbGRDb250YWluZXJDb21wb25lbnQsXG4gICAgICAgIEZvcm1GaWVsZFRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgU2VydmljZUZvcm1Db21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VQb2xpY2llc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VQb2xpY3lGb3JtQ29tcG9uZW50LFxuICAgICAgICBFZGdlUm91dGVyUG9saWNpZXNQYWdlQ29tcG9uZW50LFxuICAgICAgICBUZXJtaW5hdG9yc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIFRlcm1pbmF0b3JGb3JtQ29tcG9uZW50LFxuICAgICAgICBKd3RTaWduZXJzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgSnd0U2lnbmVyRm9ybUNvbXBvbmVudCxcbiAgICAgICAgQXV0aFBvbGljaWVzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgQXV0aFBvbGljeUZvcm1Db21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogU0hBUkVEWl9FWFRFTlNJT04sIHVzZUNsYXNzOiBFeHRlbnNpb25zTm9vcFNlcnZpY2V9LFxuICAgICAgICB7cHJvdmlkZTogWklUSV9OQVZJR0FUT1IsIHVzZVZhbHVlOiB7fX0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IG9uQXBwSW5pdCxcbiAgICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9wZW5aaXRpQ29uc29sZUxpYk1vZHVsZSB7XG59XG4iXX0=
439
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1jb25zb2xlLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIveml0aS1jb25zb2xlLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsZUFBZSxFQUFrQixRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLGdCQUFnQixFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM5RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM5RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDbkYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDcEcsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDbEgsT0FB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QUU7d0JBQ1AsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFDO3dCQUM3RCxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQzt3QkFDdkM7NEJBQ0ksT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSxTQUFTOzRCQUNyQixJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7NEJBQ2hCLEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtaYWNXcmFwcGVyQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy93cmFwcGVycy96YWMtd3JhcHBlci5jb21wb25lbnRcIjtcbmltcG9ydCB7U2FmZVBpcGV9IGZyb20gXCIuL3NhZmUucGlwZVwiO1xuaW1wb3J0IHtIdHRwQ2xpZW50TW9kdWxlLCBIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7WmFjUm91dGluZ01vZHVsZX0gZnJvbSBcIi4vemFjLXJvdXRpbmcubW9kdWxlXCI7XG5pbXBvcnQge0V4dGVuZGFibGVDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL2V4dGVuZGFibGUvZXh0ZW5kYWJsZS5jb21wb25lbnRcIjtcbmltcG9ydCB7RXh0ZW5zaW9uc05vb3BTZXJ2aWNlLCBTSEFSRURaX0VYVEVOU0lPTn0gZnJvbSBcIi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtTdHJpbmdJbnB1dENvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvc3RyaW5nL3N0cmluZy1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtOdW1iZXJJbnB1dENvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvbnVtYmVyL251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtCb29sZWFuVG9nZ2xlSW5wdXRDb21wb25lbnR9IGZyb20gJy4vZmVhdHVyZXMvZHluYW1pYy13aWRnZXRzL2Jvb2xlYW4vYm9vbGVhbi10b2dnbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0Q29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9vYmplY3Qvb2JqZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1NlbGVjdG9ySW5wdXRDb21wb25lbnR9IGZyb20gJy4vZmVhdHVyZXMvZHluYW1pYy13aWRnZXRzL3NlbGVjdG9yL3NlbGVjdG9yLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NoZWNrYm94TGlzdElucHV0Q29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9jaGVja2JveC1saXN0L2NoZWNrYm94LWxpc3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7VGV4dExpc3RJbnB1dENvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvZHluYW1pYy13aWRnZXRzL3RleHQtbGlzdC90ZXh0LWxpc3QtaW5wdXQuY29tcG9uZW50XCI7XG5pbXBvcnQge0NoaXBzTW9kdWxlfSBmcm9tIFwicHJpbWVuZy9jaGlwc1wiO1xuaW1wb3J0IHtEcm9wZG93bk1vZHVsZX0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQge0NhbGVuZGFyTW9kdWxlfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7UVJDb2RlTW9kdWxlfSBmcm9tICdhbmd1bGFyeC1xcmNvZGUnO1xuaW1wb3J0IHtcbiAgICBQcm90b2NvbEFkZHJlc3NQb3J0SW5wdXRDb21wb25lbnRcbn0gZnJvbSAnLi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvcHJvdG9jb2wtYWRkcmVzcy1wb3J0L3Byb3RvY29sLWFkZHJlc3MtcG9ydC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtTaWRlVG9vbGJhckNvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9zaWRlYmFycy9zaWRlLXRvb2xiYXIvc2lkZS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NpZGVOYXZiYXJDb21wb25lbnR9IGZyb20gJy4vZmVhdHVyZXMvc2lkZWJhcnMvc2lkZS1uYXZiYXIvc2lkZS1uYXZiYXIuY29tcG9uZW50JztcbmltcG9ydCB7U2lkZUJhbm5lckNvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9zaWRlYmFycy9zaWRlLWJhbm5lci9zaWRlLWJhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtQYXNzd29yZElucHV0Q29tcG9uZW50fSBmcm9tICcuL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9wYXNzd29yZC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uc1BhZ2VDb21wb25lbnR9IGZyb20gJy4vcGFnZXMvY29uZmlndXJhdGlvbnMvY29uZmlndXJhdGlvbnMtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtMaXN0UGFnZUhlYWRlckNvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9saXN0LXBhZ2UtZmVhdHVyZXMvbGlzdC1wYWdlLWhlYWRlci9saXN0LXBhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge01hdERpYWxvZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtNYXRSYWRpb01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHtUZXJtaW5hdG9yRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvdGVybWluYXRvci90ZXJtaW5hdG9yLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge0xpc3RQYWdlRm9ybUNvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9saXN0LXBhZ2UtZmVhdHVyZXMvbGlzdC1wYWdlLWZvcm0vbGlzdC1wYWdlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7RGF0YVRhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlQ2VsbFNlbGVjdENvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jZWxscy90YWJsZS1jZWxsLXNlbGVjdC90YWJsZS1jZWxsLXNlbGVjdC5jb21wb25lbnRcIjtcbmltcG9ydCB7VGFibGVDb2x1bW5TZWxlY3RDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLXNlbGVjdC90YWJsZS1jb2x1bW4tc2VsZWN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNlbGxNZW51Q29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NlbGxzL3RhYmxlLWNlbGwtbWVudS90YWJsZS1jZWxsLW1lbnUuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlQ29sdW1uTWVudUNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tbWVudS90YWJsZS1jb2x1bW4tbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7VGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NvbHVtbi1oZWFkZXJzL3RhYmxlLWNvbHVtbi1kZWZhdWx0L3RhYmxlLWNvbHVtbi1kZWZhdWx0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge0hpZGRlbkNvbHVtbnNCYXJDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL2RhdGEtdGFibGUvdGFibGUtaGlkZGVuLWNvbHVtbnMtYmFyL2hpZGRlbi1jb2x1bW5zLWJhci5jb21wb25lbnRcIjtcbmltcG9ydCB7RmlsdGVyQmFyQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhLXRhYmxlL3RhYmxlLWZpbHRlci1iYXIvZmlsdGVyLWJhci5jb21wb25lbnRcIjtcbmltcG9ydCB7QWdHcmlkTW9kdWxlfSBmcm9tIFwiYWctZ3JpZC1hbmd1bGFyXCI7XG5pbXBvcnQge0lkZW50aXRpZXNQYWdlQ29tcG9uZW50fSBmcm9tIFwiLi9wYWdlcy9pZGVudGl0aWVzL2lkZW50aXRpZXMtcGFnZS5jb21wb25lbnRcIjtcbmltcG9ydCB7RWRnZVJvdXRlcnNQYWdlQ29tcG9uZW50fSBmcm9tIFwiLi9wYWdlcy9lZGdlLXJvdXRlcnMvZWRnZS1yb3V0ZXJzLXBhZ2UuY29tcG9uZW50XCI7XG5pbXBvcnQge1NlcnZpY2VzUGFnZUNvbXBvbmVudH0gZnJvbSBcIi4vcGFnZXMvc2VydmljZXMvc2VydmljZXMtcGFnZS5jb21wb25lbnRcIjtcbmltcG9ydCB7WklUSV9OQVZJR0FUT1J9IGZyb20gXCIuL3ppdGktY29uc29sZS5jb25zdGFudHNcIjtcbmltcG9ydCB7IEdyb3dsZXJDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7b25BcHBJbml0fSBmcm9tIFwiLi9hcHAuaW5pdGlhbGl6ZXJcIjtcbmltcG9ydCB7Q2xpY2tPdXRzaWRlTW9kdWxlfSBmcm9tIFwibmctY2xpY2stb3V0c2lkZVwiO1xuaW1wb3J0IHtOZ0pzb25FZGl0b3JNb2R1bGV9IGZyb20gXCJhbmctanNvbmVkaXRvclwiO1xuaW1wb3J0IHtMb3R0aWVNb2R1bGV9IGZyb20gXCJuZ3gtbG90dGllXCI7XG5pbXBvcnQgeyBOb0l0ZW1zQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9uby1pdGVtcy9uby1pdGVtcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2lkZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9zaWRlLW1vZGFsL3NpZGUtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IElkZW50aXR5Rm9ybUNvbXBvbmVudCB9IGZyb20gXCIuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2lkZW50aXR5L2lkZW50aXR5LWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBGb3JtSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9mb3JtLWhlYWRlci9mb3JtLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9mb3JtLWZpZWxkLWNvbnRhaW5lci9mb3JtLWZpZWxkLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgUHJldmlld0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3ByZXZpZXctbGlzdC9wcmV2aWV3LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7TG9hZGluZ0luZGljYXRvckNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvbG9hZGluZy1pbmRpY2F0b3IvbG9hZGluZy1pbmRpY2F0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBGb3JtRmllbGRUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2Zvcm0tZmllbGQtdG9nZ2xlL2Zvcm0tZmllbGQtdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBKc29uVmlld0NvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvanNvbi12aWV3L2pzb24tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFnU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3RhZy1zZWxlY3Rvci90YWctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFFyQ29kZUNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNlbGxUb2tlbkNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvZGF0YS10YWJsZS9jZWxscy90YWJsZS1jZWxsLXRva2VuL3RhYmxlLWNlbGwtdG9rZW4uY29tcG9uZW50JztcbmltcG9ydCB7R3Jvd2xlck1vZHVsZX0gZnJvbSBcIi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kdWxlXCI7XG5pbXBvcnQge09TVG9vbHRpcENvbXBvbmVudH0gZnJvbSAnLi9mZWF0dXJlcy9kYXRhLXRhYmxlL3Rvb2x0aXBzL29zLXRvb2x0aXAuY29tcG9uZW50J1xuaW1wb3J0IHtTREtUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhLXRhYmxlL3Rvb2x0aXBzL3Nkay10b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgT3ZlcnJpZGVzQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9vdmVycmlkZXMvb3ZlcnJpZGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNldEVucm9sbG1lbnRDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3Jlc2V0LWVucm9sbG1lbnQvcmVzZXQtZW5yb2xsbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtJZGVudGl0eVNlcnZpY2VQYXRoQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy92aXN1YWxpemVyL2lkZW50aXR5LXNlcnZpY2UtcGF0aC9pZGVudGl0eS1zZXJ2aWNlLXBhdGguY29tcG9uZW50XCI7XG5pbXBvcnQge05ldHdvcmtWaXN1YWxpemVyQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy92aXN1YWxpemVyL25ldHdvcmstdmlzdWFsaXplci9uZXR3b3JrLXZpc3VhbGl6ZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDdXN0b21UYWdzQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9jdXN0b20tdGFncy9jdXN0b20tdGFncy5jb21wb25lbnQnO1xuaW1wb3J0IHtFZGdlUm91dGVyRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvZWRnZS1yb3V0ZXIvZWRnZS1yb3V0ZXItZm9ybS5jb21wb25lbnRcIjtcblxuaW1wb3J0IHtTZXJ2aWNlRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvc2VydmljZS9zZXJ2aWNlLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBQb3J0UmFuZ2VzQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvcG9ydC1yYW5nZXMvcG9ydC1yYW5nZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcndhcmRpbmdDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9mb3J3YXJkaW5nLWNvbmZpZy9mb3J3YXJkaW5nLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZExpc3RDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL2NhcmQtbGlzdC9jYXJkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVNlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL3NlcnZpY2Uvc2ltcGxlLXNlcnZpY2Uvc2ltcGxlLXNlcnZpY2UuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3JlYXRpb25TdW1tYXJ5RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9jcmVhdGlvbi1zdW1tYXJ5LWRpYWxvZy9jcmVhdGlvbi1zdW1tYXJ5LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IENvbmZpZ0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvY29uZmlnLWVkaXRvci9jb25maWctZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGdlUm91dGVyUG9saWNpZXNQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9lZGdlLXJvdXRlci1wb2xpY2llcy9lZGdlLXJvdXRlci1wb2xpY2llcy1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlUG9saWNpZXNQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9zZXJ2aWNlLXBvbGljaWVzL3NlcnZpY2UtcG9saWNpZXMtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZVBvbGljeUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL3NlcnZpY2UtcG9saWN5L3NlcnZpY2UtcG9saWN5LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVkZ2VSb3V0ZXJQb2xpY3lGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9lZGdlLXJvdXRlci1wb2xpY3kvZWRnZS1yb3V0ZXItcG9saWN5LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpQWN0aW9uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlcy9tdWx0aS1hY3Rpb24tYnV0dG9uL211bHRpLWFjdGlvbi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ2VsbE5hbWVDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL2RhdGEtdGFibGUvY2VsbHMvdGFibGUtY2VsbC1uYW1lL3RhYmxlLWNlbGwtbmFtZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZUVkZ2VSb3V0ZXJQb2xpY2llc1BhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL3NlcnZpY2UtZWRnZS1yb3V0ZXItcG9saWNpZXMvc2VydmljZS1lZGdlLXJvdXRlci1wb2xpY2llcy1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlRWRnZVJvdXRlclBvbGljeUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL3NlcnZpY2UtZWRnZS1yb3V0ZXItcG9saWN5L3NlcnZpY2UtZWRnZS1yb3V0ZXItcG9saWN5LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7VGVybWluYXRvcnNQYWdlQ29tcG9uZW50fSBmcm9tIFwiLi9wYWdlcy90ZXJtaW5hdG9ycy90ZXJtaW5hdG9ycy1wYWdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge0p3dFNpZ25lcnNQYWdlQ29tcG9uZW50fSBmcm9tIFwiLi9wYWdlcy9qd3Qtc2lnbmVycy9qd3Qtc2lnbmVycy1wYWdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtKd3RTaWduZXJGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9qd3Qtc2lnbmVyL2p3dC1zaWduZXItZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7QXV0aFBvbGljaWVzUGFnZUNvbXBvbmVudH0gZnJvbSBcIi4vcGFnZXMvYXV0aC1wb2xpY2llcy9hdXRoLXBvbGljaWVzLXBhZ2UuY29tcG9uZW50XCI7XG5pbXBvcnQge0F1dGhQb2xpY3lGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9hdXRoLXBvbGljeS9hdXRoLXBvbGljeS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDZXJ0aWZpY2F0ZUF1dGhvcml0aWVzUGFnZUNvbXBvbmVudH0gZnJvbSBcIi4vcGFnZXMvY2VydGlmaWNhdGUtYXV0aG9yaXRpZXMvY2VydGlmaWNhdGUtYXV0aG9yaXRpZXMtcGFnZS5jb21wb25lbnRcIjtcbmltcG9ydCB7UHJldmlld1NlbGVjdGlvbnNDb21wb25lbnR9IGZyb20gXCIuL2ZlYXR1cmVzL3ByZXZpZXctc2VsZWN0aW9ucy9wcmV2aWV3LXNlbGVjdGlvbnMuY29tcG9uZW50XCI7XG5pbXBvcnQge0NlcnRpZmljYXRlQXV0aG9yaXR5Rm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvY2VydGlmaWNhdGUtYXV0aG9yaXR5L2NlcnRpZmljYXRlLWF1dGhvcml0eS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtcbiAgICBWZXJpZnlDZXJ0aWZpY2F0ZUNvbXBvbmVudFxufSBmcm9tIFwiLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9jZXJ0aWZpY2F0ZS1hdXRob3JpdHkvdmVyaWZ5LWNlcnRpZmljYXRlL3ZlcmlmeS1jZXJ0aWZpY2F0ZS5jb21wb25lbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBsYXllckZhY3RvcnkoKSB7XG4gICAgcmV0dXJuIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiAnbG90dGllLXdlYicgKi8gJ2xvdHRpZS13ZWInKTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgWmFjV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgU2FmZVBpcGUsXG4gICAgICAgIEV4dGVuZGFibGVDb21wb25lbnQsXG4gICAgICAgIFN0cmluZ0lucHV0Q29tcG9uZW50LFxuICAgICAgICBOdW1iZXJJbnB1dENvbXBvbmVudCxcbiAgICAgICAgQm9vbGVhblRvZ2dsZUlucHV0Q29tcG9uZW50LFxuICAgICAgICBPYmplY3RDb21wb25lbnQsXG4gICAgICAgIFNlbGVjdG9ySW5wdXRDb21wb25lbnQsXG4gICAgICAgIFRleHRMaXN0SW5wdXRDb21wb25lbnQsXG4gICAgICAgIENoZWNrYm94TGlzdElucHV0Q29tcG9uZW50LFxuICAgICAgICBQcm90b2NvbEFkZHJlc3NQb3J0SW5wdXRDb21wb25lbnQsXG4gICAgICAgIFNpZGVUb29sYmFyQ29tcG9uZW50LFxuICAgICAgICBTaWRlTmF2YmFyQ29tcG9uZW50LFxuICAgICAgICBTaWRlQmFubmVyQ29tcG9uZW50LFxuICAgICAgICBQYXNzd29yZElucHV0Q29tcG9uZW50LFxuICAgICAgICBUZXJtaW5hdG9yRm9ybUNvbXBvbmVudCxcbiAgICAgICAgQ29uZmlndXJhdGlvbnNQYWdlQ29tcG9uZW50LFxuICAgICAgICBMaXN0UGFnZUhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgRmlsdGVyQmFyQ29tcG9uZW50LFxuICAgICAgICBMaXN0UGFnZUZvcm1Db21wb25lbnQsXG4gICAgICAgIElkZW50aXRpZXNQYWdlQ29tcG9uZW50LFxuICAgICAgICBFZGdlUm91dGVyc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICAgICAgVGFibGVDZWxsU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBUYWJsZUNvbHVtblNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgVGFibGVDZWxsTWVudUNvbXBvbmVudCxcbiAgICAgICAgVGFibGVDb2x1bW5NZW51Q29tcG9uZW50LFxuICAgICAgICBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgIFRhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBJZGVudGl0eUZvcm1Db21wb25lbnQsXG4gICAgICAgIEVkZ2VSb3V0ZXJGb3JtQ29tcG9uZW50LFxuICAgICAgICBIaWRkZW5Db2x1bW5zQmFyQ29tcG9uZW50LFxuICAgICAgICBGaWx0ZXJCYXJDb21wb25lbnQsXG4gICAgICAgIEV4dGVuZGFibGVDb21wb25lbnQsXG4gICAgICAgIENvbmZpcm1Db21wb25lbnQsXG4gICAgICAgIE5vSXRlbXNDb21wb25lbnQsXG4gICAgICAgIFNpZGVNb2RhbENvbXBvbmVudCxcbiAgICAgICAgRm9ybUhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgRm9ybUZpZWxkQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBQcmV2aWV3TGlzdENvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ0luZGljYXRvckNvbXBvbmVudCxcbiAgICAgICAgRm9ybUZpZWxkVG9nZ2xlQ29tcG9uZW50LFxuICAgICAgICBKc29uVmlld0NvbXBvbmVudCxcbiAgICAgICAgVGFnU2VsZWN0b3JDb21wb25lbnQsXG4gICAgICAgIFFyQ29kZUNvbXBvbmVudCxcbiAgICAgICAgVGFibGVDZWxsVG9rZW5Db21wb25lbnQsXG4gICAgICAgIE9TVG9vbHRpcENvbXBvbmVudCxcbiAgICAgICAgU0RLVG9vbHRpcENvbXBvbmVudCxcbiAgICAgICAgT3ZlcnJpZGVzQ29tcG9uZW50LFxuICAgICAgICBSZXNldEVucm9sbG1lbnRDb21wb25lbnQsXG4gICAgICAgIElkZW50aXR5U2VydmljZVBhdGhDb21wb25lbnQsXG4gICAgICAgIE5ldHdvcmtWaXN1YWxpemVyQ29tcG9uZW50LFxuICAgICAgICBDdXN0b21UYWdzQ29tcG9uZW50LFxuICAgICAgICBTZXJ2aWNlc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VGb3JtQ29tcG9uZW50LFxuICAgICAgICBQb3J0UmFuZ2VzQ29tcG9uZW50LFxuICAgICAgICBGb3J3YXJkaW5nQ29uZmlnQ29tcG9uZW50LFxuICAgICAgICBDYXJkTGlzdENvbXBvbmVudCxcbiAgICAgICAgU2ltcGxlU2VydmljZUNvbXBvbmVudCxcbiAgICAgICAgQ2FyZENvbXBvbmVudCxcbiAgICAgICAgQ3JlYXRpb25TdW1tYXJ5RGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBDb25maWdFZGl0b3JDb21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VQb2xpY2llc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VQb2xpY3lGb3JtQ29tcG9uZW50LFxuICAgICAgICBFZGdlUm91dGVyUG9saWNpZXNQYWdlQ29tcG9uZW50LFxuICAgICAgICBFZGdlUm91dGVyUG9saWN5Rm9ybUNvbXBvbmVudCxcbiAgICAgICAgTXVsdGlBY3Rpb25CdXR0b25Db21wb25lbnQsXG4gICAgICAgIFRhYmxlQ2VsbE5hbWVDb21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VFZGdlUm91dGVyUG9saWNpZXNQYWdlQ29tcG9uZW50LFxuICAgICAgICBTZXJ2aWNlRWRnZVJvdXRlclBvbGljeUZvcm1Db21wb25lbnQsXG4gICAgICAgIFRlcm1pbmF0b3JzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgVGVybWluYXRvckZvcm1Db21wb25lbnQsXG4gICAgICAgIENvbmZpZ3VyYXRpb25Gb3JtQ29tcG9uZW50LFxuICAgICAgICBKd3RTaWduZXJzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgSnd0U2lnbmVyRm9ybUNvbXBvbmVudCxcbiAgICAgICAgQXV0aFBvbGljaWVzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgQXV0aFBvbGljeUZvcm1Db21wb25lbnQsXG4gICAgICAgIFByZXZpZXdTZWxlY3Rpb25zQ29tcG9uZW50LFxuICAgICAgICBDZXJ0aWZpY2F0ZUF1dGhvcml0aWVzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgQ2VydGlmaWNhdGVBdXRob3JpdHlGb3JtQ29tcG9uZW50LFxuICAgICAgICBWZXJpZnlDZXJ0aWZpY2F0ZUNvbXBvbmVudFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBaYWNSb3V0aW5nTW9kdWxlLFxuICAgICAgICBDaGlwc01vZHVsZSxcbiAgICAgICAgQ2FsZW5kYXJNb2R1bGUsXG4gICAgICAgIEFnR3JpZE1vZHVsZSxcbiAgICAgICAgUVJDb2RlTW9kdWxlLFxuICAgICAgICBDbGlja091dHNpZGVNb2R1bGUsXG4gICAgICAgIE5nSnNvbkVkaXRvck1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgICAgICBMb3R0aWVNb2R1bGUuZm9yUm9vdCh7cGxheWVyOiBwbGF5ZXJGYWN0b3J5fSksXG4gICAgICAgIERyb3Bkb3duTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFphY1dyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIEV4dGVuZGFibGVDb21wb25lbnQsXG4gICAgICAgIFNpZGVUb29sYmFyQ29tcG9uZW50LFxuICAgICAgICBTaWRlTmF2YmFyQ29tcG9uZW50LFxuICAgICAgICBTaWRlQmFubmVyQ29tcG9uZW50LFxuICAgICAgICBTdHJpbmdJbnB1dENvbXBvbmVudCxcbiAgICAgICAgU2VsZWN0b3JJbnB1dENvbXBvbmVudCxcbiAgICAgICAgUGFzc3dvcmRJbnB1dENvbXBvbmVudCxcbiAgICAgICAgTnVtYmVySW5wdXRDb21wb25lbnQsXG4gICAgICAgIEJvb2xlYW5Ub2dnbGVJbnB1dENvbXBvbmVudCxcbiAgICAgICAgT2JqZWN0Q29tcG9uZW50LFxuICAgICAgICBUZXh0TGlzdElucHV0Q29tcG9uZW50LFxuICAgICAgICBJZGVudGl0eVNlcnZpY2VQYXRoQ29tcG9uZW50LFxuICAgICAgICBOZXR3b3JrVmlzdWFsaXplckNvbXBvbmVudCxcbiAgICAgICAgQ2hlY2tib3hMaXN0SW5wdXRDb21wb25lbnQsXG4gICAgICAgIFByb3RvY29sQWRkcmVzc1BvcnRJbnB1dENvbXBvbmVudCxcbiAgICAgICAgQ29uZmlndXJhdGlvbnNQYWdlQ29tcG9uZW50LFxuICAgICAgICBDb25maWd1cmF0aW9uRm9ybUNvbXBvbmVudCxcbiAgICAgICAgRWRnZVJvdXRlckZvcm1Db21wb25lbnQsXG4gICAgICAgIElkZW50aXRpZXNQYWdlQ29tcG9uZW50LFxuICAgICAgICBFZGdlUm91dGVyc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIFNlcnZpY2VzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgWmFjUm91dGluZ01vZHVsZSxcbiAgICAgICAgU2lkZU1vZGFsQ29tcG9uZW50LFxuICAgICAgICBJZGVudGl0eUZvcm1Db21wb25lbnQsXG4gICAgICAgIExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgICAgIEdyb3dsZXJNb2R1bGUsXG4gICAgICAgIEZvcm1GaWVsZENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgRm9ybUZpZWxkVG9nZ2xlQ29tcG9uZW50LFxuICAgICAgICBTZXJ2aWNlRm9ybUNvbXBvbmVudCxcbiAgICAgICAgU2VydmljZVBvbGljaWVzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgU2VydmljZVBvbGljeUZvcm1Db21wb25lbnQsXG4gICAgICAgIEVkZ2VSb3V0ZXJQb2xpY2llc1BhZ2VDb21wb25lbnQsXG4gICAgICAgIFRlcm1pbmF0b3JzUGFnZUNvbXBvbmVudCxcbiAgICAgICAgVGVybWluYXRvckZvcm1Db21wb25lbnQsXG4gICAgICAgIEp3dFNpZ25lcnNQYWdlQ29tcG9uZW50LFxuICAgICAgICBKd3RTaWduZXJGb3JtQ29tcG9uZW50LFxuICAgICAgICBBdXRoUG9saWNpZXNQYWdlQ29tcG9uZW50LFxuICAgICAgICBBdXRoUG9saWN5Rm9ybUNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBTSEFSRURaX0VYVEVOU0lPTiwgdXNlQ2xhc3M6IEV4dGVuc2lvbnNOb29wU2VydmljZX0sXG4gICAgICAgIHtwcm92aWRlOiBaSVRJX05BVklHQVRPUiwgdXNlVmFsdWU6IHt9fSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogb25BcHBJbml0LFxuICAgICAgICAgICAgZGVwczogW0luamVjdG9yXSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgT3BlblppdGlDb25zb2xlTGliTW9kdWxlIHtcbn1cbiJdfQ==