@c8y/ngx-components 1021.22.0 → 1021.22.26

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 (148) hide show
  1. package/alarms/alarms-date-filter.component.d.ts +23 -10
  2. package/alarms/alarms-date-filter.component.d.ts.map +1 -1
  3. package/alarms/alarms-type-filter.component.d.ts +21 -14
  4. package/alarms/alarms-type-filter.component.d.ts.map +1 -1
  5. package/alarms/alarms-view.service.d.ts +7 -0
  6. package/alarms/alarms-view.service.d.ts.map +1 -1
  7. package/alarms/alarms.model.d.ts +1 -6
  8. package/alarms/alarms.model.d.ts.map +1 -1
  9. package/alarms/alarms.module.d.ts +1 -1
  10. package/alarms/index.d.ts +1 -0
  11. package/alarms/index.d.ts.map +1 -1
  12. package/branding/shared/data/branding-tracking.service.d.ts +20 -0
  13. package/branding/shared/data/branding-tracking.service.d.ts.map +1 -0
  14. package/branding/shared/data/branding-version.service.d.ts.map +1 -1
  15. package/branding/shared/data/index.d.ts +1 -0
  16. package/branding/shared/data/index.d.ts.map +1 -1
  17. package/branding/shared/data/store-branding.service.d.ts +8 -1
  18. package/branding/shared/data/store-branding.service.d.ts.map +1 -1
  19. package/branding/shared/lazy/branding/branding.component.d.ts +3 -2
  20. package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
  21. package/branding/shared/lazy/branding-theme-form/branding-theme-form.component.d.ts.map +1 -1
  22. package/branding/shared/lazy/edit-branding-router-outlet/edit-branding-router-outlet.component.d.ts.map +1 -1
  23. package/cockpit-config/cockpit-config.module.d.ts +1 -1
  24. package/cockpit-config/cockpit-config.module.d.ts.map +1 -1
  25. package/context-dashboard/context-dashboard.service.d.ts +1 -1
  26. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  27. package/core/bootstrap/bootstrap.component.d.ts.map +1 -1
  28. package/core/common/service-registry.model.d.ts +2 -1
  29. package/core/common/service-registry.model.d.ts.map +1 -1
  30. package/core/common/ui-state.service.d.ts +0 -1
  31. package/core/common/ui-state.service.d.ts.map +1 -1
  32. package/core/i18n/missing-translation-custom.handler.d.ts +1 -0
  33. package/core/i18n/missing-translation-custom.handler.d.ts.map +1 -1
  34. package/core/plugins/index.d.ts +1 -0
  35. package/core/plugins/index.d.ts.map +1 -1
  36. package/core/plugins/plugin-loaded.pipe.d.ts +12 -0
  37. package/core/plugins/plugin-loaded.pipe.d.ts.map +1 -0
  38. package/core/plugins/plugins-resolve.service.d.ts +4 -2
  39. package/core/plugins/plugins-resolve.service.d.ts.map +1 -1
  40. package/core/plugins/plugins.model.d.ts +3 -1
  41. package/core/plugins/plugins.model.d.ts.map +1 -1
  42. package/core/plugins/plugins.service.d.ts +3 -0
  43. package/core/plugins/plugins.service.d.ts.map +1 -1
  44. package/core/router/router-tabs.resolver.d.ts +2 -2
  45. package/core/router/router-tabs.resolver.d.ts.map +1 -1
  46. package/core/router/scoped-context-route.service.d.ts.map +1 -1
  47. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  48. package/ecosystem/application-plugins/application-plugins.guard.d.ts.map +1 -1
  49. package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts.map +1 -1
  50. package/esm2022/alarms/alarm-info.component.mjs +3 -3
  51. package/esm2022/alarms/alarm-severity-to-label.pipe.mjs +2 -2
  52. package/esm2022/alarms/alarms-date-filter.component.mjs +94 -42
  53. package/esm2022/alarms/alarms-type-filter.component.mjs +102 -72
  54. package/esm2022/alarms/alarms-view.service.mjs +16 -2
  55. package/esm2022/alarms/alarms.component.mjs +3 -3
  56. package/esm2022/alarms/alarms.model.mjs +1 -1
  57. package/esm2022/alarms/alarms.module.mjs +3 -3
  58. package/esm2022/alarms/index.mjs +2 -1
  59. package/esm2022/branding/shared/data/branding-tracking.service.mjs +58 -0
  60. package/esm2022/branding/shared/data/branding-version.service.mjs +9 -5
  61. package/esm2022/branding/shared/data/index.mjs +2 -1
  62. package/esm2022/branding/shared/data/store-branding.service.mjs +15 -4
  63. package/esm2022/branding/shared/lazy/branding/branding.component.mjs +16 -12
  64. package/esm2022/branding/shared/lazy/branding-theme-form/branding-theme-form.component.mjs +5 -2
  65. package/esm2022/branding/shared/lazy/edit-branding-router-outlet/edit-branding-router-outlet.component.mjs +2 -2
  66. package/esm2022/cockpit-config/cockpit-config.module.mjs +6 -3
  67. package/esm2022/cockpit-config/feature-config.component.mjs +5 -4
  68. package/esm2022/context-dashboard/context-dashboard.service.mjs +47 -13
  69. package/esm2022/core/bootstrap/bootstrap.component.mjs +4 -3
  70. package/esm2022/core/common/service-registry.model.mjs +1 -1
  71. package/esm2022/core/common/ui-state.service.mjs +1 -19
  72. package/esm2022/core/i18n/missing-translation-custom.handler.mjs +5 -1
  73. package/esm2022/core/i18n/translation-loader.service.mjs +2 -2
  74. package/esm2022/core/plugins/index.mjs +2 -1
  75. package/esm2022/core/plugins/plugin-loaded.pipe.mjs +26 -0
  76. package/esm2022/core/plugins/plugins-resolve.service.mjs +5 -1
  77. package/esm2022/core/plugins/plugins.model.mjs +2 -1
  78. package/esm2022/core/plugins/plugins.service.mjs +13 -5
  79. package/esm2022/core/router/router-tabs.resolver.mjs +22 -8
  80. package/esm2022/core/router/scoped-context-route.service.mjs +9 -4
  81. package/esm2022/core/tabs/tabs-outlet.component.mjs +3 -3
  82. package/esm2022/core/version/websdk-plugin-version.factory.mjs +2 -2
  83. package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs +3 -3
  84. package/esm2022/ecosystem/activity-log/activity-log.component.mjs +3 -3
  85. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +67 -23
  86. package/esm2022/ecosystem/application-plugins/application-plugins.guard.mjs +8 -2
  87. package/esm2022/ecosystem/application-plugins/orphaned-status-cell-renderer.component.mjs +7 -1
  88. package/esm2022/interval-picker/interval-picker.component.mjs +1 -1
  89. package/esm2022/interval-picker/interval-picker.model.mjs +1 -1
  90. package/esm2022/protocol-lwm2m/ng1/plugin-checker.service.mjs +5 -1
  91. package/esm2022/widgets/definitions/alarms/alarm-list/index.mjs +2 -1
  92. package/esm2022/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.mjs +73 -4
  93. package/esm2022/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.mjs +29 -5
  94. package/esm2022/widgets/implementations/alarms/alarm-list-widget.model.mjs +7 -1
  95. package/esm2022/widgets/implementations/alarms/alarm-widget.service.mjs +12 -2
  96. package/fesm2022/c8y-ngx-components-alarms.mjs +200 -107
  97. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  98. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +76 -9
  99. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  100. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +19 -12
  101. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  102. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +7 -5
  103. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  104. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +46 -12
  105. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  106. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +2 -2
  107. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  108. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +79 -23
  109. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  110. package/fesm2022/c8y-ngx-components-ecosystem.mjs +81 -25
  111. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  112. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -1
  113. package/fesm2022/c8y-ngx-components-protocol-lwm2m.mjs +4 -0
  114. package/fesm2022/c8y-ngx-components-protocol-lwm2m.mjs.map +1 -1
  115. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -0
  116. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  117. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +124 -15
  118. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  119. package/fesm2022/c8y-ngx-components.mjs +91 -50
  120. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  121. package/interval-picker/interval-picker.component.d.ts +2 -2
  122. package/interval-picker/interval-picker.component.d.ts.map +1 -1
  123. package/interval-picker/interval-picker.model.d.ts +5 -0
  124. package/interval-picker/interval-picker.model.d.ts.map +1 -1
  125. package/locales/de.po +431 -538
  126. package/locales/en.po +2 -889
  127. package/locales/en_US.po +2 -880
  128. package/locales/es.po +462 -540
  129. package/locales/fr.po +470 -549
  130. package/locales/ja_JP.po +405 -598
  131. package/locales/ko.po +649 -502
  132. package/locales/locales.pot +27 -12
  133. package/locales/nl.po +463 -541
  134. package/locales/pl.po +504 -554
  135. package/locales/pt_BR.po +466 -543
  136. package/locales/zh_CN.po +650 -498
  137. package/locales/zh_TW.po +650 -498
  138. package/package.json +1 -1
  139. package/protocol-lwm2m/ng1/plugin-checker.service.d.ts +4 -0
  140. package/protocol-lwm2m/ng1/plugin-checker.service.d.ts.map +1 -1
  141. package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
  142. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts +12 -1
  143. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
  144. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts +12 -1
  145. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
  146. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts +11 -1
  147. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts.map +1 -1
  148. package/widgets/implementations/alarms/alarm-widget.service.d.ts.map +1 -1
