@angular/core 12.1.0-next.5 → 12.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/bundles/core-testing.umd.js +239 -46
  2. package/bundles/core-testing.umd.js.map +1 -1
  3. package/bundles/core.umd.js +60 -37
  4. package/bundles/core.umd.js.map +1 -1
  5. package/core.d.ts +45 -19
  6. package/core.metadata.json +1 -1
  7. package/esm2015/src/application_init.js +5 -5
  8. package/esm2015/src/application_ref.js +29 -8
  9. package/esm2015/src/change_detection/differs/iterable_differs.js +1 -1
  10. package/esm2015/src/compiler/compiler_facade_interface.js +1 -1
  11. package/esm2015/src/error_handler.js +2 -6
  12. package/esm2015/src/event_emitter.js +1 -1
  13. package/esm2015/src/linker/component_factory_resolver.js +1 -1
  14. package/esm2015/src/linker/template_ref.js +1 -1
  15. package/esm2015/src/linker/view_container_ref.js +1 -1
  16. package/esm2015/src/metadata/di.js +1 -1
  17. package/esm2015/src/metadata/do_boostrap.js +1 -1
  18. package/esm2015/src/render3/component_ref.js +1 -1
  19. package/esm2015/src/render3/definition.js +16 -16
  20. package/esm2015/src/render3/ng_module_ref.js +1 -1
  21. package/esm2015/src/render3/view_ref.js +1 -1
  22. package/esm2015/src/sanitization/bypass.js +1 -1
  23. package/esm2015/src/version.js +1 -1
  24. package/esm2015/src/view/entrypoint.js +1 -1
  25. package/esm2015/src/view/refs.js +1 -1
  26. package/esm2015/testing/src/ng_zone_mock.js +1 -1
  27. package/esm2015/testing/src/r3_test_bed.js +84 -7
  28. package/esm2015/testing/src/r3_test_bed_compiler.js +4 -1
  29. package/esm2015/testing/src/resolvers.js +1 -1
  30. package/esm2015/testing/src/test_bed.js +110 -21
  31. package/esm2015/testing/src/test_bed_common.js +7 -1
  32. package/esm2015/testing/src/test_hooks.js +45 -0
  33. package/esm2015/testing/src/testing.js +3 -3
  34. package/fesm2015/core.js +50 -33
  35. package/fesm2015/core.js.map +1 -1
  36. package/fesm2015/testing.js +216 -29
  37. package/fesm2015/testing.js.map +1 -1
  38. package/package.json +1 -1
  39. package/schematics/migrations/missing-injectable/providers_evaluator.js +1 -1
  40. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.js +1 -1
  41. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.js +1 -1
  42. package/schematics/migrations.json +1 -1
  43. package/src/r3_symbols.d.ts +2 -3
  44. package/testing/testing.d.ts +64 -5
  45. package/testing/testing.metadata.json +1 -1
  46. package/testing.d.ts +1 -1
  47. package/esm2015/testing/src/before_each.js +0 -33
  48. package/schematics/migrations/abstract-control-parent/abstract-control-parent.externs.js +0 -0
  49. package/schematics/migrations/abstract-control-parent/index.mjs +0 -47
  50. package/schematics/migrations/abstract-control-parent/util.mjs +0 -50
  51. package/schematics/migrations/activated-route-snapshot-fragment/activated-route-snapshot-fragment.externs.js +0 -0
  52. package/schematics/migrations/activated-route-snapshot-fragment/index.mjs +0 -48
  53. package/schematics/migrations/activated-route-snapshot-fragment/util.mjs +0 -33
  54. package/schematics/migrations/can-activate-with-redirect-to/can-activate-with-redirect-to.externs.js +0 -0
  55. package/schematics/migrations/can-activate-with-redirect-to/index.mjs +0 -44
  56. package/schematics/migrations/can-activate-with-redirect-to/util.mjs +0 -55
  57. package/schematics/migrations/deep-shadow-piercing-selector/deep-shadow-piercing-selector.externs.js +0 -0
  58. package/schematics/migrations/deep-shadow-piercing-selector/index.mjs +0 -36
  59. package/schematics/migrations/dynamic-queries/dynamic-queries.externs.js +0 -0
  60. package/schematics/migrations/dynamic-queries/index.mjs +0 -51
  61. package/schematics/migrations/dynamic-queries/util.mjs +0 -65
  62. package/schematics/migrations/initial-navigation/collector.mjs +0 -105
  63. package/schematics/migrations/initial-navigation/index.mjs +0 -61
  64. package/schematics/migrations/initial-navigation/initial-navigation.externs.js +0 -0
  65. package/schematics/migrations/initial-navigation/transform.mjs +0 -54
  66. package/schematics/migrations/initial-navigation/update_recorder.mjs +0 -9
  67. package/schematics/migrations/initial-navigation/util.mjs +0 -28
  68. package/schematics/migrations/missing-injectable/definition_collector.mjs +0 -75
  69. package/schematics/migrations/missing-injectable/index.mjs +0 -100
  70. package/schematics/migrations/missing-injectable/missing-injectable.externs.js +0 -0
  71. package/schematics/migrations/missing-injectable/providers_evaluator.mjs +0 -50
  72. package/schematics/migrations/missing-injectable/transform.mjs +0 -187
  73. package/schematics/migrations/missing-injectable/update_recorder.mjs +0 -9
  74. package/schematics/migrations/module-with-providers/collector.mjs +0 -59
  75. package/schematics/migrations/module-with-providers/index.mjs +0 -71
  76. package/schematics/migrations/module-with-providers/module-with-providers.externs.js +0 -0
  77. package/schematics/migrations/module-with-providers/transform.mjs +0 -134
  78. package/schematics/migrations/module-with-providers/util.mjs +0 -25
  79. package/schematics/migrations/move-document/document_import_visitor.mjs +0 -60
  80. package/schematics/migrations/move-document/index.mjs +0 -71
  81. package/schematics/migrations/move-document/move-document.externs.js +0 -0
  82. package/schematics/migrations/move-document/move-import.mjs +0 -45
  83. package/schematics/migrations/native-view-encapsulation/index.mjs +0 -41
  84. package/schematics/migrations/native-view-encapsulation/native-view-encapsulation.externs.js +0 -0
  85. package/schematics/migrations/native-view-encapsulation/util.mjs +0 -34
  86. package/schematics/migrations/navigation-extras-omissions/index.mjs +0 -47
  87. package/schematics/migrations/navigation-extras-omissions/navigation-extras-omissions.externs.js +0 -0
  88. package/schematics/migrations/navigation-extras-omissions/util.mjs +0 -111
  89. package/schematics/migrations/relative-link-resolution/collector.mjs +0 -81
  90. package/schematics/migrations/relative-link-resolution/index.mjs +0 -62
  91. package/schematics/migrations/relative-link-resolution/relative-link-resolution.externs.js +0 -0
  92. package/schematics/migrations/relative-link-resolution/transform.mjs +0 -51
  93. package/schematics/migrations/relative-link-resolution/update_recorder.mjs +0 -9
  94. package/schematics/migrations/relative-link-resolution/util.mjs +0 -28
  95. package/schematics/migrations/renderer-to-renderer2/helpers.mjs +0 -224
  96. package/schematics/migrations/renderer-to-renderer2/index.mjs +0 -113
  97. package/schematics/migrations/renderer-to-renderer2/migration.mjs +0 -211
  98. package/schematics/migrations/renderer-to-renderer2/renderer-to-renderer2.externs.js +0 -0
  99. package/schematics/migrations/renderer-to-renderer2/util.mjs +0 -69
  100. package/schematics/migrations/router-preserve-query-params/index.mjs +0 -50
  101. package/schematics/migrations/router-preserve-query-params/router-preserve-query-params.externs.js +0 -0
  102. package/schematics/migrations/router-preserve-query-params/util.mjs +0 -88
  103. package/schematics/migrations/static-queries/angular/directive_inputs.mjs +0 -70
  104. package/schematics/migrations/static-queries/angular/ng_query_visitor.mjs +0 -113
  105. package/schematics/migrations/static-queries/angular/query-definition.mjs +0 -20
  106. package/schematics/migrations/static-queries/angular/super_class.mjs +0 -21
  107. package/schematics/migrations/static-queries/index.mjs +0 -206
  108. package/schematics/migrations/static-queries/static-queries.externs.js +0 -0
  109. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.mjs +0 -200
  110. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.mjs +0 -24
  111. package/schematics/migrations/static-queries/strategies/timing-strategy.mjs +0 -9
  112. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.mjs +0 -355
  113. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.mjs +0 -38
  114. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.mjs +0 -80
  115. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.mjs +0 -154
  116. package/schematics/migrations/static-queries/transform.mjs +0 -88
  117. package/schematics/migrations/template-var-assignment/analyze_template.mjs +0 -25
  118. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.mjs +0 -65
  119. package/schematics/migrations/template-var-assignment/index.mjs +0 -68
  120. package/schematics/migrations/template-var-assignment/template-var-assignment.externs.js +0 -0
  121. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.mjs +0 -92
  122. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.mjs +0 -286
  123. package/schematics/migrations/undecorated-classes-with-decorated-fields/undecorated-classes-with-decorated-fields.externs.js +0 -0
  124. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.mjs +0 -9
  125. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.mjs +0 -43
  126. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.mjs +0 -82
  127. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.mjs +0 -102
  128. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.mjs +0 -111
  129. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.mjs +0 -17
  130. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.mjs +0 -51
  131. package/schematics/migrations/undecorated-classes-with-di/index.mjs +0 -162
  132. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.mjs +0 -124
  133. package/schematics/migrations/undecorated-classes-with-di/transform.mjs +0 -356
  134. package/schematics/migrations/undecorated-classes-with-di/undecorated-classes-with-di.externs.js +0 -0
  135. package/schematics/migrations/undecorated-classes-with-di/update_recorder.mjs +0 -9
  136. package/schematics/migrations/wait-for-async/index.mjs +0 -76
  137. package/schematics/migrations/wait-for-async/util.mjs +0 -23
  138. package/schematics/migrations/wait-for-async/wait-for-async.externs.js +0 -0
  139. package/schematics/migrations/xhr-factory/index.mjs +0 -91
  140. package/schematics/migrations/xhr-factory/xhr-factory.externs.js +0 -0
  141. package/schematics/utils/import_manager.mjs +0 -197
  142. package/schematics/utils/line_mappings.mjs +0 -60
  143. package/schematics/utils/ng_component_template.mjs +0 -96
  144. package/schematics/utils/ng_decorators.mjs +0 -23
  145. package/schematics/utils/parse_html.mjs +0 -24
  146. package/schematics/utils/project_tsconfig_paths.mjs +0 -74
  147. package/schematics/utils/schematics_prompt.mjs +0 -30
  148. package/schematics/utils/typescript/class_declaration.mjs +0 -33
  149. package/schematics/utils/typescript/compiler_host.mjs +0 -66
  150. package/schematics/utils/typescript/decorators.mjs +0 -20
  151. package/schematics/utils/typescript/find_base_classes.mjs +0 -30
  152. package/schematics/utils/typescript/functions.mjs +0 -28
  153. package/schematics/utils/typescript/imports.mjs +0 -91
  154. package/schematics/utils/typescript/nodes.mjs +0 -57
  155. package/schematics/utils/typescript/parse_tsconfig.mjs +0 -26
  156. package/schematics/utils/typescript/property_name.mjs +0 -23
  157. package/schematics/utils/typescript/symbol.mjs +0 -72
  158. package/schematics/utils/utils.externs.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "12.1.0-next.5",
3
+ "version": "12.1.2",
4
4
  "description": "Angular - the core framework",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -61,4 +61,4 @@
61
61
  }
62
62
  exports.ProvidersEvaluator = ProvidersEvaluator;
