projen-cdktf-hybrid-construct 0.1.61 → 0.1.64

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.
package/.jsii CHANGED
@@ -93,7 +93,7 @@
93
93
  "kind": "interface",
94
94
  "locationInModule": {
95
95
  "filename": "src/hybrid-module.ts",
96
- "line": 6
96
+ "line": 7
97
97
  },
98
98
  "name": "ConstructExamplesOption",
99
99
  "properties": [
@@ -105,7 +105,7 @@
105
105
  "immutable": true,
106
106
  "locationInModule": {
107
107
  "filename": "src/hybrid-module.ts",
108
- "line": 8
108
+ "line": 9
109
109
  },
110
110
  "name": "enabled",
111
111
  "type": {
@@ -120,7 +120,7 @@
120
120
  "immutable": true,
121
121
  "locationInModule": {
122
122
  "filename": "src/hybrid-module.ts",
123
- "line": 10
123
+ "line": 11
124
124
  },
125
125
  "name": "folder",
126
126
  "optional": true,
@@ -148,7 +148,7 @@
148
148
  },
149
149
  "locationInModule": {
150
150
  "filename": "src/hybrid-module.ts",
151
- "line": 144
151
+ "line": 167
152
152
  },
153
153
  "parameters": [
154
154
  {
@@ -162,7 +162,7 @@
162
162
  "kind": "class",
163
163
  "locationInModule": {
164
164
  "filename": "src/hybrid-module.ts",
165
- "line": 143
165
+ "line": 166
166
166
  },
167
167
  "name": "HybridModule",
168
168
  "symbolId": "src/hybrid-module:HybridModule"
@@ -180,7 +180,7 @@
180
180
  "kind": "interface",
181
181
  "locationInModule": {
182
182
  "filename": "src/hybrid-module.ts",
183
- "line": 22
183
+ "line": 25
184
184
  },
185
185
  "name": "HybridModuleOptions",
186
186
  "properties": [
@@ -197,7 +197,7 @@
197
197
  "immutable": true,
198
198
  "locationInModule": {
199
199
  "filename": "src/hybrid-module.ts",
200
- "line": 28
200
+ "line": 31
201
201
  },
202
202
  "name": "cdktfVersion",
203
203
  "optional": true,
@@ -218,7 +218,7 @@
218
218
  "immutable": true,
219
219
  "locationInModule": {
220
220
  "filename": "src/hybrid-module.ts",
221
- "line": 48
221
+ "line": 51
222
222
  },
223
223
  "name": "constructExamples",
224
224
  "optional": true,
@@ -236,7 +236,7 @@
236
236
  "immutable": true,
237
237
  "locationInModule": {
238
238
  "filename": "src/hybrid-module.ts",
239
- "line": 34
239
+ "line": 37
240
240
  },
241
241
  "name": "constructVersion",
242
242
  "optional": true,
@@ -253,7 +253,7 @@
253
253
  "immutable": true,
254
254
  "locationInModule": {
255
255
  "filename": "src/hybrid-module.ts",
256
- "line": 55
256
+ "line": 58
257
257
  },
258
258
  "name": "projectId",
259
259
  "optional": true,
@@ -261,6 +261,23 @@
261
261
  "primitive": "string"
262
262
  }
263
263
  },
264
+ {
265
+ "abstract": true,
266
+ "docs": {
267
+ "stability": "stable",
268
+ "summary": "If set a terraform plan is being run as part of the tests."
269
+ },
270
+ "immutable": true,
271
+ "locationInModule": {
272
+ "filename": "src/hybrid-module.ts",
273
+ "line": 63
274
+ },
275
+ "name": "runPlan",
276
+ "optional": true,
277
+ "type": {
278
+ "primitive": "boolean"
279
+ }
280
+ },
264
281
  {
265
282
  "abstract": true,
266
283
  "docs": {
@@ -274,7 +291,7 @@
274
291
  "immutable": true,
275
292
  "locationInModule": {
276
293
  "filename": "src/hybrid-module.ts",
277
- "line": 41
294
+ "line": 44
278
295
  },
279
296
  "name": "terraformExamples",
280
297
  "optional": true,
@@ -295,7 +312,7 @@
295
312
  "kind": "interface",
296
313
  "locationInModule": {
297
314
  "filename": "src/hybrid-module.ts",
298
- "line": 13
315
+ "line": 14
299
316
  },
300
317
  "name": "TerraformExamplesOption",
301
318
  "properties": [
@@ -307,7 +324,7 @@
307
324
  "immutable": true,
308
325
  "locationInModule": {
309
326
  "filename": "src/hybrid-module.ts",
310
- "line": 15
327
+ "line": 16
311
328
  },
312
329
  "name": "enabled",
313
330
  "type": {
@@ -322,7 +339,23 @@
322
339
  "immutable": true,
323
340
  "locationInModule": {
324
341
  "filename": "src/hybrid-module.ts",
325
- "line": 17
342
+ "line": 22
343
+ },
344
+ "name": "exampleCode",
345
+ "optional": true,
346
+ "type": {
347
+ "primitive": "string"
348
+ }
349
+ },
350
+ {
351
+ "abstract": true,
352
+ "docs": {
353
+ "stability": "stable"
354
+ },
355
+ "immutable": true,
356
+ "locationInModule": {
357
+ "filename": "src/hybrid-module.ts",
358
+ "line": 18
326
359
  },
327
360
  "name": "folder",
328
361
  "optional": true,
@@ -338,7 +371,7 @@
338
371
  "immutable": true,
339
372
  "locationInModule": {
340
373
  "filename": "src/hybrid-module.ts",
341
- "line": 19
374
+ "line": 20
342
375
  },
343
376
  "name": "providerConfig",
344
377
  "optional": true,
@@ -569,6 +602,6 @@
569
602
  "symbolId": "src/terraform-module:TerraformVersionConstraint"
570
603
  }
571
604
  },
572
- "version": "0.1.61",
573
- "fingerprint": "Dlrp7OMidUUJp41GEIw7GZWCqoWhO+yHflnLjsINjzM="
605
+ "version": "0.1.64",
606
+ "fingerprint": "+1xaYmhv8Yk6EVDEimCZwC7aIBTE9B8nezzCYbe5usE="
574
607
  }
package/API.md CHANGED
@@ -204,6 +204,7 @@ const hybridModuleOptions: HybridModuleOptions = { ... }
204
204
  | <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.constructExamples">constructExamples</a></code> | <code><a href="#projen-cdktf-hybrid-construct.ConstructExamplesOption">ConstructExamplesOption</a></code> | If set a construct examples folder will be created. |
205
205
  | <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.constructVersion">constructVersion</a></code> | <code>string</code> | Construct version to use. |
206
206
  | <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.projectId">projectId</a></code> | <code>string</code> | If set a terraform examples folder will be created Defaults to a uuid string as cdktf would Mostly used for testing to have a predictable result. |
207
+ | <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.runPlan">runPlan</a></code> | <code>boolean</code> | If set a terraform plan is being run as part of the tests. |
207
208
  | <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.terraformExamples">terraformExamples</a></code> | <code><a href="#projen-cdktf-hybrid-construct.TerraformExamplesOption">TerraformExamplesOption</a></code> | If set a terraform examples folder will be created. |
208
209
 
209
210
  ---
@@ -2311,6 +2312,18 @@ If set a terraform examples folder will be created Defaults to a uuid string as
2311
2312
 
2312
2313
  ---
2313
2314
 
2315
+ ##### `runPlan`<sup>Optional</sup> <a name="runPlan" id="projen-cdktf-hybrid-construct.HybridModuleOptions.property.runPlan"></a>
2316
+
2317
+ ```typescript
2318
+ public readonly runPlan: boolean;
2319
+ ```
2320
+
2321
+ - *Type:* boolean
2322
+
2323
+ If set a terraform plan is being run as part of the tests.
2324
+
2325
+ ---
2326
+
2314
2327
  ##### `terraformExamples`<sup>Optional</sup> <a name="terraformExamples" id="projen-cdktf-hybrid-construct.HybridModuleOptions.property.terraformExamples"></a>
2315
2328
 
2316
2329
  ```typescript
@@ -2339,6 +2352,7 @@ const terraformExamplesOption: TerraformExamplesOption = { ... }
2339
2352
  | **Name** | **Type** | **Description** |
2340
2353
  | --- | --- | --- |
2341
2354
  | <code><a href="#projen-cdktf-hybrid-construct.TerraformExamplesOption.property.enabled">enabled</a></code> | <code>boolean</code> | *No description.* |
2355
+ | <code><a href="#projen-cdktf-hybrid-construct.TerraformExamplesOption.property.exampleCode">exampleCode</a></code> | <code>string</code> | *No description.* |
2342
2356
  | <code><a href="#projen-cdktf-hybrid-construct.TerraformExamplesOption.property.folder">folder</a></code> | <code>string</code> | *No description.* |
2343
2357
  | <code><a href="#projen-cdktf-hybrid-construct.TerraformExamplesOption.property.providerConfig">providerConfig</a></code> | <code>string</code> | *No description.* |
2344
2358
 
@@ -2354,6 +2368,16 @@ public readonly enabled: boolean;
2354
2368
 
2355
2369
  ---
2356
2370
 
2371
+ ##### `exampleCode`<sup>Optional</sup> <a name="exampleCode" id="projen-cdktf-hybrid-construct.TerraformExamplesOption.property.exampleCode"></a>
2372
+
2373
+ ```typescript
2374
+ public readonly exampleCode: string;
2375
+ ```
2376
+
2377
+ - *Type:* string
2378
+
2379
+ ---
2380
+
2357
2381
  ##### `folder`<sup>Optional</sup> <a name="folder" id="projen-cdktf-hybrid-construct.TerraformExamplesOption.property.folder"></a>
2358
2382
 
2359
2383
  ```typescript
package/CHANGELOG.md CHANGED
@@ -1,2 +1,7 @@
1
1
 
2
- ### [0.1.61](https://github.com/DanielMSchmidt/projen-cdktf-hybrid-construct/compare/v0.1.60...v0.1.61) (2022-05-08)
2
+ ### [0.1.64](https://github.com/DanielMSchmidt/projen-cdktf-hybrid-construct/compare/v0.1.63...v0.1.64) (2022-05-09)
3
+
4
+
5
+ ### Features
6
+
7
+ * allow to disable terraform plan ([#66](https://github.com/DanielMSchmidt/projen-cdktf-hybrid-construct/issues/66)) ([a21f441](https://github.com/DanielMSchmidt/projen-cdktf-hybrid-construct/commit/a21f441ef7f45c9ee06111e1ad4bef8f90737098))
@@ -7,6 +7,7 @@ export interface TerraformExamplesOption {
7
7
  readonly enabled: boolean;
8
8
  readonly folder?: string;
9
9
  readonly providerConfig?: string;
10
+ readonly exampleCode?: string;
10
11
  }
11
12
  export interface HybridModuleOptions extends ConstructLibraryOptions {
12
13
  /**
@@ -38,6 +39,10 @@ export interface HybridModuleOptions extends ConstructLibraryOptions {
38
39
  * Mostly used for testing to have a predictable result
39
40
  */
40
41
  readonly projectId?: string;
42
+ /**
43
+ * If set a terraform plan is being run as part of the tests
44
+ */
45
+ readonly runPlan?: boolean;
41
46
  }
42
47
  /**
43
48
  * Hybrid CDKTF Construct / Terraform Module
@@ -3,6 +3,7 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.HybridModule = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const path = require("path");
6
7
  const projen_1 = require("projen");
7
8
  const cdk_1 = require("projen/lib/cdk");
8
9
  const uuid_1 = require("uuid");
@@ -72,8 +73,8 @@ module "my_awesome_test" {
72
73
  }
73
74
  `;
74
75
  class ScriptFile extends projen_1.FileBase {
75
- constructor(project, path, content) {
76
- super(project, path, {
76
+ constructor(project, filePath, content) {
77
+ super(project, filePath, {
77
78
  executable: true,
78
79
  });
79
80
  this.content = content;
@@ -82,6 +83,20 @@ class ScriptFile extends projen_1.FileBase {
82
83
  return this.content;
83
84
  }
84
85
  }
86
+ class HCLFile extends projen_1.FileBase {
87
+ constructor(project, filePath, content) {
88
+ super(project, filePath, {
89
+ executable: false,
90
+ committed: true,
91
+ readonly: false,
92
+ });
93
+ this.content = content;
94
+ }
95
+ synthesizeContent(_) {
96
+ return `# This file is managed by projen. Do not edit, change the .projenrc file instead.
97
+ ${this.content}`;
98
+ }
99
+ }
85
100
  /**
86
101
  * Hybrid CDKTF Construct / Terraform Module
87
102
  *
@@ -152,24 +167,21 @@ terraform {
152
167
  const examplesFolder = options.terraformExamples.folder || "terraform-examples";
153
168
  new projen_1.SampleDir(this, examplesFolder, {
154
169
  files: {
155
- "main.tf": `
156
- # Configure Terraform
157
- ${providerConfig}
158
-
159
- `.trimStart(),
170
+ "main.tf": options.terraformExamples.exampleCode ||
171
+ `# Configure you module here`,
160
172
  "README.md": terraformReadmeDocs.trim(),
161
173
  },
162
174
  });
175
+ new HCLFile(this, path.join(examplesFolder, "provider.tf"), providerConfig);
163
176
  this.gitignore.addPatterns(`${examplesFolder}/.terraform`, `${examplesFolder}/.terraform.lock.hcl`);
164
- new ScriptFile(this, "./scripts/tf-module-test.sh", `
165
- #!/bin/bash
166
- # This script is created by projen, do not edit it directly.
167
- set -e
168
-
169
- terraform -chdir=${examplesFolder} init --upgrade
170
- terraform -chdir=${examplesFolder} fmt
171
- terraform -chdir=${examplesFolder} validate
172
- terraform -chdir=${examplesFolder} plan
177
+ new ScriptFile(this, "./scripts/tf-module-test.sh", `#!/bin/bash
178
+ # This script is created by projen, do not edit it directly.
179
+ set -e
180
+
181
+ terraform -chdir=${examplesFolder} init --upgrade
182
+ terraform -chdir=${examplesFolder} fmt
183
+ terraform -chdir=${examplesFolder} validate
184
+ ${options.runPlan ? `terraform -chdir=${examplesFolder} plan` : ""}
173
185
  `);
174
186
  this.testTask.exec("./scripts/tf-module-test.sh");
175
187
  (_c = this.jest) === null || _c === void 0 ? void 0 : _c.addIgnorePattern(examplesFolder);
@@ -305,5 +317,5 @@ done
305
317
  }
306
318
  exports.HybridModule = HybridModule;
307
319
  _a = JSII_RTTI_SYMBOL_1;
308
- HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.1.61" };
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQWlFO0FBQ2pFLHdDQUFzRTtBQUN0RSwrQkFBa0M7QUFDbEMseUNBQXNDO0FBc0R0QyxNQUFNLGdCQUFnQixHQUFHOzs7Ozs7Ozs7Ozs7Q0FZeEIsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJ6QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHOzs7Ozs7Ozs7S0FTdkIsQ0FBQztBQUVOLE1BQU0sVUFBVyxTQUFRLGlCQUFRO0lBQy9CLFlBQVksT0FBZ0IsRUFBRSxJQUFZLEVBQVUsT0FBZTtRQUNqRSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUNuQixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFIK0MsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUluRSxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsWUFBYSxTQUFRLGlCQUFXO0lBQzNDLFlBQVksT0FBNEI7O1FBQ3RDLEtBQUssQ0FBQztZQUNKLEdBQUcsbUJBQVE7WUFDWCxHQUFHLE9BQU87WUFDVixhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFDdEQsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQztZQUNGLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQztRQUNq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Q0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7WUFDeEMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDaEIsSUFBSSxFQUFFLHVCQUF1QjtTQUM5QixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsQ0FDWixJQUFJLEVBQ0oseUJBQXlCLEVBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaURMLENBQUMsSUFBSSxFQUFFLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ2pELElBQUksRUFBRSxrQkFBa0I7U0FDekIsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0lBQ3RDLENBQUM7O0FBbFFILG9DQW1RQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGVCYXNlLCBJUmVzb2x2ZXIsIFByb2plY3QsIFNhbXBsZURpciB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpzaWlQcm9qZWN0LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0RXhhbXBsZXNPcHRpb24ge1xuICAvLyBJZiBzZXQgY29uc3RydWN0IGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgLy8gUGF0aCBmb3IgdGhlIGNvbnN0cnVjdCBleGFtcGxlc1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtRXhhbXBsZXNPcHRpb24ge1xuICAvLyBJZiBzZXQgdGVycmFmb3JtIGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgLy8gUGF0aCBmb3IgdGhlIHRlcnJhZm9ybSBleGFtcGxlc1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG4gIC8vIFRoZSBIQ0wgY29uZmlnIGZpbGUgdG8gdXNlIGZvciB0aGUgdGVycmFmb3JtIHByb3ZpZGVyXG4gIHJlYWRvbmx5IHByb3ZpZGVyQ29uZmlnPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh5YnJpZE1vZHVsZU9wdGlvbnMgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHRhcmdldCB2ZXJzaW9uIG9mIHRoaXMgbGlicmFyeS5cbiAgICogQGRlZmF1bHQgXCJeMC4xMC4xXCJcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCB2ZXJzaW9uIHRvIHVzZVxuICAgKiBAZGVmYXVsdCBcIl4xMC4wLjEyXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHNldCBhIHRlcnJhZm9ybSBleGFtcGxlcyBmb2xkZXIgd2lsbCBiZSBjcmVhdGVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IHRlcnJhZm9ybUV4YW1wbGVzPzogVGVycmFmb3JtRXhhbXBsZXNPcHRpb247XG5cbiAgLyoqXG4gICAqIElmIHNldCBhIGNvbnN0cnVjdCBleGFtcGxlcyBmb2xkZXIgd2lsbCBiZSBjcmVhdGVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdEV4YW1wbGVzPzogQ29uc3RydWN0RXhhbXBsZXNPcHRpb247XG5cbiAgLyoqXG4gICAqIElmIHNldCBhIHRlcnJhZm9ybSBleGFtcGxlcyBmb2xkZXIgd2lsbCBiZSBjcmVhdGVkXG4gICAqRGVmYXVsdHMgdG8gYSB1dWlkIHN0cmluZyBhcyBjZGt0ZiB3b3VsZFxuICAgKiBNb3N0bHkgdXNlZCBmb3IgdGVzdGluZyB0byBoYXZlIGEgcHJlZGljdGFibGUgcmVzdWx0XG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0SWQ/OiBzdHJpbmc7XG59XG5cbmNvbnN0IGNvbnN0cnVjdFNyY0NvZGUgPSBgXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE15Q29uc3RydWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHByb3BlcnR5QTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTXlDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBNeUNvbnN0cnVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICB9XG59XG5gO1xuXG5jb25zdCBjb25zdHJ1Y3RUZXN0Q29kZSA9IGBcbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCBcImNka3RmL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIi4uL1wiO1xuXG4vLyBUbyBsZWFybiBtb3JlIGFib3V0IHRlc3Rpbmcgc2VlIGNkay50Zi90ZXN0aW5nXG5kZXNjcmliZShcIk15Q29uc3RydWN0XCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgc3ludGhlc2l6ZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5zeW50aFNjb3BlKChzY29wZSkgPT4ge1xuICAgICAgICBuZXcgTXlDb25zdHJ1Y3Qoc2NvcGUsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuYDtcblxuY29uc3QgbW9kdWxlU3JjQ29kZSA9IGBcbmltcG9ydCB7IEFwcCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRGTW9kdWxlU3RhY2sgfSBmcm9tIFwiY2RrdGYtdGYtbW9kdWxlLXN0YWNrXCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmNsYXNzIE15QXdlc29tZU1vZHVsZSBleHRlbmRzIFRGTW9kdWxlU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuLy8gVGhpcyBpcyB0aGUgbmFtZSB0aGUgbW9kdWxlIGNhbiBiZSBmb3VuZCB1bmRlci4gXG4vLyBXZSBleHBlY3QgYSBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCIgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeS5cbi8vIFRoZSBSRUFETUUubWQgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZS5cbm5ldyBNeUF3ZXNvbWVNb2R1bGUoYXBwLCBcIm15LWF3ZXNvbWUtbW9kdWxlXCIpO1xuYXBwLnN5bnRoKCk7XG5gO1xuXG5jb25zdCB0ZXJyYWZvcm1SZWFkbWVEb2NzID0gYFxuIyBQbGVhc2UgYWRkIGhlcmUgc29tZSBwdXJlIEhDTCB0ZXN0cyBmb3IgeW91ciBtb2R1bGVzIGluIG9yZGVyIHRvIHRlc3QgSENMIEludGVyb3BlcmFiaWxpdHlcblxuRXhhbXBsZXM6XG5cbm1vZHVsZSBcIm15X2F3ZXNvbWVfdGVzdFwiIHtcbiAgc291cmNlID0gXCIuLi9tb2R1bGVzL215LWF3ZXNvbWUtbW9kdWxlc1wiXG4gIC4uLnZhcmlhYmxlcy4uLlxufVxuICAgIGA7XG5cbmNsYXNzIFNjcmlwdEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIHBhdGg6IHN0cmluZywgcHJpdmF0ZSBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBwYXRoLCB7XG4gICAgICBleGVjdXRhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KF86IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudDtcbiAgfVxufVxuXG4vKipcbiAqIEh5YnJpZCBDREtURiBDb25zdHJ1Y3QgLyBUZXJyYWZvcm0gTW9kdWxlXG4gKlxuICogQHBqaWQgaHlicmlkLW1vZHVsZVxuICovXG5leHBvcnQgY2xhc3MgSHlicmlkTW9kdWxlIGV4dGVuZHMgSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIeWJyaWRNb2R1bGVPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZXNsaW50T3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5lc2xpbnRPcHRpb25zLCB7XG4gICAgICAgIGxpbnRQcm9qZW5SYzogZmFsc2UsXG4gICAgICB9KSxcbiAgICAgIHBvc3RCdWlsZFN0ZXBzOiBbXSxcbiAgICB9KTtcbiAgICBjb25zdCBjb25zdHJ1Y3RWZXJzaW9uID0gb3B0aW9ucy5jb25zdHJ1Y3RWZXJzaW9uIHx8IFwiXjEwLjAuMTA3XCI7XG4gICAgY29uc3QgY2RrdGZWZXJzaW9uID0gb3B0aW9ucy5jZGt0ZlZlcnNpb24gfHwgXCJeMC4xMC4xXCI7XG5cbiAgICB0aGlzLmFkZFBlZXJEZXBzKGBjb25zdHJ1Y3RzQCR7Y29uc3RydWN0VmVyc2lvbn1gLCBgY2RrdGZAJHtjZGt0ZlZlcnNpb259YCk7XG4gICAgdGhpcy5hZGREZXZEZXBzKGBjZGt0Zi1jbGlAJHtjZGt0ZlZlcnNpb259YCwgXCJ0cy1ub2RlXCIpO1xuICAgIHRoaXMuYWRkS2V5d29yZHMoXCJjZGtcIiwgXCJjZGt0ZlwiLCBcImNka3RmLWh5YnJpZFwiLCBcInRlcnJhZm9ybVwiKTtcbiAgICB0aGlzLnNldFNjcmlwdChcInRlcnJhZm9ybTp0ZXN0XCIsIFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIpO1xuXG4gICAgLy8gTW9kdWxlIEVudHJ5cG9pbnRcbiAgICB0aGlzLmFkZERlcHMoXCJjZGt0Zi10Zi1tb2R1bGUtc3RhY2tcIik7XG4gICAgY29uc3QgbW9kdWxlRG9jcyA9IGBcbiMgTXkgQXdlc29tZSBNb2R1bGVcblxuIyMgVXNhZ2VcblxuXFxgXFxgXFxgaGNsXG5tb2R1bGUgXCJla3NfbWFuYWdlZF9ub2RlX2dyb3VwXCIge1xuICBzb3VyY2UgPSBcIiR7XG4gICAgb3B0aW9ucy5yZXBvc2l0b3J5VXJsXG4gICAgICA/LnJlcGxhY2UoXCJodHRwczovL2dpdGh1Yi5jb20vXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcImh0dHA6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJnaXRodWIuY29tL1wiLCBcIlwiKSB8fCBcIm15LWdpdGh1Yi1yZXBvXCJcbiAgfS8vbW9kdWxlcy9teS1hd2Vzb21lLW1vZHVsZVwiXG5cbn1cblxcYFxcYFxcYFxuICAgIGA7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHRoaXMuc3JjZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcImluZGV4LnRzXCI6IGNvbnN0cnVjdFNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcInRmTW9kdWxlcy50c1wiOiBtb2R1bGVTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJteS1hd2Vzb21lLW1vZHVsZS5tZFwiOiBtb2R1bGVEb2NzLnRyaW0oKSxcbiAgICAgICAgXCJjZGt0Zi5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgIGFwcDogXCJucHggdHMtbm9kZSB0Zk1vZHVsZXMudHNcIixcbiAgICAgICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW1wiaGFzaGljb3JwL251bGxAMy4xLjFcIl0sIC8vIFdlIG5lZWQgYXQgbGVhc3QgYSBwcm92aWRlciBmb3IgZ2V0IHRvIHN1Y2NlZWRcbiAgICAgICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtdLFxuICAgICAgICAgICAgb3V0cHV0OiBcIm1vZHVsZXNcIixcbiAgICAgICAgICAgIHByb2plY3RJZDogb3B0aW9ucy5wcm9qZWN0SWQgfHwgdXVpZCgpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICAyXG4gICAgICAgICksXG4gICAgICAgIFwiX190ZXN0c19fL2luZGV4LXRlc3QudHNcIjogY29uc3RydWN0VGVzdENvZGUudHJpbSgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzICYmIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZW5hYmxlZCkge1xuICAgICAgY29uc3QgcHJvdmlkZXJDb25maWcgPVxuICAgICAgICBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLnByb3ZpZGVyQ29uZmlnIHx8XG4gICAgICAgIGBcbnRlcnJhZm9ybSB7XG4gICMgVGVycmFmb3JtIGJpbmFyeSB2ZXJzaW9uIGNvbnN0cmFpbnRcbiAgcmVxdWlyZWRfdmVyc2lvbiA9IFwifj4gMS4xLjBcIlxuXG4gICMgRGVmaW5lIGFsbCBuZWVkZWQgcHJvdmlkZXJzIGhlcmUsIHlvdSBjYW4gZmluZCBhbGwgYXZhaWxhYmxlIHByb3ZpZGVycyBoZXJlOlxuICAjIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL1xuICByZXF1aXJlZF9wcm92aWRlcnMge31cbn1cblxuIyBJbml0aWFsaXplIHlvdXIgcHJvdmlkZXIgaGVyZVxuXG5gLnRyaW0oKTtcbiAgICAgIGNvbnN0IGV4YW1wbGVzRm9sZGVyID1cbiAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5mb2xkZXIgfHwgXCJ0ZXJyYWZvcm0tZXhhbXBsZXNcIjtcblxuICAgICAgbmV3IFNhbXBsZURpcih0aGlzLCBleGFtcGxlc0ZvbGRlciwge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgIFwibWFpbi50ZlwiOiBgXG4jIENvbmZpZ3VyZSBUZXJyYWZvcm1cbiR7cHJvdmlkZXJDb25maWd9XG5cbiAgICAgICAgICAgIGAudHJpbVN0YXJ0KCksXG4gICAgICAgICAgXCJSRUFETUUubWRcIjogdGVycmFmb3JtUmVhZG1lRG9jcy50cmltKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5naXRpZ25vcmUuYWRkUGF0dGVybnMoXG4gICAgICAgIGAke2V4YW1wbGVzRm9sZGVyfS8udGVycmFmb3JtYCxcbiAgICAgICAgYCR7ZXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm0ubG9jay5oY2xgXG4gICAgICApO1xuXG4gICAgICBuZXcgU2NyaXB0RmlsZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIixcbiAgICAgICAgYFxuICAjIS9iaW4vYmFzaFxuICAjIFRoaXMgc2NyaXB0IGlzIGNyZWF0ZWQgYnkgcHJvamVuLCBkbyBub3QgZWRpdCBpdCBkaXJlY3RseS5cbiAgc2V0IC1lXG4gIFxuICB0ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IGluaXQgLS11cGdyYWRlXG4gIHRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gZm10XG4gIHRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gdmFsaWRhdGVcbiAgdGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSBwbGFuICAgICBcbiAgICAgICAgICBgXG4gICAgICApO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIik7XG4gICAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oZXhhbXBsZXNGb2xkZXIpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNvbnN0cnVjdEV4YW1wbGVzICYmIG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMuZW5hYmxlZCkge1xuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMuZm9sZGVyIHx8IFwiY29uc3RydWN0LWV4YW1wbGVzXCI7XG5cbiAgICAgIGNvbnN0IGxldmVscyA9IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXJcbiAgICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgICAuc3BsaWNlKDAsIDEpXG4gICAgICAgIC5tYXAoKCkgPT4gXCIuLlwiKVxuICAgICAgICAuam9pbihcIi9cIik7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdFJlYWRtZURvY3MgPSBgXG4jIENvbnN0cnVjdCBFeGFtcGxlc1xuXG5FeGFtcGxlIHVzZS1jYXNlcyBmb3IgdGhlIENvbnN0cnVjdCBsaWJyYXJ5LlxuXG4tIFtCYXNpYyBVc2FnZV0oLi9iYXNpYy50cylcblxuVG8gZW5zdXJlIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZywgcGxlYXNlIG1ha2Ugc3VyZSB0aGUgW2luZGV4LnRzXSguL2luZGV4LnRzKSBmaWxlIGlzIGltcG9ydGluZyBhbGwgb2YgdGhlbS5cbmA7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdEV4YW1wbGVDb2RlID0gYFxuaW1wb3J0IHsgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIiR7bGV2ZWxzfS9zcmMvXCI7XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0V4YW1wbGUgZXh0ZW5kcyBUZXJyYWZvcm1TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuXG5gO1xuXG4gICAgICBjb25zdCBleGFtcGxlQ29sbGVjdGlvbkNvZGUgPSBgXG4vLyBUaGlzIGZpbGUgd2lsbCBiZSBzeW50aGVzaXplZCB0byBjaGVjayBpZiBhbGwgZXhhbXBsZXMgYXJlIHdvcmtpbmdcblxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG4vLyBBbGwgZXhhbXBsZXMgbmVlZCB0byBiZSBpbXBvcnRlZCBoZXJlXG5pbXBvcnQgeyBCYXNpY0V4YW1wbGUgfSBmcm9tIFwiLi9iYXNpY1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGluaXRpYWxpemVkIGhlcmVcbm5ldyBCYXNpY0V4YW1wbGUoYXBwLCBcImJhc2ljLWV4YW1wbGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgY29uc3RydWN0RXhhbXBsZUZvbGRlciwge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgIFwiaW5kZXgudHNcIjogZXhhbXBsZUNvbGxlY3Rpb25Db2RlLnRyaW0oKSxcbiAgICAgICAgICBcImJhc2ljLnRzXCI6IGNvbnN0cnVjdEV4YW1wbGVDb2RlLnRyaW0oKSxcbiAgICAgICAgICBcImNka3RmLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgICAgYXBwOiBgbnB4IHRzLW5vZGUgLS1wcm9qZWN0ICR7bGV2ZWxzfS90c2NvbmZpZy5kZXYuanNvbiBpbmRleC50c2AsXG4gICAgICAgICAgICAgIHByb2plY3RJZDogb3B0aW9ucy5wcm9qZWN0SWQgfHwgdXVpZCgpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKSxcbiAgICAgICAgICBcIlJFQURNRS5tZFwiOiBjb25zdHJ1Y3RSZWFkbWVEb2NzLnRyaW0oKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoYGNka3RmIHN5bnRoYCwge1xuICAgICAgICBjd2Q6IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKGAke2NvbnN0cnVjdEV4YW1wbGVGb2xkZXJ9L2Nka3RmLm91dGApO1xuICAgIH1cblxuICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFwic3JjLy5nZW5cIiwgXCJzcmMvY2RrdGYub3V0XCIsIFwic3JjL21vZHVsZXNcIik7XG4gICAgdGhpcy5jb21waWxlVGFzay5wcmVwZW5kRXhlYyhcImNka3RmIGdldFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcImNka3RmIHN5bnRoXCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgICBuYW1lOiBcIlN5bnRoZXNpemUgbW9kdWxlIEhDTFwiLFxuICAgIH0pO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJzY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLFxuICAgICAgYFxuIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cblNDUklQVFBBVEg9XCIkKCBjZCAtLSBcIiQoZGlybmFtZSBcIiQwXCIpXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcIlxuXG4jIGNoZWNrIGlmIHRoZSBtb2R1bGUgZm9sZGVyIGhhcyBiZWVuIGdlbmVyYXRlZCBhcyBleHBlY3RlZFxuTU9EVUxFU19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvbW9kdWxlcy9zdGFja3NcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuU1JDX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9cIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuVEFSR0VUX0ZPTERFUj1cIiRTQ1JJUFRQQVRILy4uL21vZHVsZXNcIlxuXG5pZiBbICEgLWQgXCIkTU9EVUxFU19GT0xERVJcIiBdOyB0aGVuXG4gIGVjaG8gXCJFeHBlY3RlZCBtb2R1bGUgZm9sZGVyIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUlwiXG4gIGV4aXQgMVxuZmlcblxuY2QgXCIkTU9EVUxFU19GT0xERVJcIlxuZm9yIGQgaW4gKi8gOyBkb1xuICAgIFsgLUwgXCJcXCR7ZCUvfVwiIF0gJiYgY29udGludWVcblxuICAgIGRpcm5hbWU9XCJcXCR7ZCUvfVwiXG5cblxuICAgICMgQ2hlY2sgaWYgZXZlcnl0aGluZyBpcyBpbiBwbGFjZVxuICAgIGlmIFsgISAtZiBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBjb2RlIGZvciAkZGlybmFtZSBhdCBjZGsudGYuanNvbiB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVIvJGRpcm5hbWVcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgIGlmIFsgISAtZiBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIERvY3VtZW50YXRpb24gZm9yICRkaXJuYW1lIGF0ICRkaXJuYW1lLm1kIHRvIGV4aXN0IGF0ICRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICAjIENvcHkgbW9kdWxlIGFuZCByZWFkbWUgdG9nZXRoZXJcbiAgICBlY2hvIFwiQ29weWluZyBDb2RlIGFuZCBSRUFETUUgZm9yIG1vZHVsZSAkZGlybmFtZVwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUlwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgY3AgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCJcbiAgICBjcCBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9SRUFETUUubWRcIlxuXG4gICAgIyBBZGQgUkVBRE1FIGhjbCBkb2NzXG4gICAgaWYgd2hpY2ggdGVycmFmb3JtLWRvY3MgPi9kZXYvbnVsbDsgdGhlblxuICAgICAgdGVycmFmb3JtLWRvY3MgbWFya2Rvd24gdGFibGUgLS1vdXRwdXQtZmlsZSBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWVcIiBcbiAgICBlbHNlXG4gICAgICBkb2NrZXIgcnVuIC0tcm0gLS12b2x1bWUgXCIkU0NSSVBUUEFUSC8uLi9tb2R1bGVzOi90ZXJyYWZvcm0tZG9jc1wiIC11ICQoaWQgLXUpIHF1YXkuaW8vdGVycmFmb3JtLWRvY3MvdGVycmFmb3JtLWRvY3M6MC4xNi4wIG1hcmtkb3duIHRhYmxlIC0tb3V0cHV0LWZpbGUgXCIvdGVycmFmb3JtLWRvY3MvJGRpcm5hbWUvUkVBRE1FLm1kXCIgL3RlcnJhZm9ybS1kb2NzLyRkaXJuYW1lXG4gICAgZmlcbmRvbmVcbmAudHJpbSgpXG4gICAgKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsIHtcbiAgICAgIG5hbWU6IFwiQ29weSBIQ0wgTW9kdWxlc1wiLFxuICAgIH0pO1xuXG4gICAgLy8gaWdub3JlIGRpc3QgaW4gdGVzdHNcbiAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oXCJkaXN0XCIpO1xuICB9XG59XG4iXX0=
320
+ HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.1.64" };
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLG1DQUFpRTtBQUNqRSx3Q0FBc0U7QUFDdEUsK0JBQWtDO0FBQ2xDLHlDQUFzQztBQTZEdEMsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7Ozs7O0NBWXhCLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCekIsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBc0JyQixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRzs7Ozs7Ozs7O0tBU3ZCLENBQUM7QUFFTixNQUFNLFVBQVcsU0FBUSxpQkFBUTtJQUMvQixZQUFZLE9BQWdCLEVBQUUsUUFBZ0IsRUFBVSxPQUFlO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUhtRCxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBSXZFLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUFZO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQVEsU0FBUSxpQkFBUTtJQUM1QixZQUFZLE9BQWdCLEVBQUUsUUFBZ0IsRUFBVSxPQUFlO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQ3ZCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBTG1ELFlBQU8sR0FBUCxPQUFPLENBQVE7SUFNdkUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTztFQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNm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LElBQUksRUFBRSxrQkFBa0I7U0FDekIsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0lBQ3RDLENBQUM7O0FBclFILG9DQXNRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEZpbGVCYXNlLCBJUmVzb2x2ZXIsIFByb2plY3QsIFNhbXBsZURpciB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpzaWlQcm9qZWN0LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0RXhhbXBsZXNPcHRpb24ge1xuICAvLyBJZiBzZXQgY29uc3RydWN0IGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgLy8gUGF0aCBmb3IgdGhlIGNvbnN0cnVjdCBleGFtcGxlc1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtRXhhbXBsZXNPcHRpb24ge1xuICAvLyBJZiBzZXQgdGVycmFmb3JtIGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgLy8gUGF0aCBmb3IgdGhlIHRlcnJhZm9ybSBleGFtcGxlc1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG4gIC8vIFRoZSBIQ0wgY29uZmlnIGZpbGUgdG8gdXNlIGZvciB0aGUgdGVycmFmb3JtIHByb3ZpZGVyXG4gIHJlYWRvbmx5IHByb3ZpZGVyQ29uZmlnPzogc3RyaW5nO1xuICAvLyBIQ0wgZXhhbXBsZSBjb25maWdcbiAgcmVhZG9ubHkgZXhhbXBsZUNvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHlicmlkTW9kdWxlT3B0aW9ucyBleHRlbmRzIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gdGFyZ2V0IHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5LlxuICAgKiBAZGVmYXVsdCBcIl4wLjEwLjFcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0IHZlcnNpb24gdG8gdXNlXG4gICAqIEBkZWZhdWx0IFwiXjEwLjAuMTJcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtRXhhbXBsZXM/OiBUZXJyYWZvcm1FeGFtcGxlc09wdGlvbjtcblxuICAvKipcbiAgICogSWYgc2V0IGEgY29uc3RydWN0IGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0RXhhbXBsZXM/OiBDb25zdHJ1Y3RFeGFtcGxlc09wdGlvbjtcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICpEZWZhdWx0cyB0byBhIHV1aWQgc3RyaW5nIGFzIGNka3RmIHdvdWxkXG4gICAqIE1vc3RseSB1c2VkIGZvciB0ZXN0aW5nIHRvIGhhdmUgYSBwcmVkaWN0YWJsZSByZXN1bHRcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RJZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIHBsYW4gaXMgYmVpbmcgcnVuIGFzIHBhcnQgb2YgdGhlIHRlc3RzXG4gICAqL1xuICByZWFkb25seSBydW5QbGFuPzogYm9vbGVhbjtcbn1cblxuY29uc3QgY29uc3RydWN0U3JjQ29kZSA9IGBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXlDb25zdHJ1Y3RPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJvcGVydHlBOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNeUNvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHB1YmxpYyBjb25maWc6IE15Q29uc3RydWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gIH1cbn1cbmA7XG5cbmNvbnN0IGNvbnN0cnVjdFRlc3RDb2RlID0gYFxuaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vXCI7XG5cbi8vIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGVzdGluZyBzZWUgY2RrLnRmL3Rlc3RpbmdcbmRlc2NyaWJlKFwiTXlDb25zdHJ1Y3RcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBzeW50aGVzaXplXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBUZXN0aW5nLnN5bnRoU2NvcGUoKHNjb3BlKSA9PiB7XG4gICAgICAgIG5ldyBNeUNvbnN0cnVjdChzY29wZSwgXCJteS1jb25zdHJ1Y3RcIiwge1xuICAgICAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xufSk7XG5gO1xuXG5jb25zdCBtb2R1bGVTcmNDb2RlID0gYFxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVEZNb2R1bGVTdGFjayB9IGZyb20gXCJjZGt0Zi10Zi1tb2R1bGUtc3RhY2tcIjtcbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIi4vaW5kZXhcIjtcblxuY2xhc3MgTXlBd2Vzb21lTW9kdWxlIGV4dGVuZHMgVEZNb2R1bGVTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG4vLyBUaGlzIGlzIHRoZSBuYW1lIHRoZSBtb2R1bGUgY2FuIGJlIGZvdW5kIHVuZGVyLiBcbi8vIFdlIGV4cGVjdCBhIFwibXktYXdlc29tZS1tb2R1bGUubWRcIiBmaWxlIGluIHRoaXMgZGlyZWN0b3J5LlxuLy8gVGhlIFJFQURNRS5tZCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlLlxubmV3IE15QXdlc29tZU1vZHVsZShhcHAsIFwibXktYXdlc29tZS1tb2R1bGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbmNvbnN0IHRlcnJhZm9ybVJlYWRtZURvY3MgPSBgXG4jIFBsZWFzZSBhZGQgaGVyZSBzb21lIHB1cmUgSENMIHRlc3RzIGZvciB5b3VyIG1vZHVsZXMgaW4gb3JkZXIgdG8gdGVzdCBIQ0wgSW50ZXJvcGVyYWJpbGl0eVxuXG5FeGFtcGxlczpcblxubW9kdWxlIFwibXlfYXdlc29tZV90ZXN0XCIge1xuICBzb3VyY2UgPSBcIi4uL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVzXCJcbiAgLi4udmFyaWFibGVzLi4uXG59XG4gICAgYDtcblxuY2xhc3MgU2NyaXB0RmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgcHJpdmF0ZSBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XG4gIH1cbn1cblxuY2xhc3MgSENMRmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgcHJpdmF0ZSBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogZmFsc2UsXG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgICByZWFkb25seTogZmFsc2UsIC8vIHRlcnJhZm9ybSBmbXQgbWlnaHQgd2FudCB0byBvdmVyd3JpdGUgaXRcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBgIyBUaGlzIGZpbGUgaXMgbWFuYWdlZCBieSBwcm9qZW4uIERvIG5vdCBlZGl0LCBjaGFuZ2UgdGhlIC5wcm9qZW5yYyBmaWxlIGluc3RlYWQuXG4ke3RoaXMuY29udGVudH1gO1xuICB9XG59XG5cbi8qKlxuICogSHlicmlkIENES1RGIENvbnN0cnVjdCAvIFRlcnJhZm9ybSBNb2R1bGVcbiAqXG4gKiBAcGppZCBoeWJyaWQtbW9kdWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBIeWJyaWRNb2R1bGUgZXh0ZW5kcyBKc2lpUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEh5YnJpZE1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBlc2xpbnRPcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtdLFxuICAgIH0pO1xuICAgIGNvbnN0IGNvbnN0cnVjdFZlcnNpb24gPSBvcHRpb25zLmNvbnN0cnVjdFZlcnNpb24gfHwgXCJeMTAuMC4xMDdcIjtcbiAgICBjb25zdCBjZGt0ZlZlcnNpb24gPSBvcHRpb25zLmNka3RmVmVyc2lvbiB8fCBcIl4wLjEwLjFcIjtcblxuICAgIHRoaXMuYWRkUGVlckRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RWZXJzaW9ufWAsIGBjZGt0ZkAke2Nka3RmVmVyc2lvbn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoYGNka3RmLWNsaUAke2Nka3RmVmVyc2lvbn1gLCBcInRzLW5vZGVcIik7XG4gICAgdGhpcy5hZGRLZXl3b3JkcyhcImNka1wiLCBcImNka3RmXCIsIFwiY2RrdGYtaHlicmlkXCIsIFwidGVycmFmb3JtXCIpO1xuICAgIHRoaXMuc2V0U2NyaXB0KFwidGVycmFmb3JtOnRlc3RcIiwgXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIik7XG5cbiAgICAvLyBNb2R1bGUgRW50cnlwb2ludFxuICAgIHRoaXMuYWRkRGVwcyhcImNka3RmLXRmLW1vZHVsZS1zdGFja1wiKTtcbiAgICBjb25zdCBtb2R1bGVEb2NzID0gYFxuIyBNeSBBd2Vzb21lIE1vZHVsZVxuXG4jIyBVc2FnZVxuXG5cXGBcXGBcXGBoY2xcbm1vZHVsZSBcImVrc19tYW5hZ2VkX25vZGVfZ3JvdXBcIiB7XG4gIHNvdXJjZSA9IFwiJHtcbiAgICBvcHRpb25zLnJlcG9zaXRvcnlVcmxcbiAgICAgID8ucmVwbGFjZShcImh0dHBzOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiaHR0cDovL2dpdGh1Yi5jb20vXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcImdpdGh1Yi5jb20vXCIsIFwiXCIpIHx8IFwibXktZ2l0aHViLXJlcG9cIlxuICB9Ly9tb2R1bGVzL215LWF3ZXNvbWUtbW9kdWxlXCJcblxufVxuXFxgXFxgXFxgXG4gICAgYDtcblxuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgdGhpcy5zcmNkaXIsIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFwiaW5kZXgudHNcIjogY29uc3RydWN0U3JjQ29kZS50cmltKCksXG4gICAgICAgIFwidGZNb2R1bGVzLnRzXCI6IG1vZHVsZVNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCI6IG1vZHVsZURvY3MudHJpbSgpLFxuICAgICAgICBcImNka3RmLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgYXBwOiBcIm5weCB0cy1ub2RlIHRmTW9kdWxlcy50c1wiLFxuICAgICAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJoYXNoaWNvcnAvbnVsbEAzLjEuMVwiXSwgLy8gV2UgbmVlZCBhdCBsZWFzdCBhIHByb3ZpZGVyIGZvciBnZXQgdG8gc3VjY2VlZFxuICAgICAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW10sXG4gICAgICAgICAgICBvdXRwdXQ6IFwibW9kdWxlc1wiLFxuICAgICAgICAgICAgcHJvamVjdElkOiBvcHRpb25zLnByb2plY3RJZCB8fCB1dWlkKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIDJcbiAgICAgICAgKSxcbiAgICAgICAgXCJfX3Rlc3RzX18vaW5kZXgtdGVzdC50c1wiOiBjb25zdHJ1Y3RUZXN0Q29kZS50cmltKCksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMgJiYgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5lbmFibGVkKSB7XG4gICAgICBjb25zdCBwcm92aWRlckNvbmZpZyA9XG4gICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMucHJvdmlkZXJDb25maWcgfHxcbiAgICAgICAgYFxudGVycmFmb3JtIHtcbiAgIyBUZXJyYWZvcm0gYmluYXJ5IHZlcnNpb24gY29uc3RyYWludFxuICByZXF1aXJlZF92ZXJzaW9uID0gXCJ+PiAxLjEuMFwiXG5cbiAgIyBEZWZpbmUgYWxsIG5lZWRlZCBwcm92aWRlcnMgaGVyZSwgeW91IGNhbiBmaW5kIGFsbCBhdmFpbGFibGUgcHJvdmlkZXJzIGhlcmU6XG4gICMgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vXG4gIHJlcXVpcmVkX3Byb3ZpZGVycyB7fVxufVxuXG4jIEluaXRpYWxpemUgeW91ciBwcm92aWRlciBoZXJlXG5cbmAudHJpbSgpO1xuICAgICAgY29uc3QgZXhhbXBsZXNGb2xkZXIgPVxuICAgICAgICBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLmZvbGRlciB8fCBcInRlcnJhZm9ybS1leGFtcGxlc1wiO1xuXG4gICAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIGV4YW1wbGVzRm9sZGVyLCB7XG4gICAgICAgIGZpbGVzOiB7XG4gICAgICAgICAgXCJtYWluLnRmXCI6XG4gICAgICAgICAgICBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLmV4YW1wbGVDb2RlIHx8XG4gICAgICAgICAgICBgIyBDb25maWd1cmUgeW91IG1vZHVsZSBoZXJlYCxcbiAgICAgICAgICBcIlJFQURNRS5tZFwiOiB0ZXJyYWZvcm1SZWFkbWVEb2NzLnRyaW0oKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBuZXcgSENMRmlsZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcGF0aC5qb2luKGV4YW1wbGVzRm9sZGVyLCBcInByb3ZpZGVyLnRmXCIpLFxuICAgICAgICBwcm92aWRlckNvbmZpZ1xuICAgICAgKTtcblxuICAgICAgdGhpcy5naXRpZ25vcmUuYWRkUGF0dGVybnMoXG4gICAgICAgIGAke2V4YW1wbGVzRm9sZGVyfS8udGVycmFmb3JtYCxcbiAgICAgICAgYCR7ZXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm0ubG9jay5oY2xgXG4gICAgICApO1xuXG4gICAgICBuZXcgU2NyaXB0RmlsZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIixcbiAgICAgICAgYCMhL2Jpbi9iYXNoXG4jIFRoaXMgc2NyaXB0IGlzIGNyZWF0ZWQgYnkgcHJvamVuLCBkbyBub3QgZWRpdCBpdCBkaXJlY3RseS5cbnNldCAtZVxuXG50ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IGluaXQgLS11cGdyYWRlXG50ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IGZtdFxudGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSB2YWxpZGF0ZVxuJHtvcHRpb25zLnJ1blBsYW4gPyBgdGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSBwbGFuYCA6IFwiXCJ9XG4gICAgICAgICAgYFxuICAgICAgKTtcblxuICAgICAgdGhpcy50ZXN0VGFzay5leGVjKFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIpO1xuICAgICAgdGhpcy5qZXN0Py5hZGRJZ25vcmVQYXR0ZXJuKGV4YW1wbGVzRm9sZGVyKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5jb25zdHJ1Y3RFeGFtcGxlcyAmJiBvcHRpb25zLmNvbnN0cnVjdEV4YW1wbGVzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXIgPVxuICAgICAgICBvcHRpb25zLmNvbnN0cnVjdEV4YW1wbGVzLmZvbGRlciB8fCBcImNvbnN0cnVjdC1leGFtcGxlc1wiO1xuXG4gICAgICBjb25zdCBsZXZlbHMgPSBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyXG4gICAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgICAgLnNwbGljZSgwLCAxKVxuICAgICAgICAubWFwKCgpID0+IFwiLi5cIilcbiAgICAgICAgLmpvaW4oXCIvXCIpO1xuXG4gICAgICBjb25zdCBjb25zdHJ1Y3RSZWFkbWVEb2NzID0gYFxuIyBDb25zdHJ1Y3QgRXhhbXBsZXNcblxuRXhhbXBsZSB1c2UtY2FzZXMgZm9yIHRoZSBDb25zdHJ1Y3QgbGlicmFyeS5cblxuLSBbQmFzaWMgVXNhZ2VdKC4vYmFzaWMudHMpXG5cblRvIGVuc3VyZSBhbGwgZXhhbXBsZXMgYXJlIHdvcmtpbmcsIHBsZWFzZSBtYWtlIHN1cmUgdGhlIFtpbmRleC50c10oLi9pbmRleC50cykgZmlsZSBpcyBpbXBvcnRpbmcgYWxsIG9mIHRoZW0uXG5gO1xuXG4gICAgICBjb25zdCBjb25zdHJ1Y3RFeGFtcGxlQ29kZSA9IGBcbmltcG9ydCB7IFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIke2xldmVsc30vc3JjL1wiO1xuXG5leHBvcnQgY2xhc3MgQmFzaWNFeGFtcGxlIGV4dGVuZHMgVGVycmFmb3JtU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgbmFtZSk7XG5cbiAgICBuZXcgTXlDb25zdHJ1Y3QodGhpcywgXCJteS1jb25zdHJ1Y3RcIiwge1xuICAgICAgcHJvcGVydHlBOiBcInZhbHVlQVwiLFxuICAgIH0pO1xuICB9XG59XG5cblxuYDtcblxuICAgICAgY29uc3QgZXhhbXBsZUNvbGxlY3Rpb25Db2RlID0gYFxuLy8gVGhpcyBmaWxlIHdpbGwgYmUgc3ludGhlc2l6ZWQgdG8gY2hlY2sgaWYgYWxsIGV4YW1wbGVzIGFyZSB3b3JraW5nXG5cbmltcG9ydCB7IEFwcCB9IGZyb20gXCJjZGt0ZlwiO1xuLy8gQWxsIGV4YW1wbGVzIG5lZWQgdG8gYmUgaW1wb3J0ZWQgaGVyZVxuaW1wb3J0IHsgQmFzaWNFeGFtcGxlIH0gZnJvbSBcIi4vYmFzaWNcIjtcblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuXG4vLyBBbGwgZXhhbXBsZXMgbmVlZCB0byBiZSBpbml0aWFsaXplZCBoZXJlXG5uZXcgQmFzaWNFeGFtcGxlKGFwcCwgXCJiYXNpYy1leGFtcGxlXCIpO1xuYXBwLnN5bnRoKCk7XG5gO1xuXG4gICAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIGNvbnN0cnVjdEV4YW1wbGVGb2xkZXIsIHtcbiAgICAgICAgZmlsZXM6IHtcbiAgICAgICAgICBcImluZGV4LnRzXCI6IGV4YW1wbGVDb2xsZWN0aW9uQ29kZS50cmltKCksXG4gICAgICAgICAgXCJiYXNpYy50c1wiOiBjb25zdHJ1Y3RFeGFtcGxlQ29kZS50cmltKCksXG4gICAgICAgICAgXCJjZGt0Zi5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICAgIGFwcDogYG5weCB0cy1ub2RlIC0tcHJvamVjdCAke2xldmVsc30vdHNjb25maWcuZGV2Lmpzb24gaW5kZXgudHNgLFxuICAgICAgICAgICAgICBwcm9qZWN0SWQ6IG9wdGlvbnMucHJvamVjdElkIHx8IHV1aWQoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMlxuICAgICAgICAgICksXG4gICAgICAgICAgXCJSRUFETUUubWRcIjogY29uc3RydWN0UmVhZG1lRG9jcy50cmltKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy50ZXN0VGFzay5leGVjKGBjZGt0ZiBzeW50aGAsIHtcbiAgICAgICAgY3dkOiBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhgJHtjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyfS9jZGt0Zi5vdXRgKTtcbiAgICB9XG5cbiAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcInNyYy8uZ2VuXCIsIFwic3JjL2Nka3RmLm91dFwiLCBcInNyYy9tb2R1bGVzXCIpO1xuICAgIHRoaXMuY29tcGlsZVRhc2sucHJlcGVuZEV4ZWMoXCJjZGt0ZiBnZXRcIiwge1xuICAgICAgY3dkOiB0aGlzLnNyY2RpcixcbiAgICB9KTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCJjZGt0ZiBzeW50aFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgICAgbmFtZTogXCJTeW50aGVzaXplIG1vZHVsZSBIQ0xcIixcbiAgICB9KTtcblxuICAgIG5ldyBTY3JpcHRGaWxlKFxuICAgICAgdGhpcyxcbiAgICAgIFwic2NyaXB0cy9jb3B5LW1vZHVsZXMuc2hcIixcbiAgICAgIGBcbiMhL2Jpbi9iYXNoXG4jIFRoaXMgc2NyaXB0IGlzIGNyZWF0ZWQgYnkgcHJvamVuLCBkbyBub3QgZWRpdCBpdCBkaXJlY3RseS5cbnNldCAtZVxuXG5TQ1JJUFRQQVRIPVwiJCggY2QgLS0gXCIkKGRpcm5hbWUgXCIkMFwiKVwiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXCJcblxuIyBjaGVjayBpZiB0aGUgbW9kdWxlIGZvbGRlciBoYXMgYmVlbiBnZW5lcmF0ZWQgYXMgZXhwZWN0ZWRcbk1PRFVMRVNfRk9MREVSPSQoIGNkIC0tIFwiJFNDUklQVFBBVEgvLi4vc3JjL21vZHVsZXMvc3RhY2tzXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcblNSQ19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcblRBUkdFVF9GT0xERVI9XCIkU0NSSVBUUEFUSC8uLi9tb2R1bGVzXCJcblxuaWYgWyAhIC1kIFwiJE1PRFVMRVNfRk9MREVSXCIgXTsgdGhlblxuICBlY2hvIFwiRXhwZWN0ZWQgbW9kdWxlIGZvbGRlciB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVJcIlxuICBleGl0IDFcbmZpXG5cbmNkIFwiJE1PRFVMRVNfRk9MREVSXCJcbmZvciBkIGluICovIDsgZG9cbiAgICBbIC1MIFwiXFwke2QlL31cIiBdICYmIGNvbnRpbnVlXG5cbiAgICBkaXJuYW1lPVwiXFwke2QlL31cIlxuXG5cbiAgICAjIENoZWNrIGlmIGV2ZXJ5dGhpbmcgaXMgaW4gcGxhY2VcbiAgICBpZiBbICEgLWYgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRXhwZWN0ZWQgY29kZSBmb3IgJGRpcm5hbWUgYXQgY2RrLnRmLmpzb24gdG8gZXhpc3QgYXQgJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICBpZiBbICEgLWYgXCIkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBEb2N1bWVudGF0aW9uIGZvciAkZGlybmFtZSBhdCAkZGlybmFtZS5tZCB0byBleGlzdCBhdCAkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiXG4gICAgICBleGl0IDFcbiAgICBmaVxuXG4gICAgIyBDb3B5IG1vZHVsZSBhbmQgcmVhZG1lIHRvZ2V0aGVyXG4gICAgZWNobyBcIkNvcHlpbmcgQ29kZSBhbmQgUkVBRE1FIGZvciBtb2R1bGUgJGRpcm5hbWVcIlxuICAgIG1rZGlyIC1wIFwiJFRBUkdFVF9GT0xERVJcIlxuICAgIG1rZGlyIC1wIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWVcIlxuICAgIGNwIFwiJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiXG4gICAgY3AgXCIkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvUkVBRE1FLm1kXCJcblxuICAgICMgQWRkIFJFQURNRSBoY2wgZG9jc1xuICAgIGlmIHdoaWNoIHRlcnJhZm9ybS1kb2NzID4vZGV2L251bGw7IHRoZW5cbiAgICAgIHRlcnJhZm9ybS1kb2NzIG1hcmtkb3duIHRhYmxlIC0tb3V0cHV0LWZpbGUgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9SRUFETUUubWRcIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lXCIgXG4gICAgZWxzZVxuICAgICAgZG9ja2VyIHJ1biAtLXJtIC0tdm9sdW1lIFwiJFNDUklQVFBBVEgvLi4vbW9kdWxlczovdGVycmFmb3JtLWRvY3NcIiAtdSAkKGlkIC11KSBxdWF5LmlvL3RlcnJhZm9ybS1kb2NzL3RlcnJhZm9ybS1kb2NzOjAuMTYuMCBtYXJrZG93biB0YWJsZSAtLW91dHB1dC1maWxlIFwiL3RlcnJhZm9ybS1kb2NzLyRkaXJuYW1lL1JFQURNRS5tZFwiIC90ZXJyYWZvcm0tZG9jcy8kZGlybmFtZVxuICAgIGZpXG5kb25lXG5gLnRyaW0oKVxuICAgICk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiLi9zY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLCB7XG4gICAgICBuYW1lOiBcIkNvcHkgSENMIE1vZHVsZXNcIixcbiAgICB9KTtcblxuICAgIC8vIGlnbm9yZSBkaXN0IGluIHRlc3RzXG4gICAgdGhpcy5qZXN0Py5hZGRJZ25vcmVQYXR0ZXJuKFwiZGlzdFwiKTtcbiAgfVxufVxuIl19
@@ -71,5 +71,5 @@ describe("MyModule", () => {
71
71
  }
72
72
  exports.TerraformModule = TerraformModule;
73
73
  _a = JSII_RTTI_SYMBOL_1;
74
- TerraformModule[_a] = { fqn: "projen-cdktf-hybrid-construct.TerraformModule", version: "0.1.61" };
74
+ TerraformModule[_a] = { fqn: "projen-cdktf-hybrid-construct.TerraformModule", version: "0.1.64" };
75
75
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQXVEO0FBQ3ZELHdDQUEyRTtBQUMzRSwrQkFBa0M7QUFFbEMseUNBQXNDO0FBd0N0Qzs7OztHQUlHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLHNCQUFnQjtJQUNuRCxZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQztZQUNKLEdBQUcsbUJBQVE7WUFDWCxHQUFHLE9BQU87WUFDVixhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFDdEQsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQztZQUNGLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQztRQUNqRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQztRQUV2RCxNQUFNLGdCQUFnQixHQUFHOzs7OztDQUs1QixDQUFDO1FBRUUsTUFBTSxpQkFBaUIsR0FBRzs7Ozs7Ozs7Q0FRN0IsQ0FBQztRQUVFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsWUFBWSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFMUMsSUFBSSxrQkFBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQy9CLEtBQUssRUFBRTtnQkFDTCxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO2dCQUNuQyx5QkFBeUIsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7YUFDcEQ7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLGlCQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sc0JBQXNCLEVBQUU7WUFDdkQsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRTtnQkFDTCxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDckMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQ2pFO2dCQUNELEVBQUU7YUFDSDtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxhQUFhLEVBQUU7WUFDOUMsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLEdBQUcsRUFBRSxzQkFBc0I7Z0JBQzNCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO2dCQUNwRCxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO2dCQUMxQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFJLEVBQUU7YUFDdkM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7QUEvREgsMENBZ0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvbkZpbGUsIFNhbXBsZURpciwgVGV4dEZpbGUgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5cbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludCB7XG4gIC8vIG5hbWUgb2YgdGhlIG1vZHVsZVxuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8vIHBhdGggLyB1cmwgLyByZWdpc3RyeSBpZGVudGlmaWVyIGZvciB0aGUgbW9kdWxlXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICAvLyB2ZXJzaW9uIGNvbnN0cmFpbnQgKGh0dHBzOi8vd3d3LnRlcnJhZm9ybS5pby9kb2NzL2xhbmd1YWdlL3Byb3ZpZGVycy9yZXF1aXJlbWVudHMuaHRtbCN2ZXJzaW9uLWNvbnN0cmFpbnRzKVxuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtTW9kdWxlT3B0aW9ucyBleHRlbmRzIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gdGFyZ2V0IHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5LlxuICAgKiBAZGVmYXVsdCBcIl4wLjEwLjFcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0IHZlcnNpb24gdG8gdXNlXG4gICAqIEBkZWZhdWx0IFwiXjEwLjAuMTJcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogIExpc3Qgb2YgcHJvdmlkZXIgYmluZGluZ3MgdG8gZ2VuZXJhdGUgaW4gYWRkaXRpb24gdG8gdGhlIG1vZHVsZXMuXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1Qcm92aWRlcnM/OiBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludFtdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG1vZHVsZXMgdG8gZ2VuZXJhdGUgYmluZGluZ3MgZm9yLlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IHRlcnJhZm9ybU1vZHVsZXM6IFRlcnJhZm9ybVZlcnNpb25Db25zdHJhaW50W107XG5cbiAgLy8gRGVmYXVsdGVkIHRvIGEgdXVpZCBzdHJpbmcgYXMgY2RrdGYgd291bGRcbiAgcmVhZG9ubHkgcHJvamVjdElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRlcnJhZm9ybSBNb2R1bGVzIHJlcHVibGlzaGVkIGFzIENES1RGIENvbnN0cnVjdHNcbiAqXG4gKiBAcGppZCB0ZXJyYWZvcm0tbW9kdWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Nb2R1bGUgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogVGVycmFmb3JtTW9kdWxlT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGVzbGludE9wdGlvbnM6IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZXNsaW50T3B0aW9ucywge1xuICAgICAgICBsaW50UHJvamVuUmM6IGZhbHNlLFxuICAgICAgfSksXG4gICAgICBwb3N0QnVpbGRTdGVwczogW10sXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIl4xMC4wLjEwN1wiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiXjAuMTAuMVwiO1xuXG4gICAgY29uc3QgY29uc3RydWN0U3JjQ29kZSA9IGBcbi8vIFJlLUV4cG9ydCBtb2R1bGUgYmluZGluZ3NcbmV4cG9ydCAqIGZyb20gXCIuL3RlcnJhZm9ybU1vZHVsZXNcIjtcblxuLy8gQWRkIHlvdXIgY3VzdG9tIGNvbnN0cnVjdHMgaGVyZVxuYDtcblxuICAgIGNvbnN0IGNvbnN0cnVjdFRlc3RDb2RlID0gYFxuLy8gaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuLy8gaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuXG4vLyBUbyBsZWFybiBtb3JlIGFib3V0IHRlc3Rpbmcgc2VlIGNkay50Zi90ZXN0aW5nXG5kZXNjcmliZShcIk15TW9kdWxlXCIsICgpID0+IHtcbiAgaXQudG9kbyhcInNob3VsZCBiZSB0ZXN0ZWRcIilcbn0pO1xuYDtcblxuICAgIHRoaXMuYWRkUGVlckRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RWZXJzaW9ufWAsIGBjZGt0ZkAke2Nka3RmVmVyc2lvbn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoYGNka3RmLWNsaUAke2Nka3RmVmVyc2lvbn1gLCBcInRzLW5vZGVcIik7XG4gICAgdGhpcy5hZGRLZXl3b3JkcyhcImNka3RmXCIsIFwiY2RrdGYtaHlicmlkXCIpO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJfX3Rlc3RzX18vaW5kZXgtdGVzdC50c1wiOiBjb25zdHJ1Y3RUZXN0Q29kZS50cmltKCksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIG5ldyBUZXh0RmlsZSh0aGlzLCBgJHt0aGlzLnNyY2Rpcn0vdGVycmFmb3JtTW9kdWxlcy50c2AsIHtcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIC4uLihvcHRpb25zLnRlcnJhZm9ybU1vZHVsZXMgfHwgW10pLm1hcChcbiAgICAgICAgICAodGZNb2R1bGUpID0+IGBleHBvcnQgKiBmcm9tIFwiLi8uZ2VuL21vZHVsZXMvJHt0Zk1vZHVsZS5uYW1lfVwiO2BcbiAgICAgICAgKSxcbiAgICAgICAgXCJcIixcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcywgYCR7dGhpcy5zcmNkaXJ9L2Nka3RmLmpzb25gLCB7XG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgaW5kZXgudHNcIixcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBvcHRpb25zLnRlcnJhZm9ybVByb3ZpZGVycyB8fCBbXSxcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogb3B0aW9ucy50ZXJyYWZvcm1Nb2R1bGVzLFxuICAgICAgICBwcm9qZWN0SWQ6IG9wdGlvbnMucHJvamVjdElkIHx8IHV1aWQoKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLmV4ZWMoYGNka3RmIGdldGAsIHsgY3dkOiB0aGlzLnNyY2RpciB9KTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -83,7 +83,7 @@
83
83
  ],
84
84
  "main": "lib/index.js",
85
85
  "license": "MIT",
86
- "version": "0.1.61",
86
+ "version": "0.1.64",
87
87
  "jest": {
88
88
  "testMatch": [
89
89
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",
package/releasetag.txt CHANGED
@@ -1 +1 @@
1
- v0.1.61
1
+ v0.1.64
package/version.txt CHANGED
@@ -1 +1 @@
1
- 0.1.61
1
+ 0.1.64