ng-mocks 11.11.1 → 12.0.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 (107) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +55 -37
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +2 -1
  5. package/dist/lib/common/core.config.js +5 -2
  6. package/dist/lib/common/core.helpers.js +8 -5
  7. package/dist/lib/common/core.reflect.body-global.js +9 -7
  8. package/dist/lib/common/core.reflect.provided-in.js +1 -1
  9. package/dist/lib/common/mock-control-value-accessor-proxy.d.ts +7 -6
  10. package/dist/lib/common/mock-control-value-accessor.d.ts +4 -4
  11. package/dist/lib/common/mock-control-value-accessor.js +6 -4
  12. package/dist/lib/common/mock.js +7 -6
  13. package/dist/lib/common/ng-mocks-stack.js +23 -14
  14. package/dist/lib/common/ng-mocks-universe.js +5 -1
  15. package/dist/lib/mock/decorate-declaration.js +6 -5
  16. package/dist/lib/mock-builder/func.extract-tokens.d.ts +7 -0
  17. package/dist/lib/mock-builder/func.extract-tokens.js +46 -0
  18. package/dist/lib/mock-builder/mock-builder.js +67 -89
  19. package/dist/lib/mock-builder/mock-builder.performance.js +3 -1
  20. package/dist/lib/mock-builder/mock-builder.promise.js +8 -7
  21. package/dist/lib/mock-builder/performance/required-metadata.js +8 -7
  22. package/dist/lib/mock-builder/promise/add-missed-mock-declarations-and-modules.js +2 -2
  23. package/dist/lib/mock-builder/promise/create-ng-mocks-token.js +6 -5
  24. package/dist/lib/mock-builder/promise/get-root-providers-data.js +6 -5
  25. package/dist/lib/mock-builder/promise/handle-entry-components.js +1 -1
  26. package/dist/lib/mock-builder/promise/init-exclude-def.js +6 -5
  27. package/dist/lib/mock-builder/promise/init-modules.js +6 -5
  28. package/dist/lib/mock-builder/promise/init-ng-modules.js +6 -5
  29. package/dist/lib/mock-builder/promise/try-mock-provider.js +3 -3
  30. package/dist/lib/mock-component/mock-component.js +3 -1
  31. package/dist/lib/mock-component/render/generate-template.js +2 -2
  32. package/dist/lib/mock-component/types.d.ts +2 -2
  33. package/dist/lib/mock-component/types.js +1 -1
  34. package/dist/lib/mock-directive/mock-directive.js +3 -1
  35. package/dist/lib/mock-directive/types.d.ts +2 -2
  36. package/dist/lib/mock-directive/types.js +1 -1
  37. package/dist/lib/mock-helper/crawl/crawl-by-attribute-value.js +9 -7
  38. package/dist/lib/mock-helper/crawl/crawl-by-attribute.js +13 -11
  39. package/dist/lib/mock-helper/crawl/crawl-by-id.js +6 -4
  40. package/dist/lib/mock-helper/crawl/crawl-by-tag-name.js +7 -5
  41. package/dist/lib/mock-helper/crawl/detect-selectors-from-node.js +6 -5
  42. package/dist/lib/mock-helper/crawl/el-def-get-parent.js +5 -4
  43. package/dist/lib/mock-helper/crawl/nested-check-children.js +1 -1
  44. package/dist/lib/mock-helper/crawl/nested-check.js +1 -1
  45. package/dist/lib/mock-helper/events/mock-helper.event.d.ts +1 -1
  46. package/dist/lib/mock-helper/events/mock-helper.trigger.d.ts +1 -1
  47. package/dist/lib/mock-helper/find/func.parse-find-args.js +1 -1
  48. package/dist/lib/mock-helper/find/mock-helper.find-all.js +1 -1
  49. package/dist/lib/mock-helper/format/format-handler.js +23 -21
  50. package/dist/lib/mock-helper/format/handle-text.js +1 -1
  51. package/dist/lib/mock-helper/format/is-debug-node.js +1 -1
  52. package/dist/lib/mock-helper/format/mock-helper.format-text.js +1 -1
  53. package/dist/lib/mock-helper/func.get-from-node-element.js +1 -1
  54. package/dist/lib/mock-helper/func.get-from-node-ivy.js +1 -1
  55. package/dist/lib/mock-helper/func.global-prepare.js +1 -1
  56. package/dist/lib/mock-helper/mock-helper.d.ts +7 -0
  57. package/dist/lib/mock-helper/mock-helper.default-mock.d.ts +1 -1
  58. package/dist/lib/mock-helper/mock-helper.default-mock.js +32 -7
  59. package/dist/lib/mock-helper/mock-helper.input.js +6 -5
  60. package/dist/lib/mock-helper/mock-helper.js +1 -1
  61. package/dist/lib/mock-helper/mock-helper.object.d.ts +11 -8
  62. package/dist/lib/mock-helper/mock-helper.object.js +8 -1
  63. package/dist/lib/mock-helper/mock-helper.output.js +6 -5
  64. package/dist/lib/mock-helper/mock-helper.stub.js +6 -5
  65. package/dist/lib/mock-helper/mock-helper.throw-on-console.js +15 -8
  66. package/dist/lib/mock-helper/template-ref/detect-template-ref.js +1 -1
  67. package/dist/lib/mock-instance/mock-instance.js +1 -1
  68. package/dist/lib/mock-module/mock-module.js +1 -1
  69. package/dist/lib/mock-module/mock-ng-def.js +29 -23
  70. package/dist/lib/mock-render/func.create-wrapper.d.ts +4 -0
  71. package/dist/lib/mock-render/func.create-wrapper.js +91 -0
  72. package/dist/lib/mock-render/func.generate-template.d.ts +1 -1
  73. package/dist/lib/mock-render/func.generate-template.js +17 -21
  74. package/dist/lib/mock-render/func.install-prop-reader.js +7 -6
  75. package/dist/lib/mock-render/func.reflect-template.js +18 -8
  76. package/dist/lib/mock-render/mock-render-factory.d.ts +47 -0
  77. package/dist/lib/mock-render/mock-render-factory.js +112 -0
  78. package/dist/lib/mock-render/mock-render.d.ts +5 -5
  79. package/dist/lib/mock-render/mock-render.js +6 -151
  80. package/dist/lib/mock-service/helper.create-clone.js +6 -5
  81. package/dist/lib/mock-service/helper.extract-methods-from-prototype.js +36 -5
  82. package/dist/lib/mock-service/helper.mock-service.js +2 -3
  83. package/dist/lib/mock-service/helper.resolve-provider.js +1 -7
  84. package/dist/lib/mock-service/helper.use-factory.js +6 -5
  85. package/dist/lib/mock-service/mock-provider.d.ts +1 -1
  86. package/dist/lib/mock-service/mock-provider.js +6 -5
  87. package/examples/MockBuilder/test.ng-mocks.spec.ts +1 -1
  88. package/examples/MockComponent/test.spec.ts +4 -3
  89. package/examples/MockSanitizer/test.spec.ts +39 -0
  90. package/examples/TestHttpInterceptor/test.spec.ts +4 -6
  91. package/examples/TestHttpRequest/test.spec.ts +4 -6
  92. package/examples/TestLifecycleHooks/fixtures.ts +2 -1
  93. package/examples/TestLifecycleHooks/test.spec.ts +4 -6
  94. package/examples/TestLifecycleHooks/test.string.spec.ts +2 -3
  95. package/examples/TestLifecycleHooks/test.type-without-params.spec.ts +2 -3
  96. package/examples/TestMultiToken/test.spec.ts +2 -2
  97. package/examples/TestProviderWithUseClass/test.spec.ts +4 -3
  98. package/examples/TestProviderWithUseExisting/test.spec.ts +4 -3
  99. package/examples/TestProviderWithUseValue/test.spec.ts +3 -2
  100. package/examples/TestRoutingGuard/test.spec.ts +2 -3
  101. package/examples/TestRoutingResolver/test.spec.ts +2 -3
  102. package/examples/TestToken/test.spec.ts +5 -4
  103. package/package.json +1 -1
  104. package/dist/jasmine.d.ts +0 -1
  105. package/dist/jasmine.js +0 -8
  106. package/dist/jest.d.ts +0 -1
  107. package/dist/jest.js +0 -8