63
63
  });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzX2V2YWx1YXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL21pc3NpbmctaW5qZWN0YWJsZS9wcm92aWRlcnNfZXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILDZFQUErRTtJQUUvRSxtR0FBb0c7SUFRcEc7Ozs7Ozs7O09BUUc7SUFDSCxNQUFhLGtCQUFtQixTQUFRLCtCQUFpQjtRQUF6RDs7WUFDVSxzQkFBaUIsR0FBc0IsRUFBRSxDQUFDO1FBNkJwRCxDQUFDO1FBM0JDLDRCQUE0QixDQUFDLElBQWdDLEVBQUUsT0FBWTtZQUN6RSxNQUFNLGFBQWEsR0FDZixLQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBSSxrQ0FBTSxPQUFPLEtBQUUsaUJBQWlCLEVBQUUsSUFBSSxJQUFFLENBQUM7WUFDcEYscUVBQXFFO1lBQ3JFLHdFQUF3RTtZQUN4RSx1RUFBdUU7WUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUVEOzs7V0FHRztRQUNILFFBQVEsQ0FBQyxJQUFtQjtZQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDckMsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVE7Z0JBQ2hELEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRTtnQkFDaEIsdUJBQXVCLEVBQUUsZ0NBQWtCO2FBQzVDLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxDQUFDO1FBQzNELENBQUM7S0FDRjtJQTlCRCxnREE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtmb3J3YXJkUmVmUmVzb2x2ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvYW5ub3RhdGlvbnMnO1xuaW1wb3J0IHtSZXNvbHZlZFZhbHVlfSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL3BhcnRpYWxfZXZhbHVhdG9yJztcbmltcG9ydCB7U3RhdGljSW50ZXJwcmV0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcGFydGlhbF9ldmFsdWF0b3Ivc3JjL2ludGVycHJldGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTGl0ZXJhbCB7XG4gIG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uO1xuICByZXNvbHZlZFZhbHVlOiBSZXNvbHZlZFZhbHVlO1xufVxuXG4vKipcbiAqIFByb3ZpZGVycyBldmFsdWF0b3IgdGhhdCBleHRlbmRzIHRoZSBuZ3RzYyBzdGF0aWMgaW50ZXJwcmV0ZXIuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2VcbiAqIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYnkgZGVmYXVsdCBvbmx5IGV4cG9zZXMgdGhlIHJlc29sdmVkIHZhbHVlLCBidXQgd2UgYXJlIGFsc28gaW50ZXJlc3RlZFxuICogaW4gdGhlIFR5cGVTY3JpcHQgbm9kZXMgdGhhdCBkZWNsYXJlIHByb3ZpZGVycy4gSXQgd291bGQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgdHJhdmVyc2UgdGhlXG4gKiBBU1QgdG8gY29sbGVjdCB0aGVzZSBub2RlcywgYnV0IHRoYXQgd291bGQgbWVhbiB0aGF0IHdlIG5lZWQgdG8gcmUtaW1wbGVtZW50IHRoZSBzdGF0aWNcbiAqIGludGVycHJldGVyIGluIG9yZGVyIHRvIGhhbmRsZSBhbGwgcG9zc2libGUgc2NlbmFyaW9zLiAoZS5nLiBzcHJlYWQgb3BlcmF0b3IsIGZ1bmN0aW9uIGNhbGxzLFxuICogY2FsbGVlIHNjb3BlKS4gVGhpcyBjYW4gYmUgYXZvaWRlZCBieSBzaW1wbHkgZXh0ZW5kaW5nIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYW5kIGludGVyY2VwdGluZ1xuICogdGhlIFwidmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvblwiIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyc0V2YWx1YXRvciBleHRlbmRzIFN0YXRpY0ludGVycHJldGVyIHtcbiAgcHJpdmF0ZSBfcHJvdmlkZXJMaXRlcmFsczogUHJvdmlkZXJMaXRlcmFsW10gPSBbXTtcblxuICB2aXNpdE9iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uLCBjb250ZXh0OiBhbnkpIHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID1cbiAgICAgICAgc3VwZXIudmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLCB7Li4uY29udGV4dCwgaW5zaWRlUHJvdmlkZXJEZWY6IHRydWV9KTtcbiAgICAvLyBkbyBub3QgY29sbGVjdCBuZXN0ZWQgb2JqZWN0IGxpdGVyYWxzLiBlLmcuIGEgcHJvdmlkZXIgY291bGQgdXNlIGFcbiAgICAvLyBzcHJlYWQgYXNzaWdubWVudCAod2hpY2ggcmVzb2x2ZXMgdG8gYW5vdGhlciBvYmplY3QgbGl0ZXJhbCkuIEluIHRoYXRcbiAgICAvLyBjYXNlIHRoZSByZWZlcmVuY2VkIG9iamVjdCBsaXRlcmFsIGlzIG5vdCBhIHByb3ZpZGVyIG9iamVjdCBsaXRlcmFsLlxuICAgIGlmICghY29udGV4dC5pbnNpZGVQcm92aWRlckRlZikge1xuICAgICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscy5wdXNoKHtub2RlLCByZXNvbHZlZFZhbHVlfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBhbmQgcmV0dXJucyBpdHMgc3RhdGljYWxseSByZXNvbHZlZCB2YWx1ZVxuICAgKiBhbmQgYSBsaXN0IG9mIG9iamVjdCBsaXRlcmFscyB3aGljaCBkZWZpbmUgQW5ndWxhciBwcm92aWRlcnMuXG4gICAqL1xuICBldmFsdWF0ZShleHByOiB0cy5FeHByZXNzaW9uKSB7XG4gICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscyA9IFtdO1xuICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLnZpc2l0KGV4cHIsIHtcbiAgICAgIG9yaWdpbmF0aW5nRmlsZTogZXhwci5nZXRTb3VyY2VGaWxlKCksXG4gICAgICBhYnNvbHV0ZU1vZHVsZU5hbWU6IG51bGwsXG4gICAgICByZXNvbHV0aW9uQ29udGV4dDogZXhwci5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUsXG4gICAgICBzY29wZTogbmV3IE1hcCgpLFxuICAgICAgZm9yZWlnbkZ1bmN0aW9uUmVzb2x2ZXI6IGZvcndhcmRSZWZSZXNvbHZlclxuICAgIH0pO1xuICAgIHJldHVybiB7cmVzb2x2ZWRWYWx1ZSwgbGl0ZXJhbHM6IHRoaXMuX3Byb3ZpZGVyTGl0ZXJhbHN9O1xuICB9XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzX2V2YWx1YXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL21pc3NpbmctaW5qZWN0YWJsZS9wcm92aWRlcnNfZXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILDZFQUErRTtJQUUvRSxtR0FBb0c7SUFRcEc7Ozs7Ozs7O09BUUc7SUFDSCxNQUFhLGtCQUFtQixTQUFRLCtCQUFpQjtRQUF6RDs7WUFDVSxzQkFBaUIsR0FBc0IsRUFBRSxDQUFDO1FBNkJwRCxDQUFDO1FBM0JVLDRCQUE0QixDQUFDLElBQWdDLEVBQUUsT0FBWTtZQUNsRixNQUFNLGFBQWEsR0FDZixLQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBSSxrQ0FBTSxPQUFPLEtBQUUsaUJBQWlCLEVBQUUsSUFBSSxJQUFFLENBQUM7WUFDcEYscUVBQXFFO1lBQ3JFLHdFQUF3RTtZQUN4RSx1RUFBdUU7WUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUVEOzs7V0FHRztRQUNILFFBQVEsQ0FBQyxJQUFtQjtZQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDckMsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVE7Z0JBQ2hELEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRTtnQkFDaEIsdUJBQXVCLEVBQUUsZ0NBQWtCO2FBQzVDLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxDQUFDO1FBQzNELENBQUM7S0FDRjtJQTlCRCxnREE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtmb3J3YXJkUmVmUmVzb2x2ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvYW5ub3RhdGlvbnMnO1xuaW1wb3J0IHtSZXNvbHZlZFZhbHVlfSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL3BhcnRpYWxfZXZhbHVhdG9yJztcbmltcG9ydCB7U3RhdGljSW50ZXJwcmV0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcGFydGlhbF9ldmFsdWF0b3Ivc3JjL2ludGVycHJldGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTGl0ZXJhbCB7XG4gIG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uO1xuICByZXNvbHZlZFZhbHVlOiBSZXNvbHZlZFZhbHVlO1xufVxuXG4vKipcbiAqIFByb3ZpZGVycyBldmFsdWF0b3IgdGhhdCBleHRlbmRzIHRoZSBuZ3RzYyBzdGF0aWMgaW50ZXJwcmV0ZXIuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2VcbiAqIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYnkgZGVmYXVsdCBvbmx5IGV4cG9zZXMgdGhlIHJlc29sdmVkIHZhbHVlLCBidXQgd2UgYXJlIGFsc28gaW50ZXJlc3RlZFxuICogaW4gdGhlIFR5cGVTY3JpcHQgbm9kZXMgdGhhdCBkZWNsYXJlIHByb3ZpZGVycy4gSXQgd291bGQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgdHJhdmVyc2UgdGhlXG4gKiBBU1QgdG8gY29sbGVjdCB0aGVzZSBub2RlcywgYnV0IHRoYXQgd291bGQgbWVhbiB0aGF0IHdlIG5lZWQgdG8gcmUtaW1wbGVtZW50IHRoZSBzdGF0aWNcbiAqIGludGVycHJldGVyIGluIG9yZGVyIHRvIGhhbmRsZSBhbGwgcG9zc2libGUgc2NlbmFyaW9zLiAoZS5nLiBzcHJlYWQgb3BlcmF0b3IsIGZ1bmN0aW9uIGNhbGxzLFxuICogY2FsbGVlIHNjb3BlKS4gVGhpcyBjYW4gYmUgYXZvaWRlZCBieSBzaW1wbHkgZXh0ZW5kaW5nIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYW5kIGludGVyY2VwdGluZ1xuICogdGhlIFwidmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvblwiIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyc0V2YWx1YXRvciBleHRlbmRzIFN0YXRpY0ludGVycHJldGVyIHtcbiAgcHJpdmF0ZSBfcHJvdmlkZXJMaXRlcmFsczogUHJvdmlkZXJMaXRlcmFsW10gPSBbXTtcblxuICBvdmVycmlkZSB2aXNpdE9iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uLCBjb250ZXh0OiBhbnkpIHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID1cbiAgICAgICAgc3VwZXIudmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLCB7Li4uY29udGV4dCwgaW5zaWRlUHJvdmlkZXJEZWY6IHRydWV9KTtcbiAgICAvLyBkbyBub3QgY29sbGVjdCBuZXN0ZWQgb2JqZWN0IGxpdGVyYWxzLiBlLmcuIGEgcHJvdmlkZXIgY291bGQgdXNlIGFcbiAgICAvLyBzcHJlYWQgYXNzaWdubWVudCAod2hpY2ggcmVzb2x2ZXMgdG8gYW5vdGhlciBvYmplY3QgbGl0ZXJhbCkuIEluIHRoYXRcbiAgICAvLyBjYXNlIHRoZSByZWZlcmVuY2VkIG9iamVjdCBsaXRlcmFsIGlzIG5vdCBhIHByb3ZpZGVyIG9iamVjdCBsaXRlcmFsLlxuICAgIGlmICghY29udGV4dC5pbnNpZGVQcm92aWRlckRlZikge1xuICAgICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscy5wdXNoKHtub2RlLCByZXNvbHZlZFZhbHVlfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBhbmQgcmV0dXJucyBpdHMgc3RhdGljYWxseSByZXNvbHZlZCB2YWx1ZVxuICAgKiBhbmQgYSBsaXN0IG9mIG9iamVjdCBsaXRlcmFscyB3aGljaCBkZWZpbmUgQW5ndWxhciBwcm92aWRlcnMuXG4gICAqL1xuICBldmFsdWF0ZShleHByOiB0cy5FeHByZXNzaW9uKSB7XG4gICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscyA9IFtdO1xuICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLnZpc2l0KGV4cHIsIHtcbiAgICAgIG9yaWdpbmF0aW5nRmlsZTogZXhwci5nZXRTb3VyY2VGaWxlKCksXG4gICAgICBhYnNvbHV0ZU1vZHVsZU5hbWU6IG51bGwsXG4gICAgICByZXNvbHV0aW9uQ29udGV4dDogZXhwci5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUsXG4gICAgICBzY29wZTogbmV3IE1hcCgpLFxuICAgICAgZm9yZWlnbkZ1bmN0aW9uUmVzb2x2ZXI6IGZvcndhcmRSZWZSZXNvbHZlclxuICAgIH0pO1xuICAgIHJldHVybiB7cmVzb2x2ZWRWYWx1ZSwgbGl0ZXJhbHM6IHRoaXMuX3Byb3ZpZGVyTGl0ZXJhbHN9O1xuICB9XG59XG4iXX0=
@@ -91,4 +91,4 @@
91
91
  }
92
92
  }
