@c8y/ngx-components 1018.503.1 → 1018.503.22

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 (149) hide show
  1. package/core/common/ApplicationOptions.d.ts +4 -2
  2. package/core/common/files.service.d.ts +10 -2
  3. package/core/common/global-config.service.d.ts +1 -1
  4. package/core/common/permissions.service.d.ts +67 -0
  5. package/core/common/tenant-ui.service.d.ts +1 -1
  6. package/core/i18n/pattern-messages.data.d.ts +20 -20
  7. package/esm2020/assets-navigator/asset-node.service.mjs +5 -4
  8. package/esm2020/auth-configuration/auth-configuration.guard.mjs +5 -2
  9. package/esm2020/auth-configuration/factories/navigation.factory.mjs +3 -3
  10. package/esm2020/cockpit-config/cockpit-config.guard.mjs +2 -2
  11. package/esm2020/cockpit-config/cockpit-config.service.mjs +2 -2
  12. package/esm2020/context-dashboard/add-dashboard.factory.mjs +6 -3
  13. package/esm2020/context-dashboard/context-dashboard.component.mjs +2 -2
  14. package/esm2020/context-dashboard/context-dashboard.service.mjs +3 -3
  15. package/esm2020/context-dashboard/dashboard-detail.component.mjs +2 -2
  16. package/esm2020/context-dashboard/report-dashboard/report-dashboard-list.component.mjs +3 -3
  17. package/esm2020/core/common/ApplicationOptions.mjs +1 -1
  18. package/esm2020/core/common/files.service.mjs +20 -4
  19. package/esm2020/core/common/global-config.service.mjs +7 -2
  20. package/esm2020/core/common/permissions.service.mjs +68 -1
  21. package/esm2020/core/common/tenant-ui.service.mjs +3 -2
  22. package/esm2020/core/common/user-preferences/user-preferences.service.mjs +6 -2
  23. package/esm2020/core/docs/support-outlet/support-outlet.component.mjs +3 -2
  24. package/esm2020/core/drop-area/drop-area.component.mjs +3 -1
  25. package/esm2020/core/i18n/pattern-messages.data.mjs +21 -21
  26. package/esm2020/core/setup/setup.service.mjs +2 -2
  27. package/esm2020/ecosystem/application-properties/application-properties.component.mjs +2 -2
  28. package/esm2020/ecosystem/application-properties/subscription-modal/subscription-modal.component.mjs +3 -3
  29. package/esm2020/ecosystem/ecosystem-navigation.factory.mjs +3 -3
  30. package/esm2020/ecosystem/packages/package-list/packages-list.component.mjs +2 -2
  31. package/esm2020/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.mjs +2 -2
  32. package/esm2020/files-repository/files-repository.guard.mjs +5 -3
  33. package/esm2020/location/location.component.mjs +20 -13
  34. package/esm2020/map/cluster-map.component.mjs +19 -11
  35. package/esm2020/map/cluster-map.mjs +8 -3
  36. package/esm2020/map/map-status.component.mjs +19 -5
  37. package/esm2020/map/map.component.mjs +10 -10
  38. package/esm2020/map/map.model.mjs +1 -19
  39. package/esm2020/map/map.service.mjs +24 -1
  40. package/esm2020/protocol-lwm2m/components/bootstrap-parameters/lwm2m-bootstrap-parameters.component.mjs +2 -2
  41. package/esm2020/protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.mjs +2 -2
  42. package/esm2020/register-device/register-device-navigation.factory.mjs +3 -3
  43. package/esm2020/replace-device/replace-device.service.mjs +5 -5
  44. package/esm2020/reports/export-schedules.component.mjs +3 -3
  45. package/esm2020/repository/configuration/device-tab/configuration-preview.component.mjs +4 -4
  46. package/esm2020/sms-gateway/sms-gateway.guard.mjs +2 -2
  47. package/esm2020/sms-gateway/sms-gateway.module.mjs +6 -6
  48. package/esm2020/sub-assets/add-group/add-group.component.mjs +2 -2
  49. package/esm2020/sub-assets/asset-properties-item.component.mjs +6 -6
  50. package/esm2020/sub-assets/groups.component.mjs +2 -2
  51. package/esm2020/sub-assets/sub-assets.component.mjs +2 -2
  52. package/esm2020/sub-assets/sub-assets.service.mjs +16 -10
  53. package/esm2020/tenants/tenant-list/tenant-list.component.mjs +12 -7
  54. package/esm2020/upgrade/ng1/downgraded.services.mjs +3 -2
  55. package/esm2020/upgrade/ng1/index.mjs +4 -3
  56. package/esm2020/widgets/cockpit/index.mjs +1 -1
  57. package/esm2020/widgets/device-management/index.mjs +1 -1
  58. package/fesm2015/c8y-ngx-components-assets-navigator.mjs +4 -3
  59. package/fesm2015/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  60. package/fesm2015/c8y-ngx-components-auth-configuration.mjs +7 -4
  61. package/fesm2015/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  62. package/fesm2015/c8y-ngx-components-cockpit-config.mjs +3 -3
  63. package/fesm2015/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  64. package/fesm2015/c8y-ngx-components-context-dashboard.mjs +12 -9
  65. package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  66. package/fesm2015/c8y-ngx-components-ecosystem.mjs +8 -8
  67. package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
  68. package/fesm2015/c8y-ngx-components-files-repository.mjs +5 -3
  69. package/fesm2015/c8y-ngx-components-files-repository.mjs.map +1 -1
  70. package/fesm2015/c8y-ngx-components-location.mjs +20 -13
  71. package/fesm2015/c8y-ngx-components-location.mjs.map +1 -1
  72. package/fesm2015/c8y-ngx-components-map.mjs +174 -142
  73. package/fesm2015/c8y-ngx-components-map.mjs.map +1 -1
  74. package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-bootstrap-parameters.mjs +2 -2
  75. package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-bootstrap-parameters.mjs.map +1 -1
  76. package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
  77. package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  78. package/fesm2015/c8y-ngx-components-register-device.mjs +3 -3
  79. package/fesm2015/c8y-ngx-components-register-device.mjs.map +1 -1
  80. package/fesm2015/c8y-ngx-components-replace-device.mjs +5 -5
  81. package/fesm2015/c8y-ngx-components-replace-device.mjs.map +1 -1
  82. package/fesm2015/c8y-ngx-components-reports.mjs +2 -2
  83. package/fesm2015/c8y-ngx-components-reports.mjs.map +1 -1
  84. package/fesm2015/c8y-ngx-components-repository-configuration.mjs +3 -3
  85. package/fesm2015/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  86. package/fesm2015/c8y-ngx-components-sms-gateway.mjs +6 -6
  87. package/fesm2015/c8y-ngx-components-sms-gateway.mjs.map +1 -1
  88. package/fesm2015/c8y-ngx-components-sub-assets.mjs +24 -18
  89. package/fesm2015/c8y-ngx-components-sub-assets.mjs.map +1 -1
  90. package/fesm2015/c8y-ngx-components-tenants.mjs +11 -6
  91. package/fesm2015/c8y-ngx-components-tenants.mjs.map +1 -1
  92. package/fesm2015/c8y-ngx-components-upgrade.mjs +4 -2
  93. package/fesm2015/c8y-ngx-components-upgrade.mjs.map +1 -1
  94. package/fesm2015/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
  95. package/fesm2015/c8y-ngx-components-widgets-device-management.mjs.map +1 -1
  96. package/fesm2015/c8y-ngx-components.mjs +121 -28
  97. package/fesm2015/c8y-ngx-components.mjs.map +1 -1
  98. package/fesm2020/c8y-ngx-components-assets-navigator.mjs +4 -3
  99. package/fesm2020/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  100. package/fesm2020/c8y-ngx-components-auth-configuration.mjs +7 -4
  101. package/fesm2020/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  102. package/fesm2020/c8y-ngx-components-cockpit-config.mjs +3 -3
  103. package/fesm2020/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  104. package/fesm2020/c8y-ngx-components-context-dashboard.mjs +12 -9
  105. package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  106. package/fesm2020/c8y-ngx-components-ecosystem.mjs +8 -8
  107. package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
  108. package/fesm2020/c8y-ngx-components-files-repository.mjs +5 -3
  109. package/fesm2020/c8y-ngx-components-files-repository.mjs.map +1 -1
  110. package/fesm2020/c8y-ngx-components-location.mjs +20 -13
  111. package/fesm2020/c8y-ngx-components-location.mjs.map +1 -1
  112. package/fesm2020/c8y-ngx-components-map.mjs +174 -142
  113. package/fesm2020/c8y-ngx-components-map.mjs.map +1 -1
  114. package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-bootstrap-parameters.mjs +2 -2
  115. package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-bootstrap-parameters.mjs.map +1 -1
  116. package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
  117. package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  118. package/fesm2020/c8y-ngx-components-register-device.mjs +3 -3
  119. package/fesm2020/c8y-ngx-components-register-device.mjs.map +1 -1
  120. package/fesm2020/c8y-ngx-components-replace-device.mjs +5 -5
  121. package/fesm2020/c8y-ngx-components-replace-device.mjs.map +1 -1
  122. package/fesm2020/c8y-ngx-components-reports.mjs +2 -2
  123. package/fesm2020/c8y-ngx-components-reports.mjs.map +1 -1
  124. package/fesm2020/c8y-ngx-components-repository-configuration.mjs +3 -3
  125. package/fesm2020/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  126. package/fesm2020/c8y-ngx-components-sms-gateway.mjs +6 -6
  127. package/fesm2020/c8y-ngx-components-sms-gateway.mjs.map +1 -1
  128. package/fesm2020/c8y-ngx-components-sub-assets.mjs +24 -18
  129. package/fesm2020/c8y-ngx-components-sub-assets.mjs.map +1 -1
  130. package/fesm2020/c8y-ngx-components-tenants.mjs +11 -6
  131. package/fesm2020/c8y-ngx-components-tenants.mjs.map +1 -1
  132. package/fesm2020/c8y-ngx-components-upgrade.mjs +4 -2
  133. package/fesm2020/c8y-ngx-components-upgrade.mjs.map +1 -1
  134. package/fesm2020/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
  135. package/fesm2020/c8y-ngx-components-widgets-device-management.mjs.map +1 -1
  136. package/fesm2020/c8y-ngx-components.mjs +121 -28
  137. package/fesm2020/c8y-ngx-components.mjs.map +1 -1
  138. package/locales/locales.pot +3 -0
  139. package/location/location.component.d.ts +2 -2
  140. package/map/cluster-map.component.d.ts +3 -1
  141. package/map/map-status.component.d.ts +12 -1
  142. package/map/map.component.d.ts +1 -1
  143. package/map/map.model.d.ts +0 -1
  144. package/map/map.service.d.ts +6 -0
  145. package/package.json +1 -1
  146. package/tenants/tenant-list/tenant-list.component.d.ts +4 -2
  147. package/upgrade/ng1/downgraded.services.d.ts +1 -0
  148. package/widgets/cockpit/index.d.ts +2 -1
  149. package/widgets/device-management/index.d.ts +2 -1
