cdktn 0.26.0-pre.20 → 0.26.0-pre.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/.jsii +1200 -1116
  2. package/eslint.config.mjs +18 -7
  3. package/jest.config.js +0 -1
  4. package/lib/_tokens.d.ts +7 -0
  5. package/lib/_tokens.js +8 -2
  6. package/lib/annotations.js +1 -1
  7. package/lib/app.js +8 -4
  8. package/lib/aspect.js +1 -1
  9. package/lib/asset-hash.js +1 -1
  10. package/lib/asset-staging.js +1 -1
  11. package/lib/assets.js +4 -4
  12. package/lib/backends/azurerm-backend.d.ts +6 -0
  13. package/lib/backends/azurerm-backend.js +9 -5
  14. package/lib/backends/cloud-backend.js +4 -4
  15. package/lib/backends/consul-backend.d.ts +6 -0
  16. package/lib/backends/consul-backend.js +9 -5
  17. package/lib/backends/cos-backend.d.ts +6 -0
  18. package/lib/backends/cos-backend.js +9 -5
  19. package/lib/backends/gcs-backend.d.ts +6 -0
  20. package/lib/backends/gcs-backend.js +9 -5
  21. package/lib/backends/http-backend.d.ts +6 -0
  22. package/lib/backends/http-backend.js +9 -5
  23. package/lib/backends/local-backend.d.ts +6 -0
  24. package/lib/backends/local-backend.js +9 -5
  25. package/lib/backends/oss-backend.d.ts +6 -0
  26. package/lib/backends/oss-backend.js +9 -5
  27. package/lib/backends/pg-backend.d.ts +6 -0
  28. package/lib/backends/pg-backend.js +9 -5
  29. package/lib/backends/remote-backend.d.ts +12 -0
  30. package/lib/backends/remote-backend.js +17 -9
  31. package/lib/backends/s3-backend.d.ts +6 -0
  32. package/lib/backends/s3-backend.js +9 -5
  33. package/lib/backends/swift-backend.js +2 -2
  34. package/lib/complex-computed-list.d.ts +85 -0
  35. package/lib/complex-computed-list.js +112 -54
  36. package/lib/functions/helpers.d.ts +72 -0
  37. package/lib/functions/helpers.js +73 -14
  38. package/lib/functions/provider-function.js +1 -1
  39. package/lib/functions/terraform-functions.generated.d.ts +3 -0
  40. package/lib/functions/terraform-functions.generated.js +5 -3
  41. package/lib/hcl/render.js +30 -6
  42. package/lib/ignore-strategy.js +1 -1
  43. package/lib/importable-resource.js +1 -1
  44. package/lib/manifest.d.ts +4 -0
  45. package/lib/manifest.js +6 -3
  46. package/lib/private/unique.js +11 -3
  47. package/lib/resource.js +1 -1
  48. package/lib/runtime.d.ts +6 -0
  49. package/lib/runtime.js +12 -3
  50. package/lib/synthesize/required-version.d.ts +32 -0
  51. package/lib/synthesize/required-version.js +205 -0
  52. package/lib/synthesize/synthesizer.d.ts +13 -0
  53. package/lib/synthesize/synthesizer.js +42 -8
  54. package/lib/terraform-asset.d.ts +4 -0
  55. package/lib/terraform-asset.js +6 -3
  56. package/lib/terraform-backend.d.ts +3 -0
  57. package/lib/terraform-backend.js +5 -3
  58. package/lib/terraform-conditions.js +1 -2
  59. package/lib/terraform-count.js +1 -1
  60. package/lib/terraform-data-resource.js +1 -1
  61. package/lib/terraform-data-source.d.ts +4 -0
  62. package/lib/terraform-data-source.js +8 -6
  63. package/lib/terraform-dependable.js +1 -1
  64. package/lib/terraform-dynamic-block.d.ts +4 -0
  65. package/lib/terraform-dynamic-block.js +5 -2
  66. package/lib/terraform-element.d.ts +4 -0
  67. package/lib/terraform-element.js +6 -3
  68. package/lib/terraform-ephemeral-resource.d.ts +4 -0
  69. package/lib/terraform-ephemeral-resource.js +8 -6
  70. package/lib/terraform-functions.d.ts +4 -0
  71. package/lib/terraform-functions.js +6 -3
  72. package/lib/terraform-hcl-module.d.ts +4 -0
  73. package/lib/terraform-hcl-module.js +6 -3
  74. package/lib/terraform-iterator.d.ts +19 -0
  75. package/lib/terraform-iterator.js +25 -11
  76. package/lib/terraform-local.d.ts +4 -0
  77. package/lib/terraform-local.js +6 -3
  78. package/lib/terraform-module.js +1 -1
  79. package/lib/terraform-operators.js +1 -1
  80. package/lib/terraform-output.d.ts +4 -0
  81. package/lib/terraform-output.js +6 -3
  82. package/lib/terraform-provider.d.ts +4 -0
  83. package/lib/terraform-provider.js +6 -3
  84. package/lib/terraform-provisioner.js +1 -1
  85. package/lib/terraform-remote-state.d.ts +3 -0
  86. package/lib/terraform-remote-state.js +5 -3
  87. package/lib/terraform-resource-targets.js +1 -1
  88. package/lib/terraform-resource.d.ts +5 -1
  89. package/lib/terraform-resource.js +16 -9
  90. package/lib/terraform-stack.d.ts +4 -0
  91. package/lib/terraform-stack.js +28 -9
  92. package/lib/terraform-variable.d.ts +7 -0
  93. package/lib/terraform-variable.js +16 -7
  94. package/lib/testing/adapters/jest.d.ts +3 -0
  95. package/lib/testing/adapters/jest.js +10 -1
  96. package/lib/testing/index.js +14 -4
  97. package/lib/testing/matchers.js +61 -19
  98. package/lib/tfExpression.d.ts +48 -0
  99. package/lib/tfExpression.js +53 -15
  100. package/lib/tokens/lazy.d.ts +4 -0
  101. package/lib/tokens/lazy.js +21 -8
  102. package/lib/tokens/private/dependency.js +2 -6
  103. package/lib/tokens/private/resolve.js +3 -3
  104. package/lib/tokens/private/stack-trace.d.ts +1 -1
  105. package/lib/tokens/private/stack-trace.js +1 -2
  106. package/lib/tokens/resolvable.js +2 -2
  107. package/lib/tokens/string-fragments.js +4 -4
  108. package/lib/tokens/token.js +2 -2
  109. package/lib/upgrade-id-aspect.js +1 -1
  110. package/lib/util.d.ts +0 -1
  111. package/lib/util.js +4 -4
  112. package/lib/validations/target-versions.d.ts +12 -0
  113. package/lib/validations/target-versions.js +40 -1
  114. package/package.json +112 -109
@@ -5,10 +5,12 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const terraform_element_1 = require("./terraform-element");
6
6
  const util_1 = require("./util");
7
7
  const BACKEND_SYMBOL = Symbol.for("cdktf/TerraformBackend");
8
- // eslint-disable-next-line jsdoc/require-jsdoc
8
+ /**
9
+ * Base class for backends, which synthesize the `terraform.backend` block that sets where a stack stores its state.
10
+ */
9
11
  class TerraformBackend extends terraform_element_1.TerraformElement {
10
12
  name;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformBackend", version: "0.26.0-pre.20" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformBackend", version: "0.26.0-pre.21" };
12
14
  constructor(scope, id, name) {
13
15
  super(scope, id);
14
16
  this.name = name;
@@ -55,4 +57,4 @@ class TerraformBackend extends terraform_element_1.TerraformElement {
55
57
  }
56
58
  }
57
59
  exports.TerraformBackend = TerraformBackend;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWJhY2tlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWJhY2tlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLDJEQUF1RDtBQUN2RCxpQ0FBbUM7QUFFbkMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBRTVELCtDQUErQztBQUMvQyxNQUFzQixnQkFBaUIsU0FBUSxvQ0FBZ0I7SUFJeEM7O0lBSHJCLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNTLElBQVk7UUFFL0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUZFLFNBQUksR0FBSixJQUFJLENBQVE7UUFHL0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBTTtRQUM1QixPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLGNBQWMsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELHNDQUFzQztJQUM1QixvQkFBb0I7UUFDNUIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRVMsdUJBQXVCO1FBQy9CLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQVdNLGNBQWM7UUFDbkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxPQUFPLEVBQUU7b0JBQ1AsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBQSxnQkFBUyxFQUNwQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FDbEI7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFO29CQUNQLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUEsZ0JBQVMsRUFDcEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQzNCLElBQUksQ0FBQyxZQUFZLENBQ2xCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2xCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUU7Z0JBQzVELENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDUixDQUFDO0lBQ0osQ0FBQzs7QUFwRUgsNENBcUVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1SZW1vdGVTdGF0ZSB9IGZyb20gXCIuL3RlcnJhZm9ybS1yZW1vdGUtc3RhdGVcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUVsZW1lbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZWxlbWVudFwiO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5jb25zdCBCQUNLRU5EX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi9UZXJyYWZvcm1CYWNrZW5kXCIpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRlcnJhZm9ybUJhY2tlbmQgZXh0ZW5kcyBUZXJyYWZvcm1FbGVtZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIEJBQ0tFTkRfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0JhY2tlbmQoeDogYW55KTogeCBpcyBUZXJyYWZvcm1CYWNrZW5kIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBCQUNLRU5EX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLy8ganNpaSBjYW4ndCBoYW5kbGUgYWJzdHJhY3QgY2xhc3Nlcz9cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVGVycmFmb3JtUmVtb3RlU3RhdGUgcmVzb3VyY2UgdGhhdCBhY2Nlc3NlcyB0aGlzIGJhY2tlbmQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0UmVtb3RlU3RhdGVEYXRhU291cmNlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGZyb21TdGFjazogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1SZW1vdGVTdGF0ZTtcblxuICBwdWJsaWMgdG9IY2xUZXJyYWZvcm0oKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGVycmFmb3JtOiB7XG4gICAgICAgIGJhY2tlbmQ6IHtcbiAgICAgICAgICBbdGhpcy5uYW1lXTogZGVlcE1lcmdlKFxuICAgICAgICAgICAgdGhpcy5zeW50aGVzaXplSGNsQXR0cmlidXRlcygpLFxuICAgICAgICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoaXMgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICovXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXJyYWZvcm06IHtcbiAgICAgICAgYmFja2VuZDoge1xuICAgICAgICAgIFt0aGlzLm5hbWVdOiBkZWVwTWVyZ2UoXG4gICAgICAgICAgICB0aGlzLnN5bnRoZXNpemVBdHRyaWJ1dGVzKCksXG4gICAgICAgICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvTWV0YWRhdGEoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFja2VuZDogdGhpcy5uYW1lLFxuICAgICAgLi4uKE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKS5sZW5ndGggPiAwXG4gICAgICAgID8geyBvdmVycmlkZXM6IHsgYmFja2VuZDogT2JqZWN0LmtleXModGhpcy5yYXdPdmVycmlkZXMpIH0gfVxuICAgICAgICA6IHt9KSxcbiAgICB9O1xuICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWJhY2tlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWJhY2tlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLDJEQUF1RDtBQUN2RCxpQ0FBbUM7QUFFbkMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBRTVEOztHQUVHO0FBQ0gsTUFBc0IsZ0JBQWlCLFNBQVEsb0NBQWdCO0lBSXhDOztJQUhyQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDUyxJQUFZO1FBRS9CLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFGRSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBRy9CLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQU07UUFDNUIsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxjQUFjLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxzQ0FBc0M7SUFDNUIsb0JBQW9CO1FBQzVCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVTLHVCQUF1QjtRQUMvQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFXTSxjQUFjO1FBQ25CLE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFO29CQUNQLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUEsZ0JBQVMsRUFDcEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQzlCLElBQUksQ0FBQyxZQUFZLENBQ2xCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixPQUFPO1lBQ0wsU0FBUyxFQUFFO2dCQUNULE9BQU8sRUFBRTtvQkFDUCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFBLGdCQUFTLEVBQ3BCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUMzQixJQUFJLENBQUMsWUFBWSxDQUNsQjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNsQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFO2dCQUM1RCxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1IsQ0FBQztJQUNKLENBQUM7O0FBcEVILDRDQXFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtUmVtb3RlU3RhdGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVtb3RlLXN0YXRlXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1FbGVtZW50IH0gZnJvbSBcIi4vdGVycmFmb3JtLWVsZW1lbnRcIjtcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gXCIuL3V0aWxcIjtcblxuY29uc3QgQkFDS0VORF9TWU1CT0wgPSBTeW1ib2wuZm9yKFwiY2RrdGYvVGVycmFmb3JtQmFja2VuZFwiKTtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBiYWNrZW5kcywgd2hpY2ggc3ludGhlc2l6ZSB0aGUgYHRlcnJhZm9ybS5iYWNrZW5kYCBibG9jayB0aGF0IHNldHMgd2hlcmUgYSBzdGFjayBzdG9yZXMgaXRzIHN0YXRlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGVycmFmb3JtQmFja2VuZCBleHRlbmRzIFRlcnJhZm9ybUVsZW1lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgQkFDS0VORF9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQmFja2VuZCh4OiBhbnkpOiB4IGlzIFRlcnJhZm9ybUJhY2tlbmQge1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmIEJBQ0tFTkRfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvLyBqc2lpIGNhbid0IGhhbmRsZSBhYnN0cmFjdCBjbGFzc2VzP1xuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUZXJyYWZvcm1SZW1vdGVTdGF0ZSByZXNvdXJjZSB0aGF0IGFjY2Vzc2VzIHRoaXMgYmFja2VuZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRSZW1vdGVTdGF0ZURhdGFTb3VyY2UoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZnJvbVN0YWNrOiBzdHJpbmcsXG4gICk6IFRlcnJhZm9ybVJlbW90ZVN0YXRlO1xuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXJyYWZvcm06IHtcbiAgICAgICAgYmFja2VuZDoge1xuICAgICAgICAgIFt0aGlzLm5hbWVdOiBkZWVwTWVyZ2UoXG4gICAgICAgICAgICB0aGlzLnN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCksXG4gICAgICAgICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyByZXNvdXJjZSB0byB0aGUgdGVycmFmb3JtIEpTT04gb3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlcnJhZm9ybToge1xuICAgICAgICBiYWNrZW5kOiB7XG4gICAgICAgICAgW3RoaXMubmFtZV06IGRlZXBNZXJnZShcbiAgICAgICAgICAgIHRoaXMuc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKSxcbiAgICAgICAgICAgIHRoaXMucmF3T3ZlcnJpZGVzLFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9NZXRhZGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBiYWNrZW5kOiB0aGlzLm5hbWUsXG4gICAgICAuLi4oT2JqZWN0LmtleXModGhpcy5yYXdPdmVycmlkZXMpLmxlbmd0aCA+IDBcbiAgICAgICAgPyB7IG92ZXJyaWRlczogeyBiYWNrZW5kOiBPYmplY3Qua2V5cyh0aGlzLnJhd092ZXJyaWRlcykgfSB9XG4gICAgICAgIDoge30pLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -3,6 +3,5 @@
3
3
  * Copyright (c) HashiCorp, Inc.
4
4
  * SPDX-License-Identifier: MPL-2.0
5
5
  */
6
- /* eslint-disable @typescript-eslint/no-empty-object-type */
7
6
  Object.defineProperty(exports, "__esModule", { value: true });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWNvbmRpdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWNvbmRpdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUNILDREQUE0RCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZSAqL1xuXG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtQ29uZGl0aW9uIHtcbiAgLyoqXG4gICAqICBUaGlzIGlzIGEgYm9vbGVhbiBleHByZXNzaW9uIHRoYXQgc2hvdWxkIHJldHVybiB0cnVlIGlmIHRoZSBpbnRlbmRlZCBhc3N1bXB0aW9uIG9yIGd1YXJhbnRlZSBpcyBmdWxmaWxsZWQgb3IgZmFsc2UgaWYgaXQgZG9lcyBub3QuXG4gICAqL1xuICByZWFkb25seSBjb25kaXRpb246IEV4cHJlc3Npb247XG4gIC8qKlxuICAgKiBUaGlzIGNvbnRhaW5zIHRoZSB0ZXh0IHRoYXQgVGVycmFmb3JtIHdpbGwgaW5jbHVkZSBhcyBwYXJ0IG9mIGVycm9yIG1lc3NhZ2VzIHdoZW4gaXQgZGV0ZWN0cyBhbiB1bm1ldCBjb25kaXRpb24uXG4gICAqL1xuICByZWFkb25seSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUZXJyYWZvcm0gY2hlY2tzIGEgcHJlY29uZGl0aW9uIGJlZm9yZSBldmFsdWF0aW5nIHRoZSBvYmplY3QgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWNvbmRpdGlvbiBleHRlbmRzIFRlcnJhZm9ybUNvbmRpdGlvbiB7fVxuXG4vKipcbiAqIFRlcnJhZm9ybSBjaGVja3MgYSBwb3N0Y29uZGl0aW9uIGFmdGVyIGV2YWx1YXRpbmcgdGhlIG9iamVjdCBpdCBpcyBhc3NvY2lhdGVkIHdpdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdGNvbmRpdGlvbiBleHRlbmRzIFRlcnJhZm9ybUNvbmRpdGlvbiB7fVxuXG4vKipcbiAqIEFkZCBvbmUgb3IgbW9yZSB2YWxpZGF0aW9uIGJsb2NrcyB3aXRoaW4gdGhlIHZhcmlhYmxlIGJsb2NrIHRvIHNwZWNpZnkgY3VzdG9tIGNvbmRpdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1WYXJpYWJsZVZhbGlkYXRpb25Db25maWcgZXh0ZW5kcyBUZXJyYWZvcm1Db25kaXRpb24ge31cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWNvbmRpdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWNvbmRpdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gXCIuL3RmRXhwcmVzc2lvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUNvbmRpdGlvbiB7XG4gIC8qKlxuICAgKiAgVGhpcyBpcyBhIGJvb2xlYW4gZXhwcmVzc2lvbiB0aGF0IHNob3VsZCByZXR1cm4gdHJ1ZSBpZiB0aGUgaW50ZW5kZWQgYXNzdW1wdGlvbiBvciBndWFyYW50ZWUgaXMgZnVsZmlsbGVkIG9yIGZhbHNlIGlmIGl0IGRvZXMgbm90LlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uOiBFeHByZXNzaW9uO1xuICAvKipcbiAgICogVGhpcyBjb250YWlucyB0aGUgdGV4dCB0aGF0IFRlcnJhZm9ybSB3aWxsIGluY2x1ZGUgYXMgcGFydCBvZiBlcnJvciBtZXNzYWdlcyB3aGVuIGl0IGRldGVjdHMgYW4gdW5tZXQgY29uZGl0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGVycmFmb3JtIGNoZWNrcyBhIHByZWNvbmRpdGlvbiBiZWZvcmUgZXZhbHVhdGluZyB0aGUgb2JqZWN0IGl0IGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVjb25kaXRpb24gZXh0ZW5kcyBUZXJyYWZvcm1Db25kaXRpb24ge31cblxuLyoqXG4gKiBUZXJyYWZvcm0gY2hlY2tzIGEgcG9zdGNvbmRpdGlvbiBhZnRlciBldmFsdWF0aW5nIHRoZSBvYmplY3QgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc3Rjb25kaXRpb24gZXh0ZW5kcyBUZXJyYWZvcm1Db25kaXRpb24ge31cblxuLyoqXG4gKiBBZGQgb25lIG9yIG1vcmUgdmFsaWRhdGlvbiBibG9ja3Mgd2l0aGluIHRoZSB2YXJpYWJsZSBibG9jayB0byBzcGVjaWZ5IGN1c3RvbSBjb25kaXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtVmFyaWFibGVWYWxpZGF0aW9uQ29uZmlnIGV4dGVuZHMgVGVycmFmb3JtQ29uZGl0aW9uIHt9XG4iXX0=
@@ -12,7 +12,7 @@ const COUNT_SYMBOL = Symbol.for("cdktf/TerraformCount");
12
12
  */
13
13
  class TerraformCount {
14
14
  count;
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformCount", version: "0.26.0-pre.20" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformCount", version: "0.26.0-pre.21" };
16
16
  static of(count) {
17
17
  return new TerraformCount(count);
18
18
  }
@@ -19,7 +19,7 @@ const runtime_1 = require("./runtime");
19
19
  * https://developer.hashicorp.com/terraform/language/resources/terraform-data
20
20
  */