93
93
  });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVfdXNhZ2VfdmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL3N0YXRpYy1xdWVyaWVzL3N0cmF0ZWdpZXMvdXNhZ2Vfc3RyYXRlZ3kvdGVtcGxhdGVfdXNhZ2VfdmlzaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCxnREFBdUc7SUFDdkcsaUVBQTJJO0lBRTNJOzs7T0FHRztJQUNILE1BQWEsb0JBQXFCLFNBQVEsb0JBQVc7UUFJbkQsWUFBbUIsaUJBQXlCO1lBQzFDLEtBQUssRUFBRSxDQUFDO1lBRFMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1lBSHBDLDhCQUF5QixHQUFHLEtBQUssQ0FBQztZQUNsQyx5QkFBb0IsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBSWhGLENBQUM7UUFFRCw2RkFBNkY7UUFDN0YscUJBQXFCLENBQUMsU0FBaUI7WUFDckMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBRXZELDBFQUEwRTtZQUMxRSxpQkFBUSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUUxQixPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUMzRixDQUFDO1FBRUQsWUFBWSxDQUFDLE9BQWdCO1lBQzNCLGtGQUFrRjtZQUNsRixrRkFBa0Y7WUFDbEYsK0VBQStFO1lBQy9FLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUNuRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO2dCQUN0QyxPQUFPO2FBQ1I7WUFFRCxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkMsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLGlCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVELGFBQWEsQ0FBQyxRQUFrQjtZQUM5QixpQkFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLGlCQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVqQywyRUFBMkU7WUFDM0UsbUZBQW1GO1lBQ25GLGtDQUFrQztRQUNwQyxDQUFDO1FBRUQsbUJBQW1CLENBQUMsU0FBeUI7WUFDM0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsY0FBYyxDQUFDLElBQWU7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsZUFBZSxDQUFDLElBQWdCO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEUsQ0FBQztLQUNGO0lBdkRELG9EQXVEQztJQUVEOzs7T0FHRztJQUNILE1BQU0sb0JBQXFCLFNBQVEsOEJBQW1CO1FBR3BELFlBQW9CLGlCQUF5QjtZQUMzQyxLQUFLLEVBQUUsQ0FBQztZQURVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtZQUY3Qyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFJN0IsQ0FBQztRQUVELGlCQUFpQixDQUFDLElBQWtCLEVBQUUsSUFBcUI7WUFDekQsbUZBQW1GO1lBQ25GLDBEQUEwRDtZQUMxRCxJQUFJLElBQUksQ0FBQyxRQUFRLFlBQVksMkJBQWdCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLE9BQU87YUFDUjtZQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQztLQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW1wbGljaXRSZWNlaXZlciwgUGFyc2VTb3VyY2VTcGFuLCBQcm9wZXJ0eVJlYWQsIFJlY3Vyc2l2ZUFzdFZpc2l0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7Qm91bmRBdHRyaWJ1dGUsIEJvdW5kRXZlbnQsIEJvdW5kVGV4dCwgRWxlbWVudCwgTm9kZSwgTnVsbFZpc2l0b3IsIFRlbXBsYXRlLCB2aXNpdEFsbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcblxuLyoqXG4gKiBBU1QgdmlzaXRvciB0aGF0IHRyYXZlcnNlcyB0aGUgUmVuZGVyMyBIVE1MIEFTVCBpbiBvcmRlciB0byBjaGVjayBpZiB0aGUgZ2l2ZW5cbiAqIHF1ZXJ5IHByb3BlcnR5IGlzIGFjY2Vzc2VkIHN0YXRpY2FsbHkgaW4gdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVVc2FnZVZpc2l0b3IgZXh0ZW5kcyBOdWxsVmlzaXRvciB7XG4gIHByaXZhdGUgaGFzUXVlcnlUZW1wbGF0ZVJlZmVyZW5jZSA9IGZhbHNlO1xuICBwcml2YXRlIGV4cHJlc3Npb25Bc3RWaXNpdG9yID0gbmV3IEV4cHJlc3Npb25Bc3RWaXNpdG9yKHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBxdWVyeVByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gcXVlcnkgaXMgc3RhdGljYWxseSBhY2Nlc3NlZCB3aXRoaW4gdGhlIHNwZWNpZmllZCBIVE1MIG5vZGVzLiAqL1xuICBpc1F1ZXJ5VXNlZFN0YXRpY2FsbHkoaHRtbE5vZGVzOiBOb2RlW10pOiBib29sZWFuIHtcbiAgICB0aGlzLmhhc1F1ZXJ5VGVtcGxhdGVSZWZlcmVuY2UgPSBmYWxzZTtcbiAgICB0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLmhhc1F1ZXJ5UHJvcGVydHlSZWFkID0gZmFsc2U7XG5cbiAgICAvLyBWaXNpdCBhbGwgQVNUIG5vZGVzIGFuZCBjaGVjayBpZiB0aGUgcXVlcnkgcHJvcGVydHkgaXMgdXNlZCBzdGF0aWNhbGx5LlxuICAgIHZpc2l0QWxsKHRoaXMsIGh0bWxOb2Rlcyk7XG5cbiAgICByZXR1cm4gIXRoaXMuaGFzUXVlcnlUZW1wbGF0ZVJlZmVyZW5jZSAmJiB0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLmhhc1F1ZXJ5UHJvcGVydHlSZWFkO1xuICB9XG5cbiAgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGEgdGVtcGxhdGUgcmVmZXJlbmNlcyB2YXJpYWJsZSB0aGF0IG1hdGNoZXMgdGhlIHF1ZXJ5IHByb3BlcnR5XG4gICAgLy8gbmFtZSwgd2UgY2FuIGZpbmlzaCB0aGlzIHZpc2l0b3IgYXMgc3VjaCBhIHRlbXBsYXRlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGluIHRoZVxuICAgIC8vIGVudGlyZSB0ZW1wbGF0ZSBhbmQgdGhlIHF1ZXJ5IHRoZXJlZm9yZSBjYW4ndCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSB0ZW1wbGF0ZS5cbiAgICBpZiAoZWxlbWVudC5yZWZlcmVuY2VzLnNvbWUociA9PiByLm5hbWUgPT09IHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpKSB7XG4gICAgICB0aGlzLmhhc1F1ZXJ5VGVtcGxhdGVSZWZlcmVuY2UgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQuYXR0cmlidXRlcyk7XG4gICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5pbnB1dHMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQub3V0cHV0cyk7XG4gICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5jaGlsZHJlbik7XG4gIH1cblxuICB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZSk6IHZvaWQge1xuICAgIHZpc2l0QWxsKHRoaXMsIHRlbXBsYXRlLmF0dHJpYnV0ZXMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIHRlbXBsYXRlLmlucHV0cyk7XG4gICAgdmlzaXRBbGwodGhpcywgdGVtcGxhdGUub3V0cHV0cyk7XG5cbiAgICAvLyBXZSBkb24ndCB3YW50IHRvIHZpc2l0IGFueSBjaGlsZHJlbiBvZiB0aGUgdGVtcGxhdGUgYXMgdGhlc2UgbmV2ZXIgY2FuJ3RcbiAgICAvLyBhY2Nlc3MgYSBxdWVyeSBzdGF0aWNhbGx5LiBUaGUgdGVtcGxhdGVzIGNhbiBiZSByZW5kZXJlZCBpbiB0aGUgbmdBZnRlclZpZXdJbml0XCJcbiAgICAvLyBsaWZlY3ljbGUgaG9vayBhdCB0aGUgZWFybGllc3QuXG4gIH1cblxuICB2aXNpdEJvdW5kQXR0cmlidXRlKGF0dHJpYnV0ZTogQm91bmRBdHRyaWJ1dGUpIHtcbiAgICBhdHRyaWJ1dGUudmFsdWUudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgYXR0cmlidXRlLnNvdXJjZVNwYW4pO1xuICB9XG5cbiAgdmlzaXRCb3VuZFRleHQodGV4dDogQm91bmRUZXh0KSB7XG4gICAgdGV4dC52YWx1ZS52aXNpdCh0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLCB0ZXh0LnNvdXJjZVNwYW4pO1xuICB9XG5cbiAgdmlzaXRCb3VuZEV2ZW50KG5vZGU6IEJvdW5kRXZlbnQpIHtcbiAgICBub2RlLmhhbmRsZXIudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgbm9kZS5oYW5kbGVyU3Bhbik7XG4gIH1cbn1cblxuLyoqXG4gKiBBU1QgdmlzaXRvciB0aGF0IGNoZWNrcyBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBjb250YWlucyBwcm9wZXJ0eSByZWFkcyB0aGF0XG4gKiByZWZlciB0byB0aGUgc3BlY2lmaWVkIHF1ZXJ5IHByb3BlcnR5IG5hbWUuXG4gKi9cbmNsYXNzIEV4cHJlc3Npb25Bc3RWaXNpdG9yIGV4dGVuZHMgUmVjdXJzaXZlQXN0VmlzaXRvciB7XG4gIGhhc1F1ZXJ5UHJvcGVydHlSZWFkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBxdWVyeVByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHZpc2l0UHJvcGVydHlSZWFkKG5vZGU6IFByb3BlcnR5UmVhZCwgc3BhbjogUGFyc2VTb3VyY2VTcGFuKTogYW55IHtcbiAgICAvLyBUaGUgcmVjZWl2ZXIgb2YgdGhlIHByb3BlcnR5IHJlYWQgbmVlZHMgdG8gYmUgXCJpbXBsaWNpdFwiIGFzIHF1ZXJpZXMgYXJlIGFjY2Vzc2VkXG4gICAgLy8gZnJvbSB0aGUgY29tcG9uZW50IGluc3RhbmNlIGFuZCBub3QgZnJvbSBvdGhlciBvYmplY3RzLlxuICAgIGlmIChub2RlLnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlciAmJiBub2RlLm5hbWUgPT09IHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpIHtcbiAgICAgIHRoaXMuaGFzUXVlcnlQcm9wZXJ0eVJlYWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLnZpc2l0UHJvcGVydHlSZWFkKG5vZGUsIHNwYW4pO1xuICB9XG59XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVfdXNhZ2VfdmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL3N0YXRpYy1xdWVyaWVzL3N0cmF0ZWdpZXMvdXNhZ2Vfc3RyYXRlZ3kvdGVtcGxhdGVfdXNhZ2VfdmlzaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCxnREFBdUc7SUFDdkcsaUVBQTJJO0lBRTNJOzs7T0FHRztJQUNILE1BQWEsb0JBQXFCLFNBQVEsb0JBQVc7UUFJbkQsWUFBbUIsaUJBQXlCO1lBQzFDLEtBQUssRUFBRSxDQUFDO1lBRFMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1lBSHBDLDhCQUF5QixHQUFHLEtBQUssQ0FBQztZQUNsQyx5QkFBb0IsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBSWhGLENBQUM7UUFFRCw2RkFBNkY7UUFDN0YscUJBQXFCLENBQUMsU0FBaUI7WUFDckMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBRXZELDBFQUEwRTtZQUMxRSxpQkFBUSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUUxQixPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUMzRixDQUFDO1FBRVEsWUFBWSxDQUFDLE9BQWdCO1lBQ3BDLGtGQUFrRjtZQUNsRixrRkFBa0Y7WUFDbEYsK0VBQStFO1lBQy9FLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUNuRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO2dCQUN0QyxPQUFPO2FBQ1I7WUFFRCxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkMsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLGlCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVRLGFBQWEsQ0FBQyxRQUFrQjtZQUN2QyxpQkFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLGlCQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVqQywyRUFBMkU7WUFDM0UsbUZBQW1GO1lBQ25GLGtDQUFrQztRQUNwQyxDQUFDO1FBRVEsbUJBQW1CLENBQUMsU0FBeUI7WUFDcEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRVEsY0FBYyxDQUFDLElBQWU7WUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRVEsZUFBZSxDQUFDLElBQWdCO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEUsQ0FBQztLQUNGO0lBdkRELG9EQXVEQztJQUVEOzs7T0FHRztJQUNILE1BQU0sb0JBQXFCLFNBQVEsOEJBQW1CO1FBR3BELFlBQW9CLGlCQUF5QjtZQUMzQyxLQUFLLEVBQUUsQ0FBQztZQURVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtZQUY3Qyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFJN0IsQ0FBQztRQUVRLGlCQUFpQixDQUFDLElBQWtCLEVBQUUsSUFBcUI7WUFDbEUsbUZBQW1GO1lBQ25GLDBEQUEwRDtZQUMxRCxJQUFJLElBQUksQ0FBQyxRQUFRLFlBQVksMkJBQWdCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLE9BQU87YUFDUjtZQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQztLQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW1wbGljaXRSZWNlaXZlciwgUGFyc2VTb3VyY2VTcGFuLCBQcm9wZXJ0eVJlYWQsIFJlY3Vyc2l2ZUFzdFZpc2l0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7Qm91bmRBdHRyaWJ1dGUsIEJvdW5kRXZlbnQsIEJvdW5kVGV4dCwgRWxlbWVudCwgTm9kZSwgTnVsbFZpc2l0b3IsIFRlbXBsYXRlLCB2aXNpdEFsbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcblxuLyoqXG4gKiBBU1QgdmlzaXRvciB0aGF0IHRyYXZlcnNlcyB0aGUgUmVuZGVyMyBIVE1MIEFTVCBpbiBvcmRlciB0byBjaGVjayBpZiB0aGUgZ2l2ZW5cbiAqIHF1ZXJ5IHByb3BlcnR5IGlzIGFjY2Vzc2VkIHN0YXRpY2FsbHkgaW4gdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVVc2FnZVZpc2l0b3IgZXh0ZW5kcyBOdWxsVmlzaXRvciB7XG4gIHByaXZhdGUgaGFzUXVlcnlUZW1wbGF0ZVJlZmVyZW5jZSA9IGZhbHNlO1xuICBwcml2YXRlIGV4cHJlc3Npb25Bc3RWaXNpdG9yID0gbmV3IEV4cHJlc3Npb25Bc3RWaXNpdG9yKHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBxdWVyeVByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gcXVlcnkgaXMgc3RhdGljYWxseSBhY2Nlc3NlZCB3aXRoaW4gdGhlIHNwZWNpZmllZCBIVE1MIG5vZGVzLiAqL1xuICBpc1F1ZXJ5VXNlZFN0YXRpY2FsbHkoaHRtbE5vZGVzOiBOb2RlW10pOiBib29sZWFuIHtcbiAgICB0aGlzLmhhc1F1ZXJ5VGVtcGxhdGVSZWZlcmVuY2UgPSBmYWxzZTtcbiAgICB0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLmhhc1F1ZXJ5UHJvcGVydHlSZWFkID0gZmFsc2U7XG5cbiAgICAvLyBWaXNpdCBhbGwgQVNUIG5vZGVzIGFuZCBjaGVjayBpZiB0aGUgcXVlcnkgcHJvcGVydHkgaXMgdXNlZCBzdGF0aWNhbGx5LlxuICAgIHZpc2l0QWxsKHRoaXMsIGh0bWxOb2Rlcyk7XG5cbiAgICByZXR1cm4gIXRoaXMuaGFzUXVlcnlUZW1wbGF0ZVJlZmVyZW5jZSAmJiB0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLmhhc1F1ZXJ5UHJvcGVydHlSZWFkO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGEgdGVtcGxhdGUgcmVmZXJlbmNlcyB2YXJpYWJsZSB0aGF0IG1hdGNoZXMgdGhlIHF1ZXJ5IHByb3BlcnR5XG4gICAgLy8gbmFtZSwgd2UgY2FuIGZpbmlzaCB0aGlzIHZpc2l0b3IgYXMgc3VjaCBhIHRlbXBsYXRlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGluIHRoZVxuICAgIC8vIGVudGlyZSB0ZW1wbGF0ZSBhbmQgdGhlIHF1ZXJ5IHRoZXJlZm9yZSBjYW4ndCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSB0ZW1wbGF0ZS5cbiAgICBpZiAoZWxlbWVudC5yZWZlcmVuY2VzLnNvbWUociA9PiByLm5hbWUgPT09IHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpKSB7XG4gICAgICB0aGlzLmhhc1F1ZXJ5VGVtcGxhdGVSZWZlcmVuY2UgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQuYXR0cmlidXRlcyk7XG4gICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5pbnB1dHMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQub3V0cHV0cyk7XG4gICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5jaGlsZHJlbik7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZSk6IHZvaWQge1xuICAgIHZpc2l0QWxsKHRoaXMsIHRlbXBsYXRlLmF0dHJpYnV0ZXMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIHRlbXBsYXRlLmlucHV0cyk7XG4gICAgdmlzaXRBbGwodGhpcywgdGVtcGxhdGUub3V0cHV0cyk7XG5cbiAgICAvLyBXZSBkb24ndCB3YW50IHRvIHZpc2l0IGFueSBjaGlsZHJlbiBvZiB0aGUgdGVtcGxhdGUgYXMgdGhlc2UgbmV2ZXIgY2FuJ3RcbiAgICAvLyBhY2Nlc3MgYSBxdWVyeSBzdGF0aWNhbGx5LiBUaGUgdGVtcGxhdGVzIGNhbiBiZSByZW5kZXJlZCBpbiB0aGUgbmdBZnRlclZpZXdJbml0XCJcbiAgICAvLyBsaWZlY3ljbGUgaG9vayBhdCB0aGUgZWFybGllc3QuXG4gIH1cblxuICBvdmVycmlkZSB2aXNpdEJvdW5kQXR0cmlidXRlKGF0dHJpYnV0ZTogQm91bmRBdHRyaWJ1dGUpIHtcbiAgICBhdHRyaWJ1dGUudmFsdWUudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgYXR0cmlidXRlLnNvdXJjZVNwYW4pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRCb3VuZFRleHQodGV4dDogQm91bmRUZXh0KSB7XG4gICAgdGV4dC52YWx1ZS52aXNpdCh0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLCB0ZXh0LnNvdXJjZVNwYW4pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRCb3VuZEV2ZW50KG5vZGU6IEJvdW5kRXZlbnQpIHtcbiAgICBub2RlLmhhbmRsZXIudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgbm9kZS5oYW5kbGVyU3Bhbik7XG4gIH1cbn1cblxuLyoqXG4gKiBBU1QgdmlzaXRvciB0aGF0IGNoZWNrcyBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBjb250YWlucyBwcm9wZXJ0eSByZWFkcyB0aGF0XG4gKiByZWZlciB0byB0aGUgc3BlY2lmaWVkIHF1ZXJ5IHByb3BlcnR5IG5hbWUuXG4gKi9cbmNsYXNzIEV4cHJlc3Npb25Bc3RWaXNpdG9yIGV4dGVuZHMgUmVjdXJzaXZlQXN0VmlzaXRvciB7XG4gIGhhc1F1ZXJ5UHJvcGVydHlSZWFkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBxdWVyeVByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHZpc2l0UHJvcGVydHlSZWFkKG5vZGU6IFByb3BlcnR5UmVhZCwgc3BhbjogUGFyc2VTb3VyY2VTcGFuKTogYW55IHtcbiAgICAvLyBUaGUgcmVjZWl2ZXIgb2YgdGhlIHByb3BlcnR5IHJlYWQgbmVlZHMgdG8gYmUgXCJpbXBsaWNpdFwiIGFzIHF1ZXJpZXMgYXJlIGFjY2Vzc2VkXG4gICAgLy8gZnJvbSB0aGUgY29tcG9uZW50IGluc3RhbmNlIGFuZCBub3QgZnJvbSBvdGhlciBvYmplY3RzLlxuICAgIGlmIChub2RlLnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlciAmJiBub2RlLm5hbWUgPT09IHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpIHtcbiAgICAgIHRoaXMuaGFzUXVlcnlQcm9wZXJ0eVJlYWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLnZpc2l0UHJvcGVydHlSZWFkKG5vZGUsIHNwYW4pO1xuICB9XG59XG4iXX0=