package/CHANGELOG.md CHANGED
@@ -1,3 +1,48 @@
1
+ ## [12.0.1](https://github.com/ike18t/ng-mocks/compare/v12.0.0...v12.0.1) (2021-05-21)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **core:** a config parameter to suppress MockRender errors [#572](https://github.com/ike18t/ng-mocks/issues/572) ([bcfe23a](https://github.com/ike18t/ng-mocks/commit/bcfe23ab53a87a92529ddb30bb07618cbaab590c))
7
+ * **core:** broken query selectors are properly normalized [#567](https://github.com/ike18t/ng-mocks/issues/567) ([9c1ea70](https://github.com/ike18t/ng-mocks/commit/9c1ea70564f11323337646a6d74ebbddc8965a31))
8
+ * **default-mock:** supports an array with declarations [#568](https://github.com/ike18t/ng-mocks/issues/568) ([5d3b43e](https://github.com/ike18t/ng-mocks/commit/5d3b43e91db0a8e8a40dedc024a40cbd76225575))
9
+ * **default-mock:** supports generic type in array signature [#583](https://github.com/ike18t/ng-mocks/issues/583) ([c925818](https://github.com/ike18t/ng-mocks/commit/c925818e13086e402f79fa49c39e012567d7b52a))
10
+ * **faster:** supports directives and components without selectors [#576](https://github.com/ike18t/ng-mocks/issues/576) ([599c7d5](https://github.com/ike18t/ng-mocks/commit/599c7d518cbf280da85a73aa2a1c23ce85d74523))
11
+ * **mock-render:** allowing to disable flush TestBed warning ([6131ecb](https://github.com/ike18t/ng-mocks/commit/6131ecbf3f45205ec059184819a9ce68c81e1502))
12
+ * **mock-render:** providing a MockRenderFactory in order to reuse the same middleware component ([79fa336](https://github.com/ike18t/ng-mocks/commit/79fa3368798eaf9e49c92201a9b6a693e5f63e8b))
13
+
14
+
15
+ ### Performance Improvements
16
+
17
+ * **core:** switching internal stack to an array instead of a set ([24c4bfd](https://github.com/ike18t/ng-mocks/commit/24c4bfd7b514b2ed38497039853a5958c721cff8))
18
+
19
+ # [12.0.0](https://github.com/ike18t/ng-mocks/compare/v11.11.2...v12.0.0) (2021-05-13)
20
+
21
+
22
+ ### Features
23
+
24
+ * official support of Angular 12 ([d63c34f](https://github.com/ike18t/ng-mocks/commit/d63c34ffc720573e7c92f81cda557f05e471abb7))
25
+
26
+
27
+ ### BREAKING CHANGES
28
+
29
+ * auto spy should be installed via ngMocks.autoSpy
30
+
31
+ ## [11.11.2](https://github.com/ike18t/ng-mocks/compare/v11.11.1...v11.11.2) (2021-05-13)
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * **core:** properly handling Sanitizer and DomSanitizer [#538](https://github.com/ike18t/ng-mocks/issues/538) ([fb51bb4](https://github.com/ike18t/ng-mocks/commit/fb51bb478593c22ed436c896980244d45fd796ed))
37
+ * **mock-render:** detectChanges flag has to be provided to supress render ([8195eeb](https://github.com/ike18t/ng-mocks/commit/8195eeb7e4dbeeac71061a9ac94b1436f7cfdb0c))
38
+
39
+ ## [11.11.1](https://github.com/ike18t/ng-mocks/compare/v11.11.0...v11.11.1) (2021-05-09)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * **mock-render:** binds all inputs on no params [#522](https://github.com/ike18t/ng-mocks/issues/522) ([dd5abba](https://github.com/ike18t/ng-mocks/commit/dd5abba942f8e51f61542dec10b67aaa94a24513))
45
+
1
46
  # [11.11.0](https://github.com/ike18t/ng-mocks/compare/v11.10.1...v11.11.0) (2021-05-09)
2
47
 
3
48
 
package/README.md CHANGED
@@ -14,14 +14,16 @@
14
14
 
15
15
  The current version of the library **has been tested** and **can be used** with:
16
16
 
17
- - Angular 12 (Jasmine, Jest, Ivy, es5, es2015)
18
- - Angular 11 (Jasmine, Jest, Ivy, es5, es2015)
19
- - Angular 10 (Jasmine, Jest, Ivy, es5, es2015)
20
- - Angular 9 (Jasmine, Jest, Ivy, es5, es2015)
21
- - Angular 8 (Jasmine, Jest, es5, es2015)
22
- - Angular 7 (Jasmine, Jest, es5, es2015)
23
- - Angular 6 (Jasmine, Jest, es5, es2015)
24
- - Angular 5 (Jasmine, Jest, es5, es2015)
17
+ | Angular | ng-mocks | Jasmine | Jest | Ivy | es5 | es2015 |
18
+ | ------: | :------: | :-----: | :--: | :-: | :-: | :----: |
19
+ | 12 | latest | yes | yes | yes | yes | yes |
20
+ | 11 | latest | yes | yes | yes | yes | yes |
21
+ | 10 | latest | yes | yes | yes | yes | yes |
22
+ | 9 | latest | yes | yes | yes | yes | yes |
23
+ | 8 | latest | yes | yes | | yes | yes |
24
+ | 7 | latest | yes | yes | | yes | yes |
25
+ | 6 | latest | yes | yes | | yes | yes |
26
+ | 5 | latest | yes | yes | | yes | yes |
25
27
 
26
28
  ## Important links
27
29
 
@@ -90,11 +92,11 @@ describe('app-component', () => {
90
92
  // mock declarations and providers.
91
93
  beforeEach(() => {
92
94
  // A spy on a method which returns children.
93
- // When an instance of ChildCompnent is being created,
95
+ // When an instance of ChildComponent is being created,
94
96
  // the method will be replaced with the spy.
95
97
  // https://ng-mocks.sudo.eu/api/MockInstance
96
98
  MockInstance(
97
- ChildCompnent,
99
+ ChildComponent,
98
100
  'list',
99
101
  jasmine.createSpy(),
100
102
  ).and.returnValue([]);
@@ -109,7 +111,7 @@ describe('app-component', () => {
109
111
  const spyCheck = MockInstance(
110
112
  AuthService,
111
113
  'check',
112
- jasmine.createSpyObj('AuthService.check'),
114
+ jasmine.createSpy('AuthService.check'),
113
115
  ).and.returnValue(true);
114
116
 
115
117
  // MockRender creates a wrapper component with
@@ -122,64 +124,80 @@ describe('app-component', () => {
122
124
  // Checking that the component has been created.
123
125
  expect(fixture.point.componentInstance).toBeDefined();
124
126
 
125
- // Checking that its ngOnInit method calls 'check' of the service.
127
+ // Checking that its ngOnInit method
128
+ // has called 'check' on AuthService.
126
129
  expect(spyCheck).toHaveBeenCalled();
127
130
  });
128
131
 
129
- it('verifies the check user button', () => {
130
- // A fake user data.
132
+ it('verifies ctrl+s hot key', () => {
133
+ // A spy on save calls.
134
+ const spySave = MockInstance(
135
+ StorageService,
136
+ 'save',
137
+ jasmine.createSpy('StorageService.save'),
138
+ );
139
+
140
+ // A fake user data we want to save.
131
141
  const user = {
132
142
  id: 1,
133
143
  name: 'Foo Bar',
134
144
  };
135
145
 
136
- // A spy on a getter property which returns user data.
137
- // https://ng-mocks.sudo.eu/api/MockInstance
138
- MockInstance(
139
- AuthService,
140
- 'user',
141
- jasmine.createSpy(),
142
- 'get',
143
- ).and.returnValue(user);
146
+ // Rendering
147
+ // <app-root [user]="params.user"></app-root>.
148
+ // https://ng-mocks.sudo.eu/api/MockRender
149
+ const fixture = MockRender(AppComponent, { user });
144
150
 
145
- // Params for input and outputs in AppComponent.
151
+ // Let's assume, there is a host listener
152
+ // for a keyboard combination of ctrl+s
153
+ // on AppComponent and we want to trigger it.
154
+ // https://ng-mocks.sudo.eu/api/ngMocks/trigger
155
+ ngMocks.trigger(fixture.point, 'keyup.control.s');
156
+
157
+ // The spy should be called with the user.
158
+ expect(spySave).toHaveBeenCalledWith(user);
159
+ });
160
+
161
+ it('verifies state of save button', () => {
162
+ // Params for inputs and outputs
163
+ // of AppComponent.
146
164
  const params = {
147
165
  allowCheck: false,
148
- user: jasmine.createSpy('user'),
166
+ click: jasmine.createSpy('click'),
149
167
  };
150
168
 
151
- // if AppComponent has [allowCheck] is an input and
152
- // (user) is an output, then MockRender creates
153
- // a wrapper component with a template like:
169
+ // If [allowCheck] is an input and
170
+ // (user) is an output of AppComponent,
171
+ // then MockRender creates a wrapper component
172
+ // with a template like:
154
173
  //
155
174
  // <app-root
156
175
  // [allowCheck]="params.allowCheck"
157
- // (user)="params.user($event)"
176
+ // (click)="params.click($event)"
158
177
  // ></app-root>
159
178
  //
160
179
  // And renders it.
161
- //
162
180
  // https://ng-mocks.sudo.eu/api/MockRender
163
181
  const fixture = MockRender(AppComponent, params);
164
182
 
165
- // the button should be disabled with params.allowCheck = false
183
+ // The button should be disabled
184
+ // when params.allowCheck = false.
166
185
  // https://ng-mocks.sudo.eu/api/ngMocks/find
167
186
  expect(ngMocks.find('button.check').disabled).toEqual(true);
168
187
 
169
- // enabling the button
188
+ // Enabling the button.
170
189
  params.allowCheck = true;
171
190
  fixture.detectChanges();
172
191
  expect(ngMocks.find('button.check').disabled).toEqual(false);
173
192
 
174
- // clicking the button in order to trigger the check
193
+ // Clicking the button
194
+ // in order to trigger the output.
175
195
  // https://ng-mocks.sudo.eu/api/ngMocks/click
176
196
  ngMocks.click('button.check');
177
197
 
178
- // The spy in params.user should be notified about the output.
179
- expect(params.user).toHaveBeenCalledWith({
180
- id: 1,
181
- name: 'Foo Bar',
182
- });
198
+ // The spy in params.click
199
+ // should be notified about the click.
200
+ expect(params.click).toHaveBeenCalled();
183
201
  });
184
202
  });
185
203
  ```
package/dist/index.d.ts CHANGED
@@ -28,6 +28,7 @@ export * from './lib/mock-pipe/mock-pipe';
28
28
  export * from './lib/mock-pipe/types';
29
29
  export * from './lib/mock-provider/mock-provider';
30
30
  export * from './lib/mock-render/mock-render';
31
+ export * from './lib/mock-render/mock-render-factory';
31
32
  export * from './lib/mock-render/types';
32
33
  export { registerMockFunction } from './lib/mock-service/helper.mock-service';
33
34
  export * from './lib/mock-service/mock-service';
package/dist/index.js CHANGED
@@ -43,9 +43,10 @@ __exportStar(require("./lib/mock-pipe/mock-pipe"), exports);
43
43
  __exportStar(require("./lib/mock-pipe/types"), exports);
44
44
  __exportStar(require("./lib/mock-provider/mock-provider"), exports);
45
45
  __exportStar(require("./lib/mock-render/mock-render"), exports);
46
+ __exportStar(require("./lib/mock-render/mock-render-factory"), exports);
46
47
  __exportStar(require("./lib/mock-render/types"), exports);
47
48
  var helper_mock_service_1 = require("./lib/mock-service/helper.mock-service");
48
49
  Object.defineProperty(exports, "registerMockFunction", { enumerable: true, get: function () { return helper_mock_service_1.registerMockFunction; } });
49
50
  __exportStar(require("./lib/mock-service/mock-service"), exports);
50
51
  __exportStar(require("./lib/mock-service/types"), exports);
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25nLW1vY2tzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsMERBQThFO0FBQXJFLG1IQUFBLG1CQUFtQixPQUFBO0FBQUUsNEdBQUEsWUFBWSxPQUFBO0FBQzFDLDJEQUF5QztBQUN6QywwREFBd0M7QUFDeEMseUVBQXVEO0FBQ3ZELHVFQUFxRDtBQUNyRCxtRkFBaUU7QUFDakUsK0RBQTZDO0FBQzdDLHNFQUFvRDtBQUNwRCx3RUFBc0Q7QUFDdEQsOERBQTRDO0FBQzVDLDBFQUF3RDtBQUN4RCxvRkFBa0U7QUFDbEUsK0RBQTZDO0FBQzdDLDBDQUF5QztBQUFoQyw0RkFBQSxJQUFJLE9BQUE7QUFHYixrRUFBZ0Q7QUFDaEQsMkRBQXlDO0FBRXpDLHNFQUFvRDtBQUNwRCw2REFBMkM7QUFFM0MsMEVBQXdEO0FBRXhELHNFQUFvRDtBQUNwRCw2REFBMkM7QUFFM0MsZ0VBQThDO0FBRTlDLG9FQUFrRDtBQUVsRCxnRUFBOEM7QUFDOUMsMERBQXdDO0FBRXhDLDREQUEwQztBQUMxQyx3REFBc0M7QUFFdEMsb0VBQWtEO0FBRWxELGdFQUE4QztBQUM5QywwREFBd0M7QUFFeEMsOEVBQThFO0FBQXJFLDJIQUFBLG9CQUFvQixPQUFBO0FBQzdCLGtFQUFnRDtBQUNoRCwyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBnZXRUZXN0QmVkSW5qZWN0aW9uLCBnZXRJbmplY3Rpb24gfSBmcm9tICcuL2xpYi9jb21tb24vY29yZS5oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9jb3JlLnRva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vY29yZS50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZnVuYy5nZXQtbW9ja2VkLW5nLWRlZi1vZic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZnVuYy5nZXQtc291cmNlLW9mLW1vY2snO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2Z1bmMuaXMtbW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9mdW5jLmlzLW1vY2stb2YnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2Z1bmMuaXMtbW9jay12YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2Z1bmMuaXMtbW9ja2VkLW5nLWRlZi1vZic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZnVuYy5pcy1uZy1kZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2Z1bmMuaXMtbmctaW5qZWN0aW9uLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9mdW5jLmlzLW5nLW1vZHVsZS1kZWYtd2l0aC1wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2Z1bmMuaXMtbmctdHlwZSc7XG5leHBvcnQgeyBNb2NrIH0gZnJvbSAnLi9saWIvY29tbW9uL21vY2snO1xuZXhwb3J0IHsgTW9ja0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBNb2NrVmFsaWRhdG9yIH0gZnJvbSAnLi9saWIvY29tbW9uL21vY2stY29udHJvbC12YWx1ZS1hY2Nlc3Nvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stYnVpbGRlci9tb2NrLWJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1idWlsZGVyL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1jb21wb25lbnQvbW9jay1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1jb21wb25lbnQvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLWRlY2xhcmF0aW9uL21vY2stZGVjbGFyYXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLWRpcmVjdGl2ZS9tb2NrLWRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLWRpcmVjdGl2ZS90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2staGVscGVyL21vY2staGVscGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1pbnN0YW5jZS9tb2NrLWluc3RhbmNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1tb2R1bGUvbW9jay1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1tb2R1bGUvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLXBpcGUvbW9jay1waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stcGlwZS90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stcHJvdmlkZXIvbW9jay1wcm92aWRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stcmVuZGVyL21vY2stcmVuZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stcmVuZGVyL3R5cGVzJztcblxuZXhwb3J0IHsgcmVnaXN0ZXJNb2NrRnVuY3Rpb24gfSBmcm9tICcuL2xpYi9tb2NrLXNlcnZpY2UvaGVscGVyLm1vY2stc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLXNlcnZpY2UvbW9jay1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stc2VydmljZS90eXBlcyc7XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25nLW1vY2tzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsMERBQThFO0FBQXJFLG1IQUFBLG1CQUFtQixPQUFBO0FBQUUsNEdBQUEsWUFBWSxPQUFBO0FBQzFDLDJEQUF5QztBQUN6QywwREFBd0M7QUFDeEMseUVBQXVEO0FBQ3ZELHVFQUFxRDtBQUNyRCxtRkFBaUU7QUFDakUsK0RBQTZDO0FBQzdDLHNFQUFvRDtBQUNwRCx3RUFBc0Q7QUFDdEQsOERBQTRDO0FBQzVDLDBFQUF3RDtBQUN4RCxvRkFBa0U7QUFDbEUsK0RBQTZDO0FBQzdDLDBDQUF5QztBQUFoQyw0RkFBQSxJQUFJLE9BQUE7QUFHYixrRUFBZ0Q7QUFDaEQsMkRBQXlDO0FBRXpDLHNFQUFvRDtBQUNwRCw2REFBMkM7QUFFM0MsMEVBQXdEO0FBRXhELHNFQUFvRDtBQUNwRCw2REFBMkM7QUFFM0MsZ0VBQThDO0FBRTlDLG9FQUFrRDtBQUVsRCxnRUFBOEM7QUFDOUMsMERBQXdDO0FBRXhDLDREQUEwQztBQUMxQyx3REFBc0M7QUFFdEMsb0VBQWtEO0FBRWxELGdFQUE4QztBQUM5Qyx3RUFBc0Q7QUFDdEQsMERBQXdDO0FBRXhDLDhFQUE4RTtBQUFyRSwySEFBQSxvQkFBb0IsT0FBQTtBQUM3QixrRUFBZ0Q7QUFDaEQsMkRBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZ2V0VGVzdEJlZEluamVjdGlvbiwgZ2V0SW5qZWN0aW9uIH0gZnJvbSAnLi9saWIvY29tbW9uL2NvcmUuaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vY29yZS50b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2NvcmUudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2Z1bmMuZ2V0LW1vY2tlZC1uZy1kZWYtb2YnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2Z1bmMuZ2V0LXNvdXJjZS1vZi1tb2NrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9mdW5jLmlzLW1vY2stY29udHJvbC12YWx1ZS1hY2Nlc3Nvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZnVuYy5pcy1tb2NrLW9mJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9mdW5jLmlzLW1vY2stdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9mdW5jLmlzLW1vY2tlZC1uZy1kZWYtb2YnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbW9uL2Z1bmMuaXMtbmctZGVmJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9mdW5jLmlzLW5nLWluamVjdGlvbi10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vZnVuYy5pcy1uZy1tb2R1bGUtZGVmLXdpdGgtcHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9mdW5jLmlzLW5nLXR5cGUnO1xuZXhwb3J0IHsgTW9jayB9IGZyb20gJy4vbGliL2NvbW1vbi9tb2NrJztcbmV4cG9ydCB7IE1vY2tDb250cm9sVmFsdWVBY2Nlc3NvciwgTW9ja1ZhbGlkYXRvciB9IGZyb20gJy4vbGliL2NvbW1vbi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLWJ1aWxkZXIvbW9jay1idWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stYnVpbGRlci90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stY29tcG9uZW50L21vY2stY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stY29tcG9uZW50L3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1kZWNsYXJhdGlvbi9tb2NrLWRlY2xhcmF0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1kaXJlY3RpdmUvbW9jay1kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1kaXJlY3RpdmUvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLWhlbHBlci9tb2NrLWhlbHBlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2staW5zdGFuY2UvbW9jay1pbnN0YW5jZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stbW9kdWxlL21vY2stbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stbW9kdWxlL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9jay1waXBlL21vY2stcGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLXBpcGUvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLXByb3ZpZGVyL21vY2stcHJvdmlkZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLXJlbmRlci9tb2NrLXJlbmRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLXJlbmRlci9tb2NrLXJlbmRlci1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stcmVuZGVyL3R5cGVzJztcblxuZXhwb3J0IHsgcmVnaXN0ZXJNb2NrRnVuY3Rpb24gfSBmcm9tICcuL2xpYi9tb2NrLXNlcnZpY2UvaGVscGVyLm1vY2stc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrLXNlcnZpY2UvbW9jay1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vY2stc2VydmljZS90eXBlcyc7XG4iXX0=
@@ -10,11 +10,14 @@ exports.default = {
10
10
  'EventManager',
11
11
  'Injector',
12
12
  'RendererFactory2',
13
+ // https://github.com/ike18t/ng-mocks/issues/538
14
+ 'Sanitizer',
15
+ 'DomSanitizer',
13
16
  ],
14
17
  neverMockToken: [
15
18
  'InjectionToken Set Injector scope.',
16
19
  'InjectionToken EventManagerPlugins',
17
- 'InjectionToken HammerGestureConfig',
20
+ 'InjectionToken HammerGestureConfig', // HAMMER_GESTURE_CONFIG
18
21
  ],
19
22
  };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLW1vY2tzL3NyYy9saWIvY29tbW9uL2NvcmUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMENBQStDO0FBQy9DLHNDQUFrRDtBQUVsRCxrQkFBZTtJQUNiLEtBQUssRUFBRSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLENBQUM7SUFDbkcsZUFBZSxFQUFFLENBQUMsd0JBQWlCLEVBQUUscUJBQVksQ0FBQztJQUNsRCx5QkFBeUIsRUFBRTtRQUN6QixxQkFBcUI7UUFDckIsY0FBYztRQUNkLFVBQVU7UUFDVixrQkFBa0I7S0FDbkI7SUFDRCxjQUFjLEVBQUU7UUFDZCxvQ0FBb0M7UUFDcEMsb0NBQW9DO1FBQ3BDLG9DQUFvQztLQUNyQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBmbGFnczogWydjYWNoZU1vZHVsZScsICdjYWNoZUNvbXBvbmVudCcsICdjYWNoZURpcmVjdGl2ZScsICdjYWNoZVByb3ZpZGVyJywgJ2NvcnJlY3RNb2R1bGVFeHBvcnRzJ10sXG4gIG5ldmVyTW9ja01vZHVsZTogW0FwcGxpY2F0aW9uTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxuICBuZXZlck1vY2tQcm92aWRlZEZ1bmN0aW9uOiBbXG4gICAgJ0RvbVJlbmRlcmVyRmFjdG9yeTInLFxuICAgICdFdmVudE1hbmFnZXInLFxuICAgICdJbmplY3RvcicsIC8vIGl2eSBvbmx5XG4gICAgJ1JlbmRlcmVyRmFjdG9yeTInLFxuICBdLFxuICBuZXZlck1vY2tUb2tlbjogW1xuICAgICdJbmplY3Rpb25Ub2tlbiBTZXQgSW5qZWN0b3Igc2NvcGUuJywgLy8gSU5KRUNUT1JfU0NPUEUgLy8gaXZ5IG9ubHlcbiAgICAnSW5qZWN0aW9uVG9rZW4gRXZlbnRNYW5hZ2VyUGx1Z2lucycsIC8vIEVWRU5UX01BTkFHRVJfUExVR0lOU1xuICAgICdJbmplY3Rpb25Ub2tlbiBIYW1tZXJHZXN0dXJlQ29uZmlnJywgLy8gSEFNTUVSX0dFU1RVUkVfQ09ORklHXG4gIF0sXG59O1xuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLW1vY2tzL3NyYy9saWIvY29tbW9uL2NvcmUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMENBQStDO0FBQy9DLHNDQUFrRDtBQUVsRCxrQkFBZTtJQUNiLEtBQUssRUFBRSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLENBQUM7SUFDbkcsZUFBZSxFQUFFLENBQUMsd0JBQWlCLEVBQUUscUJBQVksQ0FBQztJQUNsRCx5QkFBeUIsRUFBRTtRQUN6QixxQkFBcUI7UUFDckIsY0FBYztRQUNkLFVBQVU7UUFDVixrQkFBa0I7UUFFbEIsZ0RBQWdEO1FBQ2hELFdBQVc7UUFDWCxjQUFjO0tBQ2Y7SUFDRCxjQUFjLEVBQUU7UUFDZCxvQ0FBb0M7UUFDcEMsb0NBQW9DO1FBQ3BDLG9DQUFvQyxFQUFFLHdCQUF3QjtLQUMvRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBmbGFnczogWydjYWNoZU1vZHVsZScsICdjYWNoZUNvbXBvbmVudCcsICdjYWNoZURpcmVjdGl2ZScsICdjYWNoZVByb3ZpZGVyJywgJ2NvcnJlY3RNb2R1bGVFeHBvcnRzJ10sXG4gIG5ldmVyTW9ja01vZHVsZTogW0FwcGxpY2F0aW9uTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxuICBuZXZlck1vY2tQcm92aWRlZEZ1bmN0aW9uOiBbXG4gICAgJ0RvbVJlbmRlcmVyRmFjdG9yeTInLFxuICAgICdFdmVudE1hbmFnZXInLFxuICAgICdJbmplY3RvcicsIC8vIGl2eSBvbmx5XG4gICAgJ1JlbmRlcmVyRmFjdG9yeTInLFxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2Nrcy9pc3N1ZXMvNTM4XG4gICAgJ1Nhbml0aXplcicsXG4gICAgJ0RvbVNhbml0aXplcicsXG4gIF0sXG4gIG5ldmVyTW9ja1Rva2VuOiBbXG4gICAgJ0luamVjdGlvblRva2VuIFNldCBJbmplY3RvciBzY29wZS4nLCAvLyBJTkpFQ1RPUl9TQ09QRSAvLyBpdnkgb25seVxuICAgICdJbmplY3Rpb25Ub2tlbiBFdmVudE1hbmFnZXJQbHVnaW5zJywgLy8gRVZFTlRfTUFOQUdFUl9QTFVHSU5TXG4gICAgJ0luamVjdGlvblRva2VuIEhhbW1lckdlc3R1cmVDb25maWcnLCAvLyBIQU1NRVJfR0VTVFVSRV9DT05GSUdcbiAgXSxcbn07XG4iXX0=
@@ -7,6 +7,8 @@ var __extends = (this && this.__extends) || (function () {
7
7
  return extendStatics(d, b);
8
8
  };
9
9
  return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
10
12
  extendStatics(d, b);
11
13
  function __() { this.constructor = d; }
12
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -39,9 +41,10 @@ var __read = (this && this.__read) || function (o, n) {
39
41
  }
40
42
  return ar;
41
43
  };
42
- var __spread = (this && this.__spread) || function () {
43
- for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
44
- return ar;
44
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
45
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
46
+ to[j] = from[i];
47
+ return to;
45
48
  };
46
49
  Object.defineProperty(exports, "__esModule", { value: true });
47
50
  exports.extendClass = exports.extractDependency = exports.mapEntries = exports.mapValues = exports.mapKeys = exports.flatten = exports.getInjection = exports.getTestBedInjection = void 0;
@@ -182,9 +185,9 @@ var extendClass = function (base) {
182
185
  core_define_property_1.default(child, 'name', "MockMiddleware" + base.name, true);
183
186
  var parameters = core_reflect_jit_1.default().parameters(base);
184
187
  if (parameters.length) {
185
- core_define_property_1.default(child, 'parameters', __spread(parameters));
188
+ core_define_property_1.default(child, 'parameters', __spreadArray([], __read(parameters)));
186
189
  }
187
190
  return child;
188
191
  };
189
192
  exports.extendClass = extendClass;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1tb2Nrcy9zcmMvbGliL2NvbW1vbi9jb3JlLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBbUQ7QUFFbkQsK0RBQXdEO0FBQ3hELHVEQUFnRDtBQUd6QyxJQUFNLG1CQUFtQixHQUFHLFVBQUksS0FBa0M7SUFDdkUsSUFBTSxPQUFPLEdBQVEsb0JBQVUsRUFBRSxDQUFDO0lBQ2xDLElBQUk7UUFDRix1QkFBdUI7UUFDdkIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BFO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFNBQVMsQ0FBQztLQUNsQjtBQUNILENBQUMsQ0FBQztBQVJXLFFBQUEsbUJBQW1CLHVCQVE5QjtBQUVLLElBQU0sWUFBWSxHQUFHLFVBQUksS0FBa0M7SUFDaEUsSUFBTSxPQUFPLEdBQVEsb0JBQVUsRUFBRSxDQUFDO0lBRWxDLHVCQUF1QjtJQUN2QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDO0FBTFcsUUFBQSxZQUFZLGdCQUt2QjtBQUVLLElBQU0sT0FBTyxHQUFHLFVBQUksTUFBZSxFQUFFLE1BQWdCOztJQUFoQix1QkFBQSxFQUFBLFdBQWdCO0lBQzFELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTs7WUFD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SSxDQUFDO0lBQ3JDLHVCQUF1QjtJQUN2QixJQUFJO1FBQ0YsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxpSEFHSixDQUFDLENBQUM7UUFDSCxLQUFLLEdBQUksTUFBYyxDQUFDLGFBQWEsQ0FBQztLQUN2QztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1Y7WUFBNkIsa0NBQTZCO1lBQTFEOztZQUE0RCxDQUFDO1lBQUQscUJBQUM7UUFBRCxDQUFDLEFBQTdELENBQThCLE1BQWMsQ0FBQyxhQUFhLEdBQUc7UUFDN0QsS0FBSyxHQUFHLGNBQWMsQ0FBQztLQUN4QjtJQUNBLE1BQWMsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0lBRTFDLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUssSUFBTSxXQUFXLEdBQUcsVUFBbUIsSUFBZ0I7SUFDNUQsSUFBTSxLQUFLLEdBQVksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsOEJBQWtCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxtQkFBaUIsSUFBSSxDQUFDLElBQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUV0RSxJQUFNLFVBQVUsR0FBRywwQkFBYyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUNyQiw4QkFBa0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxXQUFNLFVBQVUsRUFBRSxDQUFDO0tBQzFEO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFWVyxRQUFBLFdBQVcsZUFVdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0VGVzdEJlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCBjb3JlRGVmaW5lUHJvcGVydHkgZnJvbSAnLi9jb3JlLmRlZmluZS1wcm9wZXJ0eSc7XG5pbXBvcnQgY29yZVJlZmxlY3RKaXQgZnJvbSAnLi9jb3JlLnJlZmxlY3Quaml0JztcbmltcG9ydCB7IEFueVR5cGUsIFR5cGUgfSBmcm9tICcuL2NvcmUudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgZ2V0VGVzdEJlZEluamVjdGlvbiA9IDxJPih0b2tlbjogVHlwZTxJPiB8IEluamVjdGlvblRva2VuPEk+KTogSSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHRlc3RCZWQ6IGFueSA9IGdldFRlc3RCZWQoKTtcbiAgdHJ5IHtcbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgIHJldHVybiB0ZXN0QmVkLmluamVjdCA/IHRlc3RCZWQuaW5qZWN0KHRva2VuKSA6IHRlc3RCZWQuZ2V0KHRva2VuKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJbmplY3Rpb24gPSA8ST4odG9rZW46IFR5cGU8ST4gfCBJbmplY3Rpb25Ub2tlbjxJPik6IEkgPT4ge1xuICBjb25zdCB0ZXN0QmVkOiBhbnkgPSBnZXRUZXN0QmVkKCk7XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgcmV0dXJuIHRlc3RCZWQuaW5qZWN0ID8gdGVzdEJlZC5pbmplY3QodG9rZW4pIDogdGVzdEJlZC5nZXQodG9rZW4pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZsYXR0ZW4gPSA8VD4odmFsdWVzOiBUIHwgVFtdLCByZXN1bHQ6IFRbXSA9IFtdKTogVFtdID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBmbGF0dGVuKHZhbHVlLCByZXN1bHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXN1bHQucHVzaCh2YWx1ZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXBLZXlzID0gPFQ+KHNldDogTWFwPFQsIGFueT4pOiBUW10gPT4ge1xuICBjb25zdCByZXN1bHQ6IFRbXSA9IFtdO1xuICBzZXQuZm9yRWFjaCgoXywgdmFsdWU6IFQpID0+IHJlc3VsdC5wdXNoKHZhbHVlKSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXBWYWx1ZXMgPSA8VD4oc2V0OiB7IGZvckVhY2goYTE6ICh2YWx1ZTogVCkgPT4gdm9pZCk6IHZvaWQgfSk6IFRbXSA9PiB7XG4gIGNvbnN0IHJlc3VsdDogVFtdID0gW107XG4gIHNldC5mb3JFYWNoKCh2YWx1ZTogVCkgPT4gcmVzdWx0LnB1c2godmFsdWUpKTtcblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcEVudHJpZXMgPSA8SywgVD4oc2V0OiBNYXA8SywgVD4pOiBBcnJheTxbSywgVF0+ID0+IHtcbiAgY29uc3QgcmVzdWx0OiBBcnJheTxbSywgVF0+ID0gW107XG4gIHNldC5mb3JFYWNoKCh2YWx1ZTogVCwga2V5OiBLKSA9PiByZXN1bHQucHVzaChba2V5LCB2YWx1ZV0pKTtcblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgZXh0cmFjdERlcGVuZGVuY3lBcnJheSA9IChkZXBzOiBhbnlbXSwgc2V0OiBTZXQ8YW55Pik6IHZvaWQgPT4ge1xuICBmb3IgKGNvbnN0IGZsYWcgb2YgZGVwcykge1xuICAgIGNvbnN0IG5hbWUgPSBmbGFnICYmIHR5cGVvZiBmbGFnID09PSAnb2JqZWN0JyA/IGZsYWcubmdNZXRhZGF0YU5hbWUgOiB1bmRlZmluZWQ7XG4gICAgaWYgKG5hbWUgPT09ICdPcHRpb25hbCcgfHwgbmFtZSA9PT0gJ1NraXBTZWxmJyB8fCBuYW1lID09PSAnU2VsZicpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBzZXQuYWRkKGZsYWcpO1xuICB9XG59O1xuXG4vLyBBY2NlcHRzIGFuIGFycmF5IG9mIGRlcGVuZGVuY2llcyBmcm9tIHByb3ZpZGVycywgc2tpcHMgaW5qZWN0aW9ucyBmbGFncyxcbi8vIGFuZCBhZGRzIHRoZSBwcm92aWRlcnMgdG8gdGhlIHNldC5cbmV4cG9ydCBjb25zdCBleHRyYWN0RGVwZW5kZW5jeSA9IChkZXBzOiBhbnlbXSwgc2V0PzogU2V0PGFueT4pOiB2b2lkID0+IHtcbiAgaWYgKCFzZXQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShkZXApKSB7XG4gICAgICBzZXQuYWRkKGRlcCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgZXh0cmFjdERlcGVuZGVuY3lBcnJheShkZXAsIHNldCk7XG4gIH1cbn07XG5cbmNvbnN0IGV4dGVuZENsYXNzaWNDbGFzcyA9IDxJIGV4dGVuZHMgb2JqZWN0PihiYXNlOiBBbnlUeXBlPEk+KTogVHlwZTxJPiA9PiB7XG4gIGxldCBjaGlsZDogYW55O1xuXG4gIC8vIEZpcnN0IHdlIHRyeSB0byBldmFsIGVzMjAxNSBzdHlsZSBhbmQgaWYgaXQgZmFpbHMgdG8gdXNlIGVzNSB0cmFuc3BpbGF0aW9uIGluIHRoZSBjYXRjaCBibG9jay5cbiAgLy8gVGhlIG5leHQgc3RlcCBpcyB0byByZXNwZWN0IGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgYXMgdGhlIHBhcmVudCBjbGFzcyB2aWEgaml0UmVmbGVjdG9yLlxuICAod2luZG93IGFzIGFueSkubmdNb2Nrc1BhcmVudCA9IGJhc2U7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHRyeSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWV2YWxcbiAgICBldmFsKGBcbiAgICAgIGNsYXNzIE1vY2tNaWRkbGV3YXJlIGV4dGVuZHMgd2luZG93Lm5nTW9ja3NQYXJlbnQge31cbiAgICAgIHdpbmRvdy5uZ01vY2tzUmVzdWx0ID0gTW9ja01pZGRsZXdhcmVcbiAgICBgKTtcbiAgICBjaGlsZCA9ICh3aW5kb3cgYXMgYW55KS5uZ01vY2tzUmVzdWx0O1xuICB9IGNhdGNoIChlKSB7XG4gICAgY2xhc3MgTW9ja01pZGRsZXdhcmUgZXh0ZW5kcyAod2luZG93IGFzIGFueSkubmdNb2Nrc1BhcmVudCB7fVxuICAgIGNoaWxkID0gTW9ja01pZGRsZXdhcmU7XG4gIH1cbiAgKHdpbmRvdyBhcyBhbnkpLm5nTW9ja3NQYXJlbnQgPSB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIGNoaWxkO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dGVuZENsYXNzID0gPEkgZXh0ZW5kcyBvYmplY3Q+KGJhc2U6IEFueVR5cGU8ST4pOiBUeXBlPEk+ID0+IHtcbiAgY29uc3QgY2hpbGQ6IFR5cGU8ST4gPSBleHRlbmRDbGFzc2ljQ2xhc3MoYmFzZSk7XG4gIGNvcmVEZWZpbmVQcm9wZXJ0eShjaGlsZCwgJ25hbWUnLCBgTW9ja01pZGRsZXdhcmUke2Jhc2UubmFtZX1gLCB0cnVlKTtcblxuICBjb25zdCBwYXJhbWV0ZXJzID0gY29yZVJlZmxlY3RKaXQoKS5wYXJhbWV0ZXJzKGJhc2UpO1xuICBpZiAocGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICBjb3JlRGVmaW5lUHJvcGVydHkoY2hpbGQsICdwYXJhbWV0ZXJzJywgWy4uLnBhcmFtZXRlcnNdKTtcbiAgfVxuXG4gIHJldHVybiBjaGlsZDtcbn07XG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1tb2Nrcy9zcmMvbGliL2NvbW1vbi9jb3JlLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBbUQ7QUFFbkQsK0RBQXdEO0FBQ3hELHVEQUFnRDtBQUd6QyxJQUFNLG1CQUFtQixHQUFHLFVBQUksS0FBa0M7SUFDdkUsSUFBTSxPQUFPLEdBQVEsb0JBQVUsRUFBRSxDQUFDO0lBQ2xDLElBQUk7UUFDRix1QkFBdUI7UUFDdkIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BFO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFNBQVMsQ0FBQztLQUNsQjtBQUNILENBQUMsQ0FBQztBQVJXLFFBQUEsbUJBQW1CLHVCQVE5QjtBQUVLLElBQU0sWUFBWSxHQUFHLFVBQUksS0FBa0M7SUFDaEUsSUFBTSxPQUFPLEdBQVEsb0JBQVUsRUFBRSxDQUFDO0lBRWxDLHVCQUF1QjtJQUN2QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDO0FBTFcsUUFBQSxZQUFZLGdCQUt2QjtBQUVLLElBQU0sT0FBTyxHQUFHLFVBQUksTUFBZSxFQUFFLE1BQWdCOztJQUFoQix1QkFBQSxFQUFBLFdBQWdCO0lBQzFELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTs7WUFDekIsS0FBb0IsSUFBQSxXQUFBLFNBQUEsTUFBTSxDQUFBLDhCQUFBLGtEQUFFO2dCQUF2QixJQUFNLEtBQUssbUJBQUE7Z0JBQ2QsZUFBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN4Qjs7Ozs7Ozs7O0tBQ0Y7U0FBTTtRQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDckI7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFWVyxRQUFBLE9BQU8sV0FVbEI7QUFFSyxJQUFNLE9BQU8sR0FBRyxVQUFJLEdBQWdCO0lBQ3pDLElBQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUN2QixHQUFHLENBQUMsT0FBTyxDQUFDLFVBQUMsQ0FBQyxFQUFFLEtBQVEsSUFBSyxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQWxCLENBQWtCLENBQUMsQ0FBQztJQUVqRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFMVyxRQUFBLE9BQU8sV0FLbEI7QUFFSyxJQUFNLFNBQVMsR0FBRyxVQUFJLEdBQThDO0lBQ3pFLElBQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUN2QixHQUFHLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBUSxJQUFLLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO0lBRTlDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUxXLFFBQUEsU0FBUyxhQUtwQjtBQUVLLElBQU0sVUFBVSxHQUFHLFVBQU8sR0FBYztJQUM3QyxJQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFRLEVBQUUsR0FBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUF6QixDQUF5QixDQUFDLENBQUM7SUFFN0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBTFcsUUFBQSxVQUFVLGNBS3JCO0FBRUYsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLElBQVcsRUFBRSxHQUFhOzs7UUFDeEQsS0FBbUIsSUFBQSxTQUFBLFNBQUEsSUFBSSxDQUFBLDBCQUFBLDRDQUFFO1lBQXBCLElBQU0sSUFBSSxpQkFBQTtZQUNiLElBQU0sTUFBSSxHQUFHLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRixJQUFJLE1BQUksS0FBSyxVQUFVLElBQUksTUFBSSxLQUFLLFVBQVUsSUFBSSxNQUFJLEtBQUssTUFBTSxFQUFFO2dCQUNqRSxTQUFTO2FBQ1Y7WUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2Y7Ozs7Ozs7OztBQUNILENBQUMsQ0FBQztBQUVGLDJFQUEyRTtBQUMzRSxxQ0FBcUM7QUFDOUIsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLElBQVcsRUFBRSxHQUFjOztJQUMzRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTztLQUNSOztRQUNELEtBQWtCLElBQUEsU0FBQSxTQUFBLElBQUksQ0FBQSwwQkFBQSw0Q0FBRTtZQUFuQixJQUFNLEdBQUcsaUJBQUE7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDYixTQUFTO2FBQ1Y7WUFDRCxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDbEM7Ozs7Ozs7OztBQUNILENBQUMsQ0FBQztBQVhXLFFBQUEsaUJBQWlCLHFCQVc1QjtBQUVGLElBQU0sa0JBQWtCLEdBQUcsVUFBbUIsSUFBZ0I7SUFDNUQsSUFBSSxLQUFVLENBQUM7SUFFZixpR0FBaUc7SUFDakcsMkZBQTJGO0lBQzFGLE1BQWMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQ3JDLHVCQUF1QjtJQUN2QixJQUFJO1FBQ0YsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxpSEFHSixDQUFDLENBQUM7UUFDSCxLQUFLLEdBQUksTUFBYyxDQUFDLGFBQWEsQ0FBQztLQUN2QztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1Y7WUFBNkIsa0NBQTZCO1lBQTFEOztZQUE0RCxDQUFDO1lBQUQscUJBQUM7UUFBRCxDQUFDLEFBQTdELENBQThCLE1BQWMsQ0FBQyxhQUFhLEdBQUc7UUFDN0QsS0FBSyxHQUFHLGNBQWMsQ0FBQztLQUN4QjtJQUNBLE1BQWMsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO0lBRTFDLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUssSUFBTSxXQUFXLEdBQUcsVUFBbUIsSUFBZ0I7SUFDNUQsSUFBTSxLQUFLLEdBQVksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsOEJBQWtCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxtQkFBaUIsSUFBSSxDQUFDLElBQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUV0RSxJQUFNLFVBQVUsR0FBRywwQkFBYyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUNyQiw4QkFBa0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSwyQkFBTSxVQUFVLEdBQUUsQ0FBQztLQUMxRDtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBVlcsUUFBQSxXQUFXLGVBVXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgY29yZURlZmluZVByb3BlcnR5IGZyb20gJy4vY29yZS5kZWZpbmUtcHJvcGVydHknO1xuaW1wb3J0IGNvcmVSZWZsZWN0Sml0IGZyb20gJy4vY29yZS5yZWZsZWN0LmppdCc7XG5pbXBvcnQgeyBBbnlUeXBlLCBUeXBlIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGdldFRlc3RCZWRJbmplY3Rpb24gPSA8ST4odG9rZW46IFR5cGU8ST4gfCBJbmplY3Rpb25Ub2tlbjxJPik6IEkgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB0ZXN0QmVkOiBhbnkgPSBnZXRUZXN0QmVkKCk7XG4gIHRyeSB7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICByZXR1cm4gdGVzdEJlZC5pbmplY3QgPyB0ZXN0QmVkLmluamVjdCh0b2tlbikgOiB0ZXN0QmVkLmdldCh0b2tlbik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SW5qZWN0aW9uID0gPEk+KHRva2VuOiBUeXBlPEk+IHwgSW5qZWN0aW9uVG9rZW48ST4pOiBJID0+IHtcbiAgY29uc3QgdGVzdEJlZDogYW55ID0gZ2V0VGVzdEJlZCgpO1xuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHJldHVybiB0ZXN0QmVkLmluamVjdCA/IHRlc3RCZWQuaW5qZWN0KHRva2VuKSA6IHRlc3RCZWQuZ2V0KHRva2VuKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmbGF0dGVuID0gPFQ+KHZhbHVlczogVCB8IFRbXSwgcmVzdWx0OiBUW10gPSBbXSk6IFRbXSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgZmxhdHRlbih2YWx1ZSwgcmVzdWx0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0LnB1c2godmFsdWVzKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwS2V5cyA9IDxUPihzZXQ6IE1hcDxULCBhbnk+KTogVFtdID0+IHtcbiAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcbiAgc2V0LmZvckVhY2goKF8sIHZhbHVlOiBUKSA9PiByZXN1bHQucHVzaCh2YWx1ZSkpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwVmFsdWVzID0gPFQ+KHNldDogeyBmb3JFYWNoKGExOiAodmFsdWU6IFQpID0+IHZvaWQpOiB2b2lkIH0pOiBUW10gPT4ge1xuICBjb25zdCByZXN1bHQ6IFRbXSA9IFtdO1xuICBzZXQuZm9yRWFjaCgodmFsdWU6IFQpID0+IHJlc3VsdC5wdXNoKHZhbHVlKSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXBFbnRyaWVzID0gPEssIFQ+KHNldDogTWFwPEssIFQ+KTogQXJyYXk8W0ssIFRdPiA9PiB7XG4gIGNvbnN0IHJlc3VsdDogQXJyYXk8W0ssIFRdPiA9IFtdO1xuICBzZXQuZm9yRWFjaCgodmFsdWU6IFQsIGtleTogSykgPT4gcmVzdWx0LnB1c2goW2tleSwgdmFsdWVdKSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IGV4dHJhY3REZXBlbmRlbmN5QXJyYXkgPSAoZGVwczogYW55W10sIHNldDogU2V0PGFueT4pOiB2b2lkID0+IHtcbiAgZm9yIChjb25zdCBmbGFnIG9mIGRlcHMpIHtcbiAgICBjb25zdCBuYW1lID0gZmxhZyAmJiB0eXBlb2YgZmxhZyA9PT0gJ29iamVjdCcgPyBmbGFnLm5nTWV0YWRhdGFOYW1lIDogdW5kZWZpbmVkO1xuICAgIGlmIChuYW1lID09PSAnT3B0aW9uYWwnIHx8IG5hbWUgPT09ICdTa2lwU2VsZicgfHwgbmFtZSA9PT0gJ1NlbGYnKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgc2V0LmFkZChmbGFnKTtcbiAgfVxufTtcblxuLy8gQWNjZXB0cyBhbiBhcnJheSBvZiBkZXBlbmRlbmNpZXMgZnJvbSBwcm92aWRlcnMsIHNraXBzIGluamVjdGlvbnMgZmxhZ3MsXG4vLyBhbmQgYWRkcyB0aGUgcHJvdmlkZXJzIHRvIHRoZSBzZXQuXG5leHBvcnQgY29uc3QgZXh0cmFjdERlcGVuZGVuY3kgPSAoZGVwczogYW55W10sIHNldD86IFNldDxhbnk+KTogdm9pZCA9PiB7XG4gIGlmICghc2V0KSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGVwKSkge1xuICAgICAgc2V0LmFkZChkZXApO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGV4dHJhY3REZXBlbmRlbmN5QXJyYXkoZGVwLCBzZXQpO1xuICB9XG59O1xuXG5jb25zdCBleHRlbmRDbGFzc2ljQ2xhc3MgPSA8SSBleHRlbmRzIG9iamVjdD4oYmFzZTogQW55VHlwZTxJPik6IFR5cGU8ST4gPT4ge1xuICBsZXQgY2hpbGQ6IGFueTtcblxuICAvLyBGaXJzdCB3ZSB0cnkgdG8gZXZhbCBlczIwMTUgc3R5bGUgYW5kIGlmIGl0IGZhaWxzIHRvIHVzZSBlczUgdHJhbnNwaWxhdGlvbiBpbiB0aGUgY2F0Y2ggYmxvY2suXG4gIC8vIFRoZSBuZXh0IHN0ZXAgaXMgdG8gcmVzcGVjdCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzIGFzIHRoZSBwYXJlbnQgY2xhc3MgdmlhIGppdFJlZmxlY3Rvci5cbiAgKHdpbmRvdyBhcyBhbnkpLm5nTW9ja3NQYXJlbnQgPSBiYXNlO1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICB0cnkge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1ldmFsXG4gICAgZXZhbChgXG4gICAgICBjbGFzcyBNb2NrTWlkZGxld2FyZSBleHRlbmRzIHdpbmRvdy5uZ01vY2tzUGFyZW50IHt9XG4gICAgICB3aW5kb3cubmdNb2Nrc1Jlc3VsdCA9IE1vY2tNaWRkbGV3YXJlXG4gICAgYCk7XG4gICAgY2hpbGQgPSAod2luZG93IGFzIGFueSkubmdNb2Nrc1Jlc3VsdDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNsYXNzIE1vY2tNaWRkbGV3YXJlIGV4dGVuZHMgKHdpbmRvdyBhcyBhbnkpLm5nTW9ja3NQYXJlbnQge31cbiAgICBjaGlsZCA9IE1vY2tNaWRkbGV3YXJlO1xuICB9XG4gICh3aW5kb3cgYXMgYW55KS5uZ01vY2tzUGFyZW50ID0gdW5kZWZpbmVkO1xuXG4gIHJldHVybiBjaGlsZDtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRlbmRDbGFzcyA9IDxJIGV4dGVuZHMgb2JqZWN0PihiYXNlOiBBbnlUeXBlPEk+KTogVHlwZTxJPiA9PiB7XG4gIGNvbnN0IGNoaWxkOiBUeXBlPEk+ID0gZXh0ZW5kQ2xhc3NpY0NsYXNzKGJhc2UpO1xuICBjb3JlRGVmaW5lUHJvcGVydHkoY2hpbGQsICduYW1lJywgYE1vY2tNaWRkbGV3YXJlJHtiYXNlLm5hbWV9YCwgdHJ1ZSk7XG5cbiAgY29uc3QgcGFyYW1ldGVycyA9IGNvcmVSZWZsZWN0Sml0KCkucGFyYW1ldGVycyhiYXNlKTtcbiAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgY29yZURlZmluZVByb3BlcnR5KGNoaWxkLCAncGFyYW1ldGVycycsIFsuLi5wYXJhbWV0ZXJzXSk7XG4gIH1cblxuICByZXR1cm4gY2hpbGQ7XG59O1xuIl19
@@ -2,10 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var core_reflect_jit_1 = require("./core.reflect.jit");
4
4
  var ng_mocks_universe_1 = require("./ng-mocks-universe");
5
- exports.default = (function (type) { return function () {
6
- if (!ng_mocks_universe_1.default.global.has(type)) {
7
- ng_mocks_universe_1.default.global.set(type, new type(core_reflect_jit_1.default()));
8
- }
9
- return ng_mocks_universe_1.default.global.get(type);
10
- }; });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5yZWZsZWN0LmJvZHktZ2xvYmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1tb2Nrcy9zcmMvbGliL2NvbW1vbi9jb3JlLnJlZmxlY3QuYm9keS1nbG9iYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBZ0Q7QUFFaEQseURBQWtEO0FBRWxELG1CQUFlLFVBQUksSUFBYSxJQUFLLE9BQUE7SUFDbkMsSUFBSSxDQUFDLDJCQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNyQywyQkFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLDBCQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDOUQ7SUFFRCxPQUFPLDJCQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQyxDQUFDLEVBTm9DLENBTXBDLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29yZVJlZmxlY3RKaXQgZnJvbSAnLi9jb3JlLnJlZmxlY3Quaml0JztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuL2NvcmUudHlwZXMnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuL25nLW1vY2tzLXVuaXZlcnNlJztcblxuZXhwb3J0IGRlZmF1bHQgPFQ+KHR5cGU6IFR5cGU8VD4pID0+ICgpOiBUID0+IHtcbiAgaWYgKCFuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLmhhcyh0eXBlKSkge1xuICAgIG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuc2V0KHR5cGUsIG5ldyB0eXBlKGNvcmVSZWZsZWN0Sml0KCkpKTtcbiAgfVxuXG4gIHJldHVybiBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLmdldCh0eXBlKTtcbn07XG4iXX0=
5
+ exports.default = (function (type) {
6
+ return function () {
7
+ if (!ng_mocks_universe_1.default.global.has(type)) {
8
+ ng_mocks_universe_1.default.global.set(type, new type(core_reflect_jit_1.default()));
9
+ }
10
+ return ng_mocks_universe_1.default.global.get(type);
11
+ };
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5yZWZsZWN0LmJvZHktZ2xvYmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1tb2Nrcy9zcmMvbGliL2NvbW1vbi9jb3JlLnJlZmxlY3QuYm9keS1nbG9iYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBZ0Q7QUFFaEQseURBQWtEO0FBRWxELG1CQUFlLFVBQUksSUFBYTtJQUM5QixPQUFBO1FBQ0UsSUFBSSxDQUFDLDJCQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQywyQkFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLDBCQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUQ7UUFFRCxPQUFPLDJCQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0FBTkQsQ0FNQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmVSZWZsZWN0Sml0IGZyb20gJy4vY29yZS5yZWZsZWN0LmppdCc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmV4cG9ydCBkZWZhdWx0IDxUPih0eXBlOiBUeXBlPFQ+KSA9PlxuICAoKTogVCA9PiB7XG4gICAgaWYgKCFuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLmhhcyh0eXBlKSkge1xuICAgICAgbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5zZXQodHlwZSwgbmV3IHR5cGUoY29yZVJlZmxlY3RKaXQoKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLmdldCh0eXBlKTtcbiAgfTtcbiJdfQ==
@@ -4,4 +4,4 @@ exports.default = (function (declaration) {
4
4
  var _a, _b, _c;
5
5
  return (_b = (_a = declaration === null || declaration === void 0 ? void 0 : declaration.ɵprov) === null || _a === void 0 ? void 0 : _a.providedIn) !== null && _b !== void 0 ? _b : (_c = declaration === null || declaration === void 0 ? void 0 : declaration.ngInjectableDef) === null || _c === void 0 ? void 0 : _c.providedIn;
6
6
  });
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5yZWZsZWN0LnByb3ZpZGVkLWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1tb2Nrcy9zcmMvbGliL2NvbW1vbi9jb3JlLnJlZmxlY3QucHJvdmlkZWQtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxtQkFBZSxVQUFDLFdBQWdCOztJQUM5QixtQkFBTyxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsS0FBSywwQ0FBRSxVQUFVLHlDQUFJLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxlQUFlLDBDQUFFLFVBQVUsQ0FBQztBQUNwRixDQUFDLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbnlUeXBlIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgKGRlY2xhcmF0aW9uOiBhbnkpOiB1bmRlZmluZWQgfCBBbnlUeXBlPGFueT4gfCBzdHJpbmcgPT4ge1xuICByZXR1cm4gZGVjbGFyYXRpb24/Lsm1cHJvdj8ucHJvdmlkZWRJbiA/PyBkZWNsYXJhdGlvbj8ubmdJbmplY3RhYmxlRGVmPy5wcm92aWRlZEluO1xufTtcbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5yZWZsZWN0LnByb3ZpZGVkLWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1tb2Nrcy9zcmMvbGliL2NvbW1vbi9jb3JlLnJlZmxlY3QucHJvdmlkZWQtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxtQkFBZSxVQUFDLFdBQWdCOztJQUM5QixPQUFPLE1BQUEsTUFBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsS0FBSywwQ0FBRSxVQUFVLG1DQUFJLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLGVBQWUsMENBQUUsVUFBVSxDQUFDO0FBQ3BGLENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueVR5cGUgfSBmcm9tICcuL2NvcmUudHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCAoZGVjbGFyYXRpb246IGFueSk6IHVuZGVmaW5lZCB8IEFueVR5cGU8YW55PiB8IHN0cmluZyA9PiB7XG4gIHJldHVybiBkZWNsYXJhdGlvbj8uybVwcm92Py5wcm92aWRlZEluID8/IGRlY2xhcmF0aW9uPy5uZ0luamVjdGFibGVEZWY/LnByb3ZpZGVkSW47XG59O1xuIl19
@@ -1,25 +1,26 @@
1
1
  import { AsyncValidator, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
2
+ import { AnyType } from './core.types';
2
3
  import { MockControlValueAccessor, MockValidator } from './mock-control-value-accessor';
3
4
  export declare class MockControlValueAccessorProxy implements ControlValueAccessor {
4
- readonly target?: import("./core.types").Type<any> | import("./core.types").AbstractType<any> | undefined;
5
+ readonly target?: AnyType<any> | undefined;
5
6
  instance?: Partial<MockControlValueAccessor & ControlValueAccessor>;
6
- constructor(target?: import("./core.types").Type<any> | import("./core.types").AbstractType<any> | undefined);
7
+ constructor(target?: AnyType<any> | undefined);
7
8
  registerOnChange(fn: any): void;
8
9
  registerOnTouched(fn: any): void;
9
10
  setDisabledState(isDisabled: boolean): void;
10
11
  writeValue(value: any): void;
11
12
  }
12
13
  export declare class MockValidatorProxy implements Validator {
13
- readonly target?: import("./core.types").Type<any> | import("./core.types").AbstractType<any> | undefined;
14
+ readonly target?: AnyType<any> | undefined;
14
15
  instance?: Partial<MockValidator & Validator>;
15
- constructor(target?: import("./core.types").Type<any> | import("./core.types").AbstractType<any> | undefined);
16
+ constructor(target?: AnyType<any> | undefined);
16
17
  registerOnValidatorChange(fn: any): void;
17
18
  validate(control: any): ValidationErrors | null;
18
19
  }
19
20
  export declare class MockAsyncValidatorProxy implements AsyncValidator {
20
- readonly target?: import("./core.types").Type<any> | import("./core.types").AbstractType<any> | undefined;
21
+ readonly target?: AnyType<any> | undefined;
21
22
  instance?: Partial<MockValidator & AsyncValidator>;
22
- constructor(target?: import("./core.types").Type<any> | import("./core.types").AbstractType<any> | undefined);
23
+ constructor(target?: AnyType<any> | undefined);
23
24
  registerOnValidatorChange(fn: any): void;
24
25
  validate(control: any): any;
25
26
  }
@@ -1,22 +1,22 @@
1
1
  import { Mock } from './mock';
2
2
  /**
3
- * @deprecated use isMockControlValueAccessor or isMockValidator instead
3
+ * @deprecated use isMockControlValueAccessor or isMockValidator instead (removing in A13)
4
4
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockControlValueAccessor
5
5
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockValidator
6
6
  */
7
7
  export declare class LegacyControlValueAccessor extends Mock {
8
8
  /**
9
- * @deprecated use isMockControlValueAccessor instead
9
+ * @deprecated use isMockControlValueAccessor instead (removing in A13)
10
10
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockControlValueAccessor
11
11
  */
12
12
  __simulateChange(value: any): void;
13
13
  /**
14
- * @deprecated use isMockControlValueAccessor instead
14
+ * @deprecated use isMockControlValueAccessor instead (removing in A13)
15
15
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockControlValueAccessor
16
16
  */
17
17
  __simulateTouch(): void;
18
18
  /**
19
- * @deprecated use isMockValidator instead
19
+ * @deprecated use isMockValidator instead (removing in A13)
20
20
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockValidator
21
21
  */
22
22
  __simulateValidatorChange(): void;
@@ -8,6 +8,8 @@ var __extends = (this && this.__extends) || (function () {
8
8
  return extendStatics(d, b);
9
9
  };
10
10
  return function (d, b) {
11
+ if (typeof b !== "function" && b !== null)
12
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
13
  extendStatics(d, b);
12
14
  function __() { this.constructor = d; }
13
15
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -17,7 +19,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
19
  exports.LegacyControlValueAccessor = void 0;
18
20
  var mock_1 = require("./mock");
19
21
  /**
20
- * @deprecated use isMockControlValueAccessor or isMockValidator instead
22
+ * @deprecated use isMockControlValueAccessor or isMockValidator instead (removing in A13)
21
23
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockControlValueAccessor
22
24
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockValidator
23
25
  */
@@ -32,7 +34,7 @@ var LegacyControlValueAccessor = /** @class */ (function (_super) {
32
34
  };
33
35
  // istanbul ignore next
34
36
  /**
35
- * @deprecated use isMockControlValueAccessor instead
37
+ * @deprecated use isMockControlValueAccessor instead (removing in A13)
36
38
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockControlValueAccessor
37
39
  */
38
40
  LegacyControlValueAccessor.prototype.__simulateTouch = function () {
@@ -40,7 +42,7 @@ var LegacyControlValueAccessor = /** @class */ (function (_super) {
40
42
  };
41
43
  // istanbul ignore next
42
44
  /**
43
- * @deprecated use isMockValidator instead
45
+ * @deprecated use isMockValidator instead (removing in A13)
44
46
  * @see https://ng-mocks.sudo.eu/api/helpers/isMockValidator
45
47
  */
46
48
  LegacyControlValueAccessor.prototype.__simulateValidatorChange = function () {
@@ -49,4 +51,4 @@ var LegacyControlValueAccessor = /** @class */ (function (_super) {
49
51
  return LegacyControlValueAccessor;
50
52
  }(mock_1.Mock));
51
53
  exports.LegacyControlValueAccessor = LegacyControlValueAccessor;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1tb2Nrcy9zcmMvbGliL2NvbW1vbi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDZDQUE2Qzs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QywrQkFBOEI7QUFFOUI7Ozs7R0FJRztBQUNIO0lBQWdELDhDQUFJO0lBQXBEOztJQTRCQSxDQUFDO0lBdEJDLHVCQUF1QjtJQUNoQixxREFBZ0IsR0FBdkI7UUFDRSxpQkFBaUI7SUFDbkIsQ0FBQztJQUVELHVCQUF1QjtJQUN2Qjs7O09BR0c7SUFDSSxvREFBZSxHQUF0QjtRQUNFLGlCQUFpQjtJQUNuQixDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCOzs7T0FHRztJQUNJLDhEQUF5QixHQUFoQztRQUNFLGlCQUFpQjtJQUNuQixDQUFDO0lBQ0gsaUNBQUM7QUFBRCxDQUFDLEFBNUJELENBQWdELFdBQUksR0E0Qm5EO0FBNUJZLGdFQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIHZhcmlhYmxlLW5hbWUgYmFuLXRzLWlnbm9yZVxuXG5pbXBvcnQgeyBNb2NrIH0gZnJvbSAnLi9tb2NrJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgaXNNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3Igb3IgaXNNb2NrVmFsaWRhdG9yIGluc3RlYWRcbiAqIEBzZWUgaHR0cHM6Ly9uZy1tb2Nrcy5zdWRvLmV1L2FwaS9oZWxwZXJzL2lzTW9ja0NvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gKiBAc2VlIGh0dHBzOi8vbmctbW9ja3Muc3Vkby5ldS9hcGkvaGVscGVycy9pc01vY2tWYWxpZGF0b3JcbiAqL1xuZXhwb3J0IGNsYXNzIExlZ2FjeUNvbnRyb2xWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgTW9jayB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaXNNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3IgaW5zdGVhZFxuICAgKiBAc2VlIGh0dHBzOi8vbmctbW9ja3Muc3Vkby5ldS9hcGkvaGVscGVycy9pc01vY2tDb250cm9sVmFsdWVBY2Nlc3NvclxuICAgKi9cbiAgcHVibGljIF9fc2ltdWxhdGVDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQ7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHB1YmxpYyBfX3NpbXVsYXRlQ2hhbmdlKCkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGlzTW9ja0NvbnRyb2xWYWx1ZUFjY2Vzc29yIGluc3RlYWRcbiAgICogQHNlZSBodHRwczovL25nLW1vY2tzLnN1ZG8uZXUvYXBpL2hlbHBlcnMvaXNNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICovXG4gIHB1YmxpYyBfX3NpbXVsYXRlVG91Y2goKSB7XG4gICAgLy8gbm90aGluZyB0byBkby5cbiAgfVxuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaXNNb2NrVmFsaWRhdG9yIGluc3RlYWRcbiAgICogQHNlZSBodHRwczovL25nLW1vY2tzLnN1ZG8uZXUvYXBpL2hlbHBlcnMvaXNNb2NrVmFsaWRhdG9yXG4gICAqL1xuICBwdWJsaWMgX19zaW11bGF0ZVZhbGlkYXRvckNoYW5nZSgpIHtcbiAgICAvLyBub3RoaW5nIHRvIGRvLlxuICB9XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL25nLW1vY2tzLnN1ZG8uZXUvYXBpL2hlbHBlcnMvaXNNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvKipcbiAgICogQHNlZSBodHRwczovL25nLW1vY2tzLnN1ZG8uZXUvZXh0cmEvbW9jay1mb3JtLWNvbnRyb2xzXG4gICAqL1xuICBfX3NpbXVsYXRlQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vbmctbW9ja3Muc3Vkby5ldS9leHRyYS9tb2NrLWZvcm0tY29udHJvbHNcbiAgICovXG4gIF9fc2ltdWxhdGVUb3VjaCgpOiB2b2lkO1xufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9uZy1tb2Nrcy5zdWRvLmV1L2FwaS9oZWxwZXJzL2lzTW9ja1ZhbGlkYXRvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vY2tWYWxpZGF0b3Ige1xuICAvKipcbiAgICogQHNlZSBodHRwczovL25nLW1vY2tzLnN1ZG8uZXUvZXh0cmEvbW9jay1mb3JtLWNvbnRyb2xzXG4gICAqL1xuICBfX3NpbXVsYXRlVmFsaWRhdG9yQ2hhbmdlKCk6IHZvaWQ7XG59XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1tb2Nrcy9zcmMvbGliL2NvbW1vbi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDZDQUE2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdDLCtCQUE4QjtBQUU5Qjs7OztHQUlHO0FBQ0g7SUFBZ0QsOENBQUk7SUFBcEQ7O0lBNEJBLENBQUM7SUF0QkMsdUJBQXVCO0lBQ2hCLHFEQUFnQixHQUF2QjtRQUNFLGlCQUFpQjtJQUNuQixDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCOzs7T0FHRztJQUNJLG9EQUFlLEdBQXRCO1FBQ0UsaUJBQWlCO0lBQ25CLENBQUM7SUFFRCx1QkFBdUI7SUFDdkI7OztPQUdHO0lBQ0ksOERBQXlCLEdBQWhDO1FBQ0UsaUJBQWlCO0lBQ25CLENBQUM7SUFDSCxpQ0FBQztBQUFELENBQUMsQUE1QkQsQ0FBZ0QsV0FBSSxHQTRCbkQ7QUE1QlksZ0VBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUgdmFyaWFibGUtbmFtZSBiYW4tdHMtaWdub3JlXG5cbmltcG9ydCB7IE1vY2sgfSBmcm9tICcuL21vY2snO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBpc01vY2tDb250cm9sVmFsdWVBY2Nlc3NvciBvciBpc01vY2tWYWxpZGF0b3IgaW5zdGVhZCAocmVtb3ZpbmcgaW4gQTEzKVxuICogQHNlZSBodHRwczovL25nLW1vY2tzLnN1ZG8uZXUvYXBpL2hlbHBlcnMvaXNNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAqIEBzZWUgaHR0cHM6Ly9uZy1tb2Nrcy5zdWRvLmV1L2FwaS9oZWxwZXJzL2lzTW9ja1ZhbGlkYXRvclxuICovXG5leHBvcnQgY2xhc3MgTGVnYWN5Q29udHJvbFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBNb2NrIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBpc01vY2tDb250cm9sVmFsdWVBY2Nlc3NvciBpbnN0ZWFkIChyZW1vdmluZyBpbiBBMTMpXG4gICAqIEBzZWUgaHR0cHM6Ly9uZy1tb2Nrcy5zdWRvLmV1L2FwaS9oZWxwZXJzL2lzTW9ja0NvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAqL1xuICBwdWJsaWMgX19zaW11bGF0ZUNoYW5nZSh2YWx1ZTogYW55KTogdm9pZDtcbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgcHVibGljIF9fc2ltdWxhdGVDaGFuZ2UoKSB7XG4gICAgLy8gbm90aGluZyB0byBkby5cbiAgfVxuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaXNNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3IgaW5zdGVhZCAocmVtb3ZpbmcgaW4gQTEzKVxuICAgKiBAc2VlIGh0dHBzOi8vbmctbW9ja3Muc3Vkby5ldS9hcGkvaGVscGVycy9pc01vY2tDb250cm9sVmFsdWVBY2Nlc3NvclxuICAgKi9cbiAgcHVibGljIF9fc2ltdWxhdGVUb3VjaCgpIHtcbiAgICAvLyBub3RoaW5nIHRvIGRvLlxuICB9XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBpc01vY2tWYWxpZGF0b3IgaW5zdGVhZCAocmVtb3ZpbmcgaW4gQTEzKVxuICAgKiBAc2VlIGh0dHBzOi8vbmctbW9ja3Muc3Vkby5ldS9hcGkvaGVscGVycy9pc01vY2tWYWxpZGF0b3JcbiAgICovXG4gIHB1YmxpYyBfX3NpbXVsYXRlVmFsaWRhdG9yQ2hhbmdlKCkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vbmctbW9ja3Muc3Vkby5ldS9hcGkvaGVscGVycy9pc01vY2tDb250cm9sVmFsdWVBY2Nlc3NvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vY2tDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vbmctbW9ja3Muc3Vkby5ldS9leHRyYS9tb2NrLWZvcm0tY29udHJvbHNcbiAgICovXG4gIF9fc2ltdWxhdGVDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9uZy1tb2Nrcy5zdWRvLmV1L2V4dHJhL21vY2stZm9ybS1jb250cm9sc1xuICAgKi9cbiAgX19zaW11bGF0ZVRvdWNoKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL25nLW1vY2tzLnN1ZG8uZXUvYXBpL2hlbHBlcnMvaXNNb2NrVmFsaWRhdG9yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1ZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vbmctbW9ja3Muc3Vkby5ldS9leHRyYS9tb2NrLWZvcm0tY29udHJvbHNcbiAgICovXG4gIF9fc2ltdWxhdGVWYWxpZGF0b3JDaGFuZ2UoKTogdm9pZDtcbn1cbiJdfQ==
@@ -27,9 +27,10 @@ var __read = (this && this.__read) || function (o, n) {
27
27
  }
28
28
  return ar;
29
29
  };
30
- var __spread = (this && this.__spread) || function () {
31
- for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
32
- return ar;
30
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
31
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
32
+ to[j] = from[i];
33
+ return to;
33
34
  };
34
35
  Object.defineProperty(exports, "__esModule", { value: true });
35
36
  exports.Mock = void 0;
@@ -137,7 +138,7 @@ var applyOutputs = function (instance) {
137
138
  var applyPrototype = function (instance, prototype) {
138
139
  var e_4, _a;
139
140
  try {
140
- for (var _b = __values(__spread(helper_mock_service_1.default.extractMethodsFromPrototype(prototype), helper_mock_service_1.default.extractPropertiesFromPrototype(prototype))), _c = _b.next(); !_c.done; _c = _b.next()) {
141
+ for (var _b = __values(__spreadArray(__spreadArray([], __read(helper_mock_service_1.default.extractMethodsFromPrototype(prototype))), __read(helper_mock_service_1.default.extractPropertiesFromPrototype(prototype)))), _c = _b.next(); !_c.done; _c = _b.next()) {
141
142
  var prop = _c.value;
142
143
  var descriptor = helper_mock_service_1.default.extractPropertyDescriptor(prototype, prop);
143
144
  helper_mock_service_1.default.definePropertyDescriptor(instance, prop, descriptor);
@@ -197,7 +198,7 @@ var applyOverrides = function (instance, mockOf, injector) {
197
198
  if (instance.__ngMocksConfig.init) {
198
199
  callbacks.push(instance.__ngMocksConfig.init);
199
200
  }
200
- callbacks.push.apply(callbacks, __spread(mock_instance_apply_1.default(mockOf)));
201
+ callbacks.push.apply(callbacks, __spreadArray([], __read(mock_instance_apply_1.default(mockOf))));
201
202
  try {
202
203
  for (var callbacks_1 = __values(callbacks), callbacks_1_1 = callbacks_1.next(); !callbacks_1_1.done; callbacks_1_1 = callbacks_1.next()) {
203
204
  var callback = callbacks_1_1.value;
@@ -256,4 +257,4 @@ core_define_property_1.default(Mock, 'parameters', [
256
257
  [core_1.Injector, new core_1.Optional()],
257
258
  [core_form_1.default.NgControl || /* istanbul ignore next */ (function () { return undefined; }), new core_1.Optional(), new core_1.Self()],
258
259
  ]);
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctbW9ja3Mvc3JjL2xpYi9jb21tb24vbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9CLHNDQUF1RTtBQUd2RSxvRUFBNkQ7QUFDN0QsNEVBQXFFO0FBQ3JFLDJFQUFvRTtBQUVwRSwrREFBd0Q7QUFDeEQseUNBQW1DO0FBQ25DLCtDQUEyQztBQUUzQywrQ0FBd0M7QUFDeEMseUZBQW9GO0FBQ3BGLHlEQUFrRDtBQUVsRCxJQUFNLGdCQUFnQixHQUFHLFVBQUMsUUFBYSxFQUFFLFNBQWU7SUFDdEQsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLEVBQUU7UUFDN0YsSUFBSTtZQUNGLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxpRUFBNkIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDckY7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLGlCQUFpQjtTQUNsQjtLQUNGO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsa0NBQWtDO0FBQ2xDLElBQU0sb0JBQW9CLEdBQUcsVUFBQyxTQUFjLEVBQUUsUUFBYTtJQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLGFBQWEsRUFBRTtRQUNsRyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDNUMsNkJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JELDZCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUN0RCw2QkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDckQsNkJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvQyxRQUFRLENBQUMsZUFBZSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztLQUN4RDtBQUNILENBQUMsQ0FBQztBQUVGLDhCQUE4QjtBQUM5QixvQ0FBb0M7QUFDcEMsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLFVBQWlCLEVBQUUsUUFBYTs7O1FBQ3hELEtBQXdCLElBQUEsZUFBQSxTQUFBLFVBQVUsQ0FBQSxzQ0FBQSw4REFBRTtZQUEvQixJQUFNLFNBQVMsdUJBQUE7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsYUFBYSxFQUFFO2dCQUN0RSxTQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztnQkFDOUIsNkJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO2dCQUM5RCw2QkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDN0M7U0FDRjs7Ozs7Ozs7O0FBQ0gsQ0FBQyxDQUFDO0FBRUYsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLFFBQWEsRUFBRSxTQUFjO0lBQ3pELGdCQUFnQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV0QyxJQUFJO1FBQ0YsdUJBQXVCO1FBQ3ZCLElBQUksU0FBUyxFQUFFO1lBQ2Isb0JBQW9CLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDckQsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzNEO0tBQ0Y7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLGlCQUFpQjtLQUNsQjtBQUNILENBQUMsQ0FBQztBQUVGLElBQU0sWUFBWSxHQUFHLFVBQUMsUUFBNkM7O0lBQ2pFLElBQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQzs7UUFDdkIsS0FBcUIsSUFBQSxLQUFBLFNBQUEsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFBLGdCQUFBLDRCQUFFO1lBQXhELElBQU0sTUFBTSxXQUFBO1lBQ2YsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEM7Ozs7Ozs7Ozs7UUFFRCxLQUFxQixJQUFBLGdCQUFBLFNBQUEsV0FBVyxDQUFBLHdDQUFBLGlFQUFFO1lBQTdCLElBQU0sTUFBTSx3QkFBQTtZQUNmLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pFLFNBQVM7YUFDVjtZQUNELFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLG1CQUFZLEVBQU8sQ0FBQztTQUM1Qzs7Ozs7Ozs7O0FBQ0gsQ0FBQyxDQUFDO0FBRUYsSUFBTSxjQUFjLEdBQUcsVUFBQyxRQUFjLEVBQUUsU0FBdUI7OztRQUM3RCxLQUFtQixJQUFBLEtBQUEsa0JBQ2QsNkJBQWlCLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLEVBQ3hELDZCQUFpQixDQUFDLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxFQUMvRCxnQkFBQSw0QkFBRTtZQUhFLElBQU0sSUFBSSxXQUFBO1lBSWIsSUFBTSxVQUFVLEdBQUcsNkJBQWlCLENBQUMseUJBQXlCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hGLDZCQUFpQixDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDeEU7Ozs7Ozs7OztBQUNILENBQUMsQ0FBQztBQUVGLElBQU0sWUFBWSxHQUFHLFVBQUMsUUFBdUMsRUFBRSxTQUF1Qjs7O1FBQ3BGLEtBQXFCLElBQUEsS0FBQSxTQUFBLDZCQUFpQixDQUFDLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFFLElBQU0sTUFBTSxXQUFBO1lBQ2YsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDekUsU0FBUzthQUNWO1lBQ0QsNkJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMxQzs7Ozs7Ozs7O0FBQ0gsQ0FBQyxDQUFDO0FBRUYsSUFBTSxVQUFVLEdBQUcsVUFBQyxRQUF1QyxFQUFFLFNBQXVCOzs7UUFDbEYsS0FBbUIsSUFBQSxLQUFBLFNBQUEsNkJBQWlCLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBM0UsSUFBTSxJQUFJLFdBQUE7WUFDYixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNyRSxTQUFTO2FBQ1Y7WUFDRCw2QkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5Qyw2QkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMvQzs7Ozs7Ozs7O0FBQ0gsQ0FBQyxDQUFDO0FBWUYsSUFBTSxjQUFjLEdBQUcsVUFBQyxRQUFhLEVBQUUsTUFBVyxFQUFFLFFBQW1COztJQUNyRSxJQUFNLFlBQVksR0FBeUIsMkJBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEYsSUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyx3QkFBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUQsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRTtRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDL0M7SUFDRCxTQUFTLENBQUMsSUFBSSxPQUFkLFNBQVMsV0FBUyw2QkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRTs7UUFFN0MsS0FBdUIsSUFBQSxjQUFBLFNBQUEsU0FBUyxDQUFBLG9DQUFBLDJEQUFFO1lBQTdCLElBQU0sUUFBUSxzQkFBQTtZQUNqQixJQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2QsU0FBUzthQUNWO1lBQ0QsMEJBQWMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDckM7Ozs7Ozs7OztBQUNILENBQUMsQ0FBQztBQU1GO0lBR0UsY0FDRSxRQUFnQyxFQUNoQyxTQUE0Qjs7UUFENUIseUJBQUEsRUFBQSxlQUFnQztRQUNoQywwQkFBQSxFQUFBLGdCQUE0QjtRQUU1QixJQUFNLE1BQU0sR0FBSSxJQUFJLENBQUMsV0FBbUIsQ0FBQyxNQUFNLENBQUM7UUFDaEQsOEJBQWtCLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELDhCQUFrQixDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDOztZQUM1RCxLQUFrQixJQUFBLEtBQUEsU0FBQSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsSUFBSSwwQkFBMEIsQ0FBQyxFQUFFLENBQUEsZ0JBQUEsNEJBQUU7Z0JBQWxGLElBQU0sR0FBRyxXQUFBO2dCQUNaLDhCQUFrQixDQUFDLElBQUksRUFBRSxrQkFBZ0IsR0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQzVEOzs7Ozs7Ozs7UUFFRCx1QkFBdUI7UUFDdkIsSUFBSSxzQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BCLG9CQUFvQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN0QyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEQsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDcEM7UUFFRCx1QkFBdUI7UUFDdkIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsYUFBUixRQUFRLGNBQVIsUUFBUSxHQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDSCxXQUFDO0FBQUQsQ0FBQyxBQTVCRCxJQTRCQztBQTVCWSxvQkFBSTtBQThCakIsOEJBQWtCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtJQUNyQyxDQUFDLGVBQVEsRUFBRSxJQUFJLGVBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUMsbUJBQVEsQ0FBQyxTQUFTLElBQUksMEJBQTBCLENBQUMsQ0FBQyxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVMsQ0FBQyxFQUFFLElBQUksZUFBUSxFQUFFLEVBQUUsSUFBSSxXQUFJLEVBQUUsQ0FBQztDQUNqRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZSB2YXJpYWJsZS1uYW1lXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElNb2NrQnVpbGRlckNvbmZpZyB9IGZyb20gJy4uL21vY2stYnVpbGRlci90eXBlcyc7XG5pbXBvcnQgbW9ja0hlbHBlclN0dWIgZnJvbSAnLi4vbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuc3R1Yic7XG5pbXBvcnQgbW9ja0luc3RhbmNlQXBwbHkgZnJvbSAnLi4vbW9jay1pbnN0YW5jZS9tb2NrLWluc3RhbmNlLWFwcGx5JztcbmltcG9ydCBoZWxwZXJNb2NrU2VydmljZSBmcm9tICcuLi9tb2NrLXNlcnZpY2UvaGVscGVyLm1vY2stc2VydmljZSc7XG5cbmltcG9ydCBjb3JlRGVmaW5lUHJvcGVydHkgZnJvbSAnLi9jb3JlLmRlZmluZS1wcm9wZXJ0eSc7XG5pbXBvcnQgY29yZUZvcm0gZnJvbSAnLi9jb3JlLmZvcm0nO1xuaW1wb3J0IHsgbWFwVmFsdWVzIH0gZnJvbSAnLi9jb3JlLmhlbHBlcnMnO1xuaW1wb3J0IHsgQW55VHlwZSB9IGZyb20gJy4vY29yZS50eXBlcyc7XG5pbXBvcnQgZnVuY0lzTW9jayBmcm9tICcuL2Z1bmMuaXMtbW9jayc7XG5pbXBvcnQgeyBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JQcm94eSB9IGZyb20gJy4vbW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yLXByb3h5JztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmNvbnN0IHNldFZhbHVlQWNjZXNzb3IgPSAoaW5zdGFuY2U6IGFueSwgbmdDb250cm9sPzogYW55KSA9PiB7XG4gIGlmIChuZ0NvbnRyb2wgJiYgIW5nQ29udHJvbC52YWx1ZUFjY2Vzc29yICYmIGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy5zZXRDb250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIHRyeSB7XG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IG5ldyBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JQcm94eShpbnN0YW5jZS5fX25nTW9ja3NDdG9yKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBub3RoaW5nIHRvIGRvLlxuICAgIH1cbiAgfVxufTtcblxuLy8gY29ubmVjdGluZyB0byBOR19WQUxVRV9BQ0NFU1NPUlxuY29uc3QgaW5zdGFsbFZhbHVlQWNjZXNzb3IgPSAobmdDb250cm9sOiBhbnksIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgaWYgKCFuZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci5pbnN0YW5jZSAmJiBuZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci50YXJnZXQgPT09IGluc3RhbmNlLl9fbmdNb2Nrc0N0b3IpIHtcbiAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsICdyZWdpc3Rlck9uQ2hhbmdlJyk7XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3JlZ2lzdGVyT25Ub3VjaGVkJyk7XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3NldERpc2FibGVkU3RhdGUnKTtcbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCAnd3JpdGVWYWx1ZScpO1xuICAgIGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy5pc0NvbnRyb2xWYWx1ZUFjY2Vzc29yID0gdHJ1ZTtcbiAgfVxufTtcblxuLy8gY29ubmVjdGluZyB0byBOR19WQUxJREFUT1JTXG4vLyBjb25uZWN0aW5nIHRvIE5HX0FTWU5DX1ZBTElEQVRPUlNcbmNvbnN0IGluc3RhbGxWYWxpZGF0b3IgPSAodmFsaWRhdG9yczogYW55W10sIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2YgdmFsaWRhdG9ycykge1xuICAgIGlmICghdmFsaWRhdG9yLmluc3RhbmNlICYmIHZhbGlkYXRvci50YXJnZXQgPT09IGluc3RhbmNlLl9fbmdNb2Nrc0N0b3IpIHtcbiAgICAgIHZhbGlkYXRvci5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3JlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UnKTtcbiAgICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsICd2YWxpZGF0ZScpO1xuICAgICAgaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLmlzVmFsaWRhdG9yID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGFwcGx5TmdWYWx1ZUFjY2Vzc29yID0gKGluc3RhbmNlOiBhbnksIG5nQ29udHJvbDogYW55KSA9PiB7XG4gIHNldFZhbHVlQWNjZXNzb3IoaW5zdGFuY2UsIG5nQ29udHJvbCk7XG5cbiAgdHJ5IHtcbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICAgIGlmIChuZ0NvbnRyb2wpIHtcbiAgICAgIGluc3RhbGxWYWx1ZUFjY2Vzc29yKG5nQ29udHJvbCwgaW5zdGFuY2UpO1xuICAgICAgaW5zdGFsbFZhbGlkYXRvcihuZ0NvbnRyb2wuX3Jhd1ZhbGlkYXRvcnMsIGluc3RhbmNlKTtcbiAgICAgIGluc3RhbGxWYWxpZGF0b3IobmdDb250cm9sLl9yYXdBc3luY1ZhbGlkYXRvcnMsIGluc3RhbmNlKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBub3RoaW5nIHRvIGRvLlxuICB9XG59O1xuXG5jb25zdCBhcHBseU91dHB1dHMgPSAoaW5zdGFuY2U6IE1vY2tDb25maWcgJiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+KSA9PiB7XG4gIGNvbnN0IG1vY2tPdXRwdXRzID0gW107XG4gIGZvciAoY29uc3Qgb3V0cHV0IG9mIGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy5vdXRwdXRzIHx8IFtdKSB7XG4gICAgbW9ja091dHB1dHMucHVzaChvdXRwdXQuc3BsaXQoJzonKVswXSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IG91dHB1dCBvZiBtb2NrT3V0cHV0cykge1xuICAgIGlmIChpbnN0YW5jZVtvdXRwdXRdIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIG91dHB1dCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpbnN0YW5jZVtvdXRwdXRdID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIH1cbn07XG5cbmNvbnN0IGFwcGx5UHJvdG90eXBlID0gKGluc3RhbmNlOiBNb2NrLCBwcm90b3R5cGU6IEFueVR5cGU8YW55PikgPT4ge1xuICBmb3IgKGNvbnN0IHByb3Agb2YgW1xuICAgIC4uLmhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RNZXRob2RzRnJvbVByb3RvdHlwZShwcm90b3R5cGUpLFxuICAgIC4uLmhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RQcm9wZXJ0aWVzRnJvbVByb3RvdHlwZShwcm90b3R5cGUpLFxuICBdKSB7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IGhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RQcm9wZXJ0eURlc2NyaXB0b3IocHJvdG90eXBlLCBwcm9wKTtcbiAgICBoZWxwZXJNb2NrU2VydmljZS5kZWZpbmVQcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIHByb3AsIGRlc2NyaXB0b3IpO1xuICB9XG59O1xuXG5jb25zdCBhcHBseU1ldGhvZHMgPSAoaW5zdGFuY2U6IE1vY2sgJiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+LCBwcm90b3R5cGU6IEFueVR5cGU8YW55PikgPT4ge1xuICBmb3IgKGNvbnN0IG1ldGhvZCBvZiBoZWxwZXJNb2NrU2VydmljZS5leHRyYWN0TWV0aG9kc0Zyb21Qcm90b3R5cGUocHJvdG90eXBlKSkge1xuICAgIGlmIChpbnN0YW5jZVttZXRob2RdIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIG1ldGhvZCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCBtZXRob2QpO1xuICB9XG59O1xuXG5jb25zdCBhcHBseVByb3BzID0gKGluc3RhbmNlOiBNb2NrICYgUmVjb3JkPGtleW9mIGFueSwgYW55PiwgcHJvdG90eXBlOiBBbnlUeXBlPGFueT4pID0+IHtcbiAgZm9yIChjb25zdCBwcm9wIG9mIGhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RQcm9wZXJ0aWVzRnJvbVByb3RvdHlwZShwcm90b3R5cGUpKSB7XG4gICAgaWYgKGluc3RhbmNlW3Byb3BdIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIHByb3ApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgcHJvcCwgJ2dldCcpO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsIHByb3AsICdzZXQnKTtcbiAgfVxufTtcblxuZXhwb3J0IHR5cGUgbmdNb2Nrc01vY2tDb25maWcgPSB7XG4gIGNvbmZpZz86IElNb2NrQnVpbGRlckNvbmZpZztcbiAgaW5pdD86IChpbnN0YW5jZTogYW55KSA9PiB2b2lkO1xuICBpc0NvbnRyb2xWYWx1ZUFjY2Vzc29yPzogYm9vbGVhbjtcbiAgaXNWYWxpZGF0b3I/OiBib29sZWFuO1xuICBvdXRwdXRzPzogc3RyaW5nW107XG4gIHF1ZXJ5U2NhbktleXM/OiBzdHJpbmdbXTtcbiAgc2V0Q29udHJvbFZhbHVlQWNjZXNzb3I/OiBib29sZWFuO1xufTtcblxuY29uc3QgYXBwbHlPdmVycmlkZXMgPSAoaW5zdGFuY2U6IGFueSwgbW9ja09mOiBhbnksIGluamVjdG9yPzogSW5qZWN0b3IpOiB2b2lkID0+IHtcbiAgY29uc3QgY29uZmlnR2xvYmFsOiBTZXQ8YW55PiB8IHVuZGVmaW5lZCA9IG5nTW9ja3NVbml2ZXJzZS5nZXRPdmVycmlkZXMoKS5nZXQobW9ja09mKTtcbiAgY29uc3QgY2FsbGJhY2tzID0gY29uZmlnR2xvYmFsID8gbWFwVmFsdWVzKGNvbmZpZ0dsb2JhbCkgOiBbXTtcbiAgaWYgKGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy5pbml0KSB7XG4gICAgY2FsbGJhY2tzLnB1c2goaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLmluaXQpO1xuICB9XG4gIGNhbGxiYWNrcy5wdXNoKC4uLm1vY2tJbnN0YW5jZUFwcGx5KG1vY2tPZikpO1xuXG4gIGZvciAoY29uc3QgY2FsbGJhY2sgb2YgY2FsbGJhY2tzKSB7XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gY2FsbGJhY2soaW5zdGFuY2UsIGluamVjdG9yKTtcbiAgICBpZiAoIW92ZXJyaWRlcykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIG1vY2tIZWxwZXJTdHViKGluc3RhbmNlLCBvdmVycmlkZXMpO1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vY2tDb25maWcge1xuICBfX25nTW9ja3NDb25maWc6IG5nTW9ja3NNb2NrQ29uZmlnO1xufVxuXG5leHBvcnQgY2xhc3MgTW9jayB7XG4gIHByb3RlY3RlZCBfX25nTW9ja3NDb25maWchOiBuZ01vY2tzTW9ja0NvbmZpZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgaW5qZWN0b3I6IEluamVjdG9yIHwgbnVsbCA9IG51bGwsXG4gICAgbmdDb250cm9sOiBhbnkgfCBudWxsID0gbnVsbCwgLy8gTmdDb250cm9sXG4gICkge1xuICAgIGNvbnN0IG1vY2tPZiA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSkubW9ja09mO1xuICAgIGNvcmVEZWZpbmVQcm9wZXJ0eSh0aGlzLCAnX19uZ01vY2tzSW5qZWN0b3InLCBpbmplY3Rvcik7XG4gICAgY29yZURlZmluZVByb3BlcnR5KHRoaXMsICdfX25nTW9ja3NDdG9yJywgdGhpcy5jb25zdHJ1Y3Rvcik7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5fX25nTW9ja3NDb25maWcucXVlcnlTY2FuS2V5cyB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXSkge1xuICAgICAgY29yZURlZmluZVByb3BlcnR5KHRoaXMsIGBfX25nTW9ja3NWY3JfJHtrZXl9YCwgdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICAgIGlmIChmdW5jSXNNb2NrKHRoaXMpKSB7XG4gICAgICBhcHBseU5nVmFsdWVBY2Nlc3Nvcih0aGlzLCBuZ0NvbnRyb2wpO1xuICAgICAgYXBwbHlPdXRwdXRzKHRoaXMpO1xuICAgICAgYXBwbHlQcm90b3R5cGUodGhpcywgT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpKTtcbiAgICAgIGFwcGx5TWV0aG9kcyh0aGlzLCBtb2NrT2YucHJvdG90eXBlKTtcbiAgICAgIGFwcGx5UHJvcHModGhpcywgbW9ja09mLnByb3RvdHlwZSk7XG4gICAgfVxuXG4gICAgLy8gYW5kIGZha2luZyBwcm90b3R5cGVcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgbW9ja09mLnByb3RvdHlwZSk7XG5cbiAgICBhcHBseU92ZXJyaWRlcyh0aGlzLCBtb2NrT2YsIGluamVjdG9yID8/IHVuZGVmaW5lZCk7XG4gIH1cbn1cblxuY29yZURlZmluZVByb3BlcnR5KE1vY2ssICdwYXJhbWV0ZXJzJywgW1xuICBbSW5qZWN0b3IsIG5ldyBPcHRpb25hbCgpXSxcbiAgW2NvcmVGb3JtLk5nQ29udHJvbCB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyAoKCkgPT4gdW5kZWZpbmVkKSwgbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCldLFxuXSk7XG4iXX0=
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctbW9ja3Mvc3JjL2xpYi9jb21tb24vbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQixzQ0FBdUU7QUFHdkUsb0VBQTZEO0FBQzdELDRFQUFxRTtBQUNyRSwyRUFBb0U7QUFFcEUsK0RBQXdEO0FBQ3hELHlDQUFtQztBQUNuQywrQ0FBMkM7QUFFM0MsK0NBQXdDO0FBQ3hDLHlGQUFvRjtBQUNwRix5REFBa0Q7QUFFbEQsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLFFBQWEsRUFBRSxTQUFlO0lBQ3RELElBQUksU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLHVCQUF1QixFQUFFO1FBQzdGLElBQUk7WUFDRixTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksaUVBQTZCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3JGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixpQkFBaUI7U0FDbEI7S0FDRjtBQUNILENBQUMsQ0FBQztBQUVGLGtDQUFrQztBQUNsQyxJQUFNLG9CQUFvQixHQUFHLFVBQUMsU0FBYyxFQUFFLFFBQWE7SUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxhQUFhLEVBQUU7UUFDbEcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzVDLDZCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNyRCw2QkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDdEQsNkJBQWlCLENB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QUN2QixJQUFJLHNCQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQixjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsRCxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNwQztRQUVELHVCQUF1QjtRQUN2QixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUMsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxhQUFSLFFBQVEsY0FBUixRQUFRLEdBQUksU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNILFdBQUM7QUFBRCxDQUFDLEFBNUJELElBNEJDO0FBNUJZLG9CQUFJO0FBOEJqQiw4QkFBa0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO0lBQ3JDLENBQUMsZUFBUSxFQUFFLElBQUksZUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQyxtQkFBUSxDQUFDLFNBQVMsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUyxDQUFDLEVBQUUsSUFBSSxlQUFRLEVBQUUsRUFBRSxJQUFJLFdBQUksRUFBRSxDQUFDO0NBQ2pHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIHZhcmlhYmxlLW5hbWVcblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgT3B0aW9uYWwsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSU1vY2tCdWlsZGVyQ29uZmlnIH0gZnJvbSAnLi4vbW9jay1idWlsZGVyL3R5cGVzJztcbmltcG9ydCBtb2NrSGVscGVyU3R1YiBmcm9tICcuLi9tb2NrLWhlbHBlci9tb2NrLWhlbHBlci5zdHViJztcbmltcG9ydCBtb2NrSW5zdGFuY2VBcHBseSBmcm9tICcuLi9tb2NrLWluc3RhbmNlL21vY2staW5zdGFuY2UtYXBwbHknO1xuaW1wb3J0IGhlbHBlck1vY2tTZXJ2aWNlIGZyb20gJy4uL21vY2stc2VydmljZS9oZWxwZXIubW9jay1zZXJ2aWNlJztcblxuaW1wb3J0IGNvcmVEZWZpbmVQcm9wZXJ0eSBmcm9tICcuL2NvcmUuZGVmaW5lLXByb3BlcnR5JztcbmltcG9ydCBjb3JlRm9ybSBmcm9tICcuL2NvcmUuZm9ybSc7XG5pbXBvcnQgeyBtYXBWYWx1ZXMgfSBmcm9tICcuL2NvcmUuaGVscGVycyc7XG5pbXBvcnQgeyBBbnlUeXBlIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcbmltcG9ydCBmdW5jSXNNb2NrIGZyb20gJy4vZnVuYy5pcy1tb2NrJztcbmltcG9ydCB7IE1vY2tDb250cm9sVmFsdWVBY2Nlc3NvclByb3h5IH0gZnJvbSAnLi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3ItcHJveHknO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuL25nLW1vY2tzLXVuaXZlcnNlJztcblxuY29uc3Qgc2V0VmFsdWVBY2Nlc3NvciA9IChpbnN0YW5jZTogYW55LCBuZ0NvbnRyb2w/OiBhbnkpID0+IHtcbiAgaWYgKG5nQ29udHJvbCAmJiAhbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgJiYgaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLnNldENvbnRyb2xWYWx1ZUFjY2Vzc29yKSB7XG4gICAgdHJ5IHtcbiAgICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gbmV3IE1vY2tDb250cm9sVmFsdWVBY2Nlc3NvclByb3h5KGluc3RhbmNlLl9fbmdNb2Nrc0N0b3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gICAgfVxuICB9XG59O1xuXG4vLyBjb25uZWN0aW5nIHRvIE5HX1ZBTFVFX0FDQ0VTU09SXG5jb25zdCBpbnN0YWxsVmFsdWVBY2Nlc3NvciA9IChuZ0NvbnRyb2w6IGFueSwgaW5zdGFuY2U6IGFueSkgPT4ge1xuICBpZiAoIW5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLmluc3RhbmNlICYmIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLnRhcmdldCA9PT0gaW5zdGFuY2UuX19uZ01vY2tzQ3Rvcikge1xuICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3JlZ2lzdGVyT25DaGFuZ2UnKTtcbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCAncmVnaXN0ZXJPblRvdWNoZWQnKTtcbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCAnc2V0RGlzYWJsZWRTdGF0ZScpO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsICd3cml0ZVZhbHVlJyk7XG4gICAgaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLmlzQ29udHJvbFZhbHVlQWNjZXNzb3IgPSB0cnVlO1xuICB9XG59O1xuXG4vLyBjb25uZWN0aW5nIHRvIE5HX1ZBTElEQVRPUlNcbi8vIGNvbm5lY3RpbmcgdG8gTkdfQVNZTkNfVkFMSURBVE9SU1xuY29uc3QgaW5zdGFsbFZhbGlkYXRvciA9ICh2YWxpZGF0b3JzOiBhbnlbXSwgaW5zdGFuY2U6IGFueSkgPT4ge1xuICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiB2YWxpZGF0b3JzKSB7XG4gICAgaWYgKCF2YWxpZGF0b3IuaW5zdGFuY2UgJiYgdmFsaWRhdG9yLnRhcmdldCA9PT0gaW5zdGFuY2UuX19uZ01vY2tzQ3Rvcikge1xuICAgICAgdmFsaWRhdG9yLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCAncmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZScpO1xuICAgICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3ZhbGlkYXRlJyk7XG4gICAgICBpbnN0YW5jZS5fX25nTW9ja3NDb25maWcuaXNWYWxpZGF0b3IgPSB0cnVlO1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgYXBwbHlOZ1ZhbHVlQWNjZXNzb3IgPSAoaW5zdGFuY2U6IGFueSwgbmdDb250cm9sOiBhbnkpID0+IHtcbiAgc2V0VmFsdWVBY2Nlc3NvcihpbnN0YW5jZSwgbmdDb250cm9sKTtcblxuICB0cnkge1xuICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgaW5zdGFsbFZhbHVlQWNjZXNzb3IobmdDb250cm9sLCBpbnN0YW5jZSk7XG4gICAgICBpbnN0YWxsVmFsaWRhdG9yKG5nQ29udHJvbC5fcmF3VmFsaWRhdG9ycywgaW5zdGFuY2UpO1xuICAgICAgaW5zdGFsbFZhbGlkYXRvcihuZ0NvbnRyb2wuX3Jhd0FzeW5jVmFsaWRhdG9ycywgaW5zdGFuY2UpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cbn07XG5cbmNvbnN0IGFwcGx5T3V0cHV0cyA9IChpbnN0YW5jZTogTW9ja0NvbmZpZyAmIFJlY29yZDxrZXlvZiBhbnksIGFueT4pID0+IHtcbiAgY29uc3QgbW9ja091dHB1dHMgPSBbXTtcbiAgZm9yIChjb25zdCBvdXRwdXQgb2YgaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLm91dHB1dHMgfHwgW10pIHtcbiAgICBtb2NrT3V0cHV0cy5wdXNoKG91dHB1dC5zcGxpdCgnOicpWzBdKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgb3V0cHV0IG9mIG1vY2tPdXRwdXRzKSB7XG4gICAgaWYgKGluc3RhbmNlW291dHB1dF0gfHwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpbnN0YW5jZSwgb3V0cHV0KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGluc3RhbmNlW291dHB1dF0gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgfVxufTtcblxuY29uc3QgYXBwbHlQcm90b3R5cGUgPSAoaW5zdGFuY2U6IE1vY2ssIHByb3RvdHlwZTogQW55VHlwZTxhbnk+KSA9PiB7XG4gIGZvciAoY29uc3QgcHJvcCBvZiBbXG4gICAgLi4uaGVscGVyTW9ja1NlcnZpY2UuZXh0cmFjdE1ldGhvZHNGcm9tUHJvdG90eXBlKHByb3RvdHlwZSksXG4gICAgLi4uaGVscGVyTW9ja1NlcnZpY2UuZXh0cmFjdFByb3BlcnRpZXNGcm9tUHJvdG90eXBlKHByb3RvdHlwZSksXG4gIF0pIHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gaGVscGVyTW9ja1NlcnZpY2UuZXh0cmFjdFByb3BlcnR5RGVzY3JpcHRvcihwcm90b3R5cGUsIHByb3ApO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLmRlZmluZVByb3BlcnR5RGVzY3JpcHRvcihpbnN0YW5jZSwgcHJvcCwgZGVzY3JpcHRvcik7XG4gIH1cbn07XG5cbmNvbnN0IGFwcGx5TWV0aG9kcyA9IChpbnN0YW5jZTogTW9jayAmIFJlY29yZDxrZXlvZiBhbnksIGFueT4sIHByb3RvdHlwZTogQW55VHlwZTxhbnk+KSA9PiB7XG4gIGZvciAoY29uc3QgbWV0aG9kIG9mIGhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RNZXRob2RzRnJvbVByb3RvdHlwZShwcm90b3R5cGUpKSB7XG4gICAgaWYgKGluc3RhbmNlW21ldGhvZF0gfHwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpbnN0YW5jZSwgbWV0aG9kKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsIG1ldGhvZCk7XG4gIH1cbn07XG5cbmNvbnN0IGFwcGx5UHJvcHMgPSAoaW5zdGFuY2U6IE1vY2sgJiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+LCBwcm90b3R5cGU6IEFueVR5cGU8YW55PikgPT4ge1xuICBmb3IgKGNvbnN0IHByb3Agb2YgaGVscGVyTW9ja1NlcnZpY2UuZXh0cmFjdFByb3BlcnRpZXNGcm9tUHJvdG90eXBlKHByb3RvdHlwZSkpIHtcbiAgICBpZiAoaW5zdGFuY2VbcHJvcF0gfHwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpbnN0YW5jZSwgcHJvcCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCBwcm9wLCAnZ2V0Jyk7XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgcHJvcCwgJ3NldCcpO1xuICB9XG59O1xuXG5leHBvcnQgdHlwZSBuZ01vY2tzTW9ja0NvbmZpZyA9IHtcbiAgY29uZmlnPzogSU1vY2tCdWlsZGVyQ29uZmlnO1xuICBpbml0PzogKGluc3RhbmNlOiBhbnkpID0+IHZvaWQ7XG4gIGlzQ29udHJvbFZhbHVlQWNjZXNzb3I/OiBib29sZWFuO1xuICBpc1ZhbGlkYXRvcj86IGJvb2xlYW47XG4gIG91dHB1dHM/OiBzdHJpbmdbXTtcbiAgcXVlcnlTY2FuS2V5cz86IHN0cmluZ1tdO1xuICBzZXRDb250cm9sVmFsdWVBY2Nlc3Nvcj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBhcHBseU92ZXJyaWRlcyA9IChpbnN0YW5jZTogYW55LCBtb2NrT2Y6IGFueSwgaW5qZWN0b3I/OiBJbmplY3Rvcik6IHZvaWQgPT4ge1xuICBjb25zdCBjb25maWdHbG9iYWw6IFNldDxhbnk+IHwgdW5kZWZpbmVkID0gbmdNb2Nrc1VuaXZlcnNlLmdldE92ZXJyaWRlcygpLmdldChtb2NrT2YpO1xuICBjb25zdCBjYWxsYmFja3MgPSBjb25maWdHbG9iYWwgPyBtYXBWYWx1ZXMoY29uZmlnR2xvYmFsKSA6IFtdO1xuICBpZiAoaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLmluaXQpIHtcbiAgICBjYWxsYmFja3MucHVzaChpbnN0YW5jZS5fX25nTW9ja3NDb25maWcuaW5pdCk7XG4gIH1cbiAgY2FsbGJhY2tzLnB1c2goLi4ubW9ja0luc3RhbmNlQXBwbHkobW9ja09mKSk7XG5cbiAgZm9yIChjb25zdCBjYWxsYmFjayBvZiBjYWxsYmFja3MpIHtcbiAgICBjb25zdCBvdmVycmlkZXMgPSBjYWxsYmFjayhpbnN0YW5jZSwgaW5qZWN0b3IpO1xuICAgIGlmICghb3ZlcnJpZGVzKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbW9ja0hlbHBlclN0dWIoaW5zdGFuY2UsIG92ZXJyaWRlcyk7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja0NvbmZpZyB7XG4gIF9fbmdNb2Nrc0NvbmZpZzogbmdNb2Nrc01vY2tDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBNb2NrIHtcbiAgcHJvdGVjdGVkIF9fbmdNb2Nrc0NvbmZpZyE6IG5nTW9ja3NNb2NrQ29uZmlnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IgfCBudWxsID0gbnVsbCxcbiAgICBuZ0NvbnRyb2w6IGFueSB8IG51bGwgPSBudWxsLCAvLyBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgY29uc3QgbW9ja09mID0gKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KS5tb2NrT2Y7XG4gICAgY29yZURlZmluZVByb3BlcnR5KHRoaXMsICdfX25nTW9ja3NJbmplY3RvcicsIGluamVjdG9yKTtcbiAgICBjb3JlRGVmaW5lUHJvcGVydHkodGhpcywgJ19fbmdNb2Nrc0N0b3InLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLl9fbmdNb2Nrc0NvbmZpZy5xdWVyeVNjYW5LZXlzIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIFtdKSB7XG4gICAgICBjb3JlRGVmaW5lUHJvcGVydHkodGhpcywgYF9fbmdNb2Nrc1Zjcl8ke2tleX1gLCB1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gICAgaWYgKGZ1bmNJc01vY2sodGhpcykpIHtcbiAgICAgIGFwcGx5TmdWYWx1ZUFjY2Vzc29yKHRoaXMsIG5nQ29udHJvbCk7XG4gICAgICBhcHBseU91dHB1dHModGhpcyk7XG4gICAgICBhcHBseVByb3RvdHlwZSh0aGlzLCBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykpO1xuICAgICAgYXBwbHlNZXRob2RzKHRoaXMsIG1vY2tPZi5wcm90b3R5cGUpO1xuICAgICAgYXBwbHlQcm9wcyh0aGlzLCBtb2NrT2YucHJvdG90eXBlKTtcbiAgICB9XG5cbiAgICAvLyBhbmQgZmFraW5nIHByb3RvdHlwZVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBtb2NrT2YucHJvdG90eXBlKTtcblxuICAgIGFwcGx5T3ZlcnJpZGVzKHRoaXMsIG1vY2tPZiwgaW5qZWN0b3IgPz8gdW5kZWZpbmVkKTtcbiAgfVxufVxuXG5jb3JlRGVmaW5lUHJvcGVydHkoTW9jaywgJ3BhcmFtZXRlcnMnLCBbXG4gIFtJbmplY3RvciwgbmV3IE9wdGlvbmFsKCldLFxuICBbY29yZUZvcm0uTmdDb250cm9sIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovICgoKSA9PiB1bmRlZmluZWQpLCBuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKV0sXG5dKTtcbiJdfQ==