21
21
  class DataResource extends terraform_resource_1.TerraformResource {
22
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataResource", version: "0.26.0-pre.20" };
22
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataResource", version: "0.26.0-pre.21" };
23
23
  // =================
24
24
  // STATIC PROPERTIES
25
25
  // =================
@@ -6,6 +6,10 @@ import { ITerraformDependable } from "./terraform-dependable";
6
6
  import { IInterpolatingParent } from "./terraform-addressable";
7
7
  import { ITerraformIterator } from "./terraform-iterator";
8
8
  import { TerraformCount } from "./terraform-count";
9
+ /**
10
+ * A Terraform data source (`data` block): reads information from a provider about infrastructure defined outside
11
+ * this configuration, for use elsewhere in the stack.
12
+ */
9
13
  export declare class TerraformDataSource extends TerraformElement implements ITerraformResource, ITerraformDependable, IInterpolatingParent {
10
14
  readonly terraformResourceType: string;
11
15
  readonly terraformGeneratorMetadata?: TerraformProviderGeneratorMetadata;
@@ -8,12 +8,14 @@ const terraform_resource_1 = require("./terraform-resource");
8
8
  const util_1 = require("./util");
9
9
  const tfExpression_1 = require("./tfExpression");
10
10
  const terraform_count_1 = require("./terraform-count");
11
- // eslint-disable-next-line @typescript-eslint/no-require-imports
12
- const assert = require("assert");
11
+ const assert_1 = require("assert");
13
12
  const TERRAFORM_DATA_SOURCE_SYMBOL = Symbol.for("cdktf/TerraformDataSource");
14
- // eslint-disable-next-line jsdoc/require-jsdoc
13
+ /**
14
+ * A Terraform data source (`data` block): reads information from a provider about infrastructure defined outside
15
+ * this configuration, for use elsewhere in the stack.
16
+ */
15
17
  class TerraformDataSource extends terraform_element_1.TerraformElement {
16
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformDataSource", version: "0.26.0-pre.20" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformDataSource", version: "0.26.0-pre.21" };
17
19
  terraformResourceType;
18
20
  terraformGeneratorMetadata;
19
21
  // TerraformMetaArguments
@@ -66,7 +68,7 @@ class TerraformDataSource extends terraform_element_1.TerraformElement {
66
68
  return tokens_1.Token.asAnyMap(this.interpolationForAttribute(terraformAttribute));
67
69
  }
68
70
  get terraformMetaArguments() {
69
- assert(!this.forEach || typeof this.count === "undefined", `forEach and count are both set, but they are mutually exclusive. You can only use either of them. Check the data source at path: ${this.node.path}`);
71
+ (0, assert_1.ok)(!this.forEach || typeof this.count === "undefined", `forEach and count are both set, but they are mutually exclusive. You can only use either of them. Check the data source at path: ${this.node.path}`);
70
72
  return {
71
73
  dependsOn: this.dependsOn,
72
74
  count: terraform_count_1.TerraformCount.isTerraformCount(this.count)
@@ -127,4 +129,4 @@ class TerraformDataSource extends terraform_element_1.TerraformElement {
127
129
  }
128
130
  }
129
131
  exports.TerraformDataSource = TerraformDataSource;
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybS1kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EscUNBQWlDO0FBQ2pDLDJEQUF1RDtBQUV2RCw2REFNOEI7QUFDOUIsaUNBS2dCO0FBRWhCLGlEQUFpRDtBQUdqRCx1REFBbUQ7QUFDbkQsaUVBQWlFO0FBQ2pFLGlDQUFrQztBQUVsQyxNQUFNLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUU3RSwrQ0FBK0M7QUFDL0MsTUFBYSxtQkFDWCxTQUFRLG9DQUFnQjs7SUFHUixxQkFBcUIsQ0FBUztJQUM5QiwwQkFBMEIsQ0FBc0M7SUFFaEYseUJBQXlCO0lBRWxCLFNBQVMsQ0FBWTtJQUNyQixLQUFLLENBQTJCO0lBQ2hDLFFBQVEsQ0FBcUI7SUFDN0IsU0FBUyxDQUE4QjtJQUN2QyxPQUFPLENBQXNCO0lBRXBDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDO1FBQ3BFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFF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LE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDN0Q7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLHlCQUF5QixDQUFDLGtCQUEwQjtRQUN6RCxPQUFPLElBQUEsa0JBQUcsRUFDUixRQUFRLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDeEIsSUFBSSxrQkFBa0IsRUFBRSxFQUN4QixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBQ0osQ0FBQzs7QUF4S0gsa0RBeUtDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtRWxlbWVudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1lbGVtZW50XCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Qcm92aWRlciB9IGZyb20gXCIuL3RlcnJhZm9ybS1wcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3JNZXRhZGF0YSxcbiAgVGVycmFmb3JtUmVzb3VyY2VDb25maWcsXG4gIFRlcnJhZm9ybVJlc291cmNlTGlmZWN5Y2xlLFxuICBJVGVycmFmb3JtUmVzb3VyY2UsXG4gIGxpZmVjeWNsZVRvVGVycmFmb3JtLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7XG4gIGtleXNUb1NuYWtlQ2FzZSxcbiAgZGVlcE1lcmdlLFxuICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXMsXG4gIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlc0ZvckhjbCxcbn0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybURlcGVuZGFibGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZGVwZW5kYWJsZVwiO1xuaW1wb3J0IHsgcmVmLCBkZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBJSW50ZXJwb2xhdGluZ1BhcmVudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1hZGRyZXNzYWJsZVwiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybUl0ZXJhdG9yIH0gZnJvbSBcIi4vdGVycmFmb3JtLWl0ZXJhdG9yXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Db3VudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1jb3VudFwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmltcG9ydCBhc3NlcnQgPSByZXF1aXJlKFwiYXNzZXJ0XCIpO1xuXG5jb25zdCBURVJSQUZPUk1fREFUQV9TT1VSQ0VfU1lNQk9MID0gU3ltYm9sLmZvcihcImNka3RmL1RlcnJhZm9ybURhdGFTb3VyY2VcIik7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRGF0YVNvdXJjZVxuICBleHRlbmRzIFRlcnJhZm9ybUVsZW1lbnRcbiAgaW1wbGVtZW50cyBJVGVycmFmb3JtUmVzb3VyY2UsIElUZXJyYWZvcm1EZXBlbmRhYmxlLCBJSW50ZXJwb2xhdGluZ1BhcmVudFxue1xuICBwdWJsaWMgcmVhZG9ubHkgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB0ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YT86IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yTWV0YWRhdGE7XG5cbiAgLy8gVGVycmFmb3JtTWV0YUFyZ3VtZW50c1xuXG4gIHB1YmxpYyBkZXBlbmRzT24/OiBzdHJpbmdbXTtcbiAgcHVibGljIGNvdW50PzogbnVtYmVyIHwgVGVycmFmb3JtQ291bnQ7XG4gIHB1YmxpYyBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICBwdWJsaWMgbGlmZWN5Y2xlPzogVGVycmFmb3JtUmVzb3VyY2VMaWZlY3ljbGU7XG4gIHB1YmxpYyBmb3JFYWNoPzogSVRlcnJhZm9ybUl0ZXJhdG9yO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogVGVycmFmb3JtUmVzb3VyY2VDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIGBkYXRhLiR7Y29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZX1gKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgVEVSUkFGT1JNX0RBVEFfU09VUkNFX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlID0gY29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZTtcbiAgICB0aGlzLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhID0gY29uZmlnLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZy5kZXBlbmRzT24pKSB7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGNvbmZpZy5kZXBlbmRzT24ubWFwKChkZXBlbmRlbmN5KSA9PlxuICAgICAgICBkZXBlbmRhYmxlKGRlcGVuZGVuY3kpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jb3VudCA9IGNvbmZpZy5jb3VudDtcbiAgICB0aGlzLnByb3ZpZGVyID0gY29uZmlnLnByb3ZpZGVyO1xuICAgIHRoaXMubGlmZWN5Y2xlID0gY29uZmlnLmxpZmVjeWNsZTtcbiAgICB0aGlzLmZvckVhY2ggPSBjb25maWcuZm9yRWFjaDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1EYXRhU291cmNlKHg6IGFueSk6IHggaXMgVGVycmFmb3JtRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFGT1JNX0RBVEFfU09VUkNFX1NZTUJPTCBpbiB4XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHJpbmdBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcih0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldEJvb2xlYW5BdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlckxpc3QoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZ01hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTWFwKFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCb29sZWFuTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQm9vbGVhbk1hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QW55TWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55TWFwKHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVycmFmb3JtTWV0YUFyZ3VtZW50cygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgYXNzZXJ0KFxuICAgICAgIXRoaXMuZm9yRWFjaCB8fCB0eXBlb2YgdGhpcy5jb3VudCA9PT0gXCJ1bmRlZmluZWRcIixcbiAgICAgIGBmb3JFYWNoIGFuZCBjb3VudCBhcmUgYm90aCBzZXQsIGJ1dCB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFlvdSBjYW4gb25seSB1c2UgZWl0aGVyIG9mIHRoZW0uIENoZWNrIHRoZSBkYXRhIHNvdXJjZSBhdCBwYXRoOiAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkZXBlbmRzT246IHRoaXMuZGVwZW5kc09uLFxuICAgICAgY291bnQ6IFRlcnJhZm9ybUNvdW50LmlzVGVycmFmb3JtQ291bnQodGhpcy5jb3VudClcbiAgICAgICAgPyB0aGlzLmNvdW50LnRvVGVycmFmb3JtKClcbiAgICAgICAgOiB0aGlzLmNvdW50LFxuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXI/LmZxbixcbiAgICAgIGxpZmVjeWNsZTogbGlmZWN5Y2xlVG9UZXJyYWZvcm0odGhpcy5saWZlY3ljbGUpLFxuICAgICAgZm9yRWFjaDogdGhpcy5mb3JFYWNoPy5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKSxcbiAgICB9O1xuICB9XG5cbiAgLy8ganNpaSBjYW4ndCBoYW5kbGUgYWJzdHJhY3QgY2xhc3Nlcz9cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoaXMgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICovXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBkZWVwTWVyZ2UoXG4gICAgICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wodGhpcy5zeW50aGVzaXplSGNsQXR0cmlidXRlcygpKSxcbiAgICAgIGtleXNUb1NuYWtlQ2FzZSh0aGlzLnRlcnJhZm9ybU1ldGFBcmd1bWVudHMpLFxuICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZXNbXCIvL1wiXSA9IHRoaXMuY29uc3RydWN0Tm9kZU1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXToge1xuICAgICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyByZXNvdXJjZSB0byB0aGUgdGVycmFmb3JtIEpTT04gb3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlcyh0aGlzLnN5bnRoZXNpemVBdHRyaWJ1dGVzKCkpLFxuICAgICAga2V5c1RvU25ha2VDYXNlKHRoaXMudGVycmFmb3JtTWV0YUFyZ3VtZW50cyksXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0gdGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YToge1xuICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiB7XG4gICAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IGF0dHJpYnV0ZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgcHVibGljIHRvTWV0YWRhdGEoKTogYW55IHtcbiAgICBpZiAoIU9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgIFt0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZV06IE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlZihcbiAgICAgIGBkYXRhLiR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9LiR7dGhpcy5mcmllbmRseVVuaXF1ZUlkfSR7XG4gICAgICAgIHRoaXMuZm9yRWFjaCA/IFwiLipcIiA6IFwiXCJcbiAgICAgIH0uJHt0ZXJyYWZvcm1BdHRyaWJ1dGV9YCxcbiAgICAgIHRoaXMuY2RrdGZTdGFjayxcbiAgICApO1xuICB9XG59XG4iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybS1kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EscUNBQWlDO0FBQ2pDLDJEQUF1RDtBQUV2RCw2REFNOEI7QUFDOUIsaUNBS2dCO0FBRWhCLGlEQUFpRDtBQUdqRCx1REFBbUQ7QUFDbkQsbUNBQXNDO0FBRXRDLE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRTdFOzs7R0FHRztBQUNILE1BQWEsbUJBQ1gsU0FBUSxvQ0FBZ0I7O0lBR1IscUJBQXFCLENBQVM7SUFDOUIsMEJBQTBCLENBQXNDO0lBRWhGLHlCQUF5QjtJQUVsQixTQUFTLENBQVk7SUFDckIsS0FBSyxDQUEyQjtJQUNoQyxRQUFRLENBQXFCO0lBQzdCLFNBQVMsQ0FBOEI7SUFDdkMsT0FBTyxDQUFzQjtJQUVwQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE1BQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw0QkFBNEIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDMUQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQztRQUNwRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ25ELElB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QyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDN0Q7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLHlCQUF5QixDQUFDLGtCQUEwQjtRQUN6RCxPQUFPLElBQUEsa0JBQUcsRUFDUixRQUFRLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDeEIsSUFBSSxrQkFBa0IsRUFBRSxFQUN4QixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBQ0osQ0FBQzs7QUF4S0gsa0RBeUtDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtRWxlbWVudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1lbGVtZW50XCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Qcm92aWRlciB9IGZyb20gXCIuL3RlcnJhZm9ybS1wcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3JNZXRhZGF0YSxcbiAgVGVycmFmb3JtUmVzb3VyY2VDb25maWcsXG4gIFRlcnJhZm9ybVJlc291cmNlTGlmZWN5Y2xlLFxuICBJVGVycmFmb3JtUmVzb3VyY2UsXG4gIGxpZmVjeWNsZVRvVGVycmFmb3JtLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7XG4gIGtleXNUb1NuYWtlQ2FzZSxcbiAgZGVlcE1lcmdlLFxuICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXMsXG4gIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlc0ZvckhjbCxcbn0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybURlcGVuZGFibGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZGVwZW5kYWJsZVwiO1xuaW1wb3J0IHsgcmVmLCBkZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBJSW50ZXJwb2xhdGluZ1BhcmVudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1hZGRyZXNzYWJsZVwiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybUl0ZXJhdG9yIH0gZnJvbSBcIi4vdGVycmFmb3JtLWl0ZXJhdG9yXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Db3VudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1jb3VudFwiO1xuaW1wb3J0IHsgb2sgYXMgYXNzZXJ0IH0gZnJvbSBcImFzc2VydFwiO1xuXG5jb25zdCBURVJSQUZPUk1fREFUQV9TT1VSQ0VfU1lNQk9MID0gU3ltYm9sLmZvcihcImNka3RmL1RlcnJhZm9ybURhdGFTb3VyY2VcIik7XG5cbi8qKlxuICogQSBUZXJyYWZvcm0gZGF0YSBzb3VyY2UgKGBkYXRhYCBibG9jayk6IHJlYWRzIGluZm9ybWF0aW9uIGZyb20gYSBwcm92aWRlciBhYm91dCBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkIG91dHNpZGVcbiAqIHRoaXMgY29uZmlndXJhdGlvbiwgZm9yIHVzZSBlbHNld2hlcmUgaW4gdGhlIHN0YWNrLlxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRGF0YVNvdXJjZVxuICBleHRlbmRzIFRlcnJhZm9ybUVsZW1lbnRcbiAgaW1wbGVtZW50cyBJVGVycmFmb3JtUmVzb3VyY2UsIElUZXJyYWZvcm1EZXBlbmRhYmxlLCBJSW50ZXJwb2xhdGluZ1BhcmVudFxue1xuICBwdWJsaWMgcmVhZG9ubHkgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB0ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YT86IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yTWV0YWRhdGE7XG5cbiAgLy8gVGVycmFmb3JtTWV0YUFyZ3VtZW50c1xuXG4gIHB1YmxpYyBkZXBlbmRzT24/OiBzdHJpbmdbXTtcbiAgcHVibGljIGNvdW50PzogbnVtYmVyIHwgVGVycmFmb3JtQ291bnQ7XG4gIHB1YmxpYyBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICBwdWJsaWMgbGlmZWN5Y2xlPzogVGVycmFmb3JtUmVzb3VyY2VMaWZlY3ljbGU7XG4gIHB1YmxpYyBmb3JFYWNoPzogSVRlcnJhZm9ybUl0ZXJhdG9yO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogVGVycmFmb3JtUmVzb3VyY2VDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIGBkYXRhLiR7Y29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZX1gKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgVEVSUkFGT1JNX0RBVEFfU09VUkNFX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlID0gY29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZTtcbiAgICB0aGlzLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhID0gY29uZmlnLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZy5kZXBlbmRzT24pKSB7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGNvbmZpZy5kZXBlbmRzT24ubWFwKChkZXBlbmRlbmN5KSA9PlxuICAgICAgICBkZXBlbmRhYmxlKGRlcGVuZGVuY3kpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jb3VudCA9IGNvbmZpZy5jb3VudDtcbiAgICB0aGlzLnByb3ZpZGVyID0gY29uZmlnLnByb3ZpZGVyO1xuICAgIHRoaXMubGlmZWN5Y2xlID0gY29uZmlnLmxpZmVjeWNsZTtcbiAgICB0aGlzLmZvckVhY2ggPSBjb25maWcuZm9yRWFjaDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1EYXRhU291cmNlKHg6IGFueSk6IHggaXMgVGVycmFmb3JtRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFGT1JNX0RBVEFfU09VUkNFX1NZTUJPTCBpbiB4XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHJpbmdBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcih0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldEJvb2xlYW5BdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlckxpc3QoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZ01hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTWFwKFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCb29sZWFuTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQm9vbGVhbk1hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QW55TWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55TWFwKHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVycmFmb3JtTWV0YUFyZ3VtZW50cygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgYXNzZXJ0KFxuICAgICAgIXRoaXMuZm9yRWFjaCB8fCB0eXBlb2YgdGhpcy5jb3VudCA9PT0gXCJ1bmRlZmluZWRcIixcbiAgICAgIGBmb3JFYWNoIGFuZCBjb3VudCBhcmUgYm90aCBzZXQsIGJ1dCB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFlvdSBjYW4gb25seSB1c2UgZWl0aGVyIG9mIHRoZW0uIENoZWNrIHRoZSBkYXRhIHNvdXJjZSBhdCBwYXRoOiAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkZXBlbmRzT246IHRoaXMuZGVwZW5kc09uLFxuICAgICAgY291bnQ6IFRlcnJhZm9ybUNvdW50LmlzVGVycmFmb3JtQ291bnQodGhpcy5jb3VudClcbiAgICAgICAgPyB0aGlzLmNvdW50LnRvVGVycmFmb3JtKClcbiAgICAgICAgOiB0aGlzLmNvdW50LFxuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXI/LmZxbixcbiAgICAgIGxpZmVjeWNsZTogbGlmZWN5Y2xlVG9UZXJyYWZvcm0odGhpcy5saWZlY3ljbGUpLFxuICAgICAgZm9yRWFjaDogdGhpcy5mb3JFYWNoPy5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKSxcbiAgICB9O1xuICB9XG5cbiAgLy8ganNpaSBjYW4ndCBoYW5kbGUgYWJzdHJhY3QgY2xhc3Nlcz9cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoaXMgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICovXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBkZWVwTWVyZ2UoXG4gICAgICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wodGhpcy5zeW50aGVzaXplSGNsQXR0cmlidXRlcygpKSxcbiAgICAgIGtleXNUb1NuYWtlQ2FzZSh0aGlzLnRlcnJhZm9ybU1ldGFBcmd1bWVudHMpLFxuICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZXNbXCIvL1wiXSA9IHRoaXMuY29uc3RydWN0Tm9kZU1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXToge1xuICAgICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyByZXNvdXJjZSB0byB0aGUgdGVycmFmb3JtIEpTT04gb3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlcyh0aGlzLnN5bnRoZXNpemVBdHRyaWJ1dGVzKCkpLFxuICAgICAga2V5c1RvU25ha2VDYXNlKHRoaXMudGVycmFmb3JtTWV0YUFyZ3VtZW50cyksXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0gdGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YToge1xuICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiB7XG4gICAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IGF0dHJpYnV0ZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgcHVibGljIHRvTWV0YWRhdGEoKTogYW55IHtcbiAgICBpZiAoIU9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgIFt0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZV06IE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlZihcbiAgICAgIGBkYXRhLiR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9LiR7dGhpcy5mcmllbmRseVVuaXF1ZUlkfSR7XG4gICAgICAgIHRoaXMuZm9yRWFjaCA/IFwiLipcIiA6IFwiXCJcbiAgICAgIH0uJHt0ZXJyYWZvcm1BdHRyaWJ1dGV9YCxcbiAgICAgIHRoaXMuY2RrdGZTdGFjayxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWRlcGVuZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWRlcGVuZGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBJVGVycmFmb3JtQWRkcmVzc2FibGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tYWRkcmVzc2FibGVcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuZXhwb3J0IGludGVyZmFjZSBJVGVycmFmb3JtRGVwZW5kYWJsZSBleHRlbmRzIElUZXJyYWZvcm1BZGRyZXNzYWJsZSB7fVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWRlcGVuZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWRlcGVuZGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBJVGVycmFmb3JtQWRkcmVzc2FibGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tYWRkcmVzc2FibGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJVGVycmFmb3JtRGVwZW5kYWJsZSBleHRlbmRzIElUZXJyYWZvcm1BZGRyZXNzYWJsZSB7fVxuIl19
@@ -1,6 +1,10 @@
1
1
  import { TerraformDynamicExpression } from "./terraform-dynamic-expression";
2
2
  import { ITerraformIterator } from "./terraform-iterator";
3
3
  import { IResolvable } from "./tokens";
4
+ /**
5
+ * A Terraform `dynamic` block: generates one nested block per element of an iterator, each built from the given
6
+ * content.
7
+ */
4
8
  export declare class TerraformDynamicBlock implements IResolvable {
5
9
  readonly creationStack: string[];
6
10
  readonly forEach: ITerraformIterator;
@@ -7,7 +7,10 @@ const errors_1 = require("./errors");
7
7
  const tokens_1 = require("./tokens");
8
8
  const stack_trace_1 = require("./tokens/private/stack-trace");
9
9
  const DYNAMIC_BLOCK_SYMBOL = Symbol.for("cdktf/TerraformDynamicBlock");
10
- // eslint-disable-next-line jsdoc/require-jsdoc
10
+ /**
11
+ * A Terraform `dynamic` block: generates one nested block per element of an iterator, each built from the given
12
+ * content.
13
+ */
11
14
  class TerraformDynamicBlock {
12
15
  creationStack;
13
16
  forEach;
@@ -57,4 +60,4 @@ class TerraformDynamicBlock {
57
60
  }
58
61
  }
59
62
  exports.TerraformDynamicBlock = TerraformDynamicBlock;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWR5bmFtaWMtYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWR5bmFtaWMtYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxxQ0FBb0Q7QUFHcEQscUNBQXFFO0FBQ3JFLDhEQUFvRTtBQUVwRSxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUV2RSwrQ0FBK0M7QUFDL0MsTUFBYSxxQkFBcUI7SUFDaEIsYUFBYSxDQUFXO0lBQ3hCLE9BQU8sQ0FBcUI7SUFDNUIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLHFHQUFxRztJQUN4SCxPQUFPLENBQXlCO0lBQ2hELCtIQUErSDtJQUUvSCxZQUFvQixJQUduQjtRQUNDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFBLGtDQUFvQixHQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUNqQyxJQUFnQztRQUVoQyxPQUFPLElBQUkscUJBQXFCLENBQUM7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNaLE1BQU0sSUFBQSxpQ0FBd0IsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sMkJBQTJCO1FBQ2hDLE9BQU8sYUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNuQixPQUFPLEVBQUUsQ0FBQyxPQUF3QixFQUFFLEVBQUU7Z0JBQ3BDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLENBQUMsZ0ZBQWdGO2dCQUUzSCxPQUFPO29CQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFO29CQUM5QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3ZCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQ3ZDLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLGNBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxzQ0FBc0MsQ0FBQztJQUNoRCxDQUFDO0lBRU0sTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQU07UUFDMUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxvQkFBb0IsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBNURELHNEQTREQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBkeW5hbWljQmxvY2tOb3RTdXBwb3J0ZWQgfSBmcm9tIFwiLi9lcnJvcnNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUR5bmFtaWNFeHByZXNzaW9uIH0gZnJvbSBcIi4vdGVycmFmb3JtLWR5bmFtaWMtZXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybUl0ZXJhdG9yIH0gZnJvbSBcIi4vdGVycmFmb3JtLWl0ZXJhdG9yXCI7XG5pbXBvcnQgeyBJUmVzb2x2YWJsZSwgSVJlc29sdmVDb250ZXh0LCBMYXp5LCBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuaW1wb3J0IHsgY2FwdHVyZUNyZWF0aW9uU3RhY2sgfSBmcm9tIFwiLi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZVwiO1xuXG5jb25zdCBEWU5BTUlDX0JMT0NLX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi9UZXJyYWZvcm1EeW5hbWljQmxvY2tcIik7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRHluYW1pY0Jsb2NrIGltcGxlbWVudHMgSVJlc29sdmFibGUge1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRpb25TdGFjazogc3RyaW5nW107XG4gIHB1YmxpYyByZWFkb25seSBmb3JFYWNoOiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gIHB1YmxpYyByZWFkb25seSBpdGVyYXRvciA9IFwiZWFjaFwiOyAvLyBuYW1lIG9mIHRlbXBvcmFyeSB2YXJpYWJsZSB1c2VkIGluIGl0ZXJhdGlvbiwgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiBhbGxvd2luZyBuZXN0aW5nIGl0ZXJhdG9yc1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudDogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgLy8gbGFiZWxzOiBUT0RPOiBzdXBwb3J0IGxhYmVscywgYnV0IHRoZXkgc2VlbSB0byBiZSBxdWl0ZSByYXJlIChpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8xOTM5KVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoYXJnczoge1xuICAgIGZvckVhY2g6IElUZXJyYWZvcm1JdGVyYXRvcjtcbiAgICBjb250ZW50OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICB9KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIERZTkFNSUNfQkxPQ0tfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHRoaXMuY3JlYXRpb25TdGFjayA9IGNhcHR1cmVDcmVhdGlvblN0YWNrKCk7XG4gICAgdGhpcy5mb3JFYWNoID0gYXJncy5mb3JFYWNoO1xuICAgIHRoaXMuY29udGVudCA9IGFyZ3MuY29udGVudDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUR5bmFtaWNFeHByZXNzaW9uKFxuICAgIGV4cHI6IFRlcnJhZm9ybUR5bmFtaWNFeHByZXNzaW9uLFxuICApOiBUZXJyYWZvcm1EeW5hbWljQmxvY2sge1xuICAgIHJldHVybiBuZXcgVGVycmFmb3JtRHluYW1pY0Jsb2NrKHtcbiAgICAgIGZvckVhY2g6IGV4cHIuaXRlcmF0b3IsXG4gICAgICBjb250ZW50OiBleHByLmNvbnRlbnQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZSgpOiBhbnkge1xuICAgIHRocm93IGR5bmFtaWNCbG9ja05vdFN1cHBvcnRlZCh0aGlzLmZvckVhY2guX2dldEZvckVhY2hFeHByZXNzaW9uKCkpO1xuICB9XG5cbiAgcHVibGljIHRvVGVycmFmb3JtRHluYW1pY0Jsb2NrSnNvbigpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIExhenkuYW55VmFsdWUoe1xuICAgICAgcHJvZHVjZTogKGNvbnRleHQ6IElSZXNvbHZlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb250ZXh0Lml0ZXJhdG9yQ29udGV4dCA9IFwiRFlOQU1JQ19CTE9DS1wiOyAvLyByZXNvbHZlIG5lc3RlZCBMYXp5IHZhbHVlcyAod2l0aGluIHRoaXMuY29udGVudCkgYXMgZHluYW1pYyBibG9jayBleHByZXNzaW9uc1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZm9yX2VhY2g6IHRoaXMuZm9yRWFjaC5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKSxcbiAgICAgICAgICBpdGVyYXRvcjogdGhpcy5pdGVyYXRvcixcbiAgICAgICAgICBjb250ZW50OiBjb250ZXh0LnJlc29sdmUodGhpcy5jb250ZW50KSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUdXJuIHRoaXMgRHluYW1pYyBCbG9jayBpbnRvIEpTT05cbiAgICpcbiAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBKU09OLnN0cmluZ2lmeSgpIGlzIGNhbGxlZCBvbiB0aGlzLlxuICAgKi9cbiAgdG9KU09OKCk6IGFueSB7XG4gICAgcmV0dXJuIFwiPHVucmVzb2x2ZWQtdGVycmFmb3JtLWR5bmFtaWMtYmxvY2s+XCI7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVGVycmFmb3JtRHluYW1pY0Jsb2NrKHg6IGFueSk6IHggaXMgVGVycmFmb3JtRHluYW1pY0Jsb2NrIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBEWU5BTUlDX0JMT0NLX1NZTUJPTCBpbiB4O1xuICB9XG59XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWR5bmFtaWMtYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWR5bmFtaWMtYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxxQ0FBb0Q7QUFHcEQscUNBQXFFO0FBQ3JFLDhEQUFvRTtBQUVwRSxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUV2RTs7O0dBR0c7QUFDSCxNQUFhLHFCQUFxQjtJQUNoQixhQUFhLENBQVc7SUFDeEIsT0FBTyxDQUFxQjtJQUM1QixRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMscUdBQXFHO0lBQ3hILE9BQU8sQ0FBeUI7SUFDaEQsK0hBQStIO0lBRS9ILFlBQW9CLElBR25CO1FBQ0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUEsa0NBQW9CLEdBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQ2pDLElBQWdDO1FBRWhDLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQztZQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1osTUFBTSxJQUFBLGlDQUF3QixFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSwyQkFBMkI7UUFDaEMsT0FBTyxhQUFJLENBQUMsUUFBUSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLE9BQXdCLEVBQUUsRUFBRTtnQkFDcEMsT0FBTyxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsQ0FBQyxnRkFBZ0Y7Z0JBRTNILE9BQU87b0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUU7b0JBQzlDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDdkIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDdkMsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sY0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPLHNDQUFzQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBTTtRQUMxQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLG9CQUFvQixJQUFJLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0Y7QUE1REQsc0RBNERDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IGR5bmFtaWNCbG9ja05vdFN1cHBvcnRlZCB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtRHluYW1pY0V4cHJlc3Npb24gfSBmcm9tIFwiLi90ZXJyYWZvcm0tZHluYW1pYy1leHByZXNzaW9uXCI7XG5pbXBvcnQgeyBJVGVycmFmb3JtSXRlcmF0b3IgfSBmcm9tIFwiLi90ZXJyYWZvcm0taXRlcmF0b3JcIjtcbmltcG9ydCB7IElSZXNvbHZhYmxlLCBJUmVzb2x2ZUNvbnRleHQsIExhenksIFRva2VuIH0gZnJvbSBcIi4vdG9rZW5zXCI7XG5pbXBvcnQgeyBjYXB0dXJlQ3JlYXRpb25TdGFjayB9IGZyb20gXCIuL3Rva2Vucy9wcml2YXRlL3N0YWNrLXRyYWNlXCI7XG5cbmNvbnN0IERZTkFNSUNfQkxPQ0tfU1lNQk9MID0gU3ltYm9sLmZvcihcImNka3RmL1RlcnJhZm9ybUR5bmFtaWNCbG9ja1wiKTtcblxuLyoqXG4gKiBBIFRlcnJhZm9ybSBgZHluYW1pY2AgYmxvY2s6IGdlbmVyYXRlcyBvbmUgbmVzdGVkIGJsb2NrIHBlciBlbGVtZW50IG9mIGFuIGl0ZXJhdG9yLCBlYWNoIGJ1aWx0IGZyb20gdGhlIGdpdmVuXG4gKiBjb250ZW50LlxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRHluYW1pY0Jsb2NrIGltcGxlbWVudHMgSVJlc29sdmFibGUge1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRpb25TdGFjazogc3RyaW5nW107XG4gIHB1YmxpYyByZWFkb25seSBmb3JFYWNoOiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gIHB1YmxpYyByZWFkb25seSBpdGVyYXRvciA9IFwiZWFjaFwiOyAvLyBuYW1lIG9mIHRlbXBvcmFyeSB2YXJpYWJsZSB1c2VkIGluIGl0ZXJhdGlvbiwgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiBhbGxvd2luZyBuZXN0aW5nIGl0ZXJhdG9yc1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudDogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgLy8gbGFiZWxzOiBUT0RPOiBzdXBwb3J0IGxhYmVscywgYnV0IHRoZXkgc2VlbSB0byBiZSBxdWl0ZSByYXJlIChpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8xOTM5KVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoYXJnczoge1xuICAgIGZvckVhY2g6IElUZXJyYWZvcm1JdGVyYXRvcjtcbiAgICBjb250ZW50OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICB9KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIERZTkFNSUNfQkxPQ0tfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHRoaXMuY3JlYXRpb25TdGFjayA9IGNhcHR1cmVDcmVhdGlvblN0YWNrKCk7XG4gICAgdGhpcy5mb3JFYWNoID0gYXJncy5mb3JFYWNoO1xuICAgIHRoaXMuY29udGVudCA9IGFyZ3MuY29udGVudDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUR5bmFtaWNFeHByZXNzaW9uKFxuICAgIGV4cHI6IFRlcnJhZm9ybUR5bmFtaWNFeHByZXNzaW9uLFxuICApOiBUZXJyYWZvcm1EeW5hbWljQmxvY2sge1xuICAgIHJldHVybiBuZXcgVGVycmFmb3JtRHluYW1pY0Jsb2NrKHtcbiAgICAgIGZvckVhY2g6IGV4cHIuaXRlcmF0b3IsXG4gICAgICBjb250ZW50OiBleHByLmNvbnRlbnQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZSgpOiBhbnkge1xuICAgIHRocm93IGR5bmFtaWNCbG9ja05vdFN1cHBvcnRlZCh0aGlzLmZvckVhY2guX2dldEZvckVhY2hFeHByZXNzaW9uKCkpO1xuICB9XG5cbiAgcHVibGljIHRvVGVycmFmb3JtRHluYW1pY0Jsb2NrSnNvbigpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIExhenkuYW55VmFsdWUoe1xuICAgICAgcHJvZHVjZTogKGNvbnRleHQ6IElSZXNvbHZlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb250ZXh0Lml0ZXJhdG9yQ29udGV4dCA9IFwiRFlOQU1JQ19CTE9DS1wiOyAvLyByZXNvbHZlIG5lc3RlZCBMYXp5IHZhbHVlcyAod2l0aGluIHRoaXMuY29udGVudCkgYXMgZHluYW1pYyBibG9jayBleHByZXNzaW9uc1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZm9yX2VhY2g6IHRoaXMuZm9yRWFjaC5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKSxcbiAgICAgICAgICBpdGVyYXRvcjogdGhpcy5pdGVyYXRvcixcbiAgICAgICAgICBjb250ZW50OiBjb250ZXh0LnJlc29sdmUodGhpcy5jb250ZW50KSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUdXJuIHRoaXMgRHluYW1pYyBCbG9jayBpbnRvIEpTT05cbiAgICpcbiAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBKU09OLnN0cmluZ2lmeSgpIGlzIGNhbGxlZCBvbiB0aGlzLlxuICAgKi9cbiAgdG9KU09OKCk6IGFueSB7XG4gICAgcmV0dXJuIFwiPHVucmVzb2x2ZWQtdGVycmFmb3JtLWR5bmFtaWMtYmxvY2s+XCI7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVGVycmFmb3JtRHluYW1pY0Jsb2NrKHg6IGFueSk6IHggaXMgVGVycmFmb3JtRHluYW1pY0Jsb2NrIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBEWU5BTUlDX0JMT0NLX1NZTUJPTCBpbiB4O1xuICB9XG59XG4iXX0=
@@ -6,6 +6,10 @@ export interface TerraformElementMetadata {
6
6
  readonly uniqueId: string;
7
7
  readonly stackTrace: string[];
8
8
  }
9
+ /**
10
+ * Base class for constructs that synthesize to a Terraform configuration block, such as resources, data sources,
11
+ * providers, variables and outputs. Provides logical IDs, references and raw overrides.
12
+ */
9
13
  export declare class TerraformElement extends Construct {
10
14
  protected readonly rawOverrides: any;
11
15
  /**
@@ -31,9 +31,12 @@ class GatedFeatureValidation {
31
31
  return this.active ? this.delegate.validate() : [];
32
32
  }
33
33
  }
34
- // eslint-disable-next-line jsdoc/require-jsdoc
34
+ /**
35
+ * Base class for constructs that synthesize to a Terraform configuration block, such as resources, data sources,
36
+ * providers, variables and outputs. Provides logical IDs, references and raw overrides.
37
+ */
35
38
  class TerraformElement extends constructs_1.Construct {
36
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformElement", version: "0.26.0-pre.20" };
39
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformElement", version: "0.26.0-pre.21" };
37
40
  rawOverrides = {};
38
41
  /**
39
42
  * An explicit logical ID provided by `overrideLogicalId`.
@@ -233,4 +236,4 @@ class TerraformElement extends constructs_1.Construct {
233
236
  }
234
237
  }
235
238
  exports.TerraformElement = TerraformElement;
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsbUNBQTRCO0FBQzVCLDJDQUFvRDtBQUNwRCxxQ0FBaUM7QUFDakMsdURBQW1EO0FBQ25ELGlEQUFxQztBQUNyQyxxQ0FBZ0Y7QUFDaEYsbUVBQTZFO0FBQzdFLGlGQUt3QztBQUV4QyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQW9CdEU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sc0JBQXNCO0lBR0c7SUFGdEIsTUFBTSxHQUFHLElBQUksQ0FBQztJQUVyQixZQUE2QixRQUFzQztRQUF0QyxhQUFRLEdBQVIsUUFBUSxDQUE4QjtJQUFHLENBQUM7SUFFaEUsUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JELENBQUM7Q0FDRjtBQWFELCtDQUErQztBQUMvQyxNQUFhLGdCQUFpQixTQUFRLHNCQUFTOztJQUMxQixZQUFZLEdBQVEsRUFBRSxDQUFDO0lBRTFDOztPQUVHO0lBQ0ssa0JBQWtCLENBQVU7SUFFcEM7Ozs7O09BS0c7SUFDYyxZQUFZLENBQVU7SUFFdkM7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSywyQkFBMkIsQ0FHakM7SUFFRixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJ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QUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFjLHFCQUFxQjtRQUNqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2dCQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQztvQkFDakUsRUFBRSxLQUFLO2FBQ2tCO1NBQzlCLENBQUM7SUFDSixDQUFDOztBQTlQSCw0Q0ErUEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgb2sgfSBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElWYWxpZGF0aW9uIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW5zXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCIuL3RlcnJhZm9ybS1zdGFja1wiO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyB1bnJlc29sdmVkVG9rZW5JbkNvbnN0cnVjdElkLCB1bmtub3duUHJvdmlkZXJGZWF0dXJlIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0ZUZlYXR1cmVUYXJnZXRTdXBwb3J0IH0gZnJvbSBcIi4vdmFsaWRhdGlvbnMvdGFyZ2V0LXZlcnNpb25zXCI7XG5pbXBvcnQge1xuICBQcm92aWRlckZlYXR1cmUsXG4gIHByb3ZpZGVyRmVhdHVyZUNvbnN0cmFpbnRzLFxuICBwcm92aWRlckZlYXR1cmVIaW50cyxcbiAgcHJvdmlkZXJGZWF0dXJlTGFiZWxzLFxufSBmcm9tIFwiLi9wcm92aWRlci1mZWF0dXJlLWNvbnN0cmFpbnRzXCI7XG5cbmNvbnN0IFRFUlJBRk9STV9FTEVNRU5UX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi9UZXJyYWZvcm1FbGVtZW50XCIpO1xuXG4vKipcbiAqIEhvdyBhIGBQcm92aWRlckZlYXR1cmVgIHJlZ2lzdHJhdGlvbiBvbiBhbiBlbGVtZW50IHdhcyBhcm1lZDpcbiAqXG4gKiAtIGBzdHJ1Y3R1cmFsYDogdGhlIGVsZW1lbnQncyBtZXJlIGV4aXN0ZW5jZSBpcyB0aGUgdXNhZ2UgKGUuZy4gYVxuICogICBgVGVycmFmb3JtRXBoZW1lcmFsUmVzb3VyY2VgJ3MgY29uc3RydWN0b3IpLiBUaGVyZSBpcyBubyBub3Rpb24gb2YgdGhlXG4gKiAgIGZlYXR1cmUgZ29pbmcgdW51c2VkIGxhdGVyIGluIHRoZSBzYW1lIHN5bnRoZXNpcyBwYXNzLCBzbyBpdCBpcyBhcm1lZFxuICogICBvbmNlIGFuZCBuZXZlciBkZWFjdGl2YXRlZC5cbiAqIC0gYHJlc29sdmUtZGlzY292ZXJlZGA6IHVzYWdlIGlzIG9ubHkga25vd24gb25jZSBhIHZhbHVlIGlzIHJlc29sdmVkXG4gKiAgIGR1cmluZyBzeW50aGVzaXMgKGUuZy4gYSB3cml0ZS1vbmx5IGF0dHJpYnV0ZSB3cmFwcGVkIGJ5XG4gKiAgIGBtYXJrV3JpdGVPbmx5QXR0cmlidXRlYCkuIEJlY2F1c2UgdGhlIHNhbWUgZWxlbWVudCBjYW4gYmUgcmVzb2x2ZWRcbiAqICAgYWNyb3NzIG1hbnkgc3ludGhlc2lzIHBhc3NlcyBvdmVyIGl0cyBsaWZldGltZSAodGVzdHMgcmV1c2luZyBhXG4gKiAgIGNvbnN0cnVjdCB0cmVlLCByZXBlYXRlZCBgYXBwLnN5bnRoKClgIGNhbGxzIGFnYWluc3QgdGhlIHNhbWUgQXBwKSxcbiAqICAgdGhpcyBraW5kIG9mIHJlZ2lzdHJhdGlvbiBtdXN0IGJlIHJlc2V0IGF0IHRoZSBzdGFydCBvZiBlYWNoIHBhc3MgYW5kXG4gKiAgIG9ubHkgcmUtYXJtZWQgaWYgcmVzb2x1dGlvbiBhY3R1YWxseSByZWRpc2NvdmVycyB0aGUgdXNhZ2UgZHVyaW5nIHRoYXRcbiAqICAgcGFzcyAtIHNlZSBgX3Jlc2V0UmVzb2x2ZURpc2NvdmVyZWRQcm92aWRlckZlYXR1cmVVc2FnZWAuXG4gKi9cbnR5cGUgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uTW9kZSA9IFwic3RydWN0dXJhbFwiIHwgXCJyZXNvbHZlLWRpc2NvdmVyZWRcIjtcblxuLyoqXG4gKiBgY29uc3RydWN0c2AgaGFzIG5vIGByZW1vdmVWYWxpZGF0aW9uYCwgc28gYSB2YWxpZGF0aW9uIGluc3RhbGxlZCB2aWFcbiAqIGBub2RlLmFkZFZhbGlkYXRpb25gIHN0YXlzIGluc3RhbGxlZCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBub2RlLiBUbyBsZXRcbiAqIGEgcmVzb2x2ZS1kaXNjb3ZlcmVkIHJlZ2lzdHJhdGlvbiBnbyBxdWlldCBhZ2FpbiAoc2VlXG4gKiBgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uTW9kZWApLCB0aGUgaW5zdGFsbGVkIGBJVmFsaWRhdGlvbmAgaXMgdGhpc1xuICogdGhpbiwgbXV0YWJsZSBnYXRlOiB3aGlsZSBgYWN0aXZlYCBpcyBmYWxzZSBpdCByZXBvcnRzIG5vIGVycm9ycyBhdCBhbGwsXG4gKiByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHdyYXBwZWQgYFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnRgIHdvdWxkIHNheS5cbiAqL1xuY2xhc3MgR2F0ZWRGZWF0dXJlVmFsaWRhdGlvbiBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgcHVibGljIGFjdGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkZWxlZ2F0ZTogVmFsaWRhdGVGZWF0dXJlVGFyZ2V0U3VwcG9ydCkge31cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZSA/IHRoaXMuZGVsZWdhdGUudmFsaWRhdGUoKSA6IFtdO1xuICB9XG59XG5cbmludGVyZmFjZSBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb24ge1xuICByZWFkb25seSBtb2RlOiBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlO1xuICByZWFkb25seSB2YWxpZGF0aW9uOiBHYXRlZEZlYXR1cmVWYWxpZGF0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUVsZW1lbnRNZXRhZGF0YSB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgdW5pcXVlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhY2tUcmFjZTogc3RyaW5nW107XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRWxlbWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByb3RlY3RlZCByZWFkb25seSByYXdPdmVycmlkZXM6IGFueSA9IHt9O1xuXG4gIC8qKlxuICAgKiBBbiBleHBsaWNpdCBsb2dpY2FsIElEIHByb3ZpZGVkIGJ5IGBvdmVycmlkZUxvZ2ljYWxJZGAuXG4gICAqL1xuICBwcml2YXRlIF9sb2dpY2FsSWRPdmVycmlkZT86IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGlzIGVsZW1lbnQsIHVzZWQgZm9yIGZxbi5cbiAgICogVGhpcyBpcyB1bmRlZmluZWQgZm9yXG4gICAqIC0gZWxlbWVudHMgbm90IHJlZmVyYWJsZSwgbGlrZSBUZXJyYWZvcm1PdXRwdXRcbiAgICogLSBlbGVtZW50cyB1c2luZyB0aGVpciBvd24gZnFuIGltcGxlbWVudGF0aW9uLCBsaWtlIFRlcnJhZm9ybVByb3ZpZGVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50VHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvdmlkZXItcHJvdG9jb2wgZmVhdHVyZSBmYW1pbGllcyAoc2VlIGBQcm92aWRlckZlYXR1cmVgKSBhbHJlYWR5XG4gICAqIHJlZ2lzdGVyZWQgb24gdGhpcyBlbGVtZW50IHZpYSBgcmVnaXN0ZXJQcm92aWRlckZlYXR1cmVVc2FnZWAgb3JcbiAgICogYF9yZWdpc3RlclJlc29sdmVEaXNjb3ZlcmVkUHJvdmlkZXJGZWF0dXJlVXNhZ2VgLCBzbyByZXBlYXRlZCB1c2FnZVxuICAgKiAoZS5nLiBhIHNldHRlciBjYWxsZWQgbXVsdGlwbGUgdGltZXMsIG9yIHRoZSBzYW1lIHZhbHVlIHJlc29sdmVkIG1vcmVcbiAgICogdGhhbiBvbmNlIGluIGEgc3ludGhlc2lzIHBhc3MpIGRvZXNuJ3Qgc3RhY2sgZHVwbGljYXRlIHN5bnRoLXRpbWVcbiAgICogdmFsaWRhdGlvbnMgLSBlYWNoIGZlYXR1cmUgaW5zdGFsbHMgYXQgbW9zdCBvbmUgbm9kZSB2YWxpZGF0aW9uIGZvclxuICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIGVsZW1lbnQsIGdhdGVkIG9uL29mZiB2aWEgdGhlIHJlZ2lzdHJhdGlvbidzXG4gICAqIGBhY3RpdmVgIGZsYWcgaW5zdGVhZCBvZiBiZWluZyByZS1hZGRlZCBvciByZW1vdmVkLlxuICAgKlxuICAgKiBMYXppbHkgYWxsb2NhdGVkOiBtb3N0IGVsZW1lbnRzIGluIGEgbGFyZ2Ugc3RhY2sgbmV2ZXIgcmVnaXN0ZXIgYVxuICAgKiBwcm92aWRlciBmZWF0dXJlIGF0IGFsbCwgc28gdGhpcyBzdGF5cyBgdW5kZWZpbmVkYCB1bnRpbCB0aGUgZmlyc3RcbiAgICogcmVnaXN0cmF0aW9uIGluc3RlYWQgb2YgZXZlcnkgYFRlcnJhZm9ybUVsZW1lbnRgIHBheWluZyBmb3IgYW4gZW1wdHlcbiAgICogYE1hcGAgaXQgd2lsbCBuZXZlciB1c2UuXG4gICAqL1xuICBwcml2YXRlIF9yZWdpc3RlcmVkUHJvdmlkZXJGZWF0dXJlcz86IE1hcDxcbiAgICBQcm92aWRlckZlYXR1cmUsXG4gICAgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uXG4gID47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZWxlbWVudFR5cGU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBURVJSQUZPUk1fRUxFTUVOVF9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5fZWxlbWVudFR5cGUgPSBlbGVtZW50VHlwZTtcblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoaWQpKSB7XG4gICAgICB0aHJvdyB1bnJlc29sdmVkVG9rZW5JbkNvbnN0cnVjdElkKGlkKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJzdGFja3RyYWNlXCIsIFwidHJhY2VcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNka3RmU3RhY2soKTogVGVycmFmb3JtU3RhY2sge1xuICAgIHJldHVybiBUZXJyYWZvcm1TdGFjay5vZih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1FbGVtZW50KHg6IGFueSk6IHggaXMgVGVycmFmb3JtRWxlbWVudCB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFGT1JNX0VMRU1FTlRfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgc3ludGgtdGltZSB2YWxpZGF0aW9uIHRoYXQgdGhlIHByb2plY3QncyBkZWNsYXJlZFxuICAgKiB0YXJnZXRWZXJzaW9ucyBhZG1pdCB0aGUgZ2l2ZW4gcHJvdmlkZXItcHJvdG9jb2wgZmVhdHVyZSBmYW1pbHkuXG4gICAqIENhbGxlZCBieSBnZW5lcmF0ZWQgcHJvdmlkZXIgYmluZGluZ3Mgd2hlbiBhIHZlcnNpb25lZCBmZWF0dXJlIGlzXG4gICAqIHN0cnVjdHVyYWxseSBpbiB1c2UgLSB0aGUgZWxlbWVudCdzIGV4aXN0ZW5jZSBpbiB0aGUgY29uc3RydWN0IHRyZWVcbiAgICogYWxyZWFkeSBpbXBsaWVzIHRoZSBmZWF0dXJlIGlzIHVzZWQsIGUuZy4gY29uc3RydWN0aW5nIGFcbiAgICogYFRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlYCBhdCBhbGwgLSBzbywgdW5saWtlXG4gICAqIGBfcmVnaXN0ZXJSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYCwgdGhpcyByZWdpc3RyYXRpb24gaXNcbiAgICogbmV2ZXIgZGVhY3RpdmF0ZWQgYnkgYF9yZXNldFJlc29sdmVEaXNjb3ZlcmVkUHJvdmlkZXJGZWF0dXJlVXNhZ2VgLiBOb3RcbiAgICogaW50ZW5kZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IHVzZXIgY29kZS4gTGl2ZXMgb24gYFRlcnJhZm9ybUVsZW1lbnRgXG4gICAqIChyYXRoZXIgdGhhbiBgVGVycmFmb3JtUmVzb3VyY2VgKSBzbyBpdCBjb3ZlcnMgYW55IGVsZW1lbnQgc3ViY2xhc3NcbiAgICogdGhhdCBuZWVkcyBpdC5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclByb3ZpZGVyRmVhdHVyZVVzYWdlKGZlYXR1cmU6IFByb3ZpZGVyRmVhdHVyZSk6IHZvaWQge1xuICAgIHRoaXMuX3JlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlKGZlYXR1cmUsIFwic3RydWN0dXJhbFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgKG9yIHJlLWFybXMpIGEgc3ludGgtdGltZSB2YWxpZGF0aW9uIGZvciBhIHByb3ZpZGVyLXByb3RvY29sXG4gICAqIGZlYXR1cmUgZmFtaWx5IHdob3NlIHVzYWdlIGlzIG9ubHkga25vd24gb25jZSBhIHZhbHVlIGlzIHJlc29sdmVkXG4gICAqIGR1cmluZyBzeW50aGVzaXMgLSBlLmcuIGBtYXJrV3JpdGVPbmx5QXR0cmlidXRlYCdzIHdyYXBwZXIsIHdoaWNoIGNhbGxzXG4gICAqIHRoaXMgZnJvbSBpdHMgYHJlc29sdmUoKWAgY2xvc3VyZSBvbmx5IHdoZW4gdGhlIHJlc29sdmVkIHZhbHVlIHR1cm5zXG4gICAqIG91dCB0byBiZSBhIHJlYWwsIHJlbmRlcmFibGUgdmFsdWUuXG4gICAqXG4gICAqIFVubGlrZSBgcmVnaXN0ZXJQcm92aWRlckZlYXR1cmVVc2FnZWAsIGEgcmVnaXN0cmF0aW9uIG1hZGUgdGhyb3VnaCB0aGlzXG4gICAqIG1ldGhvZCByZXByZXNlbnRzIHVzYWdlIGRpc2NvdmVyZWQgZHVyaW5nIHRoZSBDVVJSRU5UIHN5bnRoZXNpcyBwYXNzXG4gICAqIG9ubHk6IGBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYCBkZWFjdGl2YXRlcyBpdCBhdFxuICAgKiB0aGUgc3RhcnQgb2YgZWFjaCBwYXNzLCBhbmQgY2FsbGluZyB0aGlzIG1ldGhvZCBhZ2FpbiByZS1hY3RpdmF0ZXMgaXRcbiAgICogd2l0aG91dCBpbnN0YWxsaW5nIGEgc2Vjb25kLCBkdXBsaWNhdGUgbm9kZSB2YWxpZGF0aW9uLiBFdmVyeVxuICAgKiB2YWxpZGF0aW9uLWVuYWJsZWQgZW50cnkgcG9pbnQgKGBBcHAuc3ludGhgLCBgVGVzdGluZy5zeW50aGAvXG4gICAqIGBzeW50aEhjbGAgd2l0aCB2YWxpZGF0aW9ucywgYFN0YWNrU3ludGhlc2l6ZXIuc3ludGhlc2l6ZWApIHJ1bnMgYVxuICAgKiBwcmVwYXJlIHN0ZXAgdGhhdCBwZXJmb3JtcyB0aGlzIHJlc2V0LXRoZW4tcmVkaXNjb3ZlciBjeWNsZSBiZWZvcmVcbiAgICogdmFsaWRhdGlvbnMgcnVuLCBzbyB3aGF0IGEgdmFsaWRhdGlvbiBzZWVzIGFsd2F5cyByZWZsZWN0cyBvbmx5IHRoZVxuICAgKiBwYXNzIHRoYXQgaXMgYWJvdXQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVnaXN0ZXJSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlKFxuICAgIGZlYXR1cmU6IFByb3ZpZGVyRmVhdHVyZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fcmVnaXN0ZXJQcm92aWRlckZlYXR1cmUoZmVhdHVyZSwgXCJyZXNvbHZlLWRpc2NvdmVyZWRcIik7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZXMgZXZlcnkgYHJlc29sdmUtZGlzY292ZXJlZGAgcHJvdmlkZXItZmVhdHVyZSByZWdpc3RyYXRpb24gb25cbiAgICogdGhpcyBlbGVtZW50IChzdHJ1Y3R1cmFsIHJlZ2lzdHJhdGlvbnMgYXJlIGxlZnQgdW50b3VjaGVkIC0gc2VlXG4gICAqIGBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlYCkuIENhbGxlZCBvbmNlIHBlciBzeW50aGVzaXMgcGFzcyxcbiAgICogYmVmb3JlIHRoYXQgcGFzcydzIHByZXBhcmluZyByZXNvbHZlIHJlLWRpc2NvdmVycyB3aGF0ZXZlciB1c2FnZVxuICAgKiBhY3R1YWxseSByZW5kZXJzIGR1cmluZyBpdCAtIHNlZSBgVGVycmFmb3JtU3RhY2suX3J1blByZXBhcmluZ1Jlc29sdmVgLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlKCk6IHZvaWQge1xuICAgIC8vIE5vdGhpbmcgd2FzIGV2ZXIgcmVnaXN0ZXJlZCBvbiB0aGlzIGVsZW1lbnQ6IHNraXAgYWxsb2NhdGluZyB0aGUgTWFwXG4gICAgLy8ganVzdCB0byBpdGVyYXRlIHplcm8gZW50cmllcy5cbiAgICBpZiAoIXRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVnaXN0cmF0aW9uIG9mIHRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzLnZhbHVlcygpKSB7XG4gICAgICBpZiAocmVnaXN0cmF0aW9uLm1vZGUgPT09IFwicmVzb2x2ZS1kaXNjb3ZlcmVkXCIpIHtcbiAgICAgICAgcmVnaXN0cmF0aW9uLnZhbGlkYXRpb24uYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJQcm92aWRlckZlYXR1cmUoXG4gICAgZmVhdHVyZTogUHJvdmlkZXJGZWF0dXJlLFxuICAgIG1vZGU6IFByb3ZpZGVyRmVhdHVyZVJlZ2lzdHJhdGlvbk1vZGUsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5fcmVnaXN0ZXJlZFByb3ZpZGVyRmVhdHVyZXM/LmdldChmZWF0dXJlKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIC8vIEFscmVhZHkgaW5zdGFsbGVkIG9uIHRoaXMgZWxlbWVudDogKHJlLSlhY3RpdmF0ZSBpdCByYXRoZXIgdGhhblxuICAgICAgLy8gc3RhY2tpbmcgYSBzZWNvbmQgbm9kZSB2YWxpZGF0aW9uIGZvciB0aGUgc2FtZSBmZWF0dXJlLlxuICAgICAgZXhpc3RpbmcudmFsaWRhdGlvbi5hY3RpdmUgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHMsIGZlYXR1cmUpXG4gICAgKSB7XG4gICAgICB0aHJvdyB1bmtub3duUHJvdmlkZXJGZWF0dXJlKGZlYXR1cmUpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gcHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHNbZmVhdHVyZV07XG4gICAgY29uc3QgaGludCA9IGAke3Byb3ZpZGVyRmVhdHVyZUhpbnRzW2ZlYXR1cmVdfSBhcmUgYXZhaWxhYmxlIGluICR7T2JqZWN0LmVudHJpZXMoXG4gICAgICBjb25zdHJhaW50cyxcbiAgICApXG4gICAgICAubWFwKChbcHJvZHVjdCwgcmFuZ2VdKSA9PiBgJHtwcm9kdWN0fSAke3JhbmdlfWApXG4gICAgICAuam9pbihcIiBhbmQgXCIpfS5gO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IG5ldyBHYXRlZEZlYXR1cmVWYWxpZGF0aW9uKFxuICAgICAgbmV3IFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3ZpZGVyRmVhdHVyZUxhYmVsc1tmZWF0dXJlXSxcbiAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgIGhpbnQsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBpZiAoIXRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzKSB7XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkUHJvdmlkZXJGZWF0dXJlcyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgdGhpcy5fcmVnaXN0ZXJlZFByb3ZpZGVyRmVhdHVyZXMuc2V0KGZlYXR1cmUsIHsgbW9kZSwgdmFsaWRhdGlvbiB9KTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih2YWxpZGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldGFkYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZnFuVG9rZW4/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmcW4oKSB7XG4gICAgaWYgKCF0aGlzLl9mcW5Ub2tlbikge1xuICAgICAgb2soISF0aGlzLl9lbGVtZW50VHlwZSwgXCJFbGVtZW50IHR5cGUgbm90IHNldFwiKTtcbiAgICAgIHRoaXMuX2ZxblRva2VuID0gVG9rZW4uYXNTdHJpbmcoXG4gICAgICAgIHJlZihgJHt0aGlzLl9lbGVtZW50VHlwZX0uJHt0aGlzLmZyaWVuZGx5VW5pcXVlSWR9YCwgdGhpcy5jZGt0ZlN0YWNrKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mcW5Ub2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgX2ZyaWVuZGx5VW5pcXVlSWQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmcmllbmRseVVuaXF1ZUlkKCkge1xuICAgIGlmICghdGhpcy5fZnJpZW5kbHlVbmlxdWVJZCkge1xuICAgICAgaWYgKHRoaXMuX2xvZ2ljYWxJZE92ZXJyaWRlKSB7XG4gICAgICAgIHRoaXMuX2ZyaWVuZGx5VW5pcXVlSWQgPSB0aGlzLl9sb2dpY2FsSWRPdmVycmlkZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZyaWVuZGx5VW5pcXVlSWQgPSB0aGlzLmNka3RmU3RhY2suZ2V0TG9naWNhbElkKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZnJpZW5kbHlVbmlxdWVJZDtcbiAgfVxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBhdXRvLWdlbmVyYXRlZCBsb2dpY2FsIElEIHdpdGggYSBzcGVjaWZpYyBJRC5cbiAgICogQHBhcmFtIG5ld0xvZ2ljYWxJZCBUaGUgbmV3IGxvZ2ljYWwgSUQgdG8gdXNlIGZvciB0aGlzIHN0YWNrIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGVMb2dpY2FsSWQobmV3TG9naWNhbElkOiBzdHJpbmcpIHtcbiAgICBvayhcbiAgICAgICF0aGlzLl9mcW5Ub2tlbixcbiAgICAgIFwiTG9naWNhbCBJRCBtYXkgbm90IGJlIG92ZXJyaWRkZW4gb25jZSAuZnFuIGhhcyBiZWVuIHJlcXVlc3RlZC4gTWFrZSBzdXJlIHRvIG92ZXJyaWRlIHRoZSBpZCBiZWZvcmUgcGFzc2luZyB0aGUgY29uc3RydWN0IHRvIG90aGVyIGNvbnN0cnVjdHMuXCIsXG4gICAgKTtcbiAgICB0aGlzLl9sb2dpY2FsSWRPdmVycmlkZSA9IG5ld0xvZ2ljYWxJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYSBwcmV2aW91c2x5IHBhc3NlZCBsb2dpY2FsIElkIHRvIHVzZSB0aGUgYXV0by1nZW5lcmF0ZWQgbG9naWNhbCBpZCBhZ2FpblxuICAgKi9cbiAgcHVibGljIHJlc2V0T3ZlcnJpZGVMb2dpY2FsSWQoKSB7XG4gICAgb2soXG4gICAgICAhdGhpcy5fZnFuVG9rZW4sXG4gICAgICBcIkxvZ2ljYWwgSUQgbWF5IG5vdCBiZSBvdmVycmlkZGVuIG9uY2UgLmZxbiBoYXMgYmVlbiByZXF1ZXN0ZWQuIFlvdSBjYW4gb25seSByZXNldCB0aGUgb3ZlcnJpZGUgYmVmb3JlIHlvdSBwYXNzIHRoZSBjb25zdHJ1Y3QgdG8gb3RoZXIgY29uc3RydWN0cy5cIixcbiAgICApO1xuICAgIHRoaXMuX2xvZ2ljYWxJZE92ZXJyaWRlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGFkZE92ZXJyaWRlKHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi5cIik7XG4gICAgbGV0IGN1cnI6IGFueSA9IHRoaXMucmF3T3ZlcnJpZGVzO1xuXG4gICAgd2hpbGUgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IGtleSA9IHBhcnRzLnNoaWZ0KCkhO1xuXG4gICAgICAvLyBpZiB3ZSBjYW4ndCByZWN1cnNlIGZ1cnRoZXIgb3IgdGhlIHByZXZpb3VzIHZhbHVlIGlzIG5vdCBhblxuICAgICAgLy8gb2JqZWN0IG92ZXJ3cml0ZSBpdCB3aXRoIGFuIG9iamVjdC5cbiAgICAgIGNvbnN0IGlzT2JqZWN0ID1cbiAgICAgICAgY3VycltrZXldICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIGN1cnJba2V5XSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAhQXJyYXkuaXNBcnJheShjdXJyW2tleV0pO1xuICAgICAgaWYgKCFpc09iamVjdCkge1xuICAgICAgICBjdXJyW2tleV0gPSB7fTtcbiAgICAgIH1cblxuICAgICAgY3VyciA9IGN1cnJba2V5XTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXN0S2V5ID0gcGFydHMuc2hpZnQoKSE7XG4gICAgY3VycltsYXN0S2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjb25zdHJ1Y3ROb2RlTWV0YWRhdGEoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHBhdGg6IHRoaXMubm9kZS5wYXRoLFxuICAgICAgICB1bmlxdWVJZDogdGhpcy5mcmllbmRseVVuaXF1ZUlkLFxuICAgICAgICBzdGFja1RyYWNlOiB0aGlzLm5vZGUubWV0YWRhdGEuZmluZCgoZSkgPT4gZS50eXBlID09PSBcInN0YWNrdHJhY2VcIilcbiAgICAgICAgICA/LnRyYWNlLFxuICAgICAgfSBhcyBUZXJyYWZvcm1FbGVtZW50TWV0YWRhdGEsXG4gICAgfTtcbiAgfVxufVxuIl19
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsbUNBQTRCO0FBQzVCLDJDQUFvRDtBQUNwRCxxQ0FBaUM7QUFDakMsdURBQW1EO0FBQ25ELGlEQUFxQztBQUNyQyxxQ0FBZ0Y7QUFDaEYsbUVBQTZFO0FBQzdFLGlGQUt3QztBQUV4QyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQW9CdEU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sc0JBQXNCO0lBR0c7SUFGdEIsTUFBTSxHQUFHLElBQUksQ0FBQztJQUVyQixZQUE2QixRQUFzQztRQUF0QyxhQUFRLEdBQVIsUUFBUSxDQUE4QjtJQUFHLENBQUM7SUFFaEUsUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JELENBQUM7Q0FDRjtBQWFEOzs7R0FHRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7O0lBQzFCLFlBQVksR0FBUSxFQUFFLENBQUM7SUFFMUM7O09BRUc7SUFDSyxrQkFBa0IsQ0FBVTtJQUVwQzs7Ozs7T0FLRztJQUNjLFlBQVksQ0FBVTtJQUV2Qzs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNLLDJCQUEyQixDQUdqQztJQUVGLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsV0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUks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RyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWMscUJBQXFCO1FBQ2pDLE9BQU87WUFDTCxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtnQkFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQy9CLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDO29CQUNqRSxFQUFFLEtBQUs7YUFDa0I7U0FDOUIsQ0FBQztJQUNKLENBQUM7O0FBOVBILDRDQStQQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBvayB9IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7IENvbnN0cnVjdCwgSVZhbGlkYXRpb24gfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi90b2tlbnNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcIi4vdGVycmFmb3JtLXN0YWNrXCI7XG5pbXBvcnQgeyByZWYgfSBmcm9tIFwiLi90ZkV4cHJlc3Npb25cIjtcbmltcG9ydCB7IHVucmVzb2x2ZWRUb2tlbkluQ29uc3RydWN0SWQsIHVua25vd25Qcm92aWRlckZlYXR1cmUgfSBmcm9tIFwiLi9lcnJvcnNcIjtcbmltcG9ydCB7IFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQgfSBmcm9tIFwiLi92YWxpZGF0aW9ucy90YXJnZXQtdmVyc2lvbnNcIjtcbmltcG9ydCB7XG4gIFByb3ZpZGVyRmVhdHVyZSxcbiAgcHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHMsXG4gIHByb3ZpZGVyRmVhdHVyZUhpbnRzLFxuICBwcm92aWRlckZlYXR1cmVMYWJlbHMsXG59IGZyb20gXCIuL3Byb3ZpZGVyLWZlYXR1cmUtY29uc3RyYWludHNcIjtcblxuY29uc3QgVEVSUkFGT1JNX0VMRU1FTlRfU1lNQk9MID0gU3ltYm9sLmZvcihcImNka3RmL1RlcnJhZm9ybUVsZW1lbnRcIik7XG5cbi8qKlxuICogSG93IGEgYFByb3ZpZGVyRmVhdHVyZWAgcmVnaXN0cmF0aW9uIG9uIGFuIGVsZW1lbnQgd2FzIGFybWVkOlxuICpcbiAqIC0gYHN0cnVjdHVyYWxgOiB0aGUgZWxlbWVudCdzIG1lcmUgZXhpc3RlbmNlIGlzIHRoZSB1c2FnZSAoZS5nLiBhXG4gKiAgIGBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZWAncyBjb25zdHJ1Y3RvcikuIFRoZXJlIGlzIG5vIG5vdGlvbiBvZiB0aGVcbiAqICAgZmVhdHVyZSBnb2luZyB1bnVzZWQgbGF0ZXIgaW4gdGhlIHNhbWUgc3ludGhlc2lzIHBhc3MsIHNvIGl0IGlzIGFybWVkXG4gKiAgIG9uY2UgYW5kIG5ldmVyIGRlYWN0aXZhdGVkLlxuICogLSBgcmVzb2x2ZS1kaXNjb3ZlcmVkYDogdXNhZ2UgaXMgb25seSBrbm93biBvbmNlIGEgdmFsdWUgaXMgcmVzb2x2ZWRcbiAqICAgZHVyaW5nIHN5bnRoZXNpcyAoZS5nLiBhIHdyaXRlLW9ubHkgYXR0cmlidXRlIHdyYXBwZWQgYnlcbiAqICAgYG1hcmtXcml0ZU9ubHlBdHRyaWJ1dGVgKS4gQmVjYXVzZSB0aGUgc2FtZSBlbGVtZW50IGNhbiBiZSByZXNvbHZlZFxuICogICBhY3Jvc3MgbWFueSBzeW50aGVzaXMgcGFzc2VzIG92ZXIgaXRzIGxpZmV0aW1lICh0ZXN0cyByZXVzaW5nIGFcbiAqICAgY29uc3RydWN0IHRyZWUsIHJlcGVhdGVkIGBhcHAuc3ludGgoKWAgY2FsbHMgYWdhaW5zdCB0aGUgc2FtZSBBcHApLFxuICogICB0aGlzIGtpbmQgb2YgcmVnaXN0cmF0aW9uIG11c3QgYmUgcmVzZXQgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggcGFzcyBhbmRcbiAqICAgb25seSByZS1hcm1lZCBpZiByZXNvbHV0aW9uIGFjdHVhbGx5IHJlZGlzY292ZXJzIHRoZSB1c2FnZSBkdXJpbmcgdGhhdFxuICogICBwYXNzIC0gc2VlIGBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYC5cbiAqL1xudHlwZSBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlID0gXCJzdHJ1Y3R1cmFsXCIgfCBcInJlc29sdmUtZGlzY292ZXJlZFwiO1xuXG4vKipcbiAqIGBjb25zdHJ1Y3RzYCBoYXMgbm8gYHJlbW92ZVZhbGlkYXRpb25gLCBzbyBhIHZhbGlkYXRpb24gaW5zdGFsbGVkIHZpYVxuICogYG5vZGUuYWRkVmFsaWRhdGlvbmAgc3RheXMgaW5zdGFsbGVkIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIG5vZGUuIFRvIGxldFxuICogYSByZXNvbHZlLWRpc2NvdmVyZWQgcmVnaXN0cmF0aW9uIGdvIHF1aWV0IGFnYWluIChzZWVcbiAqIGBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlYCksIHRoZSBpbnN0YWxsZWQgYElWYWxpZGF0aW9uYCBpcyB0aGlzXG4gKiB0aGluLCBtdXRhYmxlIGdhdGU6IHdoaWxlIGBhY3RpdmVgIGlzIGZhbHNlIGl0IHJlcG9ydHMgbm8gZXJyb3JzIGF0IGFsbCxcbiAqIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgd3JhcHBlZCBgVmFsaWRhdGVGZWF0dXJlVGFyZ2V0U3VwcG9ydGAgd291bGQgc2F5LlxuICovXG5jbGFzcyBHYXRlZEZlYXR1cmVWYWxpZGF0aW9uIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuICBwdWJsaWMgYWN0aXZlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRlbGVnYXRlOiBWYWxpZGF0ZUZlYXR1cmVUYXJnZXRTdXBwb3J0KSB7fVxuXG4gIHB1YmxpYyB2YWxpZGF0ZSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlID8gdGhpcy5kZWxlZ2F0ZS52YWxpZGF0ZSgpIDogW107XG4gIH1cbn1cblxuaW50ZXJmYWNlIFByb3ZpZGVyRmVhdHVyZVJlZ2lzdHJhdGlvbiB7XG4gIHJlYWRvbmx5IG1vZGU6IFByb3ZpZGVyRmVhdHVyZVJlZ2lzdHJhdGlvbk1vZGU7XG4gIHJlYWRvbmx5IHZhbGlkYXRpb246IEdhdGVkRmVhdHVyZVZhbGlkYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtRWxlbWVudE1ldGFkYXRhIHtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICByZWFkb25seSB1bmlxdWVJZDogc3RyaW5nO1xuICByZWFkb25seSBzdGFja1RyYWNlOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjb25zdHJ1Y3RzIHRoYXQgc3ludGhlc2l6ZSB0byBhIFRlcnJhZm9ybSBjb25maWd1cmF0aW9uIGJsb2NrLCBzdWNoIGFzIHJlc291cmNlcywgZGF0YSBzb3VyY2VzLFxuICogcHJvdmlkZXJzLCB2YXJpYWJsZXMgYW5kIG91dHB1dHMuIFByb3ZpZGVzIGxvZ2ljYWwgSURzLCByZWZlcmVuY2VzIGFuZCByYXcgb3ZlcnJpZGVzLlxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRWxlbWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByb3RlY3RlZCByZWFkb25seSByYXdPdmVycmlkZXM6IGFueSA9IHt9O1xuXG4gIC8qKlxuICAgKiBBbiBleHBsaWNpdCBsb2dpY2FsIElEIHByb3ZpZGVkIGJ5IGBvdmVycmlkZUxvZ2ljYWxJZGAuXG4gICAqL1xuICBwcml2YXRlIF9sb2dpY2FsSWRPdmVycmlkZT86IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGlzIGVsZW1lbnQsIHVzZWQgZm9yIGZxbi5cbiAgICogVGhpcyBpcyB1bmRlZmluZWQgZm9yXG4gICAqIC0gZWxlbWVudHMgbm90IHJlZmVyYWJsZSwgbGlrZSBUZXJyYWZvcm1PdXRwdXRcbiAgICogLSBlbGVtZW50cyB1c2luZyB0aGVpciBvd24gZnFuIGltcGxlbWVudGF0aW9uLCBsaWtlIFRlcnJhZm9ybVByb3ZpZGVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50VHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvdmlkZXItcHJvdG9jb2wgZmVhdHVyZSBmYW1pbGllcyAoc2VlIGBQcm92aWRlckZlYXR1cmVgKSBhbHJlYWR5XG4gICAqIHJlZ2lzdGVyZWQgb24gdGhpcyBlbGVtZW50IHZpYSBgcmVnaXN0ZXJQcm92aWRlckZlYXR1cmVVc2FnZWAgb3JcbiAgICogYF9yZWdpc3RlclJlc29sdmVEaXNjb3ZlcmVkUHJvdmlkZXJGZWF0dXJlVXNhZ2VgLCBzbyByZXBlYXRlZCB1c2FnZVxuICAgKiAoZS5nLiBhIHNldHRlciBjYWxsZWQgbXVsdGlwbGUgdGltZXMsIG9yIHRoZSBzYW1lIHZhbHVlIHJlc29sdmVkIG1vcmVcbiAgICogdGhhbiBvbmNlIGluIGEgc3ludGhlc2lzIHBhc3MpIGRvZXNuJ3Qgc3RhY2sgZHVwbGljYXRlIHN5bnRoLXRpbWVcbiAgICogdmFsaWRhdGlvbnMgLSBlYWNoIGZlYXR1cmUgaW5zdGFsbHMgYXQgbW9zdCBvbmUgbm9kZSB2YWxpZGF0aW9uIGZvclxuICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIGVsZW1lbnQsIGdhdGVkIG9uL29mZiB2aWEgdGhlIHJlZ2lzdHJhdGlvbidzXG4gICAqIGBhY3RpdmVgIGZsYWcgaW5zdGVhZCBvZiBiZWluZyByZS1hZGRlZCBvciByZW1vdmVkLlxuICAgKlxuICAgKiBMYXppbHkgYWxsb2NhdGVkOiBtb3N0IGVsZW1lbnRzIGluIGEgbGFyZ2Ugc3RhY2sgbmV2ZXIgcmVnaXN0ZXIgYVxuICAgKiBwcm92aWRlciBmZWF0dXJlIGF0IGFsbCwgc28gdGhpcyBzdGF5cyBgdW5kZWZpbmVkYCB1bnRpbCB0aGUgZmlyc3RcbiAgICogcmVnaXN0cmF0aW9uIGluc3RlYWQgb2YgZXZlcnkgYFRlcnJhZm9ybUVsZW1lbnRgIHBheWluZyBmb3IgYW4gZW1wdHlcbiAgICogYE1hcGAgaXQgd2lsbCBuZXZlciB1c2UuXG4gICAqL1xuICBwcml2YXRlIF9yZWdpc3RlcmVkUHJvdmlkZXJGZWF0dXJlcz86IE1hcDxcbiAgICBQcm92aWRlckZlYXR1cmUsXG4gICAgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uXG4gID47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZWxlbWVudFR5cGU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBURVJSQUZPUk1fRUxFTUVOVF9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5fZWxlbWVudFR5cGUgPSBlbGVtZW50VHlwZTtcblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoaWQpKSB7XG4gICAgICB0aHJvdyB1bnJlc29sdmVkVG9rZW5JbkNvbnN0cnVjdElkKGlkKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJzdGFja3RyYWNlXCIsIFwidHJhY2VcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNka3RmU3RhY2soKTogVGVycmFmb3JtU3RhY2sge1xuICAgIHJldHVybiBUZXJyYWZvcm1TdGFjay5vZih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1FbGVtZW50KHg6IGFueSk6IHggaXMgVGVycmFmb3JtRWxlbWVudCB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFGT1JNX0VMRU1FTlRfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgc3ludGgtdGltZSB2YWxpZGF0aW9uIHRoYXQgdGhlIHByb2plY3QncyBkZWNsYXJlZFxuICAgKiB0YXJnZXRWZXJzaW9ucyBhZG1pdCB0aGUgZ2l2ZW4gcHJvdmlkZXItcHJvdG9jb2wgZmVhdHVyZSBmYW1pbHkuXG4gICAqIENhbGxlZCBieSBnZW5lcmF0ZWQgcHJvdmlkZXIgYmluZGluZ3Mgd2hlbiBhIHZlcnNpb25lZCBmZWF0dXJlIGlzXG4gICAqIHN0cnVjdHVyYWxseSBpbiB1c2UgLSB0aGUgZWxlbWVudCdzIGV4aXN0ZW5jZSBpbiB0aGUgY29uc3RydWN0IHRyZWVcbiAgICogYWxyZWFkeSBpbXBsaWVzIHRoZSBmZWF0dXJlIGlzIHVzZWQsIGUuZy4gY29uc3RydWN0aW5nIGFcbiAgICogYFRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlYCBhdCBhbGwgLSBzbywgdW5saWtlXG4gICAqIGBfcmVnaXN0ZXJSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYCwgdGhpcyByZWdpc3RyYXRpb24gaXNcbiAgICogbmV2ZXIgZGVhY3RpdmF0ZWQgYnkgYF9yZXNldFJlc29sdmVEaXNjb3ZlcmVkUHJvdmlkZXJGZWF0dXJlVXNhZ2VgLiBOb3RcbiAgICogaW50ZW5kZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IHVzZXIgY29kZS4gTGl2ZXMgb24gYFRlcnJhZm9ybUVsZW1lbnRgXG4gICAqIChyYXRoZXIgdGhhbiBgVGVycmFmb3JtUmVzb3VyY2VgKSBzbyBpdCBjb3ZlcnMgYW55IGVsZW1lbnQgc3ViY2xhc3NcbiAgICogdGhhdCBuZWVkcyBpdC5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclByb3ZpZGVyRmVhdHVyZVVzYWdlKGZlYXR1cmU6IFByb3ZpZGVyRmVhdHVyZSk6IHZvaWQge1xuICAgIHRoaXMuX3JlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlKGZlYXR1cmUsIFwic3RydWN0dXJhbFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgKG9yIHJlLWFybXMpIGEgc3ludGgtdGltZSB2YWxpZGF0aW9uIGZvciBhIHByb3ZpZGVyLXByb3RvY29sXG4gICAqIGZlYXR1cmUgZmFtaWx5IHdob3NlIHVzYWdlIGlzIG9ubHkga25vd24gb25jZSBhIHZhbHVlIGlzIHJlc29sdmVkXG4gICAqIGR1cmluZyBzeW50aGVzaXMgLSBlLmcuIGBtYXJrV3JpdGVPbmx5QXR0cmlidXRlYCdzIHdyYXBwZXIsIHdoaWNoIGNhbGxzXG4gICAqIHRoaXMgZnJvbSBpdHMgYHJlc29sdmUoKWAgY2xvc3VyZSBvbmx5IHdoZW4gdGhlIHJlc29sdmVkIHZhbHVlIHR1cm5zXG4gICAqIG91dCB0byBiZSBhIHJlYWwsIHJlbmRlcmFibGUgdmFsdWUuXG4gICAqXG4gICAqIFVubGlrZSBgcmVnaXN0ZXJQcm92aWRlckZlYXR1cmVVc2FnZWAsIGEgcmVnaXN0cmF0aW9uIG1hZGUgdGhyb3VnaCB0aGlzXG4gICAqIG1ldGhvZCByZXByZXNlbnRzIHVzYWdlIGRpc2NvdmVyZWQgZHVyaW5nIHRoZSBDVVJSRU5UIHN5bnRoZXNpcyBwYXNzXG4gICAqIG9ubHk6IGBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYCBkZWFjdGl2YXRlcyBpdCBhdFxuICAgKiB0aGUgc3RhcnQgb2YgZWFjaCBwYXNzLCBhbmQgY2FsbGluZyB0aGlzIG1ldGhvZCBhZ2FpbiByZS1hY3RpdmF0ZXMgaXRcbiAgICogd2l0aG91dCBpbnN0YWxsaW5nIGEgc2Vjb25kLCBkdXBsaWNhdGUgbm9kZSB2YWxpZGF0aW9uLiBFdmVyeVxuICAgKiB2YWxpZGF0aW9uLWVuYWJsZWQgZW50cnkgcG9pbnQgKGBBcHAuc3ludGhgLCBgVGVzdGluZy5zeW50aGAvXG4gICAqIGBzeW50aEhjbGAgd2l0aCB2YWxpZGF0aW9ucywgYFN0YWNrU3ludGhlc2l6ZXIuc3ludGhlc2l6ZWApIHJ1bnMgYVxuICAgKiBwcmVwYXJlIHN0ZXAgdGhhdCBwZXJmb3JtcyB0aGlzIHJlc2V0LXRoZW4tcmVkaXNjb3ZlciBjeWNsZSBiZWZvcmVcbiAgICogdmFsaWRhdGlvbnMgcnVuLCBzbyB3aGF0IGEgdmFsaWRhdGlvbiBzZWVzIGFsd2F5cyByZWZsZWN0cyBvbmx5IHRoZVxuICAgKiBwYXNzIHRoYXQgaXMgYWJvdXQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVnaXN0ZXJSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlKFxuICAgIGZlYXR1cmU6IFByb3ZpZGVyRmVhdHVyZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fcmVnaXN0ZXJQcm92aWRlckZlYXR1cmUoZmVhdHVyZSwgXCJyZXNvbHZlLWRpc2NvdmVyZWRcIik7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZXMgZXZlcnkgYHJlc29sdmUtZGlzY292ZXJlZGAgcHJvdmlkZXItZmVhdHVyZSByZWdpc3RyYXRpb24gb25cbiAgICogdGhpcyBlbGVtZW50IChzdHJ1Y3R1cmFsIHJlZ2lzdHJhdGlvbnMgYXJlIGxlZnQgdW50b3VjaGVkIC0gc2VlXG4gICAqIGBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlYCkuIENhbGxlZCBvbmNlIHBlciBzeW50aGVzaXMgcGFzcyxcbiAgICogYmVmb3JlIHRoYXQgcGFzcydzIHByZXBhcmluZyByZXNvbHZlIHJlLWRpc2NvdmVycyB3aGF0ZXZlciB1c2FnZVxuICAgKiBhY3R1YWxseSByZW5kZXJzIGR1cmluZyBpdCAtIHNlZSBgVGVycmFmb3JtU3RhY2suX3J1blByZXBhcmluZ1Jlc29sdmVgLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlKCk6IHZvaWQge1xuICAgIC8vIE5vdGhpbmcgd2FzIGV2ZXIgcmVnaXN0ZXJlZCBvbiB0aGlzIGVsZW1lbnQ6IHNraXAgYWxsb2NhdGluZyB0aGUgTWFwXG4gICAgLy8ganVzdCB0byBpdGVyYXRlIHplcm8gZW50cmllcy5cbiAgICBpZiAoIXRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVnaXN0cmF0aW9uIG9mIHRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzLnZhbHVlcygpKSB7XG4gICAgICBpZiAocmVnaXN0cmF0aW9uLm1vZGUgPT09IFwicmVzb2x2ZS1kaXNjb3ZlcmVkXCIpIHtcbiAgICAgICAgcmVnaXN0cmF0aW9uLnZhbGlkYXRpb24uYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJQcm92aWRlckZlYXR1cmUoXG4gICAgZmVhdHVyZTogUHJvdmlkZXJGZWF0dXJlLFxuICAgIG1vZGU6IFByb3ZpZGVyRmVhdHVyZVJlZ2lzdHJhdGlvbk1vZGUsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5fcmVnaXN0ZXJlZFByb3ZpZGVyRmVhdHVyZXM/LmdldChmZWF0dXJlKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIC8vIEFscmVhZHkgaW5zdGFsbGVkIG9uIHRoaXMgZWxlbWVudDogKHJlLSlhY3RpdmF0ZSBpdCByYXRoZXIgdGhhblxuICAgICAgLy8gc3RhY2tpbmcgYSBzZWNvbmQgbm9kZSB2YWxpZGF0aW9uIGZvciB0aGUgc2FtZSBmZWF0dXJlLlxuICAgICAgZXhpc3RpbmcudmFsaWRhdGlvbi5hY3RpdmUgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHMsIGZlYXR1cmUpXG4gICAgKSB7XG4gICAgICB0aHJvdyB1bmtub3duUHJvdmlkZXJGZWF0dXJlKGZlYXR1cmUpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gcHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHNbZmVhdHVyZV07XG4gICAgY29uc3QgaGludCA9IGAke3Byb3ZpZGVyRmVhdHVyZUhpbnRzW2ZlYXR1cmVdfSBhcmUgYXZhaWxhYmxlIGluICR7T2JqZWN0LmVudHJpZXMoXG4gICAgICBjb25zdHJhaW50cyxcbiAgICApXG4gICAgICAubWFwKChbcHJvZHVjdCwgcmFuZ2VdKSA9PiBgJHtwcm9kdWN0fSAke3JhbmdlfWApXG4gICAgICAuam9pbihcIiBhbmQgXCIpfS5gO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IG5ldyBHYXRlZEZlYXR1cmVWYWxpZGF0aW9uKFxuICAgICAgbmV3IFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3ZpZGVyRmVhdHVyZUxhYmVsc1tmZWF0dXJlXSxcbiAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgIGhpbnQsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBpZiAoIXRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzKSB7XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkUHJvdmlkZXJGZWF0dXJlcyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgdGhpcy5fcmVnaXN0ZXJlZFByb3ZpZGVyRmVhdHVyZXMuc2V0KGZlYXR1cmUsIHsgbW9kZSwgdmFsaWRhdGlvbiB9KTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih2YWxpZGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldGFkYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZnFuVG9rZW4/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmcW4oKSB7XG4gICAgaWYgKCF0aGlzLl9mcW5Ub2tlbikge1xuICAgICAgb2soISF0aGlzLl9lbGVtZW50VHlwZSwgXCJFbGVtZW50IHR5cGUgbm90IHNldFwiKTtcbiAgICAgIHRoaXMuX2ZxblRva2VuID0gVG9rZW4uYXNTdHJpbmcoXG4gICAgICAgIHJlZihgJHt0aGlzLl9lbGVtZW50VHlwZX0uJHt0aGlzLmZyaWVuZGx5VW5pcXVlSWR9YCwgdGhpcy5jZGt0ZlN0YWNrKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mcW5Ub2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgX2ZyaWVuZGx5VW5pcXVlSWQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmcmllbmRseVVuaXF1ZUlkKCkge1xuICAgIGlmICghdGhpcy5fZnJpZW5kbHlVbmlxdWVJZCkge1xuICAgICAgaWYgKHRoaXMuX2xvZ2ljYWxJZE92ZXJyaWRlKSB7XG4gICAgICAgIHRoaXMuX2ZyaWVuZGx5VW5pcXVlSWQgPSB0aGlzLl9sb2dpY2FsSWRPdmVycmlkZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZyaWVuZGx5VW5pcXVlSWQgPSB0aGlzLmNka3RmU3RhY2suZ2V0TG9naWNhbElkKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZnJpZW5kbHlVbmlxdWVJZDtcbiAgfVxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBhdXRvLWdlbmVyYXRlZCBsb2dpY2FsIElEIHdpdGggYSBzcGVjaWZpYyBJRC5cbiAgICogQHBhcmFtIG5ld0xvZ2ljYWxJZCBUaGUgbmV3IGxvZ2ljYWwgSUQgdG8gdXNlIGZvciB0aGlzIHN0YWNrIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGVMb2dpY2FsSWQobmV3TG9naWNhbElkOiBzdHJpbmcpIHtcbiAgICBvayhcbiAgICAgICF0aGlzLl9mcW5Ub2tlbixcbiAgICAgIFwiTG9naWNhbCBJRCBtYXkgbm90IGJlIG92ZXJyaWRkZW4gb25jZSAuZnFuIGhhcyBiZWVuIHJlcXVlc3RlZC4gTWFrZSBzdXJlIHRvIG92ZXJyaWRlIHRoZSBpZCBiZWZvcmUgcGFzc2luZyB0aGUgY29uc3RydWN0IHRvIG90aGVyIGNvbnN0cnVjdHMuXCIsXG4gICAgKTtcbiAgICB0aGlzLl9sb2dpY2FsSWRPdmVycmlkZSA9IG5ld0xvZ2ljYWxJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYSBwcmV2aW91c2x5IHBhc3NlZCBsb2dpY2FsIElkIHRvIHVzZSB0aGUgYXV0by1nZW5lcmF0ZWQgbG9naWNhbCBpZCBhZ2FpblxuICAgKi9cbiAgcHVibGljIHJlc2V0T3ZlcnJpZGVMb2dpY2FsSWQoKSB7XG4gICAgb2soXG4gICAgICAhdGhpcy5fZnFuVG9rZW4sXG4gICAgICBcIkxvZ2ljYWwgSUQgbWF5IG5vdCBiZSBvdmVycmlkZGVuIG9uY2UgLmZxbiBoYXMgYmVlbiByZXF1ZXN0ZWQuIFlvdSBjYW4gb25seSByZXNldCB0aGUgb3ZlcnJpZGUgYmVmb3JlIHlvdSBwYXNzIHRoZSBjb25zdHJ1Y3QgdG8gb3RoZXIgY29uc3RydWN0cy5cIixcbiAgICApO1xuICAgIHRoaXMuX2xvZ2ljYWxJZE92ZXJyaWRlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGFkZE92ZXJyaWRlKHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi5cIik7XG4gICAgbGV0IGN1cnI6IGFueSA9IHRoaXMucmF3T3ZlcnJpZGVzO1xuXG4gICAgd2hpbGUgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IGtleSA9IHBhcnRzLnNoaWZ0KCkhO1xuXG4gICAgICAvLyBpZiB3ZSBjYW4ndCByZWN1cnNlIGZ1cnRoZXIgb3IgdGhlIHByZXZpb3VzIHZhbHVlIGlzIG5vdCBhblxuICAgICAgLy8gb2JqZWN0IG92ZXJ3cml0ZSBpdCB3aXRoIGFuIG9iamVjdC5cbiAgICAgIGNvbnN0IGlzT2JqZWN0ID1cbiAgICAgICAgY3VycltrZXldICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIGN1cnJba2V5XSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAhQXJyYXkuaXNBcnJheShjdXJyW2tleV0pO1xuICAgICAgaWYgKCFpc09iamVjdCkge1xuICAgICAgICBjdXJyW2tleV0gPSB7fTtcbiAgICAgIH1cblxuICAgICAgY3VyciA9IGN1cnJba2V5XTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXN0S2V5ID0gcGFydHMuc2hpZnQoKSE7XG4gICAgY3VycltsYXN0S2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjb25zdHJ1Y3ROb2RlTWV0YWRhdGEoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHBhdGg6IHRoaXMubm9kZS5wYXRoLFxuICAgICAgICB1bmlxdWVJZDogdGhpcy5mcmllbmRseVVuaXF1ZUlkLFxuICAgICAgICBzdGFja1RyYWNlOiB0aGlzLm5vZGUubWV0YWRhdGEuZmluZCgoZSkgPT4gZS50eXBlID09PSBcInN0YWNrdHJhY2VcIilcbiAgICAgICAgICA/LnRyYWNlLFxuICAgICAgfSBhcyBUZXJyYWZvcm1FbGVtZW50TWV0YWRhdGEsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -45,6 +45,10 @@ export interface TerraformEphemeralResourceConfig extends TerraformEphemeralMeta
45
45
  readonly terraformResourceType: string;
46
46
  readonly terraformGeneratorMetadata?: TerraformProviderGeneratorMetadata;
47
47
  }
48
+ /**
49
+ * A Terraform ephemeral resource (`ephemeral` block): a value the provider produces during a run, such as a
50
+ * temporary credential, that is never persisted to plan or state.
51
+ */
48
52
  export declare class TerraformEphemeralResource extends TerraformElement implements ITerraformEphemeralResource, ITerraformDependable, IInterpolatingParent {
49
53
  readonly terraformResourceType: string;
50
54
  readonly terraformGeneratorMetadata?: TerraformProviderGeneratorMetadata;
@@ -9,12 +9,14 @@ const util_1 = require("./util");
9
9
  const tfExpression_1 = require("./tfExpression");
10
10
  const terraform_count_1 = require("./terraform-count");
11
11
  const provider_feature_constraints_1 = require("./provider-feature-constraints");
12
- // eslint-disable-next-line @typescript-eslint/no-require-imports
13
- const assert = require("assert");
12
+ const assert_1 = require("assert");
14
13
  const TERRAFORM_EPHEMERAL_RESOURCE_SYMBOL = Symbol.for("cdktf/TerraformEphemeralResource");
15
- // eslint-disable-next-line jsdoc/require-jsdoc
14
+ /**
15
+ * A Terraform ephemeral resource (`ephemeral` block): a value the provider produces during a run, such as a
16
+ * temporary credential, that is never persisted to plan or state.
17
+ */
16
18
  class TerraformEphemeralResource extends terraform_element_1.TerraformElement {
17
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformEphemeralResource", version: "0.26.0-pre.20" };
19
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformEphemeralResource", version: "0.26.0-pre.21" };
18
20
  terraformResourceType;
19
21
  terraformGeneratorMetadata;
20
22
  // TerraformEphemeralMetaArguments
@@ -78,7 +80,7 @@ class TerraformEphemeralResource extends terraform_element_1.TerraformElement {
78
80
  return tokens_1.Token.asAnyMap(this.interpolationForAttribute(terraformAttribute));
79
81
  }
80
82
  get terraformMetaArguments() {
81
- assert(!this.forEach || typeof this.count === "undefined", `forEach and count are both set, but they are mutually exclusive. You can only use either of them. Check the ephemeral resource at path: ${this.node.path}`);
83
+ (0, assert_1.ok)(!this.forEach || typeof this.count === "undefined", `forEach and count are both set, but they are mutually exclusive. You can only use either of them. Check the ephemeral resource at path: ${this.node.path}`);
82
84
  return {
83
85
  dependsOn: this.dependsOn,
84
86
  count: terraform_count_1.TerraformCount.isTerraformCount(this.count)
@@ -141,4 +143,4 @@ class TerraformEphemeralResource extends terraform_element_1.TerraformElement {
141
143
  }
142
144
  }
143
145
  exports.TerraformEphemeralResource = TerraformEphemeralResource;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWVwaGVtZXJhbC1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZXBoZW1lcmFsLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxxQ0FBaUM7QUFDakMsMkRBQXVEO0FBRXZELDZEQUc4QjtBQUU5QixpQ0FLZ0I7QUFFaEIsaURBQWlEO0FBSWpELHVEQUFtRDtBQUNuRCxpRkFBaUU7QUFDakUsaUVBQWlFO0FBQ2pFLGlDQUFrQztBQUVsQyxNQUFNLG1DQUFtQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQ3BELGtDQUFrQyxDQUNuQyxDQUFDO0FBNkNGLCtDQUErQztBQUMvQyxNQUFhLDBCQUNYLFNBQVEsb0NBQWdCOztJQU1SLHFCQUFxQixDQUFTO0lBQzlCLDBCQUEwQixDQUFzQztJQUVoRixrQ0FBa0M7SUFFM0IsU0FBUyxDQUFZO0lBQ3JCLEtBQUssQ0FBMkI7SUFDaEMsUUFBUSxDQUFxQjtJQUM3QixTQUFTLENBQXVDO0lBQ2hELE9BQU8sQ0FBc0I7SUFFcEMsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsTUFBd0M7UUFFeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsYUFBYSxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG1DQUFtQyxFQUFFO1lBQy9ELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDO1FBQ3BFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFT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Q0FBQztRQUVGLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNqQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixHQUFHLElBQUksQ0FBQyxxQkFBcUI7U0FDOUIsQ0FBQztRQUVGLE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRTtvQkFDNUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxVQUFVO2lCQUNwQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNO2dCQUM5QyxDQUFDLENBQUM7b0JBQ0UsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQzdEO2dCQUNILENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxrQkFBMEI7UUFDekQsT0FBTyxJQUFBLGtCQUFHLEVBQ1IsYUFBYSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3hCLElBQUksa0JBQWtCLEVBQUUsRUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7O0FBOUxILGdFQStMQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi90b2tlbnNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUVsZW1lbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZWxlbWVudFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUHJvdmlkZXIgfSBmcm9tIFwiLi90ZXJyYWZvcm0tcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yTWV0YWRhdGEsXG4gIGxpZmVjeWNsZVRvVGVycmFmb3JtLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7IFByZWNvbmRpdGlvbiwgUG9zdGNvbmRpdGlvbiB9IGZyb20gXCIuL3RlcnJhZm9ybS1jb25kaXRpb25zXCI7XG5pbXBvcnQge1xuICBrZXlzVG9TbmFrZUNhc2UsXG4gIGRlZXBNZXJnZSxcbiAgcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzLFxuICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wsXG59IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1EZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLWRlcGVuZGFibGVcIjtcbmltcG9ydCB7IHJlZiwgZGVwZW5kYWJsZSB9IGZyb20gXCIuL3RmRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSVJlc29sdmFibGUgfSBmcm9tIFwiLi90b2tlbnMvcmVzb2x2YWJsZVwiO1xuaW1wb3J0IHsgSUludGVycG9sYXRpbmdQYXJlbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tYWRkcmVzc2FibGVcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1JdGVyYXRvciB9IGZyb20gXCIuL3RlcnJhZm9ybS1pdGVyYXRvclwiO1xuaW1wb3J0IHsgVGVycmFmb3JtQ291bnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tY291bnRcIjtcbmltcG9ydCB7IFByb3ZpZGVyRmVhdHVyZSB9IGZyb20gXCIuL3Byb3ZpZGVyLWZlYXR1cmUtY29uc3RyYWludHNcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKTtcblxuY29uc3QgVEVSUkFGT1JNX0VQSEVNRVJBTF9SRVNPVVJDRV9TWU1CT0wgPSBTeW1ib2wuZm9yKFxuICBcImNka3RmL1RlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlXCIsXG4pO1xuXG4vKipcbiAqIExpZmVjeWNsZSBvcHRpb25zIHN1cHBvcnRlZCBieSBUZXJyYWZvcm0gZXBoZW1lcmFsIGJsb2Nrcy4gVW5saWtlIG1hbmFnZWRcbiAqIHJlc291cmNlcywgZXBoZW1lcmFsIHJlc291cmNlcyBoYXZlIG5vIHN0YXRlLCBzbyBUZXJyYWZvcm0gb25seSBzdXBwb3J0c1xuICogYHByZWNvbmRpdGlvbmAvYHBvc3Rjb25kaXRpb25gIGhlcmUgLSBgY3JlYXRlQmVmb3JlRGVzdHJveWAsXG4gKiBgcHJldmVudERlc3Ryb3lgLCBgaWdub3JlQ2hhbmdlc2AsIGFuZCBgcmVwbGFjZVRyaWdnZXJlZEJ5YCBhcmUgYWxsXG4gKiBzdGF0ZS1vcmllbnRlZCBjb25jZXB0cyB0aGF0IGRvIG5vdCBhcHBseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZSB7XG4gIHJlYWRvbmx5IHByZWNvbmRpdGlvbj86IFByZWNvbmRpdGlvbltdO1xuICByZWFkb25seSBwb3N0Y29uZGl0aW9uPzogUG9zdGNvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IHRlcnJhZm9ybVJlc291cmNlVHlwZTogc3RyaW5nO1xuICByZWFkb25seSBmcW46IHN0cmluZztcbiAgcmVhZG9ubHkgZnJpZW5kbHlVbmlxdWVJZDogc3RyaW5nO1xuXG4gIGRlcGVuZHNPbj86IHN0cmluZ1tdO1xuICBjb3VudD86IG51bWJlciB8IFRlcnJhZm9ybUNvdW50O1xuICBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgZm9yRWFjaD86IElUZXJyYWZvcm1JdGVyYXRvcjtcblxuICBpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKTogSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogTWV0YS1hcmd1bWVudHMgYWNjZXB0ZWQgYnkgZXBoZW1lcmFsIHJlc291cmNlcy4gVGVycmFmb3JtIGVwaGVtZXJhbCBibG9ja3NcbiAqIGRvIG5vdCBzdXBwb3J0IHByb3Zpc2lvbmVycyBvciBjb25uZWN0aW9uIGJsb2NrcywgdW5saWtlIG1hbmFnZWQgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUVwaGVtZXJhbE1ldGFBcmd1bWVudHMge1xuICByZWFkb25seSBkZXBlbmRzT24/OiBJVGVycmFmb3JtRGVwZW5kYWJsZVtdO1xuICByZWFkb25seSBjb3VudD86IG51bWJlciB8IFRlcnJhZm9ybUNvdW50O1xuICByZWFkb25seSBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICByZWFkb25seSBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgcmVhZG9ubHkgZm9yRWFjaD86IElUZXJyYWZvcm1JdGVyYXRvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUNvbmZpZyBleHRlbmRzIFRlcnJhZm9ybUVwaGVtZXJhbE1ldGFBcmd1bWVudHMge1xuICByZWFkb25seSB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE/OiBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvck1ldGFkYXRhO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlXG4gIGV4dGVuZHMgVGVycmFmb3JtRWxlbWVudFxuICBpbXBsZW1lbnRzXG4gICAgSVRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlLFxuICAgIElUZXJyYWZvcm1EZXBlbmRhYmxlLFxuICAgIElJbnRlcnBvbGF0aW5nUGFyZW50XG57XG4gIHB1YmxpYyByZWFkb25seSB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhPzogVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3JNZXRhZGF0YTtcblxuICAvLyBUZXJyYWZvcm1FcGhlbWVyYWxNZXRhQXJndW1lbnRzXG5cbiAgcHVibGljIGRlcGVuZHNPbj86IHN0cmluZ1tdO1xuICBwdWJsaWMgY291bnQ/OiBudW1iZXIgfCBUZXJyYWZvcm1Db3VudDtcbiAgcHVibGljIHByb3ZpZGVyPzogVGVycmFmb3JtUHJvdmlkZXI7XG4gIHB1YmxpYyBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgcHVibGljIGZvckVhY2g/OiBJVGVycmFmb3JtSXRlcmF0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNvbmZpZzogVGVycmFmb3JtRXBoZW1lcmFsUmVzb3VyY2VDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgYGVwaGVtZXJhbC4ke2NvbmZpZy50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9YCk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFRFUlJBRk9STV9FUEhFTUVSQUxfUkVTT1VSQ0VfU1lNQk9MLCB7XG4gICAgICB2YWx1ZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlID0gY29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZTtcbiAgICB0aGlzLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhID0gY29uZmlnLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZy5kZXBlbmRzT24pKSB7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGNvbmZpZy5kZXBlbmRzT24ubWFwKChkZXBlbmRlbmN5KSA9PlxuICAgICAgICBkZXBlbmRhYmxlKGRlcGVuZGVuY3kpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jb3VudCA9IGNvbmZpZy5jb3VudDtcbiAgICB0aGlzLnByb3ZpZGVyID0gY29uZmlnLnByb3ZpZGVyO1xuICAgIHRoaXMubGlmZWN5Y2xlID0gY29uZmlnLmxpZmVjeWNsZTtcbiAgICB0aGlzLmZvckVhY2ggPSBjb25maWcuZm9yRWFjaDtcblxuICAgIC8vIEV2ZXJ5IGVwaGVtZXJhbCByZXNvdXJjZSB1bmNvbmRpdGlvbmFsbHkgdXNlcyB0aGUgZXBoZW1lcmFsLXJlc291cmNlc1xuICAgIC8vIHByb3ZpZGVyLXByb3RvY29sIGZlYXR1cmUgZmFtaWx5ICh1bmxpa2UgZS5nLiB3cml0ZS1vbmx5IGF0dHJpYnV0ZXMsXG4gICAgLy8gd2hpY2ggYXJlIG9wdC1pbiBwZXIgYXR0cmlidXRlKSwgc28gdGhpcyBpcyByZWdpc3RlcmVkIG9uY2UgaGVyZVxuICAgIC8vIHJhdGhlciB0aGFuIGJ5IGdlbmVyYXRlZCBiaW5kaW5ncy4gR29lcyB0aHJvdWdoIHRoZSBzYW1lXG4gICAgLy8gYHJlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlVXNhZ2VgIGhvb2sgKGluaGVyaXRlZCBmcm9tIGBUZXJyYWZvcm1FbGVtZW50YClcbiAgICAvLyB0aGF0IGdlbmVyYXRlZCBiaW5kaW5ncyB1c2UsIGZvciBpZGVudGljYWwgbWVzc2FnZS9kZWR1cCBiZWhhdmlvci5cbiAgICB0aGlzLnJlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlVXNhZ2UoUHJvdmlkZXJGZWF0dXJlLkVQSEVNRVJBTF9SRVNPVVJDRVMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1RlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlKFxuICAgIHg6IGFueSxcbiAgKTogeCBpcyBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHggIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmXG4gICAgICBURVJSQUZPUk1fRVBIRU1FUkFMX1JFU09VUkNFX1NZTUJPTCBpbiB4XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHJpbmdBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcih0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldEJvb2xlYW5BdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlckxpc3QoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZ01hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTWFwKFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCb29sZWFuTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQm9vbGVhbk1hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QW55TWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55TWFwKHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVycmFmb3JtTWV0YUFyZ3VtZW50cygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgYXNzZXJ0KFxuICAgICAgIXRoaXMuZm9yRWFjaCB8fCB0eXBlb2YgdGhpcy5jb3VudCA9PT0gXCJ1bmRlZmluZWRcIixcbiAgICAgIGBmb3JFYWNoIGFuZCBjb3VudCBhcmUgYm90aCBzZXQsIGJ1dCB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFlvdSBjYW4gb25seSB1c2UgZWl0aGVyIG9mIHRoZW0uIENoZWNrIHRoZSBlcGhlbWVyYWwgcmVzb3VyY2UgYXQgcGF0aDogJHt0aGlzLm5vZGUucGF0aH1gLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVwZW5kc09uOiB0aGlzLmRlcGVuZHNPbixcbiAgICAgIGNvdW50OiBUZXJyYWZvcm1Db3VudC5pc1RlcnJhZm9ybUNvdW50KHRoaXMuY291bnQpXG4gICAgICAgID8gdGhpcy5jb3VudC50b1RlcnJhZm9ybSgpXG4gICAgICAgIDogdGhpcy5jb3VudCxcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyPy5mcW4sXG4gICAgICBsaWZlY3ljbGU6IGxpZmVjeWNsZVRvVGVycmFmb3JtKHRoaXMubGlmZWN5Y2xlKSxcbiAgICAgIGZvckVhY2g6IHRoaXMuZm9yRWFjaD8uX2dldEZvckVhY2hFeHByZXNzaW9uKCksXG4gICAgfTtcbiAgfVxuXG4gIC8vIGpzaWkgY2FuJ3QgaGFuZGxlIGFic3RyYWN0IGNsYXNzZXM/XG4gIHByb3RlY3RlZCBzeW50aGVzaXplQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyBlcGhlbWVyYWwgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICovXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBkZWVwTWVyZ2UoXG4gICAgICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXModGhpcy5zeW50aGVzaXplQXR0cmlidXRlcygpKSxcbiAgICAgIGtleXNUb1NuYWtlQ2FzZSh0aGlzLnRlcnJhZm9ybU1ldGFBcmd1bWVudHMpLFxuICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZXNbXCIvL1wiXSA9IHtcbiAgICAgIC4uLihhdHRyaWJ1dGVzW1wiLy9cIl0gPz8ge30pLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGEsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBlcGhlbWVyYWw6IHtcbiAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXToge1xuICAgICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlc0ZvckhjbCh0aGlzLnN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCkpLFxuICAgICAga2V5c1RvU25ha2VDYXNlKHRoaXMudGVycmFmb3JtTWV0YUFyZ3VtZW50cyksXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0ge1xuICAgICAgLi4uKGF0dHJpYnV0ZXNbXCIvL1wiXSA/PyB7fSksXG4gICAgICAuLi50aGlzLmNvbnN0cnVjdE5vZGVNZXRhZGF0YSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVwaGVtZXJhbDoge1xuICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiB7XG4gICAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IGF0dHJpYnV0ZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9NZXRhZGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBvdmVycmlkZXM6IE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKS5sZW5ndGhcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiBPYmplY3Qua2V5cyh0aGlzLnJhd092ZXJyaWRlcyksXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVmKFxuICAgICAgYGVwaGVtZXJhbC4ke3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlfS4ke3RoaXMuZnJpZW5kbHlVbmlxdWVJZH0ke1xuICAgICAgICB0aGlzLmZvckVhY2ggPyBcIi4qXCIgOiBcIlwiXG4gICAgICB9LiR7dGVycmFmb3JtQXR0cmlidXRlfWAsXG4gICAgICB0aGlzLmNka3RmU3RhY2ssXG4gICAgKTtcbiAgfVxufVxuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWVwaGVtZXJhbC1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZXBoZW1lcmFsLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxxQ0FBaUM7QUFDakMsMkRBQXVEO0FBRXZELDZEQUc4QjtBQUU5QixpQ0FLZ0I7QUFFaEIsaURBQWlEO0FBSWpELHVEQUFtRDtBQUNuRCxpRkFBaUU7QUFDakUsbUNBQXNDO0FBRXRDLE1BQU0sbUNBQW1DLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDcEQsa0NBQWtDLENBQ25DLENBQUM7QUE2Q0Y7OztHQUdHO0FBQ0gsTUFBYSwwQkFDWCxTQUFRLG9DQUFnQjs7SUFNUixxQkFBcUIsQ0FBUztJQUM5QiwwQkFBMEIsQ0FBc0M7SUFFaEYsa0NBQWtDO0lBRTNCLFNBQVMsQ0FBWTtJQUNyQixLQUFLLENBQTJCO0lBQ2hDLFFBQVEsQ0FBcUI7SUFDN0IsU0FBUyxDQUF1QztJQUNoRCxPQUFPLENBQXNCO0lBRXBDLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLE1BQXdDO1FBRXhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLGFBQWEsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxtQ0FBbUMsRUFBRTtZQUMvRCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDMUQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQztRQUNwRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FB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LFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNqQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixHQUFHLElBQUksQ0FBQyxxQkFBcUI7U0FDOUIsQ0FBQztRQUVGLE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRTtvQkFDNUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxVQUFVO2lCQUNwQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNO2dCQUM5QyxDQUFDLENBQUM7b0JBQ0UsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQzdEO2dCQUNILENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxrQkFBMEI7UUFDekQsT0FBTyxJQUFBLGtCQUFHLEVBQ1IsYUFBYSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3hCLElBQUksa0JBQWtCLEVBQUUsRUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7O0FBOUxILGdFQStMQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi90b2tlbnNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUVsZW1lbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZWxlbWVudFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUHJvdmlkZXIgfSBmcm9tIFwiLi90ZXJyYWZvcm0tcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yTWV0YWRhdGEsXG4gIGxpZmVjeWNsZVRvVGVycmFmb3JtLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7IFByZWNvbmRpdGlvbiwgUG9zdGNvbmRpdGlvbiB9IGZyb20gXCIuL3RlcnJhZm9ybS1jb25kaXRpb25zXCI7XG5pbXBvcnQge1xuICBrZXlzVG9TbmFrZUNhc2UsXG4gIGRlZXBNZXJnZSxcbiAgcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzLFxuICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wsXG59IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1EZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLWRlcGVuZGFibGVcIjtcbmltcG9ydCB7IHJlZiwgZGVwZW5kYWJsZSB9IGZyb20gXCIuL3RmRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSVJlc29sdmFibGUgfSBmcm9tIFwiLi90b2tlbnMvcmVzb2x2YWJsZVwiO1xuaW1wb3J0IHsgSUludGVycG9sYXRpbmdQYXJlbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tYWRkcmVzc2FibGVcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1JdGVyYXRvciB9IGZyb20gXCIuL3RlcnJhZm9ybS1pdGVyYXRvclwiO1xuaW1wb3J0IHsgVGVycmFmb3JtQ291bnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tY291bnRcIjtcbmltcG9ydCB7IFByb3ZpZGVyRmVhdHVyZSB9IGZyb20gXCIuL3Byb3ZpZGVyLWZlYXR1cmUtY29uc3RyYWludHNcIjtcbmltcG9ydCB7IG9rIGFzIGFzc2VydCB9IGZyb20gXCJhc3NlcnRcIjtcblxuY29uc3QgVEVSUkFGT1JNX0VQSEVNRVJBTF9SRVNPVVJDRV9TWU1CT0wgPSBTeW1ib2wuZm9yKFxuICBcImNka3RmL1RlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlXCIsXG4pO1xuXG4vKipcbiAqIExpZmVjeWNsZSBvcHRpb25zIHN1cHBvcnRlZCBieSBUZXJyYWZvcm0gZXBoZW1lcmFsIGJsb2Nrcy4gVW5saWtlIG1hbmFnZWRcbiAqIHJlc291cmNlcywgZXBoZW1lcmFsIHJlc291cmNlcyBoYXZlIG5vIHN0YXRlLCBzbyBUZXJyYWZvcm0gb25seSBzdXBwb3J0c1xuICogYHByZWNvbmRpdGlvbmAvYHBvc3Rjb25kaXRpb25gIGhlcmUgLSBgY3JlYXRlQmVmb3JlRGVzdHJveWAsXG4gKiBgcHJldmVudERlc3Ryb3lgLCBgaWdub3JlQ2hhbmdlc2AsIGFuZCBgcmVwbGFjZVRyaWdnZXJlZEJ5YCBhcmUgYWxsXG4gKiBzdGF0ZS1vcmllbnRlZCBjb25jZXB0cyB0aGF0IGRvIG5vdCBhcHBseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZSB7XG4gIHJlYWRvbmx5IHByZWNvbmRpdGlvbj86IFByZWNvbmRpdGlvbltdO1xuICByZWFkb25seSBwb3N0Y29uZGl0aW9uPzogUG9zdGNvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IHRlcnJhZm9ybVJlc291cmNlVHlwZTogc3RyaW5nO1xuICByZWFkb25seSBmcW46IHN0cmluZztcbiAgcmVhZG9ubHkgZnJpZW5kbHlVbmlxdWVJZDogc3RyaW5nO1xuXG4gIGRlcGVuZHNPbj86IHN0cmluZ1tdO1xuICBjb3VudD86IG51bWJlciB8IFRlcnJhZm9ybUNvdW50O1xuICBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgZm9yRWFjaD86IElUZXJyYWZvcm1JdGVyYXRvcjtcblxuICBpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKTogSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogTWV0YS1hcmd1bWVudHMgYWNjZXB0ZWQgYnkgZXBoZW1lcmFsIHJlc291cmNlcy4gVGVycmFmb3JtIGVwaGVtZXJhbCBibG9ja3NcbiAqIGRvIG5vdCBzdXBwb3J0IHByb3Zpc2lvbmVycyBvciBjb25uZWN0aW9uIGJsb2NrcywgdW5saWtlIG1hbmFnZWQgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUVwaGVtZXJhbE1ldGFBcmd1bWVudHMge1xuICByZWFkb25seSBkZXBlbmRzT24/OiBJVGVycmFmb3JtRGVwZW5kYWJsZVtdO1xuICByZWFkb25seSBjb3VudD86IG51bWJlciB8IFRlcnJhZm9ybUNvdW50O1xuICByZWFkb25seSBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICByZWFkb25seSBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgcmVhZG9ubHkgZm9yRWFjaD86IElUZXJyYWZvcm1JdGVyYXRvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUNvbmZpZyBleHRlbmRzIFRlcnJhZm9ybUVwaGVtZXJhbE1ldGFBcmd1bWVudHMge1xuICByZWFkb25seSB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE/OiBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvck1ldGFkYXRhO1xufVxuXG4vKipcbiAqIEEgVGVycmFmb3JtIGVwaGVtZXJhbCByZXNvdXJjZSAoYGVwaGVtZXJhbGAgYmxvY2spOiBhIHZhbHVlIHRoZSBwcm92aWRlciBwcm9kdWNlcyBkdXJpbmcgYSBydW4sIHN1Y2ggYXMgYVxuICogdGVtcG9yYXJ5IGNyZWRlbnRpYWwsIHRoYXQgaXMgbmV2ZXIgcGVyc2lzdGVkIHRvIHBsYW4gb3Igc3RhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZVxuICBleHRlbmRzIFRlcnJhZm9ybUVsZW1lbnRcbiAgaW1wbGVtZW50c1xuICAgIElUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZSxcbiAgICBJVGVycmFmb3JtRGVwZW5kYWJsZSxcbiAgICBJSW50ZXJwb2xhdGluZ1BhcmVudFxue1xuICBwdWJsaWMgcmVhZG9ubHkgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB0ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YT86IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yTWV0YWRhdGE7XG5cbiAgLy8gVGVycmFmb3JtRXBoZW1lcmFsTWV0YUFyZ3VtZW50c1xuXG4gIHB1YmxpYyBkZXBlbmRzT24/OiBzdHJpbmdbXTtcbiAgcHVibGljIGNvdW50PzogbnVtYmVyIHwgVGVycmFmb3JtQ291bnQ7XG4gIHB1YmxpYyBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICBwdWJsaWMgbGlmZWN5Y2xlPzogVGVycmFmb3JtRXBoZW1lcmFsUmVzb3VyY2VMaWZlY3ljbGU7XG4gIHB1YmxpYyBmb3JFYWNoPzogSVRlcnJhZm9ybUl0ZXJhdG9yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb25maWc6IFRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlQ29uZmlnLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIGBlcGhlbWVyYWwuJHtjb25maWcudGVycmFmb3JtUmVzb3VyY2VUeXBlfWApO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBURVJSQUZPUk1fRVBIRU1FUkFMX1JFU09VUkNFX1NZTUJPTCwge1xuICAgICAgdmFsdWU6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZSA9IGNvbmZpZy50ZXJyYWZvcm1SZXNvdXJjZVR5cGU7XG4gICAgdGhpcy50ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YSA9IGNvbmZpZy50ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb25maWcuZGVwZW5kc09uKSkge1xuICAgICAgdGhpcy5kZXBlbmRzT24gPSBjb25maWcuZGVwZW5kc09uLm1hcCgoZGVwZW5kZW5jeSkgPT5cbiAgICAgICAgZGVwZW5kYWJsZShkZXBlbmRlbmN5KSxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY291bnQgPSBjb25maWcuY291bnQ7XG4gICAgdGhpcy5wcm92aWRlciA9IGNvbmZpZy5wcm92aWRlcjtcbiAgICB0aGlzLmxpZmVjeWNsZSA9IGNvbmZpZy5saWZlY3ljbGU7XG4gICAgdGhpcy5mb3JFYWNoID0gY29uZmlnLmZvckVhY2g7XG5cbiAgICAvLyBFdmVyeSBlcGhlbWVyYWwgcmVzb3VyY2UgdW5jb25kaXRpb25hbGx5IHVzZXMgdGhlIGVwaGVtZXJhbC1yZXNvdXJjZXNcbiAgICAvLyBwcm92aWRlci1wcm90b2NvbCBmZWF0dXJlIGZhbWlseSAodW5saWtlIGUuZy4gd3JpdGUtb25seSBhdHRyaWJ1dGVzLFxuICAgIC8vIHdoaWNoIGFyZSBvcHQtaW4gcGVyIGF0dHJpYnV0ZSksIHNvIHRoaXMgaXMgcmVnaXN0ZXJlZCBvbmNlIGhlcmVcbiAgICAvLyByYXRoZXIgdGhhbiBieSBnZW5lcmF0ZWQgYmluZGluZ3MuIEdvZXMgdGhyb3VnaCB0aGUgc2FtZVxuICAgIC8vIGByZWdpc3RlclByb3ZpZGVyRmVhdHVyZVVzYWdlYCBob29rIChpbmhlcml0ZWQgZnJvbSBgVGVycmFmb3JtRWxlbWVudGApXG4gICAgLy8gdGhhdCBnZW5lcmF0ZWQgYmluZGluZ3MgdXNlLCBmb3IgaWRlbnRpY2FsIG1lc3NhZ2UvZGVkdXAgYmVoYXZpb3IuXG4gICAgdGhpcy5yZWdpc3RlclByb3ZpZGVyRmVhdHVyZVVzYWdlKFByb3ZpZGVyRmVhdHVyZS5FUEhFTUVSQUxfUkVTT1VSQ0VTKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZShcbiAgICB4OiBhbnksXG4gICk6IHggaXMgVGVycmFmb3JtRXBoZW1lcmFsUmVzb3VyY2Uge1xuICAgIHJldHVybiAoXG4gICAgICB4ICE9PSBudWxsICYmXG4gICAgICB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgVEVSUkFGT1JNX0VQSEVNRVJBTF9SRVNPVVJDRV9TWU1CT0wgaW4geFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RyaW5nQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROdW1iZXJBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNOdW1iZXIodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldExpc3RBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNMaXN0KHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCb29sZWFuQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlckxpc3RBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNOdW1iZXJMaXN0KFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHJpbmdNYXBBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmdNYXAoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlck1hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlck1hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Qm9vbGVhbk1hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc0Jvb2xlYW5NYXAoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEFueU1hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc0FueU1hcCh0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRlcnJhZm9ybU1ldGFBcmd1bWVudHMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIGFzc2VydChcbiAgICAgICF0aGlzLmZvckVhY2ggfHwgdHlwZW9mIHRoaXMuY291bnQgPT09IFwidW5kZWZpbmVkXCIsXG4gICAgICBgZm9yRWFjaCBhbmQgY291bnQgYXJlIGJvdGggc2V0LCBidXQgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBZb3UgY2FuIG9ubHkgdXNlIGVpdGhlciBvZiB0aGVtLiBDaGVjayB0aGUgZXBoZW1lcmFsIHJlc291cmNlIGF0IHBhdGg6ICR7dGhpcy5ub2RlLnBhdGh9YCxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlcGVuZHNPbjogdGhpcy5kZXBlbmRzT24sXG4gICAgICBjb3VudDogVGVycmFmb3JtQ291bnQuaXNUZXJyYWZvcm1Db3VudCh0aGlzLmNvdW50KVxuICAgICAgICA/IHRoaXMuY291bnQudG9UZXJyYWZvcm0oKVxuICAgICAgICA6IHRoaXMuY291bnQsXG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcj8uZnFuLFxuICAgICAgbGlmZWN5Y2xlOiBsaWZlY3ljbGVUb1RlcnJhZm9ybSh0aGlzLmxpZmVjeWNsZSksXG4gICAgICBmb3JFYWNoOiB0aGlzLmZvckVhY2g/Ll9nZXRGb3JFYWNoRXhwcmVzc2lvbigpLFxuICAgIH07XG4gIH1cblxuICAvLyBqc2lpIGNhbid0IGhhbmRsZSBhYnN0cmFjdCBjbGFzc2VzP1xuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoaXMgZXBoZW1lcmFsIHJlc291cmNlIHRvIHRoZSB0ZXJyYWZvcm0gSlNPTiBvdXRwdXQuXG4gICAqL1xuICBwdWJsaWMgdG9UZXJyYWZvcm0oKTogYW55IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gZGVlcE1lcmdlKFxuICAgICAgcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzKHRoaXMuc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKSksXG4gICAgICBrZXlzVG9TbmFrZUNhc2UodGhpcy50ZXJyYWZvcm1NZXRhQXJndW1lbnRzKSxcbiAgICAgIHRoaXMucmF3T3ZlcnJpZGVzLFxuICAgICk7XG5cbiAgICBhdHRyaWJ1dGVzW1wiLy9cIl0gPSB7XG4gICAgICAuLi4oYXR0cmlidXRlc1tcIi8vXCJdID8/IHt9KSxcbiAgICAgIC4uLnRoaXMuY29uc3RydWN0Tm9kZU1ldGFkYXRhLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXBoZW1lcmFsOiB7XG4gICAgICAgIFt0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZV06IHtcbiAgICAgICAgICBbdGhpcy5mcmllbmRseVVuaXF1ZUlkXTogYXR0cmlidXRlcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBkZWVwTWVyZ2UoXG4gICAgICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wodGhpcy5zeW50aGVzaXplSGNsQXR0cmlidXRlcygpKSxcbiAgICAgIGtleXNUb1NuYWtlQ2FzZSh0aGlzLnRlcnJhZm9ybU1ldGFBcmd1bWVudHMpLFxuICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZXNbXCIvL1wiXSA9IHtcbiAgICAgIC4uLihhdHRyaWJ1dGVzW1wiLy9cIl0gPz8ge30pLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGEsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBlcGhlbWVyYWw6IHtcbiAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXToge1xuICAgICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvTWV0YWRhdGEoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcnJpZGVzOiBPYmplY3Qua2V5cyh0aGlzLnJhd092ZXJyaWRlcykubGVuZ3RoXG4gICAgICAgID8ge1xuICAgICAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXTogT2JqZWN0LmtleXModGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlZihcbiAgICAgIGBlcGhlbWVyYWwuJHt0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZX0uJHt0aGlzLmZyaWVuZGx5VW5pcXVlSWR9JHtcbiAgICAgICAgdGhpcy5mb3JFYWNoID8gXCIuKlwiIDogXCJcIlxuICAgICAgfS4ke3RlcnJhZm9ybUF0dHJpYnV0ZX1gLFxuICAgICAgdGhpcy5jZGt0ZlN0YWNrLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,9 @@
1
1
  import { Expression } from ".";
2
2
  import { FnGenerated } from "./functions/terraform-functions.generated";
3
+ /**
4
+ * Terraform and OpenTofu built-in functions, callable from CDK code; each call produces a token that renders as the
5
+ * corresponding function call in the synthesized configuration.
6
+ */
3
7
  export declare class Fn extends FnGenerated {
4
8
  /**
5
9
  * {@link https://developer.hashicorp.com/terraform/language/functions/bcrypt bcrypt} computes a hash of the given string using the Blowfish cipher, returning a string in [the _Modular Crypt Format_](https://passlib.readthedocs.io/en/stable/modular_crypt_format.html) usually expected in the shadow password file on many Unix systems.
@@ -7,9 +7,12 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
7
  const _1 = require(".");
8
8
  const helpers_1 = require("./functions/helpers");
9
9
  const terraform_functions_generated_1 = require("./functions/terraform-functions.generated");
10
- // eslint-disable-next-line jsdoc/require-jsdoc
10
+ /**
11
+ * Terraform and OpenTofu built-in functions, callable from CDK code; each call produces a token that renders as the
12
+ * corresponding function call in the synthesized configuration.
13
+ */
11
14
  class Fn extends terraform_functions_generated_1.FnGenerated {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Fn", version: "0.26.0-pre.20" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Fn", version: "0.26.0-pre.21" };
13
16
  /**
14
17
  * {@link https://developer.hashicorp.com/terraform/language/functions/bcrypt bcrypt} computes a hash of the given string using the Blowfish cipher, returning a string in [the _Modular Crypt Format_](https://passlib.readthedocs.io/en/stable/modular_crypt_format.html) usually expected in the shadow password file on many Unix systems.
15
18
  * @param {string} str
@@ -84,4 +87,4 @@ class Fn extends terraform_functions_generated_1.FnGenerated {
84
87
  }
85
88
  }
86
89
  exports.Fn = Fn;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHdCQUE4RTtBQUM5RSxpREFBNEM7QUFDNUMsNkZBQXdFO0FBRXhFLCtDQUErQztBQUMvQyxNQUFhLEVBQUcsU0FBUSwyQ0FBVzs7SUFDakM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBVyxFQUFFLElBQWE7UUFDdEMsMEZBQTBGO1FBQzFGLCtFQUErRTtRQUMvRSwrSEFBK0g7UUFDL0gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQ2hCLFNBQXFCLEVBQ3JCLFNBQXFCLEVBQ3JCLFVBQXNCO1FBRXRCLE9BQU8sSUFBQSxjQUFXLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQWEsRUFBRSxHQUFXLEVBQUUsWUFBa0I7UUFDMUQsc0ZBQXNGO1FBQ3RGLElBQUksWUFBWSxLQUFLLFNBQVM7WUFDNUIsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQy9CLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWTthQUN6RCxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUEsZUFBSyxFQUFDLElBQUEsaUJBQWMsRUFBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywrRUFBK0U7SUFDaEksQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFhLEVBQUUsSUFBVztRQUM1QyxPQUFPLElBQUEsZUFBSyxFQUFDLElBQUEsaUJBQWMsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBaUIsRUFBRSxJQUFjO1FBQzNDLGdHQUFnRztRQUNoRyxtRUFBbUU7UUFDbkUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3hELGtFQUFrRTtRQUNsRSwwRUFBMEU7UUFDMUUsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sUUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFBLFlBQVMsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBbEZILGdCQW1GQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBjb25kaXRpb25hbCwgRXhwcmVzc2lvbiwgcHJvcGVydHlBY2Nlc3MsIHJhd1N0cmluZywgVG9rZW4gfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgYXNBbnkgfSBmcm9tIFwiLi9mdW5jdGlvbnMvaGVscGVyc1wiO1xuaW1wb3J0IHsgRm5HZW5lcmF0ZWQgfSBmcm9tIFwiLi9mdW5jdGlvbnMvdGVycmFmb3JtLWZ1bmN0aW9ucy5nZW5lcmF0ZWRcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBGbiBleHRlbmRzIEZuR2VuZXJhdGVkIHtcbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9mdW5jdGlvbnMvYmNyeXB0IGJjcnlwdH0gY29tcHV0ZXMgYSBoYXNoIG9mIHRoZSBnaXZlbiBzdHJpbmcgdXNpbmcgdGhlIEJsb3dmaXNoIGNpcGhlciwgcmV0dXJuaW5nIGEgc3RyaW5nIGluIFt0aGUgX01vZHVsYXIgQ3J5cHQgRm9ybWF0X10oaHR0cHM6Ly9wYXNzbGliLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9tb2R1bGFyX2NyeXB0X2Zvcm1hdC5odG1sKSB1c3VhbGx5IGV4cGVjdGVkIGluIHRoZSBzaGFkb3cgcGFzc3dvcmQgZmlsZSBvbiBtYW55IFVuaXggc3lzdGVtcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICAgKiBAcGFyYW0ge251bWJlcn0gW2Nvc3RdXG4gICAqL1xuICBzdGF0aWMgYmNyeXB0KHN0cjogc3RyaW5nLCBjb3N0PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIGJjcnlwdCgpIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgdmFyaWFkaWMgcGFyYW1ldGVyIGFuZCBub3QgbXVsdGlwbGVcbiAgICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgbm90aGluZyBpbiB0aGUgc2NoZW1hIHRoYXQgcmVwcmVzZW50cyB0aGlzIHJ1bnRpbWUgY2hlY2s6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0vYmxvYi82YWIzZmFmNWY2NWE5MGFlMWU1YmQwNjI1ZmE5ZTgzYzBiMzRjNWUxL2ludGVybmFsL2xhbmcvZnVuY3MvY3J5cHRvLmdvI0wxMTUtTDExN1xuICAgIHJldHVybiBGbi5fYmNyeXB0KHN0ciwgY29zdCA/IFtjb3N0XSA6IFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY29uZGl0aW9uYWxzfSBBIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gdXNlcyB0aGUgdmFsdWUgb2YgYSBib29sZWFuIGV4cHJlc3Npb24gdG8gc2VsZWN0IG9uZSBvZiB0d28gdmFsdWVzLlxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IGNvbmRpdGlvblxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IHRydWVWYWx1ZVxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IGZhbHNlVmFsdWVcbiAgICovXG4gIHN0YXRpYyBjb25kaXRpb25hbChcbiAgICBjb25kaXRpb246IEV4cHJlc3Npb24sXG4gICAgdHJ1ZVZhbHVlOiBFeHByZXNzaW9uLFxuICAgIGZhbHNlVmFsdWU6IEV4cHJlc3Npb24sXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbmFsKGNvbmRpdGlvbiwgdHJ1ZVZhbHVlLCBmYWxzZVZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL2xvb2t1cCBsb29rdXB9IHJldHJpZXZlcyB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgZWxlbWVudCBmcm9tIGEgbWFwLCBnaXZlbiBpdHMga2V5LiBJZiB0aGUgZ2l2ZW4ga2V5IGRvZXMgbm90IGV4aXN0LCB0aGUgZ2l2ZW4gZGVmYXVsdCB2YWx1ZSBpcyByZXR1cm5lZCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0ge2FueX0gaW5wdXRNYXBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcGFyYW0ge2FueX0gW2RlZmF1bHRWYWx1ZV1cbiAgICovXG4gIHN0YXRpYyBsb29rdXAoaW5wdXRNYXA6IGFueSwga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSkge1xuICAgIC8vIG92ZXJ3cml0dGVuIGJlY2F1c2UgbG9va3VwKCkgdXNlcyBhIHZhcmlhZGljIGFyZ3VtZW50IGZvciBpdHMgb3B0aW9uYWwgZGVmYXVsdFZhbHVlXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgcmV0dXJuIEZuLl9sb29rdXAoaW5wdXRNYXAsIGtleSwgW1xuICAgICAgICBkZWZhdWx0VmFsdWUgPT09IG51bGwgPyBUb2tlbi5udWxsVmFsdWUoKSA6IGRlZmF1bHRWYWx1ZSxcbiAgICAgIF0pO1xuICAgIHJldHVybiBhc0FueShwcm9wZXJ0eUFjY2VzcyhpbnB1dE1hcCwgW2tleV0pKTsgLy8gLT4gcmVuZGVycyBpbnB1dE1hcFtrZXldICh3aGljaCBpcyByZWNvbW1lbmRlZCBpZiBubyBkZWZhdWx0IHZhbHVlIGlzIGdpdmVuKVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybnMgYSBwcm9wZXJ0eSBhY2Nlc3MgZXhwcmVzc2lvbiB0aGF0IGFjY2Vzc2VzIHRoZSBwcm9wZXJ0eSBhdCB0aGUgZ2l2ZW4gcGF0aCBpbiB0aGUgZ2l2ZW4gaW5wdXRNYXAuXG4gICAqIEZvciBleGFtcGxlIGxvb2t1cE5lc3RlZCh4LCBbXCJhXCIsIFwiYlwiLCBcImNcIl0pIHdpbGwgcmV0dXJuIGEgVGVycmFmb3JtIGV4cHJlc3Npb24gbGlrZSB4W1wiYVwiXVtcImJcIl1bXCJjXCJdXG4gICAqIEBwYXJhbSB7YW55fSBpbnB1dE1hcFxuICAgKiBAcGFyYW0ge0FycmF5PGFueT59IHBhdGhcbiAgICovXG4gIHN0YXRpYyBsb29rdXBOZXN0ZWQoaW5wdXRNYXA6IGFueSwgcGF0aDogYW55W10pIHtcbiAgICByZXR1cm4gYXNBbnkocHJvcGVydHlBY2Nlc3MoaW5wdXRNYXAsIHBhdGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL2pvaW4gam9pbn0gcHJvZHVjZXMgYSBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB0b2dldGhlciBhbGwgZWxlbWVudHMgb2YgYSBnaXZlbiBsaXN0IG9mIHN0cmluZ3Mgd2l0aCB0aGUgZ2l2ZW4gZGVsaW1pdGVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gbGlzdFxuICAgKi9cbiAgc3RhdGljIGpvaW4oc2VwYXJhdG9yOiBzdHJpbmcsIGxpc3Q6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIGpvaW4oKSBzdXBwb3J0cyBwYXNzaW5nIG11bHRpcGxlIGxpc3RzIHRvIGl0IGUuZy4gam9pbihzZXAsIGxpc3RBLCBsaXN0QilcbiAgICAvLyB3aGljaCB3ZSBjYW4ndCBtb2RlbCBhcyBKU0lJIGRvZXMgbm90IHN1cHBvcnQgdmFyaWFkaWMgYXJndW1lbnRzXG4gICAgcmV0dXJuIEZuLl9qb2luKHNlcGFyYXRvciwgW2xpc3RdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL3JhbmdlIHJhbmdlfSBnZW5lcmF0ZXMgYSBsaXN0IG9mIG51bWJlcnMgdXNpbmcgYSBzdGFydCB2YWx1ZSwgYSBsaW1pdCB2YWx1ZSwgYW5kIGEgc3RlcCB2YWx1ZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdFxuICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmFuZ2Uoc3RhcnQ6IG51bWJlciwgbGltaXQ6IG51bWJlciwgc3RlcCA9IDEpIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIHRoZSBzdGVwIHBhcmFtIGluIHJhbmdlKCkgaXMgb3B0aW9uYWwgd2hpY2hcbiAgICAvLyB0aGUgVGVycmFmb3JtIGZ1bmN0aW9ucyBzY2hlbWEgcmVwcmVzZW50cyBhcyBhIHNpbmdsZSB2YXJpYWRpYyBhcmd1bWVudFxuICAgIHJldHVybiBGbi5fcmFuZ2UoW3N0YXJ0LCBsaW1pdCwgc3RlcF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHdyYXAgYSBzdHJpbmcgYW5kIGVzY2FwZSBpdCBwcm9wZXJseSBmb3IgdGhlIHVzZSBpbiBUZXJyYWZvcm1cbiAgICogVGhpcyBpcyBvbmx5IG5lZWRlZCBpbiBjZXJ0YWluIHNjZW5hcmlvcyAoZS5nLiwgaWYgeW91IGhhdmUgdW5lc2NhcGVkIGRvdWJsZSBxdW90ZXMgaW4gdGhlIHN0cmluZylcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAgKi9cbiAgc3RhdGljIHJhd1N0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHJhd1N0cmluZyhzdHIpKTtcbiAgfVxufVxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHdCQUE4RTtBQUM5RSxpREFBNEM7QUFDNUMsNkZBQXdFO0FBRXhFOzs7R0FHRztBQUNILE1BQWEsRUFBRyxTQUFRLDJDQUFXOztJQUNqQzs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFXLEVBQUUsSUFBYTtRQUN0QywwRkFBMEY7UUFDMUYsK0VBQStFO1FBQy9FLCtIQUErSDtRQUMvSCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsU0FBcUIsRUFDckIsU0FBcUIsRUFDckIsVUFBc0I7UUFFdEIsT0FBTyxJQUFBLGNBQVcsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBYSxFQUFFLEdBQVcsRUFBRSxZQUFrQjtRQUMxRCxzRkFBc0Y7UUFDdEYsSUFBSSxZQUFZLEtBQUssU0FBUztZQUM1QixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDL0IsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZO2FBQ3pELENBQUMsQ0FBQztRQUNMLE9BQU8sSUFBQSxlQUFLLEVBQUMsSUFBQSxpQkFBYyxFQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLCtFQUErRTtJQUNoSSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWEsRUFBRSxJQUFXO1FBQzVDLE9BQU8sSUFBQSxlQUFLLEVBQUMsSUFBQSxpQkFBYyxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFpQixFQUFFLElBQWM7UUFDM0MsZ0dBQWdHO1FBQ2hHLG1FQUFtRTtRQUNuRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDeEQsa0VBQWtFO1FBQ2xFLDBFQUEwRTtRQUMxRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQVc7UUFDMUIsT0FBTyxRQUFLLENBQUMsUUFBUSxDQUFDLElBQUEsWUFBUyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUFsRkgsZ0JBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IGNvbmRpdGlvbmFsLCBFeHByZXNzaW9uLCBwcm9wZXJ0eUFjY2VzcywgcmF3U3RyaW5nLCBUb2tlbiB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBhc0FueSB9IGZyb20gXCIuL2Z1bmN0aW9ucy9oZWxwZXJzXCI7XG5pbXBvcnQgeyBGbkdlbmVyYXRlZCB9IGZyb20gXCIuL2Z1bmN0aW9ucy90ZXJyYWZvcm0tZnVuY3Rpb25zLmdlbmVyYXRlZFwiO1xuXG4vKipcbiAqIFRlcnJhZm9ybSBhbmQgT3BlblRvZnUgYnVpbHQtaW4gZnVuY3Rpb25zLCBjYWxsYWJsZSBmcm9tIENESyBjb2RlOyBlYWNoIGNhbGwgcHJvZHVjZXMgYSB0b2tlbiB0aGF0IHJlbmRlcnMgYXMgdGhlXG4gKiBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uIGNhbGwgaW4gdGhlIHN5bnRoZXNpemVkIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBGbiBleHRlbmRzIEZuR2VuZXJhdGVkIHtcbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9mdW5jdGlvbnMvYmNyeXB0IGJjcnlwdH0gY29tcHV0ZXMgYSBoYXNoIG9mIHRoZSBnaXZlbiBzdHJpbmcgdXNpbmcgdGhlIEJsb3dmaXNoIGNpcGhlciwgcmV0dXJuaW5nIGEgc3RyaW5nIGluIFt0aGUgX01vZHVsYXIgQ3J5cHQgRm9ybWF0X10oaHR0cHM6Ly9wYXNzbGliLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9tb2R1bGFyX2NyeXB0X2Zvcm1hdC5odG1sKSB1c3VhbGx5IGV4cGVjdGVkIGluIHRoZSBzaGFkb3cgcGFzc3dvcmQgZmlsZSBvbiBtYW55IFVuaXggc3lzdGVtcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICAgKiBAcGFyYW0ge251bWJlcn0gW2Nvc3RdXG4gICAqL1xuICBzdGF0aWMgYmNyeXB0KHN0cjogc3RyaW5nLCBjb3N0PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIGJjcnlwdCgpIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgdmFyaWFkaWMgcGFyYW1ldGVyIGFuZCBub3QgbXVsdGlwbGVcbiAgICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgbm90aGluZyBpbiB0aGUgc2NoZW1hIHRoYXQgcmVwcmVzZW50cyB0aGlzIHJ1bnRpbWUgY2hlY2s6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0vYmxvYi82YWIzZmFmNWY2NWE5MGFlMWU1YmQwNjI1ZmE5ZTgzYzBiMzRjNWUxL2ludGVybmFsL2xhbmcvZnVuY3MvY3J5cHRvLmdvI0wxMTUtTDExN1xuICAgIHJldHVybiBGbi5fYmNyeXB0KHN0ciwgY29zdCA/IFtjb3N0XSA6IFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY29uZGl0aW9uYWxzfSBBIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gdXNlcyB0aGUgdmFsdWUgb2YgYSBib29sZWFuIGV4cHJlc3Npb24gdG8gc2VsZWN0IG9uZSBvZiB0d28gdmFsdWVzLlxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IGNvbmRpdGlvblxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IHRydWVWYWx1ZVxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IGZhbHNlVmFsdWVcbiAgICovXG4gIHN0YXRpYyBjb25kaXRpb25hbChcbiAgICBjb25kaXRpb246IEV4cHJlc3Npb24sXG4gICAgdHJ1ZVZhbHVlOiBFeHByZXNzaW9uLFxuICAgIGZhbHNlVmFsdWU6IEV4cHJlc3Npb24sXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbmFsKGNvbmRpdGlvbiwgdHJ1ZVZhbHVlLCBmYWxzZVZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL2xvb2t1cCBsb29rdXB9IHJldHJpZXZlcyB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgZWxlbWVudCBmcm9tIGEgbWFwLCBnaXZlbiBpdHMga2V5LiBJZiB0aGUgZ2l2ZW4ga2V5IGRvZXMgbm90IGV4aXN0LCB0aGUgZ2l2ZW4gZGVmYXVsdCB2YWx1ZSBpcyByZXR1cm5lZCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0ge2FueX0gaW5wdXRNYXBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcGFyYW0ge2FueX0gW2RlZmF1bHRWYWx1ZV1cbiAgICovXG4gIHN0YXRpYyBsb29rdXAoaW5wdXRNYXA6IGFueSwga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSkge1xuICAgIC8vIG92ZXJ3cml0dGVuIGJlY2F1c2UgbG9va3VwKCkgdXNlcyBhIHZhcmlhZGljIGFyZ3VtZW50IGZvciBpdHMgb3B0aW9uYWwgZGVmYXVsdFZhbHVlXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgcmV0dXJuIEZuLl9sb29rdXAoaW5wdXRNYXAsIGtleSwgW1xuICAgICAgICBkZWZhdWx0VmFsdWUgPT09IG51bGwgPyBUb2tlbi5udWxsVmFsdWUoKSA6IGRlZmF1bHRWYWx1ZSxcbiAgICAgIF0pO1xuICAgIHJldHVybiBhc0FueShwcm9wZXJ0eUFjY2VzcyhpbnB1dE1hcCwgW2tleV0pKTsgLy8gLT4gcmVuZGVycyBpbnB1dE1hcFtrZXldICh3aGljaCBpcyByZWNvbW1lbmRlZCBpZiBubyBkZWZhdWx0IHZhbHVlIGlzIGdpdmVuKVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybnMgYSBwcm9wZXJ0eSBhY2Nlc3MgZXhwcmVzc2lvbiB0aGF0IGFjY2Vzc2VzIHRoZSBwcm9wZXJ0eSBhdCB0aGUgZ2l2ZW4gcGF0aCBpbiB0aGUgZ2l2ZW4gaW5wdXRNYXAuXG4gICAqIEZvciBleGFtcGxlIGxvb2t1cE5lc3RlZCh4LCBbXCJhXCIsIFwiYlwiLCBcImNcIl0pIHdpbGwgcmV0dXJuIGEgVGVycmFmb3JtIGV4cHJlc3Npb24gbGlrZSB4W1wiYVwiXVtcImJcIl1bXCJjXCJdXG4gICAqIEBwYXJhbSB7YW55fSBpbnB1dE1hcFxuICAgKiBAcGFyYW0ge0FycmF5PGFueT59IHBhdGhcbiAgICovXG4gIHN0YXRpYyBsb29rdXBOZXN0ZWQoaW5wdXRNYXA6IGFueSwgcGF0aDogYW55W10pIHtcbiAgICByZXR1cm4gYXNBbnkocHJvcGVydHlBY2Nlc3MoaW5wdXRNYXAsIHBhdGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL2pvaW4gam9pbn0gcHJvZHVjZXMgYSBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB0b2dldGhlciBhbGwgZWxlbWVudHMgb2YgYSBnaXZlbiBsaXN0IG9mIHN0cmluZ3Mgd2l0aCB0aGUgZ2l2ZW4gZGVsaW1pdGVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gbGlzdFxuICAgKi9cbiAgc3RhdGljIGpvaW4oc2VwYXJhdG9yOiBzdHJpbmcsIGxpc3Q6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIGpvaW4oKSBzdXBwb3J0cyBwYXNzaW5nIG11bHRpcGxlIGxpc3RzIHRvIGl0IGUuZy4gam9pbihzZXAsIGxpc3RBLCBsaXN0QilcbiAgICAvLyB3aGljaCB3ZSBjYW4ndCBtb2RlbCBhcyBKU0lJIGRvZXMgbm90IHN1cHBvcnQgdmFyaWFkaWMgYXJndW1lbnRzXG4gICAgcmV0dXJuIEZuLl9qb2luKHNlcGFyYXRvciwgW2xpc3RdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZnVuY3Rpb25zL3JhbmdlIHJhbmdlfSBnZW5lcmF0ZXMgYSBsaXN0IG9mIG51bWJlcnMgdXNpbmcgYSBzdGFydCB2YWx1ZSwgYSBsaW1pdCB2YWx1ZSwgYW5kIGEgc3RlcCB2YWx1ZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdFxuICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmFuZ2Uoc3RhcnQ6IG51bWJlciwgbGltaXQ6IG51bWJlciwgc3RlcCA9IDEpIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIHRoZSBzdGVwIHBhcmFtIGluIHJhbmdlKCkgaXMgb3B0aW9uYWwgd2hpY2hcbiAgICAvLyB0aGUgVGVycmFmb3JtIGZ1bmN0aW9ucyBzY2hlbWEgcmVwcmVzZW50cyBhcyBhIHNpbmdsZSB2YXJpYWRpYyBhcmd1bWVudFxuICAgIHJldHVybiBGbi5fcmFuZ2UoW3N0YXJ0LCBsaW1pdCwgc3RlcF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHdyYXAgYSBzdHJpbmcgYW5kIGVzY2FwZSBpdCBwcm9wZXJseSBmb3IgdGhlIHVzZSBpbiBUZXJyYWZvcm1cbiAgICogVGhpcyBpcyBvbmx5IG5lZWRlZCBpbiBjZXJ0YWluIHNjZW5hcmlvcyAoZS5nLiwgaWYgeW91IGhhdmUgdW5lc2NhcGVkIGRvdWJsZSBxdW90ZXMgaW4gdGhlIHN0cmluZylcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAgKi9cbiAgc3RhdGljIHJhd1N0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHJhd1N0cmluZyhzdHIpKTtcbiAgfVxufVxuIl19
@@ -6,6 +6,10 @@ export interface TerraformHclModuleConfig extends TerraformModuleConfig {
6
6
  [key: string]: any;
7
7
  };
8
8
  }
9
+ /**
10
+ * A Terraform module (`module` block) used without generated bindings: input variables are set by name and outputs
11
+ * are read by name.
12
+ */
9
13
  export declare class TerraformHclModule extends TerraformModule {
10
14
  private _variables?;
11
15
  constructor(scope: Construct, id: string, options: TerraformHclModuleConfig);