@@ -76,4 +76,4 @@
76
76
  }
77
77
  }
78
78
  });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbF92YXJpYWJsZV9hc3NpZ25tZW50X3Zpc2l0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy90ZW1wbGF0ZS12YXItYXNzaWdubWVudC9hbmd1bGFyL2h0bWxfdmFyaWFibGVfYXNzaWdubWVudF92aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILGdEQUF3RztJQUN4RyxpRUFBb0g7SUFRcEg7OztPQUdHO0lBQ0gsTUFBYSw2QkFBOEIsU0FBUSxvQkFBVztRQUE5RDs7WUFDRSx3QkFBbUIsR0FBaUMsRUFBRSxDQUFDO1lBRS9DLHFCQUFnQixHQUFlLEVBQUUsQ0FBQztZQUNsQyx5QkFBb0IsR0FDeEIsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUErQmhGLENBQUM7UUE3QkMsWUFBWSxDQUFDLE9BQWdCO1lBQzNCLGlCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVELGFBQWEsQ0FBQyxRQUFrQjtZQUM5Qiw2RUFBNkU7WUFDN0UsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbEQsOEVBQThFO1lBQzlFLGlGQUFpRjtZQUNqRiwyQ0FBMkM7WUFDM0MsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxDLDZFQUE2RTtZQUM3RSxtQ0FBbUM7WUFDbkMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXJELElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDOUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxlQUFlLENBQUMsSUFBZ0I7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRSxDQUFDO0tBQ0Y7SUFwQ0Qsc0VBb0NDO0lBRUQsd0ZBQXdGO0lBQ3hGLE1BQU0sb0JBQXFCLFNBQVEsOEJBQW1CO1FBQ3BELFlBQ1ksbUJBQWlELEVBQ2pELGdCQUE0QjtZQUN0QyxLQUFLLEVBQUUsQ0FBQztZQUZFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBOEI7WUFDakQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFZO1FBRXhDLENBQUM7UUFFRCxrQkFBa0IsQ0FBQyxJQUFtQixFQUFFLElBQXFCO1lBQzNELElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSwyQkFBZ0I7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztvQkFDNUIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtvQkFDeEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDckIsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7S0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0ltcGxpY2l0UmVjZWl2ZXIsIFBhcnNlU291cmNlU3BhbiwgUHJvcGVydHlXcml0ZSwgUmVjdXJzaXZlQXN0VmlzaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtCb3VuZEV2ZW50LCBFbGVtZW50LCBOdWxsVmlzaXRvciwgVGVtcGxhdGUsIFZhcmlhYmxlLCB2aXNpdEFsbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVZhcmlhYmxlQXNzaWdubWVudCB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICBub2RlOiBQcm9wZXJ0eVdyaXRlO1xufVxuXG4vKipcbiAqIEhUTUwgQVNUIHZpc2l0b3IgdGhhdCB0cmF2ZXJzZXMgdGhlIFJlbmRlcjMgSFRNTCBBU1QgaW4gb3JkZXIgdG8gZmluZCBhbGxcbiAqIGV4cHJlc3Npb25zIHRoYXQgd3JpdGUgdG8gbG9jYWwgdGVtcGxhdGUgdmFyaWFibGVzIHdpdGhpbiBib3VuZCBldmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIdG1sVmFyaWFibGVBc3NpZ25tZW50VmlzaXRvciBleHRlbmRzIE51bGxWaXNpdG9yIHtcbiAgdmFyaWFibGVBc3NpZ25tZW50czogVGVtcGxhdGVWYXJpYWJsZUFzc2lnbm1lbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgY3VycmVudFZhcmlhYmxlczogVmFyaWFibGVbXSA9IFtdO1xuICBwcml2YXRlIGV4cHJlc3Npb25Bc3RWaXNpdG9yID1cbiAgICAgIG5ldyBFeHByZXNzaW9uQXN0VmlzaXRvcih0aGlzLnZhcmlhYmxlQXNzaWdubWVudHMsIHRoaXMuY3VycmVudFZhcmlhYmxlcyk7XG5cbiAgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICB2aXNpdEFsbCh0aGlzLCBlbGVtZW50Lm91dHB1dHMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQuY2hpbGRyZW4pO1xuICB9XG5cbiAgdmlzaXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGUpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRyYWNrIG9mIHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgd2hpY2ggY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZSB0ZW1wbGF0ZVxuICAgIC8vIGNoaWxkIG5vZGVzIHRocm91Z2ggdGhlIGltcGxpY2l0IHJlY2VpdmVyLlxuICAgIHRoaXMuY3VycmVudFZhcmlhYmxlcy5wdXNoKC4uLnRlbXBsYXRlLnZhcmlhYmxlcyk7XG5cbiAgICAvLyBWaXNpdCBhbGwgY2hpbGRyZW4gb2YgdGhlIHRlbXBsYXRlLiBUaGUgdGVtcGxhdGUgcHJveGllcyB0aGUgb3V0cHV0cyBvZiB0aGVcbiAgICAvLyBpbW1lZGlhdGUgY2hpbGQgZWxlbWVudHMsIHNvIHdlIGp1c3QgaWdub3JlIG91dHB1dHMgb24gdGhlIFwiVGVtcGxhdGVcIiBpbiBvcmRlclxuICAgIC8vIHRvIG5vdCB2aXNpdCBzaW1pbGFyIGJvdW5kIGV2ZW50cyB0d2ljZS5cbiAgICB2aXNpdEFsbCh0aGlzLCB0ZW1wbGF0ZS5jaGlsZHJlbik7XG5cbiAgICAvLyBSZW1vdmUgYWxsIHByZXZpb3VzbHkgYWRkZWQgdmFyaWFibGVzIHNpbmNlIGFsbCBjaGlsZHJlbiB0aGF0IGNvdWxkIGFjY2Vzc1xuICAgIC8vIHRoZXNlIGhhdmUgYmVlbiB2aXNpdGVkIGFscmVhZHkuXG4gICAgdGVtcGxhdGUudmFyaWFibGVzLmZvckVhY2godiA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZUlkeCA9IHRoaXMuY3VycmVudFZhcmlhYmxlcy5pbmRleE9mKHYpO1xuXG4gICAgICBpZiAodmFyaWFibGVJZHggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZhcmlhYmxlcy5zcGxpY2UodmFyaWFibGVJZHgsIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdmlzaXRCb3VuZEV2ZW50KG5vZGU6IEJvdW5kRXZlbnQpIHtcbiAgICBub2RlLmhhbmRsZXIudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgbm9kZS5oYW5kbGVyU3Bhbik7XG4gIH1cbn1cblxuLyoqIEFTVCB2aXNpdG9yIHRoYXQgcmVzb2x2ZXMgYWxsIHZhcmlhYmxlIGFzc2lnbm1lbnRzIHdpdGhpbiBhIGdpdmVuIGV4cHJlc3Npb24gQVNULiAqL1xuY2xhc3MgRXhwcmVzc2lvbkFzdFZpc2l0b3IgZXh0ZW5kcyBSZWN1cnNpdmVBc3RWaXNpdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHZhcmlhYmxlQXNzaWdubWVudHM6IFRlbXBsYXRlVmFyaWFibGVBc3NpZ25tZW50W10sXG4gICAgICBwcml2YXRlIGN1cnJlbnRWYXJpYWJsZXM6IFZhcmlhYmxlW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgdmlzaXRQcm9wZXJ0eVdyaXRlKG5vZGU6IFByb3BlcnR5V3JpdGUsIHNwYW46IFBhcnNlU291cmNlU3Bhbikge1xuICAgIGlmIChub2RlLnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlciAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRWYXJpYWJsZXMuc29tZSh2ID0+IHYubmFtZSA9PT0gbm9kZS5uYW1lKSkge1xuICAgICAgdGhpcy52YXJpYWJsZUFzc2lnbm1lbnRzLnB1c2goe1xuICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICBzdGFydDogc3Bhbi5zdGFydC5vZmZzZXQsXG4gICAgICAgIGVuZDogc3Bhbi5lbmQub2Zmc2V0LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHN1cGVyLnZpc2l0UHJvcGVydHlXcml0ZShub2RlLCBzcGFuKTtcbiAgfVxufVxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbF92YXJpYWJsZV9hc3NpZ25tZW50X3Zpc2l0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy90ZW1wbGF0ZS12YXItYXNzaWdubWVudC9hbmd1bGFyL2h0bWxfdmFyaWFibGVfYXNzaWdubWVudF92aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILGdEQUF3RztJQUN4RyxpRUFBb0g7SUFRcEg7OztPQUdHO0lBQ0gsTUFBYSw2QkFBOEIsU0FBUSxvQkFBVztRQUE5RDs7WUFDRSx3QkFBbUIsR0FBaUMsRUFBRSxDQUFDO1lBRS9DLHFCQUFnQixHQUFlLEVBQUUsQ0FBQztZQUNsQyx5QkFBb0IsR0FDeEIsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUErQmhGLENBQUM7UUE3QlUsWUFBWSxDQUFDLE9BQWdCO1lBQ3BDLGlCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVRLGFBQWEsQ0FBQyxRQUFrQjtZQUN2Qyw2RUFBNkU7WUFDN0UsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbEQsOEVBQThFO1lBQzlFLGlGQUFpRjtZQUNqRiwyQ0FBMkM7WUFDM0MsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxDLDZFQUE2RTtZQUM3RSxtQ0FBbUM7WUFDbkMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXJELElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDOUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFUSxlQUFlLENBQUMsSUFBZ0I7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRSxDQUFDO0tBQ0Y7SUFwQ0Qsc0VBb0NDO0lBRUQsd0ZBQXdGO0lBQ3hGLE1BQU0sb0JBQXFCLFNBQVEsOEJBQW1CO1FBQ3BELFlBQ1ksbUJBQWlELEVBQ2pELGdCQUE0QjtZQUN0QyxLQUFLLEVBQUUsQ0FBQztZQUZFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBOEI7WUFDakQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFZO1FBRXhDLENBQUM7UUFFUSxrQkFBa0IsQ0FBQyxJQUFtQixFQUFFLElBQXFCO1lBQ3BFLElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSwyQkFBZ0I7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztvQkFDNUIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtvQkFDeEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDckIsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7S0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0ltcGxpY2l0UmVjZWl2ZXIsIFBhcnNlU291cmNlU3BhbiwgUHJvcGVydHlXcml0ZSwgUmVjdXJzaXZlQXN0VmlzaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtCb3VuZEV2ZW50LCBFbGVtZW50LCBOdWxsVmlzaXRvciwgVGVtcGxhdGUsIFZhcmlhYmxlLCB2aXNpdEFsbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVZhcmlhYmxlQXNzaWdubWVudCB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICBub2RlOiBQcm9wZXJ0eVdyaXRlO1xufVxuXG4vKipcbiAqIEhUTUwgQVNUIHZpc2l0b3IgdGhhdCB0cmF2ZXJzZXMgdGhlIFJlbmRlcjMgSFRNTCBBU1QgaW4gb3JkZXIgdG8gZmluZCBhbGxcbiAqIGV4cHJlc3Npb25zIHRoYXQgd3JpdGUgdG8gbG9jYWwgdGVtcGxhdGUgdmFyaWFibGVzIHdpdGhpbiBib3VuZCBldmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIdG1sVmFyaWFibGVBc3NpZ25tZW50VmlzaXRvciBleHRlbmRzIE51bGxWaXNpdG9yIHtcbiAgdmFyaWFibGVBc3NpZ25tZW50czogVGVtcGxhdGVWYXJpYWJsZUFzc2lnbm1lbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgY3VycmVudFZhcmlhYmxlczogVmFyaWFibGVbXSA9IFtdO1xuICBwcml2YXRlIGV4cHJlc3Npb25Bc3RWaXNpdG9yID1cbiAgICAgIG5ldyBFeHByZXNzaW9uQXN0VmlzaXRvcih0aGlzLnZhcmlhYmxlQXNzaWdubWVudHMsIHRoaXMuY3VycmVudFZhcmlhYmxlcyk7XG5cbiAgb3ZlcnJpZGUgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICB2aXNpdEFsbCh0aGlzLCBlbGVtZW50Lm91dHB1dHMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQuY2hpbGRyZW4pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGUpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRyYWNrIG9mIHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgd2hpY2ggY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZSB0ZW1wbGF0ZVxuICAgIC8vIGNoaWxkIG5vZGVzIHRocm91Z2ggdGhlIGltcGxpY2l0IHJlY2VpdmVyLlxuICAgIHRoaXMuY3VycmVudFZhcmlhYmxlcy5wdXNoKC4uLnRlbXBsYXRlLnZhcmlhYmxlcyk7XG5cbiAgICAvLyBWaXNpdCBhbGwgY2hpbGRyZW4gb2YgdGhlIHRlbXBsYXRlLiBUaGUgdGVtcGxhdGUgcHJveGllcyB0aGUgb3V0cHV0cyBvZiB0aGVcbiAgICAvLyBpbW1lZGlhdGUgY2hpbGQgZWxlbWVudHMsIHNvIHdlIGp1c3QgaWdub3JlIG91dHB1dHMgb24gdGhlIFwiVGVtcGxhdGVcIiBpbiBvcmRlclxuICAgIC8vIHRvIG5vdCB2aXNpdCBzaW1pbGFyIGJvdW5kIGV2ZW50cyB0d2ljZS5cbiAgICB2aXNpdEFsbCh0aGlzLCB0ZW1wbGF0ZS5jaGlsZHJlbik7XG5cbiAgICAvLyBSZW1vdmUgYWxsIHByZXZpb3VzbHkgYWRkZWQgdmFyaWFibGVzIHNpbmNlIGFsbCBjaGlsZHJlbiB0aGF0IGNvdWxkIGFjY2Vzc1xuICAgIC8vIHRoZXNlIGhhdmUgYmVlbiB2aXNpdGVkIGFscmVhZHkuXG4gICAgdGVtcGxhdGUudmFyaWFibGVzLmZvckVhY2godiA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZUlkeCA9IHRoaXMuY3VycmVudFZhcmlhYmxlcy5pbmRleE9mKHYpO1xuXG4gICAgICBpZiAodmFyaWFibGVJZHggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZhcmlhYmxlcy5zcGxpY2UodmFyaWFibGVJZHgsIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRCb3VuZEV2ZW50KG5vZGU6IEJvdW5kRXZlbnQpIHtcbiAgICBub2RlLmhhbmRsZXIudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgbm9kZS5oYW5kbGVyU3Bhbik7XG4gIH1cbn1cblxuLyoqIEFTVCB2aXNpdG9yIHRoYXQgcmVzb2x2ZXMgYWxsIHZhcmlhYmxlIGFzc2lnbm1lbnRzIHdpdGhpbiBhIGdpdmVuIGV4cHJlc3Npb24gQVNULiAqL1xuY2xhc3MgRXhwcmVzc2lvbkFzdFZpc2l0b3IgZXh0ZW5kcyBSZWN1cnNpdmVBc3RWaXNpdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHZhcmlhYmxlQXNzaWdubWVudHM6IFRlbXBsYXRlVmFyaWFibGVBc3NpZ25tZW50W10sXG4gICAgICBwcml2YXRlIGN1cnJlbnRWYXJpYWJsZXM6IFZhcmlhYmxlW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRQcm9wZXJ0eVdyaXRlKG5vZGU6IFByb3BlcnR5V3JpdGUsIHNwYW46IFBhcnNlU291cmNlU3Bhbikge1xuICAgIGlmIChub2RlLnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlciAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRWYXJpYWJsZXMuc29tZSh2ID0+IHYubmFtZSA9PT0gbm9kZS5uYW1lKSkge1xuICAgICAgdGhpcy52YXJpYWJsZUFzc2lnbm1lbnRzLnB1c2goe1xuICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICBzdGFydDogc3Bhbi5zdGFydC5vZmZzZXQsXG4gICAgICAgIGVuZDogc3Bhbi5lbmQub2Zmc2V0LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHN1cGVyLnZpc2l0UHJvcGVydHlXcml0ZShub2RlLCBzcGFuKTtcbiAgfVxufVxuIl19
