@provoly/dashboard 1.2.8 → 1.2.10

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 (143) hide show
  1. package/admin/admin.module.d.ts +14 -14
  2. package/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.d.ts +5 -16
  3. package/admin/components/admin-dataset/{shared/admin-form-dataset → admin-form-dataset}/admin-form-dataset.component.d.ts +8 -7
  4. package/admin/components/admin-dataset/store/admin-dataset.actions.d.ts +23 -18
  5. package/admin/components/admin-dataset/store/admin-dataset.effects.d.ts +9 -6
  6. package/admin/components/admin-dataset/store/admin-dataset.service.d.ts +2 -1
  7. package/admin/components/shared/add-category-modal/add-category-modal.component.d.ts +39 -0
  8. package/admin/i18n/en.translations.d.ts +23 -8
  9. package/admin/i18n/fr.translations.d.ts +23 -8
  10. package/dataset/components/dataset.component.d.ts +3 -7
  11. package/dataset/dataset.module.d.ts +7 -9
  12. package/dataset/i18n/en.translations.d.ts +8 -0
  13. package/dataset/i18n/fr.translations.d.ts +8 -0
  14. package/dataset/public-api.d.ts +0 -1
  15. package/dataset/style/_o-pry-dataset.scss +5 -42
  16. package/esm2022/admin/admin.module.mjs +7 -8
  17. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +22 -53
  18. package/esm2022/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.mjs +1 -1
  19. package/esm2022/admin/components/admin-dataset/admin-form-dataset/admin-form-dataset.component.mjs +115 -0
  20. package/esm2022/admin/components/admin-dataset/admin-new-dataset/admin-new-dataset.component.mjs +1 -1
  21. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +3 -3
  22. package/esm2022/admin/components/admin-dataset/store/admin-dataset.actions.mjs +11 -10
  23. package/esm2022/admin/components/admin-dataset/store/admin-dataset.effects.mjs +2 -1
  24. package/esm2022/admin/components/admin-dataset/store/admin-dataset.service.mjs +10 -4
  25. package/esm2022/admin/components/shared/add-category-modal/add-category-modal.component.mjs +73 -0
  26. package/esm2022/admin/i18n/en.translations.mjs +25 -10
  27. package/esm2022/admin/i18n/fr.translations.mjs +26 -11
  28. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +4 -5
  29. package/esm2022/dataset/components/dataset.component.mjs +8 -23
  30. package/esm2022/dataset/dataset.module.mjs +12 -13
  31. package/esm2022/dataset/i18n/en.translations.mjs +9 -1
  32. package/esm2022/dataset/i18n/fr.translations.mjs +10 -2
  33. package/esm2022/dataset/public-api.mjs +1 -2
  34. package/esm2022/dataset/style/css.component.mjs +3 -3
  35. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +7 -27
  36. package/esm2022/lib/core/components/chips-selector/chips-selector.module.mjs +21 -0
  37. package/esm2022/lib/core/components/select-image/select-image.component.mjs +1 -1
  38. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +3 -3
  39. package/esm2022/lib/core/components/share/share.module.mjs +8 -12
  40. package/esm2022/lib/core/core.module.mjs +4 -8
  41. package/esm2022/lib/core/i18n/en.translations.mjs +8 -8
  42. package/esm2022/lib/core/i18n/fr.translations.mjs +9 -9
  43. package/esm2022/lib/core/pipes/get-secured-image/get-secured-image.pipe.mjs +21 -0
  44. package/esm2022/lib/core/pipes/since-date/since-date.module.mjs +18 -0
  45. package/esm2022/lib/core/pipes/since-date/since-date.pipe.mjs +55 -0
  46. package/esm2022/lib/core/pipes/translate-id/translate-id.pipe.mjs +108 -0
  47. package/esm2022/lib/core/pipes/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +23 -0
  48. package/esm2022/lib/core/public-api.mjs +7 -4
  49. package/esm2022/lib/core/store/data-source/data-source.actions.mjs +4 -2
  50. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +4 -1
  51. package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
  52. package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +6 -2
  53. package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +4 -2
  54. package/esm2022/lib/core/store/data-source/data-source.service.mjs +6 -1
  55. package/esm2022/lib/core/store/data-source/datasource-utils.mjs +22 -1
  56. package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +2 -2
  57. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.mjs +60 -0
  58. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.mjs +95 -0
  59. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +53 -48
  60. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +6 -7
  61. package/esm2022/lib/dashboard/components/widgets/public-api.mjs +3 -1
  62. package/esm2022/lib/dashboard/dashboard.module.mjs +19 -7
  63. package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +2 -2
  64. package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +2 -3
  65. package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +2 -3
  66. package/esm2022/pipeline/pipeline.module.mjs +8 -9
  67. package/esm2022/presentation/components/presentation.component.mjs +2 -3
  68. package/esm2022/presentation/presentation.module.mjs +8 -9
  69. package/esm2022/restitution/components/restitution/restitution.component.mjs +4 -4
  70. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +2 -3
  71. package/esm2022/restitution/restitution.module.mjs +2 -3
  72. package/esm2022/restitution/style/css.component.mjs +2 -2
  73. package/fesm2022/provoly-dashboard-admin.mjs +194 -109
  74. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  75. package/fesm2022/provoly-dashboard-dataset.mjs +51 -79
  76. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  77. package/fesm2022/provoly-dashboard-pipeline.mjs +17 -19
  78. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  79. package/fesm2022/provoly-dashboard-presentation.mjs +8 -10
  80. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  81. package/fesm2022/provoly-dashboard-restitution.mjs +7 -9
  82. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  83. package/fesm2022/provoly-dashboard.mjs +3475 -3233
  84. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  85. package/lib/core/components/chips-selector/chips-selector.component.d.ts +1 -6
  86. package/lib/core/components/chips-selector/chips-selector.module.d.ts +11 -0
  87. package/lib/core/components/share/share.module.d.ts +3 -4
  88. package/lib/core/core.module.d.ts +26 -27
  89. package/lib/core/i18n/en.translations.d.ts +7 -7
  90. package/lib/core/i18n/fr.translations.d.ts +7 -7
  91. package/{components/sinceDate/sinceDate.module.d.ts → lib/core/pipes/since-date/since-date.module.d.ts} +3 -2
  92. package/{components/sinceDate/sinceDate.pipe.d.ts → lib/core/pipes/since-date/since-date.pipe.d.ts} +4 -4
  93. package/lib/core/{components → pipes}/translate-id/translate-id.pipe.d.ts +0 -2
  94. package/lib/core/public-api.d.ts +6 -3
  95. package/lib/core/store/data-source/data-source.actions.d.ts +7 -0
  96. package/lib/core/store/data-source/data-source.effects.d.ts +3 -0
  97. package/lib/core/store/data-source/data-source.model.d.ts +3 -0
  98. package/lib/core/store/data-source/data-source.reducer.d.ts +2 -0
  99. package/lib/core/store/data-source/data-source.selectors.d.ts +1 -0
  100. package/lib/core/store/data-source/data-source.service.d.ts +2 -0
  101. package/lib/core/store/data-source/datasource-utils.d.ts +4 -1
  102. package/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.d.ts +24 -0
  103. package/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.d.ts +35 -0
  104. package/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.d.ts +19 -11
  105. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +1 -1
  106. package/lib/dashboard/components/widgets/public-api.d.ts +2 -0
  107. package/lib/dashboard/dashboard.module.d.ts +18 -15
  108. package/package.json +13 -19
  109. package/pipeline/pipeline.module.d.ts +3 -4
  110. package/presentation/presentation.module.d.ts +7 -8
  111. package/restitution/components/restitution/restitution.component.d.ts +1 -1
  112. package/restitution/restitution.module.d.ts +1 -2
  113. package/restitution/style/_o-restitution.scss +4 -0
  114. package/styles/base/_typography.scss +4 -0
  115. package/styles/base/_utils.scss +27 -1
  116. package/styles/components/_a-btn.scss +4 -0
  117. package/styles/components/_a-chip.scss +45 -0
  118. package/styles/components/_o-datasource-selector.scss +192 -0
  119. package/styles/components/_o-modal.scss +0 -42
  120. package/styles/components/_o-widget.scss +1 -1
  121. package/styles/layout/_o-base-layout.scss +1 -7
  122. package/styles/main.scss +1 -0
  123. package/styles-theme/main-theme.scss +0 -3
  124. package/components/sinceDate/index.d.ts +0 -5
  125. package/components/sinceDate/public-api.d.ts +0 -2
  126. package/dataset/components/dataset-card/dataset-card.component.d.ts +0 -18
  127. package/dataset/style/_o-pry-dataset-card.scss +0 -85
  128. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +0 -99
  129. package/esm2022/components/sinceDate/provoly-dashboard-components-sinceDate.mjs +0 -5
  130. package/esm2022/components/sinceDate/public-api.mjs +0 -3
  131. package/esm2022/components/sinceDate/sinceDate.module.mjs +0 -16
  132. package/esm2022/components/sinceDate/sinceDate.pipe.mjs +0 -55
  133. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +0 -41
  134. package/esm2022/lib/core/components/get-secured-image/get-secured-image.pipe.mjs +0 -21
  135. package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +0 -114
  136. package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +0 -23
  137. package/fesm2022/provoly-dashboard-components-sinceDate.mjs +0 -75
  138. package/fesm2022/provoly-dashboard-components-sinceDate.mjs.map +0 -1
  139. package/styles-theme/components-theme/_a-chip.theme.scss +0 -32
  140. package/styles-theme/components-theme/_o-pry-dataset-card.theme.scss +0 -26
  141. package/styles-theme/components-theme/_o-pry-dataset.theme.scss +0 -4
  142. /package/lib/core/{components → pipes}/get-secured-image/get-secured-image.pipe.d.ts +0 -0
  143. /package/lib/core/{components → pipes}/translate-item-to-symbol/translate-item-to-symbol.pipe.d.ts +0 -0
@@ -40,7 +40,6 @@ import { AdminDatasetComponent } from './components/admin-dataset/admin-dataset.
40
40
  import { AdminEditDatasetComponent } from './components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component';
41
41
  import { AdminNewDatasetComponent } from './components/admin-dataset/admin-new-dataset/admin-new-dataset.component';
42
42
  import { AdminSelectDatasetComponent } from './components/admin-dataset/admin-select-dataset/admin-select-dataset.component';
43
- import { AdminFormDatasetComponent } from './components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component';
44
43
  import { AdminEnvironmentFormComponent } from './components/admin-environment/admin-environment-form/admin-environment-form.component';
45
44
  import { AdminEnvironmentNewComponent } from './components/admin-environment/admin-environment-new/admin-environment-new.component';
46
45
  import { AdminEnvironmentSelectComponent } from './components/admin-environment/admin-environment-select/admin-environment-select.component';
@@ -101,10 +100,11 @@ import { enTranslations } from './i18n/en.translations';
101
100
  import { frTranslations } from './i18n/fr.translations';
102
101
  import { AdminEffects } from './store/admin.effects';
103
102
  import { adminFeatureKey, adminReducer } from './store/admin.reducer';
104
- import { PrySinceDateModule } from '@provoly/dashboard/components/sinceDate';
105
103
  import { PryDatasetModule } from '@provoly/dashboard/dataset';
106
104
  import { datasetFeatureKey, datasetReducer } from './components/admin-dataset/store/admin-dataset.reducer';
107
105
  import { AdminDatasetEffects } from './components/admin-dataset/store/admin-dataset.effects';
106
+ import { AddCategoryModalComponent } from './components/shared/add-category-modal/add-category-modal.component';
107
+ import { AdminFormDatasetComponent } from './components/admin-dataset/admin-form-dataset/admin-form-dataset.component';
108
108
  import * as i0 from "@angular/core";
109
109
  import * as i1 from "@provoly/dashboard";
110
110
  import * as i2 from "@ngrx/store";
@@ -188,7 +188,8 @@ export class PryAdminModule {
188
188
  AdminClassesCustomizeComponent,
189
189
  AdminClassesCustomizeTooltipComponent,
190
190
  AdminClassesCustomizeSymbolComponent,
191
- PryAssociationComponent], imports: [CommonModule,
191
+ PryAssociationComponent,
192
+ AddCategoryModalComponent], imports: [CommonModule,
192
193
  PryCoreModule,
193
194
  AdminRoutingModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i2.StoreFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, i3.EffectsFeatureModule, PryIconModule,
194
195
  FormsModule,
@@ -204,7 +205,6 @@ export class PryAdminModule {
204
205
  DragDropModule,
205
206
  PryI18nModule,
206
207
  PryExpandPanelModule,
207
- PrySinceDateModule,
208
208
  PryDatasetModule,
209
209
  PryShareModule] }); }
