@openziti/ziti-console-lib 0.6.2 → 0.6.3

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 (77) hide show
  1. package/assets/fonts/zac.eot +0 -0
  2. package/assets/fonts/zac.svg +3 -1
  3. package/assets/fonts/zac.ttf +0 -0
  4. package/assets/fonts/zac.woff +0 -0
  5. package/assets/fonts/zac.woff2 +0 -0
  6. package/assets/styles/global.scss +38 -0
  7. package/assets/styles/icons.css +3 -0
  8. package/esm2022/lib/features/confirm/confirm.component.mjs +22 -5
  9. package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +1 -1
  10. package/esm2022/lib/features/data-table/cells/table-cell-name/table-cell-name.component.mjs +2 -2
  11. package/esm2022/lib/features/data-table/data-table-filter.service.mjs +3 -1
  12. package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +9 -3
  13. package/esm2022/lib/features/messaging/growler.component.mjs +2 -2
  14. package/esm2022/lib/features/preview-list/preview-list.component.mjs +17 -11
  15. package/esm2022/lib/features/preview-selections/preview-selections.component.mjs +115 -0
  16. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +1 -1
  17. package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +1 -1
  18. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +1 -1
  19. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +1 -1
  20. package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +6 -3
  21. package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +1 -1
  22. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +1 -1
  23. package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +8 -5
  24. package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +2 -2
  25. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +1 -1
  26. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +1 -1
  27. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +4 -3
  28. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +1 -1
  29. package/esm2022/lib/features/sidebars/side-toolbar/side-toolbar.component.mjs +2 -1
  30. package/esm2022/lib/features/wrappers/zac-wrapper.service.mjs +8 -1
  31. package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +2 -2
  32. package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +2 -2
  33. package/esm2022/lib/pages/identities/identities-page.component.mjs +3 -3
  34. package/esm2022/lib/pages/services/services-page.component.mjs +103 -11
  35. package/esm2022/lib/pages/services/services-page.service.mjs +135 -8
  36. package/esm2022/lib/services/node-data.service.mjs +6 -2
  37. package/esm2022/lib/services/settings-service.class.mjs +2 -1
  38. package/esm2022/lib/services/settings.service.mjs +2 -1
  39. package/esm2022/lib/shared/list-page-component.class.mjs +5 -5
  40. package/esm2022/lib/shared/list-page-service.class.mjs +5 -2
  41. package/esm2022/lib/version.mjs +2 -2
  42. package/esm2022/lib/ziti-console-lib.module.mjs +6 -3
  43. package/fesm2022/openziti-ziti-console-lib.mjs +861 -494
  44. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  45. package/lib/features/confirm/confirm.component.d.ts +9 -0
  46. package/lib/features/confirm/confirm.component.d.ts.map +1 -1
  47. package/lib/features/data-table/data-table-filter.service.d.ts +1 -0
  48. package/lib/features/data-table/data-table-filter.service.d.ts.map +1 -1
  49. package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts +1 -0
  50. package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts.map +1 -1
  51. package/lib/features/preview-list/preview-list.component.d.ts +1 -0
  52. package/lib/features/preview-list/preview-list.component.d.ts.map +1 -1
  53. package/lib/features/preview-selections/preview-selections.component.d.ts +39 -0
  54. package/lib/features/preview-selections/preview-selections.component.d.ts.map +1 -0
  55. package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts +2 -1
  56. package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts.map +1 -1
  57. package/lib/features/projectable-forms/service/service-form.component.d.ts.map +1 -1
  58. package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts +1 -1
  59. package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +1 -1
  60. package/lib/features/sidebars/side-toolbar/side-toolbar.component.d.ts.map +1 -1
  61. package/lib/features/wrappers/zac-wrapper.service.d.ts.map +1 -1
  62. package/lib/pages/auth-policies/auth-policies-page.service.d.ts +1 -1
  63. package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +1 -1
  64. package/lib/pages/services/services-page.component.d.ts +9 -1
  65. package/lib/pages/services/services-page.component.d.ts.map +1 -1
  66. package/lib/pages/services/services-page.service.d.ts +15 -1
  67. package/lib/pages/services/services-page.service.d.ts.map +1 -1
  68. package/lib/services/node-data.service.d.ts.map +1 -1
  69. package/lib/services/settings-service.class.d.ts +1 -0
  70. package/lib/services/settings-service.class.d.ts.map +1 -1
  71. package/lib/services/settings.service.d.ts.map +1 -1
  72. package/lib/shared/list-page-component.class.d.ts +0 -1
  73. package/lib/shared/list-page-component.class.d.ts.map +1 -1
  74. package/lib/shared/list-page-service.class.d.ts.map +1 -1
  75. package/lib/ziti-console-lib.module.d.ts +19 -18
  76. package/lib/ziti-console-lib.module.d.ts.map +1 -1
  77. package/package.json +1 -1
@@ -305,7 +305,7 @@ class EdgeRoutersPageService extends ListPageServiceClass {
305
305
  autoFocus: false,
306
306
  });
307
307
  return this.dialogRef.afterClosed().toPromise().then((result) => {
308
- if (result) {
308
+ if (result?.confirmed) {
309
309
  return this.zitiService.post(`edge-routers/${router.id}/re-enroll`, {}, true).then((result) => {
310
310
  const growlerData = new GrowlerModel('success', 'Success', `Re-enroll Confirmed`, `Router re-enroll was sent. A new enrollment token is now available`);
311
311
  this.growlerService.show(growlerData);
@@ -362,4 +362,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
362
362
  type: Inject,
363
363
  args: [EDGE_ROUTER_EXTENSION_SERVICE]
364
364
  }] }, { type: i5.Router }]; } });
