ng-mocks 11.2.7 → 11.4.0

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 (126) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +41 -3174
  3. package/dist/lib/common/core.helpers.d.ts +2 -2
  4. package/dist/lib/common/core.helpers.js +55 -27
  5. package/dist/lib/common/{core.reflect.body.d.ts → core.reflect.body-catch.d.ts} +0 -0
  6. package/dist/lib/common/core.reflect.body-catch.js +12 -0
  7. package/dist/lib/common/core.reflect.body-global.d.ts +3 -0
  8. package/dist/lib/common/core.reflect.body-global.js +11 -0
  9. package/dist/lib/common/core.reflect.directive-resolve.js +6 -4
  10. package/dist/lib/common/core.reflect.jit.d.ts +3 -0
  11. package/dist/lib/common/core.reflect.jit.js +11 -0
  12. package/dist/lib/common/core.reflect.module-resolve.js +6 -4
  13. package/dist/lib/common/core.reflect.pipe-resolve.js +6 -4
  14. package/dist/lib/common/core.tokens.d.ts +2 -2
  15. package/dist/lib/common/core.tokens.js +1 -1
  16. package/dist/lib/common/decorate.inputs.js +2 -2
  17. package/dist/lib/common/decorate.mock.d.ts +3 -0
  18. package/dist/lib/common/decorate.mock.js +13 -0
  19. package/dist/lib/common/decorate.outputs.js +2 -2
  20. package/dist/lib/common/decorate.queries.js +2 -2
  21. package/dist/lib/common/func.is-mock-control-value-accessor.js +2 -3
  22. package/dist/lib/common/func.is-mock-validator.js +2 -3
  23. package/dist/lib/common/func.is-ng-def.d.ts +7 -1
  24. package/dist/lib/common/func.is-ng-def.js +5 -1
  25. package/dist/lib/common/func.is-ng-injection-token.js +2 -3
  26. package/dist/lib/common/func.is-ng-module-def-with-providers.js +2 -3
  27. package/dist/lib/common/func.is-ng-type.d.ts +2 -2
  28. package/dist/lib/common/func.is-ng-type.js +6 -5
  29. package/dist/lib/common/mock-control-value-accessor.d.ts +3 -3
  30. package/dist/lib/common/mock-control-value-accessor.js +1 -1
  31. package/dist/lib/common/mock.js +31 -26
  32. package/dist/lib/common/ng-mocks-universe.d.ts +5 -0
  33. package/dist/lib/common/ng-mocks-universe.js +65 -7
  34. package/dist/lib/mock/clone-providers.js +23 -6
  35. package/dist/lib/mock/decorate-declaration.js +6 -6
  36. package/dist/lib/mock/to-existing-provider.d.ts +1 -1
  37. package/dist/lib/mock/to-factory-provider.d.ts +1 -1
  38. package/dist/lib/mock-builder/mock-builder-stash.js +3 -1
  39. package/dist/lib/mock-builder/mock-builder.js +2 -2
  40. package/dist/lib/mock-builder/mock-builder.performance.js +2 -2
  41. package/dist/lib/mock-builder/mock-builder.promise.js +4 -1
  42. package/dist/lib/mock-builder/promise/create-ng-mocks-overrides-token.js +2 -2
  43. package/dist/lib/mock-builder/promise/create-ng-mocks-touches-token.js +2 -2
  44. package/dist/lib/mock-builder/promise/get-override-meta.js +4 -4
  45. package/dist/lib/mock-builder/promise/get-root-provider-parameters.js +3 -3
  46. package/dist/lib/mock-builder/promise/init-module.js +2 -2
  47. package/dist/lib/mock-builder/promise/init-ng-modules.js +2 -2
  48. package/dist/lib/mock-component/mock-component.d.ts +1 -1
  49. package/dist/lib/mock-component/mock-component.js +9 -17
  50. package/dist/lib/mock-directive/mock-directive.d.ts +1 -1
  51. package/dist/lib/mock-directive/mock-directive.js +10 -23
  52. package/dist/lib/mock-helper/func.global-prepare.d.ts +2 -0
  53. package/dist/lib/mock-helper/func.global-prepare.js +9 -0
  54. package/dist/lib/mock-helper/mock-helper.auto-spy.js +2 -2
  55. package/dist/lib/mock-helper/mock-helper.d.ts +38 -0
  56. package/dist/lib/mock-helper/mock-helper.global-exclude.d.ts +4 -0
  57. package/dist/lib/mock-helper/mock-helper.global-exclude.js +9 -0
  58. package/dist/lib/mock-helper/mock-helper.global-keep.d.ts +4 -0
  59. package/dist/lib/mock-helper/mock-helper.global-keep.js +9 -0
  60. package/dist/lib/mock-helper/mock-helper.global-mock.d.ts +4 -0
  61. package/dist/lib/mock-helper/mock-helper.global-mock.js +9 -0
  62. package/dist/lib/mock-helper/mock-helper.global-replace.d.ts +3 -0
  63. package/dist/lib/mock-helper/mock-helper.global-replace.js +26 -0
  64. package/dist/lib/mock-helper/mock-helper.global-wipe.d.ts +4 -0
  65. package/dist/lib/mock-helper/mock-helper.global-wipe.js +11 -0
  66. package/dist/lib/mock-helper/mock-helper.guts.js +100 -37
  67. package/dist/lib/mock-helper/mock-helper.js +15 -1
  68. package/dist/lib/mock-helper/mock-helper.reset.js +2 -1
  69. package/dist/lib/mock-helper/mock-helper.stub-member.d.ts +2 -0
  70. package/dist/lib/mock-helper/mock-helper.stub-member.js +25 -0
  71. package/dist/lib/mock-helper/mock-helper.stub.js +2 -1
  72. package/dist/lib/mock-helper/mock-helper.throw-on-console.d.ts +2 -0
  73. package/dist/lib/mock-helper/mock-helper.throw-on-console.js +25 -0
  74. package/dist/lib/mock-instance/mock-instance.js +11 -7
  75. package/dist/lib/mock-module/mock-module.d.ts +2 -2
  76. package/dist/lib/mock-module/mock-module.js +7 -9
  77. package/dist/lib/mock-module/mock-ng-def.js +29 -12
  78. package/dist/lib/mock-pipe/mock-pipe.d.ts +2 -2
  79. package/dist/lib/mock-pipe/mock-pipe.js +18 -44
  80. package/dist/lib/mock-provider/mock-provider.d.ts +3 -3
  81. package/dist/lib/mock-provider/mock-provider.js +1 -1
  82. package/dist/lib/mock-render/func.generate-template.d.ts +2 -0
  83. package/dist/lib/mock-render/func.generate-template.js +87 -0
  84. package/dist/lib/mock-render/func.install-prop-reader.d.ts +2 -0
  85. package/dist/lib/mock-render/func.install-prop-reader.js +80 -0
  86. package/dist/lib/mock-render/mock-render.d.ts +16 -2
  87. package/dist/lib/mock-render/mock-render.js +111 -132
  88. package/dist/lib/mock-service/helper.resolve-provider.js +9 -12
  89. package/dist/lib/mock-service/helper.use-factory.js +3 -3
  90. package/dist/lib/mock-service/mock-provider.js +2 -1
  91. package/dist/lib/mock-service/mock-service.d.ts +4 -4
  92. package/dist/lib/mock-service/mock-service.js +1 -1
  93. package/examples/MockBuilder/test.deep.spec.ts +1 -1
  94. package/examples/MockBuilder/test.ng-mocks.spec.ts +1 -1
  95. package/examples/MockForms/test.spec.ts +2 -2
  96. package/examples/MockInstance/test.spec.ts +1 -1
  97. package/examples/MockObservable/test.spec.ts +7 -4
  98. package/examples/MockPipe/test.spec.ts +1 -1
  99. package/examples/MockProvider/test.spec.ts +5 -6
  100. package/examples/MockReactiveForms/test.spec.ts +2 -2
  101. package/examples/MockViewChild/test.spec.ts +3 -3
  102. package/examples/TestAttributeDirective/test.spec.ts +1 -1
  103. package/examples/TestHttpInterceptor/test.spec.ts +10 -4
  104. package/examples/TestHttpRequest/test.spec.ts +6 -4
  105. package/examples/TestLifecycleHooks/test.spec.ts +6 -2
  106. package/examples/TestLifecycleHooks/test.string.spec.ts +3 -2
  107. package/examples/TestLifecycleHooks/test.type-without-params.spec.ts +3 -2
  108. package/examples/TestMultiToken/test.spec.ts +3 -3
  109. package/examples/TestProvider/test.spec.ts +2 -3
  110. package/examples/TestProviderWithDependencies/test.spec.ts +7 -3
  111. package/examples/TestProviderWithUseClass/test.spec.ts +9 -3
  112. package/examples/TestProviderWithUseExisting/test.spec.ts +9 -3
  113. package/examples/TestProviderWithUseFactory/test.spec.ts +2 -3
  114. package/examples/TestProviderWithUseValue/test.spec.ts +4 -4
  115. package/examples/TestRoute/test.spec.ts +7 -7
  116. package/examples/TestRoutingGuard/test.spec.ts +8 -6
  117. package/examples/TestRoutingResolver/test.spec.ts +6 -4
  118. package/examples/TestToken/test.spec.ts +7 -6
  119. package/examples/main/test.spec.ts +2 -2
  120. package/examples/ngMocksFaster/test.spec.ts +2 -2
  121. package/package.json +2 -3
  122. package/dist/lib/common/core.reflect.body.js +0 -12
  123. package/dist/lib/common/core.reflect.d.ts +0 -6
  124. package/dist/lib/common/core.reflect.js +0 -10
  125. package/dist/lib/common/mock-of.d.ts +0 -3
  126. package/dist/lib/common/mock-of.js +0 -23