210
210
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, providers: [DatePipe], imports: [CommonModule,
@@ -246,7 +246,6 @@ export class PryAdminModule {
246
246
  DragDropModule,
247
247
  PryI18nModule,
248
248
  PryExpandPanelModule,
249
- PrySinceDateModule,
250
249
  PryDatasetModule,
251
250
  PryShareModule] }); }
252
251
  }
@@ -327,7 +326,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
327
326
  AdminClassesCustomizeComponent,
328
327
  AdminClassesCustomizeTooltipComponent,
329
328
  AdminClassesCustomizeSymbolComponent,
330
- PryAssociationComponent
329
+ PryAssociationComponent,
330
+ AddCategoryModalComponent
331
331
  ],
332
332
  imports: [
333
333
  CommonModule,
@@ -369,10 +369,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
369
369
  DragDropModule,
370
370
  PryI18nModule,
371
371
  PryExpandPanelModule,
372
- PrySinceDateModule,
373
372
  PryDatasetModule,
374
373
  PryShareModule
375
374
  ]
376
375
  }]
377
376
  }], ctorParameters: () => [{ type: i1.PryI18nService }] });
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vYWRtaW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBRWIsYUFBYSxFQUNiLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFGQUFxRixDQUFDO0FBQ2xJLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFGQUFxRixDQUFDO0FBQ2xJLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBQy9ILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFN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QyxDQUFDO3dCQUM3QyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQ3pDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3dCQUM1QyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ3hDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO3dCQUNyRCxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt3QkFDL0MsYUFBYTt3QkFDYixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixjQUFjO3FCQUNmO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVmZmVjdHNNb2R1bGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgUHJ5Q29yZU1vZHVsZSxcbiAgUHJ5STE4bk1vZHVsZSxcbiAgUHJ5STE4blNlcnZpY2UsXG4gIFByeUljb25Nb2R1bGUsXG4gIFByeU1vZGFsTW9kdWxlLFxuICBQcnlPdmVybGF5TW9kdWxlLFxuICBQcnlTZWxlY3RNb2R1bGUsXG4gIFByeVNoYXJlTW9kdWxlLFxuICBQcnlTb3J0TW9kdWxlLFxuICBQcnlUb2dnbGVNb2R1bGVcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IFByeUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvY2hlY2tib3gnO1xuaW1wb3J0IHsgUHJ5RXhwYW5kUGFuZWxNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9tZXRhZGF0YS1lZGl0b3InO1xuaW1wb3J0IHsgQWRtaW5Sb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9hZG1pbi1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBBZG1pbkFiYWNSdWxlc0VkaXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tYWJhYy1ydWxlcy9hZG1pbi1hYmFjLXJ1bGVzLWVkaXQvYWRtaW4tYWJhYy1ydWxlcy1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFiYWNSdWxlc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tYWJhYy1ydWxlcy9hZG1pbi1hYmFjLXJ1bGVzLWZvcm0vYWRtaW4tYWJhYy1ydWxlcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFiYWNSdWxlc05ld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtbmV3L2FkbWluLWFiYWMtcnVsZXMtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFiYWNSdWxlc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tYWJhYy1ydWxlcy9hZG1pbi1hYmFjLXJ1bGVzLXZpZXcvYWRtaW4tYWJhYy1ydWxlcy12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFiYWNSdWxlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEF0dHJpYnV0ZUNvbmRpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2NvbXBvbmVudHMvYXR0cmlidXRlLWNvbmRpdGlvbi9hdHRyaWJ1dGUtY29uZGl0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb3NlZENvbmRpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2NvbXBvbmVudHMvY29tcG9zZWQtY29uZGl0aW9uL2NvbXBvc2VkLWNvbmRpdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0YWRhdGFDb25kaXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tYWJhYy1ydWxlcy9jb21wb25lbnRzL21ldGFkYXRhLWNvbmRpdGlvbi9tZXRhZGF0YS1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdEF0dHJpYnV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2NvbXBvbmVudHMvc2VsZWN0LWF0dHJpYnV0ZS9zZWxlY3QtYXR0cmlidXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2NvbXBvbmVudHMvc2VsZWN0LW1ldGFkYXRhL3NlbGVjdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJhY1J1bGVzRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL3N0b3JlL2FiYWMtcnVsZXMuZWZmZWN0cyc7XG5pbXBvcnQgeyBhYmFjUnVsZVJlZHVjZXIsIGFiYWNSdWxlc0ZlYXR1cmVLZXkgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tYWJhYy1ydWxlcy9zdG9yZS9hYmFjLXJ1bGVzLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzQ3VzdG9taXplQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUvYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0N1c3RvbWl6ZVN5bWJvbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtY3VzdG9taXplL3N5bWJvbC9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS1zeW1ib2wuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0N1c3RvbWl6ZVRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS90b29sdGlwL2FkbWluLWNsYXNzZXMtY3VzdG9taXplLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0VkaXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWVkaXQvYWRtaW4tY2xhc3Nlcy1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzZXNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1mb3JtL2FkbWluLWNsYXNzZXMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1uZXcvYWRtaW4tY2xhc3Nlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtc2VsZWN0L2FkbWluLWNsYXNzZXMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkF0dHJpYnV0ZXNFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZWRpdC9hZG1pbi1hdHRyaWJ1dGVzLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQXR0cmlidXRlc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5BdHRyaWJ1dGVzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtbmV3L2FkbWluLWF0dHJpYnV0ZXMtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkF0dHJpYnV0ZXNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1zZWxlY3QvYWRtaW4tYXR0cmlidXRlcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tY2xhc3Nlcy12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL3N0b3JlL2FkbWluLWNsYXNzLmVmZmVjdHMnO1xuaW1wb3J0IHsgY2xhc3Nlc0ZlYXR1cmVLZXksIGNsYXNzUmVkdWNlciB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL3N0b3JlL2FkbWluLWNsYXNzLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5EYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tZGF0YXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5FZGl0RGF0YXNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLWVkaXQtZGF0YXNldC9hZG1pbi1lZGl0LWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTmV3RGF0YXNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLW5ldy1kYXRhc2V0L2FkbWluLW5ldy1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblNlbGVjdERhdGFzZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5Gb3JtRGF0YXNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L3NoYXJlZC9hZG1pbi1mb3JtLWRhdGFzZXQvYWRtaW4tZm9ybS1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVudmlyb25tZW50Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9hZG1pbi1lbnZpcm9ubWVudC1mb3JtL2FkbWluLWVudmlyb25tZW50LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRW52aXJvbm1lbnROZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZW52aXJvbm1lbnQvYWRtaW4tZW52aXJvbm1lbnQtbmV3L2FkbWluLWVudmlyb25tZW50LW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5FbnZpcm9ubWVudFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9hZG1pbi1lbnZpcm9ubWVudC1zZWxlY3QvYWRtaW4tZW52aXJvbm1lbnQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVudmlyb25tZW50VXBkYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L2FkbWluLWVudmlyb25tZW50LXVwZGF0ZS9hZG1pbi1lbnZpcm9ubWVudC11cGRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRW52aXJvbm1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZW52aXJvbm1lbnQvYWRtaW4tZW52aXJvbm1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEVudmlyb25tZW50RWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9zdG9yZS9lbnZpcm9ubWVudC5lZmZlY3RzJztcbmltcG9ydCB7IGVudmlyb25tZW50RmVhdHVyZUtleSwgZW52aXJvbm1lbnRSZWR1Y2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L3N0b3JlL2Vudmlyb25tZW50LnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWZpZWxkcy9hZG1pbi1maWVsZHMtZWRpdC9hZG1pbi1maWVsZHMtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWZpZWxkcy9hZG1pbi1maWVsZHMtZm9ybS9hZG1pbi1maWVsZHMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy1uZXcvYWRtaW4tZmllbGRzLW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy1zZWxlY3QvYWRtaW4tZmllbGRzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRzRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1maWVsZHMvc3RvcmUvZmllbGRzLmVmZmVjdHMnO1xuaW1wb3J0IHsgZmllbGRSZWR1Y2VyLCBmaWVsZHNGZWF0dXJlS2V5IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWZpZWxkcy9zdG9yZS9maWVsZHMucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1sYXlvdXQvYWRtaW4tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkxpbmtzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWxpbmtzL2FkbWluLWxpbmtzLW5ldy9hZG1pbi1saW5rcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTGlua3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbGlua3MvYWRtaW4tbGlua3MuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmtzRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1saW5rcy9zdG9yZS9saW5rcy5lZmZlY3RzJztcbmltcG9ydCB7IGxpbmtSZWR1Y2VyLCBsaW5rc0ZlYXR1cmVLZXkgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbGlua3Mvc3RvcmUvbGlua3MucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWVudS9hZG1pbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVkaXRNZXRhZGF0YVJ1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL2FkbWluLWVkaXQtbWV0YWRhdGEtcnVsZXMvYWRtaW4tZWRpdC1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YVJ1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL2FkbWluLW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk5ld01ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvYWRtaW4tbmV3LW1ldGFkYXRhLXJ1bGVzL2FkbWluLW5ldy1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5TZWxlY3RNZXRhZGF0YVJ1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL2FkbWluLXNlbGVjdC1tZXRhZGF0YS1ydWxlcy9hZG1pbi1zZWxlY3QtbWV0YWRhdGEtcnVsZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRm9ybU1ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvc2hhcmVkL2FkbWluLWZvcm0tbWV0YWRhdGEtcnVsZXMvYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YVJ1bGVzRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS1ydWxlcy9zdG9yZS9tZXRhZGF0YS1ydWxlcy5lZmZlY3RzJztcbmltcG9ydCB7XG4gIGFkbWluTWV0YWRhdGFSdWxlc0ZlYXR1cmVLZXksXG4gIGFkbWluTWV0YWRhdGFSdWxlc1JlZHVjZXJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL3N0b3JlL21ldGFkYXRhLXJ1bGVzLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YVVzZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtdXNlci9hZG1pbi1tZXRhZGF0YS11c2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJFZGl0TWV0YWRhdGFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtdXNlci9hZG1pbi11c2VyLWVkaXQtbWV0YWRhdGEvYWRtaW4tdXNlci1lZGl0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJOZXdNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL2FkbWluLXVzZXItbmV3LW1ldGFkYXRhL2FkbWluLXVzZXItbmV3LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJTZWxlY3RNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL2FkbWluLXVzZXItc2VsZWN0LW1ldGFkYXRhL2FkbWluLXVzZXItc2VsZWN0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhVXNlckVmZmVjdHMgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtdXNlci9zdG9yZS9hZG1pbi1tZXRhZGF0YS11c2VyLmVmZmVjdHMnO1xuaW1wb3J0IHtcbiAgYWRtaW5NZXRhZGF0YVVzZXJGZWF0dXJlS2V5LFxuICBhZG1pbk1ldGFkYXRhVXNlclJlZHVjZXJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXVzZXIvc3RvcmUvYWRtaW4tbWV0YWRhdGEtdXNlci5yZWR1Y2VyJztcbmltcG9ydCB7IEFkbWluRWRpdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL2FkbWluLWVkaXQtbWV0YWRhdGEvYWRtaW4tZWRpdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9hZG1pbi1tZXRhZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5OZXdNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9hZG1pbi1uZXctbWV0YWRhdGEvYWRtaW4tbmV3LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblNlbGVjdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL2FkbWluLXNlbGVjdC1tZXRhZGF0YS9hZG1pbi1zZWxlY3QtbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1NZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9zaGFyZWQvZm9ybS1tZXRhZGF0YS9mb3JtLW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcnlMaXN0TWV0YWRhdGFNb2R1bGUgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEvc2hhcmVkL2xpc3QtbWV0YWRhdGEvbGlzdC1tZXRhZGF0YS5tb2R1bGUnO1xuaW1wb3J0IHsgQWRtaW5QcmVkaWNhdGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1wcmVkaWNhdGVzL2FkbWluLXByZWRpY2F0ZXMtZm9ybS9hZG1pbi1wcmVkaWNhdGVzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluUHJlZGljYXRlc05ld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1wcmVkaWNhdGVzL2FkbWluLXByZWRpY2F0ZXMtbmV3L2FkbWluLXByZWRpY2F0ZXMtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblByZWRpY2F0ZXNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcHJlZGljYXRlcy9hZG1pbi1wcmVkaWNhdGVzLXNlbGVjdC9hZG1pbi1wcmVkaWNhdGVzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5QcmVkaWNhdGVzVXBkYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvYWRtaW4tcHJlZGljYXRlcy11cGRhdGUvYWRtaW4tcHJlZGljYXRlcy11cGRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluUHJlZGljYXRlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1wcmVkaWNhdGVzL2FkbWluLXByZWRpY2F0ZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFByZWRpY2F0ZXNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvc3RvcmUvcHJlZGljYXRlcy5lZmZlY3RzJztcbmltcG9ydCB7IHByZWRpY2F0ZVJlZHVjZXIsIHByZWRpY2F0ZXNGZWF0dXJlS2V5IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvc3RvcmUvcHJlZGljYXRlcy5yZWR1Y2VyJztcbmltcG9ydCB7IEFkbWluUmVsYXRpb25UeXBlc01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXJlbGF0aW9uLXR5cGVzL2FkbWluLXJlbGF0aW9uLXR5cGVzLW1vZGFsL2FkbWluLXJlbGF0aW9uLXR5cGVzLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblJlbGF0aW9uVHlwZXNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcmVsYXRpb24tdHlwZXMvYWRtaW4tcmVsYXRpb24tdHlwZXMtc2VsZWN0L2FkbWluLXJlbGF0aW9uLXR5cGVzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5SZWxhdGlvblR5cGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXJlbGF0aW9uLXR5cGVzL2FkbWluLXJlbGF0aW9uLXR5cGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXRpdGxlL2FkbWluLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tdXNlci9hZG1pbi11c2VyLXNlbGVjdC9hZG1pbi11c2VyLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5Vc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXVzZXIvYWRtaW4tdXNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5Vc2VyRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi11c2VyL3N0b3JlL2FkbWluLXVzZXIuZWZmZWN0cyc7XG5pbXBvcnQgeyBhZG1pblVzZXJGZWF0dXJlS2V5LCBhZG1pblVzZXJSZWR1Y2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXVzZXIvc3RvcmUvYWRtaW4tdXNlci5yZWR1Y2VyJztcbmltcG9ydCB7IFByeUFkbWluQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcnlBc3NvY2lhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NvY2lhdGlvbi9hc3NvY2lhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgZW5UcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4vZW4udHJhbnNsYXRpb25zJztcbmltcG9ydCB7IGZyVHJhbnNsYXRpb25zIH0gZnJvbSAnLi9pMThuL2ZyLnRyYW5zbGF0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkVmZmVjdHMgfSBmcm9tICcuL3N0b3JlL2FkbWluLmVmZmVjdHMnO1xuaW1wb3J0IHsgYWRtaW5GZWF0dXJlS2V5LCBhZG1pblJlZHVjZXIgfSBmcm9tICcuL3N0b3JlL2FkbWluLnJlZHVjZXInO1xuaW1wb3J0IHsgUHJ5U2luY2VEYXRlTW9kdWxlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvc2luY2VEYXRlJztcbmltcG9ydCB7IFByeURhdGFzZXRNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvZGF0YXNldCc7XG5pbXBvcnQgeyBkYXRhc2V0RmVhdHVyZUtleSwgZGF0YXNldFJlZHVjZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9zdG9yZS9hZG1pbi1kYXRhc2V0LnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5EYXRhc2V0RWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L3N0b3JlL2FkbWluLWRhdGFzZXQuZWZmZWN0cyc7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW0RhdGVQaXBlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUHJ5QWRtaW5Db21wb25lbnQsXG4gICAgQWRtaW5FbnZpcm9ubWVudENvbXBvbmVudCxcbiAgICBBZG1pbk1ldGFkYXRhVXNlckNvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNDb21wb25lbnQsXG4gICAgQWRtaW5QcmVkaWNhdGVzQ29tcG9uZW50LFxuICAgIEFkbWluUHJlZGljYXRlc05ld0NvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNVcGRhdGVDb21wb25lbnQsXG4gICAgQWRtaW5QcmVkaWNhdGVzU2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluQWJhY1J1bGVzQ29tcG9uZW50LFxuICAgIEFkbWluTWVudUNvbXBvbmVudCxcbiAgICBBZG1pbkxheW91dENvbXBvbmVudCxcbiAgICBBZG1pblRpdGxlQ29tcG9uZW50LFxuICAgIEFkbWluTGF5b3V0Q29tcG9uZW50LFxuICAgIEFkbWluTWVudUNvbXBvbmVudCxcbiAgICBBZG1pbk1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluRW52aXJvbm1lbnROZXdDb21wb25lbnQsXG4gICAgQWRtaW5FbnZpcm9ubWVudFVwZGF0ZUNvbXBvbmVudCxcbiAgICBBZG1pbkVudmlyb25tZW50Rm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbk5ld01ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluQWJhY1J1bGVzRWRpdENvbXBvbmVudCxcbiAgICBBZG1pbkFiYWNSdWxlc1ZpZXdDb21wb25lbnQsXG4gICAgQWRtaW5BYmFjUnVsZXNOZXdDb21wb25lbnQsXG4gICAgU2VsZWN0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgU2VsZWN0QXR0cmlidXRlQ29tcG9uZW50LFxuICAgIEF0dHJpYnV0ZUNvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBNZXRhZGF0YUNvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBDb21wb3NlZENvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBBZG1pbkFiYWNSdWxlc0Zvcm1Db21wb25lbnQsXG4gICAgQWRtaW5Vc2VyTmV3TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5FZGl0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5QcmVkaWNhdGVzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbkVudmlyb25tZW50U2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluVXNlckVkaXRNZXRhZGF0YUNvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNGb3JtQ29tcG9uZW50LFxuICAgIEZvcm1NZXRhZGF0YUNvbXBvbmVudCxcbiAgICBBZG1pblNlbGVjdE1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluVXNlclNlbGVjdE1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluRmllbGRzQ29tcG9uZW50LFxuICAgIEFkbWluRmllbGRzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluVXNlclNlbGVjdE1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc0Zvcm1Db21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc1ZpZXdDb21wb25lbnQsXG4gICAgQWRtaW5BdHRyaWJ1dGVzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluQXR0cmlidXRlc0Zvcm1Db21wb25lbnQsXG4gICAgQWRtaW5BdHRyaWJ1dGVzU2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc1NlbGVjdENvbXBvbmVudCxcbiAgICBBZG1pbkZpZWxkc0Zvcm1Db21wb25lbnQsXG4gICAgQWRtaW5GaWVsZHNTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzRWRpdENvbXBvbmVudCxcbiAgICBBZG1pbkF0dHJpYnV0ZXNFZGl0Q29tcG9uZW50LFxuICAgIEFkbWluRmllbGRzRWRpdENvbXBvbmVudCxcbiAgICBBZG1pblVzZXJDb21wb25lbnQsXG4gICAgQWRtaW5Vc2VyU2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluUmVsYXRpb25UeXBlc0NvbXBvbmVudCxcbiAgICBBZG1pblJlbGF0aW9uVHlwZXNTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5SZWxhdGlvblR5cGVzTW9kYWxDb21wb25lbnQsXG4gICAgQWRtaW5MaW5rc0NvbXBvbmVudCxcbiAgICBBZG1pbkxpbmtzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluTWV0YWRhdGFSdWxlc0NvbXBvbmVudCxcbiAgICBBZG1pblNlbGVjdE1ldGFkYXRhUnVsZXNDb21wb25lbnQsXG4gICAgQWRtaW5OZXdNZXRhZGF0YVJ1bGVzQ29tcG9uZW50LFxuICAgIEFkbWluRWRpdE1ldGFkYXRhUnVsZXNDb21wb25lbnQsXG4gICAgQWRtaW5Gb3JtTWV0YWRhdGFSdWxlc0NvbXBvbmVudCxcbiAgICBBZG1pbkRhdGFzZXRDb21wb25lbnQsXG4gICAgQWRtaW5FZGl0RGF0YXNldENvbXBvbmVudCxcbiAgICBBZG1pbk5ld0RhdGFzZXRDb21wb25lbnQsXG4gICAgQWRtaW5TZWxlY3REYXRhc2V0Q29tcG9uZW50LFxuICAgIEFkbWluRm9ybURhdGFzZXRDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzQ3VzdG9taXplQ29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc0N1c3RvbWl6ZVRvb2x0aXBDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzQ3VzdG9taXplU3ltYm9sQ29tcG9uZW50LFxuICAgIFByeUFzc29jaWF0aW9uQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHJ5Q29yZU1vZHVsZSxcbiAgICBBZG1pblJvdXRpbmdNb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShhZG1pbkZlYXR1cmVLZXksIGFkbWluUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShwcmVkaWNhdGVzRmVhdHVyZUtleSwgcHJlZGljYXRlUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShhYmFjUnVsZXNGZWF0dXJlS2V5LCBhYmFjUnVsZVJlZHVjZXIpLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoZW52aXJvbm1lbnRGZWF0dXJlS2V5LCBlbnZpcm9ubWVudFJlZHVjZXIpLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoYWRtaW5NZXRhZGF0YVVzZXJGZWF0dXJlS2V5LCBhZG1pbk1ldGFkYXRhVXNlclJlZHVjZXIpLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoYWRtaW5NZXRhZGF0YVJ1bGVzRmVhdHVyZUtleSwgYWRtaW5NZXRhZGF0YVJ1bGVzUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShjbGFzc2VzRmVhdHVyZUtleSwgY2xhc3NSZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGZpZWxkc0ZlYXR1cmVLZXksIGZpZWxkUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShhZG1pblVzZXJGZWF0dXJlS2V5LCBhZG1pblVzZXJSZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGxpbmtzRmVhdHVyZUtleSwgbGlua1JlZHVjZXIpLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoZGF0YXNldEZlYXR1cmVLZXksIGRhdGFzZXRSZWR1Y2VyKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0FkbWluRWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbUHJlZGljYXRlc0VmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0Vudmlyb25tZW50RWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWJhY1J1bGVzRWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5NZXRhZGF0YVVzZXJFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBZG1pbkNsYXNzRWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbRmllbGRzRWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5Vc2VyRWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbTGlua3NFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBZG1pbk1ldGFkYXRhUnVsZXNFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBZG1pbkRhdGFzZXRFZmZlY3RzXSksXG4gICAgUHJ5SWNvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFByeVNvcnRNb2R1bGUsXG4gICAgUHJ5Q2hlY2tib3hNb2R1bGUsXG4gICAgUHJ5TW9kYWxNb2R1bGUsXG4gICAgUHJ5U2VsZWN0TW9kdWxlLFxuICAgIFByeUxpc3RNZXRhZGF0YU1vZHVsZSxcbiAgICBQcnlUb2dnbGVNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBQcnlPdmVybGF5TW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIFByeUkxOG5Nb2R1bGUsXG4gICAgUHJ5RXhwYW5kUGFuZWxNb2R1bGUsXG4gICAgUHJ5U2luY2VEYXRlTW9kdWxlLFxuICAgIFByeURhdGFzZXRNb2R1bGUsXG4gICAgUHJ5U2hhcmVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQcnlBZG1pbk1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJ5VHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UpIHtcbiAgICB0aGlzLnByeVRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ09iamVjdCgnZnInLCAnYWRtaW4nLCBmclRyYW5zbGF0aW9ucyk7XG4gICAgdGhpcy5wcnlUcmFuc2xhdGVTZXJ2aWNlLmFkZExhbmdPYmplY3QoJ2VuJywgJ2FkbWluJywgZW5UcmFuc2xhdGlvbnMpO1xuICB9XG59XG4iXX0=
377
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vYWRtaW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBRWIsYUFBYSxFQUNiLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFGQUFxRixDQUFDO0FBQ2xJLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFGQUFxRixDQUFDO0FBQ2xJLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBQy9ILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFN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QUMsQ0FBQzt3QkFDN0MsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUN6QyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzt3QkFDNUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN4QyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQzt3QkFDckQsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7d0JBQy9DLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmVNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBQcnlDb3JlTW9kdWxlLFxuICBQcnlJMThuTW9kdWxlLFxuICBQcnlJMThuU2VydmljZSxcbiAgUHJ5SWNvbk1vZHVsZSxcbiAgUHJ5TW9kYWxNb2R1bGUsXG4gIFByeU92ZXJsYXlNb2R1bGUsXG4gIFByeVNlbGVjdE1vZHVsZSxcbiAgUHJ5U2hhcmVNb2R1bGUsXG4gIFByeVNvcnRNb2R1bGUsXG4gIFByeVRvZ2dsZU1vZHVsZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgUHJ5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9jaGVja2JveCc7XG5pbXBvcnQgeyBQcnlFeHBhbmRQYW5lbE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBBZG1pblJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2FkbWluLXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzRWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtZWRpdC9hZG1pbi1hYmFjLXJ1bGVzLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtZm9ybS9hZG1pbi1hYmFjLXJ1bGVzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvYWRtaW4tYWJhYy1ydWxlcy1uZXcvYWRtaW4tYWJhYy1ydWxlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtdmlldy9hZG1pbi1hYmFjLXJ1bGVzLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvYWRtaW4tYWJhYy1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0cmlidXRlQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9hdHRyaWJ1dGUtY29uZGl0aW9uL2F0dHJpYnV0ZS1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvc2VkQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9jb21wb3NlZC1jb25kaXRpb24vY29tcG9zZWQtY29uZGl0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXRhZGF0YUNvbmRpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2NvbXBvbmVudHMvbWV0YWRhdGEtY29uZGl0aW9uL21ldGFkYXRhLWNvbmRpdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0QXR0cmlidXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9zZWxlY3QtYXR0cmlidXRlL3NlbGVjdC1hdHRyaWJ1dGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9zZWxlY3QtbWV0YWRhdGEvc2VsZWN0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYmFjUnVsZXNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvc3RvcmUvYWJhYy1ydWxlcy5lZmZlY3RzJztcbmltcG9ydCB7IGFiYWNSdWxlUmVkdWNlciwgYWJhY1J1bGVzRmVhdHVyZUtleSB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL3N0b3JlL2FiYWMtcnVsZXMucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkNsYXNzZXNDdXN0b21pemVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzQ3VzdG9taXplU3ltYm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUvc3ltYm9sL2FkbWluLWNsYXNzZXMtY3VzdG9taXplLXN5bWJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzQ3VzdG9taXplVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtY3VzdG9taXplL3Rvb2x0aXAvYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUtdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzRWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtZWRpdC9hZG1pbi1jbGFzc2VzLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWZvcm0vYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzZXNOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLW5ldy9hZG1pbi1jbGFzc2VzLW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1zZWxlY3QvYWRtaW4tY2xhc3Nlcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQXR0cmlidXRlc0VkaXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1lZGl0L2FkbWluLWF0dHJpYnV0ZXMtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5BdHRyaWJ1dGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkF0dHJpYnV0ZXNOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1uZXcvYWRtaW4tYXR0cmlidXRlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQXR0cmlidXRlc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1hdHRyaWJ1dGVzLXNlbGVjdC9hZG1pbi1hdHRyaWJ1dGVzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1jbGFzc2VzLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3NFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvc3RvcmUvYWRtaW4tY2xhc3MuZWZmZWN0cyc7XG5pbXBvcnQgeyBjbGFzc2VzRmVhdHVyZUtleSwgY2xhc3NSZWR1Y2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvc3RvcmUvYWRtaW4tY2xhc3MucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkRhdGFzZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVkaXREYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tZWRpdC1kYXRhc2V0L2FkbWluLWVkaXQtZGF0YXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5OZXdEYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tbmV3LWRhdGFzZXQvYWRtaW4tbmV3LWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluU2VsZWN0RGF0YXNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVudmlyb25tZW50Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9hZG1pbi1lbnZpcm9ubWVudC1mb3JtL2FkbWluLWVudmlyb25tZW50LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRW52aXJvbm1lbnROZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZW52aXJvbm1lbnQvYWRtaW4tZW52aXJvbm1lbnQtbmV3L2FkbWluLWVudmlyb25tZW50LW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5FbnZpcm9ubWVudFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9hZG1pbi1lbnZpcm9ubWVudC1zZWxlY3QvYWRtaW4tZW52aXJvbm1lbnQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVudmlyb25tZW50VXBkYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L2FkbWluLWVudmlyb25tZW50LXVwZGF0ZS9hZG1pbi1lbnZpcm9ubWVudC11cGRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRW52aXJvbm1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZW52aXJvbm1lbnQvYWRtaW4tZW52aXJvbm1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEVudmlyb25tZW50RWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9zdG9yZS9lbnZpcm9ubWVudC5lZmZlY3RzJztcbmltcG9ydCB7IGVudmlyb25tZW50RmVhdHVyZUtleSwgZW52aXJvbm1lbnRSZWR1Y2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L3N0b3JlL2Vudmlyb25tZW50LnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWZpZWxkcy9hZG1pbi1maWVsZHMtZWRpdC9hZG1pbi1maWVsZHMtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWZpZWxkcy9hZG1pbi1maWVsZHMtZm9ybS9hZG1pbi1maWVsZHMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy1uZXcvYWRtaW4tZmllbGRzLW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy1zZWxlY3QvYWRtaW4tZmllbGRzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5GaWVsZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRzRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1maWVsZHMvc3RvcmUvZmllbGRzLmVmZmVjdHMnO1xuaW1wb3J0IHsgZmllbGRSZWR1Y2VyLCBmaWVsZHNGZWF0dXJlS2V5IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWZpZWxkcy9zdG9yZS9maWVsZHMucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1sYXlvdXQvYWRtaW4tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkxpbmtzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWxpbmtzL2FkbWluLWxpbmtzLW5ldy9hZG1pbi1saW5rcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTGlua3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbGlua3MvYWRtaW4tbGlua3MuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmtzRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1saW5rcy9zdG9yZS9saW5rcy5lZmZlY3RzJztcbmltcG9ydCB7IGxpbmtSZWR1Y2VyLCBsaW5rc0ZlYXR1cmVLZXkgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbGlua3Mvc3RvcmUvbGlua3MucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWVudS9hZG1pbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVkaXRNZXRhZGF0YVJ1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL2FkbWluLWVkaXQtbWV0YWRhdGEtcnVsZXMvYWRtaW4tZWRpdC1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YVJ1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL2FkbWluLW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk5ld01ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvYWRtaW4tbmV3LW1ldGFkYXRhLXJ1bGVzL2FkbWluLW5ldy1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5TZWxlY3RNZXRhZGF0YVJ1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL2FkbWluLXNlbGVjdC1tZXRhZGF0YS1ydWxlcy9hZG1pbi1zZWxlY3QtbWV0YWRhdGEtcnVsZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRm9ybU1ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvc2hhcmVkL2FkbWluLWZvcm0tbWV0YWRhdGEtcnVsZXMvYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YVJ1bGVzRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS1ydWxlcy9zdG9yZS9tZXRhZGF0YS1ydWxlcy5lZmZlY3RzJztcbmltcG9ydCB7XG4gIGFkbWluTWV0YWRhdGFSdWxlc0ZlYXR1cmVLZXksXG4gIGFkbWluTWV0YWRhdGFSdWxlc1JlZHVjZXJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL3N0b3JlL21ldGFkYXRhLXJ1bGVzLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YVVzZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtdXNlci9hZG1pbi1tZXRhZGF0YS11c2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJFZGl0TWV0YWRhdGFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtdXNlci9hZG1pbi11c2VyLWVkaXQtbWV0YWRhdGEvYWRtaW4tdXNlci1lZGl0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJOZXdNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL2FkbWluLXVzZXItbmV3LW1ldGFkYXRhL2FkbWluLXVzZXItbmV3LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJTZWxlY3RNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL2FkbWluLXVzZXItc2VsZWN0LW1ldGFkYXRhL2FkbWluLXVzZXItc2VsZWN0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhVXNlckVmZmVjdHMgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtdXNlci9zdG9yZS9hZG1pbi1tZXRhZGF0YS11c2VyLmVmZmVjdHMnO1xuaW1wb3J0IHtcbiAgYWRtaW5NZXRhZGF0YVVzZXJGZWF0dXJlS2V5LFxuICBhZG1pbk1ldGFkYXRhVXNlclJlZHVjZXJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXVzZXIvc3RvcmUvYWRtaW4tbWV0YWRhdGEtdXNlci5yZWR1Y2VyJztcbmltcG9ydCB7IEFkbWluRWRpdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL2FkbWluLWVkaXQtbWV0YWRhdGEvYWRtaW4tZWRpdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9hZG1pbi1tZXRhZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5OZXdNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9hZG1pbi1uZXctbWV0YWRhdGEvYWRtaW4tbmV3LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblNlbGVjdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL2FkbWluLXNlbGVjdC1tZXRhZGF0YS9hZG1pbi1zZWxlY3QtbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1NZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9zaGFyZWQvZm9ybS1tZXRhZGF0YS9mb3JtLW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcnlMaXN0TWV0YWRhdGFNb2R1bGUgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEvc2hhcmVkL2xpc3QtbWV0YWRhdGEvbGlzdC1tZXRhZGF0YS5tb2R1bGUnO1xuaW1wb3J0IHsgQWRtaW5QcmVkaWNhdGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1wcmVkaWNhdGVzL2FkbWluLXByZWRpY2F0ZXMtZm9ybS9hZG1pbi1wcmVkaWNhdGVzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluUHJlZGljYXRlc05ld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1wcmVkaWNhdGVzL2FkbWluLXByZWRpY2F0ZXMtbmV3L2FkbWluLXByZWRpY2F0ZXMtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblByZWRpY2F0ZXNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcHJlZGljYXRlcy9hZG1pbi1wcmVkaWNhdGVzLXNlbGVjdC9hZG1pbi1wcmVkaWNhdGVzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5QcmVkaWNhdGVzVXBkYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvYWRtaW4tcHJlZGljYXRlcy11cGRhdGUvYWRtaW4tcHJlZGljYXRlcy11cGRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluUHJlZGljYXRlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1wcmVkaWNhdGVzL2FkbWluLXByZWRpY2F0ZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFByZWRpY2F0ZXNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvc3RvcmUvcHJlZGljYXRlcy5lZmZlY3RzJztcbmltcG9ydCB7IHByZWRpY2F0ZVJlZHVjZXIsIHByZWRpY2F0ZXNGZWF0dXJlS2V5IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvc3RvcmUvcHJlZGljYXRlcy5yZWR1Y2VyJztcbmltcG9ydCB7IEFkbWluUmVsYXRpb25UeXBlc01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXJlbGF0aW9uLXR5cGVzL2FkbWluLXJlbGF0aW9uLXR5cGVzLW1vZGFsL2FkbWluLXJlbGF0aW9uLXR5cGVzLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblJlbGF0aW9uVHlwZXNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcmVsYXRpb24tdHlwZXMvYWRtaW4tcmVsYXRpb24tdHlwZXMtc2VsZWN0L2FkbWluLXJlbGF0aW9uLXR5cGVzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5SZWxhdGlvblR5cGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXJlbGF0aW9uLXR5cGVzL2FkbWluLXJlbGF0aW9uLXR5cGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXRpdGxlL2FkbWluLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tdXNlci9hZG1pbi11c2VyLXNlbGVjdC9hZG1pbi11c2VyLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5Vc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXVzZXIvYWRtaW4tdXNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5Vc2VyRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi11c2VyL3N0b3JlL2FkbWluLXVzZXIuZWZmZWN0cyc7XG5pbXBvcnQgeyBhZG1pblVzZXJGZWF0dXJlS2V5LCBhZG1pblVzZXJSZWR1Y2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXVzZXIvc3RvcmUvYWRtaW4tdXNlci5yZWR1Y2VyJztcbmltcG9ydCB7IFByeUFkbWluQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcnlBc3NvY2lhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NvY2lhdGlvbi9hc3NvY2lhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgZW5UcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4vZW4udHJhbnNsYXRpb25zJztcbmltcG9ydCB7IGZyVHJhbnNsYXRpb25zIH0gZnJvbSAnLi9pMThuL2ZyLnRyYW5zbGF0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkVmZmVjdHMgfSBmcm9tICcuL3N0b3JlL2FkbWluLmVmZmVjdHMnO1xuaW1wb3J0IHsgYWRtaW5GZWF0dXJlS2V5LCBhZG1pblJlZHVjZXIgfSBmcm9tICcuL3N0b3JlL2FkbWluLnJlZHVjZXInO1xuaW1wb3J0IHsgUHJ5RGF0YXNldE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9kYXRhc2V0JztcbmltcG9ydCB7IGRhdGFzZXRGZWF0dXJlS2V5LCBkYXRhc2V0UmVkdWNlciB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L3N0b3JlL2FkbWluLWRhdGFzZXQucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkRhdGFzZXRFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvc3RvcmUvYWRtaW4tZGF0YXNldC5lZmZlY3RzJztcbmltcG9ydCB7IEFkZENhdGVnb3J5TW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2hhcmVkL2FkZC1jYXRlZ29yeS1tb2RhbC9hZGQtY2F0ZWdvcnktbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRm9ybURhdGFzZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1mb3JtLWRhdGFzZXQvYWRtaW4tZm9ybS1kYXRhc2V0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW0RhdGVQaXBlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUHJ5QWRtaW5Db21wb25lbnQsXG4gICAgQWRtaW5FbnZpcm9ubWVudENvbXBvbmVudCxcbiAgICBBZG1pbk1ldGFkYXRhVXNlckNvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNDb21wb25lbnQsXG4gICAgQWRtaW5QcmVkaWNhdGVzQ29tcG9uZW50LFxuICAgIEFkbWluUHJlZGljYXRlc05ld0NvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNVcGRhdGVDb21wb25lbnQsXG4gICAgQWRtaW5QcmVkaWNhdGVzU2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluQWJhY1J1bGVzQ29tcG9uZW50LFxuICAgIEFkbWluTWVudUNvbXBvbmVudCxcbiAgICBBZG1pbkxheW91dENvbXBvbmVudCxcbiAgICBBZG1pblRpdGxlQ29tcG9uZW50LFxuICAgIEFkbWluTGF5b3V0Q29tcG9uZW50LFxuICAgIEFkbWluTWVudUNvbXBvbmVudCxcbiAgICBBZG1pbk1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluRW52aXJvbm1lbnROZXdDb21wb25lbnQsXG4gICAgQWRtaW5FbnZpcm9ubWVudFVwZGF0ZUNvbXBvbmVudCxcbiAgICBBZG1pbkVudmlyb25tZW50Rm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbk5ld01ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluQWJhY1J1bGVzRWRpdENvbXBvbmVudCxcbiAgICBBZG1pbkFiYWNSdWxlc1ZpZXdDb21wb25lbnQsXG4gICAgQWRtaW5BYmFjUnVsZXNOZXdDb21wb25lbnQsXG4gICAgU2VsZWN0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgU2VsZWN0QXR0cmlidXRlQ29tcG9uZW50LFxuICAgIEF0dHJpYnV0ZUNvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBNZXRhZGF0YUNvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBDb21wb3NlZENvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBBZG1pbkFiYWNSdWxlc0Zvcm1Db21wb25lbnQsXG4gICAgQWRtaW5Vc2VyTmV3TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5FZGl0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5QcmVkaWNhdGVzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbkVudmlyb25tZW50U2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluVXNlckVkaXRNZXRhZGF0YUNvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNGb3JtQ29tcG9uZW50LFxuICAgIEZvcm1NZXRhZGF0YUNvbXBvbmVudCxcbiAgICBBZG1pblNlbGVjdE1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluVXNlclNlbGVjdE1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluRmllbGRzQ29tcG9uZW50LFxuICAgIEFkbWluRmllbGRzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluVXNlclNlbGVjdE1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc0Zvcm1Db21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc1ZpZXdDb21wb25lbnQsXG4gICAgQWRtaW5BdHRyaWJ1dGVzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluQXR0cmlidXRlc0Zvcm1Db21wb25lbnQsXG4gICAgQWRtaW5BdHRyaWJ1dGVzU2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc1NlbGVjdENvbXBvbmVudCxcbiAgICBBZG1pbkZpZWxkc0Zvcm1Db21wb25lbnQsXG4gICAgQWRtaW5GaWVsZHNTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzRWRpdENvbXBvbmVudCxcbiAgICBBZG1pbkF0dHJpYnV0ZXNFZGl0Q29tcG9uZW50LFxuICAgIEFkbWluRmllbGRzRWRpdENvbXBvbmVudCxcbiAgICBBZG1pblVzZXJDb21wb25lbnQsXG4gICAgQWRtaW5Vc2VyU2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluUmVsYXRpb25UeXBlc0NvbXBvbmVudCxcbiAgICBBZG1pblJlbGF0aW9uVHlwZXNTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5SZWxhdGlvblR5cGVzTW9kYWxDb21wb25lbnQsXG4gICAgQWRtaW5MaW5rc0NvbXBvbmVudCxcbiAgICBBZG1pbkxpbmtzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluTWV0YWRhdGFSdWxlc0NvbXBvbmVudCxcbiAgICBBZG1pblNlbGVjdE1ldGFkYXRhUnVsZXNDb21wb25lbnQsXG4gICAgQWRtaW5OZXdNZXRhZGF0YVJ1bGVzQ29tcG9uZW50LFxuICAgIEFkbWluRWRpdE1ldGFkYXRhUnVsZXNDb21wb25lbnQsXG4gICAgQWRtaW5Gb3JtTWV0YWRhdGFSdWxlc0NvbXBvbmVudCxcbiAgICBBZG1pbkRhdGFzZXRDb21wb25lbnQsXG4gICAgQWRtaW5FZGl0RGF0YXNldENvbXBvbmVudCxcbiAgICBBZG1pbk5ld0RhdGFzZXRDb21wb25lbnQsXG4gICAgQWRtaW5TZWxlY3REYXRhc2V0Q29tcG9uZW50LFxuICAgIEFkbWluRm9ybURhdGFzZXRDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzQ3VzdG9taXplQ29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc0N1c3RvbWl6ZVRvb2x0aXBDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzQ3VzdG9taXplU3ltYm9sQ29tcG9uZW50LFxuICAgIFByeUFzc29jaWF0aW9uQ29tcG9uZW50LFxuICAgIEFkZENhdGVnb3J5TW9kYWxDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQcnlDb3JlTW9kdWxlLFxuICAgIEFkbWluUm91dGluZ01vZHVsZSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGFkbWluRmVhdHVyZUtleSwgYWRtaW5SZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKHByZWRpY2F0ZXNGZWF0dXJlS2V5LCBwcmVkaWNhdGVSZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGFiYWNSdWxlc0ZlYXR1cmVLZXksIGFiYWNSdWxlUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShlbnZpcm9ubWVudEZlYXR1cmVLZXksIGVudmlyb25tZW50UmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShhZG1pbk1ldGFkYXRhVXNlckZlYXR1cmVLZXksIGFkbWluTWV0YWRhdGFVc2VyUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShhZG1pbk1ldGFkYXRhUnVsZXNGZWF0dXJlS2V5LCBhZG1pbk1ldGFkYXRhUnVsZXNSZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGNsYXNzZXNGZWF0dXJlS2V5LCBjbGFzc1JlZHVjZXIpLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoZmllbGRzRmVhdHVyZUtleSwgZmllbGRSZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGFkbWluVXNlckZlYXR1cmVLZXksIGFkbWluVXNlclJlZHVjZXIpLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUobGlua3NGZWF0dXJlS2V5LCBsaW5rUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShkYXRhc2V0RmVhdHVyZUtleSwgZGF0YXNldFJlZHVjZXIpLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5FZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtQcmVkaWNhdGVzRWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbRW52aXJvbm1lbnRFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBYmFjUnVsZXNFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBZG1pbk1ldGFkYXRhVXNlckVmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0FkbWluQ2xhc3NFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtGaWVsZHNFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBZG1pblVzZXJFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtMaW5rc0VmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0FkbWluTWV0YWRhdGFSdWxlc0VmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0FkbWluRGF0YXNldEVmZmVjdHNdKSxcbiAgICBQcnlJY29uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUHJ5U29ydE1vZHVsZSxcbiAgICBQcnlDaGVja2JveE1vZHVsZSxcbiAgICBQcnlNb2RhbE1vZHVsZSxcbiAgICBQcnlTZWxlY3RNb2R1bGUsXG4gICAgUHJ5TGlzdE1ldGFkYXRhTW9kdWxlLFxuICAgIFByeVRvZ2dsZU1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIFByeU92ZXJsYXlNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgUHJ5STE4bk1vZHVsZSxcbiAgICBQcnlFeHBhbmRQYW5lbE1vZHVsZSxcbiAgICBQcnlEYXRhc2V0TW9kdWxlLFxuICAgIFByeVNoYXJlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJ5QWRtaW5Nb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByeVRyYW5zbGF0ZVNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlKSB7XG4gICAgdGhpcy5wcnlUcmFuc2xhdGVTZXJ2aWNlLmFkZExhbmdPYmplY3QoJ2ZyJywgJ2FkbWluJywgZnJUcmFuc2xhdGlvbnMpO1xuICAgIHRoaXMucHJ5VHJhbnNsYXRlU2VydmljZS5hZGRMYW5nT2JqZWN0KCdlbicsICdhZG1pbicsIGVuVHJhbnNsYXRpb25zKTtcbiAgfVxufVxuIl19
@@ -1,40 +1,34 @@
1
- import { OverlayConfig } from '@angular/cdk/overlay';
2
- import { TemplatePortal } from '@angular/cdk/portal';
3
- import { Component, Input, TemplateRef, ViewChild } from '@angular/core';
1
+ import { Component, Input } from '@angular/core';
4
2
  import { Validators } from '@angular/forms';
