@netgrif/components-core 6.2.0-rc.8 → 6.2.1

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 (194) hide show
  1. package/commons/schema.d.ts +2 -0
  2. package/esm2020/assets/i18n/de.json +12 -0
  3. package/esm2020/assets/i18n/en.json +12 -0
  4. package/esm2020/assets/i18n/sk.json +13 -1
  5. package/esm2020/commons/schema.mjs +1 -1
  6. package/esm2020/commons/view-class-info.mjs +9 -1
  7. package/esm2020/lib/admin/public-api.mjs +2 -2
  8. package/esm2020/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.component.mjs +88 -0
  9. package/esm2020/lib/authentication/services/methods/basic-authentication/basic-authentication.service.mjs +10 -2
  10. package/esm2020/lib/data-fields/button-field/abstract-button-field.component.mjs +2 -12
  11. package/esm2020/lib/data-fields/button-field/models/button-field.mjs +2 -18
  12. package/esm2020/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.mjs +4 -5
  13. package/esm2020/lib/data-fields/enumeration-field/models/enumeration-field.mjs +2 -22
  14. package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +30 -13
  15. package/esm2020/lib/data-fields/file-list-field/abstract-file-list-field.component.mjs +35 -15
  16. package/esm2020/lib/data-fields/i18n-field/abstract-i18n-field.component.mjs +1 -4
  17. package/esm2020/lib/data-fields/models/abstract-data-field.mjs +9 -1
  18. package/esm2020/lib/data-fields/multichoice-field/models/multichoice-field.mjs +2 -17
  19. package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.mjs +79 -0
  20. package/esm2020/lib/data-fields/public-api.mjs +4 -1
  21. package/esm2020/lib/data-fields/text-field/models/text-area-field.mjs +4 -5
  22. package/esm2020/lib/data-fields/text-field/models/text-field.mjs +2 -14
  23. package/esm2020/lib/data-fields/user-list-field/abstract-user-list-field.component.mjs +75 -0
  24. package/esm2020/lib/data-fields/user-list-field/models/user-list-field.mjs +11 -0
  25. package/esm2020/lib/data-fields/user-list-field/models/user-list-value.mjs +36 -0
  26. package/esm2020/lib/dialog/components/alert-dialog/alert-dialog.component.mjs +4 -4
  27. package/esm2020/lib/dialog/components/confirm-dialog/confirm-dialog.component.mjs +4 -4
  28. package/esm2020/lib/dialog/components/prompt-dialog/prompt-dialog.component.mjs +4 -4
  29. package/esm2020/lib/dialog/models/abstract-dialog.component.mjs +29 -0
  30. package/esm2020/lib/header/abstract-header-service.mjs +25 -9
  31. package/esm2020/lib/header/abstract-header.component.mjs +7 -5
  32. package/esm2020/lib/header/case-header/case-header.service.mjs +2 -2
  33. package/esm2020/lib/header/services/overflow.service.mjs +2 -2
  34. package/esm2020/lib/header/task-header/task-header.service.mjs +7 -4
  35. package/esm2020/lib/header/workflow-header/workflow-header.service.mjs +11 -8
  36. package/esm2020/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.mjs +69 -0
  37. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +7 -6
  38. package/esm2020/lib/navigation/public-api.mjs +2 -1
  39. package/esm2020/lib/navigation/service/uri.service.mjs +5 -1
  40. package/esm2020/lib/panel/abstract/panel-with-header-binding.mjs +17 -5
  41. package/esm2020/lib/panel/abstract/panel-with-immediate-data.mjs +52 -22
  42. package/esm2020/lib/panel/abstract-panel.component.mjs +23 -5
  43. package/esm2020/lib/panel/case-panel/abstract-case-panel.component.mjs +13 -11
  44. package/esm2020/lib/panel/configuration/config-params.mjs +5 -0
  45. package/esm2020/lib/panel/public-api.mjs +5 -1
  46. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +48 -13
  47. package/esm2020/lib/panel/task-panel/models/task-panel-context.mjs +2 -0
  48. package/esm2020/lib/panel/task-panel-list/abstract-task-list.component.mjs +3 -3
  49. package/esm2020/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.mjs +94 -0
  50. package/esm2020/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.mjs +3 -3
  51. package/esm2020/lib/panel/task-panel-single/abstract-single-task.component.mjs +81 -0
  52. package/esm2020/lib/panel/workflow-panel/abstract-workflow-panel.component.mjs +40 -6
  53. package/esm2020/lib/public/factories/public-factory-resolver.mjs +8 -3
  54. package/esm2020/lib/resources/engine-endpoint/petri-net-resource.service.mjs +12 -4
  55. package/esm2020/lib/resources/engine-endpoint/public/public-task-resource.service.mjs +1 -40
  56. package/esm2020/lib/resources/engine-endpoint/task-resource.service.mjs +4 -1
  57. package/esm2020/lib/resources/interface/fields.mjs +1 -1
  58. package/esm2020/lib/routing/redirect-service/redirect.service.mjs +2 -1
  59. package/esm2020/lib/side-menu/content-components/new-case/model/new-case-injection-data.mjs +1 -1
  60. package/esm2020/lib/side-menu/content-components/save-filter/abstract-save-filter.component.mjs +8 -7
  61. package/esm2020/lib/side-menu/content-components/user-assign/abstract-user-assign.component.mjs +1 -1
  62. package/esm2020/lib/side-menu/content-components/user-assign/model/user-list-injected-data.mjs +1 -1
  63. package/esm2020/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.mjs +3 -3
  64. package/esm2020/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.mjs +3 -3
  65. package/esm2020/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.mjs +3 -3
  66. package/esm2020/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.mjs +3 -3
  67. package/esm2020/lib/snack-bar/models/abstract-snack-bar.component.mjs +26 -0
  68. package/esm2020/lib/snack-bar/public-api.mjs +2 -2
  69. package/esm2020/lib/tabs/classes/opened-tab.mjs +19 -1
  70. package/esm2020/lib/tabs/classes/tab-label-stream.mjs +15 -0
  71. package/esm2020/lib/tabs/classes/tab-view.mjs +11 -3
  72. package/esm2020/lib/tabs/interfaces.mjs +1 -1
  73. package/esm2020/lib/tabs/public-api.mjs +3 -1
  74. package/esm2020/lib/task/services/assign-task.service.mjs +7 -6
  75. package/esm2020/lib/task/services/cancel-task.service.mjs +7 -6
  76. package/esm2020/lib/task/services/delegate-task.service.mjs +9 -8
  77. package/esm2020/lib/task/services/finish-policy.service.mjs +2 -2
  78. package/esm2020/lib/task/services/finish-task.service.mjs +7 -6
  79. package/esm2020/lib/task/services/task-data.service.mjs +51 -13
  80. package/esm2020/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.mjs +3 -2
  81. package/esm2020/lib/task-content/model/field-type-resource.mjs +2 -1
  82. package/esm2020/lib/task-content/model/resource-interface.mjs +1 -1
  83. package/esm2020/lib/task-content/model/task-event-notification.mjs +5 -3
  84. package/esm2020/lib/task-content/services/field-converter.service.mjs +28 -90
  85. package/esm2020/lib/task-content/services/task-content.service.mjs +5 -2
  86. package/esm2020/lib/view/abstract/view-with-headers.mjs +13 -4
  87. package/esm2020/lib/view/case-view/abstract-case-view.mjs +9 -12
  88. package/esm2020/lib/view/case-view/components/case-list/abstract-case-list.component.mjs +3 -3
  89. package/esm2020/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.mjs +3 -3
  90. package/esm2020/lib/view/case-view/components/default-case-list/abstract-default-case-list.component.mjs +81 -0
  91. package/esm2020/lib/view/case-view/tabbed-case-view.mjs +7 -14
  92. package/esm2020/lib/view/public-api.mjs +2 -1
  93. package/esm2020/lib/view/task-view/abstract-single-task-view.component.mjs +55 -0
  94. package/esm2020/lib/view/task-view/abstract-task-view.mjs +6 -5
  95. package/esm2020/lib/view/task-view/tabbed-task-view.mjs +6 -5
  96. package/esm2020/lib/view/tree-case-view/tree-component/case-tree.service.mjs +6 -4
  97. package/esm2020/lib/view/workflow-view/abstract-workflow-view.component.mjs +6 -5
  98. package/fesm2015/netgrif-components-core.mjs +1127 -559
  99. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  100. package/fesm2020/netgrif-components-core.mjs +1105 -560
  101. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  102. package/lib/admin/public-api.d.ts +1 -1
  103. package/lib/admin/role-assignment-ldap-group/{abstract-ldap-group-role-assignment.d.ts → abstract-ldap-group-role-assignment.component.d.ts} +3 -3
  104. package/lib/authentication/services/methods/basic-authentication/basic-authentication.service.d.ts +2 -0
  105. package/lib/data-fields/button-field/abstract-button-field.component.d.ts +0 -5
  106. package/lib/data-fields/button-field/models/button-field.d.ts +1 -12
  107. package/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.d.ts +2 -3
  108. package/lib/data-fields/enumeration-field/models/enumeration-field.d.ts +1 -11
  109. package/lib/data-fields/i18n-field/abstract-i18n-field.component.d.ts +0 -1
  110. package/lib/data-fields/models/abstract-data-field.d.ts +5 -0
  111. package/lib/data-fields/multichoice-field/models/multichoice-field.d.ts +1 -8
  112. package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.d.ts +24 -0
  113. package/lib/data-fields/public-api.d.ts +3 -0
  114. package/lib/data-fields/text-field/models/text-area-field.d.ts +2 -3
  115. package/lib/data-fields/text-field/models/text-field.d.ts +1 -9
  116. package/lib/data-fields/user-list-field/abstract-user-list-field.component.d.ts +38 -0
  117. package/lib/data-fields/user-list-field/models/user-list-field.d.ts +10 -0
  118. package/lib/data-fields/user-list-field/models/user-list-value.d.ts +16 -0
  119. package/lib/dialog/components/alert-dialog/alert-dialog.component.d.ts +3 -3
  120. package/lib/dialog/components/confirm-dialog/confirm-dialog.component.d.ts +3 -3
  121. package/lib/dialog/components/prompt-dialog/prompt-dialog.component.d.ts +3 -3
  122. package/lib/dialog/models/{abstract-dialog.d.ts → abstract-dialog.component.d.ts} +3 -3
  123. package/lib/header/abstract-header-service.d.ts +6 -3
  124. package/lib/header/abstract-header.component.d.ts +2 -2
  125. package/lib/header/services/overflow.service.d.ts +1 -1
  126. package/lib/header/task-header/task-header.service.d.ts +3 -2
  127. package/lib/header/workflow-header/workflow-header.service.d.ts +3 -2
  128. package/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.d.ts +18 -0
  129. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +2 -2
  130. package/lib/navigation/public-api.d.ts +1 -0
  131. package/lib/navigation/service/uri.service.d.ts +2 -0
  132. package/lib/panel/abstract/panel-with-header-binding.d.ts +5 -2
  133. package/lib/panel/abstract/panel-with-immediate-data.d.ts +4 -2
  134. package/lib/panel/abstract-panel.component.d.ts +8 -2
  135. package/lib/panel/case-panel/abstract-case-panel.component.d.ts +3 -3
  136. package/lib/panel/configuration/config-params.d.ts +3 -0
  137. package/lib/panel/public-api.d.ts +3 -0
  138. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +13 -4
  139. package/lib/panel/task-panel/models/task-panel-context.d.ts +19 -0
  140. package/lib/panel/task-panel-list/abstract-task-list.component.d.ts +2 -2
  141. package/lib/panel/task-panel-list/default-task-panel-list/{abstract-default-task-list.d.ts → abstract-default-task-list.component.d.ts} +3 -3
  142. package/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.d.ts +2 -2
  143. package/lib/panel/task-panel-single/abstract-single-task.component.d.ts +42 -0
  144. package/lib/panel/workflow-panel/abstract-workflow-panel.component.d.ts +13 -2
  145. package/lib/public/factories/public-factory-resolver.d.ts +2 -1
  146. package/lib/resources/engine-endpoint/petri-net-resource.service.d.ts +1 -1
  147. package/lib/resources/engine-endpoint/public/public-task-resource.service.d.ts +0 -12
  148. package/lib/resources/interface/fields.d.ts +0 -5
  149. package/lib/side-menu/content-components/new-case/model/new-case-injection-data.d.ts +5 -0
  150. package/lib/side-menu/content-components/save-filter/abstract-save-filter.component.d.ts +2 -1
  151. package/lib/side-menu/content-components/user-assign/model/user-list-injected-data.d.ts +2 -1
  152. package/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.d.ts +2 -2
  153. package/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.d.ts +2 -2
  154. package/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.d.ts +2 -2
  155. package/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.d.ts +2 -2
  156. package/lib/snack-bar/models/{abstract-snack-bar.d.ts → abstract-snack-bar.component.d.ts} +3 -3
  157. package/lib/snack-bar/public-api.d.ts +1 -1
  158. package/lib/tabs/classes/opened-tab.d.ts +8 -1
  159. package/lib/tabs/classes/tab-label-stream.d.ts +7 -0
  160. package/lib/tabs/interfaces.d.ts +12 -1
  161. package/lib/tabs/public-api.d.ts +2 -0
  162. package/lib/task/services/assign-task.service.d.ts +4 -2
  163. package/lib/task/services/cancel-task.service.d.ts +4 -2
  164. package/lib/task/services/delegate-task.service.d.ts +5 -3
  165. package/lib/task/services/finish-task.service.d.ts +4 -2
  166. package/lib/task/services/task-data.service.d.ts +12 -3
  167. package/lib/task-content/model/field-type-resource.d.ts +1 -0
  168. package/lib/task-content/model/resource-interface.d.ts +0 -3
  169. package/lib/task-content/model/task-event-notification.d.ts +7 -1
  170. package/lib/task-content/services/field-converter.service.d.ts +3 -16
  171. package/lib/task-content/services/task-content.service.d.ts +1 -0
  172. package/lib/view/abstract/view-with-headers.d.ts +5 -1
  173. package/lib/view/case-view/abstract-case-view.d.ts +5 -3
  174. package/lib/view/case-view/components/case-list/abstract-case-list.component.d.ts +2 -2
  175. package/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.d.ts +2 -2
  176. package/lib/view/case-view/components/default-case-list/{abstract-default-case-list.d.ts → abstract-default-case-list.component.d.ts} +3 -3
  177. package/lib/view/case-view/tabbed-case-view.d.ts +4 -4
  178. package/lib/view/public-api.d.ts +1 -0
  179. package/lib/view/task-view/abstract-single-task-view.component.d.ts +25 -0
  180. package/lib/view/task-view/abstract-task-view.d.ts +2 -1
  181. package/lib/view/task-view/tabbed-task-view.d.ts +2 -1
  182. package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +2 -1
  183. package/package.json +1 -2
  184. package/schematics/_commons/view-class-info.js +8 -0
  185. package/schematics/_commons/view-class-info.js.map +1 -1
  186. package/src/assets/i18n/de.json +12 -0
  187. package/src/assets/i18n/en.json +12 -0
  188. package/src/assets/i18n/sk.json +13 -1
  189. package/src/schema/nae-schema.json +6 -0
  190. package/esm2020/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.mjs +0 -88
  191. package/esm2020/lib/dialog/models/abstract-dialog.mjs +0 -29
  192. package/esm2020/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.mjs +0 -94
  193. package/esm2020/lib/snack-bar/models/abstract-snack-bar.mjs +0 -26
  194. package/esm2020/lib/view/case-view/components/default-case-list/abstract-default-case-list.mjs +0 -81
@@ -8,14 +8,16 @@ import { HeaderChangeType } from './models/user-changes/header-change-type';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "./models/header-type";
10
10
  import * as i2 from "../user/services/user-preference.service";