@@ -97,7 +97,7 @@
97
97
  },
98
98
  "migration-v12-deep-shadow-piercing-selector": {
99
99
  "version": "12.0.2",
100
- "description": "Automatically migrates shadow-piercing selector from `/deep/` to the recommanded alternative `::ng-deep`.",
100
+ "description": "Automatically migrates shadow-piercing selector from `/deep/` to the recommended alternative `::ng-deep`.",
101
101
  "factory": "./migrations/deep-shadow-piercing-selector/index"
102
102
  }
103
103
  }
@@ -1,10 +1,9 @@
1
1
  /**
2
- * @license Angular v12.1.0-next.5
2
+ * @license Angular v12.1.2
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
-
8
7
  /**
9
8
  * @description
10
9
  *
@@ -167,7 +166,7 @@ declare abstract class ComponentFactory<C> {
167
166
  * @see [Dynamic Components](guide/dynamic-component-loader)
168
167
  * @see [Usage Example](guide/dynamic-component-loader#resolving-components)
169
168
  * @see <live-example name="dynamic-component-loader" noDownload></live-example>
170
- of the code in this cookbook
169
+ of the code in this cookbook
171
170
  * @publicApi
172
171
  */
173
172
  declare abstract class ComponentFactoryResolver {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v12.1.0-next.5
2
+ * @license Angular v12.1.2
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -231,6 +231,17 @@ export declare type MetadataOverride<T> = {
231
231
  set?: Partial<T>;
232
232
  };
233
233
 
234
+ /**
235
+ * Object used to configure the test module teardown behavior in `TestBed`.
236
+ * @publicApi
237
+ */
238
+ export declare interface ModuleTeardownOptions {
239
+ /** Whether the test module should be destroyed after every test. */
240
+ destroyAfterEach: boolean;
241
+ /** Whether errors during test module destruction should be re-thrown. Defaults to `true`. */
242
+ rethrowErrors?: boolean;
243
+ }
244
+
234
245
  /**
235
246
  * Clears out the shared fake async zone for a test.
236
247
  * To be called in a global `beforeEach`.
@@ -256,6 +267,7 @@ export declare interface TestBed {
256
267
  * Test modules and platforms for individual platforms are available from
257
268
  * '@angular/<platform_name>/testing'.
258
269
  */
270
+ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, options?: TestEnvironmentOptions): void;
259
271
  initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;