5
- import { CategoryActions, CategorySelectors, ConfigActions, DEFAULT_CATEGORY_UUID, FIELD_OPTIONS, FieldActions, FieldSelectors, SubscriptionnerDirective } from '@provoly/dashboard';
6
- import { BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs';
3
+ import { CategoryActions, CategorySelectors, DEFAULT_CATEGORY_UUID, FIELD_OPTIONS, FieldActions, FieldSelectors, SubscriptionnerDirective } from '@provoly/dashboard';
4
+ import { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs';
7
5
  import { v4 as uuid } from 'uuid';
8
6
  import { noWhitespaceValidator } from '../../../../components/admin.component';
9
7
  import { AdminActions } from '../../../../store/admin.actions';
10
8
  import { AdminClassActions } from '../../store/admin-class.actions';
9
+ import { AddCategoryModalComponent } from '../../../shared/add-category-modal/add-category-modal.component';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "@ngrx/store";
13
12
  import * as i2 from "@angular/router";
14
13
  import * as i3 from "@angular/forms";
15
- import * as i4 from "@angular/cdk/overlay";
16
- import * as i5 from "@provoly/dashboard";
17
- import * as i6 from "@angular/common";
14
+ import * as i4 from "@provoly/dashboard";
15
+ import * as i5 from "@angular/common";
18
16
  export class AdminAttributesFormComponent extends SubscriptionnerDirective {
19
- constructor(store, router, route, formBuilder, overlay, viewContainerRef, i18nService) {
17
+ constructor(store, router, route, formBuilder, i18nService, dialog) {
20
18
  super();
21
19
  this.store = store;
22
20
  this.router = router;
23
21
  this.route = route;
24
22
  this.formBuilder = formBuilder;
25
- this.overlay = overlay;
26
- this.viewContainerRef = viewContainerRef;
27
23
  this.i18nService = i18nService;
24
+ this.dialog = dialog;
28
25
  this.nameAlreadyExists = false;
29
26
  this.technicalNameAlreadyExists = false;
30
27
  this.fieldTypeDescription = FIELD_OPTIONS;
31
- this.isShowedCategory = false;
32
- this.catToAdd = {};
33
- this.filterCategories$ = new BehaviorSubject(undefined);
34
28
  this.store.dispatch(FieldActions.load());
35
29
  this.fields$ = this.store.select(FieldSelectors.fields);
36
30
  this.store.dispatch(CategoryActions.load());
37
- this.categories$ = combineLatest([this.store.select(CategorySelectors.categories), this.filterCategories$]).pipe(map(([categories, filter]) => categories.filter((cat) => !filter || cat.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase()))));
31
+ this.categories$ = this.store.select(CategorySelectors.categories);
38
32
  this.attrForm = this.formBuilder.group({
39
33
  id: [uuid()],
40
34
  technicalName: [
@@ -130,52 +124,27 @@ export class AdminAttributesFormComponent extends SubscriptionnerDirective {
130
124
  }
131
125
  }
132
126
  }
133
- showCategory() {
134
- this.isShowedCategory = true;
135
- this.overlayRef = this.overlay.create(new OverlayConfig({
136
- hasBackdrop: true,
137
- panelClass: ['o-modal-wrapper'],
138
- backdropClass: 'backdrop'
127
+ openModal() {
128
+ const ref = this.dialog.open(AddCategoryModalComponent);
129
+ ref.component.entityType = 'attribute';
130
+ this.subscriptions.add(ref.component.category.subscribe((category) => {
131
+ this.attrForm.patchValue({
132
+ categories: category.id
133
+ });
139
134
  }));
140
- this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
141
- this.overlayRef.backdropClick().subscribe((_) => this.closeCategory());
142
- this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));
143
- }
144
- closeCategory() {
145
- this.isShowedCategory = false;
146
- this.catToAdd = {};
147
- this.overlayRef?.dispose();
148
- this.categories$ = this.store.select(CategorySelectors.categories);
149
- this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));
150
- }
151
- search(event) {
152
- this.filterCategories$.next(event.target.value);
153
- }
154
- addCategory() {
155
- this.catToAdd.id = uuid();
156
- this.store.dispatch(AdminClassActions.saveCategory({ category: this.catToAdd }));
157
- this.setCategory(this.catToAdd);
158
- }
159
- setCategory(cat) {
160
- this.attrForm.patchValue({
161
- category: cat.id
162
- });
163
- this.closeCategory();
135
+ this.subscriptions.add(ref.component.closeModal.subscribe(() => ref.close()));
164
136
  }
165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }, { token: i4.Overlay }, { token: i0.ViewContainerRef }, { token: i5.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
166
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: { selectedClass: "selectedClass", interClass: "interClass", selectedAttribute: "selectedAttribute" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</label>\n <input id=\"attr_technicalName\" type=\"text\" class=\"a-form-field\" formControlName=\"technicalName\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"technicalNameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('technicalName')?.invalid\">\n <div *ngIf=\"attrForm.get('technicalName')?.dirty && attrForm.get('technicalName')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div\n *ngIf=\"\n attrForm.get('technicalName')?.hasError('whitespace') && !attrForm.get('technicalName')?.hasError('minlength')\n \"\n >\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 50 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"type\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chip\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.dirty && attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists || technicalNameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scope=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--secondary select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }, { token: i4.PryI18nService }, { token: i4.PryDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: { selectedClass: "selectedClass", interClass: "interClass", selectedAttribute: "selectedAttribute" }, usesInheritance: true, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</label>\n <input id=\"attr_technicalName\" type=\"text\" class=\"a-form-field\" formControlName=\"technicalName\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"technicalNameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('technicalName')?.invalid\">\n <div *ngIf=\"attrForm.get('technicalName')?.dirty && attrForm.get('technicalName')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.minLength' | i18n: { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.maxLength' | i18n: { len: 100 }\n }}</label>\n </div>\n <div\n *ngIf=\"\n attrForm.get('technicalName')?.hasError('whitespace') && !attrForm.get('technicalName')?.hasError('minlength')\n \"\n >\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n: { len: 50 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"type\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chip\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.dirty && attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [items]=\"categories$ | async\"\n (click)=\"openModal()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists || technicalNameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
167
139
  }
168
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesFormComponent, decorators: [{
169
141
  type: Component,
170
- args: [{ selector: 'pry-admin-attributes-form', template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</label>\n <input id=\"attr_technicalName\" type=\"text\" class=\"a-form-field\" formControlName=\"technicalName\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"technicalNameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('technicalName')?.invalid\">\n <div *ngIf=\"attrForm.get('technicalName')?.dirty && attrForm.get('technicalName')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div\n *ngIf=\"\n attrForm.get('technicalName')?.hasError('whitespace') && !attrForm.get('technicalName')?.hasError('minlength')\n \"\n >\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 50 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"type\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chip\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.dirty && attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists || technicalNameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scope=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--secondary select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n" }]
171
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }, { type: i4.Overlay }, { type: i0.ViewContainerRef }, { type: i5.PryI18nService }], propDecorators: { selectedClass: [{
142
+ args: [{ selector: 'pry-admin-attributes-form', template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</label>\n <input id=\"attr_technicalName\" type=\"text\" class=\"a-form-field\" formControlName=\"technicalName\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"technicalNameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('technicalName')?.invalid\">\n <div *ngIf=\"attrForm.get('technicalName')?.dirty && attrForm.get('technicalName')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.minLength' | i18n: { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.maxLength' | i18n: { len: 100 }\n }}</label>\n </div>\n <div\n *ngIf=\"\n attrForm.get('technicalName')?.hasError('whitespace') && !attrForm.get('technicalName')?.hasError('minlength')\n \"\n >\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n: { len: 50 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"type\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chip\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.dirty && attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [items]=\"categories$ | async\"\n (click)=\"openModal()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists || technicalNameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n" }]
143
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }, { type: i4.PryI18nService }, { type: i4.PryDialogService }], propDecorators: { selectedClass: [{
172
144
  type: Input
173
145
  }], interClass: [{
174
146
  type: Input
175
147
  }], selectedAttribute: [{
176
148
  type: Input
177
- }], template: [{
178
- type: ViewChild,
179
- args: ['template', { read: TemplateRef }]
180
149
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZm9ybS9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRixPQUFPLEVBR0wsZUFBZSxFQUNmLGlCQUFpQixFQUVqQixhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUVkLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsR0FBRyxFQUVILFNBQVMsRUFDVCxTQUFTLEVBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxN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LENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQWE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDdkIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1NBQ2pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDOzhHQWpOVSw0QkFBNEI7a0dBQTVCLDRCQUE0QixnUUFzQlIsV0FBVyxvREM5RDVDLDZvT0F1TEE7OzJGRC9JYSw0QkFBNEI7a0JBSnhDLFNBQVM7K0JBQ0UsMkJBQTJCOytPQW9CNUIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHd0MsUUFBUTtzQkFBckQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgQ2F0ZWdvcnksXG4gIENhdGVnb3J5QWN0aW9ucyxcbiAgQ2F0ZWdvcnlTZWxlY3RvcnMsXG4gIENsYXNzLFxuICBDb25maWdBY3Rpb25zLFxuICBERUZBVUxUX0NBVEVHT1JZX1VVSUQsXG4gIEZpZWxkLFxuICBGSUVMRF9PUFRJT05TLFxuICBGaWVsZEFjdGlvbnMsXG4gIEZpZWxkU2VsZWN0b3JzLFxuICBQcnlJMThuU2VydmljZSxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBub1doaXRlc3BhY2VWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2FkbWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1hdHRyaWJ1dGVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkF0dHJpYnV0ZXNGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBhdHRyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBhdHRyaWJ1dGVOYW1lcz86IHN0cmluZ1tdO1xuICBhdHRyaWJ1dGVUZWNobmljYWxOYW1lcz86IHN0cmluZ1tdO1xuICBuYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBuYW1lQWxyZWFkeUV4aXN0cyA9IGZhbHNlO1xuICB0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyA9IGZhbHNlO1xuXG4gIGZpZWxkcyQ6IE9ic2VydmFibGU8RmllbGRbXT47XG4gIHNlbGVjdGVkRmllbGRUeXBlRGVzY3JpcHRpb24kPzogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBmaWVsZFR5cGVEZXNjcmlwdGlvbiA9IEZJRUxEX09QVElPTlM7XG4gIGNhdGVnb3JpZXMkOiBPYnNlcnZhYmxlPENhdGVnb3J5W10+O1xuICBpc1Nob3dlZENhdGVnb3J5ID0gZmFsc2U7XG4gIGNhdFRvQWRkID0ge30gYXMgQ2F0ZWdvcnk7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWRDbGFzcz86IENsYXNzO1xuICBASW5wdXQoKSBpbnRlckNsYXNzPzogQ2xhc3M7XG4gIEBJbnB1dCgpIHNlbGVjdGVkQXR0cmlidXRlPzogQXR0cmlidXRlO1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgZmlsdGVyQ2F0ZWdvcmllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEZpZWxkQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuZmllbGRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEZpZWxkU2VsZWN0b3JzLmZpZWxkcyk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDYXRlZ29yeUFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLmNhdGVnb3JpZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5zdG9yZS5zZWxlY3QoQ2F0ZWdvcnlTZWxlY3RvcnMuY2F0ZWdvcmllcyksIHRoaXMuZmlsdGVyQ2F0ZWdvcmllcyRdKS5waXBlKFxuICAgICAgbWFwKChbY2F0ZWdvcmllcywgZmlsdGVyXSkgPT5cbiAgICAgICAgY2F0ZWdvcmllcy5maWx0ZXIoKGNhdCkgPT4gIWZpbHRlciB8fCBjYXQubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlci50b0xvY2FsZUxvd2VyQ2FzZSgpKSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5hdHRyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFt1dWlkKCldLFxuICAgICAgdGVjaG5pY2FsTmFtZTogW1xuICAgICAgICAnJyxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApLCBub1doaXRlc3BhY2VWYWxpZGF0b3JdXG4gICAgICBdLFxuICAgICAgbmFtZTogWycnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApLCBub1doaXRlc3BhY2VWYWxpZGF0b3JdXSxcbiAgICAgIGRlc2NyaXB0aW9uOiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgZmllbGQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNhdGVnb3J5OiBbREVGQVVMVF9DQVRFR09SWV9VVUlEXSxcbiAgICAgIG11bHRpVmFsdWVkOiBbZmFsc2VdXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmF0dHJpYnV0ZU5hbWVzID0gdGhpcy5pbnRlckNsYXNzPy5hdHRyaWJ1dGVzLm1hcCgoYXR0cjogQXR0cmlidXRlKSA9PiBhdHRyLm5hbWUpO1xuICAgIHRoaXMuYXR0cmlidXRlVGVjaG5pY2FsTmFtZXMgPSB0aGlzLmludGVyQ2xhc3M/LmF0dHJpYnV0ZXMubWFwKChhdHRyOiBBdHRyaWJ1dGUpID0+IGF0dHIudGVjaG5pY2FsTmFtZSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZENsYXNzKSB7XG4gICAgICB0aGlzLmF0dHJpYnV0ZU5hbWVzID0gdGhpcy5zZWxlY3RlZENsYXNzLmF0dHJpYnV0ZXMubWFwKChhdHRyOiBBdHRyaWJ1dGUpID0+IGF0dHIubmFtZSk7XG4gICAgICB0aGlzLmF0dHJpYnV0ZVRlY2huaWNhbE5hbWVzID0gdGhpcy5zZWxlY3RlZENsYXNzLmF0dHJpYnV0ZXMubWFwKChhdHRyOiBBdHRyaWJ1dGUpID0+IGF0dHIudGVjaG5pY2FsTmFtZSk7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0cmlidXRlKSB7XG4gICAgICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuaWQsXG4gICAgICAgICAgdGVjaG5pY2FsTmFtZTogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS50ZWNobmljYWxOYW1lLFxuICAgICAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUubmFtZSA/PyB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLnRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgZmllbGQ6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuZmllbGQsXG4gICAgICAgICAgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuY2F0ZWdvcnlcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXR0ckZvcm0uY29udHJvbHNbJ2ZpZWxkJ10uZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICB0aGlzLm5hbWVBbHJlYWR5RXhpc3RzJCA9IHRoaXMuYXR0ckZvcm1cbiAgICAgICAgLmdldCgnbmFtZScpIVxuICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gISF0aGlzLmF0dHJpYnV0ZU5hbWVzPy5pbmNsdWRlcyh2YWx1ZSkgJiYgdmFsdWUgIT0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZT8ubmFtZSlcbiAgICAgICAgKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5uYW1lQWxyZWFkeUV4aXN0cyQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gKHRoaXMubmFtZUFscmVhZHlFeGlzdHMgPSB2YWx1ZSkpKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5hdHRyRm9ybVxuICAgICAgICAuZ2V0KCd0ZWNobmljYWxOYW1lJykhXG4gICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBkZWJvdW5jZVRpbWUoNTAwKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLmF0dHJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgbmFtZTogdmFsdWUuc2xpY2UoMCwgNTApXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmF0dHJpYnV0ZVRlY2huaWNhbE5hbWVzKSB7XG4gICAgICB0aGlzLnRlY2huaWNhbE5hbWVBbHJlYWR5RXhpc3RzJCA9IHRoaXMuYXR0ckZvcm1cbiAgICAgICAgLmdldCgndGVjaG5pY2FsTmFtZScpIVxuICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgbWFwKFxuICAgICAgICAgICAgKHZhbHVlKSA9PiAhIXRoaXMuYXR0cmlidXRlVGVjaG5pY2FsTmFtZXM/LmluY2x1ZGVzKHZhbHVlKSAmJiB2YWx1ZSAhPSB0aGlzLnNlbGVjdGVkQXR0cmlidXRlPy50ZWNobmljYWxOYW1lXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy50ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMudGVjaG5pY2FsTmFtZUFscmVhZHlFeGlzdHMgPSB2YWx1ZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCA9IHRoaXMuYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmF0dHJGb3JtLmdldCgnZmllbGQnKT8udmFsdWUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VsZWN0ZWRGaWVsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkcyQucGlwZShcbiAgICAgICAgICBtYXAoKGZpZWxkcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGREZXNjcmlwdGlvbiA9IHRoaXMuZmllbGRUeXBlRGVzY3JpcHRpb24uZmluZChcbiAgICAgICAgICAgICAgKGZpZWxkVHlwZSkgPT4gZmllbGRUeXBlLnZhclR5cGUgPT09IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IHNlbGVjdGVkRmllbGRJZCk/LnR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGREZXNjcmlwdGlvbiA/IHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudChmaWVsZERlc2NyaXB0aW9uLmRlc2NyaXB0aW9uKSA6ICcnO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgY29uc3QgcmVkaXJlY3RQYXRoID0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSA/ICcuLi8uLicgOiAnLi4nO1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFtyZWRpcmVjdFBhdGhdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHBhdGgudG9TdHJpbmcoKSB9KSk7XG4gIH1cblxuICBhZGRBdHRyaWJ1dGUoKSB7XG4gICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIG5hbWU6IHRoaXMuYXR0ckZvcm0udmFsdWUubmFtZS50cmltKClcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5hdHRyRm9ybS52YWx1ZS5uYW1lKSB7XG4gICAgICB0aGlzLmF0dHJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBuYW1lOiB0aGlzLmF0dHJGb3JtLnZhbHVlLnRlY2huaWNhbE5hbWUuc2xpY2UoMCwgNTApXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hdHRyRm9ybS52YWxpZCkge1xuICAgICAgbGV0IGF0dHJUb1NhdmUgPSB0aGlzLmF0dHJGb3JtLmdldFJhd1ZhbHVlKCkgYXMgQXR0cmlidXRlO1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyh7XG4gICAgICAgICAgICBjbGFzc0lkOiB0aGlzLnNlbGVjdGVkQ2xhc3MuaWQsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJUb1NhdmUsXG4gICAgICAgICAgICByb3V0ZTogcGF0aC50b1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlckNsYXNzKSB7XG4gICAgICAgIGxldCBpbnRlckF0dHJpYnV0ZSA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMuaW50ZXJDbGFzcy5hdHRyaWJ1dGVzKTtcbiAgICAgICAgbGV0IGludGVyQ2xhc3NVcGRhdGVkID0geyAuLi50aGlzLmludGVyQ2xhc3MgfTtcbiAgICAgICAgaW50ZXJBdHRyaWJ1dGUucHVzaChhdHRyVG9TYXZlKTtcbiAgICAgICAgaW50ZXJDbGFzc1VwZGF0ZWQuYXR0cmlidXRlcyA9IGludGVyQXR0cmlidXRlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVJbnRlckNsYXNzKHsgY2xhc3M6IGludGVyQ2xhc3NVcGRhdGVkLCByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaG93Q2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gdHJ1ZTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMuY2xvc2VDYXRlZ29yeSgpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgfVxuXG4gIGNsb3NlQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gZmFsc2U7XG4gICAgdGhpcy5jYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBzZWFyY2goZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyQ2F0ZWdvcmllcyQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgYWRkQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5jYXRUb0FkZC5pZCA9IHV1aWQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDYXRlZ29yeSh7IGNhdGVnb3J5OiB0aGlzLmNhdFRvQWRkIH0pKTtcbiAgICB0aGlzLnNldENhdGVnb3J5KHRoaXMuY2F0VG9BZGQpO1xuICB9XG5cbiAgc2V0Q2F0ZWdvcnkoY2F0OiBDYXRlZ29yeSkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBjYXRlZ29yeTogY2F0LmlkXG4gICAgfSk7XG4gICAgdGhpcy5jbG9zZUNhdGVnb3J5KCk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJhdHRyRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRBdHRyaWJ1dGUoKVwiPlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMudGVjaG5pY2FsTmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX3RlY2huaWNhbE5hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwidGVjaG5pY2FsTmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiICpuZ0lmPVwidGVjaG5pY2FsTmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/LmRpcnR5ICYmIGF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl90ZWNobmljYWxOYW1lXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57e1xuICAgICAgICAgICdAcHJ5LmFkbWluLm1pbkxlbmd0aCcgfCBpMThuIDogeyBsZW46IDIgfVxuICAgICAgICB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uaGFzRXJyb3IoJ21heGxlbmd0aCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57e1xuICAgICAgICAgICdAcHJ5LmFkbWluLm1heExlbmd0aCcgfCBpMThuIDogeyBsZW46IDEwMCB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5oYXNFcnJvcignd2hpdGVzcGFjZScpICYmICFhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57e1xuICAgICAgICAgICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuXG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX25hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiICpuZ0lmPVwibmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl9uYW1lXCI+e3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5tYXhMZW5ndGgnIHwgaTE4biA6IHsgbGVuOiA1MCB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignd2hpdGVzcGFjZScpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5ub1doaXRlc3BhY2UnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwidHlwZVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuYXR0cmlidXRlcy5maWVsZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXhcIj5cbiAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgIGlkPVwidHlwZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpZWxkXCJcbiAgICAgICAgW2l0ZW1zXT1cImZpZWxkcyQgfCBhc3luY1wiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwidHJ1ZVwiXG4gICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgIHJlcXVpcmVkPVwidHJ1ZVwiXG4gICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZU9wdGlvblwiXG4gICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZU9wdGlvbiBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsaWduZWQtb3B0aW9uXCI+XG4gICAgICAgICAgPHA+e3sgaXRlbS5uYW1lIH19PC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhLWNoaXBcIiAqbmdJZj1cIml0ZW0uY3JzXCI+e3sgaXRlbS5jcnMgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkRmllbGRUeXBlRGVzY3JpcHRpb24kIHwgYXN5bmMgYXMgZGVzY3JpcHRpb25cIlxuICAgICAgICBjbGFzcz1cIm0taW5mby1pY29uIGEtdG9vbHRpcCAtdG9vbHRpcC13aWR0aC1sZyB1LXNlbGYtY2VudGVyIC1mbGV4LXNocmluay0wXCJcbiAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgPlxuICAgICAgICA8c3Bhbj5pPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnZmllbGQnKT8uaW52YWxpZFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnZmllbGQnKT8uZGlydHkgJiYgYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY2F0ZWdvcnlcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMuY2F0ZWdvcnknIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgPHByeS1zZWxlY3RcbiAgICAgIGlkPVwiY2F0ZWdvcnlcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgW2l0ZW1zXT1cImNhdGVnb3JpZXMkIHwgYXN5bmNcIlxuICAgICAgKGNsaWNrKT1cInNob3dDYXRlZ29yeSgpXCJcbiAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICA+PC9wcnktc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXdpZHRoLXNtXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdjbGFzc2VzJywgYWN0aW9uOiAnYWRkX2F0dHJpYnV0ZScgfVwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImF0dHJGb3JtLmludmFsaWQgfHwgbmFtZUFscmVhZHlFeGlzdHMgfHwgdGVjaG5pY2FsTmFtZUFscmVhZHlFeGlzdHNcIlxuICAgICAgW2lubmVySFRNTF09XCIoc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnQHByeS5hZG1pbi5lZGl0JyA6ICdAcHJ5LmFkbWluLmNyZWF0ZScpIHwgaTE4blwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm8tbW9kYWwgby1tb2RhbC0tc2VsZWN0b3JcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX190aXRsZVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJhLWgyXCIgaWQ9XCJkaWFsb2dfdGl0bGVcIj5cbiAgICAgICAgICB7eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LnNlbGVjdCcgfCBpMThuIH19XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cImNsb3NlQ2F0ZWdvcnkoKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJhZGRDYXRlZ29yeSgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIHNlbGVjdG9yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJuYW1lLXNlYXJjaFwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkuc2VhcmNoT3JDcmVhdGUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgKGlucHV0KT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhdFRvQWRkLm5hbWVcIlxuICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICBpZD1cIm5hbWUtc2VhcmNoXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8dGFibGUgY2xhc3M9XCJhLXRhYmxlXCI+XG4gICAgICAgIDxjYXB0aW9uPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5Lm5hbWUnIHwgaTE4blxuICAgICAgICAgIH19XG4gICAgICAgIDwvY2FwdGlvbj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkubmFtZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBjYXQgb2YgY2F0ZWdvcmllcyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgc2VsZWN0LWl0XCIgKGNsaWNrKT1cInNldENhdGVnb3J5KGNhdClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5zZWxlY3RJdCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIHt7IGNhdC5uYW1lIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2F0ZWdvcmllcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICA8cCBjbGFzcz1cImEtcCBhLXAtLWNyZWF0ZVwiPlxuICAgICAgICAgIDxzdHJvbmc+e3sgY2F0VG9BZGQubmFtZSB9fSA8L3N0cm9uZz5cbiAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkuYWRkJyB8IGkxOG5cIj48L3NwYW4+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5jcmVhdGUnIHwgaTE4blwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZm9ybS9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBd0MsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbEYsT0FBTyxFQUdMLGVBQWUsRUFDZixpQkFBaUIsRUFFakIscUJBQXFCLEVBRXJCLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUdkLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlD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QUFTOytCQUNFLDJCQUEyQjt5TkFrQjVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgQ2F0ZWdvcnksXG4gIENhdGVnb3J5QWN0aW9ucyxcbiAgQ2F0ZWdvcnlTZWxlY3RvcnMsXG4gIENsYXNzLFxuICBERUZBVUxUX0NBVEVHT1JZX1VVSUQsXG4gIEZpZWxkLFxuICBGSUVMRF9PUFRJT05TLFxuICBGaWVsZEFjdGlvbnMsXG4gIEZpZWxkU2VsZWN0b3JzLFxuICBQcnlEaWFsb2dTZXJ2aWNlLFxuICBQcnlJMThuU2VydmljZSxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBub1doaXRlc3BhY2VWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2FkbWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5pbXBvcnQgeyBBZGRDYXRlZ29yeU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2FkZC1jYXRlZ29yeS1tb2RhbC9hZGQtY2F0ZWdvcnktbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLWF0dHJpYnV0ZXMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkbWluQXR0cmlidXRlc0Zvcm1Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGF0dHJGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGF0dHJpYnV0ZU5hbWVzPzogc3RyaW5nW107XG4gIGF0dHJpYnV0ZVRlY2huaWNhbE5hbWVzPzogc3RyaW5nW107XG4gIG5hbWVBbHJlYWR5RXhpc3RzJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHRlY2huaWNhbE5hbWVBbHJlYWR5RXhpc3RzJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIG5hbWVBbHJlYWR5RXhpc3RzID0gZmFsc2U7XG4gIHRlY2huaWNhbE5hbWVBbHJlYWR5RXhpc3RzID0gZmFsc2U7XG5cbiAgZmllbGRzJDogT2JzZXJ2YWJsZTxGaWVsZFtdPjtcbiAgc2VsZWN0ZWRGaWVsZFR5cGVEZXNjcmlwdGlvbiQ/OiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGZpZWxkVHlwZURlc2NyaXB0aW9uID0gRklFTERfT1BUSU9OUztcbiAgY2F0ZWdvcmllcyQ6IE9ic2VydmFibGU8Q2F0ZWdvcnlbXT47XG5cbiAgQElucHV0KCkgc2VsZWN0ZWRDbGFzcz86IENsYXNzO1xuICBASW5wdXQoKSBpbnRlckNsYXNzPzogQ2xhc3M7XG4gIEBJbnB1dCgpIHNlbGVjdGVkQXR0cmlidXRlPzogQXR0cmlidXRlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IFByeURpYWxvZ1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEZpZWxkQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuZmllbGRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEZpZWxkU2VsZWN0b3JzLmZpZWxkcyk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDYXRlZ29yeUFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLmNhdGVnb3JpZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQ2F0ZWdvcnlTZWxlY3RvcnMuY2F0ZWdvcmllcyk7XG5cbiAgICB0aGlzLmF0dHJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3V1aWQoKV0sXG4gICAgICB0ZWNobmljYWxOYW1lOiBbXG4gICAgICAgICcnLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMiksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwMCksIG5vV2hpdGVzcGFjZVZhbGlkYXRvcl1cbiAgICAgIF0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MCksIG5vV2hpdGVzcGFjZVZhbGlkYXRvcl1dLFxuICAgICAgZGVzY3JpcHRpb246IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICBmaWVsZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY2F0ZWdvcnk6IFtERUZBVUxUX0NBVEVHT1JZX1VVSURdLFxuICAgICAgbXVsdGlWYWx1ZWQ6IFtmYWxzZV1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXR0cmlidXRlTmFtZXMgPSB0aGlzLmludGVyQ2xhc3M/LmF0dHJpYnV0ZXMubWFwKChhdHRyOiBBdHRyaWJ1dGUpID0+IGF0dHIubmFtZSk7XG4gICAgdGhpcy5hdHRyaWJ1dGVUZWNobmljYWxOYW1lcyA9IHRoaXMuaW50ZXJDbGFzcz8uYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci50ZWNobmljYWxOYW1lKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2xhc3MpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlTmFtZXMgPSB0aGlzLnNlbGVjdGVkQ2xhc3MuYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcbiAgICAgIHRoaXMuYXR0cmlidXRlVGVjaG5pY2FsTmFtZXMgPSB0aGlzLnNlbGVjdGVkQ2xhc3MuYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci50ZWNobmljYWxOYW1lKTtcblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUpIHtcbiAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS5pZCxcbiAgICAgICAgICB0ZWNobmljYWxOYW1lOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLnRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgbmFtZTogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS5uYW1lID8/IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUudGVjaG5pY2FsTmFtZSxcbiAgICAgICAgICBmaWVsZDogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS5maWVsZCxcbiAgICAgICAgICBjYXRlZ29yeTogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS5jYXRlZ29yeVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hdHRyRm9ybS5jb250cm9sc1snZmllbGQnXS5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlTmFtZXMpIHtcbiAgICAgIHRoaXMubmFtZUFscmVhZHlFeGlzdHMkID0gdGhpcy5hdHRyRm9ybVxuICAgICAgICAuZ2V0KCduYW1lJykhXG4gICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBtYXAoKHZhbHVlKSA9PiAhIXRoaXMuYXR0cmlidXRlTmFtZXM/LmluY2x1ZGVzKHZhbHVlKSAmJiB2YWx1ZSAhPSB0aGlzLnNlbGVjdGVkQXR0cmlidXRlPy5uYW1lKVxuICAgICAgICApO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLm5hbWVBbHJlYWR5RXhpc3RzJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiAodGhpcy5uYW1lQWxyZWFkeUV4aXN0cyA9IHZhbHVlKSkpO1xuICAgIH1cblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmF0dHJGb3JtXG4gICAgICAgIC5nZXQoJ3RlY2huaWNhbE5hbWUnKSFcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIGRlYm91bmNlVGltZSg1MDApKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBuYW1lOiB2YWx1ZS5zbGljZSgwLCA1MClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlVGVjaG5pY2FsTmFtZXMpIHtcbiAgICAgIHRoaXMudGVjaG5pY2FsTmFtZUFscmVhZHlFeGlzdHMkID0gdGhpcy5hdHRyRm9ybVxuICAgICAgICAuZ2V0KCd0ZWNobmljYWxOYW1lJykhXG4gICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAodmFsdWUpID0+ICEhdGhpcy5hdHRyaWJ1dGVUZWNobmljYWxOYW1lcz8uaW5jbHVkZXModmFsdWUpICYmIHZhbHVlICE9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGU/LnRlY2huaWNhbE5hbWVcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICB0aGlzLnRlY2huaWNhbE5hbWVBbHJlYWR5RXhpc3RzJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy50ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyA9IHZhbHVlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkRmllbGRUeXBlRGVzY3JpcHRpb24kID0gdGhpcy5hdHRyRm9ybS5nZXQoJ2ZpZWxkJyk/LnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy52YWx1ZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKChzZWxlY3RlZEZpZWxkSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGRzJC5waXBlKFxuICAgICAgICAgIG1hcCgoZmllbGRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZERlc2NyaXB0aW9uID0gdGhpcy5maWVsZFR5cGVEZXNjcmlwdGlvbi5maW5kKFxuICAgICAgICAgICAgICAoZmllbGRUeXBlKSA9PiBmaWVsZFR5cGUudmFyVHlwZSA9PT0gZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5pZCA9PT0gc2VsZWN0ZWRGaWVsZElkKT8udHlwZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZERlc2NyaXB0aW9uID8gdGhpcy5pMThuU2VydmljZS5pbnN0YW50KGZpZWxkRGVzY3JpcHRpb24uZGVzY3JpcHRpb24pIDogJyc7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICBjb25zdCByZWRpcmVjdFBhdGggPSB0aGlzLnNlbGVjdGVkQXR0cmlidXRlID8gJy4uLy4uJyA6ICcuLic7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW3JlZGlyZWN0UGF0aF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgfVxuXG4gIGFkZEF0dHJpYnV0ZSgpIHtcbiAgICB0aGlzLmF0dHJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgbmFtZTogdGhpcy5hdHRyRm9ybS52YWx1ZS5uYW1lLnRyaW0oKVxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmF0dHJGb3JtLnZhbHVlLm5hbWUpIHtcbiAgICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIG5hbWU6IHRoaXMuYXR0ckZvcm0udmFsdWUudGVjaG5pY2FsTmFtZS5zbGljZSgwLCA1MClcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmF0dHJGb3JtLnZhbGlkKSB7XG4gICAgICBsZXQgYXR0clRvU2F2ZSA9IHRoaXMuYXR0ckZvcm0uZ2V0UmF3VmFsdWUoKSBhcyBBdHRyaWJ1dGU7XG4gICAgICBsZXQgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuLiddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0cmlidXRlKSB7XG4gICAgICAgIHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4vLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZENsYXNzKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUF0dHJpYnV0ZUZvckNsYXNzKHtcbiAgICAgICAgICAgIGNsYXNzSWQ6IHRoaXMuc2VsZWN0ZWRDbGFzcy5pZCxcbiAgICAgICAgICAgIGF0dHJpYnV0ZTogYXR0clRvU2F2ZSxcbiAgICAgICAgICAgIHJvdXRlOiBwYXRoLnRvU3RyaW5nKClcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmludGVyQ2xhc3MpIHtcbiAgICAgICAgbGV0IGludGVyQXR0cmlidXRlID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5pbnRlckNsYXNzLmF0dHJpYnV0ZXMpO1xuICAgICAgICBsZXQgaW50ZXJDbGFzc1VwZGF0ZWQgPSB7IC4uLnRoaXMuaW50ZXJDbGFzcyB9O1xuICAgICAgICBpbnRlckF0dHJpYnV0ZS5wdXNoKGF0dHJUb1NhdmUpO1xuICAgICAgICBpbnRlckNsYXNzVXBkYXRlZC5hdHRyaWJ1dGVzID0gaW50ZXJBdHRyaWJ1dGU7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUludGVyQ2xhc3MoeyBjbGFzczogaW50ZXJDbGFzc1VwZGF0ZWQsIHJvdXRlOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFkZENhdGVnb3J5TW9kYWxDb21wb25lbnQpO1xuICAgIHJlZi5jb21wb25lbnQhLmVudGl0eVR5cGUgPSAnYXR0cmlidXRlJztcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgcmVmLmNvbXBvbmVudCEuY2F0ZWdvcnkuc3Vic2NyaWJlKChjYXRlZ29yeSkgPT4ge1xuICAgICAgICB0aGlzLmF0dHJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGNhdGVnb3JpZXM6IGNhdGVnb3J5LmlkXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQocmVmLmNvbXBvbmVudCEuY2xvc2VNb2RhbC5zdWJzY3JpYmUoKCkgPT4gcmVmLmNsb3NlKCkpKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImF0dHJGb3JtXCIgKG5nU3VibWl0KT1cImFkZEF0dHJpYnV0ZSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLXNtXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImF0dHJfdGVjaG5pY2FsTmFtZVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuYXR0cmlidXRlcy50ZWNobmljYWxOYW1lJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxpbnB1dCBpZD1cImF0dHJfdGVjaG5pY2FsTmFtZVwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZWNobmljYWxOYW1lXCIgcmVxdWlyZWQgLz5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgKm5nSWY9XCJ0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQgfCBhc3luY1wiPnt7XG4gICAgICAnQHByeS5hZG1pbi5leGlzdHMnIHwgaTE4blxuICAgIH19PC9sYWJlbD5cbiAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/LmludmFsaWRcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uZGlydHkgJiYgYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfdGVjaG5pY2FsTmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWluTGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAyIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl90ZWNobmljYWxOYW1lXCI+e3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5tYXhMZW5ndGgnIHwgaTE4bjogeyBsZW46IDEwMCB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5oYXNFcnJvcignd2hpdGVzcGFjZScpICYmICFhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57e1xuICAgICAgICAgICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuXG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX25hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiICpuZ0lmPVwibmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl9uYW1lXCI+e3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5tYXhMZW5ndGgnIHwgaTE4bjogeyBsZW46IDUwIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7ICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmZpZWxkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleFwiPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgaWQ9XCJ0eXBlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIlxuICAgICAgICBbaXRlbXNdPVwiZmllbGRzJCB8IGFzeW5jXCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJ0cnVlXCJcbiAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgcmVxdWlyZWQ9XCJ0cnVlXCJcbiAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlT3B0aW9uXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlT3B0aW9uIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ25lZC1vcHRpb25cIj5cbiAgICAgICAgICA8cD57eyBpdGVtLm5hbWUgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImEtY2hpcFwiICpuZ0lmPVwiaXRlbS5jcnNcIj57eyBpdGVtLmNycyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRGaWVsZFR5cGVEZXNjcmlwdGlvbiQgfCBhc3luYyBhcyBkZXNjcmlwdGlvblwiXG4gICAgICAgIGNsYXNzPVwibS1pbmZvLWljb24gYS10b29sdGlwIC10b29sdGlwLXdpZHRoLWxnIHUtc2VsZi1jZW50ZXIgLWZsZXgtc2hyaW5rLTBcIlxuICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJyaWdodFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuPmk8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5kaXJ0eSAmJiBhdHRyRm9ybS5nZXQoJ2ZpZWxkJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJjYXRlZ29yeVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuYXR0cmlidXRlcy5jYXRlZ29yeScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8cHJ5LXNlbGVjdFxuICAgICAgaWQ9XCJjYXRlZ29yeVwiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYXRlZ29yeVwiXG4gICAgICBbaXRlbXNdPVwiY2F0ZWdvcmllcyQgfCBhc3luY1wiXG4gICAgICAoY2xpY2spPVwib3Blbk1vZGFsKClcIlxuICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICBbaXNGb3JtXT1cInRydWVcIlxuICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxuICAgID48L3ByeS1zZWxlY3Q+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtd2lkdGgtc21cIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiXG4gICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgW2lubmVySFRNTF09XCInQHByeS5hZG1pbi5jYW5jZWwnIHwgaTE4blwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2FkbWluJywgcGFnZTogJ2NsYXNzZXMnLCBhY3Rpb246ICdhZGRfYXR0cmlidXRlJyB9XCJcbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICBbZGlzYWJsZWRdPVwiYXR0ckZvcm0uaW52YWxpZCB8fCBuYW1lQWxyZWFkeUV4aXN0cyB8fCB0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0c1wiXG4gICAgICBbaW5uZXJIVE1MXT1cIihzZWxlY3RlZEF0dHJpYnV0ZSA/ICdAcHJ5LmFkbWluLmVkaXQnIDogJ0BwcnkuYWRtaW4uY3JlYXRlJykgfCBpMThuXCJcbiAgICA+PC9idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -4,7 +4,7 @@ import { AdminDatasetSelectors } from '../store/admin-dataset.selectors';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ngrx/store";
6
6
  import * as i2 from "@angular/router";
7
- import * as i3 from "../shared/admin-form-dataset/admin-form-dataset.component";
7
+ import * as i3 from "../admin-form-dataset/admin-form-dataset.component";
8
8
  import * as i4 from "@provoly/dashboard";
9
9
  export class AdminEditDatasetComponent {
10
10
  constructor(store, route) {