@@ -25,7 +25,7 @@ export class SetupService {
25
25
  this.ui = ui;
26
26
  this.pluginsResolve = pluginsResolve;
27
27
  this.skipSetup$ = new BehaviorSubject(false);
28
- this.isSetupNeeded$ = this.pluginsResolve.allPluginsLoaded$.pipe(filter(loaded => loaded), switchMap(() => this.ui.isOwnerOfApplication$()), switchMap(isOwner => {
28
+ this.isSetupNeeded$ = this.pluginsResolve.allPluginsLoaded$.pipe(filter(loaded => loaded), switchMap(() => this.ui.currentUser.pipe(filter(user => !!user))), switchMap(() => this.ui.isOwnerOfApplication$()), switchMap(isOwner => {
29
29
  if (!isOwner) {
30
30
  return of([]);
31
31
  }
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
77
77
  providedIn: 'root'
78
78
  }]
79
79
  }], ctorParameters: function () { return [{ type: i1.StepperService }, { type: i2.Permissions }, { type: i3.OptionsService }, { type: i4.AppStateService }, { type: i5.PluginsResolveService }]; } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2V0dXAvc2V0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFhLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7O0FBSzNFLE1BQU0sT0FBTyxZQUFZO0lBUXZCOztPQUVHO0lBQ0gsWUFDVSxjQUE4QixFQUM5QixXQUF3QixFQUN4QixPQUF1QixFQUN4QixFQUFtQixFQUNsQixjQUFxQztRQUpyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBaUI7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBVnZDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQVk5QyxJQUFJLENB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QyxDQUNqRixDQUFDO0lBQ0osQ0FBQzs7eUdBaEZVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25zIH0gZnJvbSAnLi4vY29tbW9uL3Blcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RlcHBlcnMgfSBmcm9tICcuLi9zdGVwcGVyL3N0ZXBwZXIubW9kZWwnO1xuaW1wb3J0IHsgU3RlcHBlclNlcnZpY2UgfSBmcm9tICcuLi9zdGVwcGVyL3N0ZXBwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBORUVERURfUk9MRV9GT1JfU0VUVVAsIFNldHVwU3RlcCwgU0VUVVBfRklOSVNIRURfU1RFUF9JRCB9IGZyb20gJy4vc2V0dXAubW9kZWwnO1xuaW1wb3J0IHsgUGx1Z2luc1Jlc29sdmVTZXJ2aWNlIH0gZnJvbSAnLi4vcGx1Z2lucy9wbHVnaW5zLXJlc29sdmUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNldHVwU2VydmljZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGFwcGxpY2F0aW9ucyBuZWVkcyB0byBzaG93IGEgc2V0dXAgd2l6YXJkLlxuICAgKi9cbiAgaXNTZXR1cE5lZWRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBza2lwU2V0dXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmUgb25seSBESSBhbmQgaW5pdGlhbGl6YXRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RlcHBlclNlcnZpY2U6IFN0ZXBwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25zLFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgcHVibGljIHVpOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbHVnaW5zUmVzb2x2ZTogUGx1Z2luc1Jlc29sdmVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaXNTZXR1cE5lZWRlZCQgPSB0aGlzLnBsdWdpbnNSZXNvbHZlLmFsbFBsdWdpbnNMb2FkZWQkLnBpcGUoXG4gICAgICBmaWx0ZXIobG9hZGVkID0+IGxvYWRlZCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy51aS5pc093bmVyT2ZBcHBsaWNhdGlvbiQoKSksXG4gICAgICBzd2l0Y2hNYXAoaXNPd25lciA9PiB7XG4gICAgICAgIGlmICghaXNPd25lcikge1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHBlclNlcnZpY2UuZ2V0QnlJZCQoU3RlcHBlcnMuU0VUVVApO1xuICAgICAgfSksXG4gICAgICBtYXAoKHN0ZXBzOiBTZXR1cFN0ZXBbXSkgPT4gdGhpcy5nZXROb3RDb21wbGV0ZWRTZXR1cFN0ZXBzKHN0ZXBzKSksXG4gICAgICBtYXAoXG4gICAgICAgIG5vdENvbXBsZXRlZFNldHVwU3RlcHMgPT5cbiAgICAgICAgICB0aGlzLm9wdGlvbnMuZm9yY2VTZXR1cCB8fFxuICAgICAgICAgICh0aGlzLm9wdGlvbnMuaXNTZXR1cCAmJiB0aGlzLm5lZWRzU2V0dXAobm90Q29tcGxldGVkU2V0dXBTdGVwcykpXG4gICAgICApLFxuICAgICAgc3dpdGNoTWFwKHJlcXVpcmVkID0+IHRoaXMuc2V0dXBSZXF1aXJlZChyZXF1aXJlZCkpXG4gICAgKTtcbiAgfVxuXG4gIHNraXBTZXR1cCgpIHtcbiAgICB0aGlzLnNraXBTZXR1cCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBSZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICghcmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBvZihyZXF1aXJlZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNraXBTZXR1cCQucGlwZShtYXAoc2tpcHBlZCA9PiAhc2tpcHBlZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBuZWVkc1NldHVwKG5vdENvbXBsZXRlZFNldHVwU3RlcHM6IFNldHVwU3RlcFtdKTogYm9vbGVhbiB7XG4gICAgbm90Q29tcGxldGVkU2V0dXBTdGVwcyA9IHRoaXMuZXhjbHVkZVNldHVwRmluaXNoU3RlcChub3RDb21wbGV0ZWRTZXR1cFN0ZXBzKTtcbiAgICBpZiAodGhpcy5oYXNQZXJtaXNzaW9uKCkpIHtcbiAgICAgIHJldHVybiBub3RDb21wbGV0ZWRTZXR1cFN0ZXBzLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIC8vIFNob3cgc2V0dXAgc2NyZWVuIGFzIHRoZXJlIGFyZSByZXF1aXJlZCBzdGVwcyBidXQgdGhlIHVzZXJcbiAgICAvLyBoYXMgbm8gcGVybWlzc2lvbi4gVGhlIFNldHVwIHNjcmVlbiB3aWxsIHNob3cgYW4gZXJyb3IgdG9cbiAgICAvLyB0aGUgdXNlci5cbiAgICByZXR1cm4gdGhpcy5oYXNSZXF1aXJlZFN0ZXBzKG5vdENvbXBsZXRlZFNldHVwU3RlcHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGNsdWRlU2V0dXBGaW5pc2hTdGVwKG5vdENvbXBsZXRlZFNldHVwU3RlcHM6IFNldHVwU3RlcFtdKSB7XG4gICAgcmV0dXJuIG5vdENvbXBsZXRlZFNldHVwU3RlcHMuZmlsdGVyKCh7IHNldHVwSWQgfSkgPT4gc2V0dXBJZCAhPT0gU0VUVVBfRklOSVNIRURfU1RFUF9JRCk7XG4gIH1cblxuICBwcml2YXRlIGhhc1JlcXVpcmVkU3RlcHMobm90Q29tcGxldGVkU2V0dXBTdGVwczogU2V0dXBTdGVwW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gbm90Q29tcGxldGVkU2V0dXBTdGVwcy5zb21lKHN0ZXAgPT4gc3RlcC5yZXF1aXJlZCk7XG4gIH1cblxuICBwcml2YXRlIGhhc1Blcm1pc3Npb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMuaGFzUm9sZShORUVERURfUk9MRV9GT1JfU0VUVVApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb3RDb21wbGV0ZWRTZXR1cFN0ZXBzKHN0ZXBzOiBTZXR1cFN0ZXBbXSk6IFNldHVwU3RlcFtdIHtcbiAgICBpZiAoIXRoaXMudWkuY3VycmVudEFwcGxpY2F0aW9uLnZhbHVlKSB7XG4gICAgICByZXR1cm4gc3RlcHM7XG4gICAgfVxuICAgIHJldHVybiBzdGVwcy5maWx0ZXIoXG4gICAgICBzdGVwID0+XG4gICAgICAgIHN0ZXAuc2V0dXBJZCAmJlxuICAgICAgICAhKHRoaXMudWkuY3VycmVudEFwcGxpY2F0aW9uLnZhbHVlLmNvbmZpZz8uc2V0dXAgfHwgW10pLmluY2x1ZGVzKHN0ZXAuc2V0dXBJZClcbiAgICApO1xuICB9XG59XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2V0dXAvc2V0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFhLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7O0FBSzNFLE1BQU0sT0FBTyxZQUFZO0lBUXZCOztPQUVHO0lBQ0gsWUFDVSxjQUE4QixFQUM5QixXQUF3QixFQUN4QixPQUF1QixFQUN4QixFQUFtQixFQUNsQixjQUFxQztRQUpyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBaUI7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBVnZDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQVk5QyxJQUFJLENB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LENBQUMsT0FBTztZQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQ2pGLENBQUM7SUFDSixDQUFDOzt5R0FqRlUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuLi9jb21tb24vcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBTdGVwcGVycyB9IGZyb20gJy4uL3N0ZXBwZXIvc3RlcHBlci5tb2RlbCc7XG5pbXBvcnQgeyBTdGVwcGVyU2VydmljZSB9IGZyb20gJy4uL3N0ZXBwZXIvc3RlcHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5FRURFRF9ST0xFX0ZPUl9TRVRVUCwgU2V0dXBTdGVwLCBTRVRVUF9GSU5JU0hFRF9TVEVQX0lEIH0gZnJvbSAnLi9zZXR1cC5tb2RlbCc7XG5pbXBvcnQgeyBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UgfSBmcm9tICcuLi9wbHVnaW5zL3BsdWdpbnMtcmVzb2x2ZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2V0dXBTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgYXBwbGljYXRpb25zIG5lZWRzIHRvIHNob3cgYSBzZXR1cCB3aXphcmQuXG4gICAqL1xuICBpc1NldHVwTmVlZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIHNraXBTZXR1cCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAvKipcbiAgICogQGlnbm9yZSBvbmx5IERJIGFuZCBpbml0aWFsaXphdGlvblxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdGVwcGVyU2VydmljZTogU3RlcHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnMsXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgdWk6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBsdWdpbnNSZXNvbHZlOiBQbHVnaW5zUmVzb2x2ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pc1NldHVwTmVlZGVkJCA9IHRoaXMucGx1Z2luc1Jlc29sdmUuYWxsUGx1Z2luc0xvYWRlZCQucGlwZShcbiAgICAgIGZpbHRlcihsb2FkZWQgPT4gbG9hZGVkKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnVpLmN1cnJlbnRVc2VyLnBpcGUoZmlsdGVyKHVzZXIgPT4gISF1c2VyKSkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudWkuaXNPd25lck9mQXBwbGljYXRpb24kKCkpLFxuICAgICAgc3dpdGNoTWFwKGlzT3duZXIgPT4ge1xuICAgICAgICBpZiAoIWlzT3duZXIpIHtcbiAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBwZXJTZXJ2aWNlLmdldEJ5SWQkKFN0ZXBwZXJzLlNFVFVQKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChzdGVwczogU2V0dXBTdGVwW10pID0+IHRoaXMuZ2V0Tm90Q29tcGxldGVkU2V0dXBTdGVwcyhzdGVwcykpLFxuICAgICAgbWFwKFxuICAgICAgICBub3RDb21wbGV0ZWRTZXR1cFN0ZXBzID0+XG4gICAgICAgICAgdGhpcy5vcHRpb25zLmZvcmNlU2V0dXAgfHxcbiAgICAgICAgICAodGhpcy5vcHRpb25zLmlzU2V0dXAgJiYgdGhpcy5uZWVkc1NldHVwKG5vdENvbXBsZXRlZFNldHVwU3RlcHMpKVxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcChyZXF1aXJlZCA9PiB0aGlzLnNldHVwUmVxdWlyZWQocmVxdWlyZWQpKVxuICAgICk7XG4gIH1cblxuICBza2lwU2V0dXAoKSB7XG4gICAgdGhpcy5za2lwU2V0dXAkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwUmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gb2YocmVxdWlyZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5za2lwU2V0dXAkLnBpcGUobWFwKHNraXBwZWQgPT4gIXNraXBwZWQpKTtcbiAgfVxuXG4gIHByaXZhdGUgbmVlZHNTZXR1cChub3RDb21wbGV0ZWRTZXR1cFN0ZXBzOiBTZXR1cFN0ZXBbXSk6IGJvb2xlYW4ge1xuICAgIG5vdENvbXBsZXRlZFNldHVwU3RlcHMgPSB0aGlzLmV4Y2x1ZGVTZXR1cEZpbmlzaFN0ZXAobm90Q29tcGxldGVkU2V0dXBTdGVwcyk7XG4gICAgaWYgKHRoaXMuaGFzUGVybWlzc2lvbigpKSB7XG4gICAgICByZXR1cm4gbm90Q29tcGxldGVkU2V0dXBTdGVwcy5sZW5ndGggPiAwO1xuICAgIH1cbiAgICAvLyBTaG93IHNldHVwIHNjcmVlbiBhcyB0aGVyZSBhcmUgcmVxdWlyZWQgc3RlcHMgYnV0IHRoZSB1c2VyXG4gICAgLy8gaGFzIG5vIHBlcm1pc3Npb24uIFRoZSBTZXR1cCBzY3JlZW4gd2lsbCBzaG93IGFuIGVycm9yIHRvXG4gICAgLy8gdGhlIHVzZXIuXG4gICAgcmV0dXJuIHRoaXMuaGFzUmVxdWlyZWRTdGVwcyhub3RDb21wbGV0ZWRTZXR1cFN0ZXBzKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhjbHVkZVNldHVwRmluaXNoU3RlcChub3RDb21wbGV0ZWRTZXR1cFN0ZXBzOiBTZXR1cFN0ZXBbXSkge1xuICAgIHJldHVybiBub3RDb21wbGV0ZWRTZXR1cFN0ZXBzLmZpbHRlcigoeyBzZXR1cElkIH0pID0+IHNldHVwSWQgIT09IFNFVFVQX0ZJTklTSEVEX1NURVBfSUQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNSZXF1aXJlZFN0ZXBzKG5vdENvbXBsZXRlZFNldHVwU3RlcHM6IFNldHVwU3RlcFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5vdENvbXBsZXRlZFNldHVwU3RlcHMuc29tZShzdGVwID0+IHN0ZXAucmVxdWlyZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNQZXJtaXNzaW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25zLmhhc1JvbGUoTkVFREVEX1JPTEVfRk9SX1NFVFVQKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm90Q29tcGxldGVkU2V0dXBTdGVwcyhzdGVwczogU2V0dXBTdGVwW10pOiBTZXR1cFN0ZXBbXSB7XG4gICAgaWYgKCF0aGlzLnVpLmN1cnJlbnRBcHBsaWNhdGlvbi52YWx1ZSkge1xuICAgICAgcmV0dXJuIHN0ZXBzO1xuICAgIH1cbiAgICByZXR1cm4gc3RlcHMuZmlsdGVyKFxuICAgICAgc3RlcCA9PlxuICAgICAgICBzdGVwLnNldHVwSWQgJiZcbiAgICAgICAgISh0aGlzLnVpLmN1cnJlbnRBcHBsaWNhdGlvbi52YWx1ZS5jb25maWc/LnNldHVwIHx8IFtdKS5pbmNsdWRlcyhzdGVwLnNldHVwSWQpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -50,7 +50,7 @@ export class ApplicationPropertiesComponent {
50
50
  this.isUpdateAvailable = false;
51
51
  }
52
52
  async ngOnInit() {
53
- this.hasAdminPermissions = this.permissions.hasRole('ROLE_APPLICATION_MANAGEMENT_ADMIN');
53
+ this.hasAdminPermissions = this.permissions.hasRole(Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN);
54
54
  await this.refresh();
55
55
  }
56
56
  async refresh() {
@@ -308,4 +308,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
308
308
  type: Component,
309
309
  args: [{ selector: 'c8y-application-properties', template: "<c8y-title>{{ application | humanizeAppName | async }}</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!isMicroservice\">\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-modules'\"\n [label]=\"'Applications' | translate\"\n [path]=\"'ecosystem/application/applications'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n *ngIf=\"isFeature\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-breadcrumb *ngIf=\"isMicroservice\">\n <c8y-breadcrumb-item\n [icon]=\"'c8y-atom'\"\n [label]=\"'Ecosystem' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"breadcrumbConfig?.icon\"\n [label]=\"breadcrumbConfig?.label\"\n [path]=\"breadcrumbConfig?.path\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"application | humanizeAppName | async\"></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Properties' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"row\">\n <div [ngClass]=\"{ 'col-md-8': !isActivityLogSupported, 'col-md-12': isActivityLogSupported }\">\n <div\n class=\"card content-fullpage\"\n *ngIf=\"application\"\n [ngClass]=\"{ 'd-grid grid__col--7-5--md': isActivityLogSupported }\"\n >\n <form\n class=\"d-flex d-col content-fullpage\"\n (ngSubmit)=\"formGroup.valid && save(formGroup.value)\"\n [formGroup]=\"formGroup\"\n novalidate\n >\n <div\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n >\n <div class=\"card-block separator-bottom large-padding flex-no-shrink\">\n <div class=\"d-flex-md a-i-start text-center text-left-md\">\n <c8y-app-icon\n class=\"icon-48\"\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"application\"\n [contextPath]=\"application.contextPath\"\n [name]=\"application.name\"\n ></c8y-app-icon>\n <i\n class=\"icon-48\"\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"tab\"\n *ngIf=\"isFeature\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n class=\"icon-48\"\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n\n <div class=\"p-t-md-16 p-l-md-16 p-r-md-32 flex-grow\">\n <p class=\"h4 text-medium m-b-8\">{{ application | humanizeAppName | async }}</p>\n <p *ngIf=\"!isOwner\">\n <em class=\"text-muted\">\n {{\n formGroup?.controls?.description?.value ||\n ('No description available.' | translate)\n }}\n </em>\n </p>\n <div\n class=\"form-group m-b-0\"\n *ngIf=\"isOwner\"\n >\n <label\n class=\"editable\"\n [ngClass]=\"{ updated: formGroup?.controls?.description?.dirty }\"\n >\n <textarea\n class=\"form-control no-resize\"\n placeholder=\"{{ 'No description available.' | translate }}\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </label>\n </div>\n </div>\n <div class=\"text-right-md m-t-4\">\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n <div\n class=\"fit-w m-t-2\"\n *ngIf=\"isPackage || isMicroservice || isUnpacked\"\n >\n <label\n class=\"text-label-small\"\n translate\n >\n Version:\n </label>\n <small class=\"p-l-4 text-bold\">{{ application.manifest?.version }}</small>\n </div>\n <div\n class=\"fit-w m-t-2\"\n *ngIf=\"!isUnpacked\"\n >\n <label\n class=\"text-label-small\"\n translate\n >\n Creation time:\n </label>\n <small class=\"p-l-4 text-bold\">\n {{ (binaryMo?.creationTime | c8yDate) || '---' }}\n </small>\n </div>\n <div class=\"m-t-8\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"\n 'There\\'s a newer version available, click to update' | translate\n \"\n tooltip=\"{{\n 'There\\'s a newer version available, click to update' | translate\n }}\"\n placement=\"top\"\n type=\"button\"\n *ngIf=\"isUpdateAvailable\"\n (click)=\"updateToLatestVersion()\"\n [delay]=\"300\"\n >\n <i [c8yIcon]=\"'installing-updates'\"></i>\n {{ 'Update available' | translate }}\n </button>\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Open' | translate }}\"\n type=\"button\"\n (click)=\"openApp(application)\"\n [disabled]=\"disableOpenInBrowser\"\n *ngIf=\"canOpenInBrowser\"\n >\n <i [c8yIcon]=\"'external-link'\"></i>\n {{ 'Open' | translate }}\n </button>\n <div *ngIf=\"canOpenInBrowser && disableOpenInBrowser\">\n <small\n class=\"text-muted\"\n translate\n >\n The application is overwritten by a custom application sharing the same path\n </small>\n </div>\n <span *ngIf=\"isCustomMicroservice\">\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Subscribe' | translate }}\"\n type=\"button\"\n (click)=\"subscribe()\"\n *ngIf=\"!isSubscribed\"\n >\n <i [c8yIcon]=\"'check-circle-o'\"></i>\n {{ 'Subscribe' | translate }}\n </button>\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Unsubscribe' | translate }}\"\n type=\"button\"\n (click)=\"unsubscribe()\"\n *ngIf=\"isSubscribed\"\n >\n <i [c8yIcon]=\"'minus-circle'\"></i>\n {{ 'Unsubscribe' | translate }}\n </button>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <div class=\"card-block large-padding\">\n <div\n class=\"row p-16\"\n *ngIf=\"isPackage\"\n >\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Package details' | translate\"\n [data]=\"application.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n <div\n class=\"row p-16\"\n *ngIf=\"sourcePackage\"\n >\n <c8y-properties-list\n icon=\"info\"\n [title]=\"'Source package information' | translate\"\n [data]=\"sourcePackage.manifest\"\n [properties]=\"packageProperties\"\n [emptyLabel]=\"'---'\"\n ></c8y-properties-list>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label for=\"appId\">ID</label>\n <input\n class=\"form-control\"\n id=\"appId\"\n name=\"id\"\n type=\"text\"\n autocomplete=\"off\"\n [readonly]=\"true\"\n formControlName=\"id\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-7\">\n <c8y-form-group>\n <label>{{ 'Name' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n [readonly]=\"!isOwner\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label>{{ 'Application key' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n [readonly]=\"application.id || !isOwner\"\n formControlName=\"key\"\n />\n </c8y-form-group>\n </div>\n\n <div class=\"col-sm-7\">\n <c8y-form-group>\n <label>{{ 'Type' | translate }}</label>\n <div>\n <div *ngIf=\"application.id\">\n <p class=\"form-control-static\">\n <i [c8yIcon]=\"iconMap[application.type]\"></i>\n <span>\n {{ application.type | translate }}\n </span>\n </p>\n </div>\n </div>\n </c8y-form-group>\n </div>\n </div>\n\n <div [ngSwitch]=\"application.type\">\n <div *ngSwitchCase=\"'HOSTED'\">\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n </div>\n\n <div *ngSwitchCase=\"'MICROSERVICE'\">\n <c8y-form-group>\n <label>{{ 'Path' | translate }}</label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/service/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-microservice`used in URL`' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n [readOnly]=\"application.id || !isOwner\"\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <div class=\"row\">\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.version\"\n >\n <label>{{ 'Version' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.version }}\n </p>\n </div>\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.isolation\"\n >\n <label>{{ 'Isolation' | translate }}</label>\n <p class=\"form-control-static\">\n <span *ngIf=\"singleTenant\">\n <i\n class=\"c8y-icon-duocolor h4\"\n [c8yIcon]=\"'c8y-enterprise'\"\n ></i>\n {{ 'Single tenant' | translate }}\n </span>\n <span *ngIf=\"!singleTenant\">\n <i\n class=\"c8y-icon-duocolor icon-32\"\n [c8yIcon]=\"'c8y-sub-tenants'\"\n ></i>\n {{ 'Multi tenant' | translate }}\n </span>\n </p>\n </div>\n <div\n class=\"col-sm-4 m-b-16 flex-auto\"\n *ngIf=\"application.manifest.isolation\"\n >\n <label>{{ 'Billing mode' | translate }}</label>\n <p class=\"form-control-static\">\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n *ngIf=\"subscription\"\n >\n {{ 'Subscription' | translate }}\n </span>\n <span\n [tooltip]=\"'Resources usage assigned to: Subscriber | translate'\"\n *ngIf=\"!subscription && singleTenant\"\n >\n {{ 'Resources' | translate }}\n </span>\n <span\n [tooltip]=\"'Resources usage assigned to: Owner' | translate\"\n *ngIf=\"!subscription && !singleTenant\"\n >\n {{ 'Resources' | translate }}\n </span>\n </p>\n </div>\n </div>\n\n <div\n class=\"legend form-block m-t-40\"\n *ngIf=\"application.manifest.provider\"\n >\n {{ 'Provider' | translate }}\n </div>\n <div\n class=\"list-inline\"\n *ngIf=\"application.manifest.provider\"\n >\n <div *ngIf=\"application.manifest.provider.name\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Name' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.name }}\n </p>\n </div>\n </div>\n <div *ngIf=\"application.manifest.provider.domain\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Domain' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.domain }}\n </p>\n </div>\n </div>\n <div *ngIf=\"application.manifest.provider.support\">\n <div class=\"col-sm-4 m-b-16\">\n <label>{{ 'Support' | translate }}</label>\n <p class=\"form-control-static\">\n {{ application.manifest.provider.support }}\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'EXTERNAL'\">\n <c8y-form-group>\n <label>{{ 'External URL' | translate }}</label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} http://www.example.com/\"\n name=\"externalUrl\"\n type=\"url\"\n required\n [pattern]=\"'^(?!javascript:).+'\"\n [readOnly]=\"!isOwner\"\n formControlName=\"externalUrl\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'pattern'\"\n [text]=\"'Valid URL required.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div *ngIf=\"isOwner && !isCustomMicroservice\">\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"isCustomMicroservice\">\n <div\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n >\n <c8y-upload-archive\n [(application)]=\"application\"\n (refresh)=\"onNewArchive()\"\n ></c8y-upload-archive>\n </div>\n </ng-container>\n <div\n class=\"card-footer separator\"\n *ngIf=\"application && !!isOwner && hasAdminPermissions\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-danger\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n (click)=\"delete()\"\n *ngIf=\"canDelete\"\n >\n {{ 'Delete' | translate }}\n </button>\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n [disabled]=\"!application.type || formGroup.invalid || formGroup.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n\n <div\n class=\"content-fullpage d-flex d-col bg-level-1\"\n *ngIf=\"isActivityLogSupported\"\n >\n <div class=\"card-header separator\">\n <div\n class=\"card-title\"\n translate\n >\n Activity log\n </div>\n <div class=\"m-l-auto\">\n <button\n class=\"btn btn-link btn-sm\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"load()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n </div>\n </div>\n <div\n class=\"p-16 text-center\"\n *ngIf=\"isLoading\"\n >\n <c8y-loading></c8y-loading>\n </div>\n <c8y-activity-log\n class=\"d-contents\"\n *ngIf=\"!isLoading\"\n [hasAdminPermissions]=\"hasAdminPermissions\"\n [application]=\"application\"\n ></c8y-activity-log>\n </div>\n </div>\n </div>\n</div>\n" }]
310
310
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.EcosystemService }, { type: i1.Router }, { type: i3.FormBuilder }, { type: i4.ApplicationService }, { type: i5.AlertService }, { type: i4.InventoryService }, { type: i5.Permissions }, { type: i5.ModalService }, { type: i6.TranslateService }, { type: i7.BsModalService }, { type: i5.GainsightService }]; } });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcHJvcGVydGllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vYXBwbGljYXRpb24tcHJvcGVydGllcy9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsV0FBVyxFQUdYLGdCQUFnQixFQUNoQixTQUFTLEVBQ1YsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFdBQVcsRUFFWCxXQUFXLEVBQ1gsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2xCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRWhILE1BQU0sdUJBQXVCLEdBQUcsdUNBQXVDLENB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Qiw4QkFBOEIsa0VDdkMzQyxncnFCQW1pQkE7MkZENWZhLDhCQUE4QjtrQkFKMUMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25TZXJ2aWNlLFxuICBBcHBsaWNhdGlvblR5cGUsXG4gIEJpbGxpbmdNb2RlLFxuICBJQXBwbGljYXRpb24sXG4gIElNYW5hZ2VkT2JqZWN0LFxuICBJbnZlbnRvcnlTZXJ2aWNlLFxuICBJc29sYXRpb25cbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWxlcnRTZXJ2aWNlLFxuICBHYWluc2lnaHRTZXJ2aWNlLFxuICBNb2RhbFNlcnZpY2UsXG4gIFBlcm1pc3Npb25zLFxuICBQcm9wZXJ0aWVzTGlzdEl0ZW0sXG4gIFZpZXdDb250ZXh0LFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25TdGF0ZSxcbiAgRWNvc3lzdGVtU2VydmljZSxcbiAgUFJPRFVDVF9FWFBFUklFTkNFLFxuICBwYWNrYWdlUHJvcGVydGllc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zdWJzY3JpcHRpb24tbW9kYWwvc3Vic2NyaXB0aW9uLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGRhdGVBcHBsaWNhdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi91cGRhdGUtYXBwbGljYXRpb24tbW9kYWwvdXBkYXRlLWFwcGxpY2F0aW9uLW1vZGFsLmNvbXBvbmVudCc7XG5cbmNvbnN0IE1JQ1JPU0VSVklDRVNfQkFTRV9QQVRIID0gJy9lY29zeXN0ZW0vbWljcm9zZXJ2aWNlL21pY3Jvc2VydmljZXMnO1xuY29uc3QgQVBQTElDQVRJT05TX0JBU0VfUEFUSCA9ICcvZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uUHJvcGVydGllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgYXBwbGljYXRpb246IElBcHBsaWNhdGlvbjtcbiAgYmluYXJ5TW86IElNYW5hZ2VkT2JqZWN0O1xuICBzaW5nbGVUZW5hbnQgPSBmYWxzZTtcbiAgc3Vic2NyaXB0aW9uID0gZmFsc2U7XG4gIGNhbk9wZW5JbkJyb3dzZXI6IGJvb2xlYW47XG4gIGRpc2FibGVPcGVuSW5Ccm93c2VyOiBib29sZWFuO1xuICBjYW5EZWxldGU6IGJvb2xlYW47XG4gIGlzT3duZXI6IGJvb2xlYW47XG4gIGlzU3Vic2NyaWJlZDogYm9vbGVhbjtcbiAgaXNQYWNrYWdlOiBib29sZWFuO1xuICBpc01pY3Jvc2VydmljZTogYm9vbGVhbjtcbiAgaXNGZWF0dXJlOiBib29sZWFuO1xuICBpc0V4dGVybmFsOiBib29sZWFuO1xuICBpc1VucGFja2VkOiBib29sZWFuO1xuICBpY29uTWFwID0ge1xuICAgIEhPU1RFRDogJ2Nsb3VkJyxcbiAgICBFWFRFUk5BTDogJ2V4dGVybmFsLWxpbmstc3F1YXJlJyxcbiAgICBNSUNST1NFUlZJQ0U6ICdtaWNyb2NoaXAnXG4gIH07XG4gIGFwcFN0YXRlOiBBcHBsaWNhdGlvblN0YXRlO1xuICBzb3VyY2VQYWNrYWdlOiBJQXBwbGljYXRpb247XG4gIGlzTG9hZGluZyA9IHRydWU7XG4gIGlzQWN0aXZpdHlMb2dTdXBwb3J0ZWQ6IGJvb2xlYW47XG4gIGlzQ3VzdG9tTWljcm9zZXJ2aWNlOiBib29sZWFuO1xuICBoYXNBZG1pblBlcm1pc3Npb25zID0gZmFsc2U7XG5cbiAgYnJlYWRjcnVtYkNvbmZpZzogeyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHBhdGg6IHN0cmluZyB9O1xuICBwYWNrYWdlUHJvcGVydGllczogUHJvcGVydGllc0xpc3RJdGVtW10gPSBbLi4ucGFja2FnZVByb3BlcnRpZXNdO1xuICBpc1VwZGF0ZUF2YWlsYWJsZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5U2VydmljZTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9ucyxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oYXNBZG1pblBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5oYXNSb2xlKCdST0xFX0FQUExJQ0FUSU9OX01BTkFHRU1FTlRfQURNSU4nKTtcbiAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2goKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgdGhpcy5pc1VucGFja2VkID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzVW5wYWNrZWQodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5pc1BhY2thZ2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNQYWNrYWdlKHRoaXMuYXBwbGljYXRpb24pO1xuICAgIHRoaXMuaXNGZWF0dXJlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzRmVhdHVyZSh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLmlzRXh0ZXJuYWwgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNFeHRlcm5hbCh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLmlzTWljcm9zZXJ2aWNlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzTWljcm9zZXJ2aWNlKHRoaXMuYXBwbGljYXRpb24pO1xuICAgIHRoaXMuYXBwU3RhdGUgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0QXBwU3RhdGUodGhpcy5hcHBsaWNhdGlvbik7XG5cbiAgICBpZiAodGhpcy5pc1VucGFja2VkKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlc29sdmVTb3VyY2VQYWNrYWdlRGV0YWlscygpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0QnJlYWRjcnVtYkNvbmZpZygpO1xuXG4gICAgaWYgKHRoaXMuaXNDdXN0b21NaWNyb3NlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9hZEJpbmFyeU1vKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgIGF3YWl0IHRoaXMubG9hZEFwcGxpY2F0aW9uKCk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIG9uQXBwbGljYXRpb24oYXBwOiBJQXBwbGljYXRpb24pIHtcbiAgICBpZiAoYXBwLm1hbmlmZXN0KSB7XG4gICAgICB0aGlzLnNpbmdsZVRlbmFudCA9IGFwcC5tYW5pZmVzdC5pc29sYXRpb24gPT09IElzb2xhdGlvbi5QRVJfVEVOQU5UO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBhcHAubWFuaWZlc3QuYmlsbGluZ01vZGUgPT09IEJpbGxpbmdNb2RlLlNVQlNDUklQVElPTjtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb24udHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLk1JQ1JPU0VSVklDRSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChNSUNST1NFUlZJQ0VTX0JBU0VfUEFUSCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoQVBQTElDQVRJT05TX0JBU0VfUEFUSCk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkFwcChhcHApIHtcbiAgICB0aGlzLmVjb3N5c3RlbVNlcnZpY2Uub3BlbkFwcChhcHApO1xuICB9XG5cbiAgZ2V0UGFja2FnZShlbnRpdHlPcklkOiBzdHJpbmcgfCBudW1iZXIgfCBJQXBwbGljYXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZGV0YWlsKGVudGl0eU9ySWQpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZGVsZXRlQXBwKHRoaXMuYXBwbGljYXRpb24pO1xuICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb24udHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLk1JQ1JPU0VSVklDRSkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKE1JQ1JPU0VSVklDRVNfQkFTRV9QQVRIKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoQVBQTElDQVRJT05TX0JBU0VfUEFUSCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBzdWJzY3JpYmUoKSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0geyBhcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvbiwgaXNTdWJzY3JpYmVkOiBmYWxzZSB9O1xuICAgIGF3YWl0IHRoaXMuY29uZmlybVN1YnNjcmlwdGlvbkNoYW5nZShpbml0aWFsU3RhdGUpO1xuICAgIHRoaXMubG9hZEFwcGxpY2F0aW9uKCk7XG4gIH1cblxuICBhc3luYyB1bnN1YnNjcmliZSgpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7IGFwcGxpY2F0aW9uOiB0aGlzLmFwcGxpY2F0aW9uLCBpc1N1YnNjcmliZWQ6IHRydWUgfTtcbiAgICBhd2FpdCB0aGlzLmNvbmZpcm1TdWJzY3JpcHRpb25DaGFuZ2UoaW5pdGlhbFN0YXRlKTtcbiAgICB0aGlzLmxvYWRBcHBsaWNhdGlvbigpO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFwcGxpY2F0aW9uKCkge1xuICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyZW50LmRhdGEuY29udGV4dERhdGE7XG4gICAgdGhpcy5hcHBsaWNhdGlvbiA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRBcHBsaWNhdGlvbihpZCk7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb24udHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLk1JQ1JPU0VSVklDRSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCduYW1lJykuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRBcHBsaWNhdGlvbiA9IHtcbiAgICAgIC4uLnRoaXMuYXBwbGljYXRpb24sXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5nZXREZXNjcmlwdGlvbih0aGlzLmFwcGxpY2F0aW9uKSxcbiAgICAgIGljb246IHRoaXMuYXBwbGljYXRpb24uY29uZmlnPy5pY29uPy5jbGFzcyB8fCB0aGlzLmFwcGxpY2F0aW9uLm1hbmlmZXN0Py5pY29uPy5jbGFzc1xuICAgIH07XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHVwZGF0ZWRBcHBsaWNhdGlvbik7XG4gICAgdGhpcy5jYW5PcGVuSW5Ccm93c2VyID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmNhbk9wZW5BcHBJbkJyb3dzZXIodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5kaXNhYmxlT3BlbkluQnJvd3NlciA9XG4gICAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgJiZcbiAgICAgIChhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNPdmVyd3JpdHRlbkJ5Q3VzdG9tQXBwKHRoaXMuYXBwbGljYXRpb24pKTtcbiAgICB0aGlzLmNhbkRlbGV0ZSA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5jYW5EZWxldGVBcHAodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5pc093bmVyID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzT3duZXIodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5pc0FjdGl2aXR5TG9nU3VwcG9ydGVkID0gdGhpcy5pc0FjdGl2aXR5TG9nU3VwcG9ydGVkQnlBcHAodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5pc0N1c3RvbU1pY3Jvc2VydmljZSA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc0N1c3RvbU1pY3Jvc2VydmljZSh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLmlzU3Vic2NyaWJlZCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5jaGVja0lmU3Vic2NyaWJlZCh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLm9uQXBwbGljYXRpb24odGhpcy5hcHBsaWNhdGlvbik7XG4gIH1cblxuICBhc3luYyBzYXZlKGFwcDogSUFwcGxpY2F0aW9uKSB7XG4gICAgY29uc3QgaWNvbiA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydpY29uJ10udmFsdWU7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWyduYW1lJ10udmFsdWU7XG4gICAgaWYgKGljb24pIHtcbiAgICAgIGFwcCA9IHtcbiAgICAgICAgLi4uYXBwLFxuICAgICAgICBjb25maWc6IHsgLi4udGhpcy5hcHBsaWNhdGlvbi5jb25maWcsIGljb246IHsgY2xhc3M6IGljb24gfSwgYXBwVGl0bGU6IG5hbWUgfVxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXBwbGljYXRpb24uY29uZmlnKSB7XG4gICAgICBhcHAgPSB7XG4gICAgICAgIC4uLmFwcCxcbiAgICAgICAgY29uZmlnOiB7IC4uLnRoaXMuYXBwbGljYXRpb24uY29uZmlnLCBhcHBUaXRsZTogbmFtZSB9XG4gICAgICB9O1xuICAgIH1cbiAgICBhcHAuaWQgPSB0aGlzLmFwcGxpY2F0aW9uLmlkO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudXBkYXRlQXBwKGFwcCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ0FwcGxpY2F0aW9uIHNhdmVkLicpKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICB0aGlzLmxvYWRBcHBsaWNhdGlvbigpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG5cbiAgb25OZXdBcmNoaXZlKCkge1xuICAgIHRoaXMubG9hZEJpbmFyeU1vKCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVUb0xhdGVzdFZlcnNpb24oKSB7XG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLkFQUExJQ0FUSU9OX1BST1BFUlRJRVMsXG4gICAgICB7XG4gICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BST1BFUlRJRVMsXG4gICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLlVQREFURV9BVkFJTEFCTEUsXG4gICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGVkQm9keSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgIGdldHRleHQoXG4gICAgICAgICAgYFlvdSdyZSB1c2luZyB0aGUgdmVyc2lvbiB7eyBjdXJyZW50VmVyc2lvbiB9fSBvZiB0aGUge3sgcGFja2FnZU5hbWUgfX0gcGFja2FnZSwgdGhlIGxhdGVzdCB2ZXJzaW9uIGF2YWlsYWJsZSBpcyB7eyBsYXRlc3RWZXJzaW9uIH19LCBkbyB5b3Ugd2FudCB0byB1cGRhdGU/IFlvdSBjYW4gYWx3YXlzIHJldmVydCB0byBhIHByZXZpb3VzIHZlcnNpb24gaW4gdGhlIEFjdGl2aXR5IGxvZyBwYW5lbC5gXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICBjdXJyZW50VmVyc2lvbjogdGhpcy5hcHBsaWNhdGlvbi5tYW5pZmVzdD8udmVyc2lvbixcbiAgICAgICAgICBsYXRlc3RWZXJzaW9uOiB0aGlzLmJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbixcbiAgICAgICAgICBwYWNrYWdlTmFtZTogdGhpcy5zb3VyY2VQYWNrYWdlLm5hbWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0oZ2V0dGV4dCgnVXBkYXRlIGFwcGxpY2F0aW9uJyksIHRyYW5zbGF0ZWRCb2R5LCAnd2FybmluZycsIHtcbiAgICAgICAgb2s6IGdldHRleHQoJ1VwZGF0ZScpLFxuICAgICAgICBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG1vZGFsIGNhbmNlbGVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdzxVcGRhdGVBcHBsaWNhdGlvbk1vZGFsQ29tcG9uZW50PihcbiAgICAgICAgVXBkYXRlQXBwbGljYXRpb25Nb2RhbENvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICBzb3VyY2VQYWNrYWdlOiB0aGlzLnNvdXJjZVBhY2thZ2UsXG4gICAgICAgICAgICBhcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKS5jb250ZW50LnJlc3VsdDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG1vZGFsIGNhbmNlbGVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdBcHBsaWNhdGlvbiB1cGRhdGVkLicpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVzY3JpcHRpb24oYXBwbGljYXRpb246IElBcHBsaWNhdGlvbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFhcHBsaWNhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gYXBwbGljYXRpb24uZGVzY3JpcHRpb24gfHwgYXBwbGljYXRpb24ubWFuaWZlc3Q/LmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb25maXJtU3Vic2NyaXB0aW9uQ2hhbmdlKGluaXRpYWxTdGF0ZToge1xuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb247XG4gICAgaXNTdWJzY3JpYmVkOiBib29sZWFuO1xuICB9KSB7XG4gICAgYXdhaXQgKFxuICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5zaG93KFN1YnNjcmlwdGlvbk1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgICAgYXJpYUxhYmVsbGVkQnk6ICdtb2RhbC10aXRsZScsXG4gICAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgICAgfSkuY29udGVudCBhcyBTdWJzY3JpcHRpb25Nb2RhbENvbXBvbmVudFxuICAgICkucmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXNvbHZlU291cmNlUGFja2FnZURldGFpbHMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc291cmNlUGFja2FnZSA9IChhd2FpdCB0aGlzLmdldFBhY2thZ2UodGhpcy5hcHBsaWNhdGlvbi5tYW5pZmVzdD8uc291cmNlKSkuZGF0YTtcbiAgICAgIGlmICh0aGlzLnNvdXJjZVBhY2thZ2UpIHtcbiAgICAgICAgdGhpcy5wYWNrYWdlUHJvcGVydGllcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU291cmNlIHBhY2thZ2UnKSxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5zb3VyY2VQYWNrYWdlLm5hbWUsXG4gICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgIGFjdGlvbjogKCkgPT5cbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXG4gICAgICAgICAgICAgIFZpZXdDb250ZXh0LkV4dGVuc2lvbi5yZXBsYWNlKCc6aWQnLCB0aGlzLnNvdXJjZVBhY2thZ2UuaWQudG9TdHJpbmcoKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuaW5nKGdldHRleHQoJ1VuYWJsZSB0byByZXNvbHZlIHNvdXJjZSBwYWNrYWdlLicpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmV4dHJhY3RWZXJzaW9uSW5mb3JtYXRpb24odGhpcy5hcHBsaWNhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGluaXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3sgdmFsdWU6ICcnIH1dLFxuICAgICAgbmFtZTogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAga2V5OiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV0sXG4gICAgICBjb250ZXh0UGF0aDogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZGVzY3JpcHRpb246IFsnJywgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKV0sXG4gICAgICB1c2VybmFtZTogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcGFzc3dvcmQ6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGV4dGVybmFsVXJsOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBpY29uOiBbdW5kZWZpbmVkLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXVxuICAgIH0pO1xuICAgIGlmICghdGhpcy5oYXNBZG1pblBlcm1pc3Npb25zKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0FjdGl2aXR5TG9nU3VwcG9ydGVkQnlBcHAoYXBwOiBJQXBwbGljYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzT3duZXIoYXBwKSAmJlxuICAgICAgYXBwLnR5cGUgIT09IEFwcGxpY2F0aW9uVHlwZS5NSUNST1NFUlZJQ0UgJiZcbiAgICAgIGFwcC50eXBlICE9PSBBcHBsaWNhdGlvblR5cGUuRVhURVJOQUxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRCcmVhZGNydW1iQ29uZmlnKCkge1xuICAgIHRoaXMuYnJlYWRjcnVtYkNvbmZpZyA9IHtcbiAgICAgIGljb246IHRoaXMuaXNNaWNyb3NlcnZpY2UgPyAnbWljcm9jaGlwJyA6IHRoaXMuaXNGZWF0dXJlID8gJ3RhYicgOiAnYzh5LW1vZHVsZXMnLFxuICAgICAgbGFiZWw6IHRoaXMuaXNNaWNyb3NlcnZpY2VcbiAgICAgICAgPyBnZXR0ZXh0KCdNaWNyb3NlcnZpY2VzJylcbiAgICAgICAgOiB0aGlzLmlzRmVhdHVyZVxuICAgICAgICA/IGdldHRleHQoJ0ZlYXR1cmVzJylcbiAgICAgICAgOiBnZXR0ZXh0KCdBcHBsaWNhdGlvbnMnKSxcbiAgICAgIHBhdGg6IHRoaXMuaXNNaWNyb3NlcnZpY2VcbiAgICAgICAgPyAnL2Vjb3N5c3RlbS9taWNyb3NlcnZpY2UvbWljcm9zZXJ2aWNlcydcbiAgICAgICAgOiB0aGlzLmlzRmVhdHVyZVxuICAgICAgICA/ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vZmVhdHVyZXMnXG4gICAgICAgIDogJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMnXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEJpbmFyeU1vKCkge1xuICAgIHRoaXMuYmluYXJ5TW8gPSAoYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmRldGFpbCh0aGlzLmFwcGxpY2F0aW9uLmFjdGl2ZVZlcnNpb25JZCkpLmRhdGE7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4dHJhY3RWZXJzaW9uSW5mb3JtYXRpb24oYXBwbGljYXRpb246IElBcHBsaWNhdGlvbikge1xuICAgIGlmICghYXBwbGljYXRpb24ubWFuaWZlc3QuaXNQYWNrYWdlICYmICFhcHBsaWNhdGlvbi5tYW5pZmVzdC5zb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBibHVlcHJpbnRBcHBsaWNhdGlvbklkID0gYXBwbGljYXRpb24ubWFuaWZlc3Q/LnNvdXJjZTtcbiAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGFwcGxpY2F0aW9uLm1hbmlmZXN0Py52ZXJzaW9uO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YTogYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9ucyB9ID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UubGlzdFZlcnNpb25zKFxuICAgICAgICBibHVlcHJpbnRBcHBsaWNhdGlvbklkXG4gICAgICApO1xuICAgICAgY29uc3QgYmx1ZXByaW50TGF0ZXN0VmVyc2lvbiA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRBcHBsaWNhdGlvblZlcnNpb25PYmplY3RCeVRhZyhcbiAgICAgICAgYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9ucyxcbiAgICAgICAgJ2xhdGVzdCdcbiAgICAgICk7XG4gICAgICB0aGlzLmJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbiA9IGJsdWVwcmludExhdGVzdFZlcnNpb24udmVyc2lvbjtcbiAgICAgIHRoaXMuaXNVcGRhdGVBdmFpbGFibGUgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2Uuc2hvdWxkVXBncmFkZVBhY2thZ2UoXG4gICAgICAgIGN1cnJlbnRWZXJzaW9uLFxuICAgICAgICBibHVlcHJpbnRMYXRlc3RWZXJzaW9uXG4gICAgICApO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybmluZyhnZXR0ZXh0KCdVbmFibGUgdG8gcmVzb2x2ZSB2ZXJzaW9ucyBvZiBzb3VyY2UgcGFja2FnZS4nKSk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7IGFwcGxpY2F0aW9uIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmMgfX08L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iICpuZ0lmPVwiIWlzTWljcm9zZXJ2aWNlXCI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1hdG9tJ1wiXG4gICAgW2xhYmVsXT1cIidFY29zeXN0ZW0nIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LW1vZHVsZXMnXCJcbiAgICBbbGFiZWxdPVwiJ0FwcGxpY2F0aW9ucycgfCB0cmFuc2xhdGVcIlxuICAgIFtwYXRoXT1cIidlY29zeXN0ZW0vYXBwbGljYXRpb24vYXBwbGljYXRpb25zJ1wiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiYnJlYWRjcnVtYkNvbmZpZz8uaWNvblwiXG4gICAgKm5nSWY9XCJpc0ZlYXR1cmVcIlxuICAgIFtsYWJlbF09XCJicmVhZGNydW1iQ29uZmlnPy5sYWJlbFwiXG4gICAgW3BhdGhdPVwiYnJlYWRjcnVtYkNvbmZpZz8ucGF0aFwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtIFtsYWJlbF09XCJhcHBsaWNhdGlvbiB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbSBbbGFiZWxdPVwiJ1Byb3BlcnRpZXMnIHwgdHJhbnNsYXRlXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1icmVhZGNydW1iICpuZ0lmPVwiaXNNaWNyb3NlcnZpY2VcIj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWF0b20nXCJcbiAgICBbbGFiZWxdPVwiJ0Vjb3N5c3RlbScgfCB0cmFuc2xhdGVcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cImJyZWFkY3J1bWJDb25maWc/Lmljb25cIlxuICAgIFtsYWJlbF09XCJicmVhZGNydW1iQ29uZmlnPy5sYWJlbFwiXG4gICAgW3BhdGhdPVwiYnJlYWRjcnVtYkNvbmZpZz8ucGF0aFwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtIFtsYWJlbF09XCJhcHBsaWNhdGlvbiB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbSBbbGFiZWxdPVwiJ1Byb3BlcnRpZXMnIHwgdHJhbnNsYXRlXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2NvbC1tZC04JzogIWlzQWN0aXZpdHlMb2dTdXBwb3J0ZWQsICdjb2wtbWQtMTInOiBpc0FjdGl2aXR5TG9nU3VwcG9ydGVkIH1cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNhcmQgY29udGVudC1mdWxscGFnZVwiXG4gICAgICAqbmdJZj1cImFwcGxpY2F0aW9uXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2QtZ3JpZCBncmlkX19jb2wtLTctNS0tbWQnOiBpc0FjdGl2aXR5TG9nU3VwcG9ydGVkIH1cIlxuICAgID5cbiAgICAgIDxmb3JtXG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGQtY29sIGNvbnRlbnQtZnVsbHBhZ2VcIlxuICAgICAgICAobmdTdWJtaXQpPVwiZm9ybUdyb3VwLnZhbGlkICYmIHNhdmUoZm9ybUdyb3VwLnZhbHVlKVwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgICAgbm92YWxpZGF0ZVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgc2VwYXJhdG9yLWJvdHRvbSBsYXJnZS1wYWRkaW5nIGZsZXgtbm8tc2hyaW5rXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4LW1kIGEtaS1zdGFydCB0ZXh0LWNlbnRlciB0ZXh0LWxlZnQtbWRcIj5cbiAgICAgICAgICAgICAgPGM4eS1hcHAtaWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi00OFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNQYWNrYWdlICYmICFpc0ZlYXR1cmUgJiYgIWlzTWljcm9zZXJ2aWNlICYmICFpc0V4dGVybmFsXCJcbiAgICAgICAgICAgICAgICBbYXBwXT1cImFwcGxpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICBbY29udGV4dFBhdGhdPVwiYXBwbGljYXRpb24uY29udGV4dFBhdGhcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImFwcGxpY2F0aW9uLm5hbWVcIlxuICAgICAgICAgICAgICA+PC9jOHktYXBwLWljb24+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLTQ4XCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiYmlnLXBhcmNlbFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1BhY2thZ2VcIlxuICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi00OFwiXG4gICAgICAgICAgICAgICAgYzh5SWNvbj1cInRhYlwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ZlYXR1cmVcIlxuICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi00OFwiXG4gICAgICAgICAgICAgICAgYzh5SWNvbj1cIm1pY3JvY2hpcFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc01pY3Jvc2VydmljZVwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLTQ4XCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiZ2xvYmUxXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzRXh0ZXJuYWxcIlxuICAgICAgICAgICAgICA+PC9pPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXQtbWQtMTYgcC1sLW1kLTE2IHAtci1tZC0zMiBmbGV4LWdyb3dcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImg0IHRleHQtbWVkaXVtIG0tYi04XCI+e3sgYXBwbGljYXRpb24gfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luYyB9fTwvcD5cbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFpc093bmVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZW0gY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwPy5jb250cm9scz8uZGVzY3JpcHRpb24/LnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoJ05vIGRlc2NyaXB0aW9uIGF2YWlsYWJsZS4nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPC9lbT5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwIG0tYi0wXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNPd25lclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IHVwZGF0ZWQ6IGZvcm1Hcm91cD8uY29udHJvbHM/LmRlc2NyaXB0aW9uPy5kaXJ0eSB9XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbm8tcmVzaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdObyBkZXNjcmlwdGlvbiBhdmFpbGFibGUuJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBjOHktdGV4dGFyZWEtYXV0b3Jlc2l6ZVxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHQtbWQgbS10LTRcIj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhcHBTdGF0ZT8uY2xhc3NcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGFwcFN0YXRlPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZpdC13IG0tdC0yXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNQYWNrYWdlIHx8IGlzTWljcm9zZXJ2aWNlIHx8IGlzVW5wYWNrZWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtbGFiZWwtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgVmVyc2lvbjpcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJwLWwtNCB0ZXh0LWJvbGRcIj57eyBhcHBsaWNhdGlvbi5tYW5pZmVzdD8udmVyc2lvbiB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaXQtdyBtLXQtMlwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc1VucGFja2VkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWxhYmVsLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIENyZWF0aW9uIHRpbWU6XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwicC1sLTQgdGV4dC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IChiaW5hcnlNbz8uY3JlYXRpb25UaW1lIHwgYzh5RGF0ZSkgfHwgJy0tLScgfX1cbiAgICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tdC04XCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ1RoZXJlXFwncyBhIG5ld2VyIHZlcnNpb24gYXZhaWxhYmxlLCBjbGljayB0byB1cGRhdGUnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJ7e1xuICAgICAgICAgICAgICAgICAgICAgICdUaGVyZVxcJ3MgYSBuZXdlciB2ZXJzaW9uIGF2YWlsYWJsZSwgY2xpY2sgdG8gdXBkYXRlJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzVXBkYXRlQXZhaWxhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVRvTGF0ZXN0VmVyc2lvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgW2RlbGF5XT1cIjMwMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidpbnN0YWxsaW5nLXVwZGF0ZXMnXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB7eyAnVXBkYXRlIGF2YWlsYWJsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdPcGVuJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkFwcChhcHBsaWNhdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZU9wZW5JbkJyb3dzZXJcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNhbk9wZW5JbkJyb3dzZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBbYzh5SWNvbl09XCInZXh0ZXJuYWwtbGluaydcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdPcGVuJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FuT3BlbkluQnJvd3NlciAmJiBkaXNhYmxlT3BlbkluQnJvd3NlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgVGhlIGFwcGxpY2F0aW9uIGlzIG92ZXJ3cml0dGVuIGJ5IGEgY3VzdG9tIGFwcGxpY2F0aW9uIHNoYXJpbmcgdGhlIHNhbWUgcGF0aFxuICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQ3VzdG9tTWljcm9zZXJ2aWNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ1N1YnNjcmliZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJzY3JpYmUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNTdWJzY3JpYmVkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidjaGVjay1jaXJjbGUtbydcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAge3sgJ1N1YnNjcmliZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ1Vuc3Vic2NyaWJlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVuc3Vic2NyaWJlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNTdWJzY3JpYmVkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidtaW51cy1jaXJjbGUnXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdVbnN1YnNjcmliZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyLXNjcm9sbCBiZy1sZXZlbC0wIGZsZXgtZ3Jvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgbGFyZ2UtcGFkZGluZ1wiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgcC0xNlwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1BhY2thZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGM4eS1wcm9wZXJ0aWVzLWxpc3RcbiAgICAgICAgICAgICAgICAgIGljb249XCJpbmZvXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInUGFja2FnZSBkZXRhaWxzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJhcHBsaWNhdGlvbi5tYW5pZmVzdFwiXG4gICAgICAgICAgICAgICAgICBbcHJvcGVydGllc109XCJwYWNrYWdlUHJvcGVydGllc1wiXG4gICAgICAgICAgICAgICAgICBbZW1wdHlMYWJlbF09XCInLS0tJ1wiXG4gICAgICAgICAgICAgICAgPjwvYzh5LXByb3BlcnRpZXMtbGlzdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBwLTE2XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNvdXJjZVBhY2thZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGM4eS1wcm9wZXJ0aWVzLWxpc3RcbiAgICAgICAgICAgICAgICAgIGljb249XCJpbmZvXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInU291cmNlIHBhY2thZ2UgaW5mb3JtYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInNvdXJjZVBhY2thZ2UubWFuaWZlc3RcIlxuICAgICAgICAgICAgICAgICAgW3Byb3BlcnRpZXNdPVwicGFja2FnZVByb3BlcnRpZXNcIlxuICAgICAgICAgICAgICAgICAgW2VtcHR5TGFiZWxdPVwiJy0tLSdcIlxuICAgICAgICAgICAgICAgID48L2M4eS1wcm9wZXJ0aWVzLWxpc3Q+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS01XCI+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhcHBJZFwiPklEPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYXBwSWRcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS03XCI+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnTmFtZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLiBNeSBhcHBsaWNhdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiIWlzT3duZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNVwiPlxuICAgICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0FwcGxpY2F0aW9uIGtleScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLiBteS1hcHBsaWNhdGlvbi1rZXknIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiYXBwbGljYXRpb24uaWQgfHwgIWlzT3duZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS03XCI+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnVHlwZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhcHBsaWNhdGlvbi5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cImljb25NYXBbYXBwbGljYXRpb24udHlwZV1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwcGxpY2F0aW9uLnR5cGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgW25nU3dpdGNoXT1cImFwcGxpY2F0aW9uLnR5cGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInSE9TVEVEJ1wiPlxuICAgICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ1BhdGgnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvblwiPi9hcHBzLzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4gbXktYXBwbGljYXRpb25gdXNlZCBpbiBVUkxgJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY29udGV4dFBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJhcHBsaWNhdGlvbi5pZCB8fCAhaXNPd25lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb250ZXh0UGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ01JQ1JPU0VSVklDRSdcIj5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdQYXRoJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb25cIj4vc2VydmljZS88L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIG15LW1pY3Jvc2VydmljZWB1c2VkIGluIFVSTGAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjb250ZXh0UGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cImFwcGxpY2F0aW9uLmlkIHx8ICFpc093bmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbnRleHRQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zbS00IG0tYi0xNiBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwbGljYXRpb24ubWFuaWZlc3QudmVyc2lvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ1ZlcnNpb24nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvcm0tY29udHJvbC1zdGF0aWNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwcGxpY2F0aW9uLm1hbmlmZXN0LnZlcnNpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc20tNCBtLWItMTYgZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcGxpY2F0aW9uLm1hbmlmZXN0Lmlzb2xhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0lzb2xhdGlvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaW5nbGVUZW5hbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImM4eS1pY29uLWR1b2NvbG9yIGg0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYzh5SWNvbl09XCInYzh5LWVudGVycHJpc2UnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1NpbmdsZSB0ZW5hbnQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFzaW5nbGVUZW5hbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImM4eS1pY29uLWR1b2NvbG9yIGljb24tMzJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjOHlJY29uXT1cIidjOHktc3ViLXRlbmFudHMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ011bHRpIHRlbmFudCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc20tNCBtLWItMTYgZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcGxpY2F0aW9uLm1hbmlmZXN0Lmlzb2xhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0JpbGxpbmcgbW9kZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ1Jlc291cmNlcyB1c2FnZSBhc3NpZ25lZCB0bzogT3duZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdWJzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnU3Vic2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ1Jlc291cmNlcyB1c2FnZSBhc3NpZ25lZCB0bzogU3Vic2NyaWJlciB8IHRyYW5zbGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzdWJzY3JpcHRpb24gJiYgc2luZ2xlVGVuYW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1Jlc291cmNlcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIidSZXNvdXJjZXMgdXNhZ2UgYXNzaWduZWQgdG86IE93bmVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXN1YnNjcmlwdGlvbiAmJiAhc2luZ2xlVGVuYW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1Jlc291cmNlcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9jayBtLXQtNDBcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcGxpY2F0aW9uLm1hbmlmZXN0LnByb3ZpZGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ1Byb3ZpZGVyJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pbmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcGxpY2F0aW9uLm1hbmlmZXN0LnByb3ZpZGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFwcGxpY2F0aW9uLm1hbmlmZXN0LnByb3ZpZGVyLm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTQgbS1iLTE2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ05hbWUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcHBsaWNhdGlvbi5tYW5pZmVzdC5wcm92aWRlci5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXBwbGljYXRpb24ubWFuaWZlc3QucHJvdmlkZXIuZG9tYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00IG0tYi0xNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdEb21haW4nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcHBsaWNhdGlvbi5tYW5pZmVzdC5wcm92aWRlci5kb21haW4gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhcHBsaWNhdGlvbi5tYW5pZmVzdC5wcm92aWRlci5zdXBwb3J0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00IG0tYi0xNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdTdXBwb3J0JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvcm0tY29udHJvbC1zdGF0aWNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYXBwbGljYXRpb24ubWFuaWZlc3QucHJvdmlkZXIuc3VwcG9ydCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ0VYVEVSTkFMJ1wiPlxuICAgICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0V4dGVybmFsIFVSTCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLicgfCB0cmFuc2xhdGUgfX0gaHR0cDovL3d3dy5leGFtcGxlLmNvbS9cIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJleHRlcm5hbFVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCInXig/IWphdmFzY3JpcHQ6KS4rJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cIiFpc093bmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJleHRlcm5hbFVybFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCIncGF0dGVybidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiJ1ZhbGlkIFVSTCByZXF1aXJlZC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jOHktbWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgPC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzT3duZXIgJiYgIWlzQ3VzdG9tTWljcm9zZXJ2aWNlXCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ1NlbGVjdCBpY29uJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWljb24tc2VsZWN0b3Itd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImljb25cIlxuICAgICAgICAgICAgICAgICAgPjwvYzh5LWljb24tc2VsZWN0b3Itd3JhcHBlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDdXN0b21NaWNyb3NlcnZpY2VcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNMb2FkaW5nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGM4eS11cGxvYWQtYXJjaGl2ZVxuICAgICAgICAgICAgICAgIFsoYXBwbGljYXRpb24pXT1cImFwcGxpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICAocmVmcmVzaCk9XCJvbk5ld0FyY2hpdmUoKVwiXG4gICAgICAgICAgICAgID48L2M4eS11cGxvYWQtYXJjaGl2ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2FyZC1mb290ZXIgc2VwYXJhdG9yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiYXBwbGljYXRpb24gJiYgISFpc093bmVyICYmIGhhc0FkbWluUGVybWlzc2lvbnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0RlbGV0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZSgpXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjYW5EZWxldGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnRGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1mb3JtXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnU2F2ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFhcHBsaWNhdGlvbi50eXBlIHx8IGZvcm1Hcm91cC5pbnZhbGlkIHx8IGZvcm1Hcm91cC5wcmlzdGluZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY29udGVudC1mdWxscGFnZSBkLWZsZXggZC1jb2wgYmctbGV2ZWwtMVwiXG4gICAgICAgICpuZ0lmPVwiaXNBY3Rpdml0eUxvZ1N1cHBvcnRlZFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBzZXBhcmF0b3JcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNhcmQtdGl0bGVcIlxuICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQWN0aXZpdHkgbG9nXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm0tbC1hdXRvXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGJ0bi1zbVwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImxvYWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgYzh5SWNvbj1cInJlZnJlc2hcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IGlzTG9hZGluZyB9XCJcbiAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAge3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicC0xNiB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgKm5nSWY9XCJpc0xvYWRpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGM4eS1sb2FkaW5nPjwvYzh5LWxvYWRpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8Yzh5LWFjdGl2aXR5LWxvZ1xuICAgICAgICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgICAgICAgKm5nSWY9XCIhaXNMb2FkaW5nXCJcbiAgICAgICAgICBbaGFzQWRtaW5QZXJtaXNzaW9uc109XCJoYXNBZG1pblBlcm1pc3Npb25zXCJcbiAgICAgICAgICBbYXBwbGljYXRpb25dPVwiYXBwbGljYXRpb25cIlxuICAgICAgICA+PC9jOHktYWN0aXZpdHktbG9nPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcHJvcGVydGllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vYXBwbGljYXRpb24tcHJvcGVydGllcy9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsV0FBVyxFQUdYLGdCQUFnQixFQUNoQixTQUFTLEVBQ1YsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFdBQVcsRUFFWCxXQUFXLEVBQ1gsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2xCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRWhILE1BQU0sdUJBQXVCLEdBQUcsdUNBQXVDLENB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QThCOytHQUE5Qiw4QkFBOEIsa0VDdkMzQyxncnFCQW1pQkE7MkZENWZhLDhCQUE4QjtrQkFKMUMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25TZXJ2aWNlLFxuICBBcHBsaWNhdGlvblR5cGUsXG4gIEJpbGxpbmdNb2RlLFxuICBJQXBwbGljYXRpb24sXG4gIElNYW5hZ2VkT2JqZWN0LFxuICBJbnZlbnRvcnlTZXJ2aWNlLFxuICBJc29sYXRpb25cbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWxlcnRTZXJ2aWNlLFxuICBHYWluc2lnaHRTZXJ2aWNlLFxuICBNb2RhbFNlcnZpY2UsXG4gIFBlcm1pc3Npb25zLFxuICBQcm9wZXJ0aWVzTGlzdEl0ZW0sXG4gIFZpZXdDb250ZXh0LFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25TdGF0ZSxcbiAgRWNvc3lzdGVtU2VydmljZSxcbiAgUFJPRFVDVF9FWFBFUklFTkNFLFxuICBwYWNrYWdlUHJvcGVydGllc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zdWJzY3JpcHRpb24tbW9kYWwvc3Vic2NyaXB0aW9uLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGRhdGVBcHBsaWNhdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi91cGRhdGUtYXBwbGljYXRpb24tbW9kYWwvdXBkYXRlLWFwcGxpY2F0aW9uLW1vZGFsLmNvbXBvbmVudCc7XG5cbmNvbnN0IE1JQ1JPU0VSVklDRVNfQkFTRV9QQVRIID0gJy9lY29zeXN0ZW0vbWljcm9zZXJ2aWNlL21pY3Jvc2VydmljZXMnO1xuY29uc3QgQVBQTElDQVRJT05TX0JBU0VfUEFUSCA9ICcvZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uUHJvcGVydGllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgYXBwbGljYXRpb246IElBcHBsaWNhdGlvbjtcbiAgYmluYXJ5TW86IElNYW5hZ2VkT2JqZWN0O1xuICBzaW5nbGVUZW5hbnQgPSBmYWxzZTtcbiAgc3Vic2NyaXB0aW9uID0gZmFsc2U7XG4gIGNhbk9wZW5JbkJyb3dzZXI6IGJvb2xlYW47XG4gIGRpc2FibGVPcGVuSW5Ccm93c2VyOiBib29sZWFuO1xuICBjYW5EZWxldGU6IGJvb2xlYW47XG4gIGlzT3duZXI6IGJvb2xlYW47XG4gIGlzU3Vic2NyaWJlZDogYm9vbGVhbjtcbiAgaXNQYWNrYWdlOiBib29sZWFuO1xuICBpc01pY3Jvc2VydmljZTogYm9vbGVhbjtcbiAgaXNGZWF0dXJlOiBib29sZWFuO1xuICBpc0V4dGVybmFsOiBib29sZWFuO1xuICBpc1VucGFja2VkOiBib29sZWFuO1xuICBpY29uTWFwID0ge1xuICAgIEhPU1RFRDogJ2Nsb3VkJyxcbiAgICBFWFRFUk5BTDogJ2V4dGVybmFsLWxpbmstc3F1YXJlJyxcbiAgICBNSUNST1NFUlZJQ0U6ICdtaWNyb2NoaXAnXG4gIH07XG4gIGFwcFN0YXRlOiBBcHBsaWNhdGlvblN0YXRlO1xuICBzb3VyY2VQYWNrYWdlOiBJQXBwbGljYXRpb247XG4gIGlzTG9hZGluZyA9IHRydWU7XG4gIGlzQWN0aXZpdHlMb2dTdXBwb3J0ZWQ6IGJvb2xlYW47XG4gIGlzQ3VzdG9tTWljcm9zZXJ2aWNlOiBib29sZWFuO1xuICBoYXNBZG1pblBlcm1pc3Npb25zID0gZmFsc2U7XG5cbiAgYnJlYWRjcnVtYkNvbmZpZzogeyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHBhdGg6IHN0cmluZyB9O1xuICBwYWNrYWdlUHJvcGVydGllczogUHJvcGVydGllc0xpc3RJdGVtW10gPSBbLi4ucGFja2FnZVByb3BlcnRpZXNdO1xuICBpc1VwZGF0ZUF2YWlsYWJsZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5U2VydmljZTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9ucyxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oYXNBZG1pblBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5oYXNSb2xlKFxuICAgICAgUGVybWlzc2lvbnMuUk9MRV9BUFBMSUNBVElPTl9NQU5BR0VNRU5UX0FETUlOXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2goKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgdGhpcy5pc1VucGFja2VkID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzVW5wYWNrZWQodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5pc1BhY2thZ2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNQYWNrYWdlKHRoaXMuYXBwbGljYXRpb24pO1xuICAgIHRoaXMuaXNGZWF0dXJlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzRmVhdHVyZSh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLmlzRXh0ZXJuYWwgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNFeHRlcm5hbCh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLmlzTWljcm9zZXJ2aWNlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzTWljcm9zZXJ2aWNlKHRoaXMuYXBwbGljYXRpb24pO1xuICAgIHRoaXMuYXBwU3RhdGUgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0QXBwU3RhdGUodGhpcy5hcHBsaWNhdGlvbik7XG5cbiAgICBpZiAodGhpcy5pc1VucGFja2VkKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlc29sdmVTb3VyY2VQYWNrYWdlRGV0YWlscygpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0QnJlYWRjcnVtYkNvbmZpZygpO1xuXG4gICAgaWYgKHRoaXMuaXNDdXN0b21NaWNyb3NlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9hZEJpbmFyeU1vKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgIGF3YWl0IHRoaXMubG9hZEFwcGxpY2F0aW9uKCk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIG9uQXBwbGljYXRpb24oYXBwOiBJQXBwbGljYXRpb24pIHtcbiAgICBpZiAoYXBwLm1hbmlmZXN0KSB7XG4gICAgICB0aGlzLnNpbmdsZVRlbmFudCA9IGFwcC5tYW5pZmVzdC5pc29sYXRpb24gPT09IElzb2xhdGlvbi5QRVJfVEVOQU5UO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBhcHAubWFuaWZlc3QuYmlsbGluZ01vZGUgPT09IEJpbGxpbmdNb2RlLlNVQlNDUklQVElPTjtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb24udHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLk1JQ1JPU0VSVklDRSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChNSUNST1NFUlZJQ0VTX0JBU0VfUEFUSCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoQVBQTElDQVRJT05TX0JBU0VfUEFUSCk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkFwcChhcHApIHtcbiAgICB0aGlzLmVjb3N5c3RlbVNlcnZpY2Uub3BlbkFwcChhcHApO1xuICB9XG5cbiAgZ2V0UGFja2FnZShlbnRpdHlPcklkOiBzdHJpbmcgfCBudW1iZXIgfCBJQXBwbGljYXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZGV0YWlsKGVudGl0eU9ySWQpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZGVsZXRlQXBwKHRoaXMuYXBwbGljYXRpb24pO1xuICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb24udHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLk1JQ1JPU0VSVklDRSkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKE1JQ1JPU0VSVklDRVNfQkFTRV9QQVRIKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoQVBQTElDQVRJT05TX0JBU0VfUEFUSCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBzdWJzY3JpYmUoKSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0geyBhcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvbiwgaXNTdWJzY3JpYmVkOiBmYWxzZSB9O1xuICAgIGF3YWl0IHRoaXMuY29uZmlybVN1YnNjcmlwdGlvbkNoYW5nZShpbml0aWFsU3RhdGUpO1xuICAgIHRoaXMubG9hZEFwcGxpY2F0aW9uKCk7XG4gIH1cblxuICBhc3luYyB1bnN1YnNjcmliZSgpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7IGFwcGxpY2F0aW9uOiB0aGlzLmFwcGxpY2F0aW9uLCBpc1N1YnNjcmliZWQ6IHRydWUgfTtcbiAgICBhd2FpdCB0aGlzLmNvbmZpcm1TdWJzY3JpcHRpb25DaGFuZ2UoaW5pdGlhbFN0YXRlKTtcbiAgICB0aGlzLmxvYWRBcHBsaWNhdGlvbigpO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFwcGxpY2F0aW9uKCkge1xuICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyZW50LmRhdGEuY29udGV4dERhdGE7XG4gICAgdGhpcy5hcHBsaWNhdGlvbiA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRBcHBsaWNhdGlvbihpZCk7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb24udHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLk1JQ1JPU0VSVklDRSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCduYW1lJykuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRBcHBsaWNhdGlvbiA9IHtcbiAgICAgIC4uLnRoaXMuYXBwbGljYXRpb24sXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5nZXREZXNjcmlwdGlvbih0aGlzLmFwcGxpY2F0aW9uKSxcbiAgICAgIGljb246IHRoaXMuYXBwbGljYXRpb24uY29uZmlnPy5pY29uPy5jbGFzcyB8fCB0aGlzLmFwcGxpY2F0aW9uLm1hbmlmZXN0Py5pY29uPy5jbGFzc1xuICAgIH07XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHVwZGF0ZWRBcHBsaWNhdGlvbik7XG4gICAgdGhpcy5jYW5PcGVuSW5Ccm93c2VyID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmNhbk9wZW5BcHBJbkJyb3dzZXIodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5kaXNhYmxlT3BlbkluQnJvd3NlciA9XG4gICAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgJiZcbiAgICAgIChhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNPdmVyd3JpdHRlbkJ5Q3VzdG9tQXBwKHRoaXMuYXBwbGljYXRpb24pKTtcbiAgICB0aGlzLmNhbkRlbGV0ZSA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5jYW5EZWxldGVBcHAodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5pc093bmVyID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzT3duZXIodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5pc0FjdGl2aXR5TG9nU3VwcG9ydGVkID0gdGhpcy5pc0FjdGl2aXR5TG9nU3VwcG9ydGVkQnlBcHAodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5pc0N1c3RvbU1pY3Jvc2VydmljZSA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc0N1c3RvbU1pY3Jvc2VydmljZSh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLmlzU3Vic2NyaWJlZCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5jaGVja0lmU3Vic2NyaWJlZCh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLm9uQXBwbGljYXRpb24odGhpcy5hcHBsaWNhdGlvbik7XG4gIH1cblxuICBhc3luYyBzYXZlKGFwcDogSUFwcGxpY2F0aW9uKSB7XG4gICAgY29uc3QgaWNvbiA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydpY29uJ10udmFsdWU7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWyduYW1lJ10udmFsdWU7XG4gICAgaWYgKGljb24pIHtcbiAgICAgIGFwcCA9IHtcbiAgICAgICAgLi4uYXBwLFxuICAgICAgICBjb25maWc6IHsgLi4udGhpcy5hcHBsaWNhdGlvbi5jb25maWcsIGljb246IHsgY2xhc3M6IGljb24gfSwgYXBwVGl0bGU6IG5hbWUgfVxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXBwbGljYXRpb24uY29uZmlnKSB7XG4gICAgICBhcHAgPSB7XG4gICAgICAgIC4uLmFwcCxcbiAgICAgICAgY29uZmlnOiB7IC4uLnRoaXMuYXBwbGljYXRpb24uY29uZmlnLCBhcHBUaXRsZTogbmFtZSB9XG4gICAgICB9O1xuICAgIH1cbiAgICBhcHAuaWQgPSB0aGlzLmFwcGxpY2F0aW9uLmlkO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudXBkYXRlQXBwKGFwcCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ0FwcGxpY2F0aW9uIHNhdmVkLicpKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICB0aGlzLmxvYWRBcHBsaWNhdGlvbigpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG5cbiAgb25OZXdBcmNoaXZlKCkge1xuICAgIHRoaXMubG9hZEJpbmFyeU1vKCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVUb0xhdGVzdFZlcnNpb24oKSB7XG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLkFQUExJQ0FUSU9OX1BST1BFUlRJRVMsXG4gICAgICB7XG4gICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BST1BFUlRJRVMsXG4gICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLlVQREFURV9BVkFJTEFCTEUsXG4gICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGVkQm9keSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgIGdldHRleHQoXG4gICAgICAgICAgYFlvdSdyZSB1c2luZyB0aGUgdmVyc2lvbiB7eyBjdXJyZW50VmVyc2lvbiB9fSBvZiB0aGUge3sgcGFja2FnZU5hbWUgfX0gcGFja2FnZSwgdGhlIGxhdGVzdCB2ZXJzaW9uIGF2YWlsYWJsZSBpcyB7eyBsYXRlc3RWZXJzaW9uIH19LCBkbyB5b3Ugd2FudCB0byB1cGRhdGU/IFlvdSBjYW4gYWx3YXlzIHJldmVydCB0byBhIHByZXZpb3VzIHZlcnNpb24gaW4gdGhlIEFjdGl2aXR5IGxvZyBwYW5lbC5gXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICBjdXJyZW50VmVyc2lvbjogdGhpcy5hcHBsaWNhdGlvbi5tYW5pZmVzdD8udmVyc2lvbixcbiAgICAgICAgICBsYXRlc3RWZXJzaW9uOiB0aGlzLmJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbixcbiAgICAgICAgICBwYWNrYWdlTmFtZTogdGhpcy5zb3VyY2VQYWNrYWdlLm5hbWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0oZ2V0dGV4dCgnVXBkYXRlIGFwcGxpY2F0aW9uJyksIHRyYW5zbGF0ZWRCb2R5LCAnd2FybmluZycsIHtcbiAgICAgICAgb2s6IGdldHRleHQoJ1VwZGF0ZScpLFxuICAgICAgICBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG1vZGFsIGNhbmNlbGVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdzxVcGRhdGVBcHBsaWNhdGlvbk1vZGFsQ29tcG9uZW50PihcbiAgICAgICAgVXBkYXRlQXBwbGljYXRpb25Nb2RhbENvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICBzb3VyY2VQYWNrYWdlOiB0aGlzLnNvdXJjZVBhY2thZ2UsXG4gICAgICAgICAgICBhcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKS5jb250ZW50LnJlc3VsdDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG1vZGFsIGNhbmNlbGVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdBcHBsaWNhdGlvbiB1cGRhdGVkLicpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVzY3JpcHRpb24oYXBwbGljYXRpb246IElBcHBsaWNhdGlvbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFhcHBsaWNhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gYXBwbGljYXRpb24uZGVzY3JpcHRpb24gfHwgYXBwbGljYXRpb24ubWFuaWZlc3Q/LmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb25maXJtU3Vic2NyaXB0aW9uQ2hhbmdlKGluaXRpYWxTdGF0ZToge1xuICAgIGFwcGxpY2F0aW9uOiBJQXBwbGljYXRpb247XG4gICAgaXNTdWJzY3JpYmVkOiBib29sZWFuO1xuICB9KSB7XG4gICAgYXdhaXQgKFxuICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5zaG93KFN1YnNjcmlwdGlvbk1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgICAgYXJpYUxhYmVsbGVkQnk6ICdtb2RhbC10aXRsZScsXG4gICAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgICAgfSkuY29udGVudCBhcyBTdWJzY3JpcHRpb25Nb2RhbENvbXBvbmVudFxuICAgICkucmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXNvbHZlU291cmNlUGFja2FnZURldGFpbHMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc291cmNlUGFja2FnZSA9IChhd2FpdCB0aGlzLmdldFBhY2thZ2UodGhpcy5hcHBsaWNhdGlvbi5tYW5pZmVzdD8uc291cmNlKSkuZGF0YTtcbiAgICAgIGlmICh0aGlzLnNvdXJjZVBhY2thZ2UpIHtcbiAgICAgICAgdGhpcy5wYWNrYWdlUHJvcGVydGllcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU291cmNlIHBhY2thZ2UnKSxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5zb3VyY2VQYWNrYWdlLm5hbWUsXG4gICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgIGFjdGlvbjogKCkgPT5cbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXG4gICAgICAgICAgICAgIFZpZXdDb250ZXh0LkV4dGVuc2lvbi5yZXBsYWNlKCc6aWQnLCB0aGlzLnNvdXJjZVBhY2thZ2UuaWQudG9TdHJpbmcoKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuaW5nKGdldHRleHQoJ1VuYWJsZSB0byByZXNvbHZlIHNvdXJjZSBwYWNrYWdlLicpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmV4dHJhY3RWZXJzaW9uSW5mb3JtYXRpb24odGhpcy5hcHBsaWNhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGluaXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3sgdmFsdWU6ICcnIH1dLFxuICAgICAgbmFtZTogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAga2V5OiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV0sXG4gICAgICBjb250ZXh0UGF0aDogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZGVzY3JpcHRpb246IFsnJywgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKV0sXG4gICAgICB1c2VybmFtZTogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcGFzc3dvcmQ6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGV4dGVybmFsVXJsOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBpY29uOiBbdW5kZWZpbmVkLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXVxuICAgIH0pO1xuICAgIGlmICghdGhpcy5oYXNBZG1pblBlcm1pc3Npb25zKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0FjdGl2aXR5TG9nU3VwcG9ydGVkQnlBcHAoYXBwOiBJQXBwbGljYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzT3duZXIoYXBwKSAmJlxuICAgICAgYXBwLnR5cGUgIT09IEFwcGxpY2F0aW9uVHlwZS5NSUNST1NFUlZJQ0UgJiZcbiAgICAgIGFwcC50eXBlICE9PSBBcHBsaWNhdGlvblR5cGUuRVhURVJOQUxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRCcmVhZGNydW1iQ29uZmlnKCkge1xuICAgIHRoaXMuYnJlYWRjcnVtYkNvbmZpZyA9IHtcbiAgICAgIGljb246IHRoaXMuaXNNaWNyb3NlcnZpY2UgPyAnbWljcm9jaGlwJyA6IHRoaXMuaXNGZWF0dXJlID8gJ3RhYicgOiAnYzh5LW1vZHVsZXMnLFxuICAgICAgbGFiZWw6IHRoaXMuaXNNaWNyb3NlcnZpY2VcbiAgICAgICAgPyBnZXR0ZXh0KCdNaWNyb3NlcnZpY2VzJylcbiAgICAgICAgOiB0aGlzLmlzRmVhdHVyZVxuICAgICAgICAgID8gZ2V0dGV4dCgnRmVhdHVyZXMnKVxuICAgICAgICAgIDogZ2V0dGV4dCgnQXBwbGljYXRpb25zJyksXG4gICAgICBwYXRoOiB0aGlzLmlzTWljcm9zZXJ2aWNlXG4gICAgICAgID8gJy9lY29zeXN0ZW0vbWljcm9zZXJ2aWNlL21pY3Jvc2VydmljZXMnXG4gICAgICAgIDogdGhpcy5pc0ZlYXR1cmVcbiAgICAgICAgICA/ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vZmVhdHVyZXMnXG4gICAgICAgICAgOiAnZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9ucydcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkQmluYXJ5TW8oKSB7XG4gICAgdGhpcy5iaW5hcnlNbyA9IChhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKHRoaXMuYXBwbGljYXRpb24uYWN0aXZlVmVyc2lvbklkKSkuZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXh0cmFjdFZlcnNpb25JbmZvcm1hdGlvbihhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uKSB7XG4gICAgaWYgKCFhcHBsaWNhdGlvbi5tYW5pZmVzdC5pc1BhY2thZ2UgJiYgIWFwcGxpY2F0aW9uLm1hbmlmZXN0LnNvdXJjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJsdWVwcmludEFwcGxpY2F0aW9uSWQgPSBhcHBsaWNhdGlvbi5tYW5pZmVzdD8uc291cmNlO1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gYXBwbGljYXRpb24ubWFuaWZlc3Q/LnZlcnNpb247XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBkYXRhOiBibHVlcHJpbnRBcHBsaWNhdGlvblZlcnNpb25zIH0gPVxuICAgICAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5saXN0VmVyc2lvbnMoYmx1ZXByaW50QXBwbGljYXRpb25JZCk7XG4gICAgICBjb25zdCBibHVlcHJpbnRMYXRlc3RWZXJzaW9uID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcGxpY2F0aW9uVmVyc2lvbk9iamVjdEJ5VGFnKFxuICAgICAgICBibHVlcHJpbnRBcHBsaWNhdGlvblZlcnNpb25zLFxuICAgICAgICAnbGF0ZXN0J1xuICAgICAgKTtcbiAgICAgIHRoaXMuYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9uID0gYmx1ZXByaW50TGF0ZXN0VmVyc2lvbi52ZXJzaW9uO1xuICAgICAgdGhpcy5pc1VwZGF0ZUF2YWlsYWJsZSA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5zaG91bGRVcGdyYWRlUGFja2FnZShcbiAgICAgICAgY3VycmVudFZlcnNpb24sXG4gICAgICAgIGJsdWVwcmludExhdGVzdFZlcnNpb25cbiAgICAgICk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuaW5nKGdldHRleHQoJ1VuYWJsZSB0byByZXNvbHZlIHZlcnNpb25zIG9mIHNvdXJjZSBwYWNrYWdlLicpKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+e3sgYXBwbGljYXRpb24gfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luYyB9fTwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWIgKm5nSWY9XCIhaXNNaWNyb3NlcnZpY2VcIj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWF0b20nXCJcbiAgICBbbGFiZWxdPVwiJ0Vjb3N5c3RlbScgfCB0cmFuc2xhdGVcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktbW9kdWxlcydcIlxuICAgIFtsYWJlbF09XCInQXBwbGljYXRpb25zJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3BhdGhdPVwiJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMnXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCJicmVhZGNydW1iQ29uZmlnPy5pY29uXCJcbiAgICAqbmdJZj1cImlzRmVhdHVyZVwiXG4gICAgW2xhYmVsXT1cImJyZWFkY3J1bWJDb25maWc/LmxhYmVsXCJcbiAgICBbcGF0aF09XCJicmVhZGNydW1iQ29uZmlnPy5wYXRoXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW0gW2xhYmVsXT1cImFwcGxpY2F0aW9uIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmNcIj48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtIFtsYWJlbF09XCInUHJvcGVydGllcycgfCB0cmFuc2xhdGVcIj48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Yzh5LWJyZWFkY3J1bWIgKm5nSWY9XCJpc01pY3Jvc2VydmljZVwiPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktYXRvbSdcIlxuICAgIFtsYWJlbF09XCInRWNvc3lzdGVtJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiYnJlYWRjcnVtYkNvbmZpZz8uaWNvblwiXG4gICAgW2xhYmVsXT1cImJyZWFkY3J1bWJDb25maWc/LmxhYmVsXCJcbiAgICBbcGF0aF09XCJicmVhZGNydW1iQ29uZmlnPy5wYXRoXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW0gW2xhYmVsXT1cImFwcGxpY2F0aW9uIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmNcIj48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtIFtsYWJlbF09XCInUHJvcGVydGllcycgfCB0cmFuc2xhdGVcIj48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgW25nQ2xhc3NdPVwieyAnY29sLW1kLTgnOiAhaXNBY3Rpdml0eUxvZ1N1cHBvcnRlZCwgJ2NvbC1tZC0xMic6IGlzQWN0aXZpdHlMb2dTdXBwb3J0ZWQgfVwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZCBjb250ZW50LWZ1bGxwYWdlXCJcbiAgICAgICpuZ0lmPVwiYXBwbGljYXRpb25cIlxuICAgICAgW25nQ2xhc3NdPVwieyAnZC1ncmlkIGdyaWRfX2NvbC0tNy01LS1tZCc6IGlzQWN0aXZpdHlMb2dTdXBwb3J0ZWQgfVwiXG4gICAgPlxuICAgICAgPGZvcm1cbiAgICAgICAgY2xhc3M9XCJkLWZsZXggZC1jb2wgY29udGVudC1mdWxscGFnZVwiXG4gICAgICAgIChuZ1N1Ym1pdCk9XCJmb3JtR3JvdXAudmFsaWQgJiYgc2F2ZShmb3JtR3JvdXAudmFsdWUpXCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgICAgICBub3ZhbGlkYXRlXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgICAgICpuZ0lmPVwiIWlzTG9hZGluZ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItYm90dG9tIGxhcmdlLXBhZGRpbmcgZmxleC1uby1zaHJpbmtcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgtbWQgYS1pLXN0YXJ0IHRleHQtY2VudGVyIHRleHQtbGVmdC1tZFwiPlxuICAgICAgICAgICAgICA8Yzh5LWFwcC1pY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLTQ4XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc1BhY2thZ2UgJiYgIWlzRmVhdHVyZSAmJiAhaXNNaWNyb3NlcnZpY2UgJiYgIWlzRXh0ZXJuYWxcIlxuICAgICAgICAgICAgICAgIFthcHBdPVwiYXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgIFtjb250ZXh0UGF0aF09XCJhcHBsaWNhdGlvbi5jb250ZXh0UGF0aFwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwiYXBwbGljYXRpb24ubmFtZVwiXG4gICAgICAgICAgICAgID48L2M4eS1hcHAtaWNvbj5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb24tNDhcIlxuICAgICAgICAgICAgICAgIGM4eUljb249XCJiaWctcGFyY2VsXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzUGFja2FnZVwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLTQ4XCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwidGFiXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzRmVhdHVyZVwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLTQ4XCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwibWljcm9jaGlwXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzTWljcm9zZXJ2aWNlXCJcbiAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb24tNDhcIlxuICAgICAgICAgICAgICAgIGM4eUljb249XCJnbG9iZTFcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNFeHRlcm5hbFwiXG4gICAgICAgICAgICAgID48L2k+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdC1tZC0xNiBwLWwtbWQtMTYgcC1yLW1kLTMyIGZsZXgtZ3Jvd1wiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiaDQgdGV4dC1tZWRpdW0gbS1iLThcIj57eyBhcHBsaWNhdGlvbiB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19PC9wPlxuICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIWlzT3duZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxlbSBjbGFzcz1cInRleHQtbXV0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXA/LmNvbnRyb2xzPy5kZXNjcmlwdGlvbj8udmFsdWUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICgnTm8gZGVzY3JpcHRpb24gYXZhaWxhYmxlLicgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA8L2VtPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXAgbS1iLTBcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc093bmVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgdXBkYXRlZDogZm9ybUdyb3VwPy5jb250cm9scz8uZGVzY3JpcHRpb24/LmRpcnR5IH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBuby1yZXNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ05vIGRlc2NyaXB0aW9uIGF2YWlsYWJsZS4nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIGM4eS10ZXh0YXJlYS1hdXRvcmVzaXplXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodC1tZCBtLXQtNFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFwcFN0YXRlPy5jbGFzc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgYXBwU3RhdGU/LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZml0LXcgbS10LTJcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1BhY2thZ2UgfHwgaXNNaWNyb3NlcnZpY2UgfHwgaXNVbnBhY2tlZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1sYWJlbC1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBWZXJzaW9uOlxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInAtbC00IHRleHQtYm9sZFwiPnt7IGFwcGxpY2F0aW9uLm1hbmlmZXN0Py52ZXJzaW9uIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZpdC13IG0tdC0yXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzVW5wYWNrZWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtbGFiZWwtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQ3JlYXRpb24gdGltZTpcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJwLWwtNCB0ZXh0LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgKGJpbmFyeU1vPy5jcmVhdGlvblRpbWUgfCBjOHlEYXRlKSB8fCAnLS0tJyB9fVxuICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS10LThcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAnVGhlcmVcXCdzIGEgbmV3ZXIgdmVyc2lvbiBhdmFpbGFibGUsIGNsaWNrIHRvIHVwZGF0ZScgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD1cInt7XG4gICAgICAgICAgICAgICAgICAgICAgJ1RoZXJlXFwncyBhIG5ld2VyIHZlcnNpb24gYXZhaWxhYmxlLCBjbGljayB0byB1cGRhdGUnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNVcGRhdGVBdmFpbGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlVG9MYXRlc3RWZXJzaW9uKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVsYXldPVwiMzAwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2luc3RhbGxpbmctdXBkYXRlcydcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdVcGRhdGUgYXZhaWxhYmxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ09wZW4nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQXBwKGFwcGxpY2F0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlT3BlbkluQnJvd3NlclwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FuT3BlbkluQnJvd3NlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidleHRlcm5hbC1saW5rJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgJ09wZW4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjYW5PcGVuSW5Ccm93c2VyICYmIGRpc2FibGVPcGVuSW5Ccm93c2VyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICBUaGUgYXBwbGljYXRpb24gaXMgb3ZlcndyaXR0ZW4gYnkgYSBjdXN0b20gYXBwbGljYXRpb24gc2hhcmluZyB0aGUgc2FtZSBwYXRoXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNDdXN0b21NaWNyb3NlcnZpY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnU3Vic2NyaWJlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1YnNjcmliZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc1N1YnNjcmliZWRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2NoZWNrLWNpcmNsZS1vJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICB7eyAnU3Vic2NyaWJlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnVW5zdWJzY3JpYmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidW5zdWJzY3JpYmUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1N1YnNjcmliZWRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ21pbnVzLWNpcmNsZSdcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAge3sgJ1Vuc3Vic2NyaWJlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5uZXItc2Nyb2xsIGJnLWxldmVsLTAgZmxleC1ncm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBsYXJnZS1wYWRkaW5nXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBwLTE2XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzUGFja2FnZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Yzh5LXByb3BlcnRpZXMtbGlzdFxuICAgICAgICAgICAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidQYWNrYWdlIGRldGFpbHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImFwcGxpY2F0aW9uLm1hbmlmZXN0XCJcbiAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0aWVzXT1cInBhY2thZ2VQcm9wZXJ0aWVzXCJcbiAgICAgICAgICAgICAgICAgIFtlbXB0eUxhYmVsXT1cIictLS0nXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktcHJvcGVydGllcy1saXN0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IHAtMTZcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic291cmNlUGFja2FnZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Yzh5LXByb3BlcnRpZXMtbGlzdFxuICAgICAgICAgICAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidTb3VyY2UgcGFja2FnZSBpbmZvcm1hdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgW2RhdGFdPVwic291cmNlUGFja2FnZS5tYW5pZmVzdFwiXG4gICAgICAgICAgICAgICAgICBbcHJvcGVydGllc109XCJwYWNrYWdlUHJvcGVydGllc1wiXG4gICAgICAgICAgICAgICAgICBbZW1wdHlMYWJlbF09XCInLS0tJ1wiXG4gICAgICAgICAgICAgICAgPjwvYzh5LXByb3BlcnRpZXMtbGlzdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTVcIj5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFwcElkXCI+SUQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhcHBJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTdcIj5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdOYW1lJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIE15IGFwcGxpY2F0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhaXNPd25lclwiXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS01XCI+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQXBwbGljYXRpb24ga2V5JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIG15LWFwcGxpY2F0aW9uLWtleScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJrZXlcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJhcHBsaWNhdGlvbi5pZCB8fCAhaXNPd25lclwiXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTdcIj5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdUeXBlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFwcGxpY2F0aW9uLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvcm0tY29udHJvbC1zdGF0aWNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiaWNvbk1hcFthcHBsaWNhdGlvbi50eXBlXVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYXBwbGljYXRpb24udHlwZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiYXBwbGljYXRpb24udHlwZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidIT1NURUQnXCI+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnUGF0aCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uXCI+L2FwcHMvPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLiBteS1hcHBsaWNhdGlvbmB1c2VkIGluIFVSTGAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjb250ZXh0UGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cImFwcGxpY2F0aW9uLmlkIHx8ICFpc093bmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbnRleHRQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInTUlDUk9TRVJWSUNFJ1wiPlxuICAgICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ1BhdGgnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvblwiPi9zZXJ2aWNlLzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4gbXktbWljcm9zZXJ2aWNlYHVzZWQgaW4gVVJMYCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNvbnRleHRQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwiYXBwbGljYXRpb24uaWQgfHwgIWlzT3duZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udGV4dFBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLXNtLTQgbS1iLTE2IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcHBsaWNhdGlvbi5tYW5pZmVzdC52ZXJzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnVmVyc2lvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgYXBwbGljYXRpb24ubWFuaWZlc3QudmVyc2lvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zbS00IG0tYi0xNiBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwbGljYXRpb24ubWFuaWZlc3QuaXNvbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnSXNvbGF0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNpbmdsZVRlbmFudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYzh5LWljb24tZHVvY29sb3IgaDRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjOHlJY29uXT1cIidjOHktZW50ZXJwcmlzZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnU2luZ2xlIHRlbmFudCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXNpbmdsZVRlbmFudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYzh5LWljb24tZHVvY29sb3IgaWNvbi0zMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2M4eUljb25dPVwiJ2M4eS1zdWItdGVuYW50cydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnTXVsdGkgdGVuYW50JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zbS00IG0tYi0xNiBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwbGljYXRpb24ubWFuaWZlc3QuaXNvbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQmlsbGluZyBtb2RlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCInUmVzb3VyY2VzIHVzYWdlIGFzc2lnbmVkIHRvOiBPd25lcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN1YnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdTdWJzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCInUmVzb3VyY2VzIHVzYWdlIGFzc2lnbmVkIHRvOiBTdWJzY3JpYmVyIHwgdHJhbnNsYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXN1YnNjcmlwdGlvbiAmJiBzaW5nbGVUZW5hbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnUmVzb3VyY2VzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ1Jlc291cmNlcyB1c2FnZSBhc3NpZ25lZCB0bzogT3duZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc3Vic2NyaXB0aW9uICYmICFzaW5nbGVUZW5hbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnUmVzb3VyY2VzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxlZ2VuZCBmb3JtLWJsb2NrIG0tdC00MFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwbGljYXRpb24ubWFuaWZlc3QucHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnUHJvdmlkZXInIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWlubGluZVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwbGljYXRpb24ubWFuaWZlc3QucHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXBwbGljYXRpb24ubWFuaWZlc3QucHJvdmlkZXIubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNCBtLWItMTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnTmFtZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwcGxpY2F0aW9uLm1hbmlmZXN0LnByb3ZpZGVyLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhcHBsaWNhdGlvbi5tYW5pZmVzdC5wcm92aWRlci5kb21haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTQgbS1iLTE2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0RvbWFpbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwcGxpY2F0aW9uLm1hbmlmZXN0LnByb3ZpZGVyLmRvbWFpbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFwcGxpY2F0aW9uLm1hbmlmZXN0LnByb3ZpZGVyLnN1cHBvcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTQgbS1iLTE2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ1N1cHBvcnQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcHBsaWNhdGlvbi5tYW5pZmVzdC5wcm92aWRlci5zdXBwb3J0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInRVhURVJOQUwnXCI+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnRXh0ZXJuYWwgVVJMJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuJyB8IHRyYW5zbGF0ZSB9fSBodHRwOi8vd3d3LmV4YW1wbGUuY29tL1wiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4dGVybmFsVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtwYXR0ZXJuXT1cIideKD8hamF2YXNjcmlwdDopLisnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwiIWlzT3duZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImV4dGVybmFsVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidwYXR0ZXJuJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCInVmFsaWQgVVJMIHJlcXVpcmVkLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2M4eS1tZXNzYWdlPlxuICAgICAgICAgICAgICAgICAgICA8L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNPd25lciAmJiAhaXNDdXN0b21NaWNyb3NlcnZpY2VcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnU2VsZWN0IGljb24nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxjOHktaWNvbi1zZWxlY3Rvci13cmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICA+PC9jOHktaWNvbi1zZWxlY3Rvci13cmFwcGVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0N1c3RvbU1pY3Jvc2VydmljZVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Yzh5LXVwbG9hZC1hcmNoaXZlXG4gICAgICAgICAgICAgICAgWyhhcHBsaWNhdGlvbildPVwiYXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgIChyZWZyZXNoKT1cIm9uTmV3QXJjaGl2ZSgpXCJcbiAgICAgICAgICAgICAgPjwvYzh5LXVwbG9hZC1hcmNoaXZlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWZvb3RlciBzZXBhcmF0b3JcIlxuICAgICAgICAgICAgKm5nSWY9XCJhcHBsaWNhdGlvbiAmJiAhIWlzT3duZXIgJiYgaGFzQWRtaW5QZXJtaXNzaW9uc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGFuZ2VyXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKClcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNhbkRlbGV0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdEZWxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWZvcm1cIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWFwcGxpY2F0aW9uLnR5cGUgfHwgZm9ybUdyb3VwLmludmFsaWQgfHwgZm9ybUdyb3VwLnByaXN0aW5lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ1NhdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb250ZW50LWZ1bGxwYWdlIGQtZmxleCBkLWNvbCBiZy1sZXZlbC0xXCJcbiAgICAgICAgKm5nSWY9XCJpc0FjdGl2aXR5TG9nU3VwcG9ydGVkXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2FyZC10aXRsZVwiXG4gICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICBBY3Rpdml0eSBsb2dcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgYnRuLXNtXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwibG9hZCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwicmVmcmVzaFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogaXNMb2FkaW5nIH1cIlxuICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICB7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJwLTE2IHRleHQtY2VudGVyXCJcbiAgICAgICAgICAqbmdJZj1cImlzTG9hZGluZ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxjOHktYWN0aXZpdHktbG9nXG4gICAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmdcIlxuICAgICAgICAgIFtoYXNBZG1pblBlcm1pc3Npb25zXT1cImhhc0FkbWluUGVybWlzc2lvbnNcIlxuICAgICAgICAgIFthcHBsaWNhdGlvbl09XCJhcHBsaWNhdGlvblwiXG4gICAgICAgID48L2M4eS1hY3Rpdml0eS1sb2c+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -97,9 +97,9 @@ export class SubscriptionModalComponent {
97
97
  }