@@ -25,7 +25,10 @@ export class BrandingThemeFormComponent {
25
25
  this.formStructure = formStructure;
26
26
  this.externalValue = {};
27
27
  this.addDarkThemePrefix = false;
28
- this.varsToConvertToHeight = ['navigator-platform-logo-height'];
28
+ this.varsToConvertToHeight = [
29
+ 'navigator-platform-logo-height',
30
+ 'dark-navigator-platform-logo-height'
31
+ ];
29
32
  this.addDarkThemePrefix = !!this.activatedRoute.snapshot.data.dark;
30
33
  this.themeSwitcher.temporaryChangeTheme(this.addDarkThemePrefix ? 'dark' : 'light');
31
34
  this.formGroup = this.initForm();
@@ -138,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
138
141
  type: Component,
139
142
  args: [{ selector: 'c8y-branding-theme-form', standalone: true, host: { class: 'd-contents' }, imports: [CoreModule, FormsModule, StaticAssetsFilePickerComponent, ColorInputComponent], template: "<div\n class=\"inner-scroll\"\n [formGroup]=\"formGroup\"\n>\n <!-- Logos -->\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Logos\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Brand logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img\"\n translate\n >\n Brand logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"brand-logo-img\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n size=\"150\"\n formControlName=\"brand-logo-img\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg'\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"brand-logo-img-height\"\n for=\"brand-logo-img-height\"\n translate\n >\n Brand logo height\n </label>\n <input\n class=\"form-control\"\n id=\"brand-logo-img-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"brand-logo-img-height\"\n type=\"number\"\n formControlName=\"brand-logo-img-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Navigator logo</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo\"\n translate\n >\n Navigator logo file\n </label>\n <c8y-static-assets-file-picker\n name=\"navigator-platform-logo\"\n [supportedFileExtensions]=\"imageFileExtensions\"\n [isCSSURL]=\"true\"\n size=\"150\"\n formControlName=\"navigator-platform-logo\"\n ></c8y-static-assets-file-picker>\n <c8y-messages [helpMessage]=\"'Supported files: *.png, *.svg, *.jpg'\"></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"navigator-platform-logo-height\"\n for=\"navigator-platform-logo-height\"\n translate\n >\n Navigator logo height\n </label>\n <input\n class=\"form-control\"\n id=\"navigator-platform-logo-height\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: '50' } }}\"\n name=\"navigator-platform-logo-height\"\n type=\"number\"\n formControlName=\"navigator-platform-logo-height\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Brand colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.brandColors.label | translate}}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.brandColors.label | translate}}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of formStructure.brandColors.brandColors.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-8\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ formStructure.brandColors.shades.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.brandColors.shades.colorColumn\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n data-cy=\"branding-reset-shades-button\"\n (click)=\"regenerateShadesBasedOnPrimaryColor()\"\n [disabled]=\"!(resetShadesButtonEnabled$ | async)\"\n >\n <i [c8yIcon]=\"'reset'\"></i>\n <span translate>Reset shades</span>\n </button>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Status colors -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.statusColors.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subCategory of formStructure.statusColors.subCategories\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ subCategory.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subCategory.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Generic -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n translate\n >\n Generic\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Generic colors</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"body-background-color\"\n for=\"body-background-color\"\n translate\n >\n Body background color\n </label>\n <c8y-color-input\n name=\"body-background-color\"\n formControlName=\"body-background-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-color\"\n for=\"text-color\"\n translate\n >\n Text color\n </label>\n <c8y-color-input\n name=\"text-color\"\n formControlName=\"text-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"text-muted\"\n for=\"text-muted\"\n translate\n >\n Text muted color\n </label>\n <c8y-color-input\n name=\"text-muted\"\n formControlName=\"text-muted\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n <div class=\"col-md-6\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend translate>Interactive</legend>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-color\"\n for=\"link-color\"\n translate\n >\n Link color\n </label>\n <c8y-color-input\n name=\"link-color\"\n formControlName=\"link-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"link-hover-color\"\n for=\"link-hover-color\"\n translate\n >\n Link hover color\n </label>\n <c8y-color-input\n name=\"link-hover-color\"\n formControlName=\"link-hover-color\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n <c8y-form-group class=\"m-b-32\">\n <label\n title=\"btn-border-radius-base\"\n for=\"btn-border-radius-base\"\n translate\n >\n Button border-radius\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. 4' | translate }}\"\n name=\"btn-border-radius-base\"\n type=\"number\"\n formControlName=\"btn-border-radius-base\"\n />\n <c8y-messages [helpMessage]=\"'Value is applied in px'\"></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Action bar -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.actionBar.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.actionBar.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Main header -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.mainHeader.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <fieldset class=\"c8y-fieldset p-24\" *ngFor=\"let colorColumn of formStructure.mainHeader.colorColumns\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let subColorColumn of colorColumn.colorColumns\">\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of subColorColumn\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <!-- Navigator -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.navigator.label }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-4\" *ngFor=\"let colorColumn of formStructure.navigator.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Right drawer -->\n <div class=\"card-block separator-top\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 p-t-16\">\n <h4\n class=\"text-normal text-right text-left-xs m-b-16\"\n >\n {{ formStructure.rightDrawer.label | translate }}\n </h4>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-10\">\n <div class=\"row\">\n <div class=\"col-md-6\" *ngFor=\"let colorColumn of formStructure.rightDrawer.colorColumns\">\n <fieldset class=\"c8y-fieldset p-24\">\n <legend>{{ colorColumn.label | translate }}</legend>\n <c8y-form-group class=\"m-b-32\" *ngFor=\"let color of colorColumn.colors\">\n <label\n [title]=\"color.formControlName\"\n [for]=\"color.formControlName\"\n >\n {{ color.label | translate }}\n </label>\n <c8y-color-input\n [attr.data-cy]=\"'branding-theme-form-color-input-' + color.formControlName\"\n [formControlName]=\"color.formControlName\"\n ></c8y-color-input>\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
140
143
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.FormBuilder }, { type: i3.FilesService }, { type: i4.BrandingShadesService }, { type: i3.ThemeSwitcherService }] });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmctdGhlbWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9icmFuZGluZy9zaGFyZWQvbGF6eS9icmFuZGluZy10aGVtZS1mb3JtL2JyYW5kaW5nLXRoZW1lLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmctdGhlbWUtZm9ybS9icmFuZGluZy10aGVtZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUF3QixXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUNMLEdBQUcsRUFDSCxvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbkIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FB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LENBQUM7UUFDL0UsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUNqRixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdDLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztRQUNELGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7OEdBL0pVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDJIQ3RDdkMsbXppQkFtY0EsMkNEL1pZLFVBQVUsazVEQUFFLFdBQVcsK0JBQUUsK0JBQStCOzsyRkFFdkQsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLHlCQUF5QixjQUV2QixJQUFJLFFBQ1YsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQ3BCLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSwrQkFBK0IsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgcGFpcndpc2UsXG4gIGRlbGF5LFxuICBzd2l0Y2hNYXAsXG4gIGZpbHRlcixcbiAgc3RhcnRXaXRoLFxuICB0YWtlXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENvcmVNb2R1bGUsXG4gIEZpbGVzU2VydmljZSxcbiAgR0VORVJJQ19GSUxFX1RZUEUsXG4gIFRoZW1lU3dpdGNoZXJTZXJ2aWNlLFxuICBDb2xvcklucHV0Q29tcG9uZW50XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN0YXRpY0Fzc2V0c0ZpbGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3N0YXRpYy1hc3NldHMnO1xuaW1wb3J0IHtcbiAgQnJhbmRpbmdPcHRpb25zSnNvbixcbiAgQnJhbmRpbmdTaGFkZXNTZXJ2aWNlLFxuICBjcmVhdGVCcmFuZGluZ0Zvcm1cbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9icmFuZGluZy9zaGFyZWQvZGF0YSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWZlciwgaW50ZXJ2YWwsIG1lcmdlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZm9ybVN0cnVjdHVyZSB9IGZyb20gJy4vYnJhbmRpbmctdGhlbWUtZm9ybS1zdHJ1Y3R1cmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYnJhbmRpbmctdGhlbWUtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmFuZGluZy10aGVtZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDogeyBjbGFzczogJ2QtY29udGVudHMnIH0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBGb3Jtc01vZHVsZSwgU3RhdGljQXNzZXRzRmlsZVBpY2tlckNvbXBvbmVudCwgQ29sb3JJbnB1dENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQnJhbmRpbmdUaGVtZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgZm9ybVN0cnVjdHVyZSA9IGZvcm1TdHJ1Y3R1cmU7XG4gIGZvcm1Hcm91cDogUmV0dXJuVHlwZTxCcmFuZGluZ1RoZW1lRm9ybUNvbXBvbmVudFsnaW5pdEZvcm0nXT47XG4gIGltYWdlRmlsZUV4dGVuc2lvbnM6IHN0cmluZ1tdO1xuICByZXNldFNoYWRlc0J1dHRvbkVuYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGV4dGVybmFsVmFsdWU6IEJyYW5kaW5nT3B0aW9uc0pzb24gPSB7fTtcbiAgcHJpdmF0ZSBmb3JtR3JvdXBWYWx1ZUNoYW5nZXMkOiBCcmFuZGluZ1RoZW1lRm9ybUNvbXBvbmVudFsnZm9ybUdyb3VwJ11bJ3ZhbHVlQ2hhbmdlcyddO1xuICBwcml2YXRlIGFkZERhcmtUaGVtZVByZWZpeCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhcnNUb0NvbnZlcnRUb0hlaWdodCA9IFsnbmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0J10gYXMgY29uc3Q7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBmaWxlc1NlcnZpY2U6IEZpbGVzU2VydmljZSxcbiAgICBwcml2YXRlIGJyYW5kaW5nU2hhZGVzOiBCcmFuZGluZ1NoYWRlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aGVtZVN3aXRjaGVyOiBUaGVtZVN3aXRjaGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLmFkZERhcmtUaGVtZVByZWZpeCA9ICEhdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhLmRhcms7XG4gICAgdGhpcy50aGVtZVN3aXRjaGVyLnRlbXBvcmFyeUNoYW5nZVRoZW1lKHRoaXMuYWRkRGFya1RoZW1lUHJlZml4ID8gJ2RhcmsnIDogJ2xpZ2h0Jyk7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5mb3JtR3JvdXBWYWx1ZUNoYW5nZXMkID0gdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpO1xuICAgIHRoaXMuaW1hZ2VGaWxlRXh0ZW5zaW9ucyA9IHRoaXMuZmlsZXNTZXJ2aWNlXG4gICAgICAubWFwR2VuZXJpY0ZpbGVUeXBlc1RvRXh0ZW5zaW9ucyhbR0VORVJJQ19GSUxFX1RZUEUuSU1BR0VdKVxuICAgICAgLmZpbHRlcihleHQgPT4gZXh0ICE9PSAnaWNvJyk7XG5cbiAgICBjb25zdCBoYXNDdXN0b21TaGFkZXMkID0gbWVyZ2UoXG4gICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMsXG4gICAgICBkZWZlcigoKSA9PiBvZih0aGlzLmZvcm1Hcm91cC52YWx1ZSkpXG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICBtYXAodG1wID0+IHRoaXMuYnJhbmRpbmdTaGFkZXMuaGFzQ3VzdG9tU2hhZGVzU2V0KHRtcFsnYnJhbmQtcHJpbWFyeSddLCB0bXApKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICAgIHRoaXMucmVzZXRTaGFkZXNCdXR0b25FbmFibGVkJCA9IG1lcmdlKFxuICAgICAgZGVmZXIoKCkgPT4gb2YodGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2JyYW5kLXByaW1hcnknXS5zdGF0dXMpKSxcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydicmFuZC1wcmltYXJ5J10uc3RhdHVzQ2hhbmdlc1xuICAgICkucGlwZShcbiAgICAgIC8vIHN0YXR1c0NoYW5nZXMgZW1pdHMgJ1BFTkRJTkcnIHdoZW4gdGhlIGZvcm0gY29udHJvbCBpcyBhc3luYyB2YWxpZGF0aW5nXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy80MTUxOVxuICAgICAgc3dpdGNoTWFwKHN0YXR1cyA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdQRU5ESU5HJykge1xuICAgICAgICAgIHJldHVybiBpbnRlcnZhbCgyMDApLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2JyYW5kLXByaW1hcnknXS5zdGF0dXMpLFxuICAgICAgICAgICAgZmlsdGVyKHN0YXQgPT4gc3RhdCAhPT0gJ1BFTkRJTkcnKSxcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzdGFydFdpdGgoc3RhdHVzKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKHN0YXR1cyk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcChzdGF0dXMgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzICE9PSAnVkFMSUQnKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzQ3VzdG9tU2hhZGVzJDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IGJyYW5kUHJpbWFyeUZvcm1Db250cm9sID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2JyYW5kLXByaW1hcnknXTtcbiAgICBicmFuZFByaW1hcnlGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoY29sb3IgPT4gdGhpcy5icmFuZGluZ1NoYWRlcy5pc1ZhbGlkU2hhZGVDb2xvcihjb2xvcikpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgZGVsYXkoNSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtwcmV2LCBjdXJyXSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghdGhpcy5icmFuZGluZ1NoYWRlcy5oYXNDdXN0b21TaGFkZXNTZXQocHJldiwgdGhpcy5mb3JtR3JvdXAudmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2VuZXJhdGVTaGFkZXNCYXNlZE9uUHJpbWFyeUNvbG9yKGN1cnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGhlbWVTd2l0Y2hlci5yZXNldFRlbXBvcmFyeVRoZW1lKCk7XG4gIH1cblxuICByZWdlbmVyYXRlU2hhZGVzQmFzZWRPblByaW1hcnlDb2xvcihjb2xvcj86IHN0cmluZykge1xuICAgIGNvbnN0IG5ld1NoYWRlcyA9IHRoaXMuYnJhbmRpbmdTaGFkZXMuZ2V0U2hhZGVDb2xvckJyYW5kaW5nQ3NzVmFycyhcbiAgICAgIGNvbG9yIHx8IHRoaXMuZm9ybUdyb3VwLnZhbHVlWydicmFuZC1wcmltYXJ5J11cbiAgICApO1xuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3U2hhZGVzKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkT2JqID0gSlNPTi5wYXJzZShvYmopO1xuICAgICAgdGhpcy5leHRlcm5hbFZhbHVlID0gcGFyc2VkT2JqO1xuICAgICAgdGhpcy5hcHBseVN0YXRlVG9Gb3JtKHBhcnNlZE9iaik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gZmFpbGVkIHRvIHBhcnNlXG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cFZhbHVlQ2hhbmdlcyQuc3Vic2NyaWJlKHZhbHVlID0+IGZuKHRoaXMuY29udmVydEZvcm1Ub1N0YXRlKHZhbHVlKSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQnJhbmRpbmdGb3JtKHRoaXMuZm9ybUJ1aWxkZXIpO1xuICB9XG5cbiAgYXBwbHlTdGF0ZVRvRm9ybShicmFuZGluZzogQnJhbmRpbmdPcHRpb25zSnNvbikge1xuICAgIGlmICghYnJhbmRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG9CZVBhdGNoZWQgPSB7fTtcblxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0UHJlZml4KCk7XG4gICAgT2JqZWN0LmVudHJpZXMoYnJhbmRpbmcuYnJhbmRpbmdDc3NWYXJzIHx8IHt9KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmIChwcmVmaXggJiYgIWtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qga2V5SW5Gb3JtID0ga2V5LnJlcGxhY2UocHJlZml4LCAnJyk7XG4gICAgICBpZiAodGhpcy52YXJzVG9Db252ZXJ0VG9IZWlnaHQuaW5jbHVkZXMoa2V5SW5Gb3JtIGFzIGFueSkgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0b0JlUGF0Y2hlZFtrZXlJbkZvcm1dID0gTnVtYmVyLnBhcnNlSW50KHZhbHVlLnJlcGxhY2UoL1thLXpBLVolXS8sICcnKSB8fCAnMCcpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0b0JlUGF0Y2hlZFtrZXlJbkZvcm1dID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh0b0JlUGF0Y2hlZCk7XG4gIH1cblxuICBjb252ZXJ0Rm9ybVRvU3RhdGUodmFsdWU6IEJyYW5kaW5nVGhlbWVGb3JtQ29tcG9uZW50Wydmb3JtR3JvdXAnXVsndmFsdWUnXSk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJlZml4ZWRCcmFuZGluZ0Nzc1ZhcnMgPSB7fTtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmdldFByZWZpeCgpO1xuICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIHByZWZpeGVkQnJhbmRpbmdDc3NWYXJzW2Ake3ByZWZpeH0ke2tleX1gXSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIGNvbnN0IGV4dGVybmFsVmFsdWU6IEJyYW5kaW5nT3B0aW9uc0pzb24gPSBjbG9uZURlZXAodGhpcy5leHRlcm5hbFZhbHVlIHx8IHt9KTtcbiAgICBjb25zdCBjdXJyZW50Q1NTVmFycyA9IGV4dGVybmFsVmFsdWVbJ2JyYW5kaW5nQ3NzVmFycyddIHx8IHt9O1xuICAgIGNvbnN0IGFzc2lnbmVkTmV3VmFsdWVzID0gT2JqZWN0LmFzc2lnbihjdXJyZW50Q1NTVmFycywgcHJlZml4ZWRCcmFuZGluZ0Nzc1ZhcnMpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMudmFyc1RvQ29udmVydFRvSGVpZ2h0KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGFzc2lnbmVkTmV3VmFsdWVzW2tleV07XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICBhc3NpZ25lZE5ld1ZhbHVlc1trZXldICs9ICdweCc7XG4gICAgICB9XG4gICAgfVxuICAgIGV4dGVybmFsVmFsdWVbJ2JyYW5kaW5nQ3NzVmFycyddID0gYXNzaWduZWROZXdWYWx1ZXM7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGV4dGVybmFsVmFsdWUsIG51bGwsIDIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcmVmaXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRGFya1RoZW1lUHJlZml4ID8gJ2RhcmstJyA6ICcnO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaW5uZXItc2Nyb2xsXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuPlxuICA8IS0tICAgTG9nb3MgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgTG9nb3NcbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+QnJhbmQgbG9nbzwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiYnJhbmQtbG9nby1pbWdcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQnJhbmQgbG9nbyBmaWxlXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LXN0YXRpYy1hc3NldHMtZmlsZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJicmFuZC1sb2dvLWltZ1wiXG4gICAgICAgICAgICAgICAgICBbc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnNdPVwiaW1hZ2VGaWxlRXh0ZW5zaW9uc1wiXG4gICAgICAgICAgICAgICAgICBbaXNDU1NVUkxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwiMTUwXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJyYW5kLWxvZ28taW1nXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktc3RhdGljLWFzc2V0cy1maWxlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInU3VwcG9ydGVkIGZpbGVzOiAqLnBuZywgKi5zdmcsICouanBnJ1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImJyYW5kLWxvZ28taW1nLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBCcmFuZCBsb2dvIGhlaWdodFxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBpZD1cImJyYW5kLWxvZ28taW1nLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICc1MCcgfSB9fVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW2hlbHBNZXNzYWdlXT1cIidWYWx1ZSBpcyBhcHBsaWVkIGluIHB4J1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPk5hdmlnYXRvciBsb2dvPC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJuYXZpZ2F0b3ItcGxhdGZvcm0tbG9nb1wiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBOYXZpZ2F0b3IgbG9nbyBmaWxlXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LXN0YXRpYy1hc3NldHMtZmlsZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJuYXZpZ2F0b3ItcGxhdGZvcm0tbG9nb1wiXG4gICAgICAgICAgICAgICAgICBbc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnNdPVwiaW1hZ2VGaWxlRXh0ZW5zaW9uc1wiXG4gICAgICAgICAgICAgICAgICBbaXNDU1NVUkxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwiMTUwXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktc3RhdGljLWFzc2V0cy1maWxlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInU3VwcG9ydGVkIGZpbGVzOiAqLnBuZywgKi5zdmcsICouanBnJ1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBOYXZpZ2F0b3IgbG9nbyBoZWlnaHRcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJuYXZpZ2F0b3ItcGxhdGZvcm0tbG9nby1oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiAnNTAnIH0gfX1cIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInVmFsdWUgaXMgYXBwbGllZCBpbiBweCdcIj48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tICBCcmFuZCBjb2xvcnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLmJyYW5kQ29sb3JzLmxhYmVsIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZD57eyBmb3JtU3RydWN0dXJlLmJyYW5kQ29sb3JzLmJyYW5kQ29sb3JzLmxhYmVsIHwgdHJhbnNsYXRlfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGZvcm1TdHJ1Y3R1cmUuYnJhbmRDb2xvcnMuYnJhbmRDb2xvcnMuY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XG4gICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kPnt7IGZvcm1TdHJ1Y3R1cmUuYnJhbmRDb2xvcnMuc2hhZGVzLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgY29sb3JDb2x1bW4gb2YgZm9ybVN0cnVjdHVyZS5icmFuZENvbG9ycy5zaGFkZXMuY29sb3JDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiICpuZ0Zvcj1cImxldCBjb2xvciBvZiBjb2xvckNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBkYXRhLWN5PVwiYnJhbmRpbmctcmVzZXQtc2hhZGVzLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZ2VuZXJhdGVTaGFkZXNCYXNlZE9uUHJpbWFyeUNvbG9yKClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKHJlc2V0U2hhZGVzQnV0dG9uRW5hYmxlZCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ3Jlc2V0J1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+UmVzZXQgc2hhZGVzPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIFN0YXR1cyBjb2xvcnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLnN0YXR1c0NvbG9ycy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IHN1YkNhdGVnb3J5IG9mIGZvcm1TdHJ1Y3R1cmUuc3RhdHVzQ29sb3JzLnN1YkNhdGVnb3JpZXNcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQ+e3sgc3ViQ2F0ZWdvcnkubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIHN1YkNhdGVnb3J5LmNvbG9yc1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgY29sb3IubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2JyYW5kaW5nLXRoZW1lLWZvcm0tY29sb3ItaW5wdXQtJyArIGNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBHZW5lcmljIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgR2VuZXJpY1xuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kIHRyYW5zbGF0ZT5HZW5lcmljIGNvbG9yczwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImJvZHktYmFja2dyb3VuZC1jb2xvclwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBCb2R5IGJhY2tncm91bmQgY29sb3JcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJib2R5LWJhY2tncm91bmQtY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwidGV4dC1jb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3I9XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFRleHQgY29sb3JcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHQtY29sb3JcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwidGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgICBmb3I9XCJ0ZXh0LW11dGVkXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFRleHQgbXV0ZWQgY29sb3JcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0ZXh0LW11dGVkXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPkludGVyYWN0aXZlPC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJsaW5rLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImxpbmstY29sb3JcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgTGluayBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cImxpbmstY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGluay1jb2xvclwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJsaW5rLWhvdmVyLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImxpbmstaG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgTGluayBob3ZlciBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cImxpbmstaG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGluay1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJidG4tYm9yZGVyLXJhZGl1cy1iYXNlXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cImJ0bi1ib3JkZXItcmFkaXVzLWJhc2VcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQnV0dG9uIGJvcmRlci1yYWRpdXNcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLiA0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiYnRuLWJvcmRlci1yYWRpdXMtYmFzZVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ0bi1ib3JkZXItcmFkaXVzLWJhc2VcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcyBbaGVscE1lc3NhZ2VdPVwiJ1ZhbHVlIGlzIGFwcGxpZWQgaW4gcHgnXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBBY3Rpb24gYmFyIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybVN0cnVjdHVyZS5hY3Rpb25CYXIubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIiAqbmdGb3I9XCJsZXQgY29sb3JDb2x1bW4gb2YgZm9ybVN0cnVjdHVyZS5hY3Rpb25CYXIuY29sb3JDb2x1bW5zXCI+XG4gICAgICAgICAgPGxlZ2VuZD57eyBjb2xvckNvbHVtbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0Zvcj1cImxldCBzdWJDb2xvckNvbHVtbiBvZiBjb2xvckNvbHVtbi5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIHN1YkNvbG9yQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIE1haW4gaGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybVN0cnVjdHVyZS5tYWluSGVhZGVyLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwXCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCIgKm5nRm9yPVwibGV0IGNvbG9yQ29sdW1uIG9mIGZvcm1TdHJ1Y3R1cmUubWFpbkhlYWRlci5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICA8bGVnZW5kPnt7IGNvbG9yQ29sdW1uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IHN1YkNvbG9yQ29sdW1uIG9mIGNvbG9yQ29sdW1uLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2Ygc3ViQ29sb3JDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidicmFuZGluZy10aGVtZS1mb3JtLWNvbG9yLWlucHV0LScgKyBjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gTmF2aWdhdG9yIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItdG9wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBjb2wtbWQtMiBwLXQtMTZcIj5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtbGVmdC14cyBtLWItMTZcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybVN0cnVjdHVyZS5uYXZpZ2F0b3IubGFiZWwgfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiICpuZ0Zvcj1cImxldCBjb2xvckNvbHVtbiBvZiBmb3JtU3RydWN0dXJlLm5hdmlnYXRvci5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQ+e3sgY29sb3JDb2x1bW4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGNvbG9yQ29sdW1uLmNvbG9yc1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgY29sb3IubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2JyYW5kaW5nLXRoZW1lLWZvcm0tY29sb3ItaW5wdXQtJyArIGNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBSaWdodCBkcmF3ZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLnJpZ2h0RHJhd2VyLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgY29sb3JDb2x1bW4gb2YgZm9ybVN0cnVjdHVyZS5yaWdodERyYXdlci5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQ+e3sgY29sb3JDb2x1bW4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGNvbG9yQ29sdW1uLmNvbG9yc1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgY29sb3IubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2JyYW5kaW5nLXRoZW1lLWZvcm0tY29sb3ItaW5wdXQtJyArIGNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmctdGhlbWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9icmFuZGluZy9zaGFyZWQvbGF6eS9icmFuZGluZy10aGVtZS1mb3JtL2JyYW5kaW5nLXRoZW1lLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYnJhbmRpbmctdGhlbWUtZm9ybS9icmFuZGluZy10aGVtZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUF3QixXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUNMLEdBQUcsRUFDSCxvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbkIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FB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SUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRSxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pGLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0MsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBQ0QsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLFNBQVM7UUFDZixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEQsQ0FBQzs4R0FsS1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsMkhDdEN2QyxtemlCQW1jQSwyQ0QvWlksVUFBVSxrNURBQUUsV0FBVywrQkFBRSwrQkFBK0I7OzJGQUV2RCwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBRXZCLElBQUksUUFDVixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FDcEIsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBtYXAsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBwYWlyd2lzZSxcbiAgZGVsYXksXG4gIHN3aXRjaE1hcCxcbiAgZmlsdGVyLFxuICBzdGFydFdpdGgsXG4gIHRha2Vcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ29yZU1vZHVsZSxcbiAgRmlsZXNTZXJ2aWNlLFxuICBHRU5FUklDX0ZJTEVfVFlQRSxcbiAgVGhlbWVTd2l0Y2hlclNlcnZpY2UsXG4gIENvbG9ySW5wdXRDb21wb25lbnRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3RhdGljQXNzZXRzRmlsZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc3RhdGljLWFzc2V0cyc7XG5pbXBvcnQge1xuICBCcmFuZGluZ09wdGlvbnNKc29uLFxuICBCcmFuZGluZ1NoYWRlc1NlcnZpY2UsXG4gIGNyZWF0ZUJyYW5kaW5nRm9ybVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2JyYW5kaW5nL3NoYXJlZC9kYXRhJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRlZmVyLCBpbnRlcnZhbCwgbWVyZ2UsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmb3JtU3RydWN0dXJlIH0gZnJvbSAnLi9icmFuZGluZy10aGVtZS1mb3JtLXN0cnVjdHVyZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1icmFuZGluZy10aGVtZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyYW5kaW5nLXRoZW1lLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7IGNsYXNzOiAnZC1jb250ZW50cycgfSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEZvcm1zTW9kdWxlLCBTdGF0aWNBc3NldHNGaWxlUGlja2VyQ29tcG9uZW50LCBDb2xvcklucHV0Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBCcmFuZGluZ1RoZW1lRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICByZWFkb25seSBmb3JtU3RydWN0dXJlID0gZm9ybVN0cnVjdHVyZTtcbiAgZm9ybUdyb3VwOiBSZXR1cm5UeXBlPEJyYW5kaW5nVGhlbWVGb3JtQ29tcG9uZW50Wydpbml0Rm9ybSddPjtcbiAgaW1hZ2VGaWxlRXh0ZW5zaW9uczogc3RyaW5nW107XG4gIHJlc2V0U2hhZGVzQnV0dG9uRW5hYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgZXh0ZXJuYWxWYWx1ZTogQnJhbmRpbmdPcHRpb25zSnNvbiA9IHt9O1xuICBwcml2YXRlIGZvcm1Hcm91cFZhbHVlQ2hhbmdlcyQ6IEJyYW5kaW5nVGhlbWVGb3JtQ29tcG9uZW50Wydmb3JtR3JvdXAnXVsndmFsdWVDaGFuZ2VzJ107XG4gIHByaXZhdGUgYWRkRGFya1RoZW1lUHJlZml4ID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFyc1RvQ29udmVydFRvSGVpZ2h0ID0gW1xuICAgICduYXZpZ2F0b3ItcGxhdGZvcm0tbG9nby1oZWlnaHQnLFxuICAgICdkYXJrLW5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodCdcbiAgXSBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGZpbGVzU2VydmljZTogRmlsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJhbmRpbmdTaGFkZXM6IEJyYW5kaW5nU2hhZGVzU2VydmljZSxcbiAgICBwcml2YXRlIHRoZW1lU3dpdGNoZXI6IFRoZW1lU3dpdGNoZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYWRkRGFya1RoZW1lUHJlZml4ID0gISF0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGEuZGFyaztcbiAgICB0aGlzLnRoZW1lU3dpdGNoZXIudGVtcG9yYXJ5Q2hhbmdlVGhlbWUodGhpcy5hZGREYXJrVGhlbWVQcmVmaXggPyAnZGFyaycgOiAnbGlnaHQnKTtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuaW5pdEZvcm0oKTtcbiAgICB0aGlzLmZvcm1Hcm91cFZhbHVlQ2hhbmdlcyQgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSk7XG4gICAgdGhpcy5pbWFnZUZpbGVFeHRlbnNpb25zID0gdGhpcy5maWxlc1NlcnZpY2VcbiAgICAgIC5tYXBHZW5lcmljRmlsZVR5cGVzVG9FeHRlbnNpb25zKFtHRU5FUklDX0ZJTEVfVFlQRS5JTUFHRV0pXG4gICAgICAuZmlsdGVyKGV4dCA9PiBleHQgIT09ICdpY28nKTtcblxuICAgIGNvbnN0IGhhc0N1c3RvbVNoYWRlcyQgPSBtZXJnZShcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcyxcbiAgICAgIGRlZmVyKCgpID0+IG9mKHRoaXMuZm9ybUdyb3VwLnZhbHVlKSlcbiAgICApLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIG1hcCh0bXAgPT4gdGhpcy5icmFuZGluZ1NoYWRlcy5oYXNDdXN0b21TaGFkZXNTZXQodG1wWydicmFuZC1wcmltYXJ5J10sIHRtcCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gICAgdGhpcy5yZXNldFNoYWRlc0J1dHRvbkVuYWJsZWQkID0gbWVyZ2UoXG4gICAgICBkZWZlcigoKSA9PiBvZih0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snYnJhbmQtcHJpbWFyeSddLnN0YXR1cykpLFxuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2JyYW5kLXByaW1hcnknXS5zdGF0dXNDaGFuZ2VzXG4gICAgKS5waXBlKFxuICAgICAgLy8gc3RhdHVzQ2hhbmdlcyBlbWl0cyAnUEVORElORycgd2hlbiB0aGUgZm9ybSBjb250cm9sIGlzIGFzeW5jIHZhbGlkYXRpbmdcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzQxNTE5XG4gICAgICBzd2l0Y2hNYXAoc3RhdHVzID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICAgICAgcmV0dXJuIGludGVydmFsKDIwMCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snYnJhbmQtcHJpbWFyeSddLnN0YXR1cyksXG4gICAgICAgICAgICBmaWx0ZXIoc3RhdCA9PiBzdGF0ICE9PSAnUEVORElORycpLFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aChzdGF0dXMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2Yoc3RhdHVzKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHN0YXR1cyA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgIT09ICdWQUxJRCcpIHtcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNDdXN0b21TaGFkZXMkO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgY29uc3QgYnJhbmRQcmltYXJ5Rm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snYnJhbmQtcHJpbWFyeSddO1xuICAgIGJyYW5kUHJpbWFyeUZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihjb2xvciA9PiB0aGlzLmJyYW5kaW5nU2hhZGVzLmlzVmFsaWRTaGFkZUNvbG9yKGNvbG9yKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICBkZWxheSg1KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3ByZXYsIGN1cnJdKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmJyYW5kaW5nU2hhZGVzLmhhc0N1c3RvbVNoYWRlc1NldChwcmV2LCB0aGlzLmZvcm1Hcm91cC52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVnZW5lcmF0ZVNoYWRlc0Jhc2VkT25QcmltYXJ5Q29sb3IoY3Vycik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50aGVtZVN3aXRjaGVyLnJlc2V0VGVtcG9yYXJ5VGhlbWUoKTtcbiAgfVxuXG4gIHJlZ2VuZXJhdGVTaGFkZXNCYXNlZE9uUHJpbWFyeUNvbG9yKGNvbG9yPzogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3U2hhZGVzID0gdGhpcy5icmFuZGluZ1NoYWRlcy5nZXRTaGFkZUNvbG9yQnJhbmRpbmdDc3NWYXJzKFxuICAgICAgY29sb3IgfHwgdGhpcy5mb3JtR3JvdXAudmFsdWVbJ2JyYW5kLXByaW1hcnknXVxuICAgICk7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShuZXdTaGFkZXMpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWRPYmogPSBKU09OLnBhcnNlKG9iaik7XG4gICAgICB0aGlzLmV4dGVybmFsVmFsdWUgPSBwYXJzZWRPYmo7XG4gICAgICB0aGlzLmFwcGx5U3RhdGVUb0Zvcm0ocGFyc2VkT2JqKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBmYWlsZWQgdG8gcGFyc2VcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwVmFsdWVDaGFuZ2VzJC5zdWJzY3JpYmUodmFsdWUgPT4gZm4odGhpcy5jb252ZXJ0Rm9ybVRvU3RhdGUodmFsdWUpKSk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHJldHVybiBjcmVhdGVCcmFuZGluZ0Zvcm0odGhpcy5mb3JtQnVpbGRlcik7XG4gIH1cblxuICBhcHBseVN0YXRlVG9Gb3JtKGJyYW5kaW5nOiBCcmFuZGluZ09wdGlvbnNKc29uKSB7XG4gICAgaWYgKCFicmFuZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0b0JlUGF0Y2hlZCA9IHt9O1xuXG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5nZXRQcmVmaXgoKTtcbiAgICBPYmplY3QuZW50cmllcyhicmFuZGluZy5icmFuZGluZ0Nzc1ZhcnMgfHwge30pLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKHByZWZpeCAmJiAha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBrZXlJbkZvcm0gPSBrZXkucmVwbGFjZShwcmVmaXgsICcnKTtcbiAgICAgIGlmICh0aGlzLnZhcnNUb0NvbnZlcnRUb0hlaWdodC5pbmNsdWRlcyhrZXlJbkZvcm0gYXMgYW55KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRvQmVQYXRjaGVkW2tleUluRm9ybV0gPSBOdW1iZXIucGFyc2VJbnQodmFsdWUucmVwbGFjZSgvW2EtekEtWiVdLywgJycpIHx8ICcwJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRvQmVQYXRjaGVkW2tleUluRm9ybV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHRvQmVQYXRjaGVkKTtcbiAgfVxuXG4gIGNvbnZlcnRGb3JtVG9TdGF0ZSh2YWx1ZTogQnJhbmRpbmdUaGVtZUZvcm1Db21wb25lbnRbJ2Zvcm1Hcm91cCddWyd2YWx1ZSddKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXhlZEJyYW5kaW5nQ3NzVmFycyA9IHt9O1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0UHJlZml4KCk7XG4gICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgcHJlZml4ZWRCcmFuZGluZ0Nzc1ZhcnNbYCR7cHJlZml4fSR7a2V5fWBdID0gdmFsdWU7XG4gICAgfSk7XG4gICAgY29uc3QgZXh0ZXJuYWxWYWx1ZTogQnJhbmRpbmdPcHRpb25zSnNvbiA9IGNsb25lRGVlcCh0aGlzLmV4dGVybmFsVmFsdWUgfHwge30pO1xuICAgIGNvbnN0IGN1cnJlbnRDU1NWYXJzID0gZXh0ZXJuYWxWYWx1ZVsnYnJhbmRpbmdDc3NWYXJzJ10gfHwge307XG4gICAgY29uc3QgYXNzaWduZWROZXdWYWx1ZXMgPSBPYmplY3QuYXNzaWduKGN1cnJlbnRDU1NWYXJzLCBwcmVmaXhlZEJyYW5kaW5nQ3NzVmFycyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy52YXJzVG9Db252ZXJ0VG9IZWlnaHQpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXNzaWduZWROZXdWYWx1ZXNba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGFzc2lnbmVkTmV3VmFsdWVzW2tleV0gKz0gJ3B4JztcbiAgICAgIH1cbiAgICB9XG4gICAgZXh0ZXJuYWxWYWx1ZVsnYnJhbmRpbmdDc3NWYXJzJ10gPSBhc3NpZ25lZE5ld1ZhbHVlcztcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZXh0ZXJuYWxWYWx1ZSwgbnVsbCwgMik7XG4gIH1cblxuICBwcml2YXRlIGdldFByZWZpeCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGREYXJrVGhlbWVQcmVmaXggPyAnZGFyay0nIDogJyc7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJpbm5lci1zY3JvbGxcIlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4+XG4gIDwhLS0gICBMb2dvcyAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBMb2dvc1xuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kIHRyYW5zbGF0ZT5CcmFuZCBsb2dvPC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJicmFuZC1sb2dvLWltZ1wiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBCcmFuZCBsb2dvIGZpbGVcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktc3RhdGljLWFzc2V0cy1maWxlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgbmFtZT1cImJyYW5kLWxvZ28taW1nXCJcbiAgICAgICAgICAgICAgICAgIFtzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc109XCJpbWFnZUZpbGVFeHRlbnNpb25zXCJcbiAgICAgICAgICAgICAgICAgIFtpc0NTU1VSTF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCIxNTBcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmQtbG9nby1pbWdcIlxuICAgICAgICAgICAgICAgID48L2M4eS1zdGF0aWMtYXNzZXRzLWZpbGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW2hlbHBNZXNzYWdlXT1cIidTdXBwb3J0ZWQgZmlsZXM6ICoucG5nLCAqLnN2ZywgKi5qcGcnXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJicmFuZC1sb2dvLWltZy1oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEJyYW5kIGxvZ28gaGVpZ2h0XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwiYnJhbmQtbG9nby1pbWctaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGU6IHsgZXhhbXBsZTogJzUwJyB9IH19XCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJicmFuZC1sb2dvLWltZy1oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJicmFuZC1sb2dvLWltZy1oZWlnaHRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcyBbaGVscE1lc3NhZ2VdPVwiJ1ZhbHVlIGlzIGFwcGxpZWQgaW4gcHgnXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+TmF2aWdhdG9yIGxvZ288L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIE5hdmlnYXRvciBsb2dvIGZpbGVcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktc3RhdGljLWFzc2V0cy1maWxlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvXCJcbiAgICAgICAgICAgICAgICAgIFtzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc109XCJpbWFnZUZpbGVFeHRlbnNpb25zXCJcbiAgICAgICAgICAgICAgICAgIFtpc0NTU1VSTF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCIxNTBcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ29cIlxuICAgICAgICAgICAgICAgID48L2M4eS1zdGF0aWMtYXNzZXRzLWZpbGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW2hlbHBNZXNzYWdlXT1cIidTdXBwb3J0ZWQgZmlsZXM6ICoucG5nLCAqLnN2ZywgKi5qcGcnXCI+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJuYXZpZ2F0b3ItcGxhdGZvcm0tbG9nby1oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIE5hdmlnYXRvciBsb2dvIGhlaWdodFxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm5hdmlnYXRvci1wbGF0Zm9ybS1sb2dvLWhlaWdodFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICc1MCcgfSB9fVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmF2aWdhdG9yLXBsYXRmb3JtLWxvZ28taGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXMgW2hlbHBNZXNzYWdlXT1cIidWYWx1ZSBpcyBhcHBsaWVkIGluIHB4J1wiPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gIEJyYW5kIGNvbG9ycyAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgc2VwYXJhdG9yLXRvcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgY29sLW1kLTIgcC10LTE2XCI+XG4gICAgICAgIDxoNFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHMgbS1iLTE2XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1TdHJ1Y3R1cmUuYnJhbmRDb2xvcnMubGFiZWwgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kPnt7IGZvcm1TdHJ1Y3R1cmUuYnJhbmRDb2xvcnMuYnJhbmRDb2xvcnMubGFiZWwgfCB0cmFuc2xhdGV9fTwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgZm9ybVN0cnVjdHVyZS5icmFuZENvbG9ycy5icmFuZENvbG9ycy5jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidicmFuZGluZy10aGVtZS1mb3JtLWNvbG9yLWlucHV0LScgKyBjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQ+e3sgZm9ybVN0cnVjdHVyZS5icmFuZENvbG9ycy5zaGFkZXMubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0Zvcj1cImxldCBjb2xvckNvbHVtbiBvZiBmb3JtU3RydWN0dXJlLmJyYW5kQ29sb3JzLnNoYWRlcy5jb2xvckNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGNvbG9yQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidicmFuZGluZy10aGVtZS1mb3JtLWNvbG9yLWlucHV0LScgKyBjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1yZXNldC1zaGFkZXMtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVnZW5lcmF0ZVNoYWRlc0Jhc2VkT25QcmltYXJ5Q29sb3IoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEocmVzZXRTaGFkZXNCdXR0b25FbmFibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBbYzh5SWNvbl09XCIncmVzZXQnXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5SZXNldCBzaGFkZXM8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gU3RhdHVzIGNvbG9ycyAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgc2VwYXJhdG9yLXRvcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgY29sLW1kLTIgcC10LTE2XCI+XG4gICAgICAgIDxoNFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHMgbS1iLTE2XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1TdHJ1Y3R1cmUuc3RhdHVzQ29sb3JzLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgc3ViQ2F0ZWdvcnkgb2YgZm9ybVN0cnVjdHVyZS5zdGF0dXNDb2xvcnMuc3ViQ2F0ZWdvcmllc1wiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZD57eyBzdWJDYXRlZ29yeS5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2Ygc3ViQ2F0ZWdvcnkuY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEdlbmVyaWMgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBHZW5lcmljXG4gICAgICAgIDwvaDQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTkgY29sLW1kLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImM4eS1maWVsZHNldCBwLTI0XCI+XG4gICAgICAgICAgICAgIDxsZWdlbmQgdHJhbnNsYXRlPkdlbmVyaWMgY29sb3JzPC9sZWdlbmQ+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJib2R5LWJhY2tncm91bmQtY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwiYm9keS1iYWNrZ3JvdW5kLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEJvZHkgYmFja2dyb3VuZCBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cImJvZHktYmFja2dyb3VuZC1jb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJib2R5LWJhY2tncm91bmQtY29sb3JcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cInRleHQtY29sb3JcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgVGV4dCBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cInRleHQtY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGV4dC1jb2xvclwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ0ZXh0LW11dGVkXCJcbiAgICAgICAgICAgICAgICAgIGZvcj1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgVGV4dCBtdXRlZCBjb2xvclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgbmFtZT1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZCB0cmFuc2xhdGU+SW50ZXJhY3RpdmU8L2xlZ2VuZD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cImxpbmstY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwibGluay1jb2xvclwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBMaW5rIGNvbG9yXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBuYW1lPVwibGluay1jb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsaW5rLWNvbG9yXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cImxpbmstaG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwibGluay1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBMaW5rIGhvdmVyIGNvbG9yXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBuYW1lPVwibGluay1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsaW5rLWhvdmVyLWNvbG9yXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1iLTMyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cImJ0bi1ib3JkZXItcmFkaXVzLWJhc2VcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwiYnRuLWJvcmRlci1yYWRpdXMtYmFzZVwiXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBCdXR0b24gYm9yZGVyLXJhZGl1c1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIDQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJidG4tYm9yZGVyLXJhZGl1cy1iYXNlXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnRuLWJvcmRlci1yYWRpdXMtYmFzZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInVmFsdWUgaXMgYXBwbGllZCBpbiBweCdcIj48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEFjdGlvbiBiYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLmFjdGlvbkJhci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJjOHktZmllbGRzZXQgcC0yNFwiICpuZ0Zvcj1cImxldCBjb2xvckNvbHVtbiBvZiBmb3JtU3RydWN0dXJlLmFjdGlvbkJhci5jb2xvckNvbHVtbnNcIj5cbiAgICAgICAgICA8bGVnZW5kPnt7IGNvbG9yQ29sdW1uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9sZWdlbmQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nRm9yPVwibGV0IHN1YkNvbG9yQ29sdW1uIG9mIGNvbG9yQ29sdW1uLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2Ygc3ViQ29sb3JDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8Yzh5LWNvbG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidicmFuZGluZy10aGVtZS1mb3JtLWNvbG9yLWlucHV0LScgKyBjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2xvci5mb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgID48L2M4eS1jb2xvci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8Yzh5LW1lc3NhZ2VzPjwvYzh5LW1lc3NhZ2VzPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gTWFpbiBoZWFkZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLm1haW5IZWFkZXIubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIiAqbmdGb3I9XCJsZXQgY29sb3JDb2x1bW4gb2YgZm9ybVN0cnVjdHVyZS5tYWluSGVhZGVyLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgIDxsZWdlbmQ+e3sgY29sb3JDb2x1bW4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L2xlZ2VuZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdGb3I9XCJsZXQgc3ViQ29sb3JDb2x1bW4gb2YgY29sb3JDb2x1bW4uY29sb3JDb2x1bW5zXCI+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tYi0zMlwiICpuZ0Zvcj1cImxldCBjb2xvciBvZiBzdWJDb2xvckNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgY29sb3IubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxjOHktY29sb3ItaW5wdXRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2JyYW5kaW5nLXRoZW1lLWZvcm0tY29sb3ItaW5wdXQtJyArIGNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbG9yLmZvcm1Db250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvYzh5LWNvbG9yLWlucHV0PlxuICAgICAgICAgICAgICAgIDxjOHktbWVzc2FnZXM+PC9jOHktbWVzc2FnZXM+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBOYXZpZ2F0b3IgLS0+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci10b3BcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGNvbC1tZC0yIHAtdC0xNlwiPlxuICAgICAgICA8aDRcbiAgICAgICAgICBjbGFzcz1cInRleHQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1sZWZ0LXhzIG0tYi0xNlwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtU3RydWN0dXJlLm5hdmlnYXRvci5sYWJlbCB9fVxuICAgICAgICA8L2g0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS05IGNvbC1tZC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCIgKm5nRm9yPVwibGV0IGNvbG9yQ29sdW1uIG9mIGZvcm1TdHJ1Y3R1cmUubmF2aWdhdG9yLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZD57eyBjb2xvckNvbHVtbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgY29sb3JDb2x1bW4uY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIFJpZ2h0IGRyYXdlciAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgc2VwYXJhdG9yLXRvcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgY29sLW1kLTIgcC10LTE2XCI+XG4gICAgICAgIDxoNFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ub3JtYWwgdGV4dC1yaWdodCB0ZXh0LWxlZnQteHMgbS1iLTE2XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1TdHJ1Y3R1cmUucmlnaHREcmF3ZXIubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tOSBjb2wtbWQtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0Zvcj1cImxldCBjb2xvckNvbHVtbiBvZiBmb3JtU3RydWN0dXJlLnJpZ2h0RHJhd2VyLmNvbG9yQ29sdW1uc1wiPlxuICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiYzh5LWZpZWxkc2V0IHAtMjRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZD57eyBjb2xvckNvbHVtbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGVnZW5kPlxuICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLWItMzJcIiAqbmdGb3I9XCJsZXQgY29sb3Igb2YgY29sb3JDb2x1bW4uY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBjb2xvci5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGM4eS1jb2xvci1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInYnJhbmRpbmctdGhlbWUtZm9ybS1jb2xvci1pbnB1dC0nICsgY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sb3IuZm9ybUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICA+PC9jOHktY29sb3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGM4eS1tZXNzYWdlcz48L2M4eS1tZXNzYWdlcz5cbiAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -91,7 +91,7 @@ export class EditBrandingRouterOutletComponent {
91
91
  }