11
- import * as i3 from "../user/services/view-id.service";
12
- import * as i4 from "../logger/services/logger.service";
11
+ import * as i3 from "../logger/services/logger.service";
12
+ import * as i4 from "../user/services/view-id.service";
13
+ import * as i5 from "./services/overflow.service";
13
14
  export class AbstractHeaderService {
14
- constructor(_headerType, _preferences, _viewIdService, _logger) {
15
+ constructor(_headerType, _preferences, _logger, _viewIdService, _overflowService) {
15
16
  this._headerType = _headerType;
16
17
  this._preferences = _preferences;
17
- this._viewIdService = _viewIdService;
18
18
  this._logger = _logger;
19
+ this._viewIdService = _viewIdService;
20
+ this._overflowService = _overflowService;
19
21
  this.loading = new LoadingEmitter(true);
20
22
  this._headerChange$ = new Subject();
21
23
  this.fieldsGroup = [{ groupTitle: 'Meta data', fields: this.createMetaHeaders() }];
@@ -47,6 +49,14 @@ export class AbstractHeaderService {
47
49
  get headerType() {
48
50
  return this._headerType;
49
51
  }
52
+ get overflowMode() {
53
+ if (!!this._overflowService) {
54
+ return this._overflowService.overflowMode;
55
+ }
56
+ else {
57
+ return false;
58
+ }
59
+ }
50
60
  get headerColumnCount() {
51
61
  return this._headerColumnCount$.getValue();
52
62
  }
@@ -240,7 +250,11 @@ export class AbstractHeaderService {
240
250
  header.sortDirection = '';
241
251
  }
242
252
  });
243
- this._headerChange$.next({ headerType: this.headerType, changeType: HeaderChangeType.SORT, description: sortChangeDescription });
253
+ this._headerChange$.next({
254
+ headerType: this.headerType,
255
+ changeType: HeaderChangeType.SORT,
256
+ description: sortChangeDescription
257
+ });
244
258
  }
245
259
  /**
246
260
  * Saves the search value in the appropriate column in the header
@@ -386,11 +400,13 @@ export class AbstractHeaderService {
386
400
  }
387
401
  AbstractHeaderService.DEFAULT_HEADER_COUNT = 5;
388
402
  AbstractHeaderService.DEFAULT_HEADER_RESPONSIVITY = true;
389
- AbstractHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderService, deps: [{ token: i1.HeaderType }, { token: i2.UserPreferenceService }, { token: i3.ViewIdService, optional: true }, { token: i4.LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
403
+ AbstractHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderService, deps: [{ token: i1.HeaderType }, { token: i2.UserPreferenceService }, { token: i3.LoggerService }, { token: i4.ViewIdService, optional: true }, { token: i5.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
390
404
  AbstractHeaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderService });
391
405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderService, decorators: [{
392
406
  type: Injectable
393
- }], ctorParameters: function () { return [{ type: i1.HeaderType }, { type: i2.UserPreferenceService }, { type: i3.ViewIdService, decorators: [{
407
+ }], ctorParameters: function () { return [{ type: i1.HeaderType }, { type: i2.UserPreferenceService }, { type: i3.LoggerService }, { type: i4.ViewIdService, decorators: [{
408
+ type: Optional
409
+ }] }, { type: i5.OverflowService, decorators: [{
394
410
  type: Optional
395
- }] }, { type: i4.LoggerService }]; } });
396
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2hlYWRlci9hYnN0cmFjdC1oZWFkZXItc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFDLFdBQVcsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU05RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBR3RFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7O0FBSzFFLE1BQU0sT0FBZ0IscUJBQXFCO0lBaUJ2QyxZQUFnQyxXQUF1QixFQUN2QixZQUFtQyxFQUN6QixjQUE2QixFQUN2QyxPQUFzQjtRQUh0QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxD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QkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ08sU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs7QUFqYnNCLDBDQUFvQixHQUFHLENBQUUsQ0FBQTtBQUN6QixpREFBMkIsR0FBRyxJQUFLLENBQUE7bUhBSHhDLHFCQUFxQjt1SEFBckIscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBRDFDLFVBQVU7OzBCQW9CZ0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmllbGRzR3JvdXB9IGZyb20gJy4vbW9kZWxzL2ZpZWxkcy1ncm91cCc7XG5pbXBvcnQge0hlYWRlclN0YXRlLCBIZWFkZXJTdGF0ZUludGVyZmFjZX0gZnJvbSAnLi9oZWFkZXItc3RhdGUnO1xuaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U29ydENoYW5nZURlc2NyaXB0aW9ufSBmcm9tICcuL21vZGVscy91c2VyLWNoYW5nZXMvc29ydC1jaGFuZ2UtZGVzY3JpcHRpb24nO1xuaW1wb3J0IHtTZWFyY2hDaGFuZ2VEZXNjcmlwdGlvbn0gZnJvbSAnLi9tb2RlbHMvdXNlci1jaGFuZ2VzL3NlYXJjaC1jaGFuZ2UtZGVzY3JpcHRpb24nO1xuaW1wb3J0IHtIZWFkZXJDaGFuZ2V9IGZyb20gJy4vbW9kZWxzL3VzZXItY2hhbmdlcy9oZWFkZXItY2hhbmdlJztcbmltcG9ydCB7UGV0cmlOZXRSZWZlcmVuY2V9IGZyb20gJy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvcGV0cmktbmV0LXJlZmVyZW5jZSc7XG5pbXBvcnQge0hlYWRlclR5cGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci10eXBlJztcbmltcG9ydCB7SGVhZGVyTW9kZX0gZnJvbSAnLi9tb2RlbHMvaGVhZGVyLW1vZGUnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW4sIEhlYWRlckNvbHVtblR5cGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci1jb2x1bW4nO1xuaW1wb3J0IHtVc2VyUHJlZmVyZW5jZVNlcnZpY2V9IGZyb20gJy4uL3VzZXIvc2VydmljZXMvdXNlci1wcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2FkaW5nRW1pdHRlcn0gZnJvbSAnLi4vdXRpbGl0eS9sb2FkaW5nLWVtaXR0ZXInO1xuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7SGVhZGVyQ2hhbmdlVHlwZX0gZnJvbSAnLi9tb2RlbHMvdXNlci1jaGFuZ2VzL2hlYWRlci1jaGFuZ2UtdHlwZSc7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcbmltcG9ydCB7TmV0fSBmcm9tICcuLi9wcm9jZXNzL25ldCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEhlYWRlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0hFQURFUl9DT1VOVCA9IDU7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0hFQURFUl9SRVNQT05TSVZJVFkgPSB0cnVlO1xuXG4gICAgcHJvdGVjdGVkIF9oZWFkZXJDb2x1bW5Db3VudCQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICAgIHByb3RlY3RlZCBfcHJlZmVyZW5jZUNvbHVtbkNvdW50JDogUmVwbGF5U3ViamVjdDxudW1iZXI+O1xuICAgIHByb3RlY3RlZCBfcmVzcG9uc2l2ZUhlYWRlcnMkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIF9oZWFkZXJTdGF0ZTogSGVhZGVyU3RhdGU7XG4gICAgcHJvdGVjdGVkIF9oZWFkZXJDaGFuZ2UkOiBTdWJqZWN0PEhlYWRlckNoYW5nZT47XG4gICAgcHJvdGVjdGVkIF9jbGVhckhlYWRlclNlYXJjaCQ6IFN1YmplY3Q8bnVtYmVyPjtcbiAgICBwcml2YXRlIF9pbml0RGVmYXVsdEhlYWRlcnM6IEFycmF5PHN0cmluZz47XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWRDb3VudDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBsb2FkaW5nOiBMb2FkaW5nRW1pdHRlcjtcbiAgICBwdWJsaWMgZmllbGRzR3JvdXA6IEFycmF5PEZpZWxkc0dyb3VwPjtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2hlYWRlclR5cGU6IEhlYWRlclR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2dnZXI6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gbmV3IExvYWRpbmdFbWl0dGVyKHRydWUpO1xuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkID0gbmV3IFN1YmplY3Q8SGVhZGVyQ2hhbmdlPigpO1xuICAgICAgICB0aGlzLmZpZWxkc0dyb3VwID0gW3tncm91cFRpdGxlOiAnTWV0YSBkYXRhJywgZmllbGRzOiB0aGlzLmNyZWF0ZU1ldGFIZWFkZXJzKCl9XTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ29sdW1uQ291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KEFic3RyYWN0SGVhZGVyU2VydmljZS5ERUZBVUxUX0hFQURFUl9DT1VOVCk7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNpdmVIZWFkZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oQWJzdHJhY3RIZWFkZXJTZXJ2aWNlLkRFRkFVTFRfSEVBREVSX1JFU1BPTlNJVklUWSk7XG4gICAgICAgIHRoaXMuX3ByZWZlcmVuY2VDb2x1bW5Db3VudCQgPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KCk7XG4gICAgICAgIHRoaXMuX2NsZWFySGVhZGVyU2VhcmNoJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRDb3VudCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLl92aWV3SWRTZXJ2aWNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2dnZXIud2FybignSGVhZGVyIHNlcnZpY2UgY291bGQgbm90IGluamVjdCBWaWV3SWRTZXJ2aWNlISBVc2VyIHByZWZlcmVuY2VzIHdvblxcJ3QgYmUgbG9hZGVkIG9yIHNhdmVkIScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcHJlZmVyZW5jZXMucHJlZmVyZW5jZXNDaGFuZ2VkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkSGVhZGVyc0Zyb21QcmVmZXJlbmNlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmluaXRpYWxpemVIZWFkZXJTdGF0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIE9ic2VydmFibGUgZm9yIGFsbCBjaGFuZ2VzIGluIGhlYWRlclxuICAgICAqL1xuICAgIGdldCBoZWFkZXJDaGFuZ2UkKCk6IE9ic2VydmFibGU8SGVhZGVyQ2hhbmdlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGdldCBzZWxlY3RlZEhlYWRlcnMkKCk6IE9ic2VydmFibGU8QXJyYXk8SGVhZGVyQ29sdW1uPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzJDtcbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyU3RhdGUoKTogSGVhZGVyU3RhdGVJbnRlcmZhY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyU3RhdGUuYXNJbnRlcmZhY2UoKTtcbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyVHlwZSgpOiBIZWFkZXJUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlclR5cGU7XG4gICAgfVxuXG4gICAgZ2V0IGhlYWRlckNvbHVtbkNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJDb2x1bW5Db3VudCQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBzZXQgaGVhZGVyQ29sdW1uQ291bnQobWF4Q29sdW1uczogbnVtYmVyKSB7XG4gICAgICAgIGlmIChtYXhDb2x1bW5zICE9PSB0aGlzLmhlYWRlckNvbHVtbkNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJDb2x1bW5Db3VudCQubmV4dChtYXhDb2x1bW5zKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSGVhZGVyQ29sdW1uQ291bnQoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWRDb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZURlZmF1bHRIZWFkZXJTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkQ291bnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGhlYWRlckNvbHVtbkNvdW50JCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyQ29sdW1uQ291bnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGdldCByZXNwb25zaXZlSGVhZGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNpdmVIZWFkZXJzJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCByZXNwb25zaXZlSGVhZGVycyhyZXNwb25zaXZlSGVhZGVyczogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZXNwb25zaXZlSGVhZGVycyQubmV4dChyZXNwb25zaXZlSGVhZGVycyk7XG4gICAgfVxuXG4gICAgZ2V0IHJlc3BvbnNpdmVIZWFkZXJzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNpdmVIZWFkZXJzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgY2xlYXJIZWFkZXJTZWFyY2gkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGVhckhlYWRlclNlYXJjaCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IGluaXREZWZhdWx0SGVhZGVycyhkZWZhdWx0SGVhZGVyczogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9pbml0RGVmYXVsdEhlYWRlcnMgPSBkZWZhdWx0SGVhZGVycztcbiAgICB9XG5cbiAgICBnZXQgaW5pdERlZmF1bHRIZWFkZXJzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdERlZmF1bHRIZWFkZXJzO1xuICAgIH1cblxuICAgIGdldCBwcmVmZXJlbmNlQ29sdW1uQ291bnQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcmVmZXJlbmNlQ29sdW1uQ291bnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUhlYWRlclN0YXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkZWZhdWx0SGVhZGVycyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmllbGRzR3JvdXBbMF0uZmllbGRzLmxlbmd0aCAmJiBkZWZhdWx0SGVhZGVycy5sZW5ndGggPCB0aGlzLmhlYWRlckNvbHVtbkNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkc0dyb3VwWzBdLmZpZWxkc1tpXS5pbml0aWFsKSB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnMucHVzaCh0aGlzLmZpZWxkc0dyb3VwWzBdLmZpZWxkc1tpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGRlZmF1bHRIZWFkZXJzLmxlbmd0aCA8IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQpIHtcbiAgICAgICAgICAgIGRlZmF1bHRIZWFkZXJzLnB1c2gobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUgPSBuZXcgSGVhZGVyU3RhdGUoZGVmYXVsdEhlYWRlcnMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplRGVmYXVsdEhlYWRlclN0YXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbml0RGVmYXVsdEhlYWRlcnMgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmluaXREZWZhdWx0SGVhZGVycykpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRIZWFkZXJzID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgICAgIGRlZmF1bHRIZWFkZXJzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaW5pdERlZmF1bHRIZWFkZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgPj0gdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIud2FybigndGhlcmUgYXJlIG1vcmUgTkFFX0RFRkFVTFRfSEVBREVSUyB0aGFuIGhlYWRlciBjb2x1bW5zLiBTa2lwcGluZyB0aGUgcmVzdC4uLicpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBoIG9mIHRoaXMuZmllbGRzR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhZCA9IGguZmllbGRzLmZpbmQoaGVhZGVyID0+IGhlYWRlci51bmlxdWVJZCA9PT0gdGhpcy5pbml0RGVmYXVsdEhlYWRlcnNbaV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnNbaV0gPSBoZWFkO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS51cGRhdGVTZWxlY3RlZEhlYWRlcnMoZGVmYXVsdEhlYWRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGBudWxsYCBoZWFkZXJzIGlmIHRoZSBuZXcgY291bnQgaXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNvdW50LlxuICAgICAqXG4gICAgICogUmVtb3ZlcyBleHRyYSBoZWFkZXJzIGlmIHRoZSBuZXcgY291bnQgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50IGNvdW50LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVIZWFkZXJDb2x1bW5Db3VudCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLl9oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnM7XG4gICAgICAgIGlmIChoZWFkZXJzLmxlbmd0aCA8IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQpIHtcbiAgICAgICAgICAgIHdoaWxlIChoZWFkZXJzLmxlbmd0aCAhPT0gdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgICAgIGhlYWRlcnMucHVzaChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChoZWFkZXJzLmxlbmd0aCA+IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNsaWNlKDAsIHRoaXMuaGVhZGVyQ29sdW1uQ291bnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnVwZGF0ZVNlbGVjdGVkSGVhZGVycyhoZWFkZXJzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QWxsb3dlZE5ldHMoYWxsb3dlZE5ldHM6IEFycmF5PFBldHJpTmV0UmVmZXJlbmNlPikge1xuICAgICAgICAvKiBUT0RPIGJ5IHNpbXBseSByZXBsYWNpbmcgdGhlIHNlbGVjdCBvcHRpb25zIHdpdGggbmV3IG9iamVjdCwgd2UgZG9uJ3QgbG9vc2UgdGhlIG9sZCByZWZlcmVuY2VzLlxuICAgICAgICAgICAgIENvbHVtbnMgd2l0aCBoZWFkZXJzIGZyb20gbmV0cyB0aGF0IGFyZSBubyBsb25nZXIgYWxsb3dlZCBzaG91bGQgaGF2ZSB0aGVpciB2YWx1ZSBjbGVhcmVkLlxuICAgICAgICAgICAgIENvbHVtbnMgd2l0aCB2YWxpZCB2YWx1ZXMgdGhhdCBhcmUgbm90IG1ldGFkYXRhIHNob3VsZCBoYXZlIHRoZWlyIHNlbGVjdGlvbiByZW1hcHBlZCB0byB0aGUgbmV3IG9iamVjdHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbnN0IGZpZWxkc0dyb3VwczogQXJyYXk8RmllbGRzR3JvdXA+ID0gW107XG4gICAgICAgIGFsbG93ZWROZXRzLmZvckVhY2goYWxsb3dlZE5ldCA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZHNHcm91cDogRmllbGRzR3JvdXAgPSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBUaXRsZTogYWxsb3dlZE5ldC50aXRsZSxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYWxsb3dlZE5ldC5pbW1lZGlhdGVEYXRhLmZvckVhY2goaW1tZWRpYXRlID0+IHtcbiAgICAgICAgICAgICAgICBmaWVsZHNHcm91cC5maWVsZHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLklNTUVESUFURSwgaW1tZWRpYXRlLnN0cmluZ0lkLCBpbW1lZGlhdGUudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbW1lZGlhdGUudHlwZSwgZmFsc2UsIGFsbG93ZWROZXQuaWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmaWVsZHNHcm91cHMucHVzaChmaWVsZHNHcm91cCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmllbGRzR3JvdXAuc3BsaWNlKDEsIHRoaXMuZmllbGRzR3JvdXAubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMuZmllbGRzR3JvdXAucHVzaCguLi5maWVsZHNHcm91cHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRUYXNrQWxsb3dlZE5ldHMoYWxsb3dlZE5ldHM6IEFycmF5PE5ldD4pIHtcbiAgICAgICAgLyogVE9ETyBieSBzaW1wbHkgcmVwbGFjaW5nIHRoZSBzZWxlY3Qgb3B0aW9ucyB3aXRoIG5ldyBvYmplY3QsIHdlIGRvbid0IGxvb3NlIHRoZSBvbGQgcmVmZXJlbmNlcy5cbiAgICAgICAgICAgICBDb2x1bW5zIHdpdGggaGVhZGVycyBmcm9tIG5ldHMgdGhhdCBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgc2hvdWxkIGhhdmUgdGhlaXIgdmFsdWUgY2xlYXJlZC5cbiAgICAgICAgICAgICBDb2x1bW5zIHdpdGggdmFsaWQgdmFsdWVzIHRoYXQgYXJlIG5vdCBtZXRhZGF0YSBzaG91bGQgaGF2ZSB0aGVpciBzZWxlY3Rpb24gcmVtYXBwZWQgdG8gdGhlIG5ldyBvYmplY3RzLlxuICAgICAgICAgKi9cblxuICAgICAgICBjb25zdCBmaWVsZHNHcm91cHM6IEFycmF5PEZpZWxkc0dyb3VwPiA9IFtdO1xuICAgICAgICBhbGxvd2VkTmV0cy5mb3JFYWNoKGFsbG93ZWROZXQgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGRzR3JvdXA6IEZpZWxkc0dyb3VwID0ge1xuICAgICAgICAgICAgICAgIGdyb3VwVGl0bGU6IGFsbG93ZWROZXQudGl0bGUsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBbXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgYWxsb3dlZE5ldC50cmFuc2l0aW9ucy5mb3JFYWNoKHRyYW5zID0+IHtcbiAgICAgICAgICAgICAgICB0cmFucy5pbW1lZGlhdGVEYXRhLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZXhpc3RpbmcuaGFzKGRhdGEuc3RyaW5nSWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5hZGQoZGF0YS5zdHJpbmdJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNHcm91cC5maWVsZHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuSU1NRURJQVRFLCBkYXRhLnN0cmluZ0lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnRpdGxlLCBkYXRhLnR5cGUsIGZhbHNlLCBhbGxvd2VkTmV0LmlkZW50aWZpZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZpZWxkc0dyb3Vwcy5wdXNoKGZpZWxkc0dyb3VwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWVsZHNHcm91cC5zcGxpY2UoMSwgdGhpcy5maWVsZHNHcm91cC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5maWVsZHNHcm91cC5wdXNoKC4uLmZpZWxkc0dyb3Vwcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhpcyB2aWV3IGhhcyBzb20gaGVhZGVycyBzdG9yZWQgaW4gaXQncyBwcmVmZXJlbmNlcyBhdHRlbXB0cyB0byBsb2FkIHRoZW0uXG4gICAgICogSWYgdGhlIHByZWZlcmVuY2VzIGNvbnRhaW4gbm9uZXhpc3RlbnQgaGVhZGVycyB0aGV5IHdpbGwgYmUgc2tpcHBlZC5cbiAgICAgKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgTk9UIGNhbGxlZCBieSB0aGUgYWJzdHJhY3QgY2xhc3MnIGNvbnN0cnVjdG9yLlxuICAgICAqIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2hpbGQgY2xhc3MgdG8gY2FsbCBpdCBhdCBhbiBhcHByb3ByaWF0ZSBtb21lbnQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxvYWRIZWFkZXJzRnJvbVByZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoIXZpZXdJZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZWZlcnJlZEhlYWRlcktleXMgPSB0aGlzLl9wcmVmZXJlbmNlcy5nZXRIZWFkZXJzKHZpZXdJZCk7XG4gICAgICAgIGlmICghcHJlZmVycmVkSGVhZGVyS2V5cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0hlYWRlcnMgPSBbXTtcbiAgICAgICAgcHJlZmVycmVkSGVhZGVyS2V5cy5mb3JFYWNoKGhlYWRlcktleSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkR3JvdXAgb2YgdGhpcy5maWVsZHNHcm91cCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaGVhZGVyIG9mIGZpZWxkR3JvdXAuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoZWFkZXIudW5pcXVlSWQgPT09IGhlYWRlcktleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3SGVhZGVycy5wdXNoKGhlYWRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGNvbnRpbnVlIHRoZSBvdXRlcm1vc3QgbG9vcFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gbm8gbWF0Y2ggZm91bmRcbiAgICAgICAgICAgIG5ld0hlYWRlcnMucHVzaChudWxsKTtcbiAgICAgICAgICAgIHRoaXMuX2xvZ2dlci53YXJuKFxuICAgICAgICAgICAgICAgIGBDb3VsZCBub3QgcmVzdG9yZSBoZWFkZXIgd2l0aCBJRCAnJHtoZWFkZXJLZXl9JyBmcm9tIHByZWZlcmVuY2VzLiBJdCBpcyBub3Qgb25lIG9mIHRoZSBhdmFpbGFibGUgaGVhZGVycyBmb3IgdGhpcyB2aWV3LmApO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcHJlZmVyZW5jZUNvbHVtbkNvdW50JC5uZXh0KG5ld0hlYWRlcnMubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUudXBkYXRlU2VsZWN0ZWRIZWFkZXJzKG5ld0hlYWRlcnMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVNZXRhSGVhZGVycygpOiBBcnJheTxIZWFkZXJDb2x1bW4+O1xuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHNvcnQgbW9kZSBmb3Igc2VsZWN0ZWQgY29sdW1uIGFsbCBvdGhlciBjb2x1bW4gYXJlIHNldCB0byBkZWZhdWx0IHNvcnQgbW9kZVxuICAgICAqIEVtaXQgcmVxdWVzdCBmb3Igc29ydGVkIHBhbmVsc1xuICAgICAqIEBwYXJhbSBjb2x1bW5JbmRleCBpbmRleCBvZiB0aGUgY29sdW1uIHRoYXQgY2F1c2VkIHRoZSBzb3J0IGNoYW5nZVxuICAgICAqIEBwYXJhbSBhY3RpdmUgUmVwcmVzZW50cyBjb2x1bW4gaWRlbnRpZmllclxuICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gUmVwcmVzZW50IG9uZSBvZiBzb3J0IG1vZGVzOiBhc2QsIGRlc2MgYW5kICcnXG4gICAgICovXG4gICAgcHVibGljIHNvcnRIZWFkZXJDaGFuZ2VkKGNvbHVtbkluZGV4OiBudW1iZXIsIGFjdGl2ZTogc3RyaW5nLCBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgbGV0IHNvcnRDaGFuZ2VEZXNjcmlwdGlvbjogU29ydENoYW5nZURlc2NyaXB0aW9uO1xuICAgICAgICBsZXQgZm91bmRGaXJzdE1hdGNoID0gZmFsc2U7IC8vIGNvbHVtbiBjYW4gZmVhdHVyZSBpbiB0aGUgaGVhZGVyIGluIG11bHRpcGxlIHBvc2l0aW9ucyA9PiB3ZSBkb24ndCB3YW50IHRvIHNlbmQgbXVsdGlwbGUgZXZlbnRzXG4gICAgICAgIHRoaXMuaGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzLmZpbHRlcihoZWFkZXIgPT4gISFoZWFkZXIpLmZvckVhY2goaGVhZGVyID0+IHtcbiAgICAgICAgICAgIGlmIChoZWFkZXIudW5pcXVlSWQgPT09IGFjdGl2ZSAmJiAhZm91bmRGaXJzdE1hdGNoKSB7XG4gICAgICAgICAgICAgICAgc29ydENoYW5nZURlc2NyaXB0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICBzb3J0RGlyZWN0aW9uOiBkaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtblR5cGU6IGhlYWRlci50eXBlLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZElkZW50aWZpZXI6IGhlYWRlci5maWVsZElkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICAgIHBldHJpTmV0SWRlbnRpZmllcjogaGVhZGVyLnBldHJpTmV0SWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uSWRlbnRpZmllcjogY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogaGVhZGVyLmZpZWxkVHlwZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaGVhZGVyLnNvcnREaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgICAgICAgICAgICAgZm91bmRGaXJzdE1hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyLnNvcnREaXJlY3Rpb24gPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dCh7aGVhZGVyVHlwZTogdGhpcy5oZWFkZXJUeXBlLCBjaGFuZ2VUeXBlOiBIZWFkZXJDaGFuZ2VUeXBlLlNPUlQsIGRlc2NyaXB0aW9uOiBzb3J0Q2hhbmdlRGVzY3JpcHRpb259KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTYXZlcyB0aGUgc2VhcmNoIHZhbHVlIGluIHRoZSBhcHByb3ByaWF0ZSBjb2x1bW4gaW4gdGhlIGhlYWRlclxuICAgICAqIEVtaXQgcmVxdWVzdCBmb3Igc2VhcmNoZWQgcGFuZWxzIGJ5IHVzZXIgaW5wdXQgcXVlcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgaGVhZGVyU2VhcmNoSW5wdXRDaGFuZ2VkKGNvbHVtbkluZGV4OiBudW1iZXIsIHNlYXJjaElucHV0OiBhbnkpIHtcbiAgICAgICAgY29uc3QgYWZmZWN0ZWRIZWFkZXIgPSB0aGlzLmhlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVyc1tjb2x1bW5JbmRleF07XG4gICAgICAgIGFmZmVjdGVkSGVhZGVyLnNlYXJjaElucHV0ID0gc2VhcmNoSW5wdXQ7XG4gICAgICAgIGNvbnN0IHNlYXJjaENoYW5nZURlc2NyaXB0aW9uOiBTZWFyY2hDaGFuZ2VEZXNjcmlwdGlvbiA9IHtcbiAgICAgICAgICAgIGZpZWxkSWRlbnRpZmllcjogYWZmZWN0ZWRIZWFkZXIuZmllbGRJZGVudGlmaWVyLFxuICAgICAgICAgICAgZmllbGRUeXBlOiBhZmZlY3RlZEhlYWRlci5maWVsZFR5cGUsXG4gICAgICAgICAgICBmaWVsZFRpdGxlOiBhZmZlY3RlZEhlYWRlci50aXRsZSxcbiAgICAgICAgICAgIHNlYXJjaElucHV0LFxuICAgICAgICAgICAgdHlwZTogYWZmZWN0ZWRIZWFkZXIudHlwZSxcbiAgICAgICAgICAgIHBldHJpTmV0SWRlbnRpZmllcjogYWZmZWN0ZWRIZWFkZXIucGV0cmlOZXRJZGVudGlmaWVyLFxuICAgICAgICAgICAgY29sdW1uSWRlbnRpZmllcjogY29sdW1uSW5kZXhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KHtcbiAgICAgICAgICAgIGhlYWRlclR5cGU6IHRoaXMuaGVhZGVyVHlwZSxcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuU0VBUkNILFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHNlYXJjaENoYW5nZURlc2NyaXB0aW9uXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBhY3RpdmUgaGVhZGVyIGFuZCB0aXRsZXMgb2YgcGFuZWxzXG4gICAgICovXG4gICAgcHVibGljIGhlYWRlckNvbHVtblNlbGVjdGVkKGNvbHVtbkluZGV4OiBudW1iZXIsIG5ld0hlYWRlckNvbHVtbjogSGVhZGVyQ29sdW1uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld0hlYWRlcnM6IEFycmF5PEhlYWRlckNvbHVtbj4gPSBbXTtcbiAgICAgICAgbmV3SGVhZGVycy5wdXNoKC4uLnRoaXMuX2hlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVycyk7XG4gICAgICAgIGlmICghIW5ld0hlYWRlcnNbY29sdW1uSW5kZXhdKSB7XG4gICAgICAgICAgICBuZXdIZWFkZXJzW2NvbHVtbkluZGV4XS5zb3J0RGlyZWN0aW9uID0gJyc7XG4gICAgICAgICAgICBuZXdIZWFkZXJzW2NvbHVtbkluZGV4XS5zZWFyY2hJbnB1dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBuZXdIZWFkZXJzW2NvbHVtbkluZGV4XSA9IG5ld0hlYWRlckNvbHVtbjtcbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUudXBkYXRlU2VsZWN0ZWRIZWFkZXJzKG5ld0hlYWRlcnMpO1xuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkLm5leHQoe1xuICAgICAgICAgICAgaGVhZGVyVHlwZTogdGhpcy5oZWFkZXJUeXBlLFxuICAgICAgICAgICAgY2hhbmdlVHlwZTogSGVhZGVyQ2hhbmdlVHlwZS5FRElULFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHtwcmVmZXJyZWRIZWFkZXJzOiB0aGlzLl9oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnN9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBzZWxlY3RlZCBoZWFkZXIgbW9kZSB0aGVyZSBhcmUgdGhyZWUgcG9zc2libGUgbW9kZXM6IFNPUlQsIFNFQVJDSCBhbmQgRURJVFxuICAgICAqIEBwYXJhbSBuZXdNb2RlIHRoZSBtb2RlIHRoYXQgdGhlIGhlYWRlciBzaG91bGQgY2hhbmdlIHRvXG4gICAgICogQHBhcmFtIHNhdmVMYXN0TW9kZSB3aGV0aGVyIHRoZSBsYXN0IHN0YXRlIHNob3VsZCBiZSByZW1lbWJlcmVkLlxuICAgICAqIEl0IGNhbiBiZSByZXN0b3JlZCB3aXRoIHRoZSBbSGVhZGVyU3RhdGUucmVzdG9yZUxhc3RNb2RlKClde0BsaW5rIEhlYWRlclN0YXRlI3Jlc3RvcmVMYXN0TW9kZX0gbWV0aG9kLlxuICAgICAqL1xuICAgIHB1YmxpYyBjaGFuZ2VNb2RlKG5ld01vZGU6IEhlYWRlck1vZGUsIHNhdmVMYXN0TW9kZSA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKG5ld01vZGUgPT09IHRoaXMuX2hlYWRlclN0YXRlLm1vZGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzYXZlTGFzdE1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnNhdmVTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5zYXZlU3RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IHRoaXMubW9kZUNoYW5nZUZyb21DdXJyZW50KG5ld01vZGUpO1xuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS5tb2RlID0gbmV3TW9kZTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbmZpcm1FZGl0TW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUucmVzdG9yZUxhc3RNb2RlKCk7XG4gICAgICAgIHRoaXMuc2F2ZU5ld1N0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IHRoaXMubW9kZUNoYW5nZUFmdGVyRWRpdCgpO1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoISF2aWV3SWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmhlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVycztcbiAgICAgICAgICAgIHRoaXMuX3ByZWZlcmVuY2VzLnNldEhlYWRlcnModmlld0lkLCBoZWFkZXJzLm1hcChoZWFkZXIgPT4gISFoZWFkZXIgPyBoZWFkZXIudW5pcXVlSWQgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dChjaGFuZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZW4gdXNlciBjYW5jZWxzIHRoZSBlZGl0IG1vZGUsIHRoZSBsYXN0IHNhdmVkIGhlYWRlcnMgc3RhdGUgaXMgbG9hZGVkIGFuZCBlbWl0dGVkXG4gICAgICogTGFzdCBtb2RlIGluIGhlYWRlciBpcyByZWxvYWRlZCBhcyB3ZWxsLiBQb3NzaWJsZSByZWxvYWRlZCBtb2Rlczogc29ydCBvciBzZWFyY2hcbiAgICAgKi9cbiAgICBwdWJsaWMgcmV2ZXJ0RWRpdE1vZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnJlc3RvcmVMYXN0U3RhdGUoKTtcbiAgICAgICAgdGhpcy5yZXN0b3JlTGFzdFN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IHRoaXMubW9kZUNoYW5nZUFmdGVyRWRpdCgpO1xuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkLm5leHQoe1xuICAgICAgICAgICAgaGVhZGVyVHlwZTogdGhpcy5oZWFkZXJUeXBlLFxuICAgICAgICAgICAgY2hhbmdlVHlwZTogSGVhZGVyQ2hhbmdlVHlwZS5FRElULFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHtwcmVmZXJyZWRIZWFkZXJzOiB0aGlzLl9oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnN9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkLm5leHQoY2hhbmdlKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9jbGVhckhlYWRlclNlYXJjaCQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ29sdW1uQ291bnQkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNpdmVIZWFkZXJzJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmxvYWRpbmcuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fcHJlZmVyZW5jZUNvbHVtbkNvdW50JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuZXdNb2RlIHRoZSB7QGxpbmsgSGVhZGVyTW9kZX0gdGhhdCBpcyBiZWluZyBzZWxlY3RlZCBhcyB0aGUgbmV4dCBtb2RlXG4gICAgICogQHJldHVybnNhIHtAbGluayBIZWFkZXJDaGFuZ2V9IG9iamVjdCB3aXRoIHtAbGluayBNb2RlQ2hhbmdlRGVzY3JpcHRpb259IG9iamVjdCBhcyBpdCdzIGBkZXNjcmlwdGlvbmAsXG4gICAgICogd2hlcmUgdGhlIGBwcmV2aW91c01vZGVgIGlzIHNldCB0byB0aGUgY3VycmVudGx5IHNlbGVjdGVkIG1vZGUgYW5kIHRoZSBgY3VycmVudE1vZGVgIGlzIHNldCB0byB0aGUgcHJvdmlkZWQgYXJndW1lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbW9kZUNoYW5nZUZyb21DdXJyZW50KG5ld01vZGU6IEhlYWRlck1vZGUpOiBIZWFkZXJDaGFuZ2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNb2RlQ2hhbmdlKHRoaXMuX2hlYWRlclN0YXRlLm1vZGUsIG5ld01vZGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIGEge0BsaW5rIEhlYWRlckNoYW5nZX0gb2JqZWN0IHdpdGgge0BsaW5rIE1vZGVDaGFuZ2VEZXNjcmlwdGlvbn0gb2JqZWN0IGFzIGl0J3MgYGRlc2NyaXB0aW9uYCxcbiAgICAgKiB3aGVyZSB0aGUgYHByZXZpb3VzTW9kZWAgaXMgc2V0IHRvIFtFRElUXXtAbGluayBIZWFkZXJNb2RlI0VESVR9IGFuZCB0aGUgYGN1cnJlbnRNb2RlYCB0byB0aGUgbW9kZVxuICAgICAqIHRoYXQgaXMgY3VycmVudGx5IHNlbGVjdGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG1vZGVDaGFuZ2VBZnRlckVkaXQoKTogSGVhZGVyQ2hhbmdlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTW9kZUNoYW5nZShIZWFkZXJNb2RlLkVESVQsIHRoaXMuX2hlYWRlclN0YXRlLm1vZGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBvbGRNb2RlIHRoZSB7QGxpbmsgSGVhZGVyTW9kZX0gdGhhdCB3YXMgcHJldmlvdXNseSBzZWxlY3RlZFxuICAgICAqIEBwYXJhbSBuZXdNb2RlIHRoZSB7QGxpbmsgSGVhZGVyTW9kZX0gdGhhdCBpcyBzZWxlY3RlZCBub3dcbiAgICAgKiBAcmV0dXJucyBhIHtAbGluayBIZWFkZXJDaGFuZ2V9IG9iamVjdCB3aXRoIHtAbGluayBNb2RlQ2hhbmdlRGVzY3JpcHRpb259IG9iamVjdCBhcyBpdCdzIGBkZXNjcmlwdGlvbmBcbiAgICAgKiBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IGEgY2hhbmdlIHRvIHRoZSBoZWFkZXIgbW9kZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjcmVhdGVNb2RlQ2hhbmdlKG9sZE1vZGU6IEhlYWRlck1vZGUsIG5ld01vZGU6IEhlYWRlck1vZGUpOiBIZWFkZXJDaGFuZ2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2hhbmdlVHlwZTogSGVhZGVyQ2hhbmdlVHlwZS5NT0RFX0NIQU5HRUQsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlOiBuZXdNb2RlLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzTW9kZTogb2xkTW9kZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhlYWRlclR5cGU6IHRoaXMuaGVhZGVyVHlwZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGEgbmV3IHZhbHVlIGludG8gdGhlIFtjbGVhckhlYWRlclNlYXJjaCRde0BsaW5rIEFic3RyYWN0SGVhZGVyU2VydmljZSNjbGVhckhlYWRlclNlYXJjaCR9IHN0cmVhbSwgdGhhdCBub3RpZmllc1xuICAgICAqIHRoZSBoZWFkZXIgc2VhcmNoIGNvbXBvbmVudCwgdGhhdCBpdCBzaG91bGQgY2xlYXIgdGhlIGlucHV0IGZvciB0aGUgc3BlY2lmaWVkIGNvbHVtbi5cbiAgICAgKiBAcGFyYW0gY29sdW1uSW5kZXggdGhlIGluZGV4IG9mIHRoZSBjb2x1bW4gdGhhdCBzaG91bGQgYmUgY2xlYXJlZFxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhckhlYWRlclNlYXJjaChjb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NsZWFySGVhZGVyU2VhcmNoJC5uZXh0KGNvbHVtbkluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgSWQgb2YgdGhlIHZpZXcsIGlmIHRoZSBWaWV3SWRTZXJ2aWNlIHdhcyBpbmplY3RlZC4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgc2VydmljZSB3YXMgbm90IGluamVjdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRWaWV3SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJZFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aWV3SWRTZXJ2aWNlLnZpZXdJZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBzYXZlU3RhdGUoKTtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBzYXZlTmV3U3RhdGUoKTtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZXN0b3JlTGFzdFN0YXRlKCk7XG59XG4iXX0=
411
+ }] }]; } });
412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2hlYWRlci9hYnN0cmFjdC1oZWFkZXItc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFDLFdBQVcsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU05RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBR3RFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7OztBQU0xRSxNQUFNLE9BQWdCLHFCQUFxQjtJQWlCdkMsWUFBZ0MsV0FBdUIsRUFDdkIsWUFBbUMsRUFDbkMsT0FBc0IsRUFDWixjQUE2QixFQUMzQixnQkFBaUM7UUFKN0MsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDWixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ3pFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLENB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QVUsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZO1lBQ3pDLFdBQVcsRUFBRTtnQkFDVCxXQUFXLEVBQUUsT0FBTztnQkFDcEIsWUFBWSxFQUFFLE9BQU87YUFDeEI7WUFDRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDOUIsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsV0FBbUI7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7U0FDckM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOztBQTlic0IsMENBQW9CLEdBQUcsQ0FBRSxDQUFBO0FBQ3pCLGlEQUEyQixHQUFHLElBQUssQ0FBQTttSEFIeEMscUJBQXFCO3VIQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEMUMsVUFBVTs7MEJBcUJnQixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZHNHcm91cH0gZnJvbSAnLi9tb2RlbHMvZmllbGRzLWdyb3VwJztcbmltcG9ydCB7SGVhZGVyU3RhdGUsIEhlYWRlclN0YXRlSW50ZXJmYWNlfSBmcm9tICcuL2hlYWRlci1zdGF0ZSc7XG5pbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTb3J0Q2hhbmdlRGVzY3JpcHRpb259IGZyb20gJy4vbW9kZWxzL3VzZXItY2hhbmdlcy9zb3J0LWNoYW5nZS1kZXNjcmlwdGlvbic7XG5pbXBvcnQge1NlYXJjaENoYW5nZURlc2NyaXB0aW9ufSBmcm9tICcuL21vZGVscy91c2VyLWNoYW5nZXMvc2VhcmNoLWNoYW5nZS1kZXNjcmlwdGlvbic7XG5pbXBvcnQge0hlYWRlckNoYW5nZX0gZnJvbSAnLi9tb2RlbHMvdXNlci1jaGFuZ2VzL2hlYWRlci1jaGFuZ2UnO1xuaW1wb3J0IHtQZXRyaU5ldFJlZmVyZW5jZX0gZnJvbSAnLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9wZXRyaS1uZXQtcmVmZXJlbmNlJztcbmltcG9ydCB7SGVhZGVyVHlwZX0gZnJvbSAnLi9tb2RlbHMvaGVhZGVyLXR5cGUnO1xuaW1wb3J0IHtIZWFkZXJNb2RlfSBmcm9tICcuL21vZGVscy9oZWFkZXItbW9kZSc7XG5pbXBvcnQge0hlYWRlckNvbHVtbiwgSGVhZGVyQ29sdW1uVHlwZX0gZnJvbSAnLi9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge1VzZXJQcmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi4vdXNlci9zZXJ2aWNlcy91c2VyLXByZWZlcmVuY2Uuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0xvYWRpbmdFbWl0dGVyfSBmcm9tICcuLi91dGlsaXR5L2xvYWRpbmctZW1pdHRlcic7XG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtIZWFkZXJDaGFuZ2VUeXBlfSBmcm9tICcuL21vZGVscy91c2VyLWNoYW5nZXMvaGVhZGVyLWNoYW5nZS10eXBlJztcbmltcG9ydCB7Vmlld0lkU2VydmljZX0gZnJvbSAnLi4vdXNlci9zZXJ2aWNlcy92aWV3LWlkLnNlcnZpY2UnO1xuaW1wb3J0IHtOZXR9IGZyb20gJy4uL3Byb2Nlc3MvbmV0JztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9IRUFERVJfQ09VTlQgPSA1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9IRUFERVJfUkVTUE9OU0lWSVRZID0gdHJ1ZTtcblxuICAgIHByb3RlY3RlZCBfaGVhZGVyQ29sdW1uQ291bnQkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICBwcm90ZWN0ZWQgX3ByZWZlcmVuY2VDb2x1bW5Db3VudCQ6IFJlcGxheVN1YmplY3Q8bnVtYmVyPjtcbiAgICBwcm90ZWN0ZWQgX3Jlc3BvbnNpdmVIZWFkZXJzJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAgIHByb3RlY3RlZCBfaGVhZGVyU3RhdGU6IEhlYWRlclN0YXRlO1xuICAgIHByb3RlY3RlZCBfaGVhZGVyQ2hhbmdlJDogU3ViamVjdDxIZWFkZXJDaGFuZ2U+O1xuICAgIHByb3RlY3RlZCBfY2xlYXJIZWFkZXJTZWFyY2gkOiBTdWJqZWN0PG51bWJlcj47XG4gICAgcHJpdmF0ZSBfaW5pdERlZmF1bHRIZWFkZXJzOiBBcnJheTxzdHJpbmc+O1xuICAgIHByaXZhdGUgX2luaXRpYWxpemVkQ291bnQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgbG9hZGluZzogTG9hZGluZ0VtaXR0ZXI7XG4gICAgcHVibGljIGZpZWxkc0dyb3VwOiBBcnJheTxGaWVsZHNHcm91cD47XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIF9oZWFkZXJUeXBlOiBIZWFkZXJUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3ByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF92aWV3SWRTZXJ2aWNlOiBWaWV3SWRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX292ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IG5ldyBMb2FkaW5nRW1pdHRlcih0cnVlKTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PEhlYWRlckNoYW5nZT4oKTtcbiAgICAgICAgdGhpcy5maWVsZHNHcm91cCA9IFt7Z3JvdXBUaXRsZTogJ01ldGEgZGF0YScsIGZpZWxkczogdGhpcy5jcmVhdGVNZXRhSGVhZGVycygpfV07XG4gICAgICAgIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPihBYnN0cmFjdEhlYWRlclNlcnZpY2UuREVGQVVMVF9IRUFERVJfQ09VTlQpO1xuICAgICAgICB0aGlzLl9yZXNwb25zaXZlSGVhZGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KEFic3RyYWN0SGVhZGVyU2VydmljZS5ERUZBVUxUX0hFQURFUl9SRVNQT05TSVZJVFkpO1xuICAgICAgICB0aGlzLl9wcmVmZXJlbmNlQ29sdW1uQ291bnQkID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigpO1xuICAgICAgICB0aGlzLl9jbGVhckhlYWRlclNlYXJjaCQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkQ291bnQgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5fdmlld0lkU2VydmljZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oJ0hlYWRlciBzZXJ2aWNlIGNvdWxkIG5vdCBpbmplY3QgVmlld0lkU2VydmljZSEgVXNlciBwcmVmZXJlbmNlcyB3b25cXCd0IGJlIGxvYWRlZCBvciBzYXZlZCEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ByZWZlcmVuY2VzLnByZWZlcmVuY2VzQ2hhbmdlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplSGVhZGVyU3RhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBPYnNlcnZhYmxlIGZvciBhbGwgY2hhbmdlcyBpbiBoZWFkZXJcbiAgICAgKi9cbiAgICBnZXQgaGVhZGVyQ2hhbmdlJCgpOiBPYnNlcnZhYmxlPEhlYWRlckNoYW5nZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWRIZWFkZXJzJCgpOiBPYnNlcnZhYmxlPEFycmF5PEhlYWRlckNvbHVtbj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVycyQ7XG4gICAgfVxuXG4gICAgZ2V0IGhlYWRlclN0YXRlKCk6IEhlYWRlclN0YXRlSW50ZXJmYWNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlclN0YXRlLmFzSW50ZXJmYWNlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGhlYWRlclR5cGUoKTogSGVhZGVyVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJUeXBlO1xuICAgIH1cblxuICAgIGdldCBvdmVyZmxvd01vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghIXRoaXMuX292ZXJmbG93U2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93U2VydmljZS5vdmVyZmxvd01vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBoZWFkZXJDb2x1bW5Db3VudChtYXhDb2x1bW5zOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKG1heENvbHVtbnMgIT09IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JC5uZXh0KG1heENvbHVtbnMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIZWFkZXJDb2x1bW5Db3VudCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZENvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdEhlYWRlclN0YXRlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRDb3VudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyQ29sdW1uQ291bnQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJDb2x1bW5Db3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHJlc3BvbnNpdmVIZWFkZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2l2ZUhlYWRlcnMkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2V0IHJlc3BvbnNpdmVIZWFkZXJzKHJlc3BvbnNpdmVIZWFkZXJzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNpdmVIZWFkZXJzJC5uZXh0KHJlc3BvbnNpdmVIZWFkZXJzKTtcbiAgICB9XG5cbiAgICBnZXQgcmVzcG9uc2l2ZUhlYWRlcnMkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2l2ZUhlYWRlcnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGdldCBjbGVhckhlYWRlclNlYXJjaCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsZWFySGVhZGVyU2VhcmNoJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgaW5pdERlZmF1bHRIZWFkZXJzKGRlZmF1bHRIZWFkZXJzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIHRoaXMuX2luaXREZWZhdWx0SGVhZGVycyA9IGRlZmF1bHRIZWFkZXJzO1xuICAgIH1cblxuICAgIGdldCBpbml0RGVmYXVsdEhlYWRlcnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0RGVmYXVsdEhlYWRlcnM7XG4gICAgfVxuXG4gICAgZ2V0IHByZWZlcmVuY2VDb2x1bW5Db3VudCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZWZlcmVuY2VDb2x1bW5Db3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplSGVhZGVyU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRIZWFkZXJzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWVsZHNHcm91cFswXS5maWVsZHMubGVuZ3RoICYmIGRlZmF1bHRIZWFkZXJzLmxlbmd0aCA8IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGRzR3JvdXBbMF0uZmllbGRzW2ldLmluaXRpYWwpIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0SGVhZGVycy5wdXNoKHRoaXMuZmllbGRzR3JvdXBbMF0uZmllbGRzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoZGVmYXVsdEhlYWRlcnMubGVuZ3RoIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnMucHVzaChudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZSA9IG5ldyBIZWFkZXJTdGF0ZShkZWZhdWx0SGVhZGVycyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVEZWZhdWx0SGVhZGVyU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXREZWZhdWx0SGVhZGVycyAmJiBBcnJheS5pc0FycmF5KHRoaXMuaW5pdERlZmF1bHRIZWFkZXJzKSkge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdEhlYWRlcnMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnMucHVzaChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pbml0RGVmYXVsdEhlYWRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSA+PSB0aGlzLmhlYWRlckNvbHVtbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci53YXJuKCd0aGVyZSBhcmUgbW9yZSBOQUVfREVGQVVMVF9IRUFERVJTIHRoYW4gaGVhZGVyIGNvbHVtbnMuIFNraXBwaW5nIHRoZSByZXN0Li4uJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGggb2YgdGhpcy5maWVsZHNHcm91cCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFkID0gaC5maWVsZHMuZmluZChoZWFkZXIgPT4gaGVhZGVyLnVuaXF1ZUlkID09PSB0aGlzLmluaXREZWZhdWx0SGVhZGVyc1tpXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0SGVhZGVyc1tpXSA9IGhlYWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnVwZGF0ZVNlbGVjdGVkSGVhZGVycyhkZWZhdWx0SGVhZGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkSGVhZGVyc0Zyb21QcmVmZXJlbmNlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYG51bGxgIGhlYWRlcnMgaWYgdGhlIG5ldyBjb3VudCBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgY291bnQuXG4gICAgICpcbiAgICAgKiBSZW1vdmVzIGV4dHJhIGhlYWRlcnMgaWYgdGhlIG5ldyBjb3VudCBpcyBzbWFsbGVyIHRoYW4gdGhlIGN1cnJlbnQgY291bnQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUhlYWRlckNvbHVtbkNvdW50KCk6IHZvaWQge1xuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuX2hlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVycztcbiAgICAgICAgaWYgKGhlYWRlcnMubGVuZ3RoIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgd2hpbGUgKGhlYWRlcnMubGVuZ3RoICE9PSB0aGlzLmhlYWRlckNvbHVtbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgaGVhZGVycy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGhlYWRlcnMubGVuZ3RoID4gdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2xpY2UoMCwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUudXBkYXRlU2VsZWN0ZWRIZWFkZXJzKGhlYWRlcnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBbGxvd2VkTmV0cyhhbGxvd2VkTmV0czogQXJyYXk8UGV0cmlOZXRSZWZlcmVuY2U+KSB7XG4gICAgICAgIC8qIFRPRE8gYnkgc2ltcGx5IHJlcGxhY2luZyB0aGUgc2VsZWN0IG9wdGlvbnMgd2l0aCBuZXcgb2JqZWN0LCB3ZSBkb24ndCBsb29zZSB0aGUgb2xkIHJlZmVyZW5jZXMuXG4gICAgICAgICAgICAgQ29sdW1ucyB3aXRoIGhlYWRlcnMgZnJvbSBuZXRzIHRoYXQgYXJlIG5vIGxvbmdlciBhbGxvd2VkIHNob3VsZCBoYXZlIHRoZWlyIHZhbHVlIGNsZWFyZWQuXG4gICAgICAgICAgICAgQ29sdW1ucyB3aXRoIHZhbGlkIHZhbHVlcyB0aGF0IGFyZSBub3QgbWV0YWRhdGEgc2hvdWxkIGhhdmUgdGhlaXIgc2VsZWN0aW9uIHJlbWFwcGVkIHRvIHRoZSBuZXcgb2JqZWN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgY29uc3QgZmllbGRzR3JvdXBzOiBBcnJheTxGaWVsZHNHcm91cD4gPSBbXTtcbiAgICAgICAgYWxsb3dlZE5ldHMuZm9yRWFjaChhbGxvd2VkTmV0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkc0dyb3VwOiBGaWVsZHNHcm91cCA9IHtcbiAgICAgICAgICAgICAgICBncm91cFRpdGxlOiBhbGxvd2VkTmV0LnRpdGxlLFxuICAgICAgICAgICAgICAgIGZpZWxkczogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhbGxvd2VkTmV0LmltbWVkaWF0ZURhdGEuZm9yRWFjaChpbW1lZGlhdGUgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkc0dyb3VwLmZpZWxkcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuSU1NRURJQVRFLCBpbW1lZGlhdGUuc3RyaW5nSWQsIGltbWVkaWF0ZS50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZS50eXBlLCBmYWxzZSwgYWxsb3dlZE5ldC5pZGVudGlmaWVyKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZpZWxkc0dyb3Vwcy5wdXNoKGZpZWxkc0dyb3VwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWVsZHNHcm91cC5zcGxpY2UoMSwgdGhpcy5maWVsZHNHcm91cC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5maWVsZHNHcm91cC5wdXNoKC4uLmZpZWxkc0dyb3Vwcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFRhc2tBbGxvd2VkTmV0cyhhbGxvd2VkTmV0czogQXJyYXk8TmV0Pikge1xuICAgICAgICAvKiBUT0RPIGJ5IHNpbXBseSByZXBsYWNpbmcgdGhlIHNlbGVjdCBvcHRpb25zIHdpdGggbmV3IG9iamVjdCwgd2UgZG9uJ3QgbG9vc2UgdGhlIG9sZCByZWZlcmVuY2VzLlxuICAgICAgICAgICAgIENvbHVtbnMgd2l0aCBoZWFkZXJzIGZyb20gbmV0cyB0aGF0IGFyZSBubyBsb25nZXIgYWxsb3dlZCBzaG91bGQgaGF2ZSB0aGVpciB2YWx1ZSBjbGVhcmVkLlxuICAgICAgICAgICAgIENvbHVtbnMgd2l0aCB2YWxpZCB2YWx1ZXMgdGhhdCBhcmUgbm90IG1ldGFkYXRhIHNob3VsZCBoYXZlIHRoZWlyIHNlbGVjdGlvbiByZW1hcHBlZCB0byB0aGUgbmV3IG9iamVjdHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbnN0IGZpZWxkc0dyb3VwczogQXJyYXk8RmllbGRzR3JvdXA+ID0gW107XG4gICAgICAgIGFsbG93ZWROZXRzLmZvckVhY2goYWxsb3dlZE5ldCA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZHNHcm91cDogRmllbGRzR3JvdXAgPSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBUaXRsZTogYWxsb3dlZE5ldC50aXRsZSxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICBhbGxvd2VkTmV0LnRyYW5zaXRpb25zLmZvckVhY2godHJhbnMgPT4ge1xuICAgICAgICAgICAgICAgIHRyYW5zLmltbWVkaWF0ZURhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZy5oYXMoZGF0YS5zdHJpbmdJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmFkZChkYXRhLnN0cmluZ0lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc0dyb3VwLmZpZWxkcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5JTU1FRElBVEUsIGRhdGEuc3RyaW5nSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEudGl0bGUsIGRhdGEudHlwZSwgZmFsc2UsIGFsbG93ZWROZXQuaWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZmllbGRzR3JvdXBzLnB1c2goZmllbGRzR3JvdXApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpZWxkc0dyb3VwLnNwbGljZSgxLCB0aGlzLmZpZWxkc0dyb3VwLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLmZpZWxkc0dyb3VwLnB1c2goLi4uZmllbGRzR3JvdXBzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIHZpZXcgaGFzIHNvbSBoZWFkZXJzIHN0b3JlZCBpbiBpdCdzIHByZWZlcmVuY2VzIGF0dGVtcHRzIHRvIGxvYWQgdGhlbS5cbiAgICAgKiBJZiB0aGUgcHJlZmVyZW5jZXMgY29udGFpbiBub25leGlzdGVudCBoZWFkZXJzIHRoZXkgd2lsbCBiZSBza2lwcGVkLlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBOT1QgY2FsbGVkIGJ5IHRoZSBhYnN0cmFjdCBjbGFzcycgY29uc3RydWN0b3IuXG4gICAgICogSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjaGlsZCBjbGFzcyB0byBjYWxsIGl0IGF0IGFuIGFwcHJvcHJpYXRlIG1vbWVudC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZpZXdJZCA9IHRoaXMuZ2V0Vmlld0lkKCk7XG4gICAgICAgIGlmICghdmlld0lkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZmVycmVkSGVhZGVyS2V5cyA9IHRoaXMuX3ByZWZlcmVuY2VzLmdldEhlYWRlcnModmlld0lkKTtcbiAgICAgICAgaWYgKCFwcmVmZXJyZWRIZWFkZXJLZXlzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3SGVhZGVycyA9IFtdO1xuICAgICAgICBwcmVmZXJyZWRIZWFkZXJLZXlzLmZvckVhY2goaGVhZGVyS2V5ID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGRHcm91cCBvZiB0aGlzLmZpZWxkc0dyb3VwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBoZWFkZXIgb2YgZmllbGRHcm91cC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRlci51bmlxdWVJZCA9PT0gaGVhZGVyS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdIZWFkZXJzLnB1c2goaGVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gY29udGludWUgdGhlIG91dGVybW9zdCBsb29wXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBubyBtYXRjaCBmb3VuZFxuICAgICAgICAgICAgbmV3SGVhZGVycy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oXG4gICAgICAgICAgICAgICAgYENvdWxkIG5vdCByZXN0b3JlIGhlYWRlciB3aXRoIElEICcke2hlYWRlcktleX0nIGZyb20gcHJlZmVyZW5jZXMuIEl0IGlzIG5vdCBvbmUgb2YgdGhlIGF2YWlsYWJsZSBoZWFkZXJzIGZvciB0aGlzIHZpZXcuYCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9wcmVmZXJlbmNlQ29sdW1uQ291bnQkLm5leHQobmV3SGVhZGVycy5sZW5ndGgpO1xuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS51cGRhdGVTZWxlY3RlZEhlYWRlcnMobmV3SGVhZGVycyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZU1ldGFIZWFkZXJzKCk6IEFycmF5PEhlYWRlckNvbHVtbj47XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2Ugc29ydCBtb2RlIGZvciBzZWxlY3RlZCBjb2x1bW4gYWxsIG90aGVyIGNvbHVtbiBhcmUgc2V0IHRvIGRlZmF1bHQgc29ydCBtb2RlXG4gICAgICogRW1pdCByZXF1ZXN0IGZvciBzb3J0ZWQgcGFuZWxzXG4gICAgICogQHBhcmFtIGNvbHVtbkluZGV4IGluZGV4IG9mIHRoZSBjb2x1bW4gdGhhdCBjYXVzZWQgdGhlIHNvcnQgY2hhbmdlXG4gICAgICogQHBhcmFtIGFjdGl2ZSBSZXByZXNlbnRzIGNvbHVtbiBpZGVudGlmaWVyXG4gICAgICogQHBhcmFtIGRpcmVjdGlvbiBSZXByZXNlbnQgb25lIG9mIHNvcnQgbW9kZXM6IGFzZCwgZGVzYyBhbmQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgc29ydEhlYWRlckNoYW5nZWQoY29sdW1uSW5kZXg6IG51bWJlciwgYWN0aXZlOiBzdHJpbmcsIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbik6IHZvaWQge1xuICAgICAgICBsZXQgc29ydENoYW5nZURlc2NyaXB0aW9uOiBTb3J0Q2hhbmdlRGVzY3JpcHRpb247XG4gICAgICAgIGxldCBmb3VuZEZpcnN0TWF0Y2ggPSBmYWxzZTsgLy8gY29sdW1uIGNhbiBmZWF0dXJlIGluIHRoZSBoZWFkZXIgaW4gbXVsdGlwbGUgcG9zaXRpb25zID0+IHdlIGRvbid0IHdhbnQgdG8gc2VuZCBtdWx0aXBsZSBldmVudHNcbiAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnMuZmlsdGVyKGhlYWRlciA9PiAhIWhlYWRlcikuZm9yRWFjaChoZWFkZXIgPT4ge1xuICAgICAgICAgICAgaWYgKGhlYWRlci51bmlxdWVJZCA9PT0gYWN0aXZlICYmICFmb3VuZEZpcnN0TWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBzb3J0Q2hhbmdlRGVzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb246IGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVHlwZTogaGVhZGVyLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkSWRlbnRpZmllcjogaGVhZGVyLmZpZWxkSWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgICAgcGV0cmlOZXRJZGVudGlmaWVyOiBoZWFkZXIucGV0cmlOZXRJZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5JZGVudGlmaWVyOiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRUeXBlOiBoZWFkZXIuZmllbGRUeXBlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBoZWFkZXIuc29ydERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgICAgICAgICBmb3VuZEZpcnN0TWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoZWFkZXIuc29ydERpcmVjdGlvbiA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KHtcbiAgICAgICAgICAgIGhlYWRlclR5cGU6IHRoaXMuaGVhZGVyVHlwZSxcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuU09SVCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzb3J0Q2hhbmdlRGVzY3JpcHRpb25cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgdGhlIHNlYXJjaCB2YWx1ZSBpbiB0aGUgYXBwcm9wcmlhdGUgY29sdW1uIGluIHRoZSBoZWFkZXJcbiAgICAgKiBFbWl0IHJlcXVlc3QgZm9yIHNlYXJjaGVkIHBhbmVscyBieSB1c2VyIGlucHV0IHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIGhlYWRlclNlYXJjaElucHV0Q2hhbmdlZChjb2x1bW5JbmRleDogbnVtYmVyLCBzZWFyY2hJbnB1dDogYW55KSB7XG4gICAgICAgIGNvbnN0IGFmZmVjdGVkSGVhZGVyID0gdGhpcy5oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBhZmZlY3RlZEhlYWRlci5zZWFyY2hJbnB1dCA9IHNlYXJjaElucHV0O1xuICAgICAgICBjb25zdCBzZWFyY2hDaGFuZ2VEZXNjcmlwdGlvbjogU2VhcmNoQ2hhbmdlRGVzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICBmaWVsZElkZW50aWZpZXI6IGFmZmVjdGVkSGVhZGVyLmZpZWxkSWRlbnRpZmllcixcbiAgICAgICAgICAgIGZpZWxkVHlwZTogYWZmZWN0ZWRIZWFkZXIuZmllbGRUeXBlLFxuICAgICAgICAgICAgZmllbGRUaXRsZTogYWZmZWN0ZWRIZWFkZXIudGl0bGUsXG4gICAgICAgICAgICBzZWFyY2hJbnB1dCxcbiAgICAgICAgICAgIHR5cGU6IGFmZmVjdGVkSGVhZGVyLnR5cGUsXG4gICAgICAgICAgICBwZXRyaU5ldElkZW50aWZpZXI6IGFmZmVjdGVkSGVhZGVyLnBldHJpTmV0SWRlbnRpZmllcixcbiAgICAgICAgICAgIGNvbHVtbklkZW50aWZpZXI6IGNvbHVtbkluZGV4XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dCh7XG4gICAgICAgICAgICBoZWFkZXJUeXBlOiB0aGlzLmhlYWRlclR5cGUsXG4gICAgICAgICAgICBjaGFuZ2VUeXBlOiBIZWFkZXJDaGFuZ2VUeXBlLlNFQVJDSCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzZWFyY2hDaGFuZ2VEZXNjcmlwdGlvblxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgYWN0aXZlIGhlYWRlciBhbmQgdGl0bGVzIG9mIHBhbmVsc1xuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJDb2x1bW5TZWxlY3RlZChjb2x1bW5JbmRleDogbnVtYmVyLCBuZXdIZWFkZXJDb2x1bW46IEhlYWRlckNvbHVtbik6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdIZWFkZXJzOiBBcnJheTxIZWFkZXJDb2x1bW4+ID0gW107XG4gICAgICAgIG5ld0hlYWRlcnMucHVzaCguLi50aGlzLl9oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnMpO1xuICAgICAgICBpZiAoISFuZXdIZWFkZXJzW2NvbHVtbkluZGV4XSkge1xuICAgICAgICAgICAgbmV3SGVhZGVyc1tjb2x1bW5JbmRleF0uc29ydERpcmVjdGlvbiA9ICcnO1xuICAgICAgICAgICAgbmV3SGVhZGVyc1tjb2x1bW5JbmRleF0uc2VhcmNoSW5wdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgbmV3SGVhZGVyc1tjb2x1bW5JbmRleF0gPSBuZXdIZWFkZXJDb2x1bW47XG4gICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnVwZGF0ZVNlbGVjdGVkSGVhZGVycyhuZXdIZWFkZXJzKTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KHtcbiAgICAgICAgICAgIGhlYWRlclR5cGU6IHRoaXMuaGVhZGVyVHlwZSxcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuRURJVCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7cHJlZmVycmVkSGVhZGVyczogdGhpcy5faGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2Ugc2VsZWN0ZWQgaGVhZGVyIG1vZGUgdGhlcmUgYXJlIHRocmVlIHBvc3NpYmxlIG1vZGVzOiBTT1JULCBTRUFSQ0ggYW5kIEVESVRcbiAgICAgKiBAcGFyYW0gbmV3TW9kZSB0aGUgbW9kZSB0aGF0IHRoZSBoZWFkZXIgc2hvdWxkIGNoYW5nZSB0b1xuICAgICAqIEBwYXJhbSBzYXZlTGFzdE1vZGUgd2hldGhlciB0aGUgbGFzdCBzdGF0ZSBzaG91bGQgYmUgcmVtZW1iZXJlZC5cbiAgICAgKiBJdCBjYW4gYmUgcmVzdG9yZWQgd2l0aCB0aGUgW0hlYWRlclN0YXRlLnJlc3RvcmVMYXN0TW9kZSgpXXtAbGluayBIZWFkZXJTdGF0ZSNyZXN0b3JlTGFzdE1vZGV9IG1ldGhvZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hhbmdlTW9kZShuZXdNb2RlOiBIZWFkZXJNb2RlLCBzYXZlTGFzdE1vZGUgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmIChuZXdNb2RlID09PSB0aGlzLl9oZWFkZXJTdGF0ZS5tb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2F2ZUxhc3RNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS5zYXZlU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuc2F2ZVN0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGFuZ2UgPSB0aGlzLm1vZGVDaGFuZ2VGcm9tQ3VycmVudChuZXdNb2RlKTtcbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUubW9kZSA9IG5ld01vZGU7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dChjaGFuZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maXJtRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnJlc3RvcmVMYXN0TW9kZSgpO1xuICAgICAgICB0aGlzLnNhdmVOZXdTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSB0aGlzLm1vZGVDaGFuZ2VBZnRlckVkaXQoKTtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKCEhdmlld0lkKSB7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnM7XG4gICAgICAgICAgICB0aGlzLl9wcmVmZXJlbmNlcy5zZXRIZWFkZXJzKHZpZXdJZCwgaGVhZGVycy5tYXAoaGVhZGVyID0+ICEhaGVhZGVyID8gaGVhZGVyLnVuaXF1ZUlkIDogJycpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkLm5leHQoY2hhbmdlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHVzZXIgY2FuY2VscyB0aGUgZWRpdCBtb2RlLCB0aGUgbGFzdCBzYXZlZCBoZWFkZXJzIHN0YXRlIGlzIGxvYWRlZCBhbmQgZW1pdHRlZFxuICAgICAqIExhc3QgbW9kZSBpbiBoZWFkZXIgaXMgcmVsb2FkZWQgYXMgd2VsbC4gUG9zc2libGUgcmVsb2FkZWQgbW9kZXM6IHNvcnQgb3Igc2VhcmNoXG4gICAgICovXG4gICAgcHVibGljIHJldmVydEVkaXRNb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS5yZXN0b3JlTGFzdFN0YXRlKCk7XG4gICAgICAgIHRoaXMucmVzdG9yZUxhc3RTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSB0aGlzLm1vZGVDaGFuZ2VBZnRlckVkaXQoKTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KHtcbiAgICAgICAgICAgIGhlYWRlclR5cGU6IHRoaXMuaGVhZGVyVHlwZSxcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuRURJVCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7cHJlZmVycmVkSGVhZGVyczogdGhpcy5faGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KGNoYW5nZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fY2xlYXJIZWFkZXJTZWFyY2gkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9yZXNwb25zaXZlSGVhZGVycyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3ByZWZlcmVuY2VDb2x1bW5Db3VudCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbmV3TW9kZSB0aGUge0BsaW5rIEhlYWRlck1vZGV9IHRoYXQgaXMgYmVpbmcgc2VsZWN0ZWQgYXMgdGhlIG5leHQgbW9kZVxuICAgICAqIEByZXR1cm5zYSB7QGxpbmsgSGVhZGVyQ2hhbmdlfSBvYmplY3Qgd2l0aCB7QGxpbmsgTW9kZUNoYW5nZURlc2NyaXB0aW9ufSBvYmplY3QgYXMgaXQncyBgZGVzY3JpcHRpb25gLFxuICAgICAqIHdoZXJlIHRoZSBgcHJldmlvdXNNb2RlYCBpcyBzZXQgdG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBtb2RlIGFuZCB0aGUgYGN1cnJlbnRNb2RlYCBpcyBzZXQgdG8gdGhlIHByb3ZpZGVkIGFyZ3VtZW50XG4gICAgICovXG4gICAgcHJvdGVjdGVkIG1vZGVDaGFuZ2VGcm9tQ3VycmVudChuZXdNb2RlOiBIZWFkZXJNb2RlKTogSGVhZGVyQ2hhbmdlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTW9kZUNoYW5nZSh0aGlzLl9oZWFkZXJTdGF0ZS5tb2RlLCBuZXdNb2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBhIHtAbGluayBIZWFkZXJDaGFuZ2V9IG9iamVjdCB3aXRoIHtAbGluayBNb2RlQ2hhbmdlRGVzY3JpcHRpb259IG9iamVjdCBhcyBpdCdzIGBkZXNjcmlwdGlvbmAsXG4gICAgICogd2hlcmUgdGhlIGBwcmV2aW91c01vZGVgIGlzIHNldCB0byBbRURJVF17QGxpbmsgSGVhZGVyTW9kZSNFRElUfSBhbmQgdGhlIGBjdXJyZW50TW9kZWAgdG8gdGhlIG1vZGVcbiAgICAgKiB0aGF0IGlzIGN1cnJlbnRseSBzZWxlY3RlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBtb2RlQ2hhbmdlQWZ0ZXJFZGl0KCk6IEhlYWRlckNoYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGVDaGFuZ2UoSGVhZGVyTW9kZS5FRElULCB0aGlzLl9oZWFkZXJTdGF0ZS5tb2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gb2xkTW9kZSB0aGUge0BsaW5rIEhlYWRlck1vZGV9IHRoYXQgd2FzIHByZXZpb3VzbHkgc2VsZWN0ZWRcbiAgICAgKiBAcGFyYW0gbmV3TW9kZSB0aGUge0BsaW5rIEhlYWRlck1vZGV9IHRoYXQgaXMgc2VsZWN0ZWQgbm93XG4gICAgICogQHJldHVybnMgYSB7QGxpbmsgSGVhZGVyQ2hhbmdlfSBvYmplY3Qgd2l0aCB7QGxpbmsgTW9kZUNoYW5nZURlc2NyaXB0aW9ufSBvYmplY3QgYXMgaXQncyBgZGVzY3JpcHRpb25gXG4gICAgICogY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBhIGNoYW5nZSB0byB0aGUgaGVhZGVyIG1vZGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlTW9kZUNoYW5nZShvbGRNb2RlOiBIZWFkZXJNb2RlLCBuZXdNb2RlOiBIZWFkZXJNb2RlKTogSGVhZGVyQ2hhbmdlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuTU9ERV9DSEFOR0VELFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICBjdXJyZW50TW9kZTogbmV3TW9kZSxcbiAgICAgICAgICAgICAgICBwcmV2aW91c01vZGU6IG9sZE1vZGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoZWFkZXJUeXBlOiB0aGlzLmhlYWRlclR5cGVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhIG5ldyB2YWx1ZSBpbnRvIHRoZSBbY2xlYXJIZWFkZXJTZWFyY2gkXXtAbGluayBBYnN0cmFjdEhlYWRlclNlcnZpY2UjY2xlYXJIZWFkZXJTZWFyY2gkfSBzdHJlYW0sIHRoYXQgbm90aWZpZXNcbiAgICAgKiB0aGUgaGVhZGVyIHNlYXJjaCBjb21wb25lbnQsIHRoYXQgaXQgc2hvdWxkIGNsZWFyIHRoZSBpbnB1dCBmb3IgdGhlIHNwZWNpZmllZCBjb2x1bW4uXG4gICAgICogQHBhcmFtIGNvbHVtbkluZGV4IHRoZSBpbmRleCBvZiB0aGUgY29sdW1uIHRoYXQgc2hvdWxkIGJlIGNsZWFyZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXJIZWFkZXJTZWFyY2goY29sdW1uSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGVhckhlYWRlclNlYXJjaCQubmV4dChjb2x1bW5JbmRleCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIElkIG9mIHRoZSB2aWV3LCBpZiB0aGUgVmlld0lkU2VydmljZSB3YXMgaW5qZWN0ZWQuIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIHNlcnZpY2Ugd2FzIG5vdCBpbmplY3RlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Vmlld0lkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLl92aWV3SWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmlld0lkU2VydmljZS52aWV3SWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2F2ZVN0YXRlKCk7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2F2ZU5ld1N0YXRlKCk7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVzdG9yZUxhc3RTdGF0ZSgpO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, Optional } from '@angular/core';
2
2
  import { CaseHeaderService } from './case-header/case-header.service';
3
3
  import { TaskHeaderService } from './task-header/task-header.service';
4
4
  import { WorkflowHeaderService } from './workflow-header/workflow-header.service';
@@ -16,7 +16,7 @@ export class AbstractHeaderComponent {
16
16
  this._translate = _translate;
17
17
  this._overflowService = _overflowService;
18
18
  this.DEFAULT_COLUMN_COUNT = 6;
19
- this.DEFAULT_COLUMN_WIDTH = 190;
19
+ this.DEFAULT_COLUMN_WIDTH = 220;
20
20
  this.type = HeaderType.CASE;
21
21
  this.hideEditMode = false;
22
22
  this.headerModeEnum = HeaderMode;
@@ -153,7 +153,7 @@ export class AbstractHeaderComponent {
153
153
  });
154
154
  }
155
155
  }
156
- AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.OverflowService }], target: i0.ɵɵFactoryTarget.Component });
156
+ AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
157
157
  AbstractHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractHeaderComponent, selector: "ncc-abstract-header", inputs: { type: "type", hideEditMode: "hideEditMode", maxHeaderColumns: "maxHeaderColumns", responsiveHeaders: "responsiveHeaders" }, ngImport: i0, template: '', isInline: true });
158
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderComponent, decorators: [{
159
159
  type: Component,
@@ -161,7 +161,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
161
161
  selector: 'ncc-abstract-header',
162
162
  template: ''
163
163
  }]
164
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TranslateService }, { type: i2.OverflowService }]; }, propDecorators: { type: [{
164
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TranslateService }, { type: i2.OverflowService, decorators: [{
165
+ type: Optional
166
+ }] }]; }, propDecorators: { type: [{
165
167
  type: Input
166
168
  }], hideEditMode: [{
167
169
  type: Input
@@ -170,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
170
172
  }], responsiveHeaders: [{
171
173
  type: Input
172
174
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL2Fic3RyYWN0LWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBWSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDMUYsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFPNUQsTUFBTSxPQUFnQix1QkFBdUI7SUFzQnpDLFlBQXNCLFNBQW1CLEVBQ25CLFVBQTRCLEVBQzVCLGdCQUFpQztRQUZqQyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUF0QnBDLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFFckMsU0FBSSxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHZCxtQkFBYyxHQUFH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NEZBRU0sdUJBQXVCO2tCQUo1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzRKQU1ZLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQXlCSyxnQkFBZ0I7c0JBRDFCLEtBQUs7Z0JBYUssaUJBQWlCO3NCQUQzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdEhlYWRlclNlcnZpY2V9IGZyb20gJy4vYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UnO1xuaW1wb3J0IHtDYXNlSGVhZGVyU2VydmljZX0gZnJvbSAnLi9jYXNlLWhlYWRlci9jYXNlLWhlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0hlYWRlclNlcnZpY2V9IGZyb20gJy4vdGFzay1oZWFkZXIvdGFzay1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQge1dvcmtmbG93SGVhZGVyU2VydmljZX0gZnJvbSAnLi93b3JrZmxvdy1oZWFkZXIvd29ya2Zsb3ctaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtIZWFkZXJUeXBlfSBmcm9tICcuL21vZGVscy9oZWFkZXItdHlwZSc7XG5pbXBvcnQge0hlYWRlck1vZGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci1tb2RlJztcbmltcG9ydCB7SGVhZGVyU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vc2VhcmNoL2hlYWRlci1zZWFyY2gtc2VydmljZS9oZWFkZXItc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UnO1xuaW1wb3J0IHtzdG9wUHJvcGFnYXRpb259IGZyb20gJy4uL3V0aWxpdHkvc3RvcC1wcm9wYWdhdGlvbic7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWhlYWRlcicsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX0NPVU5UID0gNjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgREVGQVVMVF9DT0xVTU5fV0lEVEggPSAxOTA7XG5cbiAgICBASW5wdXQoKSB0eXBlOiBIZWFkZXJUeXBlID0gSGVhZGVyVHlwZS5DQVNFO1xuICAgIEBJbnB1dCgpIGhpZGVFZGl0TW9kZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBoZWFkZXJTZXJ2aWNlOiBBYnN0cmFjdEhlYWRlclNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9oZWFkZXJTZWFyY2g6IEhlYWRlclNlYXJjaFNlcnZpY2U7XG4gICAgcHVibGljIHJlYWRvbmx5IGhlYWRlck1vZGVFbnVtID0gSGVhZGVyTW9kZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyVHlwZUVudW0gPSBIZWFkZXJUeXBlO1xuICAgIHB1YmxpYyBvdmVyZmxvd0NvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjb2x1bW5Db3VudENvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjb2x1bW5XaWR0aENvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjYW5PdmVyZmxvdzogYm9vbGVhbjtcbiAgICBwdWJsaWMgc3ViT3ZlcmZsb3dDb250cm9sOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIHN1YkNvbHVtbkNvdW50Q29udHJvbDogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyBzdWJDb2x1bW5XaWR0aENvbnRyb2w6IFN1YnNjcmlwdGlvbjtcblxuICAgIHByb3RlY3RlZCBfaW5pdEhlYWRlckNvdW50OiBudW1iZXIgPSB1bmRlZmluZWQ7XG4gICAgcHJvdGVjdGVkIF9pbml0UmVzcG9uc2l2ZUhlYWRlcnM6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX292ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlKSB7XG4gICAgICAgICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgIT09IG51bGwpID9cbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Db250cm9scyh0cnVlKSA6XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtQ29udHJvbHMoZmFsc2UpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBtYXhIZWFkZXJDb2x1bW5zKGNvdW50OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gY291bnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0SGVhZGVyQ291bnQgPSBjb3VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fb3ZlcmZsb3dTZXJ2aWNlID09PSBudWxsIHx8ICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgIT09IG51bGwgJiYgIXRoaXMuX292ZXJmbG93U2VydmljZS5pbml0aWFsaXplZENvdW50KSkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5Db3VudENvbnRyb2wuc2V0VmFsdWUoY291bnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc3BvbnNpdmVIZWFkZXJzKHJlc3BvbnNpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzID0gcmVzcG9uc2l2ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRSZXNwb25zaXZlSGVhZGVycyA9IHJlc3BvbnNpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNvbHZlSGVhZGVyU2VydmljZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkSGVhZGVyU2VhcmNoKCk7XG4gICAgICAgIGlmICh0aGlzLl9pbml0SGVhZGVyQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gdGhpcy5faW5pdEhlYWRlckNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbml0UmVzcG9uc2l2ZUhlYWRlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzID0gdGhpcy5faW5pdFJlc3BvbnNpdmVIZWFkZXJzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5wcmVmZXJlbmNlQ29sdW1uQ291bnQkLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC5zZXRWYWx1ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYW5PdmVyZmxvdykge1xuICAgICAgICAgICAgdGhpcy5zdWJDb2x1bW5XaWR0aENvbnRyb2wudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3ViQ29sdW1uQ291bnRDb250cm9sLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnN1Yk92ZXJmbG93Q29udHJvbC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5qZWN0cyB0aGUgY29ycmVjdCB7QGxpbmsgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBpbnN0YW5jZSBiYXNlZCBvbiB0aGlzIGNvbXBvbmVudCdzIHR5cGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUhlYWRlclNlcnZpY2UoKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEhlYWRlclR5cGUuQ0FTRTpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoQ2FzZUhlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIZWFkZXJUeXBlLlRBU0s6XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KFRhc2tIZWFkZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSGVhZGVyVHlwZS5XT1JLRkxPVzpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoV29ya2Zsb3dIZWFkZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNvcnJlY3Qge0BsaW5rIEFic3RyYWN0SGVhZGVyU2VydmljZX0gaW5zdGFuY2UgdG8gdGhlIHtAbGluayBIZWFkZXJTZWFyY2hTZXJ2aWNlfVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpbml0aWFsaXplZEhlYWRlclNlYXJjaCgpIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSGVhZGVyVHlwZS5DQVNFKSB7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTZWFyY2ggPSB0aGlzLl9pbmplY3Rvci5nZXQoSGVhZGVyU2VhcmNoU2VydmljZSk7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTZWFyY2guaGVhZGVyU2VydmljZSA9IHRoaXMuaGVhZGVyU2VydmljZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsaWNrU3RvcCgkZXZlbnQpIHtcbiAgICAgICAgc3RvcFByb3BhZ2F0aW9uKCRldmVudCk7XG4gICAgfVxuXG4gICAgZ2V0TWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5fb3ZlcmZsb3dTZXJ2aWNlICYmIHRoaXMuX292ZXJmbG93U2VydmljZS5vdmVyZmxvd01vZGUpID8gYCR7dGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLmNvbHVtbldpZHRofXB4YCA6ICcwJztcbiAgICB9XG5cbiAgICBjb25maXJtRWRpdE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5vdmVyZmxvd0NvbnRyb2wudmFsdWUgfHwgKHRoaXMub3ZlcmZsb3dDb250cm9sLnZhbHVlICYmIHRoaXMuY29sdW1uV2lkdGhDb250cm9sLnZhbGlkICYmIHRoaXMuY29sdW1uV2lkdGhDb250cm9sLnZhbGlkKSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmNvbmZpcm1FZGl0TW9kZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JNZXNzYWdlV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRXJyb3JNZXNzYWdlKHRoaXMuY29sdW1uV2lkdGhDb250cm9sLCAxODApO1xuICAgIH1cblxuICAgIGdldEVycm9yTWVzc2FnZUNvdW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZEVycm9yTWVzc2FnZSh0aGlzLmNvbHVtbkNvdW50Q29udHJvbCwgMSk7XG4gICAgfVxuXG4gICAgYnVpbGRFcnJvck1lc3NhZ2UoZm9ybUNvbnRyb2xSZWY6IEZvcm1Db250cm9sLCBtaW5OdW1iZXIpIHtcbiAgICAgICAgaWYgKGZvcm1Db250cm9sUmVmLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ2RhdGFGaWVsZC52YWxpZGF0aW9ucy5yZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtQ29udHJvbFJlZi5oYXNFcnJvcignbWluJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbGlkYXRpb25zLm1pbicsIHtsZW5ndGg6IG1pbk51bWJlcn0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZUZvcm1Db250cm9scyhleGlzdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmNhbk92ZXJmbG93ID0gZXhpc3Q7XG4gICAgICAgIHRoaXMub3ZlcmZsb3dDb250cm9sID0gbmV3IEZvcm1Db250cm9sKGV4aXN0ID8gdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSA6IGZhbHNlKTtcbiAgICAgICAgdGhpcy5jb2x1bW5Db3VudENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uQ291bnQgOiB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5ULCBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5taW4oMSldKTtcbiAgICAgICAgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uV2lkdGggOiB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRILCBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5taW4oMTgwKV0pO1xuXG4gICAgICAgIGlmIChleGlzdCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVmFsdWVDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZVZhbHVlQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5zdWJPdmVyZmxvd0NvbnRyb2wgPSB0aGlzLm92ZXJmbG93Q29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJmbG93U2VydmljZS5vdmVyZmxvd01vZGUgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ViQ29sdW1uQ291bnRDb250cm9sID0gdGhpcy5jb2x1bW5Db3VudENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5Db3VudENvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uQ291bnQgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlICYmIHRoaXMudHlwZSA9PT0gSGVhZGVyVHlwZS5DQVNFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5oZWFkZXJDb2x1bW5Db3VudCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5oZWFkZXJTZXJ2aWNlIGFzIENhc2VIZWFkZXJTZXJ2aWNlKS51cGRhdGVDb2x1bW5Db3VudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ViQ29sdW1uV2lkdGhDb250cm9sID0gdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlICYmIHRoaXMudHlwZSA9PT0gSGVhZGVyVHlwZS5DQVNFKSB7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhlYWRlclNlcnZpY2UgYXMgQ2FzZUhlYWRlclNlcnZpY2UpLnVwZGF0ZUNvbHVtbkNvdW50KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL2Fic3RyYWN0LWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBWSxLQUFLLEVBQXFCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7O0FBTzVELE1BQU0sT0FBZ0IsdUJBQXVCO0lBc0J6QyxZQUFzQixTQUFtQixFQUNuQixVQUE0QixFQUNoQixnQkFBaUM7UUFGN0MsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBdEJoRCx5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIseUJBQW9CLEdBQUcsR0FBRyxDQUFDO1FBRXJDLFNBQUksR0FBZSxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ25DLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR2Qs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QUYvQixFQUFFOzRGQUVNLHVCQUF1QjtrQkFKNUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBeUJnQixRQUFROzRDQW5CWixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkF5QkssZ0JBQWdCO3NCQUQxQixLQUFLO2dCQWFLLGlCQUFpQjtzQkFEM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0SGVhZGVyU2VydmljZX0gZnJvbSAnLi9hYnN0cmFjdC1oZWFkZXItc2VydmljZSc7XG5pbXBvcnQge0Nhc2VIZWFkZXJTZXJ2aWNlfSBmcm9tICcuL2Nhc2UtaGVhZGVyL2Nhc2UtaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrSGVhZGVyU2VydmljZX0gZnJvbSAnLi90YXNrLWhlYWRlci90YXNrLWhlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2Zsb3dIZWFkZXJTZXJ2aWNlfSBmcm9tICcuL3dvcmtmbG93LWhlYWRlci93b3JrZmxvdy1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQge0hlYWRlclR5cGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci10eXBlJztcbmltcG9ydCB7SGVhZGVyTW9kZX0gZnJvbSAnLi9tb2RlbHMvaGVhZGVyLW1vZGUnO1xuaW1wb3J0IHtIZWFkZXJTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi9zZWFyY2gvaGVhZGVyLXNlYXJjaC1zZXJ2aWNlL2hlYWRlci1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPdmVyZmxvd1NlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvb3ZlcmZsb3cuc2VydmljZSc7XG5pbXBvcnQge3N0b3BQcm9wYWdhdGlvbn0gZnJvbSAnLi4vdXRpbGl0eS9zdG9wLXByb3BhZ2F0aW9uJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgREVGQVVMVF9DT0xVTU5fQ09VTlQgPSA2O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9XSURUSCA9IDIyMDtcblxuICAgIEBJbnB1dCgpIHR5cGU6IEhlYWRlclR5cGUgPSBIZWFkZXJUeXBlLkNBU0U7XG4gICAgQElucHV0KCkgaGlkZUVkaXRNb2RlID0gZmFsc2U7XG4gICAgcHVibGljIGhlYWRlclNlcnZpY2U6IEFic3RyYWN0SGVhZGVyU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2hlYWRlclNlYXJjaDogSGVhZGVyU2VhcmNoU2VydmljZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyTW9kZUVudW0gPSBIZWFkZXJNb2RlO1xuICAgIHB1YmxpYyByZWFkb25seSBoZWFkZXJUeXBlRW51bSA9IEhlYWRlclR5cGU7XG4gICAgcHVibGljIG92ZXJmbG93Q29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNvbHVtbkNvdW50Q29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNvbHVtbldpZHRoQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNhbk92ZXJmbG93OiBib29sZWFuO1xuICAgIHB1YmxpYyBzdWJPdmVyZmxvd0NvbnRyb2w6IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgc3ViQ29sdW1uQ291bnRDb250cm9sOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIHN1YkNvbHVtbldpZHRoQ29udHJvbDogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIF9pbml0SGVhZGVyQ291bnQ6IG51bWJlciA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgX2luaXRSZXNwb25zaXZlSGVhZGVyczogYm9vbGVhbiA9IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UpIHtcbiAgICAgICAgKHRoaXMuX292ZXJmbG93U2VydmljZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybUNvbnRyb2xzKHRydWUpIDpcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Db250cm9scyhmYWxzZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG1heEhlYWRlckNvbHVtbnMoY291bnQ6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuaGVhZGVyQ29sdW1uQ291bnQgPSBjb3VudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRIZWFkZXJDb3VudCA9IGNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgPT09IG51bGwgfHwgKHRoaXMuX292ZXJmbG93U2VydmljZSAhPT0gbnVsbCAmJiAhdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLmluaXRpYWxpemVkQ291bnQpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC5zZXRWYWx1ZShjb3VudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVzcG9uc2l2ZUhlYWRlcnMocmVzcG9uc2l2ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UucmVzcG9uc2l2ZUhlYWRlcnMgPSByZXNwb25zaXZlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5pdFJlc3BvbnNpdmVIZWFkZXJzID0gcmVzcG9uc2l2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc29sdmVIZWFkZXJTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWRIZWFkZXJTZWFyY2goKTtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRIZWFkZXJDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuaGVhZGVyQ29sdW1uQ291bnQgPSB0aGlzLl9pbml0SGVhZGVyQ291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2luaXRSZXNwb25zaXZlSGVhZGVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UucmVzcG9uc2l2ZUhlYWRlcnMgPSB0aGlzLl9pbml0UmVzcG9uc2l2ZUhlYWRlcnM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnByZWZlcmVuY2VDb2x1bW5Db3VudCQuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMuY29sdW1uQ291bnRDb250cm9sLnNldFZhbHVlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhbk92ZXJmbG93KSB7XG4gICAgICAgICAgICB0aGlzLnN1YkNvbHVtbldpZHRoQ29udHJvbC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWJDb2x1bW5Db3VudENvbnRyb2wudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3ViT3ZlcmZsb3dDb250cm9sLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3RzIHRoZSBjb3JyZWN0IHtAbGluayBBYnN0cmFjdEhlYWRlclNlcnZpY2V9IGluc3RhbmNlIGJhc2VkIG9uIHRoaXMgY29tcG9uZW50J3MgdHlwZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZXNvbHZlSGVhZGVyU2VydmljZSgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgSGVhZGVyVHlwZS5DQVNFOlxuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChDYXNlSGVhZGVyU2VydmljZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEhlYWRlclR5cGUuVEFTSzpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoVGFza0hlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIZWFkZXJUeXBlLldPUktGTE9XOlxuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChXb3JrZmxvd0hlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY29ycmVjdCB7QGxpbmsgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBpbnN0YW5jZSB0byB0aGUge0BsaW5rIEhlYWRlclNlYXJjaFNlcnZpY2V9XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVkSGVhZGVyU2VhcmNoKCkge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclNlYXJjaCA9IHRoaXMuX2luamVjdG9yLmdldChIZWFkZXJTZWFyY2hTZXJ2aWNlKTtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclNlYXJjaC5oZWFkZXJTZXJ2aWNlID0gdGhpcy5oZWFkZXJTZXJ2aWNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xpY2tTdG9wKCRldmVudCkge1xuICAgICAgICBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KTtcbiAgICB9XG5cbiAgICBnZXRNaW5XaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgJiYgdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSkgPyBgJHt0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uV2lkdGh9cHhgIDogJzAnO1xuICAgIH1cblxuICAgIGNvbmZpcm1FZGl0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm92ZXJmbG93Q29udHJvbC52YWx1ZSB8fCAodGhpcy5vdmVyZmxvd0NvbnRyb2wudmFsdWUgJiYgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsaWQgJiYgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsaWQpKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuY29uZmlybUVkaXRNb2RlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRFcnJvck1lc3NhZ2VXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRFcnJvck1lc3NhZ2UodGhpcy5jb2x1bW5XaWR0aENvbnRyb2wsIDE4MCk7XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JNZXNzYWdlQ291bnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRXJyb3JNZXNzYWdlKHRoaXMuY29sdW1uQ291bnRDb250cm9sLCAxKTtcbiAgICB9XG5cbiAgICBidWlsZEVycm9yTWVzc2FnZShmb3JtQ29udHJvbFJlZjogRm9ybUNvbnRyb2wsIG1pbk51bWJlcikge1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2xSZWYuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbGlkYXRpb25zLnJlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1Db250cm9sUmVmLmhhc0Vycm9yKCdtaW4nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQudmFsaWRhdGlvbnMubWluJywge2xlbmd0aDogbWluTnVtYmVyfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplRm9ybUNvbnRyb2xzKGV4aXN0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY2FuT3ZlcmZsb3cgPSBleGlzdDtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2Uub3ZlcmZsb3dNb2RlIDogZmFsc2UpO1xuICAgICAgICB0aGlzLmNvbHVtbkNvdW50Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChleGlzdCA/IHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5Db3VudCA6IHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigxKV0pO1xuICAgICAgICB0aGlzLmNvbHVtbldpZHRoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChleGlzdCA/IHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5XaWR0aCA6IHRoaXMuREVGQVVMVF9DT0xVTU5fV0lEVEgsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigxODApXSk7XG5cbiAgICAgICAgaWYgKGV4aXN0KSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVWYWx1ZUNoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplVmFsdWVDaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLnN1Yk92ZXJmbG93Q29udHJvbCA9IHRoaXMub3ZlcmZsb3dDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb2x1bW5Db3VudENvbnRyb2wgPSB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbkNvdW50Q29udHJvbC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5Db3VudCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UgJiYgdGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhlYWRlclNlcnZpY2UgYXMgQ2FzZUhlYWRlclNlcnZpY2UpLnVwZGF0ZUNvbHVtbkNvdW50KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb2x1bW5XaWR0aENvbnRyb2wgPSB0aGlzLmNvbHVtbldpZHRoQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbldpZHRoQ29udHJvbC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5XaWR0aCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UgJiYgdGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaGVhZGVyU2VydmljZSBhcyBDYXNlSGVhZGVyU2VydmljZSkudXBkYXRlQ29sdW1uQ291bnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -12,7 +12,7 @@ import * as i4 from "../../user/services/view-id.service";
12
12
  import * as i5 from "../services/overflow.service";
13
13
  export class CaseHeaderService extends AbstractHeaderService {
14
14
  constructor(_allowedNetsService, preferences, logger, viewIdService, overflowService, naeDefaultHeaders) {
15
- super(HeaderType.CASE, preferences, viewIdService, logger);
15
+ super(HeaderType.CASE, preferences, logger, viewIdService, overflowService);
16
16
  this._allowedNetsService = _allowedNetsService;
17
17
  this.overflowService = overflowService;
18
18
  this.subAllowedNets = _allowedNetsService.allowedNets$.subscribe(allowedNets => {
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
74
74
  type: Inject,
75
75
  args: [NAE_DEFAULT_HEADERS]
76
76
  }] }]; } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1oZWFkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL2Nhc2UtaGVhZGVyL2Nhc2UtaGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBUXBFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxxQkFBcUI7SUFHeEQsWUFBc0IsbUJBQXVDLEVBQ2pELFdBQWtDLEVBQ2xDLE1BQXFCLEVBQ1QsYUFBNEIsRUFDbEIsZUFBZ0MsRUFDYixpQkFBZ0M7UUFDakYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQU56Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBSTNCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUc5RCxJQUFJLENBQUMsY0FBYyxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDM0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqQyxJQUFJLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7Z0JBQzVDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNILElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxpQkFBaUI7UUFDdkIsT0FBTztZQUNILElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsU0FBUyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztZQUNyRyxJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQzFHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sQ0FBQztZQUM5RixJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLENBQUM7WUFDaEcsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxhQUFhLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxDQUFDO1NBQ2hILENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVTLFNBQVM7UUFDZixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFUyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVTLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQzNDO0lBQ0wsQ0FBQzs7K0dBMURRLGlCQUFpQixrTkFRTSxtQkFBbUI7bUhBUjFDLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOzswQkFPTSxRQUFROzswQkFDUixRQUFROzhCQUNtRCxLQUFLOzBCQUFoRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi9hYnN0cmFjdC1oZWFkZXItc2VydmljZSc7XG5pbXBvcnQge0hlYWRlclR5cGV9IGZyb20gJy4uL21vZGVscy9oZWFkZXItdHlwZSc7XG5pbXBvcnQge0hlYWRlckNvbHVtbiwgSGVhZGVyQ29sdW1uVHlwZX0gZnJvbSAnLi4vbW9kZWxzL2hlYWRlci1jb2x1bW4nO1xuaW1wb3J0IHtDYXNlTWV0YUZpZWxkfSBmcm9tICcuL2Nhc2UtbWVudGEtZW51bSc7XG5pbXBvcnQge1VzZXJQcmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLXByZWZlcmVuY2Uuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge05BRV9ERUZBVUxUX0hFQURFUlN9IGZyb20gJy4uL21vZGVscy9kZWZhdWx0LWhlYWRlcnMtdG9rZW4nO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtPdmVyZmxvd1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UnO1xuaW1wb3J0IHtWaWV3SWRTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3ZpZXctaWQuc2VydmljZSc7XG5pbXBvcnQge0FsbG93ZWROZXRzU2VydmljZX0gZnJvbSAnLi4vLi4vYWxsb3dlZC1uZXRzL3NlcnZpY2VzL2FsbG93ZWQtbmV0cy5zZXJ2aWNlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FzZUhlYWRlclNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdEhlYWRlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByb3RlY3RlZCBzdWJBbGxvd2VkTmV0czogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9hbGxvd2VkTmV0c1NlcnZpY2U6IEFsbG93ZWROZXRzU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcmVmZXJlbmNlczogVXNlclByZWZlcmVuY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSB2aWV3SWRTZXJ2aWNlOiBWaWV3SWRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBvdmVyZmxvd1NlcnZpY2U6IE92ZXJmbG93U2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9ERUZBVUxUX0hFQURFUlMpIG5hZURlZmF1bHRIZWFkZXJzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIHN1cGVyKEhlYWRlclR5cGUuQ0FTRSwgcHJlZmVyZW5jZXMsIHZpZXdJZFNlcnZpY2UsIGxvZ2dlcik7XG4gICAgICAgIHRoaXMuc3ViQWxsb3dlZE5ldHMgPSBfYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzJC5zdWJzY3JpYmUoYWxsb3dlZE5ldHMgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRBbGxvd2VkTmV0cyhhbGxvd2VkTmV0cyk7XG4gICAgICAgICAgICBpZiAobmFlRGVmYXVsdEhlYWRlcnMgJiYgQXJyYXkuaXNBcnJheShuYWVEZWZhdWx0SGVhZGVycykgJiYgbmFlRGVmYXVsdEhlYWRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdERlZmF1bHRIZWFkZXJzID0gbmFlRGVmYXVsdEhlYWRlcnM7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdEhlYWRlclN0YXRlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubG9hZGluZy5vZmYoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU1ldGFIZWFkZXJzKCk6IEFycmF5PEhlYWRlckNvbHVtbj4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIENhc2VNZXRhRmllbGQuVklTVUFMX0lELCAnaGVhZGVycy5jYXNlTWV0YS52aXN1YWxJRCcsICd0ZXh0JyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgQ2FzZU1ldGFGaWVsZC5NT05HT19JRCwgJ2hlYWRlcnMuY2FzZU1ldGEubW9uZ29JRCcsICd0ZXh0JywgZmFsc2UpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIENhc2VNZXRhRmllbGQuVElUTEUsICdoZWFkZXJzLmNhc2VNZXRhLnRpdGxlJywgJ3RleHQnKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBDYXNlTWV0YUZpZWxkLkFVVEhPUiwgJ2hlYWRlcnMuY2FzZU1ldGEuYXV0aG9yJywgJ3VzZXInKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBDYXNlTWV0YUZpZWxkLkNSRUFUSU9OX0RBVEUsICdoZWFkZXJzLmNhc2VNZXRhLmNyZWF0aW9uRGF0ZScsICdkYXRlJyksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuc3ViQWxsb3dlZE5ldHMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQ29sdW1uQ291bnQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSGVhZGVyQ29sdW1uQ291bnQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2F2ZVN0YXRlKCkge1xuICAgICAgICBpZiAodGhpcy5vdmVyZmxvd1NlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dTZXJ2aWNlLnNhdmVTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNhdmVOZXdTdGF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmZsb3dTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJmbG93U2VydmljZS5zYXZlTmV3U3RhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckNvbHVtbkNvdW50KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc3RvcmVMYXN0U3RhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJmbG93U2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVyZmxvd1NlcnZpY2UucmVzdG9yZUxhc3RTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1oZWFkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL2Nhc2UtaGVhZGVyL2Nhc2UtaGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBUXBFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxxQkFBcUI7SUFHeEQsWUFBc0IsbUJBQXVDLEVBQ2pELFdBQWtDLEVBQ2xDLE1BQXFCLEVBQ1QsYUFBNEIsRUFDbEIsZUFBZ0MsRUFDYixpQkFBZ0M7UUFDakYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFOMUQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUkzQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFHOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzNFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsSUFBSSxpQkFBaUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdkYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO2dCQUM1QyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQzthQUN2QztpQkFBTTtnQkFDSCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQzthQUNyQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsaUJBQWlCO1FBQ3ZCLE9BQU87WUFDSCxJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLENBQUM7WUFDckcsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztZQUMxRyxJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLENBQUM7WUFDOUYsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxDQUFDO1lBQ2hHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsYUFBYSxFQUFFLCtCQUErQixFQUFFLE1BQU0sQ0FBQztTQUNoSCxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0saUJBQWlCO1FBQ3BCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFUyxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEM7SUFDTCxDQUFDO0lBRVMsWUFBWTtRQUNsQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QztRQUNELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFUyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQztJQUNMLENBQUM7OytHQTFEUSxpQkFBaUIsa05BUU0sbUJBQW1CO21IQVIxQyxpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBT00sUUFBUTs7MEJBQ1IsUUFBUTs4QkFDbUQsS0FBSzswQkFBaEUsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0SGVhZGVyU2VydmljZX0gZnJvbSAnLi4vYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UnO1xuaW1wb3J0IHtIZWFkZXJUeXBlfSBmcm9tICcuLi9tb2RlbHMvaGVhZGVyLXR5cGUnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW4sIEhlYWRlckNvbHVtblR5cGV9IGZyb20gJy4uL21vZGVscy9oZWFkZXItY29sdW1uJztcbmltcG9ydCB7Q2FzZU1ldGFGaWVsZH0gZnJvbSAnLi9jYXNlLW1lbnRhLWVudW0nO1xuaW1wb3J0IHtVc2VyUHJlZmVyZW5jZVNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci1wcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtOQUVfREVGQVVMVF9IRUFERVJTfSBmcm9tICcuLi9tb2RlbHMvZGVmYXVsdC1oZWFkZXJzLXRva2VuJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9vdmVyZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7Vmlld0lkU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy92aWV3LWlkLnNlcnZpY2UnO1xuaW1wb3J0IHtBbGxvd2VkTmV0c1NlcnZpY2V9IGZyb20gJy4uLy4uL2FsbG93ZWQtbmV0cy9zZXJ2aWNlcy9hbGxvd2VkLW5ldHMuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhc2VIZWFkZXJTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgc3ViQWxsb3dlZE5ldHM6IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfYWxsb3dlZE5ldHNTZXJ2aWNlOiBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfREVGQVVMVF9IRUFERVJTKSBuYWVEZWZhdWx0SGVhZGVyczogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBzdXBlcihIZWFkZXJUeXBlLkNBU0UsIHByZWZlcmVuY2VzLCBsb2dnZXIsIHZpZXdJZFNlcnZpY2UsIG92ZXJmbG93U2VydmljZSk7XG4gICAgICAgIHRoaXMuc3ViQWxsb3dlZE5ldHMgPSBfYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzJC5zdWJzY3JpYmUoYWxsb3dlZE5ldHMgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRBbGxvd2VkTmV0cyhhbGxvd2VkTmV0cyk7XG4gICAgICAgICAgICBpZiAobmFlRGVmYXVsdEhlYWRlcnMgJiYgQXJyYXkuaXNBcnJheShuYWVEZWZhdWx0SGVhZGVycykgJiYgbmFlRGVmYXVsdEhlYWRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdERlZmF1bHRIZWFkZXJzID0gbmFlRGVmYXVsdEhlYWRlcnM7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdEhlYWRlclN0YXRlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubG9hZGluZy5vZmYoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU1ldGFIZWFkZXJzKCk6IEFycmF5PEhlYWRlckNvbHVtbj4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIENhc2VNZXRhRmllbGQuVklTVUFMX0lELCAnaGVhZGVycy5jYXNlTWV0YS52aXN1YWxJRCcsICd0ZXh0JyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgQ2FzZU1ldGFGaWVsZC5NT05HT19JRCwgJ2hlYWRlcnMuY2FzZU1ldGEubW9uZ29JRCcsICd0ZXh0JywgZmFsc2UpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIENhc2VNZXRhRmllbGQuVElUTEUsICdoZWFkZXJzLmNhc2VNZXRhLnRpdGxlJywgJ3RleHQnKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBDYXNlTWV0YUZpZWxkLkFVVEhPUiwgJ2hlYWRlcnMuY2FzZU1ldGEuYXV0aG9yJywgJ3VzZXInKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBDYXNlTWV0YUZpZWxkLkNSRUFUSU9OX0RBVEUsICdoZWFkZXJzLmNhc2VNZXRhLmNyZWF0aW9uRGF0ZScsICdkYXRlJyksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuc3ViQWxsb3dlZE5ldHMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQ29sdW1uQ291bnQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSGVhZGVyQ29sdW1uQ291bnQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2F2ZVN0YXRlKCkge1xuICAgICAgICBpZiAodGhpcy5vdmVyZmxvd1NlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dTZXJ2aWNlLnNhdmVTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNhdmVOZXdTdGF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmZsb3dTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJmbG93U2VydmljZS5zYXZlTmV3U3RhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckNvbHVtbkNvdW50KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc3RvcmVMYXN0U3RhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJmbG93U2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVyZmxvd1NlcnZpY2UucmVzdG9yZUxhc3RTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -4,7 +4,7 @@ import * as i1 from "../../user/services/view-id.service";
4
4
  export class OverflowService {
5
5
  constructor(_viewIdService) {
6
6
  this._viewIdService = _viewIdService;
7
- this.DEFAULT_COLUMN_WIDTH = 190;
7
+ this.DEFAULT_COLUMN_WIDTH = 200;
8
8
  this.DEFAULT_COLUMN_COUNT = 6;
9
9
  this._initializedCount = false;
10
10
  this._overflowMode = this.initializeItem('overflowMode', false) === 'true';
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
90
90
  }], ctorParameters: function () { return [{ type: i1.ViewIdService, decorators: [{
91
91
  type: Optional
92
92
  }] }]; } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVVuRCxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFnQyxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVIxQyx5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDM0IseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBUXhDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1YsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUM5QixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDakMsQ0FBQztJQUNOLENBQUM7SUFFTSxZQUFZO1FBQ2YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLElBQUksTUFBTSxFQUFFO1lBQ1IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDekU7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzVCLENBQUM7SUFFUyxjQUFjLENBQUMsRUFBVSxFQUFFLFlBQVk7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPLFlBQVksQ0FBQztTQUN2QjtRQUVELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDZixJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7YUFDakM7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxPQUFPLFlBQVksQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFFUyxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVk7UUFDbkMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ08sU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs7NkdBbkdRLGVBQWU7aUhBQWYsZUFBZTs0RkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFXTSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIE92ZXJmbG93U3RhdGUge1xuICAgIG92ZXJmbG93TW9kZTogYm9vbGVhbjtcbiAgICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIGNvbHVtbkNvdW50OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd1NlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX1dJRFRIID0gMTkwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9DT1VOVCA9IDY7XG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dNb2RlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NvbHVtbldpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29sdW1uQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zdGF0ZTogT3ZlcmZsb3dTdGF0ZTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZENvdW50OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSkge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuaW5pdGlhbGl6ZUl0ZW0oJ292ZXJmbG93TW9kZScsIGZhbHNlKSA9PT0gJ3RydWUnO1xuICAgICAgICB0aGlzLl9jb2x1bW5Db3VudCA9IHRoaXMuY2hlY2tJc05hbih0aGlzLmluaXRpYWxpemVJdGVtKCdjb2x1bW5Db3VudCcsIHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQpLCB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5UKTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLmNoZWNrSXNOYW4odGhpcy5pbml0aWFsaXplSXRlbSgnY29sdW1uV2lkdGgnLCB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIKSwgdGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSCk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93TW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93TW9kZTtcbiAgICB9XG5cbiAgICBzZXQgb3ZlcmZsb3dNb2RlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5XaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0IGNvbHVtbldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkNvdW50O1xuICAgIH1cblxuICAgIHNldCBjb2x1bW5Db3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkQ291bnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZENvdW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0ge1xuICAgICAgICAgICAgb3ZlcmZsb3dNb2RlOiB0aGlzLl9vdmVyZmxvd01vZGUsXG4gICAgICAgICAgICBjb2x1bW5XaWR0aDogdGhpcy5fY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBjb2x1bW5Db3VudDogdGhpcy5fY29sdW1uQ291bnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVOZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKHZpZXdJZCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odmlld0lkICsgJy1vdmVyZmxvd01vZGUnLCB0aGlzLl9vdmVyZmxvd01vZGUgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbkNvdW50JywgdGhpcy5fY29sdW1uQ291bnQgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbldpZHRoJywgdGhpcy5fY29sdW1uV2lkdGggKyAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmVMYXN0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuX3N0YXRlLm92ZXJmbG93TW9kZTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLl9zdGF0ZS5jb2x1bW5XaWR0aDtcbiAgICAgICAgdGhpcy5fY29sdW1uQ291bnQgPSB0aGlzLl9zdGF0ZS5jb2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVJdGVtKGlkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoIXZpZXdJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh2aWV3SWQgKyAnLScgKyBpZCk7XG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoaWQuaW5jbHVkZXMoJ2NvbHVtbkNvdW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjaGVja0lzTmFuKGl0ZW0sIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNOYU4ocGFyc2VJbnQoaXRlbSwgMTApKSA/IGRlZmF1bHRWYWx1ZSA6IHBhcnNlSW50KGl0ZW0sIDEwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgSWQgb2YgdGhlIHZpZXcsIGlmIHRoZSBWaWV3SWRTZXJ2aWNlIHdhcyBpbmplY3RlZC4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgc2VydmljZSB3YXMgbm90IGluamVjdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRWaWV3SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJZFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aWV3SWRTZXJ2aWNlLnZpZXdJZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVVuRCxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFnQyxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVIxQyx5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDM0IseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBUXhDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFD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bnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIE92ZXJmbG93U3RhdGUge1xuICAgIG92ZXJmbG93TW9kZTogYm9vbGVhbjtcbiAgICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIGNvbHVtbkNvdW50OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd1NlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX1dJRFRIID0gMjAwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9DT1VOVCA9IDY7XG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dNb2RlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NvbHVtbldpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29sdW1uQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zdGF0ZTogT3ZlcmZsb3dTdGF0ZTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZENvdW50OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSkge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuaW5pdGlhbGl6ZUl0ZW0oJ292ZXJmbG93TW9kZScsIGZhbHNlKSA9PT0gJ3RydWUnO1xuICAgICAgICB0aGlzLl9jb2x1bW5Db3VudCA9IHRoaXMuY2hlY2tJc05hbih0aGlzLmluaXRpYWxpemVJdGVtKCdjb2x1bW5Db3VudCcsIHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQpLCB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5UKTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLmNoZWNrSXNOYW4odGhpcy5pbml0aWFsaXplSXRlbSgnY29sdW1uV2lkdGgnLCB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIKSwgdGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSCk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93TW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93TW9kZTtcbiAgICB9XG5cbiAgICBzZXQgb3ZlcmZsb3dNb2RlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5XaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0IGNvbHVtbldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkNvdW50O1xuICAgIH1cblxuICAgIHNldCBjb2x1bW5Db3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkQ291bnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZENvdW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0ge1xuICAgICAgICAgICAgb3ZlcmZsb3dNb2RlOiB0aGlzLl9vdmVyZmxvd01vZGUsXG4gICAgICAgICAgICBjb2x1bW5XaWR0aDogdGhpcy5fY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBjb2x1bW5Db3VudDogdGhpcy5fY29sdW1uQ291bnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVOZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKHZpZXdJZCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odmlld0lkICsgJy1vdmVyZmxvd01vZGUnLCB0aGlzLl9vdmVyZmxvd01vZGUgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbkNvdW50JywgdGhpcy5fY29sdW1uQ291bnQgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbldpZHRoJywgdGhpcy5fY29sdW1uV2lkdGggKyAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmVMYXN0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuX3N0YXRlLm92ZXJmbG93TW9kZTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLl9zdGF0ZS5jb2x1bW5XaWR0aDtcbiAgICAgICAgdGhpcy5fY29sdW1uQ291bnQgPSB0aGlzLl9zdGF0ZS5jb2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVJdGVtKGlkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoIXZpZXdJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh2aWV3SWQgKyAnLScgKyBpZCk7XG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoaWQuaW5jbHVkZXMoJ2NvbHVtbkNvdW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjaGVja0lzTmFuKGl0ZW0sIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNOYU4ocGFyc2VJbnQoaXRlbSwgMTApKSA/IGRlZmF1bHRWYWx1ZSA6IHBhcnNlSW50KGl0ZW0sIDEwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgSWQgb2YgdGhlIHZpZXcsIGlmIHRoZSBWaWV3SWRTZXJ2aWNlIHdhcyBpbmplY3RlZC4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgc2VydmljZSB3YXMgbm90IGluamVjdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRWaWV3SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJZFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aWV3SWRTZXJ2aWNlLnZpZXdJZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==
@@ -9,9 +9,10 @@ import * as i1 from "../../allowed-nets/services/allowed-nets.service";
9
9
  import * as i2 from "../../user/services/user-preference.service";
10
10
  import * as i3 from "../../logger/services/logger.service";
11
11
  import * as i4 from "../../user/services/view-id.service";
12
+ import * as i5 from "../services/overflow.service";
12
13
  export class TaskHeaderService extends AbstractHeaderService {
13
- constructor(_allowedNetsService, preferences, logger, viewIdService, naeDefaultHeaders) {
14
- super(HeaderType.TASK, preferences, viewIdService, logger);
14
+ constructor(_allowedNetsService, preferences, logger, viewIdService, overflowService, naeDefaultHeaders) {
15
+ super(HeaderType.TASK, preferences, logger, viewIdService, overflowService);
15
16
  this._allowedNetsService = _allowedNetsService;
16
17
  this.subAllowedNets = _allowedNetsService.allowedNets$.subscribe(allowedNets => {
17
18
  this.setTaskAllowedNets(allowedNets);
@@ -47,16 +48,18 @@ export class TaskHeaderService extends AbstractHeaderService {
47
48
  this.subAllowedNets.unsubscribe();
48
49
  }
49
50
  }
50
- TaskHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskHeaderService, deps: [{ token: i1.AllowedNetsService }, { token: i2.UserPreferenceService }, { token: i3.LoggerService }, { token: i4.ViewIdService, optional: true }, { token: NAE_DEFAULT_HEADERS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
51
+ TaskHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskHeaderService, deps: [{ token: i1.AllowedNetsService }, { token: i2.UserPreferenceService }, { token: i3.LoggerService }, { token: i4.ViewIdService, optional: true }, { token: i5.OverflowService, optional: true }, { token: NAE_DEFAULT_HEADERS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
51
52
  TaskHeaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskHeaderService });
52
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskHeaderService, decorators: [{
53
54
  type: Injectable
54
55
  }], ctorParameters: function () { return [{ type: i1.AllowedNetsService }, { type: i2.UserPreferenceService }, { type: i3.LoggerService }, { type: i4.ViewIdService, decorators: [{
55
56
  type: Optional
57
+ }] }, { type: i5.OverflowService, decorators: [{
58
+ type: Optional
56
59
  }] }, { type: Array, decorators: [{
57
60
  type: Optional
58
61
  }, {
59
62
  type: Inject,
60
63
  args: [NAE_DEFAULT_HEADERS]
61
64
  }] }]; } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oZWFkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3Rhc2staGVhZGVyL3Rhc2staGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBSS9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7QUFNcEUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUFxQjtJQUd4RCxZQUFzQixtQkFBdUMsRUFDakQsV0FBa0MsRUFDbEMsTUFBcUIsRUFDVCxhQUE0QixFQUNDLGlCQUFnQztRQUNqRixLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTHpDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFNekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzNFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyQyxJQUFJLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7Z0JBQzVDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNILElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxpQkFBaUI7UUFDdkIsT0FBTztZQUNILElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztZQUM1RixJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQ3hHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDeEcsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxDQUFDO1lBQzlGLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLGFBQWEsQ0FBQztZQUMzRyxJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLENBQUM7WUFDNUYsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxDQUFDO1NBQzVHLENBQUM7SUFDTixDQUFDO0lBRVMsU0FBUztJQUNuQixDQUFDO0lBRVMsWUFBWTtJQUN0QixDQUFDO0lBRVMsZ0JBQWdCO0lBQzFCLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQzs7K0dBN0NRLGlCQUFpQixtS0FPTSxtQkFBbUI7bUhBUDFDLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOzswQkFPTSxRQUFROzhCQUNtRCxLQUFLOzBCQUFoRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi9hYnN0cmFjdC1oZWFkZXItc2VydmljZSc7XG5pbXBvcnQge0hlYWRlclR5cGV9IGZyb20gJy4uL21vZGVscy9oZWFkZXItdHlwZSc7XG5pbXBvcnQge0hlYWRlckNvbHVtbiwgSGVhZGVyQ29sdW1uVHlwZX0gZnJvbSAnLi4vbW9kZWxzL2hlYWRlci1jb2x1bW4nO1xuaW1wb3J0IHtUYXNrTWV0YUZpZWxkfSBmcm9tICcuL3Rhc2stbWV0YS1lbnVtJztcbmltcG9ydCB7VXNlclByZWZlcmVuY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3VzZXItcHJlZmVyZW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7TkFFX0RFRkFVTFRfSEVBREVSU30gZnJvbSAnLi4vbW9kZWxzL2RlZmF1bHQtaGVhZGVycy10b2tlbic7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcbmltcG9ydCB7QWxsb3dlZE5ldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYWxsb3dlZC1uZXRzLnNlcnZpY2UnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUYXNrSGVhZGVyU2VydmljZSBleHRlbmRzIEFic3RyYWN0SGVhZGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJvdGVjdGVkIHN1YkFsbG93ZWROZXRzOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2FsbG93ZWROZXRzU2VydmljZTogQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHZpZXdJZFNlcnZpY2U6IFZpZXdJZFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfREVGQVVMVF9IRUFERVJTKSBuYWVEZWZhdWx0SGVhZGVyczogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBzdXBlcihIZWFkZXJUeXBlLlRBU0ssIHByZWZlcmVuY2VzLCB2aWV3SWRTZXJ2aWNlLCBsb2dnZXIpO1xuICAgICAgICB0aGlzLnN1YkFsbG93ZWROZXRzID0gX2FsbG93ZWROZXRzU2VydmljZS5hbGxvd2VkTmV0cyQuc3Vic2NyaWJlKGFsbG93ZWROZXRzID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0VGFza0FsbG93ZWROZXRzKGFsbG93ZWROZXRzKTtcbiAgICAgICAgICAgIGlmIChuYWVEZWZhdWx0SGVhZGVycyAmJiBBcnJheS5pc0FycmF5KG5hZURlZmF1bHRIZWFkZXJzKSAmJiBuYWVEZWZhdWx0SGVhZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0RGVmYXVsdEhlYWRlcnMgPSBuYWVEZWZhdWx0SGVhZGVycztcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVEZWZhdWx0SGVhZGVyU3RhdGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkSGVhZGVyc0Zyb21QcmVmZXJlbmNlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nLm9mZigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlTWV0YUhlYWRlcnMoKTogQXJyYXk8SGVhZGVyQ29sdW1uPiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgVGFza01ldGFGaWVsZC5DQVNFLCAnaGVhZGVycy50YXNrTWV0YS5jYXNlJywgJ3RleHQnKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBUYXNrTWV0YUZpZWxkLkNBU0VfSUQsICdoZWFkZXJzLnRhc2tNZXRhLmNhc2VJRCcsICd0ZXh0JywgZmFsc2UpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFRhc2tNZXRhRmllbGQuVEFTS19JRCwgJ2hlYWRlcnMudGFza01ldGEudGFza0lEJywgJ3RleHQnLCBmYWxzZSksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgVGFza01ldGFGaWVsZC5USVRMRSwgJ2hlYWRlcnMuY2FzZU1ldGEudGl0bGUnLCAndGV4dCcpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFRhc2tNZXRhRmllbGQuUFJJT1JJVFksICdoZWFkZXJzLnRhc2tNZXRhLnByaW9yaXR5JywgJ2VudW1lcmF0aW9uJyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgVGFza01ldGFGaWVsZC5VU0VSLCAnaGVhZGVycy50YXNrTWV0YS51c2VyJywgJ3RleHQnKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBUYXNrTWV0YUZpZWxkLkFTU0lHTl9EQVRFLCAnaGVhZGVycy50YXNrTWV0YS5hc3NpZ25EYXRlJywgJ2RhdGUnKSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2F2ZVN0YXRlKCkge1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzYXZlTmV3U3RhdGUoKSB7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc3RvcmVMYXN0U3RhdGUoKSB7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuc3ViQWxsb3dlZE5ldHMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oZWFkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3Rhc2staGVhZGVyL3Rhc2staGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBSS9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBT3BFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxxQkFBcUI7SUFHeEQsWUFBc0IsbUJBQXVDLEVBQ2pELFdBQWtDLEVBQ2xDLE1BQXFCLEVBQ1QsYUFBNEIsRUFDNUIsZUFBZ0MsRUFDSCxpQkFBZ0M7UUFDakYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFOMUQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQU96RCxJQUFJLENBQUMsY0FBYyxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDM0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksaUJBQWlCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7YUFDckM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLGlCQUFpQjtRQUN2QixPQUFPO1lBQ0gsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxDQUFDO1lBQzVGLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDeEcsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztZQUN4RyxJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLENBQUM7WUFDOUYsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsYUFBYSxDQUFDO1lBQzNHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztZQUM1RixJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLENBQUM7U0FDNUcsQ0FBQztJQUNOLENBQUM7SUFFUyxTQUFTO0lBQ25CLENBQUM7SUFFUyxZQUFZO0lBQ3RCLENBQUM7SUFFUyxnQkFBZ0I7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzsrR0E5Q1EsaUJBQWlCLGtOQVFNLG1CQUFtQjttSEFSMUMsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVU7OzBCQU9NLFFBQVE7OzBCQUNSLFFBQVE7OEJBQ21ELEtBQUs7MEJBQWhFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdEhlYWRlclNlcnZpY2V9IGZyb20gJy4uL2Fic3RyYWN0LWhlYWRlci1zZXJ2aWNlJztcbmltcG9ydCB7SGVhZGVyVHlwZX0gZnJvbSAnLi4vbW9kZWxzL2hlYWRlci10eXBlJztcbmltcG9ydCB7SGVhZGVyQ29sdW1uLCBIZWFkZXJDb2x1bW5UeXBlfSBmcm9tICcuLi9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge1Rhc2tNZXRhRmllbGR9IGZyb20gJy4vdGFzay1tZXRhLWVudW0nO1xuaW1wb3J0IHtVc2VyUHJlZmVyZW5jZVNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci1wcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtOQUVfREVGQVVMVF9IRUFERVJTfSBmcm9tICcuLi9tb2RlbHMvZGVmYXVsdC1oZWFkZXJzLXRva2VuJztcbmltcG9ydCB7Vmlld0lkU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy92aWV3LWlkLnNlcnZpY2UnO1xuaW1wb3J0IHtBbGxvd2VkTmV0c1NlcnZpY2V9IGZyb20gJy4uLy4uL2FsbG93ZWQtbmV0cy9zZXJ2aWNlcy9hbGxvd2VkLW5ldHMuc2VydmljZSc7XG5pbXBvcnQge092ZXJmbG93U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvb3ZlcmZsb3cuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhc2tIZWFkZXJTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgc3ViQWxsb3dlZE5ldHM6IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfYWxsb3dlZE5ldHNTZXJ2aWNlOiBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBvdmVyZmxvd1NlcnZpY2U6IE92ZXJmbG93U2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9ERUZBVUxUX0hFQURFUlMpIG5hZURlZmF1bHRIZWFkZXJzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIHN1cGVyKEhlYWRlclR5cGUuVEFTSywgcHJlZmVyZW5jZXMsIGxvZ2dlciwgdmlld0lkU2VydmljZSwgb3ZlcmZsb3dTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5zdWJBbGxvd2VkTmV0cyA9IF9hbGxvd2VkTmV0c1NlcnZpY2UuYWxsb3dlZE5ldHMkLnN1YnNjcmliZShhbGxvd2VkTmV0cyA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFRhc2tBbGxvd2VkTmV0cyhhbGxvd2VkTmV0cyk7XG4gICAgICAgICAgICBpZiAobmFlRGVmYXVsdEhlYWRlcnMgJiYgQXJyYXkuaXNBcnJheShuYWVEZWZhdWx0SGVhZGVycykgJiYgbmFlRGVmYXVsdEhlYWRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdERlZmF1bHRIZWFkZXJzID0gbmFlRGVmYXVsdEhlYWRlcnM7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdEhlYWRlclN0YXRlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubG9hZGluZy5vZmYoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU1ldGFIZWFkZXJzKCk6IEFycmF5PEhlYWRlckNvbHVtbj4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFRhc2tNZXRhRmllbGQuQ0FTRSwgJ2hlYWRlcnMudGFza01ldGEuY2FzZScsICd0ZXh0JyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgVGFza01ldGFGaWVsZC5DQVNFX0lELCAnaGVhZGVycy50YXNrTWV0YS5jYXNlSUQnLCAndGV4dCcsIGZhbHNlKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBUYXNrTWV0YUZpZWxkLlRBU0tfSUQsICdoZWFkZXJzLnRhc2tNZXRhLnRhc2tJRCcsICd0ZXh0JywgZmFsc2UpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFRhc2tNZXRhRmllbGQuVElUTEUsICdoZWFkZXJzLmNhc2VNZXRhLnRpdGxlJywgJ3RleHQnKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBUYXNrTWV0YUZpZWxkLlBSSU9SSVRZLCAnaGVhZGVycy50YXNrTWV0YS5wcmlvcml0eScsICdlbnVtZXJhdGlvbicpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFRhc2tNZXRhRmllbGQuVVNFUiwgJ2hlYWRlcnMudGFza01ldGEudXNlcicsICd0ZXh0JyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgVGFza01ldGFGaWVsZC5BU1NJR05fREFURSwgJ2hlYWRlcnMudGFza01ldGEuYXNzaWduRGF0ZScsICdkYXRlJyksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNhdmVTdGF0ZSgpIHtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2F2ZU5ld1N0YXRlKCkge1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXN0b3JlTGFzdFN0YXRlKCkge1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLnN1YkFsbG93ZWROZXRzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIl19
@@ -5,11 +5,12 @@ import { HeaderColumn, HeaderColumnType } from '../models/header-column';
5
5
  import { WorkflowMetaField } from './workflow-meta-enum';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../../user/services/user-preference.service";
8
- import * as i2 from "../../user/services/view-id.service";
9
- import * as i3 from "../../logger/services/logger.service";
8
+ import * as i2 from "../../logger/services/logger.service";
9
+ import * as i3 from "../../user/services/view-id.service";
10
+ import * as i4 from "../services/overflow.service";
10
11
  export class WorkflowHeaderService extends AbstractHeaderService {
11
- constructor(preferences, viewIdService, logger) {
12
- super(HeaderType.WORKFLOW, preferences, viewIdService, logger);
12
+ constructor(preferences, logger, viewIdService, overflowService) {
13
+ super(HeaderType.WORKFLOW, preferences, logger, viewIdService, overflowService);
13
14
  this.loadHeadersFromPreferences();
14
15
  this.loading.off();
15
16
  }
@@ -33,11 +34,13 @@ export class WorkflowHeaderService extends AbstractHeaderService {
33
34
  restoreLastState() {
34
35
  }
35
36
  }
36
- WorkflowHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkflowHeaderService, deps: [{ token: i1.UserPreferenceService }, { token: i2.ViewIdService, optional: true }, { token: i3.LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
37
+ WorkflowHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkflowHeaderService, deps: [{ token: i1.UserPreferenceService }, { token: i2.LoggerService }, { token: i3.ViewIdService, optional: true }, { token: i4.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
37
38
  WorkflowHeaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkflowHeaderService });
38
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkflowHeaderService, decorators: [{
39
40
  type: Injectable
40
- }], ctorParameters: function () { return [{ type: i1.UserPreferenceService }, { type: i2.ViewIdService, decorators: [{
41
+ }], ctorParameters: function () { return [{ type: i1.UserPreferenceService }, { type: i2.LoggerService }, { type: i3.ViewIdService, decorators: [{
41
42
  type: Optional
42
- }] }, { type: i3.LoggerService }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaGVhZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2hlYWRlci93b3JrZmxvdy1oZWFkZXIvd29ya2Zsb3ctaGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUd2RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFJdkQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHFCQUFxQjtJQUU1RCxZQUFZLFdBQWtDLEVBQWMsYUFBNEIsRUFBRSxNQUFxQjtRQUMzRyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVTLGlCQUFpQjtRQUN2QixPQUFPO1lBQ0gsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLENBQUM7WUFDNUcsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLENBQUM7WUFDdEcsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQzlHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxDQUFDO1lBQzFHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxDQUFDO1lBQ3hHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxDQUFDO1NBQ3hILENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsU0FBUztJQUNuQixDQUFDO0lBRVMsWUFBWTtJQUN0QixDQUFDO0lBRVMsZ0JBQWdCO0lBQzFCLENBQUM7O21IQTlCUSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkFHMEMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0SGVhZGVyU2VydmljZX0gZnJvbSAnLi4vYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UnO1xuaW1wb3J0IHtIZWFkZXJUeXBlfSBmcm9tICcuLi9tb2RlbHMvaGVhZGVyLXR5cGUnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW4sIEhlYWRlckNvbHVtblR5cGV9IGZyb20gJy4uL21vZGVscy9oZWFkZXItY29sdW1uJztcbmltcG9ydCB7VXNlclByZWZlcmVuY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3VzZXItcHJlZmVyZW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2Zsb3dNZXRhRmllbGR9IGZyb20gJy4vd29ya2Zsb3ctbWV0YS1lbnVtJztcbmltcG9ydCB7Vmlld0lkU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy92aWV3LWlkLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dIZWFkZXJTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIGNvbnN0cnVjdG9yKHByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZVNlcnZpY2UsIEBPcHRpb25hbCgpIHZpZXdJZFNlcnZpY2U6IFZpZXdJZFNlcnZpY2UsIGxvZ2dlcjogTG9nZ2VyU2VydmljZSkge1xuICAgICAgICBzdXBlcihIZWFkZXJUeXBlLldPUktGTE9XLCBwcmVmZXJlbmNlcywgdmlld0lkU2VydmljZSwgbG9nZ2VyKTtcbiAgICAgICAgdGhpcy5sb2FkSGVhZGVyc0Zyb21QcmVmZXJlbmNlcygpO1xuICAgICAgICB0aGlzLmxvYWRpbmcub2ZmKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU1ldGFIZWFkZXJzKCk6IEFycmF5PEhlYWRlckNvbHVtbj4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFdvcmtmbG93TWV0YUZpZWxkLklOSVRJQUxTLCAnaGVhZGVycy53b3JrZmxvd01ldGEuaW5pdGlhbHMnLCAndGV4dCcpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFdvcmtmbG93TWV0YUZpZWxkLlRJVExFLCAnaGVhZGVycy53b3JrZmxvd01ldGEudGl0bGUnLCAndGV4dCcpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFdvcmtmbG93TWV0YUZpZWxkLk5FVF9JRCwgJ2hlYWRlcnMud29ya2Zsb3dNZXRhLm5ldElkJywgJ3RleHQnLCBmYWxzZSksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgV29ya2Zsb3dNZXRhRmllbGQuVkVSU0lPTiwgJ2hlYWRlcnMud29ya2Zsb3dNZXRhLnZlcnNpb24nLCAndGV4dCcpLFxuICAgICAgICAgICAgbmV3IEhlYWRlckNvbHVtbihIZWFkZXJDb2x1bW5UeXBlLk1FVEEsIFdvcmtmbG93TWV0YUZpZWxkLkFVVEhPUiwgJ2hlYWRlcnMud29ya2Zsb3dNZXRhLmF1dGhvcicsICd0ZXh0JyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgV29ya2Zsb3dNZXRhRmllbGQuQ1JFQVRJT05fREFURSwgJ2hlYWRlcnMud29ya2Zsb3dNZXRhLmNyZWF0aW9uRGF0ZScsICdkYXRlJyksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNhdmVTdGF0ZSgpIHtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2F2ZU5ld1N0YXRlKCkge1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXN0b3JlTGFzdFN0YXRlKCkge1xuICAgIH1cbn1cbiJdfQ==
43
+ }] }, { type: i4.OverflowService, decorators: [{
44
+ type: Optional
45
+ }] }]; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaGVhZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2hlYWRlci93b3JrZmxvdy1oZWFkZXIvd29ya2Zsb3ctaGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUd2RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBS3ZELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxxQkFBcUI7SUFFNUQsWUFBWSxXQUFrQyxFQUNsQyxNQUFxQixFQUNULGFBQTRCLEVBQzVCLGVBQWdDO1FBQ3BELEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVTLGlCQUFpQjtRQUN2QixPQUFPO1lBQ0gsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLENBQUM7WUFDNUcsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLENBQUM7WUFDdEcsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQzlHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxDQUFDO1lBQzFHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxDQUFDO1lBQ3hHLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxDQUFDO1NBQ3hILENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsU0FBUztJQUNuQixDQUFDO0lBRVMsWUFBWTtJQUN0QixDQUFDO0lBRVMsZ0JBQWdCO0lBQzFCLENBQUM7O21IQWpDUSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkFLTSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi9hYnN0cmFjdC1oZWFkZXItc2VydmljZSc7XG5pbXBvcnQge0hlYWRlclR5cGV9IGZyb20gJy4uL21vZGVscy9oZWFkZXItdHlwZSc7XG5pbXBvcnQge0hlYWRlckNvbHVtbiwgSGVhZGVyQ29sdW1uVHlwZX0gZnJvbSAnLi4vbW9kZWxzL2hlYWRlci1jb2x1bW4nO1xuaW1wb3J0IHtVc2VyUHJlZmVyZW5jZVNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci1wcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrZmxvd01ldGFGaWVsZH0gZnJvbSAnLi93b3JrZmxvdy1tZXRhLWVudW0nO1xuaW1wb3J0IHtWaWV3SWRTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3ZpZXctaWQuc2VydmljZSc7XG5pbXBvcnQge092ZXJmbG93U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvb3ZlcmZsb3cuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0hlYWRlclNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdEhlYWRlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgY29uc3RydWN0b3IocHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBvdmVyZmxvd1NlcnZpY2U6IE92ZXJmbG93U2VydmljZSkge1xuICAgICAgICBzdXBlcihIZWFkZXJUeXBlLldPUktGTE9XLCBwcmVmZXJlbmNlcywgbG9nZ2VyLCB2aWV3SWRTZXJ2aWNlLCBvdmVyZmxvd1NlcnZpY2UpO1xuICAgICAgICB0aGlzLmxvYWRIZWFkZXJzRnJvbVByZWZlcmVuY2VzKCk7XG4gICAgICAgIHRoaXMubG9hZGluZy5vZmYoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlTWV0YUhlYWRlcnMoKTogQXJyYXk8SGVhZGVyQ29sdW1uPiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgV29ya2Zsb3dNZXRhRmllbGQuSU5JVElBTFMsICdoZWFkZXJzLndvcmtmbG93TWV0YS5pbml0aWFscycsICd0ZXh0JyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgV29ya2Zsb3dNZXRhRmllbGQuVElUTEUsICdoZWFkZXJzLndvcmtmbG93TWV0YS50aXRsZScsICd0ZXh0JyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgV29ya2Zsb3dNZXRhRmllbGQuTkVUX0lELCAnaGVhZGVycy53b3JrZmxvd01ldGEubmV0SWQnLCAndGV4dCcsIGZhbHNlKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBXb3JrZmxvd01ldGFGaWVsZC5WRVJTSU9OLCAnaGVhZGVycy53b3JrZmxvd01ldGEudmVyc2lvbicsICd0ZXh0JyksXG4gICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuTUVUQSwgV29ya2Zsb3dNZXRhRmllbGQuQVVUSE9SLCAnaGVhZGVycy53b3JrZmxvd01ldGEuYXV0aG9yJywgJ3RleHQnKSxcbiAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5NRVRBLCBXb3JrZmxvd01ldGFGaWVsZC5DUkVBVElPTl9EQVRFLCAnaGVhZGVycy53b3JrZmxvd01ldGEuY3JlYXRpb25EYXRlJywgJ2RhdGUnKSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2F2ZVN0YXRlKCkge1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzYXZlTmV3U3RhdGUoKSB7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc3RvcmVMYXN0U3RhdGUoKSB7XG4gICAgfVxufVxuIl19