98
98
  }
99
99
  SubscriptionModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SubscriptionModalComponent, deps: [{ token: i1.BsModalRef }, { token: i2.EcosystemService }, { token: i3.TabsService }, { token: i3.ModalService }, { token: i4.ApplicationService }, { token: i3.AlertService }, { token: i3.ContextRouteService }], target: i0.ɵɵFactoryTarget.Component });
100
- SubscriptionModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SubscriptionModalComponent, selector: "c8y-subscription-modal", ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"c8y-atom\"></i>\n <h4 id=\"modal-title\">{{ message }}</h4>\n </div>\n <div class=\"modal-body\" id=\"modal-body\" *ngIf=\"isLoading\">\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LoadingComponent, selector: "c8y-loading" }] });
100
+ SubscriptionModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SubscriptionModalComponent, selector: "c8y-subscription-modal", ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"c8y-atom\"></i>\n <h4 id=\"modal-title\">{{ message | translate }}</h4>\n </div>\n <div class=\"modal-body\" id=\"modal-body\" *ngIf=\"isLoading\">\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LoadingComponent, selector: "c8y-loading" }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] });
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SubscriptionModalComponent, decorators: [{
102
102
  type: Component,
103
- args: [{ selector: 'c8y-subscription-modal', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"c8y-atom\"></i>\n <h4 id=\"modal-title\">{{ message }}</h4>\n </div>\n <div class=\"modal-body\" id=\"modal-body\" *ngIf=\"isLoading\">\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </div>\n</div>\n" }]
103
+ args: [{ selector: 'c8y-subscription-modal', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"c8y-atom\"></i>\n <h4 id=\"modal-title\">{{ message | translate }}</h4>\n </div>\n <div class=\"modal-body\" id=\"modal-body\" *ngIf=\"isLoading\">\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </div>\n</div>\n" }]
104
104
  }], ctorParameters: function () { return [{ type: i1.BsModalRef }, { type: i2.EcosystemService }, { type: i3.TabsService }, { type: i3.ModalService }, { type: i4.ApplicationService }, { type: i3.AlertService }, { type: i3.ContextRouteService }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzL3N1YnNjcmlwdGlvbi1tb2RhbC9zdWJzY3JpcHRpb24tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMvc3Vic2NyaXB0aW9uLW1vZGFsL3N1YnNjcmlwdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBMkMsTUFBTSxhQUFhLENBQUM7QUFDMUYsT0FBTyxFQUNMLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsT0FBTyxFQUNQLFlBQVksRUFDWixNQUFNLEVBQ04sV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7QUFNeEUsTUFBTSxPQUFPLDBCQUEwQjtJQWNyQyxZQUNVLFVBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyxXQUF3QixFQUN4QixLQUFtQixFQUNuQixrQkFBc0MsRUFDdEMsWUFBMEIsRUFDMUIsbUJBQXdDO1FBTnhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXBCekMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQWtCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBRUgsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFFQSxTQUFJLEdBQWEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFXbEQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBbUM7UUFDaEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sZ0JBQWdCLEdBQ3BCLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0UsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNyQztRQUNELElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sS0FBSyxDQUFDLFdBQVc7UUFDdkIsSUFBSTtZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRTtnQkFDckMsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELE1BQU0sR0FBRyxHQUE4QixDQUNyQyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ2pFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1YsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0M7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQseURBQXlEO0lBQ2pELHdCQUF3QixDQUFDLEVBQTZCO1FBQzVELE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ3RFLENBQUM7SUFFTyxhQUFhO1FBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBYztRQUNyQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsTUFBTSxJQUFJLEdBQ1IsTUFBTSxLQUFLLFdBQVc7WUFDcEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQywrRUFBK0UsQ0FBQztZQUMxRixDQUFDLENBQUMsT0FBTyxDQUNMLDZGQUE2RixDQUM5RixDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O3VIQXZHVSwwQkFBMEI7MkdBQTFCLDBCQUEwQiw4RENsQnZDLHNWQVdBOzJGRE9hLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvbk1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gIGdldHRleHQsXG4gIE1vZGFsU2VydmljZSxcbiAgU3RhdHVzLFxuICBUYWJzU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgRWNvc3lzdGVtU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zdWJzY3JpcHRpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Vic2NyaXB0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJlYWRvbmx5IFJFVFJZX1RJTUVPVVQgPSAzMDAwO1xuICBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICByZXN1bHQ6IFByb21pc2U8dm9pZD4gPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICB0aGlzLl9yZXNvbHZlID0gcmVzb2x2ZTtcbiAgfSk7XG4gIGlzU3Vic2NyaWJlZDogYm9vbGVhbjtcbiAgcmV0cnlDb3VudGVyID0gMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IFRBQlM6IHN0cmluZ1tdID0gWydMb2dzJywgJ1N0YXR1cyddO1xuICBwcml2YXRlIF9yZXNvbHZlOiAodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFic1NlcnZpY2U6IFRhYnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0Um91dGVTZXJ2aWNlOiBDb250ZXh0Um91dGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc1N1YnNjcmliZWQpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzdWJzY3JpYmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZXRyeUNvdW50ZXIgPSAwO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBnZXR0ZXh0KCdTdWJzY3JpYmluZ+KApicpO1xuICAgIGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5zdWJzY3JpYmVBcHAodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5nZXRTdGF0dXNEZXRhaWxzKCdzdWJzY3JpYmUnKTtcbiAgfVxuXG4gIGFzeW5jIHVuc3Vic2NyaWJlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmV0cnlDb3VudGVyID0gMDtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5tZXNzYWdlID0gZ2V0dGV4dCgnVW5zdWJzY3JpYmluZ+KApicpO1xuICAgIGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS51bnN1YnNjcmliZUFwcCh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLmdldFN0YXR1c0RldGFpbHMoJ3Vuc3Vic2NyaWJlJyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFN0YXR1c0RldGFpbHMoYWN0aW9uOiAnc3Vic2NyaWJlJyB8ICd1bnN1YnNjcmliZScpIHtcbiAgICB0aGlzLmNvbnRleHRSb3V0ZVNlcnZpY2UucmVmcmVzaENvbnRleHQoKTtcbiAgICBjb25zdCBhY3Rpb25TdWNjZXNzZnVsID1cbiAgICAgIGFjdGlvbiA9PT0gJ3N1YnNjcmliZScgPyBhd2FpdCB0aGlzLm9uU3Vic2NyaWJlKCkgOiB0aGlzLm9uVW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoYWN0aW9uU3VjY2Vzc2Z1bCkge1xuICAgICAgcmV0dXJuIHRoaXMuaGlkZVN1YnNjcmlwdGlvbk1vZGFsKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJldHJ5Q291bnRlciA9PT0gNCkge1xuICAgICAgdGhpcy5zaG93V2FybmluZ01vZGFsKGFjdGlvbik7XG4gICAgICByZXR1cm4gdGhpcy5oaWRlU3Vic2NyaXB0aW9uTW9kYWwoKTtcbiAgICB9XG4gICAgdGhpcy5yZXRyeUNvdW50ZXIgKz0gMTtcbiAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMuZ2V0U3RhdHVzRGV0YWlscyhhY3Rpb24pO1xuICAgIH0sIHRoaXMuUkVUUllfVElNRU9VVCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uU3Vic2NyaWJlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXRoaXMuYXBwbGljYXRpb24uYWN0aXZlVmVyc2lvbklkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzOiBJQXBwbGljYXRpb25NYW5hZ2VkT2JqZWN0ID0gKFxuICAgICAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5nZXRTdGF0dXNEZXRhaWxzKHRoaXMuYXBwbGljYXRpb24pXG4gICAgICApLmRhdGFbMF07XG4gICAgICByZXR1cm4gdGhpcy5zaG91bGRTaG93TVNTcGVjaWZpY1RhYnMocmVzKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2tzIGlmIHRoZSBVSSBzaG91bGQgc2hvdyB0YWJzIHdpdGggbG9ncyBhbmQgc3RhdHVzXG4gIHByaXZhdGUgc2hvdWxkU2hvd01TU3BlY2lmaWNUYWJzKG1vOiBJQXBwbGljYXRpb25NYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc0VtcHR5KG1vLmM4eV9TdGF0dXM/Lmluc3RhbmNlcykgJiYgISFtby5jOHlfU3VwcG9ydGVkTG9ncztcbiAgfVxuXG4gIHByaXZhdGUgb25VbnN1YnNjcmliZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMudGFic1NlcnZpY2UuYXJlQXZhaWxhYmxlKHRoaXMuVEFCUyk7XG4gIH1cblxuICBwcml2YXRlIGhpZGVTdWJzY3JpcHRpb25Nb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNvbHZlKCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93V2FybmluZ01vZGFsKGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdGl0bGUgPSBnZXR0ZXh0KCdXYXJuaW5nJyk7XG4gICAgY29uc3QgYm9keSA9XG4gICAgICBhY3Rpb24gPT09ICdzdWJzY3JpYmUnXG4gICAgICAgID8gZ2V0dGV4dCgnU29tZXRoaW5nIHdlbnQgd3JvbmcsIHBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIG9yIHJlc3Vic2NyaWJlIHRoZSBhcHBsaWNhdGlvbi4nKVxuICAgICAgICA6IGdldHRleHQoXG4gICAgICAgICAgICAnU29tZXRoaW5nIHdlbnQgd3JvbmcsIHBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIG9yIHJldHJ5IHRvIHVuc3Vic2NyaWJlIGZyb20gdGhlIGFwcGxpY2F0aW9uLidcbiAgICAgICAgICApO1xuICAgIHRoaXMubW9kYWwuYWNrbm93bGVkZ2UodGl0bGUsIGJvZHksIFN0YXR1cy5XQVJOSU5HLCBnZXR0ZXh0KCdDbG9zZScpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInZpZXdwb3J0LW1vZGFsXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgZGlhbG9nLWhlYWRlclwiPlxuICAgIDxpIGM4eUljb249XCJjOHktYXRvbVwiPjwvaT5cbiAgICA8aDQgaWQ9XCJtb2RhbC10aXRsZVwiPnt7IG1lc3NhZ2UgfX08L2g0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIiBpZD1cIm1vZGFsLWJvZHlcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwLTE2IHRleHQtY2VudGVyXCI+XG4gICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzL3N1YnNjcmlwdGlvbi1tb2RhbC9zdWJzY3JpcHRpb24tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMvc3Vic2NyaXB0aW9uLW1vZGFsL3N1YnNjcmlwdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBMkMsTUFBTSxhQUFhLENBQUM7QUFDMUYsT0FBTyxFQUNMLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsT0FBTyxFQUNQLFlBQVksRUFDWixNQUFNLEVBQ04sV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7QUFNeEUsTUFBTSxPQUFPLDBCQUEwQjtJQWNyQyxZQUNVLFVBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyxXQUF3QixFQUN4QixLQUFtQixFQUNuQixrQkFBc0MsRUFDdEMsWUFBMEIsRUFDMUIsbUJBQXdDO1FBTnhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZ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QyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQseURBQXlEO0lBQ2pELHdCQUF3QixDQUFDLEVBQTZCO1FBQzVELE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ3RFLENBQUM7SUFFTyxhQUFhO1FBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBYztRQUNyQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsTUFBTSxJQUFJLEdBQ1IsTUFBTSxLQUFLLFdBQVc7WUFDcEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQywrRUFBK0UsQ0FBQztZQUMxRixDQUFDLENBQUMsT0FBTyxDQUNMLDZGQUE2RixDQUM5RixDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O3VIQXZHVSwwQkFBMEI7MkdBQTFCLDBCQUEwQiw4RENsQnZDLGtXQVdBOzJGRE9hLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvbk1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gIGdldHRleHQsXG4gIE1vZGFsU2VydmljZSxcbiAgU3RhdHVzLFxuICBUYWJzU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgRWNvc3lzdGVtU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zdWJzY3JpcHRpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Vic2NyaXB0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJlYWRvbmx5IFJFVFJZX1RJTUVPVVQgPSAzMDAwO1xuICBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICByZXN1bHQ6IFByb21pc2U8dm9pZD4gPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICB0aGlzLl9yZXNvbHZlID0gcmVzb2x2ZTtcbiAgfSk7XG4gIGlzU3Vic2NyaWJlZDogYm9vbGVhbjtcbiAgcmV0cnlDb3VudGVyID0gMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IFRBQlM6IHN0cmluZ1tdID0gWydMb2dzJywgJ1N0YXR1cyddO1xuICBwcml2YXRlIF9yZXNvbHZlOiAodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFic1NlcnZpY2U6IFRhYnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0Um91dGVTZXJ2aWNlOiBDb250ZXh0Um91dGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc1N1YnNjcmliZWQpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzdWJzY3JpYmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZXRyeUNvdW50ZXIgPSAwO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBnZXR0ZXh0KCdTdWJzY3JpYmluZ+KApicpO1xuICAgIGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5zdWJzY3JpYmVBcHAodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgdGhpcy5nZXRTdGF0dXNEZXRhaWxzKCdzdWJzY3JpYmUnKTtcbiAgfVxuXG4gIGFzeW5jIHVuc3Vic2NyaWJlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmV0cnlDb3VudGVyID0gMDtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5tZXNzYWdlID0gZ2V0dGV4dCgnVW5zdWJzY3JpYmluZ+KApicpO1xuICAgIGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS51bnN1YnNjcmliZUFwcCh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLmdldFN0YXR1c0RldGFpbHMoJ3Vuc3Vic2NyaWJlJyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFN0YXR1c0RldGFpbHMoYWN0aW9uOiAnc3Vic2NyaWJlJyB8ICd1bnN1YnNjcmliZScpIHtcbiAgICB0aGlzLmNvbnRleHRSb3V0ZVNlcnZpY2UucmVmcmVzaENvbnRleHQoKTtcbiAgICBjb25zdCBhY3Rpb25TdWNjZXNzZnVsID1cbiAgICAgIGFjdGlvbiA9PT0gJ3N1YnNjcmliZScgPyBhd2FpdCB0aGlzLm9uU3Vic2NyaWJlKCkgOiB0aGlzLm9uVW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoYWN0aW9uU3VjY2Vzc2Z1bCkge1xuICAgICAgcmV0dXJuIHRoaXMuaGlkZVN1YnNjcmlwdGlvbk1vZGFsKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJldHJ5Q291bnRlciA9PT0gNCkge1xuICAgICAgdGhpcy5zaG93V2FybmluZ01vZGFsKGFjdGlvbik7XG4gICAgICByZXR1cm4gdGhpcy5oaWRlU3Vic2NyaXB0aW9uTW9kYWwoKTtcbiAgICB9XG4gICAgdGhpcy5yZXRyeUNvdW50ZXIgKz0gMTtcbiAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMuZ2V0U3RhdHVzRGV0YWlscyhhY3Rpb24pO1xuICAgIH0sIHRoaXMuUkVUUllfVElNRU9VVCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uU3Vic2NyaWJlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXRoaXMuYXBwbGljYXRpb24uYWN0aXZlVmVyc2lvbklkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzOiBJQXBwbGljYXRpb25NYW5hZ2VkT2JqZWN0ID0gKFxuICAgICAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5nZXRTdGF0dXNEZXRhaWxzKHRoaXMuYXBwbGljYXRpb24pXG4gICAgICApLmRhdGFbMF07XG4gICAgICByZXR1cm4gdGhpcy5zaG91bGRTaG93TVNTcGVjaWZpY1RhYnMocmVzKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2tzIGlmIHRoZSBVSSBzaG91bGQgc2hvdyB0YWJzIHdpdGggbG9ncyBhbmQgc3RhdHVzXG4gIHByaXZhdGUgc2hvdWxkU2hvd01TU3BlY2lmaWNUYWJzKG1vOiBJQXBwbGljYXRpb25NYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc0VtcHR5KG1vLmM4eV9TdGF0dXM/Lmluc3RhbmNlcykgJiYgISFtby5jOHlfU3VwcG9ydGVkTG9ncztcbiAgfVxuXG4gIHByaXZhdGUgb25VbnN1YnNjcmliZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMudGFic1NlcnZpY2UuYXJlQXZhaWxhYmxlKHRoaXMuVEFCUyk7XG4gIH1cblxuICBwcml2YXRlIGhpZGVTdWJzY3JpcHRpb25Nb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNvbHZlKCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93V2FybmluZ01vZGFsKGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdGl0bGUgPSBnZXR0ZXh0KCdXYXJuaW5nJyk7XG4gICAgY29uc3QgYm9keSA9XG4gICAgICBhY3Rpb24gPT09ICdzdWJzY3JpYmUnXG4gICAgICAgID8gZ2V0dGV4dCgnU29tZXRoaW5nIHdlbnQgd3JvbmcsIHBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIG9yIHJlc3Vic2NyaWJlIHRoZSBhcHBsaWNhdGlvbi4nKVxuICAgICAgICA6IGdldHRleHQoXG4gICAgICAgICAgICAnU29tZXRoaW5nIHdlbnQgd3JvbmcsIHBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIG9yIHJldHJ5IHRvIHVuc3Vic2NyaWJlIGZyb20gdGhlIGFwcGxpY2F0aW9uLidcbiAgICAgICAgICApO1xuICAgIHRoaXMubW9kYWwuYWNrbm93bGVkZ2UodGl0bGUsIGJvZHksIFN0YXR1cy5XQVJOSU5HLCBnZXR0ZXh0KCdDbG9zZScpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInZpZXdwb3J0LW1vZGFsXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgZGlhbG9nLWhlYWRlclwiPlxuICAgIDxpIGM4eUljb249XCJjOHktYXRvbVwiPjwvaT5cbiAgICA8aDQgaWQ9XCJtb2RhbC10aXRsZVwiPnt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L2g0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIiBpZD1cIm1vZGFsLWJvZHlcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwLTE2IHRleHQtY2VudGVyXCI+XG4gICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -7,8 +7,8 @@ export class EcosystemNavigationFactory {
7
7
  this.permissions = permissions;
8
8
  this.navs = [];
9
9
  this.showNavigatorNodes = this.permissions.hasAnyRole([
10
- 'ROLE_APPLICATION_MANAGEMENT_READ',
11
- 'ROLE_APPLICATION_MANAGEMENT_ADMIN'
10
+ Permissions.ROLE_APPLICATION_MANAGEMENT_READ,
11
+ Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN
12
12
  ]);
13
13
  }
14
14
  async get() {
@@ -50,4 +50,4 @@ EcosystemNavigationFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EcosystemNavigationFactory, decorators: [{
51
51
  type: Injectable
52
52
  }], ctorParameters: function () { return [{ type: i1.Permissions }]; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLW5hdmlnYXRpb24uZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vjb3N5c3RlbS9lY29zeXN0ZW0tbmF2aWdhdGlvbi5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF1QyxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBR3ZGLE1BQU0sT0FBTywwQkFBMEI7SUFJckMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFIcEMsU0FBSSxHQUFvQixFQUFFLENBQUM7UUFJakMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3BELGtDQUFrQztZQUNsQyxtQ0FBbUM7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHO1FBQ1A7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BNkJGO1FBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7O3VIQTNDVSwwQkFBMEI7MkhBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdG9yTm9kZSwgTmF2aWdhdG9yTm9kZUZhY3RvcnksIFBlcm1pc3Npb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFY29zeXN0ZW1OYXZpZ2F0aW9uRmFjdG9yeSBpbXBsZW1lbnRzIE5hdmlnYXRvck5vZGVGYWN0b3J5IHtcbiAgcHJpdmF0ZSBuYXZzOiBOYXZpZ2F0b3JOb2RlW10gPSBbXTtcbiAgcHJpdmF0ZSBzaG93TmF2aWdhdG9yTm9kZXM6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnMpIHtcbiAgICB0aGlzLnNob3dOYXZpZ2F0b3JOb2RlcyA9IHRoaXMucGVybWlzc2lvbnMuaGFzQW55Um9sZShbXG4gICAgICAnUk9MRV9BUFBMSUNBVElPTl9NQU5BR0VNRU5UX1JFQUQnLFxuICAgICAgJ1JPTEVfQVBQTElDQVRJT05fTUFOQUdFTUVOVF9BRE1JTidcbiAgICBdKTtcbiAgfVxuXG4gIGFzeW5jIGdldCgpIHtcbiAgICAvKlxuVGhlIE5hdmlnYXRvck5vZGVzIGFyZSBhZGRlZCBpbiBBbmd1bGFySlMgY29kZSB0byBrZWVwIHRoZSBRdWljayBsaW5rcyB3aWRnZXQgd29ya2luZy5cbkFmdGVyIHRoZSBRdWljayBsaW5rcyB3aWRnZXQgaXMgbWlncmF0ZWQgdG8gQW5ndWxhciwgdGhlIGxvZ2ljIG9mIGFkZGluZyB0aGUgTmF2aWdhdG9yTm9kZXMgY2FuIGJlIG1pZ3JhdGVkIGFzIHdlbGwuXG4gICAgaWYgKHRoaXMubmF2cy5sZW5ndGggPT09IDAgJiYgdGhpcy5zaG93TmF2aWdhdG9yTm9kZXMpIHtcbiAgICAgIGNvbnN0IGFwcGxpY2F0aW9uc05vZGU6IE5hdmlnYXRvck5vZGUgPSBuZXcgTmF2aWdhdG9yTm9kZSh7XG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdBcHBsaWNhdGlvbnMnKSxcbiAgICAgICAgaWNvbjogJ2M4eS1tb2R1bGVzJyxcbiAgICAgICAgcGF0aDogJy9lY29zeXN0ZW0nLFxuICAgICAgICBwcmlvcml0eTogMzAwLFxuICAgICAgICByb3V0ZXJMaW5rRXhhY3Q6IGZhbHNlXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbWljcm9zZXJ2aWNlc05vZGUgPSBuZXcgTmF2aWdhdG9yTm9kZSh7XG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdNaWNyb3NlcnZpY2VzJyksXG4gICAgICAgIGljb246ICdtaWNyb2NoaXAnLFxuICAgICAgICBwYXRoOiAnL21pY3Jvc2VydmljZXMnLFxuICAgICAgICBwcmlvcml0eTogMjAwLFxuICAgICAgICByb3V0ZXJMaW5rRXhhY3Q6IGZhbHNlXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5uYXZzLnB1c2goXG4gICAgICAgIG5ldyBOYXZpZ2F0b3JOb2RlKHtcbiAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRWNvc3lzdGVtJyksXG4gICAgICAgICAgaWNvbjogJ2M4eS1hdG9tJyxcbiAgICAgICAgICBwcmlvcml0eTogMzIwMCxcbiAgICAgICAgICBjaGlsZHJlbjogW2FwcGxpY2F0aW9uc05vZGUsIG1pY3Jvc2VydmljZXNOb2RlXVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4qL1xuICAgIHJldHVybiB0aGlzLm5hdnM7XG4gIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLW5hdmlnYXRpb24uZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vjb3N5c3RlbS9lY29zeXN0ZW0tbmF2aWdhdGlvbi5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF1QyxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBR3ZGLE1BQU0sT0FBTywwQkFBMEI7SUFJckMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFIcEMsU0FBSSxHQUFvQixFQUFFLENBQUM7UUFJakMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3BELFdBQVcsQ0FBQyxnQ0FBZ0M7WUFDNUMsV0FBVyxDQUFDLGlDQUFpQztTQUM5QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUE2QkY7UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQzs7dUhBM0NVLDBCQUEwQjsySEFBMUIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JOb2RlLCBOYXZpZ2F0b3JOb2RlRmFjdG9yeSwgUGVybWlzc2lvbnMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVjb3N5c3RlbU5hdmlnYXRpb25GYWN0b3J5IGltcGxlbWVudHMgTmF2aWdhdG9yTm9kZUZhY3Rvcnkge1xuICBwcml2YXRlIG5hdnM6IE5hdmlnYXRvck5vZGVbXSA9IFtdO1xuICBwcml2YXRlIHNob3dOYXZpZ2F0b3JOb2RlczogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9ucykge1xuICAgIHRoaXMuc2hvd05hdmlnYXRvck5vZGVzID0gdGhpcy5wZXJtaXNzaW9ucy5oYXNBbnlSb2xlKFtcbiAgICAgIFBlcm1pc3Npb25zLlJPTEVfQVBQTElDQVRJT05fTUFOQUdFTUVOVF9SRUFELFxuICAgICAgUGVybWlzc2lvbnMuUk9MRV9BUFBMSUNBVElPTl9NQU5BR0VNRU5UX0FETUlOXG4gICAgXSk7XG4gIH1cblxuICBhc3luYyBnZXQoKSB7XG4gICAgLypcblRoZSBOYXZpZ2F0b3JOb2RlcyBhcmUgYWRkZWQgaW4gQW5ndWxhckpTIGNvZGUgdG8ga2VlcCB0aGUgUXVpY2sgbGlua3Mgd2lkZ2V0IHdvcmtpbmcuXG5BZnRlciB0aGUgUXVpY2sgbGlua3Mgd2lkZ2V0IGlzIG1pZ3JhdGVkIHRvIEFuZ3VsYXIsIHRoZSBsb2dpYyBvZiBhZGRpbmcgdGhlIE5hdmlnYXRvck5vZGVzIGNhbiBiZSBtaWdyYXRlZCBhcyB3ZWxsLlxuICAgIGlmICh0aGlzLm5hdnMubGVuZ3RoID09PSAwICYmIHRoaXMuc2hvd05hdmlnYXRvck5vZGVzKSB7XG4gICAgICBjb25zdCBhcHBsaWNhdGlvbnNOb2RlOiBOYXZpZ2F0b3JOb2RlID0gbmV3IE5hdmlnYXRvck5vZGUoe1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQXBwbGljYXRpb25zJyksXG4gICAgICAgIGljb246ICdjOHktbW9kdWxlcycsXG4gICAgICAgIHBhdGg6ICcvZWNvc3lzdGVtJyxcbiAgICAgICAgcHJpb3JpdHk6IDMwMCxcbiAgICAgICAgcm91dGVyTGlua0V4YWN0OiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG1pY3Jvc2VydmljZXNOb2RlID0gbmV3IE5hdmlnYXRvck5vZGUoe1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnTWljcm9zZXJ2aWNlcycpLFxuICAgICAgICBpY29uOiAnbWljcm9jaGlwJyxcbiAgICAgICAgcGF0aDogJy9taWNyb3NlcnZpY2VzJyxcbiAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgcm91dGVyTGlua0V4YWN0OiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubmF2cy5wdXNoKFxuICAgICAgICBuZXcgTmF2aWdhdG9yTm9kZSh7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Vjb3N5c3RlbScpLFxuICAgICAgICAgIGljb246ICdjOHktYXRvbScsXG4gICAgICAgICAgcHJpb3JpdHk6IDMyMDAsXG4gICAgICAgICAgY2hpbGRyZW46IFthcHBsaWNhdGlvbnNOb2RlLCBtaWNyb3NlcnZpY2VzTm9kZV1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuKi9cbiAgICByZXR1cm4gdGhpcy5uYXZzO1xuICB9XG59XG4iXX0=
@@ -30,7 +30,7 @@ export class PackagesListComponent {
30
30
  }), tap(() => (this.reloading = false)), shareReplay(1));
31
31
  }
32
32
  ngOnInit() {
33
- this.hasAdminPermissions = this.permissions.hasRole('ROLE_APPLICATION_MANAGEMENT_ADMIN');
33
+ this.hasAdminPermissions = this.permissions.hasRole(Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN);
34
34
  this.loadPackages();
35
35
  }
36
36
  loadPackages() {
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
66
66
  type: ViewChild,
67
67
  args: [ListFiltersComponent]
68
68
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vcGFja2FnZXMvcGFja2FnZS1saXN0L3BhY2thZ2VzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3BhY2thZ2VzL3BhY2thZ2UtbGlzdC9wYWNrYWdlcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBR25CLG9CQUFvQixFQUNyQixNQUFNLHNDQUFzQyxDQUFDOzs7OztBQU05QyxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUNVLGdCQUFrQyxFQUNsQyxrQkFBc0MsRUFDdEMsV0FBd0I7UUFGeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBcEJsQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBMEIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFLM0Qsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLHVCQUFrQixHQUFHLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQzFFLGlCQUFZLEdBQUcsbUJBQW1CLENBQUM7UUFDbkMsMEJBQXFCLEdBQTZDO1lBQ2hFLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSztZQUMxQixTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUs7U0FDdkIsQ0FBQztRQUNGLG9CQUFlLEdBQUcsc0JBQXNCLENBQUM7UUFFakMsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBTzFELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFDbEMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEVBQy9ELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNiLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25FLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUNuQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sWUFBWSxHQUE0QjtZQUM1QyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsY0FBYztTQUNwQyxDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQWlCLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFFcEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RCxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWdCO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxDQUFDO0lBQzNDLENBQUM7O2tIQXJFVSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwyR0FlckIsb0JBQW9CLGdEQ3BDakMsaXhIQXNJQTsyRkRqSGEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLG1CQUFtQjtrS0FrQkksZ0JBQWdCO3NCQUFoRCxTQUFTO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldHRleHQsIFBlcm1pc3Npb25zLCBXaXphcmRNb2RhbFNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE1vZGFsT3B0aW9ucyB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEFQUF9TVEFURSxcbiAgRWNvc3lzdGVtU2VydmljZSxcbiAgRWNvc3lzdGVtV2l6YXJkcyxcbiAgZGVmYXVsdFBhY2thZ2VDb250ZW50cyxcbiAgZGVmYXVsdFBhY2thZ2VUeXBlcyxcbiAgRmlsdGVyUGlwZSxcbiAgUGFja2FnZUZpbHRlcnMsXG4gIExpc3RGaWx0ZXJzQ29tcG9uZW50XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1wYWNrYWdlcy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhY2thZ2VzLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhY2thZ2VzTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlbG9hZGluZyA9IGZhbHNlO1xuICByZWxvYWQkOiBCZWhhdmlvclN1YmplY3Q8dm9pZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIHBhY2thZ2VzJDogT2JzZXJ2YWJsZTxJQXBwbGljYXRpb25bXT47XG4gIGZpbHRlcmVkUGFja2FnZXMkOiBPYnNlcnZhYmxlPElBcHBsaWNhdGlvbltdPjtcbiAgbGlzdENsYXNzOiBzdHJpbmc7XG4gIGhhc0FkbWluUGVybWlzc2lvbnMgPSBmYWxzZTtcbiAgZW1wdHlTdGF0ZVN1YnRpdGxlID0gZ2V0dGV4dCgnQWRkIHlvdXIgZmlyc3QgcGFja2FnZSBieSBjbGlja2luZyBiZWxvdy4nKTtcbiAgcGFja2FnZVR5cGVzID0gZGVmYXVsdFBhY2thZ2VUeXBlcztcbiAgcGFja2FnZUF2YWlsYWJpbGl0aWVzOiAoa2V5b2YgUGFja2FnZUZpbHRlcnNbJ2F2YWlsYWJpbGl0eSddKVtdID0gW1xuICAgIEFQUF9TVEFURS5TVUJTQ1JJQkVELmxhYmVsLFxuICAgIEFQUF9TVEFURS5DVVNUT00ubGFiZWxcbiAgXTtcbiAgcGFja2FnZUNvbnRlbnRzID0gZGVmYXVsdFBhY2thZ2VDb250ZW50cztcbiAgQFZpZXdDaGlsZChMaXN0RmlsdGVyc0NvbXBvbmVudCkgZmlsdGVyc0NvbXBvbmVudDogTGlzdEZpbHRlcnNDb21wb25lbnQ7XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHdpemFyZE1vZGFsU2VydmljZTogV2l6YXJkTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25zXG4gICkge1xuICAgIHRoaXMucGFja2FnZXMkID0gdGhpcy5yZWxvYWQkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMucmVsb2FkaW5nID0gdHJ1ZSkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRQYWNrYWdlQXBwbGljYXRpb25zKCkpLFxuICAgICAgdGFwKHBhY2thZ2VzID0+IHtcbiAgICAgICAgcGFja2FnZXMuZm9yRWFjaChwY2tnID0+IHtcbiAgICAgICAgICBwY2tnLmZpbHRlclByb3BzID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcEZpbHRlclByb3BzKHBja2cpO1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+ICh0aGlzLnJlbG9hZGluZyA9IGZhbHNlKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmhhc0FkbWluUGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zLmhhc1JvbGUoJ1JPTEVfQVBQTElDQVRJT05fTUFOQUdFTUVOVF9BRE1JTicpO1xuICAgIHRoaXMubG9hZFBhY2thZ2VzKCk7XG4gIH1cblxuICBsb2FkUGFja2FnZXMoKSB7XG4gICAgdGhpcy5yZWxvYWQkLm5leHQoKTtcbiAgfVxuXG4gIGFkZFBhY2thZ2UoKSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIGlkOiBFY29zeXN0ZW1XaXphcmRzLlBBQ0tBR0VfVVBMT0FEXG4gICAgfTtcbiAgICBjb25zdCBtb2RhbE9wdGlvbnM6IE1vZGFsT3B0aW9ucyA9IHsgaW5pdGlhbFN0YXRlIH07XG5cbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMud2l6YXJkTW9kYWxTZXJ2aWNlLnNob3cobW9kYWxPcHRpb25zKTtcbiAgICBtb2RhbFJlZi5jb250ZW50Lm9uQ2xvc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZFBhY2thZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2V0RmlsdGVyUGlwZShwaXBlOiBGaWx0ZXJQaXBlKSB7XG4gICAgdGhpcy5maWx0ZXJlZFBhY2thZ2VzJCA9IHRoaXMucGFja2FnZXMkLnBpcGUoc3JjID0+IHBpcGUoc3JjKSk7XG4gIH1cblxuICByZXNldEZpbHRlcnMoKSB7XG4gICAgdGhpcy5maWx0ZXJzQ29tcG9uZW50Py5yZXNldEFsbEZpbHRlcnMoKTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT57eyAnRXh0ZW5zaW9ucycgfCB0cmFuc2xhdGUgfX08L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktYXRvbSdcIlxuICAgIFtsYWJlbF09XCInRWNvc3lzdGVtJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2JpZy1wYXJjZWwnXCJcbiAgICBbcGF0aF09XCInZWNvc3lzdGVtL2V4dGVuc2lvbi9leHRlbnNpb25zJ1wiXG4gICAgW2xhYmVsXT1cIidFeHRlbnNpb25zJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAqbmdJZj1cImhhc0FkbWluUGVybWlzc2lvbnNcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ0FkZCBleHRlbnNpb24gcGFja2FnZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGRhdGEtY3k9XCJwYWNrYWdlcy1saXN0LS1hZGQtZXh0ZW5zaW9uLXBhY2thZ2VcIlxuICAgIChjbGljayk9XCJhZGRQYWNrYWdlKClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdBZGQgZXh0ZW5zaW9uIHBhY2thZ2UnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdSZWxvYWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwibG9hZFBhY2thZ2VzKClcIlxuICA+XG4gICAgPGlcbiAgICAgIGM4eUljb249XCJyZWZyZXNoXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IHJlbG9hZGluZyB9XCJcbiAgICA+PC9pPlxuICAgIHt7ICdSZWxvYWQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidsZWZ0J1wiXG4gIGl0ZW1DbGFzcz1cInAtci04IHAtbC04XCJcbj5cbiAgPGM4eS1saXN0LWZpbHRlcnNcbiAgICAqbmdJZj1cInBhY2thZ2VzJCB8IGFzeW5jXCJcbiAgICBbcGFja2FnZVR5cGVzXT1cInBhY2thZ2VUeXBlc1wiXG4gICAgW3BhY2thZ2VBdmFpbGFiaWxpdGllc109XCJwYWNrYWdlQXZhaWxhYmlsaXRpZXNcIlxuICAgIFtwYWNrYWdlQ29udGVudHNdPVwicGFja2FnZUNvbnRlbnRzXCJcbiAgICAoZmlsdGVyUGlwZUNoYW5nZSk9XCJzZXRGaWx0ZXJQaXBlKCRldmVudClcIlxuICA+PC9jOHktbGlzdC1maWx0ZXJzPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidsZWZ0J1wiXG4gIGl0ZW1DbGFzcz1cIm5hdmJhci1mb3JtIGhpZGRlbi14c1wiXG4+XG4gIDxjOHktbGlzdC1kaXNwbGF5LXN3aXRjaFxuICAgIChvbkxpc3RDbGFzc0NoYW5nZSk9XCJsaXN0Q2xhc3MgPSAkZXZlbnRcIlxuICAgIFtsaXN0TGVuZ3RoXT1cIihwYWNrYWdlcyQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gID48L2M4eS1saXN0LWRpc3BsYXktc3dpdGNoPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWhlbHAgc3JjPVwiL3VzZXJzLWd1aWRlL2FkbWluaXN0cmF0aW9uLyNleHRlbnNpb25zXCI+PC9jOHktaGVscD5cblxuPGRpdlxuICBjbGFzcz1cImNhcmQtZ3JvdXBcIlxuICBbbmdDbGFzc109XCJsaXN0Q2xhc3NcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwYWdlLXN0aWNreS1oZWFkZXIgaGlkZGVuLXhzIGQtZmxleCBtLWItOFwiXG4gICAgKm5nSWY9XCIoZmlsdGVyZWRQYWNrYWdlcyQgfCBhc3luYyk/Lmxlbmd0aCA+IDBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgY2FyZC1jb2x1bW4tNDBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFwcGljb24gcC1sLTMyIHAtci0xNiBtLXItMCBtLWwtNFwiPjwvZGl2PlxuICAgICAge3sgJ1BhY2thZ2UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgcC0wIGNhcmQtY29sdW1uLTgwIG0tci00MFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgY2FyZC1jb2x1bW4tODBcIj57eyAnRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBjYXJkLWNvbHVtbi0yMFwiPnt7ICdUeXBlJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgY2FyZC1jb2x1bW4tMjBcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNCBjb2wtbWQtM1wiXG4gICAgKm5nRm9yPVwibGV0IGFwcCBvZiBmaWx0ZXJlZFBhY2thZ2VzJCB8IGFzeW5jXCJcbiAgPlxuICAgIDxjOHktYXBwbGljYXRpb24tY2FyZFxuICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgIChvbkFwcERlbGV0ZWQpPVwibG9hZFBhY2thZ2VzKClcIlxuICAgICAgKG9uQXBwQ2xvbmVkKT1cImxvYWRQYWNrYWdlcygpXCJcbiAgICAgIFthcHBdPVwiYXBwXCJcbiAgICA+PC9jOHktYXBwbGljYXRpb24tY2FyZD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGM4eS11aS1lbXB0eS1zdGF0ZVxuICBbaWNvbl09XCInYmlnLXBhcmNlbCdcIlxuICBbdGl0bGVdPVwiJ05vIGV4dGVuc2lvbnMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgW3N1YnRpdGxlXT1cImhhc0FkbWluUGVybWlzc2lvbnMgPyAoZW1wdHlTdGF0ZVN1YnRpdGxlIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgKm5nSWY9XCIocGFja2FnZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDBcIlxuPlxuICA8ZGl2ICpuZ0lmPVwiaGFzQWRtaW5QZXJtaXNzaW9uc1wiPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIHRpdGxlPVwie3sgJ0FkZCBleHRlbnNpb24gcGFja2FnZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwiYWRkUGFja2FnZSgpXCJcbiAgICA+XG4gICAgICB7eyAnQWRkIGV4dGVuc2lvbiBwYWNrYWdlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuXG48Yzh5LXVpLWVtcHR5LXN0YXRlXG4gIFtpY29uXT1cIidzZWFyY2gnXCJcbiAgW3RpdGxlXT1cIidObyBtYXRjaGluZyBleHRlbnNpb25zLicgfCB0cmFuc2xhdGVcIlxuICBbc3VidGl0bGVdPVwiJ1JlZmluZSB5b3VyIHNlYXJjaCB0ZXJtcyBhbmQvb3IgdGhlIGZpbHRlcnMnIHwgdHJhbnNsYXRlXCJcbiAgKm5nSWY9XCIocGFja2FnZXMkIHwgYXN5bmMpPy5sZW5ndGggPiAwICYmIChmaWx0ZXJlZFBhY2thZ2VzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICB0aXRsZT1cInt7ICdSZXNldCBmaWx0ZXJzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cInJlc2V0RmlsdGVycygpXCJcbiAgPlxuICAgIHt7ICdSZXNldCBmaWx0ZXJzJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vcGFja2FnZXMvcGFja2FnZS1saXN0L3BhY2thZ2VzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3BhY2thZ2VzL3BhY2thZ2UtbGlzdC9wYWNrYWdlcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBR25CLG9CQUFvQixFQUNyQixNQUFNLHNDQUFzQyxDQUFDOzs7OztBQU05QyxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUNVLGdCQUFrQyxFQUNsQyxrQkFBc0MsRUFDdEMsV0FBd0I7UUFGeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBcEJsQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBMEIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFLM0Qsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLHVCQUFrQixHQUFHLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQzFFLGlCQUFZLEdBQUcsbUJBQW1CLENBQUM7UUFDbkMsMEJBQXFCLEdBQTZDO1lBQ2hFLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSztZQUMxQixTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUs7U0FDdkIsQ0FBQztRQUNGLG9CQUFlLEdBQUcsc0JBQXNCLENBQUM7UUFFakMsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBTzFELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFDbEMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEVBQy9ELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNiLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25FLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUNuQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUNqRCxXQUFXLENBQUMsaUNBQWlDLENBQzlDLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxZQUFZLEdBQTRCO1lBQzVDLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxjQUFjO1NBQ3BDLENBQUM7UUFDRixNQUFNLFlBQVksR0FBaUIsRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUVwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVELFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBZ0I7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7a0hBdkVVLHFCQUFxQjtzR0FBckIscUJBQXFCLDJHQWVyQixvQkFBb0IsZ0RDcENqQyxpeEhBc0lBOzJGRGpIYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1CO2tLQWtCSSxnQkFBZ0I7c0JBQWhELFNBQVM7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZ2V0dGV4dCwgUGVybWlzc2lvbnMsIFdpemFyZE1vZGFsU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTW9kYWxPcHRpb25zIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQVBQX1NUQVRFLFxuICBFY29zeXN0ZW1TZXJ2aWNlLFxuICBFY29zeXN0ZW1XaXphcmRzLFxuICBkZWZhdWx0UGFja2FnZUNvbnRlbnRzLFxuICBkZWZhdWx0UGFja2FnZVR5cGVzLFxuICBGaWx0ZXJQaXBlLFxuICBQYWNrYWdlRmlsdGVycyxcbiAgTGlzdEZpbHRlcnNDb21wb25lbnRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXBhY2thZ2VzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFja2FnZXMtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUGFja2FnZXNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVsb2FkaW5nID0gZmFsc2U7XG4gIHJlbG9hZCQ6IEJlaGF2aW9yU3ViamVjdDx2b2lkPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgcGFja2FnZXMkOiBPYnNlcnZhYmxlPElBcHBsaWNhdGlvbltdPjtcbiAgZmlsdGVyZWRQYWNrYWdlcyQ6IE9ic2VydmFibGU8SUFwcGxpY2F0aW9uW10+O1xuICBsaXN0Q2xhc3M6IHN0cmluZztcbiAgaGFzQWRtaW5QZXJtaXNzaW9ucyA9IGZhbHNlO1xuICBlbXB0eVN0YXRlU3VidGl0bGUgPSBnZXR0ZXh0KCdBZGQgeW91ciBmaXJzdCBwYWNrYWdlIGJ5IGNsaWNraW5nIGJlbG93LicpO1xuICBwYWNrYWdlVHlwZXMgPSBkZWZhdWx0UGFja2FnZVR5cGVzO1xuICBwYWNrYWdlQXZhaWxhYmlsaXRpZXM6IChrZXlvZiBQYWNrYWdlRmlsdGVyc1snYXZhaWxhYmlsaXR5J10pW10gPSBbXG4gICAgQVBQX1NUQVRFLlNVQlNDUklCRUQubGFiZWwsXG4gICAgQVBQX1NUQVRFLkNVU1RPTS5sYWJlbFxuICBdO1xuICBwYWNrYWdlQ29udGVudHMgPSBkZWZhdWx0UGFja2FnZUNvbnRlbnRzO1xuICBAVmlld0NoaWxkKExpc3RGaWx0ZXJzQ29tcG9uZW50KSBmaWx0ZXJzQ29tcG9uZW50OiBMaXN0RmlsdGVyc0NvbXBvbmVudDtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgd2l6YXJkTW9kYWxTZXJ2aWNlOiBXaXphcmRNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnNcbiAgKSB7XG4gICAgdGhpcy5wYWNrYWdlcyQgPSB0aGlzLnJlbG9hZCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5yZWxvYWRpbmcgPSB0cnVlKSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldFBhY2thZ2VBcHBsaWNhdGlvbnMoKSksXG4gICAgICB0YXAocGFja2FnZXMgPT4ge1xuICAgICAgICBwYWNrYWdlcy5mb3JFYWNoKHBja2cgPT4ge1xuICAgICAgICAgIHBja2cuZmlsdGVyUHJvcHMgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0QXBwRmlsdGVyUHJvcHMocGNrZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4gKHRoaXMucmVsb2FkaW5nID0gZmFsc2UpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaGFzQWRtaW5QZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnMuaGFzUm9sZShcbiAgICAgIFBlcm1pc3Npb25zLlJPTEVfQVBQTElDQVRJT05fTUFOQUdFTUVOVF9BRE1JTlxuICAgICk7XG4gICAgdGhpcy5sb2FkUGFja2FnZXMoKTtcbiAgfVxuXG4gIGxvYWRQYWNrYWdlcygpIHtcbiAgICB0aGlzLnJlbG9hZCQubmV4dCgpO1xuICB9XG5cbiAgYWRkUGFja2FnZSgpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgaWQ6IEVjb3N5c3RlbVdpemFyZHMuUEFDS0FHRV9VUExPQURcbiAgICB9O1xuICAgIGNvbnN0IG1vZGFsT3B0aW9uczogTW9kYWxPcHRpb25zID0geyBpbml0aWFsU3RhdGUgfTtcblxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy53aXphcmRNb2RhbFNlcnZpY2Uuc2hvdyhtb2RhbE9wdGlvbnMpO1xuICAgIG1vZGFsUmVmLmNvbnRlbnQub25DbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkUGFja2FnZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBzZXRGaWx0ZXJQaXBlKHBpcGU6IEZpbHRlclBpcGUpIHtcbiAgICB0aGlzLmZpbHRlcmVkUGFja2FnZXMkID0gdGhpcy5wYWNrYWdlcyQucGlwZShzcmMgPT4gcGlwZShzcmMpKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlcnNDb21wb25lbnQ/LnJlc2V0QWxsRmlsdGVycygpO1xuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7ICdFeHRlbnNpb25zJyB8IHRyYW5zbGF0ZSB9fTwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1hdG9tJ1wiXG4gICAgW2xhYmVsXT1cIidFY29zeXN0ZW0nIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYmlnLXBhcmNlbCdcIlxuICAgIFtwYXRoXT1cIidlY29zeXN0ZW0vZXh0ZW5zaW9uL2V4dGVuc2lvbnMnXCJcbiAgICBbbGFiZWxdPVwiJ0V4dGVuc2lvbnMnIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICpuZ0lmPVwiaGFzQWRtaW5QZXJtaXNzaW9uc1wiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnQWRkIGV4dGVuc2lvbiBwYWNrYWdlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgZGF0YS1jeT1cInBhY2thZ2VzLWxpc3QtLWFkZC1leHRlbnNpb24tcGFja2FnZVwiXG4gICAgKGNsaWNrKT1cImFkZFBhY2thZ2UoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAge3sgJ0FkZCBleHRlbnNpb24gcGFja2FnZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJsb2FkUGFja2FnZXMoKVwiXG4gID5cbiAgICA8aVxuICAgICAgYzh5SWNvbj1cInJlZnJlc2hcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogcmVsb2FkaW5nIH1cIlxuICAgID48L2k+XG4gICAge3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCJcbiAgaXRlbUNsYXNzPVwicC1yLTggcC1sLThcIlxuPlxuICA8Yzh5LWxpc3QtZmlsdGVyc1xuICAgICpuZ0lmPVwicGFja2FnZXMkIHwgYXN5bmNcIlxuICAgIFtwYWNrYWdlVHlwZXNdPVwicGFja2FnZVR5cGVzXCJcbiAgICBbcGFja2FnZUF2YWlsYWJpbGl0aWVzXT1cInBhY2thZ2VBdmFpbGFiaWxpdGllc1wiXG4gICAgW3BhY2thZ2VDb250ZW50c109XCJwYWNrYWdlQ29udGVudHNcIlxuICAgIChmaWx0ZXJQaXBlQ2hhbmdlKT1cInNldEZpbHRlclBpcGUoJGV2ZW50KVwiXG4gID48L2M4eS1saXN0LWZpbHRlcnM+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCJcbiAgaXRlbUNsYXNzPVwibmF2YmFyLWZvcm0gaGlkZGVuLXhzXCJcbj5cbiAgPGM4eS1saXN0LWRpc3BsYXktc3dpdGNoXG4gICAgKG9uTGlzdENsYXNzQ2hhbmdlKT1cImxpc3RDbGFzcyA9ICRldmVudFwiXG4gICAgW2xpc3RMZW5ndGhdPVwiKHBhY2thZ2VzJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgPjwvYzh5LWxpc3QtZGlzcGxheS1zd2l0Y2g+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktaGVscCBzcmM9XCIvdXNlcnMtZ3VpZGUvYWRtaW5pc3RyYXRpb24vI2V4dGVuc2lvbnNcIj48L2M4eS1oZWxwPlxuXG48ZGl2XG4gIGNsYXNzPVwiY2FyZC1ncm91cFwiXG4gIFtuZ0NsYXNzXT1cImxpc3RDbGFzc1wiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInBhZ2Utc3RpY2t5LWhlYWRlciBoaWRkZW4teHMgZC1mbGV4IG0tYi04XCJcbiAgICAqbmdJZj1cIihmaWx0ZXJlZFBhY2thZ2VzJCB8IGFzeW5jKT8ubGVuZ3RoID4gMFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBjYXJkLWNvbHVtbi00MFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYXBwaWNvbiBwLWwtMzIgcC1yLTE2IG0tci0wIG0tbC00XCI+PC9kaXY+XG4gICAgICB7eyAnUGFja2FnZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBwLTAgY2FyZC1jb2x1bW4tODAgbS1yLTQwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBjYXJkLWNvbHVtbi04MFwiPnt7ICdEZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIGNhcmQtY29sdW1uLTIwXCI+e3sgJ1R5cGUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBjYXJkLWNvbHVtbi0yMFwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS00IGNvbC1tZC0zXCJcbiAgICAqbmdGb3I9XCJsZXQgYXBwIG9mIGZpbHRlcmVkUGFja2FnZXMkIHwgYXN5bmNcIlxuICA+XG4gICAgPGM4eS1hcHBsaWNhdGlvbi1jYXJkXG4gICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgKG9uQXBwRGVsZXRlZCk9XCJsb2FkUGFja2FnZXMoKVwiXG4gICAgICAob25BcHBDbG9uZWQpPVwibG9hZFBhY2thZ2VzKClcIlxuICAgICAgW2FwcF09XCJhcHBcIlxuICAgID48L2M4eS1hcHBsaWNhdGlvbi1jYXJkPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48Yzh5LXVpLWVtcHR5LXN0YXRlXG4gIFtpY29uXT1cIidiaWctcGFyY2VsJ1wiXG4gIFt0aXRsZV09XCInTm8gZXh0ZW5zaW9ucyB0byBkaXNwbGF5LicgfCB0cmFuc2xhdGVcIlxuICBbc3VidGl0bGVdPVwiaGFzQWRtaW5QZXJtaXNzaW9ucyA/IChlbXB0eVN0YXRlU3VidGl0bGUgfCB0cmFuc2xhdGUpIDogJydcIlxuICAqbmdJZj1cIihwYWNrYWdlcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMFwiXG4+XG4gIDxkaXYgKm5nSWY9XCJoYXNBZG1pblBlcm1pc3Npb25zXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgdGl0bGU9XCJ7eyAnQWRkIGV4dGVuc2lvbiBwYWNrYWdlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJhZGRQYWNrYWdlKClcIlxuICAgID5cbiAgICAgIHt7ICdBZGQgZXh0ZW5zaW9uIHBhY2thZ2UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9jOHktdWktZW1wdHktc3RhdGU+XG5cbjxjOHktdWktZW1wdHktc3RhdGVcbiAgW2ljb25dPVwiJ3NlYXJjaCdcIlxuICBbdGl0bGVdPVwiJ05vIG1hdGNoaW5nIGV4dGVuc2lvbnMuJyB8IHRyYW5zbGF0ZVwiXG4gIFtzdWJ0aXRsZV09XCInUmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zIGFuZC9vciB0aGUgZmlsdGVycycgfCB0cmFuc2xhdGVcIlxuICAqbmdJZj1cIihwYWNrYWdlcyQgfCBhc3luYyk/Lmxlbmd0aCA+IDAgJiYgKGZpbHRlcmVkUGFja2FnZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDBcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgIHRpdGxlPVwie3sgJ1Jlc2V0IGZpbHRlcnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIlxuICA+XG4gICAge3sgJ1Jlc2V0IGZpbHRlcnMnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktdWktZW1wdHktc3RhdGU+XG4iXX0=