92
92
  async openPreview() {
93
93
  const name = this.activatedRoute.snapshot.params.name;
94
- window.open(`/apps/${this.appState.currentApplication.value?.contextPath || 'cockpit'}/index.html?brandingPreview=true&dynamicOptionsUrl=/apps/public/public-options@${name}/options.json`, '_blank', 'noopener,noreferrer');
94
+ this.store.openPreviewForBranding(name);
95
95
  }
96
96
  async markAsActive() {
97
97
  const currentBrandingName = this.activatedRoute.snapshot.params.name;
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
138
138
  type: Component,
139
139
  args: [{ selector: 'c8y-edit-branding-router-outlet', standalone: true, imports: [RouterOutlet, CoreModule], template: "<c8y-title>{{ brandingName$ | async }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'palette'\"\n [label]=\"'Branding' | translate\"\n [path]=\"'/branding-editor'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'cog'\"\n [label]=\"brandingName$ | async\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--fullpage content-fullpage\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">{{ brandingName$ | async }} \u2014 {{ tabName$ | async | translate }}</div>\n </div>\n <router-outlet\n class=\"d-contents\"\n (activate)=\"routeActivated($event)\"\n ></router-outlet>\n\n <div class=\"card-footer separator\">\n <!-- footer content -->\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-cancel\"\n (click)=\"cancel()\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary\"\n data-cy=\"branding-save\"\n [disabled]=\"formControl.invalid\"\n (click)=\"saveBranding()\"\n translate\n >\n Save\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-save-as\"\n [disabled]=\"formControl.invalid\"\n (click)=\"openPreview()\"\n translate\n >\n Open preview\n </button>\n <button\n class=\"btn btn-default\"\n data-cy=\"branding-set-as-latest\"\n (click)=\"markAsActive()\"\n [disabled]=\"isGlobalBranding$ | async\"\n translate\n >\n Set as global\n </button>\n </div>\n</div>\n" }]
140
140
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.StoreBrandingService }, { type: i1.Router }, { type: i3.AlertService }, { type: i2.ApplyBrandingLocallyService }, { type: i3.AppStateService }] });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JyYW5kaW5nL3NoYXJlZC9sYXp5L2VkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldC9lZGl0LWJyYW5kaW5nLXJvdXRlci1vdXRsZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0L2VkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixvQkFBb0IsRUFDckIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQXdDLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRaEUsTUFBTSxPQUFPLGlDQUFpQztJQVc1QyxZQUNVLGNBQThCLEVBQzlCLEtBQTJCLEVBQzNCLE1BQWMsRUFDZCxLQUFtQixFQUNu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cG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBBcHBTdGF0ZVNlcnZpY2UsIENvcmVNb2R1bGUsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBBcHBseUJyYW5kaW5nTG9jYWxseVNlcnZpY2UsXG4gIEJyYW5kaW5nT3B0aW9uc0pzb24sXG4gIFN0b3JlQnJhbmRpbmdTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYnJhbmRpbmcvc2hhcmVkL2RhdGEnO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWVkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWJyYW5kaW5nLXJvdXRlci1vdXRsZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUm91dGVyT3V0bGV0LCBDb3JlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0QnJhbmRpbmdSb3V0ZXJPdXRsZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBicmFuZGluZ05hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4odW5kZWZpbmVkKTtcbiAgZmFsbGJhY2tCcmFuZGluZyQ6IE9ic2VydmFibGU8QnJhbmRpbmdPcHRpb25zSnNvbj47XG4gIHRhYk5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGlzR2xvYmFsQnJhbmRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIG5ld0JyYW5kaW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmFuZGluZ09wdGlvbnNKc29uPihudWxsKTtcbiAgcHJpdmF0ZSBjdXJyZW50bHlEaXNwbGF5ZWRDb21wb25lbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIChDb250cm9sVmFsdWVBY2Nlc3NvciAmIFBhcnRpYWw8QXN5bmNWYWxpZGF0b3I+KSB8IG51bGxcbiAgPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZUJyYW5kaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGFwcGx5QnJhbmRpbmdTZXJ2aWNlOiBBcHBseUJyYW5kaW5nTG9jYWxseVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaXNHbG9iYWxCcmFuZGluZyQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEucGlwZShcbiAgICAgIG1hcCgoeyB0YWdzIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHRhZ3M/LmluY2x1ZGVzKCdsYXRlc3QnKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnRhYk5hbWUkID0gdGhpcy5jdXJyZW50bHlEaXNwbGF5ZWRDb21wb25lbnQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmFjdGl2YXRlZFJvdXRlLmZpcnN0Q2hpbGQuZGF0YSksXG4gICAgICBtYXAoZGF0YSA9PiBkYXRhLnRhYk5hbWUpXG4gICAgKTtcbiAgICB0aGlzLmJyYW5kaW5nTmFtZSQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5waXBlKG1hcChwYXJhbXMgPT4gcGFyYW1zLm5hbWUpKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLmFkZFZhbGlkYXRvcnMoY29udHJvbCA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZEpzb246IHRydWUgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmZhbGxiYWNrQnJhbmRpbmckID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnBpcGUobWFwKGRhdGEgPT4gZGF0YS5mYWxsYmFja0JyYW5kaW5nKSk7XG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgYnJhbmRpbmcgfSkgPT4ge1xuICAgICAgICB0aGlzLmFwcGx5QnJhbmRpbmdTZXJ2aWNlLmFwcGx5QnJhbmRpbmcoYnJhbmRpbmcpO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKEpTT04uc3RyaW5naWZ5KGJyYW5kaW5nLCBudWxsLCAyKSk7XG4gICAgICB9KTtcbiAgICB0aGlzLmN1cnJlbnRseURpc3BsYXllZENvbXBvbmVudC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoY29tcG9uZW50ID0+IHtcbiAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcbiAgICAgIGNvbXBvbmVudC5yZWdpc3Rlck9uQ2hhbmdlKHZhbHVlID0+IHRoaXMub25CcmFuZGluZ1ZhckNoYW5nZXModmFsdWUpKTtcbiAgICAgIGNvbXBvbmVudC53cml0ZVZhbHVlKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpO1xuICAgICAgaWYgKGNvbXBvbmVudC52YWxpZGF0ZSkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmFkZEFzeW5jVmFsaWRhdG9ycyhmb3JtID0+IGNvbXBvbmVudC52YWxpZGF0ZShmb3JtKSk7XG4gICAgICAgIGlmIChjb21wb25lbnQucmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSkge1xuICAgICAgICAgIGNvbXBvbmVudC5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKCgpID0+IHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlCcmFuZGluZ1NlcnZpY2UucmVzZXRCcmFuZGluZygpO1xuICB9XG5cbiAgcm91dGVBY3RpdmF0ZWQoZXZlbnQ6IENvbnRyb2xWYWx1ZUFjY2Vzc29yICYgUGFydGlhbDxBc3luY1ZhbGlkYXRvcj4pIHtcbiAgICB0aGlzLmN1cnJlbnRseURpc3BsYXllZENvbXBvbmVudC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVCcmFuZGluZygpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3VycmVudEJyYW5kaW5nID0gdGhpcy5uZXdCcmFuZGluZy52YWx1ZTtcbiAgICAgIGNvbnN0IHRhZ3NPZkN1cnJlbnRWZXJzaW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5waXBlKG1hcChkYXRhID0+IGRhdGEudGFncykpXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjdXJyZW50QnJhbmRpbmdOYW1lID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXMubmFtZTtcbiAgICAgIGNvbnN0IHsgdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMuc3RvcmUubG9hZEJyYW5kaW5nVmFyaWFudHMoKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRCcmFuZGluZ09iaiA9IHZhcmlhbnRzLmZpbmQodiA9PiB2LnRhZ3MuaW5jbHVkZXMoY3VycmVudEJyYW5kaW5nTmFtZSkpO1xuICAgICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBjdXJyZW50QnJhbmRpbmdPYmoudmVyc2lvbjtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmUuc2F2ZUV4aXN0aW5nQnJhbmRpbmcoY3VycmVudEJyYW5kaW5nLCBjdXJyZW50VmVyc2lvbiwgdGFnc09mQ3VycmVudFZlcnNpb24pO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICAgIFsnLi4vLi4vJywgY3VycmVudEJyYW5kaW5nTmFtZSwgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoXSxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgcmVwbGFjZVVybDogdHJ1ZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKFxuICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICdCcmFuZGluZyBzYXZlZC4gVG8gYXBwbHkgdGhpcyBicmFuZGluZywgcmVmcmVzaCBhbnkgb3BlbiB3aW5kb3cgdGhhdCBtaWdodCBiZSBhZmZlY3RlZC4nXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUsICdkYW5nZXInKTtcbiAgICAgIGNvbnNvbGUud2FybihlKTtcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydicmFuZGluZy1lZGl0b3InXSk7XG4gIH1cblxuICBhc3luYyBvcGVuUHJldmlldygpIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXMubmFtZTtcbiAgICB3aW5kb3cub3BlbihcbiAgICAgIGAvYXBwcy8ke1xuICAgICAgICB0aGlzLmFwcFN0YXRlLmN1cnJlbnRBcHBsaWNhdGlvbi52YWx1ZT8uY29udGV4dFBhdGggfHwgJ2NvY2twaXQnXG4gICAgICB9L2luZGV4Lmh0bWw/YnJhbmRpbmdQcmV2aWV3PXRydWUmZHluYW1pY09wdGlvbnNVcmw9L2FwcHMvcHVibGljL3B1YmxpYy1vcHRpb25zQCR7bmFtZX0vb3B0aW9ucy5qc29uYCxcbiAgICAgICdfYmxhbmsnLFxuICAgICAgJ25vb3BlbmVyLG5vcmVmZXJyZXInXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG1hcmtBc0FjdGl2ZSgpIHtcbiAgICBjb25zdCBjdXJyZW50QnJhbmRpbmdOYW1lID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXMubmFtZTtcbiAgICBjb25zdCB7IHZhcmlhbnRzIH0gPSBhd2FpdCB0aGlzLnN0b3JlLmxvYWRCcmFuZGluZ1ZhcmlhbnRzKCk7XG4gICAgY29uc3QgY3VycmVudEJyYW5kaW5nT2JqID0gdmFyaWFudHMuZmluZCh2ID0+IHYudGFncy5pbmNsdWRlcyhjdXJyZW50QnJhbmRpbmdOYW1lKSk7XG4gICAgYXdhaXQgdGhpcy5zdG9yZS5tYXJrQXNBY3RpdmUoY3VycmVudEJyYW5kaW5nT2JqKTtcbiAgfVxuXG4gIGFzeW5jIG9uQnJhbmRpbmdWYXJDaGFuZ2VzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWRWYWx1ZTogQnJhbmRpbmdPcHRpb25zSnNvbiA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgY29uc3QgZmFsbGJhY2tCcmFuZGluZzogQnJhbmRpbmdPcHRpb25zSnNvbiA9IGNsb25lRGVlcChcbiAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5mYWxsYmFja0JyYW5kaW5nJClcbiAgICAgICk7XG4gICAgICB0aGlzLmNsZWFuVXBPYmplY3RzKHBhcnNlZFZhbHVlKTtcbiAgICAgIHRoaXMuY2xlYW5VcE9iamVjdHMocGFyc2VkVmFsdWUuYnJhbmRpbmdDc3NWYXJzKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZhbGxiYWNrQnJhbmRpbmcpIHtcbiAgICAgICAgaWYgKHBhcnNlZFZhbHVlW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHBhcnNlZFZhbHVlW2tleV0gPSBmYWxsYmFja0JyYW5kaW5nW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHBhcnNlZFZhbHVlW2tleV0gPT09ICdvYmplY3QnICYmIHR5cGVvZiBmYWxsYmFja0JyYW5kaW5nW2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcGFyc2VkVmFsdWVba2V5XSA9IE9iamVjdC5hc3NpZ24oZmFsbGJhY2tCcmFuZGluZ1trZXldLCBwYXJzZWRWYWx1ZVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hcHBseUJyYW5kaW5nU2VydmljZS5hcHBseUJyYW5kaW5nKHBhcnNlZFZhbHVlKTtcbiAgICAgIHRoaXMubmV3QnJhbmRpbmcubmV4dChwYXJzZWRWYWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbm90IHZhbGlkIEpTT047XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblVwT2JqZWN0cyh2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmtleXModmFsdWUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmICh2YWx1ZVtrZXldID09PSBudWxsIHx8IHZhbHVlW2tleV0gPT09ICcnKSB7XG4gICAgICAgIGRlbGV0ZSB2YWx1ZVtrZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7IGJyYW5kaW5nTmFtZSQgfCBhc3luYyB9fTwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ3BhbGV0dGUnXCJcbiAgICBbbGFiZWxdPVwiJ0JyYW5kaW5nJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3BhdGhdPVwiJy9icmFuZGluZy1lZGl0b3InXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInY29nJ1wiXG4gICAgW2xhYmVsXT1cImJyYW5kaW5nTmFtZSQgfCBhc3luY1wiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLS1mdWxscGFnZSBjb250ZW50LWZ1bGxwYWdlXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBzZXBhcmF0b3JcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPnt7IGJyYW5kaW5nTmFtZSQgfCBhc3luYyB9fSDigJQge3sgdGFiTmFtZSQgfCBhc3luYyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPHJvdXRlci1vdXRsZXRcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgIChhY3RpdmF0ZSk9XCJyb3V0ZUFjdGl2YXRlZCgkZXZlbnQpXCJcbiAgPjwvcm91dGVyLW91dGxldD5cblxuICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgc2VwYXJhdG9yXCI+XG4gICAgPCEtLSBmb290ZXIgY29udGVudCAtLT5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctY2FuY2VsXCJcbiAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICBkYXRhLWN5PVwiYnJhbmRpbmctc2F2ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2wuaW52YWxpZFwiXG4gICAgICAoY2xpY2spPVwic2F2ZUJyYW5kaW5nKClcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgU2F2ZVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1zYXZlLWFzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbC5pbnZhbGlkXCJcbiAgICAgIChjbGljayk9XCJvcGVuUHJldmlldygpXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIE9wZW4gcHJldmlld1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1zZXQtYXMtbGF0ZXN0XCJcbiAgICAgIChjbGljayk9XCJtYXJrQXNBY3RpdmUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNHbG9iYWxCcmFuZGluZyQgfCBhc3luY1wiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBTZXQgYXMgZ2xvYmFsXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JyYW5kaW5nL3NoYXJlZC9sYXp5L2VkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldC9lZGl0LWJyYW5kaW5nLXJvdXRlci1vdXRsZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0L2VkaXQtYnJhbmRpbmctcm91dGVyLW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixvQkFBb0IsRUFDckIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQXdDLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRaEUsTUFBTSxPQUFPLGlDQUFpQztJQVc1QyxZQUNVLGNBQThCLEVBQzlCLEtBQTJCLEVBQzNCLE1BQWMsRUFDZCxLQUFtQixFQUNuQixvQkFBaUQsRUFDakQsUUFBeUI7UUFMekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBNkI7UUFDakQsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFmbkMsZ0JBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUl6QyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUM3RCxnQ0FBMkIsR0FBRyxJQUFJLGVBQWUsQ0FFdkQsSUFBSSxDQUFDLENBQUM7UUFVTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNwRCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDZixPQUFPLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FDbkQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUNwRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJO2FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDbEQsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNmLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3hDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxTQUFTLENBQUMseUJBQXlCLEVBQUUsQ0FBQztvQkFDeEMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RixDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBcUQ7UUFDbEUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDL0MsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLGNBQWMsQ0FDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN0RCxDQUFDO1lBRUYsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3JFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM3RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFDcEYsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1lBQ2xELE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2xCLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFDOUU7Z0JBQ0UsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUMvQixVQUFVLEVBQUUsSUFBSTthQUNqQixDQUNGLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDaEIsT0FBTyxDQUNMLHlGQUF5RixDQUMxRixDQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWTtRQUNoQixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDckUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzdELE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNwRixNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUF3QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNELE1BQU0sZ0JBQWdCLEdBQXdCLFNBQVMsQ0FDckQsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQzdDLENBQUM7WUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2pELEtBQUssTUFBTSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ25DLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztnQkFFRCxJQUFJLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN0RixXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDNUUsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsa0JBQWtCO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQTBCO1FBQy9DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDN0MsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F2SlUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsMkZDcEI5QywraURBOERBLDRDRDVDWSxZQUFZLDBKQUFFLFVBQVU7OzJGQUV2QixpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0UsaUNBQWlDLGNBRS9CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgQXBwU3RhdGVTZXJ2aWNlLCBDb3JlTW9kdWxlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQXBwbHlCcmFuZGluZ0xvY2FsbHlTZXJ2aWNlLFxuICBCcmFuZGluZ09wdGlvbnNKc29uLFxuICBTdG9yZUJyYW5kaW5nU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2JyYW5kaW5nL3NoYXJlZC9kYXRhJztcbmltcG9ydCB7IEFzeW5jVmFsaWRhdG9yLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1lZGl0LWJyYW5kaW5nLXJvdXRlci1vdXRsZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1icmFuZGluZy1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JvdXRlck91dGxldCwgQ29yZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdEJyYW5kaW5nUm91dGVyT3V0bGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgYnJhbmRpbmdOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBmb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIGZhbGxiYWNrQnJhbmRpbmckOiBPYnNlcnZhYmxlPEJyYW5kaW5nT3B0aW9uc0pzb24+O1xuICB0YWJOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBpc0dsb2JhbEJyYW5kaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJpdmF0ZSBuZXdCcmFuZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJhbmRpbmdPcHRpb25zSnNvbj4obnVsbCk7XG4gIHByaXZhdGUgY3VycmVudGx5RGlzcGxheWVkQ29tcG9uZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAoQ29udHJvbFZhbHVlQWNjZXNzb3IgJiBQYXJ0aWFsPEFzeW5jVmFsaWRhdG9yPikgfCBudWxsXG4gID4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmVCcmFuZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBseUJyYW5kaW5nU2VydmljZTogQXBwbHlCcmFuZGluZ0xvY2FsbHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmlzR2xvYmFsQnJhbmRpbmckID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnBpcGUoXG4gICAgICBtYXAoKHsgdGFncyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB0YWdzPy5pbmNsdWRlcygnbGF0ZXN0Jyk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy50YWJOYW1lJCA9IHRoaXMuY3VycmVudGx5RGlzcGxheWVkQ29tcG9uZW50LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5maXJzdENoaWxkLmRhdGEpLFxuICAgICAgbWFwKGRhdGEgPT4gZGF0YS50YWJOYW1lKVxuICAgICk7XG4gICAgdGhpcy5icmFuZGluZ05hbWUkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMucGlwZShtYXAocGFyYW1zID0+IHBhcmFtcy5uYW1lKSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5hZGRWYWxpZGF0b3JzKGNvbnRyb2wgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZShjb250cm9sLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiB7IGludmFsaWRKc29uOiB0cnVlIH07XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5mYWxsYmFja0JyYW5kaW5nJCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5waXBlKG1hcChkYXRhID0+IGRhdGEuZmFsbGJhY2tCcmFuZGluZykpO1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGJyYW5kaW5nIH0pID0+IHtcbiAgICAgICAgdGhpcy5hcHBseUJyYW5kaW5nU2VydmljZS5hcHBseUJyYW5kaW5nKGJyYW5kaW5nKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShKU09OLnN0cmluZ2lmeShicmFuZGluZywgbnVsbCwgMikpO1xuICAgICAgfSk7XG4gICAgdGhpcy5jdXJyZW50bHlEaXNwbGF5ZWRDb21wb25lbnQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKGNvbXBvbmVudCA9PiB7XG4gICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XG4gICAgICBjb21wb25lbnQucmVnaXN0ZXJPbkNoYW5nZSh2YWx1ZSA9PiB0aGlzLm9uQnJhbmRpbmdWYXJDaGFuZ2VzKHZhbHVlKSk7XG4gICAgICBjb21wb25lbnQud3JpdGVWYWx1ZSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgICAgIGlmIChjb21wb25lbnQudmFsaWRhdGUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5hZGRBc3luY1ZhbGlkYXRvcnMoZm9ybSA9PiBjb21wb25lbnQudmFsaWRhdGUoZm9ybSkpO1xuICAgICAgICBpZiAoY29tcG9uZW50LnJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UpIHtcbiAgICAgICAgICBjb21wb25lbnQucmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSgoKSA9PiB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5QnJhbmRpbmdTZXJ2aWNlLnJlc2V0QnJhbmRpbmcoKTtcbiAgfVxuXG4gIHJvdXRlQWN0aXZhdGVkKGV2ZW50OiBDb250cm9sVmFsdWVBY2Nlc3NvciAmIFBhcnRpYWw8QXN5bmNWYWxpZGF0b3I+KSB7XG4gICAgdGhpcy5jdXJyZW50bHlEaXNwbGF5ZWRDb21wb25lbnQubmV4dChldmVudCk7XG4gIH1cblxuICBhc3luYyBzYXZlQnJhbmRpbmcoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRCcmFuZGluZyA9IHRoaXMubmV3QnJhbmRpbmcudmFsdWU7XG4gICAgICBjb25zdCB0YWdzT2ZDdXJyZW50VmVyc2lvbiA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEucGlwZShtYXAoZGF0YSA9PiBkYXRhLnRhZ3MpKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgY3VycmVudEJyYW5kaW5nTmFtZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zLm5hbWU7XG4gICAgICBjb25zdCB7IHZhcmlhbnRzIH0gPSBhd2FpdCB0aGlzLnN0b3JlLmxvYWRCcmFuZGluZ1ZhcmlhbnRzKCk7XG4gICAgICBjb25zdCBjdXJyZW50QnJhbmRpbmdPYmogPSB2YXJpYW50cy5maW5kKHYgPT4gdi50YWdzLmluY2x1ZGVzKGN1cnJlbnRCcmFuZGluZ05hbWUpKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gY3VycmVudEJyYW5kaW5nT2JqLnZlcnNpb247XG4gICAgICBhd2FpdCB0aGlzLnN0b3JlLnNhdmVFeGlzdGluZ0JyYW5kaW5nKGN1cnJlbnRCcmFuZGluZywgY3VycmVudFZlcnNpb24sIHRhZ3NPZkN1cnJlbnRWZXJzaW9uKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxuICAgICAgICBbJy4uLy4uLycsIGN1cnJlbnRCcmFuZGluZ05hbWUsIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3Qucm91dGVDb25maWcucGF0aF0sXG4gICAgICAgIHtcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuYWxlcnQuc3VjY2VzcyhcbiAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAnQnJhbmRpbmcgc2F2ZWQuIFRvIGFwcGx5IHRoaXMgYnJhbmRpbmcsIHJlZnJlc2ggYW55IG9wZW4gd2luZG93IHRoYXQgbWlnaHQgYmUgYWZmZWN0ZWQuJ1xuICAgICAgICApXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlLCAnZGFuZ2VyJyk7XG4gICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYnJhbmRpbmctZWRpdG9yJ10pO1xuICB9XG5cbiAgYXN5bmMgb3BlblByZXZpZXcoKSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zLm5hbWU7XG4gICAgdGhpcy5zdG9yZS5vcGVuUHJldmlld0ZvckJyYW5kaW5nKG5hbWUpO1xuICB9XG5cbiAgYXN5bmMgbWFya0FzQWN0aXZlKCkge1xuICAgIGNvbnN0IGN1cnJlbnRCcmFuZGluZ05hbWUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtcy5uYW1lO1xuICAgIGNvbnN0IHsgdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMuc3RvcmUubG9hZEJyYW5kaW5nVmFyaWFudHMoKTtcbiAgICBjb25zdCBjdXJyZW50QnJhbmRpbmdPYmogPSB2YXJpYW50cy5maW5kKHYgPT4gdi50YWdzLmluY2x1ZGVzKGN1cnJlbnRCcmFuZGluZ05hbWUpKTtcbiAgICBhd2FpdCB0aGlzLnN0b3JlLm1hcmtBc0FjdGl2ZShjdXJyZW50QnJhbmRpbmdPYmopO1xuICB9XG5cbiAgYXN5bmMgb25CcmFuZGluZ1ZhckNoYW5nZXModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZFZhbHVlOiBCcmFuZGluZ09wdGlvbnNKc29uID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgICBjb25zdCBmYWxsYmFja0JyYW5kaW5nOiBCcmFuZGluZ09wdGlvbnNKc29uID0gY2xvbmVEZWVwKFxuICAgICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZhbGxiYWNrQnJhbmRpbmckKVxuICAgICAgKTtcbiAgICAgIHRoaXMuY2xlYW5VcE9iamVjdHMocGFyc2VkVmFsdWUpO1xuICAgICAgdGhpcy5jbGVhblVwT2JqZWN0cyhwYXJzZWRWYWx1ZS5icmFuZGluZ0Nzc1ZhcnMpO1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZmFsbGJhY2tCcmFuZGluZykge1xuICAgICAgICBpZiAocGFyc2VkVmFsdWVba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGFyc2VkVmFsdWVba2V5XSA9IGZhbGxiYWNrQnJhbmRpbmdba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgcGFyc2VkVmFsdWVba2V5XSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGZhbGxiYWNrQnJhbmRpbmdba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBwYXJzZWRWYWx1ZVtrZXldID0gT2JqZWN0LmFzc2lnbihmYWxsYmFja0JyYW5kaW5nW2tleV0sIHBhcnNlZFZhbHVlW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFwcGx5QnJhbmRpbmdTZXJ2aWNlLmFwcGx5QnJhbmRpbmcocGFyc2VkVmFsdWUpO1xuICAgICAgdGhpcy5uZXdCcmFuZGluZy5uZXh0KHBhcnNlZFZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBub3QgdmFsaWQgSlNPTjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFuVXBPYmplY3RzKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBPYmplY3Qua2V5cyh2YWx1ZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHZhbHVlW2tleV0gPT09IG51bGwgfHwgdmFsdWVba2V5XSA9PT0gJycpIHtcbiAgICAgICAgZGVsZXRlIHZhbHVlW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+e3sgYnJhbmRpbmdOYW1lJCB8IGFzeW5jIH19PC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCIncGFsZXR0ZSdcIlxuICAgIFtsYWJlbF09XCInQnJhbmRpbmcnIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0aF09XCInL2JyYW5kaW5nLWVkaXRvcidcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjb2cnXCJcbiAgICBbbGFiZWxdPVwiYnJhbmRpbmdOYW1lJCB8IGFzeW5jXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtLWZ1bGxwYWdlIGNvbnRlbnQtZnVsbHBhZ2VcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+e3sgYnJhbmRpbmdOYW1lJCB8IGFzeW5jIH19IOKAlCB7eyB0YWJOYW1lJCB8IGFzeW5jIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gIDwvZGl2PlxuICA8cm91dGVyLW91dGxldFxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgKGFjdGl2YXRlKT1cInJvdXRlQWN0aXZhdGVkKCRldmVudClcIlxuICA+PC9yb3V0ZXItb3V0bGV0PlxuXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBzZXBhcmF0b3JcIj5cbiAgICA8IS0tIGZvb3RlciBjb250ZW50IC0tPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1jYW5jZWxcIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIENhbmNlbFxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIGRhdGEtY3k9XCJicmFuZGluZy1zYXZlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbC5pbnZhbGlkXCJcbiAgICAgIChjbGljayk9XCJzYXZlQnJhbmRpbmcoKVwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBTYXZlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgZGF0YS1jeT1cImJyYW5kaW5nLXNhdmUtYXNcIlxuICAgICAgW2Rpc2FibGVkXT1cImZvcm1Db250cm9sLmludmFsaWRcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5QcmV2aWV3KClcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgT3BlbiBwcmV2aWV3XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgZGF0YS1jeT1cImJyYW5kaW5nLXNldC1hcy1sYXRlc3RcIlxuICAgICAgKGNsaWNrKT1cIm1hcmtBc0FjdGl2ZSgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0dsb2JhbEJyYW5kaW5nJCB8IGFzeW5jXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIFNldCBhcyBnbG9iYWxcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -18,6 +18,7 @@ import { CockpitSetupStep2Component } from './setup/cockpit-setup-step2.componen
18
18
  import { CockpitSetupStep3Component } from './setup/cockpit-setup-step3.component';