@@ -102,7 +102,7 @@ var MockBuilderPerformance = /** @class */ (function (_super) {
102
102
  if (flags && this.equalsTo(global.get('builder:config'))) {
103
103
  return [2 /*return*/, global.get(global.get('builder:module')).then(fulfill, reject)];
104
104
  }
105
- // we need to reset testing module in case if we are in bullet mode but current module doesn't match.
105
+ // we need to reset testing module in case if we are in bullet mode but current module does not match.
106
106
  if (global.has('bullet') && global.has('bullet:reset')) {
107
107
  // tslint:disable-next-line no-console
108
108
  console.warn('ngMocks.faster has zero effect due to changes in testing module between runs');
@@ -181,4 +181,4 @@ var MockBuilderPerformance = /** @class */ (function (_super) {
181
181
  return MockBuilderPerformance;
182
182
  }(mock_builder_promise_1.MockBuilderPromise));
183
183
  exports.MockBuilderPerformance = MockBuilderPerformance;
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1idWlsZGVyLnBlcmZvcm1hbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vY2stYnVpbGRlci9tb2NrLWJ1aWxkZXIucGVyZm9ybWFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaURBQWdEO0FBRWhELGlFQUEwRDtBQUUxRCwrREFBNEQ7QUFDNUQseUVBQWlFO0FBQ2pFLHFFQUE2RDtBQUM3RCxpRkFBeUU7QUFDekUsK0RBQXdEO0FBQ3hELHlFQUFrRTtBQUNsRSwrREFBd0Q7QUFDeEQsbUVBQTREO0FBQzVELHFFQUErRDtBQUcvRDtJQUE0QywwQ0FBa0I7SUFBOUQ7O0lBcUZBLENBQUM7SUFwRlEsc0NBQUssR0FBWjtRQUNFLElBQU0sTUFBTSxHQUFHLDJCQUFlLENBQUMsTUFBTSxDQUFDO1FBRXRDLHFFQUFxRTtRQUNyRSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRTtZQUMvRyxPQUFPLDJCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsZ0RBQWdEO1FBQ2hELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRWpELElB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TSxHQUFHLFdBQUE7Z0JBQ1osSUFBSSxDQUFDLHdCQUFZLENBQUUsSUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNyRCxPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGOzs7Ozs7Ozs7O1lBQ0QsS0FBa0IsSUFBQSxLQUFBLFNBQUEsQ0FBQyxVQUFVLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBM0IsSUFBTSxHQUFHLFdBQUE7Z0JBQ1osSUFBSSxDQUFDLHdCQUFZLENBQUUsSUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNyRCxPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGOzs7Ozs7Ozs7O1lBQ0QsS0FBa0IsSUFBQSxLQUFBLFNBQUEsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7Z0JBQTlDLElBQU0sR0FBRyxXQUFBO2dCQUNaLElBQUksQ0FBQyx3QkFBWSxDQUFFLElBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsNkJBQWlCLENBQUMsRUFBRTtvQkFDeEUsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjs7Ozs7Ozs7O1FBRUQsT0FBTyx3QkFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxpQ0FBb0IsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDSCw2QkFBQztBQUFELENBQUMsQUFyRkQsQ0FBNEMseUNBQWtCLEdBcUY3RDtBQXJGWSx3REFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVzdEJlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuaW1wb3J0IHsgTW9ja0J1aWxkZXJQcm9taXNlIH0gZnJvbSAnLi9tb2NrLWJ1aWxkZXIucHJvbWlzZSc7XG5pbXBvcnQgYWRkRW50aXRpZXNUb01hcCBmcm9tICcuL3BlcmZvcm1hbmNlL2FkZC1lbnRpdGllcy10by1tYXAnO1xuaW1wb3J0IGFkZFZhbHVlc1RvU2V0IGZyb20gJy4vcGVyZm9ybWFuY2UvYWRkLXZhbHVlcy10by1zZXQnO1xuaW1wb3J0IGFyZUVxdWFsQ29uZmlnUGFyYW1zIGZyb20gJy4vcGVyZm9ybWFuY2UvYXJlLWVxdWFsLWNvbmZpZy1wYXJhbXMnO1xuaW1wb3J0IGFyZUVxdWFsTWFwcyBmcm9tICcuL3BlcmZvcm1hbmNlL2FyZS1lcXVhbC1tYXBzJztcbmltcG9ydCBhcmVFcXVhbFByb3ZpZGVycyBmcm9tICcuL3BlcmZvcm1hbmNlL2FyZS1lcXVhbC1wcm92aWRlcnMnO1xuaW1wb3J0IGFyZUVxdWFsU2V0cyBmcm9tICcuL3BlcmZvcm1hbmNlL2FyZS1lcXVhbC1zZXRzJztcbmltcG9ydCBnZXRFbXB0eUNvbmZpZyBmcm9tICcuL3BlcmZvcm1hbmNlL2dldC1lbXB0eS1jb25maWcnO1xuaW1wb3J0IHJlcXVpcmVkTWV0YWRhdGEgZnJvbSAnLi9wZXJmb3JtYW5jZS9yZXF1aXJlZC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBJTW9ja0J1aWxkZXJSZXN1bHQgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIE1vY2tCdWlsZGVyUGVyZm9ybWFuY2UgZXh0ZW5kcyBNb2NrQnVpbGRlclByb21pc2Uge1xuICBwdWJsaWMgYnVpbGQoKTogTmdNb2R1bGUge1xuICAgIGNvbnN0IGdsb2JhbCA9IG5nTW9ja3NVbml2ZXJzZS5nbG9iYWw7XG5cbiAgICAvLyBhdm9pZGluZyBpbmZsdWVuY2VzIG9uIGNhY2hlIHdoZW4gdXNlcnMgZXh0ZW5kIHRoZSB0ZXN0aW5nIG1vZHVsZS5cbiAgICBpZiAoZ2xvYmFsLmhhcygnYnVpbGRlcjptb2R1bGUnKSAmJiBnbG9iYWwuaGFzKCdidWlsZGVyOmNvbmZpZycpICYmIHRoaXMuZXF1YWxzVG8oZ2xvYmFsLmdldCgnYnVpbGRlcjpjb25maWcnKSkpIHtcbiAgICAgIHJldHVybiByZXF1aXJlZE1ldGFkYXRhKGdsb2JhbC5nZXQoJ2J1aWxkZXI6bW9kdWxlJykpO1xuICAgIH1cblxuICAgIC8vIHJlbW92YWwgb2YgY2FjaGVkIHByb21pc2UgaW4gY2FzZSBvZiBtaXNtYXRjaFxuICAgIGlmIChnbG9iYWwuaGFzKCdidWlsZGVyOm1vZHVsZScpKSB7XG4gICAgICBnbG9iYWwuZGVsZXRlKGdsb2JhbC5nZXQoJ2J1aWxkZXI6bW9kdWxlJykpO1xuICAgIH1cblxuICAgIGdsb2JhbC5zZXQoJ2J1aWxkZXI6Y29uZmlnJywgdGhpcy5jbG9uZUNvbmZpZygpKTtcblxuICAgIGNvbnN0IG5nTW9kdWxlID0gc3VwZXIuYnVpbGQoKTtcbiAgICBnbG9iYWwuc2V0KCdidWlsZGVyOm1vZHVsZScsIG5nTW9kdWxlKTtcblxuICAgIC8vIGF2b2lkaW5nIGluZmx1ZW5jZXMgb24gY2FjaGUgd2hlbiB1c2VycyBleHRlbmQgdGhlIHRlc3RpbmcgbW9kdWxlLlxuICAgIHJldHVybiByZXF1aXJlZE1ldGFkYXRhKG5nTW9kdWxlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0aGVuPFRSZXN1bHQxID0gSU1vY2tCdWlsZGVyUmVzdWx0PihcbiAgICBmdWxmaWxsPzogKCh2YWx1ZTogSU1vY2tCdWlsZGVyUmVzdWx0KSA9PiBQcm9taXNlTGlrZTxUUmVzdWx0MT4pIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICByZWplY3Q/OiAoKHJlYXNvbjogYW55KSA9PiBQcm9taXNlTGlrZTxuZXZlcj4pIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgKTogUHJvbWlzZTxUUmVzdWx0MT4ge1xuICAgIGNvbnN0IGdsb2JhbCA9IG5nTW9ja3NVbml2ZXJzZS5nbG9iYWw7XG5cbiAgICBjb25zdCBmbGFncyA9IGdsb2JhbC5oYXMoJ2J1bGxldCcpICYmIGdsb2JhbC5oYXMoJ2J1aWxkZXI6bW9kdWxlJykgJiYgZ2xvYmFsLmhhcygnYnVpbGRlcjpjb25maWcnKTtcbiAgICBpZiAoZmxhZ3MgJiYgdGhpcy5lcXVhbHNUbyhnbG9iYWwuZ2V0KCdidWlsZGVyOmNvbmZpZycpKSkge1xuICAgICAgcmV0dXJuIGdsb2JhbC5nZXQoZ2xvYmFsLmdldCgnYnVpbGRlcjptb2R1bGUnKSkudGhlbihmdWxmaWxsLCByZWplY3QpO1xuICAgIH1cblxuICAgIC8vIHdlIG5lZWQgdG8gcmVzZXQgdGVzdGluZyBtb2R1bGUgaW4gY2FzZSBpZiB3ZSBhcmUgaW4gYnVsbGV0IG1vZGUgYnV0IGN1cnJlbnQgbW9kdWxlIGRvZXNuJ3QgbWF0Y2guXG4gICAgaWYgKGdsb2JhbC5oYXMoJ2J1bGxldCcpICYmIGdsb2JhbC5oYXMoJ2J1bGxldDpyZXNldCcpKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKCduZ01vY2tzLmZhc3RlciBoYXMgemVybyBlZmZlY3QgZHVlIHRvIGNoYW5nZXMgaW4gdGVzdGluZyBtb2R1bGUgYmV0d2VlbiBydW5zJyk7XG4gICAgICBnbG9iYWwuZGVsZXRlKCdidWxsZXQnKTtcbiAgICAgIFRlc3RCZWQucmVzZXRUZXN0aW5nTW9kdWxlKCk7XG4gICAgICBnbG9iYWwuc2V0KCdidWxsZXQnLCB0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9taXNlID0gc3VwZXIudGhlbihmdWxmaWxsLCByZWplY3QpO1xuICAgIGdsb2JhbC5zZXQoZ2xvYmFsLmdldCgnYnVpbGRlcjptb2R1bGUnKSwgcHJvbWlzZSk7XG5cbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvbmVDb25maWcoKSB7XG4gICAgY29uc3QgY29uZmlnID0gZ2V0RW1wdHlDb25maWcoKTtcblxuICAgIGFkZFZhbHVlc1RvU2V0KHRoaXMuYmVmb3JlQ0MsIGNvbmZpZy5iZWZvcmVDQyk7XG4gICAgYWRkVmFsdWVzVG9TZXQodGhpcy5leGNsdWRlRGVmLCBjb25maWcuZXhjbHVkZURlZik7XG4gICAgYWRkVmFsdWVzVG9TZXQodGhpcy5rZWVwRGVmLCBjb25maWcua2VlcERlZik7XG4gICAgYWRkVmFsdWVzVG9TZXQodGhpcy5tb2NrRGVmLCBjb25maWcubW9ja0RlZik7XG4gICAgYWRkVmFsdWVzVG9TZXQodGhpcy5yZXBsYWNlRGVmLCBjb25maWcucmVwbGFjZURlZik7XG5cbiAgICBhZGRFbnRpdGllc1RvTWFwKHRoaXMuY29uZmlnRGVmLCBjb25maWcuY29uZmlnRGVmKTtcbiAgICBhZGRFbnRpdGllc1RvTWFwKHRoaXMuZGVmUHJvdmlkZXJzLCBjb25maWcuZGVmUHJvdmlkZXJzKTtcbiAgICBhZGRFbnRpdGllc1RvTWFwKHRoaXMuZGVmVmFsdWUsIGNvbmZpZy5kZWZWYWx1ZSk7XG4gICAgYWRkRW50aXRpZXNUb01hcCh0aGlzLnByb3ZpZGVyRGVmLCBjb25maWcucHJvdmlkZXJEZWYpO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZXF1YWxzVG8ocHJvdG90eXBlOiBSZWNvcmQ8YW55LCBhbnk+KTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgWydiZWZvcmVDQycsICdrZWVwRGVmJywgJ3JlcGxhY2VEZWYnLCAnZXhjbHVkZURlZicsICdtb2NrRGVmJ10pIHtcbiAgICAgIGlmICghYXJlRXF1YWxTZXRzKCh0aGlzIGFzIGFueSlba2V5XSwgcHJvdG90eXBlW2tleV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgWydkZWZWYWx1ZSddKSB7XG4gICAgICBpZiAoIWFyZUVxdWFsTWFwcygodGhpcyBhcyBhbnkpW2tleV0sIHByb3RvdHlwZVtrZXldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIFsncHJvdmlkZXJEZWYnLCAnZGVmUHJvdmlkZXJzJ10pIHtcbiAgICAgIGlmICghYXJlRXF1YWxNYXBzKCh0aGlzIGFzIGFueSlba2V5XSwgcHJvdG90eXBlW2tleV0sIGFyZUVxdWFsUHJvdmlkZXJzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFyZUVxdWFsTWFwcyh0aGlzLmNvbmZpZ0RlZiwgcHJvdG90eXBlLmNvbmZpZ0RlZiwgYXJlRXF1YWxDb25maWdQYXJhbXMpO1xuICB9XG59XG4iXX0=
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1idWlsZGVyLnBlcmZvcm1hbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vY2stYnVpbGRlci9tb2NrLWJ1aWxkZXIucGVyZm9ybWFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaURBQWdEO0FBRWhELGlFQUEwRDtBQUUxRCwrREFBNEQ7QUFDNUQseUVBQWlFO0FBQ2pFLHFFQUE2RDtBQUM3RCxpRkFBeUU7QUFDekUsK0RBQXdEO0FBQ3hELHlFQUFrRTtBQUNsRSwrREFBd0Q7QUFDeEQsbUVBQTREO0FBQzVELHFFQUErRDtBQUcvRDtJQUE0QywwQ0FBa0I7SUFBOUQ7O0lBcUZBLENBQUM7SUFwRlEsc0NBQUssR0FBWjtRQUNFLElBQU0sTUFBTSxHQUFHLDJCQUFlLENBQUMsTUFBTSxDQUFDO1FBRXRDLHFFQUFxRTtRQUNyRSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRTtZQUMvRyxPQUFPLDJCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsZ0RBQWdEO1FBQ2hELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRWpELElB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TSxHQUFHLFdBQUE7Z0JBQ1osSUFBSSxDQUFDLHdCQUFZLENBQUUsSUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNyRCxPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGOzs7Ozs7Ozs7O1lBQ0QsS0FBa0IsSUFBQSxLQUFBLFNBQUEsQ0FBQyxVQUFVLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBM0IsSUFBTSxHQUFHLFdBQUE7Z0JBQ1osSUFBSSxDQUFDLHdCQUFZLENBQUUsSUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNyRCxPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGOzs7Ozs7Ozs7O1lBQ0QsS0FBa0IsSUFBQSxLQUFBLFNBQUEsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7Z0JBQTlDLElBQU0sR0FBRyxXQUFBO2dCQUNaLElBQUksQ0FBQyx3QkFBWSxDQUFFLElBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsNkJBQWlCLENBQUMsRUFBRTtvQkFDeEUsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjs7Ozs7Ozs7O1FBRUQsT0FBTyx3QkFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxpQ0FBb0IsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDSCw2QkFBQztBQUFELENBQUMsQUFyRkQsQ0FBNEMseUNBQWtCLEdBcUY3RDtBQXJGWSx3REFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVzdEJlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuaW1wb3J0IHsgTW9ja0J1aWxkZXJQcm9taXNlIH0gZnJvbSAnLi9tb2NrLWJ1aWxkZXIucHJvbWlzZSc7XG5pbXBvcnQgYWRkRW50aXRpZXNUb01hcCBmcm9tICcuL3BlcmZvcm1hbmNlL2FkZC1lbnRpdGllcy10by1tYXAnO1xuaW1wb3J0IGFkZFZhbHVlc1RvU2V0IGZyb20gJy4vcGVyZm9ybWFuY2UvYWRkLXZhbHVlcy10by1zZXQnO1xuaW1wb3J0IGFyZUVxdWFsQ29uZmlnUGFyYW1zIGZyb20gJy4vcGVyZm9ybWFuY2UvYXJlLWVxdWFsLWNvbmZpZy1wYXJhbXMnO1xuaW1wb3J0IGFyZUVxdWFsTWFwcyBmcm9tICcuL3BlcmZvcm1hbmNlL2FyZS1lcXVhbC1tYXBzJztcbmltcG9ydCBhcmVFcXVhbFByb3ZpZGVycyBmcm9tICcuL3BlcmZvcm1hbmNlL2FyZS1lcXVhbC1wcm92aWRlcnMnO1xuaW1wb3J0IGFyZUVxdWFsU2V0cyBmcm9tICcuL3BlcmZvcm1hbmNlL2FyZS1lcXVhbC1zZXRzJztcbmltcG9ydCBnZXRFbXB0eUNvbmZpZyBmcm9tICcuL3BlcmZvcm1hbmNlL2dldC1lbXB0eS1jb25maWcnO1xuaW1wb3J0IHJlcXVpcmVkTWV0YWRhdGEgZnJvbSAnLi9wZXJmb3JtYW5jZS9yZXF1aXJlZC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBJTW9ja0J1aWxkZXJSZXN1bHQgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIE1vY2tCdWlsZGVyUGVyZm9ybWFuY2UgZXh0ZW5kcyBNb2NrQnVpbGRlclByb21pc2Uge1xuICBwdWJsaWMgYnVpbGQoKTogTmdNb2R1bGUge1xuICAgIGNvbnN0IGdsb2JhbCA9IG5nTW9ja3NVbml2ZXJzZS5nbG9iYWw7XG5cbiAgICAvLyBhdm9pZGluZyBpbmZsdWVuY2VzIG9uIGNhY2hlIHdoZW4gdXNlcnMgZXh0ZW5kIHRoZSB0ZXN0aW5nIG1vZHVsZS5cbiAgICBpZiAoZ2xvYmFsLmhhcygnYnVpbGRlcjptb2R1bGUnKSAmJiBnbG9iYWwuaGFzKCdidWlsZGVyOmNvbmZpZycpICYmIHRoaXMuZXF1YWxzVG8oZ2xvYmFsLmdldCgnYnVpbGRlcjpjb25maWcnKSkpIHtcbiAgICAgIHJldHVybiByZXF1aXJlZE1ldGFkYXRhKGdsb2JhbC5nZXQoJ2J1aWxkZXI6bW9kdWxlJykpO1xuICAgIH1cblxuICAgIC8vIHJlbW92YWwgb2YgY2FjaGVkIHByb21pc2UgaW4gY2FzZSBvZiBtaXNtYXRjaFxuICAgIGlmIChnbG9iYWwuaGFzKCdidWlsZGVyOm1vZHVsZScpKSB7XG4gICAgICBnbG9iYWwuZGVsZXRlKGdsb2JhbC5nZXQoJ2J1aWxkZXI6bW9kdWxlJykpO1xuICAgIH1cblxuICAgIGdsb2JhbC5zZXQoJ2J1aWxkZXI6Y29uZmlnJywgdGhpcy5jbG9uZUNvbmZpZygpKTtcblxuICAgIGNvbnN0IG5nTW9kdWxlID0gc3VwZXIuYnVpbGQoKTtcbiAgICBnbG9iYWwuc2V0KCdidWlsZGVyOm1vZHVsZScsIG5nTW9kdWxlKTtcblxuICAgIC8vIGF2b2lkaW5nIGluZmx1ZW5jZXMgb24gY2FjaGUgd2hlbiB1c2VycyBleHRlbmQgdGhlIHRlc3RpbmcgbW9kdWxlLlxuICAgIHJldHVybiByZXF1aXJlZE1ldGFkYXRhKG5nTW9kdWxlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0aGVuPFRSZXN1bHQxID0gSU1vY2tCdWlsZGVyUmVzdWx0PihcbiAgICBmdWxmaWxsPzogKCh2YWx1ZTogSU1vY2tCdWlsZGVyUmVzdWx0KSA9PiBQcm9taXNlTGlrZTxUUmVzdWx0MT4pIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICByZWplY3Q/OiAoKHJlYXNvbjogYW55KSA9PiBQcm9taXNlTGlrZTxuZXZlcj4pIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgKTogUHJvbWlzZTxUUmVzdWx0MT4ge1xuICAgIGNvbnN0IGdsb2JhbCA9IG5nTW9ja3NVbml2ZXJzZS5nbG9iYWw7XG5cbiAgICBjb25zdCBmbGFncyA9IGdsb2JhbC5oYXMoJ2J1bGxldCcpICYmIGdsb2JhbC5oYXMoJ2J1aWxkZXI6bW9kdWxlJykgJiYgZ2xvYmFsLmhhcygnYnVpbGRlcjpjb25maWcnKTtcbiAgICBpZiAoZmxhZ3MgJiYgdGhpcy5lcXVhbHNUbyhnbG9iYWwuZ2V0KCdidWlsZGVyOmNvbmZpZycpKSkge1xuICAgICAgcmV0dXJuIGdsb2JhbC5nZXQoZ2xvYmFsLmdldCgnYnVpbGRlcjptb2R1bGUnKSkudGhlbihmdWxmaWxsLCByZWplY3QpO1xuICAgIH1cblxuICAgIC8vIHdlIG5lZWQgdG8gcmVzZXQgdGVzdGluZyBtb2R1bGUgaW4gY2FzZSBpZiB3ZSBhcmUgaW4gYnVsbGV0IG1vZGUgYnV0IGN1cnJlbnQgbW9kdWxlIGRvZXMgbm90IG1hdGNoLlxuICAgIGlmIChnbG9iYWwuaGFzKCdidWxsZXQnKSAmJiBnbG9iYWwuaGFzKCdidWxsZXQ6cmVzZXQnKSkge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybignbmdNb2Nrcy5mYXN0ZXIgaGFzIHplcm8gZWZmZWN0IGR1ZSB0byBjaGFuZ2VzIGluIHRlc3RpbmcgbW9kdWxlIGJldHdlZW4gcnVucycpO1xuICAgICAgZ2xvYmFsLmRlbGV0ZSgnYnVsbGV0Jyk7XG4gICAgICBUZXN0QmVkLnJlc2V0VGVzdGluZ01vZHVsZSgpO1xuICAgICAgZ2xvYmFsLnNldCgnYnVsbGV0JywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvbWlzZSA9IHN1cGVyLnRoZW4oZnVsZmlsbCwgcmVqZWN0KTtcbiAgICBnbG9iYWwuc2V0KGdsb2JhbC5nZXQoJ2J1aWxkZXI6bW9kdWxlJyksIHByb21pc2UpO1xuXG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICBwcml2YXRlIGNsb25lQ29uZmlnKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldEVtcHR5Q29uZmlnKCk7XG5cbiAgICBhZGRWYWx1ZXNUb1NldCh0aGlzLmJlZm9yZUNDLCBjb25maWcuYmVmb3JlQ0MpO1xuICAgIGFkZFZhbHVlc1RvU2V0KHRoaXMuZXhjbHVkZURlZiwgY29uZmlnLmV4Y2x1ZGVEZWYpO1xuICAgIGFkZFZhbHVlc1RvU2V0KHRoaXMua2VlcERlZiwgY29uZmlnLmtlZXBEZWYpO1xuICAgIGFkZFZhbHVlc1RvU2V0KHRoaXMubW9ja0RlZiwgY29uZmlnLm1vY2tEZWYpO1xuICAgIGFkZFZhbHVlc1RvU2V0KHRoaXMucmVwbGFjZURlZiwgY29uZmlnLnJlcGxhY2VEZWYpO1xuXG4gICAgYWRkRW50aXRpZXNUb01hcCh0aGlzLmNvbmZpZ0RlZiwgY29uZmlnLmNvbmZpZ0RlZik7XG4gICAgYWRkRW50aXRpZXNUb01hcCh0aGlzLmRlZlByb3ZpZGVycywgY29uZmlnLmRlZlByb3ZpZGVycyk7XG4gICAgYWRkRW50aXRpZXNUb01hcCh0aGlzLmRlZlZhbHVlLCBjb25maWcuZGVmVmFsdWUpO1xuICAgIGFkZEVudGl0aWVzVG9NYXAodGhpcy5wcm92aWRlckRlZiwgY29uZmlnLnByb3ZpZGVyRGVmKTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBwcml2YXRlIGVxdWFsc1RvKHByb3RvdHlwZTogUmVjb3JkPGFueSwgYW55Pik6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIFsnYmVmb3JlQ0MnLCAna2VlcERlZicsICdyZXBsYWNlRGVmJywgJ2V4Y2x1ZGVEZWYnLCAnbW9ja0RlZiddKSB7XG4gICAgICBpZiAoIWFyZUVxdWFsU2V0cygodGhpcyBhcyBhbnkpW2tleV0sIHByb3RvdHlwZVtrZXldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIFsnZGVmVmFsdWUnXSkge1xuICAgICAgaWYgKCFhcmVFcXVhbE1hcHMoKHRoaXMgYXMgYW55KVtrZXldLCBwcm90b3R5cGVba2V5XSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBbJ3Byb3ZpZGVyRGVmJywgJ2RlZlByb3ZpZGVycyddKSB7XG4gICAgICBpZiAoIWFyZUVxdWFsTWFwcygodGhpcyBhcyBhbnkpW2tleV0sIHByb3RvdHlwZVtrZXldLCBhcmVFcXVhbFByb3ZpZGVycykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhcmVFcXVhbE1hcHModGhpcy5jb25maWdEZWYsIHByb3RvdHlwZS5jb25maWdEZWYsIGFyZUVxdWFsQ29uZmlnUGFyYW1zKTtcbiAgfVxufVxuIl19
@@ -73,6 +73,7 @@ var core_helpers_1 = require("../common/core.helpers");
73
73
  var func_get_provider_1 = require("../common/func.get-provider");
74
74
  var func_is_ng_def_1 = require("../common/func.is-ng-def");
75
75
  var func_is_ng_module_def_with_providers_1 = require("../common/func.is-ng-module-def-with-providers");
76
+ var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
76
77
  var mock_builder_stash_1 = require("./mock-builder-stash");
77
78
  var add_missed_keep_declarations_and_modules_1 = require("./promise/add-missed-keep-declarations-and-modules");
78
79
  var add_missed_mock_declarations_and_modules_1 = require("./promise/add-missed-mock-declarations-and-modules");
@@ -121,6 +122,7 @@ var MockBuilderPromise = /** @class */ (function () {
121
122
  };
122
123
  MockBuilderPromise.prototype.build = function () {
123
124
  this.stash.backup();
125
+ ng_mocks_universe_1.default.config.set('mockNgDefResolver', new Map());
124
126
  var params = this.combineParams();
125
127
  var ngModule = init_ng_modules_1.default(params, init_universe_1.default(params));
126
128
  add_missed_keep_declarations_and_modules_1.default(ngModule, params);
@@ -130,6 +132,7 @@ var MockBuilderPromise = /** @class */ (function () {
130
132
  ngModule.providers.push(create_ng_mocks_token_1.default());
131
133
  ngModule.providers.push(create_ng_mocks_touches_token_1.default());
132
134
  ngModule.providers.push(create_ng_mocks_overrides_token_1.default(this.replaceDef, this.defValue));
135
+ ng_mocks_universe_1.default.config.delete('mockNgDefResolver');
133
136
  this.stash.restore();
134
137
  return ngModule;
135
138
  };
@@ -291,4 +294,4 @@ var MockBuilderPromise = /** @class */ (function () {
291
294
  return MockBuilderPromise;
292
295
  }());
293
296
  exports.MockBuilderPromise = MockBuilderPromise;
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1idWlsZGVyLnByb21pc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1idWlsZGVyL21vY2stYnVpbGRlci5wcm9taXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBZ0Q7QUFFaEQsdURBQTREO0FBRTVELGlFQUEwRDtBQUMxRCwyREFBbUQ7QUFDbkQsdUdBQTRGO0FBRTVGLDJEQUF3RDtBQUN4RCwrR0FBcUc7QUFDckcsK0dBQXFHO0FBQ3JHLDZFQUFzRTtBQUN0RSw2RkFBb0Y7QUFDcEYseUVBQWlFO0FBQ2pFLHlGQUFnRjtBQUNoRix5RUFBa0U7QUFDbEUsNkRBQXNEO0FBQ3RELHlEQUFtRDtBQUNuRCx1RUFBZ0U7QUFJaEUsSUFBTSxlQUFlLEdBQUcsVUFDdEIsTUFBVztJQUtYLE9BQUEsaUVBQTBCLENBQUMsTUFBTSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ3ZELENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRTtBQUZ6QyxDQUV5QyxDQUFDO0FBRTVDLElBQU0sYUFBYSxHQUFHLFVBQ3BCLFFBQWE7SUFLYixJQUFNLE9BQU8sR0FBRywyQkFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLElBQU0sS0FBSyxHQUFHLE9BQU8sS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQztJQUVyRCxPQUFPO1FBQ0wsS0FBSyxPQUFBO1FBQ0wsT0FBTyxTQUFBO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0scUJBQXFCLEdBQUcsVUFBQyxRQUFhLEVBQUUsUUFBYSxF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LElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8saUNBQUksR0FBWixVQUFhLEdBQWM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNILHlCQUFDO0FBQUQsQ0FBQyxBQXhMRCxJQXdMQztBQXhMWSxnREFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBmbGF0dGVuLCBtYXBWYWx1ZXMgfSBmcm9tICcuLi9jb21tb24vY29yZS5oZWxwZXJzJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgZnVuY0dldFByb3ZpZGVyIGZyb20gJy4uL2NvbW1vbi9mdW5jLmdldC1wcm92aWRlcic7XG5pbXBvcnQgeyBpc05nRGVmIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuaXMtbmctZGVmJztcbmltcG9ydCB7IGlzTmdNb2R1bGVEZWZXaXRoUHJvdmlkZXJzIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuaXMtbmctbW9kdWxlLWRlZi13aXRoLXByb3ZpZGVycyc7XG5cbmltcG9ydCB7IE1vY2tCdWlsZGVyU3Rhc2ggfSBmcm9tICcuL21vY2stYnVpbGRlci1zdGFzaCc7XG5pbXBvcnQgYWRkTWlzc2VkS2VlcERlY2xhcmF0aW9uc0FuZE1vZHVsZXMgZnJvbSAnLi9wcm9taXNlL2FkZC1taXNzZWQta2VlcC1kZWNsYXJhdGlvbnMtYW5kLW1vZHVsZXMnO1xuaW1wb3J0IGFkZE1pc3NlZE1vY2tEZWNsYXJhdGlvbnNBbmRNb2R1bGVzIGZyb20gJy4vcHJvbWlzZS9hZGQtbWlzc2VkLW1vY2stZGVjbGFyYXRpb25zLWFuZC1tb2R1bGVzJztcbmltcG9ydCBhZGRSZXF1ZXN0ZWRQcm92aWRlcnMgZnJvbSAnLi9wcm9taXNlL2FkZC1yZXF1ZXN0ZWQtcHJvdmlkZXJzJztcbmltcG9ydCBjcmVhdGVOZ01vY2tzT3ZlcnJpZGVzVG9rZW4gZnJvbSAnLi9wcm9taXNlL2NyZWF0ZS1uZy1tb2Nrcy1vdmVycmlkZXMtdG9rZW4nO1xuaW1wb3J0IGNyZWF0ZU5nTW9ja3NUb2tlbiBmcm9tICcuL3Byb21pc2UvY3JlYXRlLW5nLW1vY2tzLXRva2VuJztcbmltcG9ydCBjcmVhdGVOZ01vY2tzVG91Y2hlc1Rva2VuIGZyb20gJy4vcHJvbWlzZS9jcmVhdGUtbmctbW9ja3MtdG91Y2hlcy10b2tlbic7XG5pbXBvcnQgaGFuZGxlUm9vdFByb3ZpZGVycyBmcm9tICcuL3Byb21pc2UvaGFuZGxlLXJvb3QtcHJvdmlkZXJzJztcbmltcG9ydCBpbml0TmdNb2R1bGVzIGZyb20gJy4vcHJvbWlzZS9pbml0LW5nLW1vZHVsZXMnO1xuaW1wb3J0IGluaXRVbml2ZXJzZSBmcm9tICcuL3Byb21pc2UvaW5pdC11bml2ZXJzZSc7XG5pbXBvcnQgcGFyc2VNb2NrQXJndW1lbnRzIGZyb20gJy4vcHJvbWlzZS9wYXJzZS1tb2NrLWFyZ3VtZW50cyc7XG5pbXBvcnQgeyBCdWlsZGVyRGF0YSB9IGZyb20gJy4vcHJvbWlzZS90eXBlcyc7XG5pbXBvcnQgeyBJTW9ja0J1aWxkZXIsIElNb2NrQnVpbGRlckNvbmZpZywgSU1vY2tCdWlsZGVyUmVzdWx0IH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IG5vcm1hbGlzZU1vZHVsZSA9IChcbiAgbW9kdWxlOiBhbnksXG4pOiB7XG4gIGRlZjogVHlwZTxhbnk+O1xuICBwcm92aWRlcnM/OiBQcm92aWRlcltdO1xufSA9PlxuICBpc05nTW9kdWxlRGVmV2l0aFByb3ZpZGVycyhtb2R1bGUpXG4gICAgPyB7IGRlZjogbW9kdWxlLm5nTW9kdWxlLCBwcm92aWRlcnM6IG1vZHVsZS5wcm92aWRlcnMgfVxuICAgIDogeyBkZWY6IG1vZHVsZSwgcHJvdmlkZXJzOiB1bmRlZmluZWQgfTtcblxuY29uc3QgcGFyc2VQcm92aWRlciA9IChcbiAgcHJvdmlkZXI6IGFueSxcbik6IHtcbiAgbXVsdGk6IGJvb2xlYW47XG4gIHByb3ZpZGU6IGFueTtcbn0gPT4ge1xuICBjb25zdCBwcm92aWRlID0gZnVuY0dldFByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgY29uc3QgbXVsdGkgPSBwcm92aWRlICE9PSBwcm92aWRlciAmJiBwcm92aWRlci5tdWx0aTtcblxuICByZXR1cm4ge1xuICAgIG11bHRpLFxuICAgIHByb3ZpZGUsXG4gIH07XG59O1xuXG5jb25zdCBnZW5lcmF0ZVByb3ZpZGVyVmFsdWUgPSAocHJvdmlkZXI6IGFueSwgZXhpc3Rpbmc6IGFueSwgbXVsdGk6IGJvb2xlYW4pOiBhbnkgPT5cbiAgbXVsdGkgPyBbLi4uKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpID8gZXhpc3RpbmcgOiAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXSksIHByb3ZpZGVyXSA6IHByb3ZpZGVyO1xuXG5jb25zdCBkZWZhdWx0TW9jayA9IHt9OyAvLyBzaW11bGF0aW5nIFN5bWJvbFxuXG5leHBvcnQgY2xhc3MgTW9ja0J1aWxkZXJQcm9taXNlIGltcGxlbWVudHMgSU1vY2tCdWlsZGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IFtTeW1ib2wudG9TdHJpbmdUYWddID0gJ01vY2tCdWlsZGVyJztcbiAgcHJvdGVjdGVkIGJlZm9yZUNDOiBTZXQ8KHRlc3RCZWQ6IHR5cGVvZiBUZXN0QmVkKSA9PiB2b2lkPiA9IG5ldyBTZXQoKTtcbiAgcHJvdGVjdGVkIGNvbmZpZ0RlZjogQnVpbGRlckRhdGFbJ2NvbmZpZ0RlZiddID0gbmV3IE1hcCgpO1xuICBwcm90ZWN0ZWQgZGVmUHJvdmlkZXJzOiBCdWlsZGVyRGF0YVsnZGVmUHJvdmlkZXJzJ10gPSBuZXcgTWFwKCk7XG4gIHByb3RlY3RlZCBkZWZWYWx1ZTogQnVpbGRlckRhdGFbJ2RlZlZhbHVlJ10gPSBuZXcgTWFwKCk7XG4gIHByb3RlY3RlZCBleGNsdWRlRGVmOiBCdWlsZGVyRGF0YVsnZXhjbHVkZURlZiddID0gbmV3IFNldCgpO1xuICBwcm90ZWN0ZWQga2VlcERlZjogQnVpbGRlckRhdGFbJ2tlZXBEZWYnXSA9IG5ldyBTZXQoKTtcbiAgcHJvdGVjdGVkIG1vY2tEZWY6IEJ1aWxkZXJEYXRhWydtb2NrRGVmJ10gPSBuZXcgU2V0KCk7XG4gIHByb3RlY3RlZCBwcm92aWRlckRlZjogQnVpbGRlckRhdGFbJ3Byb3ZpZGVyRGVmJ10gPSBuZXcgTWFwKCk7XG4gIHByb3RlY3RlZCByZXBsYWNlRGVmOiBCdWlsZGVyRGF0YVsncmVwbGFjZURlZiddID0gbmV3IFNldCgpO1xuICBwcm90ZWN0ZWQgc3Rhc2g6IE1vY2tCdWlsZGVyU3Rhc2ggPSBuZXcgTW9ja0J1aWxkZXJTdGFzaCgpO1xuXG4gIHB1YmxpYyBiZWZvcmVDb21waWxlQ29tcG9uZW50cyhjYWxsYmFjazogKHRlc3RCZWQ6IHR5cGVvZiBUZXN0QmVkKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgdGhpcy5iZWZvcmVDQy5hZGQoY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgYnVpbGQoKTogTmdNb2R1bGUge1xuICAgIHRoaXMuc3Rhc2guYmFja3VwKCk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbWJpbmVQYXJhbXMoKTtcblxuICAgIGNvbnN0IG5nTW9kdWxlID0gaW5pdE5nTW9kdWxlcyhwYXJhbXMsIGluaXRVbml2ZXJzZShwYXJhbXMpKTtcbiAgICBhZGRNaXNzZWRLZWVwRGVjbGFyYXRpb25zQW5kTW9kdWxlcyhuZ01vZHVsZSwgcGFyYW1zKTtcbiAgICBhZGRNaXNzZWRNb2NrRGVjbGFyYXRpb25zQW5kTW9kdWxlcyhuZ01vZHVsZSwgcGFyYW1zKTtcbiAgICBhZGRSZXF1ZXN0ZWRQcm92aWRlcnMobmdNb2R1bGUsIHBhcmFtcyk7XG4gICAgaGFuZGxlUm9vdFByb3ZpZGVycyhuZ01vZHVsZSwgcGFyYW1zKTtcblxuICAgIG5nTW9kdWxlLnByb3ZpZGVycy5wdXNoKGNyZWF0ZU5nTW9ja3NUb2tlbigpKTtcbiAgICBuZ01vZHVsZS5wcm92aWRlcnMucHVzaChjcmVhdGVOZ01vY2tzVG91Y2hlc1Rva2VuKCkpO1xuICAgIG5nTW9kdWxlLnByb3ZpZGVycy5wdXNoKGNyZWF0ZU5nTW9ja3NPdmVycmlkZXNUb2tlbih0aGlzLnJlcGxhY2VEZWYsIHRoaXMuZGVmVmFsdWUpKTtcblxuICAgIHRoaXMuc3Rhc2gucmVzdG9yZSgpO1xuXG4gICAgcmV0dXJuIG5nTW9kdWxlO1xuICB9XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgcHVibGljIGFzeW5jIGNhdGNoKHJlamVjdD86ICgocmVhc29uOiBhbnkpID0+IFByb21pc2VMaWtlPG5ldmVyPikgfCB1bmRlZmluZWQgfCBudWxsKTogUHJvbWlzZTxJTW9ja0J1aWxkZXJSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy50aGVuKCkuY2F0Y2gocmVqZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBleGNsdWRlKGRlZjogYW55KTogdGhpcyB7XG4gICAgdGhpcy53aXBlKGRlZik7XG4gICAgdGhpcy5leGNsdWRlRGVmLmFkZChkZWYpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICBwdWJsaWMgYXN5bmMgZmluYWxseShjYWxsYmFjaz86ICgoKSA9PiB2b2lkKSB8IG51bGwgfCB1bmRlZmluZWQpOiBQcm9taXNlPElNb2NrQnVpbGRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnRoZW4oKS5maW5hbGx5KGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBrZWVwKGlucHV0OiBhbnksIGNvbmZpZz86IElNb2NrQnVpbGRlckNvbmZpZyk6IHRoaXMge1xuICAgIGNvbnN0IHsgZGVmLCBwcm92aWRlcnMgfSA9IG5vcm1hbGlzZU1vZHVsZShpbnB1dCk7XG5cbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMua2VlcERlZi5oYXMoZGVmKSA/IHRoaXMuZGVmUHJvdmlkZXJzLmdldChkZWYpIDogW107XG4gICAgdGhpcy53aXBlKGRlZik7XG4gICAgdGhpcy5rZWVwRGVmLmFkZChkZWYpO1xuXG4gICAgLy8gYSBtYWdpYyB0byBzdXBwb3J0IG1vZHVsZXMgd2l0aCBwcm92aWRlcnMuXG4gICAgaWYgKHByb3ZpZGVycykge1xuICAgICAgdGhpcy5kZWZQcm92aWRlcnMuc2V0KGRlZiwgWy4uLihleGlzdGluZyB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXSksIC4uLnByb3ZpZGVyc10pO1xuICAgIH1cblxuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuY29uZmlnRGVmLnNldChkZWYsIGNvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlnRGVmLmRlbGV0ZShkZWYpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIG1vY2soaW5wdXQ6IGFueSwgYTE6IGFueSA9IGRlZmF1bHRNb2NrLCBhMj86IGFueSk6IHRoaXMge1xuICAgIGNvbnN0IHsgZGVmLCBwcm92aWRlcnMgfSA9IG5vcm1hbGlzZU1vZHVsZShpbnB1dCk7XG5cbiAgICBjb25zdCB7IGNvbmZpZywgbW9jayB9ID0gcGFyc2VNb2NrQXJndW1lbnRzKGRlZiwgYTEsIGEyLCBkZWZhdWx0TW9jayk7XG5cbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMubW9ja0RlZi5oYXMoZGVmKSA/IHRoaXMuZGVmUHJvdmlkZXJzLmdldChkZWYpIDogW107XG4gICAgdGhpcy53aXBlKGRlZik7XG4gICAgdGhpcy5tb2NrRGVmLmFkZChkZWYpO1xuXG4gICAgLy8gYSBtYWdpYyB0byBzdXBwb3J0IG1vZHVsZXMgd2l0aCBwcm92aWRlcnMuXG4gICAgaWYgKHByb3ZpZGVycykge1xuICAgICAgdGhpcy5kZWZQcm92aWRlcnMuc2V0KGRlZiwgWy4uLihleGlzdGluZyB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXSksIC4uLnByb3ZpZGVyc10pO1xuICAgIH1cblxuICAgIHRoaXMuc2V0RGVmVmFsdWUoZGVmLCBtb2NrKTtcbiAgICB0aGlzLnNldENvbmZpZ0RlZihkZWYsIGNvbmZpZyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBwcm92aWRlKGRlZjogUHJvdmlkZXIpOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIGZsYXR0ZW4oZGVmKSkge1xuICAgICAgY29uc3QgeyBwcm92aWRlLCBtdWx0aSB9ID0gcGFyc2VQcm92aWRlcihwcm92aWRlcik7XG4gICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMucHJvdmlkZXJEZWYuaGFzKHByb3ZpZGUpID8gdGhpcy5wcm92aWRlckRlZi5nZXQocHJvdmlkZSkgOiBbXTtcbiAgICAgIHRoaXMud2lwZShwcm92aWRlKTtcbiAgICAgIHRoaXMucHJvdmlkZXJEZWYuc2V0KHByb3ZpZGUsIGdlbmVyYXRlUHJvdmlkZXJWYWx1ZShwcm92aWRlciwgZXhpc3RpbmcsIG11bHRpKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZShzb3VyY2U6IFR5cGU8YW55PiwgZGVzdGluYXRpb246IFR5cGU8YW55PiwgY29uZmlnPzogSU1vY2tCdWlsZGVyQ29uZmlnKTogdGhpcyB7XG4gICAgaWYgKCFpc05nRGVmKGRlc3RpbmF0aW9uKSB8fCAhaXNOZ0RlZihzb3VyY2UpIHx8IGlzTmdEZWYoZGVzdGluYXRpb24sICdpJykgfHwgaXNOZ0RlZihzb3VyY2UsICdpJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCByZXBsYWNlIHRoZSBkZWNsYXJhdGlvbiwgYm90aCBoYXZlIHRvIGJlIGEgTW9kdWxlLCBhIENvbXBvbmVudCwgYSBEaXJlY3RpdmUgb3IgYSBQaXBlLCBmb3IgUHJvdmlkZXJzIHVzZSBgLm1vY2tgIG9yIGAucHJvdmlkZWAnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLndpcGUoc291cmNlKTtcbiAgICB0aGlzLnJlcGxhY2VEZWYuYWRkKHNvdXJjZSk7XG4gICAgdGhpcy5kZWZWYWx1ZS5zZXQoc291cmNlLCBkZXN0aW5hdGlvbik7XG5cbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmNvbmZpZ0RlZi5zZXQoc291cmNlLCBjb25maWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbmZpZ0RlZi5kZWxldGUoc291cmNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0aGVuPFRSZXN1bHQxID0gSU1vY2tCdWlsZGVyUmVzdWx0PihcbiAgICBmdWxmaWxsPzogKCh2YWx1ZTogSU1vY2tCdWlsZGVyUmVzdWx0KSA9PiBQcm9taXNlTGlrZTxUUmVzdWx0MT4pIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICByZWplY3Q/OiAoKHJlYXNvbjogYW55KSA9PiBQcm9taXNlTGlrZTxhbnk+KSB8IHVuZGVmaW5lZCB8IG51bGwsXG4gICk6IFByb21pc2U8VFJlc3VsdDE+IHtcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmU6ICh2YWx1ZTogSU1vY2tCdWlsZGVyUmVzdWx0KSA9PiB2b2lkKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCB0ZXN0QmVkID0gVGVzdEJlZC5jb25maWd1cmVUZXN0aW5nTW9kdWxlKHRoaXMuYnVpbGQoKSk7XG4gICAgICBmb3IgKGNvbnN0IGNhbGxiYWNrIG9mIG1hcFZhbHVlcyh0aGlzLmJlZm9yZUNDKSkge1xuICAgICAgICBjYWxsYmFjayh0ZXN0QmVkKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRlc3RCZWRQcm9taXNlID0gdGVzdEJlZC5jb21waWxlQ29tcG9uZW50cygpO1xuICAgICAgdGVzdEJlZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgIHJlc29sdmUoeyB0ZXN0QmVkIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bGZpbGwsIHJlamVjdCk7XG4gIH1cblxuICBwcml2YXRlIGNvbWJpbmVQYXJhbXMoKTogQnVpbGRlckRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBjb25maWdEZWY6IHRoaXMuY29uZmlnRGVmLFxuICAgICAgZGVmUHJvdmlkZXJzOiB0aGlzLmRlZlByb3ZpZGVycyxcbiAgICAgIGRlZlZhbHVlOiB0aGlzLmRlZlZhbHVlLFxuICAgICAgZXhjbHVkZURlZjogdGhpcy5leGNsdWRlRGVmLFxuICAgICAga2VlcERlZjogdGhpcy5rZWVwRGVmLFxuICAgICAgbW9ja0RlZjogdGhpcy5tb2NrRGVmLFxuICAgICAgcHJvdmlkZXJEZWY6IHRoaXMucHJvdmlkZXJEZWYsXG4gICAgICByZXBsYWNlRGVmOiB0aGlzLnJlcGxhY2VEZWYsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29uZmlnRGVmKGRlZjogYW55LCBjb25maWc6IGFueSk6IHZvaWQge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuY29uZmlnRGVmLnNldChkZWYsIGNvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlnRGVmLmRlbGV0ZShkZWYpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmVmFsdWUoZGVmOiBhbnksIG1vY2s6IGFueSk6IHZvaWQge1xuICAgIGlmIChtb2NrICE9PSBkZWZhdWx0TW9jaykge1xuICAgICAgdGhpcy5kZWZWYWx1ZS5zZXQoZGVmLCBtb2NrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWZWYWx1ZS5kZWxldGUoZGVmKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHdpcGUoZGVmOiBUeXBlPGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLmRlZlByb3ZpZGVycy5kZWxldGUoZGVmKTtcbiAgICB0aGlzLmRlZlZhbHVlLmRlbGV0ZShkZWYpO1xuICAgIHRoaXMuZXhjbHVkZURlZi5kZWxldGUoZGVmKTtcbiAgICB0aGlzLmtlZXBEZWYuZGVsZXRlKGRlZik7XG4gICAgdGhpcy5tb2NrRGVmLmRlbGV0ZShkZWYpO1xuICAgIHRoaXMucHJvdmlkZXJEZWYuZGVsZXRlKGRlZik7XG4gICAgdGhpcy5yZXBsYWNlRGVmLmRlbGV0ZShkZWYpO1xuICB9XG59XG4iXX0=
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1idWlsZGVyLnByb21pc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1idWlsZGVyL21vY2stYnVpbGRlci5wcm9taXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBZ0Q7QUFFaEQsdURBQTREO0FBRTVELGlFQUEwRDtBQUMxRCwyREFBbUQ7QUFDbkQsdUdBQTRGO0FBQzVGLGlFQUEwRDtBQUUxRCwyREFBd0Q7QUFDeEQsK0dBQXFHO0FBQ3JHLCtHQUFxRztBQUNyRyw2RUFBc0U7QUFDdEUsNkZBQW9GO0FBQ3BGLHlFQUFpRTtBQUNqRSx5RkFBZ0Y7QUFDaEYseUVBQWtFO0FBQ2xFLDZEQUFzRDtBQUN0RCx5REFBbUQ7QUFDbkQsdUVBQWdFO0FBSWhFLElBQU0sZUFBZSxHQUFHLFVBQ3RCLE1BQVc7SUFLWCxPQUFBLGlFQUEwQixDQUFDLE1BQU0sQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUN2RCxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUU7QUFGekMsQ0FFeUMsQ0FBQztBQUU1QyxJQUFNLGFBQWEsR0FBRyxVQUNwQixRQUFhO0lBS2IsSUFBTSxPQUFPLEdBQUcsMkJBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxJQUFNLEtBQUssR0FBRyxPQUFPLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFFckQsT0FBTztRQUNMLEtBQUssT0FBQTtRQUNMLE9BQU8sU0FBQTtLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixJQUFNLHFCQUFxQixHQUFHLFVBQUMsUUFB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O1lBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU8sd0NBQVcsR0FBbkIsVUFBb0IsR0FBUSxFQUFFLElBQVM7UUFDckMsSUFBSSxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8saUNBQUksR0FBWixVQUFhLEdBQWM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNILHlCQUFDO0FBQUQsQ0FBQyxBQTFMRCxJQTBMQztBQTFMWSxnREFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBmbGF0dGVuLCBtYXBWYWx1ZXMgfSBmcm9tICcuLi9jb21tb24vY29yZS5oZWxwZXJzJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgZnVuY0dldFByb3ZpZGVyIGZyb20gJy4uL2NvbW1vbi9mdW5jLmdldC1wcm92aWRlcic7XG5pbXBvcnQgeyBpc05nRGVmIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuaXMtbmctZGVmJztcbmltcG9ydCB7IGlzTmdNb2R1bGVEZWZXaXRoUHJvdmlkZXJzIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuaXMtbmctbW9kdWxlLWRlZi13aXRoLXByb3ZpZGVycyc7XG5pbXBvcnQgbmdNb2Nrc1VuaXZlcnNlIGZyb20gJy4uL2NvbW1vbi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmltcG9ydCB7IE1vY2tCdWlsZGVyU3Rhc2ggfSBmcm9tICcuL21vY2stYnVpbGRlci1zdGFzaCc7XG5pbXBvcnQgYWRkTWlzc2VkS2VlcERlY2xhcmF0aW9uc0FuZE1vZHVsZXMgZnJvbSAnLi9wcm9taXNlL2FkZC1taXNzZWQta2VlcC1kZWNsYXJhdGlvbnMtYW5kLW1vZHVsZXMnO1xuaW1wb3J0IGFkZE1pc3NlZE1vY2tEZWNsYXJhdGlvbnNBbmRNb2R1bGVzIGZyb20gJy4vcHJvbWlzZS9hZGQtbWlzc2VkLW1vY2stZGVjbGFyYXRpb25zLWFuZC1tb2R1bGVzJztcbmltcG9ydCBhZGRSZXF1ZXN0ZWRQcm92aWRlcnMgZnJvbSAnLi9wcm9taXNlL2FkZC1yZXF1ZXN0ZWQtcHJvdmlkZXJzJztcbmltcG9ydCBjcmVhdGVOZ01vY2tzT3ZlcnJpZGVzVG9rZW4gZnJvbSAnLi9wcm9taXNlL2NyZWF0ZS1uZy1tb2Nrcy1vdmVycmlkZXMtdG9rZW4nO1xuaW1wb3J0IGNyZWF0ZU5nTW9ja3NUb2tlbiBmcm9tICcuL3Byb21pc2UvY3JlYXRlLW5nLW1vY2tzLXRva2VuJztcbmltcG9ydCBjcmVhdGVOZ01vY2tzVG91Y2hlc1Rva2VuIGZyb20gJy4vcHJvbWlzZS9jcmVhdGUtbmctbW9ja3MtdG91Y2hlcy10b2tlbic7XG5pbXBvcnQgaGFuZGxlUm9vdFByb3ZpZGVycyBmcm9tICcuL3Byb21pc2UvaGFuZGxlLXJvb3QtcHJvdmlkZXJzJztcbmltcG9ydCBpbml0TmdNb2R1bGVzIGZyb20gJy4vcHJvbWlzZS9pbml0LW5nLW1vZHVsZXMnO1xuaW1wb3J0IGluaXRVbml2ZXJzZSBmcm9tICcuL3Byb21pc2UvaW5pdC11bml2ZXJzZSc7XG5pbXBvcnQgcGFyc2VNb2NrQXJndW1lbnRzIGZyb20gJy4vcHJvbWlzZS9wYXJzZS1tb2NrLWFyZ3VtZW50cyc7XG5pbXBvcnQgeyBCdWlsZGVyRGF0YSB9IGZyb20gJy4vcHJvbWlzZS90eXBlcyc7XG5pbXBvcnQgeyBJTW9ja0J1aWxkZXIsIElNb2NrQnVpbGRlckNvbmZpZywgSU1vY2tCdWlsZGVyUmVzdWx0IH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IG5vcm1hbGlzZU1vZHVsZSA9IChcbiAgbW9kdWxlOiBhbnksXG4pOiB7XG4gIGRlZjogVHlwZTxhbnk+O1xuICBwcm92aWRlcnM/OiBQcm92aWRlcltdO1xufSA9PlxuICBpc05nTW9kdWxlRGVmV2l0aFByb3ZpZGVycyhtb2R1bGUpXG4gICAgPyB7IGRlZjogbW9kdWxlLm5nTW9kdWxlLCBwcm92aWRlcnM6IG1vZHVsZS5wcm92aWRlcnMgfVxuICAgIDogeyBkZWY6IG1vZHVsZSwgcHJvdmlkZXJzOiB1bmRlZmluZWQgfTtcblxuY29uc3QgcGFyc2VQcm92aWRlciA9IChcbiAgcHJvdmlkZXI6IGFueSxcbik6IHtcbiAgbXVsdGk6IGJvb2xlYW47XG4gIHByb3ZpZGU6IGFueTtcbn0gPT4ge1xuICBjb25zdCBwcm92aWRlID0gZnVuY0dldFByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgY29uc3QgbXVsdGkgPSBwcm92aWRlICE9PSBwcm92aWRlciAmJiBwcm92aWRlci5tdWx0aTtcblxuICByZXR1cm4ge1xuICAgIG11bHRpLFxuICAgIHByb3ZpZGUsXG4gIH07XG59O1xuXG5jb25zdCBnZW5lcmF0ZVByb3ZpZGVyVmFsdWUgPSAocHJvdmlkZXI6IGFueSwgZXhpc3Rpbmc6IGFueSwgbXVsdGk6IGJvb2xlYW4pOiBhbnkgPT5cbiAgbXVsdGkgPyBbLi4uKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpID8gZXhpc3RpbmcgOiAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXSksIHByb3ZpZGVyXSA6IHByb3ZpZGVyO1xuXG5jb25zdCBkZWZhdWx0TW9jayA9IHt9OyAvLyBzaW11bGF0aW5nIFN5bWJvbFxuXG5leHBvcnQgY2xhc3MgTW9ja0J1aWxkZXJQcm9taXNlIGltcGxlbWVudHMgSU1vY2tCdWlsZGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IFtTeW1ib2wudG9TdHJpbmdUYWddID0gJ01vY2tCdWlsZGVyJztcbiAgcHJvdGVjdGVkIGJlZm9yZUNDOiBTZXQ8KHRlc3RCZWQ6IHR5cGVvZiBUZXN0QmVkKSA9PiB2b2lkPiA9IG5ldyBTZXQoKTtcbiAgcHJvdGVjdGVkIGNvbmZpZ0RlZjogQnVpbGRlckRhdGFbJ2NvbmZpZ0RlZiddID0gbmV3IE1hcCgpO1xuICBwcm90ZWN0ZWQgZGVmUHJvdmlkZXJzOiBCdWlsZGVyRGF0YVsnZGVmUHJvdmlkZXJzJ10gPSBuZXcgTWFwKCk7XG4gIHByb3RlY3RlZCBkZWZWYWx1ZTogQnVpbGRlckRhdGFbJ2RlZlZhbHVlJ10gPSBuZXcgTWFwKCk7XG4gIHByb3RlY3RlZCBleGNsdWRlRGVmOiBCdWlsZGVyRGF0YVsnZXhjbHVkZURlZiddID0gbmV3IFNldCgpO1xuICBwcm90ZWN0ZWQga2VlcERlZjogQnVpbGRlckRhdGFbJ2tlZXBEZWYnXSA9IG5ldyBTZXQoKTtcbiAgcHJvdGVjdGVkIG1vY2tEZWY6IEJ1aWxkZXJEYXRhWydtb2NrRGVmJ10gPSBuZXcgU2V0KCk7XG4gIHByb3RlY3RlZCBwcm92aWRlckRlZjogQnVpbGRlckRhdGFbJ3Byb3ZpZGVyRGVmJ10gPSBuZXcgTWFwKCk7XG4gIHByb3RlY3RlZCByZXBsYWNlRGVmOiBCdWlsZGVyRGF0YVsncmVwbGFjZURlZiddID0gbmV3IFNldCgpO1xuICBwcm90ZWN0ZWQgc3Rhc2g6IE1vY2tCdWlsZGVyU3Rhc2ggPSBuZXcgTW9ja0J1aWxkZXJTdGFzaCgpO1xuXG4gIHB1YmxpYyBiZWZvcmVDb21waWxlQ29tcG9uZW50cyhjYWxsYmFjazogKHRlc3RCZWQ6IHR5cGVvZiBUZXN0QmVkKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgdGhpcy5iZWZvcmVDQy5hZGQoY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgYnVpbGQoKTogTmdNb2R1bGUge1xuICAgIHRoaXMuc3Rhc2guYmFja3VwKCk7XG4gICAgbmdNb2Nrc1VuaXZlcnNlLmNvbmZpZy5zZXQoJ21vY2tOZ0RlZlJlc29sdmVyJywgbmV3IE1hcCgpKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tYmluZVBhcmFtcygpO1xuXG4gICAgY29uc3QgbmdNb2R1bGUgPSBpbml0TmdNb2R1bGVzKHBhcmFtcywgaW5pdFVuaXZlcnNlKHBhcmFtcykpO1xuICAgIGFkZE1pc3NlZEtlZXBEZWNsYXJhdGlvbnNBbmRNb2R1bGVzKG5nTW9kdWxlLCBwYXJhbXMpO1xuICAgIGFkZE1pc3NlZE1vY2tEZWNsYXJhdGlvbnNBbmRNb2R1bGVzKG5nTW9kdWxlLCBwYXJhbXMpO1xuICAgIGFkZFJlcXVlc3RlZFByb3ZpZGVycyhuZ01vZHVsZSwgcGFyYW1zKTtcbiAgICBoYW5kbGVSb290UHJvdmlkZXJzKG5nTW9kdWxlLCBwYXJhbXMpO1xuXG4gICAgbmdNb2R1bGUucHJvdmlkZXJzLnB1c2goY3JlYXRlTmdNb2Nrc1Rva2VuKCkpO1xuICAgIG5nTW9kdWxlLnByb3ZpZGVycy5wdXNoKGNyZWF0ZU5nTW9ja3NUb3VjaGVzVG9rZW4oKSk7XG4gICAgbmdNb2R1bGUucHJvdmlkZXJzLnB1c2goY3JlYXRlTmdNb2Nrc092ZXJyaWRlc1Rva2VuKHRoaXMucmVwbGFjZURlZiwgdGhpcy5kZWZWYWx1ZSkpO1xuXG4gICAgbmdNb2Nrc1VuaXZlcnNlLmNvbmZpZy5kZWxldGUoJ21vY2tOZ0RlZlJlc29sdmVyJyk7XG4gICAgdGhpcy5zdGFzaC5yZXN0b3JlKCk7XG5cbiAgICByZXR1cm4gbmdNb2R1bGU7XG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICBwdWJsaWMgYXN5bmMgY2F0Y2gocmVqZWN0PzogKChyZWFzb246IGFueSkgPT4gUHJvbWlzZUxpa2U8bmV2ZXI+KSB8IHVuZGVmaW5lZCB8IG51bGwpOiBQcm9taXNlPElNb2NrQnVpbGRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnRoZW4oKS5jYXRjaChyZWplY3QpO1xuICB9XG5cbiAgcHVibGljIGV4Y2x1ZGUoZGVmOiBhbnkpOiB0aGlzIHtcbiAgICB0aGlzLndpcGUoZGVmKTtcbiAgICB0aGlzLmV4Y2x1ZGVEZWYuYWRkKGRlZik7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHB1YmxpYyBhc3luYyBmaW5hbGx5KGNhbGxiYWNrPzogKCgpID0+IHZvaWQpIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFByb21pc2U8SU1vY2tCdWlsZGVyUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMudGhlbigpLmZpbmFsbHkoY2FsbGJhY2spO1xuICB9XG5cbiAgcHVibGljIGtlZXAoaW5wdXQ6IGFueSwgY29uZmlnPzogSU1vY2tCdWlsZGVyQ29uZmlnKTogdGhpcyB7XG4gICAgY29uc3QgeyBkZWYsIHByb3ZpZGVycyB9ID0gbm9ybWFsaXNlTW9kdWxlKGlucHV0KTtcblxuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5rZWVwRGVmLmhhcyhkZWYpID8gdGhpcy5kZWZQcm92aWRlcnMuZ2V0KGRlZikgOiBbXTtcbiAgICB0aGlzLndpcGUoZGVmKTtcbiAgICB0aGlzLmtlZXBEZWYuYWRkKGRlZik7XG5cbiAgICAvLyBhIG1hZ2ljIHRvIHN1cHBvcnQgbW9kdWxlcyB3aXRoIHByb3ZpZGVycy5cbiAgICBpZiAocHJvdmlkZXJzKSB7XG4gICAgICB0aGlzLmRlZlByb3ZpZGVycy5zZXQoZGVmLCBbLi4uKGV4aXN0aW5nIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIFtdKSwgLi4ucHJvdmlkZXJzXSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWdEZWYuc2V0KGRlZiwgY29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb25maWdEZWYuZGVsZXRlKGRlZik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbW9jayhpbnB1dDogYW55LCBhMTogYW55ID0gZGVmYXVsdE1vY2ssIGEyPzogYW55KTogdGhpcyB7XG4gICAgY29uc3QgeyBkZWYsIHByb3ZpZGVycyB9ID0gbm9ybWFsaXNlTW9kdWxlKGlucHV0KTtcblxuICAgIGNvbnN0IHsgY29uZmlnLCBtb2NrIH0gPSBwYXJzZU1vY2tBcmd1bWVudHMoZGVmLCBhMSwgYTIsIGRlZmF1bHRNb2NrKTtcblxuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5tb2NrRGVmLmhhcyhkZWYpID8gdGhpcy5kZWZQcm92aWRlcnMuZ2V0KGRlZikgOiBbXTtcbiAgICB0aGlzLndpcGUoZGVmKTtcbiAgICB0aGlzLm1vY2tEZWYuYWRkKGRlZik7XG5cbiAgICAvLyBhIG1hZ2ljIHRvIHN1cHBvcnQgbW9kdWxlcyB3aXRoIHByb3ZpZGVycy5cbiAgICBpZiAocHJvdmlkZXJzKSB7XG4gICAgICB0aGlzLmRlZlByb3ZpZGVycy5zZXQoZGVmLCBbLi4uKGV4aXN0aW5nIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIFtdKSwgLi4ucHJvdmlkZXJzXSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXREZWZWYWx1ZShkZWYsIG1vY2spO1xuICAgIHRoaXMuc2V0Q29uZmlnRGVmKGRlZiwgY29uZmlnKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHByb3ZpZGUoZGVmOiBQcm92aWRlcik6IHRoaXMge1xuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgZmxhdHRlbihkZWYpKSB7XG4gICAgICBjb25zdCB7IHByb3ZpZGUsIG11bHRpIH0gPSBwYXJzZVByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5wcm92aWRlckRlZi5oYXMocHJvdmlkZSkgPyB0aGlzLnByb3ZpZGVyRGVmLmdldChwcm92aWRlKSA6IFtdO1xuICAgICAgdGhpcy53aXBlKHByb3ZpZGUpO1xuICAgICAgdGhpcy5wcm92aWRlckRlZi5zZXQocHJvdmlkZSwgZ2VuZXJhdGVQcm92aWRlclZhbHVlKHByb3ZpZGVyLCBleGlzdGluZywgbXVsdGkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyByZXBsYWNlKHNvdXJjZTogVHlwZTxhbnk+LCBkZXN0aW5hdGlvbjogVHlwZTxhbnk+LCBjb25maWc/OiBJTW9ja0J1aWxkZXJDb25maWcpOiB0aGlzIHtcbiAgICBpZiAoIWlzTmdEZWYoZGVzdGluYXRpb24pIHx8ICFpc05nRGVmKHNvdXJjZSkgfHwgaXNOZ0RlZihkZXN0aW5hdGlvbiwgJ2knKSB8fCBpc05nRGVmKHNvdXJjZSwgJ2knKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2Fubm90IHJlcGxhY2UgdGhlIGRlY2xhcmF0aW9uLCBib3RoIGhhdmUgdG8gYmUgYSBNb2R1bGUsIGEgQ29tcG9uZW50LCBhIERpcmVjdGl2ZSBvciBhIFBpcGUsIGZvciBQcm92aWRlcnMgdXNlIGAubW9ja2Agb3IgYC5wcm92aWRlYCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMud2lwZShzb3VyY2UpO1xuICAgIHRoaXMucmVwbGFjZURlZi5hZGQoc291cmNlKTtcbiAgICB0aGlzLmRlZlZhbHVlLnNldChzb3VyY2UsIGRlc3RpbmF0aW9uKTtcblxuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuY29uZmlnRGVmLnNldChzb3VyY2UsIGNvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlnRGVmLmRlbGV0ZShzb3VyY2UpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRoZW48VFJlc3VsdDEgPSBJTW9ja0J1aWxkZXJSZXN1bHQ+KFxuICAgIGZ1bGZpbGw/OiAoKHZhbHVlOiBJTW9ja0J1aWxkZXJSZXN1bHQpID0+IFByb21pc2VMaWtlPFRSZXN1bHQxPikgfCB1bmRlZmluZWQgfCBudWxsLFxuICAgIHJlamVjdD86ICgocmVhc29uOiBhbnkpID0+IFByb21pc2VMaWtlPGFueT4pIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgKTogUHJvbWlzZTxUUmVzdWx0MT4ge1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZTogKHZhbHVlOiBJTW9ja0J1aWxkZXJSZXN1bHQpID0+IHZvaWQpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHRlc3RCZWQgPSBUZXN0QmVkLmNvbmZpZ3VyZVRlc3RpbmdNb2R1bGUodGhpcy5idWlsZCgpKTtcbiAgICAgIGZvciAoY29uc3QgY2FsbGJhY2sgb2YgbWFwVmFsdWVzKHRoaXMuYmVmb3JlQ0MpKSB7XG4gICAgICAgIGNhbGxiYWNrKHRlc3RCZWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgdGVzdEJlZFByb21pc2UgPSB0ZXN0QmVkLmNvbXBpbGVDb21wb25lbnRzKCk7XG4gICAgICB0ZXN0QmVkUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSh7IHRlc3RCZWQgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm9taXNlLnRoZW4oZnVsZmlsbCwgcmVqZWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgY29tYmluZVBhcmFtcygpOiBCdWlsZGVyRGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ0RlZjogdGhpcy5jb25maWdEZWYsXG4gICAgICBkZWZQcm92aWRlcnM6IHRoaXMuZGVmUHJvdmlkZXJzLFxuICAgICAgZGVmVmFsdWU6IHRoaXMuZGVmVmFsdWUsXG4gICAgICBleGNsdWRlRGVmOiB0aGlzLmV4Y2x1ZGVEZWYsXG4gICAgICBrZWVwRGVmOiB0aGlzLmtlZXBEZWYsXG4gICAgICBtb2NrRGVmOiB0aGlzLm1vY2tEZWYsXG4gICAgICBwcm92aWRlckRlZjogdGhpcy5wcm92aWRlckRlZixcbiAgICAgIHJlcGxhY2VEZWY6IHRoaXMucmVwbGFjZURlZixcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb25maWdEZWYoZGVmOiBhbnksIGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWdEZWYuc2V0KGRlZiwgY29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb25maWdEZWYuZGVsZXRlKGRlZik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZWYWx1ZShkZWY6IGFueSwgbW9jazogYW55KTogdm9pZCB7XG4gICAgaWYgKG1vY2sgIT09IGRlZmF1bHRNb2NrKSB7XG4gICAgICB0aGlzLmRlZlZhbHVlLnNldChkZWYsIG1vY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlZlZhbHVlLmRlbGV0ZShkZWYpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgd2lwZShkZWY6IFR5cGU8YW55Pik6IHZvaWQge1xuICAgIHRoaXMuZGVmUHJvdmlkZXJzLmRlbGV0ZShkZWYpO1xuICAgIHRoaXMuZGVmVmFsdWUuZGVsZXRlKGRlZik7XG4gICAgdGhpcy5leGNsdWRlRGVmLmRlbGV0ZShkZWYpO1xuICAgIHRoaXMua2VlcERlZi5kZWxldGUoZGVmKTtcbiAgICB0aGlzLm1vY2tEZWYuZGVsZXRlKGRlZik7XG4gICAgdGhpcy5wcm92aWRlckRlZi5kZWxldGUoZGVmKTtcbiAgICB0aGlzLnJlcGxhY2VEZWYuZGVsZXRlKGRlZik7XG4gIH1cbn1cbiJdfQ==
@@ -24,7 +24,7 @@ exports.default = (function (replaceDef, defValue) {
24
24
  for (var _b = __values(core_helpers_1.mapValues(ng_mocks_universe_1.default.touches)), _c = _b.next(); !_c.done; _c = _b.next()) {
25
25
  var proto = _c.value;
26
26
  var source = proto;
27
- var value = ng_mocks_universe_1.default.builtDeclarations.get(source) || source;
27
+ var value = ng_mocks_universe_1.default.getBuildDeclaration(source) || source;
28
28
  if (skip_override_1.default(replaceDef, defValue, source, value)) {
29
29
  continue;
30
30
  }
@@ -50,4 +50,4 @@ exports.default = (function (replaceDef, defValue) {
50
50
  useValue: overrides,
51
51
  };
52
52
  });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5nLW1vY2tzLW92ZXJyaWRlcy10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9tb2NrLWJ1aWxkZXIvcHJvbWlzZS9jcmVhdGUtbmctbW9ja3Mtb3ZlcnJpZGVzLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSwwREFBc0Q7QUFDdEQsd0RBQThEO0FBRTlELG9FQUE2RDtBQUU3RCx1REFBZ0Q7QUFDaEQseURBQWtEO0FBQ2xELGlEQUEyQztBQUUzQyxtQkFBZSxVQUFDLFVBQW9CLEVBQUUsUUFBdUI7O0lBQzNELElBQU0sU0FBUyxHQUEwQyxJQUFJLEdBQUcsRUFBRSxDQUFDOztRQUNuRSxLQUFvQixJQUFBLEtBQUEsU0FBQSx3QkFBUyxDQUFDLDJCQUFlLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBbkQsSUFBTSxLQUFLLFdBQUE7WUFDZCxJQUFNLE1BQU0sR0FBUSxLQUFLLENBQUM7WUFDMUIsSUFBTSxLQUFLLEdBQUcsMkJBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDO1lBQ3RFLElBQUksdUJBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDckQsU0FBUzthQUNWO1lBRUQsSUFBTSxHQUFHLEdBQUcsMEJBQWMsQ0FBQywyQkFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixTQUFTO2FBQ1Y7WUFDRCxJQUFNLFFBQVEsR0FBK0I7Z0JBQzNDLEdBQUcsRUFBRSxHQUFHO2FBQ1QsQ0FBQztZQUNGLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2hDOzs7Ozs7Ozs7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLGdDQUFrQjtRQUMzQixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDO0FBQ0osQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGFkYXRhT3ZlcnJpZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBtYXBWYWx1ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vY29yZS5oZWxwZXJzJztcbmltcG9ydCB7IE5HX01PQ0tTX09WRVJSSURFUyB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb3JlLnRva2Vucyc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvcmUudHlwZXMnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi8uLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuXG5pbXBvcnQgZ2V0T3ZlcnJpZGVEZWYgZnJvbSAnLi9nZXQtb3ZlcnJpZGUtZGVmJztcbmltcG9ydCBnZXRPdmVycmlkZU1ldGEgZnJvbSAnLi9nZXQtb3ZlcnJpZGUtbWV0YSc7XG5pbXBvcnQgc2tpcE92ZXJyaWRlIGZyb20gJy4vc2tpcC1vdmVycmlkZSc7XG5cbmV4cG9ydCBkZWZhdWx0IChyZXBsYWNlRGVmOiBTZXQ8YW55PiwgZGVmVmFsdWU6IE1hcDxhbnksIGFueT4pOiBWYWx1ZVByb3ZpZGVyID0+IHtcbiAgY29uc3Qgb3ZlcnJpZGVzOiBNYXA8VHlwZTxhbnk+LCBNZXRhZGF0YU92ZXJyaWRlPGFueT4+ID0gbmV3IE1hcCgpO1xuICBmb3IgKGNvbnN0IHByb3RvIG9mIG1hcFZhbHVlcyhuZ01vY2tzVW5pdmVyc2UudG91Y2hlcykpIHtcbiAgICBjb25zdCBzb3VyY2U6IGFueSA9IHByb3RvO1xuICAgIGNvbnN0IHZhbHVlID0gbmdNb2Nrc1VuaXZlcnNlLmJ1aWx0RGVjbGFyYXRpb25zLmdldChzb3VyY2UpIHx8IHNvdXJjZTtcbiAgICBpZiAoc2tpcE92ZXJyaWRlKHJlcGxhY2VEZWYsIGRlZlZhbHVlLCBzb3VyY2UsIHZhbHVlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZGVmID0gZ2V0T3ZlcnJpZGVEZWYoZ2V0T3ZlcnJpZGVNZXRhKHZhbHVlKSk7XG4gICAgaWYgKCFkZWYpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBvdmVycmlkZTogTWV0YWRhdGFPdmVycmlkZTxOZ01vZHVsZT4gPSB7XG4gICAgICBzZXQ6IGRlZixcbiAgICB9O1xuICAgIG92ZXJyaWRlcy5zZXQodmFsdWUsIG92ZXJyaWRlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogTkdfTU9DS1NfT1ZFUlJJREVTLFxuICAgIHVzZVZhbHVlOiBvdmVycmlkZXMsXG4gIH07XG59O1xuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5nLW1vY2tzLW92ZXJyaWRlcy10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9tb2NrLWJ1aWxkZXIvcHJvbWlzZS9jcmVhdGUtbmctbW9ja3Mtb3ZlcnJpZGVzLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSwwREFBc0Q7QUFDdEQsd0RBQThEO0FBRTlELG9FQUE2RDtBQUU3RCx1REFBZ0Q7QUFDaEQseURBQWtEO0FBQ2xELGlEQUEyQztBQUUzQyxtQkFBZSxVQUFDLFVBQW9CLEVBQUUsUUFBdUI7O0lBQzNELElBQU0sU0FBUyxHQUEwQyxJQUFJLEdBQUcsRUFBRSxDQUFDOztRQUNuRSxLQUFvQixJQUFBLEtBQUEsU0FBQSx3QkFBUyxDQUFDLDJCQUFlLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBbkQsSUFBTSxLQUFLLFdBQUE7WUFDZCxJQUFNLE1BQU0sR0FBUSxLQUFLLENBQUM7WUFDMUIsSUFBTSxLQUFLLEdBQUcsMkJBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUM7WUFDcEUsSUFBSSx1QkFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNyRCxTQUFTO2FBQ1Y7WUFFRCxJQUFNLEdBQUcsR0FBRywwQkFBYyxDQUFDLDJCQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLFNBQVM7YUFDVjtZQUNELElBQU0sUUFBUSxHQUErQjtnQkFDM0MsR0FBRyxFQUFFLEdBQUc7YUFDVCxDQUFDO1lBQ0YsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDaEM7Ozs7Ozs7OztJQUVELE9BQU87UUFDTCxPQUFPLEVBQUUsZ0NBQWtCO1FBQzNCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUM7QUFDSixDQUFDLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgVmFsdWVQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YWRhdGFPdmVycmlkZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IG1hcFZhbHVlcyB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb3JlLmhlbHBlcnMnO1xuaW1wb3J0IHsgTkdfTU9DS1NfT1ZFUlJJREVTIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvcmUudG9rZW5zJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgbmdNb2Nrc1VuaXZlcnNlIGZyb20gJy4uLy4uL2NvbW1vbi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmltcG9ydCBnZXRPdmVycmlkZURlZiBmcm9tICcuL2dldC1vdmVycmlkZS1kZWYnO1xuaW1wb3J0IGdldE92ZXJyaWRlTWV0YSBmcm9tICcuL2dldC1vdmVycmlkZS1tZXRhJztcbmltcG9ydCBza2lwT3ZlcnJpZGUgZnJvbSAnLi9za2lwLW92ZXJyaWRlJztcblxuZXhwb3J0IGRlZmF1bHQgKHJlcGxhY2VEZWY6IFNldDxhbnk+LCBkZWZWYWx1ZTogTWFwPGFueSwgYW55Pik6IFZhbHVlUHJvdmlkZXIgPT4ge1xuICBjb25zdCBvdmVycmlkZXM6IE1hcDxUeXBlPGFueT4sIE1ldGFkYXRhT3ZlcnJpZGU8YW55Pj4gPSBuZXcgTWFwKCk7XG4gIGZvciAoY29uc3QgcHJvdG8gb2YgbWFwVmFsdWVzKG5nTW9ja3NVbml2ZXJzZS50b3VjaGVzKSkge1xuICAgIGNvbnN0IHNvdXJjZTogYW55ID0gcHJvdG87XG4gICAgY29uc3QgdmFsdWUgPSBuZ01vY2tzVW5pdmVyc2UuZ2V0QnVpbGREZWNsYXJhdGlvbihzb3VyY2UpIHx8IHNvdXJjZTtcbiAgICBpZiAoc2tpcE92ZXJyaWRlKHJlcGxhY2VEZWYsIGRlZlZhbHVlLCBzb3VyY2UsIHZhbHVlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZGVmID0gZ2V0T3ZlcnJpZGVEZWYoZ2V0T3ZlcnJpZGVNZXRhKHZhbHVlKSk7XG4gICAgaWYgKCFkZWYpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBvdmVycmlkZTogTWV0YWRhdGFPdmVycmlkZTxOZ01vZHVsZT4gPSB7XG4gICAgICBzZXQ6IGRlZixcbiAgICB9O1xuICAgIG92ZXJyaWRlcy5zZXQodmFsdWUsIG92ZXJyaWRlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogTkdfTU9DS1NfT1ZFUlJJREVTLFxuICAgIHVzZVZhbHVlOiBvdmVycmlkZXMsXG4gIH07XG59O1xuIl19
@@ -22,7 +22,7 @@ exports.default = (function () {
22
22
  for (var _b = __values(core_helpers_1.mapValues(ng_mocks_universe_1.default.touches)), _c = _b.next(); !_c.done; _c = _b.next()) {
23
23
  var proto = _c.value;
24
24
  var source = proto;
25
- var value = ng_mocks_universe_1.default.builtDeclarations.get(source);
25
+ var value = ng_mocks_universe_1.default.getBuildDeclaration(source);
26
26
  // kept declarations should be based on their source.
27
27
  if (value === undefined) {
28
28
  value = source;
@@ -43,4 +43,4 @@ exports.default = (function () {
43
43
  useValue: touches,
44
44
  };
45
45
  });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5nLW1vY2tzLXRvdWNoZXMtdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbW9jay1idWlsZGVyL3Byb21pc2UvY3JlYXRlLW5nLW1vY2tzLXRvdWNoZXMtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUVBLDBEQUFzRDtBQUN0RCx3REFBNEQ7QUFDNUQsb0VBQTZEO0FBRTdELG1CQUFlOztJQUNiLDhDQUE4QztJQUM5QyxJQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDOztRQUMxQixLQUFvQixJQUFBLEtBQUEsU0FBQSx3QkFBUyxDQUFDLDJCQUFlLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBbkQsSUFBTSxLQUFLLFdBQUE7WUFDZCxJQUFNLE1BQU0sR0FBUSxLQUFLLENBQUM7WUFDMUIsSUFBSSxLQUFLLEdBQUcsMkJBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFMUQscURBQXFEO1lBQ3JELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDdkIsS0FBSyxHQUFHLE1BQU0sQ0FBQzthQUNoQjtZQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjs7Ozs7Ozs7O0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRSw4QkFBZ0I7UUFDekIsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQztBQUNKLENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgbWFwVmFsdWVzIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvcmUuaGVscGVycyc7XG5pbXBvcnQgeyBOR19NT0NLU19UT1VDSEVTIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvcmUudG9rZW5zJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuZXhwb3J0IGRlZmF1bHQgKCk6IFZhbHVlUHJvdmlkZXIgPT4ge1xuICAvLyBSZWRlZmluaW5nIHByb3ZpZGVycyBmb3Iga2VwdCBkZWNsYXJhdGlvbnMuXG4gIGNvbnN0IHRvdWNoZXMgPSBuZXcgU2V0KCk7XG4gIGZvciAoY29uc3QgcHJvdG8gb2YgbWFwVmFsdWVzKG5nTW9ja3NVbml2ZXJzZS50b3VjaGVzKSkge1xuICAgIGNvbnN0IHNvdXJjZTogYW55ID0gcHJvdG87XG4gICAgbGV0IHZhbHVlID0gbmdNb2Nrc1VuaXZlcnNlLmJ1aWx0RGVjbGFyYXRpb25zLmdldChzb3VyY2UpO1xuXG4gICAgLy8ga2VwdCBkZWNsYXJhdGlvbnMgc2hvdWxkIGJlIGJhc2VkIG9uIHRoZWlyIHNvdXJjZS5cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsdWUgPSBzb3VyY2U7XG4gICAgfVxuXG4gICAgdG91Y2hlcy5hZGQoc291cmNlKTtcbiAgICB0b3VjaGVzLmFkZCh2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IE5HX01PQ0tTX1RPVUNIRVMsXG4gICAgdXNlVmFsdWU6IHRvdWNoZXMsXG4gIH07XG59O1xuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5nLW1vY2tzLXRvdWNoZXMtdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbW9jay1idWlsZGVyL3Byb21pc2UvY3JlYXRlLW5nLW1vY2tzLXRvdWNoZXMtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUVBLDBEQUFzRDtBQUN0RCx3REFBNEQ7QUFDNUQsb0VBQTZEO0FBRTdELG1CQUFlOztJQUNiLDhDQUE4QztJQUM5QyxJQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDOztRQUMxQixLQUFvQixJQUFBLEtBQUEsU0FBQSx3QkFBUyxDQUFDLDJCQUFlLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBbkQsSUFBTSxLQUFLLFdBQUE7WUFDZCxJQUFNLE1BQU0sR0FBUSxLQUFLLENBQUM7WUFDMUIsSUFBSSxLQUFLLEdBQUcsMkJBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV4RCxxREFBcUQ7WUFDckQsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUN2QixLQUFLLEdBQUcsTUFBTSxDQUFDO2FBQ2hCO1lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BCOzs7Ozs7Ozs7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLDhCQUFnQjtRQUN6QixRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDO0FBQ0osQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsdWVQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBtYXBWYWx1ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vY29yZS5oZWxwZXJzJztcbmltcG9ydCB7IE5HX01PQ0tTX1RPVUNIRVMgfSBmcm9tICcuLi8uLi9jb21tb24vY29yZS50b2tlbnMnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi8uLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuXG5leHBvcnQgZGVmYXVsdCAoKTogVmFsdWVQcm92aWRlciA9PiB7XG4gIC8vIFJlZGVmaW5pbmcgcHJvdmlkZXJzIGZvciBrZXB0IGRlY2xhcmF0aW9ucy5cbiAgY29uc3QgdG91Y2hlcyA9IG5ldyBTZXQoKTtcbiAgZm9yIChjb25zdCBwcm90byBvZiBtYXBWYWx1ZXMobmdNb2Nrc1VuaXZlcnNlLnRvdWNoZXMpKSB7XG4gICAgY29uc3Qgc291cmNlOiBhbnkgPSBwcm90bztcbiAgICBsZXQgdmFsdWUgPSBuZ01vY2tzVW5pdmVyc2UuZ2V0QnVpbGREZWNsYXJhdGlvbihzb3VyY2UpO1xuXG4gICAgLy8ga2VwdCBkZWNsYXJhdGlvbnMgc2hvdWxkIGJlIGJhc2VkIG9uIHRoZWlyIHNvdXJjZS5cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsdWUgPSBzb3VyY2U7XG4gICAgfVxuXG4gICAgdG91Y2hlcy5hZGQoc291cmNlKTtcbiAgICB0b3VjaGVzLmFkZCh2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IE5HX01PQ0tTX1RPVUNIRVMsXG4gICAgdXNlVmFsdWU6IHRvdWNoZXMsXG4gIH07XG59O1xuIl19
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var core_reflect_1 = require("../../common/core.reflect");
3
+ var core_reflect_directive_resolve_1 = require("../../common/core.reflect.directive-resolve");
4
4
  var func_is_ng_def_1 = require("../../common/func.is-ng-def");
5
5
  exports.default = (function (value) {
6
6
  if (func_is_ng_def_1.isNgDef(value, 'c')) {
7
- return core_reflect_1.directiveResolver.resolve(value);
7
+ return core_reflect_directive_resolve_1.default(value);
8
8
  }
9
9
  if (func_is_ng_def_1.isNgDef(value, 'd')) {
10
- return core_reflect_1.directiveResolver.resolve(value);
10
+ return core_reflect_directive_resolve_1.default(value);
11
11
  }
12
12
  return undefined;
13
13
  });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW92ZXJyaWRlLW1ldGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbW9jay1idWlsZGVyL3Byb21pc2UvZ2V0LW92ZXJyaWRlLW1ldGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSwwREFBOEQ7QUFDOUQsOERBQXNEO0FBRXRELG1CQUFlLFVBQUMsS0FBVTtJQUN4QixJQUFJLHdCQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8sZ0NBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsSUFBSSx3QkFBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtRQUN2QixPQUFPLGdDQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN6QztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBkaXJlY3RpdmVSZXNvbHZlciB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb3JlLnJlZmxlY3QnO1xuaW1wb3J0IHsgaXNOZ0RlZiB9IGZyb20gJy4uLy4uL2NvbW1vbi9mdW5jLmlzLW5nLWRlZic7XG5cbmV4cG9ydCBkZWZhdWx0ICh2YWx1ZTogYW55KTogRGlyZWN0aXZlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKGlzTmdEZWYodmFsdWUsICdjJykpIHtcbiAgICByZXR1cm4gZGlyZWN0aXZlUmVzb2x2ZXIucmVzb2x2ZSh2YWx1ZSk7XG4gIH1cbiAgaWYgKGlzTmdEZWYodmFsdWUsICdkJykpIHtcbiAgICByZXR1cm4gZGlyZWN0aXZlUmVzb2x2ZXIucmVzb2x2ZSh2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW92ZXJyaWRlLW1ldGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbW9jay1idWlsZGVyL3Byb21pc2UvZ2V0LW92ZXJyaWRlLW1ldGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSw4RkFBc0Y7QUFDdEYsOERBQXNEO0FBRXRELG1CQUFlLFVBQUMsS0FBVTtJQUN4QixJQUFJLHdCQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8sd0NBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDM0M7SUFDRCxJQUFJLHdCQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8sd0NBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDM0M7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IGNvcmVSZWZsZWN0RGlyZWN0aXZlUmVzb2x2ZSBmcm9tICcuLi8uLi9jb21tb24vY29yZS5yZWZsZWN0LmRpcmVjdGl2ZS1yZXNvbHZlJztcbmltcG9ydCB7IGlzTmdEZWYgfSBmcm9tICcuLi8uLi9jb21tb24vZnVuYy5pcy1uZy1kZWYnO1xuXG5leHBvcnQgZGVmYXVsdCAodmFsdWU6IGFueSk6IERpcmVjdGl2ZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChpc05nRGVmKHZhbHVlLCAnYycpKSB7XG4gICAgcmV0dXJuIGNvcmVSZWZsZWN0RGlyZWN0aXZlUmVzb2x2ZSh2YWx1ZSk7XG4gIH1cbiAgaWYgKGlzTmdEZWYodmFsdWUsICdkJykpIHtcbiAgICByZXR1cm4gY29yZVJlZmxlY3REaXJlY3RpdmVSZXNvbHZlKHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuIl19
@@ -11,7 +11,7 @@ var __values = (this && this.__values) || function(o) {
11
11
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- var core_reflect_1 = require("../../common/core.reflect");
14
+ var core_reflect_jit_1 = require("../../common/core.reflect.jit");
15
15
  var core_tokens_1 = require("../../common/core.tokens");
16
16
  var ng_mocks_universe_1 = require("../../common/ng-mocks-universe");
17
17
  var add_def_to_root_provider_parameters_1 = require("./add-def-to-root-provider-parameters");
@@ -31,7 +31,7 @@ exports.default = (function (mockDef) {
31
31
  var def = bucket_1_1.value;
32
32
  add_def_to_root_provider_parameters_1.default(parameters, mockDef, def);
33
33
  try {
34
- for (var _e = (e_3 = void 0, __values(core_reflect_1.jitReflector.parameters(def))), _f = _e.next(); !_f.done; _f = _e.next()) {
34
+ for (var _e = (e_3 = void 0, __values(core_reflect_jit_1.default().parameters(def))), _f = _e.next(); !_f.done; _f = _e.next()) {
35
35
  var decorators = _f.value;
36
36
  var provide = extract_dep_1.default(decorators);
37
37
  if (skip_root_provider_dependency_1.default(provide)) {
@@ -73,4 +73,4 @@ exports.default = (function (mockDef) {
73
73
  }
74
74
  return parameters;
75
75
  });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXJvb3QtcHJvdmlkZXItcGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9tb2NrLWJ1aWxkZXIvcHJvbWlzZS9nZXQtcm9vdC1wcm92aWRlci1wYXJhbWV0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBeUQ7QUFDekQsd0RBQW1FO0FBQ25FLG9FQUE2RDtBQUU3RCw2RkFBbUY7QUFDbkYsbUZBQTJFO0FBQzNFLDZDQUF1QztBQUN2QyxxRUFBNkQ7QUFDN0QsaUZBQXlFO0FBR3pFLG1CQUFlLFVBQUMsT0FBK0I7O0lBQzdDLElBQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBQSxLQUF1QixpQ0FBb0IsRUFBRSxFQUEzQyxPQUFPLGFBQUEsRUFBRSxPQUFPLGFBQTJCLENBQUM7O1FBRXBELEtBQXFCLElBQUEsWUFBQSxTQUFBLE9BQU8sQ0FBQSxnQ0FBQSxxREFBRTtZQUF6QixJQUFNLE1BQU0sb0JBQUE7O2dCQUNmLEtBQWtCLElBQUEsMEJBQUEsU0FBQSxNQUFNLENBQUEsQ0FBQSw4QkFBQSxrREFBRTtvQkFBckIsSUFBTSxHQUFHLG1CQUFBO29CQUNaLDZDQUE4QixDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7O3dCQUV6RCxLQUF5QixJQUFBLG9CQUFBLFNBQUEsMkJBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxnQkFBQSw0QkFBRTs0QkFBbEQsSUFBTSxVQUFVLFdBQUE7NEJBQ25CLElBQU0sT0FBTyxHQUFRLHFCQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7NEJBQzVDLElBQUksdUNBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0NBQ3ZDLFNBQVM7NkJBQ1Y7NEJBQ0Qsd0NBQTJCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQzs0QkFDdEQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUF1QixDQUFDLElBQUksQ0FBQywyQkFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0NBQ25HLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7NkJBQ3pCO2lDQUFNO2dDQUNMLDJCQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzs2QkFDNUQ7eUJBQ0Y7Ozs7Ozs7OztpQkFDRjs7Ozs7Ozs7O1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGppdFJlZmxlY3RvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb3JlLnJlZmxlY3QnO1xuaW1wb3J0IHsgTkdfTU9DS1NfUk9PVF9QUk9WSURFUlMgfSBmcm9tICcuLi8uLi9jb21tb24vY29yZS50b2tlbnMnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi8uLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuXG5pbXBvcnQgYWRkRGVmVG9Sb290UHJvdmlkZXJQYXJhbWV0ZXJzIGZyb20gJy4vYWRkLWRlZi10by1yb290LXByb3ZpZGVyLXBhcmFtZXRlcnMnO1xuaW1wb3J0IGNoZWNrUm9vdFByb3ZpZGVyRGVwZW5kZW5jeSBmcm9tICcuL2NoZWNrLXJvb3QtcHJvdmlkZXItZGVwZW5kZW5jeSc7XG5pbXBvcnQgZXh0cmFjdERlcCBmcm9tICcuL2V4dHJhY3QtZGVwJztcbmltcG9ydCBnZXRSb290UHJvdmlkZXJzRGF0YSBmcm9tICcuL2dldC1yb290LXByb3ZpZGVycy1kYXRhJztcbmltcG9ydCBza2lwUm9vdFByb3ZpZGVyRGVwZW5kZW5jeSBmcm9tICcuL3NraXAtcm9vdC1wcm92aWRlci1kZXBlbmRlbmN5JztcbmltcG9ydCB7IEJ1aWxkZXJEYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IChtb2NrRGVmOiBCdWlsZGVyRGF0YVsnbW9ja0RlZiddKTogU2V0PGFueT4gPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJzID0gbmV3IFNldCgpO1xuICBjb25zdCB7IGJ1Y2tldHMsIHRvdWNoZWQgfSA9IGdldFJvb3RQcm92aWRlcnNEYXRhKCk7XG5cbiAgZm9yIChjb25zdCBidWNrZXQgb2YgYnVja2V0cykge1xuICAgIGZvciAoY29uc3QgZGVmIG9mIGJ1Y2tldCkge1xuICAgICAgYWRkRGVmVG9Sb290UHJvdmlkZXJQYXJhbWV0ZXJzKHBhcmFtZXRlcnMsIG1vY2tEZWYsIGRlZik7XG5cbiAgICAgIGZvciAoY29uc3QgZGVjb3JhdG9ycyBvZiBqaXRSZWZsZWN0b3IucGFyYW1ldGVycyhkZWYpKSB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGU6IGFueSA9IGV4dHJhY3REZXAoZGVjb3JhdG9ycyk7XG4gICAgICAgIGlmIChza2lwUm9vdFByb3ZpZGVyRGVwZW5kZW5jeShwcm92aWRlKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrUm9vdFByb3ZpZGVyRGVwZW5kZW5jeShwcm92aWRlLCB0b3VjaGVkLCBidWNrZXQpO1xuICAgICAgICBpZiAobW9ja0RlZi5oYXMoTkdfTU9DS1NfUk9PVF9QUk9WSURFUlMpIHx8ICFuZ01vY2tzVW5pdmVyc2UuY29uZmlnLmdldCgnbmdNb2Nrc0RlcHNTa2lwJykuaGFzKGRlZikpIHtcbiAgICAgICAgICBwYXJhbWV0ZXJzLmFkZChwcm92aWRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZ01vY2tzVW5pdmVyc2UuY29uZmlnLmdldCgnbmdNb2Nrc0RlcHNTa2lwJykuYWRkKHByb3ZpZGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcmFtZXRlcnM7XG59O1xuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXJvb3QtcHJvdmlkZXItcGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9tb2NrLWJ1aWxkZXIvcHJvbWlzZS9nZXQtcm9vdC1wcm92aWRlci1wYXJhbWV0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxrRUFBMkQ7QUFDM0Qsd0RBQW1FO0FBQ25FLG9FQUE2RDtBQUU3RCw2RkFBbUY7QUFDbkYsbUZBQTJFO0FBQzNFLDZDQUF1QztBQUN2QyxxRUFBNkQ7QUFDN0QsaUZBQXlFO0FBR3pFLG1CQUFlLFVBQUMsT0FBK0I7O0lBQzdDLElBQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBQSxLQUF1QixpQ0FBb0IsRUFBRSxFQUEzQyxPQUFPLGFBQUEsRUFBRSxPQUFPLGFBQTJCLENBQUM7O1FBRXBELEtBQXFCLElBQUEsWUFBQSxTQUFBLE9BQU8sQ0FBQSxnQ0FBQSxxREFBRTtZQUF6QixJQUFNLE1BQU0sb0JBQUE7O2dCQUNmLEtBQWtCLElBQUEsMEJBQUEsU0FBQSxNQUFNLENBQUEsQ0FBQSw4QkFBQSxrREFBRTtvQkFBckIsSUFBTSxHQUFHLG1CQUFBO29CQUNaLDZDQUE4QixDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7O3dCQUV6RCxLQUF5QixJQUFBLG9CQUFBLFNBQUEsMEJBQWMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFBLGdCQUFBLDRCQUFFOzRCQUF0RCxJQUFNLFVBQVUsV0FBQTs0QkFDbkIsSUFBTSxPQUFPLEdBQVEscUJBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQzs0QkFDNUMsSUFBSSx1Q0FBMEIsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQ0FDdkMsU0FBUzs2QkFDVjs0QkFDRCx3Q0FBMkIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDOzRCQUN0RCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXVCLENBQUMsSUFBSSxDQUFDLDJCQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQ0FDbkcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzs2QkFDekI7aUNBQU07Z0NBQ0wsMkJBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDOzZCQUM1RDt5QkFDRjs7Ozs7Ozs7O2lCQUNGOzs7Ozs7Ozs7U0FDRjs7Ozs7Ozs7O0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmVSZWZsZWN0Sml0IGZyb20gJy4uLy4uL2NvbW1vbi9jb3JlLnJlZmxlY3Quaml0JztcbmltcG9ydCB7IE5HX01PQ0tTX1JPT1RfUFJPVklERVJTIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvcmUudG9rZW5zJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuaW1wb3J0IGFkZERlZlRvUm9vdFByb3ZpZGVyUGFyYW1ldGVycyBmcm9tICcuL2FkZC1kZWYtdG8tcm9vdC1wcm92aWRlci1wYXJhbWV0ZXJzJztcbmltcG9ydCBjaGVja1Jvb3RQcm92aWRlckRlcGVuZGVuY3kgZnJvbSAnLi9jaGVjay1yb290LXByb3ZpZGVyLWRlcGVuZGVuY3knO1xuaW1wb3J0IGV4dHJhY3REZXAgZnJvbSAnLi9leHRyYWN0LWRlcCc7XG5pbXBvcnQgZ2V0Um9vdFByb3ZpZGVyc0RhdGEgZnJvbSAnLi9nZXQtcm9vdC1wcm92aWRlcnMtZGF0YSc7XG5pbXBvcnQgc2tpcFJvb3RQcm92aWRlckRlcGVuZGVuY3kgZnJvbSAnLi9za2lwLXJvb3QtcHJvdmlkZXItZGVwZW5kZW5jeSc7XG5pbXBvcnQgeyBCdWlsZGVyRGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCAobW9ja0RlZjogQnVpbGRlckRhdGFbJ21vY2tEZWYnXSk6IFNldDxhbnk+ID0+IHtcbiAgY29uc3QgcGFyYW1ldGVycyA9IG5ldyBTZXQoKTtcbiAgY29uc3QgeyBidWNrZXRzLCB0b3VjaGVkIH0gPSBnZXRSb290UHJvdmlkZXJzRGF0YSgpO1xuXG4gIGZvciAoY29uc3QgYnVja2V0IG9mIGJ1Y2tldHMpIHtcbiAgICBmb3IgKGNvbnN0IGRlZiBvZiBidWNrZXQpIHtcbiAgICAgIGFkZERlZlRvUm9vdFByb3ZpZGVyUGFyYW1ldGVycyhwYXJhbWV0ZXJzLCBtb2NrRGVmLCBkZWYpO1xuXG4gICAgICBmb3IgKGNvbnN0IGRlY29yYXRvcnMgb2YgY29yZVJlZmxlY3RKaXQoKS5wYXJhbWV0ZXJzKGRlZikpIHtcbiAgICAgICAgY29uc3QgcHJvdmlkZTogYW55ID0gZXh0cmFjdERlcChkZWNvcmF0b3JzKTtcbiAgICAgICAgaWYgKHNraXBSb290UHJvdmlkZXJEZXBlbmRlbmN5KHByb3ZpZGUpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY2hlY2tSb290UHJvdmlkZXJEZXBlbmRlbmN5KHByb3ZpZGUsIHRvdWNoZWQsIGJ1Y2tldCk7XG4gICAgICAgIGlmIChtb2NrRGVmLmhhcyhOR19NT0NLU19ST09UX1BST1ZJREVSUykgfHwgIW5nTW9ja3NVbml2ZXJzZS5jb25maWcuZ2V0KCduZ01vY2tzRGVwc1NraXAnKS5oYXMoZGVmKSkge1xuICAgICAgICAgIHBhcmFtZXRlcnMuYWRkKHByb3ZpZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5nTW9ja3NVbml2ZXJzZS5jb25maWcuZ2V0KCduZ01vY2tzRGVwc1NraXAnKS5hZGQocHJvdmlkZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFyYW1ldGVycztcbn07XG4iXX0=
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var ng_mocks_universe_1 = require("../../common/ng-mocks-universe");
4
4
  exports.default = (function (def, defProviders) {
5
- var loModule = ng_mocks_universe_1.default.builtDeclarations.get(def);
5
+ var loModule = ng_mocks_universe_1.default.getBuildDeclaration(def);
6
6
  var loProviders = defProviders.has(def) ? defProviders.get(def) : undefined;
7
7
  return loProviders
8
8
  ? {
@@ -11,4 +11,4 @@ exports.default = (function (def, defProviders) {
11
11
  }
12
12
  : loModule;
13
13
  });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbW9jay1idWlsZGVyL3Byb21pc2UvaW5pdC1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxvRUFBNkQ7QUFJN0QsbUJBQWUsVUFBQyxHQUFjLEVBQUUsWUFBeUM7SUFDdkUsSUFBTSxRQUFRLEdBQUcsMkJBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUQsSUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRTlFLE9BQU8sV0FBVztRQUNoQixDQUFDLENBQUM7WUFDRSxRQUFRLEVBQUUsUUFBUTtZQUNsQixTQUFTLEVBQUUsV0FBVztTQUN2QjtRQUNILENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDZixDQUFDLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgbmdNb2Nrc1VuaXZlcnNlIGZyb20gJy4uLy4uL2NvbW1vbi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmltcG9ydCB7IEJ1aWxkZXJEYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IChkZWY6IFR5cGU8YW55PiwgZGVmUHJvdmlkZXJzOiBCdWlsZGVyRGF0YVsnZGVmUHJvdmlkZXJzJ10pOiBUeXBlPGFueT4gfCBNb2R1bGVXaXRoUHJvdmlkZXJzPGFueT4gPT4ge1xuICBjb25zdCBsb01vZHVsZSA9IG5nTW9ja3NVbml2ZXJzZS5idWlsdERlY2xhcmF0aW9ucy5nZXQoZGVmKTtcbiAgY29uc3QgbG9Qcm92aWRlcnMgPSBkZWZQcm92aWRlcnMuaGFzKGRlZikgPyBkZWZQcm92aWRlcnMuZ2V0KGRlZikgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIGxvUHJvdmlkZXJzXG4gICAgPyB7XG4gICAgICAgIG5nTW9kdWxlOiBsb01vZHVsZSxcbiAgICAgICAgcHJvdmlkZXJzOiBsb1Byb3ZpZGVycyxcbiAgICAgIH1cbiAgICA6IGxvTW9kdWxlO1xufTtcbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbW9jay1idWlsZGVyL3Byb21pc2UvaW5pdC1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxvRUFBNkQ7QUFJN0QsbUJBQWUsVUFBQyxHQUFjLEVBQUUsWUFBeUM7SUFDdkUsSUFBTSxRQUFRLEdBQUcsMkJBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRCxJQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFOUUsT0FBTyxXQUFXO1FBQ2hCLENBQUMsQ0FBQztZQUNFLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUNmLENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb3JlLnR5cGVzJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuaW1wb3J0IHsgQnVpbGRlckRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgKGRlZjogVHlwZTxhbnk+LCBkZWZQcm92aWRlcnM6IEJ1aWxkZXJEYXRhWydkZWZQcm92aWRlcnMnXSk6IFR5cGU8YW55PiB8IE1vZHVsZVdpdGhQcm92aWRlcnM8YW55PiA9PiB7XG4gIGNvbnN0IGxvTW9kdWxlID0gbmdNb2Nrc1VuaXZlcnNlLmdldEJ1aWxkRGVjbGFyYXRpb24oZGVmKTtcbiAgY29uc3QgbG9Qcm92aWRlcnMgPSBkZWZQcm92aWRlcnMuaGFzKGRlZikgPyBkZWZQcm92aWRlcnMuZ2V0KGRlZikgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIGxvUHJvdmlkZXJzXG4gICAgPyB7XG4gICAgICAgIG5nTW9kdWxlOiBsb01vZHVsZSxcbiAgICAgICAgcHJvdmlkZXJzOiBsb1Byb3ZpZGVycyxcbiAgICAgIH1cbiAgICA6IGxvTW9kdWxlO1xufTtcbiJdfQ==
@@ -51,7 +51,7 @@ exports.default = (function (_a, defProviders) {
51
51
  imports.push(init_module_1.default(def, defProviders));
52
52
  }
53
53
  else {
54
- declarations.push(ng_mocks_universe_1.default.builtDeclarations.get(def));
54
+ declarations.push(ng_mocks_universe_1.default.getBuildDeclaration(def));
55
55
  }
56
56
  ng_mocks_universe_1.default.touches.add(def);
57
57
  }
@@ -69,4 +69,4 @@ exports.default = (function (_a, defProviders) {
69
69
  providers: providers,
70
70
  };
71
71
  });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1uZy1tb2R1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL21vY2stYnVpbGRlci9wcm9taXNlL2luaXQtbmctbW9kdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBc0Q7QUFDdEQsOERBQXNEO0FBQ3RELG9FQUE2RDtBQUU3RCw2Q0FBdUM7QUFDdkMsdURBQWdEO0FBR2hELG1CQUFlLFVBQUMsRUFBd0QsRUFBRSxZQUEyQjs7UUFBbkYsU0FBUyxlQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsVUFBVSxnQkFBQTtJQUNqRCxJQUFBLEtBQStDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBN0YsT0FBTyxhQUFBLEVBQUUsWUFBWSxrQkFBQSxFQUFFLFNBQVMsZUFBNkQsQ0FBQzs7UUFFdEcsNkJBQTZCO1FBQzdCLEtBQWtCLElBQUEsS0FBQSxrQkFBSSx3QkFBUyxDQUFDLE9BQU8sQ0FBQyxFQUFLLHdCQUFTLENBQUMsT0FBTyxDQUFDLEVBQUssd0JBQVMsQ0FBQyxVQUFVLENBQUMsRUFBQyxnQkFBQSw0QkFBRTtZQUF2RixJQUFNLEdBQUcsV0FBQTtZQUNaLElBQUksMEJBQWMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ2xDLFNBQVM7YUFDVjtZQUVELElBQUksd0JBQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQVUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUM3QztpQkFBTTtnQkFDTCxZQUFZLENBQUMsSUFBSSxDQUFDLDJCQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDL0Q7WUFFRCwyQkFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEM7Ozs7Ozs7OztJQUVELE9BQU87UUFDTCxZQUFZLGNBQUE7UUFDWixPQUFPLFNBQUE7UUFDUCxTQUFTLFdBQUE7S0FDVixDQUFDO0FBQ0osQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFwVmFsdWVzIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvcmUuaGVscGVycyc7XG5pbXBvcnQgeyBpc05nRGVmIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Z1bmMuaXMtbmctZGVmJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcblxuaW1wb3J0IGluaXRNb2R1bGUgZnJvbSAnLi9pbml0LW1vZHVsZSc7XG5pbXBvcnQgc2tpcEluaXRNb2R1bGUgZnJvbSAnLi9za2lwLWluaXQtbW9kdWxlJztcbmltcG9ydCB7IEJ1aWxkZXJEYXRhLCBOZ01ldGEgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgKHsgY29uZmlnRGVmLCBrZWVwRGVmLCBtb2NrRGVmLCByZXBsYWNlRGVmIH06IEJ1aWxkZXJEYXRhLCBkZWZQcm92aWRlcnM6IE1hcDxhbnksIGFueT4pOiBOZ01ldGEgPT4ge1xuICBjb25zdCB7IGltcG9ydHMsIGRlY2xhcmF0aW9ucywgcHJvdmlkZXJzIH06IE5nTWV0YSA9IHsgaW1wb3J0czogW10sIGRlY2xhcmF0aW9uczogW10sIHByb3ZpZGVyczogW10gfTtcblxuICAvLyBBZGRpbmcgc3VpdGFibGUgbGVmdG92ZXJzLlxuICBmb3IgKGNvbnN0IGRlZiBvZiBbLi4ubWFwVmFsdWVzKG1vY2tEZWYpLCAuLi5tYXBWYWx1ZXMoa2VlcERlZiksIC4uLm1hcFZhbHVlcyhyZXBsYWNlRGVmKV0pIHtcbiAgICBpZiAoc2tpcEluaXRNb2R1bGUoZGVmLCBjb25maWdEZWYpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNOZ0RlZihkZWYsICdtJykpIHtcbiAgICAgIGltcG9ydHMucHVzaChpbml0TW9kdWxlKGRlZiwgZGVmUHJvdmlkZXJzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY2xhcmF0aW9ucy5wdXNoKG5nTW9ja3NVbml2ZXJzZS5idWlsdERlY2xhcmF0aW9ucy5nZXQoZGVmKSk7XG4gICAgfVxuXG4gICAgbmdNb2Nrc1VuaXZlcnNlLnRvdWNoZXMuYWRkKGRlZik7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRlY2xhcmF0aW9ucyxcbiAgICBpbXBvcnRzLFxuICAgIHByb3ZpZGVycyxcbiAgfTtcbn07XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1uZy1tb2R1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL21vY2stYnVpbGRlci9wcm9taXNlL2luaXQtbmctbW9kdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBc0Q7QUFDdEQsOERBQXNEO0FBQ3RELG9FQUE2RDtBQUU3RCw2Q0FBdUM7QUFDdkMsdURBQWdEO0FBR2hELG1CQUFlLFVBQUMsRUFBd0QsRUFBRSxZQUEyQjs7UUFBbkYsU0FBUyxlQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsVUFBVSxnQkFBQTtJQUNqRCxJQUFBLEtBQStDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBN0YsT0FBTyxhQUFBLEVBQUUsWUFBWSxrQkFBQSxFQUFFLFNBQVMsZUFBNkQsQ0FBQzs7UUFFdEcsNkJBQTZCO1FBQzdCLEtBQWtCLElBQUEsS0FBQSxrQkFBSSx3QkFBUyxDQUFDLE9BQU8sQ0FBQyxFQUFLLHdCQUFTLENBQUMsT0FBTyxDQUFDLEVBQUssd0JBQVMsQ0FBQyxVQUFVLENBQUMsRUFBQyxnQkFBQSw0QkFBRTtZQUF2RixJQUFNLEdBQUcsV0FBQTtZQUNaLElBQUksMEJBQWMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ2xDLFNBQVM7YUFDVjtZQUVELElBQUksd0JBQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQVUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUM3QztpQkFBTTtnQkFDTCxZQUFZLENBQUMsSUFBSSxDQUFDLDJCQUFlLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM3RDtZQUVELDJCQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsQzs7Ozs7Ozs7O0lBRUQsT0FBTztRQUNMLFlBQVksY0FBQTtRQUNaLE9BQU8sU0FBQTtRQUNQLFNBQVMsV0FBQTtLQUNWLENBQUM7QUFDSixDQUFDLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXBWYWx1ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vY29yZS5oZWxwZXJzJztcbmltcG9ydCB7IGlzTmdEZWYgfSBmcm9tICcuLi8uLi9jb21tb24vZnVuYy5pcy1uZy1kZWYnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi8uLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuXG5pbXBvcnQgaW5pdE1vZHVsZSBmcm9tICcuL2luaXQtbW9kdWxlJztcbmltcG9ydCBza2lwSW5pdE1vZHVsZSBmcm9tICcuL3NraXAtaW5pdC1tb2R1bGUnO1xuaW1wb3J0IHsgQnVpbGRlckRhdGEsIE5nTWV0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCAoeyBjb25maWdEZWYsIGtlZXBEZWYsIG1vY2tEZWYsIHJlcGxhY2VEZWYgfTogQnVpbGRlckRhdGEsIGRlZlByb3ZpZGVyczogTWFwPGFueSwgYW55Pik6IE5nTWV0YSA9PiB7XG4gIGNvbnN0IHsgaW1wb3J0cywgZGVjbGFyYXRpb25zLCBwcm92aWRlcnMgfTogTmdNZXRhID0geyBpbXBvcnRzOiBbXSwgZGVjbGFyYXRpb25zOiBbXSwgcHJvdmlkZXJzOiBbXSB9O1xuXG4gIC8vIEFkZGluZyBzdWl0YWJsZSBsZWZ0b3ZlcnMuXG4gIGZvciAoY29uc3QgZGVmIG9mIFsuLi5tYXBWYWx1ZXMobW9ja0RlZiksIC4uLm1hcFZhbHVlcyhrZWVwRGVmKSwgLi4ubWFwVmFsdWVzKHJlcGxhY2VEZWYpXSkge1xuICAgIGlmIChza2lwSW5pdE1vZHVsZShkZWYsIGNvbmZpZ0RlZikpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChpc05nRGVmKGRlZiwgJ20nKSkge1xuICAgICAgaW1wb3J0cy5wdXNoKGluaXRNb2R1bGUoZGVmLCBkZWZQcm92aWRlcnMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjbGFyYXRpb25zLnB1c2gobmdNb2Nrc1VuaXZlcnNlLmdldEJ1aWxkRGVjbGFyYXRpb24oZGVmKSk7XG4gICAgfVxuXG4gICAgbmdNb2Nrc1VuaXZlcnNlLnRvdWNoZXMuYWRkKGRlZik7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRlY2xhcmF0aW9ucyxcbiAgICBpbXBvcnRzLFxuICAgIHByb3ZpZGVycyxcbiAgfTtcbn07XG4iXX0=
@@ -2,6 +2,6 @@ import { Type } from '../common/core.types';
2
2
  import { MockedComponent } from './types';
3
3
  export declare function MockComponents(...components: Array<Type<any>>): Array<Type<MockedComponent<any>>>;
4
4
  /**
5
- * @see https://github.com/ike18t/ng-mocks#how-to-mock-a-component
5
+ * @see https://github.com/ike18t/ng-mocks#how-to-mock-components
6
6
  */
7
7
  export declare function MockComponent<TComponent>(component: Type<TComponent>): Type<MockedComponent<TComponent>>;
@@ -38,6 +38,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.MockComponent = exports.MockComponents = void 0;
39
39
  var core_1 = require("@angular/core");
40
40
  var testing_1 = require("@angular/core/testing");
41
+ var core_helpers_1 = require("../common/core.helpers");
41
42
  var core_reflect_directive_resolve_1 = require("../common/core.reflect.directive-resolve");
42
43
  var func_get_mocked_ng_def_of_1 = require("../common/func.get-mocked-ng-def-of");
43
44
  var func_is_mock_1 = require("../common/func.is-mock");
@@ -116,6 +117,9 @@ var ComponentMockBase = /** @class */ (function (_super) {
116
117
  };
117
118
  return ComponentMockBase;
118
119
  }(mock_control_value_accessor_1.LegacyControlValueAccessor));
120
+ Object.defineProperty(ComponentMockBase, 'parameters', {
121
+ value: [[core_1.ChangeDetectorRef], [core_1.Injector]],
122
+ });
119
123
  var viewChildArgs = { read: core_1.ViewContainerRef, static: false };
120
124
  var viewChildTemplate = function (selector) {
121
125
  return "<div *ngIf=\"mockRender_" + selector + "\" data-key=\"" + selector + "\"><ng-template #__" + selector + "></ng-template></div>";
@@ -133,7 +137,7 @@ var generateTemplate = function (queries) {
133
137
  var key = _c.value;
134
138
  var query = queries[key];
135
139
  if (query.isViewQuery || typeof query.selector !== 'string') {
136
- continue; // ignoring all internal @ViewChild, Type based selector doesn't work properly anyway.
140
+ continue; // ignoring all internal @ViewChild, Type based selector does not work properly anyway.
137
141
  }
138
142
  viewChildRefs.set(query.selector, key);
139
143
  queries["__mockView_" + key] = new core_1.ViewChild("__" + query.selector, viewChildArgs);
@@ -152,18 +156,6 @@ var generateTemplate = function (queries) {
152
156
  viewChildRefs: viewChildRefs,
153
157
  };
154
158
  };
155
- var createMockClass = function () {
156
- var ComponentMock = /** @class */ (function (_super) {
157
- __extends(ComponentMock, _super);
158
- // istanbul ignore next
159
- function ComponentMock(changeDetector, injector) {
160
- return _super.call(this, changeDetector, injector) || this;
161
- }
162
- return ComponentMock;
163
- }(ComponentMockBase));
164
- ComponentMock.parameters = [core_1.ChangeDetectorRef, core_1.Injector];
165
- return ComponentMock;
166
- };
167
159
  var decorateClass = function (component, mock) {
168
160
  var meta = core_reflect_directive_resolve_1.default(component);
169
161
  var exportAs = meta.exportAs, inputs = meta.inputs, outputs = meta.outputs, queries = meta.queries, selector = meta.selector, providers = meta.providers;
@@ -181,10 +173,10 @@ function MockComponents() {
181
173
  }
182
174
  exports.MockComponents = MockComponents;
183
175
  /**
184
- * @see https://github.com/ike18t/ng-mocks#how-to-mock-a-component
176
+ * @see https://github.com/ike18t/ng-mocks#how-to-mock-components
185
177
  */
186
178
  function MockComponent(component) {
187
- // We are inside of an 'it'. It's fine to to return a mock copy.
179
+ // We are inside of an 'it'. It is fine to to return a mock copy.
188
180
  if (testing_1.getTestBed()._instantiated) {
189
181
  try {
190
182
  return func_get_mocked_ng_def_of_1.getMockedNgDefOf(component, 'c');
@@ -196,7 +188,7 @@ function MockComponent(component) {
196
188
  if (ng_mocks_universe_1.default.flags.has('cacheComponent') && ng_mocks_universe_1.default.cacheDeclarations.has(component)) {
197
189
  return ng_mocks_universe_1.default.cacheDeclarations.get(component);
198
190
  }
199
- var mock = createMockClass();
191
+ var mock = core_helpers_1.extendClass(ComponentMockBase);
200
192
  decorateClass(component, mock);
201
193
  // istanbul ignore else
202
194
  if (ng_mocks_universe_1.default.flags.has('cacheComponent')) {
@@ -205,4 +197,4 @@ function MockComponent(component) {
205
197
  return mock;
206
198
  }
207
199
  exports.MockComponent = MockComponent;
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1jb21wb25lbnQvbW9jay1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FTdUI7QUFDdkIsaURBQW1EO0FBRW5ELDJGQUFtRjtBQUVuRixpRkFBdUU7QUFDdkUsdURBQWdEO0FBRWhELHFGQUFtRjtBQUNuRixpRUFBMEQ7QUFDMUQscUVBQStEO0FBSS9ELElBQU0sU0FBUyxHQUFHLFVBQUMsUUFBNkMsRUFBRSxjQUFpQztJQUNqRyx1QkFBdUI7SUFDdkIsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVqRSx3RUFBd0U7SUFDeEUsUUFBUSxDQUFDLFFBQVEsR0FBRyxVQUFDLG9CQUE0QixFQUFFLFNBQWUsRUFBRSxTQUFrQztRQUNwRyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0MsSUFBSSxXQUE2QixDQUFDO1FBQ2xDLElBQUksYUFBK0IsQ0FBQztRQUNwQyxJQUFJLEdBQUcsRUFBRTtZQUNQLFFBQVEsQ0FBQyxnQkFBYyxvQkFBc0IsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUN0RCxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDL0IsYUFBYSxHQUFHLFFBQVEsQ0FBQyxnQkFBYyxHQUFLLENBQUMsQ0FBQztZQUM5QyxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLElBQUksYUFBYSxJQUFJLFdBQVcsRUFBRTtnQkFDaEMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QixhQUFhLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLHNCQUFLLFNBQVMsS0FBRSxTQUFTLFdBQUEs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LENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ25HLE9BQU8sMkJBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDekQ7SUFFRCxJQUFNLElBQUksR0FBRyxlQUFlLEVBQUUsQ0FBQztJQUMvQixhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRS9CLHVCQUF1QjtJQUN2QixJQUFJLDJCQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQy9DLDJCQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUN4RDtJQUVELE9BQU8sSUFBVyxDQUFDO0FBQ3JCLENBQUM7QUF0QkQsc0NBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIFF1ZXJ5LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgY29yZVJlZmxlY3REaXJlY3RpdmVSZXNvbHZlIGZyb20gJy4uL2NvbW1vbi9jb3JlLnJlZmxlY3QuZGlyZWN0aXZlLXJlc29sdmUnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IGdldE1vY2tlZE5nRGVmT2YgfSBmcm9tICcuLi9jb21tb24vZnVuYy5nZXQtbW9ja2VkLW5nLWRlZi1vZic7XG5pbXBvcnQgZnVuY0lzTW9jayBmcm9tICcuLi9jb21tb24vZnVuYy5pcy1tb2NrJztcbmltcG9ydCB7IE1vY2tDb25maWcgfSBmcm9tICcuLi9jb21tb24vbW9jayc7XG5pbXBvcnQgeyBMZWdhY3lDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uL2NvbW1vbi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuaW1wb3J0IGRlY29yYXRlRGVjbGFyYXRpb24gZnJvbSAnLi4vbW9jay9kZWNvcmF0ZS1kZWNsYXJhdGlvbic7XG5cbmltcG9ydCB7IE1vY2tlZENvbXBvbmVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBtaXhSZW5kZXIgPSAoaW5zdGFuY2U6IE1vY2tDb25maWcgJiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+LCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkID0+IHtcbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgY29uc3QgcmVmcyA9IGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy52aWV3Q2hpbGRSZWZzIHx8IG5ldyBNYXAoKTtcblxuICAvLyBQcm92aWRpbmcgYSBtZXRob2QgdG8gcmVuZGVyIGFueSBAQ29udGVudENoaWxkIGJhc2VkIG9uIGl0cyBzZWxlY3Rvci5cbiAgaW5zdGFuY2UuX19yZW5kZXIgPSAoY29udGVudENoaWxkU2VsZWN0b3I6IHN0cmluZywgJGltcGxpY2l0PzogYW55LCB2YXJpYWJsZXM/OiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+KSA9PiB7XG4gICAgY29uc3Qga2V5ID0gcmVmcy5nZXQoY29udGVudENoaWxkU2VsZWN0b3IpO1xuICAgIGxldCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBsZXQgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcbiAgICBpZiAoa2V5KSB7XG4gICAgICBpbnN0YW5jZVtgbW9ja1JlbmRlcl8ke2NvbnRlbnRDaGlsZFNlbGVjdG9yfWBdID0gdHJ1ZTtcbiAgICAgIGNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHZpZXdDb250YWluZXIgPSBpbnN0YW5jZVtgX19tb2NrVmlld18ke2tleX1gXTtcbiAgICAgIHRlbXBsYXRlUmVmID0gaW5zdGFuY2Vba2V5XTtcbiAgICAgIGlmICh2aWV3Q29udGFpbmVyICYmIHRlbXBsYXRlUmVmKSB7XG4gICAgICAgIHZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICAgICAgdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYsIHsgLi4udmFyaWFibGVzLCAkaW1wbGljaXQgfSBhcyBhbnkpO1xuICAgICAgICBjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuY29uc3QgbWl4SGlkZSA9IChpbnN0YW5jZTogTW9ja0NvbmZpZyAmIFJlY29yZDxrZXlvZiBhbnksIGFueT4sIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQgPT4ge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICBjb25zdCByZWZzID0gaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLnZpZXdDaGlsZFJlZnMgfHwgbmV3IE1hcCgpO1xuXG4gIC8vIFByb3ZpZGluZyBtZXRob2QgdG8gaGlkZSBhbnkgQENvbnRlbnRDaGlsZCBiYXNlZCBvbiBpdHMgc2VsZWN0b3IuXG4gIGluc3RhbmNlLl9faGlkZSA9IChjb250ZW50Q2hpbGRTZWxlY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gcmVmcy5nZXQoY29udGVudENoaWxkU2VsZWN0b3IpO1xuICAgIGlmIChrZXkpIHtcbiAgICAgIGluc3RhbmNlW2Btb2NrUmVuZGVyXyR7Y29udGVudENoaWxkU2VsZWN0b3J9YF0gPSBmYWxzZTtcbiAgICAgIGNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH07XG59O1xuXG5jbGFzcyBDb21wb25lbnRNb2NrQmFzZSBleHRlbmRzIExlZ2FjeUNvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICBpZiAoZnVuY0lzTW9jayh0aGlzKSkge1xuICAgICAgbWl4UmVuZGVyKHRoaXMsIGNoYW5nZURldGVjdG9yKTtcbiAgICAgIG1peEhpZGUodGhpcywgY2hhbmdlRGV0ZWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gKHRoaXMuX19uZ01vY2tzQ29uZmlnIGFzIGFueSkuY29uZmlnO1xuICAgIGlmICghKHRoaXMgYXMgYW55KS5fX3JlbmRlcmVkICYmIGNvbmZpZyAmJiBjb25maWcucmVuZGVyKSB7XG4gICAgICBmb3IgKGNvbnN0IGJsb2NrIG9mIE9iamVjdC5rZXlzKGNvbmZpZy5yZW5kZXIpKSB7XG4gICAgICAgIGNvbnN0IHsgJGltcGxpY2l0LCB2YXJpYWJsZXMgfSA9XG4gICAgICAgICAgY29uZmlnLnJlbmRlcltibG9ja10gIT09IHRydWVcbiAgICAgICAgICAgID8gY29uZmlnLnJlbmRlcltibG9ja11cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICh0aGlzIGFzIGFueSkuX19yZW5kZXIoYmxvY2ssICRpbXBsaWNpdCwgdmFyaWFibGVzKTtcbiAgICAgIH1cbiAgICAgICh0aGlzIGFzIGFueSkuX19yZW5kZXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHZpZXdDaGlsZEFyZ3M6IGFueSA9IHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9O1xuY29uc3Qgdmlld0NoaWxkVGVtcGxhdGUgPSAoc2VsZWN0b3I6IHN0cmluZyk6IHN0cmluZyA9PlxuICBgPGRpdiAqbmdJZj1cIm1vY2tSZW5kZXJfJHtzZWxlY3Rvcn1cIiBkYXRhLWtleT1cIiR7c2VsZWN0b3J9XCI+PG5nLXRlbXBsYXRlICNfXyR7c2VsZWN0b3J9PjwvbmctdGVtcGxhdGU+PC9kaXY+YDtcblxuY29uc3QgZ2VuZXJhdGVUZW1wbGF0ZSA9IChcbiAgcXVlcmllcz86IFJlY29yZDxrZXlvZiBhbnksIGFueT4sXG4pOiB7XG4gIHRlbXBsYXRlOiBzdHJpbmc7XG4gIHZpZXdDaGlsZFJlZnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG59ID0+IHtcbiAgY29uc3QgcGFydHMgPSBbYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXTtcbiAgY29uc3Qgdmlld0NoaWxkUmVmcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoIXF1ZXJpZXMpIHtcbiAgICByZXR1cm4geyB0ZW1wbGF0ZTogcGFydHMuam9pbignJyksIHZpZXdDaGlsZFJlZnMgfTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHF1ZXJpZXMpKSB7XG4gICAgY29uc3QgcXVlcnk6IFF1ZXJ5ID0gcXVlcmllc1trZXldO1xuICAgIGlmIChxdWVyeS5pc1ZpZXdRdWVyeSB8fCB0eXBlb2YgcXVlcnkuc2VsZWN0b3IgIT09ICdzdHJpbmcnKSB7XG4gICAgICBjb250aW51ZTsgLy8gaWdub3JpbmcgYWxsIGludGVybmFsIEBWaWV3Q2hpbGQsIFR5cGUgYmFzZWQgc2VsZWN0b3IgZG9lc24ndCB3b3JrIHByb3Blcmx5IGFueXdheS5cbiAgICB9XG4gICAgdmlld0NoaWxkUmVmcy5zZXQocXVlcnkuc2VsZWN0b3IsIGtleSk7XG4gICAgcXVlcmllc1tgX19tb2NrVmlld18ke2tleX1gXSA9IG5ldyBWaWV3Q2hpbGQoYF9fJHtxdWVyeS5zZWxlY3Rvcn1gLCB2aWV3Q2hpbGRBcmdzKTtcbiAgICBwYXJ0cy5wdXNoKHZpZXdDaGlsZFRlbXBsYXRlKHF1ZXJ5LnNlbGVjdG9yKSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRlbXBsYXRlOiBwYXJ0cy5qb2luKCcnKSxcbiAgICB2aWV3Q2hpbGRSZWZzLFxuICB9O1xufTtcblxuY29uc3QgY3JlYXRlTW9ja0NsYXNzID0gKCk6IFR5cGU8YW55PiA9PiB7XG4gIGNsYXNzIENvbXBvbmVudE1vY2sgZXh0ZW5kcyBDb21wb25lbnRNb2NrQmFzZSB7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgIHN1cGVyKGNoYW5nZURldGVjdG9yLCBpbmplY3Rvcik7XG4gICAgfVxuICB9XG5cbiAgKENvbXBvbmVudE1vY2sgYXMgYW55KS5wYXJhbWV0ZXJzID0gW0NoYW5nZURldGVjdG9yUmVmLCBJbmplY3Rvcl07XG5cbiAgcmV0dXJuIENvbXBvbmVudE1vY2s7XG59O1xuXG5jb25zdCBkZWNvcmF0ZUNsYXNzID0gKGNvbXBvbmVudDogVHlwZTxhbnk+LCBtb2NrOiBUeXBlPGFueT4pOiB2b2lkID0+IHtcbiAgY29uc3QgbWV0YSA9IGNvcmVSZWZsZWN0RGlyZWN0aXZlUmVzb2x2ZShjb21wb25lbnQpO1xuICBjb25zdCB7IGV4cG9ydEFzLCBpbnB1dHMsIG91dHB1dHMsIHF1ZXJpZXMsIHNlbGVjdG9yLCBwcm92aWRlcnMgfSA9IG1ldGE7XG4gIGNvbnN0IHsgdGVtcGxhdGUsIHZpZXdDaGlsZFJlZnMgfSA9IGdlbmVyYXRlVGVtcGxhdGUocXVlcmllcyk7XG4gIGNvbnN0IG1vY2tNZXRhID0geyBpbnB1dHMsIG91dHB1dHMsIHByb3ZpZGVycywgcXVlcmllcywgdmlld0NoaWxkUmVmcyB9O1xuICBjb25zdCBtb2NrUGFyYW1zID0geyBleHBvcnRBcywgc2VsZWN0b3IsIHRlbXBsYXRlIH07XG4gIENvbXBvbmVudChkZWNvcmF0ZURlY2xhcmF0aW9uKGNvbXBvbmVudCwgbW9jaywgbW9ja01ldGEsIG1vY2tQYXJhbXMpKShtb2NrKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBNb2NrQ29tcG9uZW50cyguLi5jb21wb25lbnRzOiBBcnJheTxUeXBlPGFueT4+KTogQXJyYXk8VHlwZTxNb2NrZWRDb21wb25lbnQ8YW55Pj4+IHtcbiAgcmV0dXJuIGNvbXBvbmVudHMubWFwKE1vY2tDb21wb25lbnQpO1xufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNob3ctdG8tbW9jay1hLWNvbXBvbmVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gTW9ja0NvbXBvbmVudDxUQ29tcG9uZW50Pihjb21wb25lbnQ6IFR5cGU8VENvbXBvbmVudD4pOiBUeXBlPE1vY2tlZENvbXBvbmVudDxUQ29tcG9uZW50Pj4ge1xuICAvLyBXZSBhcmUgaW5zaWRlIG9mIGFuICdpdCcuIEl0J3MgZmluZSB0byB0byByZXR1cm4gYSBtb2NrIGNvcHkuXG4gIGlmICgoZ2V0VGVzdEJlZCgpIGFzIGFueSkuX2luc3RhbnRpYXRlZCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZ2V0TW9ja2VkTmdEZWZPZihjb21wb25lbnQsICdjJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIGxvb2tzIGxpa2UgYW4gaW4tdGVzdCBtb2NrLlxuICAgIH1cbiAgfVxuICBpZiAobmdNb2Nrc1VuaXZlcnNlLmZsYWdzLmhhcygnY2FjaGVDb21wb25lbnQnKSAmJiBuZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMuaGFzKGNvbXBvbmVudCkpIHtcbiAgICByZXR1cm4gbmdNb2Nrc1VuaXZlcnNlLmNhY2hlRGVjbGFyYXRpb25zLmdldChjb21wb25lbnQpO1xuICB9XG5cbiAgY29uc3QgbW9jayA9IGNyZWF0ZU1vY2tDbGFzcygpO1xuICBkZWNvcmF0ZUNsYXNzKGNvbXBvbmVudCwgbW9jayk7XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgaWYgKG5nTW9ja3NVbml2ZXJzZS5mbGFncy5oYXMoJ2NhY2hlQ29tcG9uZW50JykpIHtcbiAgICBuZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMuc2V0KGNvbXBvbmVudCwgbW9jayk7XG4gIH1cblxuICByZXR1cm4gbW9jayBhcyBhbnk7XG59XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay1jb21wb25lbnQvbW9jay1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FTdUI7QUFDdkIsaURBQW1EO0FBRW5ELHVEQUFxRDtBQUNyRCwyRkFBbUY7QUFFbkYsaUZBQXVFO0FBQ3ZFLHVEQUFnRDtBQUVoRCxxRkFBbUY7QUFDbkYsaUVBQTBEO0FBQzFELHFFQUErRDtBQUkvRCxJQUFNLFNBQVMsR0FBRyxVQUFDLFFBQTZDLEVBQUUsY0FBaUM7SUFDakcsdUJBQXVCO0lBQ3ZCLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsYUFBYSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7SUFFakUsd0VBQXdFO0lBQ3hFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsVUFBQyxvQkFBNEIsRUFBRSxTQUFlLEVBQUUsU0FBa0M7UUFDcEcsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNDLElBQUksV0FBNkIsQ0FBQztRQUNsQyxJQUFJLGFBQStCLENBQUM7UUFDcEMsSUFBSSxHQUFHLEVBQUU7WUFDUCxRQUFRLENBQUMsZ0JBQWMsb0JBQXNCLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDdEQsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9CLGFBQWEsR0FBRyxRQUFRLENBQUMsZ0JBQWMsR0FBSyxDQUFDLENBQUM7WUFDOUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixJQUFJLGFBQWEsSUFBSSxXQUFXLEVBQUU7Z0JBQ2hDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxzQkFBSyxTQUFTLEtB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LDBCQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM1QyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRS9CLHVCQUF1QjtJQUN2QixJQUFJLDJCQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQy9DLDJCQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUN4RDtJQUVELE9BQU8sSUFBVyxDQUFDO0FBQ3JCLENBQUM7QUF0QkQsc0NBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIFF1ZXJ5LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBleHRlbmRDbGFzcyB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLmhlbHBlcnMnO1xuaW1wb3J0IGNvcmVSZWZsZWN0RGlyZWN0aXZlUmVzb2x2ZSBmcm9tICcuLi9jb21tb24vY29yZS5yZWZsZWN0LmRpcmVjdGl2ZS1yZXNvbHZlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICcuLi9jb21tb24vY29yZS50eXBlcyc7XG5pbXBvcnQgeyBnZXRNb2NrZWROZ0RlZk9mIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmMuZ2V0LW1vY2tlZC1uZy1kZWYtb2YnO1xuaW1wb3J0IGZ1bmNJc01vY2sgZnJvbSAnLi4vY29tbW9uL2Z1bmMuaXMtbW9jayc7XG5pbXBvcnQgeyBNb2NrQ29uZmlnIH0gZnJvbSAnLi4vY29tbW9uL21vY2snO1xuaW1wb3J0IHsgTGVnYWN5Q29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi9jb21tb24vbW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yJztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi4vY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlJztcbmltcG9ydCBkZWNvcmF0ZURlY2xhcmF0aW9uIGZyb20gJy4uL21vY2svZGVjb3JhdGUtZGVjbGFyYXRpb24nO1xuXG5pbXBvcnQgeyBNb2NrZWRDb21wb25lbnQgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgbWl4UmVuZGVyID0gKGluc3RhbmNlOiBNb2NrQ29uZmlnICYgUmVjb3JkPGtleW9mIGFueSwgYW55PiwgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCA9PiB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIGNvbnN0IHJlZnMgPSBpbnN0YW5jZS5fX25nTW9ja3NDb25maWcudmlld0NoaWxkUmVmcyB8fCBuZXcgTWFwKCk7XG5cbiAgLy8gUHJvdmlkaW5nIGEgbWV0aG9kIHRvIHJlbmRlciBhbnkgQENvbnRlbnRDaGlsZCBiYXNlZCBvbiBpdHMgc2VsZWN0b3IuXG4gIGluc3RhbmNlLl9fcmVuZGVyID0gKGNvbnRlbnRDaGlsZFNlbGVjdG9yOiBzdHJpbmcsICRpbXBsaWNpdD86IGFueSwgdmFyaWFibGVzPzogUmVjb3JkPGtleW9mIGFueSwgYW55PikgPT4ge1xuICAgIGNvbnN0IGtleSA9IHJlZnMuZ2V0KGNvbnRlbnRDaGlsZFNlbGVjdG9yKTtcbiAgICBsZXQgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgbGV0IHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gICAgaWYgKGtleSkge1xuICAgICAgaW5zdGFuY2VbYG1vY2tSZW5kZXJfJHtjb250ZW50Q2hpbGRTZWxlY3Rvcn1gXSA9IHRydWU7XG4gICAgICBjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB2aWV3Q29udGFpbmVyID0gaW5zdGFuY2VbYF9fbW9ja1ZpZXdfJHtrZXl9YF07XG4gICAgICB0ZW1wbGF0ZVJlZiA9IGluc3RhbmNlW2tleV07XG4gICAgICBpZiAodmlld0NvbnRhaW5lciAmJiB0ZW1wbGF0ZVJlZikge1xuICAgICAgICB2aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgICAgIHZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlUmVmLCB7IC4uLnZhcmlhYmxlcywgJGltcGxpY2l0IH0gYXMgYW55KTtcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbmNvbnN0IG1peEhpZGUgPSAoaW5zdGFuY2U6IE1vY2tDb25maWcgJiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+LCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkID0+IHtcbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgY29uc3QgcmVmcyA9IGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy52aWV3Q2hpbGRSZWZzIHx8IG5ldyBNYXAoKTtcblxuICAvLyBQcm92aWRpbmcgbWV0aG9kIHRvIGhpZGUgYW55IEBDb250ZW50Q2hpbGQgYmFzZWQgb24gaXRzIHNlbGVjdG9yLlxuICBpbnN0YW5jZS5fX2hpZGUgPSAoY29udGVudENoaWxkU2VsZWN0b3I6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGtleSA9IHJlZnMuZ2V0KGNvbnRlbnRDaGlsZFNlbGVjdG9yKTtcbiAgICBpZiAoa2V5KSB7XG4gICAgICBpbnN0YW5jZVtgbW9ja1JlbmRlcl8ke2NvbnRlbnRDaGlsZFNlbGVjdG9yfWBdID0gZmFsc2U7XG4gICAgICBjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9O1xufTtcblxuY2xhc3MgQ29tcG9uZW50TW9ja0Jhc2UgZXh0ZW5kcyBMZWdhY3lDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICBwdWJsaWMgY29uc3RydWN0b3IoY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgaWYgKGZ1bmNJc01vY2sodGhpcykpIHtcbiAgICAgIG1peFJlbmRlcih0aGlzLCBjaGFuZ2VEZXRlY3Rvcik7XG4gICAgICBtaXhIaWRlKHRoaXMsIGNoYW5nZURldGVjdG9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZyA9ICh0aGlzLl9fbmdNb2Nrc0NvbmZpZyBhcyBhbnkpLmNvbmZpZztcbiAgICBpZiAoISh0aGlzIGFzIGFueSkuX19yZW5kZXJlZCAmJiBjb25maWcgJiYgY29uZmlnLnJlbmRlcikge1xuICAgICAgZm9yIChjb25zdCBibG9jayBvZiBPYmplY3Qua2V5cyhjb25maWcucmVuZGVyKSkge1xuICAgICAgICBjb25zdCB7ICRpbXBsaWNpdCwgdmFyaWFibGVzIH0gPVxuICAgICAgICAgIGNvbmZpZy5yZW5kZXJbYmxvY2tdICE9PSB0cnVlXG4gICAgICAgICAgICA/IGNvbmZpZy5yZW5kZXJbYmxvY2tdXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHt9LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAodGhpcyBhcyBhbnkpLl9fcmVuZGVyKGJsb2NrLCAkaW1wbGljaXQsIHZhcmlhYmxlcyk7XG4gICAgICB9XG4gICAgICAodGhpcyBhcyBhbnkpLl9fcmVuZGVyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoQ29tcG9uZW50TW9ja0Jhc2UsICdwYXJhbWV0ZXJzJywge1xuICB2YWx1ZTogW1tDaGFuZ2VEZXRlY3RvclJlZl0sIFtJbmplY3Rvcl1dLFxufSk7XG5cbmNvbnN0IHZpZXdDaGlsZEFyZ3M6IGFueSA9IHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9O1xuY29uc3Qgdmlld0NoaWxkVGVtcGxhdGUgPSAoc2VsZWN0b3I6IHN0cmluZyk6IHN0cmluZyA9PlxuICBgPGRpdiAqbmdJZj1cIm1vY2tSZW5kZXJfJHtzZWxlY3Rvcn1cIiBkYXRhLWtleT1cIiR7c2VsZWN0b3J9XCI+PG5nLXRlbXBsYXRlICNfXyR7c2VsZWN0b3J9PjwvbmctdGVtcGxhdGU+PC9kaXY+YDtcblxuY29uc3QgZ2VuZXJhdGVUZW1wbGF0ZSA9IChcbiAgcXVlcmllcz86IFJlY29yZDxrZXlvZiBhbnksIGFueT4sXG4pOiB7XG4gIHRlbXBsYXRlOiBzdHJpbmc7XG4gIHZpZXdDaGlsZFJlZnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG59ID0+IHtcbiAgY29uc3QgcGFydHMgPSBbYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXTtcbiAgY29uc3Qgdmlld0NoaWxkUmVmcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoIXF1ZXJpZXMpIHtcbiAgICByZXR1cm4geyB0ZW1wbGF0ZTogcGFydHMuam9pbignJyksIHZpZXdDaGlsZFJlZnMgfTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHF1ZXJpZXMpKSB7XG4gICAgY29uc3QgcXVlcnk6IFF1ZXJ5ID0gcXVlcmllc1trZXldO1xuICAgIGlmIChxdWVyeS5pc1ZpZXdRdWVyeSB8fCB0eXBlb2YgcXVlcnkuc2VsZWN0b3IgIT09ICdzdHJpbmcnKSB7XG4gICAgICBjb250aW51ZTsgLy8gaWdub3JpbmcgYWxsIGludGVybmFsIEBWaWV3Q2hpbGQsIFR5cGUgYmFzZWQgc2VsZWN0b3IgZG9lcyBub3Qgd29yayBwcm9wZXJseSBhbnl3YXkuXG4gICAgfVxuICAgIHZpZXdDaGlsZFJlZnMuc2V0KHF1ZXJ5LnNlbGVjdG9yLCBrZXkpO1xuICAgIHF1ZXJpZXNbYF9fbW9ja1ZpZXdfJHtrZXl9YF0gPSBuZXcgVmlld0NoaWxkKGBfXyR7cXVlcnkuc2VsZWN0b3J9YCwgdmlld0NoaWxkQXJncyk7XG4gICAgcGFydHMucHVzaCh2aWV3Q2hpbGRUZW1wbGF0ZShxdWVyeS5zZWxlY3RvcikpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0ZW1wbGF0ZTogcGFydHMuam9pbignJyksXG4gICAgdmlld0NoaWxkUmVmcyxcbiAgfTtcbn07XG5cbmNvbnN0IGRlY29yYXRlQ2xhc3MgPSAoY29tcG9uZW50OiBUeXBlPGFueT4sIG1vY2s6IFR5cGU8YW55Pik6IHZvaWQgPT4ge1xuICBjb25zdCBtZXRhID0gY29yZVJlZmxlY3REaXJlY3RpdmVSZXNvbHZlKGNvbXBvbmVudCk7XG4gIGNvbnN0IHsgZXhwb3J0QXMsIGlucHV0cywgb3V0cHV0cywgcXVlcmllcywgc2VsZWN0b3IsIHByb3ZpZGVycyB9ID0gbWV0YTtcbiAgY29uc3QgeyB0ZW1wbGF0ZSwgdmlld0NoaWxkUmVmcyB9ID0gZ2VuZXJhdGVUZW1wbGF0ZShxdWVyaWVzKTtcbiAgY29uc3QgbW9ja01ldGEgPSB7IGlucHV0cywgb3V0cHV0cywgcHJvdmlkZXJzLCBxdWVyaWVzLCB2aWV3Q2hpbGRSZWZzIH07XG4gIGNvbnN0IG1vY2tQYXJhbXMgPSB7IGV4cG9ydEFzLCBzZWxlY3RvciwgdGVtcGxhdGUgfTtcbiAgQ29tcG9uZW50KGRlY29yYXRlRGVjbGFyYXRpb24oY29tcG9uZW50LCBtb2NrLCBtb2NrTWV0YSwgbW9ja1BhcmFtcykpKG1vY2spO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIE1vY2tDb21wb25lbnRzKC4uLmNvbXBvbmVudHM6IEFycmF5PFR5cGU8YW55Pj4pOiBBcnJheTxUeXBlPE1vY2tlZENvbXBvbmVudDxhbnk+Pj4ge1xuICByZXR1cm4gY29tcG9uZW50cy5tYXAoTW9ja0NvbXBvbmVudCk7XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2hvdy10by1tb2NrLWNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1vY2tDb21wb25lbnQ8VENvbXBvbmVudD4oY29tcG9uZW50OiBUeXBlPFRDb21wb25lbnQ+KTogVHlwZTxNb2NrZWRDb21wb25lbnQ8VENvbXBvbmVudD4+IHtcbiAgLy8gV2UgYXJlIGluc2lkZSBvZiBhbiAnaXQnLiBJdCBpcyBmaW5lIHRvIHRvIHJldHVybiBhIG1vY2sgY29weS5cbiAgaWYgKChnZXRUZXN0QmVkKCkgYXMgYW55KS5faW5zdGFudGlhdGVkKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBnZXRNb2NrZWROZ0RlZk9mKGNvbXBvbmVudCwgJ2MnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gbG9va3MgbGlrZSBhbiBpbi10ZXN0IG1vY2suXG4gICAgfVxuICB9XG4gIGlmIChuZ01vY2tzVW5pdmVyc2UuZmxhZ3MuaGFzKCdjYWNoZUNvbXBvbmVudCcpICYmIG5nTW9ja3NVbml2ZXJzZS5jYWNoZURlY2xhcmF0aW9ucy5oYXMoY29tcG9uZW50KSkge1xuICAgIHJldHVybiBuZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMuZ2V0KGNvbXBvbmVudCk7XG4gIH1cblxuICBjb25zdCBtb2NrID0gZXh0ZW5kQ2xhc3MoQ29tcG9uZW50TW9ja0Jhc2UpO1xuICBkZWNvcmF0ZUNsYXNzKGNvbXBvbmVudCwgbW9jayk7XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgaWYgKG5nTW9ja3NVbml2ZXJzZS5mbGFncy5oYXMoJ2NhY2hlQ29tcG9uZW50JykpIHtcbiAgICBuZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMuc2V0KGNvbXBvbmVudCwgbW9jayk7XG4gIH1cblxuICByZXR1cm4gbW9jayBhcyBhbnk7XG59XG4iXX0=
@@ -2,6 +2,6 @@ import { Type } from '../common/core.types';
2
2
  import { MockedDirective } from './types';
3
3
  export declare function MockDirectives(...directives: Array<Type<any>>): Array<Type<MockedDirective<any>>>;
4
4
  /**
5
- * @see https://github.com/ike18t/ng-mocks#how-to-mock-a-directive
5
+ * @see https://github.com/ike18t/ng-mocks#how-to-mock-directives
6
6
  */
7
7
  export declare function MockDirective<TDirective>(directive: Type<TDirective>): Type<MockedDirective<TDirective>>;