@o3r/components 11.0.0-next.0 → 11.0.0-next.2

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 (114) hide show
  1. package/README.md +5 -1
  2. package/builders/component-extractor/helpers/component/component-class.extractor.d.ts +1 -1
  3. package/builders/component-extractor/helpers/component/component-class.extractor.d.ts.map +1 -1
  4. package/builders/component-extractor/helpers/component/component-class.extractor.js +1 -1
  5. package/builders/component-extractor/helpers/component/component-class.extractor.js.map +1 -1
  6. package/builders/component-extractor/helpers/component/component-config.extractor.js.map +1 -1
  7. package/builders/component-extractor/helpers/component/component.extractor.js.map +1 -1
  8. package/builders/component-extractor/helpers/component/component.parser.d.ts +1 -0
  9. package/builders/component-extractor/helpers/component/component.parser.d.ts.map +1 -1
  10. package/builders/component-extractor/helpers/component/component.parser.js +10 -8
  11. package/builders/component-extractor/helpers/component/component.parser.js.map +1 -1
  12. package/builders/component-extractor/index.d.ts.map +1 -1
  13. package/builders/component-extractor/index.js +4 -4
  14. package/builders/component-extractor/index.js.map +1 -1
  15. package/devkit/components-devkit.interface.d.ts +24 -1
  16. package/devkit/components-devkit.interface.d.ts.map +1 -1
  17. package/devkit/components-devtools.message.service.d.ts +6 -2
  18. package/devkit/components-devtools.message.service.d.ts.map +1 -1
  19. package/devkit/components-devtools.module.d.ts +2 -1
  20. package/devkit/components-devtools.module.d.ts.map +1 -1
  21. package/devkit/inspector/otter-inspector.helpers.d.ts.map +1 -1
  22. package/devkit/inspector/otter-inspector.service.d.ts.map +1 -1
  23. package/esm2022/core/rendering/helpers.mjs +1 -1
  24. package/esm2022/devkit/components-devkit.interface.mjs +3 -1
  25. package/esm2022/devkit/components-devtools.message.service.mjs +26 -7
  26. package/esm2022/devkit/components-devtools.module.mjs +11 -7
  27. package/esm2022/devkit/inspector/otter-inspector.helpers.mjs +3 -2
  28. package/esm2022/devkit/inspector/otter-inspector.service.mjs +2 -3
  29. package/esm2022/rules-engine/placeholder.action-handler.mjs +18 -14
  30. package/esm2022/rules-engine/placeholder.rules-engine.effect.mjs +22 -13
  31. package/esm2022/rules-engine/placeholder.rules-engine.module.mjs +4 -4
  32. package/esm2022/stores/placeholder-request/placeholder-request.module.mjs +4 -4
  33. package/esm2022/stores/placeholder-request/placeholder-request.reducer.mjs +1 -1
  34. package/esm2022/stores/placeholder-request/placeholder-request.state.mjs +1 -1
  35. package/esm2022/stores/placeholder-request/placeholder-request.sync.mjs +1 -1
  36. package/esm2022/stores/placeholder-template/placeholder-template.actions.mjs +3 -1
  37. package/esm2022/stores/placeholder-template/placeholder-template.module.mjs +4 -4
  38. package/esm2022/stores/placeholder-template/placeholder-template.reducer.mjs +10 -2
  39. package/esm2022/stores/placeholder-template/placeholder-template.selectors.mjs +2 -1
  40. package/esm2022/stores/placeholder-template/placeholder-template.state.mjs +1 -1
  41. package/esm2022/stores/placeholder-template/placeholder-template.sync.mjs +1 -1
  42. package/esm2022/tools/component-replacement/c11n.directive.mjs +8 -6
  43. package/esm2022/tools/component-replacement/c11n.helpers.mjs +1 -1
  44. package/esm2022/tools/component-replacement/c11n.mock.module.mjs +10 -10
  45. package/esm2022/tools/component-replacement/c11n.module.mjs +5 -5
  46. package/esm2022/tools/component-replacement/c11n.service.mjs +4 -4
  47. package/esm2022/tools/pipes/capitalize/capitalize.module.mjs +8 -5
  48. package/esm2022/tools/pipes/capitalize/capitalize.pipe.mjs +16 -5
  49. package/esm2022/tools/pipes/duration/duration.module.mjs +8 -5
  50. package/esm2022/tools/pipes/duration/duration.pipe.mjs +17 -5
  51. package/esm2022/tools/pipes/keep-white-space/keep-white-space.module.mjs +8 -5
  52. package/esm2022/tools/pipes/keep-white-space/keep-white-space.pipe.mjs +19 -7
  53. package/esm2022/tools/pipes/replace-with-bold/replace-with-bold.module.mjs +8 -5
  54. package/esm2022/tools/pipes/replace-with-bold/replace-with-bold.pipe.mjs +23 -9
  55. package/esm2022/tools/placeholder/placeholder.component.mjs +11 -13
  56. package/esm2022/tools/placeholder/placeholder.module.mjs +5 -5
  57. package/fesm2022/o3r-components-rules-engine.mjs +42 -29
  58. package/fesm2022/o3r-components-rules-engine.mjs.map +1 -1
  59. package/fesm2022/o3r-components.mjs +560 -467
  60. package/fesm2022/o3r-components.mjs.map +1 -1
  61. package/migration.json +10 -0
  62. package/package.json +39 -28
  63. package/rules-engine/placeholder.action-handler.d.ts +7 -6
  64. package/rules-engine/placeholder.action-handler.d.ts.map +1 -1
  65. package/rules-engine/placeholder.rules-engine.effect.d.ts.map +1 -1
  66. package/schemas/placeholder-template.schema.json +9 -1
  67. package/schematics/cms-adapter/index.d.ts +2 -3
  68. package/schematics/cms-adapter/index.d.ts.map +1 -1
  69. package/schematics/cms-adapter/index.js +7 -3
  70. package/schematics/cms-adapter/index.js.map +1 -1
  71. package/schematics/ng-add/index.d.ts +1 -1
  72. package/schematics/ng-add/index.d.ts.map +1 -1
  73. package/schematics/ng-add/index.js +60 -40
  74. package/schematics/ng-add/index.js.map +1 -1
  75. package/schematics/ng-add/schema.d.ts +2 -0
  76. package/schematics/ng-add/schema.d.ts.map +1 -1
  77. package/schematics/ng-add/schema.json +5 -0
  78. package/schematics/ng-update/v10-0/index.d.ts +6 -0
  79. package/schematics/ng-update/v10-0/index.d.ts.map +1 -0
  80. package/schematics/ng-update/v10-0/index.js +63 -0
  81. package/schematics/ng-update/v10-0/index.js.map +1 -0
  82. package/stores/placeholder-request/placeholder-request.state.d.ts +1 -0
  83. package/stores/placeholder-request/placeholder-request.state.d.ts.map +1 -1
  84. package/stores/placeholder-template/placeholder-template.actions.d.ts +6 -1
  85. package/stores/placeholder-template/placeholder-template.actions.d.ts.map +1 -1
  86. package/stores/placeholder-template/placeholder-template.reducer.d.ts.map +1 -1
  87. package/stores/placeholder-template/placeholder-template.selectors.d.ts +1 -0
  88. package/stores/placeholder-template/placeholder-template.selectors.d.ts.map +1 -1
  89. package/stores/placeholder-template/placeholder-template.state.d.ts +3 -0
  90. package/stores/placeholder-template/placeholder-template.state.d.ts.map +1 -1
  91. package/tools/component-replacement/c11n.directive.d.ts +4 -4
  92. package/tools/component-replacement/c11n.directive.d.ts.map +1 -1
  93. package/tools/component-replacement/c11n.helpers.d.ts +2 -2
  94. package/tools/component-replacement/c11n.helpers.d.ts.map +1 -1
  95. package/tools/component-replacement/c11n.service.d.ts +3 -3
  96. package/tools/component-replacement/c11n.service.d.ts.map +1 -1
  97. package/tools/pipes/capitalize/capitalize.module.d.ts +3 -0
  98. package/tools/pipes/capitalize/capitalize.module.d.ts.map +1 -1
  99. package/tools/pipes/capitalize/capitalize.pipe.d.ts +8 -1
  100. package/tools/pipes/capitalize/capitalize.pipe.d.ts.map +1 -1
  101. package/tools/pipes/duration/duration.module.d.ts +3 -0
  102. package/tools/pipes/duration/duration.module.d.ts.map +1 -1
  103. package/tools/pipes/duration/duration.pipe.d.ts +9 -1
  104. package/tools/pipes/duration/duration.pipe.d.ts.map +1 -1
  105. package/tools/pipes/keep-white-space/keep-white-space.module.d.ts +3 -0
  106. package/tools/pipes/keep-white-space/keep-white-space.module.d.ts.map +1 -1
  107. package/tools/pipes/keep-white-space/keep-white-space.pipe.d.ts +8 -1
  108. package/tools/pipes/keep-white-space/keep-white-space.pipe.d.ts.map +1 -1
  109. package/tools/pipes/replace-with-bold/replace-with-bold.module.d.ts +3 -0
  110. package/tools/pipes/replace-with-bold/replace-with-bold.module.d.ts.map +1 -1
  111. package/tools/pipes/replace-with-bold/replace-with-bold.pipe.d.ts +8 -1
  112. package/tools/pipes/replace-with-bold/replace-with-bold.pipe.d.ts.map +1 -1
  113. package/tools/placeholder/placeholder.component.d.ts +5 -3
  114. package/tools/placeholder/placeholder.component.d.ts.map +1 -1
@@ -1,16 +1,20 @@
1
1
  import { Inject, Injectable, Optional } from '@angular/core';
2
2
  import { filterMessageContent, sendOtterMessage } from '@o3r/core';
3
3
  import { LoggerService } from '@o3r/logger';
4
+ import { Store } from '@ngrx/store';
4
5
  import { firstValueFrom, fromEvent, Subscription } from 'rxjs';
5
6
  import { filter } from 'rxjs/operators';
7
+ import { togglePlaceholderModeTemplate } from '../stores';
6
8
  import { isComponentsMessage } from './components-devkit.interface';
7
9
  import { OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS, OTTER_COMPONENTS_DEVTOOLS_OPTIONS } from './components-devtools.token';
8
10
  import { OtterInspectorService } from './inspector';
9
11
  import * as i0 from "@angular/core";
10
12
  import * as i1 from "@o3r/logger";