19
19
  import { CockpitSetupStep4Component } from './setup/cockpit-setup-step4.component';
20
20
  import { CockpitSetupStepperButtonsComponent } from './setup/cockpit-setup-stepper-buttons.component';
21
+ import { PluginLoadedPipe } from '@c8y/ngx-components';
21
22
  import * as i0 from "@angular/core";
22
23
  import * as i1 from "./cockpit-config.service";
23
24
  export class CockpitConfigModule {
@@ -40,7 +41,8 @@ export class CockpitConfigModule {
40
41
  PopoverModule,
41
42
  TooltipModule,
42
43
  EcosystemModule,
43
- IconSelectorModule] }); }
44
+ IconSelectorModule,
45
+ PluginLoadedPipe] }); }
44
46
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CockpitConfigModule, providers: [
45
47
  CockpitConfigGuard,
46
48
  hookRoute({
@@ -107,7 +109,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
107
109
  PopoverModule,
108
110
  TooltipModule,
109
111
  EcosystemModule,
110
- IconSelectorModule
112
+ IconSelectorModule,
113
+ PluginLoadedPipe
111
114
  ],
112
115
  providers: [
113
116
  CockpitConfigGuard,
@@ -150,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
150
153
  ]
151
154
  }]
152
155
  }], ctorParameters: () => [{ type: i1.CockpitConfigService }] });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ja3BpdC1jb25maWcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvY29ja3BpdC1jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxXQUFXLEVBRVgsUUFBUSxFQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVD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Q0FBQzt3QkFDRixhQUFhLENBQUMsa0JBQWtCLENBQUM7d0JBQ2pDLFdBQVcsQ0FBQzs0QkFDVjtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMscUNBQXFDLENBQUM7Z0NBQ3JELE9BQU8sRUFBRSxhQUFhO2dDQUN0QixRQUFRLEVBQUUsRUFBRTs2QkFDYjs0QkFDRDtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO2dDQUMxQixPQUFPLEVBQUUsaUJBQWlCO2dDQUMxQixRQUFRLEVBQUUsRUFBRTs2QkFDYjs0QkFDRDtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7Z0NBQ2pDLE9BQU8sRUFBRSxzQkFBc0I7Z0NBQy9CLFFBQVEsRUFBRSxFQUFFOzZCQUNiOzRCQUNEO2dDQUNFLFNBQVMsRUFBRSxRQUFRLENBQUMsS0FBSztnQ0FDekIsU0FBUyxFQUFFLDBCQUEwQjtnQ0FDckMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztnQ0FDaEMsT0FBTyxFQUFFLHNCQUFzQjtnQ0FDL0IsUUFBUSxFQUFFLEVBQUU7NkJBQ2I7eUJBQ2EsQ0FBQztxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29yZU1vZHVsZSxcbiAgZ2V0dGV4dCxcbiAgaG9va05hdmlnYXRvcixcbiAgaG9va1JvdXRlLFxuICBob29rU3RlcHBlcixcbiAgU2V0dXBTdGVwLFxuICBTdGVwcGVyc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFzc2V0U2VsZWN0b3JNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Fzc2V0cy1uYXZpZ2F0b3InO1xuaW1wb3J0IHsgRWNvc3lzdGVtTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0nO1xuaW1wb3J0IHsgSWNvblNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb2NrcGl0Q29uZmlnR3VhcmQgfSBmcm9tICcuL2NvY2twaXQtY29uZmlnLmd1YXJkJztcbmltcG9ydCB7IENPQ0tQSVRfQ09ORklHX1BBVEggfSBmcm9tICcuL2NvY2twaXQtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IENvY2twaXRDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IENvY2twaXRDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmVDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmUtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIb21lRGFzaGJvYXJkQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9ob21lLWRhc2hib2FyZC1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IE1pc2NDb25maWdDb21wb25lbnQgfSBmcm9tICcuL21pc2MtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb290Tm9kZUNvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vcm9vdC1ub2RlLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ja3BpdFNldHVwU3RlcDFDb21wb25lbnQgfSBmcm9tICcuL3NldHVwL2NvY2twaXQtc2V0dXAtc3RlcDEuY29tcG9uZW50JztcbmltcG9ydCB7IENvY2twaXRTZXR1cFN0ZXAyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR1cC9jb2NrcGl0LXNldHVwLXN0ZXAyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2NrcGl0U2V0dXBTdGVwM0NvbXBvbmVudCB9IGZyb20gJy4vc2V0dXAvY29ja3BpdC1zZXR1cC1zdGVwMy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ja3BpdFNldHVwU3RlcDRDb21wb25lbnQgfSBmcm9tICcuL3NldHVwL2NvY2twaXQtc2V0dXAtc3RlcDQuY29tcG9uZW50JztcbmltcG9ydCB7IENvY2twaXRTZXR1cFN0ZXBwZXJCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR1cC9jb2NrcGl0LXNldHVwLXN0ZXBwZXItYnV0dG9ucy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDb2NrcGl0Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwMUNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwMkNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwM0NvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwNENvbXBvbmVudCxcbiAgICBGZWF0dXJlQ29uZmlnQ29tcG9uZW50LFxuICAgIFJvb3ROb2RlQ29uZmlnQ29tcG9uZW50LFxuICAgIEhvbWVEYXNoYm9hcmRDb25maWdDb21wb25lbnQsXG4gICAgTWlzY0NvbmZpZ0NvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwcGVyQnV0dG9uc0NvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBBc3NldFNlbGVjdG9yTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBFY29zeXN0ZW1Nb2R1bGUsXG4gICAgSWNvblNlbGVjdG9yTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIENvY2twaXRDb25maWdHdWFyZCxcbiAgICBob29rUm91dGUoe1xuICAgICAgcGF0aDogQ09DS1BJVF9DT05GSUdfUEFUSCxcbiAgICAgIGNvbXBvbmVudDogQ29ja3BpdENvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgICBjYW5BY3RpdmF0ZTogW0NvY2twaXRDb25maWdHdWFyZF1cbiAgICB9KSxcbiAgICBob29rTmF2aWdhdG9yKENvY2twaXRDb25maWdHdWFyZCksXG4gICAgaG9va1N0ZXBwZXIoW1xuICAgICAge1xuICAgICAgICBzdGVwcGVySWQ6IFN0ZXBwZXJzLlNFVFVQLFxuICAgICAgICBjb21wb25lbnQ6IENvY2twaXRTZXR1cFN0ZXAxQ29tcG9uZW50LFxuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnVGl0bGUsIGljb24sIGFuZCBuYXZpZ2F0b3IgY29sbGFwc2UnKSxcbiAgICAgICAgc2V0dXBJZDogJ2NvY2twaXRNaXNjJyxcbiAgICAgICAgcHJpb3JpdHk6IDQwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGVwcGVySWQ6IFN0ZXBwZXJzLlNFVFVQLFxuICAgICAgICBjb21wb25lbnQ6IENvY2twaXRTZXR1cFN0ZXAyQ29tcG9uZW50LFxuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRmVhdHVyZXMnKSxcbiAgICAgICAgc2V0dXBJZDogJ2NvY2twaXRGZWF0dXJlcycsXG4gICAgICAgIHByaW9yaXR5OiAzMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RlcHBlcklkOiBTdGVwcGVycy5TRVRVUCxcbiAgICAgICAgY29tcG9uZW50OiBDb2NrcGl0U2V0dXBTdGVwM0NvbXBvbmVudCxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ1RvcCBsZXZlbCBub2RlcycpLFxuICAgICAgICBzZXR1cElkOiAnY29ja3BpdFRvcExldmVsTm9kZXMnLFxuICAgICAgICBwcmlvcml0eTogMjBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0ZXBwZXJJZDogU3RlcHBlcnMuU0VUVVAsXG4gICAgICAgIGNvbXBvbmVudDogQ29ja3BpdFNldHVwU3RlcDRDb21wb25lbnQsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdIb21lIGRhc2hib2FyZCcpLFxuICAgICAgICBzZXR1cElkOiAnY29ja3BpdEhvbWVEYXNoYm9hcmQnLFxuICAgICAgICBwcmlvcml0eTogMTBcbiAgICAgIH1cbiAgICBdIGFzIFNldHVwU3RlcFtdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvY2twaXRDb25maWdNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IENvY2twaXRDb25maWdTZXJ2aWNlKSB7XG4gICAgLy8gb25seSBmb3IgREksIG5vdCB1c2VkIGJ1dCBuZWVkZWQuXG4gIH1cbn1cbiJdfQ==
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ja3BpdC1jb25maWcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29ja3BpdC1jb25maWcvY29ja3BpdC1jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxXQUFXLEVBRVgsUUFBUSxFQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVD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bUJBQW1COzRCQUN6QixTQUFTLEVBQUUsNkJBQTZCOzRCQUN4QyxXQUFXLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzt5QkFDbEMsQ0FBQzt3QkFDRixhQUFhLENBQUMsa0JBQWtCLENBQUM7d0JBQ2pDLFdBQVcsQ0FBQzs0QkFDVjtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMscUNBQXFDLENBQUM7Z0NBQ3JELE9BQU8sRUFBRSxhQUFhO2dDQUN0QixRQUFRLEVBQUUsRUFBRTs2QkFDYjs0QkFDRDtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO2dDQUMxQixPQUFPLEVBQUUsaUJBQWlCO2dDQUMxQixRQUFRLEVBQUUsRUFBRTs2QkFDYjs0QkFDRDtnQ0FDRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0NBQ3pCLFNBQVMsRUFBRSwwQkFBMEI7Z0NBQ3JDLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7Z0NBQ2pDLE9BQU8sRUFBRSxzQkFBc0I7Z0NBQy9CLFFBQVEsRUFBRSxFQUFFOzZCQUNiOzRCQUNEO2dDQUNFLFNBQVMsRUFBRSxRQUFRLENBQUMsS0FBSztnQ0FDekIsU0FBUyxFQUFFLDBCQUEwQjtnQ0FDckMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztnQ0FDaEMsT0FBTyxFQUFFLHNCQUFzQjtnQ0FDL0IsUUFBUSxFQUFFLEVBQUU7NkJBQ2I7eUJBQ2EsQ0FBQztxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29yZU1vZHVsZSxcbiAgZ2V0dGV4dCxcbiAgaG9va05hdmlnYXRvcixcbiAgaG9va1JvdXRlLFxuICBob29rU3RlcHBlcixcbiAgU2V0dXBTdGVwLFxuICBTdGVwcGVyc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFzc2V0U2VsZWN0b3JNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Fzc2V0cy1uYXZpZ2F0b3InO1xuaW1wb3J0IHsgRWNvc3lzdGVtTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0nO1xuaW1wb3J0IHsgSWNvblNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb2NrcGl0Q29uZmlnR3VhcmQgfSBmcm9tICcuL2NvY2twaXQtY29uZmlnLmd1YXJkJztcbmltcG9ydCB7IENPQ0tQSVRfQ09ORklHX1BBVEggfSBmcm9tICcuL2NvY2twaXQtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IENvY2twaXRDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IENvY2twaXRDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb2NrcGl0LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmVDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmUtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIb21lRGFzaGJvYXJkQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9ob21lLWRhc2hib2FyZC1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IE1pc2NDb25maWdDb21wb25lbnQgfSBmcm9tICcuL21pc2MtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb290Tm9kZUNvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vcm9vdC1ub2RlLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ja3BpdFNldHVwU3RlcDFDb21wb25lbnQgfSBmcm9tICcuL3NldHVwL2NvY2twaXQtc2V0dXAtc3RlcDEuY29tcG9uZW50JztcbmltcG9ydCB7IENvY2twaXRTZXR1cFN0ZXAyQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR1cC9jb2NrcGl0LXNldHVwLXN0ZXAyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2NrcGl0U2V0dXBTdGVwM0NvbXBvbmVudCB9IGZyb20gJy4vc2V0dXAvY29ja3BpdC1zZXR1cC1zdGVwMy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ja3BpdFNldHVwU3RlcDRDb21wb25lbnQgfSBmcm9tICcuL3NldHVwL2NvY2twaXQtc2V0dXAtc3RlcDQuY29tcG9uZW50JztcbmltcG9ydCB7IENvY2twaXRTZXR1cFN0ZXBwZXJCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR1cC9jb2NrcGl0LXNldHVwLXN0ZXBwZXItYnV0dG9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGx1Z2luTG9hZGVkUGlwZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDb2NrcGl0Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwMUNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwMkNvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwM0NvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwNENvbXBvbmVudCxcbiAgICBGZWF0dXJlQ29uZmlnQ29tcG9uZW50LFxuICAgIFJvb3ROb2RlQ29uZmlnQ29tcG9uZW50LFxuICAgIEhvbWVEYXNoYm9hcmRDb25maWdDb21wb25lbnQsXG4gICAgTWlzY0NvbmZpZ0NvbXBvbmVudCxcbiAgICBDb2NrcGl0U2V0dXBTdGVwcGVyQnV0dG9uc0NvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBBc3NldFNlbGVjdG9yTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBFY29zeXN0ZW1Nb2R1bGUsXG4gICAgSWNvblNlbGVjdG9yTW9kdWxlLFxuICAgIFBsdWdpbkxvYWRlZFBpcGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29ja3BpdENvbmZpZ0d1YXJkLFxuICAgIGhvb2tSb3V0ZSh7XG4gICAgICBwYXRoOiBDT0NLUElUX0NPTkZJR19QQVRILFxuICAgICAgY29tcG9uZW50OiBDb2NrcGl0Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICAgIGNhbkFjdGl2YXRlOiBbQ29ja3BpdENvbmZpZ0d1YXJkXVxuICAgIH0pLFxuICAgIGhvb2tOYXZpZ2F0b3IoQ29ja3BpdENvbmZpZ0d1YXJkKSxcbiAgICBob29rU3RlcHBlcihbXG4gICAgICB7XG4gICAgICAgIHN0ZXBwZXJJZDogU3RlcHBlcnMuU0VUVVAsXG4gICAgICAgIGNvbXBvbmVudDogQ29ja3BpdFNldHVwU3RlcDFDb21wb25lbnQsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdUaXRsZSwgaWNvbiwgYW5kIG5hdmlnYXRvciBjb2xsYXBzZScpLFxuICAgICAgICBzZXR1cElkOiAnY29ja3BpdE1pc2MnLFxuICAgICAgICBwcmlvcml0eTogNDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0ZXBwZXJJZDogU3RlcHBlcnMuU0VUVVAsXG4gICAgICAgIGNvbXBvbmVudDogQ29ja3BpdFNldHVwU3RlcDJDb21wb25lbnQsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdGZWF0dXJlcycpLFxuICAgICAgICBzZXR1cElkOiAnY29ja3BpdEZlYXR1cmVzJyxcbiAgICAgICAgcHJpb3JpdHk6IDMwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGVwcGVySWQ6IFN0ZXBwZXJzLlNFVFVQLFxuICAgICAgICBjb21wb25lbnQ6IENvY2twaXRTZXR1cFN0ZXAzQ29tcG9uZW50LFxuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnVG9wIGxldmVsIG5vZGVzJyksXG4gICAgICAgIHNldHVwSWQ6ICdjb2NrcGl0VG9wTGV2ZWxOb2RlcycsXG4gICAgICAgIHByaW9yaXR5OiAyMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RlcHBlcklkOiBTdGVwcGVycy5TRVRVUCxcbiAgICAgICAgY29tcG9uZW50OiBDb2NrcGl0U2V0dXBTdGVwNENvbXBvbmVudCxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0hvbWUgZGFzaGJvYXJkJyksXG4gICAgICAgIHNldHVwSWQ6ICdjb2NrcGl0SG9tZURhc2hib2FyZCcsXG4gICAgICAgIHByaW9yaXR5OiAxMFxuICAgICAgfVxuICAgIF0gYXMgU2V0dXBTdGVwW10pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29ja3BpdENvbmZpZ01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogQ29ja3BpdENvbmZpZ1NlcnZpY2UpIHtcbiAgICAvLyBvbmx5IGZvciBESSwgbm90IHVzZWQgYnV0IG5lZWRlZC5cbiAgfVxufVxuIl19