260
272
  /**
261
273
  * Reset the providers for the test injector.
@@ -319,6 +331,9 @@ export declare const TestBed: TestBedStatic;
319
331
  */
320
332
  export declare interface TestBedStatic {
321
333
  new (...args: any[]): TestBed;
334
+ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, options?: {
335
+ teardown?: ModuleTeardownOptions;
336
+ }): TestBed;
322
337
  initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): TestBed;
323
338
  /**
324
339
  * Reset the providers for the test injector.
@@ -389,6 +404,15 @@ export declare interface TestBedStatic {
389
404
  */
390
405
  export declare class TestComponentRenderer {
391
406
  insertRootElement(rootElementId: string): void;
407
+ removeAllRootElements?(): void;
408
+ }
409
+
410
+ /**
411
+ * @publicApi
412
+ */
413
+ export declare interface TestEnvironmentOptions {
414
+ aotSummaries?: () => any[];
415
+ teardown?: ModuleTeardownOptions;
392
416
  }
393
417
 
394
418
  /**
@@ -400,6 +424,7 @@ export declare type TestModuleMetadata = {
400
424
  imports?: any[];
401
425
  schemas?: Array<SchemaMetadata | any[]>;
402
426
  aotSummaries?: () => any[];
427
+ teardown?: ModuleTeardownOptions;
403
428
  };
404
429
 
405
430
  /**
@@ -508,6 +533,16 @@ export declare function withModule(moduleDef: TestModuleMetadata, fn: Function):
508
533
  * according to the compiler used.
509
534
  */
510
535
  export declare class ɵangular_packages_core_testing_testing_a implements TestBed {
536
+ /**
537
+ * Teardown options that have been configured at the environment level.
538
+ * Used as a fallback if no instance-level options have been provided.
539
+ */
540
+ private static _environmentTeardownOptions;
541
+ /**
542
+ * Teardown options that have been configured at the `TestBed` instance level.
543
+ * These options take precedence over the environemnt-level ones.
544
+ */
545
+ private _instanceTeardownOptions;
511
546
  /**
512
547
  * Initialize the environment for testing with a compiler factory, a PlatformRef, and an
513
548
  * angular module. These are common to every test in the suite.
@@ -519,7 +554,7 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
519
554
  * Test modules and platforms for individual platforms are available from
520
555
  * '@angular/<platform_name>/testing'.
521
556
  */
522
- static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): ɵangular_packages_core_testing_testing_a;
557
+ static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, summariesOrOptions?: TestEnvironmentOptions | (() => any[])): ɵangular_packages_core_testing_testing_a;
523
558
  /**
524
559
  * Reset the providers for the test injector.
525
560
  */
@@ -578,10 +613,13 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
578
613
  */
579
614
  static get(token: any, notFoundValue?: any): any;
580
615
  static createComponent<T>(component: Type<T>): ComponentFixture<T>;
616
+ static shouldTearDownTestingModule(): boolean;
617
+ static tearDownTestingModule(): void;
581
618
  private _instantiated;
582
619
  private _compiler;
583
620
  private _moduleRef;
584
621
  private _moduleFactory;
622
+ private _pendingModuleFactory;
585
623
  private _compilerOptions;
586
624
  private _moduleOverrides;
587
625
  private _componentOverrides;
@@ -610,7 +648,7 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
610
648
  * Test modules and platforms for individual platforms are available from
611
649
  * '@angular/<platform_name>/testing'.
612
650
  */
613
- initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;
651
+ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, summariesOrOptions?: TestEnvironmentOptions | (() => any[])): void;
614
652
  /**
615
653
  * Reset the providers for the test injector.
616
654
  */
@@ -649,6 +687,10 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
649
687
  private overrideProviderImpl;
650
688
  overrideTemplateUsingTestingModule(component: Type<any>, template: string): void;
651
689
  createComponent<T>(component: Type<T>): ComponentFixture<T>;
690
+ private destroyActiveFixtures;
691
+ private shouldRethrowTeardownErrors;
692
+ shouldTearDownTestingModule(): boolean;
693
+ tearDownTestingModule(): void;
652
694
  }
653
695
 
654
696
  /**
@@ -662,6 +704,16 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
662
704
  * according to the compiler used.
663
705
  */
664
706
  export declare class ɵangular_packages_core_testing_testing_b implements TestBed {
707
+ /**
708
+ * Teardown options that have been configured at the environment level.
709
+ * Used as a fallback if no instance-level options have been provided.
710
+ */
711
+ private static _environmentTeardownOptions;
712
+ /**
713
+ * Teardown options that have been configured at the `TestBed` instance level.
714
+ * These options take precedence over the environemnt-level ones.
715
+ */
716
+ private _instanceTeardownOptions;
665
717
  /**
666
718
  * Initialize the environment for testing with a compiler factory, a PlatformRef, and an
667
719
  * angular module. These are common to every test in the suite.
@@ -675,7 +727,7 @@ export declare class ɵangular_packages_core_testing_testing_b implements TestBe
675
727
  *
676
728
  * @publicApi
677
729
  */
678
- static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): TestBed;
730
+ static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, summariesOrOptions?: TestEnvironmentOptions | (() => any[])): TestBed;
679
731
  /**
680
732
  * Reset the providers for the test injector.
681
733
  *
@@ -724,6 +776,8 @@ export declare class ɵangular_packages_core_testing_testing_b implements TestBe
724
776
  static get(token: any, notFoundValue?: any): any;
725
777
  static createComponent<T>(component: Type<T>): ComponentFixture<T>;
726
778
  static resetTestingModule(): TestBedStatic;
779
+ static shouldTearDownTestingModule(): boolean;
780
+ static tearDownTestingModule(): void;
727
781
  platform: PlatformRef;
728
782
  ngModule: Type<any> | Type<any>[];
729
783
  private _compiler;
@@ -743,7 +797,9 @@ export declare class ɵangular_packages_core_testing_testing_b implements TestBe
743
797
  *
744
798
  * @publicApi
745
799
  */
746
- initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;
800
+ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, summariesOrOptions?: {
801
+ teardown?: ModuleTeardownOptions;
802
+ } | (() => any[])): void;
747
803
  /**
748
804
  * Reset the providers for the test injector.
749
805
  *
@@ -793,6 +849,9 @@ export declare class ɵangular_packages_core_testing_testing_b implements TestBe
793
849
  */
794
850
  private checkGlobalCompilationFinished;
795
851
  private destroyActiveFixtures;
852
+ private shouldRethrowTeardownErrors;
853
+ shouldTearDownTestingModule(): boolean;
854
+ tearDownTestingModule(): void;
796
855
  }
797
856
 
798
857
  export declare function ɵangular_packages_core_testing_testing_c(): ɵangular_packages_core_testing_testing_b;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"ɵangular_packages_core_testing_testing_a":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"overrideProviderImpl":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}]},"statics":{"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":640,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":229,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":230,"character":27},"member":"Default"}],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":640,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":640,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}}}},"waitForAsync":{"__symbolic":"function"},"async":{"__symbolic":"function","parameters":["fn"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"waitForAsync"},"arguments":[{"__symbolic":"reference","name":"fn"}]}},"ComponentFixture":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ComponentRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":53,"character":40,"context":{"typeName":"T"},"module":"./testing"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":53,"character":59},{"__symbolic":"reference","name":"boolean"}]}],"_tick":[{"__symbolic":"method"}],"detectChanges":[{"__symbolic":"method"}],"checkNoChanges":[{"__symbolic":"method"}],"autoDetectChanges":[{"__symbolic":"method"}],"isStable":[{"__symbolic":"method"}],"whenStable":[{"__symbolic":"method"}],"_getRenderer":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"resetFakeAsyncZone":{"__symbolic":"function"},"fakeAsync":{"__symbolic":"function"},"tick":{"__symbolic":"function"},"flush":{"__symbolic":"function"},"discardPeriodicTasks":{"__symbolic":"function"},"flushMicrotasks":{"__symbolic":"function"},"TestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":627,"character":4},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"},"elseExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_a"}},"getTestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":636,"character":41},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":640,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":675,"character":34,"module":"./testing"}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"},"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":27,"character":8},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":32,"character":44},"arguments":["ComponentFixtureNoNgZone"]},"TestModuleMetadata":{"__symbolic":"interface"},"TestBedStatic":{"__symbolic":"interface"},"MetadataOverride":{"__symbolic":"interface"},"ɵMetadataOverrider":{"__symbolic":"class","members":{"overrideMetadata":[{"__symbolic":"method"}]}},"ɵTestingCompiler":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":22,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1}}],"members":{"overrideModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"loadAotSummaries":[{"__symbolic":"method"}],"getComponentFactory":[{"__symbolic":"method"}],"getComponentFromError":[{"__symbolic":"method"}]}},"ɵTestingCompilerFactory":{"__symbolic":"class","members":{"createTestingCompiler":[{"__symbolic":"method"}]}},"ɵangular_packages_core_testing_testing_b":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"assertNotInstantiated":[{"__symbolic":"method"}],"checkGlobalCompilationFinished":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}]},"statics":{"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":170,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":171,"character":27},"member":"Default"}],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}}}},"ɵangular_packages_core_testing_testing_c":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":{"__symbolic":"error","message":"Reference to a local symbol","line":418,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"error","message":"Reference to a local symbol","line":418,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"}}}}}},"origins":{"ɵangular_packages_core_testing_testing_a":"./testing","waitForAsync":"./testing","async":"./testing","ComponentFixture":"./testing","resetFakeAsyncZone":"./testing","fakeAsync":"./testing","tick":"./testing","flush":"./testing","discardPeriodicTasks":"./testing","flushMicrotasks":"./testing","TestBed":"./testing","getTestBed":"./testing","inject":"./testing","InjectSetupWrapper":"./testing","withModule":"./testing","TestComponentRenderer":"./testing","ComponentFixtureAutoDetect":"./testing","ComponentFixtureNoNgZone":"./testing","TestModuleMetadata":"./testing","TestBedStatic":"./testing","__core_private_testing_placeholder__":"./testing","MetadataOverride":"./testing","ɵMetadataOverrider":"./testing","ɵTestingCompiler":"./testing","ɵTestingCompilerFactory":"./testing","ɵangular_packages_core_testing_testing_b":"./testing","ɵangular_packages_core_testing_testing_c":"./testing"},"importAs":"@angular/core/testing"}