365
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9lZGdlLXJvdXRlcnMvZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3RDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUlwRSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx1RUFBdUUsQ0FBQztBQUVwSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUUxRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7O0FBRWpILE1BQU0sV0FBVyxHQUFHO0lBQ2hCLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJ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Z0JBQWdCOzswQkFFdkIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUl4QixNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0LCBDb21wb25lbnR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtFZGdlUm91dGVyfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2VkZ2Utcm91dGVyXCI7XG5pbXBvcnQge3Vuc2V0LCBmb3JFYWNofSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge0lUb29sdGlwQW5ndWxhckNvbXB9IGZyb20gXCJhZy1ncmlkLWFuZ3VsYXJcIjtcbmltcG9ydCB7SVRvb2x0aXBQYXJhbXN9IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xuaW1wb3J0IHtPU1Rvb2x0aXBDb21wb25lbnR9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9kYXRhLXRhYmxlL3Rvb2x0aXBzL29zLXRvb2x0aXAuY29tcG9uZW50XCI7XG5pbXBvcnQge0dyb3dsZXJNb2RlbH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLm1vZGVsXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge0VER0VfUk9VVEVSX0VYVEVOU0lPTl9TRVJWSUNFfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvZWRnZS1yb3V0ZXIvZWRnZS1yb3V0ZXItZm9ybS5zZXJ2aWNlXCI7XG5pbXBvcnQge0V4dGVuc2lvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9leHRlbmRhYmxlL2V4dGVuc2lvbnMtbm9vcC5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvbmZpcm1Db21wb25lbnR9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtUYWJsZUNlbGxOYW1lQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jZWxscy90YWJsZS1jZWxsLW5hbWUvdGFibGUtY2VsbC1uYW1lLmNvbXBvbmVudFwiO1xuXG5jb25zdCBDU1ZfQ09MVU1OUyA9IFtcbiAgICB7bGFiZWw6ICdOYW1lJywgcGF0aDogJ25hbWUnfSxcbiAgICB7bGFiZWw6ICdBdHRyaWJ1dGVzJywgcGF0aDogJ3JvbGVBdHRyaWJ1dGVzJ30sXG4gICAge2xhYmVsOiAnVmVyaWZpZWQnLCBwYXRoOiAnaXNWZXJpZmllZCd9LFxuICAgIHtsYWJlbDogJ09ubGluZScsIHBhdGg6ICdpc09ubGluZSd9LFxuICAgIHtsYWJlbDogJ0NyZWF0ZWQnLCBwYXRoOiAnY3JlYXRlZEF0J30sXG4gICAge2xhYmVsOiAnVG9rZW4nLCBwYXRoOiAnZW5yb2xsbWVudFRva2VuJ30sXG4gICAge2xhYmVsOiAnTm8gVHJhdmVyc2FsJywgcGF0aDogJ25vVHJhdmVyc2FsJ30sXG4gICAge2xhYmVsOiAnSG9zdCBOYW1lJywgcGF0aDogJ2hvc3RuYW1lJ30sXG4gICAge2xhYmVsOiAnRGlzYWJsZWQnLCBwYXRoOiAnZGlzYWJsZWQnfSxcbiAgICB7bGFiZWw6ICdUdW5uZWxlciBFbmFibGVkJywgcGF0aDogJ2lzVHVubmVsZXJFbmFibGVkJ30sXG4gICAge2xhYmVsOiAnT1MnLCBwYXRoOiAndmVyc2lvbkluZm8ub3MnfSxcbiAgICB7bGFiZWw6ICdBcmNoaXRlY3R1cmUnLCBwYXRoOiAndmVyc2lvbkluZm8uYXJjaCd9LFxuICAgIHtsYWJlbDogJ1ZlcnNpb24nLCBwYXRoOiAndmVyc2lvbkluZm8udmVyc2lvbid9LFxuICAgIHtsYWJlbDogJ1JldmlzaW9uJywgcGF0aDogJ3ZlcnNpb25JbmZvLnJldmlzaW9uJ30sXG4gICAge2xhYmVsOiAnRmluZ2VycHJpbnQnLCBwYXRoOiAnZmluZ2VycHJpbnQnfSxcbiAgICB7bGFiZWw6ICdJRCcsIHBhdGg6ICdpZCd9LFxuXTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFZGdlUm91dGVyc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXInO1xuXG4gICAgc2VsZWN0ZWRFZGdlUm91dGVyOiBhbnkgPSBuZXcgRWRnZVJvdXRlcigpO1xuICAgIGNvbHVtbkZpbHRlcnM6IGFueSA9IHtcbiAgICAgICAgbmFtZTogJycsXG4gICAgICAgIG9zOiAnJyxcbiAgICAgICAgY3JlYXRlZEF0OiAnJyxcbiAgICB9O1xuXG4gICAgb3ZlcnJpZGUgbWVudUl0ZW1zID0gW1xuICAgICAgICB7bmFtZTogJ0VkaXQnLCBhY3Rpb246ICd1cGRhdGUnfSxcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBKV1QnLCBhY3Rpb246ICdkb3dubG9hZC1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmVzZXQgRW5yb2xsbWVudCcsIGFjdGlvbjogJ3Jlc2V0LWVucm9sbG1lbnQnfSxcbiAgICAgICAge25hbWU6ICdSZS1FbnJvbGwnLCBhY3Rpb246ICdyZS1lbnJvbGwnfSxcbiAgICAgICAge25hbWU6ICdEZWxldGUnLCBhY3Rpb246ICdkZWxldGUnfSxcbiAgICBdXG5cbiAgICBvdmVycmlkZSB0YWJsZUhlYWRlckFjdGlvbnMgPSBbXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgQWxsJywgYWN0aW9uOiAnZG93bmxvYWQtYWxsJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgU2VsZWN0ZWQnLCBhY3Rpb246ICdkb3dubG9hZC1zZWxlY3RlZCd9LFxuICAgIF1cblxuICAgIHJlc291cmNlVHlwZSA9ICdlZGdlLXJvdXRlcnMnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoU0VUVElOR1NfU0VSVklDRSkgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZUNsYXNzLFxuICAgICAgICBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFpJVElfREFUQV9TRVJWSUNFKSBwcml2YXRlIHppdGlTZXJ2aWNlOiBaaXRpRGF0YVNlcnZpY2UsXG4gICAgICAgIG92ZXJyaWRlIGNzdkRvd25sb2FkU2VydmljZTogQ3N2RG93bmxvYWRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdyb3dsZXJTZXJ2aWNlOiBHcm93bGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dGb3JtOiBNYXREaWFsb2csXG4gICAgICAgIEBJbmplY3QoRURHRV9ST1VURVJfRVhURU5TSU9OX1NFUlZJQ0UpIHByaXZhdGUgZXh0U2VydmljZTogRXh0ZW5zaW9uU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJvdXRlcjogUm91dGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHNldHRpbmdzLCBmaWx0ZXJTZXJ2aWNlLCBjc3ZEb3dubG9hZFNlcnZpY2UsIGV4dFNlcnZpY2UsIHJvdXRlcik7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUgPSAoZm9ybURhdGEpOiBQcm9taXNlPENhbGxiYWNrUmVzdWx0cz4gPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcGFzc2VkOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgaW5pdFRhYmxlQ29sdW1ucygpOiBhbnkge1xuICAgICAgICB0aGlzLmluaXRNZW51QWN0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IG5hbWVSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImNvbCBjZWxsLW5hbWUtcmVuZGVyZXJcIiBkYXRhLWlkPVwiJHtyb3c/LmRhdGE/LmlkfVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2lyY2xlICR7cm93Py5kYXRhPy5pc1ZlcmlmaWVkfVwiIHRpdGxlPVwiVmVyaWZpZWQgU3RhdHVzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2lyY2xlICR7cm93Py5kYXRhPy5pc09ubGluZX1cIiB0aXRsZT1cIk9ubGluZSBTdGF0dXNcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz4ke3Jvdz8uZGF0YT8ubmFtZX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvbGVzUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBsZXQgcm9sZXMgPSAnJztcbiAgICAgICAgICAgIHJvdz8uZGF0YT8ucm9sZUF0dHJpYnV0ZXM/LmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICByb2xlcyArPSAnPGRpdiBjbGFzcz1cImhhc2h0YWdcIj4nK2F0dHIrJzwvZGl2Pic7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByb2xlcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9zUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvc01hcDogYW55ID0ge1xuICAgICAgICAgICAgICAgICdkYXJ3aW4nOiAnYXBwbGUnLFxuICAgICAgICAgICAgICAgICdsaW51eCc6ICdsaW51eCcsXG4gICAgICAgICAgICAgICAgJ2FuZHJvaWQnOiAnYW5kcm9pZCcsXG4gICAgICAgICAgICAgICAgJ3dpbmRvd3MnOiAnd2luZG93cydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBvcyA9IFwib3RoZXJcIjtcbiAgICAgICAgICAgIGZvckVhY2gob3NNYXAsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJvdz8uZGF0YT8udmVyc2lvbkluZm8/Lm9zVmVyc2lvbj8udG9Mb3dlckNhc2UoKS5pbmRleE9mKGtleSk+PTAgfHxcbiAgICAgICAgICAgICAgICAgICAgcm93Py5kYXRhPy52ZXJzaW9uSW5mbz8ub3MudG9Mb3dlckNhc2UoKS5pbmRleE9mKGtleSk+PTApIHtcbiAgICAgICAgICAgICAgICAgICAgb3MgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImNvbCBkZXNrdG9wXCIgZGF0YS1pZD1cIiR7cm93Py5kYXRhPy5pZH1cIiBzdHlsZT1cIm92ZXJmbG93OiB1bnNldDtcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9zICR7b3N9XCIgZGF0YS1iYWxsb29uLXBvcz1cInVwXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbnJvbGxtZW50VG9rZW5Gb3JtYXR0ZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHJvdz8uZGF0YT8uZW5yb2xsbWVudFRva2VuO1xuICAgICAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vbWVudChyb3c/LmRhdGE/LmVucm9sbG1lbnRFeHBpcmVzQXQpLmlzQmVmb3JlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdFbnJvbGxtZW50IEV4cGlyZWQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjb2x1bW5GaWx0ZXJzID0gdGhpcy5jb2x1bW5GaWx0ZXJzO1xuXG4gICAgICAgIGNvbnN0IG9zUGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0NPTUJPJyxcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQWxsJywgdmFsdWU6ICcnLCBpY29uOiAnZW1wdHknIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FwcGxlJywgdmFsdWU6ICdkYXJ3aW4nLCBpY29uOiAnYXBwbGUnIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ1dpbmRvd3MnLCB2YWx1ZTogJ21pbmd3JywgaWNvbjogJ3dpbmRvd3MnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdMaW51eCcsIHZhbHVlOiAnbGludXgnLCBpY29uOiAnbGludXgnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBbmRyb2lkJywgdmFsdWU6ICdhbmRyb2lkJywgaWNvbjogJ2FuZHJvaWQnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdPdGhlciAodGV4dCBzZWFyY2gpJywgdmFsdWU6ICcnLCBpY29uOiAnb3RoZXInLCB1c2VUZXh0SW5wdXQ6IHRydWUgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgY29sdW1uRmlsdGVycyxcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgdGFibGVDb2x1bW5zID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiB0aGlzLmhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IFRhYmxlQ2VsbE5hbWVDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7IHBhdGhSb290OiB0aGlzLmJhc2VQYXRoLCBzaG93Um91dGVySWNvbnM6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVkaXRGb3JtKGRhdGE/LmRhdGE/LmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIHNvcnREaXI6ICdhc2MnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnb3MnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAndmVyc2lvbkluZm8ub3MnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdPL1MnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBvc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnQ6IE9TVG9vbHRpcENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB0b29sdGlwRmllbGQ6ICd2ZXJzaW9uSW5mby5vcycsXG4gICAgICAgICAgICAgICAgdG9vbHRpcENvbXBvbmVudFBhcmFtczogeyBjb2xvcjogJyNlY2VjZWMnIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdyb2xlQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdyb2xlQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1JvbGVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVkaXRGb3JtKGRhdGE/LmRhdGE/LmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IHRoaXMucm9sZXNSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAndmVyaWZpZWQnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnaXNWZXJpZmllZCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1ZlcmlmaWVkJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnb25saW5lJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lzT25saW5lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnT25saW5lJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ0NyZWF0ZWQgQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiB0aGlzLmNyZWF0ZWRBdEZvcm1hdHRlcixcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zb3J0LmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2Vucm9sbG1lbnRUb2tlbicsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdlbnJvbGxtZW50VG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdUb2tlbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IGVucm9sbG1lbnRUb2tlbkZvcm1hdHRlcixcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2p3dCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdlbnJvbGxtZW50Snd0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnSldUJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6ICdjZWxsVG9rZW5Db21wb25lbnQnLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHRoaXMuZXh0U2VydmljZS5wcm9jZXNzVGFibGVDb2x1bW5zKSB7XG4gICAgICAgICAgICB0YWJsZUNvbHVtbnMgPSB0aGlzLmV4dFNlcnZpY2UucHJvY2Vzc1RhYmxlQ29sdW1ucyh0YWJsZUNvbHVtbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhYmxlQ29sdW1ucztcbiAgICB9XG5cbiAgICBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIHdlIGNhbiBjdXN0b21pemUgZmlsdGVycyBvciBzb3J0aW5nIGhlcmUgYmVmb3JlIG1vdmluZyBvbi4uLlxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VGFibGVEYXRhKCdlZGdlLXJvdXRlcnMnLCB0aGlzLnBhZ2luZywgZmlsdGVycywgc29ydClcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRGF0YShyZXN1bHRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0RhdGEocmVzdWx0czogYW55KSB7XG4gICAgICAgIGlmICghaXNFbXB0eShyZXN1bHRzPy5kYXRhKSkge1xuICAgICAgICAgICAgLy9wcmUtcHJvY2VzcyBkYXRhIGJlZm9yZSByZW5kZXJpbmdcbiAgICAgICAgICAgIHJlc3VsdHMuZGF0YSA9IHRoaXMuYWRkQWN0aW9uc1BlclJvdyhyZXN1bHRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEFjdGlvbnNQZXJSb3cocmVzdWx0czogYW55KTogYW55W10ge1xuICAgICAgICByZXR1cm4gcmVzdWx0cy5kYXRhLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgICByb3cuYWN0aW9uTGlzdCA9IFsndXBkYXRlJywgJ3JlLWVucm9sbCcsICdkZWxldGUnXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0Vucm9sbWVudFRva2VuKHJvdykpIHtcbiAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdkb3dubG9hZC1lbnJvbGxtZW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFkZExpc3RJdGVtRXh0ZW5zaW9uQWN0aW9ucyhyb3cpO1xuICAgICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFzRW5yb2xtZW50VG9rZW4oaXRlbSkge1xuICAgICAgICByZXR1cm4gIWlzRW1wdHkoaXRlbT8uZW5yb2xsbWVudEp3dCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVkZ2VSb3V0ZXJSb2xlQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdlZGdlLXJvdXRlci1yb2xlLWF0dHJpYnV0ZXMnLCB7fSwgW10pO1xuICAgIH1cblxuXG4gICAgZ2V0SldUKGlkZW50aXR5OiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGlkZW50aXR5LmVucm9sbG1lbnRKd3Q7XG4gICAgfVxuXG4gICAgZG93bmxvYWRKV1Qoand0LCBuYW1lKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6YXBwbGljYXRpb24veml0aS1qd3Q7Y2hhcnNldD11dGYtOCwnICsgZW5jb2RlVVJJQ29tcG9uZW50KGp3dCkpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBuYW1lK1wiLmp3dFwiKTtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICBlbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRBbGxJdGVtcygpIHtcbiAgICAgICAgY29uc3QgcGFnaW5nID0gY2xvbmVEZWVwKHRoaXMucGFnaW5nKTtcbiAgICAgICAgcGFnaW5nLnRvdGFsID0gMjAwMDtcbiAgICAgICAgc3VwZXIuZ2V0VGFibGVEYXRhKCdlZGdlLXJvdXRlcnMnLCBwYWdpbmcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvd25sb2FkSXRlbXMocmVzdWx0cz8uZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkb3dubG9hZEl0ZW1zKHNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgdGhpcy5jc3ZEb3dubG9hZFNlcnZpY2UuZG93bmxvYWQoXG4gICAgICAgICAgICAnZWRnZS1yb3V0ZXJzJyxcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgICBDU1ZfQ09MVU1OUyxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlZW5yb2xsKHJvdXRlcjogYW55KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBhcHBlbmRJZDogJ1JlZW5yb2xsUm91dGVyJyxcbiAgICAgICAgICAgIHRpdGxlOiAnUmUtRW5yb2xsIFJvdXRlcicsXG4gICAgICAgICAgICBtZXNzYWdlOiBgPHA+SWYgdGhlIHJvdXRlciBpcyBjdXJyZW50bHkgY29ubmVjdGVkLCBpdCB3aWxsIGJlIGRpc2Nvbm5lY3RlZCB1bnRpbCB0aGUgZW5yb2xsbWVudCBwcm9jZXNzIGlzIGNvbXBsZXRlZCB3aXRoIHRoZSBuZXdseSBnZW5lcmF0ZWQgSldULiA8cD4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlLWVucm9sbCB0aGUgc2VsZWN0ZWQgcm91dGVyP2AsXG4gICAgICAgICAgICBjb25maXJtTGFiZWw6ICdZZXMnLFxuICAgICAgICAgICAgY2FuY2VsTGFiZWw6ICdPb3BzLCBubyBnZXQgbWUgb3V0IG9mIGhlcmUnLFxuICAgICAgICAgICAgc2hvd0NhbmNlbExpbms6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihDb25maXJtQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnRvUHJvbWlzZSgpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLnBvc3QoYGVkZ2Utcm91dGVycy8ke3JvdXRlci5pZH0vcmUtZW5yb2xsYCwge30sIHRydWUpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBgUmUtZW5yb2xsIENvbmZpcm1lZGAsXG4gICAgICAgICAgICAgICAgICAgICAgICBgUm91dGVyIHJlLWVucm9sbCB3YXMgc2VudC4gQSBuZXcgZW5yb2xsbWVudCB0b2tlbiBpcyBub3cgYXZhaWxhYmxlYCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm93bGVyU2VydmljZS5zaG93KGdyb3dsZXJEYXRhKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblVwZGF0ZShpdGVtPzogYW55KSB7XG4gICAgICAgIHRoaXMubW9kYWxUeXBlID0gJ2VkZ2Utcm91dGVyJztcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyID0gaXRlbTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmJhZGdlcyA9IFtdO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmlzT25saW5lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzLnB1c2goe2xhYmVsOiAnT25saW5lJywgY2xhc3M6ICdvbmxpbmUnLCBjaXJjbGU6ICd0cnVlJ30pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5iYWRnZXMucHVzaCh7bGFiZWw6ICdPZmZsaW5lJywgY2xhc3M6ICdvZmZsaW5lJywgY2lyY2xlOiAnZmFsc2UnfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmlzVmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5iYWRnZXMucHVzaCh7bGFiZWw6ICdVbnZlcmlmaWVkJywgY2xhc3M6ICd1bnJlZyd9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRPRE86IGltcGxlbWVudCB3aGVuIG1ldHJpY3MgYW5kIGRpYWxvZyBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlXG4gICAgICAgICAgICAvKnRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyWi5tb3JlQWN0aW9ucyA9IFtcbiAgICAgICAgICAgICAgICB7bmFtZTogJ29wZW4tbWV0cmljcycsIGxhYmVsOiAnT3BlbiBNZXRyaWNzJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICdkaWFsLWxvZ3MnLCBsYWJlbDogJ0RpYWwgTG9ncyd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAnZGlhbC1sb2dzJywgbGFiZWw6ICdWaWV3IEV2ZW50cyd9LFxuICAgICAgICAgICAgXTsqL1xuICAgICAgICAgICAgdW5zZXQodGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIsICdfbGlua3MnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyID0gbmV3IEVkZ2VSb3V0ZXIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpZGVNb2RhbE9wZW4gPSB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
365
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9lZGdlLXJvdXRlcnMvZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3RDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUlwRSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx1RUFBdUUsQ0FBQztBQUVwSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUUxRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7O0FBRWpILE1BQU0sV0FBVyxHQUFHO0lBQ2hCLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJ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TUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUV2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBSXhCLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3QsIENvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Y2xvbmVEZWVwLCBpc0VtcHR5fSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLCBGaWx0ZXJPYmp9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7TGlzdFBhZ2VTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGlzdC1wYWdlLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7XG4gICAgVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50XG59IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NvbHVtbi1oZWFkZXJzL3RhYmxlLWNvbHVtbi1kZWZhdWx0L3RhYmxlLWNvbHVtbi1kZWZhdWx0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDYWxsYmFja1Jlc3VsdHN9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9saXN0LXBhZ2UtZmVhdHVyZXMvbGlzdC1wYWdlLWZvcm0vbGlzdC1wYWdlLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge1NFVFRJTkdTX1NFUlZJQ0UsIFNldHRpbmdzU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NldHRpbmdzLnNlcnZpY2VcIjtcbmltcG9ydCB7WklUSV9EQVRBX1NFUlZJQ0UsIFppdGlEYXRhU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3ppdGktZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQge0NzdkRvd25sb2FkU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2Nzdi1kb3dubG9hZC5zZXJ2aWNlXCI7XG5pbXBvcnQge0VkZ2VSb3V0ZXJ9IGZyb20gXCIuLi8uLi9tb2RlbHMvZWRnZS1yb3V0ZXJcIjtcbmltcG9ydCB7dW5zZXQsIGZvckVhY2h9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7SVRvb2x0aXBBbmd1bGFyQ29tcH0gZnJvbSBcImFnLWdyaWQtYW5ndWxhclwiO1xuaW1wb3J0IHtJVG9vbHRpcFBhcmFtc30gZnJvbSBcImFnLWdyaWQtY29tbXVuaXR5XCI7XG5pbXBvcnQge09TVG9vbHRpcENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvdG9vbHRpcHMvb3MtdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2VDbGFzc30gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NldHRpbmdzLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7RURHRV9ST1VURVJfRVhURU5TSU9OX1NFUlZJQ0V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9lZGdlLXJvdXRlci9lZGdlLXJvdXRlci1mb3JtLnNlcnZpY2VcIjtcbmltcG9ydCB7RXh0ZW5zaW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2V4dGVuZGFibGUvZXh0ZW5zaW9ucy1ub29wLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29uZmlybUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnRcIjtcbmltcG9ydCB7Um91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge1RhYmxlQ2VsbE5hbWVDb21wb25lbnR9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NlbGxzL3RhYmxlLWNlbGwtbmFtZS90YWJsZS1jZWxsLW5hbWUuY29tcG9uZW50XCI7XG5cbmNvbnN0IENTVl9DT0xVTU5TID0gW1xuICAgIHtsYWJlbDogJ05hbWUnLCBwYXRoOiAnbmFtZSd9LFxuICAgIHtsYWJlbDogJ0F0dHJpYnV0ZXMnLCBwYXRoOiAncm9sZUF0dHJpYnV0ZXMnfSxcbiAgICB7bGFiZWw6ICdWZXJpZmllZCcsIHBhdGg6ICdpc1ZlcmlmaWVkJ30sXG4gICAge2xhYmVsOiAnT25saW5lJywgcGF0aDogJ2lzT25saW5lJ30sXG4gICAge2xhYmVsOiAnQ3JlYXRlZCcsIHBhdGg6ICdjcmVhdGVkQXQnfSxcbiAgICB7bGFiZWw6ICdUb2tlbicsIHBhdGg6ICdlbnJvbGxtZW50VG9rZW4nfSxcbiAgICB7bGFiZWw6ICdObyBUcmF2ZXJzYWwnLCBwYXRoOiAnbm9UcmF2ZXJzYWwnfSxcbiAgICB7bGFiZWw6ICdIb3N0IE5hbWUnLCBwYXRoOiAnaG9zdG5hbWUnfSxcbiAgICB7bGFiZWw6ICdEaXNhYmxlZCcsIHBhdGg6ICdkaXNhYmxlZCd9LFxuICAgIHtsYWJlbDogJ1R1bm5lbGVyIEVuYWJsZWQnLCBwYXRoOiAnaXNUdW5uZWxlckVuYWJsZWQnfSxcbiAgICB7bGFiZWw6ICdPUycsIHBhdGg6ICd2ZXJzaW9uSW5mby5vcyd9LFxuICAgIHtsYWJlbDogJ0FyY2hpdGVjdHVyZScsIHBhdGg6ICd2ZXJzaW9uSW5mby5hcmNoJ30sXG4gICAge2xhYmVsOiAnVmVyc2lvbicsIHBhdGg6ICd2ZXJzaW9uSW5mby52ZXJzaW9uJ30sXG4gICAge2xhYmVsOiAnUmV2aXNpb24nLCBwYXRoOiAndmVyc2lvbkluZm8ucmV2aXNpb24nfSxcbiAgICB7bGFiZWw6ICdGaW5nZXJwcmludCcsIHBhdGg6ICdmaW5nZXJwcmludCd9LFxuICAgIHtsYWJlbDogJ0lEJywgcGF0aDogJ2lkJ30sXG5dO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVkZ2VSb3V0ZXJzUGFnZVNlcnZpY2UgZXh0ZW5kcyBMaXN0UGFnZVNlcnZpY2VDbGFzcyB7XG5cbiAgICBwcml2YXRlIHBhZ2luZyA9IHRoaXMuREVGQVVMVF9QQUdJTkc7XG4gICAgcHVibGljIG1vZGFsVHlwZSA9ICdlZGdlLXJvdXRlcic7XG5cbiAgICBzZWxlY3RlZEVkZ2VSb3V0ZXI6IGFueSA9IG5ldyBFZGdlUm91dGVyKCk7XG4gICAgY29sdW1uRmlsdGVyczogYW55ID0ge1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgb3M6ICcnLFxuICAgICAgICBjcmVhdGVkQXQ6ICcnLFxuICAgIH07XG5cbiAgICBvdmVycmlkZSBtZW51SXRlbXMgPSBbXG4gICAgICAgIHtuYW1lOiAnRWRpdCcsIGFjdGlvbjogJ3VwZGF0ZSd9LFxuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIEpXVCcsIGFjdGlvbjogJ2Rvd25sb2FkLWVucm9sbG1lbnQnfSxcbiAgICAgICAge25hbWU6ICdSZXNldCBFbnJvbGxtZW50JywgYWN0aW9uOiAncmVzZXQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1JlLUVucm9sbCcsIGFjdGlvbjogJ3JlLWVucm9sbCd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF1cblxuICAgIG92ZXJyaWRlIHRhYmxlSGVhZGVyQWN0aW9ucyA9IFtcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBBbGwnLCBhY3Rpb246ICdkb3dubG9hZC1hbGwnfSxcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBTZWxlY3RlZCcsIGFjdGlvbjogJ2Rvd25sb2FkLXNlbGVjdGVkJ30sXG4gICAgXVxuXG4gICAgcmVzb3VyY2VUeXBlID0gJ2VkZ2Utcm91dGVycyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgeml0aVNlcnZpY2U6IFppdGlEYXRhU2VydmljZSxcbiAgICAgICAgb3ZlcnJpZGUgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChFREdFX1JPVVRFUl9FWFRFTlNJT05fU0VSVklDRSkgcHJpdmF0ZSBleHRTZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc2V0dGluZ3MsIGZpbHRlclNlcnZpY2UsIGNzdkRvd25sb2FkU2VydmljZSwgZXh0U2VydmljZSwgcm91dGVyKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSA9IChmb3JtRGF0YSk6IFByb21pc2U8Q2FsbGJhY2tSZXN1bHRzPiA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBwYXNzZWQ6IHRydWV9KTtcbiAgICB9XG5cbiAgICBpbml0VGFibGVDb2x1bW5zKCk6IGFueSB7XG4gICAgICAgIHRoaXMuaW5pdE1lbnVBY3Rpb25zKCk7XG5cbiAgICAgICAgY29uc3QgbmFtZVJlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiY29sIGNlbGwtbmFtZS1yZW5kZXJlclwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaXJjbGUgJHtyb3c/LmRhdGE/LmlzVmVyaWZpZWR9XCIgdGl0bGU9XCJWZXJpZmllZCBTdGF0dXNcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaXJjbGUgJHtyb3c/LmRhdGE/LmlzT25saW5lfVwiIHRpdGxlPVwiT25saW5lIFN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPiR7cm93Py5kYXRhPy5uYW1lfTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm9sZXNSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIGxldCByb2xlcyA9ICcnO1xuICAgICAgICAgICAgcm93Py5kYXRhPy5yb2xlQXR0cmlidXRlcz8uZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgIHJvbGVzICs9ICc8ZGl2IGNsYXNzPVwiaGFzaHRhZ1wiPicrYXR0cisnPC9kaXY+JztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJvbGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3NSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9zTWFwOiBhbnkgPSB7XG4gICAgICAgICAgICAgICAgJ2Rhcndpbic6ICdhcHBsZScsXG4gICAgICAgICAgICAgICAgJ2xpbnV4JzogJ2xpbnV4JyxcbiAgICAgICAgICAgICAgICAnYW5kcm9pZCc6ICdhbmRyb2lkJyxcbiAgICAgICAgICAgICAgICAnd2luZG93cyc6ICd3aW5kb3dzJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IG9zID0gXCJvdGhlclwiO1xuICAgICAgICAgICAgZm9yRWFjaChvc01hcCwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy52ZXJzaW9uSW5mbz8ub3NWZXJzaW9uPy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoa2V5KT49MCB8fFxuICAgICAgICAgICAgICAgICAgICByb3c/LmRhdGE/LnZlcnNpb25JbmZvPy5vcy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoa2V5KT49MCkge1xuICAgICAgICAgICAgICAgICAgICBvcyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiY29sIGRlc2t0b3BcIiBkYXRhLWlkPVwiJHtyb3c/LmRhdGE/LmlkfVwiIHN0eWxlPVwib3ZlcmZsb3c6IHVuc2V0O1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3MgJHtvc31cIiBkYXRhLWJhbGxvb24tcG9zPVwidXBcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVucm9sbG1lbnRUb2tlbkZvcm1hdHRlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gcm93Py5kYXRhPy5lbnJvbGxtZW50VG9rZW47XG4gICAgICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAobW9tZW50KHJvdz8uZGF0YT8uZW5yb2xsbWVudEV4cGlyZXNBdCkuaXNCZWZvcmUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0Vucm9sbG1lbnQgRXhwaXJlZCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbkZpbHRlcnMgPSB0aGlzLmNvbHVtbkZpbHRlcnM7XG5cbiAgICAgICAgY29uc3Qgb3NQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnQ09NQk8nLFxuICAgICAgICAgICAgZmlsdGVyT3B0aW9uczogW1xuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBbGwnLCB2YWx1ZTogJycsIGljb246ICdlbXB0eScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQXBwbGUnLCB2YWx1ZTogJ2RhcndpbicsIGljb246ICdhcHBsZScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnV2luZG93cycsIHZhbHVlOiAnbWluZ3cnLCBpY29uOiAnd2luZG93cycgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0xpbnV4JywgdmFsdWU6ICdsaW51eCcsIGljb246ICdsaW51eCcgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FuZHJvaWQnLCB2YWx1ZTogJ2FuZHJvaWQnLCBpY29uOiAnYW5kcm9pZCcgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ090aGVyICh0ZXh0IHNlYXJjaCknLCB2YWx1ZTogJycsIGljb246ICdvdGhlcicsIHVzZVRleHRJbnB1dDogdHJ1ZSAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBjb2x1bW5GaWx0ZXJzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCB0YWJsZUNvbHVtbnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IHRoaXMuaGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogVGFibGVDZWxsTmFtZUNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHsgcGF0aFJvb3Q6IHRoaXMuYmFzZVBhdGgsIHNob3dSb3V0ZXJJY29uczogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRWRpdEZvcm0oZGF0YT8uZGF0YT8uaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zb3J0LmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgc29ydERpcjogJ2FzYydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdvcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICd2ZXJzaW9uSW5mby5vcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ08vUycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IG9zUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcENvbXBvbmVudDogT1NUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogJ3ZlcnNpb25JbmZvLm9zJyxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50UGFyYW1zOiB7IGNvbG9yOiAnI2VjZWNlYycgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ3JvbGVBdHRyaWJ1dGVzJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3JvbGVBdHRyaWJ1dGVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnUm9sZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRWRpdEZvcm0oZGF0YT8uZGF0YT8uaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5yb2xlc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICd2ZXJpZmllZCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc1ZlcmlmaWVkJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnVmVyaWZpZWQnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdvbmxpbmUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnaXNPbmxpbmUnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdPbmxpbmUnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMuY3JlYXRlZEF0Rm9ybWF0dGVyLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnZW5yb2xsbWVudFRva2VuJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2Vucm9sbG1lbnRUb2tlbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1Rva2VuJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogZW5yb2xsbWVudFRva2VuRm9ybWF0dGVyLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnand0JyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2Vucm9sbG1lbnRKd3QnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdKV1QnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogJ2NlbGxUb2tlbkNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcblxuICAgICAgICBpZiAodGhpcy5leHRTZXJ2aWNlLnByb2Nlc3NUYWJsZUNvbHVtbnMpIHtcbiAgICAgICAgICAgIHRhYmxlQ29sdW1ucyA9IHRoaXMuZXh0U2VydmljZS5wcm9jZXNzVGFibGVDb2x1bW5zKHRhYmxlQ29sdW1ucyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFibGVDb2x1bW5zO1xuICAgIH1cblxuICAgIGdldERhdGEoZmlsdGVycz86IEZpbHRlck9ialtdLCBzb3J0PzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgLy8gd2UgY2FuIGN1c3RvbWl6ZSBmaWx0ZXJzIG9yIHNvcnRpbmcgaGVyZSBiZWZvcmUgbW92aW5nIG9uLi4uXG4gICAgICAgIHJldHVybiBzdXBlci5nZXRUYWJsZURhdGEoJ2VkZ2Utcm91dGVycycsIHRoaXMucGFnaW5nLCBmaWx0ZXJzLCBzb3J0KVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NEYXRhKHJlc3VsdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzRGF0YShyZXN1bHRzOiBhbnkpIHtcbiAgICAgICAgaWYgKCFpc0VtcHR5KHJlc3VsdHM/LmRhdGEpKSB7XG4gICAgICAgICAgICAvL3ByZS1wcm9jZXNzIGRhdGEgYmVmb3JlIHJlbmRlcmluZ1xuICAgICAgICAgICAgcmVzdWx0cy5kYXRhID0gdGhpcy5hZGRBY3Rpb25zUGVyUm93KHJlc3VsdHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQWN0aW9uc1BlclJvdyhyZXN1bHRzOiBhbnkpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiByZXN1bHRzLmRhdGEubWFwKChyb3cpID0+IHtcbiAgICAgICAgICAgIHJvdy5hY3Rpb25MaXN0ID0gWyd1cGRhdGUnLCAncmUtZW5yb2xsJywgJ2RlbGV0ZSddO1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzRW5yb2xtZW50VG9rZW4ocm93KSkge1xuICAgICAgICAgICAgICAgIHJvdy5hY3Rpb25MaXN0LnB1c2goJ2Rvd25sb2FkLWVucm9sbG1lbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYWRkTGlzdEl0ZW1FeHRlbnNpb25BY3Rpb25zKHJvdyk7XG4gICAgICAgICAgICByZXR1cm4gcm93O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNFbnJvbG1lbnRUb2tlbihpdGVtKSB7XG4gICAgICAgIHJldHVybiAhaXNFbXB0eShpdGVtPy5lbnJvbGxtZW50Snd0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RWRnZVJvdXRlclJvbGVBdHRyaWJ1dGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5nZXQoJ2VkZ2Utcm91dGVyLXJvbGUtYXR0cmlidXRlcycsIHt9LCBbXSk7XG4gICAgfVxuXG5cbiAgICBnZXRKV1QoaWRlbnRpdHk6IGFueSkge1xuICAgICAgICByZXR1cm4gaWRlbnRpdHkuZW5yb2xsbWVudEp3dDtcbiAgICB9XG5cbiAgICBkb3dubG9hZEpXVChqd3QsIG5hbWUpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnZGF0YTphcHBsaWNhdGlvbi96aXRpLWp3dDtjaGFyc2V0PXV0Zi04LCcgKyBlbmNvZGVVUklDb21wb25lbnQoand0KSk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIG5hbWUrXCIuand0XCIpO1xuICAgICAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIGVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KTtcbiAgICB9XG5cbiAgICBkb3dubG9hZEFsbEl0ZW1zKCkge1xuICAgICAgICBjb25zdCBwYWdpbmcgPSBjbG9uZURlZXAodGhpcy5wYWdpbmcpO1xuICAgICAgICBwYWdpbmcudG90YWwgPSAyMDAwO1xuICAgICAgICBzdXBlci5nZXRUYWJsZURhdGEoJ2VkZ2Utcm91dGVycycsIHBhZ2luZywgdW5kZWZpbmVkLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG93bmxvYWRJdGVtcyhyZXN1bHRzPy5kYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRvd25sb2FkSXRlbXMoc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICB0aGlzLmNzdkRvd25sb2FkU2VydmljZS5kb3dubG9hZChcbiAgICAgICAgICAgICdlZGdlLXJvdXRlcnMnLFxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgICAgIENTVl9DT0xVTU5TLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVlbnJvbGwocm91dGVyOiBhbnkpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGFwcGVuZElkOiAnUmVlbnJvbGxSb3V0ZXInLFxuICAgICAgICAgICAgdGl0bGU6ICdSZS1FbnJvbGwgUm91dGVyJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGA8cD5JZiB0aGUgcm91dGVyIGlzIGN1cnJlbnRseSBjb25uZWN0ZWQsIGl0IHdpbGwgYmUgZGlzY29ubmVjdGVkIHVudGlsIHRoZSBlbnJvbGxtZW50IHByb2Nlc3MgaXMgY29tcGxldGVkIHdpdGggdGhlIG5ld2x5IGdlbmVyYXRlZCBKV1QuIDxwPiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmUtZW5yb2xsIHRoZSBzZWxlY3RlZCByb3V0ZXI/YCxcbiAgICAgICAgICAgIGNvbmZpcm1MYWJlbDogJ1llcycsXG4gICAgICAgICAgICBjYW5jZWxMYWJlbDogJ09vcHMsIG5vIGdldCBtZSBvdXQgb2YgaGVyZScsXG4gICAgICAgICAgICBzaG93Q2FuY2VsTGluazogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKENvbmZpcm1Db21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkudG9Qcm9taXNlKCkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0Py5jb25maXJtZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5wb3N0KGBlZGdlLXJvdXRlcnMvJHtyb3V0ZXIuaWR9L3JlLWVucm9sbGAsIHt9LCB0cnVlKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYFJlLWVucm9sbCBDb25maXJtZWRgLFxuICAgICAgICAgICAgICAgICAgICAgICAgYFJvdXRlciByZS1lbnJvbGwgd2FzIHNlbnQuIEEgbmV3IGVucm9sbG1lbnQgdG9rZW4gaXMgbm93IGF2YWlsYWJsZWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5VcGRhdGUoaXRlbT86IGFueSkge1xuICAgICAgICB0aGlzLm1vZGFsVHlwZSA9ICdlZGdlLXJvdXRlcic7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlciA9IGl0ZW07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5iYWRnZXMgPSBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5pc09ubGluZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmJhZGdlcy5wdXNoKHtsYWJlbDogJ09ubGluZScsIGNsYXNzOiAnb25saW5lJywgY2lyY2xlOiAndHJ1ZSd9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzLnB1c2goe2xhYmVsOiAnT2ZmbGluZScsIGNsYXNzOiAnb2ZmbGluZScsIGNpcmNsZTogJ2ZhbHNlJ30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5pc1ZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzLnB1c2goe2xhYmVsOiAnVW52ZXJpZmllZCcsIGNsYXNzOiAndW5yZWcnfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPOiBpbXBsZW1lbnQgd2hlbiBtZXRyaWNzIGFuZCBkaWFsb2cgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZVxuICAgICAgICAgICAgLyp0aGlzLnNlbGVjdGVkRWRnZVJvdXRlcloubW9yZUFjdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAge25hbWU6ICdvcGVuLW1ldHJpY3MnLCBsYWJlbDogJ09wZW4gTWV0cmljcyd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAnZGlhbC1sb2dzJywgbGFiZWw6ICdEaWFsIExvZ3MnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2RpYWwtbG9ncycsIGxhYmVsOiAnVmlldyBFdmVudHMnfSxcbiAgICAgICAgICAgIF07Ki9cbiAgICAgICAgICAgIHVuc2V0KHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLCAnX2xpbmtzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlciA9IG5ldyBFZGdlUm91dGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlTW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
@@ -216,12 +216,12 @@ class IdentitiesPageComponent extends ListPageComponent {
216
216
  return true;
217
217
  }