13
+ import * as i2 from "@ngrx/store";
11
14
  export class ComponentsDevtoolsMessageService {
12
- constructor(logger, options) {
15
+ constructor(logger, store, options) {
13
16
  this.logger = logger;
17
+ this.store = store;
14
18
  this.subscriptions = new Subscription();
15
19
  this.sendMessage = (sendOtterMessage);
16
20
  this.options = {
@@ -38,14 +42,25 @@ export class ComponentsDevtoolsMessageService {
38
42
  this.sendMessage('selectedComponentInfo', selectComponentInfo);
39
43
  }
40
44
  }
45
+ sendIsComponentSelectionAvailable() {
46
+ this.sendMessage('isComponentSelectionAvailable', { available: !!window.ng });
47
+ }
41
48
  /**
42
49
  * Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension
43
50
  * @param only restricted list of messages to re-send
44
51
  */
45
52
  handleReEmitRequest(only) {
46
- if (!only || only.includes('selectedComponentInfo')) {
53
+ if (!only) {
54
+ void this.sendCurrentSelectedComponent();
55
+ this.sendIsComponentSelectionAvailable();
56
+ return;
57
+ }
58
+ if (only.includes('selectedComponentInfo')) {
47
59
  void this.sendCurrentSelectedComponent();
48
60
  }
61
+ if (only.includes('isComponentSelectionAvailable')) {
62
+ this.sendIsComponentSelectionAvailable();
63
+ }
49
64
  }
50
65
  /**
51
66
  * Function to handle the incoming messages from Otter Chrome DevTools extension
@@ -67,6 +82,10 @@ export class ComponentsDevtoolsMessageService {
67
82
  this.inspectorService.toggleInspector(message.isRunning);
68
83
  break;
69
84
  }
85
+ case 'placeholderMode': {
86
+ this.store.dispatch(togglePlaceholderModeTemplate({ mode: message.mode }));
87
+ break;
88
+ }
70
89
  default: {
71
90
  this.logger.warn('Message ignored by the components service', message);
72
91
  }
@@ -83,18 +102,18 @@ export class ComponentsDevtoolsMessageService {
83
102
  ngOnDestroy() {
84
103
  this.subscriptions.unsubscribe();
85
104
  }
86
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ComponentsDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
87
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ComponentsDevtoolsMessageService, providedIn: 'root' }); }
105
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: i2.Store }, { token: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
106
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsMessageService, providedIn: 'root' }); }
88
107
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ComponentsDevtoolsMessageService, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsMessageService, decorators: [{
90
109
  type: Injectable,
91
110
  args: [{
92
111
  providedIn: 'root'
93
112
  }]
94
- }], ctorParameters: () => [{ type: i1.LoggerService }, { type: undefined, decorators: [{
113
+ }], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.Store }, { type: undefined, decorators: [{
95
114
  type: Optional
96
115
  }, {
97
116
  type: Inject,
98
117
  args: [OTTER_COMPONENTS_DEVTOOLS_OPTIONS]
99
118
  }] }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2NvbXBvbmVudHMtZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQTRCLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQW9HLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEssT0FBTyxFQUFFLHlDQUF5QyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0gsT0FBTyxFQUFFLHFCQUFxQixFQUEwQixNQUFNLGFBQWEsQ0FBQzs7O0FBSzVFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFRM0MsWUFDcUIsTUFBcUIsRUFDaUIsT0FBMEM7UUFEaEYsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQU56QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHbkMsZ0JBQVcsR0FBRyxDQUFBLGdCQUFvRCxDQUFBLENBQUM7UUFLbEYsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcseUNBQXlDO1lBQzVDLEdBQUcsT0FBTztTQUNYLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZ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QUVQLGdDQUFnQztrQkFINUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVdNLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2UsIGZpbHRlck1lc3NhZ2VDb250ZW50LCBzZW5kT3R0ZXJNZXNzYWdlIH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICdAbzNyL2xvZ2dlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF2YWlsYWJsZUNvbXBvbmVudHNNZXNzYWdlQ29udGVudHMsIENvbXBvbmVudHNEZXZ0b29sc1NlcnZpY2VPcHRpb25zLCBDb21wb25lbnRzTWVzc2FnZURhdGFUeXBlcywgaXNDb21wb25lbnRzTWVzc2FnZSB9IGZyb20gJy4vY29tcG9uZW50cy1kZXZraXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9UVEVSX0NPTVBPTkVOVFNfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLCBPVFRFUl9DT01QT05FTlRTX0RFVlRPT0xTX09QVElPTlMgfSBmcm9tICcuL2NvbXBvbmVudHMtZGV2dG9vbHMudG9rZW4nO1xuaW1wb3J0IHsgT3R0ZXJJbnNwZWN0b3JTZXJ2aWNlLCBPdHRlckxpa2VDb21wb25lbnRJbmZvIH0gZnJvbSAnLi9pbnNwZWN0b3InO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzRGV2dG9vbHNNZXNzYWdlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgRGV2dG9vbHNTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBDb21wb25lbnRzRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucztcblxuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5zcGVjdG9yU2VydmljZTogT3R0ZXJJbnNwZWN0b3JTZXJ2aWNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VuZE1lc3NhZ2UgPSBzZW5kT3R0ZXJNZXNzYWdlPEF2YWlsYWJsZUNvbXBvbmVudHNNZXNzYWdlQ29udGVudHM+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9UVEVSX0NPTVBPTkVOVFNfREVWVE9PTFNfT1BUSU9OUykgb3B0aW9ucz86IENvbXBvbmVudHNEZXZ0b29sc1NlcnZpY2VPcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19ERUZBVUxUX09QVElPTlMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIHRoaXMuaW5zcGVjdG9yU2VydmljZSA9IG5ldyBPdHRlckluc3BlY3RvclNlcnZpY2UoKTtcbiAgICBpZiAodGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gY29ubmVjdCB0aGUgcGx1Z2luIHRvIHRoZSBPdHRlciBEZXZUb29scyBleHRlbnNpb25cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY29ubmVjdFBsdWdpbigpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnT3R0ZXIgRGV2VG9vbHMgaXMgcGx1Z2dlZCB0byBjb21wb25lbnRzIHNlcnZpY2Ugb2YgdGhlIGFwcGxpY2F0aW9uJyk7XG4gICAgY29uc3Qgc2VsZWN0Q29tcG9uZW50SW5mbyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaW5zcGVjdG9yU2VydmljZS5vdHRlckxpa2VDb21wb25lbnRJbmZvVG9CZVNlbnQkKTtcbiAgICBpZiAoc2VsZWN0Q29tcG9uZW50SW5mbykge1xuICAgICAgYXdhaXQgdGhpcy5zZW5kQ3VycmVudFNlbGVjdGVkQ29tcG9uZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZW5kQ3VycmVudFNlbGVjdGVkQ29tcG9uZW50KCkge1xuICAgIGNvbnN0IHNlbGVjdENvbXBvbmVudEluZm8gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmluc3BlY3RvclNlcnZpY2Uub3R0ZXJMaWtlQ29tcG9uZW50SW5mb1RvQmVTZW50JCk7XG4gICAgaWYgKHNlbGVjdENvbXBvbmVudEluZm8pIHtcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ3NlbGVjdGVkQ29tcG9uZW50SW5mbycsIHNlbGVjdENvbXBvbmVudEluZm8pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byB0cmlnZ2VyIGEgcmUtc2VuZCBhIHJlcXVlc3RlZCBtZXNzYWdlcyB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gb25seSByZXN0cmljdGVkIGxpc3Qgb2YgbWVzc2FnZXMgdG8gcmUtc2VuZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVSZUVtaXRSZXF1ZXN0KG9ubHk/OiBDb21wb25lbnRzTWVzc2FnZURhdGFUeXBlc1tdKSB7XG4gICAgaWYgKCFvbmx5IHx8IG9ubHkuaW5jbHVkZXMoJ3NlbGVjdGVkQ29tcG9uZW50SW5mbycpKSB7XG4gICAgICB2b2lkIHRoaXMuc2VuZEN1cnJlbnRTZWxlY3RlZENvbXBvbmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBoYW5kbGUgdGhlIGluY29taW5nIG1lc3NhZ2VzIGZyb20gT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gZXZlbnQgRXZlbnQgY29taW5nIGZyb20gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRXZlbnRzKG1lc3NhZ2U6IEF2YWlsYWJsZUNvbXBvbmVudHNNZXNzYWdlQ29udGVudHMpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTWVzc2FnZSBoYW5kbGluZyBieSB0aGUgY29tcG9uZW50cyBzZXJ2aWNlJywgbWVzc2FnZSk7XG5cbiAgICBzd2l0Y2ggKG1lc3NhZ2UuZGF0YVR5cGUpIHtcbiAgICAgIGNhc2UgJ2Nvbm5lY3QnOiB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29ubmVjdFBsdWdpbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3JlcXVlc3RNZXNzYWdlcyc6IHtcbiAgICAgICAgdGhpcy5oYW5kbGVSZUVtaXRSZXF1ZXN0KG1lc3NhZ2Uub25seSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAndG9nZ2xlSW5zcGVjdG9yJzoge1xuICAgICAgICB0aGlzLmluc3BlY3RvclNlcnZpY2UudG9nZ2xlSW5zcGVjdG9yKG1lc3NhZ2UuaXNSdW5uaW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ01lc3NhZ2UgaWdub3JlZCBieSB0aGUgY29tcG9uZW50cyBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21lc3NhZ2UnKS5waXBlKGZpbHRlck1lc3NhZ2VDb250ZW50KGlzQ29tcG9uZW50c01lc3NhZ2UpKS5zdWJzY3JpYmUoKGUpID0+IHRoaXMuaGFuZGxlRXZlbnRzKGUpKVxuICAgICk7XG5cbiAgICB0aGlzLmluc3BlY3RvclNlcnZpY2UucHJlcGFyZUluc3BlY3RvcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmluc3BlY3RvclNlcnZpY2Uub3R0ZXJMaWtlQ29tcG9uZW50SW5mb1RvQmVTZW50JFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGluZm8pOiBpbmZvIGlzIE90dGVyTGlrZUNvbXBvbmVudEluZm8gPT4gISFpbmZvKVxuICAgICAgICApLnN1YnNjcmliZShcbiAgICAgICAgICAoaW5mbykgPT4gdGhpcy5zZW5kTWVzc2FnZSgnc2VsZWN0ZWRDb21wb25lbnRJbmZvJywgaW5mbylcbiAgICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2NvbXBvbmVudHMtZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQTRCLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBaUMsNkJBQTZCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekYsT0FBTyxFQUFvRyxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RLLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNILE9BQU8sRUFBRSxxQkFBcUIsRUFBMEIsTUFBTSxhQUFhLENBQUM7Ozs7QUFLNUUsTUFBTSxPQUFPLGdDQUFnQztJQVEzQyxZQUNtQixNQUFxQixFQUNyQixLQUFzQyxFQUNBLE9BQTBDO1FBRmhGLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsVUFBSyxHQUFMLEtBQUssQ0FBaUM7UUFQeEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR25DLGdCQUFXLEdBQUcsQ0FBQSxnQkFBb0QsQ0FBQSxDQUFDO1FBT2xGLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLHlD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Q0FBQyxDQUFDO1lBQ3pFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNwSCxDQUFDO1FBRUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywrQkFBK0I7YUFDbEQsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBa0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDekQsQ0FBQyxTQUFTLENBQ1QsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQzFELENBQ0osQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztpSUFuSFUsZ0NBQWdDLG9FQVdyQixpQ0FBaUM7cUlBWDVDLGdDQUFnQyxjQUYvQixNQUFNOzsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFZSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGV2dG9vbHNTZXJ2aWNlSW50ZXJmYWNlLCBmaWx0ZXJNZXNzYWdlQ29udGVudCwgc2VuZE90dGVyTWVzc2FnZSB9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHR5cGUgUGxhY2Vob2xkZXJUZW1wbGF0ZVN0YXRlLCB0b2dnbGVQbGFjZWhvbGRlck1vZGVUZW1wbGF0ZSB9IGZyb20gJy4uL3N0b3Jlcyc7XG5pbXBvcnQgeyBBdmFpbGFibGVDb21wb25lbnRzTWVzc2FnZUNvbnRlbnRzLCBDb21wb25lbnRzRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucywgQ29tcG9uZW50c01lc3NhZ2VEYXRhVHlwZXMsIGlzQ29tcG9uZW50c01lc3NhZ2UgfSBmcm9tICcuL2NvbXBvbmVudHMtZGV2a2l0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBPVFRFUl9DT01QT05FTlRTX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19PUFRJT05TIH0gZnJvbSAnLi9jb21wb25lbnRzLWRldnRvb2xzLnRva2VuJztcbmltcG9ydCB7IE90dGVySW5zcGVjdG9yU2VydmljZSwgT3R0ZXJMaWtlQ29tcG9uZW50SW5mbyB9IGZyb20gJy4vaW5zcGVjdG9yJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50c0RldnRvb2xzTWVzc2FnZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIERldnRvb2xzU2VydmljZUludGVyZmFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ29tcG9uZW50c0RldnRvb2xzU2VydmljZU9wdGlvbnM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluc3BlY3RvclNlcnZpY2U6IE90dGVySW5zcGVjdG9yU2VydmljZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlbmRNZXNzYWdlID0gc2VuZE90dGVyTWVzc2FnZTxBdmFpbGFibGVDb21wb25lbnRzTWVzc2FnZUNvbnRlbnRzPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxQbGFjZWhvbGRlclRlbXBsYXRlU3RhdGU+LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19PUFRJT05TKSBvcHRpb25zPzogQ29tcG9uZW50c0RldnRvb2xzU2VydmljZU9wdGlvbnNcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19ERUZBVUxUX09QVElPTlMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIHRoaXMuaW5zcGVjdG9yU2VydmljZSA9IG5ldyBPdHRlckluc3BlY3RvclNlcnZpY2UoKTtcbiAgICBpZiAodGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gY29ubmVjdCB0aGUgcGx1Z2luIHRvIHRoZSBPdHRlciBEZXZUb29scyBleHRlbnNpb25cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY29ubmVjdFBsdWdpbigpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnT3R0ZXIgRGV2VG9vbHMgaXMgcGx1Z2dlZCB0byBjb21wb25lbnRzIHNlcnZpY2Ugb2YgdGhlIGFwcGxpY2F0aW9uJyk7XG4gICAgY29uc3Qgc2VsZWN0Q29tcG9uZW50SW5mbyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaW5zcGVjdG9yU2VydmljZS5vdHRlckxpa2VDb21wb25lbnRJbmZvVG9CZVNlbnQkKTtcbiAgICBpZiAoc2VsZWN0Q29tcG9uZW50SW5mbykge1xuICAgICAgYXdhaXQgdGhpcy5zZW5kQ3VycmVudFNlbGVjdGVkQ29tcG9uZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZW5kQ3VycmVudFNlbGVjdGVkQ29tcG9uZW50KCkge1xuICAgIGNvbnN0IHNlbGVjdENvbXBvbmVudEluZm8gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmluc3BlY3RvclNlcnZpY2Uub3R0ZXJMaWtlQ29tcG9uZW50SW5mb1RvQmVTZW50JCk7XG4gICAgaWYgKHNlbGVjdENvbXBvbmVudEluZm8pIHtcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ3NlbGVjdGVkQ29tcG9uZW50SW5mbycsIHNlbGVjdENvbXBvbmVudEluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VuZElzQ29tcG9uZW50U2VsZWN0aW9uQXZhaWxhYmxlKCkge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ2lzQ29tcG9uZW50U2VsZWN0aW9uQXZhaWxhYmxlJywgeyBhdmFpbGFibGU6ICEhKHdpbmRvdyBhcyBhbnkpLm5nIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIHRyaWdnZXIgYSByZS1zZW5kIGEgcmVxdWVzdGVkIG1lc3NhZ2VzIHRvIHRoZSBPdHRlciBDaHJvbWUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSBvbmx5IHJlc3RyaWN0ZWQgbGlzdCBvZiBtZXNzYWdlcyB0byByZS1zZW5kXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVJlRW1pdFJlcXVlc3Qob25seT86IENvbXBvbmVudHNNZXNzYWdlRGF0YVR5cGVzW10pIHtcbiAgICBpZiAoIW9ubHkpIHtcbiAgICAgIHZvaWQgdGhpcy5zZW5kQ3VycmVudFNlbGVjdGVkQ29tcG9uZW50KCk7XG4gICAgICB0aGlzLnNlbmRJc0NvbXBvbmVudFNlbGVjdGlvbkF2YWlsYWJsZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAob25seS5pbmNsdWRlcygnc2VsZWN0ZWRDb21wb25lbnRJbmZvJykpIHtcbiAgICAgIHZvaWQgdGhpcy5zZW5kQ3VycmVudFNlbGVjdGVkQ29tcG9uZW50KCk7XG4gICAgfVxuICAgIGlmIChvbmx5LmluY2x1ZGVzKCdpc0NvbXBvbmVudFNlbGVjdGlvbkF2YWlsYWJsZScpKSB7XG4gICAgICB0aGlzLnNlbmRJc0NvbXBvbmVudFNlbGVjdGlvbkF2YWlsYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBoYW5kbGUgdGhlIGluY29taW5nIG1lc3NhZ2VzIGZyb20gT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gZXZlbnQgRXZlbnQgY29taW5nIGZyb20gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRXZlbnRzKG1lc3NhZ2U6IEF2YWlsYWJsZUNvbXBvbmVudHNNZXNzYWdlQ29udGVudHMpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTWVzc2FnZSBoYW5kbGluZyBieSB0aGUgY29tcG9uZW50cyBzZXJ2aWNlJywgbWVzc2FnZSk7XG5cbiAgICBzd2l0Y2ggKG1lc3NhZ2UuZGF0YVR5cGUpIHtcbiAgICAgIGNhc2UgJ2Nvbm5lY3QnOiB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29ubmVjdFBsdWdpbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3JlcXVlc3RNZXNzYWdlcyc6IHtcbiAgICAgICAgdGhpcy5oYW5kbGVSZUVtaXRSZXF1ZXN0KG1lc3NhZ2Uub25seSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAndG9nZ2xlSW5zcGVjdG9yJzoge1xuICAgICAgICB0aGlzLmluc3BlY3RvclNlcnZpY2UudG9nZ2xlSW5zcGVjdG9yKG1lc3NhZ2UuaXNSdW5uaW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdwbGFjZWhvbGRlck1vZGUnOiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godG9nZ2xlUGxhY2Vob2xkZXJNb2RlVGVtcGxhdGUoeyBtb2RlOiBtZXNzYWdlLm1vZGUgfSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignTWVzc2FnZSBpZ25vcmVkIGJ5IHRoZSBjb21wb25lbnRzIHNlcnZpY2UnLCBtZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnbWVzc2FnZScpLnBpcGUoZmlsdGVyTWVzc2FnZUNvbnRlbnQoaXNDb21wb25lbnRzTWVzc2FnZSkpLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5oYW5kbGVFdmVudHMoZSkpXG4gICAgKTtcblxuICAgIHRoaXMuaW5zcGVjdG9yU2VydmljZS5wcmVwYXJlSW5zcGVjdG9yKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuaW5zcGVjdG9yU2VydmljZS5vdHRlckxpa2VDb21wb25lbnRJbmZvVG9CZVNlbnQkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoaW5mbyk6IGluZm8gaXMgT3R0ZXJMaWtlQ29tcG9uZW50SW5mbyA9PiAhIWluZm8pXG4gICAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAgIChpbmZvKSA9PiB0aGlzLnNlbmRNZXNzYWdlKCdzZWxlY3RlZENvbXBvbmVudEluZm8nLCBpbmZvKVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { StoreModule } from '@ngrx/store';
3
+ import { PlaceholderTemplateStoreModule } from '../stores/placeholder-template/placeholder-template.module';
3
4
  import { ComponentsDevtoolsMessageService } from './components-devtools.message.service';
4
5
  import { OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS, OTTER_COMPONENTS_DEVTOOLS_OPTIONS } from './components-devtools.token';
5
6
  import * as i0 from "@angular/core";
@@ -17,18 +18,21 @@ export class ComponentsDevtoolsModule {
17
18
  ]
18
19
  };
19
20
  }
20
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ComponentsDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: ComponentsDevtoolsModule, imports: [StoreModule] }); }
22
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ComponentsDevtoolsModule, providers: [
21
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsModule, imports: [StoreModule,
23
+ PlaceholderTemplateStoreModule] }); }
24
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsModule, providers: [
23
25
  { provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS },
24
26
  ComponentsDevtoolsMessageService
25
- ], imports: [StoreModule] }); }
27
+ ], imports: [StoreModule,
28
+ PlaceholderTemplateStoreModule] }); }
26
29
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ComponentsDevtoolsModule, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsModule, decorators: [{
28
31
  type: NgModule,
29
32
  args: [{
30
33
  imports: [
31
- StoreModule
34
+ StoreModule,
35
+ PlaceholderTemplateStoreModule
32
36
  ],
33
37
  providers: [
34
38
  { provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS },
@@ -36,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
36
40
  ]
37
41
  }]
38
42
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy1kZXZ0b29scy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2NvbXBvbmVudHMtZGV2dG9vbHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekYsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBVzNILE1BQU0sT0FBTyx3QkFBd0I7SUFFbkM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFrRDtRQUN6RSxPQUFPO1lBQ0wsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLEVBQUMsR0FBRyx5Q0FBeUMsRUFBRSxHQUFHLE9BQU8sRUFBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7Z0JBQ2xJLGdDQUFnQzthQUNqQztTQUNGLENBQUM7SUFDSixDQUFDO2lJQWRVLHdCQUF3QjtrSUFBeEIsd0JBQXdCLFlBUGpDLFdBQVc7a0lBT0Ysd0JBQXdCLGFBTHhCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLHlDQUF5QyxFQUFFO1lBQ25HLGdDQUFnQztTQUNqQyxZQUxDLFdBQVc7OzJGQU9GLHdCQUF3QjtrQkFUcEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVztxQkFDWjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLHlDQUF5QyxFQUFFO3dCQUNuRyxnQ0FBZ0M7cUJBQ2pDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRzRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJy4vY29tcG9uZW50cy1kZXZraXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbXBvbmVudHNEZXZ0b29sc01lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnRzLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPVFRFUl9DT01QT05FTlRTX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19PUFRJT05TIH0gZnJvbSAnLi9jb21wb25lbnRzLWRldnRvb2xzLnRva2VuJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFN0b3JlTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19PUFRJT05TLCB1c2VWYWx1ZTogT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19ERUZBVUxUX09QVElPTlMgfSxcbiAgICBDb21wb25lbnRzRGV2dG9vbHNNZXNzYWdlU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNEZXZ0b29sc01vZHVsZSB7XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgT3R0ZXIgRGV2dG9vbHNcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW5zdHJ1bWVudChvcHRpb25zOiBQYXJ0aWFsPENvbXBvbmVudHNEZXZ0b29sc1NlcnZpY2VPcHRpb25zPik6IE1vZHVsZVdpdGhQcm92aWRlcnM8Q29tcG9uZW50c0RldnRvb2xzTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBDb21wb25lbnRzRGV2dG9vbHNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBPVFRFUl9DT01QT05FTlRTX0RFVlRPT0xTX09QVElPTlMsIHVzZVZhbHVlOiB7Li4uT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19ERUZBVUxUX09QVElPTlMsIC4uLm9wdGlvbnN9LCBtdWx0aTogZmFsc2UgfSxcbiAgICAgICAgQ29tcG9uZW50c0RldnRvb2xzTWVzc2FnZVNlcnZpY2VcbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy1kZXZ0b29scy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2NvbXBvbmVudHMtZGV2dG9vbHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFNUcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekYsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBWTNILE1BQU0sT0FBTyx3QkFBd0I7SUFFbkM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFrRDtRQUN6RSxPQUFPO1lBQ0wsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLEVBQUMsR0FBRyx5Q0FBeUMsRUFBRSxHQUFHLE9BQU8sRUFBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7Z0JBQ2xJLGdDQUFnQzthQUNqQztTQUNGLENBQUM7SUFDSixDQUFDO2lJQWRVLHdCQUF3QjtrSUFBeEIsd0JBQXdCLFlBUmpDLFdBQVc7WUFDWCw4QkFBOEI7a0lBT3JCLHdCQUF3QixhQUx4QjtZQUNULEVBQUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLFFBQVEsRUFBRSx5Q0FBeUMsRUFBRTtZQUNuRyxnQ0FBZ0M7U0FDakMsWUFOQyxXQUFXO1lBQ1gsOEJBQThCOzsyRkFPckIsd0JBQXdCO2tCQVZwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxXQUFXO3dCQUNYLDhCQUE4QjtxQkFDL0I7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLFFBQVEsRUFBRSx5Q0FBeUMsRUFBRTt3QkFDbkcsZ0NBQWdDO3FCQUNqQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFBsYWNlaG9sZGVyVGVtcGxhdGVTdG9yZU1vZHVsZSB9IGZyb20gJy4uL3N0b3Jlcy9wbGFjZWhvbGRlci10ZW1wbGF0ZS9wbGFjZWhvbGRlci10ZW1wbGF0ZS5tb2R1bGUnO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRzRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJy4vY29tcG9uZW50cy1kZXZraXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbXBvbmVudHNEZXZ0b29sc01lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnRzLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPVFRFUl9DT01QT05FTlRTX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19PUFRJT05TIH0gZnJvbSAnLi9jb21wb25lbnRzLWRldnRvb2xzLnRva2VuJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFN0b3JlTW9kdWxlLFxuICAgIFBsYWNlaG9sZGVyVGVtcGxhdGVTdG9yZU1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE9UVEVSX0NPTVBPTkVOVFNfREVWVE9PTFNfT1BUSU9OUywgdXNlVmFsdWU6IE9UVEVSX0NPTVBPTkVOVFNfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TIH0sXG4gICAgQ29tcG9uZW50c0RldnRvb2xzTWVzc2FnZVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzRGV2dG9vbHNNb2R1bGUge1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIE90dGVyIERldnRvb2xzXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGluc3RydW1lbnQob3B0aW9uczogUGFydGlhbDxDb21wb25lbnRzRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucz4pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPENvbXBvbmVudHNEZXZ0b29sc01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQ29tcG9uZW50c0RldnRvb2xzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogT1RURVJfQ09NUE9ORU5UU19ERVZUT09MU19PUFRJT05TLCB1c2VWYWx1ZTogey4uLk9UVEVSX0NPTVBPTkVOVFNfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zfSwgbXVsdGk6IGZhbHNlIH0sXG4gICAgICAgIENvbXBvbmVudHNEZXZ0b29sc01lc3NhZ2VTZXJ2aWNlXG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -104,10 +104,11 @@ export const getOtterLikeComponentInfo = (componentClassInstance, host) => {
104
104
  const translations = getTranslations(host);
105
105
  const analytics = getAnalyticEvents(host);
106
106
  return {
107
- componentName: componentClassInstance.constructor.name,
107
+ // Cannot use anymore `constructor.name` else all components are named `_a`
108
+ componentName: componentClassInstance.constructor.ɵcmp?.debugInfo?.className || componentClassInstance.constructor.name,
108
109
  configId,
109
110
  translations,
110
111
  analytics
111
112
  };
112
113
  };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3R0ZXItaW5zcGVjdG9yLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGV2a2l0L2luc3BlY3Rvci9vdHRlci1pbnNwZWN0b3IuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFlekQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQWdDLEVBQW1CLEVBQUU7SUFDL0UsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQWEsRUFBRSxFQUFFO0lBQzNDLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsUUFBUSxDQUFDO0FBQzVELENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQW9CLEVBQUUsR0FBOEI7SUFDckYsTUFBTSxlQUFlLEdBQUksTUFBYyxDQUFDLEVBQUUsQ0FBQztJQUMzQyxNQUFNLGVBQWUsR0FBMEMsZ0JBQWdCLENBQUM7SUFDaEYsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUM3QixPQUFPO0tBQ1I7SUFDRCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sZUFBZSxHQUE2QyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcs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TUFBTSxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxlQUFlLENBQUM7U0FDekM7S0FDRjtJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3pELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFvQixFQUF3QyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFFL0k7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLHNCQUEyQixFQUFFLElBQWEsRUFBMEIsRUFBRTtJQUM5RyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTztRQUNMLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUN0RCxRQUFRO1FBQ1IsWUFBWTtRQUNaLFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvdHRlckNvbXBvbmVudEluZm9Qcm9wZXJ0eU5hbWV9IGZyb20gJ0BvM3IvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3R0ZXJMaWtlQ29tcG9uZW50SW5mbyB7XG4gIC8qKiBDb250YWluZXIgaW5mb3JtYXRpb24gKi9cbiAgY29udGFpbmVyPzogT3R0ZXJMaWtlQ29tcG9uZW50SW5mbztcbiAgLyoqIENvbmZpZ3VyYXRpb24gSUQgKi9cbiAgY29uZmlnSWQ/OiBzdHJpbmc7XG4gIC8qKiBDb21wb25lbnQgbmFtZSAqL1xuICBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gIC8qKiBDb21wb25lbnQgdHJhbnNsYXRpb24gKi9cbiAgdHJhbnNsYXRpb25zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAvKiogQ29tcG9uZW50IGFuYWx5dGljcyAqL1xuICBhbmFseXRpY3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG59XG5cbi8qKlxuICogT3R0ZXIgaW5zcGVjdG9yIGNzcyBjbGFzc1xuICovXG5leHBvcnQgY29uc3QgSU5TUEVDVE9SX0NMQVNTID0gJ290dGVyLWRldnRvb2xzLWluc3BlY3Rvcic7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgbm9kZSBpcyBhbiBPdHRlciBjb250YWluZXJcbiAqIEBwYXJhbSBub2RlIEVsZW1lbnQgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG5vZGUgaXMgYW4gT3R0ZXIgY29udGFpbmVyXG4gKi9cbmV4cG9ydCBjb25zdCBpc0NvbnRhaW5lciA9IChub2RlOiBFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCk6IG5vZGUgaXMgRWxlbWVudCA9PiB7XG4gIHJldHVybiAhIW5vZGU/LnRhZ05hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnY29udCcpO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgdGhlIGNvbmZpZyBpZCBvZiBhIGNvbXBvbmVudCBpbnN0YW5jZVxuICogQHBhcmFtIGluc3RhbmNlIGNvbXBvbmVudCBpbnN0YW5jZVxuICogQHJldHVybnMgdGhlIGNvbmZpZyBpZCBvZiB0aGUgY29tcG9uZW50IGluc3RhbmNlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDb25maWdJZCA9IChpbnN0YW5jZTogYW55KSA9PiB7XG4gIHJldHVybiBpbnN0YW5jZVtvdHRlckNvbXBvbmVudEluZm9Qcm9wZXJ0eU5hbWVdPy5jb25maWdJZDtcbn07XG5cbi8qKlxuICogUmVjdXJzaXZlIG1ldGhvZCB0byBkZXRlcm1pbiB0aGUgdHJhbnNsYXRpb25zIG9mIGEgbm9kZVxuICogQHBhcmFtIG5vZGUgSFRNTEVsZW1lbnQgdG8gY2hlY2tcbiAqIEBwYXJhbSByZWMgcmVjdXJzaXZlIG1ldGhvZFxuICogQHJldHVybnMgdGhlIHRyYXNuc2xhdGlvbnMgYXNzb2NpYXRlZCB0byB0aGVpciBjb21wb25lbnQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNsYXRpb25zUmVjKG5vZGU6IEVsZW1lbnQgfCBudWxsLCByZWM6IHR5cGVvZiBnZXRUcmFuc2xhdGlvbnNSZWMpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQge1xuICBjb25zdCBhbmd1bGFyRGV2VG9vbHMgPSAod2luZG93IGFzIGFueSkubmc7XG4gIGNvbnN0IG8zckluZm9Qcm9wZXJ0eTogdHlwZW9mIG90dGVyQ29tcG9uZW50SW5mb1Byb3BlcnR5TmFtZSA9ICdfX290dGVyLWluZm9fXyc7XG4gIGlmICghbm9kZSB8fCAhYW5ndWxhckRldlRvb2xzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNvbXBvbmVudCA9IGFuZ3VsYXJEZXZUb29scy5nZXRDb21wb25lbnQobm9kZSk7XG4gIGNvbnN0IHN1YlRyYW5zbGF0aW9uczogKFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IHVuZGVmaW5lZClbXSA9IEFycmF5LmZyb20obm9kZS5jaGlsZHJlbikubWFwKChjaGlsZCkgPT4gcmVjKGNoaWxkLCByZWMpKTtcbiAgY29uc3QgdHJhbnNsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fTtcbiAgc3ViVHJhbnNsYXRpb25zLmZvckVhY2goKHMpID0+IHtcbiAgICBPYmplY3QuZW50cmllcyhzIHx8IHt9KS5mb3JFYWNoKChbaywgdl0pID0+IHtcbiAgICAgIGlmICh2Lmxlbmd0aCkge1xuICAgICAgICB0cmFuc2xhdGlvbnNba10gPSB2O1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgaWYgKGNvbXBvbmVudCkge1xuICAgIGNvbnN0IGNvbXBvbmVudE5hbWU6IHN0cmluZyA9IGNvbXBvbmVudC5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIGNvbnN0IGNvbXBvbmVudFRyYW5zbGF0aW9ucyA9IE9iamVjdC52YWx1ZXM8c3RyaW5nPihjb21wb25lbnRbbzNySW5mb1Byb3BlcnR5XT8udHJhbnNsYXRpb25zIHx8IHt9KS5maWx0ZXIoKHQpID0+IHR5cGVvZiB0ID09PSAnc3RyaW5nJyk7XG4gICAgaWYgKGNvbXBvbmVudFRyYW5zbGF0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRyYW5zbGF0aW9uc1tjb21wb25lbnROYW1lXSA9IGNvbXBvbmVudFRyYW5zbGF0aW9ucztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHRyYW5zbGF0aW9ucykubGVuZ3RoID8gdHJhbnNsYXRpb25zIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERldGVybWluZSB0aGUgdHJhbnNsYXRpb25zIG9mIGEgbm9kZVxuICogQHBhcmFtIG5vZGUgSFRNTEVsZW1lbnQgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHRoZSB0cmFuc2xhdGlvbnMgYXNzb2NpYXRlZCB0byB0aGVpciBjb21wb25lbnQgbmFtZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNsYXRpb25zID0gKG5vZGU6IEVsZW1lbnQgfCBudWxsKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkID0+IGdldFRyYW5zbGF0aW9uc1JlYyhub2RlLCBnZXRUcmFuc2xhdGlvbnMpO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZSBtZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSBhbmFseXRpY3Mgb2YgYSBub2RlXG4gKiBAcGFyYW0gbm9kZSBFbGVtZW50IHRvIGNoZWNrXG4gKiBAcGFyYW0gcmVjIHJlY3Vyc2l2ZSBtZXRob2RcbiAqIEByZXR1cm5zIHRoZSBhbmFseXRpY3MgYXNzb2NpYXRlZCB0byB0aGVpciBjb21wb25lbnQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW5hbHl0aWNFdmVudHNSZWMobm9kZTogRWxlbWVudCB8IG51bGwsIHJlYzogdHlwZW9mIGdldEFuYWx5dGljRXZlbnRzUmVjKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgYW5ndWxhckRldlRvb2xzID0gKHdpbmRvdyBhcyBhbnkpLm5nO1xuICBjb25zdCBvM3JJbmZvUHJvcGVydHk6IHR5cGVvZiBvdHRlckNvbXBvbmVudEluZm9Qcm9wZXJ0eU5hbWUgPSAnX19vdHRlci1pbmZvX18nO1xuICBpZiAoIW5vZGUgfHwgIWFuZ3VsYXJEZXZUb29scykge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBjb21wb25lbnQgPSBhbmd1bGFyRGV2VG9vbHMuZ2V0Q29tcG9uZW50KG5vZGUpO1xuICBjb25zdCBzdWJFdmVudHMgPSBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pLm1hcCgoY2hpbGQpID0+IHJlYyhjaGlsZCwgcmVjKSk7XG4gIGNvbnN0IGV2ZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gIHN1YkV2ZW50cy5mb3JFYWNoKChzKSA9PiB7XG4gICAgT2JqZWN0LmVudHJpZXMocyB8fCB7fSkuZm9yRWFjaCgoW2ssIHZdKSA9PiB7XG4gICAgICBpZiAodi5sZW5ndGgpIHtcbiAgICAgICAgZXZlbnRzW2tdID0gdjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50W28zckluZm9Qcm9wZXJ0eV0pIHtcbiAgICBjb25zdCBjb21wb25lbnROYW1lOiBzdHJpbmcgPSBjb21wb25lbnQuY29uc3RydWN0b3IubmFtZTtcbiAgICBjb25zdCBjb21wb25lbnRFdmVudHM6IHN0cmluZ1tdID0gT2JqZWN0LnZhbHVlczxhbnk+KGNvbXBvbmVudC5hbmFseXRpY3NFdmVudHMgfHwge30pLm1hcCgoZXZlbnRDb25zdHJ1Y3RvcikgPT4gZXZlbnRDb25zdHJ1Y3Rvci5uYW1lKTtcbiAgICBpZiAoY29tcG9uZW50RXZlbnRzLmxlbmd0aCkge1xuICAgICAgZXZlbnRzW2NvbXBvbmVudE5hbWVdID0gY29tcG9uZW50RXZlbnRzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXMoZXZlbnRzKS5sZW5ndGggPyBldmVudHMgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHRoZSBhbmFseXRpY3Mgb2YgYSBub2RlXG4gKiBAcGFyYW0gbm9kZSBFbGVtZW50IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB0aGUgYW5hbHl0aWNzIGFzc29jaWF0ZWQgdG8gdGhlaXIgY29tcG9uZW50IG5hbWVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFuYWx5dGljRXZlbnRzID0gKG5vZGU6IEVsZW1lbnQgfCBudWxsKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkID0+IGdldEFuYWx5dGljRXZlbnRzUmVjKG5vZGUsIGdldEFuYWx5dGljRXZlbnRzKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgYWxsIGluZm8gZnJvbSBhbiBPdHRlciBjb21wb25lbnRcbiAqIEBwYXJhbSBjb21wb25lbnRDbGFzc0luc3RhbmNlIGNvbXBvbmVudCBpbnN0YW5jZVxuICogQHBhcmFtIGhvc3QgSFRNTCBlbGVtZW50IGhvc3RpbmcgdGhlIGNvbXBvbmVudFxuICogQHJldHVybnMgYWxsIGluZm8gZnJvbSBhbiBPdHRlciBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE90dGVyTGlrZUNvbXBvbmVudEluZm8gPSAoY29tcG9uZW50Q2xhc3NJbnN0YW5jZTogYW55LCBob3N0OiBFbGVtZW50KTogT3R0ZXJMaWtlQ29tcG9uZW50SW5mbyA9PiB7XG4gIGNvbnN0IGNvbmZpZ0lkID0gZ2V0Q29uZmlnSWQoY29tcG9uZW50Q2xhc3NJbnN0YW5jZSk7XG4gIGNvbnN0IHRyYW5zbGF0aW9ucyA9IGdldFRyYW5zbGF0aW9ucyhob3N0KTtcbiAgY29uc3QgYW5hbHl0aWNzID0gZ2V0QW5hbHl0aWNFdmVudHMoaG9zdCk7XG4gIHJldHVybiB7XG4gICAgY29tcG9uZW50TmFtZTogY29tcG9uZW50Q2xhc3NJbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgIGNvbmZpZ0lkLFxuICAgIHRyYW5zbGF0aW9ucyxcbiAgICBhbmFseXRpY3NcbiAgfTtcbn07XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3R0ZXItaW5zcGVjdG9yLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGV2a2l0L2luc3BlY3Rvci9vdHRlci1pbnNwZWN0b3IuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFlekQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQWdDLEVBQW1CLEVBQUU7SUFDL0UsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQWEsRUFBRSxFQUFFO0lBQzNDLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsUUFBUSxDQUFDO0FBQzVELENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQW9CLEVBQUUsR0FBOEI7SUFDckYsTUFBTSxlQUFlLEdBQUksTUFBYyxDQUFDLEVBQUUsQ0FBQztJQUMzQyxNQUFNLGVBQWUsR0FBMEMsZ0JBQWdCLENBQUM7SUFDaEYsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzlCLE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxNQUFNLGVBQWUsR0FBNkMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUs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Z0IsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkksSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLGVBQWUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3pELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFvQixFQUF3QyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFFL0k7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLHNCQUEyQixFQUFFLElBQWEsRUFBMEIsRUFBRTtJQUM5RyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTztRQUNMLDJFQUEyRTtRQUMzRSxhQUFhLEVBQUUsc0JBQXNCLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxJQUFJLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxJQUFJO1FBQ3ZILFFBQVE7UUFDUixZQUFZO1FBQ1osU0FBUztLQUNWLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge290dGVyQ29tcG9uZW50SW5mb1Byb3BlcnR5TmFtZX0gZnJvbSAnQG8zci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBPdHRlckxpa2VDb21wb25lbnRJbmZvIHtcbiAgLyoqIENvbnRhaW5lciBpbmZvcm1hdGlvbiAqL1xuICBjb250YWluZXI/OiBPdHRlckxpa2VDb21wb25lbnRJbmZvO1xuICAvKiogQ29uZmlndXJhdGlvbiBJRCAqL1xuICBjb25maWdJZD86IHN0cmluZztcbiAgLyoqIENvbXBvbmVudCBuYW1lICovXG4gIGNvbXBvbmVudE5hbWU6IHN0cmluZztcbiAgLyoqIENvbXBvbmVudCB0cmFuc2xhdGlvbiAqL1xuICB0cmFuc2xhdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gIC8qKiBDb21wb25lbnQgYW5hbHl0aWNzICovXG4gIGFuYWx5dGljcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPjtcbn1cblxuLyoqXG4gKiBPdHRlciBpbnNwZWN0b3IgY3NzIGNsYXNzXG4gKi9cbmV4cG9ydCBjb25zdCBJTlNQRUNUT1JfQ0xBU1MgPSAnb3R0ZXItZGV2dG9vbHMtaW5zcGVjdG9yJztcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSBub2RlIGlzIGFuIE90dGVyIGNvbnRhaW5lclxuICogQHBhcmFtIG5vZGUgRWxlbWVudCB0byBjaGVja1xuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgbm9kZSBpcyBhbiBPdHRlciBjb250YWluZXJcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQ29udGFpbmVyID0gKG5vZGU6IEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsKTogbm9kZSBpcyBFbGVtZW50ID0+IHtcbiAgcmV0dXJuICEhbm9kZT8udGFnTmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdjb250Jyk7XG59O1xuXG4vKipcbiAqIERldGVybWluZSB0aGUgY29uZmlnIGlkIG9mIGEgY29tcG9uZW50IGluc3RhbmNlXG4gKiBAcGFyYW0gaW5zdGFuY2UgY29tcG9uZW50IGluc3RhbmNlXG4gKiBAcmV0dXJucyB0aGUgY29uZmlnIGlkIG9mIHRoZSBjb21wb25lbnQgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvbmZpZ0lkID0gKGluc3RhbmNlOiBhbnkpID0+IHtcbiAgcmV0dXJuIGluc3RhbmNlW290dGVyQ29tcG9uZW50SW5mb1Byb3BlcnR5TmFtZV0/LmNvbmZpZ0lkO1xufTtcblxuLyoqXG4gKiBSZWN1cnNpdmUgbWV0aG9kIHRvIGRldGVybWluIHRoZSB0cmFuc2xhdGlvbnMgb2YgYSBub2RlXG4gKiBAcGFyYW0gbm9kZSBIVE1MRWxlbWVudCB0byBjaGVja1xuICogQHBhcmFtIHJlYyByZWN1cnNpdmUgbWV0aG9kXG4gKiBAcmV0dXJucyB0aGUgdHJhc25zbGF0aW9ucyBhc3NvY2lhdGVkIHRvIHRoZWlyIGNvbXBvbmVudCBuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2xhdGlvbnNSZWMobm9kZTogRWxlbWVudCB8IG51bGwsIHJlYzogdHlwZW9mIGdldFRyYW5zbGF0aW9uc1JlYyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFuZ3VsYXJEZXZUb29scyA9ICh3aW5kb3cgYXMgYW55KS5uZztcbiAgY29uc3QgbzNySW5mb1Byb3BlcnR5OiB0eXBlb2Ygb3R0ZXJDb21wb25lbnRJbmZvUHJvcGVydHlOYW1lID0gJ19fb3R0ZXItaW5mb19fJztcbiAgaWYgKCFub2RlIHx8ICFhbmd1bGFyRGV2VG9vbHMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY29tcG9uZW50ID0gYW5ndWxhckRldlRvb2xzLmdldENvbXBvbmVudChub2RlKTtcbiAgY29uc3Qgc3ViVHJhbnNsYXRpb25zOiAoUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkKVtdID0gQXJyYXkuZnJvbShub2RlLmNoaWxkcmVuKS5tYXAoKGNoaWxkKSA9PiByZWMoY2hpbGQsIHJlYykpO1xuICBjb25zdCB0cmFuc2xhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICBzdWJUcmFuc2xhdGlvbnMuZm9yRWFjaCgocykgPT4ge1xuICAgIE9iamVjdC5lbnRyaWVzKHMgfHwge30pLmZvckVhY2goKFtrLCB2XSkgPT4ge1xuICAgICAgaWYgKHYubGVuZ3RoKSB7XG4gICAgICAgIHRyYW5zbGF0aW9uc1trXSA9IHY7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuICBpZiAoY29tcG9uZW50KSB7XG4gICAgY29uc3QgY29tcG9uZW50TmFtZTogc3RyaW5nID0gY29tcG9uZW50LmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgY29uc3QgY29tcG9uZW50VHJhbnNsYXRpb25zID0gT2JqZWN0LnZhbHVlczxzdHJpbmc+KGNvbXBvbmVudFtvM3JJbmZvUHJvcGVydHldPy50cmFuc2xhdGlvbnMgfHwge30pLmZpbHRlcigodCkgPT4gdHlwZW9mIHQgPT09ICdzdHJpbmcnKTtcbiAgICBpZiAoY29tcG9uZW50VHJhbnNsYXRpb25zLmxlbmd0aCkge1xuICAgICAgdHJhbnNsYXRpb25zW2NvbXBvbmVudE5hbWVdID0gY29tcG9uZW50VHJhbnNsYXRpb25zO1xuICAgIH1cbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXModHJhbnNsYXRpb25zKS5sZW5ndGggPyB0cmFuc2xhdGlvbnMgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHRoZSB0cmFuc2xhdGlvbnMgb2YgYSBub2RlXG4gKiBAcGFyYW0gbm9kZSBIVE1MRWxlbWVudCB0byBjaGVja1xuICogQHJldHVybnMgdGhlIHRyYW5zbGF0aW9ucyBhc3NvY2lhdGVkIHRvIHRoZWlyIGNvbXBvbmVudCBuYW1lXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUcmFuc2xhdGlvbnMgPSAobm9kZTogRWxlbWVudCB8IG51bGwpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQgPT4gZ2V0VHJhbnNsYXRpb25zUmVjKG5vZGUsIGdldFRyYW5zbGF0aW9ucyk7XG5cbi8qKlxuICogUmVjdXJzaXZlIG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIGFuYWx5dGljcyBvZiBhIG5vZGVcbiAqIEBwYXJhbSBub2RlIEVsZW1lbnQgdG8gY2hlY2tcbiAqIEBwYXJhbSByZWMgcmVjdXJzaXZlIG1ldGhvZFxuICogQHJldHVybnMgdGhlIGFuYWx5dGljcyBhc3NvY2lhdGVkIHRvIHRoZWlyIGNvbXBvbmVudCBuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmFseXRpY0V2ZW50c1JlYyhub2RlOiBFbGVtZW50IHwgbnVsbCwgcmVjOiB0eXBlb2YgZ2V0QW5hbHl0aWNFdmVudHNSZWMpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQge1xuICBjb25zdCBhbmd1bGFyRGV2VG9vbHMgPSAod2luZG93IGFzIGFueSkubmc7XG4gIGNvbnN0IG8zckluZm9Qcm9wZXJ0eTogdHlwZW9mIG90dGVyQ29tcG9uZW50SW5mb1Byb3BlcnR5TmFtZSA9ICdfX290dGVyLWluZm9fXyc7XG4gIGlmICghbm9kZSB8fCAhYW5ndWxhckRldlRvb2xzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNvbXBvbmVudCA9IGFuZ3VsYXJEZXZUb29scy5nZXRDb21wb25lbnQobm9kZSk7XG4gIGNvbnN0IHN1YkV2ZW50cyA9IEFycmF5LmZyb20obm9kZS5jaGlsZHJlbikubWFwKChjaGlsZCkgPT4gcmVjKGNoaWxkLCByZWMpKTtcbiAgY29uc3QgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fTtcbiAgc3ViRXZlbnRzLmZvckVhY2goKHMpID0+IHtcbiAgICBPYmplY3QuZW50cmllcyhzIHx8IHt9KS5mb3JFYWNoKChbaywgdl0pID0+IHtcbiAgICAgIGlmICh2Lmxlbmd0aCkge1xuICAgICAgICBldmVudHNba10gPSB2O1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnRbbzNySW5mb1Byb3BlcnR5XSkge1xuICAgIGNvbnN0IGNvbXBvbmVudE5hbWU6IHN0cmluZyA9IGNvbXBvbmVudC5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIGNvbnN0IGNvbXBvbmVudEV2ZW50czogc3RyaW5nW10gPSBPYmplY3QudmFsdWVzPGFueT4oY29tcG9uZW50LmFuYWx5dGljc0V2ZW50cyB8fCB7fSkubWFwKChldmVudENvbnN0cnVjdG9yKSA9PiBldmVudENvbnN0cnVjdG9yLm5hbWUpO1xuICAgIGlmIChjb21wb25lbnRFdmVudHMubGVuZ3RoKSB7XG4gICAgICBldmVudHNbY29tcG9uZW50TmFtZV0gPSBjb21wb25lbnRFdmVudHM7XG4gICAgfVxuICB9XG4gIHJldHVybiBPYmplY3Qua2V5cyhldmVudHMpLmxlbmd0aCA/IGV2ZW50cyA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgdGhlIGFuYWx5dGljcyBvZiBhIG5vZGVcbiAqIEBwYXJhbSBub2RlIEVsZW1lbnQgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHRoZSBhbmFseXRpY3MgYXNzb2NpYXRlZCB0byB0aGVpciBjb21wb25lbnQgbmFtZVxuICovXG5leHBvcnQgY29uc3QgZ2V0QW5hbHl0aWNFdmVudHMgPSAobm9kZTogRWxlbWVudCB8IG51bGwpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQgPT4gZ2V0QW5hbHl0aWNFdmVudHNSZWMobm9kZSwgZ2V0QW5hbHl0aWNFdmVudHMpO1xuXG4vKipcbiAqIERldGVybWluZSBhbGwgaW5mbyBmcm9tIGFuIE90dGVyIGNvbXBvbmVudFxuICogQHBhcmFtIGNvbXBvbmVudENsYXNzSW5zdGFuY2UgY29tcG9uZW50IGluc3RhbmNlXG4gKiBAcGFyYW0gaG9zdCBIVE1MIGVsZW1lbnQgaG9zdGluZyB0aGUgY29tcG9uZW50XG4gKiBAcmV0dXJucyBhbGwgaW5mbyBmcm9tIGFuIE90dGVyIGNvbXBvbmVudFxuICovXG5leHBvcnQgY29uc3QgZ2V0T3R0ZXJMaWtlQ29tcG9uZW50SW5mbyA9IChjb21wb25lbnRDbGFzc0luc3RhbmNlOiBhbnksIGhvc3Q6IEVsZW1lbnQpOiBPdHRlckxpa2VDb21wb25lbnRJbmZvID0+IHtcbiAgY29uc3QgY29uZmlnSWQgPSBnZXRDb25maWdJZChjb21wb25lbnRDbGFzc0luc3RhbmNlKTtcbiAgY29uc3QgdHJhbnNsYXRpb25zID0gZ2V0VHJhbnNsYXRpb25zKGhvc3QpO1xuICBjb25zdCBhbmFseXRpY3MgPSBnZXRBbmFseXRpY0V2ZW50cyhob3N0KTtcbiAgcmV0dXJuIHtcbiAgICAvLyBDYW5ub3QgdXNlIGFueW1vcmUgYGNvbnN0cnVjdG9yLm5hbWVgIGVsc2UgYWxsIGNvbXBvbmVudHMgYXJlIG5hbWVkIGBfYWBcbiAgICBjb21wb25lbnROYW1lOiBjb21wb25lbnRDbGFzc0luc3RhbmNlLmNvbnN0cnVjdG9yLsm1Y21wPy5kZWJ1Z0luZm8/LmNsYXNzTmFtZSB8fCBjb21wb25lbnRDbGFzc0luc3RhbmNlLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgY29uZmlnSWQsXG4gICAgdHJhbnNsYXRpb25zLFxuICAgIGFuYWx5dGljc1xuICB9O1xufTtcbiJdfQ==
@@ -91,8 +91,7 @@ export class OtterInspectorService {
91
91
  this.inspectorDiv.style.height = `${rect.height}px`;
92
92
  this.inspectorDiv.style.top = `${rect.top}px`;
93
93
  this.inspectorDiv.style.left = `${rect.left}px`;
94
- // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
95
- this.inspectorDiv.firstChild.textContent = `<${this.selectedComponent.component.constructor.name}>`;
94
+ this.inspectorDiv.firstChild.textContent = `<${this.selectedComponent.componentName}>`;
96
95
  }
97
96
  }
98
97
  unHighlight() {
@@ -164,4 +163,4 @@ export class OtterInspectorService {
164
163
  window.removeEventListener('mouseout', this.cancelEventCallback, true);
165
164
  }
166
165
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3R0ZXItaW5zcGVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGV2a2l0L2luc3BlY3Rvci9vdHRlci1pbnNwZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUEwQixNQUFNLDJCQUEyQixDQUFDO0FBUTVIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQztRQVppQiw2QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELHlCQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELHdCQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNELGlCQUFZLEdBQTBCLElBQUksQ0FBQztRQUNsQyxtQ0FBOEIsR0FBRyxJQUFJLGVBQWUsQ0FBcUMsU0FBUyxDQUFDLENBQUM7UUFFckg7O1dBRUc7UUFDSSxvQ0FBK0IsR0FBbUQsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRzFJLElBQUksQ0FBQyxlQUFlLEdBQUksTUFBYyxDQUFDLEVBQW9CLENBQUM7SUFDOUQsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJ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Q0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLFNBQWtCO1FBQ3ZDLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0UsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZyB9IGZyb20gJy4vbmcnO1xuaW1wb3J0IHsgZ2V0T3R0ZXJMaWtlQ29tcG9uZW50SW5mbywgSU5TUEVDVE9SX0NMQVNTLCBpc0NvbnRhaW5lciwgT3R0ZXJMaWtlQ29tcG9uZW50SW5mbyB9IGZyb20gJy4vb3R0ZXItaW5zcGVjdG9yLmhlbHBlcnMnO1xuXG5cbmludGVyZmFjZSBDb21wb25lbnRJbmZvIGV4dGVuZHMgT3R0ZXJMaWtlQ29tcG9uZW50SW5mbyB7XG4gIGNvbXBvbmVudDogYW55O1xuICBob3N0OiBFbGVtZW50O1xufVxuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIHRoZSBjdXN0b20gaW5zcGVjdG9yIGZvciB0aGUgT3R0ZXIgRGV2dG9vbHMgQ2hyb21lIGV4dGVuc2lvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIE90dGVySW5zcGVjdG9yU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYW5ndWxhckRldlRvb2xzOiBOZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50TW91c2VPdmVyQ2FsbGJhY2sgPSB0aGlzLmVsZW1lbnRNb3VzZU92ZXIuYmluZCh0aGlzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50Q2xpY2tDYWxsYmFjayA9IHRoaXMuZWxlbWVudENsaWNrLmJpbmQodGhpcyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FuY2VsRXZlbnRDYWxsYmFjayA9IHRoaXMuY2FuY2VsRXZlbnQuYmluZCh0aGlzKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZENvbXBvbmVudDogQ29tcG9uZW50SW5mbyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpbnNwZWN0b3JEaXY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3R0ZXJMaWtlQ29tcG9uZW50SW5mb1RvQmVTZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPdHRlckxpa2VDb21wb25lbnRJbmZvIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBTdHJlYW0gb2YgY29tcG9uZW50IGluZm8gdG8gYmUgc2VudCB0byB0aGUgZXh0ZW5zaW9uIGFwcC5cbiAgICovXG4gIHB1YmxpYyBvdHRlckxpa2VDb21wb25lbnRJbmZvVG9CZVNlbnQkOiBPYnNlcnZhYmxlPE90dGVyTGlrZUNvbXBvbmVudEluZm8gfCB1bmRlZmluZWQ+ID0gdGhpcy5vdHRlckxpa2VDb21wb25lbnRJbmZvVG9CZVNlbnQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hbmd1bGFyRGV2VG9vbHMgPSAod2luZG93IGFzIGFueSkubmcgYXMgTmcgfCB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0SW5zcGVjdGluZygpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgdGhpcy5lbGVtZW50TW91c2VPdmVyQ2FsbGJhY2ssIHRydWUpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZWxlbWVudENsaWNrQ2FsbGJhY2ssIHRydWUpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIHRoaXMuY2FuY2VsRXZlbnRDYWxsYmFjaywgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVsZW1lbnRDbGljayhlOiBNb3VzZUV2ZW50KSB7XG4gICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRDb21wb25lbnQgfHwgIXRoaXMuYW5ndWxhckRldlRvb2xzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkQ29tcG9uZW50Lmhvc3QucGFyZW50RWxlbWVudDtcbiAgICBjb25zdCBwYXJlbnQgPSBwYXJlbnRFbGVtZW50ICYmICh0aGlzLmFuZ3VsYXJEZXZUb29scy5nZXRDb21wb25lbnQocGFyZW50RWxlbWVudCkgfHwgdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0T3duaW5nQ29tcG9uZW50KHBhcmVudEVsZW1lbnQpKTtcbiAgICBjb25zdCBwYXJlbnRIb3N0ID0gcGFyZW50ICYmIHRoaXMuYW5ndWxhckRldlRvb2xzLmdldEhvc3RFbGVtZW50KHBhcmVudCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gaXNDb250YWluZXIocGFyZW50SG9zdClcbiAgICAgID8gZ2V0T3R0ZXJMaWtlQ29tcG9uZW50SW5mbyhwYXJlbnQsIHBhcmVudEhvc3QpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBjb25zdCB7IGNvbXBvbmVudCwgaG9zdCwgLi4uaW5mb1RvQmVTZW50fSA9IHRoaXMuc2VsZWN0ZWRDb21wb25lbnQ7XG5cbiAgICB0aGlzLm90dGVyTGlrZUNvbXBvbmVudEluZm9Ub0JlU2VudC5uZXh0KHtcbiAgICAgIC4uLmluZm9Ub0JlU2VudCxcbiAgICAgIGNvbnRhaW5lclxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc090dGVyTGlrZUNvbXBvbmVudChpbmZvOiBPdHRlckxpa2VDb21wb25lbnRJbmZvKSB7XG4gICAgY29uc3QgaGFzQ29uZmlnSWQgPSAhIWluZm8uY29uZmlnSWQ7XG4gICAgY29uc3QgaGFzVHJhbnNsYXRpb25zID0gISFpbmZvLnRyYW5zbGF0aW9ucz8ubGVuZ3RoO1xuICAgIGNvbnN0IGhhc0FuYWx5dGljcyA9ICEhT2JqZWN0LmtleXMoaW5mby5hbmFseXRpY3MgfHwge30pLmxlbmd0aDtcbiAgICByZXR1cm4gaGFzQ29uZmlnSWQgfHwgaGFzVHJhbnNsYXRpb25zIHx8IGhhc0FuYWx5dGljcztcbiAgfVxuXG4gIHByaXZhdGUgZmluZENvbXBvbmVudEluZm8obm9kZTogRWxlbWVudCk6IENvbXBvbmVudEluZm8gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hbmd1bGFyRGV2VG9vbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGNvbXBvbmVudENsYXNzSW5zdGFuY2UgPSB0aGlzLmFuZ3VsYXJEZXZUb29scy5nZXRDb21wb25lbnQobm9kZSkgfHwgdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0T3duaW5nQ29tcG9uZW50KG5vZGUpO1xuICAgIGxldCBvM3JMaWtlQ29tcG9uZW50SW5mbzogT3R0ZXJMaWtlQ29tcG9uZW50SW5mbztcbiAgICBsZXQgaXNPM3JMaWtlOiBib29sZWFuO1xuICAgIGlmICghY29tcG9uZW50Q2xhc3NJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkbyB7XG4gICAgICBvM3JMaWtlQ29tcG9uZW50SW5mbyA9IGdldE90dGVyTGlrZUNvbXBvbmVudEluZm8oY29tcG9uZW50Q2xhc3NJbnN0YW5jZSwgdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0SG9zdEVsZW1lbnQoY29tcG9uZW50Q2xhc3NJbnN0YW5jZSkpO1xuICAgICAgaXNPM3JMaWtlID0gdGhpcy5pc090dGVyTGlrZUNvbXBvbmVudChvM3JMaWtlQ29tcG9uZW50SW5mbyk7XG4gICAgICBpZiAoIWlzTzNyTGlrZSkge1xuICAgICAgICBjb21wb25lbnRDbGFzc0luc3RhbmNlID0gdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0T3duaW5nQ29tcG9uZW50KGNvbXBvbmVudENsYXNzSW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH0gd2hpbGUgKCFpc08zckxpa2UgJiYgY29tcG9uZW50Q2xhc3NJbnN0YW5jZSk7XG4gICAgaWYgKGlzTzNyTGlrZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29tcG9uZW50OiBjb21wb25lbnRDbGFzc0luc3RhbmNlLFxuICAgICAgICBob3N0OiB0aGlzLmFuZ3VsYXJEZXZUb29scy5nZXRIb3N0RWxlbWVudChjb21wb25lbnRDbGFzc0luc3RhbmNlKSxcbiAgICAgICAgLi4ubzNyTGlrZUNvbXBvbmVudEluZm9cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbGVtZW50TW91c2VPdmVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmNhbmNlbEV2ZW50KGUpO1xuXG4gICAgY29uc3QgZWwgPSBlLnRhcmdldCBhcyBFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGVsKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZENvbXBvbmVudCA9IHRoaXMuZmluZENvbXBvbmVudEluZm8oZWwpO1xuICAgICAgaWYgKHNlbGVjdGVkQ29tcG9uZW50Py5ob3N0ICE9PSB0aGlzLnNlbGVjdGVkQ29tcG9uZW50Py5ob3N0KSB7XG4gICAgICAgIHRoaXMudW5IaWdobGlnaHQoKTtcbiAgICAgICAgdGhpcy5oaWdobGlnaHQoc2VsZWN0ZWRDb21wb25lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0KHNlbGVjdGVkQ29tcG9uZW50OiBDb21wb25lbnRJbmZvIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZWxlY3RlZENvbXBvbmVudCA9IHNlbGVjdGVkQ29tcG9uZW50O1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29tcG9uZW50Py5ob3N0ICYmIHRoaXMuaW5zcGVjdG9yRGl2KSB7XG4gICAgICBjb25zdCByZWN0ID0gdGhpcy5zZWxlY3RlZENvbXBvbmVudC5ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5pbnNwZWN0b3JEaXYuc3R5bGUud2lkdGggPSBgJHtyZWN0LndpZHRofXB4YDtcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLmhlaWdodCA9IGAke3JlY3QuaGVpZ2h0fXB4YDtcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLnRvcCA9IGAke3JlY3QudG9wfXB4YDtcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLmxlZnQgPSBgJHtyZWN0LmxlZnR9cHhgO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9yZXN0cmljdC10ZW1wbGF0ZS1leHByZXNzaW9uc1xuICAgICAgdGhpcy5pbnNwZWN0b3JEaXYuZmlyc3RDaGlsZCEudGV4dENvbnRlbnQgPSBgPCR7dGhpcy5zZWxlY3RlZENvbXBvbmVudC5jb21wb25lbnQuY29uc3RydWN0b3IubmFtZX0+YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuSGlnaGxpZ2h0KCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29tcG9uZW50Py5ob3N0ICYmIHRoaXMuaW5zcGVjdG9yRGl2KSB7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS53aWR0aCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLmhlaWdodCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLnRvcCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNhbmNlbEV2ZW50KGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgdGhlIGluc3BlY3RvciBkaXYgYW5kIGFkZCBpdCB0byB0aGUgRE9NLlxuICAgKi9cbiAgcHVibGljIHByZXBhcmVJbnNwZWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuaW5zcGVjdG9yRGl2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluc3BlY3RvckNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgaW5zcGVjdG9yQ3NzLnRleHRDb250ZW50ID0gYFxuICAgICAgLiR7SU5TUEVDVE9SX0NMQVNTfSB7XG4gICAgICAgIHotaW5kZXg6IDk5OTk5OTk7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTA0LCAxODIsIDI1NSwgMC4zNSk7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLiR7SU5TUEVDVE9SX0NMQVNTfSA+IHNwYW4ge1xuICAgICAgICBib3R0b206IC0yNXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwNCwgMTgyLCAyNTUsIDAuOSk7O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfWA7XG5cbiAgICBjb25zdCBpbnNwZWN0b3JEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb25zdCBpbnNwZWN0b3JTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIGluc3BlY3RvckRpdi5hcHBlbmRDaGlsZChpbnNwZWN0b3JTcGFuKTtcbiAgICBpbnNwZWN0b3JEaXYuY2xhc3NMaXN0LmFkZChJTlNQRUNUT1JfQ0xBU1MpO1xuXG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpbnNwZWN0b3JDc3MpO1xuICAgIHRoaXMuaW5zcGVjdG9yRGl2ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnNwZWN0b3JEaXYpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgaW5zcGVjdG9yLlxuICAgKiBAcGFyYW0gaXNSdW5uaW5nIHRydWUgaWYgdGhlIGluc3BlY3RvciBpcyBydW5uaW5nXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlSW5zcGVjdG9yKGlzUnVubmluZzogYm9vbGVhbikge1xuICAgIGlmIChpc1J1bm5pbmcpIHtcbiAgICAgIHRoaXMuc3RhcnRJbnNwZWN0aW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcEluc3BlY3RpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RvcEluc3BlY3RpbmcoKSB7XG4gICAgdGhpcy51bkhpZ2hsaWdodCgpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCB0aGlzLmVsZW1lbnRNb3VzZU92ZXJDYWxsYmFjaywgdHJ1ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5lbGVtZW50Q2xpY2tDYWxsYmFjaywgdHJ1ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgdGhpcy5jYW5jZWxFdmVudENhbGxiYWNrLCB0cnVlKTtcbiAgfVxufVxuIl19
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3R0ZXItaW5zcGVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGV2a2l0L2luc3BlY3Rvci9vdHRlci1pbnNwZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUEwQixNQUFNLDJCQUEyQixDQUFDO0FBUTVIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQztRQVppQiw2QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELHlCQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELHdCQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNELGlCQUFZLEdBQTBCLElBQUksQ0FBQztRQUNsQyxtQ0FBOEIsR0FBRyxJQUFJLGVBQWUsQ0FBcUMsU0FBUyxDQUFDLENBQUM7UUFFckg7O1dBRUc7UUFDSSxvQ0FBK0IsR0FBbUQsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRzFJLElBQUksQ0FBQyxlQUFlLEdBQUksTUFBYyxDQUFDLEVBQW9CLENBQUM7SUFDOUQsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJ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Q0FBQyxDQUFDO1FBQ25ELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsWUFBWSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4QyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU1QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsU0FBa0I7UUFDdkMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmcgfSBmcm9tICcuL25nJztcbmltcG9ydCB7IGdldE90dGVyTGlrZUNvbXBvbmVudEluZm8sIElOU1BFQ1RPUl9DTEFTUywgaXNDb250YWluZXIsIE90dGVyTGlrZUNvbXBvbmVudEluZm8gfSBmcm9tICcuL290dGVyLWluc3BlY3Rvci5oZWxwZXJzJztcblxuXG5pbnRlcmZhY2UgQ29tcG9uZW50SW5mbyBleHRlbmRzIE90dGVyTGlrZUNvbXBvbmVudEluZm8ge1xuICBjb21wb25lbnQ6IGFueTtcbiAgaG9zdDogRWxlbWVudDtcbn1cblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGhhbmRsZSB0aGUgY3VzdG9tIGluc3BlY3RvciBmb3IgdGhlIE90dGVyIERldnRvb2xzIENocm9tZSBleHRlbnNpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBPdHRlckluc3BlY3RvclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGFuZ3VsYXJEZXZUb29sczogTmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudE1vdXNlT3ZlckNhbGxiYWNrID0gdGhpcy5lbGVtZW50TW91c2VPdmVyLmJpbmQodGhpcyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudENsaWNrQ2FsbGJhY2sgPSB0aGlzLmVsZW1lbnRDbGljay5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhbmNlbEV2ZW50Q2FsbGJhY2sgPSB0aGlzLmNhbmNlbEV2ZW50LmJpbmQodGhpcyk7XG4gIHByaXZhdGUgc2VsZWN0ZWRDb21wb25lbnQ6IENvbXBvbmVudEluZm8gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaW5zcGVjdG9yRGl2OiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IG90dGVyTGlrZUNvbXBvbmVudEluZm9Ub0JlU2VudCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3R0ZXJMaWtlQ29tcG9uZW50SW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogU3RyZWFtIG9mIGNvbXBvbmVudCBpbmZvIHRvIGJlIHNlbnQgdG8gdGhlIGV4dGVuc2lvbiBhcHAuXG4gICAqL1xuICBwdWJsaWMgb3R0ZXJMaWtlQ29tcG9uZW50SW5mb1RvQmVTZW50JDogT2JzZXJ2YWJsZTxPdHRlckxpa2VDb21wb25lbnRJbmZvIHwgdW5kZWZpbmVkPiA9IHRoaXMub3R0ZXJMaWtlQ29tcG9uZW50SW5mb1RvQmVTZW50LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYW5ndWxhckRldlRvb2xzID0gKHdpbmRvdyBhcyBhbnkpLm5nIGFzIE5nIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydEluc3BlY3RpbmcoKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHRoaXMuZWxlbWVudE1vdXNlT3ZlckNhbGxiYWNrLCB0cnVlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmVsZW1lbnRDbGlja0NhbGxiYWNrLCB0cnVlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCB0aGlzLmNhbmNlbEV2ZW50Q2FsbGJhY2ssIHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbGVtZW50Q2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkQ29tcG9uZW50IHx8ICF0aGlzLmFuZ3VsYXJEZXZUb29scykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5zZWxlY3RlZENvbXBvbmVudC5ob3N0LnBhcmVudEVsZW1lbnQ7XG4gICAgY29uc3QgcGFyZW50ID0gcGFyZW50RWxlbWVudCAmJiAodGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0Q29tcG9uZW50KHBhcmVudEVsZW1lbnQpIHx8IHRoaXMuYW5ndWxhckRldlRvb2xzLmdldE93bmluZ0NvbXBvbmVudChwYXJlbnRFbGVtZW50KSk7XG4gICAgY29uc3QgcGFyZW50SG9zdCA9IHBhcmVudCAmJiB0aGlzLmFuZ3VsYXJEZXZUb29scy5nZXRIb3N0RWxlbWVudChwYXJlbnQpO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGlzQ29udGFpbmVyKHBhcmVudEhvc3QpXG4gICAgICA/IGdldE90dGVyTGlrZUNvbXBvbmVudEluZm8ocGFyZW50LCBwYXJlbnRIb3N0KVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgeyBjb21wb25lbnQsIGhvc3QsIC4uLmluZm9Ub0JlU2VudH0gPSB0aGlzLnNlbGVjdGVkQ29tcG9uZW50O1xuXG4gICAgdGhpcy5vdHRlckxpa2VDb21wb25lbnRJbmZvVG9CZVNlbnQubmV4dCh7XG4gICAgICAuLi5pbmZvVG9CZVNlbnQsXG4gICAgICBjb250YWluZXJcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPdHRlckxpa2VDb21wb25lbnQoaW5mbzogT3R0ZXJMaWtlQ29tcG9uZW50SW5mbykge1xuICAgIGNvbnN0IGhhc0NvbmZpZ0lkID0gISFpbmZvLmNvbmZpZ0lkO1xuICAgIGNvbnN0IGhhc1RyYW5zbGF0aW9ucyA9ICEhaW5mby50cmFuc2xhdGlvbnM/Lmxlbmd0aDtcbiAgICBjb25zdCBoYXNBbmFseXRpY3MgPSAhIU9iamVjdC5rZXlzKGluZm8uYW5hbHl0aWNzIHx8IHt9KS5sZW5ndGg7XG4gICAgcmV0dXJuIGhhc0NvbmZpZ0lkIHx8IGhhc1RyYW5zbGF0aW9ucyB8fCBoYXNBbmFseXRpY3M7XG4gIH1cblxuICBwcml2YXRlIGZpbmRDb21wb25lbnRJbmZvKG5vZGU6IEVsZW1lbnQpOiBDb21wb25lbnRJbmZvIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYW5ndWxhckRldlRvb2xzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBjb21wb25lbnRDbGFzc0luc3RhbmNlID0gdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0Q29tcG9uZW50KG5vZGUpIHx8IHRoaXMuYW5ndWxhckRldlRvb2xzLmdldE93bmluZ0NvbXBvbmVudChub2RlKTtcbiAgICBsZXQgbzNyTGlrZUNvbXBvbmVudEluZm86IE90dGVyTGlrZUNvbXBvbmVudEluZm87XG4gICAgbGV0IGlzTzNyTGlrZTogYm9vbGVhbjtcbiAgICBpZiAoIWNvbXBvbmVudENsYXNzSW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZG8ge1xuICAgICAgbzNyTGlrZUNvbXBvbmVudEluZm8gPSBnZXRPdHRlckxpa2VDb21wb25lbnRJbmZvKGNvbXBvbmVudENsYXNzSW5zdGFuY2UsIHRoaXMuYW5ndWxhckRldlRvb2xzLmdldEhvc3RFbGVtZW50KGNvbXBvbmVudENsYXNzSW5zdGFuY2UpKTtcbiAgICAgIGlzTzNyTGlrZSA9IHRoaXMuaXNPdHRlckxpa2VDb21wb25lbnQobzNyTGlrZUNvbXBvbmVudEluZm8pO1xuICAgICAgaWYgKCFpc08zckxpa2UpIHtcbiAgICAgICAgY29tcG9uZW50Q2xhc3NJbnN0YW5jZSA9IHRoaXMuYW5ndWxhckRldlRvb2xzLmdldE93bmluZ0NvbXBvbmVudChjb21wb25lbnRDbGFzc0luc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9IHdoaWxlICghaXNPM3JMaWtlICYmIGNvbXBvbmVudENsYXNzSW5zdGFuY2UpO1xuICAgIGlmIChpc08zckxpa2UpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudDogY29tcG9uZW50Q2xhc3NJbnN0YW5jZSxcbiAgICAgICAgaG9zdDogdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0SG9zdEVsZW1lbnQoY29tcG9uZW50Q2xhc3NJbnN0YW5jZSksXG4gICAgICAgIC4uLm8zckxpa2VDb21wb25lbnRJbmZvXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZWxlbWVudE1vdXNlT3ZlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jYW5jZWxFdmVudChlKTtcblxuICAgIGNvbnN0IGVsID0gZS50YXJnZXQgYXMgRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChlbCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRDb21wb25lbnQgPSB0aGlzLmZpbmRDb21wb25lbnRJbmZvKGVsKTtcbiAgICAgIGlmIChzZWxlY3RlZENvbXBvbmVudD8uaG9zdCAhPT0gdGhpcy5zZWxlY3RlZENvbXBvbmVudD8uaG9zdCkge1xuICAgICAgICB0aGlzLnVuSGlnaGxpZ2h0KCk7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0KHNlbGVjdGVkQ29tcG9uZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZ2hsaWdodChzZWxlY3RlZENvbXBvbmVudDogQ29tcG9uZW50SW5mbyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSBzZWxlY3RlZENvbXBvbmVudDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbXBvbmVudD8uaG9zdCAmJiB0aGlzLmluc3BlY3RvckRpdikge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuc2VsZWN0ZWRDb21wb25lbnQuaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLndpZHRoID0gYCR7cmVjdC53aWR0aH1weGA7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS5oZWlnaHQgPSBgJHtyZWN0LmhlaWdodH1weGA7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS50b3AgPSBgJHtyZWN0LnRvcH1weGA7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS5sZWZ0ID0gYCR7cmVjdC5sZWZ0fXB4YDtcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LmZpcnN0Q2hpbGQhLnRleHRDb250ZW50ID0gYDwke3RoaXMuc2VsZWN0ZWRDb21wb25lbnQuY29tcG9uZW50TmFtZX0+YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuSGlnaGxpZ2h0KCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29tcG9uZW50Py5ob3N0ICYmIHRoaXMuaW5zcGVjdG9yRGl2KSB7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS53aWR0aCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLmhlaWdodCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLnRvcCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNhbmNlbEV2ZW50KGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgdGhlIGluc3BlY3RvciBkaXYgYW5kIGFkZCBpdCB0byB0aGUgRE9NLlxuICAgKi9cbiAgcHVibGljIHByZXBhcmVJbnNwZWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuaW5zcGVjdG9yRGl2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluc3BlY3RvckNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgaW5zcGVjdG9yQ3NzLnRleHRDb250ZW50ID0gYFxuICAgICAgLiR7SU5TUEVDVE9SX0NMQVNTfSB7XG4gICAgICAgIHotaW5kZXg6IDk5OTk5OTk7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTA0LCAxODIsIDI1NSwgMC4zNSk7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLiR7SU5TUEVDVE9SX0NMQVNTfSA+IHNwYW4ge1xuICAgICAgICBib3R0b206IC0yNXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwNCwgMTgyLCAyNTUsIDAuOSk7O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfWA7XG5cbiAgICBjb25zdCBpbnNwZWN0b3JEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb25zdCBpbnNwZWN0b3JTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIGluc3BlY3RvckRpdi5hcHBlbmRDaGlsZChpbnNwZWN0b3JTcGFuKTtcbiAgICBpbnNwZWN0b3JEaXYuY2xhc3NMaXN0LmFkZChJTlNQRUNUT1JfQ0xBU1MpO1xuXG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpbnNwZWN0b3JDc3MpO1xuICAgIHRoaXMuaW5zcGVjdG9yRGl2ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnNwZWN0b3JEaXYpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgaW5zcGVjdG9yLlxuICAgKiBAcGFyYW0gaXNSdW5uaW5nIHRydWUgaWYgdGhlIGluc3BlY3RvciBpcyBydW5uaW5nXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlSW5zcGVjdG9yKGlzUnVubmluZzogYm9vbGVhbikge1xuICAgIGlmIChpc1J1bm5pbmcpIHtcbiAgICAgIHRoaXMuc3RhcnRJbnNwZWN0aW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcEluc3BlY3RpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RvcEluc3BlY3RpbmcoKSB7XG4gICAgdGhpcy51bkhpZ2hsaWdodCgpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCB0aGlzLmVsZW1lbnRNb3VzZU92ZXJDYWxsYmFjaywgdHJ1ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5lbGVtZW50Q2xpY2tDYWxsYmFjaywgdHJ1ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgdGhpcy5jYW5jZWxFdmVudENhbGxiYWNrLCB0cnVlKTtcbiAgfVxufVxuIl19
@@ -1,11 +1,11 @@
1
- import { inject, Injectable, Optional } from '@angular/core';
2
- import { LoggerService } from '@o3r/logger';
3
- import { combineLatest, distinctUntilChanged, firstValueFrom, map, of, Subject, Subscription, withLatestFrom } from 'rxjs';
4
- import { deletePlaceholderTemplateEntity, selectPlaceholderRequestEntities, selectPlaceholderTemplateEntities, setPlaceholderRequestEntityFromUrl, setPlaceholderTemplateEntity, updatePlaceholderRequestEntity } from '@o3r/components';
1
+ import { Injectable, Injector, Optional } from '@angular/core';
5
2
  import { select, Store } from '@ngrx/store';
3
+ import { deletePlaceholderTemplateEntity, selectPlaceholderRequestEntities, selectPlaceholderTemplateEntities, setPlaceholderRequestEntityFromUrl, setPlaceholderTemplateEntity, updatePlaceholderRequestEntity } from '@o3r/components';
4
+ import { DynamicContentService } from '@o3r/dynamic-content';
6
5
  import { LocalizationService } from '@o3r/localization';
6
+ import { LoggerService } from '@o3r/logger';
7
+ import { combineLatest, distinctUntilChanged, firstValueFrom, map, of, startWith, Subject, Subscription, withLatestFrom } from 'rxjs';
7
8
  import { RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE } from './placeholder.interfaces';
8
- import { DynamicContentService } from '@o3r/dynamic-content';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@ngrx/store";
11
11
  import * as i2 from "@o3r/logger";
@@ -14,14 +14,18 @@ import * as i3 from "@o3r/localization";
14
14
  * Service to handle async PlaceholderTemplate actions
15
15
  */
16
16
  export class PlaceholderRulesEngineActionHandler {
17
- constructor(store, logger, translateService) {
17
+ constructor(store, logger, injector, translateService) {
18
18
  this.logger = logger;
19
+ this.injector = injector;
19
20
  this.subscription = new Subscription();
20
21
  this.placeholdersActions$ = new Subject();
21
22
  /** @inheritdoc */
22
23
  this.supportingActions = [RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE];
23
- const lang$ = translateService ? translateService.getTranslateService().onLangChange.pipe(map(({ lang }) => lang), distinctUntilChanged()) : of(null);
24
- const filteredActions$ = combineLatest([lang$, this.placeholdersActions$.pipe(distinctUntilChanged((prev, next) => JSON.stringify(prev) === JSON.stringify(next)))]).pipe(withLatestFrom(combineLatest([store.pipe(select(selectPlaceholderTemplateEntities)), store.pipe(select(selectPlaceholderRequestEntities))])), map(([langAndTemplatesUrls, storedPlaceholdersAndRequests]) => {
24
+ const lang$ = translateService ? translateService.getTranslateService().onLangChange.pipe(map(({ lang }) => lang), startWith(translateService.getCurrentLanguage()), distinctUntilChanged()) : of(null);
25
+ const filteredActions$ = combineLatest([
26
+ lang$,
27
+ this.placeholdersActions$.pipe(distinctUntilChanged((prev, next) => JSON.stringify(prev) === JSON.stringify(next)))
28
+ ]).pipe(withLatestFrom(combineLatest([store.pipe(select(selectPlaceholderTemplateEntities)), store.pipe(select(selectPlaceholderRequestEntities))])), map(([langAndTemplatesUrls, storedPlaceholdersAndRequests]) => {
25
29
  const [lang, placeholderActions] = langAndTemplatesUrls;
26
30
  const storedPlaceholders = storedPlaceholdersAndRequests[0] || {};
27
31
  const storedPlaceholderRequests = storedPlaceholdersAndRequests[1] || {};
@@ -126,7 +130,7 @@ export class PlaceholderRulesEngineActionHandler {
126
130
  * @param url
127
131
  */
128
132
  async retrieveTemplate(url) {
129
- const resolvedUrl$ = inject(DynamicContentService, { optional: true })?.getContentPathStream(url) || of(url);
133
+ const resolvedUrl$ = this.injector.get(DynamicContentService, null, { optional: true })?.getContentPathStream(url) || of(url);
130
134
  const fullUrl = await firstValueFrom(resolvedUrl$);
131
135
  return fetch(fullUrl).then((response) => response.json());
132
136
  }
@@ -143,12 +147,12 @@ export class PlaceholderRulesEngineActionHandler {
143
147
  ngOnDestroy() {
144
148
  this.subscription.unsubscribe();
145
149
  }
146
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PlaceholderRulesEngineActionHandler, deps: [{ token: i1.Store }, { token: i2.LoggerService }, { token: i3.LocalizationService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
147
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PlaceholderRulesEngineActionHandler }); }
150
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderRulesEngineActionHandler, deps: [{ token: i1.Store }, { token: i2.LoggerService }, { token: i0.Injector }, { token: i3.LocalizationService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
151
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderRulesEngineActionHandler }); }
148
152
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PlaceholderRulesEngineActionHandler, decorators: [{
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderRulesEngineActionHandler, decorators: [{
150
154
  type: Injectable
151
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.LoggerService }, { type: i3.LocalizationService, decorators: [{
155
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.LoggerService }, { type: i0.Injector }, { type: i3.LocalizationService, decorators: [{
152
156
  type: Optional
153
157
  }] }] });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuYWN0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMtZW5naW5lL3BsYWNlaG9sZGVyLmFjdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0gsT0FBTyxFQUNMLCtCQUErQixFQUcvQixnQ0FBZ0MsRUFDaEMsaUNBQWlDLEVBQ2pDLGtDQUFrQyxFQUNsQyw0QkFBNEIsRUFDNUIsOEJBQThCLEVBQy9CLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFnQywyQ0FBMkMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQUU3RDs7R0FFRztBQUVILE1BQU0sT0FBTyxtQ0FBbUM7SUFTOUMsWUFBWSxLQUFzQyxFQUFtQixNQUFxQixFQUFjLGdCQUFzQztRQUF6RSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBUGhGLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsQyx5QkFBb0IsR0FBZ0YsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU1SCxrQkFBa0I7UUFDRixzQkFBaUIsR0FBRyxDQUFDLDJDQUEyQyxDQUFVLENBQUM7UUFJekYsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdkYsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ3ZCLG9CQUFvQixFQUFFLENBQ3ZCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUViLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQzNFLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMzRixjQUFjLENBQ1osYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzdILEVBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSw2QkFBNkIsQ0FBQyxFQUFFLEVBQUU7WUFDNUQsTUFBTSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO1lBQ3hELE1BQU0sa0JBQWtCLEdBQUcsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xFLE1BQU0seUJBQXlCLEdBQUcsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pFLE1BQU0sc0JBQXNCLEdBQThDLEVBQUUsQ0FBQztZQUM3RSw2REFBNkQ7WUFDN0QsTUFBTSxRQUFRLEdBQTRCLEVBQUUsQ0FBQztZQUM3QywwRUFBMEU7WUFDMUUsTUFBTSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsRUFBRTtnQkFDakYsTUFBTSx1QkFBdUIsR0FBRztvQkFDOUIsTUFBTSxFQUFFLGlCQUFpQixDQUFDLFdBQVc7b0JBQ3JDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO2lCQUNyQyxDQUFDO2dCQUNGLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUN4QyxHQUFHLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7aUJBQ3BFO3FCQUFNO29CQUNMLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7aUJBQ2xFO2dCQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2pGLHFFQUFxRTtnQkFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDO3VCQUNyRyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUUsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLEVBQUU7b0JBQzNGLHNCQUFzQixDQUFDLElBQUksQ0FBQzt3QkFDMUIsTUFBTSxFQUFFLGlCQUFpQixDQUFDLFdBQVc7d0JBQ3JDLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztxQkFDMUUsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQy9DLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxFQUFFLEVBQStELENBQUMsQ0FBQztZQUNwRSxpREFBaUQ7WUFDakQsTUFBTSw0QkFBNEIsR0FBYSxFQUFFLENBQUM7WUFDbEQsK0JBQStCO1lBQy9CLE1BQU0sMkJBQTJCLEdBQWEsRUFBRSxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyw4QkFBOEIsRUFBRSxFQUFFO2dCQUNoRixNQUFNLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2dCQUN6RSxNQUFNLGFBQWEsR0FBRyxDQUFDLHlCQUF5QixJQUFJLHlCQUF5QixDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsOEJBQThCLENBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDekwsSUFBSSxDQUFDLHVCQUF1QixJQUFJLGFBQWEsRUFBRTtvQkFDN0MsNEJBQTRCLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUM7aUJBQ25FO3FCQUFNLElBQUksdUJBQXVCLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3BELDJCQUEyQixDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2lCQUNsRTtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsK0ZBQStGO1lBQy9GLE1BQU0sa0NBQWtDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztpQkFDdkUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBRWxFLE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLDJCQUEyQixFQUFFLHFCQUFxQixFQUFFLEVBQUU7Z0JBQ3BJLHdFQUF3RTtnQkFDeEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDO29CQUM1QyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBRSxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakosMkJBQTJCLENBQUMsSUFBSSxDQUFDO3dCQUMvQixFQUFFLEVBQUUscUJBQXFCO3dCQUN6QixnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQztxQkFDL0QsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELE9BQU8sMkJBQTJCLENBQUM7WUFDckMsQ0FBQyxFQUFFLEVBQWdGLENBQUMsQ0FBQztZQUNyRixPQUFPO2dCQUNMLGtDQUFrQztnQkFDbEMsNEJBQTRCO2dCQUM1QiwyQkFBMkI7Z0JBQzNCLDRCQUE0QjtnQkFDNUIsc0JBQXNCO2FBQ3ZCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtZQUN2RSxtQkFBbUIsQ0FBQyxrQ0FBa0MsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FDN0UsS0FBSyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQztnQkFDN0MsRUFBRSxFQUFFLGFBQWE7YUFDbEIsQ0FBQyxDQUFDLENBQ0osQ0FBQztZQUNGLG1CQUFtQixDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxFQUFFO2dCQUNyRixLQUFLLENBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsTUFBTSxFQUFFLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLENBQUMsQ0FBQyxDQUFDO1lBQ0gsbUJBQW1CLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLEVBQUU7Z0JBQ3JGLEtBQUssQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9HLENBQUMsQ0FBQyxDQUFDO1lBQ0gsbUJBQW1CLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLEVBQUU7Z0JBQ25GLEtBQUssQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdHLENBQUMsQ0FBQyxDQUFDO1lBQ0gsbUJBQW1CLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7Z0JBQ3pFLEtBQUssQ0FBQyxRQUFRLENBQUMsa0NBQWtDLENBQUM7b0JBQ2hELFdBQVcsRUFBRSxxQkFBcUIsQ0FBQyxXQUFXO29CQUM5QyxFQUFFLEVBQUUscUJBQXFCLENBQUMsTUFBTTtvQkFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUM7aUJBQy9ELENBQUMsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxrQkFBa0IsQ0FBQyxHQUFXLEVBQUUsUUFBdUI7UUFDL0QsSUFBSSxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7T0FHRztJQUNPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFXO1FBQzFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3RyxNQUFNLE9BQU8sR0FBRyxNQUFNLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0I7SUFDWCxjQUFjLENBQUMsT0FBdUM7UUFDM0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7WUFDbkMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUM7U0FDL0IsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztpSUFySlUsbUNBQW1DO3FJQUFuQyxtQ0FBbUM7OzJGQUFuQyxtQ0FBbUM7a0JBRC9DLFVBQVU7OzBCQVVvRixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlciB9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0VmFsdWVGcm9tLCBtYXAsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWxldGVQbGFjZWhvbGRlclRlbXBsYXRlRW50aXR5LFxuICBQbGFjZWhvbGRlclJlcXVlc3RSZXBseSxcbiAgUGxhY2Vob2xkZXJUZW1wbGF0ZVN0b3JlLFxuICBzZWxlY3RQbGFjZWhvbGRlclJlcXVlc3RFbnRpdGllcyxcbiAgc2VsZWN0UGxhY2Vob2xkZXJUZW1wbGF0ZUVudGl0aWVzLFxuICBzZXRQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHlGcm9tVXJsLFxuICBzZXRQbGFjZWhvbGRlclRlbXBsYXRlRW50aXR5LFxuICB1cGRhdGVQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHlcbn0gZnJvbSAnQG8zci9jb21wb25lbnRzJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQG8zci9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHsgQWN0aW9uVXBkYXRlUGxhY2Vob2xkZXJCbG9jaywgUlVMRVNfRU5HSU5FX1BMQUNFSE9MREVSX1VQREFURV9BQ1RJT05fVFlQRSB9IGZyb20gJy4vcGxhY2Vob2xkZXIuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEeW5hbWljQ29udGVudFNlcnZpY2UgfSBmcm9tICdAbzNyL2R5bmFtaWMtY29udGVudCc7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgYXN5bmMgUGxhY2Vob2xkZXJUZW1wbGF0ZSBhY3Rpb25zXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQbGFjZWhvbGRlclJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlciBpbXBsZW1lbnRzIE9uRGVzdHJveSwgUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyPEFjdGlvblVwZGF0ZVBsYWNlaG9sZGVyQmxvY2s+IHtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlcnNBY3Rpb25zJDogU3ViamVjdDx7IHBsYWNlaG9sZGVySWQ6IHN0cmluZzsgdGVtcGxhdGVVcmw6IHN0cmluZzsgcHJpb3JpdHk6IG51bWJlciB9W10+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRpbmdBY3Rpb25zID0gW1JVTEVTX0VOR0lORV9QTEFDRUhPTERFUl9VUERBVEVfQUNUSU9OX1RZUEVdIGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZTxQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmU+LCBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgQE9wdGlvbmFsKCkgdHJhbnNsYXRlU2VydmljZT86IExvY2FsaXphdGlvblNlcnZpY2UpIHtcblxuICAgIGNvbnN0IGxhbmckID0gdHJhbnNsYXRlU2VydmljZSA/IHRyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRlU2VydmljZSgpLm9uTGFuZ0NoYW5nZS5waXBlKFxuICAgICAgbWFwKCh7IGxhbmcgfSkgPT4gbGFuZyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKSA6IG9mKG51bGwpO1xuXG4gICAgY29uc3QgZmlsdGVyZWRBY3Rpb25zJCA9IGNvbWJpbmVMYXRlc3QoW2xhbmckLCB0aGlzLnBsYWNlaG9sZGVyc0FjdGlvbnMkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgbmV4dCkgPT4gSlNPTi5zdHJpbmdpZnkocHJldikgPT09IEpTT04uc3RyaW5naWZ5KG5leHQpKSldKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20oXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW3N0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdFBsYWNlaG9sZGVyVGVtcGxhdGVFbnRpdGllcykpLCBzdG9yZS5waXBlKHNlbGVjdChzZWxlY3RQbGFjZWhvbGRlclJlcXVlc3RFbnRpdGllcykpXSlcbiAgICAgICksXG4gICAgICBtYXAoKFtsYW5nQW5kVGVtcGxhdGVzVXJscywgc3RvcmVkUGxhY2Vob2xkZXJzQW5kUmVxdWVzdHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IFtsYW5nLCBwbGFjZWhvbGRlckFjdGlvbnNdID0gbGFuZ0FuZFRlbXBsYXRlc1VybHM7XG4gICAgICAgIGNvbnN0IHN0b3JlZFBsYWNlaG9sZGVycyA9IHN0b3JlZFBsYWNlaG9sZGVyc0FuZFJlcXVlc3RzWzBdIHx8IHt9O1xuICAgICAgICBjb25zdCBzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RzID0gc3RvcmVkUGxhY2Vob2xkZXJzQW5kUmVxdWVzdHNbMV0gfHwge307XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyTmV3UmVxdWVzdHM6IHsgcmF3VXJsOiBzdHJpbmc7IHJlc29sdmVkVXJsOiBzdHJpbmcgfVtdID0gW107XG4gICAgICAgIC8vIFN0b3JlcyBhbGwgcmF3IFVybHMgdXNlZCBmcm9tIHRoZSBjdXJyZW50IGVuZ2luZSBleGVjdXRpb25cbiAgICAgICAgY29uc3QgdXNlZFVybHM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gICAgICAgIC8vIEdldCBhbGwgVXJscyB0aGF0IG5lZWRzIHRvIGJlIHJlc29sdmVkIGZyb20gY3VycmVudCBydWxlcyBlbmdpbmUgb3V0cHV0XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyc1RlbXBsYXRlcyA9IHBsYWNlaG9sZGVyQWN0aW9ucy5yZWR1Y2UoKGFjYywgcGxhY2Vob2xkZXJBY3Rpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnNUZW1wbGF0ZVVybCA9IHtcbiAgICAgICAgICAgIHJhd1VybDogcGxhY2Vob2xkZXJBY3Rpb24udGVtcGxhdGVVcmwsXG4gICAgICAgICAgICBwcmlvcml0eTogcGxhY2Vob2xkZXJBY3Rpb24ucHJpb3JpdHlcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChhY2NbcGxhY2Vob2xkZXJBY3Rpb24ucGxhY2Vob2xkZXJJZF0pIHtcbiAgICAgICAgICAgIGFjY1twbGFjZWhvbGRlckFjdGlvbi5wbGFjZWhvbGRlcklkXS5wdXNoKHBsYWNlaG9sZGVyc1RlbXBsYXRlVXJsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWNjW3BsYWNlaG9sZGVyQWN0aW9uLnBsYWNlaG9sZGVySWRdID0gW3BsYWNlaG9sZGVyc1RlbXBsYXRlVXJsXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRVcmwgPSB0aGlzLnJlc29sdmVVcmxXaXRoTGFuZyhwbGFjZWhvbGRlckFjdGlvbi50ZW1wbGF0ZVVybCwgbGFuZyk7XG4gICAgICAgICAgLy8gRmlsdGVycyBkdXBsaWNhdGVzIGFuZCByZXNvbHZlZCB1cmxzIHRoYXQgYXJlIGFscmVhZHkgaW4gdGhlIHN0b3JlXG4gICAgICAgICAgaWYgKCF1c2VkVXJsc1twbGFjZWhvbGRlckFjdGlvbi50ZW1wbGF0ZVVybF0gJiYgKCFzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RzW3BsYWNlaG9sZGVyQWN0aW9uLnRlbXBsYXRlVXJsXVxuICAgICAgICAgICAgfHwgc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0c1twbGFjZWhvbGRlckFjdGlvbi50ZW1wbGF0ZVVybF0hLnJlc29sdmVkVXJsICE9PSByZXNvbHZlZFVybCkpIHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyTmV3UmVxdWVzdHMucHVzaCh7XG4gICAgICAgICAgICAgIHJhd1VybDogcGxhY2Vob2xkZXJBY3Rpb24udGVtcGxhdGVVcmwsXG4gICAgICAgICAgICAgIHJlc29sdmVkVXJsOiB0aGlzLnJlc29sdmVVcmxXaXRoTGFuZyhwbGFjZWhvbGRlckFjdGlvbi50ZW1wbGF0ZVVybCwgbGFuZylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB1c2VkVXJsc1twbGFjZWhvbGRlckFjdGlvbi50ZW1wbGF0ZVVybF0gPSB0cnVlO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9IGFzIHsgW2tleTogc3RyaW5nXTogeyByYXdVcmw6IHN0cmluZzsgcHJpb3JpdHk6IG51bWJlciB9W10gfSk7XG4gICAgICAgIC8vIFVybHMgbm90IHVzZWQgYW55bW9yZSBhbmQgbm90IGFscmVhZHkgZGlzYWJsZWRcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJSZXF1ZXN0c1RvRGlzYWJsZTogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgLy8gVXJscyB1c2VkIHRoYXQgd2VyZSBkaXNhYmxlZFxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlclJlcXVlc3RzVG9FbmFibGU6IHN0cmluZ1tdID0gW107XG4gICAgICAgIE9iamVjdC5rZXlzKHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdHMpLmZvckVhY2goKHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdFJhd1VybCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVzZWRGcm9tRW5naW5lSXRlcmF0aW9uID0gdXNlZFVybHNbc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0UmF3VXJsXTtcbiAgICAgICAgICBjb25zdCB1c2VkRnJvbVN0b3JlID0gKHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdHMgJiYgc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0c1tzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RSYXdVcmxdKSA/IHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdHNbc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0UmF3VXJsXSEudXNlZCA6IGZhbHNlO1xuICAgICAgICAgIGlmICghdXNlZEZyb21FbmdpbmVJdGVyYXRpb24gJiYgdXNlZEZyb21TdG9yZSkge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXJSZXF1ZXN0c1RvRGlzYWJsZS5wdXNoKHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdFJhd1VybCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh1c2VkRnJvbUVuZ2luZUl0ZXJhdGlvbiAmJiAhdXNlZEZyb21TdG9yZSkge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXJSZXF1ZXN0c1RvRW5hYmxlLnB1c2goc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0UmF3VXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBQbGFjZWhvbGRlciB0aGF0IGFyZSBubyBsb25nZXIgZmlsbGVkIGJ5IHRoZSBjdXJyZW50IGVuZ2luZSBleGVjdXRpb24gb3V0cHV0IHdpbGwgYmUgY2xlYXJlZFxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnNUZW1wbGF0ZXNUb0JlQ2xlYW5lZFVwID0gT2JqZWN0LmtleXMoc3RvcmVkUGxhY2Vob2xkZXJzKVxuICAgICAgICAgIC5maWx0ZXIocGxhY2Vob2xkZXJJZCA9PiAhcGxhY2Vob2xkZXJzVGVtcGxhdGVzW3BsYWNlaG9sZGVySWRdKTtcblxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnNUZW1wbGF0ZXNUb0JlU2V0ID0gT2JqZWN0LmtleXMocGxhY2Vob2xkZXJzVGVtcGxhdGVzKS5yZWR1Y2UoKGNoYW5nZWRQbGFjZWhvbGRlclRlbXBsYXRlcywgcGxhY2Vob2xkZXJUZW1wbGF0ZUlkKSA9PiB7XG4gICAgICAgICAgLy8gQ2FjaGluZyBpZiB0aGUgcGxhY2Vob2xkZXIgdGVtcGxhdGUgYWxyZWFkeSBleGlzdHMgd2l0aCB0aGUgc2FtZSB1cmxzXG4gICAgICAgICAgaWYgKCFzdG9yZWRQbGFjZWhvbGRlcnNbcGxhY2Vob2xkZXJUZW1wbGF0ZUlkXSB8fFxuICAgICAgICAgICAgIShKU09OLnN0cmluZ2lmeShzdG9yZWRQbGFjZWhvbGRlcnNbcGxhY2Vob2xkZXJUZW1wbGF0ZUlkXSEudXJsc1dpdGhQcmlvcml0eSkgPT09IEpTT04uc3RyaW5naWZ5KHBsYWNlaG9sZGVyc1RlbXBsYXRlc1twbGFjZWhvbGRlclRlbXBsYXRlSWRdKSkpIHtcbiAgICAgICAgICAgIGNoYW5nZWRQbGFjZWhvbGRlclRlbXBsYXRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IHBsYWNlaG9sZGVyVGVtcGxhdGVJZCxcbiAgICAgICAgICAgICAgdXJsc1dpdGhQcmlvcml0eTogcGxhY2Vob2xkZXJzVGVtcGxhdGVzW3BsYWNlaG9sZGVyVGVtcGxhdGVJZF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY2hhbmdlZFBsYWNlaG9sZGVyVGVtcGxhdGVzO1xuICAgICAgICB9LCBbXSBhcyB7IGlkOiBzdHJpbmc7IHVybHNXaXRoUHJpb3JpdHk6IHsgcmF3VXJsOiBzdHJpbmc7IHByaW9yaXR5OiBudW1iZXIgfVtdIH1bXSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2Vob2xkZXJzVGVtcGxhdGVzVG9CZUNsZWFuZWRVcCxcbiAgICAgICAgICBwbGFjZWhvbGRlclJlcXVlc3RzVG9EaXNhYmxlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyUmVxdWVzdHNUb0VuYWJsZSxcbiAgICAgICAgICBwbGFjZWhvbGRlcnNUZW1wbGF0ZXNUb0JlU2V0LFxuICAgICAgICAgIHBsYWNlaG9sZGVyTmV3UmVxdWVzdHNcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoZmlsdGVyZWRBY3Rpb25zJC5zdWJzY3JpYmUoKHBsYWNlaG9sZGVyc1VwZGF0ZXMpID0+IHtcbiAgICAgIHBsYWNlaG9sZGVyc1VwZGF0ZXMucGxhY2Vob2xkZXJzVGVtcGxhdGVzVG9CZUNsZWFuZWRVcC5mb3JFYWNoKHBsYWNlaG9sZGVySWQgPT5cbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goZGVsZXRlUGxhY2Vob2xkZXJUZW1wbGF0ZUVudGl0eSh7XG4gICAgICAgICAgaWQ6IHBsYWNlaG9sZGVySWRcbiAgICAgICAgfSkpXG4gICAgICApO1xuICAgICAgcGxhY2Vob2xkZXJzVXBkYXRlcy5wbGFjZWhvbGRlcnNUZW1wbGF0ZXNUb0JlU2V0LmZvckVhY2gocGxhY2Vob2xkZXJzVGVtcGxhdGVUb0JlU2V0ID0+IHtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goc2V0UGxhY2Vob2xkZXJUZW1wbGF0ZUVudGl0eSh7IGVudGl0eTogcGxhY2Vob2xkZXJzVGVtcGxhdGVUb0JlU2V0IH0pKTtcbiAgICAgIH0pO1xuICAgICAgcGxhY2Vob2xkZXJzVXBkYXRlcy5wbGFjZWhvbGRlclJlcXVlc3RzVG9EaXNhYmxlLmZvckVhY2gocGxhY2Vob2xkZXJSZXF1ZXN0VG9EaXNhYmxlID0+IHtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2godXBkYXRlUGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5KHsgZW50aXR5OiB7IGlkOiBwbGFjZWhvbGRlclJlcXVlc3RUb0Rpc2FibGUsIHVzZWQ6IGZhbHNlIH0gfSkpO1xuICAgICAgfSk7XG4gICAgICBwbGFjZWhvbGRlcnNVcGRhdGVzLnBsYWNlaG9sZGVyUmVxdWVzdHNUb0VuYWJsZS5mb3JFYWNoKHBsYWNlaG9sZGVyUmVxdWVzdFRvRW5hYmxlID0+IHtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2godXBkYXRlUGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5KHsgZW50aXR5OiB7IGlkOiBwbGFjZWhvbGRlclJlcXVlc3RUb0VuYWJsZSwgdXNlZDogdHJ1ZSB9IH0pKTtcbiAgICAgIH0pO1xuICAgICAgcGxhY2Vob2xkZXJzVXBkYXRlcy5wbGFjZWhvbGRlck5ld1JlcXVlc3RzLmZvckVhY2gocGxhY2Vob2xkZXJOZXdSZXF1ZXN0ID0+IHtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goc2V0UGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5RnJvbVVybCh7XG4gICAgICAgICAgcmVzb2x2ZWRVcmw6IHBsYWNlaG9sZGVyTmV3UmVxdWVzdC5yZXNvbHZlZFVybCxcbiAgICAgICAgICBpZDogcGxhY2Vob2xkZXJOZXdSZXF1ZXN0LnJhd1VybCxcbiAgICAgICAgICBjYWxsOiB0aGlzLnJldHJpZXZlVGVtcGxhdGUocGxhY2Vob2xkZXJOZXdSZXF1ZXN0LnJlc29sdmVkVXJsKVxuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogTG9jYWxpemUgdGhlIHVybCwgcmVwbGFjaW5nIHRoZSBsYW5ndWFnZSBtYXJrZXJcbiAgICogQHBhcmFtIHVybFxuICAgKiBAcGFyYW0gbGFuZ3VhZ2VcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlVXJsV2l0aExhbmcodXJsOiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAoIWxhbmd1YWdlICYmIHVybC5pbmNsdWRlcygnW0xBTkdVQUdFXScpKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKGBNaXNzaW5nIGxhbmd1YWdlIHdoZW4gdHJ5aW5nIHRvIHJlc29sdmUgJHt1cmx9YCk7XG4gICAgfVxuICAgIHJldHVybiBsYW5ndWFnZSA/IHVybC5yZXBsYWNlKC9cXFtMQU5HVUFHRV0vZywgbGFuZ3VhZ2UpIDogdXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRlbXBsYXRlIGFzIGpzb24gZnJvbSBhIGdpdmVuIHVybFxuICAgKiBAcGFyYW0gdXJsXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgcmV0cmlldmVUZW1wbGF0ZSh1cmw6IHN0cmluZyk6IFByb21pc2U8UGxhY2Vob2xkZXJSZXF1ZXN0UmVwbHk+IHtcbiAgICBjb25zdCByZXNvbHZlZFVybCQgPSBpbmplY3QoRHluYW1pY0NvbnRlbnRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5nZXRDb250ZW50UGF0aFN0cmVhbSh1cmwpIHx8IG9mKHVybCk7XG4gICAgY29uc3QgZnVsbFVybCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHJlc29sdmVkVXJsJCk7XG4gICAgcmV0dXJuIGZldGNoKGZ1bGxVcmwpLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBleGVjdXRlQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25VcGRhdGVQbGFjZWhvbGRlckJsb2NrW10pIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiAoe1xuICAgICAgcGxhY2Vob2xkZXJJZDogYWN0aW9uLnBsYWNlaG9sZGVySWQsXG4gICAgICB0ZW1wbGF0ZVVybDogYWN0aW9uLnZhbHVlLFxuICAgICAgcHJpb3JpdHk6IGFjdGlvbi5wcmlvcml0eSB8fCAwXG4gICAgfSkpO1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlcnNBY3Rpb25zJC5uZXh0KHRlbXBsYXRlcyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuYWN0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMtZW5naW5lL3BsYWNlaG9sZGVyLmFjdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQ0wsK0JBQStCLEVBRy9CLGdDQUFnQyxFQUNoQyxpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLDRCQUE0QixFQUM1Qiw4QkFBOEIsRUFDL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RJLE9BQU8sRUFBZ0MsMkNBQTJDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFFckg7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUNBQW1DO0lBUzlDLFlBQ0UsS0FBc0MsRUFDckIsTUFBcUIsRUFDckIsUUFBa0IsRUFDdkIsZ0JBQXNDO1FBRmpDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVYzQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEMseUJBQW9CLEdBQWdGLElBQUksT0FBTyxFQUFFLENB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OzJGQUFuQyxtQ0FBbUM7a0JBRC9DLFVBQVU7OzBCQWNOLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB0eXBlIHsgUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyIH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7XG4gIGRlbGV0ZVBsYWNlaG9sZGVyVGVtcGxhdGVFbnRpdHksXG4gIFBsYWNlaG9sZGVyUmVxdWVzdFJlcGx5LFxuICBQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmUsXG4gIHNlbGVjdFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0aWVzLFxuICBzZWxlY3RQbGFjZWhvbGRlclRlbXBsYXRlRW50aXRpZXMsXG4gIHNldFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eUZyb21VcmwsXG4gIHNldFBsYWNlaG9sZGVyVGVtcGxhdGVFbnRpdHksXG4gIHVwZGF0ZVBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eVxufSBmcm9tICdAbzNyL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnQG8zci9keW5hbWljLWNvbnRlbnQnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BvM3IvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICdAbzNyL2xvZ2dlcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgb2YsIHN0YXJ0V2l0aCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aW9uVXBkYXRlUGxhY2Vob2xkZXJCbG9jaywgUlVMRVNfRU5HSU5FX1BMQUNFSE9MREVSX1VQREFURV9BQ1RJT05fVFlQRSB9IGZyb20gJy4vcGxhY2Vob2xkZXIuaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgYXN5bmMgUGxhY2Vob2xkZXJUZW1wbGF0ZSBhY3Rpb25zXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQbGFjZWhvbGRlclJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlciBpbXBsZW1lbnRzIE9uRGVzdHJveSwgUnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyPEFjdGlvblVwZGF0ZVBsYWNlaG9sZGVyQmxvY2s+IHtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlcnNBY3Rpb25zJDogU3ViamVjdDx7IHBsYWNlaG9sZGVySWQ6IHN0cmluZzsgdGVtcGxhdGVVcmw6IHN0cmluZzsgcHJpb3JpdHk6IG51bWJlciB9W10+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRpbmdBY3Rpb25zID0gW1JVTEVTX0VOR0lORV9QTEFDRUhPTERFUl9VUERBVEVfQUNUSU9OX1RZUEVdIGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZTxQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHRyYW5zbGF0ZVNlcnZpY2U/OiBMb2NhbGl6YXRpb25TZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IGxhbmckID0gdHJhbnNsYXRlU2VydmljZSA/IHRyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRlU2VydmljZSgpLm9uTGFuZ0NoYW5nZS5waXBlKFxuICAgICAgbWFwKCh7IGxhbmcgfSkgPT4gbGFuZyksXG4gICAgICBzdGFydFdpdGgodHJhbnNsYXRlU2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKSA6IG9mKG51bGwpO1xuXG4gICAgY29uc3QgZmlsdGVyZWRBY3Rpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgbGFuZyQsXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyc0FjdGlvbnMkLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBuZXh0KSA9PiBKU09OLnN0cmluZ2lmeShwcmV2KSA9PT0gSlNPTi5zdHJpbmdpZnkobmV4dCkpXG4gICAgICApXG4gICAgXSkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtzdG9yZS5waXBlKHNlbGVjdChzZWxlY3RQbGFjZWhvbGRlclRlbXBsYXRlRW50aXRpZXMpKSwgc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0UGxhY2Vob2xkZXJSZXF1ZXN0RW50aXRpZXMpKV0pXG4gICAgICApLFxuICAgICAgbWFwKChbbGFuZ0FuZFRlbXBsYXRlc1VybHMsIHN0b3JlZFBsYWNlaG9sZGVyc0FuZFJlcXVlc3RzXSkgPT4ge1xuICAgICAgICBjb25zdCBbbGFuZywgcGxhY2Vob2xkZXJBY3Rpb25zXSA9IGxhbmdBbmRUZW1wbGF0ZXNVcmxzO1xuICAgICAgICBjb25zdCBzdG9yZWRQbGFjZWhvbGRlcnMgPSBzdG9yZWRQbGFjZWhvbGRlcnNBbmRSZXF1ZXN0c1swXSB8fCB7fTtcbiAgICAgICAgY29uc3Qgc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0cyA9IHN0b3JlZFBsYWNlaG9sZGVyc0FuZFJlcXVlc3RzWzFdIHx8IHt9O1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlck5ld1JlcXVlc3RzOiB7IHJhd1VybDogc3RyaW5nOyByZXNvbHZlZFVybDogc3RyaW5nIH1bXSA9IFtdO1xuICAgICAgICAvLyBTdG9yZXMgYWxsIHJhdyBVcmxzIHVzZWQgZnJvbSB0aGUgY3VycmVudCBlbmdpbmUgZXhlY3V0aW9uXG4gICAgICAgIGNvbnN0IHVzZWRVcmxzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgICAgICAvLyBHZXQgYWxsIFVybHMgdGhhdCBuZWVkcyB0byBiZSByZXNvbHZlZCBmcm9tIGN1cnJlbnQgcnVsZXMgZW5naW5lIG91dHB1dFxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnNUZW1wbGF0ZXMgPSBwbGFjZWhvbGRlckFjdGlvbnMucmVkdWNlKChhY2MsIHBsYWNlaG9sZGVyQWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzVGVtcGxhdGVVcmwgPSB7XG4gICAgICAgICAgICByYXdVcmw6IHBsYWNlaG9sZGVyQWN0aW9uLnRlbXBsYXRlVXJsLFxuICAgICAgICAgICAgcHJpb3JpdHk6IHBsYWNlaG9sZGVyQWN0aW9uLnByaW9yaXR5XG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAoYWNjW3BsYWNlaG9sZGVyQWN0aW9uLnBsYWNlaG9sZGVySWRdKSB7XG4gICAgICAgICAgICBhY2NbcGxhY2Vob2xkZXJBY3Rpb24ucGxhY2Vob2xkZXJJZF0ucHVzaChwbGFjZWhvbGRlcnNUZW1wbGF0ZVVybCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjY1twbGFjZWhvbGRlckFjdGlvbi5wbGFjZWhvbGRlcklkXSA9IFtwbGFjZWhvbGRlcnNUZW1wbGF0ZVVybF07XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkVXJsID0gdGhpcy5yZXNvbHZlVXJsV2l0aExhbmcocGxhY2Vob2xkZXJBY3Rpb24udGVtcGxhdGVVcmwsIGxhbmcpO1xuICAgICAgICAgIC8vIEZpbHRlcnMgZHVwbGljYXRlcyBhbmQgcmVzb2x2ZWQgdXJscyB0aGF0IGFyZSBhbHJlYWR5IGluIHRoZSBzdG9yZVxuICAgICAgICAgIGlmICghdXNlZFVybHNbcGxhY2Vob2xkZXJBY3Rpb24udGVtcGxhdGVVcmxdICYmICghc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0c1twbGFjZWhvbGRlckFjdGlvbi50ZW1wbGF0ZVVybF1cbiAgICAgICAgICAgIHx8IHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdHNbcGxhY2Vob2xkZXJBY3Rpb24udGVtcGxhdGVVcmxdIS5yZXNvbHZlZFVybCAhPT0gcmVzb2x2ZWRVcmwpKSB7XG4gICAgICAgICAgICBwbGFjZWhvbGRlck5ld1JlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgICByYXdVcmw6IHBsYWNlaG9sZGVyQWN0aW9uLnRlbXBsYXRlVXJsLFxuICAgICAgICAgICAgICByZXNvbHZlZFVybDogdGhpcy5yZXNvbHZlVXJsV2l0aExhbmcocGxhY2Vob2xkZXJBY3Rpb24udGVtcGxhdGVVcmwsIGxhbmcpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdXNlZFVybHNbcGxhY2Vob2xkZXJBY3Rpb24udGVtcGxhdGVVcmxdID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSBhcyB7IFtrZXk6IHN0cmluZ106IHsgcmF3VXJsOiBzdHJpbmc7IHByaW9yaXR5OiBudW1iZXIgfVtdIH0pO1xuICAgICAgICAvLyBVcmxzIG5vdCB1c2VkIGFueW1vcmUgYW5kIG5vdCBhbHJlYWR5IGRpc2FibGVkXG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyUmVxdWVzdHNUb0Rpc2FibGU6IHN0cmluZ1tdID0gW107XG4gICAgICAgIC8vIFVybHMgdXNlZCB0aGF0IHdlcmUgZGlzYWJsZWRcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJSZXF1ZXN0c1RvRW5hYmxlOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBPYmplY3Qua2V5cyhzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RzKS5mb3JFYWNoKChzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RSYXdVcmwpID0+IHtcbiAgICAgICAgICBjb25zdCB1c2VkRnJvbUVuZ2luZUl0ZXJhdGlvbiA9IHVzZWRVcmxzW3N0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdFJhd1VybF07XG4gICAgICAgICAgY29uc3QgdXNlZEZyb21TdG9yZSA9IChzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RzICYmIHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdHNbc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0UmF3VXJsXSkgPyBzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RzW3N0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdFJhd1VybF0hLnVzZWQgOiBmYWxzZTtcbiAgICAgICAgICBpZiAoIXVzZWRGcm9tRW5naW5lSXRlcmF0aW9uICYmIHVzZWRGcm9tU3RvcmUpIHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyUmVxdWVzdHNUb0Rpc2FibGUucHVzaChzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RSYXdVcmwpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodXNlZEZyb21FbmdpbmVJdGVyYXRpb24gJiYgIXVzZWRGcm9tU3RvcmUpIHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyUmVxdWVzdHNUb0VuYWJsZS5wdXNoKHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdFJhd1VybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gUGxhY2Vob2xkZXIgdGhhdCBhcmUgbm8gbG9uZ2VyIGZpbGxlZCBieSB0aGUgY3VycmVudCBlbmdpbmUgZXhlY3V0aW9uIG91dHB1dCB3aWxsIGJlIGNsZWFyZWRcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzVGVtcGxhdGVzVG9CZUNsZWFuZWRVcCA9IE9iamVjdC5rZXlzKHN0b3JlZFBsYWNlaG9sZGVycylcbiAgICAgICAgICAuZmlsdGVyKHBsYWNlaG9sZGVySWQgPT4gIXBsYWNlaG9sZGVyc1RlbXBsYXRlc1twbGFjZWhvbGRlcklkXSk7XG5cbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzVGVtcGxhdGVzVG9CZVNldCA9IE9iamVjdC5rZXlzKHBsYWNlaG9sZGVyc1RlbXBsYXRlcykucmVkdWNlKChjaGFuZ2VkUGxhY2Vob2xkZXJUZW1wbGF0ZXMsIHBsYWNlaG9sZGVyVGVtcGxhdGVJZCkgPT4ge1xuICAgICAgICAgIC8vIENhY2hpbmcgaWYgdGhlIHBsYWNlaG9sZGVyIHRlbXBsYXRlIGFscmVhZHkgZXhpc3RzIHdpdGggdGhlIHNhbWUgdXJsc1xuICAgICAgICAgIGlmICghc3RvcmVkUGxhY2Vob2xkZXJzW3BsYWNlaG9sZGVyVGVtcGxhdGVJZF0gfHxcbiAgICAgICAgICAgICEoSlNPTi5zdHJpbmdpZnkoc3RvcmVkUGxhY2Vob2xkZXJzW3BsYWNlaG9sZGVyVGVtcGxhdGVJZF0hLnVybHNXaXRoUHJpb3JpdHkpID09PSBKU09OLnN0cmluZ2lmeShwbGFjZWhvbGRlcnNUZW1wbGF0ZXNbcGxhY2Vob2xkZXJUZW1wbGF0ZUlkXSkpKSB7XG4gICAgICAgICAgICBjaGFuZ2VkUGxhY2Vob2xkZXJUZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgICAgIGlkOiBwbGFjZWhvbGRlclRlbXBsYXRlSWQsXG4gICAgICAgICAgICAgIHVybHNXaXRoUHJpb3JpdHk6IHBsYWNlaG9sZGVyc1RlbXBsYXRlc1twbGFjZWhvbGRlclRlbXBsYXRlSWRdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGNoYW5nZWRQbGFjZWhvbGRlclRlbXBsYXRlcztcbiAgICAgICAgfSwgW10gYXMgeyBpZDogc3RyaW5nOyB1cmxzV2l0aFByaW9yaXR5OiB7IHJhd1VybDogc3RyaW5nOyBwcmlvcml0eTogbnVtYmVyIH1bXSB9W10pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBsYWNlaG9sZGVyc1RlbXBsYXRlc1RvQmVDbGVhbmVkVXAsXG4gICAgICAgICAgcGxhY2Vob2xkZXJSZXF1ZXN0c1RvRGlzYWJsZSxcbiAgICAgICAgICBwbGFjZWhvbGRlclJlcXVlc3RzVG9FbmFibGUsXG4gICAgICAgICAgcGxhY2Vob2xkZXJzVGVtcGxhdGVzVG9CZVNldCxcbiAgICAgICAgICBwbGFjZWhvbGRlck5ld1JlcXVlc3RzXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKGZpbHRlcmVkQWN0aW9ucyQuc3Vic2NyaWJlKChwbGFjZWhvbGRlcnNVcGRhdGVzKSA9PiB7XG4gICAgICBwbGFjZWhvbGRlcnNVcGRhdGVzLnBsYWNlaG9sZGVyc1RlbXBsYXRlc1RvQmVDbGVhbmVkVXAuZm9yRWFjaChwbGFjZWhvbGRlcklkID0+XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKGRlbGV0ZVBsYWNlaG9sZGVyVGVtcGxhdGVFbnRpdHkoe1xuICAgICAgICAgIGlkOiBwbGFjZWhvbGRlcklkXG4gICAgICAgIH0pKVxuICAgICAgKTtcbiAgICAgIHBsYWNlaG9sZGVyc1VwZGF0ZXMucGxhY2Vob2xkZXJzVGVtcGxhdGVzVG9CZVNldC5mb3JFYWNoKHBsYWNlaG9sZGVyc1RlbXBsYXRlVG9CZVNldCA9PiB7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHNldFBsYWNlaG9sZGVyVGVtcGxhdGVFbnRpdHkoeyBlbnRpdHk6IHBsYWNlaG9sZGVyc1RlbXBsYXRlVG9CZVNldCB9KSk7XG4gICAgICB9KTtcbiAgICAgIHBsYWNlaG9sZGVyc1VwZGF0ZXMucGxhY2Vob2xkZXJSZXF1ZXN0c1RvRGlzYWJsZS5mb3JFYWNoKHBsYWNlaG9sZGVyUmVxdWVzdFRvRGlzYWJsZSA9PiB7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZVBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eSh7IGVudGl0eTogeyBpZDogcGxhY2Vob2xkZXJSZXF1ZXN0VG9EaXNhYmxlLCB1c2VkOiBmYWxzZSB9IH0pKTtcbiAgICAgIH0pO1xuICAgICAgcGxhY2Vob2xkZXJzVXBkYXRlcy5wbGFjZWhvbGRlclJlcXVlc3RzVG9FbmFibGUuZm9yRWFjaChwbGFjZWhvbGRlclJlcXVlc3RUb0VuYWJsZSA9PiB7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZVBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eSh7IGVudGl0eTogeyBpZDogcGxhY2Vob2xkZXJSZXF1ZXN0VG9FbmFibGUsIHVzZWQ6IHRydWUgfSB9KSk7XG4gICAgICB9KTtcbiAgICAgIHBsYWNlaG9sZGVyc1VwZGF0ZXMucGxhY2Vob2xkZXJOZXdSZXF1ZXN0cy5mb3JFYWNoKHBsYWNlaG9sZGVyTmV3UmVxdWVzdCA9PiB7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHNldFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eUZyb21Vcmwoe1xuICAgICAgICAgIHJlc29sdmVkVXJsOiBwbGFjZWhvbGRlck5ld1JlcXVlc3QucmVzb2x2ZWRVcmwsXG4gICAgICAgICAgaWQ6IHBsYWNlaG9sZGVyTmV3UmVxdWVzdC5yYXdVcmwsXG4gICAgICAgICAgY2FsbDogdGhpcy5yZXRyaWV2ZVRlbXBsYXRlKHBsYWNlaG9sZGVyTmV3UmVxdWVzdC5yZXNvbHZlZFVybClcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvY2FsaXplIHRoZSB1cmwsIHJlcGxhY2luZyB0aGUgbGFuZ3VhZ2UgbWFya2VyXG4gICAqIEBwYXJhbSB1cmxcbiAgICogQHBhcmFtIGxhbmd1YWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZVVybFdpdGhMYW5nKHVybDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFsYW5ndWFnZSAmJiB1cmwuaW5jbHVkZXMoJ1tMQU5HVUFHRV0nKSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgTWlzc2luZyBsYW5ndWFnZSB3aGVuIHRyeWluZyB0byByZXNvbHZlICR7dXJsfWApO1xuICAgIH1cbiAgICByZXR1cm4gbGFuZ3VhZ2UgPyB1cmwucmVwbGFjZSgvXFxbTEFOR1VBR0VdL2csIGxhbmd1YWdlKSA6IHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0ZW1wbGF0ZSBhcyBqc29uIGZyb20gYSBnaXZlbiB1cmxcbiAgICogQHBhcmFtIHVybFxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHJldHJpZXZlVGVtcGxhdGUodXJsOiBzdHJpbmcpOiBQcm9taXNlPFBsYWNlaG9sZGVyUmVxdWVzdFJlcGx5PiB7XG4gICAgY29uc3QgcmVzb2x2ZWRVcmwkID0gdGhpcy5pbmplY3Rvci5nZXQoRHluYW1pY0NvbnRlbnRTZXJ2aWNlLCBudWxsLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5nZXRDb250ZW50UGF0aFN0cmVhbSh1cmwpIHx8IG9mKHVybCk7XG4gICAgY29uc3QgZnVsbFVybCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHJlc29sdmVkVXJsJCk7XG4gICAgcmV0dXJuIGZldGNoKGZ1bGxVcmwpLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBleGVjdXRlQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25VcGRhdGVQbGFjZWhvbGRlckJsb2NrW10pIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiAoe1xuICAgICAgcGxhY2Vob2xkZXJJZDogYWN0aW9uLnBsYWNlaG9sZGVySWQsXG4gICAgICB0ZW1wbGF0ZVVybDogYWN0aW9uLnZhbHVlLFxuICAgICAgcHJpb3JpdHk6IGFjdGlvbi5wcmlvcml0eSB8fCAwXG4gICAgfSkpO1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlcnNBY3Rpb25zJC5uZXh0KHRlbXBsYXRlcyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==