1
+ {"__symbolic":"module","version":4,"metadata":{"ɵangular_packages_core_testing_testing_a":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"overrideProviderImpl":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}],"shouldRethrowTeardownErrors":[{"__symbolic":"method"}],"shouldTearDownTestingModule":[{"__symbolic":"method"}],"tearDownTestingModule":[{"__symbolic":"method"}]},"statics":{"_environmentTeardownOptions":{"__symbolic":"error","message":"Variable not initialized","line":106,"character":17},"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":244,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":245,"character":27},"member":"Default"}],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"shouldTearDownTestingModule":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}}}},"waitForAsync":{"__symbolic":"function"},"async":{"__symbolic":"function","parameters":["fn"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"waitForAsync"},"arguments":[{"__symbolic":"reference","name":"fn"}]}},"ComponentFixture":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ComponentRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":53,"character":40,"context":{"typeName":"T"},"module":"./testing"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":53,"character":59},{"__symbolic":"reference","name":"boolean"}]}],"_tick":[{"__symbolic":"method"}],"detectChanges":[{"__symbolic":"method"}],"checkNoChanges":[{"__symbolic":"method"}],"autoDetectChanges":[{"__symbolic":"method"}],"isStable":[{"__symbolic":"method"}],"whenStable":[{"__symbolic":"method"}],"_getRenderer":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"resetFakeAsyncZone":{"__symbolic":"function"},"fakeAsync":{"__symbolic":"function"},"tick":{"__symbolic":"function"},"flush":{"__symbolic":"function"},"discardPeriodicTasks":{"__symbolic":"function"},"flushMicrotasks":{"__symbolic":"function"},"TestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":738,"character":4},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"},"elseExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_a"}},"getTestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":747,"character":41},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":786,"character":34,"module":"./testing"}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"},"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}],"removeAllRootElements":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":34,"character":8},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":39,"character":44},"arguments":["ComponentFixtureNoNgZone"]},"TestModuleMetadata":{"__symbolic":"interface"},"TestEnvironmentOptions":{"__symbolic":"interface"},"ModuleTeardownOptions":{"__symbolic":"interface"},"TestBedStatic":{"__symbolic":"interface"},"MetadataOverride":{"__symbolic":"interface"},"ɵMetadataOverrider":{"__symbolic":"class","members":{"overrideMetadata":[{"__symbolic":"method"}]}},"ɵTestingCompiler":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":22,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1}}],"members":{"overrideModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"loadAotSummaries":[{"__symbolic":"method"}],"getComponentFactory":[{"__symbolic":"method"}],"getComponentFromError":[{"__symbolic":"method"}]}},"ɵTestingCompilerFactory":{"__symbolic":"class","members":{"createTestingCompiler":[{"__symbolic":"method"}]}},"ɵangular_packages_core_testing_testing_b":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"assertNotInstantiated":[{"__symbolic":"method"}],"checkGlobalCompilationFinished":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}],"shouldRethrowTeardownErrors":[{"__symbolic":"method"}],"shouldTearDownTestingModule":[{"__symbolic":"method"}],"tearDownTestingModule":[{"__symbolic":"method"}]},"statics":{"_environmentTeardownOptions":{"__symbolic":"error","message":"Variable not initialized","line":58,"character":17},"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":183,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":184,"character":27},"member":"Default"}],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}},"shouldTearDownTestingModule":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"shouldTearDownTestingModule"}}}}},"ɵangular_packages_core_testing_testing_c":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":{"__symbolic":"error","message":"Reference to a local symbol","line":515,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"error","message":"Reference to a local symbol","line":515,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"}}}}}},"origins":{"ɵangular_packages_core_testing_testing_a":"./testing","waitForAsync":"./testing","async":"./testing","ComponentFixture":"./testing","resetFakeAsyncZone":"./testing","fakeAsync":"./testing","tick":"./testing","flush":"./testing","discardPeriodicTasks":"./testing","flushMicrotasks":"./testing","TestBed":"./testing","getTestBed":"./testing","inject":"./testing","InjectSetupWrapper":"./testing","withModule":"./testing","TestComponentRenderer":"./testing","ComponentFixtureAutoDetect":"./testing","ComponentFixtureNoNgZone":"./testing","TestModuleMetadata":"./testing","TestEnvironmentOptions":"./testing","ModuleTeardownOptions":"./testing","TestBedStatic":"./testing","__core_private_testing_placeholder__":"./testing","MetadataOverride":"./testing","ɵMetadataOverrider":"./testing","ɵTestingCompiler":"./testing","ɵTestingCompilerFactory":"./testing","ɵangular_packages_core_testing_testing_b":"./testing","ɵangular_packages_core_testing_testing_c":"./testing"},"importAs":"@angular/core/testing"}
package/testing.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v12.1.0-next.5
2
+ * @license Angular v12.1.2
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,33 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /**
9
- * Public Test Library for unit testing Angular applications. Assumes that you are running
10
- * with Jasmine, Mocha, or a similar framework which exports a beforeEach function and
11
- * allows tests to be asynchronous by either returning a promise or using a 'done' parameter.
12
- */
13
- import { resetFakeAsyncZone } from './fake_async';
14
- import { TestBed } from './test_bed';
15
- const _global = (typeof window === 'undefined' ? global : window);
16
- // Reset the test providers and the fake async zone before each test.
17
- if (_global.beforeEach) {
18
- _global.beforeEach(() => {
19
- TestBed.resetTestingModule();
20
- resetFakeAsyncZone();
21
- });
22
- }
23
- /**
24
- * This API should be removed. But doing so seems to break `google3` and so it requires a bit of
25
- * investigation.
26
- *
27
- * A work around is to mark it as `@codeGenApi` for now and investigate later.
28
- *
29
- * @codeGenApi
30
- */
31
- // TODO(iminar): Remove this code in a safe way.
32
- export const __core_private_testing_placeholder__ = '';
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlX2VhY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3Rlc3Rpbmcvc3JjL2JlZm9yZV9lYWNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUluQyxNQUFNLE9BQU8sR0FBUSxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUV2RSxxRUFBcUU7QUFDckUsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO0lBQ3RCLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ3RCLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzdCLGtCQUFrQixFQUFFLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7Q0FDSjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogUHVibGljIFRlc3QgTGlicmFyeSBmb3IgdW5pdCB0ZXN0aW5nIEFuZ3VsYXIgYXBwbGljYXRpb25zLiBBc3N1bWVzIHRoYXQgeW91IGFyZSBydW5uaW5nXG4gKiB3aXRoIEphc21pbmUsIE1vY2hhLCBvciBhIHNpbWlsYXIgZnJhbWV3b3JrIHdoaWNoIGV4cG9ydHMgYSBiZWZvcmVFYWNoIGZ1bmN0aW9uIGFuZFxuICogYWxsb3dzIHRlc3RzIHRvIGJlIGFzeW5jaHJvbm91cyBieSBlaXRoZXIgcmV0dXJuaW5nIGEgcHJvbWlzZSBvciB1c2luZyBhICdkb25lJyBwYXJhbWV0ZXIuXG4gKi9cblxuaW1wb3J0IHtyZXNldEZha2VBc3luY1pvbmV9IGZyb20gJy4vZmFrZV9hc3luYyc7XG5pbXBvcnQge1Rlc3RCZWR9IGZyb20gJy4vdGVzdF9iZWQnO1xuXG5kZWNsYXJlIHZhciBnbG9iYWw6IGFueTtcblxuY29uc3QgX2dsb2JhbCA9IDxhbnk+KHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93KTtcblxuLy8gUmVzZXQgdGhlIHRlc3QgcHJvdmlkZXJzIGFuZCB0aGUgZmFrZSBhc3luYyB6b25lIGJlZm9yZSBlYWNoIHRlc3QuXG5pZiAoX2dsb2JhbC5iZWZvcmVFYWNoKSB7XG4gIF9nbG9iYWwuYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgVGVzdEJlZC5yZXNldFRlc3RpbmdNb2R1bGUoKTtcbiAgICByZXNldEZha2VBc3luY1pvbmUoKTtcbiAgfSk7XG59XG5cbi8qKlxuICogVGhpcyBBUEkgc2hvdWxkIGJlIHJlbW92ZWQuIEJ1dCBkb2luZyBzbyBzZWVtcyB0byBicmVhayBgZ29vZ2xlM2AgYW5kIHNvIGl0IHJlcXVpcmVzIGEgYml0IG9mXG4gKiBpbnZlc3RpZ2F0aW9uLlxuICpcbiAqIEEgd29yayBhcm91bmQgaXMgdG8gbWFyayBpdCBhcyBgQGNvZGVHZW5BcGlgIGZvciBub3cgYW5kIGludmVzdGlnYXRlIGxhdGVyLlxuICpcbiAqIEBjb2RlR2VuQXBpXG4gKi9cbi8vIFRPRE8oaW1pbmFyKTogUmVtb3ZlIHRoaXMgY29kZSBpbiBhIHNhZmUgd2F5LlxuZXhwb3J0IGNvbnN0IF9fY29yZV9wcml2YXRlX3Rlc3RpbmdfcGxhY2Vob2xkZXJfXyA9ICcnO1xuIl19
@@ -1,47 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { SchematicsException } from '@angular-devkit/schematics';
9
- import { relative } from 'path';
10
- import { getProjectTsConfigPaths } from '../../utils/project_tsconfig_paths';
11
- import { canMigrateFile, createMigrationProgram } from '../../utils/typescript/compiler_host';
12
- import { findParentAccesses } from './util';
13
- /** Migration that marks accesses of `AbstractControl.parent` as non-null. */
14
- export default function () {
15
- return (tree) => {
16
- const { buildPaths, testPaths } = getProjectTsConfigPaths(tree);
17
- const basePath = process.cwd();
18
- const allPaths = [...buildPaths, ...testPaths];
19
- if (!allPaths.length) {
20
- throw new SchematicsException('Could not find any tsconfig file. Cannot migrate AbstractControl.parent accesses.');
21
- }
22
- for (const tsconfigPath of allPaths) {
23
- runNativeAbstractControlParentMigration(tree, tsconfigPath, basePath);
24
- }
25
- };
26
- }
27
- function runNativeAbstractControlParentMigration(tree, tsconfigPath, basePath) {
28
- const { program } = createMigrationProgram(tree, tsconfigPath, basePath);
29
- const typeChecker = program.getTypeChecker();
30
- const sourceFiles = program.getSourceFiles().filter(sourceFile => canMigrateFile(basePath, sourceFile, program));
31
- sourceFiles.forEach(sourceFile => {
32
- // We sort the nodes based on their position in the file and we offset the positions by one
33
- // for each non-null assertion that we've added. We have to do it this way, rather than
34
- // creating and printing a new AST node like in other migrations, because property access
35
- // expressions can be nested (e.g. `control.parent.parent.value`), but the node positions
36
- // aren't being updated as we're inserting new code. If we were to go through the AST,
37
- // we'd have to update the `SourceFile` and start over after each operation.
38
- findParentAccesses(typeChecker, sourceFile)
39
- .sort((a, b) => a.getStart() - b.getStart())
40
- .forEach((node, index) => {
41
- const update = tree.beginUpdate(relative(basePath, sourceFile.fileName));
42
- update.insertRight(node.getStart() + node.getWidth() + index, '!');
43
- tree.commitUpdate(update);
44
- });
45
- });
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9hYnN0cmFjdC1jb250cm9sLXBhcmVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQU8sbUJBQW1CLEVBQU8sTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxjQUFjLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBQyxPQUFPO0lBQ1osT0FBTyxDQUFDLElBQVUsRUFBRSxFQUFFO1FBQ3BCLE1BQU0sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9CLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNwQixNQUFNLElBQUksbUJBQW1CLENBQ3pCLG1GQUFtRixDQUFDLENBQUM7U0FDMUY7UUFFRCxLQUFLLE1BQU0sWUFBWSxJQUFJLFFBQVEsRUFBRTtZQUNuQyx1Q0FBdUMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsdUNBQXVDLENBQzVDLElBQVUsRUFBRSxZQUFvQixFQUFFLFFBQWdCO0lBQ3BELE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QyxNQUFNLFdBQVcsR0FDYixPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVqRyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQy9CLDJGQUEyRjtRQUMzRix1RkFBdUY7UUFDdkYseUZBQXlGO1FBQ3pGLHlGQUF5RjtRQUN6RixzRkFBc0Y7UUFDdEYsNEVBQTRFO1FBQzVFLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7YUFDdEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUMzQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNULENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7cmVsYXRpdmV9IGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQge2dldFByb2plY3RUc0NvbmZpZ1BhdGhzfSBmcm9tICcuLi8uLi91dGlscy9wcm9qZWN0X3RzY29uZmlnX3BhdGhzJztcbmltcG9ydCB7Y2FuTWlncmF0ZUZpbGUsIGNyZWF0ZU1pZ3JhdGlvblByb2dyYW19IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvY29tcGlsZXJfaG9zdCc7XG5pbXBvcnQge2ZpbmRQYXJlbnRBY2Nlc3Nlc30gZnJvbSAnLi91dGlsJztcblxuXG4vKiogTWlncmF0aW9uIHRoYXQgbWFya3MgYWNjZXNzZXMgb2YgYEFic3RyYWN0Q29udHJvbC5wYXJlbnRgIGFzIG5vbi1udWxsLiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKTogUnVsZSB7XG4gIHJldHVybiAodHJlZTogVHJlZSkgPT4ge1xuICAgIGNvbnN0IHtidWlsZFBhdGhzLCB0ZXN0UGF0aHN9ID0gZ2V0UHJvamVjdFRzQ29uZmlnUGF0aHModHJlZSk7XG4gICAgY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGFsbFBhdGhzID0gWy4uLmJ1aWxkUGF0aHMsIC4uLnRlc3RQYXRoc107XG5cbiAgICBpZiAoIWFsbFBhdGhzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oXG4gICAgICAgICAgJ0NvdWxkIG5vdCBmaW5kIGFueSB0c2NvbmZpZyBmaWxlLiBDYW5ub3QgbWlncmF0ZSBBYnN0cmFjdENvbnRyb2wucGFyZW50IGFjY2Vzc2VzLicpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgdHNjb25maWdQYXRoIG9mIGFsbFBhdGhzKSB7XG4gICAgICBydW5OYXRpdmVBYnN0cmFjdENvbnRyb2xQYXJlbnRNaWdyYXRpb24odHJlZSwgdHNjb25maWdQYXRoLCBiYXNlUGF0aCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBydW5OYXRpdmVBYnN0cmFjdENvbnRyb2xQYXJlbnRNaWdyYXRpb24oXG4gICAgdHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qge3Byb2dyYW19ID0gY3JlYXRlTWlncmF0aW9uUHJvZ3JhbSh0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgY29uc3QgdHlwZUNoZWNrZXIgPSBwcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIGNvbnN0IHNvdXJjZUZpbGVzID1cbiAgICAgIHByb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoc291cmNlRmlsZSA9PiBjYW5NaWdyYXRlRmlsZShiYXNlUGF0aCwgc291cmNlRmlsZSwgcHJvZ3JhbSkpO1xuXG4gIHNvdXJjZUZpbGVzLmZvckVhY2goc291cmNlRmlsZSA9PiB7XG4gICAgLy8gV2Ugc29ydCB0aGUgbm9kZXMgYmFzZWQgb24gdGhlaXIgcG9zaXRpb24gaW4gdGhlIGZpbGUgYW5kIHdlIG9mZnNldCB0aGUgcG9zaXRpb25zIGJ5IG9uZVxuICAgIC8vIGZvciBlYWNoIG5vbi1udWxsIGFzc2VydGlvbiB0aGF0IHdlJ3ZlIGFkZGVkLiBXZSBoYXZlIHRvIGRvIGl0IHRoaXMgd2F5LCByYXRoZXIgdGhhblxuICAgIC8vIGNyZWF0aW5nIGFuZCBwcmludGluZyBhIG5ldyBBU1Qgbm9kZSBsaWtlIGluIG90aGVyIG1pZ3JhdGlvbnMsIGJlY2F1c2UgcHJvcGVydHkgYWNjZXNzXG4gICAgLy8gZXhwcmVzc2lvbnMgY2FuIGJlIG5lc3RlZCAoZS5nLiBgY29udHJvbC5wYXJlbnQucGFyZW50LnZhbHVlYCksIGJ1dCB0aGUgbm9kZSBwb3NpdGlvbnNcbiAgICAvLyBhcmVuJ3QgYmVpbmcgdXBkYXRlZCBhcyB3ZSdyZSBpbnNlcnRpbmcgbmV3IGNvZGUuIElmIHdlIHdlcmUgdG8gZ28gdGhyb3VnaCB0aGUgQVNULFxuICAgIC8vIHdlJ2QgaGF2ZSB0byB1cGRhdGUgdGhlIGBTb3VyY2VGaWxlYCBhbmQgc3RhcnQgb3ZlciBhZnRlciBlYWNoIG9wZXJhdGlvbi5cbiAgICBmaW5kUGFyZW50QWNjZXNzZXModHlwZUNoZWNrZXIsIHNvdXJjZUZpbGUpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmdldFN0YXJ0KCkgLSBiLmdldFN0YXJ0KCkpXG4gICAgICAgIC5mb3JFYWNoKChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHRyZWUuYmVnaW5VcGRhdGUocmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpKTtcbiAgICAgICAgICB1cGRhdGUuaW5zZXJ0UmlnaHQobm9kZS5nZXRTdGFydCgpICsgbm9kZS5nZXRXaWR0aCgpICsgaW5kZXgsICchJyk7XG4gICAgICAgICAgdHJlZS5jb21taXRVcGRhdGUodXBkYXRlKTtcbiAgICAgICAgfSk7XG4gIH0pO1xufVxuIl19
@@ -1,50 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { normalize } from 'path';
9
- import * as ts from 'typescript';
10
- import { isNullCheck, isSafeAccess } from '../../utils/typescript/nodes';
11
- import { hasOneOfTypes, isNullableType } from '../../utils/typescript/symbol';
12
- /** Names of symbols from `@angular/forms` whose `parent` accesses have to be migrated. */
13
- const abstractControlSymbols = ['AbstractControl', 'FormArray', 'FormControl', 'FormGroup'];
14
- /**
15
- * Finds the `PropertyAccessExpression`-s that are accessing the `parent` property in
16
- * such a way that may result in a compilation error after the v11 type changes.
17
- */
18
- export function findParentAccesses(typeChecker, sourceFile) {
19
- const results = [];
20
- sourceFile.forEachChild(function walk(node) {
21
- if (ts.isPropertyAccessExpression(node) && node.name.text === 'parent' && !isNullCheck(node) &&
22
- !isSafeAccess(node) && results.indexOf(node) === -1 &&
23
- isAbstractControlReference(typeChecker, node) && isNullableType(typeChecker, node)) {
24
- results.unshift(node);
25
- }
26
- node.forEachChild(walk);
27
- });
28
- return results;
29
- }
30
- /** Checks whether a property access is on an `AbstractControl` coming from `@angular/forms`. */
31
- function isAbstractControlReference(typeChecker, node) {
32
- var _a, _b;
33
- let current = node;
34
- const formsPattern = /node_modules\/?.*\/@angular\/forms/;
35
- // Walks up the property access chain and tries to find a symbol tied to a `SourceFile`.
36
- // If such a node is found, we check whether the type is one of the `AbstractControl` symbols
37
- // and whether it comes from the `@angular/forms` directory in the `node_modules`.
38
- while (ts.isPropertyAccessExpression(current)) {
39
- const symbol = (_a = typeChecker.getTypeAtLocation(current.expression)) === null || _a === void 0 ? void 0 : _a.getSymbol();
40
- if (symbol) {
41
- const sourceFile = (_b = symbol.valueDeclaration) === null || _b === void 0 ? void 0 : _b.getSourceFile();
42
- return sourceFile != null &&
43
- formsPattern.test(normalize(sourceFile.fileName).replace(/\\/g, '/')) &&
44
- hasOneOfTypes(typeChecker, current.expression, abstractControlSymbols);
45
- }
46
- current = current.expression;
47
- }
48
- return false;
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL2Fic3RyYWN0LWNvbnRyb2wtcGFyZW50L3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxhQUFhLEVBQUUsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsMEZBQTBGO0FBQzFGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRTVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsV0FBMkIsRUFBRSxVQUF5QjtJQUN4RCxNQUFNLE9BQU8sR0FBa0MsRUFBRSxDQUFDO0lBRWxELFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBYTtRQUNqRCxJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3hGLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELDBCQUEwQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3RGLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELGdHQUFnRztBQUNoRyxTQUFTLDBCQUEwQixDQUMvQixXQUEyQixFQUFFLElBQWlDOztJQUNoRSxJQUFJLE9BQU8sR0FBa0IsSUFBSSxDQUFDO0lBQ2xDLE1BQU0sWUFBWSxHQUFHLG9DQUFvQyxDQUFDO0lBQzFELHdGQUF3RjtJQUN4Riw2RkFBNkY7SUFDN0Ysa0ZBQWtGO0lBQ2xGLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQUEsV0FBVyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsMENBQUUsU0FBUyxFQUFFLENBQUM7UUFDOUUsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLFVBQVUsR0FBRyxNQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsMENBQUUsYUFBYSxFQUFFLENBQUM7WUFDNUQsT0FBTyxVQUFVLElBQUksSUFBSTtnQkFDckIsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3JFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7S0FDOUI7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge2lzTnVsbENoZWNrLCBpc1NhZmVBY2Nlc3N9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvbm9kZXMnO1xuaW1wb3J0IHtoYXNPbmVPZlR5cGVzLCBpc051bGxhYmxlVHlwZX0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXNjcmlwdC9zeW1ib2wnO1xuXG4vKiogTmFtZXMgb2Ygc3ltYm9scyBmcm9tIGBAYW5ndWxhci9mb3Jtc2Agd2hvc2UgYHBhcmVudGAgYWNjZXNzZXMgaGF2ZSB0byBiZSBtaWdyYXRlZC4gKi9cbmNvbnN0IGFic3RyYWN0Q29udHJvbFN5bWJvbHMgPSBbJ0Fic3RyYWN0Q29udHJvbCcsICdGb3JtQXJyYXknLCAnRm9ybUNvbnRyb2wnLCAnRm9ybUdyb3VwJ107XG5cbi8qKlxuICogRmluZHMgdGhlIGBQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb25gLXMgdGhhdCBhcmUgYWNjZXNzaW5nIHRoZSBgcGFyZW50YCBwcm9wZXJ0eSBpblxuICogc3VjaCBhIHdheSB0aGF0IG1heSByZXN1bHQgaW4gYSBjb21waWxhdGlvbiBlcnJvciBhZnRlciB0aGUgdjExIHR5cGUgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQYXJlbnRBY2Nlc3NlcyhcbiAgICB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsIHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUpOiB0cy5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb25bXSB7XG4gIGNvbnN0IHJlc3VsdHM6IHRzLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbltdID0gW107XG5cbiAgc291cmNlRmlsZS5mb3JFYWNoQ2hpbGQoZnVuY3Rpb24gd2Fsayhub2RlOiB0cy5Ob2RlKSB7XG4gICAgaWYgKHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKG5vZGUpICYmIG5vZGUubmFtZS50ZXh0ID09PSAncGFyZW50JyAmJiAhaXNOdWxsQ2hlY2sobm9kZSkgJiZcbiAgICAgICAgIWlzU2FmZUFjY2Vzcyhub2RlKSAmJiByZXN1bHRzLmluZGV4T2Yobm9kZSkgPT09IC0xICYmXG4gICAgICAgIGlzQWJzdHJhY3RDb250cm9sUmVmZXJlbmNlKHR5cGVDaGVja2VyLCBub2RlKSAmJiBpc051bGxhYmxlVHlwZSh0eXBlQ2hlY2tlciwgbm9kZSkpIHtcbiAgICAgIHJlc3VsdHMudW5zaGlmdChub2RlKTtcbiAgICB9XG5cbiAgICBub2RlLmZvckVhY2hDaGlsZCh3YWxrKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbi8qKiBDaGVja3Mgd2hldGhlciBhIHByb3BlcnR5IGFjY2VzcyBpcyBvbiBhbiBgQWJzdHJhY3RDb250cm9sYCBjb21pbmcgZnJvbSBgQGFuZ3VsYXIvZm9ybXNgLiAqL1xuZnVuY3Rpb24gaXNBYnN0cmFjdENvbnRyb2xSZWZlcmVuY2UoXG4gICAgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBub2RlOiB0cy5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgbGV0IGN1cnJlbnQ6IHRzLkV4cHJlc3Npb24gPSBub2RlO1xuICBjb25zdCBmb3Jtc1BhdHRlcm4gPSAvbm9kZV9tb2R1bGVzXFwvPy4qXFwvQGFuZ3VsYXJcXC9mb3Jtcy87XG4gIC8vIFdhbGtzIHVwIHRoZSBwcm9wZXJ0eSBhY2Nlc3MgY2hhaW4gYW5kIHRyaWVzIHRvIGZpbmQgYSBzeW1ib2wgdGllZCB0byBhIGBTb3VyY2VGaWxlYC5cbiAgLy8gSWYgc3VjaCBhIG5vZGUgaXMgZm91bmQsIHdlIGNoZWNrIHdoZXRoZXIgdGhlIHR5cGUgaXMgb25lIG9mIHRoZSBgQWJzdHJhY3RDb250cm9sYCBzeW1ib2xzXG4gIC8vIGFuZCB3aGV0aGVyIGl0IGNvbWVzIGZyb20gdGhlIGBAYW5ndWxhci9mb3Jtc2AgZGlyZWN0b3J5IGluIHRoZSBgbm9kZV9tb2R1bGVzYC5cbiAgd2hpbGUgKHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKGN1cnJlbnQpKSB7XG4gICAgY29uc3Qgc3ltYm9sID0gdHlwZUNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24oY3VycmVudC5leHByZXNzaW9uKT8uZ2V0U3ltYm9sKCk7XG4gICAgaWYgKHN5bWJvbCkge1xuICAgICAgY29uc3Qgc291cmNlRmlsZSA9IHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uPy5nZXRTb3VyY2VGaWxlKCk7XG4gICAgICByZXR1cm4gc291cmNlRmlsZSAhPSBudWxsICYmXG4gICAgICAgICAgZm9ybXNQYXR0ZXJuLnRlc3Qobm9ybWFsaXplKHNvdXJjZUZpbGUuZmlsZU5hbWUpLnJlcGxhY2UoL1xcXFwvZywgJy8nKSkgJiZcbiAgICAgICAgICBoYXNPbmVPZlR5cGVzKHR5cGVDaGVja2VyLCBjdXJyZW50LmV4cHJlc3Npb24sIGFic3RyYWN0Q29udHJvbFN5bWJvbHMpO1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudC5leHByZXNzaW9uO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==