218
218
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IdentitiesPageComponent, deps: [{ token: i1.IdentitiesPageService }, { token: i2.DataTableFilterService }, { token: i3.MatDialog }, { token: i4.TabNameService }, { token: ZAC_WRAPPER_SERVICE }, { token: i5.Router }, { token: i6.ConsoleEventsService }, { token: IDENTITY_EXTENSION_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
219
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: IdentitiesPageComponent, selector: "lib-identities", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-identities-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n <ng-content select=\"[slot=list-page-subheader]\"></ng-content>\n <lib-data-table [tableId]=\"'identities'\"\n [rowData]=\"rowData\"\n [isLoading]=\"isLoading\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [currentPage]=\"currentPage\"\n [emptyMsg]=\"'No Identities defined, Click the plus to add an Identity.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n [headerActions]=\"svc.tableHeaderActions\"\n [noItemsImage]=\"'No_Clients'\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n<lib-side-modal [(open)]=\"svc.sideModalOpen\" [showClose]=\"false\">\n <lib-overrides\n *ngIf=\"svc.modalType === 'overrides' && svc.sideModalOpen\"\n [identity]=\"svc.selectedIdentity\"\n (close)=\"closeModal($event)\"\n ></lib-overrides>\n</lib-side-modal>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: [".ziti-page-container .action{line-height:60px;top:25px;right:25px;z-index:999}.ziti-identities-container ::ng-deep .zac-wrapper-container{height:0px;left:-999999px;position:fixed}.ziti-identities-container ::ng-deep .zac-wrapper-container .action{display:none}.ziti-ag-grid{height:100%;position:relative;width:100%}.ziti-ag-grid .ziti-ag-grid-table{height:100%;width:100%}.ziti-ag-grid .ziti-ag-grid-table .ag-root-wrapper{border-bottom-style:none}.ziti-ag-grid .ziti-ag-grid-table .ag-cell{align-items:center;display:flex}.system-policies-toggle,.hidden-results-container{position:relative;right:0;display:flex;flex-direction:row;justify-content:center;align-items:flex-start;margin-top:10px;padding:0 0 0 20px;border-radius:var(--inputBorderRadius);flex-wrap:nowrap;flex:1 0 auto}.system-policies-toggle .toggle-text,.hidden-results-container .toggle-text{font-weight:600;font-size:12px}.system-policies-toggle .toggle-text a,.hidden-results-container .toggle-text a{cursor:pointer}.system-policies-toggle .toggle,.hidden-results-container .toggle{width:75px;margin-left:10px}.system-policies-toggle .toggle.on .switch,.hidden-results-container .toggle.on .switch{left:52px}.system-policies-toggle .spinner,.hidden-results-container .spinner{display:inline-block;width:10px;height:10px;border-radius:50%;background:transparent;border-top:2px solid var(--tableText);border-right:2px solid var(--tableText);border-bottom:2px solid transparent;border-left:2px solid transparent;animation:loading .5s infinite linear;margin-left:5px}.hidden-results-container.loading-results{opacity:.7}.nf-cell-vert-align,.ag-row .ag-cell{align-items:center;display:flex}.hidden-columns-list{align-items:center;display:flex;flex-direction:row;margin-left:7px;min-height:30px;flex-wrap:wrap;flex:0 1 auto}.hidden-columns-list.hidden-results{flex-wrap:nowrap;overflow:auto}.hidden-columns-list.hidden-results .hidden-column-item{flex:1 0 auto}.hidden-columns-list::-webkit-scrollbar{height:14px}.hidden-columns-list .hidden-column-item{align-items:center;background-color:var(--background);border:2px solid var(--background);border-radius:12px;cursor:pointer;color:var(----stroke);font-weight:600;font-family:Open Sans,sans-serif;display:flex;flex:0 1 auto;height:25px!important;margin-left:10px;margin-top:5px;padding:2px 10px 2px 5px;position:relative;text-align:center;box-shadow:unset;transform:translateY(0)}.hidden-columns-list .ag-dnd-ghost:hover{border:2px solid var(--primaryColor)!important}.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-label,.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-icon .ag-icon-eye-slash{color:var(--ag-alpine-active-color, var(--primaryColor))}.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-icon .ag-icon-eye-slash:before{content:\"\\f113\"}.hidden-columns-list .ag-dnd-ghost-label{line-height:initial}::ng-deep .darkmode .ag-dnd-ghost-icon .ag-icon-eye-slash{color:#fff!important}.tMenu{transition-property:opacity;z-index:99999999999;height:-moz-fit-content;height:fit-content}.tMenu.action-menu{position:fixed;width:175px}.tMenu .tActionRow{transition-property:opacity}.tMenu .tActionRow.has-icon{display:flex;flex-direction:row;align-items:center}.tMenu .tActionRow .v7Offline{background-color:var(--placeholder)}.tMenu .tActionRow .v7OnlineOffline{width:14px;height:14px;border-color:var(--placeholder)}.tMenu .tActionRow .v7OnlineOffline:hover{border-color:var(--placeholder)}.hidden-items-container{display:flex;flex-direction:row;width:100%;flex-wrap:nowrap;justify-content:space-between}.os-icon{width:23px;height:23px;background-size:23px 23px;display:inline-flex;margin-right:8px;margin-top:5px;margin-bottom:5px}::ng-deep .date-time-container{position:fixed}::ng-deep .date-time-container .p-calendar .p-inputtext{height:1px;width:1px;padding:0}::ng-deep .date-time-container .filter-button-container{height:50px;display:flex;flex-direction:row;justify-content:center;align-items:center}::ng-deep .date-time-container .filter-button-container .toggleButton{padding-left:5px;padding-right:5px;width:unset}::ng-deep .date-time-container .p-calendar{height:30px}::ng-deep .date-time-container .p-calendar .p-inputtext{height:30px;border-top-left-radius:20px;border-bottom-left-radius:20px;text-indent:5px}::ng-deep .date-time-container .p-calendar .p-button-icon-only{border-top-right-radius:20px;border-bottom-right-radius:20px}#TimeSearch{position:relative;float:left;display:inline-block;margin-left:10px;width:50px;height:40px;background-color:var(--primary)}#TimeSearch #TimeSearchList{width:44px;height:0;position:absolute;top:0;left:-2px;overflow:hidden;transition:var(--transition);background-color:var(--menu);border-radius:8px;z-index:30}#TimeSearch #TimeSearchList .time{width:40px;background-color:var(--background);padding-left:8px;padding-right:8px;border-radius:8px;line-height:26px;font-size:12px;font-weight:700;text-align:center;margin-top:2px;margin-left:2px;left:-2px;top:-51px;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSearchList.open{top:-51px;width:44px;height:226px}#TimeSearch #TimeSelectButton{width:40px;background-color:var(--background);padding-left:8px;padding-right:8px;border-radius:8px;line-height:26px;text-align:center;font-size:12px;font-weight:700;margin-top:7px;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSelectButton:hover,#TimeSearch #TimeSearchList .time:hover{background-color:var(--primaryColor);color:var(--white)}::ng-deep p-togglebutton .p-togglebutton.p-button{border-radius:var(--inputBorderRadius)!important;box-shadow:0 5px 20px #0000000d!important;margin-top:-2px!important}::ng-deep p-togglebutton .p-togglebutton.p-button:hover{filter:brightness(99%)!important;box-shadow:0 5px 20px #0000000d!important;transition:all .3s ease}::ng-deep p-togglebutton .p-togglebutton.p-button:active{filter:brightness(95%)!important;box-shadow:none!important;transform:translateY(1px)!important;transition:all .3s ease}#TimeSearch #TimeSelectButton{margin-top:4px!important}::ng-deep .p-calendar .p-inputtext{height:37px}::ng-deep .p-inputtext{border-radius:var(--inputBorderRadius)}.calendar{display:inline-block;padding-left:5px;float:left;padding-right:10px;margin-top:-2px}::ng-deep .p-datepicker:not(.p-datepicker-inline){background:var(--table);border:0 none;box-shadow:#091e4226 0 20px 32px -8px;border-radius:12px}::ng-deep .p-button.p-button-text{background-color:transparent;color:var(--primaryColor);border-color:transparent}::ng-deep .p-button.p-button-text:enabled:hover{background:var(--primaryColorShadowLight);color:var(--primaryColor);border-color:transparent}::ng-deep .p-datepicker table td>span.p-highlight{color:var(--tableText);background:var(--primaryColorShadowLight)}::ng-deep .p-inputtext:enabled:hover{border-color:var(--primaryColor)}::ng-deep .p-datepicker{padding:.5rem;padding-bottom:0;background:var(--table);color:var(--tableText);border:1px solid var(--inputBorder);border-radius:3px}::ng-deep .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 1 var(--primaryColorShadowLight);border-color:var(--primaryColor)}::ng-deep .p-inputtext{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:1rem;color:var(--tableText);background:var(--table);padding:.5rem;border:1px solid var(--inputBorder);transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;appearance:none;border-radius:var(--inputBorderRadius)}::ng-deep .p-datepicker:not(.p-datepicker-inline) .p-datepicker-header{background:var(--table)}::ng-deep .p-datepicker .p-datepicker-header{padding:.5rem;color:var(--tableText);background:var(--table);font-weight:600;margin:0;border-bottom:1px solid var(--inputBorder);border-top-right-radius:12px;border-top-left-radius:12px}::ng-deep .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover{background:#e9ecef;color:var(--table)}::ng-deep .p-datepicker .p-timepicker{border-top:1px solid var(--background);padding:.5rem}::ng-deep .p-togglebutton.p-button{background:var(--background);border:1px solid var(--inputBorder);color:var(--tableText);transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}::ng-deep .p-datepicker .p-datepicker-buttonbar{padding:1rem 0;border-top:1px solid var(--inputBorder)}::ng-deep .p-button{color:#fff;background:var(--primaryColor);border:1px solid var(--primaryColor);padding:.495rem 1rem;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:var(--inputBorderRadius)}::ng-deep .p-togglebutton.p-button.p-highlight{background:var(--primaryColor);border:1px solid var(--primaryColor);color:var(--background)}::ng-deep .p-togglebutton.p-button.p-highlight:hover{background:var(--primaryColor);border:1px solid var(--primaryColor);color:var(--background)}app-zac-wrapper{z-index:999999}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: i9.DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: i10.SideModalComponent, selector: "lib-side-modal", inputs: ["showClose", "open"], outputs: ["openChange"] }, { kind: "component", type: i11.LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }, { kind: "component", type: i12.OverridesComponent, selector: "lib-overrides", inputs: ["identity"], outputs: ["close"] }] }); }
219
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: IdentitiesPageComponent, selector: "lib-identities", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-identities-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n <ng-content select=\"[slot=list-page-subheader]\"></ng-content>\n <lib-data-table [tableId]=\"'identities'\"\n [rowData]=\"rowData\"\n [isLoading]=\"isLoading\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [currentPage]=\"filterService.currentPage\"\n [emptyMsg]=\"'No Identities defined, Click the plus to add an Identity.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n [headerActions]=\"svc.tableHeaderActions\"\n [noItemsImage]=\"'No_Clients'\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n<lib-side-modal [(open)]=\"svc.sideModalOpen\" [showClose]=\"false\">\n <lib-overrides\n *ngIf=\"svc.modalType === 'overrides' && svc.sideModalOpen\"\n [identity]=\"svc.selectedIdentity\"\n (close)=\"closeModal($event)\"\n ></lib-overrides>\n</lib-side-modal>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: [".ziti-page-container .action{line-height:60px;top:25px;right:25px;z-index:999}.ziti-identities-container ::ng-deep .zac-wrapper-container{height:0px;left:-999999px;position:fixed}.ziti-identities-container ::ng-deep .zac-wrapper-container .action{display:none}.ziti-ag-grid{height:100%;position:relative;width:100%}.ziti-ag-grid .ziti-ag-grid-table{height:100%;width:100%}.ziti-ag-grid .ziti-ag-grid-table .ag-root-wrapper{border-bottom-style:none}.ziti-ag-grid .ziti-ag-grid-table .ag-cell{align-items:center;display:flex}.system-policies-toggle,.hidden-results-container{position:relative;right:0;display:flex;flex-direction:row;justify-content:center;align-items:flex-start;margin-top:10px;padding:0 0 0 20px;border-radius:var(--inputBorderRadius);flex-wrap:nowrap;flex:1 0 auto}.system-policies-toggle .toggle-text,.hidden-results-container .toggle-text{font-weight:600;font-size:12px}.system-policies-toggle .toggle-text a,.hidden-results-container .toggle-text a{cursor:pointer}.system-policies-toggle .toggle,.hidden-results-container .toggle{width:75px;margin-left:10px}.system-policies-toggle .toggle.on .switch,.hidden-results-container .toggle.on .switch{left:52px}.system-policies-toggle .spinner,.hidden-results-container .spinner{display:inline-block;width:10px;height:10px;border-radius:50%;background:transparent;border-top:2px solid var(--tableText);border-right:2px solid var(--tableText);border-bottom:2px solid transparent;border-left:2px solid transparent;animation:loading .5s infinite linear;margin-left:5px}.hidden-results-container.loading-results{opacity:.7}.nf-cell-vert-align,.ag-row .ag-cell{align-items:center;display:flex}.hidden-columns-list{align-items:center;display:flex;flex-direction:row;margin-left:7px;min-height:30px;flex-wrap:wrap;flex:0 1 auto}.hidden-columns-list.hidden-results{flex-wrap:nowrap;overflow:auto}.hidden-columns-list.hidden-results .hidden-column-item{flex:1 0 auto}.hidden-columns-list::-webkit-scrollbar{height:14px}.hidden-columns-list .hidden-column-item{align-items:center;background-color:var(--background);border:2px solid var(--background);border-radius:12px;cursor:pointer;color:var(----stroke);font-weight:600;font-family:Open Sans,sans-serif;display:flex;flex:0 1 auto;height:25px!important;margin-left:10px;margin-top:5px;padding:2px 10px 2px 5px;position:relative;text-align:center;box-shadow:unset;transform:translateY(0)}.hidden-columns-list .ag-dnd-ghost:hover{border:2px solid var(--primaryColor)!important}.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-label,.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-icon .ag-icon-eye-slash{color:var(--ag-alpine-active-color, var(--primaryColor))}.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-icon .ag-icon-eye-slash:before{content:\"\\f113\"}.hidden-columns-list .ag-dnd-ghost-label{line-height:initial}::ng-deep .darkmode .ag-dnd-ghost-icon .ag-icon-eye-slash{color:#fff!important}.tMenu{transition-property:opacity;z-index:99999999999;height:-moz-fit-content;height:fit-content}.tMenu.action-menu{position:fixed;width:175px}.tMenu .tActionRow{transition-property:opacity}.tMenu .tActionRow.has-icon{display:flex;flex-direction:row;align-items:center}.tMenu .tActionRow .v7Offline{background-color:var(--placeholder)}.tMenu .tActionRow .v7OnlineOffline{width:14px;height:14px;border-color:var(--placeholder)}.tMenu .tActionRow .v7OnlineOffline:hover{border-color:var(--placeholder)}.hidden-items-container{display:flex;flex-direction:row;width:100%;flex-wrap:nowrap;justify-content:space-between}.os-icon{width:23px;height:23px;background-size:23px 23px;display:inline-flex;margin-right:8px;margin-top:5px;margin-bottom:5px}::ng-deep .date-time-container{position:fixed}::ng-deep .date-time-container .p-calendar .p-inputtext{height:1px;width:1px;padding:0}::ng-deep .date-time-container .filter-button-container{height:50px;display:flex;flex-direction:row;justify-content:center;align-items:center}::ng-deep .date-time-container .filter-button-container .toggleButton{padding-left:5px;padding-right:5px;width:unset}::ng-deep .date-time-container .p-calendar{height:30px}::ng-deep .date-time-container .p-calendar .p-inputtext{height:30px;border-top-left-radius:20px;border-bottom-left-radius:20px;text-indent:5px}::ng-deep .date-time-container .p-calendar .p-button-icon-only{border-top-right-radius:20px;border-bottom-right-radius:20px}#TimeSearch{position:relative;float:left;display:inline-block;margin-left:10px;width:50px;height:40px;background-color:var(--primary)}#TimeSearch #TimeSearchList{width:44px;height:0;position:absolute;top:0;left:-2px;overflow:hidden;transition:var(--transition);background-color:var(--menu);border-radius:8px;z-index:30}#TimeSearch #TimeSearchList .time{width:40px;background-color:var(--background);padding-left:8px;padding-right:8px;border-radius:8px;line-height:26px;font-size:12px;font-weight:700;text-align:center;margin-top:2px;margin-left:2px;left:-2px;top:-51px;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSearchList.open{top:-51px;width:44px;height:226px}#TimeSearch #TimeSelectButton{width:40px;background-color:var(--background);padding-left:8px;padding-right:8px;border-radius:8px;line-height:26px;text-align:center;font-size:12px;font-weight:700;margin-top:7px;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSelectButton:hover,#TimeSearch #TimeSearchList .time:hover{background-color:var(--primaryColor);color:var(--white)}::ng-deep p-togglebutton .p-togglebutton.p-button{border-radius:var(--inputBorderRadius)!important;box-shadow:0 5px 20px #0000000d!important;margin-top:-2px!important}::ng-deep p-togglebutton .p-togglebutton.p-button:hover{filter:brightness(99%)!important;box-shadow:0 5px 20px #0000000d!important;transition:all .3s ease}::ng-deep p-togglebutton .p-togglebutton.p-button:active{filter:brightness(95%)!important;box-shadow:none!important;transform:translateY(1px)!important;transition:all .3s ease}#TimeSearch #TimeSelectButton{margin-top:4px!important}::ng-deep .p-calendar .p-inputtext{height:37px}::ng-deep .p-inputtext{border-radius:var(--inputBorderRadius)}.calendar{display:inline-block;padding-left:5px;float:left;padding-right:10px;margin-top:-2px}::ng-deep .p-datepicker:not(.p-datepicker-inline){background:var(--table);border:0 none;box-shadow:#091e4226 0 20px 32px -8px;border-radius:12px}::ng-deep .p-button.p-button-text{background-color:transparent;color:var(--primaryColor);border-color:transparent}::ng-deep .p-button.p-button-text:enabled:hover{background:var(--primaryColorShadowLight);color:var(--primaryColor);border-color:transparent}::ng-deep .p-datepicker table td>span.p-highlight{color:var(--tableText);background:var(--primaryColorShadowLight)}::ng-deep .p-inputtext:enabled:hover{border-color:var(--primaryColor)}::ng-deep .p-datepicker{padding:.5rem;padding-bottom:0;background:var(--table);color:var(--tableText);border:1px solid var(--inputBorder);border-radius:3px}::ng-deep .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 1 var(--primaryColorShadowLight);border-color:var(--primaryColor)}::ng-deep .p-inputtext{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:1rem;color:var(--tableText);background:var(--table);padding:.5rem;border:1px solid var(--inputBorder);transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;appearance:none;border-radius:var(--inputBorderRadius)}::ng-deep .p-datepicker:not(.p-datepicker-inline) .p-datepicker-header{background:var(--table)}::ng-deep .p-datepicker .p-datepicker-header{padding:.5rem;color:var(--tableText);background:var(--table);font-weight:600;margin:0;border-bottom:1px solid var(--inputBorder);border-top-right-radius:12px;border-top-left-radius:12px}::ng-deep .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover{background:#e9ecef;color:var(--table)}::ng-deep .p-datepicker .p-timepicker{border-top:1px solid var(--background);padding:.5rem}::ng-deep .p-togglebutton.p-button{background:var(--background);border:1px solid var(--inputBorder);color:var(--tableText);transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}::ng-deep .p-datepicker .p-datepicker-buttonbar{padding:1rem 0;border-top:1px solid var(--inputBorder)}::ng-deep .p-button{color:#fff;background:var(--primaryColor);border:1px solid var(--primaryColor);padding:.495rem 1rem;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:var(--inputBorderRadius)}::ng-deep .p-togglebutton.p-button.p-highlight{background:var(--primaryColor);border:1px solid var(--primaryColor);color:var(--background)}::ng-deep .p-togglebutton.p-button.p-highlight:hover{background:var(--primaryColor);border:1px solid var(--primaryColor);color:var(--background)}app-zac-wrapper{z-index:999999}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: i9.DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: i10.SideModalComponent, selector: "lib-side-modal", inputs: ["showClose", "open"], outputs: ["openChange"] }, { kind: "component", type: i11.LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }, { kind: "component", type: i12.OverridesComponent, selector: "lib-overrides", inputs: ["identity"], outputs: ["close"] }] }); }
220
220
  }
221
221
  export { IdentitiesPageComponent };
222
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IdentitiesPageComponent, decorators: [{
223
223
  type: Component,
224
- args: [{ selector: 'lib-identities', template: "<div class=\"ziti-page-container ziti-identities-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n <ng-content select=\"[slot=list-page-subheader]\"></ng-content>\n <lib-data-table [tableId]=\"'identities'\"\n [rowData]=\"rowData\"\n [isLoading]=\"isLoading\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [currentPage]=\"currentPage\"\n [emptyMsg]=\"'No Identities defined, Click the plus to add an Identity.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n [headerActions]=\"svc.tableHeaderActions\"\n [noItemsImage]=\"'No_Clients'\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n<lib-side-modal [(open)]=\"svc.sideModalOpen\" [showClose]=\"false\">\n <lib-overrides\n *ngIf=\"svc.modalType === 'overrides' && svc.sideModalOpen\"\n [identity]=\"svc.selectedIdentity\"\n (close)=\"closeModal($event)\"\n ></lib-overrides>\n</lib-side-modal>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: [".ziti-page-container .action{line-height:60px;top:25px;right:25px;z-index:999}.ziti-identities-container ::ng-deep .zac-wrapper-container{height:0px;left:-999999px;position:fixed}.ziti-identities-container ::ng-deep .zac-wrapper-container .action{display:none}.ziti-ag-grid{height:100%;position:relative;width:100%}.ziti-ag-grid .ziti-ag-grid-table{height:100%;width:100%}.ziti-ag-grid .ziti-ag-grid-table .ag-root-wrapper{border-bottom-style:none}.ziti-ag-grid .ziti-ag-grid-table .ag-cell{align-items:center;display:flex}.system-policies-toggle,.hidden-results-container{position:relative;right:0;display:flex;flex-direction:row;justify-content:center;align-items:flex-start;margin-top:10px;padding:0 0 0 20px;border-radius:var(--inputBorderRadius);flex-wrap:nowrap;flex:1 0 auto}.system-policies-toggle .toggle-text,.hidden-results-container .toggle-text{font-weight:600;font-size:12px}.system-policies-toggle .toggle-text a,.hidden-results-container .toggle-text a{cursor:pointer}.system-policies-toggle .toggle,.hidden-results-container .toggle{width:75px;margin-left:10px}.system-policies-toggle .toggle.on .switch,.hidden-results-container .toggle.on .switch{left:52px}.system-policies-toggle .spinner,.hidden-results-container .spinner{display:inline-block;width:10px;height:10px;border-radius:50%;background:transparent;border-top:2px solid var(--tableText);border-right:2px solid var(--tableText);border-bottom:2px solid transparent;border-left:2px solid transparent;animation:loading .5s infinite linear;margin-left:5px}.hidden-results-container.loading-results{opacity:.7}.nf-cell-vert-align,.ag-row .ag-cell{align-items:center;display:flex}.hidden-columns-list{align-items:center;display:flex;flex-direction:row;margin-left:7px;min-height:30px;flex-wrap:wrap;flex:0 1 auto}.hidden-columns-list.hidden-results{flex-wrap:nowrap;overflow:auto}.hidden-columns-list.hidden-results .hidden-column-item{flex:1 0 auto}.hidden-columns-list::-webkit-scrollbar{height:14px}.hidden-columns-list .hidden-column-item{align-items:center;background-color:var(--background);border:2px solid var(--background);border-radius:12px;cursor:pointer;color:var(----stroke);font-weight:600;font-family:Open Sans,sans-serif;display:flex;flex:0 1 auto;height:25px!important;margin-left:10px;margin-top:5px;padding:2px 10px 2px 5px;position:relative;text-align:center;box-shadow:unset;transform:translateY(0)}.hidden-columns-list .ag-dnd-ghost:hover{border:2px solid var(--primaryColor)!important}.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-label,.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-icon .ag-icon-eye-slash{color:var(--ag-alpine-active-color, var(--primaryColor))}.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-icon .ag-icon-eye-slash:before{content:\"\\f113\"}.hidden-columns-list .ag-dnd-ghost-label{line-height:initial}::ng-deep .darkmode .ag-dnd-ghost-icon .ag-icon-eye-slash{color:#fff!important}.tMenu{transition-property:opacity;z-index:99999999999;height:-moz-fit-content;height:fit-content}.tMenu.action-menu{position:fixed;width:175px}.tMenu .tActionRow{transition-property:opacity}.tMenu .tActionRow.has-icon{display:flex;flex-direction:row;align-items:center}.tMenu .tActionRow .v7Offline{background-color:var(--placeholder)}.tMenu .tActionRow .v7OnlineOffline{width:14px;height:14px;border-color:var(--placeholder)}.tMenu .tActionRow .v7OnlineOffline:hover{border-color:var(--placeholder)}.hidden-items-container{display:flex;flex-direction:row;width:100%;flex-wrap:nowrap;justify-content:space-between}.os-icon{width:23px;height:23px;background-size:23px 23px;display:inline-flex;margin-right:8px;margin-top:5px;margin-bottom:5px}::ng-deep .date-time-container{position:fixed}::ng-deep .date-time-container .p-calendar .p-inputtext{height:1px;width:1px;padding:0}::ng-deep .date-time-container .filter-button-container{height:50px;display:flex;flex-direction:row;justify-content:center;align-items:center}::ng-deep .date-time-container .filter-button-container .toggleButton{padding-left:5px;padding-right:5px;width:unset}::ng-deep .date-time-container .p-calendar{height:30px}::ng-deep .date-time-container .p-calendar .p-inputtext{height:30px;border-top-left-radius:20px;border-bottom-left-radius:20px;text-indent:5px}::ng-deep .date-time-container .p-calendar .p-button-icon-only{border-top-right-radius:20px;border-bottom-right-radius:20px}#TimeSearch{position:relative;float:left;display:inline-block;margin-left:10px;width:50px;height:40px;background-color:var(--primary)}#TimeSearch #TimeSearchList{width:44px;height:0;position:absolute;top:0;left:-2px;overflow:hidden;transition:var(--transition);background-color:var(--menu);border-radius:8px;z-index:30}#TimeSearch #TimeSearchList .time{width:40px;background-color:var(--background);padding-left:8px;padding-right:8px;border-radius:8px;line-height:26px;font-size:12px;font-weight:700;text-align:center;margin-top:2px;margin-left:2px;left:-2px;top:-51px;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSearchList.open{top:-51px;width:44px;height:226px}#TimeSearch #TimeSelectButton{width:40px;background-color:var(--background);padding-left:8px;padding-right:8px;border-radius:8px;line-height:26px;text-align:center;font-size:12px;font-weight:700;margin-top:7px;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSelectButton:hover,#TimeSearch #TimeSearchList .time:hover{background-color:var(--primaryColor);color:var(--white)}::ng-deep p-togglebutton .p-togglebutton.p-button{border-radius:var(--inputBorderRadius)!important;box-shadow:0 5px 20px #0000000d!important;margin-top:-2px!important}::ng-deep p-togglebutton .p-togglebutton.p-button:hover{filter:brightness(99%)!important;box-shadow:0 5px 20px #0000000d!important;transition:all .3s ease}::ng-deep p-togglebutton .p-togglebutton.p-button:active{filter:brightness(95%)!important;box-shadow:none!important;transform:translateY(1px)!important;transition:all .3s ease}#TimeSearch #TimeSelectButton{margin-top:4px!important}::ng-deep .p-calendar .p-inputtext{height:37px}::ng-deep .p-inputtext{border-radius:var(--inputBorderRadius)}.calendar{display:inline-block;padding-left:5px;float:left;padding-right:10px;margin-top:-2px}::ng-deep .p-datepicker:not(.p-datepicker-inline){background:var(--table);border:0 none;box-shadow:#091e4226 0 20px 32px -8px;border-radius:12px}::ng-deep .p-button.p-button-text{background-color:transparent;color:var(--primaryColor);border-color:transparent}::ng-deep .p-button.p-button-text:enabled:hover{background:var(--primaryColorShadowLight);color:var(--primaryColor);border-color:transparent}::ng-deep .p-datepicker table td>span.p-highlight{color:var(--tableText);background:var(--primaryColorShadowLight)}::ng-deep .p-inputtext:enabled:hover{border-color:var(--primaryColor)}::ng-deep .p-datepicker{padding:.5rem;padding-bottom:0;background:var(--table);color:var(--tableText);border:1px solid var(--inputBorder);border-radius:3px}::ng-deep .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 1 var(--primaryColorShadowLight);border-color:var(--primaryColor)}::ng-deep .p-inputtext{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:1rem;color:var(--tableText);background:var(--table);padding:.5rem;border:1px solid var(--inputBorder);transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;appearance:none;border-radius:var(--inputBorderRadius)}::ng-deep .p-datepicker:not(.p-datepicker-inline) .p-datepicker-header{background:var(--table)}::ng-deep .p-datepicker .p-datepicker-header{padding:.5rem;color:var(--tableText);background:var(--table);font-weight:600;margin:0;border-bottom:1px solid var(--inputBorder);border-top-right-radius:12px;border-top-left-radius:12px}::ng-deep .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover{background:#e9ecef;color:var(--table)}::ng-deep .p-datepicker .p-timepicker{border-top:1px solid var(--background);padding:.5rem}::ng-deep .p-togglebutton.p-button{background:var(--background);border:1px solid var(--inputBorder);color:var(--tableText);transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}::ng-deep .p-datepicker .p-datepicker-buttonbar{padding:1rem 0;border-top:1px solid var(--inputBorder)}::ng-deep .p-button{color:#fff;background:var(--primaryColor);border:1px solid var(--primaryColor);padding:.495rem 1rem;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:var(--inputBorderRadius)}::ng-deep .p-togglebutton.p-button.p-highlight{background:var(--primaryColor);border:1px solid var(--primaryColor);color:var(--background)}::ng-deep .p-togglebutton.p-button.p-highlight:hover{background:var(--primaryColor);border:1px solid var(--primaryColor);color:var(--background)}app-zac-wrapper{z-index:999999}\n"] }]
224
+ args: [{ selector: 'lib-identities', template: "<div class=\"ziti-page-container ziti-identities-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n <ng-content select=\"[slot=list-page-subheader]\"></ng-content>\n <lib-data-table [tableId]=\"'identities'\"\n [rowData]=\"rowData\"\n [isLoading]=\"isLoading\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [currentPage]=\"filterService.currentPage\"\n [emptyMsg]=\"'No Identities defined, Click the plus to add an Identity.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n [headerActions]=\"svc.tableHeaderActions\"\n [noItemsImage]=\"'No_Clients'\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n<lib-side-modal [(open)]=\"svc.sideModalOpen\" [showClose]=\"false\">\n <lib-overrides\n *ngIf=\"svc.modalType === 'overrides' && svc.sideModalOpen\"\n [identity]=\"svc.selectedIdentity\"\n (close)=\"closeModal($event)\"\n ></lib-overrides>\n</lib-side-modal>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: [".ziti-page-container .action{line-height:60px;top:25px;right:25px;z-index:999}.ziti-identities-container ::ng-deep .zac-wrapper-container{height:0px;left:-999999px;position:fixed}.ziti-identities-container ::ng-deep .zac-wrapper-container .action{display:none}.ziti-ag-grid{height:100%;position:relative;width:100%}.ziti-ag-grid .ziti-ag-grid-table{height:100%;width:100%}.ziti-ag-grid .ziti-ag-grid-table .ag-root-wrapper{border-bottom-style:none}.ziti-ag-grid .ziti-ag-grid-table .ag-cell{align-items:center;display:flex}.system-policies-toggle,.hidden-results-container{position:relative;right:0;display:flex;flex-direction:row;justify-content:center;align-items:flex-start;margin-top:10px;padding:0 0 0 20px;border-radius:var(--inputBorderRadius);flex-wrap:nowrap;flex:1 0 auto}.system-policies-toggle .toggle-text,.hidden-results-container .toggle-text{font-weight:600;font-size:12px}.system-policies-toggle .toggle-text a,.hidden-results-container .toggle-text a{cursor:pointer}.system-policies-toggle .toggle,.hidden-results-container .toggle{width:75px;margin-left:10px}.system-policies-toggle .toggle.on .switch,.hidden-results-container .toggle.on .switch{left:52px}.system-policies-toggle .spinner,.hidden-results-container .spinner{display:inline-block;width:10px;height:10px;border-radius:50%;background:transparent;border-top:2px solid var(--tableText);border-right:2px solid var(--tableText);border-bottom:2px solid transparent;border-left:2px solid transparent;animation:loading .5s infinite linear;margin-left:5px}.hidden-results-container.loading-results{opacity:.7}.nf-cell-vert-align,.ag-row .ag-cell{align-items:center;display:flex}.hidden-columns-list{align-items:center;display:flex;flex-direction:row;margin-left:7px;min-height:30px;flex-wrap:wrap;flex:0 1 auto}.hidden-columns-list.hidden-results{flex-wrap:nowrap;overflow:auto}.hidden-columns-list.hidden-results .hidden-column-item{flex:1 0 auto}.hidden-columns-list::-webkit-scrollbar{height:14px}.hidden-columns-list .hidden-column-item{align-items:center;background-color:var(--background);border:2px solid var(--background);border-radius:12px;cursor:pointer;color:var(----stroke);font-weight:600;font-family:Open Sans,sans-serif;display:flex;flex:0 1 auto;height:25px!important;margin-left:10px;margin-top:5px;padding:2px 10px 2px 5px;position:relative;text-align:center;box-shadow:unset;transform:translateY(0)}.hidden-columns-list .ag-dnd-ghost:hover{border:2px solid var(--primaryColor)!important}.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-label,.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-icon .ag-icon-eye-slash{color:var(--ag-alpine-active-color, var(--primaryColor))}.hidden-columns-list .ag-dnd-ghost:hover .ag-dnd-ghost-icon .ag-icon-eye-slash:before{content:\"\\f113\"}.hidden-columns-list .ag-dnd-ghost-label{line-height:initial}::ng-deep .darkmode .ag-dnd-ghost-icon .ag-icon-eye-slash{color:#fff!important}.tMenu{transition-property:opacity;z-index:99999999999;height:-moz-fit-content;height:fit-content}.tMenu.action-menu{position:fixed;width:175px}.tMenu .tActionRow{transition-property:opacity}.tMenu .tActionRow.has-icon{display:flex;flex-direction:row;align-items:center}.tMenu .tActionRow .v7Offline{background-color:var(--placeholder)}.tMenu .tActionRow .v7OnlineOffline{width:14px;height:14px;border-color:var(--placeholder)}.tMenu .tActionRow .v7OnlineOffline:hover{border-color:var(--placeholder)}.hidden-items-container{display:flex;flex-direction:row;width:100%;flex-wrap:nowrap;justify-content:space-between}.os-icon{width:23px;height:23px;background-size:23px 23px;display:inline-flex;margin-right:8px;margin-top:5px;margin-bottom:5px}::ng-deep .date-time-container{position:fixed}::ng-deep .date-time-container .p-calendar .p-inputtext{height:1px;width:1px;padding:0}::ng-deep .date-time-container .filter-button-container{height:50px;display:flex;flex-direction:row;justify-content:center;align-items:center}::ng-deep .date-time-container .filter-button-container .toggleButton{padding-left:5px;padding-right:5px;width:unset}::ng-deep .date-time-container .p-calendar{height:30px}::ng-deep .date-time-container .p-calendar .p-inputtext{height:30px;border-top-left-radius:20px;border-bottom-left-radius:20px;text-indent:5px}::ng-deep .date-time-container .p-calendar .p-button-icon-only{border-top-right-radius:20px;border-bottom-right-radius:20px}#TimeSearch{position:relative;float:left;display:inline-block;margin-left:10px;width:50px;height:40px;background-color:var(--primary)}#TimeSearch #TimeSearchList{width:44px;height:0;position:absolute;top:0;left:-2px;overflow:hidden;transition:var(--transition);background-color:var(--menu);border-radius:8px;z-index:30}#TimeSearch #TimeSearchList .time{width:40px;background-color:var(--background);padding-left:8px;padding-right:8px;border-radius:8px;line-height:26px;font-size:12px;font-weight:700;text-align:center;margin-top:2px;margin-left:2px;left:-2px;top:-51px;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSearchList.open{top:-51px;width:44px;height:226px}#TimeSearch #TimeSelectButton{width:40px;background-color:var(--background);padding-left:8px;padding-right:8px;border-radius:8px;line-height:26px;text-align:center;font-size:12px;font-weight:700;margin-top:7px;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSelectButton:hover,#TimeSearch #TimeSearchList .time:hover{background-color:var(--primaryColor);color:var(--white)}::ng-deep p-togglebutton .p-togglebutton.p-button{border-radius:var(--inputBorderRadius)!important;box-shadow:0 5px 20px #0000000d!important;margin-top:-2px!important}::ng-deep p-togglebutton .p-togglebutton.p-button:hover{filter:brightness(99%)!important;box-shadow:0 5px 20px #0000000d!important;transition:all .3s ease}::ng-deep p-togglebutton .p-togglebutton.p-button:active{filter:brightness(95%)!important;box-shadow:none!important;transform:translateY(1px)!important;transition:all .3s ease}#TimeSearch #TimeSelectButton{margin-top:4px!important}::ng-deep .p-calendar .p-inputtext{height:37px}::ng-deep .p-inputtext{border-radius:var(--inputBorderRadius)}.calendar{display:inline-block;padding-left:5px;float:left;padding-right:10px;margin-top:-2px}::ng-deep .p-datepicker:not(.p-datepicker-inline){background:var(--table);border:0 none;box-shadow:#091e4226 0 20px 32px -8px;border-radius:12px}::ng-deep .p-button.p-button-text{background-color:transparent;color:var(--primaryColor);border-color:transparent}::ng-deep .p-button.p-button-text:enabled:hover{background:var(--primaryColorShadowLight);color:var(--primaryColor);border-color:transparent}::ng-deep .p-datepicker table td>span.p-highlight{color:var(--tableText);background:var(--primaryColorShadowLight)}::ng-deep .p-inputtext:enabled:hover{border-color:var(--primaryColor)}::ng-deep .p-datepicker{padding:.5rem;padding-bottom:0;background:var(--table);color:var(--tableText);border:1px solid var(--inputBorder);border-radius:3px}::ng-deep .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 1 var(--primaryColorShadowLight);border-color:var(--primaryColor)}::ng-deep .p-inputtext{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-size:1rem;color:var(--tableText);background:var(--table);padding:.5rem;border:1px solid var(--inputBorder);transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;appearance:none;border-radius:var(--inputBorderRadius)}::ng-deep .p-datepicker:not(.p-datepicker-inline) .p-datepicker-header{background:var(--table)}::ng-deep .p-datepicker .p-datepicker-header{padding:.5rem;color:var(--tableText);background:var(--table);font-weight:600;margin:0;border-bottom:1px solid var(--inputBorder);border-top-right-radius:12px;border-top-left-radius:12px}::ng-deep .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover{background:#e9ecef;color:var(--table)}::ng-deep .p-datepicker .p-timepicker{border-top:1px solid var(--background);padding:.5rem}::ng-deep .p-togglebutton.p-button{background:var(--background);border:1px solid var(--inputBorder);color:var(--tableText);transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}::ng-deep .p-datepicker .p-datepicker-buttonbar{padding:1rem 0;border-top:1px solid var(--inputBorder)}::ng-deep .p-button{color:#fff;background:var(--primaryColor);border:1px solid var(--primaryColor);padding:.495rem 1rem;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:var(--inputBorderRadius)}::ng-deep .p-togglebutton.p-button.p-highlight{background:var(--primaryColor);border:1px solid var(--primaryColor);color:var(--background)}::ng-deep .p-togglebutton.p-button.p-highlight:hover{background:var(--primaryColor);border:1px solid var(--primaryColor);color:var(--background)}app-zac-wrapper{z-index:999999}\n"] }]
225
225
  }], ctorParameters: function () { return [{ type: i1.IdentitiesPageService }, { type: i2.DataTableFilterService }, { type: i3.MatDialog }, { type: i4.TabNameService }, { type: i13.ZacWrapperServiceClass, decorators: [{
226
226
  type: Inject,
227
227
  args: [ZAC_WRAPPER_SERVICE]
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
229
229
  type: Inject,
230
230
  args: [IDENTITY_EXTENSION_SERVICE]
231
231
  }] }]; } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdGllcy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9pZGVudGl0aWVzL2lkZW50aXRpZXMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvaWRlbnRpdGllcy9pZGVudGl0aWVzLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFTLGFBQWEsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQTtBQUdyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RSxPQUFPLEVBQXlCLG1CQUFtQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFOUcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3BHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBRTNHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlGQUFpRixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFL0gsTUFLYSx1QkFBd0IsU0FBUSxpQkFBaUI7SUFRNUQsWUFDb0IsR0FBMEIsRUFDMUMsYUFBcUMsRUFDckMsVUFBcUIsRUFDYixRQUF3QixFQUNJLGlCQUF5QyxFQUNyRSxNQUFjLEVBQ3RCLGFBQW1DLEVBQ1MsVUFBNEI7UUFFMUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMs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QVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDaEQsSUFBRyxNQUFNLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDbkM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTtZQUNsRCxPQUFPLE9BQU8sQ0FBQyx5R0FBeUcsQ0FBQyxDQUFDO1NBQzNIO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQTVNVSx1QkFBdUIsb0pBYXRCLG1CQUFtQix1RUFHbkIsMEJBQTBCO21HQWhCM0IsdUJBQXVCLDZFQ3BDcEMsbW1EQWdDQTs7U0RJYSx1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxnQkFBZ0I7OzBCQWlCckIsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUcxQixNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uRW5kLCBBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHtJZGVudGl0aWVzUGFnZVNlcnZpY2V9IGZyb20gXCIuL2lkZW50aXRpZXMtcGFnZS5zZXJ2aWNlXCI7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtMaXN0UGFnZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saXN0LXBhZ2UtY29tcG9uZW50LmNsYXNzXCI7XG5pbXBvcnQge1RhYk5hbWVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdGFiLW5hbWUuc2VydmljZVwiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7WmFjV3JhcHBlclNlcnZpY2VDbGFzcywgWkFDX1dSQVBQRVJfU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3dyYXBwZXJzL3phYy13cmFwcGVyLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7Q29uc29sZUV2ZW50c1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jb25zb2xlLWV2ZW50cy5zZXJ2aWNlXCI7XG5pbXBvcnQge1FyQ29kZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnRcIjtcbmltcG9ydCB7UmVzZXRFbnJvbGxtZW50Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvcmVzZXQtZW5yb2xsbWVudC9yZXNldC1lbnJvbGxtZW50LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtJREVOVElUWV9FWFRFTlNJT05fU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2lkZW50aXR5L2lkZW50aXR5LWZvcm0uc2VydmljZVwiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHsgSWRlbnRpdHlTZXJ2aWNlUGF0aENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy92aXN1YWxpemVyL2lkZW50aXR5LXNlcnZpY2UtcGF0aC9pZGVudGl0eS1zZXJ2aWNlLXBhdGguY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1pZGVudGl0aWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lkZW50aXRpZXMtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lkZW50aXRpZXMtcGFnZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElkZW50aXRpZXNQYWdlQ29tcG9uZW50IGV4dGVuZHMgTGlzdFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgdGl0bGUgPSAnSWRlbnRpdGllcydcbiAgdGFiczogeyB1cmw6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9W10gO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgaWRlbnRpdHlSb2xlQXR0cmlidXRlczogYW55W10gPSBbXTtcbiAgZm9ybURhdGFDaGFuZ2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgc3ZjOiBJZGVudGl0aWVzUGFnZVNlcnZpY2UsXG4gICAgICBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgcHJpdmF0ZSB0YWJOYW1lczogVGFiTmFtZVNlcnZpY2UsXG4gICAgICBASW5qZWN0KFpBQ19XUkFQUEVSX1NFUlZJQ0UpcHJpdmF0ZSB6YWNXcmFwcGVyU2VydmljZTogWmFjV3JhcHBlclNlcnZpY2VDbGFzcyxcbiAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICBjb25zb2xlRXZlbnRzOiBDb25zb2xlRXZlbnRzU2VydmljZSxcbiAgICAgIEBJbmplY3QoSURFTlRJVFlfRVhURU5TSU9OX1NFUlZJQ0UpIHByaXZhdGUgZXh0U2VydmljZTogRXh0ZW5zaW9uU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoZmlsdGVyU2VydmljZSwgc3ZjLCBjb25zb2xlRXZlbnRzLCBkaWFsb2dGb3JtLCBleHRTZXJ2aWNlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHRoaXMudGFicyA9IHRoaXMudGFiTmFtZXMuZ2V0VGFicygnaWRlbnRpdGllcycpO1xuICAgIHRoaXMuc3ZjLnJlZnJlc2hEYXRhID0gdGhpcy5yZWZyZXNoRGF0YTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnphY1dyYXBwZXJTZXJ2aWNlLnppdGlVcGRhdGVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnphY1dyYXBwZXJTZXJ2aWNlLnJlc2V0WmFjRXZlbnRzKCk7XG4gICAgdGhpcy5nZXRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzKCk7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIGhlYWRlckFjdGlvbkNsaWNrZWQoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2goYWN0aW9uKSB7XG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICB0aGlzLnN2Yy5vcGVuRWRpdEZvcm0oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgdGhpcy5zdmMub3BlblVwZGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnJvd0RhdGEuZmlsdGVyKChyb3cpID0+IHtcbiAgICAgICAgICByZXR1cm4gcm93LnNlbGVjdGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDEgPyAnaWRlbnRpdGllcycgOiAnaWRlbnRpdHknO1xuICAgICAgICB0aGlzLm9wZW5CdWxrRGVsZXRlKHNlbGVjdGVkSXRlbXMsIGxhYmVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxuXG4gIGNsb3NlTW9kYWwoZXZlbnQ/KSB7XG4gICAgdGhpcy5zdmMuc2lkZU1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIGlmKGV2ZW50Py5yZWZyZXNoKSB7XG4gICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICB0aGlzLmdldElkZW50aXR5Um9sZUF0dHJpYnV0ZXMoKTtcbiAgICB9XG4gIH1cblxuICBkYXRhQ2hhbmdlZChldmVudCkge1xuICAgIHRoaXMuZm9ybURhdGFDaGFuZ2VkID0gZXZlbnQ7XG4gIH1cblxuICB0YWJsZUFjdGlvbihldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuZXh0U2VydmljZT8ubGlzdEFjdGlvbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBleHRlbnNpb25Gb3VuZCA9IGZhbHNlO1xuICAgICAgdGhpcy5leHRTZXJ2aWNlPy5saXN0QWN0aW9ucz8uZm9yRWFjaCgoZXh0QWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleHRBY3Rpb24/LmFjdGlvbiA9PT0gZXZlbnQ/LmFjdGlvbikge1xuICAgICAgICAgIGV4dEFjdGlvbi5jYWxsYmFjayhldmVudC5pdGVtKTtcbiAgICAgICAgICBleHRlbnNpb25Gb3VuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKGV4dGVuc2lvbkZvdW5kKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgc3dpdGNoKGV2ZW50Py5hY3Rpb24pIHtcbiAgICAgIGNhc2UgJ3RvZ2dsZUFsbCc6XG4gICAgICBjYXNlICd0b2dnbGVJdGVtJzpcbiAgICAgICAgdGhpcy5pdGVtVG9nZ2xlZChldmVudC5pdGVtKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgIHRoaXMuc3ZjLm9wZW5FZGl0Rm9ybShldmVudD8uaXRlbT8uaWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgIHRoaXMuc3ZjLm9wZW5FZGl0Rm9ybSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ292ZXJyaWRlJzpcbiAgICAgICAgdGhpcy5zdmMub3Blbk92ZXJyaWRlc01vZGFsKGV2ZW50Lml0ZW0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuZGVsZXRlSXRlbShldmVudC5pdGVtKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd25sb2FkLWVucm9sbG1lbnQnOlxuICAgICAgICB0aGlzLmRvd25sb2FkSldUKGV2ZW50Lml0ZW0pXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzZXQtZW5yb2xsbWVudCc6XG4gICAgICAgIHRoaXMucmVzZXRFbnJvbGxtZW50KGV2ZW50Lml0ZW0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlaXNzdWUtZW5yb2xsbWVudCc6XG4gICAgICAgIHRoaXMucmVpc3N1ZUVucm9sbG1lbnQoZXZlbnQuaXRlbSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImlkZW50aXR5LXNlcnZpY2UtcGF0aFwiOlxuICAgICAgICB0aGlzLm9wZW5JZGVudGl0eVZpc3VhbGl6ZXIoZXZlbnQuaXRlbSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInFyLWNvZGVcIjpcbiAgICAgICAgdGhpcy5zaG93UVJDb2RlKGV2ZW50Lml0ZW0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd25sb2FkLWFsbCc6XG4gICAgICAgIHRoaXMuc3ZjLmRvd25sb2FkQWxsSXRlbXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb3dubG9hZC1zZWxlY3RlZCc6XG4gICAgICAgIHRoaXMuc3ZjLmRvd25sb2FkSXRlbXModGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZEpXVChpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBqd3QgPSB0aGlzLnN2Yy5nZXRKV1QoaXRlbSk7XG4gICAgdGhpcy5zdmMuZG93bmxvYWRKV1Qoand0LCBpdGVtLm5hbWUpO1xuICB9XG5cbiAgc2hvd1FSQ29kZShpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgand0OiB0aGlzLnN2Yy5nZXRKV1QoaXRlbSksXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLnN2Yy5nZXRFbnJvbGxtZW50RXhwaXJhdGlvbihpdGVtKSxcbiAgICAgIHFyQ29kZVNpemU6IDQwMCxcbiAgICAgIGlkZW50aXR5OiBpdGVtLFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihRckNvZGVDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGRhdGEsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlSXRlbShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLm9wZW5CdWxrRGVsZXRlKFtpdGVtXSwgJ2lkZW50aXR5Jyk7XG4gIH1cblxuICBnZXRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzKCkge1xuICAgIHRoaXMuc3ZjLmdldElkZW50aXRpZXNSb2xlQXR0cmlidXRlcygpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICB0aGlzLmlkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5JZGVudGl0eVZpc3VhbGl6ZXIoaWRlbnRpdHkpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKElkZW50aXR5U2VydmljZVBhdGhDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgaWRlbnRpdHk6IGlkZW50aXR5LFxuICAgICAgfSxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICByZXNldEVucm9sbG1lbnQoaWRlbnRpdHkpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKFJlc2V0RW5yb2xsbWVudENvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgIHR5cGU6ICdyZXNldCcsXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICB9KTtcbiAgICB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZihyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSh1bmRlZmluZWQsIHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVpc3N1ZUVucm9sbG1lbnQoaWRlbnRpdHkpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKFJlc2V0RW5yb2xsbWVudENvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgIHR5cGU6ICdyZWlzc3VlJyxcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgIH0pO1xuICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cblxuICBjYW5EZWFjdGl2YXRlKCkge1xuICAgIGlmICh0aGlzLmZvcm1EYXRhQ2hhbmdlZCAmJiB0aGlzLnN2Yy5zaWRlTW9kYWxPcGVuKSB7XG4gICAgICByZXR1cm4gY29uZmlybSgnWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBEbyB5b3Ugd2FudCB0byBsZWF2ZSB0aGlzIHBhZ2UgYW5kIGRpc2NhcmQgeW91ciBjaGFuZ2VzIG9yIHN0YXkgb24gdGhpcyBwYWdlPycpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInppdGktcGFnZS1jb250YWluZXIgeml0aS1pZGVudGl0aWVzLWNvbnRhaW5lclwiPlxuICAgIDxsaWItbGlzdC1wYWdlLWhlYWRlciBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFic109XCJ0YWJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dBZGRdPVwiIWl0ZW1zU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aW9uQ2xpY2tlZCk9XCJoZWFkZXJBY3Rpb25DbGlja2VkKCRldmVudClcIj48L2xpYi1saXN0LXBhZ2UtaGVhZGVyPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWxpc3QtcGFnZS1zdWJoZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDxsaWItZGF0YS10YWJsZSBbdGFibGVJZF09XCInaWRlbnRpdGllcydcIlxuICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICBbY29sdW1uRGVmaW5pdGlvbnNdPVwiY29sdW1uRGVmc1wiXG4gICAgICAgICAgICAgICAgICAgIChhY3Rpb25SZXF1ZXN0ZWQpPVwidGFibGVBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGFydENvdW50XT1cInN0YXJ0Q291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbZW5kQ291bnRdPVwiZW5kQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbdG90YWxDb3VudF09XCJ0b3RhbENvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2VtcHR5TXNnXT1cIidObyBJZGVudGl0aWVzIGRlZmluZWQsIENsaWNrIHRoZSBwbHVzIHRvIGFkZCBhbiBJZGVudGl0eS4nXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckFwcGxpZWRdPVwiZmlsdGVyQXBwbGllZFwiXG4gICAgICAgICAgICAgICAgICAgIFttZW51SXRlbXNdPVwic3ZjLm1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIFtoZWFkZXJBY3Rpb25zXT1cInN2Yy50YWJsZUhlYWRlckFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbbm9JdGVtc0ltYWdlXT1cIidOb19DbGllbnRzJ1wiXG4gICAgICAgICAgICAgICAgICAgIChncmlkUmVhZHkpPVwiZ3JpZFJlYWR5KCRldmVudClcIlxuICAgID5cbiAgICA8L2xpYi1kYXRhLXRhYmxlPlxuPC9kaXY+XG48bGliLXNpZGUtbW9kYWwgWyhvcGVuKV09XCJzdmMuc2lkZU1vZGFsT3BlblwiIFtzaG93Q2xvc2VdPVwiZmFsc2VcIj5cbiAgICA8bGliLW92ZXJyaWRlc1xuICAgICAgICAgICAgKm5nSWY9XCJzdmMubW9kYWxUeXBlID09PSAnb3ZlcnJpZGVzJyAmJiBzdmMuc2lkZU1vZGFsT3BlblwiXG4gICAgICAgICAgICBbaWRlbnRpdHldPVwic3ZjLnNlbGVjdGVkSWRlbnRpdHlcIlxuICAgICAgICAgICAgKGNsb3NlKT1cImNsb3NlTW9kYWwoJGV2ZW50KVwiXG4gICAgPjwvbGliLW92ZXJyaWRlcz5cbjwvbGliLXNpZGUtbW9kYWw+XG48bGliLWxvYWRpbmctaW5kaWNhdG9yICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIj48L2xpYi1sb2FkaW5nLWluZGljYXRvcj5cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdGllcy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9pZGVudGl0aWVzL2lkZW50aXRpZXMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvaWRlbnRpdGllcy9pZGVudGl0aWVzLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFTLGFBQWEsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQTtBQUdyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RSxPQUFPLEVBQXlCLG1CQUFtQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFOUcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3BHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBRTNHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlGQUFpRixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFL0gsTUFLYSx1QkFBd0IsU0FBUSxpQkFBaUI7SUFRNUQsWUFDb0IsR0FBMEIsRUFDMUMsYUFBcUMsRUFDckMsVUFBcUIsRUFDYixRQUF3QixFQUNJLGlCQUF5QyxFQUNyRSxNQUFjLEVBQ3RCLGFBQW1DLEVBQ1MsVUFBNEI7UUFFMUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMs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QVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDaEQsSUFBRyxNQUFNLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDbkM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTtZQUNsRCxPQUFPLE9BQU8sQ0FBQyx5R0FBeUcsQ0FBQyxDQUFDO1NBQzNIO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQTVNVSx1QkFBdUIsb0pBYXRCLG1CQUFtQix1RUFHbkIsMEJBQTBCO21HQWhCM0IsdUJBQXVCLDZFQ3BDcEMsaW5EQWdDQTs7U0RJYSx1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxnQkFBZ0I7OzBCQWlCckIsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUcxQixNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uRW5kLCBBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHtJZGVudGl0aWVzUGFnZVNlcnZpY2V9IGZyb20gXCIuL2lkZW50aXRpZXMtcGFnZS5zZXJ2aWNlXCI7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtMaXN0UGFnZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saXN0LXBhZ2UtY29tcG9uZW50LmNsYXNzXCI7XG5pbXBvcnQge1RhYk5hbWVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdGFiLW5hbWUuc2VydmljZVwiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7WmFjV3JhcHBlclNlcnZpY2VDbGFzcywgWkFDX1dSQVBQRVJfU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3dyYXBwZXJzL3phYy13cmFwcGVyLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7Q29uc29sZUV2ZW50c1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jb25zb2xlLWV2ZW50cy5zZXJ2aWNlXCI7XG5pbXBvcnQge1FyQ29kZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnRcIjtcbmltcG9ydCB7UmVzZXRFbnJvbGxtZW50Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvcmVzZXQtZW5yb2xsbWVudC9yZXNldC1lbnJvbGxtZW50LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtJREVOVElUWV9FWFRFTlNJT05fU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2lkZW50aXR5L2lkZW50aXR5LWZvcm0uc2VydmljZVwiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHsgSWRlbnRpdHlTZXJ2aWNlUGF0aENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy92aXN1YWxpemVyL2lkZW50aXR5LXNlcnZpY2UtcGF0aC9pZGVudGl0eS1zZXJ2aWNlLXBhdGguY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1pZGVudGl0aWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lkZW50aXRpZXMtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lkZW50aXRpZXMtcGFnZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElkZW50aXRpZXNQYWdlQ29tcG9uZW50IGV4dGVuZHMgTGlzdFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgdGl0bGUgPSAnSWRlbnRpdGllcydcbiAgdGFiczogeyB1cmw6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9W10gO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgaWRlbnRpdHlSb2xlQXR0cmlidXRlczogYW55W10gPSBbXTtcbiAgZm9ybURhdGFDaGFuZ2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgc3ZjOiBJZGVudGl0aWVzUGFnZVNlcnZpY2UsXG4gICAgICBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgcHJpdmF0ZSB0YWJOYW1lczogVGFiTmFtZVNlcnZpY2UsXG4gICAgICBASW5qZWN0KFpBQ19XUkFQUEVSX1NFUlZJQ0UpcHJpdmF0ZSB6YWNXcmFwcGVyU2VydmljZTogWmFjV3JhcHBlclNlcnZpY2VDbGFzcyxcbiAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICBjb25zb2xlRXZlbnRzOiBDb25zb2xlRXZlbnRzU2VydmljZSxcbiAgICAgIEBJbmplY3QoSURFTlRJVFlfRVhURU5TSU9OX1NFUlZJQ0UpIHByaXZhdGUgZXh0U2VydmljZTogRXh0ZW5zaW9uU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoZmlsdGVyU2VydmljZSwgc3ZjLCBjb25zb2xlRXZlbnRzLCBkaWFsb2dGb3JtLCBleHRTZXJ2aWNlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHRoaXMudGFicyA9IHRoaXMudGFiTmFtZXMuZ2V0VGFicygnaWRlbnRpdGllcycpO1xuICAgIHRoaXMuc3ZjLnJlZnJlc2hEYXRhID0gdGhpcy5yZWZyZXNoRGF0YTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnphY1dyYXBwZXJTZXJ2aWNlLnppdGlVcGRhdGVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnphY1dyYXBwZXJTZXJ2aWNlLnJlc2V0WmFjRXZlbnRzKCk7XG4gICAgdGhpcy5nZXRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzKCk7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIGhlYWRlckFjdGlvbkNsaWNrZWQoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2goYWN0aW9uKSB7XG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICB0aGlzLnN2Yy5vcGVuRWRpdEZvcm0oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgdGhpcy5zdmMub3BlblVwZGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnJvd0RhdGEuZmlsdGVyKChyb3cpID0+IHtcbiAgICAgICAgICByZXR1cm4gcm93LnNlbGVjdGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDEgPyAnaWRlbnRpdGllcycgOiAnaWRlbnRpdHknO1xuICAgICAgICB0aGlzLm9wZW5CdWxrRGVsZXRlKHNlbGVjdGVkSXRlbXMsIGxhYmVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxuXG4gIGNsb3NlTW9kYWwoZXZlbnQ/KSB7XG4gICAgdGhpcy5zdmMuc2lkZU1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIGlmKGV2ZW50Py5yZWZyZXNoKSB7XG4gICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICB0aGlzLmdldElkZW50aXR5Um9sZUF0dHJpYnV0ZXMoKTtcbiAgICB9XG4gIH1cblxuICBkYXRhQ2hhbmdlZChldmVudCkge1xuICAgIHRoaXMuZm9ybURhdGFDaGFuZ2VkID0gZXZlbnQ7XG4gIH1cblxuICB0YWJsZUFjdGlvbihldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuZXh0U2VydmljZT8ubGlzdEFjdGlvbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBleHRlbnNpb25Gb3VuZCA9IGZhbHNlO1xuICAgICAgdGhpcy5leHRTZXJ2aWNlPy5saXN0QWN0aW9ucz8uZm9yRWFjaCgoZXh0QWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChleHRBY3Rpb24/LmFjdGlvbiA9PT0gZXZlbnQ/LmFjdGlvbikge1xuICAgICAgICAgIGV4dEFjdGlvbi5jYWxsYmFjayhldmVudC5pdGVtKTtcbiAgICAgICAgICBleHRlbnNpb25Gb3VuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKGV4dGVuc2lvbkZvdW5kKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgc3dpdGNoKGV2ZW50Py5hY3Rpb24pIHtcbiAgICAgIGNhc2UgJ3RvZ2dsZUFsbCc6XG4gICAgICBjYXNlICd0b2dnbGVJdGVtJzpcbiAgICAgICAgdGhpcy5pdGVtVG9nZ2xlZChldmVudC5pdGVtKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgIHRoaXMuc3ZjLm9wZW5FZGl0Rm9ybShldmVudD8uaXRlbT8uaWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgIHRoaXMuc3ZjLm9wZW5FZGl0Rm9ybSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ292ZXJyaWRlJzpcbiAgICAgICAgdGhpcy5zdmMub3Blbk92ZXJyaWRlc01vZGFsKGV2ZW50Lml0ZW0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuZGVsZXRlSXRlbShldmVudC5pdGVtKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd25sb2FkLWVucm9sbG1lbnQnOlxuICAgICAgICB0aGlzLmRvd25sb2FkSldUKGV2ZW50Lml0ZW0pXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzZXQtZW5yb2xsbWVudCc6XG4gICAgICAgIHRoaXMucmVzZXRFbnJvbGxtZW50KGV2ZW50Lml0ZW0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlaXNzdWUtZW5yb2xsbWVudCc6XG4gICAgICAgIHRoaXMucmVpc3N1ZUVucm9sbG1lbnQoZXZlbnQuaXRlbSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImlkZW50aXR5LXNlcnZpY2UtcGF0aFwiOlxuICAgICAgICB0aGlzLm9wZW5JZGVudGl0eVZpc3VhbGl6ZXIoZXZlbnQuaXRlbSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInFyLWNvZGVcIjpcbiAgICAgICAgdGhpcy5zaG93UVJDb2RlKGV2ZW50Lml0ZW0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd25sb2FkLWFsbCc6XG4gICAgICAgIHRoaXMuc3ZjLmRvd25sb2FkQWxsSXRlbXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb3dubG9hZC1zZWxlY3RlZCc6XG4gICAgICAgIHRoaXMuc3ZjLmRvd25sb2FkSXRlbXModGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZEpXVChpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBqd3QgPSB0aGlzLnN2Yy5nZXRKV1QoaXRlbSk7XG4gICAgdGhpcy5zdmMuZG93bmxvYWRKV1Qoand0LCBpdGVtLm5hbWUpO1xuICB9XG5cbiAgc2hvd1FSQ29kZShpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgand0OiB0aGlzLnN2Yy5nZXRKV1QoaXRlbSksXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLnN2Yy5nZXRFbnJvbGxtZW50RXhwaXJhdGlvbihpdGVtKSxcbiAgICAgIHFyQ29kZVNpemU6IDQwMCxcbiAgICAgIGlkZW50aXR5OiBpdGVtLFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihRckNvZGVDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGRhdGEsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlSXRlbShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLm9wZW5CdWxrRGVsZXRlKFtpdGVtXSwgJ2lkZW50aXR5Jyk7XG4gIH1cblxuICBnZXRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzKCkge1xuICAgIHRoaXMuc3ZjLmdldElkZW50aXRpZXNSb2xlQXR0cmlidXRlcygpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICB0aGlzLmlkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5JZGVudGl0eVZpc3VhbGl6ZXIoaWRlbnRpdHkpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKElkZW50aXR5U2VydmljZVBhdGhDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgaWRlbnRpdHk6IGlkZW50aXR5LFxuICAgICAgfSxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICByZXNldEVucm9sbG1lbnQoaWRlbnRpdHkpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKFJlc2V0RW5yb2xsbWVudENvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgIHR5cGU6ICdyZXNldCcsXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICB9KTtcbiAgICB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZihyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSh1bmRlZmluZWQsIHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVpc3N1ZUVucm9sbG1lbnQoaWRlbnRpdHkpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKFJlc2V0RW5yb2xsbWVudENvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgIHR5cGU6ICdyZWlzc3VlJyxcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgIH0pO1xuICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cblxuICBjYW5EZWFjdGl2YXRlKCkge1xuICAgIGlmICh0aGlzLmZvcm1EYXRhQ2hhbmdlZCAmJiB0aGlzLnN2Yy5zaWRlTW9kYWxPcGVuKSB7XG4gICAgICByZXR1cm4gY29uZmlybSgnWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBEbyB5b3Ugd2FudCB0byBsZWF2ZSB0aGlzIHBhZ2UgYW5kIGRpc2NhcmQgeW91ciBjaGFuZ2VzIG9yIHN0YXkgb24gdGhpcyBwYWdlPycpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInppdGktcGFnZS1jb250YWluZXIgeml0aS1pZGVudGl0aWVzLWNvbnRhaW5lclwiPlxuICAgIDxsaWItbGlzdC1wYWdlLWhlYWRlciBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFic109XCJ0YWJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dBZGRdPVwiIWl0ZW1zU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aW9uQ2xpY2tlZCk9XCJoZWFkZXJBY3Rpb25DbGlja2VkKCRldmVudClcIj48L2xpYi1saXN0LXBhZ2UtaGVhZGVyPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWxpc3QtcGFnZS1zdWJoZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDxsaWItZGF0YS10YWJsZSBbdGFibGVJZF09XCInaWRlbnRpdGllcydcIlxuICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICBbY29sdW1uRGVmaW5pdGlvbnNdPVwiY29sdW1uRGVmc1wiXG4gICAgICAgICAgICAgICAgICAgIChhY3Rpb25SZXF1ZXN0ZWQpPVwidGFibGVBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGFydENvdW50XT1cInN0YXJ0Q291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbZW5kQ291bnRdPVwiZW5kQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbdG90YWxDb3VudF09XCJ0b3RhbENvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cImZpbHRlclNlcnZpY2UuY3VycmVudFBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbZW1wdHlNc2ddPVwiJ05vIElkZW50aXRpZXMgZGVmaW5lZCwgQ2xpY2sgdGhlIHBsdXMgdG8gYWRkIGFuIElkZW50aXR5LidcIlxuICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQXBwbGllZF09XCJmaWx0ZXJBcHBsaWVkXCJcbiAgICAgICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJzdmMubWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRlckFjdGlvbnNdPVwic3ZjLnRhYmxlSGVhZGVyQWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtub0l0ZW1zSW1hZ2VdPVwiJ05vX0NsaWVudHMnXCJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJncmlkUmVhZHkoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvbGliLWRhdGEtdGFibGU+XG48L2Rpdj5cbjxsaWItc2lkZS1tb2RhbCBbKG9wZW4pXT1cInN2Yy5zaWRlTW9kYWxPcGVuXCIgW3Nob3dDbG9zZV09XCJmYWxzZVwiPlxuICAgIDxsaWItb3ZlcnJpZGVzXG4gICAgICAgICAgICAqbmdJZj1cInN2Yy5tb2RhbFR5cGUgPT09ICdvdmVycmlkZXMnICYmIHN2Yy5zaWRlTW9kYWxPcGVuXCJcbiAgICAgICAgICAgIFtpZGVudGl0eV09XCJzdmMuc2VsZWN0ZWRJZGVudGl0eVwiXG4gICAgICAgICAgICAoY2xvc2UpPVwiY2xvc2VNb2RhbCgkZXZlbnQpXCJcbiAgICA+PC9saWItb3ZlcnJpZGVzPlxuPC9saWItc2lkZS1tb2RhbD5cbjxsaWItbG9hZGluZy1pbmRpY2F0b3IgKm5nSWY9XCJpc0xvYWRpbmdcIiBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiPjwvbGliLWxvYWRpbmctaW5kaWNhdG9yPlxuIl19